diff --git a/example-mods/basics_mod/dllmain.cpp b/example-mods/basics_mod/dllmain.cpp index 116cd58..f6b6d57 100644 --- a/example-mods/basics_mod/dllmain.cpp +++ b/example-mods/basics_mod/dllmain.cpp @@ -15,7 +15,7 @@ ModMetaData metaData = { true, }; -// Signature for GameVersion (SVN) 602428 +// Signature for GameVersion (SVN) 637515 class _Mod { public: ModContext* modContext; @@ -64,12 +64,9 @@ class NoStaminaLoss : public _Mod { // The modded code that will replace the original instructions at the found address. uint8_t modCode[] = { - 0x53, // push rbx - 0x8B, 0x5C, 0x81, 0x08, // mov ebx, [rcx+rax*4+8] - 0x89, 0x5C, 0x81, 0xFC, // mov [rcx+rax*4-4], ebx - 0x5B, // pop rbx 0x8B, 0x04, 0x81, // mov eax, [rcx+rax*4] 0x89, 0x44, 0x24, 0x3C, // mov [rsp+3C], eax + 0x89, 0x44, 0x24, 0x40, // mov [rsp+40], eax 0xE9, 0x00, 0x00, 0x00, 0x00 // jmp return }; @@ -92,8 +89,8 @@ class NoFallDamage : public _Mod NoFallDamage(ModContext* modContext) : _Mod(modContext) { // Pattern matching the AOB scan for the original code in the target process. - const char* pattern = "\x89\x04\x91\x48\x8D\x4D"; - const char* mask = "xxxxxx"; + const char* pattern = "\x89\x04\x91\x48\x8D\x4D\x08"; + const char* mask = "xxxxxxx"; // Base address of the module (the game). uintptr_t baseAddress = (uintptr_t)GetModuleHandle(NULL); @@ -110,8 +107,8 @@ class NoFallDamage : public _Mod // no fall damage uint8_t modCode[] = { - 0x48, 0x83, 0xC0, 0x00, // add eax, 0 (equivalent to no operation) - 0x48, 0x8D, 0x4D, 0xE0, // lea rcx, [rbp-20] + 0x83, 0xC0, 0x00, // add eax, 0 (equivalent to no operation) + 0x48, 0x8D, 0x4D, 0x08, // lea rcx, [rbp+08] 0xE9, 0x00, 0x00, 0x00, 0x00 // jmp return (dynamic, needs to be calculated) }; @@ -135,53 +132,27 @@ class NoFallDamage : public _Mod class InfiniteItemUse : public _Mod { public: - Mem::Detour* free_ItemUseMod2 = nullptr; - InfiniteItemUse(ModContext* modContext) : _Mod(modContext) { - // AOB patterns for the original code in the target process. - const char* pattern1 = "\x49\x89\x0E\x41\x2B"; // First AOB - const char* pattern2 = "\x45\x29\x7E\x04\x41\x2B\xEF"; // Second AOB - - // Base address of the module (the game). + const char* pattern = "\x41\x29\x6E\x04"; uintptr_t baseAddress = (uintptr_t)GetModuleHandle(NULL); - - // Find the patterns within the game memory (scans within 16MB). - uintptr_t address1 = Mem::FindPattern(pattern1, "xxxxx", baseAddress, 0xF0000000); - uintptr_t address2 = Mem::FindPattern(pattern2, "xxxxxxx", baseAddress, 0xF0000000); - - // Check if both addresses were found. - if (address1 && address2) + uintptr_t address = Mem::FindPattern(pattern, "xxxx", baseAddress, 0xF0000000); + if (address) { - // Allocate memory for new instructions to be injected at address1. - uint8_t modCode1[] = { - 0x41, 0xBF, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x00 + uint8_t modCode[] = { + 0x41, 0xBF, 0x00, 0x00, 0x00, 0x00, + 0xBD, 0x00, 0x00, 0x00, 0x00, + 0xE9, 0x00, 0x00, 0x00, 0x00 }; - // Creating the detour for the first address. - mod = new Mem::Detour(address1, modCode1, sizeof(modCode1), false, 1); + mod = new Mem::Detour(address, modCode, sizeof(modCode), false, 1); - // Calculate the jump address for the first detour. + // Calculate the jump address for detour mod->shellcode->updateValue( - sizeof(modCode1) - 4, (uint32_t)(mod->patch->data->address + mod->patch->data->size) + sizeof(modCode) - 4, (uint32_t)(mod->patch->data->address + mod->patch->data->size) - ((uint32_t)((uintptr_t)mod->shellcode->data->address + mod->shellcode->data->size)) ); - - // Allocate memory for new instructions to be injected at address2. - uint8_t modCode2[] = { - 0x41, 0xBF, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x00 - }; - - // Creating the detour for the second address. - free_ItemUseMod2 = new Mem::Detour(address2, modCode2, sizeof(modCode2), false, 2); - - // Calculate the jump address for the second detour. - free_ItemUseMod2->shellcode->updateValue( - sizeof(modCode2) - 4, (uint32_t)(free_ItemUseMod2->patch->data->address + free_ItemUseMod2->patch->data->size) - - ((uint32_t)((uintptr_t)free_ItemUseMod2->shellcode->data->address - + free_ItemUseMod2->shellcode->data->size)) - ); } } @@ -189,8 +160,7 @@ class InfiniteItemUse : public _Mod void activate() { mod->activate(); - free_ItemUseMod2->activate(); - active = mod->active && free_ItemUseMod2->active; + active = mod->active; if (active) LOG_CLASS("Activated"); else @@ -201,7 +171,6 @@ class InfiniteItemUse : public _Mod void deactivate() { mod->deactivate(); - free_ItemUseMod2->deactivate(); active = false; LOG_CLASS("Deactivated"); } diff --git a/example-mods/flight_mod/dllmain.cpp b/example-mods/flight_mod/dllmain.cpp index a8f854d..ee6abdd 100644 --- a/example-mods/flight_mod/dllmain.cpp +++ b/example-mods/flight_mod/dllmain.cpp @@ -14,7 +14,7 @@ ModMetaData metaData = { }; -// Signature for GameVersion (SVN) 602428 +// Signature for GameVersion (SVN) 637515 class FlightMod : public Mod { Mem::Detour* mod; @@ -22,8 +22,8 @@ class FlightMod : public Mod void Load(ModContext* modContext) { // F3 0F 10 05 ?? ?? ?? ?? F2 0F 11 4C 24 60 - const char* pattern = "\xF3\x0F\x10\x05\x00\x00\x00\x00\xF2\x0F\x11\x4C\x24\x60"; - const char* mask = "xxxx????xxxxxx"; + const char* pattern = "\xF3\x0F\x10\x05\x00\x00\x00\x00\xF2\x0F\x11\x4C"; + const char* mask = "xxxx????xxxx"; uintptr_t baseAddress = (uintptr_t)GetModuleHandle(NULL); uintptr_t address = Mem::FindPattern(pattern, mask, baseAddress, 0x1000000); // Scan 16MB diff --git a/include/game_structures.h b/include/game_structures.h new file mode 100644 index 0000000..2e82383 --- /dev/null +++ b/include/game_structures.h @@ -0,0 +1,62643 @@ +#pragma once // Include guard to prevent multiple inclusions + +#include // Include standard integer types (uint32_t, etc.) + +namespace keen { // Assuming a 'keen' namespace, adjust as needed + +struct HashKey32 { + keen::uint32 value; // Offset: 0 +}; + +typedef keen::HashKey32 AchievementId; + +typedef keen::uint32 AchievementValue; + +typedef keen::ObjectReference LocaTagReference; + +typedef keen::LocaTagReference NameLocaTag; + +typedef keen::LocaTagReference DescriptionLocaTag; + +struct AchievementData { + keen::NameLocaTag name; // Offset: 0 + keen::DescriptionLocaTag description; // Offset: 16 + keen::bool hasUnlockValue; // Offset: 32 + keen::AchievementValue unlockValue; // Offset: 36 +}; + +typedef keen::ObjectReference AchievementDataReference; + +typedef keen::BlobString string; + +typedef keen::sint32 int; + +struct Achievement { + keen::AchievementId id; // Offset: 0 + keen::bool hasUnlockValue; // Offset: 4 + keen::AchievementValue unlockValue; // Offset: 8 + keen::uint32 dosId; // Offset: 12 + keen::string steamName; // Offset: 16 + keen::string steamStat; // Offset: 24 + keen::int npId; // Offset: 32 + keen::int xsapiId; // Offset: 36 + keen::Guid guid; // Offset: 40 + keen::string dbgName; // Offset: 56 +}; + +struct AchievementDefinitionResource { + keen::BlobArray achievements; // Offset: 0 +}; + +typedef keen::ObjectReference AchievementDefinitionReference; + +struct AchievementSubDirectory { +}; + +struct AchievementDirectory { +}; + +enum class AmbientSfxPlaybackType { + PlayAlways = 0, + PlayOnlyWhenInBattle = 1, + PlayOnlyWhenNotInBattle = 2, +}; + +enum class AmbientEitherOrBoth { + No = 0, + Yes = 1, + Any = 2, +}; + +typedef keen::ObjectReference SoundContainerReference; + +enum class AmbientTags { + ForestProp = 0, + BendableBush = 1, + VukahProp = 2, + AncientProp = 3, + PrisonProp = 4, + GraveProp = 5, + MineProp = 6, + CaveProp = 7, +}; + +typedef keen::Bitmask8 AmbientMask; + +enum class WeatherState { + Clear = 0, + Rain = 1, + Snow = 2, + Blizzard = 3, +}; + +struct AmbientSoundEffectEntry { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::SoundContainerReference soundContainer; // Offset: 8 + keen::ObjectReference ingameTimeSpan; // Offset: 24 + keen::AmbientSfxPlaybackType playbackType; // Offset: 40 + keen::AmbientMask additionalTagsInclude; // Offset: 41 + keen::Bitmask8 weather; // Offset: 42 +}; + +enum class AmbientEnvironment { + None = 0, + Grassland = 1, + Desert = 2, + Wetland = 3, + Steppes = 4, + Deepforest = 5, + ColdHeights = 6, + TallTrees = 7, + AncientRooftop = 8, + Volcano = 9, + FogWell = 10, + Capital = 11, + PrisonDungeon = 12, + GraveDungeon = 13, + BarracksDungeon = 14, + BoneDungeon = 15, + HollowDungeon = 16, + FortressCraterGarrison = 17, + Cave = 18, + NaturalCave = 19, + Mine = 20, + AncientStructure = 21, + AncientPuzzle = 22, + DesertTemple = 23, + PlayerStart = 24, +}; + +struct AmbientSoundEffect { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::bool inAllEnvironments; // Offset: 8 + keen::AmbientEitherOrBoth inFog; // Offset: 9 + keen::AmbientEitherOrBoth indoors; // Offset: 10 + keen::AmbientEnvironment environment; // Offset: 11 + keen::AmbientMask ambientTagsInclude; // Offset: 12 + keen::AmbientMask ambientTagsExclude; // Offset: 13 +}; + +typedef keen::float32 float; + +struct Time { + keen::sint64 value; // Offset: 0 +}; + +struct AmbientSoundEffectParameters { + keen::float sfxLifeTimeInSeconds; // Offset: 0 + keen::float chanceToPlaySound; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::uint32 daytimeFadeValuePlusMinusMinutes; // Offset: 64 + keen::float playerIsInFogThreshold; // Offset: 68 + keen::float startFogEffectsThreshold; // Offset: 72 + keen::float stopFogEffectsThreshold; // Offset: 76 + keen::float playerIsInEnvironmentThreshold; // Offset: 80 + keen::float startEnvironmentEffectsThreshold; // Offset: 84 + keen::float stopEnvironmentEffectsThreshold; // Offset: 88 + keen::float baseAmbienceThreshold; // Offset: 92 + keen::float smallEnvironmentMultiplier; // Offset: 96 + keen::float oneshotDistanceMultiplier; // Offset: 100 + keen::float temporalSmoothingSpeed; // Offset: 104 + keen::Time silenceAfterVictoryDuration; // Offset: 112 + keen::float fogMusicFogVolumeMod; // Offset: 120 + keen::float environmentMusicFogVolumeMod; // Offset: 124 + keen::float environmentMusicEnvVolumeMod; // Offset: 128 + keen::float fogLoopsFogVolumeMod; // Offset: 132 + keen::float environmentLoopsFogVolumeMod; // Offset: 136 + keen::float environmentLoopsEnvVolumeMod; // Offset: 140 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 144 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 152 +}; + +struct AmbientSfxSubDirectory { +}; + +struct AmbientSfxDirectory { +}; + +enum class SoundContainerMode { + Random = 0, +}; + +enum class SoundContainerScene { + Sfx = 0, + Music = 1, + Ui = 2, + Voice = 3, +}; + +struct SoundContainerShared { + keen::SoundContainerMode mode; // Offset: 0 + keen::SoundContainerScene scene; // Offset: 1 + keen::bool loop; // Offset: 2 + keen::bool loopSameChosenEntry; // Offset: 3 + keen::uint32 avoidRepeatingLastX; // Offset: 4 + keen::float32 volume; // Offset: 8 + keen::float32 volumeRandomness; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 pitchRandomness; // Offset: 20 + keen::Time sleep; // Offset: 24 + keen::Time sleepRandomness; // Offset: 32 + keen::bool hasPosition; // Offset: 40 + keen::float32 minDistance; // Offset: 44 + keen::float32 maxDistance; // Offset: 48 + keen::bool hasRandomPosition; // Offset: 52 + keen::float32 randomLeftRight; // Offset: 56 + keen::float32 randomFrontBack; // Offset: 60 +}; + +typedef keen::uint32 uint; + +struct AmbientSfxResource { + keen::bool inAllEnvironments; // Offset: 0 + keen::AmbientEitherOrBoth inFog; // Offset: 1 + keen::AmbientEitherOrBoth indoors; // Offset: 2 + keen::AmbientEnvironment environment; // Offset: 3 + keen::AmbientSfxPlaybackType playbackType; // Offset: 4 + keen::Bitmask8 weather; // Offset: 5 + keen::AmbientMask ambientTagsInclude; // Offset: 6 + keen::AmbientMask ambientTagsExclude; // Offset: 7 + keen::float32 volume; // Offset: 8 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::SoundContainerShared soundContainerShared; // Offset: 32 + keen::uint soundStart; // Offset: 96 + keen::uint soundCount; // Offset: 100 + keen::Guid id; // Offset: 104 + keen::BlobString debugNameEffect; // Offset: 120 + keen::BlobString debugNameEffectEntry; // Offset: 128 +}; + +struct AmbientSfxCollectionResource { + keen::BlobArray effects; // Offset: 0 + keen::BlobArray loops; // Offset: 8 + keen::BlobArray music; // Offset: 16 + keen::BlobArray sounds; // Offset: 24 +}; + +struct AmbientEventSounds { + keen::SoundContainerReference battleStartJingle; // Offset: 0 + keen::SoundContainerReference battleEndJingle; // Offset: 16 + keen::SoundContainerReference bossMusicScavenger; // Offset: 32 + keen::SoundContainerReference bossMusicMonstrosity; // Offset: 48 + keen::SoundContainerReference bossMusicFoggerHeavy; // Offset: 64 + keen::SoundContainerReference bossMusicFoggerMage; // Offset: 80 + keen::SoundContainerReference bossMusicVukahBigfoot; // Offset: 96 + keen::SoundContainerReference bossMusicLurchie; // Offset: 112 + keen::SoundContainerReference bossMusicHollow; // Offset: 128 + keen::SoundContainerReference bossMusicCyclops; // Offset: 144 + keen::SoundContainerReference bossMusicDragon; // Offset: 160 + keen::SoundContainerReference bushCollision; // Offset: 176 +}; + +typedef keen::ObjectReference SoundContainerResourceReference; + +struct AmbientEventSoundsResource { + keen::SoundContainerResourceReference battleStartJingle; // Offset: 0 + keen::SoundContainerResourceReference battleEndJingle; // Offset: 16 + keen::SoundContainerResourceReference bossMusicScavenger; // Offset: 32 + keen::SoundContainerResourceReference bossMusicMonstrosity; // Offset: 48 + keen::SoundContainerResourceReference bossMusicFoggerHeavy; // Offset: 64 + keen::SoundContainerResourceReference bossMusicFoggerMage; // Offset: 80 + keen::SoundContainerResourceReference bossMusicVukahBigfoot; // Offset: 96 + keen::SoundContainerResourceReference bossMusicLurchie; // Offset: 112 + keen::SoundContainerResourceReference bossMusicHollow; // Offset: 128 + keen::SoundContainerResourceReference bossMusicCyclops; // Offset: 144 + keen::SoundContainerResourceReference bossMusicDragon; // Offset: 160 + keen::SoundContainerResourceReference bushCollision; // Offset: 176 +}; + +struct AmbientParameterResource { + keen::uint16 chanceForSilence; // Offset: 0 + keen::float sfxLifeTimeInSeconds; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::float playerIsInFogThreshold; // Offset: 64 + keen::float startFogEffectsThreshold; // Offset: 68 + keen::float stopFogEffectsThreshold; // Offset: 72 + keen::float playerIsInEnvironmentThreshold; // Offset: 76 + keen::float startEnvironmentEffectsThreshold; // Offset: 80 + keen::float stopEnvironmentEffectsThreshold; // Offset: 84 + keen::float baseAmbienceThreshold; // Offset: 88 + keen::float smallEnvironmentMultiplier; // Offset: 92 + keen::float oneshotDistanceMultiplier; // Offset: 96 + keen::float temporalSmoothingSpeed; // Offset: 100 + keen::Time silenceAfterVictoryDuration; // Offset: 104 + keen::float fogMusicFogVolumeMod; // Offset: 112 + keen::float environmentMusicFogVolumeMod; // Offset: 116 + keen::float environmentMusicEnvVolumeMod; // Offset: 120 + keen::float fogLoopsFogVolumeMod; // Offset: 124 + keen::float environmentLoopsFogVolumeMod; // Offset: 128 + keen::float environmentLoopsEnvVolumeMod; // Offset: 132 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 136 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 144 +}; + +typedef keen::ObjectReference VfxReference; + +typedef keen::ObjectReference IngameTimeSpanReference; + +struct AmbientVisualEffectEntry { + keen::VfxReference vfx; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Bitmask8 weather; // Offset: 32 +}; + +struct AmbientVisualEffect { + keen::AmbientEnvironment environment; // Offset: 0 + keen::bool inAllEnvironments; // Offset: 1 + keen::AmbientEitherOrBoth inFog; // Offset: 2 +}; + +struct AmbientVfxSubDirectory { +}; + +struct AmbientVfxDirectory { +}; + +struct AmbientVfxResource { + keen::VfxReference vfx; // Offset: 0 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::AmbientEnvironment environment; // Offset: 32 + keen::bool inAllEnvironments; // Offset: 33 + keen::AmbientEitherOrBoth inFog; // Offset: 34 + keen::Bitmask8 weather; // Offset: 35 + keen::Guid id; // Offset: 36 +}; + +struct AmbientVfxCollectionResource { + keen::BlobArray effects; // Offset: 0 +}; + +struct AmbientEnvironmentMapResource { + keen::StaticArray voxelIdToAmbientEnvironmentMap; // Offset: 0 +}; + +struct AmbientPPPDawnDuskOffsets { + keen::Time nightAdaptationStartOffset; // Offset: 0 + keen::Time nightAdaptationEndOffset; // Offset: 8 + keen::Time dayAdaptationStartOffset; // Offset: 16 + keen::Time dayAdaptationEndOffset; // Offset: 24 +}; + +typedef keen::uint32 Color; + +struct AmbientPostProcessingParameters { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::AmbientPPPDawnDuskOffsets dawnDuskOffset; // Offset: 8 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientPostProcessingResource { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::Time nightAdaptationStartOffset; // Offset: 8 + keen::Time nightAdaptationEndOffset; // Offset: 16 + keen::Time dayAdaptationStartOffset; // Offset: 24 + keen::Time dayAdaptationEndOffset; // Offset: 32 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientCollectionResource { + keen::ObjectReference sfxCollection; // Offset: 0 + keen::ObjectReference vfxCollection; // Offset: 16 + keen::ObjectReference parameters; // Offset: 32 + keen::ObjectReference mapping; // Offset: 48 + keen::ObjectReference eventSounds; // Offset: 64 + keen::ObjectReference postProcessing; // Offset: 80 +}; + +enum class ambient.ReasonThisSoundDoesNotPlay { + Music = 0, + Loop = 1, + SFX = 2, + Environment = 3, + CombatSituation = 4, + TimeOfDay = 5, + TooMuchFog = 6, + TooLittleFog = 7, + WorldShape = 8, + TaggedProps = 9, + RandomChanceParameter = 10, + MusicQueued = 11, + Sleeping = 12, + SlotAlreadyFilled = 13, + Weather = 14, +}; + +typedef keen::Bitmask16 ambient.ReasonThisSoundDoesNotPlayMask; + +struct ambient.SoundExplanation { + keen::ambient::ReasonThisSoundDoesNotPlayMask reason; // Offset: 0 + keen::float volumeCurrent; // Offset: 4 + keen::float volumeTarget; // Offset: 8 + keen::Guid soundGuid; // Offset: 12 +}; + +struct ambient.EffectsSoundReasonsDebugMessage { + keen::Guid effectGuid; // Offset: 0 + keen::ambient::SoundExplanation explanation; // Offset: 16 + keen::uint cellIndex; // Offset: 44 +}; + +struct ambient.DebugMessageBundle { + keen::BlobArray data; // Offset: 0 +}; + +enum class BossMusicType { + None = 0, + Fogger = 1, + Mage = 2, + Scavenger = 3, + Vukah = 4, + Monstrosity = 5, + Lurchie = 6, + Hollow = 7, + Cyclops = 8, + Dragon = 9, +}; + +struct ecs.Component { +}; + +struct ecs.IsTame { +}; + +enum class AnimationLoopType { + Auto = 0, + Loop = 1, + NoLoop = 2, +}; + +struct AnimationJointQuality { + keen::string trackName; // Offset: 0 + keen::float32 quality; // Offset: 8 +}; + +enum class AttachmentSlot { + Root = 0, + Head = 1, + Chest = 2, + Pelvis = 3, + FootL = 4, + FootR = 5, + FootRL = 6, + FootRR = 7, + HandR = 8, + HandL = 9, + KneeR = 10, + KneeL = 11, + ArmL = 12, + Block = 13, + Count = 14, +}; + +typedef keen::Bitmask16 AttachmentSlotMask; + +enum class AnimationSpace { + Local = 0, + LocalAdd = 1, +}; + +struct ModelHintSetEntry { + keen::ObjectReference model; // Offset: 0 +}; + +struct ModelHintSet { +}; + +struct Animation { + keen::string animation_node; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 8 + keen::ObjectReference modelHint; // Offset: 24 + keen::ObjectReference modelHintSet; // Offset: 40 + keen::ObjectReference clothCollider; // Offset: 56 + keen::uint32 startFrame; // Offset: 72 + keen::uint32 endFrame; // Offset: 76 + keen::sint32 refFrame; // Offset: 80 + keen::AnimationSpace space; // Offset: 84 + keen::float32 xanimScale; // Offset: 88 + keen::float32 quality; // Offset: 92 + keen::BlobArray qualityOverrite; // Offset: 96 + keen::AnimationLoopType loopType; // Offset: 104 + keen::float32 autoLoopEpsilon; // Offset: 108 + keen::bool loopLve; // Offset: 112 + keen::bool exportJointAnimation; // Offset: 113 + keen::bool exportLveAnimation; // Offset: 114 + keen::bool exportSequenceData; // Offset: 115 + keen::bool exportDebugData; // Offset: 116 +}; + +typedef keen::ObjectReference AnimationReference; + +struct AnimationInfo { + keen::float32 length; // Offset: 0 + keen::uint32 jointCount; // Offset: 4 + keen::uint32 frameCount; // Offset: 8 + keen::ObjectReference modelHint; // Offset: 12 + keen::ObjectReference modelHintSet; // Offset: 28 + keen::ObjectReference hierarchy; // Offset: 44 + keen::bool hasLve; // Offset: 60 + keen::bool hasSequences; // Offset: 61 + keen::bool loops; // Offset: 62 + keen::AnimationSpace space; // Offset: 63 + keen::BlobString name; // Offset: 64 +}; + +struct AnimationConverterConfiguration { + keen::bool checkParentNames; // Offset: 0 + keen::bool checkMatrixDecomposition; // Offset: 1 +}; + +struct Sequence { + keen::Time length; // Offset: 0 + keen::bool loop; // Offset: 8 +}; + +struct AnimationEventSequence { + keen::ObjectReference hierarchyPreviewSettings; // Offset: 16 + keen::ObjectReference previewClothCollider; // Offset: 32 +}; + +typedef keen::ObjectReference AnimationEventSequenceReference; + +struct AnimationSequenceContainer { + keen::BlobArray sequences; // Offset: 0 +}; + +enum class Blend1DInterpolationCurve { + Linear = 0, + WalkRunCurve = 1, +}; + +struct animationgraph.StateId { +}; + +struct animationgraph.InputId { +}; + +struct animationgraph.FloatInputId { +}; + +struct animationgraph.BoolInputId { +}; + +struct animationgraph.IntInputId { +}; + +struct animationgraph.UintInputId { +}; + +struct animationgraph.IdInputId { +}; + +struct animationgraph.OverlayId { +}; + +struct animationgraph.OverlayContextId { +}; + +typedef keen::ObjectReference animationgraph.StateIdReference; + +typedef keen::ObjectReference animationgraph.InputIdReference; + +typedef keen::ObjectReference animationgraph.OverlayIdReference; + +typedef keen::ObjectReference animationgraph.OverlayContextIdReference; + +typedef keen::HashKey32 animationgraph.StateIdHash; + +typedef keen::HashKey32 animationgraph.InputIdHash; + +struct animationgraph.AnimationIdCollection { +}; + +struct animationgraph.StateIdCollection { +}; + +struct animationgraph.InputIdCollection { +}; + +struct animationgraph.OverlayIdCollection { +}; + +struct animationgraph.OverlayContextIdCollection { +}; + +struct animationgraph.AnimationDebugEntry { + keen::Guid guid; // Offset: 0 + keen::HashKey32 hash; // Offset: 16 + keen::BlobString debugName; // Offset: 20 +}; + +struct animationgraph.AnimationGraphDebugInfo { + keen::BlobArray entries; // Offset: 0 +}; + +enum class animationgraph.RootMotionFlag { + Pure = 0, + AlignToFloor = 1, + WarpToTarget = 2, + Ignore = 3, + IgnoreScale = 4, +}; + +typedef keen::Bitmask8 animationgraph.RootMotionMask; + +struct float2 { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 +}; + +struct Vector2 { +}; + +struct float3 { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 + keen::float32 z; // Offset: 8 +}; + +struct animationgraph.NodeBase { + keen::animationgraph::StateIdReference id; // Offset: 0 + keen::Vector2 position; // Offset: 16 + keen::float32 defaultBlendInDuration; // Offset: 24 + keen::float3 pivotOffset; // Offset: 28 + keen::bool isIncompatibleWithOverlays; // Offset: 40 + keen::bool restartOnRetrigger; // Offset: 41 +}; + +struct animationgraph.AnimationSpeedGradientController { + keen::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph.AnimationNode { + keen::AnimationReference animation; // Offset: 44 +}; + +struct animationgraph.AnimationSpeedGradientNode { + keen::animationgraph::AnimationSpeedGradientController speedController; // Offset: 60 +}; + +struct animationgraph.BlendData1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph.ChoiceData1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph.NoAnimationBlendData1D { +}; + +struct animationgraph.NoAnimationChoiceData1D { +}; + +struct animationgraph.AnimationBlendData1D { + keen::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationChoiceData1D { + keen::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationSpeedGradientBlendData1D { + keen::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.AnimationSpeedGradientChoiceData1D { + keen::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.HierarchyBlendData1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 + keen::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.BlendHierarchyDataChoice1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 + keen::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.ChoiceHierarchyDataBlend1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyDataChoice1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.GenderAnimationReference { + keen::AnimationReference maleAnimation; // Offset: 0 + keen::AnimationReference femaleAnimation; // Offset: 16 +}; + +struct animationgraph.PrimaryItemSpecificAnimationReference { + keen::AnimationReference unarmedAnimation; // Offset: 0 + keen::AnimationReference singleAndShieldAnimation; // Offset: 16 + keen::AnimationReference singleNoShieldAnimation; // Offset: 32 + keen::AnimationReference dualAnimation; // Offset: 48 + keen::AnimationReference twoHandedAnimation; // Offset: 64 + keen::AnimationReference bowPrimaryAnimation; // Offset: 80 + keen::AnimationReference staffPrimaryAnimation; // Offset: 96 + keen::AnimationReference wandPrimaryAnimation; // Offset: 112 +}; + +struct animationgraph.SecondaryItemSpecificAnimationReference { + keen::AnimationReference bowAnimation; // Offset: 0 + keen::AnimationReference staffSecondaryAnimation; // Offset: 16 + keen::AnimationReference wandSecondaryAnimation; // Offset: 32 +}; + +struct animationgraph.PrimaryItemSpecificAnimationNode { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.SecondaryItemSpecificAnimationNode { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.PrimaryItemSpecificBlend1D { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlend1D { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificChoice1D { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificChoice1D { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.VerySpecialBlockNode { +}; + +struct animationgraph.MaskedNode { + keen::BlobString delimiterJoint; // Offset: 44 + keen::animationgraph::InputIdReference delimiterInputName; // Offset: 52 + keen::Time lowerBodyBlendInTime; // Offset: 72 + keen::Time lowerBodyBlendOutTime; // Offset: 80 + keen::bool resetLowerBodyOnToggleOn; // Offset: 88 + keen::ObjectReference upperAnims; // Offset: 92 + keen::ObjectReference lowerAnims; // Offset: 108 +}; + +struct animationgraph.Blend1D { + keen::animationgraph::InputIdReference inputName; // Offset: 44 + keen::Blend1DInterpolationCurve curve; // Offset: 60 + keen::bool wrapInputAsAngle; // Offset: 61 +}; + +struct animationgraph.Choice1D { + keen::animationgraph::InputIdReference inputName; // Offset: 44 +}; + +struct animationgraph.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph.AnimationBlendLayer { + keen::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.HierarchyBlendLayer { + keen::animationgraph::HierarchyBlendData1D blendHierarchy; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyBlendLayer { + keen::animationgraph::ChoiceHierarchyDataBlend1D choiceHierarchy; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificBlendLayer { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlendLayer { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.BlendLayersNode { +}; + +typedef keen::ObjectReference animationgraph.NodeBaseReference; + +struct animationgraph.TransitionBase { + keen::animationgraph::NodeBaseReference startNode; // Offset: 0 + keen::animationgraph::NodeBaseReference endNode; // Offset: 16 + keen::float32 duration; // Offset: 32 +}; + +struct animationgraph.LinearTransition { + keen::bool sync; // Offset: 36 +}; + +struct animationgraph.AnimationTransition { + keen::AnimationReference animation; // Offset: 36 + keen::float32 blendIn; // Offset: 52 + keen::float32 blendOut; // Offset: 56 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 60 +}; + +struct animationgraph.OverlayBase { + keen::animationgraph::OverlayIdReference id; // Offset: 0 + keen::animationgraph::OverlayContextIdReference context; // Offset: 16 + keen::BlobArray abortUnlessInNodes; // Offset: 32 +}; + +struct animationgraph.AnimationOverlay { + keen::AnimationReference animation; // Offset: 40 +}; + +struct Group { +}; + +struct AnimationGraphDirectory { +}; + +struct AnimationGraph { + keen::float32 defaultTransitionTime; // Offset: 0 + keen::BlobArray genderLookupTable; // Offset: 4 + keen::ObjectReference clothColliderReference; // Offset: 12 +}; + +struct animation.NodeId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.TransitionBase { + keen::animation::NodeId endNodeIndex; // Offset: 0 + keen::Time duration; // Offset: 8 +}; + +struct animationgraph_resource.LinearTransition { + keen::bool sync; // Offset: 16 +}; + +struct animation.AnimationId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.GenderSpecificAnimationIndex { + keen::animation::AnimationId maleAnimation; // Offset: 0 + keen::animation::AnimationId femaleAnimation; // Offset: 4 +}; + +struct animationgraph_resource.ExitAnimation { + keen::animation::NodeId targetNodeIndex; // Offset: 0 + keen::Time blendIn; // Offset: 8 + keen::Time blendOut; // Offset: 16 + keen::animation::AnimationId animationIndex; // Offset: 24 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 28 +}; + +struct animationgraph_resource.AnimationSpeedGradientController { + keen::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph_resource.NodeBase { + keen::animationgraph::StateIdReference stateIdReference; // Offset: 0 + keen::animationgraph::StateIdHash stateId; // Offset: 16 + keen::BlobArray onExits; // Offset: 20 + keen::uint32 defaultInboundTransition; // Offset: 28 + keen::BlobArray outgoingTransitions; // Offset: 32 + keen::float3 pivotOffset; // Offset: 40 + keen::bool isIncompatibleWithOverlays; // Offset: 52 + keen::bool restartOnRetrigger; // Offset: 53 + keen::bool graphCanBePaused; // Offset: 54 +}; + +struct animationgraph_resource.AnimationNode { + keen::animation::AnimationId animationIndex; // Offset: 56 +}; + +struct animationgraph_resource.AnimationSpeedGradientNode { + keen::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 60 +}; + +struct animationgraph_resource.BlendDataFloat1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph_resource.BlendDataUint1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph_resource.NoAnimationBlendDataFloat1D { +}; + +struct animationgraph_resource.AnimationBlendDataFloat1D { + keen::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.NoAnimationBlendDataUint1D { +}; + +struct animationgraph_resource.AnimationBlendDataUint1D { + keen::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataFloat1D { + keen::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataUint1D { + keen::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.FloatHierarchy1D { + keen::animationgraph::InputIdReference floatInputName; // Offset: 0 + keen::bool wrapInputAsAngle; // Offset: 16 + keen::Blend1DInterpolationCurve curve; // Offset: 17 + keen::BlobArray> blendData; // Offset: 20 +}; + +struct animationgraph_resource.UintHierarchy1D { + keen::animationgraph::InputIdReference uintInputName; // Offset: 0 + keen::BlobArray> blendData; // Offset: 16 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataFloat1D { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataUint1D { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.UintHierarchyBlendDataFloat1D { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.UintHierarchyBlendDataUint1D { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.BlendFloat1DNode { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 56 +}; + +struct animationgraph_resource.BlendUint1DNode { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 56 +}; + +struct animationgraph_resource.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph_resource.AnimationBlendLayer { + keen::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.BlendHierarchyBlendLayer { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.ChoiceHierarchyBlendLayer { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.BlendLayersNode { + keen::BlobArray> blendLayers; // Offset: 56 +}; + +typedef keen::ObjectReference animationgraph_resource.NodeBaseReference; + +struct animationgraph_resource.VerySpecialBlockNode { + keen::string delimiterJoint; // Offset: 56 + keen::animationgraph_resource::UintHierarchy1D blockAnimData; // Offset: 64 + keen::animationgraph_resource::FloatHierarchy1D moveAnimData; // Offset: 88 +}; + +struct animationgraph_resource.MaskedNode { + keen::string delimiterJoint; // Offset: 56 + keen::animationgraph::InputIdReference delimiterInputName; // Offset: 64 + keen::Time lowerBodyBlendInTime; // Offset: 80 + keen::Time lowerBodyBlendOutTime; // Offset: 88 + keen::bool resetLowerBodyOnToggleOn; // Offset: 96 + keen::BlobArray> upperLayers; // Offset: 100 + keen::BlobArray> lowerLayers; // Offset: 108 +}; + +struct animationgraph_resource.AnimationListEntry { + keen::AnimationReference reference; // Offset: 0 + keen::Time duration; // Offset: 16 + keen::uint32 frameCount; // Offset: 24 + keen::bool hasLve; // Offset: 28 + keen::bool hasSequences; // Offset: 29 + keen::bool loops; // Offset: 30 + keen::AnimationSpace space; // Offset: 31 + keen::BlobString name; // Offset: 32 +}; + +struct animationgraph_resource.AnimationListResource { + keen::BlobArray animations; // Offset: 0 +}; + +struct animationgraph_resource.OverlayBase { + keen::animationgraph::StateIdHash stateId; // Offset: 0 + keen::animationgraph::OverlayIdReference name; // Offset: 4 + keen::animationgraph::OverlayContextIdReference context; // Offset: 20 + keen::BlobArray abortUnlessInNodes; // Offset: 36 + keen::BlobString dbgName; // Offset: 44 +}; + +struct animationgraph_resource.AnimationOverlay { + keen::animation::AnimationId maleAnimationIndex; // Offset: 52 + keen::animation::AnimationId femaleAnimationIndex; // Offset: 56 +}; + +typedef keen::uint16 AnimationJointIndex; + +struct AnimationGraphResource { + keen::uint32 jointCount; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 4 + keen::BlobArray> nodes; // Offset: 20 + keen::BlobArray animations; // Offset: 28 + keen::BlobArray> transitions; // Offset: 36 + keen::BlobArray> overlays; // Offset: 44 + keen::animationgraph_resource::UintHierarchy1D globalOverlay; // Offset: 52 + keen::StaticArray slotBoneIndexMapping; // Offset: 76 + keen::ObjectReference clothColliderReference; // Offset: 104 +}; + +typedef keen::ObjectReference AnimationGraphReference; + +struct AnimationGraphInputBase { + keen::animationgraph::InputIdHash hash; // Offset: 0 +}; + +struct AnimationGraphFloatInput { + keen::float32 value; // Offset: 4 +}; + +struct AnimationGraphUintInput { + keen::uint32 value; // Offset: 4 +}; + +struct AnimationGraphBoolInput { + keen::bool value; // Offset: 4 +}; + +struct AnimationGraphIntInput { + keen::sint32 value; // Offset: 4 +}; + +struct AnimationGraphIdInput { + keen::animationgraph::StateIdHash value; // Offset: 4 +}; + +struct WorldPosition { + keen::sint64 x; // Offset: 0 + keen::sint64 y; // Offset: 8 + keen::sint64 z; // Offset: 16 +}; + +struct Quaternion { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 + keen::float32 z; // Offset: 8 + keen::float32 w; // Offset: 12 +}; + +struct WorldTransform { + keen::WorldPosition position; // Offset: 0 + keen::Quaternion orientation; // Offset: 24 + keen::float3 scale; // Offset: 40 +}; + +struct WarpToTargetConfig { + keen::WorldTransform targetTransform; // Offset: 0 + keen::Time duration; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::float32 maxScale; // Offset: 72 + keen::bool isTargetSet; // Offset: 76 + keen::bool abortWarpAboveMaxScale; // Offset: 77 +}; + +struct RootMotionConfig { + keen::float32 movementMod; // Offset: 0 + keen::WarpToTargetConfig warpToTargetConfig; // Offset: 8 +}; + +enum class OverlayInputsEventType { + Invalid = 0, + Start = 1, + Abort = 2, +}; + +struct OverlayInputsEvent { + keen::animationgraph::StateIdHash animationStateId; // Offset: 0 + keen::uint32 jointId; // Offset: 4 + keen::OverlayInputsEventType type; // Offset: 8 + keen::uint8 changeCounter; // Offset: 9 +}; + +struct AnimationGraphInputs { + keen::StaticArray floatInputs; // Offset: 0 + keen::StaticArray uintInputs; // Offset: 64 + keen::StaticArray boolInputs; // Offset: 128 + keen::StaticArray intInputs; // Offset: 144 + keen::StaticArray idInputs; // Offset: 160 + keen::StaticArray overlayInputs; // Offset: 176 + keen::RootMotionConfig rootMotionConfig; // Offset: 240 + keen::WorldTransform currentTransform; // Offset: 328 +}; + +enum class AnimGraphPreviewEventType { + Node = 0, + Overlay = 1, +}; + +struct AnimGraphPreviewSeqenceEntry { + keen::AnimGraphPreviewEventType eventType; // Offset: 0 + keen::Time timeFromStart; // Offset: 8 + keen::uint32 selectedIndex; // Offset: 16 +}; + +struct AnimGraphPreviewSeqence { + keen::BlobArray entries; // Offset: 0 +}; + +struct AnimationGraphInfo { + keen::BlobArray nodes; // Offset: 0 + keen::BlobArray floatInputs; // Offset: 8 + keen::BlobArray uintInputs; // Offset: 16 + keen::BlobArray boolInputs; // Offset: 24 + keen::BlobArray overlays; // Offset: 32 + keen::ObjectReference modelHierarchy; // Offset: 40 +}; + +enum class anim_graph.LayerBlendMode { + Override = 0, + Additive = 1, +}; + +enum class anim_graph.AdditiveType { + None = 0, + Additive_LocalSpace = 1, +}; + +enum class anim_graph.TransitionRootMotionMode { + BlendRootMotions = 0, + UseRootMotionFromIncomingState = 1, + UseRootMotionFromDestinationState = 2, + UseRootMotionFromHighestWeight = 3, +}; + +struct anim_graph.LayerBlendOptions { + keen::anim_graph::LayerBlendMode blendMode; // Offset: 0 + keen::ObjectReference boneMask; // Offset: 4 +}; + +struct anim_graph.BoneMask { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntry { + keen::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 8 +}; + +struct anim_graph.BoneMaskResource { + keen::BlobArray entries; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntryResource { + keen::uint8 boneIndex; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct anim_graph.AnimationSpeedController { + keen::ObjectReference inputName; // Offset: 0 + keen::HashKey32 inputHash; // Offset: 16 + keen::float32 inputValueA; // Offset: 20 + keen::float32 inputValueB; // Offset: 24 + keen::float32 speedFactorA; // Offset: 28 + keen::float32 speedFactorB; // Offset: 32 +}; + +struct anim_graph.GenderMappingEntry { + keen::Guid maleAnimation; // Offset: 0 + keen::Guid femaleAnimation; // Offset: 16 +}; + +enum class anim_graph.tool_graph.DataType { + Pose = 0, + Float = 1, + Int = 2, + Bool = 3, + ID = 4, +}; + +struct anim_graph.tool_graph.GraphParameterBase { + keen::ObjectReference inputId; // Offset: 0 +}; + +struct anim_graph.tool_graph.FloatGraphParameter { +}; + +struct anim_graph.tool_graph.IntGraphParameter { +}; + +struct anim_graph.tool_graph.BoolGraphParameter { +}; + +struct anim_graph.tool_graph.IDGraphParameterValue { +}; + +struct anim_graph.tool_graph.IDGraphParameter { +}; + +struct anim_graph.tool_graph.GraphParameterSet { +}; + +struct anim_graph.tool_graph.PinBase { + keen::anim_graph::tool_graph::DataType dataType; // Offset: 0 +}; + +struct anim_graph.tool_graph.InputPin { +}; + +struct anim_graph.tool_graph.OutputPin { +}; + +struct anim_graph.tool_graph.Link { + keen::ObjectReference sourcePin; // Offset: 0 + keen::ObjectReference targetPin; // Offset: 16 +}; + +struct anim_graph.tool_graph.EditorNodeBase { + keen::Vector2 uiPosition; // Offset: 0 + keen::ObjectReference secondaryGraph; // Offset: 8 + keen::ObjectReference childGraph; // Offset: 24 +}; + +struct anim_graph.tool_graph.FloatParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.FloatConstant { + keen::float32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.FloatAdd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatSubtract { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatMultiply { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatGreaterThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatLessThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::float32 tolerance; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatGreaterThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatLessThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::float32 tolerance; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatDivide { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.SelectPoseBase { + keen::ObjectReference outputPose; // Offset: 40 + keen::float32 blendTime; // Offset: 56 +}; + +struct anim_graph.tool_graph.SelectPoseByBool { + keen::ObjectReference poseA; // Offset: 60 + keen::ObjectReference poseB; // Offset: 76 +}; + +struct anim_graph.tool_graph.SelectPoseByBoolParameters { + keen::ObjectReference selectA; // Offset: 40 +}; + +struct FloatRange { + keen::float32 minValue; // Offset: 0 + keen::float32 maxValue; // Offset: 4 +}; + +struct anim_graph.tool_graph.FloatRemap { + keen::FloatRange inputRange; // Offset: 40 + keen::FloatRange outputRange; // Offset: 48 + keen::ObjectReference inputValue; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDConstant { + keen::ObjectReference value; // Offset: 40 + keen::ObjectReference output; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameterEqualsConstant { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IDEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::ObjectReference value; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IntParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IntConstant { + keen::sint32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.IntEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IntEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::sint32 value; // Offset: 72 +}; + +struct anim_graph.tool_graph.IsOverlayActive { + keen::ObjectReference active; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolConstant { + keen::bool value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.BoolNegate { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolAnd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolOr { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.LayerBlend { + keen::anim_graph::LayerBlendOptions blendOptions; // Offset: 40 + keen::ObjectReference base; // Offset: 60 + keen::ObjectReference layer; // Offset: 76 + keen::ObjectReference outputPose; // Offset: 92 +}; + +struct anim_graph.tool_graph.SaveCachedPose { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.UseCachedPose { + keen::ObjectReference pose; // Offset: 40 + keen::ObjectReference cachedPose; // Offset: 56 +}; + +struct anim_graph.tool_graph.PoseResult { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachine { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachineState { + keen::bool restartOnRetrigger; // Offset: 40 + keen::bool startAtRandomTime; // Offset: 41 +}; + +struct anim_graph.tool_graph.TransitionAdvancedOptions { + keen::uint8 priority; // Offset: 0 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 1 +}; + +struct anim_graph.tool_graph.StateMachineTransition { + keen::ObjectReference fromState; // Offset: 40 + keen::ObjectReference toState; // Offset: 56 + keen::bool autoTransition; // Offset: 72 + keen::float32 duration; // Offset: 76 + keen::anim_graph::tool_graph::TransitionAdvancedOptions advancedOptions; // Offset: 80 + keen::bool isGlobalTransition; // Offset: 82 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitions { +}; + +struct anim_graph.tool_graph.StateInputPin { + keen::ObjectReference state; // Offset: 4 + keen::float32 duration; // Offset: 20 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 24 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitionParameters { +}; + +struct anim_graph.tool_graph.AdditiveAnimationParameters { + keen::bool useCurrentAnimationAsReference; // Offset: 0 + keen::uint16 additiveReferenceFrame; // Offset: 2 + keen::AnimationReference additiveReferenceAnimation; // Offset: 4 +}; + +struct anim_graph.tool_graph.AnimationClipSampler { + keen::AnimationReference animation; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::anim_graph::tool_graph::AdditiveAnimationParameters additiveParameters; // Offset: 76 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 96 +}; + +struct anim_graph.tool_graph.EmptyAdditivePose { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.BlendSpace_1DItem { + keen::float32 parameterValue; // Offset: 0 + keen::AnimationReference animation; // Offset: 4 +}; + +struct anim_graph.tool_graph.BlendSpace_1D { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::uint16 additiveReferenceFrame; // Offset: 74 + keen::AnimationReference additiveReferenceAnimation; // Offset: 76 + keen::bool interpolateInputValue; // Offset: 92 + keen::float interpolationSpeed; // Offset: 96 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 100 +}; + +struct anim_graph.tool_graph.TransitionParameters { + keen::ObjectReference condition; // Offset: 40 +}; + +struct anim_graph.tool_graph.EditorGraphBase { + keen::ObjectReference parentNode; // Offset: 0 + keen::ObjectReference mostSignificantNode; // Offset: 16 +}; + +struct anim_graph.tool_graph.FlowGraph { +}; + +struct anim_graph.tool_graph.StateMachineGraph { + keen::ObjectReference globalTransitions; // Offset: 32 +}; + +struct anim_graph.tool_graph.BlendTree { +}; + +struct anim_graph.tool_graph.ExpressionTree { +}; + +struct anim_graph.tool_graph.DefaultIdInputIdValue { + keen::ObjectReference key; // Offset: 0 + keen::ObjectReference defaultValue; // Offset: 16 +}; + +typedef keen::ObjectReference PreviewModelReference; + +typedef keen::StaticArray PreviewModelArray; + +struct anim_graph.tool_graph.AnimationGraph2_0 { + keen::ObjectReference rootGraph; // Offset: 0 + keen::ObjectReference clothColliderReference; // Offset: 16 + keen::PreviewModelArray previewModelOverride; // Offset: 32 + keen::string genderPrefix; // Offset: 288 + keen::BlobArray genderMapping; // Offset: 296 +}; + +enum class anim_graph.runtime_graph.AnimationNodeType { + Invalid = 0, + PoseResult = 1, + SampleAnimationClip = 2, + EmptyAdditivePose = 3, + BlendSpace_1D = 4, + FloatConstant = 5, + FloatParameter = 6, + IntConstant = 7, + IntParameter = 8, + BoolConstant = 9, + BoolParameter = 10, + IDConstant = 11, + IDParameter = 12, + StateMachine = 13, + StateMachineState = 14, + StateMachineTransition = 15, + BoolNegate = 16, + BoolAnd = 17, + BoolOr = 18, + BoolEquals = 19, + FloatRemap = 20, + FloatGreaterThan = 21, + FloatLessThan = 22, + FloatEquals = 23, + FloatGreaterThanConstant = 24, + FloatLessThanConstant = 25, + FloatEqualsConstant = 26, + SelectPoseByBool = 27, + IdEquals = 28, + IdEqualsConstant = 29, + IdParameterEqualsConstant = 30, + IntEquals = 31, + IntEqualsConstant = 32, + IsOverlayActive = 33, + LayerBlend = 34, + SaveCachedPose = 35, + UseCachedPose = 36, +}; + +struct anim_graph.runtime_graph.AnimationNodeDefinition { + keen::HashKey32 id; // Offset: 0 + keen::anim_graph::runtime_graph::AnimationNodeType type; // Offset: 4 +}; + +struct anim_graph.runtime_graph.PoseResultNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.SampleAnimationClipNodeDefinition { + keen::bool loop; // Offset: 8 + keen::float32 animationDuration; // Offset: 12 + keen::ObjectReference animation; // Offset: 16 + keen::ObjectReference animationGenderAlternative; // Offset: 32 + keen::ObjectReference rootMotionAnimation; // Offset: 48 + keen::ObjectReference rootMotionAnimationGenderAlternative; // Offset: 64 + keen::ObjectReference eventSequenceContainer; // Offset: 80 + keen::anim_graph::AdditiveType additiveType; // Offset: 96 + keen::ObjectReference additiveReferenceAnimation; // Offset: 100 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 116 + keen::uint16 additiveReferenceFrame; // Offset: 132 + keen::bool animationContentAdditive; // Offset: 134 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 136 +}; + +struct anim_graph.runtime_graph.EmptyAdditivePoseNodeDefinition { +}; + +struct anim_graph.runtime_graph.BlendSpace_1DItemRuntime { + keen::float32 parameterValue; // Offset: 0 + keen::float32 animationDuration; // Offset: 4 + keen::ObjectReference animation; // Offset: 8 + keen::ObjectReference animationGenderAlternative; // Offset: 24 + keen::ObjectReference eventSequenceContainer; // Offset: 40 +}; + +struct anim_graph.runtime_graph.BlendSpace_1DNodeDefinition { + keen::BlobArray items; // Offset: 8 + keen::ObjectReference parameter; // Offset: 16 + keen::anim_graph::AdditiveType additiveType; // Offset: 32 + keen::ObjectReference additiveReferenceAnimation; // Offset: 36 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 52 + keen::uint16 additiveReferenceFrame; // Offset: 68 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 72 + keen::float interpolationSpeed; // Offset: 108 + keen::bool loop; // Offset: 112 + keen::bool animationContentAdditive; // Offset: 113 +}; + +struct anim_graph.runtime_graph.LayerBlendNodeDefinition { + keen::HashKey32 base; // Offset: 8 + keen::HashKey32 layer; // Offset: 12 + keen::anim_graph::LayerBlendOptions blendOptions; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SaveCachedPoseNodeDefinition { + keen::HashKey32 inputPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.UseCachedPoseNodeDefinition { + keen::HashKey32 cachedPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatConstantNodeDefinition { + keen::float32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.StateMachineGlobalTransitionInfo { + keen::HashKey32 toState; // Offset: 0 + keen::float32 duration; // Offset: 4 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 8 + keen::HashKey32 conditionNode; // Offset: 12 +}; + +struct anim_graph.runtime_graph.StateMachineNodeDefinition { + keen::BlobArray states; // Offset: 8 + keen::BlobArray transitions; // Offset: 16 + keen::HashKey32 entryState; // Offset: 24 + keen::StaticArray globalTransitions; // Offset: 28 + keen::uint8 numGlobalTransitions; // Offset: 540 + keen::HashKey32 globalTransitionNodeId; // Offset: 544 + keen::BlobString debugName; // Offset: 548 +}; + +struct anim_graph.runtime_graph.StateMachineStateNodeDefinition { + keen::HashKey32 poseResult; // Offset: 8 + keen::BlobString debugName; // Offset: 12 + keen::bool restartOnRetrigger; // Offset: 20 + keen::bool startAtRandomTime; // Offset: 21 +}; + +struct anim_graph.runtime_graph.StateMachineTransitionNodeDefinition { + keen::HashKey32 fromState; // Offset: 8 + keen::HashKey32 toState; // Offset: 12 + keen::float32 duration; // Offset: 16 + keen::uint8 priority; // Offset: 20 + keen::HashKey32 conditionNode; // Offset: 24 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 28 + keen::bool autoTransition; // Offset: 29 +}; + +struct anim_graph.runtime_graph.IntConstantNodeDefinition { + keen::sint32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IntParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolConstantNodeDefinition { + keen::bool value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDConstantNodeDefinition { + keen::HashKey32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolNegateNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolAndNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolOrNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.FloatRemapNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::FloatRange inputRange; // Offset: 12 + keen::FloatRange outputRange; // Offset: 20 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SelectPoseByBoolNodeDefinition { + keen::HashKey32 inputA; // Offset: 8 + keen::HashKey32 inputB; // Offset: 12 + keen::HashKey32 selectA; // Offset: 16 + keen::float32 blendTime; // Offset: 20 +}; + +struct anim_graph.runtime_graph.IdParameterEqualsConstantNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 + keen::HashKey32 value; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IdEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IdEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 comparatorValue; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IntEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IntEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::sint32 comparatorValue; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IsOverlayActiveNodeDefinition { + keen::HashKey32 overlay; // Offset: 8 +}; + +struct anim_graph.runtime_graph.ParameterList { + keen::BlobArray parameterIds; // Offset: 0 +}; + +struct anim_graph.runtime_graph.AnimationGraphResource2_0 { + keen::anim_graph::runtime_graph::ParameterList floatParameters; // Offset: 0 + keen::anim_graph::runtime_graph::ParameterList uintParameters; // Offset: 8 + keen::anim_graph::runtime_graph::ParameterList intParameters; // Offset: 16 + keen::anim_graph::runtime_graph::ParameterList boolParameters; // Offset: 24 + keen::anim_graph::runtime_graph::ParameterList idParameters; // Offset: 32 + keen::anim_graph::runtime_graph::ParameterList usedInputIds; // Offset: 40 + keen::ObjectReference hierarchy; // Offset: 48 + keen::StaticArray slotBoneIndexMapping; // Offset: 64 + keen::HashKey32 rootNode; // Offset: 92 + keen::BlobArray> nodeDefinitions; // Offset: 96 + keen::ObjectReference clothColliderReference; // Offset: 104 + keen::BlobArray genderMapping; // Offset: 120 +}; + +struct anim_graph.GameUpdateMessage { + keen::bool isPaused; // Offset: 0 +}; + +struct anim_graph.DebugEntityChangedMessage { + keen::uint32 selectedEntity; // Offset: 0 +}; + +struct anim_graph.debug.DebugMessageBase { + keen::Time timestamp; // Offset: 0 + keen::uint32 entityId; // Offset: 8 + keen::Guid rootGraphGuid; // Offset: 12 + keen::Guid templateId; // Offset: 28 +}; + +struct anim_graph.debug.NodeStateUpdateMessage { + keen::HashKey32 nodeId; // Offset: 48 + keen::bool isActive; // Offset: 52 + keen::bool isFrozen; // Offset: 53 + keen::float32 progress; // Offset: 56 + keen::float32 timeSpentInNode; // Offset: 60 + keen::HashKey32 fromState; // Offset: 64 + keen::HashKey32 toState; // Offset: 68 +}; + +struct anim_graph.debug.InputIdMessage { + keen::StaticArray floatInputIdHashes; // Offset: 48 + keen::StaticArray floatInputIdValues; // Offset: 80 + keen::StaticArray intInputIdHashes; // Offset: 112 + keen::StaticArray intInputIdValues; // Offset: 144 + keen::StaticArray boolInputIdHashes; // Offset: 176 + keen::StaticArray boolInputIdValues; // Offset: 208 + keen::StaticArray idInputIdHashes; // Offset: 216 + keen::StaticArray idInputIdValues; // Offset: 248 + keen::StaticArray overlayIdValues; // Offset: 280 +}; + +struct Vector3 { +}; + +struct AnimationJoint { + keen::Quaternion orientation; // Offset: 0 + keen::Vector3 position; // Offset: 16 + keen::Vector3 scale; // Offset: 32 +}; + +struct anim_graph.debug.EntityJointMessage { + keen::StaticArray animationJoints; // Offset: 48 + keen::uint8 numJoints; // Offset: 12336 +}; + +struct anim_graph.debug.AnimationGraphInstanceInfoMessage { + keen::uint32 retriggerCount; // Offset: 48 +}; + +struct anim_graph.debug.StateMachineMessage { + keen::uint32 stateMachineId; // Offset: 48 + keen::StaticArray fromState; // Offset: 52 + keen::StaticArray toState; // Offset: 84 + keen::StaticArray duration; // Offset: 116 + keen::StaticArray elapsed; // Offset: 148 + keen::StaticArray priority; // Offset: 180 + keen::StaticArray frozen; // Offset: 188 +}; + +typedef keen::ObjectReference AnimationGraphResourceReference; + +struct JointAnimationHeader { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 startTime; // Offset: 4 + keen::uint16 endTime; // Offset: 6 + keen::uint16 usedOrientationJoints; // Offset: 8 + keen::uint16 nonConstOrientationJoints; // Offset: 10 + keen::uint16 usedPositionJoints; // Offset: 12 + keen::uint16 nonConstPositionJoints; // Offset: 14 + keen::uint16 usedScaleJoints; // Offset: 16 + keen::uint16 nonConstScaleJoints; // Offset: 18 +}; + +struct ContentHash { + keen::uint32 size; // Offset: 0 + keen::uint32 hash0; // Offset: 4 + keen::uint32 hash1; // Offset: 8 + keen::uint32 hash2; // Offset: 12 +}; + +enum class ContentCategory { + None = 0, + Cloth = 1, + Texture = 2, + Mesh = 3, + Material = 4, + Render = 5, + ShaderCode = 6, + Vfx = 7, + Voxel = 8, + Scene = 9, + Font = 10, + Sound = 11, + UiTexture = 12, + Loca = 13, + Animation = 14, +}; + +struct JointAnimation { + keen::uint64 hierarchyHash; // Offset: 0 + keen::float32 positionFactor; // Offset: 8 + keen::float32 positionTangent; // Offset: 12 + keen::float32 scaleFactor; // Offset: 16 + keen::BlobArray headers; // Offset: 20 + keen::ContentHash data; // Offset: 28 + keen::uint16 fps; // Offset: 44 + keen::uint16 frameCount; // Offset: 46 + keen::uint16 jointCount; // Offset: 48 + keen::uint16 flags; // Offset: 50 +}; + +typedef keen::ObjectReference JointAnimationReference; + +struct float4 { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 + keen::float32 z; // Offset: 8 + keen::float32 w; // Offset: 12 +}; + +struct LveOrientationKey { + keen::uint32 time; // Offset: 0 + keen::float4 values; // Offset: 4 + keen::float4 controls; // Offset: 20 +}; + +struct LvePositionKey { + keen::uint32 time; // Offset: 0 + keen::float3 values; // Offset: 4 + keen::float3 controls; // Offset: 16 +}; + +typedef keen::uint32 crc32; + +struct LveAnimation { + keen::crc32 trackName; // Offset: 0 + keen::BlobArray orientationKeys; // Offset: 4 + keen::BlobArray positionKeys; // Offset: 12 + keen::float3 startToEnd; // Offset: 20 + keen::uint16 fps; // Offset: 32 + keen::uint16 frameCount; // Offset: 34 + keen::uint16 flags; // Offset: 36 +}; + +struct RootMotionAnimation { + keen::BlobArray orientations; // Offset: 0 + keen::BlobArray positions; // Offset: 8 + keen::float3 startToEnd; // Offset: 16 + keen::uint16 fps; // Offset: 28 + keen::uint16 frameCount; // Offset: 30 +}; + +typedef keen::string DsTypeName; + +struct ColorRgb { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 +}; + +struct HdrColorRgb { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 + keen::float32 intensity; // Offset: 12 +}; + +enum class LanguageId { + None = 0, + En_Us = 1, + En_Gb = 2, + De_De = 3, + Nl_Nl = 4, + Fr_Fr = 5, + It_It = 6, + Es_Es = 7, + Es_Mx = 8, + Ru_Ru = 9, + Pl_Pl = 10, + Ja_Jp = 11, + Id_Id = 12, + Ko_Kr = 13, + Ms_My = 14, + Pt_Pt = 15, + Pt_Br = 16, + Th_Th = 17, + Tr_Tr = 18, + Vi_Vn = 19, + Zh_Cn = 20, + Zh_Tw = 21, + Fr_Ca = 22, + Es_419 = 23, + Bg_Bg = 24, + Cs_Cz = 25, + Da_Dk = 26, + Fi_Fi = 27, + El_Gr = 28, + Hu_Hu = 29, + No_No = 30, + Nb_No = 31, + Ro_Ro = 32, + Sv_Se = 33, + Uk_Ua = 34, + Count = 35, +}; + +enum class TextureType { + Texture1D = 0, + Texture2D = 1, + Texture3D = 2, + Cube = 3, + Array1D = 4, + Array2D = 5, + ArrayCube = 6, +}; + +enum class PixelFormat { + None = 0, + R4G4_unorm_pack8 = 1, + R4G4B4A4_unorm_pack16 = 2, + B4G4R4A4_unorm_pack16 = 3, + R5G6B5_unorm_pack16 = 4, + B5G6R5_unorm_pack16 = 5, + R5G5B5A1_unorm_pack16 = 6, + B5G5R5A1_unorm_pack16 = 7, + A1R5G5B5_unorm_pack16 = 8, + R8_unorm = 9, + R8_snorm = 10, + R8_uscaled = 11, + R8_sscaled = 12, + R8_uint = 13, + R8_sint = 14, + R8_srgb = 15, + R8G8_unorm = 16, + R8G8_snorm = 17, + R8G8_uscaled = 18, + R8G8_sscaled = 19, + R8G8_uint = 20, + R8G8_sint = 21, + R8G8_srgb = 22, + R8G8B8_unorm = 23, + R8G8B8_snorm = 24, + R8G8B8_uscaled = 25, + R8G8B8_sscaled = 26, + R8G8B8_uint = 27, + R8G8B8_sint = 28, + R8G8B8_srgb = 29, + B8G8R8_unorm = 30, + B8G8R8_snorm = 31, + B8G8R8_uscaled = 32, + B8G8R8_sscaled = 33, + B8G8R8_uint = 34, + B8G8R8_sint = 35, + B8G8R8_srgb = 36, + R8G8B8A8_unorm = 37, + R8G8B8A8_snorm = 38, + R8G8B8A8_uscaled = 39, + R8G8B8A8_sscaled = 40, + R8G8B8A8_uint = 41, + R8G8B8A8_sint = 42, + R8G8B8A8_srgb = 43, + B8G8R8A8_unorm = 44, + B8G8R8A8_snorm = 45, + B8G8R8A8_uscaled = 46, + B8G8R8A8_sscaled = 47, + B8G8R8A8_uint = 48, + B8G8R8A8_sint = 49, + B8G8R8A8_srgb = 50, + A8B8G8R8_unorm_pack32 = 51, + A8B8G8R8_snorm_pack32 = 52, + A8B8G8R8_uscaled_pack32 = 53, + A8B8G8R8_sscaled_pack32 = 54, + A8B8G8R8_uint_pack32 = 55, + A8B8G8R8_sint_pack32 = 56, + A8B8G8R8_srgb_pack32 = 57, + A2R10G10B10_unorm_pack32 = 58, + A2R10G10B10_snorm_pack32 = 59, + A2R10G10B10_uscaled_pack32 = 60, + A2R10G10B10_sscaled_pack32 = 61, + A2R10G10B10_uint_pack32 = 62, + A2R10G10B10_sint_pack32 = 63, + A2B10G10R10_unorm_pack32 = 64, + A2B10G10R10_snorm_pack32 = 65, + A2B10G10R10_uscaled_pack32 = 66, + A2B10G10R10_sscaled_pack32 = 67, + A2B10G10R10_uint_pack32 = 68, + A2B10G10R10_sint_pack32 = 69, + R16_unorm = 70, + R16_snorm = 71, + R16_uscaled = 72, + R16_sscaled = 73, + R16_uint = 74, + R16_sint = 75, + R16_sfloat = 76, + R16G16_unorm = 77, + R16G16_snorm = 78, + R16G16_uscaled = 79, + R16G16_sscaled = 80, + R16G16_uint = 81, + R16G16_sint = 82, + R16G16_sfloat = 83, + R16G16B16_unorm = 84, + R16G16B16_snorm = 85, + R16G16B16_uscaled = 86, + R16G16B16_sscaled = 87, + R16G16B16_uint = 88, + R16G16B16_sint = 89, + R16G16B16_sfloat = 90, + R16G16B16A16_unorm = 91, + R16G16B16A16_snorm = 92, + R16G16B16A16_uscaled = 93, + R16G16B16A16_sscaled = 94, + R16G16B16A16_uint = 95, + R16G16B16A16_sint = 96, + R16G16B16A16_sfloat = 97, + R32_uint = 98, + R32_sint = 99, + R32_sfloat = 100, + R32G32_uint = 101, + R32G32_sint = 102, + R32G32_sfloat = 103, + R32G32B32_uint = 104, + R32G32B32_sint = 105, + R32G32B32_sfloat = 106, + R32G32B32A32_uint = 107, + R32G32B32A32_sint = 108, + R32G32B32A32_sfloat = 109, + R64_uint = 110, + R64_sint = 111, + R64_sfloat = 112, + R64G64_uint = 113, + R64G64_sint = 114, + R64G64_sfloat = 115, + R64G64B64_uint = 116, + R64G64B64_sint = 117, + R64G64B64_sfloat = 118, + R64G64B64A64_uint = 119, + R64G64B64A64_sint = 120, + R64G64B64A64_sfloat = 121, + B10G11R11_ufloat_pack32 = 122, + E5B9G9R9_ufloat_pack32 = 123, + D16_unorm = 124, + X8_D24_unorm_pack32 = 125, + D32_sfloat = 126, + S8_uint = 127, + D16_unorm_S8_uint = 128, + D24_unorm_S8_uint = 129, + D32_sfloat_S8_uint = 130, + BC1_RGB_unorm_block = 131, + BC1_RGB_srgb_block = 132, + BC1_RGBA_unorm_block = 133, + BC1_RGBA_srgb_block = 134, + BC2_unorm_block = 135, + BC2_srgb_block = 136, + BC3_unorm_block = 137, + BC3_srgb_block = 138, + BC4_unorm_block = 139, + BC4_snorm_block = 140, + BC5_unorm_block = 141, + BC5_snorm_block = 142, + BC6H_ufloat_block = 143, + BC6H_sfloat_block = 144, + BC7_unorm_block = 145, + BC7_srgb_block = 146, +}; + +struct vf32_data { + keen::StaticArray data; // Offset: 0 +}; + +struct StaticHashMapEntry { + keen::uint32 start; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct TimeRange { + keen::Time start; // Offset: 0 + keen::Time end; // Offset: 8 +}; + +typedef keen::uint32 fourcc; + +struct HashKey64 { + keen::uint64 value; // Offset: 0 +}; + +struct DsTypeId { + keen::uint32 value; // Offset: 0 +}; + +struct ResourceId { + keen::Guid guid; // Offset: 0 + keen::HashKey32 typeName; // Offset: 16 + keen::uint32 partIndex; // Offset: 20 + keen::uint32 reserved0; // Offset: 24 + keen::uint32 reserved1; // Offset: 28 +}; + +struct PosixTimeStamp { + keen::sint64 value; // Offset: 0 +}; + +struct CalendarTimeStamp { + keen::sint64 value; // Offset: 0 +}; + +struct float3x3 { + keen::float3 x; // Offset: 0 + keen::float3 y; // Offset: 12 + keen::float3 z; // Offset: 24 +}; + +struct float3x4 { + keen::float3 x; // Offset: 0 + keen::float3 y; // Offset: 12 + keen::float3 z; // Offset: 24 + keen::float3 w; // Offset: 36 +}; + +struct float4x4 { + keen::float4 x; // Offset: 0 + keen::float4 y; // Offset: 16 + keen::float4 z; // Offset: 32 + keen::float4 w; // Offset: 48 +}; + +struct int2 { + keen::sint32 x; // Offset: 0 + keen::sint32 y; // Offset: 4 +}; + +struct int3 { + keen::sint32 x; // Offset: 0 + keen::sint32 y; // Offset: 4 + keen::sint32 z; // Offset: 8 +}; + +struct int4 { + keen::sint32 x; // Offset: 0 + keen::sint32 y; // Offset: 4 + keen::sint32 z; // Offset: 8 + keen::sint32 w; // Offset: 12 +}; + +struct uint2 { + keen::uint32 x; // Offset: 0 + keen::uint32 y; // Offset: 4 +}; + +struct uint3 { + keen::uint32 x; // Offset: 0 + keen::uint32 y; // Offset: 4 + keen::uint32 z; // Offset: 8 +}; + +struct uint4 { + keen::uint32 x; // Offset: 0 + keen::uint32 y; // Offset: 4 + keen::uint32 z; // Offset: 8 + keen::uint32 w; // Offset: 12 +}; + +struct uint24 { + keen::uint8 lo; // Offset: 0 + keen::uint8 mi; // Offset: 1 + keen::uint8 hi; // Offset: 2 +}; + +enum class ErrorId { + Ok = 0, + Temporary_TimeOut = 1, + Temporary_OutOfMemory = 2, + Temporary_StillRunning = 3, + AlreadyExists = 4, + BufferTooSmall = 5, + Canceled = 6, + CapacityExceeded = 7, + CompressionError = 8, + CorruptData = 9, + DecompressionError = 10, + EofReached = 11, + FileNotFound = 12, + DirectoryNotEmpty = 13, + Generic = 14, + IncompatibleData = 15, + InitializationFailed = 16, + Internal = 17, + InvalidArgument = 18, + InvalidCharacter = 19, + InvalidPosition = 20, + InvalidState = 21, + InvalidValue = 22, + KeyNotFound = 23, + NoConnection = 24, + ConnectionRefused = 25, + NetworkDown = 26, + NetworkUnreachable = 27, + NoFactoryFound = 28, + NoMatch = 29, + NoPermission = 30, + NotFound = 31, + NotImplemented = 32, + NotSupported = 33, + NumberEncoding = 34, + NumberOverflow = 35, + NumberUnderflow = 36, + OutOfFileHandles = 37, + OutOfHandles = 38, + OutOfMemory = 39, + ParseError = 40, + ReadError = 41, + ResourceNotFound = 42, + StringEncoding = 43, + TypeMismatch = 44, + WriteError = 45, + WrongEndianness = 46, + WrongVersion = 47, + DiskFull = 48, + BrokenPipe = 49, + PathTooLong = 50, + DeviceLost = 51, + MemoryMapFailed = 52, + AlreadyConnected = 53, + ConnectionClosed = 54, + NotSubscribedToApp = 55, + SharingViolation = 56, + OutOfDate = 57, + InUse = 58, + AlreadyInProgress = 59, + UserNotSignedIn = 60, + UserHasNoOnlineAccount = 61, + KickedFromGame = 62, + JoinFailed = 63, + JoinFailedNotFound = 64, + JoinFailedFull = 65, + QueueEmpty = 66, + QueueFull = 67, + SecureConnectionFailed = 68, + AddressInUse = 69, + AddressNotAvailable = 70, + OutOfRange = 71, + HashCollision = 72, + TooManyLinks = 73, + UnknownHostName = 74, + RequestTimeOut = 75, + InvalidAlignment = 76, + Count = 77, +}; + +enum class PlatformId { + Invalid = 0, + Ngc = 1, + Wii = 2, + WiiU = 3, + Nds = 4, + Ctr = 5, + Ps2 = 6, + Ps3 = 7, + Ps4 = 8, + Psp = 9, + PsVita = 10, + Xb360 = 11, + Xb1 = 12, + Win32_x86 = 13, + Win32_x64 = 14, + Linux_x86 = 15, + Linux_x64 = 16, + Osx_x86 = 17, + Osx_x64 = 18, + Ios_arm32 = 19, + Ios_arm64 = 20, + Android_arm32 = 21, + Android_arm64 = 22, + Uwp_x86 = 23, + Uwp_x64 = 24, + Uwp_arm32 = 25, + Uwp_arm64 = 26, + Nx = 27, + Nx_Win32 = 28, + Ps5 = 29, + Count = 30, +}; + +enum class VertexColorChannel { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +struct ClothMaterial { + keen::VertexColorChannel simulationWeightVertexColorChannel; // Offset: 0 + keen::bool useMass; // Offset: 1 + keen::float32 mass; // Offset: 4 + keen::bool usePerVertexStiffness; // Offset: 8 + keen::VertexColorChannel perVertexStiffnessVertexColorChannel; // Offset: 9 + keen::float32 gravity; // Offset: 12 + keen::float32 windStrength; // Offset: 16 + keen::float32 dragCoefficient; // Offset: 20 + keen::float32 liftCoefficient; // Offset: 24 + keen::float32 damping; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 tetherStiffness; // Offset: 44 + keen::float32 phasesStiffness; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 motionConstraintsMaxRadius; // Offset: 60 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 64 + keen::float32 motionConstraintsStiffness; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 collisionFriction; // Offset: 76 +}; + +struct BvhTreeNodeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::sint32 value; // Offset: 32 +}; + +struct BvhTreeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::BlobArray nodes; // Offset: 32 +}; + +enum class CollisionSegmentDirection { + XPositive = 0, + XNegative = 1, + ZPositive = 2, + ZNegative = 3, +}; + +struct NavEdge { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 +}; + +struct NavPortal { + keen::StaticArray cellIndices; // Offset: 32 +}; + +struct CollisionShapeId { + keen::uint32 shapeId; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 +}; + +struct NavCell { + keen::uint16 index; // Offset: 0 + keen::float32 minY; // Offset: 4 + keen::float32 maxY; // Offset: 8 + keen::BlobArray edgeIndices; // Offset: 12 + keen::BlobArray portalIndices; // Offset: 20 + keen::BlobArray collisionShapeIds; // Offset: 28 + keen::uint16 extensionPortalIndex; // Offset: 36 + keen::Vector3 centroid; // Offset: 48 +}; + +struct ColliderShape { +}; + +struct SphereColliderShape { + keen::float32 radius; // Offset: 0 +}; + +struct SpheroidColliderShape { + keen::float32 horizontalRadius; // Offset: 0 + keen::float32 verticalRadius; // Offset: 4 +}; + +struct CapsuleColliderShape { + keen::float32 radius; // Offset: 0 + keen::float32 length; // Offset: 4 +}; + +struct BoxColliderShape { + keen::float3 halfSize; // Offset: 0 +}; + +struct SegmentColliderShape { + keen::float3 direction; // Offset: 0 + keen::float32 length; // Offset: 12 +}; + +struct CollisionFace { + keen::StaticArray vertices; // Offset: 0 + keen::StaticArray neighborFaces; // Offset: 6 + keen::uint8 neighborEdgeIndices; // Offset: 12 + keen::uint8 material; // Offset: 13 + keen::uint16 flags; // Offset: 14 +}; + +struct CollisionObject { + keen::uint32 id; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 + keen::BlobArray shapeVertices; // Offset: 8 + keen::BlobArray navCellIndices; // Offset: 16 + keen::float32 health; // Offset: 24 + keen::float32 y; // Offset: 28 +}; + +struct CollisionGridCell { + keen::uint16 start; // Offset: 0 + keen::uint16 count; // Offset: 2 +}; + +struct CollisionGrid { + keen::BlobArray gridCells; // Offset: 0 + keen::BlobArray gridIndicies; // Offset: 8 + keen::BlobArray collShapesPerGrid; // Offset: 16 + keen::BlobArray collShapesPerGridIndicies; // Offset: 24 + keen::uint16 cellsX; // Offset: 32 + keen::Vector2 origin; // Offset: 36 + keen::Vector2 cellSize; // Offset: 44 +}; + +struct CollisionMeshData { + keen::BlobArray m_vertices; // Offset: 0 + keen::BlobArray m_faces; // Offset: 8 + keen::CollisionGrid m_grid; // Offset: 16 + keen::BlobArray m_objects; // Offset: 68 + keen::BlobArray m_navCells; // Offset: 76 + keen::BlobArray m_navEdges; // Offset: 84 + keen::BlobArray m_navPortals; // Offset: 92 +}; + +struct WorldCollisionBatch { + keen::uint32 triangleIndex; // Offset: 0 + keen::uint32 triangleCount; // Offset: 4 +}; + +struct WorldCollision { + keen::BlobArray triangleBatches; // Offset: 0 + keen::BlobArray vertexPositions; // Offset: 8 + keen::BlobArray materialIds; // Offset: 16 + keen::BvhTreeData bvhTreeData; // Offset: 32 +}; + +struct PaletteColor { + keen::HdrColorRgb color; // Offset: 0 +}; + +typedef keen::ObjectReference PaletteColorReference; + +struct ColorPalette { +}; + +struct ColorPaletteCollection { +}; + +typedef keen::HashKey32 PaletteColorId; + +struct PaletteColorResource { + keen::PaletteColorId paletteColorId; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct ColorPaletteCollectionResource { + keen::BlobArray colors; // Offset: 0 +}; + +typedef keen::HashKey32 CommerceProductId; + +struct CommerceProduct { + keen::CommerceProductId id; // Offset: 0 + keen::uint32 platformIdSteam; // Offset: 4 +}; + +typedef keen::ObjectReference CommerceProductReference; + +struct CommerceProductSubDirectory { +}; + +struct CommerceProductDirectory { +}; + +struct CommerceProductResource { + keen::BlobArray products; // Offset: 0 +}; + +typedef keen::ObjectReference CommerceResourceReference; + +struct ecs.SpawnComponent { +}; + +struct ecs.LastTransform { + keen::WorldTransform transform; // Offset: 0 + keen::float3 velocity; // Offset: 56 +}; + +struct ecs.PlayerFocus { + keen::WorldPosition position; // Offset: 0 +}; + +struct ecs.StaticTransform { +}; + +struct ecs.StaticTransformDynamic { +}; + +struct ecs.DoNotSave { +}; + +struct ecs.ForceSave { +}; + +struct ecs.PlayerInRange { +}; + +struct ecs.CheckPlayerInRange { + keen::uint8 distanceInMeter; // Offset: 0 +}; + +struct ecs.ServerProgress { +}; + +struct ecs.StoredSceneId { + keen::Guid sceneGuid; // Offset: 0 +}; + +struct ecs.EnemyMarkerSettings { + keen::ObjectReference tag; // Offset: 0 +}; + +struct ecs.TeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool isWaitingForTeleport; // Offset: 1 +}; + +struct ecs.RenderTeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool wasTeleported; // Offset: 1 +}; + +struct ecs.ScaleComponent { + keen::float32 uniformScale; // Offset: 0 +}; + +struct ecs.Velocity { + keen::float3 velocity; // Offset: 0 +}; + +enum class ecs.ImpulseType { + S_Curve = 0, + FadeOut = 1, +}; + +struct ecs.ImpulseData { + keen::float3 impulse; // Offset: 0 + keen::ecs::ImpulseType type; // Offset: 12 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 +}; + +struct ecs.Impulse { + keen::float3 impulse; // Offset: 0 + keen::StaticArray impulses; // Offset: 16 +}; + +struct ecs.OscillateTransform { + keen::float3 center; // Offset: 0 + keen::float3 amplitudeAxis; // Offset: 12 + keen::float32 duration; // Offset: 24 + keen::float32 phase; // Offset: 28 +}; + +struct ecs.EntityId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.OwnerRelationship { + keen::ecs::EntityId ownerEntityId; // Offset: 0 +}; + +struct ecs.SpawnTime { + keen::Time spawnTime; // Offset: 0 +}; + +struct ecs.LifeTime { + keen::Time lifeTime; // Offset: 0 + keen::Time endOfLife; // Offset: 8 + keen::bool enforceDestroy; // Offset: 16 + keen::bool triggeredDestroy; // Offset: 17 +}; + +struct ecs.Aging { + keen::float32 speed; // Offset: 0 +}; + +struct ecs.TintColor { + keen::Color color; // Offset: 0 +}; + +struct ecs.ColorCombinationComponent { + keen::StaticArray colorIds; // Offset: 0 +}; + +enum class HighlightColorIndex { + NoHighlight = 0, + InvalidState = 1, + ValidState = 2, + MutedState = 3, + Group1 = 4, + Group2 = 5, + Group3 = 6, + Group4 = 7, +}; + +struct ecs.HighlightColor { + keen::HighlightColorIndex colorIndex; // Offset: 0 +}; + +struct ecs.Transparency { + keen::float32 transparency; // Offset: 0 +}; + +struct ecs.Ao { + keen::uint8 value; // Offset: 0 +}; + +struct ecs.Hide { + keen::bool isHidden; // Offset: 0 + keen::bool isLocalyHidden; // Offset: 1 +}; + +struct ecs.ModelComponent { + keen::uint32 modelHandle; // Offset: 0 +}; + +enum class ecs.ToggleModifierFlags { + IgnoreToggle = 0, + InvertToggle = 1, + IgnoreToggleOn = 2, + IgnoreToggleOff = 3, +}; + +typedef keen::Bitmask8 ecs.ToggleModifier; + +struct ecs.ModelRenderHint { + keen::bool canReceiveDecals; // Offset: 0 + keen::ecs::ToggleModifier toggleModifier; // Offset: 1 +}; + +struct ecs.ModelDynamic { + keen::ObjectReference lastModel; // Offset: 0 +}; + +struct ecs.ModelResource { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.ModelResourceDynamic { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.VoxelModel { + keen::uint32 renderNode; // Offset: 0 +}; + +struct ecs.VoxelModelVolatile { + keen::uint32 pendingRenderNode; // Offset: 4 + keen::ObjectReference lastModel; // Offset: 8 + keen::uint8 lastMaterialOverride; // Offset: 24 + keen::bool isVoxelModelChangePending; // Offset: 25 +}; + +struct ecs.VoxelModelResourceComponent { + keen::ObjectReference model; // Offset: 0 + keen::uint8 materialOverride; // Offset: 16 +}; + +struct ecs.SnowDisplacementComponent { + keen::uint32 bodyHandle; // Offset: 0 + keen::float3 localOffset; // Offset: 4 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 + keen::float32 heightNoiseScale; // Offset: 24 +}; + +struct ecs.DungeonTriggerTypeComponent { + keen::ObjectReference triggerSetup; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent2 { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.VfxComponentResource { + keen::VfxReference vfx; // Offset: 0 +}; + +struct ecs.VfxResourceDynamic { + keen::VfxReference vfx; // Offset: 0 +}; + +struct VfxUserEffectParameterDataBlock { + keen::StaticArray data; // Offset: 0 +}; + +struct ecs.VfxParametersTemplateComponent { + keen::VfxUserEffectParameterDataBlock parameters; // Offset: 0 +}; + +struct ecs.VfxParametersOverwriteComponent { + keen::bool useVfxDefaultParameters; // Offset: 0 + keen::VfxUserEffectParameterDataBlock parameters; // Offset: 4 +}; + +struct ecs.OverrideLevel { + keen::uint32 newLevel; // Offset: 0 +}; + +struct ecs.ToggleTimer { + keen::Time timer; // Offset: 0 + keen::ecs::ToggleModifier toggleModifier; // Offset: 8 + keen::bool timerRunning; // Offset: 9 + keen::Time lastToggleChange; // Offset: 16 +}; + +struct ecs.DestroyOnState { + keen::bool wasInOppositeState; // Offset: 0 + keen::bool targetState; // Offset: 1 + keen::bool triggered; // Offset: 2 +}; + +struct ecs.FxComponent { + keen::uint32 fxHandle; // Offset: 0 + keen::ecs::ToggleModifier toggleModifier; // Offset: 4 +}; + +struct ecs.VfxAnimationIdParameter { +}; + +struct ecs.Offset { + keen::float3 localOffset; // Offset: 0 + keen::float3 worldOffset; // Offset: 12 + keen::Quaternion orientationOffset; // Offset: 24 +}; + +struct ecs.VfxComponent { + keen::ecs::Offset attachmentOffset; // Offset: 8 + keen::AttachmentSlot slot; // Offset: 48 + keen::bool attachToParent; // Offset: 49 +}; + +enum class ecs.TargetType { + Combat = 0, + Teleport = 1, + Interaction = 2, + ItemInteraction = 3, + Dismantle = 4, + DismantleFallback = 5, + Hook = 6, + HookFallback = 7, + HookAttached = 8, + SpawnPoint = 9, + Picking = 10, + LastVisitedBase = 11, + ViceralAttack = 12, + HardLockCandidate = 13, + GuardingEnemy = 14, + NpcAssignment = 15, + Count = 16, +}; + +struct ecs.VfxTargetedComponent { + keen::ecs::TargetType targetType; // Offset: 52 + keen::float3 targetPosition; // Offset: 56 + keen::bool updateTargetPosition; // Offset: 68 +}; + +struct ecs.TargetEntity { + keen::ecs::EntityId targetId; // Offset: 0 +}; + +struct ecs.TargetPosition { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.VfxTargetParameter { + keen::AttachmentSlot targetSlot; // Offset: 0 + keen::ecs::Offset targetAttachmentOffset; // Offset: 4 + keen::bool attachToTarget; // Offset: 44 + keen::bool updateSourcePosition; // Offset: 45 +}; + +struct ecs.VfxComponentVolatile { + keen::VfxReference lastVfx; // Offset: 52 +}; + +typedef keen::ObjectReference NotifierReference; + +struct ecs.VfxOnResourceDrop { + keen::NotifierReference notifier; // Offset: 0 + keen::SoundContainerReference sfx; // Offset: 16 + keen::VfxReference vfx; // Offset: 32 +}; + +struct ecs.ToggleDelay { + keen::Time delay; // Offset: 0 +}; + +struct ecs.ToggleState { + keen::bool state; // Offset: 0 + keen::Time lastChange; // Offset: 8 +}; + +struct ecs.ServerToggleState { +}; + +struct ecs.NetworkToggleState { +}; + +struct ecs.ClientToggleState { +}; + +struct ecs.ToggleNotifier { + keen::Time lastEvent; // Offset: 0 + keen::ecs::ToggleModifier flags; // Offset: 8 + keen::NotifierReference notifier; // Offset: 12 + keen::Time duration; // Offset: 32 + keen::AttachmentSlot sourceSlot; // Offset: 40 + keen::ecs::Offset sourceAttachmentOffset; // Offset: 44 + keen::bool attachToSource; // Offset: 84 + keen::AttachmentSlot targetSlot; // Offset: 85 + keen::ecs::Offset targetAttachmentOffset; // Offset: 88 + keen::bool attachToTarget; // Offset: 128 + keen::SoundContainerReference sfx; // Offset: 132 + keen::VfxReference vfx; // Offset: 148 +}; + +struct ecs.BaseAnimationGraphInput { + keen::animationgraph::StateIdReference initialAnimationStateIdReference; // Offset: 0 + keen::AnimationGraphInputs animationInputs; // Offset: 16 + keen::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 400 + keen::animationgraph::StateIdHash animationStateId; // Offset: 404 + keen::uint32 retriggerCount; // Offset: 408 +}; + +struct ecs.ServerAnimationGraphInput { + keen::AnimationGraphInputs previousAnimationInputs; // Offset: 416 + keen::uint8 overlayRingbufferIndex; // Offset: 800 +}; + +struct ecs.NetworkAnimationGraphInput { +}; + +struct ecs.ClientAnimationGraphInputLerp { + keen::AnimationGraphInputs source; // Offset: 0 + keen::AnimationGraphInputs target; // Offset: 384 + keen::uint32 tick; // Offset: 768 + keen::bool isSet; // Offset: 772 +}; + +struct ecs.ClientAnimationGraphInput { +}; + +struct ecs.AnimationGraphHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.RenderPoseHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphBaseComponent { + keen::ecs::AnimationGraphHandleValue animationGraphHandle; // Offset: 0 + keen::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 +}; + +struct ecs.AnimationGraphComponent { + keen::ObjectReference usedClothCollider; // Offset: 8 +}; + +struct ecs.AnimationGraphSlotComponent { + keen::bool slotsInitialized; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct ecs.ServerAnimationGraphComponent { +}; + +struct ecs.ServerAnimationGraphSlotComponent { +}; + +struct ecs.AnimationGraphHandleValue2 { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphComponent2 { + keen::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 + keen::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 + keen::Guid clothCollider; // Offset: 8 +}; + +struct ecs.ServerAnimationGraphComponent2 { + keen::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 +}; + +struct ecs.CopyParentAnimationGraphState { +}; + +struct ecs.AnimatedCamera { + keen::AttachmentSlot cameraSlot; // Offset: 0 +}; + +struct ecs.RngState { + keen::uint32 w; // Offset: 0 + keen::uint32 z; // Offset: 4 +}; + +typedef keen::uint8 VoxelMaterialId; + +struct ecs.WorldCollisionResults { + keen::bool hasSpheroidCollision; // Offset: 0 + keen::float3 spheroidNormal; // Offset: 4 + keen::bool hasGroundCollision; // Offset: 16 + keen::bool isGroundWalkable; // Offset: 17 + keen::float3 groundNormal; // Offset: 20 + keen::float3 areaGroundNormal; // Offset: 32 + keen::float32 groundDistance; // Offset: 44 + keen::VoxelMaterialId groundVoxelMaterialId; // Offset: 48 + keen::bool preventFallDamage; // Offset: 49 +}; + +struct ecs.OptionalWorldCollisionResults { + keen::ecs::WorldCollisionResults m_value; // Offset: 0 + keen::bool m_isSet; // Offset: 52 +}; + +struct ecs.WorldCollider { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::float32 maxStepHeightVoxels; // Offset: 8 + keen::float32 maxStepHeightProps; // Offset: 12 + keen::bool onlyCheckPathCollidersWithBundleCheck; // Offset: 16 + keen::float32 yOffset; // Offset: 20 + keen::bool isWorldColliderReady; // Offset: 24 + keen::bool snapToGround; // Offset: 25 + keen::bool hasDetectedSafePositionBelow; // Offset: 26 + keen::ecs::OptionalWorldCollisionResults results; // Offset: 28 +}; + +struct ecs.Gravity { + keen::float3 direction; // Offset: 0 + keen::float32 value; // Offset: 12 + keen::bool isActive; // Offset: 16 +}; + +struct ecs.StaticGravityModifier { + keen::float32 modifier; // Offset: 0 +}; + +struct ecs.Debug { +}; + +typedef keen::ObjectReference ecs.ColliderResponseResourceReference; + +struct ecs.ColliderResponseComponent { + keen::ecs::ColliderResponseResourceReference colliderResponse; // Offset: 0 +}; + +enum class ecs.ColliderResponseFlag { + OrientToNormal = 0, + ApplyLocally = 1, + AttachToSlot = 2, +}; + +typedef keen::Bitmask8 ecs.ColliderResponseFlags; + +enum class ecs.CollisionType { + Hit = 0, + CriticalHit = 1, + Block = 2, + BrokenBlock = 3, + Ineffective = 4, + Immune = 5, + PileUp = 6, + Flattening = 7, + Count = 8, +}; + +struct ecs.ColliderResponseResourceEntry { + keen::SoundContainerReference sfx; // Offset: 0 + keen::VfxReference vfx; // Offset: 16 + keen::string sfxDescription; // Offset: 32 + keen::string vfxDescription; // Offset: 40 + keen::string description; // Offset: 48 + keen::float3 eulerOffset; // Offset: 56 + keen::float3 offset; // Offset: 68 + keen::ecs::CollisionType collisionType; // Offset: 80 + keen::AttachmentSlot slot; // Offset: 81 + keen::ecs::ColliderResponseFlags flags; // Offset: 82 +}; + +struct ecs.ColliderResponseResource { + keen::BlobArray responseEntries; // Offset: 0 + keen::Guid templateId; // Offset: 8 + keen::string templateDescription; // Offset: 24 +}; + +struct ecs.ColliderResponse { + keen::ecs::CollisionType collisionType; // Offset: 0 + keen::SoundContainerReference sfx; // Offset: 4 + keen::VfxReference vfx; // Offset: 20 + keen::float3 eulerOffset; // Offset: 36 + keen::float3 offset; // Offset: 48 + keen::bool applyLocally; // Offset: 60 + keen::bool orientToNormal; // Offset: 61 + keen::bool overrideSlot; // Offset: 62 + keen::AttachmentSlot slot; // Offset: 63 + keen::bool attach; // Offset: 64 +}; + +struct ecs.ColliderResourceComponent { + keen::BlobArray colliders; // Offset: 0 +}; + +typedef keen::ObjectReference CollisionFeedbackMaterialReference; + +typedef keen::HashKey32 ItemId; + +typedef keen::ObjectReference ItemReference; + +enum class PropDamageSusceptibility { + None = 0, + Wood = 1, + Stone = 2, + Metal = 3, +}; + +struct ecs.CollisionFeedbackMaterialComponent { + keen::CollisionFeedbackMaterialReference material; // Offset: 0 + keen::ItemId itemId; // Offset: 16 + keen::ItemReference itemRef; // Offset: 20 + keen::PropDamageSusceptibility propDamageSusceptibility; // Offset: 36 +}; + +struct ecs.ColliderId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.AbstractCollider { + keen::ecs::ToggleModifier toggleModifier; // Offset: 0 + keen::ecs::ColliderId colliderId; // Offset: 8 +}; + +struct ecs.StaticCollider { +}; + +struct ecs.StaticClientCollider { +}; + +enum class ecs.ColliderFlags { + World = 0, + Solid = 1, + Fluid = 2, + Walkable = 3, + WalkablePlatform = 4, + NoNpcMovement = 5, + ClimbingWall = 6, + Combat = 7, + Force = 8, + Steering = 9, + HookShotTarget = 10, + PlacementBlocker = 11, + Interaction = 12, + PathGridInteraction = 13, + Sight = 14, + BlockCameraLoS = 15, + SoundOccluder = 16, +}; + +typedef keen::Bitmask32 ecs.ColliderMask; + +enum class ecs.ColliderMode { + Default = 0, + Sitting = 1, + Lying = 2, + Evading = 3, + ClimbingWall = 4, + Death = 5, + Invisible = 6, +}; + +struct ecs.Collider { + keen::bool isPathBlocker; // Offset: 16 + keen::ecs::ColliderMask disabledCollisions; // Offset: 20 + keen::ecs::ColliderMode activeColliderSetup; // Offset: 24 +}; + +struct ecs.ClientCollider { +}; + +enum class ecs.PlayerSpawnType { + StartLocation = 0, + SavePoint = 1, + Base = 2, +}; + +struct ecs.PlayerSpawnPoint { + keen::ecs::PlayerSpawnType target; // Offset: 0 + keen::StaticArray landingPads; // Offset: 4 +}; + +struct ecs.QueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.IsPlayerInSight { + keen::bool isInSight; // Offset: 0 + keen::ecs::QueryId queryId; // Offset: 4 + keen::Time nextQueryUpdate; // Offset: 8 + keen::ecs::Offset sourceOffset; // Offset: 16 + keen::ecs::Offset targetOffset; // Offset: 56 +}; + +typedef keen::uint8 ecs.LocalPlayerMask; + +struct ecs.IsLocalPlayerInRange { + keen::float32 rangeMargin; // Offset: 0 + keen::ecs::LocalPlayerMask arePlayersInRangeMask; // Offset: 4 +}; + +enum class ecs.TriggerShapeType { + Range = 0, + Box = 1, +}; + +struct ecs.TriggerShape { + keen::ecs::TriggerShapeType shape; // Offset: 0 + keen::float32 rangeX; // Offset: 4 + keen::float32 rangeY; // Offset: 8 + keen::float32 rangeZ; // Offset: 12 + keen::ecs::Offset offset; // Offset: 16 +}; + +enum class FloorMaterialShape { + None = 0, + HalfRadiusClump = 1, + HalfRadiusClumpPeekOut = 2, +}; + +struct ecs.FloorMaterial { + keen::ObjectReference material; // Offset: 0 + keen::float32 radius; // Offset: 16 + keen::FloorMaterialShape shape; // Offset: 20 + keen::float32 noiseStrength; // Offset: 24 +}; + +struct ecs.TriggerShapes { + keen::BlobArray shapes; // Offset: 0 +}; + +struct ecs.FogResistanceState { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.AudioResourceComponent { + keen::SoundContainerReference soundContainer; // Offset: 0 +}; + +struct ecs.AudioComponent { + keen::AttachmentSlot slot; // Offset: 8 + keen::ecs::Offset offset; // Offset: 12 + keen::bool stopOnDestroy; // Offset: 52 + keen::bool attach; // Offset: 53 + keen::bool attachToParent; // Offset: 54 +}; + +struct ecs.AudioComponentVolatile { + keen::SoundContainerReference lastSoundContainer; // Offset: 56 +}; + +struct ecs.AmbientQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.AmbientSystemQuery { + keen::ecs::AmbientQueryId queryId; // Offset: 0 +}; + +typedef keen::HashKey32 LocaTagId; + +struct ecs.UiInteractable { + keen::uint32 handle; // Offset: 0 + keen::LocaTagId verbId; // Offset: 4 + keen::float32 hintRange; // Offset: 8 +}; + +struct ecs.QueryTest { + keen::Time queryTime; // Offset: 0 + keen::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.DespawnLink { + keen::ecs::EntityId parentEntityId; // Offset: 0 + keen::bool despawnOnDeath; // Offset: 4 +}; + +struct ecs.Transform { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 +}; + +struct ecs.CurrentTransform { + keen::WorldTransform transform; // Offset: 0 +}; + +struct ecs.RenderTransform { + keen::WorldTransform transform; // Offset: 0 + keen::WorldTransform interpolationSource; // Offset: 56 + keen::WorldTransform interpolationTarget; // Offset: 112 + keen::uint32 interpolationNewestTick; // Offset: 168 +}; + +struct ecs.SetDataBreakPointMessage { + keen::uint32 entityId; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 4 + keen::uint16 offset; // Offset: 8 + keen::uint8 size; // Offset: 10 + keen::bool write; // Offset: 11 +}; + +struct ecs.ComponentMessageEntry { + keen::BlobString name; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 8 + keen::HashKey32 templateType; // Offset: 12 + keen::uint8 affinity; // Offset: 16 + keen::uint8 queryAffinity; // Offset: 17 +}; + +struct ecs.ComponentMessage { + keen::BlobArray components; // Offset: 0 +}; + +struct ecs.EcsComponentsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.EcsSystemsMask { + keen::uint64 mask; // Offset: 0 +}; + +struct ecs.EcsEventsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.TemplateMessageEntry { + keen::Guid guid; // Offset: 0 + keen::BlobString name; // Offset: 16 + keen::ecs::EcsComponentsMask componentsMask; // Offset: 24 +}; + +struct ecs.TemplateMessage { + keen::BlobArray templates; // Offset: 0 +}; + +struct ecs.EntityMessageEntry { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint32 templateIndex; // Offset: 4 +}; + +struct ecs.TotalEntityMessage { + keen::BlobArray entities; // Offset: 0 +}; + +struct ecs.ChangeEntityMessage { + keen::BlobArray createdEntities; // Offset: 0 + keen::BlobArray destroyedEntities; // Offset: 8 +}; + +struct ecs.TickMessage { + keen::uint32 tick; // Offset: 0 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 entitiesAdded; // Offset: 8 + keen::uint32 entitiesRemoved; // Offset: 12 + keen::uint32 eventCount; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 +}; + +struct ecs.ProgramInfoComponentDependencies { + keen::ecs::EcsComponentsMask required; // Offset: 0 + keen::ecs::EcsComponentsMask optional; // Offset: 72 +}; + +struct ecs.ProgramInfoDependencies { + keen::ecs::ProgramInfoComponentDependencies components; // Offset: 0 + keen::ecs::ProgramInfoComponentDependencies templateComponents; // Offset: 144 + keen::ecs::EcsSystemsMask externalSystems; // Offset: 288 + keen::ecs::EcsComponentsMask entityComponents; // Offset: 296 + keen::ecs::EcsComponentsMask entityTemplates; // Offset: 368 + keen::ecs::EcsEventsMask events; // Offset: 440 + keen::bool isThreadSafe; // Offset: 456 +}; + +struct ecs.ProgramInfoReadWriteDependency { + keen::ecs::ProgramInfoDependencies read; // Offset: 0 + keen::ecs::ProgramInfoDependencies write; // Offset: 464 + keen::ecs::EcsComponentsMask forbiddenComponents; // Offset: 928 + keen::ecs::EcsComponentsMask requiredComponents; // Offset: 1000 +}; + +struct ecs.ProgramId { + keen::uint16 id; // Offset: 0 +}; + +struct ecs.ProgramInfo { + keen::ecs::ProgramId programId; // Offset: 0 + keen::BlobString programName; // Offset: 4 + keen::bool isPresentation; // Offset: 12 + keen::bool isDisabled; // Offset: 13 + keen::bool isSystem; // Offset: 14 + keen::bool isInit; // Offset: 15 + keen::bool noPrediction; // Offset: 16 + keen::bool isDeactivated; // Offset: 17 + keen::bool isDeactivatedPrediction; // Offset: 18 + keen::ecs::ProgramInfoReadWriteDependency dependencies; // Offset: 24 +}; + +struct ecs.ProgramsMessage { + keen::BlobArray programs; // Offset: 0 +}; + +struct ecs.EventTypesMessageEntry { + keen::string name; // Offset: 0 + keen::uint16 size; // Offset: 8 + keen::bool serverRead; // Offset: 10 + keen::bool serverWrite; // Offset: 11 + keen::bool clientRead; // Offset: 12 + keen::bool clientWrite; // Offset: 13 +}; + +struct ecs.EventTypesMessage { + keen::BlobArray events; // Offset: 0 +}; + +struct ecs.ExternalSystemsMessageEntry { + keen::string name; // Offset: 0 + keen::bool readThreadSafe; // Offset: 8 + keen::bool writeThreadSafe; // Offset: 9 + keen::bool serverRead; // Offset: 10 + keen::bool serverWrite; // Offset: 11 + keen::bool clientRead; // Offset: 12 + keen::bool clientWrite; // Offset: 13 +}; + +struct ecs.ExternalSystemsMessage { + keen::BlobArray systems; // Offset: 0 +}; + +struct ecs.TaskSlotsMessageProgram { + keen::uint16 index; // Offset: 0 + keen::uint16 storageCount; // Offset: 2 + keen::uint16 chunkCount; // Offset: 4 + keen::uint32 entityCount; // Offset: 8 +}; + +struct ecs.TaskSlotsMessageEntry { + keen::ecs::EcsComponentsMask componentsRead; // Offset: 0 + keen::ecs::EcsComponentsMask componentsWrite; // Offset: 72 + keen::ecs::EcsSystemsMask systemsRead; // Offset: 144 + keen::ecs::EcsSystemsMask systemsWrite; // Offset: 152 + keen::ecs::EcsComponentsMask entitiesRead; // Offset: 160 + keen::ecs::EcsComponentsMask entitiesWrite; // Offset: 232 + keen::bool isThreadSafe; // Offset: 304 + keen::BlobArray programs; // Offset: 308 +}; + +struct ecs.TaskSlotsMessage { + keen::uint32 tick; // Offset: 0 + keen::BlobArray entries; // Offset: 4 +}; + +struct ecs.SendTaskSlotsMessage { + keen::uint8 dummy; // Offset: 0 +}; + +struct ecs.StartEntityUpdateMessage { + keen::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.StopEntityUpdateMessage { + keen::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.EntityComponentEntry { + keen::uint16 index; // Offset: 0 + keen::uint16 offset; // Offset: 2 + keen::uint16 size; // Offset: 4 +}; + +struct ecs.EntityComponentMessage { + keen::ecs::EntityId entityId; // Offset: 0 + keen::BlobArray components; // Offset: 4 + keen::BlobArray buffer; // Offset: 12 +}; + +struct ecs.EntityTemplateMessage { + keen::Guid templateGuid; // Offset: 0 + keen::BlobArray templateData; // Offset: 16 +}; + +struct ecs.StartTimelineMessage { + keen::BlobArray entityIds; // Offset: 0 +}; + +struct ecs.StopTimelineMessage { + keen::uint8 dummy; // Offset: 0 +}; + +enum class ecs.AdjustTick { + None = 0, + Reset = 1, + Inc = 2, + Dec = 3, +}; + +struct ecs.TimelineFrameMessage { + keen::Time time; // Offset: 0 + keen::Time systemTime; // Offset: 8 + keen::Time lastSystemTime; // Offset: 16 + keen::uint32 tickCount; // Offset: 24 + keen::uint32 currentTick; // Offset: 28 + keen::uint32 lastTick; // Offset: 32 + keen::Time frameDuration; // Offset: 40 + keen::Time frameTime; // Offset: 48 + keen::Time nextTickTime; // Offset: 56 + keen::float32 tickInterpolationFactor; // Offset: 64 + keen::ecs::AdjustTick adjustTick; // Offset: 68 +}; + +struct ecs.UpdateGameTimeMessage { + keen::Time time; // Offset: 0 +}; + +struct ecs.DebugQueryMessage { + keen::ecs::QueryId queryId; // Offset: 0 +}; + +struct ecs.EntityStateComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 size; // Offset: 2 + keen::uint16 offset0; // Offset: 4 + keen::uint16 offset1; // Offset: 6 +}; + +struct ecs.TimelineEntityStateData { + keen::ecs::EntityId entityId; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 + keen::uint32 gridCellId; // Offset: 64 + keen::uint32 dirtyValue; // Offset: 68 + keen::uint32 dataTick; // Offset: 72 + keen::uint16 isCulled; // Offset: 76 + keen::uint16 isCulledPrediction; // Offset: 78 + keen::uint16 playerMask; // Offset: 80 +}; + +struct ecs.TimelineEntityState { + keen::ecs::TimelineEntityStateData entity0; // Offset: 0 + keen::ecs::TimelineEntityStateData entity1; // Offset: 88 + keen::BlobArray components; // Offset: 176 + keen::BlobArray buffer; // Offset: 184 +}; + +struct ecs.TimelineSystemCounts { + keen::uint32 entities; // Offset: 0 + keen::uint32 sceneEntities; // Offset: 4 + keen::uint32 activeSceneChunks; // Offset: 8 +}; + +struct ecs.TimelineCamera { + keen::WorldTransform transform0; // Offset: 0 + keen::WorldTransform transform1; // Offset: 56 +}; + +struct ecs.TimelineSystemUpdateMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::Time frameTime; // Offset: 16 + keen::Time frameDuration; // Offset: 24 + keen::uint32 tick; // Offset: 32 + keen::uint32 lastTick; // Offset: 36 + keen::float32 tickFactor; // Offset: 40 + keen::ecs::TimelineSystemCounts startCounts; // Offset: 44 + keen::ecs::TimelineSystemCounts endCounts; // Offset: 56 + keen::BlobArray createdEntities; // Offset: 68 + keen::BlobArray destroyedEntities; // Offset: 76 + keen::BlobArray entities; // Offset: 84 + keen::ecs::TimelineCamera camera; // Offset: 96 +}; + +struct ecs.TimelineReplicationPriorityEntry { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint16 priority; // Offset: 4 +}; + +struct ecs.TimelineReplicationPriorityMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::BlobArray clientEntries; // Offset: 16 + keen::BlobArray predictionEntries; // Offset: 24 +}; + +enum class ecs.TimelineEntitySkipReason { + NothingChanged = 0, + TooBig = 1, +}; + +struct ecs.TimelineEntitySkipMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::ecs::EntityId entityId; // Offset: 16 + keen::ecs::TimelineEntitySkipReason reason; // Offset: 20 +}; + +struct ecs.TimelineEntitySendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::bool create; // Offset: 14 + keen::ecs::EntityId entityId; // Offset: 16 + keen::BlobArray messageData; // Offset: 20 +}; + +struct ecs.TimelineEntityRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineEntityProcessMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineInputSendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineInputRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineReplicationComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 count; // Offset: 2 + keen::uint16 deltaSize; // Offset: 4 +}; + +struct ecs.TimelineReplicationTemplate { + keen::string name; // Offset: 0 + keen::uint32 checkedEntityCount; // Offset: 8 + keen::uint32 updatedEntityCount; // Offset: 12 + keen::BlobArray components; // Offset: 16 +}; + +struct ecs.TimelineReplicationEvent { + keen::string name; // Offset: 0 + keen::uint32 size; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct ecs.TimelineReplicationStatisticsData { + keen::uint32 prioQueueSize; // Offset: 0 + keen::uint32 dirtyEntities; // Offset: 4 + keen::uint32 changedEntities; // Offset: 8 + keen::uint32 createdEntities; // Offset: 12 + keen::uint32 destroyedEntities; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 + keen::uint32 messageSize; // Offset: 24 + keen::uint32 totalEventCount; // Offset: 28 + keen::uint32 totalEventSize; // Offset: 32 + keen::BlobArray templates; // Offset: 36 + keen::BlobArray events; // Offset: 44 +}; + +struct ecs.TimelineReplicationStatisticsMessage { + keen::Time time; // Offset: 0 + keen::uint32 playerIndex; // Offset: 8 + keen::ecs::TimelineReplicationStatisticsData client; // Offset: 12 + keen::ecs::TimelineReplicationStatisticsData prediction; // Offset: 64 +}; + +struct ecs.TimelinePredictionEntityState { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint32 dataTick; // Offset: 4 + keen::bool isDirty; // Offset: 8 + keen::bool isDestroyed; // Offset: 9 + keen::BlobArray components; // Offset: 12 + keen::BlobArray buffer; // Offset: 20 +}; + +struct ecs.TimelinePredictionUpdateMessage { + keen::Time time; // Offset: 0 + keen::uint32 startTick; // Offset: 8 + keen::uint32 clientTick; // Offset: 12 + keen::uint32 lastTick; // Offset: 16 + keen::uint32 sourceTick; // Offset: 20 + keen::BlobArray entities; // Offset: 24 +}; + +struct ecs.TimelinePredictionTickMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::uint32 tick; // Offset: 16 + keen::BlobArray entities; // Offset: 20 +}; + +struct ecs.SceneCellEntity { + keen::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::uint16 templateIndex; // Offset: 16 + keen::uint16 clientCulledMask; // Offset: 18 + keen::uint16 predictionCulledMask; // Offset: 20 + keen::bool isUncullable; // Offset: 22 + keen::bool hasPosition; // Offset: 23 + keen::bool isDynamic; // Offset: 24 +}; + +struct ecs.SceneCellMessage { + keen::uint2 cellPosition; // Offset: 0 + keen::uint32 cellIndex; // Offset: 8 + keen::BlobArray entities; // Offset: 12 + keen::uint32 sceneEntityCount; // Offset: 20 +}; + +enum class ecs.SceneChunkState { + Unloaded = 0, + Load = 1, + Loaded = 2, + Unload = 3, +}; + +struct ecs.SceneChunkEntry { + keen::ecs::SceneChunkState state; // Offset: 0 + keen::bool isActive; // Offset: 1 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 destroyedEntityCount; // Offset: 8 + keen::Time unloadAge; // Offset: 16 +}; + +struct ecs.SceneChunksMessage { + keen::BlobArray chunks; // Offset: 0 +}; + +struct ecs.SceneZoneBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +struct ecs.SceneBuildZonesMessage { + keen::BlobArray allowedZones; // Offset: 0 + keen::BlobArray forbiddenZones; // Offset: 8 + keen::BlobArray activeZones; // Offset: 16 + keen::BlobArray playableZones; // Offset: 24 +}; + +struct ecs.SceneMessage { + keen::Guid sceneGuid; // Offset: 0 + keen::uint2 sceneChunkSize; // Offset: 16 + keen::uint2 entityGridSize; // Offset: 24 + keen::float32 entityGridCellSize; // Offset: 32 +}; + +enum class ecs.SceneControlMessageType { + Start = 0, + Stop = 1, +}; + +struct ecs.SceneControlMessage { + keen::ecs::SceneControlMessageType type; // Offset: 0 +}; + +struct ecs.SceneHotPointsMessage { + keen::BlobArray hotPoints; // Offset: 0 +}; + +struct ecs.SceneHotPointsFile { + keen::BlobArray hotPoints; // Offset: 0 +}; + +struct ecs.ScenePlayerCamera { + keen::float3 position; // Offset: 0 + keen::float yRotation; // Offset: 12 +}; + +struct ecs.ScenePlayerCamerasMessage { + keen::StaticArray cameras; // Offset: 0 +}; + +struct ecs.SceneChunkResetMessage { + keen::uint32 chunkIndex; // Offset: 0 +}; + +enum class ecs.QueryFlag { + OnlyPlayer = 0, + NoPlayers = 1, + SortByDistance = 2, + CheckLineOfSight = 3, + PreferHullIntersection = 4, + KeepResults = 5, + OnlyPathBlockers = 6, + NoPathBlockers = 7, + AbortAfterFirstMatch = 8, + DrawDebug = 9, +}; + +typedef keen::Bitmask16 ecs.QueryFlags; + +struct AxisAlignedBox { + keen::Vector3 min; // Offset: 0 + keen::Vector3 max; // Offset: 16 +}; + +struct ecs.SceneColliderQueryEntry { + keen::ecs::QueryId queryId; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 4 + keen::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::ecs::QueryFlags flags; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::AxisAlignedBox colliderAabb; // Offset: 32 + keen::string debugName; // Offset: 64 + keen::uint32 resultCount; // Offset: 72 + keen::bool checkWorldTriangles; // Offset: 76 +}; + +struct ecs.RangeQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.SceneRangeQueryEntry { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 4 + keen::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::uint16 componentId; // Offset: 16 + keen::AxisAlignedBox aabb; // Offset: 32 + keen::float32 range; // Offset: 64 + keen::string debugName; // Offset: 68 + keen::uint32 resultCount; // Offset: 76 +}; + +struct ecs.SceneQueriesMessage { + keen::uint32 triangleQueryCount; // Offset: 0 + keen::BlobArray colliderQueries; // Offset: 4 + keen::BlobArray rangeQueries; // Offset: 12 +}; + +struct ecs.TimeControlMessage { + keen::sint16 tickDelta; // Offset: 0 + keen::Time sleep; // Offset: 8 + keen::Time sleepOnce; // Offset: 16 +}; + +struct ecs.DestroyEntityMessage { + keen::ecs::EntityId entityId; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateReference; + +struct HolisticMapFilterTemplateEntry { + keen::ecs::TemplateReference templateReference; // Offset: 0 + keen::bool showChildTemplates; // Offset: 16 +}; + +enum class ecs.TestState { + Destroyed = 0, + Create = 1, + Created = 2, + Destroy = 3, +}; + +struct ecs.TestA { + keen::Time time; // Offset: 0 + keen::uint32 state; // Offset: 8 + keen::ecs::TestState stateB; // Offset: 12 + keen::ecs::TestState stateC; // Offset: 13 + keen::ecs::TestState stateD; // Offset: 14 +}; + +struct ecs.TestB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestC { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestD { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestTemplateA { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateA { + keen::uint32 defValue; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct ecs.TestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTypeTestTemplate { + keen::BlobArray values; // Offset: 0 +}; + +struct ecs.TestBase { + keen::BlobString name; // Offset: 0 +}; + +struct ecs.DynamicTestBase { + keen::uint32 value; // Offset: 0 + keen::uint32 notSave; // Offset: 4 + keen::ecs::EntityId mainEntity; // Offset: 8 + keen::Time start; // Offset: 16 + keen::Time duration; // Offset: 24 +}; + +struct ecs.TestBaseEntry { + keen::uint32 value; // Offset: 0 + keen::ecs::EntityId spouseId; // Offset: 4 + keen::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.TestBaseEntryServer { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryTemplateClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntrySpawnClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryAddClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.Event { +}; + +struct ecs.TestEvent1 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEvent2 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEventCreate { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.GridId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.PathQueryId { + keen::uint32 id; // Offset: 0 +}; + +enum class ecs.QueryResultFlag { + Hit = 0, + QueryNew = 1, + UpdateNew = 2, + OutOfSight = 3, + User2 = 4, + User3 = 5, + User4 = 6, + User5 = 7, +}; + +typedef keen::Bitmask8 ecs.QueryResultFlags; + +enum class ecs.CollisionCheckFlag { + PreferHullIntersection = 0, + Moved = 1, +}; + +typedef keen::Bitmask8 ecs.CollisionCheckFlags; + +struct ecs.Template { + keen::bool predictEntity; // Offset: 0 + keen::bool farCulling; // Offset: 1 + keen::bool questEntity; // Offset: 2 +}; + +struct ecs.TemplateResource { + keen::string name; // Offset: 0 + keen::bool predictEntity; // Offset: 8 + keen::bool farCulling; // Offset: 9 + keen::BlobArray> components; // Offset: 12 +}; + +typedef keen::ObjectReference ecs.TemplateResourceReference; + +struct ecs.TemplateSubDirectory { +}; + +struct ecs.TemplateDirectory { +}; + +struct ecs.TemplateCollectionResource { + keen::BlobArray templates; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateCollectionReference; + +struct ecs.ServerInfo { + keen::Time minDuration; // Offset: 0 + keen::Time avgDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 + keen::uint32 sceneEntityCount; // Offset: 24 + keen::uint32 dynamicEntityCount; // Offset: 28 + keen::uint32 sceneChunkCount; // Offset: 32 + keen::uint32 bandwidth; // Offset: 36 +}; + +struct ecs.ColliderFlagData { + keen::ecs::ColliderMask isA; // Offset: 0 + keen::ecs::ColliderMask checkAgainst; // Offset: 4 +}; + +struct ecs.ColliderModeSetup { + keen::bool defaultMode; // Offset: 0 + keen::bool sitting; // Offset: 1 + keen::bool lying; // Offset: 2 + keen::bool evading; // Offset: 3 + keen::bool climbingWall; // Offset: 4 + keen::bool death; // Offset: 5 + keen::bool invisible; // Offset: 6 +}; + +struct ecs.ColliderData { + keen::bool enabled; // Offset: 0 + keen::ecs::ColliderFlagData flags; // Offset: 4 + keen::float3 offset; // Offset: 12 + keen::Quaternion orientation; // Offset: 24 + keen::float32 stickyness; // Offset: 40 + keen::ecs::ColliderModeSetup colliderModeSetup; // Offset: 44 + keen::bool preventFallDamage; // Offset: 51 + keen::bool isSnappingBox; // Offset: 52 +}; + +struct ecs.SphereColliderData { + keen::SphereColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 60 +}; + +struct ecs.SpheroidColliderData { + keen::SpheroidColliderShape shape; // Offset: 56 +}; + +struct ecs.CapsuleColliderData { + keen::CapsuleColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 64 +}; + +struct ecs.SegmentColliderData { + keen::SegmentColliderShape shape; // Offset: 56 +}; + +struct ecs.MovingSphereColliderData { + keen::SphereColliderShape sphereShape; // Offset: 56 + keen::SegmentColliderShape segmentShape; // Offset: 60 +}; + +struct ecs.BoxColliderData { + keen::BoxColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 68 +}; + +struct ecs.LineSegment { + keen::Vector3 p0; // Offset: 0 + keen::Vector3 p1; // Offset: 16 +}; + +struct ecs.SegmentBundleColliderData { + keen::StaticArray segments; // Offset: 64 +}; + +typedef keen::BlobArray> ecs.ColliderDataArray; + +enum class ecs.ColliderResolveFlag { + Continuous = 0, +}; + +typedef keen::Bitmask8 ecs.ColliderResolveMask; + +struct ecs.ColliderResourceData { + keen::ecs::ColliderDataArray dataArray; // Offset: 0 + keen::ecs::ColliderFlagData combinedFlags; // Offset: 8 + keen::ecs::ColliderResolveMask resolveMask; // Offset: 16 +}; + +struct ecs.CollisionEvent { + keen::ecs::EntityId entityA; // Offset: 0 + keen::ecs::EntityId entityB; // Offset: 4 + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::float32 sqrDistance; // Offset: 32 + keen::float32 overlap; // Offset: 36 + keen::ecs::ColliderMask colliderFlagsA; // Offset: 40 + keen::ecs::ColliderMask colliderFlagsB; // Offset: 44 + keen::uint8 voxelMaterialId; // Offset: 48 +}; + +enum class ecs.EntitySpawnValue { + Velocity = 0, + TintColor = 1, + TriggerRange = 2, + TriggerRange2 = 3, + TriggerRange3 = 4, + TriggerId_Unused = 5, + ItemId = 6, + EnemySettings = 7, + RandomSpawnerSetting_AllowUpScaling = 8, + RandomSpawnerSetting_AllowDownScaling = 9, + RandomSpawnerSetting_MinSpawnerAmount = 10, + EnemyTestFlags = 11, + Level = 12, + EnemyMarkerTag = 13, + TeleporterId = 14, + TeleportTargetId = 15, + JumpParameters = 16, +}; + +typedef keen::Bitmask32 ecs.EntitySpawnValueMask; + +enum class ecs.EnemyFeature { + UseTaunt = 0, + UseThreatSystem = 1, + UseBlocking = 2, + Move = 3, + Prowl = 4, + Rotate = 5, + RotateWhileStanding = 6, + Patrol = 7, + Roaming = 8, + ShowSpawnSequence = 9, + ReturnHome = 10, + FleeHome = 11, + Combat = 12, + Interact = 13, + TriggerAlarm = 14, + CallForHelp = 15, + Run = 16, + IdleTurn = 17, + BlockProjectiles = 18, + SearchForCover = 19, + MoveToMarker = 20, + Sleep = 21, + RunAround = 22, + Circling = 23, +}; + +typedef keen::Bitmask32 ecs.EnemyFeatureMask; + +struct ecs.EnemyMarkerTag { +}; + +typedef keen::ObjectReference actor.ActorSequenceReference; + +struct ecs.EnemySettings { + keen::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::ecs::EnemyFeatureMask enabledFeatures; // Offset: 16 + keen::ecs::EnemyFeatureMask disabledFeatures; // Offset: 20 + keen::float32 checkDistance; // Offset: 24 + keen::ObjectReference requiredMarkerTag; // Offset: 28 + keen::actor::ActorSequenceReference spawnSequence; // Offset: 44 + keen::float32 maxTargetDistanceToHomeZone; // Offset: 60 +}; + +enum class ecs.RandomSpawnerSetting { + AllowUpScaling = 0, + AllowDownScaling = 1, + MinSpawnerAmount = 2, +}; + +typedef keen::Bitmask8 ecs.RandomSpawnerSettingMask; + +enum class ecs.RandomSpawnerAmount { + Few = 0, + Normal = 1, + Many = 2, + Extreme = 3, +}; + +struct ecs.RandomSpawnerSettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 + keen::ecs::RandomSpawnerSettingMask changedSettings; // Offset: 3 +}; + +struct ecs.RandomSpawnerEntitySettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 +}; + +struct ecs.EntitySpawnData { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::ecs::EntityId parentEntityId; // Offset: 28 + keen::Time spawnTime; // Offset: 32 + keen::uint64 randomSeed; // Offset: 40 + keen::float3 velocity; // Offset: 48 + keen::Color tintColor; // Offset: 60 + keen::float32 triggerRange; // Offset: 64 + keen::float32 triggerRange2; // Offset: 68 + keen::float32 triggerRange3; // Offset: 72 + keen::HashKey32 itemId; // Offset: 76 + keen::ecs::EnemySettings enemySettings; // Offset: 80 + keen::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 144 + keen::sint32 level; // Offset: 148 + keen::ecs::EntitySpawnValueMask mask; // Offset: 152 +}; + +enum class ecs.PathGridType { + Default = 0, + Flying = 1, +}; + +enum class ecs.PathNodeType { + None = 0, + Tar = 1, + Mud = 2, + Road = 3, + Fog = 4, + DeadlyFog = 5, + Lava = 6, + Building = 7, + Collider = 8, + WalkablePlatform = 9, + NoNpcMovementCollider = 10, + NoNpcMovementTerrain = 11, + NoNpcMovementBuilding = 12, + NpcAvoid = 13, + ClosedDoor = 14, +}; + +struct ecs.PathNodeCostFactors { + keen::float32 none; // Offset: 0 + keen::float32 building; // Offset: 4 + keen::float32 collider; // Offset: 8 + keen::float32 walkablePlatform; // Offset: 12 + keen::float32 tar; // Offset: 16 + keen::float32 mud; // Offset: 20 + keen::float32 road; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 deadlyFog; // Offset: 32 + keen::float32 lava; // Offset: 36 + keen::float32 noNpcMovement; // Offset: 40 + keen::float32 npcAvoid; // Offset: 44 + keen::float32 closedDoor; // Offset: 48 +}; + +typedef keen::Bitmask16 ecs.PathNodeTypeMask; + +struct ecs.PathGridMaterialSettings { + keen::ecs::PathNodeType pathNodeType; // Offset: 0 +}; + +typedef keen::StaticArray ecs.PathGridMaterialSettingsArray; + +struct ecs.PathNodeRequirements { + keen::ecs::PathNodeTypeMask requiredTypes; // Offset: 0 + keen::ecs::PathNodeTypeMask forbiddenTypes; // Offset: 2 +}; + +enum class ecs.PathQueryTargetType { + Default = 0, + PreferClosestTargetNode = 1, + UseClosestTargetNodeAsFallback = 2, +}; + +enum class ecs.PathMoveType { + Move = 0, + JumpUp = 1, + JumpDown = 2, + OpenDoor = 3, +}; + +typedef keen::Bitmask8 ecs.PathMoveTypeMask; + +enum class ecs.PathQueryCheck { + None = 0, + EnsureFreePath = 1, + EnsureOccupiedPath = 2, +}; + +struct ecs.PathGridDistance { + keen::uint32 halfMeters; // Offset: 0 +}; + +enum class ecs.PathGridInteractionType { + None = 0, + OpenedDoor = 1, + ClosedDoor = 2, + MovingObject = 3, +}; + +struct ecs.PathfindingHeightDifferenceSettings { + keen::float terrain; // Offset: 0 + keen::float building; // Offset: 4 + keen::float collider; // Offset: 8 +}; + +struct ecs.PathfindingSettings { + keen::ecs::PathfindingHeightDifferenceSettings maxHeightDifferenceSettings; // Offset: 0 +}; + +enum class ecs.LerpTransformTarget { + ClimbingTransformStart = 0, + ClimbingTransformIntermediate = 1, + ClimbingTransformEnd = 2, +}; + +struct ecs.AlignedBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +enum class enemy01.CombatState { + None = 0, + Move = 1, + Attack = 2, + AttackExecution = 3, + Block = 4, + Prowl = 5, + TurnBeforeTaunt = 6, + Taunt = 7, + TurnBeforeCallForHelp = 8, + CallForHelp = 9, + Turn = 10, + TriggerAlarm = 11, + CustomBehavior = 12, + TargetNotReachable = 13, + TargetOutsideLeash = 14, + ContinuousMovement = 15, + SearchForCover = 16, + RunAround = 17, +}; + +typedef keen::Bitmask32 enemy01.CombatStateMask; + +enum class enemy01.State { + Invalid = 0, + Start = 1, + Idle = 2, + Dead = 3, + Spawning = 4, + Combat = 5, + ReturnHome = 6, + FleeHome = 7, + WaitAtHome = 8, + ReactToNoise = 9, + Patrol = 10, + TurnAfterPatrol = 11, + WaitAfterPatrol = 12, + ControlledByAttack = 13, + Roaming = 14, + Flee = 15, + WaitAfterFlee = 16, + Falling = 17, + Hit = 18, + Guard = 19, + Interact = 20, + Landing = 21, + BlockProjectile = 22, + MoveToMarker = 23, + Sleep = 24, + Circling = 25, +}; + +enum class enemy01.EnemyClass { + Melee = 0, + Ranger = 1, + Mage = 2, +}; + +typedef keen::Bitmask32 enemy01.StateMask; + +enum class enemy01.StateUpdateType { + OnEnter = 0, + OnExecute = 1, + OnExit = 2, +}; + +enum class enemy01.StateCondition { + Death = 0, + TargetSelected = 1, + TargetLost = 2, + IsFinished = 3, + TargetUnreachable = 4, + NoiseHeard = 5, + ProjectileHeard = 6, + IsReadyToPatrol = 7, + IsReadyToInteract = 8, + IsReadyToTriggerAlarm = 9, + IsControlledByAttack = 10, + IsReadyForRoaming = 11, + IsReadyForCircling = 12, + WantsToFlee = 13, + HasBeenHit = 14, + IsFalling = 15, + HitReaction = 16, + NeedsToGuard = 17, + WantsToLand = 18, + NeedsToTurn = 19, + CanMoveToMarker = 20, + WantsToSleep = 21, +}; + +struct enemy01.EnemyVariable { +}; + +typedef keen::ObjectReference enemy01.EnemyVariableReference; + +struct enemy01.AbilityConstrain { + keen::bool negated; // Offset: 0 +}; + +struct enemy01.DistanceConstrain { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct enemy01.VerticalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.HorizontalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.ClearPathConstrain { + keen::bool checkSolidColliders; // Offset: 1 + keen::bool checkSteeringColliders; // Offset: 2 +}; + +struct enemy01.CooldownConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.StateConstrain { + keen::enemy01::StateMask states; // Offset: 4 +}; + +struct enemy01.CombatStateConstrain { + keen::enemy01::CombatStateMask combatStates; // Offset: 4 +}; + +struct enemy01.StateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.CurrentCombatStateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.IsRetaliateAllowedConstrain { + keen::bool isAllowed; // Offset: 1 +}; + +struct enemy01.IsTargetOfMyTargetConstrain { + keen::bool isTargetOfMyTarget; // Offset: 1 +}; + +struct enemy01.LastHitReceivedConstrain { + keen::Time minDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 +}; + +struct enemy01.ThreatConstrain { + keen::float32 minThreat; // Offset: 4 +}; + +struct enemy01.AngleToTargetConstrain { + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.AngleFromSlotToTargetConstraint { + keen::AttachmentSlot slot; // Offset: 1 + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.IsInAttackRangeConstrain { +}; + +struct enemy01.IsInPhaseConstrain { + keen::ObjectReference phase; // Offset: 4 + keen::Time minDuration; // Offset: 24 +}; + +struct enemy01.IsLastPhaseConstraint { + keen::ObjectReference phase; // Offset: 4 +}; + +enum class ecs.HitEventFlags { + WasBlocked = 0, + WasParried = 1, + WasBlockBroken = 2, + WasCrit = 3, + WasVisceral = 4, + WasBackstab = 5, + WasWeakspot = 6, + WasSkillShot = 7, + WasResistance = 8, + WasImmune = 9, + WasIneffective = 10, + HideIneffective = 11, + HideEffective = 12, + WasKillingBlow = 13, + WasHealing = 14, + WasTerrain = 15, + WasBuilding = 16, + WasPileUp = 17, + WasFlattening = 18, + UseHitDirectionForPushBack = 19, +}; + +typedef keen::Bitmask32 ecs.HitEventFlagMask; + +struct enemy01.HasBeenHitInCurrentPhaseConstrain { + keen::ecs::HitEventFlagMask requiredHitEventFlags; // Offset: 4 +}; + +enum class actor.StateFlag { + Grounded = 0, + Jumping = 1, + Blocking = 2, + Dodging = 3, + ParryOportunity = 4, + BlockOpportunity = 5, + Exhausted = 6, + Dead = 7, + Sheltered = 8, + Sitting = 9, + PlayingInstrument = 10, + Sleeping = 11, + Spawning = 12, + InFog = 13, + Warm = 14, + Wet = 15, + Cold = 16, + Freezing = 17, + InSneakMode = 18, + Unhappy = 19, + HasAggro = 20, + InCombat = 21, + InRangeCombat = 22, + InRangeCombatPreparing = 23, + InRangeCombatShooting = 24, + InRangeCombatKeepTarget = 25, + InSnappingLerp = 26, + Cooking = 27, + Falling = 28, + Climbing = 29, + ClimbingTransition = 30, + Attached = 31, + HangGliding = 32, + AttachedToHook = 33, + Flying = 34, + TurnSequence = 35, + CanPayUsageCosts = 36, + Invisible = 37, + EnemyPrepareAttack = 38, + IsAnythingAbove = 39, + IsReadyForGameplay = 40, + IsActionOpportunityTriggered = 41, + WantsToMove = 42, + HandsFree = 43, + IsWorking = 44, + Petting = 45, +}; + +typedef keen::Bitmask64 actor.StateMask; + +struct enemy01.CombatTargetStateFlagsConstrain { + keen::actor::StateMask flags; // Offset: 8 +}; + +struct enemy01.IsAttackSelectedConstrain { + keen::actor::ActorSequenceReference attackSequence; // Offset: 4 +}; + +struct enemy01.IsAnyAttackSelectedConstraint { +}; + +struct enemy01.EnemyHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.CurrentTargetHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.IsPlayerTargetConstrain { + keen::bool isPlayer; // Offset: 1 +}; + +struct enemy01.TargetActorStatesConstrain { + keen::actor::StateMask requiredStates; // Offset: 8 + keen::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.ActorStatesConstrain { + keen::actor::StateMask requiredStates; // Offset: 8 + keen::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.HasCombatTargetConstrain { +}; + +struct enemy01.NeedsToFlee { +}; + +struct enemy01.RandomChanceConstrain { + keen::float32 chance; // Offset: 4 +}; + +struct enemy01.IsGroupLeaderConstrain { +}; + +struct enemy01.IsGroupMemberConstrain { +}; + +struct enemy01.IsGuardingPlayerConstraint { +}; + +struct enemy01.IsTargetInHomeZoneConstraint { +}; + +struct enemy01.TargetDistanceToHomeZoneConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.IsTargetReachableConstraint { +}; + +struct enemy01.IsVariableSetConstraint { + keen::enemy01::EnemyVariableReference variable; // Offset: 4 +}; + +struct enemy01.Ability { + keen::actor::ActorSequenceReference actionSequence; // Offset: 0 +}; + +struct enemy01.AbilitySelectionContrains { +}; + +struct enemy01.AbilityExecutionContrains { +}; + +struct enemy01.AbilityAbortConstraints { +}; + +typedef keen::BlobArray> enemy01.AbilityConstrains; + +enum class enemy01.AttackStyle { + Normal = 0, + Retaliate = 1, + Special = 2, + Initiate = 3, + InitiateFollowUp = 4, + Teleport = 5, + Dash = 6, + Jump = 7, + IgnoreThreat = 8, +}; + +typedef keen::Bitmask16 enemy01.AttackStyleMask; + +enum class enemy01.AttackFlag { + StartAnimationDirectly = 0, + AbortOnWallCollision = 1, + NeedsTurn = 2, + NoPauseAfterAttack = 3, + ContinueMovement = 4, + EnsureFreePath = 5, + CheckDynamicPathBlockers = 6, + DisableLeaning = 7, + EnforceLeaning = 8, + DisableRotation = 9, +}; + +typedef keen::Bitmask16 enemy01.AttackFlagMask; + +enum class enemy01.CombatTargetChangeMode { + KeepCurrentCombatTarget = 0, + SelectRandomCombatTarget = 1, + SelectClosestCombatTarget = 2, + SelectFurthestCombatTarget = 3, +}; + +enum class enemy01.BlockRotationDuration { + None = 0, + Short = 1, + Medium = 2, + Long = 3, +}; + +struct enemy01.Action { +}; + +typedef keen::BlobVariant enemy01.ActionVariant; + +typedef keen::BlobArray enemy01.ActionVariants; + +struct enemy01.AttackActions { +}; + +struct enemy01.AttackConstraints { +}; + +enum class enemy01.AttackCommandMode { + RunInParallel = 0, + PauseDefaultExecution = 1, +}; + +struct enemy01.AttackCommandData { + keen::enemy01::AttackCommandMode mode; // Offset: 0 +}; + +struct enemy01.AttackCommandDescription { +}; + +struct enemy01.AttackCommand { + keen::enemy01::AbilityConstrains constraints; // Offset: 4 + keen::enemy01::ActionVariants actions; // Offset: 12 +}; + +typedef keen::BlobArray enemy01.AttackCommandArray; + +struct enemy01.AttackCommandContainerDescription { +}; + +struct enemy01.AttackData { +}; + +struct enemy01.JumpAttackData { + keen::float32 distanceFactor; // Offset: 0 + keen::float32 minForce; // Offset: 4 + keen::float32 maxForce; // Offset: 8 + keen::float32 height; // Offset: 12 + keen::float32 forwardMomentum; // Offset: 16 +}; + +struct enemy01.DashAttackData { + keen::float32 overshootDistance; // Offset: 0 + keen::float32 lookAheadLength; // Offset: 4 + keen::float32 collisionAvoidanceLength; // Offset: 8 + keen::float32 collisionOffset; // Offset: 12 + keen::float32 decelerateDistance; // Offset: 16 + keen::float32 decelerateEnforceDistance; // Offset: 20 +}; + +struct enemy01.TeleportAttackData { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::uint32 verticalSearchDistance; // Offset: 8 + keen::bool checkLineOfSight; // Offset: 12 + keen::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 14 + keen::float32 minHorizontalSpace; // Offset: 20 + keen::float32 minVerticalSpace; // Offset: 24 +}; + +typedef keen::BlobVariant enemy01.AttackDataVariant; + +struct enemy01.AttackDataDescription { +}; + +struct enemy01.AttackDesscription { + keen::enemy01::AttackStyleMask attackStyle; // Offset: 16 + keen::float32 selectionChance; // Offset: 20 + keen::enemy01::AttackFlagMask flags; // Offset: 24 + keen::float32 threat; // Offset: 28 + keen::float32 minRange; // Offset: 32 + keen::float32 maxRange; // Offset: 36 + keen::float32 maxVerticalRange; // Offset: 40 + keen::ObjectReference cooldownGroupID; // Offset: 44 + keen::float32 speed; // Offset: 60 + keen::float32 acceleration; // Offset: 64 + keen::actor::ActorSequenceReference executionAttackSequence; // Offset: 68 + keen::enemy01::BlockRotationDuration blockRotationDuration; // Offset: 84 + keen::enemy01::CombatTargetChangeMode combatTargetChangeMode; // Offset: 85 +}; + +struct enemy01.AttackDesscriptionResource { + keen::enemy01::AttackDesscription description; // Offset: 0 + keen::enemy01::AbilityConstrains selectionConstrain; // Offset: 88 + keen::enemy01::AbilityConstrains executionConstrain; // Offset: 96 + keen::enemy01::AbilityConstrains abortConstraints; // Offset: 104 + keen::enemy01::AttackCommandArray commands; // Offset: 112 + keen::enemy01::AttackDataVariant data; // Offset: 120 +}; + +enum class enemy01.BehaviorMode { + OnUpdate = 0, + OnEnter = 1, + OnExit = 2, + OnStartAttack = 3, + OnEndAttack = 4, + OnEnterState = 5, + OnExitState = 6, +}; + +struct enemy01.BehaviorExecutionContrains { +}; + +struct enemy01.BehaviorAbortConstraints { +}; + +struct enemy01.BehaviorActions { +}; + +struct enemy01.BehaviorSettings { + keen::Time checkIntervalMin; // Offset: 0 + keen::Time checkIntervalMax; // Offset: 8 + keen::Time cooldownMin; // Offset: 16 + keen::Time cooldownMax; // Offset: 24 + keen::float32 chance; // Offset: 32 +}; + +struct enemy01.BehaviorDesscription { + keen::enemy01::BehaviorMode mode; // Offset: 0 + keen::enemy01::BehaviorSettings settings; // Offset: 8 +}; + +struct enemy01.BehaviorDesscriptionResource { + keen::enemy01::AbilityConstrains executionConstrain; // Offset: 48 + keen::enemy01::AbilityConstrains abortConstraints; // Offset: 56 + keen::enemy01::ActionVariants actions; // Offset: 64 +}; + +typedef keen::ObjectReference enemy01.BehaviorDescriptionReference; + +struct enemy01.BehaviorReferenceDescription { + keen::enemy01::BehaviorDescriptionReference behavior; // Offset: 0 +}; + +struct enemy01.AttackCooldownGroupId { +}; + +struct enemy01.AttackCooldownGroup { + keen::ObjectReference id; // Offset: 0 + keen::Time cooldown; // Offset: 16 +}; + +struct enemy01.BlockRotationSettings { + keen::Time shortBlockRotationDuration; // Offset: 0 + keen::Time mediumBlockRotationDuration; // Offset: 8 + keen::Time longBlockRotationDuration; // Offset: 16 +}; + +struct enemy01.CombatTurnConditions { + keen::float32 minSpeed; // Offset: 0 + keen::Time minWalkDuration; // Offset: 8 +}; + +struct enemy01.LeaningSettings { + keen::enemy01::CombatStateMask combatStates; // Offset: 0 + keen::AttachmentSlot slot; // Offset: 4 +}; + +struct enemy01.CombatJumpMoveSettings { + keen::bool useJumpMoveIfTargetIsNotReachable; // Offset: 0 + keen::Time minJumpMoveDuration; // Offset: 8 + keen::Time maxJumpMoveDuration; // Offset: 16 + keen::uint8 maxJumpUpHeight; // Offset: 24 + keen::uint8 maxJumpDownHeight; // Offset: 25 +}; + +struct enemy01.AttackMoveSettings { + keen::bool alwaysLookAtCombatTarget; // Offset: 0 +}; + +struct enemy01.SleepDaytimeSetting { + keen::float chance; // Offset: 0 + keen::Time minSleepDuration; // Offset: 8 + keen::Time maxSleepDuration; // Offset: 16 +}; + +struct enemy01.SleepSetup { + keen::enemy01::SleepDaytimeSetting daySettings; // Offset: 0 + keen::enemy01::SleepDaytimeSetting nightSettings; // Offset: 24 + keen::Time minInitialCheckDelay; // Offset: 48 + keen::Time maxInitialCheckDelay; // Offset: 56 + keen::Time minCheckInterval; // Offset: 64 + keen::Time maxCheckInterval; // Offset: 72 + keen::animationgraph::StateIdReference sleepAnimation; // Offset: 80 +}; + +struct enemy01.CombatSetup { + keen::float32 preferedDistance; // Offset: 0 + keen::float32 preferedDistanceVariation; // Offset: 4 + keen::float32 preferedDistanceEngaged; // Offset: 8 + keen::float32 preferedDistanceEngagedVariation; // Offset: 12 + keen::float32 maxVerticalDistance; // Offset: 16 + keen::float32 maxPlayerTargetDistance; // Offset: 20 + keen::float32 maxNonPlayerTargetDistance; // Offset: 24 + keen::uint8 retaliateCount; // Offset: 28 + keen::BlobArray cooldownGroups; // Offset: 32 + keen::float32 walkStartDistance; // Offset: 40 + keen::float32 runStartDistance; // Offset: 44 + keen::float32 runEndDistance; // Offset: 48 + keen::float32 combatRotationSpeedFactor; // Offset: 52 + keen::animationgraph::StateIdReference combatIdleAnimation; // Offset: 56 + keen::enemy01::BlockRotationSettings blockRotationSettings; // Offset: 72 + keen::Time minAttackDuration; // Offset: 96 + keen::Time maxAttackDuration; // Offset: 104 + keen::enemy01::CombatTurnConditions turnConditions; // Offset: 112 + keen::enemy01::LeaningSettings leaningSettings; // Offset: 128 + keen::enemy01::CombatJumpMoveSettings jumpMoveSettings; // Offset: 136 + keen::enemy01::AttackMoveSettings attackMoveSettings; // Offset: 168 +}; + +struct enemy01.BlockingSetup { + keen::actor::ActorSequenceReference blockSequence; // Offset: 0 + keen::Time minBlockDuration; // Offset: 16 + keen::Time maxBlockDuration; // Offset: 24 + keen::Time maxTotalBlockDuration; // Offset: 32 + keen::Time minBlockHitExtendDuration; // Offset: 40 + keen::Time maxBlockHitExtendDuration; // Offset: 48 + keen::float32 blockAfterHitChance; // Offset: 56 + keen::bool activateBlockAtStart; // Offset: 60 + keen::bool autoToggleBlock; // Offset: 61 + keen::float32 autoToggleBlockMaxDistance; // Offset: 64 + keen::bool useBlockWalk; // Offset: 68 + keen::animationgraph::StateIdReference blockWalkAnimation; // Offset: 72 + keen::float32 minBlockProjectileDistance; // Offset: 88 + keen::float32 maxBlockProjectileDistance; // Offset: 92 +}; + +struct enemy01.HomeZoneSetup { + keen::float32 radius; // Offset: 0 +}; + +struct enemy01.AggroPoolSetup { + keen::float32 maxValue; // Offset: 0 +}; + +struct enemy01.AggroPools { + keen::enemy01::AggroPoolSetup senses; // Offset: 0 + keen::enemy01::AggroPoolSetup friends; // Offset: 4 + keen::enemy01::AggroPoolSetup enemies; // Offset: 8 +}; + +struct enemy01.AggroSetup { + keen::float32 viewRange; // Offset: 0 + keen::float32 nightViewRangeFactor; // Offset: 4 + keen::float32 viewConeHalfAngle; // Offset: 8 + keen::float32 aggroFromAttack; // Offset: 12 + keen::float32 aggroInRange; // Offset: 16 + keen::float32 aggroLossOutOfSight; // Offset: 20 + keen::float32 aggroLossUnreachable; // Offset: 24 + keen::float32 aggroDiminishSpeed; // Offset: 28 + keen::float32 noticedAggro; // Offset: 32 + keen::float32 initialAggro; // Offset: 36 + keen::float32 alarmedAggroThreshold; // Offset: 40 + keen::float32 aggroRange; // Offset: 44 + keen::float32 aggroRangeWhileMoving; // Offset: 48 + keen::bool checkPathToTarget; // Offset: 52 + keen::bool checkLineOfSight; // Offset: 53 + keen::enemy01::AggroPools pools; // Offset: 56 + keen::bool preferCloserTargets; // Offset: 68 + keen::float32 preferCloserTargetsDistanceThreshold; // Offset: 72 + keen::bool preferShortestPath; // Offset: 76 + keen::float32 preferShortestPathDistanceThreshold; // Offset: 80 + keen::bool preferTargetsWithLessAttackers; // Offset: 84 +}; + +struct enemy01.CallForHelpSetup { + keen::float32 chance; // Offset: 0 + keen::float32 minRange; // Offset: 4 + keen::float32 radius; // Offset: 8 +}; + +struct enemy01.RoamingSetup { + keen::Time minInitialStartDuration; // Offset: 0 + keen::Time maxInitialStartDuration; // Offset: 8 + keen::Time minStartDuration; // Offset: 16 + keen::Time maxStartDuration; // Offset: 24 + keen::float32 minRadius; // Offset: 32 + keen::float32 maxRadius; // Offset: 36 + keen::float32 maxAngle; // Offset: 40 + keen::float32 maxHomeZoneDistance; // Offset: 44 + keen::bool loop; // Offset: 48 + keen::float32 minLoopUpdateDistance; // Offset: 52 + keen::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 56 +}; + +struct enemy01.FleeSetup { + keen::float32 minFleeRadius; // Offset: 0 + keen::float32 maxFleeRadius; // Offset: 4 + keen::animationgraph::StateIdReference fleeAnimation; // Offset: 8 + keen::Time maxFleeDuration; // Offset: 24 +}; + +struct enemy01.NoiseListenerSetup { + keen::actor::ActorSequenceReference reactToNoiseSequence; // Offset: 0 + keen::float32 listenRangeFactor; // Offset: 16 + keen::float32 listenRangeFactorWhileSleeping; // Offset: 20 +}; + +struct enemy01.SteeringSetup { + keen::float32 defaultSteeringWeight; // Offset: 0 + keen::float32 roamingSteeringWeight; // Offset: 4 + keen::float32 closeCombatSteeringWeight; // Offset: 8 + keen::float32 farCombatSteeringWeight; // Offset: 12 +}; + +struct enemy01.ProwlSetup { + keen::float32 minProwlDistance; // Offset: 0 + keen::float32 maxProwlDistance; // Offset: 4 + keen::float32 maxHeightDifference; // Offset: 8 + keen::Time minProwlDuration; // Offset: 16 + keen::Time maxProwlDuration; // Offset: 24 + keen::Time minProwlCooldown; // Offset: 32 + keen::Time maxProwlCooldown; // Offset: 40 + keen::bool checkClearPath; // Offset: 48 +}; + +struct enemy01.ParrySetup { + keen::actor::ActorSequenceReference parriedSequence; // Offset: 0 + keen::actor::ActorSequenceReference parriedStunSequence; // Offset: 16 + keen::actor::ActorSequenceReference parriedStunLongDurationSequence; // Offset: 32 + keen::float32 addedThreatAfterParry; // Offset: 48 +}; + +enum class ecs.LocomotionSpeedSelector { + Zero = 0, + Sneak = 1, + Walk = 2, + Run = 3, + Sprint = 4, + Combat = 5, + Patrol = 6, + Flee = 7, + Custom = 8, +}; + +struct enemy01.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleProwl; // Offset: 4 + keen::float32 maxMovementAngleCombat; // Offset: 8 + keen::float32 maxMovementAngleCombatWithoutRoation; // Offset: 12 + keen::float32 maxMovementAngleRoaming; // Offset: 16 + keen::ecs::LocomotionSpeedSelector returnHomeSpeed; // Offset: 20 +}; + +struct enemy01.GuardSetup { + keen::float32 startDistance; // Offset: 0 + keen::float32 targetDistance; // Offset: 4 + keen::bool guardParent; // Offset: 8 + keen::bool canGuardPlayer; // Offset: 9 +}; + +struct enemy01.PatrolSetup { + keen::Time initialStartTimeMin; // Offset: 0 + keen::Time initialStartTimeMax; // Offset: 8 + keen::Time patrolStartMin; // Offset: 16 + keen::Time patrolStartMax; // Offset: 24 + keen::Time patrolPauseMin; // Offset: 32 + keen::Time patrolPauseMax; // Offset: 40 + keen::float startTurnDistamce; // Offset: 48 + keen::animationgraph::StateIdReference patrolAnimation; // Offset: 52 +}; + +struct enemy01.InteractionSetup { + keen::Time interactionPauseMin; // Offset: 0 + keen::Time interactionPauseMax; // Offset: 8 +}; + +struct enemy01.TauntSetup { + keen::actor::ActorSequenceReference tauntSequence; // Offset: 0 + keen::float32 tauntChance; // Offset: 16 + keen::Time cooldown; // Offset: 24 +}; + +struct actor.TurnSetup { + keen::actor::ActorSequenceReference turnLeftSmallSequence; // Offset: 0 + keen::actor::ActorSequenceReference turnLeftBigSequence; // Offset: 16 + keen::actor::ActorSequenceReference turnRightSmallSequence; // Offset: 32 + keen::actor::ActorSequenceReference turnRightBigSequence; // Offset: 48 + keen::float32 minSmallTurnAngle; // Offset: 64 + keen::float32 minBigTurnAngle; // Offset: 68 +}; + +struct enemy01.TurnSetup { + keen::float32 minIdleTurnAngle; // Offset: 72 + keen::Time minIdleTurnCooldown; // Offset: 80 + keen::Time maxIdleTurnCooldown; // Offset: 88 + keen::float32 minDistance; // Offset: 96 + keen::AttachmentSlot slot; // Offset: 100 +}; + +struct enemy01.SearchForCoverSetup { + keen::uint8 minCoverDistance; // Offset: 0 + keen::uint8 maxCoverDistance; // Offset: 1 + keen::Time minCoverDuration; // Offset: 8 + keen::Time maxCoverDuration; // Offset: 16 + keen::Time minCoverCooldown; // Offset: 24 + keen::Time maxCoverCooldown; // Offset: 32 +}; + +struct enemy01.RunAroundSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 +}; + +struct enemy01.PathNodeSetup { + keen::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +enum class enemy01.CirclingDirection { + Left = 0, + Right = 1, +}; + +struct enemy01.CirclingSetup { + keen::float initialRadius; // Offset: 0 + keen::float initialHeightOffset; // Offset: 4 + keen::bool useOuterCircleAsCombatPosition; // Offset: 8 + keen::enemy01::CirclingDirection initialDirection; // Offset: 9 + keen::bool changeDirection; // Offset: 10 + keen::Time minDirectionChangeDuration; // Offset: 16 + keen::Time maxDirectionChangeDuration; // Offset: 24 +}; + +typedef keen::ObjectReference enemy01.CombatSetupReference; + +enum class enemy01.LookAtMovementTargetState { + None = 0, + LookAtCombatTarget = 1, + LookAtMovementTarget = 2, +}; + +enum class enemy01.UnreachableJumpMoveState { + Inactive = 0, + Active = 1, + Finished = 2, +}; + +struct enemy01.EnemyVariableStateEntry { + keen::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.EnemyVariableStates { + keen::StaticArray states; // Offset: 0 +}; + +enum class impact.HitReactionType { + None = 0, + Light = 1, + Heavy = 2, + Boss = 3, + LongStun = 4, + TrapStun = 5, + ShortStun_BeGoneSkill = 6, + ThrowIntoAir = 7, + ThrowIntoAir_OnlyWhenGrounded = 8, +}; + +struct enemy01.CombatData { + keen::uint8 selectedAttackIndex; // Offset: 0 + keen::uint8 lastAttackIndex; // Offset: 1 + keen::float3 toTarget; // Offset: 4 + keen::float2 horizontalKeepDistanceDirection; // Offset: 16 + keen::HashKey32 threatPoolId; // Offset: 24 + keen::Time lastChangeEvaluation; // Offset: 32 + keen::Time stateChangeTime; // Offset: 40 + keen::Time stateMinTime; // Offset: 48 + keen::Time stateMaxTime; // Offset: 56 + keen::Time lastAttackTime; // Offset: 64 + keen::Time lastHitReceived; // Offset: 72 + keen::impact::HitReactionType lastHitReactionType; // Offset: 80 + keen::ecs::HitEventFlagMask lastHitEventFlags; // Offset: 84 + keen::Time targetEnteredPrivateSpace; // Offset: 88 + keen::Time prowlAngleChange; // Offset: 96 + keen::float32 selectedPreferedDistance; // Offset: 104 + keen::float32 preferedDistanceMin; // Offset: 108 + keen::float32 preferedDistanceMax; // Offset: 112 + keen::float32 prowlAngle; // Offset: 116 + keen::float32 distanceToTarget; // Offset: 120 + keen::enemy01::CombatState state; // Offset: 124 + keen::bool targetOfMyTarget; // Offset: 125 + keen::uint8 hitsReceivedWhileBlocking; // Offset: 126 + keen::Time lastBlockChanceEvaluationTime; // Offset: 128 + keen::bool shouldBlockLastHit; // Offset: 136 + keen::StaticArray attackExecutionCount; // Offset: 137 + keen::StaticArray nextAllowedAttackGroupTime; // Offset: 160 + keen::float3 closestReachableTargetPosition; // Offset: 224 + keen::Time nextReachablePositionUpdateTime; // Offset: 240 + keen::bool isTargetReachable; // Offset: 248 + keen::bool isTargetInsideLeash; // Offset: 249 + keen::ecs::EntityId lastTargetId; // Offset: 252 + keen::uint8 commandIndex; // Offset: 256 + keen::uint8 actionIndex; // Offset: 257 + keen::Time lastActionStartTime; // Offset: 264 + keen::Time lastAttackAbortCheckTime; // Offset: 272 + keen::Time nextAllowedProwlTime; // Offset: 280 + keen::Time nextAllowedSearchForCoverTime; // Offset: 288 + keen::Time nextSearchForCoverChangeDistanceTime; // Offset: 296 + keen::uint8 currentSearchForCoverDistance; // Offset: 304 + keen::enemy01::LookAtMovementTargetState lookAtMovementTargetState; // Offset: 305 + keen::Time unreachableJumpMoveStartTime; // Offset: 312 + keen::Time unreachableJumpMoveEndTime; // Offset: 320 + keen::enemy01::UnreachableJumpMoveState unreachableJumpMoveState; // Offset: 328 +}; + +enum class enemy01.CirclingState { + MoveIntoRange = 0, + MoveToTargetAngle = 1, + MoveContinuously = 2, +}; + +typedef keen::float32 Angle; + +struct enemy01.CirclingData { + keen::enemy01::CirclingState state; // Offset: 0 + keen::Angle targetAngle; // Offset: 4 + keen::WorldPosition centerPosition; // Offset: 8 + keen::float radius; // Offset: 32 + keen::enemy01::CirclingDirection direction; // Offset: 36 + keen::Time nextDirectionChangeTime; // Offset: 40 + keen::float centerHeightOffset; // Offset: 48 +}; + +enum class enemy01.EnemyMarkerType { + PatrolPoint = 0, + Interaction = 1, + Alarm = 2, + MoveTarget = 3, +}; + +typedef keen::Bitmask8 enemy01.EnemyMarkerTypeMask; + +struct enemy01.SetCombatStateAction { + keen::enemy01::CombatState state; // Offset: 0 + keen::Time minTime; // Offset: 8 + keen::Time maxTime; // Offset: 16 +}; + +struct enemy01.SetPhaseAction { + keen::ObjectReference newPhase; // Offset: 0 +}; + +struct enemy01.SwitchToLastPhaseAction { +}; + +struct enemy01.SelectAttackAction { + keen::enemy01::AttackStyle attackStyle; // Offset: 0 +}; + +struct enemy01.GetStunnedAction { +}; + +struct enemy01.SetImmuneAction { + keen::bool immune; // Offset: 0 +}; + +typedef keen::ObjectReference SignalReference; + +struct enemy01.SendToggleEventAction { + keen::SignalReference triggerId; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.TriggerStateConditionAction { + keen::enemy01::StateCondition condition; // Offset: 0 +}; + +struct enemy01.RunAwayAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 +}; + +struct enemy01.MoveForwardAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::ecs::LocomotionSpeedSelector speed; // Offset: 8 +}; + +struct enemy01.PauseAction { + keen::float32 minDuration; // Offset: 0 + keen::float32 maxDuration; // Offset: 4 + keen::bool lookAtCombatTarget; // Offset: 8 +}; + +struct enemy01.SetIdleAnimationAction { + keen::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetWalkAnimationAction { + keen::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetMovementSpeedAction { + keen::ecs::LocomotionSpeedSelector movementType; // Offset: 0 + keen::float32 speed; // Offset: 4 +}; + +struct enemy01.PlayActionSequenceAction { + keen::actor::ActorSequenceReference sequence; // Offset: 0 + keen::bool waitUntilFinished; // Offset: 16 +}; + +struct enemy01.ChangeSlopeAlignmentAction { + keen::float32 longitudinalFactor; // Offset: 0 + keen::float32 lateralFactor; // Offset: 4 +}; + +struct enemy01.StartFlyingAction { +}; + +struct enemy01.EnterFlyingStateAction { +}; + +struct enemy01.StopFlyingAction { +}; + +struct enemy01.ToggleAllowFallDownAction { + keen::bool allowFallDown; // Offset: 0 +}; + +struct enemy01.GuardParentAction { +}; + +struct enemy01.GuardGroupLeaderAction { +}; + +struct enemy01.StopGuardAction { +}; + +struct enemy01.EnableFeatureAction { + keen::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.DisableFeatureAction { + keen::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.SetFleeRadiusAction { + keen::float32 fleeRadius; // Offset: 0 +}; + +struct enemy01.SelectFriendAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.SelectEnemyAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.MoveToTargetAction { + keen::float32 targetDistance; // Offset: 0 + keen::ecs::TargetType targetType; // Offset: 4 + keen::ecs::LocomotionSpeedSelector speed; // Offset: 5 +}; + +struct enemy01.WaitUntilActorStateIsFinished { + keen::actor::StateFlag state; // Offset: 0 +}; + +struct enemy01.WaitUntilSequenceIsFinished { +}; + +struct enemy01.SetWorldColliderYOffsetAction { + keen::float32 yOffset; // Offset: 0 +}; + +struct enemy01.ToggleBlockAction { + keen::bool shouldBlock; // Offset: 0 +}; + +struct enemy01.ToggleVerticalLeaningAction { + keen::bool shouldUseVerticalLeaning; // Offset: 0 +}; + +struct enemy01.SetVariableAction { + keen::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.ClearVariableAction { + keen::enemy01::EnemyVariableReference variable; // Offset: 0 +}; + +struct enemy01.SetCirclingRadiusAction { + keen::float radius; // Offset: 0 +}; + +struct enemy01.SetCirclingHeightOffsetAction { + keen::float heightOffset; // Offset: 0 +}; + +struct enemy01.MoveToCirclingTargetAction { + keen::ecs::LocomotionSpeedSelector speed; // Offset: 0 + keen::float32 maxArriveDistance; // Offset: 4 + keen::bool keepCurrentDirection; // Offset: 8 +}; + +struct enemy01.TurnToCirclingTargetAction { +}; + +struct enemy01.StoreCurrentCirclingTargetAngleAction { +}; + +struct enemy01.StoreCirclingPositionAsTargetAction { + keen::ecs::TargetType target; // Offset: 0 + keen::float radius; // Offset: 4 + keen::Angle angleOffset; // Offset: 8 +}; + +typedef keen::ObjectReference ecs.AttackReference; + +typedef keen::ObjectReference ecs.AttackDescriptionReference; + +struct ecs.AttackReferenceDescription { + keen::ecs::AttackDescriptionReference attack; // Offset: 0 +}; + +struct ecs.EnemyArsenal { +}; + +typedef keen::Bitmask16 ecs.HitReactionTypeMask; + +struct ecs.Enemy01BehaviorState { + keen::enemy01::CombatSetup combatSetup; // Offset: 0 + keen::enemy01::HomeZoneSetup homeZoneSetup; // Offset: 176 + keen::enemy01::AggroSetup aggroSetup; // Offset: 180 + keen::enemy01::CallForHelpSetup callForHelpSetup; // Offset: 268 + keen::enemy01::RoamingSetup roamingSetup; // Offset: 280 + keen::enemy01::FleeSetup fleeSetup; // Offset: 344 + keen::enemy01::BlockingSetup blockingSetup; // Offset: 376 + keen::enemy01::NoiseListenerSetup noiseListenerSetup; // Offset: 472 + keen::enemy01::SteeringSetup steeringSetup; // Offset: 496 + keen::enemy01::ProwlSetup prowlSetup; // Offset: 512 + keen::enemy01::ParrySetup parrySetup; // Offset: 568 + keen::enemy01::MovementSetup movementSetup; // Offset: 620 + keen::enemy01::GuardSetup guardSetup; // Offset: 644 + keen::enemy01::InteractionSetup interactionSetup; // Offset: 656 + keen::enemy01::PatrolSetup patrolSetup; // Offset: 672 + keen::enemy01::TauntSetup tauntSetup; // Offset: 744 + keen::enemy01::TurnSetup turnSetup; // Offset: 776 + keen::enemy01::SearchForCoverSetup searchForCoverSetup; // Offset: 880 + keen::enemy01::SleepSetup sleepSetup; // Offset: 920 + keen::enemy01::RunAroundSetup runAroundSetup; // Offset: 1016 + keen::enemy01::PathNodeSetup pathNodeSetup; // Offset: 1040 + keen::enemy01::CirclingSetup circlingSetup; // Offset: 1144 + keen::actor::ActorSequenceReference callForHelpSequence; // Offset: 1176 + keen::actor::ActorSequenceReference spawnSequence; // Offset: 1192 + keen::enemy01::EnemyClass enemyClass; // Offset: 1208 + keen::ecs::EnemyFeatureMask enabledFeatures; // Offset: 1212 + keen::float32 threatFactor; // Offset: 1216 + keen::SignalReference deathSignal; // Offset: 1220 + keen::float32 pushBackScale; // Offset: 1236 + keen::ecs::HitReactionTypeMask disabledHitReactions; // Offset: 1240 + keen::float32 maxHeightDiff; // Offset: 1244 +}; + +struct ecs.FlyingEnemy { + keen::float32 minRoamingHeight; // Offset: 0 + keen::float32 maxRoamingHeight; // Offset: 4 + keen::float32 minFlyHeight; // Offset: 8 + keen::float32 maxFlyHeight; // Offset: 12 + keen::float32 landingHeight; // Offset: 16 + keen::float32 attackHeightOffset; // Offset: 20 + keen::float32 combatIdleHeightOffset; // Offset: 24 + keen::float32 defaultArriveDistance; // Offset: 28 + keen::float32 attackArriveDistance; // Offset: 32 + keen::bool attackWhileGrounded; // Offset: 36 + keen::animationgraph::StateIdReference idleAnimation; // Offset: 40 +}; + +struct ecs.DynamicEnemy01BehaviorState { + keen::enemy01::State state; // Offset: 0 + keen::Time stateChangeTime; // Offset: 8 + keen::float3 homeZonePosition; // Offset: 16 + keen::bool movementTargetIsValid; // Offset: 28 + keen::float3 movementTarget; // Offset: 32 + keen::float3 movementStartPosition; // Offset: 44 + keen::Time movementStartTime; // Offset: 56 + keen::enemy01::CombatData combatData; // Offset: 64 + keen::enemy01::CirclingData circlingData; // Offset: 400 + keen::enemy01::EnemyVariableStates variableStates; // Offset: 456 + keen::Time nextAllowedRoamingTime; // Offset: 536 + keen::uint16 targetCounter; // Offset: 544 + keen::Time lastBehaviorCheckTime; // Offset: 552 + keen::Time lastBehaviorExecutionTime; // Offset: 560 + keen::StaticArray nextBehaviorCheckTime; // Offset: 568 + keen::uint8 currentBehaviorIndex; // Offset: 824 + keen::uint8 currentBehaviorActionIndex; // Offset: 825 + keen::ecs::QueryId callForHelpQueryId; // Offset: 828 + keen::ecs::EntityId callForHelpTargetEntityId; // Offset: 832 + keen::Time lastHelpTime; // Offset: 840 + keen::Time returnHomeStartTime; // Offset: 848 + keen::enemy01::StateMask executedStates; // Offset: 856 + keen::ecs::QueryId dashQueryId; // Offset: 860 + keen::ecs::EntityId noiseEntityId; // Offset: 864 + keen::ecs::EntityId projectileEntityId; // Offset: 868 + keen::uint8 controlledByAttacks; // Offset: 872 + keen::Time nextAllowedCombatIdleRotationTime; // Offset: 880 + keen::bool teleportPositionFound; // Offset: 888 + keen::animationgraph::StateIdHash currentIdleAnimation; // Offset: 892 + keen::animationgraph::StateIdHash currentWalkAnimation; // Offset: 896 + keen::float32 currentLongitudinalSlopeAlignmentFactor; // Offset: 900 + keen::float32 currentLateralSlopeAlignmentFactor; // Offset: 904 + keen::ecs::EntityId guardEntityId; // Offset: 908 + keen::float32 currentGuardTargetDistance; // Offset: 912 + keen::ecs::EntityId currentMarkerId; // Offset: 916 + keen::Time nextAllowedInteractionTime; // Offset: 920 + keen::Time nextAllowedPatrolTime; // Offset: 928 + keen::Time nextCheckGuardTime; // Offset: 936 + keen::Time nextCheckTauntTime; // Offset: 944 + keen::Time nextAllowedCombatIdleTurnTime; // Offset: 952 + keen::bool enabled; // Offset: 960 + keen::float3 lastNoisePosition; // Offset: 964 + keen::bool shouldBlock; // Offset: 976 + keen::bool isWalkBlockActive; // Offset: 977 + keen::bool isAttackMove; // Offset: 978 + keen::bool isVerticalLeaningActive; // Offset: 979 + keen::ecs::EnemyFeatureMask enabledFeatures; // Offset: 980 + keen::ecs::EnemyFeatureMask disabledFeatures; // Offset: 984 + keen::Time nextSleepCheckTime; // Offset: 992 + keen::Time sleepEndTime; // Offset: 1000 + keen::ecs::EntityId parriedByEntity; // Offset: 1008 +}; + +enum class ecs.UnitMode { + Wildlife = 0, + Enemy = 1, +}; + +struct ecs.UnitTransformer { + keen::ecs::UnitMode mode; // Offset: 0 +}; + +struct ecs.PlayerCountScaling { + keen::bool scaleHealth; // Offset: 0 + keen::bool scaleDamage; // Offset: 1 + keen::bool scaleStamina; // Offset: 2 + keen::float32 healthScaling; // Offset: 4 + keen::float32 damageScaling; // Offset: 8 + keen::float32 staminaScaling; // Offset: 12 + keen::bool allowDownScaling; // Offset: 16 + keen::uint8 minPlayerCount; // Offset: 17 +}; + +struct ecs.EnemyLevelScaling { + keen::float32 healthScaleFactor; // Offset: 0 + keen::float32 staminaScaleFactor; // Offset: 4 +}; + +struct ecs.EnemyScaling { + keen::Time updateInterval; // Offset: 0 + keen::ecs::PlayerCountScaling playerCountScaling; // Offset: 8 + keen::ecs::EnemyLevelScaling enemyLevelScaling; // Offset: 28 +}; + +struct ecs.DynamicEnemyScaling { + keen::Time nextUpdateTime; // Offset: 0 + keen::uint32 lastTargets; // Offset: 8 + keen::uint32 lastLevel; // Offset: 12 + keen::float32 lastDamageMultiplier; // Offset: 16 + keen::sint32 initialBaseMaxHealth; // Offset: 20 + keen::sint32 initialBaseStrength; // Offset: 24 + keen::sint32 initialBaseDexterity; // Offset: 28 + keen::sint32 initialBaseIntelligence; // Offset: 32 +}; + +struct ecs.EnemyMarkerEntry { + keen::float3 position; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 12 + keen::enemy01::EnemyMarkerType markerType; // Offset: 16 +}; + +struct ecs.EnemyMarkerCheck { + keen::float32 checkDistance; // Offset: 0 + keen::ecs::RangeQueryId queryId; // Offset: 4 + keen::Time nextCheckTime; // Offset: 8 + keen::StaticArray markers; // Offset: 16 +}; + +struct ecs.EnemyMarker { + keen::enemy01::EnemyMarkerType markerType; // Offset: 0 + keen::actor::ActorSequenceReference defaultInteractSequence; // Offset: 4 + keen::bool useTargetOffset; // Offset: 20 + keen::ecs::Offset targetOffset; // Offset: 24 + keen::float32 arriveDistance; // Offset: 64 + keen::float32 alarmRange; // Offset: 68 + keen::bool usePatrolPointDirection; // Offset: 72 + keen::bool attackTargets; // Offset: 73 + keen::uint8 maxUsers; // Offset: 74 + keen::uint8 minHorizontalSpace; // Offset: 75 + keen::uint8 minTargetHorizontalSpace; // Offset: 76 +}; + +struct ecs.LastEnemyValue { + keen::float32 lastEnemyValue; // Offset: 0 +}; + +struct ecs.DynamicEnemyMarker { + keen::uint8 users; // Offset: 0 +}; + +struct ecs.EnemyArsenalReference { + keen::ObjectReference arsenal; // Offset: 0 +}; + +struct ecs.EnemyAttackAttachment { + keen::actor::ActorSequenceReference initialSequence; // Offset: 0 +}; + +enum class ecs.EnemyAttackAttachmentState { + None = 0, + Active = 1, + Inactive = 2, +}; + +struct ecs.DynamicEnemyAttackAttachment { + keen::ecs::EnemyAttackAttachmentState state; // Offset: 0 +}; + +struct enemy.EnemyArsenal { + keen::BlobArray attacks; // Offset: 0 + keen::BlobArray behaviors; // Offset: 8 +}; + +struct enemy.EnemyArsenalResource { + keen::Guid guid; // Offset: 0 + keen::BlobArray attacks; // Offset: 16 + keen::BlobArray behaviors; // Offset: 24 +}; + +struct enemy.EnemyArsenalSubDirectory { +}; + +struct enemy.EnemyArsenalDirectory { +}; + +struct enemy.EnemyArsenalRegistryResource { + keen::BlobArray arsenals; // Offset: 0 +}; + +struct enemy01_debug.KillEnemyMessage { + keen::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.EnforceEnemyAttackMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 +}; + +struct enemy01_debug.ToggleDisableEnemyAttackMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 + keen::bool disabled; // Offset: 5 +}; + +struct enemy01_debug.SetTameStateMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::bool tamed; // Offset: 4 +}; + +struct enemy01_debug.SetFrozenStateMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::bool frozen; // Offset: 4 +}; + +struct enemy01_debug.DebugAnimationGraphMessage { + keen::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.SetStateMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::enemy01::State state; // Offset: 4 +}; + +struct enemy01_debug.EnforcePhaseMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::Guid phaseId; // Offset: 4 +}; + +struct enemy01.DebugAttackState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 +}; + +struct enemy01.DebugBehaviorState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 + keen::uint32 executionCount; // Offset: 12 +}; + +struct enemy01.StateEntry { + keen::enemy01::State state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct enemy01.CombatStateEntry { + keen::enemy01::CombatState state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct ecs.EnemyDebug { + keen::uint8 enforcedAttackIndex; // Offset: 0 + keen::StaticArray disabledAttacks; // Offset: 8 + keen::bool tamed; // Offset: 16 + keen::bool frozen; // Offset: 17 + keen::StaticArray attackStates; // Offset: 18 + keen::StaticArray behaviorStates; // Offset: 164 + keen::StaticArray stateHistory; // Offset: 680 + keen::StaticArray combatStateHistory; // Offset: 808 + keen::enemy01::State nextState; // Offset: 936 + keen::Guid enforcedPhase; // Offset: 940 +}; + +enum class ecs.EnemyTest { + StayOnGround = 0, + Patrol = 1, + EnemyVsEnemyFight = 2, + ReactToNoise = 3, + Steering = 4, + AggroBigAngleLongDistance = 5, + AggroSmallAngleShortDistance = 6, +}; + +typedef keen::Bitmask32 ecs.EnemyTestFlags; + +struct ecs.EnemyPatrolTest { + keen::bool hasReachedPatrolPoint0; // Offset: 0 + keen::bool hasReachedPatrolPoint1; // Offset: 1 +}; + +struct ecs.EnemyTestToggle { + keen::ecs::EnemyTestFlags tests; // Offset: 0 +}; + +struct ecs.UnitGroup { + keen::StaticArray members; // Offset: 0 + keen::Time nextUpdateTime; // Offset: 96 +}; + +struct ecs.UnitGroupMember { + keen::ecs::EntityId groupId; // Offset: 0 + keen::ecs::EntityId groupLeaderId; // Offset: 4 + keen::uint8 memberIndex; // Offset: 8 +}; + +enum class wildlife.State { + Invalid = 0, + Start = 1, + Spawning = 2, + Idle = 3, + Alert = 4, + Flee = 5, + Roaming = 6, + RunAway = 7, + Hit = 8, + Landing = 9, + FlyToLandingPosition = 10, + Gliding = 11, + Dead = 12, + ReturnToSpawnPosition = 13, + FoodBaitPursue = 14, + FoodBaitEat = 15, +}; + +enum class wildlife.StateCondition { + IsFinished = 0, + Alert = 1, + NeedsToFlee = 2, + IsInDanger = 3, + Hit = 4, + IsStuck = 5, + Death = 6, + TooFarAwayFromSpawnPosition = 7, + HasSensedFoodBait = 8, + Aborted = 9, +}; + +enum class wildlife.Feature { + Roaming = 0, + Flee = 1, + ShowSpawnSequence = 2, + Tameable = 3, +}; + +typedef keen::Bitmask16 wildlife.FeatureMask; + +struct wildlife.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleFlee; // Offset: 4 + keen::float32 maxMovementAngleRoaming; // Offset: 8 + keen::float32 maxMovementAngleLanding; // Offset: 12 +}; + +struct wildlife.GlidingSetup { + keen::float32 minGlidingDistance; // Offset: 0 + keen::float32 maxGlidingDistance; // Offset: 4 +}; + +struct wildlife.PathNodeSetup { + keen::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct wildlife.TamingSetup { + keen::ecs::TemplateReference favoriteFood; // Offset: 0 + keen::uint8 necessaryTamingSteps; // Offset: 16 + keen::float32 foodBaitSensorRange; // Offset: 20 + keen::float32 foodBaitAngleCheckMinDistance; // Offset: 24 + keen::Time foodBaitEatMaxDuration; // Offset: 32 + keen::Time alertDurationHigh; // Offset: 40 + keen::Time alertDurationMediumFoodEat; // Offset: 48 + keen::float32 foodBaitEatAdaptFleeRadiusDistance; // Offset: 56 + keen::float32 tamingApproachFinishedFleeRadius; // Offset: 60 + keen::float32 foodBaitEatSnoutPivotDistance; // Offset: 64 +}; + +struct ecs.WildlifeTurnSetup { + keen::bool useTurnSequences; // Offset: 72 +}; + +struct ecs.Wildlife { + keen::actor::ActorSequenceReference spawnSequence; // Offset: 0 + keen::animationgraph::StateIdReference idleAnimation; // Offset: 16 + keen::Time minIdleDuration; // Offset: 32 + keen::Time maxIdleDuration; // Offset: 40 + keen::float32 minRoamingRadius; // Offset: 48 + keen::float32 maxRoamingRadius; // Offset: 52 + keen::float32 minFleeRadius; // Offset: 56 + keen::float32 maxFleeRadius; // Offset: 60 + keen::float32 fallbackFleeRadius; // Offset: 64 + keen::float32 maxMovementRadius; // Offset: 68 + keen::animationgraph::StateIdReference secureIdleAnimation; // Offset: 72 + keen::Time minFeelSecureDuration; // Offset: 88 + keen::Time maxFeelSecureDuration; // Offset: 96 + keen::float32 callForHelpChance; // Offset: 104 + keen::actor::ActorSequenceReference callForHelpSequence; // Offset: 108 + keen::float32 listenRangeFactor; // Offset: 124 + keen::wildlife::FeatureMask enabledFeatures; // Offset: 128 + keen::wildlife::MovementSetup movementSetup; // Offset: 132 + keen::wildlife::GlidingSetup glidingSetup; // Offset: 148 + keen::ecs::WildlifeTurnSetup turnSetup; // Offset: 156 + keen::wildlife::PathNodeSetup pathNodeSetup; // Offset: 232 + keen::wildlife::TamingSetup tamingSetup; // Offset: 336 + keen::actor::ActorSequenceReference tamingPetInteractionSequence; // Offset: 408 + keen::LocaTagReference tamingPetInteractionVerbLoca; // Offset: 424 +}; + +enum class ecs.AlertState { + Low_Relaxed = 0, + Medium_Alert = 1, + High_Danger = 2, +}; + +struct ecs.DynamicWildlife { + keen::wildlife::State state; // Offset: 0 + keen::wildlife::State lastState; // Offset: 1 + keen::Time feelSecureDuration; // Offset: 8 + keen::Time lastFleeTime; // Offset: 16 + keen::float3 spawnPosition; // Offset: 24 + keen::Time idleEndTime; // Offset: 40 + keen::Time lastStateChangeTime; // Offset: 48 + keen::float3 dangerOrigin; // Offset: 56 + keen::float32 runAwayDistance; // Offset: 68 + keen::float3 currentTargetPosition; // Offset: 72 + keen::Time keepRoamingTargetUntilTime; // Offset: 88 + keen::Time foodBaitEatTimer; // Offset: 96 + keen::ecs::AlertState previousAlertState; // Offset: 104 + keen::Time alertTimeStamp; // Offset: 112 + keen::Time foodBaitNeedinessTimeStamp; // Offset: 120 + keen::Time foodBaitReactionTimeStamp; // Offset: 128 + keen::Time tamingShrinkRadiusTimerStart; // Offset: 136 + keen::ecs::EntityId foodBaitEntityId; // Offset: 144 + keen::uint8 tamingProgress; // Offset: 148 +}; + +struct ecs.NetworkWildlife { + keen::ecs::AlertState alertState; // Offset: 0 + keen::Time alertTimeStamp; // Offset: 8 + keen::uint8 tamingProgress; // Offset: 16 + keen::bool isEatingFoodBait; // Offset: 17 +}; + +struct ecs.WildlifeTransformer { + keen::Time timeWithoutHit; // Offset: 0 + keen::Time minDurationWithoutHit; // Offset: 8 +}; + +enum class AmbientEffectPlaybackType { + PlayAlways = 0, + PlayOnlyWhenInBattle = 1, + PlayOnlyWhenNotInBattle = 2, +}; + +struct AmbientEffectEntry { + keen::SoundContainerReference soundContainer; // Offset: 0 + keen::ObjectReference ingameTimeSpan; // Offset: 16 + keen::bool mute; // Offset: 32 + keen::AmbientEffectPlaybackType playbackType; // Offset: 33 + keen::float32 volume; // Offset: 36 +}; + +enum class Biome { + Default = 0, + Grassland = 1, + Desert = 2, + Wetland = 3, + Steppes = 4, + Deepforest = 5, + ColdHeights = 6, +}; + +struct AmbientEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::Biome biome; // Offset: 1 + keen::bool mute; // Offset: 2 + keen::bool whenInFog; // Offset: 3 +}; + +struct AmbientSoundEffectEntryResource { + keen::SoundContainerReference soundContainer; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::float32 volume; // Offset: 32 + keen::Guid id; // Offset: 36 + keen::Time startTime; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::string description; // Offset: 72 + keen::string soundContainerDescription; // Offset: 80 + keen::string ingameTimeSpanDescription; // Offset: 88 + keen::AmbientEffectPlaybackType playbackType; // Offset: 96 +}; + +struct AmbientSoundEffectResource { + keen::bool inAllBiomes; // Offset: 0 + keen::bool whenInFog; // Offset: 1 + keen::Biome biome; // Offset: 2 + keen::BlobArray effectEntries; // Offset: 4 + keen::Guid id; // Offset: 12 + keen::string description; // Offset: 28 +}; + +struct AmbientVfxEffectEntry { + keen::VfxReference vfx; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 +}; + +struct AmbientVfxEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::Biome biome; // Offset: 1 + keen::bool whenInFog; // Offset: 2 +}; + +struct AmbientVfxEffectEntryResource { + keen::VfxReference vfx; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Time startTime; // Offset: 32 + keen::Time endTime; // Offset: 40 + keen::Guid id; // Offset: 48 + keen::string description; // Offset: 64 + keen::string vfxDescription; // Offset: 72 + keen::string ingameTimeSpanDescription; // Offset: 80 +}; + +struct AmbientVfxEffectResource { + keen::BlobArray effectEntries; // Offset: 0 + keen::Biome biome; // Offset: 8 + keen::Guid id; // Offset: 12 + keen::string description; // Offset: 28 + keen::bool whenInFog; // Offset: 36 + keen::bool inAllBiomes; // Offset: 37 +}; + +struct CollisionFeedbackEffect2 { + keen::bool enabled; // Offset: 0 + keen::SoundContainerReference sfx; // Offset: 4 + keen::VfxReference vfx; // Offset: 20 + keen::ecs::Offset ecsOffset; // Offset: 36 + keen::bool orientToNormal; // Offset: 76 + keen::bool overrideSlot; // Offset: 77 + keen::AttachmentSlot slot; // Offset: 78 + keen::bool attach; // Offset: 79 + keen::bool playOnlyLocalSFX; // Offset: 80 + keen::bool useRootPosition; // Offset: 81 +}; + +struct CollisionFeedbackEffectCollection2 { + keen::CollisionFeedbackEffect2 onHit; // Offset: 0 + keen::CollisionFeedbackEffect2 onCriticalHit; // Offset: 84 + keen::CollisionFeedbackEffect2 onBlock; // Offset: 168 + keen::CollisionFeedbackEffect2 onBrokenBlock; // Offset: 252 + keen::CollisionFeedbackEffect2 onIneffective; // Offset: 336 + keen::CollisionFeedbackEffect2 onImmune; // Offset: 420 + keen::CollisionFeedbackEffect2 onFlattening; // Offset: 504 + keen::CollisionFeedbackEffect2 onPileUp; // Offset: 588 +}; + +typedef keen::ObjectReference CollisionFeedbackEffectCollectionReference; + +enum class MaterialFeedbackEventType { + OnPlace = 0, + OnPickup = 1, + OnTearDown = 2, + OnDestruction = 3, + OnFlatten = 4, + OnPileUp = 5, + Count = 6, +}; + +typedef keen::Bitmask8 MaterialFeedbackEventMask; + +enum class MaterialFeedbackEffectSize { + Tiny = 0, + Small = 1, + Medium = 2, + Large = 3, + Count = 4, +}; + +struct FoleyEffectCollection { + keen::ecs::Offset offset; // Offset: 0 + keen::SoundContainerReference evade; // Offset: 40 + keen::SoundContainerReference jump; // Offset: 56 + keen::SoundContainerReference run; // Offset: 72 + keen::SoundContainerReference sprint; // Offset: 88 + keen::SoundContainerReference walk; // Offset: 104 +}; + +struct EnvironmentEffectBase { + keen::SoundContainerReference sfx; // Offset: 0 + keen::ecs::Offset offset; // Offset: 16 + keen::bool orientToNormal; // Offset: 56 + keen::VfxReference vfx; // Offset: 60 +}; + +enum class EnvironmentEffectType { + PlayerDodgerollStart = 0, + PlayerDodgerollEnd = 1, + PlayerFallDamage = 2, + PlayerJump = 3, + PlayerJumpLandSoft = 4, + PlayerJumpLandHard = 5, + PlayerRun = 6, + PlayerSprint = 7, + PlayerWalk = 8, + PlayerSlide = 9, + FlyCrashDown = 10, + FlyLiftOff = 11, + FlyTouchDown = 12, + FlyHoverFlap = 13, + NPCWalk = 14, + Count = 15, +}; + +struct EnvironmentEffectPlayerDodgerollStart { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerDodgerollEnd { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerFallDamage { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJump { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLand { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLandSmall { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerRun { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSprint { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerWalk { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSlide { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureCrashDown { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyLiftOff { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyTouchDown { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureHoverFlap { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectNPCWalk { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct MaterialFeedbackEventBase { + keen::SoundContainerReference sfxTiny; // Offset: 0 + keen::SoundContainerReference sfxSmall; // Offset: 16 + keen::SoundContainerReference sfxMedium; // Offset: 32 + keen::SoundContainerReference sfxLarge; // Offset: 48 + keen::ecs::Offset ecsOffset; // Offset: 64 + keen::bool orientToNormal; // Offset: 104 + keen::bool useRootPosition; // Offset: 105 + keen::VfxReference vfx; // Offset: 108 +}; + +struct MaterialFeedbackEventOnPlace { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPickup { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnTearDown { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnDestruction { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnFlatten { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPileUp { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct CollisionFeedbackMaterial { + keen::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::ItemReference materialItem; // Offset: 16 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 32 + keen::bool hasFoleyEffects; // Offset: 33 + keen::uint32 foleyEffectImportance; // Offset: 36 + keen::FoleyEffectCollection foleyEffects; // Offset: 40 +}; + +struct WeatherLayerMaterial { + keen::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::WeatherState weather; // Offset: 16 +}; + +struct CollisionFeedbackRule { + keen::CollisionFeedbackMaterialReference materialA; // Offset: 0 + keen::CollisionFeedbackMaterialReference materialB; // Offset: 16 + keen::CollisionFeedbackEffectCollectionReference effectCollection; // Offset: 32 +}; + +struct CollisionFeedback { +}; + +enum class ColliderFeedbackEffectFlag { + OrientToNormal = 0, + ApplyLocally = 1, + AttachToSlot = 2, + UseRootPosition = 3, + SFX_OnlyLocalPlayer = 4, +}; + +typedef keen::Bitmask8 ColliderFeedbackEffectFlags; + +struct MaterialFeedbackEffect { + keen::string description; // Offset: 0 + keen::ecs::Offset ecsOffset; // Offset: 8 + keen::SoundContainerReference sfx; // Offset: 48 + keen::VfxReference vfx; // Offset: 64 + keen::BlobOptional vfxParameters; // Offset: 80 + keen::AttachmentSlot slot; // Offset: 84 + keen::ColliderFeedbackEffectFlags flags; // Offset: 85 +}; + +typedef keen::HashKey32 MaterialFeedbackId; + +struct MaterialFeedback { + keen::MaterialFeedbackId id; // Offset: 0 + keen::MaterialFeedbackEventMask eventTypeMask; // Offset: 4 + keen::StaticArray eventEffectsTiny; // Offset: 8 + keen::StaticArray eventEffectsSmall; // Offset: 536 + keen::StaticArray eventEffectsMedium; // Offset: 1064 + keen::StaticArray eventEffectsLarge; // Offset: 1592 + keen::bool hasFoleyEffects; // Offset: 2120 + keen::uint32 foleyEffectImportance; // Offset: 2124 + keen::StaticArray foleyMaterialFeedbackEffects; // Offset: 2128 + keen::bool hasEnvironmentEffects; // Offset: 2568 + keen::StaticArray environmentMaterialFeedbackEffects; // Offset: 2572 + keen::Bitmask16 collisionTypeMask; // Offset: 3892 + keen::StaticArray collisionTypeEffects; // Offset: 3896 +}; + +typedef keen::ObjectReference MaterialFeedbackReference; + +struct CollisionFeedbackMatrixEntry { + keen::uint64 materialPairId; // Offset: 0 + keen::StaticArray effects; // Offset: 8 + keen::Bitmask16 effectMask; // Offset: 712 +}; + +struct MaterialFeedbackSubDirectory { +}; + +struct MaterialFeedbackDirectory { +}; + +struct MaterialFeedbackCollectionResource { + keen::Guid id; // Offset: 0 + keen::string description; // Offset: 16 + keen::BlobArray collisionEffectMatrixEntry; // Offset: 24 + keen::BlobArray materials; // Offset: 32 + keen::MaterialFeedbackReference rainMaterialLayeredEffects; // Offset: 40 + keen::MaterialFeedbackReference snowMaterialLayeredEffects; // Offset: 56 + keen::MaterialFeedbackReference blizzardMaterialLayeredEffects; // Offset: 72 +}; + +enum class DebugEnvironmentEffectType { + DebugHitEffect = 0, + DebugEnvironmentOrFootdownEffect = 1, + DebugFoleyEffect = 2, + DebugPropEffect = 3, + Count = 4, +}; + +enum class FoleyType { + Evade = 0, + Jump = 1, + Run = 2, + Sprint = 3, + Walk = 4, + Count = 5, +}; + +struct DebugEnvironmentEffect { + keen::DebugEnvironmentEffectType type; // Offset: 0 + keen::FoleyType foleyType; // Offset: 1 + keen::EnvironmentEffectType environmentEffectType; // Offset: 2 + keen::ecs::CollisionType collisionType; // Offset: 3 + keen::MaterialFeedbackEventType eventType; // Offset: 4 + keen::MaterialFeedbackEffectSize effectSize; // Offset: 5 + keen::WeatherState weatherState; // Offset: 6 + keen::bool collisionRuleFound; // Offset: 7 + keen::MaterialFeedbackId materialA; // Offset: 8 + keen::MaterialFeedbackId materialB; // Offset: 12 + keen::Guid eventGuid; // Offset: 16 + keen::Guid sfx; // Offset: 32 + keen::Guid vfx; // Offset: 48 + keen::float eventSendTime; // Offset: 64 + keen::float eventReceiveTime; // Offset: 68 + keen::float entityFootWorldHeight; // Offset: 72 + keen::float effectWorldHeight; // Offset: 76 +}; + +enum class impact.MajorDirection { + Invalid = 0, + SourceTarget = 1, + RightToLeft = 2, + LeftToRight = 3, + UpToDown = 4, + DownToUp = 5, + BackToFront = 6, +}; + +struct actor.ActorSequence { + keen::impact::MajorDirection majorDirection; // Offset: 16 +}; + +typedef keen::BlobArray> SequenceEvents; + +struct SequenceResource { + keen::SequenceEvents events; // Offset: 0 + keen::Time length; // Offset: 8 + keen::bool loop; // Offset: 16 + keen::BlobString name; // Offset: 20 +}; + +struct actor.ActorSequenceResource { + keen::Guid resourceId; // Offset: 32 + keen::impact::MajorDirection majorDirection; // Offset: 48 +}; + +typedef keen::ObjectReference ecs.EntityTagReference; + +struct ecs.EntityTagReferenceEntry { + keen::ecs::EntityTagReference tag; // Offset: 0 +}; + +struct SequenceEvent { + keen::Time time; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::ecs::EntityTagReference requiredEntityTag; // Offset: 16 + keen::StaticArray forbiddenTags; // Offset: 32 +}; + +struct actor.SetAnimationEvent { + keen::animationgraph::StateIdReference animationName; // Offset: 96 + keen::bool usePureLveLocomotion; // Offset: 112 + keen::bool alignLveLocomotionToFloor; // Offset: 113 + keen::bool scaleLveWithMovementInput; // Offset: 114 + keen::bool retriggerAnimation; // Offset: 115 +}; + +struct actor.RootMotionWarpEvent { + keen::float32 minDistanceToTarget; // Offset: 96 + keen::float32 maxScale; // Offset: 100 + keen::bool abortWarpAboveMaxScale; // Offset: 104 +}; + +struct actor.PreserveVelocity { +}; + +struct actor.ImpulseEvent { + keen::float3 worldDistance; // Offset: 96 + keen::float3 localDistance; // Offset: 108 + keen::ecs::ImpulseType impulseType; // Offset: 120 + keen::bool applyOnlyHorizontally; // Offset: 121 +}; + +struct actor.ApplyImpulseEvent { + keen::float3 worldImpulse; // Offset: 96 + keen::float3 localImpulse; // Offset: 108 +}; + +struct actor.SetAnimationOverlayEvent { + keen::animationgraph::OverlayIdReference overlayName; // Offset: 96 + keen::BlobString jointMaskStart; // Offset: 112 +}; + +struct actor.KeepAliveEvent { + keen::actor::StateMask keepAliveMask; // Offset: 96 + keen::actor::StateMask abortMask; // Offset: 104 +}; + +struct actor.LoopEvent { + keen::actor::StateMask keepAliveMask; // Offset: 96 + keen::actor::StateMask abortMask; // Offset: 104 + keen::bool jumpToLoopEndOnAbort; // Offset: 112 +}; + +enum class actor.ScopeEndBehavior { + LoopScope = 0, + ExitScope = 1, +}; + +struct actor.ScopeEvent { + keen::actor::ScopeEndBehavior scopeEndBehavior; // Offset: 120 +}; + +struct actor.ChangeColliderSetup { + keen::ecs::ColliderMode mode; // Offset: 96 +}; + +struct actor.ToggleInteractionActionEvent { +}; + +struct actor.LootInteractionActionEvent { + keen::bool lootAll; // Offset: 96 + keen::bool forAllPlayers; // Offset: 97 +}; + +struct actor.ResetFallAltitudeOnApexEvent { +}; + +enum class actor.SnapType { + Stick = 0, + Target = 1, + TargetOrStick = 2, + TargetOrSetting = 3, + TargetOrCursor = 4, + Cursor = 5, +}; + +enum class actor.InterpolationMode { + LinearAxisRotation = 0, + ExponentialLerp = 1, + LerpWithConstantSpeed = 2, + LerpSmooth = 3, + LerpSmoother = 4, + RotateLeft = 5, + RotateRight = 6, +}; + +struct actor.SnapEvent { + keen::actor::SnapType type; // Offset: 96 + keen::ecs::TargetType targetType; // Offset: 97 + keen::actor::InterpolationMode rotationInterpolationMode; // Offset: 98 +}; + +struct actor.SetAbortByMovement { + keen::bool value; // Offset: 96 +}; + +struct actor.PushEvent { + keen::float32 force; // Offset: 96 +}; + +enum class actor.JumpType { + Invalid = 0, + Default = 1, + DoubleDefault = 2, + DoubleSprint = 3, + Sprint = 4, + DefaultSubmerged = 5, + StruggleSubmerged = 6, + Glider = 7, + HookSwingEnter = 8, + HookSwingDefaultExit = 9, + HookSwingSprintExit = 10, + LadderClimbing = 11, + FreeClimbing = 12, + Slide = 13, + Attack = 14, + Airwolf = 15, + NpcMovement = 16, + JumpPad = 17, +}; + +struct actor.JumpEvent { +}; + +struct actor.HookEvent { +}; + +struct actor.SelfDestructEvent { +}; + +enum class CameraId { + EntityCamera = 0, + PlayerCameraCustomizationBody = 1, + PlayerCameraCustomizationFace = 2, + PlayerCameraSpawning = 3, + PlayerCameraSpawningDolly = 4, + PlayerCameraRespawning = 5, + PlayerCameraDefault = 6, + PlayerCameraDefaultTarget = 7, + PlayerCameraSprinting = 8, + PlayerCameraRangedBowDefault = 9, + PlayerCameraRangedBowDefaultTarget = 10, + PlayerCameraRangedBowSneaking = 11, + PlayerCameraRangedBowSneakingTarget = 12, + PlayerCameraRangedStaffDefault = 13, + PlayerCameraRangedStaffDefaultTarget = 14, + PlayerCameraRangedStaffSneaking = 15, + PlayerCameraRangedStaffSneakingTarget = 16, + PlayerCameraHipfire = 17, + PlayerCameraExecute = 18, + PlayerCameraIdle = 19, + PlayerCameraSneaking = 20, + PlayerCameraSitting = 21, + PlayerCameraCooking = 22, + PlayerCameraClimbing = 23, + PlayerCameraHookShot = 24, + PlayerCameraGlider = 25, + PlayerCameraDialogue = 26, + PlayerCameraAltar = 27, + PlayerCameraBuilding = 28, + PlayerCameraBuildingModeOrbit = 29, + PlayerCameraBuildingModeFree = 30, +}; + +struct actor.LockCameraIdEvent { + keen::CameraId cameraId; // Offset: 96 +}; + +struct actor.UnlockCameraIdEvent { +}; + +enum class CameraOverride { + None = 0, + BlinkLerpSpeed = 1, + CameraTransitionLerpSpeed = 2, +}; + +struct actor.SetCameraOverrideEvent { + keen::CameraOverride cameraOverride; // Offset: 96 +}; + +struct actor.CameraShakeEvent { + keen::float32 trauma; // Offset: 96 +}; + +struct actor.CameraShakeImpulseEvent { + keen::float3 impulse; // Offset: 96 + keen::float32 additionalTrauma; // Offset: 108 +}; + +enum class HudScreenType { + Invalid = 0, + InGame = 1, + SystemMenu = 2, + SettingsMenu = 3, + InGameMenu = 4, + Map = 5, + Journal = 6, + Character = 7, + PlayerCrafting = 8, + Backpack = 9, + SkillTree = 10, + FlameAltar = 11, + AltarUpgrade = 12, + FlameUpgrade = 13, + AltarDeactivate = 14, + SkillRespec = 15, + LoreReading = 16, + Signpost = 17, + ReadOnlyLootChest = 18, + StorageChest = 19, + Collection = 20, + FeedingStation = 21, + StationBasedCrafting = 22, + NpcDialog = 23, + NpcCrafting = 24, + FactoryCrafting = 25, + BlueprintSideMenu = 26, + TerraformingSideMenu = 27, + NpcSummonerSideMenu = 28, + UserFeedback = 29, + TwitchDrops = 30, + NoUi = 31, + TechGallery = 32, + FelixPlayground = 33, + LukasPlayground = 34, + NicPlayground = 35, + YcPlayground = 36, +}; + +struct actor.OpenUi { + keen::HudScreenType hudScreen; // Offset: 96 +}; + +struct actor.NegativeFeedbackEvent { + keen::LocaTagReference messageLocaTag; // Offset: 96 +}; + +enum class ecs.EnemyEventType { + CallForHelp = 0, + LaunchProjectiles = 1, + DestroyProjectiles = 2, + CalcDashMovement = 3, + RemoveAttackAttachment = 4, +}; + +struct actor.EnemyCommandEvent { + keen::ecs::EnemyEventType eventType; // Offset: 96 +}; + +struct actor.TriggerNoiseEvent { + keen::float32 range; // Offset: 96 +}; + +enum class ecs.SyncedAttackType { + Execute = 0, + SneakExecute = 1, +}; + +struct actor.SyncAttackEvent { + keen::ecs::SyncedAttackType type; // Offset: 96 +}; + +struct actor.SyncedSequenceEvent { + keen::actor::ActorSequenceReference sequence; // Offset: 96 +}; + +struct actor.TriggerKnowledge { + keen::bool unlockForGroup; // Offset: 96 +}; + +enum class actor.AbilityFlag { + CanTriggerPrimary = 0, + CanTriggerSecondary = 1, + CanRangedCombatShoot = 2, + CanUseTool = 3, + CanEvade = 4, + CanBlock = 5, + CanUseLongerStunParry = 6, + CanJump = 7, + CanTriggerGlider = 8, + CanInteract = 9, + CanSprint = 10, + CanSneak = 11, + CanSit = 12, + CanClimb = 13, + CanExternallyAbortSequence = 14, + CanAbortSequenceByDeath = 15, + CanShowHitReaction = 16, + CanChangeCombatTargetOrHardLockCandidate = 17, + CanChangeVisceralTarget = 18, + CanChangeInteractionTarget = 19, + CanChangeBuildingCursor = 20, + CanRecharge = 21, + CanMove = 22, + CanRotate = 23, + CanCancel = 24, +}; + +typedef keen::Bitmask32 actor.AbilityMask; + +struct actor.MovementFactors { + keen::float32 forward; // Offset: 0 + keen::float32 backward; // Offset: 4 + keen::float32 lateral; // Offset: 8 +}; + +typedef keen::ObjectReference skilltree_nodes.NodeReference; + +struct actor.DisableAbilityEvent { + keen::actor::AbilityMask mask; // Offset: 96 + keen::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.EnableAbilityEvent { + keen::actor::AbilityMask mask; // Offset: 96 + keen::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.SetStateEvent { + keen::actor::StateMask mask; // Offset: 96 +}; + +struct actor.ClearStateEvent { + keen::actor::StateMask mask; // Offset: 96 +}; + +struct actor.RequestUiCover { +}; + +struct actor.SetGravityEvent { + keen::float32 gravityModifier; // Offset: 96 +}; + +struct actor.ResetGravityEvent { +}; + +struct actor.LerpMovementFactorEvent { + keen::actor::MovementFactors desiredMovementFactors; // Offset: 96 + keen::Time lerpDuration; // Offset: 112 +}; + +struct actor.LerpRotationFactorEvent { + keen::float32 desiredRotationSpeedFactor; // Offset: 96 +}; + +struct actor.LerpTransformEvent { + keen::ecs::LerpTransformTarget lerpTarget; // Offset: 96 + keen::bool lerpPosition; // Offset: 97 + keen::bool lerpOrientation; // Offset: 98 +}; + +struct actor.LerpSubmergeDepthEvent { + keen::float submergeDelta; // Offset: 96 +}; + +struct actor.StartClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.StopClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.PlayInstrumentEvent { +}; + +struct actor.TeleportToTargetEvent { + keen::ecs::TargetType targetType; // Offset: 96 +}; + +struct actor.PetAnimalEvent { +}; + +struct actor.UpgradeAnimalEvent { +}; + +enum class actor.ActionSequenceTrigger { + Invalid = 0, + Primary = 1, + Secondary = 2, + Tool = 3, + Evade = 4, + Block = 5, + Parry = 6, + Jump = 7, + Glider = 8, + Interact = 9, + InteractHold = 10, + Sneak = 11, + Sit = 12, + Climb = 13, + HitReaction = 14, + Respawn = 15, + ExternalTrigger = 16, + Parried = 17, + ExternalAbortAndOverride = 18, + Death = 19, + ParriedOverride = 20, + ClearAll = 65535, +}; + +struct actor.SetOpportunity { + keen::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 + keen::skilltree_nodes::NodeReference requiredSkill; // Offset: 100 + keen::Time followUpTime; // Offset: 120 + keen::Guid eventGuid; // Offset: 128 + keen::bool override; // Offset: 144 +}; + +typedef keen::ObjectReference ImpactProgramReference; + +typedef keen::BlobArray> impact.Configurations; + +struct actor.SetActionOportunity { + keen::actor::ActorSequenceReference followUp; // Offset: 152 + keen::ImpactProgramReference costImpact; // Offset: 168 + keen::impact::Configurations impactValues; // Offset: 184 +}; + +struct actor.ClearActionOportunity { + keen::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 +}; + +enum class actor.SpawnEntityTransform { + Spawner = 0, + Cursor = 1, + Crosshair = 2, + RangedCrosshairOrTowardsCombatTarget = 3, + Teleport = 4, + CombatTarget = 5, + InteractionTarget = 6, + SafePlayerPosition = 7, + Unit = 8, + BetweenCombatTargetAndSpawner = 9, +}; + +struct actor.RadiusRange { + keen::float32 minRadius; // Offset: 0 + keen::float32 maxRadius; // Offset: 4 +}; + +struct actor.RandomOrientationOffset { + keen::Angle minX; // Offset: 0 + keen::Angle maxX; // Offset: 4 + keen::Angle minY; // Offset: 8 + keen::Angle maxY; // Offset: 12 + keen::Angle minZ; // Offset: 16 + keen::Angle maxZ; // Offset: 20 +}; + +struct actor.SpawnEntityBaseEvent { + keen::skilltree_nodes::NodeReference requiredSkill; // Offset: 96 + keen::ecs::TemplateReference templateReference; // Offset: 112 + keen::actor::SpawnEntityTransform spawnTransform; // Offset: 128 + keen::AttachmentSlot attachmentSlot; // Offset: 129 + keen::AttachmentSlot spawnSlot; // Offset: 130 + keen::ecs::Offset spawnOffset; // Offset: 132 + keen::impact::MajorDirection vfxDirection; // Offset: 172 + keen::ecs::TargetType providedTarget; // Offset: 173 + keen::bool consume; // Offset: 174 + keen::ItemReference onConsumeExchange; // Offset: 176 + keen::bool addWeaponReference; // Offset: 192 + keen::bool despawnAfterSequence; // Offset: 193 + keen::bool endSequenceOnDespawn; // Offset: 194 + keen::bool transferUsedItem; // Offset: 195 + keen::bool copyCustomString; // Offset: 196 + keen::actor::RadiusRange randomSpawnRadius; // Offset: 200 + keen::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 208 + keen::float32 minSpawnRatio; // Offset: 232 + keen::float32 maxSpawnRatio; // Offset: 236 + keen::uint8 minSpawnCount; // Offset: 240 + keen::uint8 maxSpawnCount; // Offset: 241 + keen::bool breakImpactHierarchy; // Offset: 242 + keen::bool ignoreSpawnVelocity; // Offset: 243 + keen::float3 spawnVelocity; // Offset: 244 + keen::bool applyRandomLoot; // Offset: 256 + keen::bool copyCombatAttributes; // Offset: 257 + keen::float32 chance; // Offset: 260 +}; + +struct actor.RefillBurner { +}; + +struct actor.SpawnEntityEvent { + keen::bool isProjectile; // Offset: 264 + keen::bool clearProjectiles; // Offset: 265 +}; + +struct actor.TriggerMartyrSkills { +}; + +struct actor.SpawnEntityPerAggroTargetEvent { + keen::actor::StateMask excludedTargetStates; // Offset: 264 + keen::bool isProjectile; // Offset: 272 + keen::bool clearProjectiles; // Offset: 273 + keen::bool onlyPlayerTargets; // Offset: 274 + keen::actor::RadiusRange randomPerTargetSpawnRadius; // Offset: 276 + keen::uint8 maxTargets; // Offset: 284 +}; + +struct impact.DamageDistribution { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::uint32 woodDamage; // Offset: 36 + keen::uint32 stoneDamage; // Offset: 40 + keen::uint32 metalDamage; // Offset: 44 + keen::uint32 explosionDamage; // Offset: 48 +}; + +struct actor.SpawnImpact { + keen::ImpactProgramReference impact; // Offset: 264 + keen::Guid eventGuid; // Offset: 280 + keen::impact::DamageDistribution damageDistribution; // Offset: 296 + keen::ecs::ColliderResourceData colliderData; // Offset: 348 + keen::impact::Configurations impactValues; // Offset: 368 + keen::bool damageDistributionIsSet; // Offset: 376 +}; + +typedef keen::ObjectReference BuffTypeReference; + +struct actor.ApplyBuffEvent { + keen::BuffTypeReference buffTypeOverride; // Offset: 96 + keen::bool consume; // Offset: 112 + keen::impact::Configurations impactValues; // Offset: 116 + keen::impact::DamageDistribution damageDistribution; // Offset: 124 + keen::bool damageDistributionIsSet; // Offset: 176 +}; + +struct actor.PlaceVoxelObjectEvent { + keen::bool subtract; // Offset: 96 + keen::bool consume; // Offset: 97 +}; + +struct Matrix33 { + keen::Vector3 x; // Offset: 0 + keen::Vector3 y; // Offset: 16 + keen::Vector3 z; // Offset: 32 +}; + +struct Matrix43 { + keen::Matrix33 rot; // Offset: 0 + keen::Vector3 pos; // Offset: 48 +}; + +struct actor.DetachEntityEvent { + keen::Vector3 force; // Offset: 96 + keen::Vector3 randomAngleByAxis; // Offset: 112 + keen::Matrix43 launchTransform; // Offset: 128 + keen::bool addGravity; // Offset: 192 +}; + +struct actor.DetachProjectileEntityEvent { +}; + +struct actor.SetTriggerStateEvent { + keen::SignalReference trigger; // Offset: 96 + keen::bool state; // Offset: 112 +}; + +struct actor.ShowAmmunition { +}; + +struct actor.SetVisualAmmunition { +}; + +struct actor.ResetVisualAmmunition { +}; + +struct actor.StartCookEvent { +}; + +struct actor.SpawnCookEntitesEvent { +}; + +struct actor.ActivateCombatStanceEvent { +}; + +typedef keen::ObjectReference ecs.DefaultInventoryReference; + +struct actor.TransformToLootEvent { + keen::ecs::DefaultInventoryReference defaultInventory; // Offset: 96 + keen::bool keepDefaultInventory; // Offset: 112 + keen::uint8 genericSlotCount; // Offset: 113 + keen::uint8 availableSlotCount; // Offset: 114 + keen::actor::ActorSequenceReference defaultAction; // Offset: 116 + keen::LocaTagReference verbLoca; // Offset: 132 + keen::ecs::Offset vfxOnSpawnOffset; // Offset: 148 + keen::VfxReference vfxOnSpawn; // Offset: 188 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 204 + keen::uint32 lootHealth; // Offset: 268 +}; + +struct actor.AcceptInteractionEvent { +}; + +enum class actor.VoxelChangeType { + Invalid = 0, + Add = 1, + Flatten = 2, + HorizontalFlatten = 3, + Undo = 4, +}; + +struct actor.ChangeVoxel { + keen::actor::VoxelChangeType changeType; // Offset: 96 +}; + +struct actor.Dismantle { +}; + +typedef keen::HashKey32 NpcId; + +struct actor.AssignNpc { + keen::NpcId npcId; // Offset: 96 +}; + +struct actor.TameWildlifeEvent { +}; + +struct actor.RotationInterpolation { + keen::Quaternion startOrientation; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 16 + keen::float3 linearRotationAxis; // Offset: 32 + keen::float32 speed; // Offset: 44 + keen::actor::InterpolationMode interpolationMode; // Offset: 48 +}; + +struct actor.RotationData { + keen::Time startTime; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 8 + keen::Time snapDuration; // Offset: 24 +}; + +typedef keen::HashKey32 actor.SequenceResourceId; + +struct actor.SequenceRuntimeId { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::ecs::EntityId actorEntityId; // Offset: 16 + keen::uint8 callIndex; // Offset: 20 +}; + +typedef keen::uint8 InventorySlotIndex; + +struct InventorySlotId { + keen::ecs::EntityId entityId; // Offset: 0 + keen::InventorySlotIndex slotIndex; // Offset: 4 +}; + +enum class ItemStateFlag { + Broken = 0, + DurabilityInitialized = 1, + ContinuousDurabilityLoss = 2, + IsEquipped = 3, + HasLevel = 4, + HasDamage = 5, + IsNew = 6, + HasContinuousDurability = 7, +}; + +typedef keen::Bitmask8 ItemStateMask; + +struct ItemInstanceInfo { + keen::InventorySlotId slotId; // Offset: 0 + keen::ItemId itemId; // Offset: 8 + keen::ecs::EntityId pide; // Offset: 12 + keen::ItemStateMask stateMask; // Offset: 16 +}; + +typedef keen::HashKey32 SongId; + +typedef keen::HashKey32 KnowledgeId; + +struct actor.ActionSequenceTriggerContext { + keen::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::actor::ActionSequenceTrigger triggerType; // Offset: 24 + keen::ItemInstanceInfo costItem; // Offset: 28 + keen::ItemInstanceInfo usedItem; // Offset: 48 + keen::ItemInstanceInfo usedAmmunition; // Offset: 68 + keen::actor::JumpType jumpType; // Offset: 88 + keen::float3 directionOverride; // Offset: 92 + keen::SongId songId; // Offset: 104 + keen::Time startTime; // Offset: 112 + keen::ecs::EntityId interactionHostId; // Offset: 120 + keen::uint32 interactionOfferId; // Offset: 124 + keen::StaticArray unlockKnowledgeIds; // Offset: 128 + keen::StaticArray entityTags; // Offset: 160 +}; + +typedef keen::HashKey32 SkillNodeId; + +struct actor.FollowUp { + keen::actor::ActionSequenceTriggerContext context; // Offset: 0 + keen::actor::SequenceResourceId originalEventSequence; // Offset: 224 + keen::Guid eventGuid; // Offset: 228 + keen::Time localExecutionTime; // Offset: 248 + keen::SkillNodeId requiredSkill; // Offset: 256 + keen::ImpactProgramReference costImpact; // Offset: 260 + keen::bool wasTriggered; // Offset: 276 +}; + +enum class actor.ActionSequenceFlags { + IsActive = 0, + IsInScope = 1, + IsInScopeLoop = 2, + RetriggerAnimation = 3, + AbortViaMovement = 4, + SelfDestruct = 5, +}; + +typedef keen::Bitmask8 actor.ActionSequenceState; + +struct actor.ActionSequenceSpan { + keen::Time startTime; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ColliderModeData { + keen::ecs::ColliderMode mode; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ActionSequencePlaybackContext { + keen::Time playedTime; // Offset: 0 + keen::Time currentTime; // Offset: 8 + keen::Time sequenceLength; // Offset: 16 + keen::Time scopeStartTime; // Offset: 24 + keen::Time scopeEndTime; // Offset: 32 + keen::actor::StateMask scopeAbortMask; // Offset: 40 + keen::actor::StateMask scopeKeepAliveMask; // Offset: 48 + keen::bool scopeJumpToScopeEndOnAbort; // Offset: 56 + keen::actor::ActionSequenceState state; // Offset: 57 + keen::StaticArray playbackSpan; // Offset: 64 + keen::StaticArray followUps; // Offset: 96 + keen::actor::AbilityMask abilityMask; // Offset: 1776 + keen::actor::StateMask setStateMask; // Offset: 1784 + keen::actor::StateMask unsetStateMask; // Offset: 1792 + keen::actor::StateMask sequenceAbortMask; // Offset: 1800 + keen::actor::StateMask sequenceKeepAliveMask; // Offset: 1808 + keen::bool wrapedAround; // Offset: 1816 +}; + +struct actor.SignalStates { + keen::StaticArray activeSignals; // Offset: 0 +}; + +struct actor.ActionSequence { + keen::actor::ActionSequenceTriggerContext triggerContext; // Offset: 0 + keen::actor::ActionSequencePlaybackContext playbackContext; // Offset: 224 +}; + +struct actor.PlaceItemEvent { +}; + +struct actor.SetAttackChainVariationEvent { + keen::ecs::EntityTagReference followUpSequenceTag; // Offset: 96 +}; + +struct PreviewAnimGraph2 { + keen::ObjectReference animGraphId; // Offset: 0 + keen::bool useFemaleAnimation; // Offset: 16 +}; + +struct ActorActionContainer { + keen::ObjectReference previewAnimationGraph; // Offset: 0 + keen::PreviewAnimGraph2 previewAnimationGraph2Info; // Offset: 16 +}; + +struct ActorActionContainerRoot { +}; + +typedef keen::ObjectReference ActorSequenceResourceReference; + +struct ActorSequenceCollectionResource { + keen::BlobArray sequences; // Offset: 0 +}; + +enum class AmmunitionType { + Invalid = 0, + Arrow = 1, + Spell = 2, + Count = 2, +}; + +enum class animal.Needs { + Shelter = 0, + Sleep = 1, + Food = 2, +}; + +typedef keen::Bitmask8 animal.NeedsMask; + +enum class animal.InteractionState { + IsTurning = 0, + IsCloseToPlayer = 1, + IsPlayingPetSequence = 2, +}; + +typedef keen::Bitmask8 animal.InteractionStates; + +enum class animal.TargetSearchState { + TargetReached = 0, + NotTryingThisState = 1, +}; + +typedef keen::Bitmask8 animal.TargetSearchStates; + +enum class animal.State { + Invalid = 0, + Init = 1, + Start = 2, + Idle = 3, + Roam = 4, + Sitting = 5, + Sleep = 6, + Eating = 7, + Interested = 8, + GreetPlayer = 9, + FinishTask = 10, +}; + +enum class animal.StateCondition { + IsFinished = 0, + HasFailed = 1, + WantsToRoam = 2, + WantsToSit = 3, + WantsToEat = 4, + WantsToSleep = 5, + WantsToGreet = 6, + WantsToIdle = 7, + IsInterested = 8, +}; + +enum class animal.Type { + None = 0, + FarmAnimal = 1, + Bunny = 2, + Catdeer = 3, + Goat = 4, + SandDigger = 5, + Turkey = 6, + Yak = 7, + Pet = 8, + Cat = 9, + Dog = 10, +}; + +typedef keen::Bitmask16 animal.TypeMask; + +struct animal.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +struct animal.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float greetWeight; // Offset: 12 + keen::float roamWeight; // Offset: 16 +}; + +struct animal.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 sequenceChance; // Offset: 16 +}; + +struct animal.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct animal.TargetSetup { + keen::bool isBed; // Offset: 0 + keen::bool isFood; // Offset: 1 + keen::bool isInteresting; // Offset: 2 +}; + +struct animal.HungerSetup { + keen::Time timeUntilHungerMinDuration; // Offset: 0 + keen::Time timeUntilHungerMaxDuration; // Offset: 8 + keen::Time foodConsumptionRate; // Offset: 16 +}; + +struct animal.ReproductionSetup { + keen::float32 maxReproductionDistance; // Offset: 0 + keen::float32 baseReproductionChance; // Offset: 4 + keen::Time reproductionRate; // Offset: 8 +}; + +enum class animal.AnimalQueryStatus { + Idle = 0, + Requested = 1, + WaitForResult = 2, + Canceled = 3, +}; + +struct animal.RangeQueryInfo { + keen::animal::AnimalQueryStatus status; // Offset: 0 + keen::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct animal.PathQueryInfo { + keen::animal::AnimalQueryStatus status; // Offset: 0 + keen::ecs::PathQueryId queryId; // Offset: 4 +}; + +enum class animal.ReproductionQueryState { + Idle = 0, + RangeQueries = 1, + PathQueries = 2, + Canceled = 3, +}; + +struct animal.ReproductionState { + keen::bool requirementsFulfilled; // Offset: 0 + keen::animal::ReproductionQueryState queryState; // Offset: 1 + keen::ecs::EntityId closestFreeBedId; // Offset: 4 + keen::ecs::EntityId closestOtherAnimalId; // Offset: 8 + keen::animal::RangeQueryInfo animalQuery; // Offset: 12 + keen::animal::RangeQueryInfo bedQuery; // Offset: 20 + keen::animal::PathQueryInfo animalPathQuery; // Offset: 28 + keen::animal::PathQueryInfo bedPathQuery; // Offset: 36 +}; + +struct animal.HungerState { + keen::StaticArray foodTargets; // Offset: 0 + keen::animal::RangeQueryInfo foodSourceQueryInfo; // Offset: 32 + keen::animal::PathQueryInfo pathfindingQuery; // Offset: 40 + keen::uint8 currentPathfindingIndex; // Offset: 48 +}; + +struct active_npc.RoamingSetup { + keen::float32 minDistanceToCurrentPosition; // Offset: 0 + keen::float32 maxRadiusFromSpawn; // Offset: 4 + keen::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 8 +}; + +struct active_npc.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleRoaming; // Offset: 4 +}; + +struct active_npc.SleepSetup { + keen::FloatRange sleepTime; // Offset: 0 + keen::FloatRange wakeUpTime; // Offset: 8 +}; + +struct active_npc.PathNodeSetup { + keen::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct ecs.Animal { + keen::actor::TurnSetup turnSetup; // Offset: 0 + keen::actor::ActorSequenceReference sitSequence; // Offset: 72 + keen::actor::ActorSequenceReference sleepSequence; // Offset: 88 + keen::actor::ActorSequenceReference inspectSequence; // Offset: 104 + keen::actor::ActorSequenceReference beingPetSequence; // Offset: 120 + keen::actor::ActorSequenceReference eatingSequence; // Offset: 136 + keen::actor::ActorSequenceReference sadIdleSequence; // Offset: 152 + keen::actor::ActorSequenceReference greetSequence; // Offset: 168 + keen::float32 minDistanceToPlayer; // Offset: 184 + keen::animal::Type type; // Offset: 188 + keen::animal::DecisionSetup decisionSetup; // Offset: 192 + keen::animal::IdleSetup idleSetup; // Offset: 216 + keen::active_npc::RoamingSetup roamingSetup; // Offset: 240 + keen::active_npc::MovementSetup movementSetup; // Offset: 252 + keen::active_npc::SleepSetup sleepSetup; // Offset: 260 + keen::animal::SearchTargetSetup searchTargetSetup; // Offset: 276 + keen::active_npc::PathNodeSetup pathNodeSetup; // Offset: 284 + keen::animal::HungerSetup hungerSetup; // Offset: 392 + keen::animal::ReproductionSetup reproductionSetup; // Offset: 416 + keen::ecs::TemplateReference babyAnimalVersion; // Offset: 432 + keen::actor::ActorSequenceReference defaultInteractionSequence; // Offset: 448 + keen::LocaTagReference defaultInteractionVerbLoca; // Offset: 464 +}; + +struct ecs.DynamicAnimal { + keen::animal::State state; // Offset: 0 + keen::animal::State previousState; // Offset: 1 + keen::Time standingNextToPlayerTimer; // Offset: 8 + keen::animal::TargetSearchStates targetSearchStates; // Offset: 16 + keen::ecs::EntityId beingPetByPlayerId; // Offset: 20 + keen::ecs::RangeQueryId queryId; // Offset: 24 + keen::animal::ReproductionState reproductionState; // Offset: 28 + keen::Time timeUntilHungry; // Offset: 72 + keen::Time eatingCooldown; // Offset: 80 + keen::animal::HungerState hungerState; // Offset: 88 + keen::bool bedSearched; // Offset: 140 +}; + +struct ecs.NetworkAnimal { + keen::animal::NeedsMask needs; // Offset: 0 +}; + +struct ecs.AnimalSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::Time lastFoodConsumptionTime; // Offset: 16 + keen::Time lastValidReproduction; // Offset: 24 + keen::bool willConsumeFood; // Offset: 32 + keen::Time nextReproductionCheck; // Offset: 40 + keen::animal::NeedsMask needs; // Offset: 48 +}; + +struct ecs.AnimalTarget { + keen::animal::TargetSetup setup; // Offset: 0 + keen::animal::TypeMask types; // Offset: 4 + keen::ecs::Offset targetOffset; // Offset: 8 +}; + +struct ecs.DynamicAnimalTarget { + keen::ecs::EntityId associatedAnimal; // Offset: 0 +}; + +struct ecs.BabyAnimal { + keen::Time growTime; // Offset: 0 + keen::ecs::TemplateReference grownUpEntity; // Offset: 8 + keen::Time growUpTimer; // Offset: 24 + keen::bool canGrowUp; // Offset: 32 +}; + +enum class ecs.AttributeFlags { + Initialized = 0, + Break_OnWrite = 1, +}; + +struct ecs.AttributeComponent { + keen::HashKey32 rootId; // Offset: 0 + keen::HashKey32 signature; // Offset: 4 + keen::uint32 storageOffset; // Offset: 8 + keen::uint32 storageSize; // Offset: 12 + keen::Bitmask16 flags; // Offset: 16 +}; + +struct ecs.FloatAttribute { +}; + +struct ecs.UInt32Attribute { +}; + +struct ecs.SInt32Attribute { +}; + +struct ecs.BoolAttribute { +}; + +struct ecs.DurabilityLoad { + keen::float32 percentage; // Offset: 0 +}; + +struct ecs.DurabilityBurndown { + keen::Time lastUpdate; // Offset: 0 +}; + +enum class impact.AttributeType { + Invalid = 0, + Bool = 1, + Sint32 = 2, + Uint32 = 3, + Float32 = 4, +}; + +struct impact.AttributeDeclerationBase { + keen::BlobString formula; // Offset: 0 +}; + +struct impact.AttributeDecleration { + keen::impact::AttributeType type; // Offset: 8 +}; + +typedef keen::uint16 impact.AttributeIndex; + +struct AttributeContainer { +}; + +typedef keen::uint32 AttributeCommand; + +enum class AttributeOps { + Invalid = 0, + Load0 = 1, + Load = 2, + LoadRef = 3, + Store = 4, + Push = 5, + Add = 6, + Substract = 7, + Multiply = 8, + Divide = 9, + Pow = 10, + MulPercentage = 11, + Clamp = 12, + ScaleToNewMax = 13, + Min = 14, + Max = 15, + And = 16, + Or = 17, + Not = 18, + NAnd = 19, + Halt = 20, +}; + +struct AttributeStructure { + keen::impact::AttributeIndex parentIndex; // Offset: 0 + keen::impact::AttributeIndex childIndex; // Offset: 2 + keen::impact::AttributeIndex siblingIndex; // Offset: 4 + keen::BlobArray calculation; // Offset: 8 +}; + +struct BaseAttributeResource { + keen::HashKey32 type; // Offset: 0 + keen::BlobArray ids; // Offset: 4 + keen::BlobArray structure; // Offset: 12 + keen::BlobArray debugNames; // Offset: 20 +}; + +struct AttributeContainerResource { + keen::BlobArray attributes; // Offset: 0 +}; + +typedef keen::ObjectReference AttributeRootReference; + +typedef keen::ObjectReference AttributeReference; + +struct AttributeValueBase { + keen::AttributeReference id; // Offset: 0 +}; + +struct FloatAttributeValue { + keen::float32 value; // Offset: 16 +}; + +struct SInt32AttributeValue { + keen::sint32 value; // Offset: 16 +}; + +struct UInt32AttributeValue { + keen::uint32 value; // Offset: 16 +}; + +struct BoolAttributeValue { + keen::bool value; // Offset: 16 +}; + +struct BalancingAltarCount { + keen::uint8 flameLevel; // Offset: 0 + keen::uint8 altarCount; // Offset: 1 +}; + +struct BalancingBuildzoneSize { + keen::uint8 altarLevel; // Offset: 0 + keen::float3 buildzoneSize; // Offset: 4 +}; + +enum class ExperienceSourceType { + None = 0, + Exploration = 1, + Lore = 2, + Quest = 3, + Combat = 4, + Mining = 5, +}; + +struct ExperienceBalancing { + keen::ExperienceSourceType source; // Offset: 0 +}; + +struct ExperienceBalanceValue { + keen::ExperienceSourceType source; // Offset: 0 + keen::HashKey32 experienceValueId; // Offset: 4 + keen::uint32 experienceGain; // Offset: 8 +}; + +struct RandomSpawnerBalancing { + keen::float32 fewAmountFactor; // Offset: 0 + keen::float32 manyAmountFactor; // Offset: 4 + keen::float32 extremeAmountFactor; // Offset: 8 +}; + +struct AggroPoolThresholdBalancing { + keen::uint32 twoPoolsThreshold; // Offset: 0 + keen::uint32 threePoolsThreshold; // Offset: 4 + keen::uint32 maxPoolsThreshold; // Offset: 8 +}; + +struct AggroPoolBalancing { + keen::AggroPoolThresholdBalancing fewThresholds; // Offset: 0 + keen::AggroPoolThresholdBalancing normalThresholds; // Offset: 12 + keen::AggroPoolThresholdBalancing manyThresholds; // Offset: 24 + keen::AggroPoolThresholdBalancing extremeThresholds; // Offset: 36 +}; + +struct BalancingTable { + keen::uint32 genericWeaponSeed; // Offset: 0 + keen::uint32 flameLevelMax; // Offset: 4 + keen::uint32 altarLevelMax; // Offset: 8 + keen::uint32 playerLevelMax; // Offset: 12 + keen::uint32 playerLevelCap; // Offset: 16 + keen::uint32 itemLevelCap; // Offset: 20 + keen::float32 damageBoostFlame; // Offset: 24 + keen::uint32 apPerFlameLevel; // Offset: 28 + keen::float32 critBonus; // Offset: 32 + keen::float32 baseCritChance; // Offset: 36 + keen::float32 powerCreepWeapon; // Offset: 40 + keen::uint32 htkStartPve; // Offset: 44 + keen::uint32 htkEndPve; // Offset: 48 + keen::float32 damageMod2Handed; // Offset: 52 + keen::uint32 playerBaseHealth; // Offset: 56 + keen::uint32 playerHealthPerAP; // Offset: 60 + keen::uint32 playerBaseMana; // Offset: 64 + keen::uint32 playerManaPerAP; // Offset: 68 + keen::uint32 playerBaseStamina; // Offset: 72 + keen::uint32 playerStaminaPerAP; // Offset: 76 + keen::uint32 playerBaseBodyHeat; // Offset: 80 + keen::float32 freezeDurationFactor; // Offset: 84 + keen::float32 freezeDurationOffset; // Offset: 88 + keen::uint32 disableFreezingBaseLevel; // Offset: 92 + keen::uint32 playerBaseFogResistance; // Offset: 96 + keen::uint32 playerFogResistancePerFlameLevel; // Offset: 100 + keen::uint32 htkStartEvp; // Offset: 104 + keen::uint32 htkEndEvp; // Offset: 108 + keen::uint32 killToLevelUPStart; // Offset: 112 + keen::uint32 killToLevelUPEnd; // Offset: 116 + keen::float32 epicWeaponBonus; // Offset: 120 + keen::uint32 xpNeededFromKnowledge; // Offset: 124 + keen::float32 parryToDepletion; // Offset: 128 + keen::uint32 shotsToDepletion; // Offset: 132 + keen::uint32 avarageCharacterMod; // Offset: 136 + keen::ObjectReference knowledgeDirectory; // Offset: 140 + keen::float32 levelDifferenceXpDamper; // Offset: 156 + keen::float32 levelDifferenceXpModMin; // Offset: 160 + keen::float32 levelDifferenceXpModMax; // Offset: 164 + keen::float32 groupSizeXpDamper; // Offset: 168 + keen::float32 groupSizeXpDamperModMin; // Offset: 172 + keen::uint32 skillPointsPerLevel; // Offset: 176 + keen::uint32 maximumTotalMusicComfortBuff; // Offset: 180 + keen::uint32 maximumInstrumentsCountedForComfort; // Offset: 184 + keen::Time timePerInstrumentUntilMaxBuff; // Offset: 192 + keen::float32 defaultArmorBlowthrough; // Offset: 200 + keen::float32 damageScalePerAttributePoint; // Offset: 204 + keen::uint32 xpSeedEnemy; // Offset: 208 + keen::float32 xpSharedOther; // Offset: 212 + keen::float32 perkPower; // Offset: 216 + keen::uint32 perkUpgradeCostSeed; // Offset: 220 + keen::float32 perkCostCreep; // Offset: 224 + keen::uint32 trashStart; // Offset: 228 + keen::uint32 trashEnd; // Offset: 232 + keen::float noiseRainFactor; // Offset: 236 + keen::float buffReapplyPercentage; // Offset: 240 + keen::RandomSpawnerBalancing randomSpawnerBalancing; // Offset: 244 + keen::AggroPoolBalancing aggroPoolBalancing; // Offset: 256 + keen::uint32 maximumAnimalsInWorld; // Offset: 304 + keen::float hookShotCostLevelFactor; // Offset: 308 + keen::uint32 hookShotCostBase; // Offset: 312 + keen::BlobArray altarsPerFlameLevel; // Offset: 316 + keen::BlobArray buildzoneSizesPerAltarLevel; // Offset: 324 + keen::BlobArray experienceValues; // Offset: 332 +}; + +enum class BalancingLocaIds { + HealthPerAP = 0, + ManaPerAP = 1, + StaminaPerAP = 2, +}; + +enum class BuffSlotType { + Food = 0, + Buff = 1, + Debuff = 2, + Rested = 3, + TerrainDebuff = 4, +}; + +enum class BuffApplyType { + Invalid = 0, + ResetTime = 1, + ReplaceAtEnd = 2, + Replace = 3, +}; + +struct OnCreateHelper { + keen::AttachmentSlot slot; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 + keen::bool attach; // Offset: 44 + keen::SoundContainerReference sfx; // Offset: 48 + keen::VfxReference vfx; // Offset: 64 + keen::bool onlyPlayer; // Offset: 80 + keen::NotifierReference notifier; // Offset: 84 +}; + +struct WhileAppliedHelper { + keen::AttachmentSlot slot; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 + keen::SoundContainerReference sfx; // Offset: 44 + keen::VfxReference vfx; // Offset: 60 + keen::VfxUserEffectParameterDataBlock parameters; // Offset: 76 +}; + +typedef keen::HashKey32 BuffTypeId; + +struct UiTextureResource { + keen::PixelFormat format; // Offset: 0 + keen::uint2 size; // Offset: 4 + keen::uint8 levelCount; // Offset: 12 + keen::ContentHash data; // Offset: 16 +}; + +typedef keen::ObjectReference ImageReference; + +struct UiTexture { + keen::UiTextureResource texture; // Offset: 0 + keen::ImageReference image; // Offset: 32 +}; + +enum class FactionType { + Environment = 0, + HitAll = 1, + Fogger = 2, + Vukah = 3, + Scavenger = 4, + Wildlife = 5, + WildBeast = 6, + Player = 7, + AutomatedPlayer = 8, + HitOthers = 9, + Skeleton = 10, + PlayerAlly = 11, + FarmAnimal = 12, + Cyclops = 13, +}; + +typedef keen::Bitmask16 FactionMask; + +struct BuffType { + keen::BuffTypeId buffTypeId; // Offset: 0 + keen::BuffSlotType slot; // Offset: 4 + keen::BuffApplyType applyType; // Offset: 5 + keen::Time defaultLifeTime; // Offset: 8 + keen::NameLocaTag name; // Offset: 16 + keen::DescriptionLocaTag description; // Offset: 32 + keen::bool hideInUi; // Offset: 48 + keen::UiTexture icon; // Offset: 52 + keen::bool hideDurationInUi; // Offset: 100 + keen::bool despawnOnDeath; // Offset: 101 + keen::ImpactProgramReference impact; // Offset: 104 + keen::FactionMask factionExcludeMask; // Offset: 120 + keen::impact::Configurations impactValues; // Offset: 124 + keen::BlobArray uiValues; // Offset: 132 + keen::OnCreateHelper onCreate; // Offset: 140 + keen::WhileAppliedHelper whileApplied; // Offset: 240 +}; + +struct BuffTypeSubDirectory { +}; + +struct BuffTypDirectory { +}; + +struct ecs.BuffInstance { + keen::ecs::EntityId buffEntityId; // Offset: 0 + keen::BuffTypeId typeId; // Offset: 4 + keen::bool cleansed; // Offset: 8 +}; + +struct ecs.BuffContainer { + keen::StaticArray foodBuffs; // Offset: 0 + keen::StaticArray genericBuffs; // Offset: 48 + keen::StaticArray genericDebuffs; // Offset: 240 + keen::StaticArray restedBuff; // Offset: 432 + keen::StaticArray terrainDebuff; // Offset: 444 + keen::Time hungerStartTime; // Offset: 456 + keen::bool extendedFoodBuffSlots; // Offset: 464 +}; + +struct impact.DamageSetup { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::sint32 woodDamage; // Offset: 36 + keen::sint32 stoneDamage; // Offset: 40 + keen::sint32 metalDamage; // Offset: 44 + keen::sint32 explosionDamage; // Offset: 48 +}; + +struct ecs.BuffComponent { + keen::BuffTypeId buffTypeId; // Offset: 0 + keen::impact::DamageSetup damageSetup; // Offset: 4 + keen::bool isDamageSetupSet; // Offset: 56 +}; + +struct ecs.BuffNetworkData { + keen::Time restDuration; // Offset: 0 + keen::BuffTypeId buffTypeId; // Offset: 8 + keen::float32 durationPercentage; // Offset: 12 +}; + +struct UiTexturePreload { + keen::BlobArray textures; // Offset: 0 +}; + +struct BuffTypeCollectionResource { + keen::BlobArray buffs; // Offset: 0 + keen::UiTexturePreload uiTextures; // Offset: 8 +}; + +enum class InhibitBuildingCheck { + None = 0, + Lenient = 1, + Strict = 2, +}; + +enum class InhibitBuildType { + Lenient = 0, + Strict = 1, +}; + +typedef keen::Bitmask8 InhibitBuildMask; + +enum class Gender { + Female = 0, + Male = 1, +}; + +typedef keen::ObjectReference VoicePackReference; + +typedef keen::ObjectReference ColorPresetReference; + +struct CharacterPreset { + keen::Gender gender; // Offset: 0 + keen::VoicePackReference voicePackId; // Offset: 4 + keen::ColorPresetReference hairGradient; // Offset: 20 + keen::ColorPresetReference beardGradient; // Offset: 36 + keen::PaletteColorReference skinColor; // Offset: 52 + keen::PaletteColorReference eyeBrowColor; // Offset: 68 + keen::PaletteColorReference eyeColor; // Offset: 84 + keen::ItemReference head; // Offset: 100 + keen::ItemReference hair; // Offset: 116 + keen::ItemReference beard; // Offset: 132 + keen::ItemReference neck; // Offset: 148 + keen::ItemReference collar; // Offset: 164 + keen::ItemReference chest; // Offset: 180 + keen::ItemReference waist; // Offset: 196 + keen::ItemReference crotch; // Offset: 212 + keen::ItemReference upperArms; // Offset: 228 + keen::ItemReference lowerArms; // Offset: 244 + keen::ItemReference hands; // Offset: 260 + keen::ItemReference upperLegs; // Offset: 276 + keen::ItemReference lowerLegs; // Offset: 292 + keen::ItemReference feet; // Offset: 308 + keen::ItemReference armourHead; // Offset: 324 + keen::ItemReference armourUpperBody; // Offset: 340 + keen::ItemReference armourArms; // Offset: 356 + keen::ItemReference armourLowerBody; // Offset: 372 + keen::ItemReference armourFeet; // Offset: 388 +}; + +typedef keen::ObjectReference ColorGradientReference; + +struct ColorPreset { + keen::ColorGradientReference colorGradient; // Offset: 0 +}; + +typedef keen::HashKey32 ColorPresetId; + +struct ColorPresetResource { + keen::ColorPresetId presetId; // Offset: 0 + keen::ObjectReference colorGradient; // Offset: 4 +}; + +struct CharacterPresetSubDirectory { +}; + +struct CharacterPresetDirectory { +}; + +typedef keen::ObjectReference CharacterPresetCollectionReference; + +typedef keen::HashKey32 CharacterPresetId; + +typedef keen::HashKey32 VoicePackId; + +struct CharacterPresetResource { + keen::CharacterPreset references; // Offset: 0 + keen::CharacterPresetId presetId; // Offset: 404 + keen::Gender gender; // Offset: 408 + keen::VoicePackId voicePackId; // Offset: 412 + keen::ColorPresetId hairColorId; // Offset: 416 + keen::ColorPresetId beardColorId; // Offset: 420 + keen::PaletteColorId skinColor; // Offset: 424 + keen::PaletteColorId eyeBrowColor; // Offset: 428 + keen::PaletteColorId eyeColor; // Offset: 432 + keen::ItemId head; // Offset: 436 + keen::ItemId hair; // Offset: 440 + keen::ItemId beard; // Offset: 444 + keen::ItemId neck; // Offset: 448 + keen::ItemId collar; // Offset: 452 + keen::ItemId chest; // Offset: 456 + keen::ItemId waist; // Offset: 460 + keen::ItemId crotch; // Offset: 464 + keen::ItemId upperArms; // Offset: 468 + keen::ItemId lowerArms; // Offset: 472 + keen::ItemId hands; // Offset: 476 + keen::ItemId upperLegs; // Offset: 480 + keen::ItemId lowerLegs; // Offset: 484 + keen::ItemId feet; // Offset: 488 + keen::ItemId armourHead; // Offset: 492 + keen::ItemId armourUpperBody; // Offset: 496 + keen::ItemId armourArms; // Offset: 500 + keen::ItemId armourLowerBody; // Offset: 504 + keen::ItemId armourFeet; // Offset: 508 +}; + +struct ColorCombination { + keen::PaletteColorReference color0; // Offset: 0 + keen::PaletteColorReference color1; // Offset: 16 + keen::PaletteColorReference color2; // Offset: 32 +}; + +struct CharacterPresetPreviewModelInfo { + keen::ObjectReference model; // Offset: 0 + keen::ColorCombination colorCombination; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::BlobArray blendShapes; // Offset: 80 +}; + +typedef keen::ObjectReference CharacterPresetReference; + +enum class BlendShapeFlags { + Female = 0, + Hat = 1, + Hood = 2, + Jaw01 = 3, + Jaw02 = 4, + Jaw03 = 5, + Jaw04 = 6, + Jaw05 = 7, + Jaw06 = 8, + Jaw07 = 9, + Jaw08 = 10, + NoArmor = 11, + Shield = 12, + Tight = 13, + ArmsTight01 = 14, + LegsBeltTight = 15, + LegsFeetTight = 16, + LegsFeetTight01 = 17, +}; + +typedef keen::Bitmask32 BlendShapeMask; + +struct CharacterPresetPreview { + keen::CharacterPresetReference preset; // Offset: 0 + keen::BlobArray models; // Offset: 16 + keen::BlendShapeMask activeBlendShapes; // Offset: 24 +}; + +typedef keen::ObjectReference CharacterPresetObjectReference; + +struct CharacterPresetCollection { + keen::BlobArray presets; // Offset: 0 + keen::BlobArray colorGradients; // Offset: 8 +}; + +typedef keen::HashKey32 ColorCombinationId; + +typedef keen::ObjectReference ColorCombinationReference; + +typedef keen::StaticArray ColorCombinationResource; + +struct ColorCombinationSubDirectory { +}; + +struct ColorCombinationDirectory { +}; + +struct ecs.ComfortQuery { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::Time nextQuery; // Offset: 8 + keen::bool nearWarmth; // Offset: 16 + keen::ecs::EntityId warmthEntityId; // Offset: 20 +}; + +enum class ecs.ComfortCategory { + Hearth = 0, + Bed = 1, + Chair = 2, + Table = 3, + Bench = 4, + Throne = 5, + Bathtub = 6, + Sink = 7, + Toilet = 8, + Shower = 9, + Carpet = 10, + Illumination = 11, + Flame = 12, + Trophy = 13, + Stool = 14, + Kitchen = 15, + Wellness = 16, +}; + +struct ecs.ComfortProvider { + keen::sint32 comfort; // Offset: 0 + keen::ecs::ComfortCategory category; // Offset: 4 + keen::float32 range; // Offset: 8 + keen::uint32 freezingResistance; // Offset: 12 +}; + +struct ecs.NetworkComfort { + keen::ecs::EntityId hearthEntityId; // Offset: 0 + keen::uint16 level; // Offset: 4 +}; + +enum class ecs.ShelterQueryState { + Waiting = 0, + Startup = 1, + WaitForResults = 2, + Finished = 3, +}; + +struct ecs.Shelter { + keen::float32 checkRange; // Offset: 0 + keen::float32 requiredShelterPercentage; // Offset: 4 +}; + +enum class ecs.ShelterRay { + Ray00 = 0, + Ray01 = 1, + Ray02 = 2, + Ray03 = 3, + Ray04 = 4, + Ray05 = 5, + Ray06 = 6, + Ray07 = 7, + Ray08 = 8, + Ray09 = 9, + Ray10 = 10, + Ray11 = 11, + Ray12 = 12, + Ray13 = 13, + Ray14 = 14, + Ray15 = 15, +}; + +typedef keen::Bitmask16 ecs.RayHitMask; + +struct ecs.DynamicShelter { + keen::uint32 nextQueryTick; // Offset: 0 + keen::float32 shelterPercentage; // Offset: 4 + keen::ecs::RayHitMask queryHits; // Offset: 8 + keen::ecs::ShelterQueryState queryState; // Offset: 10 + keen::bool sheltered; // Offset: 11 + keen::bool shelterStateSet; // Offset: 12 +}; + +struct ecs.Resting { + keen::Time waitTime0; // Offset: 0 + keen::Time waitTime1; // Offset: 8 + keen::Time waitTime2; // Offset: 16 + keen::Time waitTime3; // Offset: 24 + keen::Time waitTime4; // Offset: 32 +}; + +struct CraftingWorkshopDirectory { +}; + +struct CraftingWorkshopSubDirectory { +}; + +struct UiWorkshopRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +enum class KnowledgeRequirementType { + World = 0, + Player = 1, + PredefinedKnowledge = 2, + Item = 3, + Dialog = 4, + Query = 5, +}; + +enum class PredefinedKnowledgeTypes { + SkillpointsSpent = 0, + FastTravelWorld = 1, + FastTravelHomeBase = 2, + AnyBaseVisited = 3, + ItemTrashed = 4, + PerkUnlocked = 5, + BuildingHammerUsed = 6, +}; + +enum class ItemKnowledgeTrigger { + Pickup = 0, + Use = 1, + Inspect = 2, +}; + +struct GameKnowledgeRequirementBase { + keen::KnowledgeRequirementType queryType; // Offset: 0 + keen::ObjectReference knowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::PredefinedKnowledgeTypes predefinedKnowledge; // Offset: 36 + keen::ItemKnowledgeTrigger itemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 + keen::ObjectReference dialogOption; // Offset: 56 + keen::ObjectReference query; // Offset: 72 + keen::ObjectReference triggerUiEvent; // Offset: 88 +}; + +struct GameKnowledgeRequirement { +}; + +struct WorkshopDefinition { + keen::LocaTagReference name; // Offset: 0 + keen::ItemReference item; // Offset: 16 + keen::bool isNpc; // Offset: 32 + keen::bool ignoreInJournalUi; // Offset: 33 + keen::GameKnowledgeRequirement unlockRequirement; // Offset: 36 +}; + +typedef keen::ObjectReference WorkshopReference; + +struct CraftingPropDefinition { + keen::LocaTagReference name; // Offset: 0 + keen::ItemReference item; // Offset: 16 +}; + +typedef keen::HashKey32 WorkshopId; + +struct WorkshopResource { + keen::bool isNpc; // Offset: 0 + keen::bool ignoreInJournalUi; // Offset: 1 + keen::Guid workshopGuid; // Offset: 4 + keen::WorkshopId workshopId; // Offset: 20 + keen::LocaTagId name; // Offset: 24 + keen::ItemId item; // Offset: 28 + keen::ItemReference itemRef; // Offset: 32 +}; + +typedef keen::uint64 CraftingPropMask; + +typedef keen::HashKey32 CraftingPropId; + +struct CraftingPropResource { + keen::Guid craftingPropGuid; // Offset: 0 + keen::CraftingPropId craftingPropId; // Offset: 16 + keen::uint8 craftingPropIndex; // Offset: 20 + keen::LocaTagId name; // Offset: 24 + keen::ItemId item; // Offset: 28 + keen::ItemReference itemRef; // Offset: 32 +}; + +struct WorkshopRegistryResource { + keen::BlobArray npcs; // Offset: 0 + keen::BlobArray workshops; // Offset: 8 + keen::BlobArray craftingProps; // Offset: 16 +}; + +typedef keen::HashKey64 CustomStringId; + +struct debug.EnemySpawnEntry { + keen::BlobString displayName; // Offset: 0 + keen::ecs::TemplateReference entity; // Offset: 8 + keen::uint8 sortPriority; // Offset: 24 +}; + +struct debug.EnemyDebugMenuFilterEntry { + keen::BlobString displayName; // Offset: 0 + keen::BlobString filter; // Offset: 8 +}; + +struct debug.EnemyDebugMenu { + keen::BlobArray entries; // Offset: 0 + keen::BlobArray filters; // Offset: 8 + keen::sint32 maxLevel; // Offset: 16 +}; + +typedef keen::HashKey32 DialogOptionId; + +struct NpcDialogDirectory { +}; + +struct NpcDialogDefinition { + keen::actor::ActorSequenceReference defaultSequence; // Offset: 0 + keen::actor::ActorSequenceReference missingRequirementSequence; // Offset: 16 + keen::LocaTagReference headline; // Offset: 32 + keen::LocaTagReference craftingOption; // Offset: 48 + keen::LocaTagReference itemUpgradeOption; // Offset: 64 + keen::LocaTagReference itemRecyclingOption; // Offset: 80 + keen::LocaTagReference sendBackToFlameOption; // Offset: 96 +}; + +struct NpcDialogGroup { +}; + +struct NpcDialogOptionBase { + keen::bool overrideSequence; // Offset: 0 + keen::actor::ActorSequenceReference sequence; // Offset: 4 +}; + +struct NpcDialogInitLine { + keen::bool isWakeup; // Offset: 20 +}; + +struct NpcDialogFarewellLine { +}; + +struct NpcDialogTransitionLine { +}; + +struct NpcDialogOption { + keen::LocaTagReference name; // Offset: 20 +}; + +struct NpcDialogResponseBase { +}; + +struct NpcDialogText { + keen::LocaTagReference body; // Offset: 0 +}; + +struct NpcDialogOptionResourceBase { + keen::DialogOptionId optionId; // Offset: 0 + keen::bool overrideSequence; // Offset: 4 + keen::actor::ActorSequenceReference sequence; // Offset: 8 + keen::KnowledgeId unlockKnowledge; // Offset: 24 + keen::KnowledgeId knowledgeRequirement; // Offset: 28 + keen::BlobArray bodyTexts; // Offset: 32 +}; + +struct NpcDialogInitLineResource { + keen::bool isWakeup; // Offset: 40 +}; + +struct NpcDialogTransitionLineResource { +}; + +struct NpcDialogFarewellResource { +}; + +struct NpcDialogOptionResource { + keen::LocaTagId optionText; // Offset: 40 +}; + +struct NpcDialogResource { + keen::LocaTagId headline; // Offset: 0 + keen::LocaTagId crafting; // Offset: 4 + keen::LocaTagId itemUpgrade; // Offset: 8 + keen::LocaTagId itemRecycling; // Offset: 12 + keen::LocaTagId sendBackToFlame; // Offset: 16 + keen::actor::ActorSequenceReference defaultSequence; // Offset: 20 + keen::actor::ActorSequenceReference missingRequirementSequence; // Offset: 36 + keen::BlobArray initLines; // Offset: 52 + keen::BlobArray transitionLines; // Offset: 60 + keen::BlobArray farewellLines; // Offset: 68 + keen::BlobArray dialogOptions; // Offset: 76 +}; + +enum class EquipmentSlotType { + Invalid = 0, + MeleeWeapon = 1, + Tool = 2, + BuildTool = 3, + MidRangeWeapon = 4, + RangeWeapon = 5, + Arrow = 6, + Spell = 7, + TerrainMaterial = 8, + BlueprintMaterial_Default = 9, + BlueprintMaterial_Roof = 10, + Armour_Head = 11, + Armour_UpperBody = 12, + Armour_Arms = 13, + Armour_LowerBody = 14, + Armour_Feet = 15, + Shield = 16, + BodyPart_Head = 17, + BodyPart_Hair = 18, + BodyPart_EyeBrow = 19, + BodyPart_Beard = 20, + BodyPart_Neck = 21, + BodyPart_Collar = 22, + BodyPart_Chest = 23, + BodyPart_Waist = 24, + BodyPart_Crotch = 25, + BodyPart_UpperArms = 26, + BodyPart_LowerArms = 27, + BodyPart_Hands = 28, + BodyPart_UpperLegs = 29, + BodyPart_LowerLegs = 30, + BodyPart_Feet = 31, + HookShot = 32, + Glider = 33, + ClimbWall = 34, + Consumable = 35, + Armour_Accessory = 36, + Armour_Ring = 37, + Backpack = 38, +}; + +enum class EquipmentSlot { + Vanity_Head = 0, + Vanity_UpperBody = 1, + Vanity_Arms = 2, + Vanity_LowerBody = 3, + Vanity_Feet = 4, + Armour_Head = 5, + Armour_UpperBody = 6, + Armour_Arms = 7, + Armour_LowerBody = 8, + Armour_Feet = 9, + BodyPart_Head = 10, + BodyPart_Hair = 11, + BodyPart_EyeBrow = 12, + BodyPart_Beard = 13, + BodyPart_Neck = 14, + BodyPart_Collar = 15, + BodyPart_Chest = 16, + BodyPart_Waist = 17, + BodyPart_Crotch = 18, + BodyPart_UpperArms = 19, + BodyPart_LowerArms = 20, + BodyPart_Hands = 21, + BodyPart_UpperLegs = 22, + BodyPart_LowerLegs = 23, + BodyPart_Feet = 24, + Ring0 = 25, + Ring1 = 26, + Accessory0 = 27, + Accessory1 = 28, + RangedWeapon = 29, + Shield = 30, + Arrow = 31, + Spell = 32, + TerrainMaterial = 33, + BlueprintMaterial_Default = 34, + BlueprintMaterial_Roof = 35, + HookShot = 36, + Glider = 37, + ClimbWall = 38, + Backpack = 39, + Count = 40, + Invalid = 40, + MainHand = 41, +}; + +enum class VisualEquippedItems { + BodyPart_Head = 0, + BodyPart_Hair = 1, + BodyPart_EyeBrow = 2, + BodyPart_Beard = 3, + BodyPart_Neck = 4, + BodyPart_Collar = 5, + BodyPart_Chest = 6, + BodyPart_Waist = 7, + BodyPart_Crotch = 8, + BodyPart_UpperArms = 9, + BodyPart_LowerArms = 10, + BodyPart_Hands = 11, + BodyPart_UpperLegs = 12, + BodyPart_LowerLegs = 13, + BodyPart_Feet = 14, + Armour_Head = 15, + Armour_UpperBody = 16, + Armour_Arms = 17, + Armour_LowerBody = 18, + Armour_Feet = 19, + Ring0 = 20, + Ring1 = 21, + Shield = 22, + MainHand = 23, + Count = 24, +}; + +typedef keen::Bitmask32 VisualEquipmentMask; + +enum class ImpactEquippedItems { + MainHand = 0, + Shield = 1, + Armour_Head = 2, + Armour_UpperBody = 3, + Armour_Arms = 4, + Armour_LowerBody = 5, + Armour_Feet = 6, + Ring0 = 7, + Ring1 = 8, + Accessory0 = 9, + Accessory1 = 10, + Count = 11, +}; + +typedef keen::Bitmask32 ImpactEquipmentMask; + +typedef keen::HashKey32 PerkId; + +struct ecs.ItemImpact { + keen::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 20 + keen::StaticArray perkEntities; // Offset: 24 + keen::StaticArray perkIds; // Offset: 44 +}; + +struct ecs.ItemVisual { + keen::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 20 +}; + +struct ecs.EquipmentSlotData { + keen::InventorySlotId vanityHead; // Offset: 0 + keen::InventorySlotId vanityUpperBody; // Offset: 8 + keen::InventorySlotId vanityArms; // Offset: 16 + keen::InventorySlotId vanityLowerBody; // Offset: 24 + keen::InventorySlotId vanityFeet; // Offset: 32 + keen::InventorySlotId armourHead; // Offset: 40 + keen::InventorySlotId armourUpperBody; // Offset: 48 + keen::InventorySlotId armourArms; // Offset: 56 + keen::InventorySlotId armourLowerBody; // Offset: 64 + keen::InventorySlotId armourFeet; // Offset: 72 + keen::InventorySlotId bodyPartHead; // Offset: 80 + keen::InventorySlotId bodyPartHair; // Offset: 88 + keen::InventorySlotId bodyPartEyeBrow; // Offset: 96 + keen::InventorySlotId bodyPartBeard; // Offset: 104 + keen::InventorySlotId bodyPartNeck; // Offset: 112 + keen::InventorySlotId bodyPartCollar; // Offset: 120 + keen::InventorySlotId bodyPartChest; // Offset: 128 + keen::InventorySlotId bodyPartWaist; // Offset: 136 + keen::InventorySlotId bodyPartCrotch; // Offset: 144 + keen::InventorySlotId bodyPartUpperArms; // Offset: 152 + keen::InventorySlotId bodyPartLowerArms; // Offset: 160 + keen::InventorySlotId bodyPartHands; // Offset: 168 + keen::InventorySlotId bodyPartUpperLegs; // Offset: 176 + keen::InventorySlotId bodyPartLowerLegs; // Offset: 184 + keen::InventorySlotId bodyPartFeet; // Offset: 192 + keen::InventorySlotId ring0; // Offset: 200 + keen::InventorySlotId ring1; // Offset: 208 + keen::InventorySlotId accessory0; // Offset: 216 + keen::InventorySlotId accessory1; // Offset: 224 + keen::InventorySlotId rangedWeapon; // Offset: 232 + keen::InventorySlotId shield; // Offset: 240 + keen::InventorySlotId arrow; // Offset: 248 + keen::InventorySlotId spell; // Offset: 256 + keen::InventorySlotId terrainMaterial; // Offset: 264 + keen::InventorySlotId blueprintMaterialDefault; // Offset: 272 + keen::InventorySlotId blueprintMaterialRoof; // Offset: 280 + keen::InventorySlotId hookShot; // Offset: 288 + keen::InventorySlotId glider; // Offset: 296 + keen::InventorySlotId climbWall; // Offset: 304 + keen::InventorySlotId backpack; // Offset: 312 +}; + +enum class ecs.CspItemIsBroken { + ActionbarSlot0 = 0, + ActionbarSlot1 = 1, + ActionbarSlot2 = 2, + ActionbarSlot3 = 3, + ActionbarSlot4 = 4, + ActionbarSlot5 = 5, + ActionbarSlot6 = 6, + ActionbarSlot7 = 7, + ActionbarSlot8 = 8, + ActionbarSlot9 = 9, + ActionbarSlot10 = 10, + ActionbarSlot11 = 11, + ActionbarSlot12 = 12, + ActionbarSlot13 = 13, + ActionbarSlot14 = 14, + ActionbarSlot15 = 15, + ShieldItem = 16, + RangedWeapon = 17, +}; + +typedef keen::Bitmask32 ecs.CspItemIsBrokenMask; + +struct ActionbarSlotSelection { + keen::InventorySlotIndex index; // Offset: 0 +}; + +struct ecs.SlotSelection { + keen::ecs::EquipmentSlotData equipment; // Offset: 0 + keen::StaticArray actionbarEntityIds; // Offset: 320 + keen::ItemInstanceInfo actionItem; // Offset: 328 + keen::ImpactEquipmentMask disabledEquipment; // Offset: 348 + keen::ActionbarSlotSelection actionbarSlotSelection; // Offset: 352 + keen::ecs::CspItemIsBrokenMask cspItemIsBrokenHelper; // Offset: 356 +}; + +struct ecs.FinishedActionbarInit { +}; + +struct ecs.PackedEquipmentSlotEntityIds { + keen::ecs::EntityId vanityHead; // Offset: 0 + keen::ecs::EntityId vanityUpperBody; // Offset: 4 + keen::ecs::EntityId vanityArms; // Offset: 8 + keen::ecs::EntityId vanityLowerBody; // Offset: 12 + keen::ecs::EntityId vanityFeet; // Offset: 16 + keen::ecs::EntityId armourHead; // Offset: 20 + keen::ecs::EntityId armourUpperBody; // Offset: 24 + keen::ecs::EntityId armourArms; // Offset: 28 + keen::ecs::EntityId armourLowerBody; // Offset: 32 + keen::ecs::EntityId armourFeet; // Offset: 36 + keen::ecs::EntityId bodyPartHead; // Offset: 40 + keen::ecs::EntityId bodyPartHair; // Offset: 44 + keen::ecs::EntityId bodyPartEyeBrow; // Offset: 48 + keen::ecs::EntityId bodyPartBeard; // Offset: 52 + keen::ecs::EntityId bodyPartNeck; // Offset: 56 + keen::ecs::EntityId bodyPartCollar; // Offset: 60 + keen::ecs::EntityId bodyPartChest; // Offset: 64 + keen::ecs::EntityId bodyPartWaist; // Offset: 68 + keen::ecs::EntityId bodyPartCrotch; // Offset: 72 + keen::ecs::EntityId bodyPartUpperArms; // Offset: 76 + keen::ecs::EntityId bodyPartLowerArms; // Offset: 80 + keen::ecs::EntityId bodyPartHands; // Offset: 84 + keen::ecs::EntityId bodyPartUpperLegs; // Offset: 88 + keen::ecs::EntityId bodyPartLowerLegs; // Offset: 92 + keen::ecs::EntityId bodyPartFeet; // Offset: 96 + keen::ecs::EntityId ring0; // Offset: 100 + keen::ecs::EntityId ring1; // Offset: 104 + keen::ecs::EntityId accessory0; // Offset: 108 + keen::ecs::EntityId accessory1; // Offset: 112 + keen::ecs::EntityId rangedWeapon; // Offset: 116 + keen::ecs::EntityId shield; // Offset: 120 + keen::ecs::EntityId arrow; // Offset: 124 + keen::ecs::EntityId spell; // Offset: 128 + keen::ecs::EntityId terrainMaterial; // Offset: 132 + keen::ecs::EntityId blueprintMaterialDefault; // Offset: 136 + keen::ecs::EntityId blueprintMaterialRoof; // Offset: 140 + keen::ecs::EntityId hookShot; // Offset: 144 + keen::ecs::EntityId glider; // Offset: 148 + keen::ecs::EntityId climbWall; // Offset: 152 + keen::ecs::EntityId backpack; // Offset: 156 +}; + +struct ecs.PackedEquipmentSlotIndices { + keen::InventorySlotIndex vanityHead; // Offset: 0 + keen::InventorySlotIndex vanityUpperBody; // Offset: 1 + keen::InventorySlotIndex vanityArms; // Offset: 2 + keen::InventorySlotIndex vanityLowerBody; // Offset: 3 + keen::InventorySlotIndex vanityFeet; // Offset: 4 + keen::InventorySlotIndex armourHead; // Offset: 5 + keen::InventorySlotIndex armourUpperBody; // Offset: 6 + keen::InventorySlotIndex armourArms; // Offset: 7 + keen::InventorySlotIndex armourLowerBody; // Offset: 8 + keen::InventorySlotIndex armourFeet; // Offset: 9 + keen::InventorySlotIndex bodyPartHead; // Offset: 10 + keen::InventorySlotIndex bodyPartHair; // Offset: 11 + keen::InventorySlotIndex bodyPartEyeBrow; // Offset: 12 + keen::InventorySlotIndex bodyPartBeard; // Offset: 13 + keen::InventorySlotIndex bodyPartNeck; // Offset: 14 + keen::InventorySlotIndex bodyPartCollar; // Offset: 15 + keen::InventorySlotIndex bodyPartChest; // Offset: 16 + keen::InventorySlotIndex bodyPartWaist; // Offset: 17 + keen::InventorySlotIndex bodyPartCrotch; // Offset: 18 + keen::InventorySlotIndex bodyPartUpperArms; // Offset: 19 + keen::InventorySlotIndex bodyPartLowerArms; // Offset: 20 + keen::InventorySlotIndex bodyPartHands; // Offset: 21 + keen::InventorySlotIndex bodyPartUpperLegs; // Offset: 22 + keen::InventorySlotIndex bodyPartLowerLegs; // Offset: 23 + keen::InventorySlotIndex bodyPartFeet; // Offset: 24 + keen::InventorySlotIndex ring0; // Offset: 25 + keen::InventorySlotIndex ring1; // Offset: 26 + keen::InventorySlotIndex accessory0; // Offset: 27 + keen::InventorySlotIndex accessory1; // Offset: 28 + keen::InventorySlotIndex rangedWeapon; // Offset: 29 + keen::InventorySlotIndex shield; // Offset: 30 + keen::InventorySlotIndex arrow; // Offset: 31 + keen::InventorySlotIndex spell; // Offset: 32 + keen::InventorySlotIndex terrainMaterial; // Offset: 33 + keen::InventorySlotIndex blueprintMaterialDefault; // Offset: 34 + keen::InventorySlotIndex blueprintMaterialRoof; // Offset: 35 + keen::InventorySlotIndex hookShot; // Offset: 36 + keen::InventorySlotIndex glider; // Offset: 37 + keen::InventorySlotIndex climbWall; // Offset: 38 + keen::InventorySlotIndex backpack; // Offset: 39 +}; + +struct ecs.PackedSlotSelection { + keen::ecs::PackedEquipmentSlotEntityIds equipmentEntityIds; // Offset: 0 + keen::ecs::PackedEquipmentSlotIndices equipmentIndices; // Offset: 160 + keen::StaticArray actionbarEntityIds; // Offset: 200 + keen::ItemInstanceInfo actionItem; // Offset: 208 + keen::ImpactEquipmentMask disabledEquipment; // Offset: 228 + keen::ActionbarSlotSelection actionbarSlotSelection; // Offset: 232 + keen::uint32 cspItemIsBrokenHelper; // Offset: 236 +}; + +struct ecs.CspHackInventoryStockSelection { + keen::StaticArray versions; // Offset: 0 +}; + +struct ecs.Equipment { + keen::VisualEquipmentMask visualMask; // Offset: 0 + keen::ImpactEquipmentMask impactMask; // Offset: 4 + keen::StaticArray equipmentImpacts; // Offset: 8 + keen::StaticArray equipmentVisuals; // Offset: 712 + keen::CollisionFeedbackMaterialReference blockMaterial; // Offset: 1288 + keen::CollisionFeedbackMaterialReference bodyMaterial; // Offset: 1304 +}; + +struct ecs.RenderEquipment { + keen::StaticArray modelHandles; // Offset: 0 + keen::StaticArray,24> lastModels; // Offset: 96 + keen::StaticArray colors; // Offset: 480 + keen::VisualEquipmentMask hideMask; // Offset: 768 + keen::MaterialFeedbackId foleyMaterialId; // Offset: 772 + keen::BlendShapeMask blendShapeMask; // Offset: 776 +}; + +enum class PrimaryAnimationSet { + None = 0, + SingleAndShield = 1, + SingleNoShield = 2, + DualWield = 3, + TwoHanded = 4, + Bow = 5, + Staff = 6, + Wand = 7, +}; + +enum class SecondaryAnimationSet { + None = 0, + Bow = 1, + StaffCast = 2, + WandCast = 3, +}; + +struct ecs.EquipmentAnimationSets { + keen::PrimaryAnimationSet primaryAnimationSet; // Offset: 0 + keen::SecondaryAnimationSet secondaryAnimationSet; // Offset: 1 +}; + +struct Game38RootObjects { + keen::ObjectReference renderSettingsGpuPresets; // Offset: 0 + keen::ObjectReference scene; // Offset: 16 + keen::ObjectReference itemDirectory; // Offset: 32 + keen::ObjectReference gameKnowledgeDirectory; // Offset: 48 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 64 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 80 + keen::ObjectReference lootLabelCollection; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference buffTypeCollection; // Offset: 160 + keen::ObjectReference midiSongCollection; // Offset: 176 + keen::ObjectReference impactRegistry; // Offset: 192 + keen::ObjectReference attributeContainer; // Offset: 208 + keen::ObjectReference actorSequenceCollection; // Offset: 224 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 240 + keen::ObjectReference voxelBlueprintConfig; // Offset: 256 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 272 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 288 + keen::ObjectReference enemyArsenalRegistry; // Offset: 304 + keen::ObjectReference perkCollection; // Offset: 320 + keen::ObjectReference ingameTimeConfig; // Offset: 336 + keen::ObjectReference skillTree; // Offset: 352 + keen::ObjectReference templateCollection; // Offset: 368 + keen::ObjectReference fbUiBundle; // Offset: 384 + keen::ObjectReference journalRegistry; // Offset: 400 + keen::ObjectReference mapMarkerRegistry; // Offset: 416 + keen::ObjectReference materialFeedbackCollection; // Offset: 432 + keen::ObjectReference locaTagCollection; // Offset: 448 + keen::ObjectReference voicePacks; // Offset: 464 + keen::ObjectReference ambientCollection; // Offset: 480 + keen::ObjectReference fbUiMapResource; // Offset: 496 + keen::ObjectReference uiFontDefault; // Offset: 512 + keen::ObjectReference uiFontFancy; // Offset: 528 + keen::ObjectReference grassVfx; // Offset: 544 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 560 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 576 + keen::ObjectReference maleClothCollider; // Offset: 592 + keen::ObjectReference femaleClothCollider; // Offset: 608 + keen::ObjectReference staminaDrainNotifier; // Offset: 624 + keen::ObjectReference exhaustedNotifier; // Offset: 640 + keen::ObjectReference pickupLootNotifier; // Offset: 656 + keen::ObjectReference itemBrokenNotifier; // Offset: 672 + keen::ObjectReference renderSystem; // Offset: 688 + keen::ObjectReference gpcResourceList; // Offset: 704 + keen::ObjectReference analyticFog; // Offset: 720 + keen::ObjectReference buildingMaterialBlending; // Offset: 736 + keen::ObjectReference worldMaterial2; // Offset: 752 + keen::ObjectReference volumetricFog2; // Offset: 768 + keen::ObjectReference volumetricFogGridParameters; // Offset: 784 + keen::ObjectReference pregameMusic; // Offset: 800 + keen::ObjectReference loreIntroMusic; // Offset: 816 + keen::ObjectReference spellChargeFullSfx; // Offset: 832 + keen::ObjectReference enemyDebugMenu; // Offset: 848 + keen::ObjectReference characterPresetCollection; // Offset: 864 + keen::ObjectReference twitchDropCollection; // Offset: 880 + keen::ObjectReference characterScenePlayer; // Offset: 896 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 912 + keen::ObjectReference characterScenePlayerPregame; // Offset: 928 + keen::ObjectReference characterSceneNpc; // Offset: 944 + keen::ObjectReference commerceProducts; // Offset: 960 + keen::ObjectReference achievements; // Offset: 976 + keen::ObjectReference preloadVfxList; // Offset: 992 + keen::ObjectReference colorPaletteCollection; // Offset: 1008 + keen::ObjectReference weatherSystemResource; // Offset: 1024 +}; + +struct Game38SharedResources { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference gameKnowledge; // Offset: 16 + keen::ObjectReference gameKnowledgeResource; // Offset: 32 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 48 + keen::ObjectReference itemRegistry; // Offset: 64 + keen::ObjectReference journalRegistry; // Offset: 80 + keen::ObjectReference devItemRegistry; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference npcCollection; // Offset: 160 + keen::ObjectReference lootLabelCollection; // Offset: 176 + keen::ObjectReference lootableItems; // Offset: 192 + keen::ObjectReference lootDistribution; // Offset: 208 + keen::ObjectReference buffTypeCollection; // Offset: 224 + keen::ObjectReference midiSongCollection; // Offset: 240 + keen::ObjectReference impactRegistry; // Offset: 256 + keen::ObjectReference attributeContainer; // Offset: 272 + keen::ObjectReference actorSequenceCollection; // Offset: 288 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 304 + keen::ObjectReference voxelBlueprintConfig; // Offset: 320 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 336 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 352 + keen::ObjectReference enemyArsenalRegistry; // Offset: 368 + keen::ObjectReference perkCollection; // Offset: 384 + keen::ObjectReference ingameTimeConfig; // Offset: 400 + keen::ObjectReference skillTree; // Offset: 416 + keen::ObjectReference templateCollection; // Offset: 432 + keen::ObjectReference twitchDropCollection; // Offset: 448 + keen::ObjectReference staminaDrainNotifier; // Offset: 464 + keen::ObjectReference exhaustedNotifier; // Offset: 480 + keen::ObjectReference pickupLootNotifier; // Offset: 496 + keen::ObjectReference itemBrokenNotifier; // Offset: 512 + keen::ObjectReference characterPresetCollection; // Offset: 528 + keen::ObjectReference animationGraphDebugInfo; // Offset: 544 + keen::ObjectReference commerceProducts; // Offset: 560 + keen::ObjectReference colorPaletteCollection; // Offset: 576 + keen::ObjectReference gameSettingPresets; // Offset: 592 + keen::ObjectReference weatherSystemResource; // Offset: 608 +}; + +struct Game38ClientResources { + keen::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference renderSettingsGpuPresets; // Offset: 624 + keen::ObjectReference fbUiBundle; // Offset: 640 + keen::ObjectReference mapMarkerRegistry; // Offset: 656 + keen::ObjectReference itemKnowledge; // Offset: 672 + keen::ObjectReference voicePacks; // Offset: 688 + keen::ObjectReference materialFeedbackCollection; // Offset: 704 + keen::ObjectReference locaTagCollection; // Offset: 720 + keen::ObjectReference colorGradingFogRegular; // Offset: 736 + keen::ObjectReference colorGradingFogDangerous; // Offset: 752 + keen::ObjectReference colorGradingLowHealth; // Offset: 768 + keen::ObjectReference maleClothCollider; // Offset: 784 + keen::ObjectReference femaleClothCollider; // Offset: 800 + keen::ObjectReference fbUiMapResource; // Offset: 816 + keen::ObjectReference uiFontDefault; // Offset: 832 + keen::ObjectReference uiFontFancy; // Offset: 848 + keen::ObjectReference grassVfx; // Offset: 864 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 880 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 896 + keen::ObjectReference pregameMusic; // Offset: 912 + keen::ObjectReference loreIntroMusic; // Offset: 928 + keen::ObjectReference spellChargeFullSfx; // Offset: 944 + keen::ObjectReference ambientCollection; // Offset: 960 + keen::ObjectReference enemyDebugMenu; // Offset: 976 + keen::ObjectReference characterScenePlayer; // Offset: 992 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 1008 + keen::ObjectReference characterScenePlayerPregame; // Offset: 1024 + keen::ObjectReference characterSceneNpc; // Offset: 1040 + keen::ObjectReference achievements; // Offset: 1056 + keen::ObjectReference preloadVfxList; // Offset: 1072 +}; + +struct Game38ServerResources { + keen::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 624 +}; + +typedef keen::ObjectReference MidiReference; + +enum class MidiInstrumentType { + None = 0, + Lute = 1, + Flute = 2, + Harp = 3, + DounDoun = 4, +}; + +struct MidiSong { + keen::NameLocaTag name; // Offset: 0 + keen::MidiReference midiSong; // Offset: 16 + keen::MidiInstrumentType defaultForInstrument; // Offset: 32 +}; + +struct MidiSongSubDirectory { +}; + +struct MidiSongDirectory { +}; + +struct MidiSongResource { + keen::LocaTagReference name; // Offset: 0 + keen::MidiReference midiSong; // Offset: 16 + keen::KnowledgeId unlockKnowledge; // Offset: 32 + keen::MidiInstrumentType defaultForInstrument; // Offset: 36 +}; + +struct InstrumentSampleCollectionResource { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct MidiSongCollection { + keen::BlobArray> songCollection; // Offset: 0 + keen::InstrumentSampleCollectionResource sampleCollection; // Offset: 8 +}; + +enum class ecs.G38TestSuite { + Fail = 0, + CookingTests = 1, + FallDamage = 2, + Sliding = 3, + ClimbLadder = 4, + ClimbWall = 5, + HookShotSwing = 6, + HookShotPull = 7, + Glider = 8, + InventoryTest = 9, + EnemyTests = 10, + DungeonTriggerTests = 11, + KnowledgeTests = 12, +}; + +enum class ecs.FailTest { + Init = 0, + Setup = 1, + Exit = 2, +}; + +enum class ecs.InventoryTest { + InvalidInventory = 0, + TransferHalfToFullStack = 1, + TransferFullToHalfStack = 2, + TransferHalfToHalfStack = 3, + TransferOneFromFullToHalfStack = 4, + TransferStack = 5, + EquipmentSlotTransferAmmunition = 6, + FillStack = 7, + ExpandInventory = 8, + AbortExpand = 9, + ExpandInventoryAgain = 10, + ShrinkInventory = 11, + ExpandAndTransferItems = 12, + ShrinkAndTransferItems = 13, + ShrinkNotEnoughFreeSpace = 14, +}; + +enum class ecs.DungeonTriggerTest { + PressurePlate = 0, + BasicButton = 1, + AndConnection = 2, + OrConnection = 3, +}; + +enum class ecs.KnowledgeTest { + Queries = 0, +}; + +enum class ecs.CookingTest { + CreateCookingTestComponent = 0, + CreateCookingItems = 1, + PlaceCampfire = 2, + SitAtCampfire = 3, + CookFood = 4, + CleanupCookingTest = 5, +}; + +enum class ecs.FallDamageTestId { + NoFallDamage = 0, + MediumFallDamage = 1, + LethalFallDamageAbortsTeleport = 2, + TeleportWithoutLethalFallDamage = 3, + LethalFallDamage = 4, + LethalSwipeAgainstSlopes = 5, + NoFallDamageSwipeAgainstSlidingMaterialSlopes = 6, +}; + +enum class ecs.SlidingTestId { + WalkUpShallowSlope = 0, + WalkDownShallowSlope = 1, + DontWalkUpSteepSlope = 2, + SlideDownSteepSlope = 3, + DontWalkUpShallowSlidingMaterialSlope = 4, + SlideDownShallowSlidingMaterialSlope = 5, +}; + +enum class ecs.ClimbLadderTestId { + ClimbUpFlawless = 0, + ClimbDownFlawless = 1, + ClimbUpTiltedLadder = 2, + ClimbDownTiltedLadder = 3, + ClimbUpSubsequentStaggeredLadders = 4, + ClimbDownSubsequentStaggeredLadders = 5, + ClimbUpSubsequentAlignedLadders = 6, + ClimbDownSubsequentAlignedLadders = 7, + ClimbNonStop = 8, + ClimbUpExitBlocked = 9, + ClimbUpStepBlocked = 10, + ClimbDownStepBlocked = 11, + LadderInsideFloorCollisionA = 12, + LadderInsideFloorCollisionB = 13, + LadderInsideFloorCollisionC = 14, + WalkAgainstLadderBack = 15, + InterruptByJump = 16, + InterruptByHitEvent = 17, +}; + +enum class ecs.ClimbWallTestId { + ClimbUpFlawless = 0, + ClimbDownFlawless = 1, + ClimbUpSubsequentAlignedWalls = 2, + ClimbDownSubsequentAlignedWalls = 3, + InterruptByJump = 4, + InterruptByHitEvent = 5, +}; + +enum class ecs.HookShotSwingTestId { + SwingGeneral = 0, + SwingEnterManualJump = 1, + SwingEnterAutoJump = 2, + SwingExitAutoRelease = 3, + DoubleSwingChain = 4, + InterruptByHitEvent = 5, +}; + +enum class ecs.HookShotPullTestId { + PullGeneral = 0, + PullEnterManualJump = 1, + PullEnterNoJump = 2, + PullUp = 3, + PullFlat = 4, + PullDown = 5, + InterruptByHitEvent = 6, +}; + +enum class ecs.GliderTestId { + GliderGeneral = 0, + GliderEnterManualJump = 1, + GliderEnterNoJump = 2, + GliderExitFloorCollision = 3, + GliderAccelerate = 4, + GliderDecelerate = 5, + GliderTurn = 6, + InterruptByHitEvent = 7, +}; + +struct ecs.CookingTestComponent { + keen::ecs::EntityId campfireEntityId; // Offset: 0 + keen::Time cookTime; // Offset: 8 + keen::Time postCookWaitTime; // Offset: 16 + keen::Time sitWaitTime; // Offset: 24 + keen::Time standWaitTime; // Offset: 32 + keen::uint8 campfireEntityDeletionTryCount; // Offset: 40 + keen::uint8 cookingTestComponentDeletionTryCount; // Offset: 41 + keen::bool sitToggled; // Offset: 42 + keen::bool standToggled; // Offset: 43 + keen::bool cookingToggled; // Offset: 44 +}; + +struct ecs.TestValueMemory { + keen::float3 vectorValue; // Offset: 0 + keen::float32 floatValue; // Offset: 12 +}; + +struct ecs.FakePlayerSpawner { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +enum class VoxelMaterialType { + Terrain = 0, + Building = 1, +}; + +struct BaseVoxelMaterial { +}; + +struct BiomeVoxelMaterial { + keen::ObjectReference grassland; // Offset: 0 + keen::ObjectReference desert; // Offset: 16 + keen::ObjectReference wetland; // Offset: 32 + keen::ObjectReference steppes; // Offset: 48 + keen::ObjectReference deepforest; // Offset: 64 + keen::ObjectReference coldheights; // Offset: 80 +}; + +enum class HardnessCategory { + Soft = 0, + SlightlyHard = 1, + ModeratelyHard = 2, + Hard = 3, + VeryHard = 4, + Unbreakable = 5, +}; + +struct VoxelWorldDisplacement { + keen::ImageReference map; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::float32 origin; // Offset: 20 + keen::float32 uvScale; // Offset: 24 +}; + +enum class VfxMaterialType { + None = 0, + Mud = 1, + Tar = 2, + Lava = 3, + Ice = 4, + Snow = 5, +}; + +struct SolidVoxelMaterial { + keen::VoxelMaterialType type; // Offset: 0 + keen::ItemReference materialItem; // Offset: 4 + keen::HardnessCategory hardness; // Offset: 20 + keen::sint32 healthPoints; // Offset: 24 + keen::ObjectReference blockCraftingRecipe; // Offset: 28 + keen::uint32 voxelsPerLootItemExchangeRate; // Offset: 44 + keen::ObjectReference experienceGain; // Offset: 48 + keen::bool canBeFlattened; // Offset: 64 + keen::bool isSlidingMaterial; // Offset: 65 + keen::VoxelWorldDisplacement sideDisplacement; // Offset: 68 + keen::VoxelWorldDisplacement topDisplacement; // Offset: 96 + keen::ObjectReference stoneMaterial; // Offset: 124 + keen::bool canReceiveFloorMaterial; // Offset: 140 + keen::ObjectReference pbrBuildingMaterial; // Offset: 144 + keen::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 160 + keen::AmbientEnvironment ambientEnvironment; // Offset: 176 + keen::BuffTypeReference buffType; // Offset: 180 + keen::ObjectReference previewVoxelObject; // Offset: 196 + keen::bool isDangerous; // Offset: 212 + keen::float frictionFactor; // Offset: 216 + keen::float maxSubmergeDepth; // Offset: 220 + keen::float minSubmergePercentage; // Offset: 224 + keen::float maxSubmergePercentage; // Offset: 228 + keen::VfxMaterialType vfxMaterialType; // Offset: 232 + keen::ecs::EntityTagReference entityTag; // Offset: 236 + keen::ecs::PathNodeType pathNodeType; // Offset: 252 +}; + +struct BaseFogVoxelMaterial { + keen::VoxelWorldDisplacement sideDisplacement; // Offset: 0 + keen::VoxelWorldDisplacement topDisplacement; // Offset: 28 +}; + +struct FogVoxelMaterial { + keen::uint8 level; // Offset: 56 +}; + +struct DecorativeFogVoxelMaterial { +}; + +struct WaterVoxelMaterial { +}; + +enum class TemperatureVoxelType { + Normal = 0, + Freezing = 1, +}; + +struct TemperatureVoxelMaterial { + keen::TemperatureVoxelType temperature; // Offset: 0 +}; + +struct VoxelMaterialTerraformingInfo { + keen::SolidVoxelMaterial solidVoxelMaterial; // Offset: 0 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 256 +}; + +struct VoxelMaterialScatteringNoise { + keen::float32 scale; // Offset: 0 + keen::float32 persistence; // Offset: 4 + keen::float32 outMin; // Offset: 8 + keen::float32 outMax; // Offset: 12 +}; + +struct VoxelMaterialScattering { + keen::ObjectReference densityMap; // Offset: 0 + keen::float32 density; // Offset: 16 + keen::VoxelMaterialScatteringNoise densityNoise; // Offset: 20 + keen::VoxelMaterialScatteringNoise depthNoise; // Offset: 36 + keen::float32 maxWidth; // Offset: 52 + keen::VoxelMaterialScatteringNoise detailNoise; // Offset: 56 + keen::VoxelMaterialScatteringNoise dirtDetailNoise; // Offset: 72 +}; + +enum class VoxelMaterialScatteringShape { + None = 0, + NoiseBlob = 1, + Shaft = 2, + EmissiveSphere = 3, + Geodes = 4, +}; + +struct VoxelMaterialScatterTargetMaterial { + keen::ObjectReference material; // Offset: 0 + keen::bool enableScattering; // Offset: 16 + keen::VoxelMaterialScatteringShape shape; // Offset: 17 + keen::float32 modulationInputScale; // Offset: 20 + keen::float32 shapeNoiseScale; // Offset: 24 + keen::float32 structureScale; // Offset: 28 + keen::float32 structureFadeSize; // Offset: 32 + keen::float32 outerRadius; // Offset: 36 + keen::float32 geodesScattterRadius; // Offset: 40 + keen::uint32 geodesCount; // Offset: 44 + keen::float2 geodesRadiusRange; // Offset: 48 + keen::float32 geodesShellWidth; // Offset: 56 +}; + +struct VoxelMaterialScatterTargetMaterialList { + keen::BlobArray materials; // Offset: 0 +}; + +struct VoxelMaterialScatteringList { + keen::BlobArray materialGuids; // Offset: 0 + keen::BlobArray settings; // Offset: 8 + keen::BlobArray targetMaterials; // Offset: 16 +}; + +struct ecs.Health { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Stamina { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDepletionMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Mana { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Revive { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Durability { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Movement { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedCombat { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FogResistance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Level { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Experience { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Threat { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ThreatBonus { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ToolDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModBackstab { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSkillShot { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSneak { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModMerciless { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModAgainst { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealingMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageSusceptibility { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritChance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Strength { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Intelligence { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Dexterity { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Endurance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Constitution { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Spirit { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Armor { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ArmorPoints { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Block { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ParryProficiency { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Comfort { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Rested { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MeleeDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MagicDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.AllyAggroMultiplier { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaRechargeMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealthRechargeMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ManaRechargeMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.WeaponCategoryDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeatMaxMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeat { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FreezingResistance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +typedef keen::HashKey32 ItemCollectionId; + +typedef keen::HashKey32 SignalId; + +typedef keen::HashKey32 LootContainerId; + +typedef keen::HashKey32 JournalEntryId; + +struct Signal { +}; + +typedef keen::LocaTagReference CaptionLocaTag; + +typedef keen::LocaTagReference LoreLocaTag; + +enum class ItemKnowledgeFlag { + Name = 0, + Description = 1, + Lore = 2, + Recipes = 3, + Inspected = 4, +}; + +typedef keen::Bitmask8 ItemKnowledgeMask; + +struct RecipeItemStackResource { + keen::ItemReference itemRef; // Offset: 0 + keen::ItemId item; // Offset: 16 + keen::uint32 count; // Offset: 20 +}; + +enum class InventoryActionType { + One = 0, + Half = 1, + All = 2, + CustomAmount = 3, + Destroy = 4, +}; + +struct VersionedData { + keen::uint16 changeCount; // Offset: 0 +}; + +enum class UiState { + None = 0, + Preload = 1, + PreGame = 2, + Load = 3, + LoreIntro = 4, + Play = 5, +}; + +enum class WheelMenuType { + None = 0, + WeaponWheel = 1, + ToolWheel = 2, +}; + +enum class InputMode { + KeyboardMouse = 0, + Gamepad = 1, +}; + +enum class AttackDirectionInput { + UseCamera = 0, + UseMovement = 1, +}; + +enum class ControllerButtonStyle { + Xbox = 0, + Playstation = 1, + NintendoSwitch = 2, +}; + +enum class UiInputId { + Confirm = 0, + ConfirmExcludingKeyboard = 1, + Back = 2, + Close = 3, + CloseKeyboardEscapeOnly = 4, + SecondaryAction = 5, + TertiaryAction = 6, + ScreenButtonTrigger = 7, + NavigationDirections = 8, + Left = 9, + Right = 10, + Up = 11, + Down = 12, + LeftHold = 13, + RightHold = 14, + UpHold = 15, + DownHold = 16, + NextTab = 17, + PreviousTab = 18, + NextSubTab = 19, + PreviousSubTab = 20, + PageContentScrollBackward = 21, + PageContentScrollForward = 22, + PreviousServerPage = 23, + NextServerPage = 24, + ZoomIn = 25, + ZoomOut = 26, + MapWaypointQuickAction = 27, + MapSnapToWaypoint = 28, + MapSnapToPlayerPos = 29, + MapSnapToHomeBase = 30, + MapWorldSidebar = 31, + MapFilterSidebar = 32, + MapFilterFocusType = 33, + ClearMapFilter = 34, + MapPlayersSidebar = 35, + MapActionsMenu = 36, + FastTravel = 37, + GoToJournalEntry = 38, + ShowOnMap = 39, + GoToReferencedJournalPage = 40, + ToggleWaypoint = 41, + CreateCustomMarker = 42, + RemoveCustomMarker = 43, + Ping = 44, + ItemUseFromBackpack = 45, + ItemDeleteInBackpack = 46, + ItemActionsMenu = 47, + ItemViewerVisibilityToggle = 48, + SplitStack = 49, + CharacterDelete = 50, + SalvageItem = 51, + LootTakeAll = 52, + GrabItemEntireStack = 53, + GrabItemPartialStackBegin = 54, + GrabItemPartialStackEnd = 55, + DropItemStackIntoSlot = 56, + ItemQuickMoveOtherInventory = 57, + ItemQuickMoveActionbarBackpack = 58, + ItemQuickMoveContextSensitive = 59, + RefillStacks = 60, + SplitStackAdjustMin = 61, + SplitStackAdjustDecrement = 62, + SplitStackAdjustHalf = 63, + SplitStackAdjustIncrement = 64, + SplitStackAdjustMax = 65, + BeginStorageStacksActions = 66, + EndStorageStacksActions = 67, + BeginStorageAllActions = 68, + EndStorageAllActions = 69, + StorageDepositStacks = 70, + StorageDepositAll = 71, + StorageRefillStacks = 72, + StorageTakeAll = 73, + SortInventory = 74, + SortStorage = 75, + EquipAtTargetSlot = 76, + UnequipAtTargetSlot = 77, + EquipFromBackpack = 78, + EquipVanityFromBackpack = 79, + UnequipFromBackpack = 80, + Craft = 81, + CraftFail = 82, + CraftMultiple = 83, + CraftMultipleFail = 84, + Pin = 85, + Unpin = 86, + ToggleContentViewerPage = 87, + Gift = 88, + ShowTutorial = 89, + CharacterRename = 90, + HidePassword = 91, + TogglePersonalProgressionMode = 92, + IncreaseSettingsValue = 93, + DecreaseSettingsValue = 94, + IncreaseSettingsValueGamepadAlternative = 95, + DecreaseSettingsValueGamepadAlternative = 96, + ResetSettings = 97, + KickPlayer = 98, + ConfigureHostSettings = 99, + RenameAltar = 100, + Count = 101, +}; + +enum class CharacterState { + NewlyCreated = 0, + MarkedForDelete = 1, + DontUploadToCloud = 2, +}; + +typedef keen::Bitmask8 CharacterStateMask; + +typedef keen::Guid CharacterId; + +typedef keen::uint8 SaveGameSlotIndex; + +typedef keen::Guid PlayerId; + +typedef keen::Guid BaseId; + +struct EnemyPhase { +}; + +struct JumpToObject { + keen::Guid objectId; // Offset: 0 +}; + +enum class ecs.SpecialInteraction { + Invalid = 0, + Enemy_Execution = 1, + Sneak_Attack = 2, + StartGuarding = 3, + StopGuarding = 4, +}; + +enum class PlayerLoginState { + Invalid = 0, + SendLoginResponseData = 1, + WaitingForMachineReady = 2, + LoginOk = 3, + LogoutPending = 4, + Logout = 5, + Failed = 6, +}; + +enum class GameClientInitState { + NotInitialized = 0, + Init = 1, + Login = 2, + LoadScene = 3, + LoadVoxelWorld = 4, + SyncCharacterSaveGame = 5, + TitleScreen = 6, + Ready = 7, +}; + +enum class PlayerPermissions { + CanKickBan = 0, + CanAccessInventories = 1, + CanEditBase = 2, + CanExtendBase = 3, +}; + +typedef keen::Bitmask8 PlayerPermissionsMask; + +enum class VoxelConstraint { + HasSubmergeDepth = 0, + IsDangerous = 1, +}; + +typedef keen::Bitmask8 VoxelConstraintMask; + +struct VoxelRequirements { + keen::VoxelConstraintMask required; // Offset: 0 + keen::VoxelConstraintMask forbidden; // Offset: 1 +}; + +struct ecs.ServerProgressSystem { + keen::ecs::EntityId progressEntity; // Offset: 0 + keen::uint32 progressLevel; // Offset: 4 + keen::uint32 currentAltarCount; // Offset: 8 + keen::uint32 currentHighestAltarLevel; // Offset: 12 +}; + +struct ecs.BaseIdComponent { + keen::BaseId baseId; // Offset: 0 + keen::float3 buildZoneSize; // Offset: 16 + keen::Time endOfTimeout; // Offset: 32 + keen::bool wasAbandoned; // Offset: 40 +}; + +struct ecs.ClientBaseIdComponent { + keen::Time endOfTimeout; // Offset: 0 + keen::bool wasAbandoned; // Offset: 8 + keen::uint16 farmingAnimalCount; // Offset: 10 + keen::uint16 hungryFarmingAnimalCount; // Offset: 12 + keen::uint16 animalsWithoutBedCount; // Offset: 14 + keen::uint16 npcBedCount; // Offset: 16 + keen::uint16 farmingAnimalBedCount; // Offset: 18 + keen::uint16 occupiedFarmingAnimalBedCount; // Offset: 20 +}; + +struct ecs.NoBuildZone { +}; + +struct ecs.UnlockedJournalEntries { + keen::uint16 knowledgeChangeCounter; // Offset: 0 + keen::uint16 journalChangeCounter; // Offset: 2 +}; + +struct ecs.HealthBar { + keen::Time lastChange; // Offset: 0 +}; + +struct ecs.EnergyProvider { + keen::uint32 energyPerSecond; // Offset: 0 +}; + +struct ecs.EnergyQuery { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint32 energyPerSecond; // Offset: 4 + keen::float32 entityDistanceSquared; // Offset: 8 +}; + +enum class ecs.CookingState { + CookingRequirementsNotMet = 0, + NotCooking = 1, + CurrentlyCooking = 2, + StartedCooking = 3, + StoppedCooking = 4, + SwitchToFoodBurnedEntity = 5, + WaitForFoodEntityDestruction = 6, + WaitForEvents = 7, +}; + +enum class ecs.CookingFlags { + ReceivedSpawnCookEvent = 0, + ReceivedStartCookEvent = 1, + IsCooking = 2, + CanCook = 3, +}; + +typedef keen::Bitmask8 ecs.CookingMask; + +struct ecs.CookingData { + keen::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ecs::EntityId skewerEntityId; // Offset: 4 + keen::ecs::EntityId burnedFoodEntityId; // Offset: 8 + keen::ecs::EntityId cookFoodEntityId; // Offset: 12 + keen::ItemId baseItemId; // Offset: 16 + keen::ItemId cookingItemId; // Offset: 20 + keen::ItemId nextCookingItemId; // Offset: 24 + keen::KnowledgeId nextKnowledgeTriggerId; // Offset: 28 + keen::KnowledgeId cookingKnowledgeTriggerId; // Offset: 32 + keen::uint32 cookingEnergy; // Offset: 36 + keen::uint32 requiredEnergy; // Offset: 40 + keen::ecs::CookingMask mask; // Offset: 44 + keen::ecs::CookingState state; // Offset: 45 +}; + +struct ecs.NetworkCookingData { + keen::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ecs::CookingMask mask; // Offset: 4 +}; + +struct ecs.CookingNotifier { + keen::NotifierReference onFoodStateChange; // Offset: 0 + keen::NotifierReference onFoodBurned; // Offset: 16 +}; + +struct ecs.AttributeRegeneration { + keen::Time lastNegativeChange; // Offset: 0 + keen::float32 accumulatedValue; // Offset: 8 + keen::sint32 lastValue; // Offset: 12 +}; + +struct ecs.HealthRecharge { +}; + +struct ecs.StaminaRecharge { +}; + +struct ecs.ManaRegeneration { +}; + +struct ecs.BodyHeatRecharge { +}; + +struct ecs.StaminaDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.BodyHeatDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.MovementVector { + keen::float3 velocity; // Offset: 0 + keen::float3 movement; // Offset: 12 +}; + +struct ecs.Projectile { +}; + +struct ecs.ParriableProjectile { + keen::ecs::TemplateReference parriedProjectileTemplate; // Offset: 0 + keen::Angle launchPitchAngleOffset; // Offset: 16 + keen::float32 launchSpeedFactor; // Offset: 20 +}; + +struct ecs.ParriedProjectile { + keen::FactionType originalFaction; // Offset: 0 + keen::ecs::EntityId originalSpawnerId; // Offset: 4 +}; + +enum class ecs.ProjectileMode { + Direct = 0, + Ballistic = 1, +}; + +struct ecs.CirclingTargetSettings { + keen::Angle angleOffset; // Offset: 0 + keen::float radius; // Offset: 4 + keen::float heightOffset; // Offset: 8 +}; + +struct ecs.EnemyProjectile { + keen::ecs::ProjectileMode mode; // Offset: 0 + keen::float32 targetOffsetY; // Offset: 4 + keen::uint8 maxTries; // Offset: 8 + keen::float32 force; // Offset: 12 + keen::bool addGravity; // Offset: 16 + keen::bool useLowAngle; // Offset: 17 + keen::bool lockTargetPosition; // Offset: 18 + keen::BlobArray hitAngles; // Offset: 20 + keen::Angle minPitch; // Offset: 28 + keen::Angle maxPitch; // Offset: 32 + keen::Angle maxHorizontalAngle; // Offset: 36 + keen::bool useFixedTargetOffset; // Offset: 40 + keen::ecs::Offset targetOffset; // Offset: 44 + keen::bool useCirclingTarget; // Offset: 84 + keen::ecs::CirclingTargetSettings circlingTargetSettings; // Offset: 88 +}; + +struct ecs.StaticUsedItem { + keen::ItemReference itemReference; // Offset: 0 +}; + +struct ecs.UsedItem { + keen::ItemId itemId; // Offset: 0 +}; + +struct ecs.PerkContainer { + keen::StaticArray perkIds; // Offset: 0 + keen::StaticArray perkIsUnlocked; // Offset: 20 +}; + +enum class ecs.DismantleVolumeClass { + Tiny = 0, + Small = 1, + Medium = 2, + Large = 3, +}; + +enum class ecs.DismantleMethod { + None = 0, + PickUp = 1, + TearDown = 2, +}; + +struct ecs.DismantleOverride { + keen::bool overrideMethod; // Offset: 0 + keen::ecs::DismantleMethod method; // Offset: 1 + keen::bool overrideVolumeClass; // Offset: 2 + keen::ecs::DismantleVolumeClass volumeClass; // Offset: 3 + keen::bool ignoreBuildZoneChecks; // Offset: 4 + keen::bool preventDismantlingWithFilledInventory; // Offset: 5 +}; + +struct ecs.ClientDismantleOverride { + keen::bool forceImmediateDismantlePrompt; // Offset: 0 +}; + +struct ecs.SubEntitySpawnInfo { + keen::ecs::TemplateReference templateRef; // Offset: 0 + keen::ecs::Offset offset; // Offset: 16 + keen::AttachmentSlot slot; // Offset: 56 + keen::bool hasKnowledgeRequirement; // Offset: 57 + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 60 + keen::KnowledgeId knowledgeRequirementId; // Offset: 164 + keen::bool attach; // Offset: 168 + keen::bool despawnOnDeath; // Offset: 169 + keen::bool addDespawnLink; // Offset: 170 + keen::bool addOwnerRelationship; // Offset: 171 + keen::bool doNotSave; // Offset: 172 + keen::bool copyConditionalDespawn; // Offset: 173 + keen::bool copyLevel; // Offset: 174 + keen::bool addImpactHierarchy; // Offset: 175 +}; + +struct ecs.SubEntities { + keen::BlobArray subEntities; // Offset: 0 + keen::bool hasSavedChildren; // Offset: 8 +}; + +struct ecs.DynamicSubEntities { + keen::StaticArray subEntities; // Offset: 0 +}; + +struct ecs.SubEntitiesStop { +}; + +struct ecs.ToggleSubEntities { + keen::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.DynamicToggleSubEntities { + keen::bool dontSpawn; // Offset: 0 +}; + +struct ecs.SubEntityAttachmentMask { + keen::AttachmentSlotMask mask; // Offset: 0 +}; + +struct ecs.EntityAnimation { + keen::JointAnimationReference animation; // Offset: 0 + keen::uint32 animationHandle; // Offset: 16 + keen::Time sampleTime; // Offset: 24 +}; + +struct ecs.DespawnAfterSequence { + keen::actor::SequenceRuntimeId sequenceId; // Offset: 0 +}; + +struct ecs.WeaponReference { + keen::ecs::EntityId weaponEntityId; // Offset: 0 + keen::ecs::EntityId weaponOwnerEntityId; // Offset: 4 +}; + +struct ecs.HitReactionConfig { + keen::animationgraph::OverlayIdReference hitReactionOverlay; // Offset: 0 + keen::actor::ActorSequenceReference hitSequence; // Offset: 16 +}; + +struct ecs.HitReactionBehavior { + keen::ecs::HitReactionConfig hitReactionBlockLightAttack; // Offset: 0 + keen::ecs::HitReactionConfig hitReactionLight; // Offset: 32 + keen::ecs::HitReactionConfig hitReactionHeavy; // Offset: 64 + keen::ecs::HitReactionConfig hitReactionBoss; // Offset: 96 + keen::ecs::HitReactionConfig hitReactionLongStun; // Offset: 128 + keen::ecs::HitReactionConfig hitReactionTrapStun; // Offset: 160 + keen::ecs::HitReactionConfig hitReactionShortStunBeGoneSkill; // Offset: 192 + keen::ecs::HitReactionConfig hitReactionThrowIntoAir; // Offset: 224 + keen::ecs::HitReactionConfig hitReactionWhileFlying; // Offset: 256 +}; + +enum class ecs.EntityReferenceType { + Self = 0, + Parent = 1, + Weapon = 2, +}; + +struct ecs.LerpRenderTransform { + keen::bool isInitialized; // Offset: 0 + keen::ecs::EntityReferenceType entityReferenceType; // Offset: 1 + keen::AttachmentSlot attachmentSlot; // Offset: 2 + keen::Time lerpDuration; // Offset: 8 + keen::float32 lerpValueStart; // Offset: 16 + keen::float32 lerpValueEnd; // Offset: 20 + keen::Time lerpTimeStart; // Offset: 24 + keen::float3 translateDelta; // Offset: 32 +}; + +struct ecs.HomeToTarget { + keen::float3 targetLocalOffset; // Offset: 0 + keen::float32 turnSpeed; // Offset: 12 + keen::float32 turnSpeedMinDistanceFactor; // Offset: 16 + keen::float32 turnSpeedMaxDistanceFactor; // Offset: 20 + keen::float32 turnSpeedMinDistance; // Offset: 24 + keen::float32 turnSpeedMaxDistance; // Offset: 28 + keen::float32 acceleration; // Offset: 32 + keen::float32 maxSpeed; // Offset: 36 + keen::bool homeToCollisionTarget; // Offset: 40 + keen::float32 rayLength; // Offset: 44 + keen::bool accelerateDependsOnAngle; // Offset: 48 +}; + +struct ecs.DynamicHomeToTarget { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.Boomerang { + keen::Time returnToSpawnerDelay; // Offset: 0 + keen::float32 destroyOnApproachSpawnerDistance; // Offset: 8 +}; + +enum class ecs.AggroTargetState { + Unknown = 0, + Aborted = 1, + Noticed = 2, + Alarmed = 3, +}; + +enum class ecs.AggroPool { + Senses = 0, + Friends = 1, + Enemies = 2, + Count = 3, +}; + +struct ecs.AggroPoolData { + keen::float32 value; // Offset: 0 + keen::Time lastGain; // Offset: 8 +}; + +enum class ecs.LineOfSightState { + None = 0, + InSight = 1, + OutOfSight = 2, + Count = 3, +}; + +enum class ecs.TargetReachableState { + Unknown = 0, + Reachable = 1, + NotReachable = 2, +}; + +struct ecs.AggroTarget { + keen::StaticArray aggroPools; // Offset: 0 + keen::ecs::AggroTargetState state; // Offset: 48 + keen::ecs::EntityId entityId; // Offset: 52 + keen::float32 value; // Offset: 56 + keen::Time lastLineOfSightQueryTime; // Offset: 64 + keen::ecs::LineOfSightState lineOfSightState; // Offset: 72 + keen::Time lastStateChangeTime; // Offset: 80 + keen::FactionType faction; // Offset: 88 + keen::float pathLength; // Offset: 92 + keen::ecs::TargetReachableState reachableState; // Offset: 96 + keen::float distanceToTarget; // Offset: 100 + keen::float enemyValue; // Offset: 104 +}; + +struct ecs.AggroTargetPathQuery { + keen::ecs::PathQueryId queryId; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::float3 lastStart; // Offset: 16 + keen::float3 lastTarget; // Offset: 28 +}; + +struct ecs.Aggro { + keen::StaticArray targets; // Offset: 0 + keen::StaticArray pathQueries; // Offset: 672 + keen::Time nextAllowedTargetChangeTime; // Offset: 912 + keen::ecs::QueryId queryId; // Offset: 920 + keen::bool applyEnemyValue; // Offset: 924 + keen::bool allowTargetSwitches; // Offset: 925 +}; + +struct ecs.TriggerNoise { + keen::float32 range; // Offset: 0 + keen::Time nextTriggerTime; // Offset: 8 + keen::Time triggerInterval; // Offset: 16 +}; + +struct ecs.TriggerWalkingNoise { + keen::float32 sneakRange; // Offset: 0 + keen::float32 walkRange; // Offset: 4 + keen::float32 runRange; // Offset: 8 + keen::float32 sprintRange; // Offset: 12 + keen::Time nextTriggerTime; // Offset: 16 + keen::Time triggerInterval; // Offset: 24 +}; + +struct ecs.EnemyPhases { + keen::StaticArray,8> phases; // Offset: 0 +}; + +struct ecs.DynamicEnemyPhases { + keen::Guid lastPhase; // Offset: 0 + keen::Guid currentPhase; // Offset: 16 + keen::Time currentPhaseStartTime; // Offset: 32 +}; + +struct ecs.EnemyAiming { + keen::BlobArray hitPattern; // Offset: 0 + keen::float32 minDistanceToMissTarget; // Offset: 8 +}; + +struct ecs.DynamicEnemyAiming { + keen::uint8 hitIndex; // Offset: 0 + keen::uint8 hitAngleIndex; // Offset: 1 + keen::StaticArray projectiles; // Offset: 4 +}; + +enum class ecs.ContextualVector2Context { + PositionDelta = 0, + Velocity = 1, +}; + +struct ecs.ContextualVector2 { + keen::ecs::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.ExecutionTarget { + keen::float32 executionRange; // Offset: 0 + keen::bool enableSneackAttackExecution; // Offset: 4 + keen::bool enableMercilessAttackExecution; // Offset: 5 + keen::float32 minMercilessAttackHealthPercentage; // Offset: 8 + keen::bool allowMercilessAttackRetrigger; // Offset: 12 + keen::bool canMercilessAttackBeExecuted; // Offset: 13 + keen::bool waitForHealthAboveThreshold; // Offset: 14 + keen::bool waitForStaminaRecharge; // Offset: 15 +}; + +enum class ecs.TransferItemToInventoryFlag { + Gifting = 0, + RefillStacks = 1, + MoveAllStacks = 2, + ToActionbar = 3, + ToBackpack = 4, +}; + +typedef keen::Bitmask8 ecs.TransferItemToInventoryFlags; + +struct ecs.InventoryTransferAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId sourceEntityId; // Offset: 4 + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::InventorySlotId sourceSlotId; // Offset: 12 + keen::InventorySlotId targetSlotId; // Offset: 20 + keen::InventoryActionType type; // Offset: 28 + keen::ecs::TransferItemToInventoryFlags flags; // Offset: 29 + keen::uint16 amount; // Offset: 30 +}; + +struct ecs.SelectSongAction { + keen::VersionedData versionData; // Offset: 0 + keen::HashKey32 songId; // Offset: 4 +}; + +struct ecs.SortInventoryAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetInventoryId; // Offset: 4 +}; + +struct ecs.CreateBuildingItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::ActionbarSlotSelection selectedIndex; // Offset: 2 + keen::ItemId itemId; // Offset: 4 +}; + +struct ecs.CreateNpcItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::ItemId itemId; // Offset: 4 +}; + +struct ecs.ActionbarSelectionAction { + keen::VersionedData versionData; // Offset: 0 + keen::ActionbarSlotSelection selectedIndex; // Offset: 2 +}; + +struct ecs.InventoryStockCycleAction { + keen::VersionedData versionData; // Offset: 0 + keen::ItemId selectedItemId; // Offset: 4 +}; + +struct ecs.ParryAction { + keen::VersionedData versionData; // Offset: 0 + keen::StaticArray targetEntityIds; // Offset: 4 +}; + +struct ecs.KickPlayerAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 4 +}; + +struct ecs.TwitchDropRewardAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 4 + keen::ItemId itemId; // Offset: 8 +}; + +enum class ecs.TombstoneMode { + AddBackpackMaterials = 0, + Everything = 1, + NoTombstone = 2, +}; + +enum class ecs.WeatherFrequency { + Disabled = 0, + Rare = 1, + Normal = 2, + Often = 3, +}; + +enum class ecs.AggroPoolAmount { + Few = 0, + Normal = 1, + Many = 2, + Extreme = 3, +}; + +enum class ecs.TamingStartleRepercussion { + KeepProgress = 0, + LoseSomeProgress = 1, + LoseAllProgress = 2, +}; + +struct ecs.GameSettings { + keen::float playerHealthFactor; // Offset: 0 + keen::float playerManaFactor; // Offset: 4 + keen::float playerStaminaFactor; // Offset: 8 + keen::float playerBodyHeatFactor; // Offset: 12 + keen::bool enableDurability; // Offset: 16 + keen::bool enableStarvingDebuff; // Offset: 17 + keen::float foodBuffDurationFactor; // Offset: 20 + keen::Time fromHungerToStarving; // Offset: 24 + keen::float shroudTimeFactor; // Offset: 32 + keen::ecs::TombstoneMode tombstoneMode; // Offset: 36 + keen::bool enableGliderTurbulences; // Offset: 37 + keen::ecs::WeatherFrequency weatherFrequency; // Offset: 38 + keen::float miningDamageFactor; // Offset: 40 + keen::float plantGrowthSpeedFactor; // Offset: 44 + keen::float resourceDropStackAmountFactor; // Offset: 48 + keen::float factoryProductionSpeedFactor; // Offset: 52 + keen::float perkUpgradeRecyclingFactor; // Offset: 56 + keen::float perkCostFactor; // Offset: 60 + keen::float experienceCombatFactor; // Offset: 64 + keen::float experienceMiningFactor; // Offset: 68 + keen::float experienceExplorationQuestsFactor; // Offset: 72 + keen::ecs::RandomSpawnerAmount randomSpawnerAmount; // Offset: 76 + keen::ecs::AggroPoolAmount aggroPoolAmount; // Offset: 77 + keen::float enemyDamageFactor; // Offset: 80 + keen::float enemyHealthFactor; // Offset: 84 + keen::float enemyStaminaFactor; // Offset: 88 + keen::float enemyPerceptionRangeFactor; // Offset: 92 + keen::float bossDamageFactor; // Offset: 96 + keen::float bossHealthFactor; // Offset: 100 + keen::float threatBonus; // Offset: 104 + keen::bool pacifyAllEnemies; // Offset: 108 + keen::ecs::TamingStartleRepercussion tamingStartleRepercussion; // Offset: 109 + keen::Time dayTimeDuration; // Offset: 112 + keen::Time nightTimeDuration; // Offset: 120 +}; + +struct ecs.AdminChangeGameSettingsAction { + keen::ecs::GameSettings gameSettings; // Offset: 0 + keen::VersionedData versionData; // Offset: 128 +}; + +struct ecs.AdminApplyInventoryCommand { + keen::VersionedData versionData; // Offset: 0 + keen::Guid inventoryGuid; // Offset: 4 + keen::bool clearInventories; // Offset: 20 +}; + +struct ecs.AdminSpawnCommand { + keen::VersionedData versionData; // Offset: 0 + keen::uint16 level; // Offset: 2 + keen::Guid templateGuid; // Offset: 4 + keen::uint8 optionalDistance; // Offset: 20 + keen::uint8 count; // Offset: 21 + keen::bool useRoaming; // Offset: 22 + keen::bool showSpawnSequence; // Offset: 23 + keen::bool spawnAsGroup; // Offset: 24 + keen::bool spawnAsFakePlayer; // Offset: 25 + keen::bool followPlayer; // Offset: 26 + keen::uint8 autoDestroyTicks; // Offset: 27 +}; + +struct ecs.AdminKillFactionCommand { + keen::VersionedData versionData; // Offset: 0 + keen::FactionMask factionMask; // Offset: 2 + keen::uint32 playerMask; // Offset: 4 +}; + +enum class ItemRarity { + Common = 0, + Uncommon = 1, + Rare = 2, + Epic = 3, + Legendary = 4, + Count = 5, +}; + +struct ecs.AdminInventoryCreateAction { + keen::ItemId itemId; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 + keen::uint16 count; // Offset: 6 + keen::ItemRarity rarity; // Offset: 8 + keen::uint8 level; // Offset: 9 + keen::bool createForAllPlayers; // Offset: 10 + keen::bool createFullStack; // Offset: 11 + keen::bool fillEmptyStacks; // Offset: 12 + keen::bool maximizeCharacter; // Offset: 13 + keen::bool cleanupInventory; // Offset: 14 + keen::bool flameLevelUpgrade; // Offset: 15 +}; + +struct ecs.AdminTeleportAction { + keen::ecs::Transform transform; // Offset: 0 + keen::VersionedData versionData; // Offset: 28 +}; + +struct ecs.AdminSetDayTimeAction { + keen::Time syncDaytime; // Offset: 0 + keen::Time syncDaytimeTick; // Offset: 8 + keen::VersionedData versionData; // Offset: 16 +}; + +struct ecs.AdminDestroyItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.AdminSetFlameLevel { + keen::VersionedData versionData; // Offset: 0 + keen::uint8 flameLevel; // Offset: 2 +}; + +struct ecs.AdminSetCharacterLevel { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 4 + keen::uint8 level; // Offset: 8 +}; + +struct ecs.AdminPerkAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 + keen::bool state; // Offset: 12 +}; + +struct ecs.AdminDebugCameraDisplayAction { + keen::VersionedData versionData; // Offset: 0 + keen::bool enable; // Offset: 2 +}; + +struct ecs.ChangeCustomizationAction { + keen::InventorySlotId targetSlotId; // Offset: 0 + keen::ItemId itemId; // Offset: 8 + keen::VersionedData versionData; // Offset: 12 +}; + +enum class ecs.FlameAltarActionType { + Abandon = 0, + Reclaim = 1, +}; + +struct ecs.FlameAltarAction { + keen::ecs::EntityId baseEntityId; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 + keen::ecs::FlameAltarActionType type; // Offset: 6 +}; + +struct ecs.TeleportAction { + keen::ecs::EntityId target; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 +}; + +struct ecs.UnlockSkillAction { + keen::SkillNodeId skillId; // Offset: 0 + keen::bool resetSkills; // Offset: 4 + keen::VersionedData versionData; // Offset: 6 +}; + +struct ecs.AdminUnlearnSkillAction { + keen::SkillNodeId skillId; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 +}; + +struct ecs.TriggerKnowledgeAction { + keen::LocaTagId dialogOptionId; // Offset: 0 + keen::KnowledgeId knowledgeId; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.SetPersonalProgressionAction { + keen::bool enable; // Offset: 0 + keen::VersionedData versionData; // Offset: 2 +}; + +struct ecs.AmbientHelper { + keen::AmbientMask ambientMask; // Offset: 0 +}; + +struct ecs.WaypointAction { + keen::WorldPosition position; // Offset: 0 + keen::bool enable; // Offset: 24 + keen::bool isPing; // Offset: 25 + keen::VersionedData versionData; // Offset: 26 +}; + +struct ecs.SelectDialogOptionAction { + keen::LocaTagId dialogOptionId; // Offset: 0 + keen::ecs::EntityId targetNpc; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.NpcInputAction { + keen::NpcId targetNpc; // Offset: 0 + keen::float roamingRange; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +typedef keen::HashKey32 RecipeId; + +struct ecs.CraftRecipeAction { + keen::ecs::EntityId craftingStationId; // Offset: 0 + keen::RecipeId recipeId; // Offset: 4 + keen::uint16 recipeAmount; // Offset: 8 + keen::VersionedData versionData; // Offset: 10 +}; + +struct ecs.AutomaticTransferAction { + keen::ecs::EntityId craftingStationId; // Offset: 0 + keen::RecipeId recipeId; // Offset: 4 + keen::ItemId itemId; // Offset: 8 + keen::uint16 amount; // Offset: 12 + keen::VersionedData versionData; // Offset: 14 +}; + +struct ecs.SelectCraftingStationRecipeAction { + keen::ecs::EntityId craftingStationId; // Offset: 0 + keen::RecipeId recipeId; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.PerkUnlockAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.TrashItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 +}; + +enum class ecs.ChangeEquipment { + Equip = 0, + Unequip = 1, +}; + +struct ecs.ChangeEquipmentAction { + keen::InventorySlotId inventorySlotId; // Offset: 0 + keen::VersionedData versionData; // Offset: 8 + keen::EquipmentSlot equipmentSlot; // Offset: 10 + keen::ecs::ChangeEquipment type; // Offset: 11 +}; + +enum class ecs.SwapEquipmentTarget { + ActiveEquipment = 0, + Vanity = 1, +}; + +struct ecs.SwapEquipmentSetAction { + keen::ecs::EntityId targetInventoryId; // Offset: 0 + keen::ecs::SwapEquipmentTarget target; // Offset: 4 + keen::VersionedData versionData; // Offset: 6 +}; + +struct ecs.ConsumeItemAction { + keen::InventorySlotId inventorySlotId; // Offset: 0 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.InspectItemAction { + keen::InventorySlotId inventorySlotId; // Offset: 0 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.RepairAllItemsAction { + keen::VersionedData versionData; // Offset: 0 +}; + +struct ecs.RequiredCraftingProp { + keen::ObjectReference type; // Offset: 0 + keen::CraftingPropId craftingPropId; // Offset: 16 +}; + +enum class ecs.FactoryStationState { + NoRecipe = 0, + MissingMaterials = 1, + Running = 2, + MissingOutputSpace = 3, +}; + +struct ecs.FactoryStation { + keen::ecs::FactoryStationState state; // Offset: 0 + keen::RecipeId runningRecipe; // Offset: 4 + keen::RecipeId nextRecipe; // Offset: 8 + keen::Time recipeStart; // Offset: 16 +}; + +struct ecs.FactoryStationClient { + keen::SoundContainerReference soundLoopRunning; // Offset: 0 + keen::uint32 soundLoopRunningHandle; // Offset: 16 +}; + +struct ecs.UiBlueprintShapeSelection { + keen::uint8 selectionIndex; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ecs.UiPlayerInput { + keen::sint8 lootSelectionDelta; // Offset: 0 + keen::sint8 blueprintPageSelectionDelta; // Offset: 1 + keen::sint8 blueprintShapeSelectionDelta; // Offset: 2 + keen::ecs::UiBlueprintShapeSelection blueprintShapeSelection; // Offset: 3 + keen::float32 dismantleHoldProgress; // Offset: 8 + keen::bool canCycleInventoryStock; // Offset: 12 + keen::bool isInventoryStockCyclingDisabled; // Offset: 13 + keen::bool isBlueprintPageSelectionModifierActive; // Offset: 14 + keen::bool isTertiaryActionAllowed; // Offset: 15 + keen::bool showTutorial; // Offset: 16 + keen::bool showInventoryStock; // Offset: 17 + keen::bool showActionbarWheel; // Offset: 18 + keen::bool showQuickEquipWheel; // Offset: 19 + keen::bool jumpToNotification; // Offset: 20 +}; + +struct ecs.ClientOnlyPlayerInput { + keen::sint8 actionbarSelectionDelta; // Offset: 0 + keen::sint8 inventoryStockCycleDelta; // Offset: 1 + keen::sint8 songSelectionDelta; // Offset: 2 + keen::sint8 zoomInputDelta; // Offset: 3 +}; + +struct ecs.ClientCamera { + keen::WorldPosition position; // Offset: 0 + keen::Quaternion orientation; // Offset: 24 + keen::float32 distance; // Offset: 40 + keen::float32 fovY; // Offset: 44 + keen::float32 aspectRatio; // Offset: 48 + keen::float32 nearPlane; // Offset: 52 + keen::float32 farPlane; // Offset: 56 +}; + +enum class ecs.ClientPlayerState { + IsInBlueprintMenu = 0, + IsInLootingMenu = 1, + IsInFreeCam = 2, +}; + +typedef keen::Bitmask8 ecs.ClientPlayerStateMask; + +enum class ecs.PlayerInputType { + MainhandAction = 0, + MainhandAction_Release = 1, + ContextualAction = 2, + ContextualAction_Tap = 3, + ContextualAction_Hold = 4, + CancelAction = 5, + QuickUse0 = 6, + QuickUse1 = 7, + QuickUse2 = 8, + QuickUse3 = 9, + QuickUse4 = 10, + QuickUse5 = 11, + QuickUse6 = 12, + QuickUse7 = 13, + QuickUse0_Release = 14, + QuickUse1_Release = 15, + QuickUse2_Release = 16, + QuickUse3_Release = 17, + QuickUse4_Release = 18, + QuickUse5_Release = 19, + QuickUse6_Release = 20, + QuickUse7_Release = 21, + Block = 22, + Evade = 23, + Jump = 24, + Jump_Hold = 25, + Glider = 26, + Respawn = 27, + BuildingUndo = 28, + BuildingBlueprintSnapping = 29, + BuildingVoxelGridSnapping = 30, + LockCombatTarget = 31, + CombatTargetSelectPrevious = 32, + CombatTargetSelectNext = 33, + RangedCombatArm = 34, + RangedCombatShoot = 35, + Sprint = 36, + Sneak = 37, + Sit = 38, + Count = 39, +}; + +typedef keen::Bitmask64 ecs.PlayerDigitalInput; + +struct ecs.ClientPlayerInputData { + keen::ecs::InventoryTransferAction inventoryTransferAction; // Offset: 0 + keen::ecs::ClientCamera camera; // Offset: 32 + keen::ecs::ActionbarSelectionAction actionbarSelectionAction; // Offset: 96 + keen::ecs::SortInventoryAction sortInventoryAction; // Offset: 100 + keen::ecs::SelectSongAction selectSongAction; // Offset: 108 + keen::ecs::InventoryStockCycleAction inventoryStockCycleAction; // Offset: 116 + keen::ecs::CraftRecipeAction craftRecipeAction; // Offset: 124 + keen::ecs::AutomaticTransferAction automaticTransferAction; // Offset: 136 + keen::ecs::SelectCraftingStationRecipeAction selectCraftingStationRecipeAction; // Offset: 152 + keen::ecs::ChangeCustomizationAction changeCustomizationAction; // Offset: 164 + keen::ecs::TeleportAction teleportAction; // Offset: 180 + keen::ecs::UnlockSkillAction unlockSkillAction; // Offset: 188 + keen::ecs::TriggerKnowledgeAction triggerKnowledgeAction; // Offset: 196 + keen::ecs::SetPersonalProgressionAction setPersonalProgressionAction; // Offset: 208 + keen::ecs::SelectDialogOptionAction selectDialogOptionAction; // Offset: 212 + keen::ecs::NpcInputAction npcInputAction; // Offset: 224 + keen::ecs::ChangeEquipmentAction changeEquipmentAction; // Offset: 236 + keen::ecs::SwapEquipmentSetAction swapEquipmentSetAction; // Offset: 248 + keen::ecs::ConsumeItemAction consumeItemAction; // Offset: 256 + keen::ecs::InspectItemAction inspectItemAction; // Offset: 268 + keen::ecs::RepairAllItemsAction repairAllItemsAction; // Offset: 280 + keen::ecs::CreateBuildingItemAction createBuildingItemAction; // Offset: 284 + keen::ecs::CreateNpcItemAction createNpcItemAction; // Offset: 292 + keen::ecs::PerkUnlockAction perkUnlockAction; // Offset: 300 + keen::ecs::TrashItemAction trashItemAction; // Offset: 312 + keen::ecs::FlameAltarAction flameAltarAction; // Offset: 324 + keen::ecs::WaypointAction waypointAction; // Offset: 336 + keen::ecs::ParryAction parryAction; // Offset: 368 + keen::ecs::KickPlayerAction kickPlayerAction; // Offset: 388 + keen::ecs::TwitchDropRewardAction twitchDropRewardAction; // Offset: 396 + keen::Vector2 movementStick; // Offset: 408 + keen::ecs::ContextualVector2 cameraRotationInput; // Offset: 416 + keen::sint16 buildingRotation; // Offset: 428 + keen::uint8 buildingDistance; // Offset: 430 + keen::ecs::ClientPlayerStateMask mask; // Offset: 431 + keen::ecs::PlayerDigitalInput digitalInput; // Offset: 432 + keen::Time respawnActionHoldDuration; // Offset: 440 + keen::Time debugEventTime; // Offset: 448 + keen::Time debugUpdateTime; // Offset: 456 +}; + +struct ecs.AdminClientPlayerInputData { + keen::ecs::AdminInventoryCreateAction adminInventoryCreateAction; // Offset: 0 + keen::ecs::AdminSpawnCommand adminSpawnCommand; // Offset: 16 + keen::ecs::AdminKillFactionCommand adminKillFaction; // Offset: 44 + keen::ecs::AdminTeleportAction adminTeleport; // Offset: 52 + keen::ecs::AdminApplyInventoryCommand adminApplyInventory; // Offset: 84 + keen::ecs::AdminSetDayTimeAction adminSetDaytime; // Offset: 112 + keen::ecs::AdminDestroyItemAction adminDestroyItemAction; // Offset: 136 + keen::ecs::AdminSetFlameLevel adminSetFlameLevel; // Offset: 148 + keen::ecs::AdminSetCharacterLevel adminSetCharacterLevel; // Offset: 152 + keen::ecs::AdminPerkAction adminPerkAction; // Offset: 164 + keen::ecs::AdminDebugCameraDisplayAction adminDebugCameraDisplayAction; // Offset: 180 + keen::ecs::AdminUnlearnSkillAction adminUnlearnSkillAction; // Offset: 184 + keen::ecs::AdminChangeGameSettingsAction adminChangeGameSettingsAction; // Offset: 192 +}; + +enum class ecs.DoubleInputBindings { + SprintAndSneak = 0, + BlockAndEvade = 1, + UndoAndEvade = 2, + JumpAndGlider = 3, + BuildingSnappingAndSitting = 4, + BuildingMenuAndLockTarget = 5, + BuildingMenuAndSitting = 6, +}; + +typedef keen::Bitmask8 ecs.DoubleInputBindingsMask; + +struct ecs.ClientPlayerInputHistoryEntry { + keen::uint32 frameTick; // Offset: 0 + keen::ecs::ClientPlayerInputData data; // Offset: 8 +}; + +enum class ecs.PlayerSettingFlags { + KeepTargetLockWhenSprinting = 0, + KeepTargetLockWhenInvalid = 1, + HideHelmet = 2, + HideGloves = 3, +}; + +typedef keen::Bitmask8 ecs.PlayerSettingMask; + +struct ecs.ClientPlayerSettings { + keen::AttackDirectionInput attackDirectionInput; // Offset: 0 + keen::ecs::PlayerSettingMask flags; // Offset: 1 +}; + +struct ecs.ClientPlayerInputToggleConfig { + keen::ecs::PlayerDigitalInput configuredAsToggle; // Offset: 0 +}; + +struct ecs.ClientPlayerInput { + keen::ecs::ClientPlayerInputData data; // Offset: 0 + keen::ecs::AdminClientPlayerInputData adminCommands; // Offset: 464 + keen::ecs::ClientPlayerInputToggleConfig toggleConfig; // Offset: 792 + keen::ecs::DoubleInputBindingsMask doubleInputBindings; // Offset: 800 + keen::InputMode inputMode; // Offset: 801 + keen::ecs::ClientOnlyPlayerInput clientOnlyPlayerInput; // Offset: 802 + keen::ecs::UiPlayerInput uiPlayerInput; // Offset: 808 +}; + +struct ecs.PlayerInput { + keen::Time serverTime; // Offset: 0 + keen::ecs::ClientPlayerInputData fromClient; // Offset: 8 + keen::ecs::AdminClientPlayerInputData fromAdminClient; // Offset: 472 + keen::ecs::ClientPlayerInputToggleConfig fromClientToggleConfig; // Offset: 800 + keen::ecs::DoubleInputBindingsMask fromClientDoubleInputBindings; // Offset: 808 + keen::InputMode fromClientInputMode; // Offset: 809 + keen::ecs::ClientPlayerSettings fromClientSettings; // Offset: 810 + keen::bool fromClientIsReadyForGameplay; // Offset: 812 +}; + +struct ecs.ServerInputConsumer { + keen::ecs::PlayerDigitalInput consumedInputs; // Offset: 0 + keen::ecs::PlayerDigitalInput logicalStates; // Offset: 8 + keen::ecs::PlayerDigitalInput totalPreviousInputs; // Offset: 16 +}; + +struct ecs.ServerConsumedPlayerInput { + keen::ecs::ServerInputConsumer inputConsumer; // Offset: 0 + keen::VersionedData consumedInventoryTransferAction; // Offset: 24 + keen::VersionedData consumedSortInventoryAction; // Offset: 26 + keen::VersionedData consumedSelectSongAction; // Offset: 28 + keen::VersionedData consumedCreateBuildingItemAction; // Offset: 30 + keen::VersionedData consumedCreateNpcItemAction; // Offset: 32 + keen::VersionedData consumedActionbarSelectionAction; // Offset: 34 + keen::VersionedData consumedInventoryStockCycleAction; // Offset: 36 + keen::VersionedData consumedCraftRecipeAction; // Offset: 38 + keen::VersionedData consumedAutomaticTransferAction; // Offset: 40 + keen::VersionedData consumedSelectCraftingStationRecipeAction; // Offset: 42 + keen::VersionedData consumedChangeCustomizationAction; // Offset: 44 + keen::VersionedData consumedTeleportAction; // Offset: 46 + keen::VersionedData consumedUnlockSkillAction; // Offset: 48 + keen::VersionedData consumedTriggerKnowledgeAction; // Offset: 50 + keen::VersionedData consumedSetPersonalProgressionAction; // Offset: 52 + keen::VersionedData consumedWaypointAction; // Offset: 54 + keen::VersionedData consumedSelectDialogOptionAction; // Offset: 56 + keen::VersionedData consumedNpcInputAction; // Offset: 58 + keen::VersionedData consumedChangeEquipmentAction; // Offset: 60 + keen::VersionedData consumedSwapEquipmentSetAction; // Offset: 62 + keen::VersionedData consumedConsumeItemAction; // Offset: 64 + keen::VersionedData consumedInspectItemAction; // Offset: 66 + keen::VersionedData consumedRepairAllItemsActionn; // Offset: 68 + keen::VersionedData consumedPerkUnlockAction; // Offset: 70 + keen::VersionedData consumedTrashItemAction; // Offset: 72 + keen::VersionedData consumedFlameAltarAction; // Offset: 74 + keen::VersionedData consumedParryAction; // Offset: 76 + keen::VersionedData consumedKickPlayerAction; // Offset: 78 + keen::VersionedData consumedtwitchDropAction; // Offset: 80 + keen::VersionedData consumedAdminInventoryCreateAction; // Offset: 82 + keen::VersionedData consumedAdminSpawnAction; // Offset: 84 + keen::VersionedData consumedAdminKillFactionAction; // Offset: 86 + keen::VersionedData consumedAdminTeleport; // Offset: 88 + keen::VersionedData consumedAdminApplyInventory; // Offset: 90 + keen::VersionedData consumedAdminSetDaytime; // Offset: 92 + keen::VersionedData consumedAdminDestroyItemAction; // Offset: 94 + keen::VersionedData consumedAdminSetFlameLevel; // Offset: 96 + keen::VersionedData consumedAdminSetCharacterLevel; // Offset: 98 + keen::VersionedData consumedAdminPerkAction; // Offset: 100 + keen::VersionedData consumedAdminDebugCameraDisplayAction; // Offset: 102 + keen::VersionedData consumedAdminUnlearnSkillAction; // Offset: 104 + keen::VersionedData consumedAdminChangeGameSettingsAction; // Offset: 106 +}; + +struct ecs.InputRepeater { + keen::bool isAfterFirstRepetition; // Offset: 0 + keen::Time nextRepeatTime; // Offset: 8 +}; + +typedef keen::StaticArray ecs.ClientOnlyPlayerInputRepeater; + +enum class ecs.ClientOnlyPlayerInputType { + ActionbarSwapPage = 0, + ActionbarPreviousSlot = 1, + ActionbarNextSlot = 2, + AmmunitionSelectPrevious = 3, + AmmunitionSelectNext = 4, + ShowTutorial = 5, + BlueprintDistanceIncrease = 6, + BlueprintDistanceDecrease = 7, + BlueprintMaterialSelectPrevious = 8, + BlueprintMaterialSelectNext = 9, + BlueprintPageSelectPrevious = 10, + BlueprintPageSelectNext = 11, + BlueprintShapeSelectPrevious = 12, + BlueprintShapeSelectNext = 13, + BlueprintShapeSelect0 = 14, + BlueprintShapeSelect1 = 15, + BlueprintShapeSelect2 = 16, + BlueprintShapeSelect3 = 17, + BlueprintShapeSelect4 = 18, + BlueprintShapeSelect5 = 19, + BlueprintShapeSelect6 = 20, + BlueprintShapeSelect7 = 21, + BlueprintShapeSelect8 = 22, + BlueprintShapeSelect9 = 23, + BuildingRotateLittleClockwise = 24, + BuildingRotateLittleCounterClockwise = 25, + BuildingRotateFarClockwise = 26, + BuildingRotateFarCounterClockwise = 27, + LootSelectPrevious = 28, + LootSelectNext = 29, + SongSelectOpen = 30, + SongSelectPrevious = 31, + SongSelectNext = 32, + CameraZoomIn = 33, + CameraZoomOut = 34, + UiSystemMenu = 35, + UiInGameMenu = 36, + UiBackpack = 37, + UiBuildingMenu = 38, + UiCharacter = 39, + UiCrafting = 40, + UiJournal = 41, + UiJumpToNotification = 42, + UiMap = 43, + UiSkills = 44, + UiUserFeedback = 45, + Parry = 46, + Count = 47, +}; + +typedef keen::Bitmask64 ecs.ClientOnlyPlayerDigitalInput; + +struct ecs.ClientInputConsumer { + keen::ecs::ClientOnlyPlayerDigitalInput consumedInputs; // Offset: 0 + keen::ecs::ClientOnlyPlayerDigitalInput logicalStates; // Offset: 8 + keen::ecs::ClientOnlyPlayerInputRepeater inputRepeaters; // Offset: 16 +}; + +struct ecs.PlayerTestInput { + keen::ecs::PlayerDigitalInput digitalInput; // Offset: 0 + keen::Vector2 movementStick; // Offset: 8 + keen::float3 cameraDirection; // Offset: 16 +}; + +enum class ranged_weapon.State { + Holster = 0, + Aim = 1, + AimAndCharge = 2, + Fire = 3, + FireEaseOut = 4, +}; + +struct ranged_weapon.Input { + keen::bool aim; // Offset: 0 + keen::bool charge; // Offset: 1 + keen::bool fire; // Offset: 2 +}; + +struct ranged_weapon.WeaponParameters { + keen::Time chargeDuration; // Offset: 0 + keen::Time fireDuration; // Offset: 8 + keen::bool isChanneling; // Offset: 16 + keen::bool doesNeedAmmunition; // Offset: 17 + keen::bool canQueueFireBeforeFullyCharged; // Offset: 18 + keen::bool restartChargeOnAmmunitionSwitch; // Offset: 19 +}; + +struct ranged_weapon.StateMachine { + keen::ranged_weapon::State currentState; // Offset: 0 + keen::Time stateStartTime; // Offset: 8 + keen::ranged_weapon::Input previousInput; // Offset: 16 + keen::ranged_weapon::WeaponParameters weaponParameters; // Offset: 24 + keen::bool isInitialUpdate; // Offset: 48 + keen::bool isFireQueued; // Offset: 49 +}; + +enum class ResourceTypes { + Health = 0, + Mana = 1, + Stamina = 2, + FogResistance = 3, + Ammunition = 4, + FoodBuff = 5, + GenericBuff = 6, + Debuff = 7, + RestedBuff = 8, +}; + +typedef keen::Bitmask16 ResourceTypesMask; + +struct ecs.RangedWeapon { + keen::ranged_weapon::StateMachine stateMachine; // Offset: 0 + keen::ecs::PlayerInputType originalTrigger; // Offset: 56 + keen::ecs::PlayerInputType currentTrigger; // Offset: 57 + keen::ItemInstanceInfo triggerWeaponInstance; // Offset: 60 + keen::ItemInstanceInfo triggerAmmunitionInstance; // Offset: 80 + keen::ResourceTypesMask missingResourceMask; // Offset: 100 + keen::Time lastMissingResourceEvent; // Offset: 104 + keen::ItemId lastVisualAmmoItemId; // Offset: 112 + keen::ItemId visualAmmoItemId; // Offset: 116 + keen::ecs::EntityId visualAmmoEntityId; // Offset: 120 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 124 + keen::bool previousSneakState; // Offset: 125 +}; + +struct ecs.NetworkRangedWeapon { + keen::ranged_weapon::State currentState; // Offset: 0 + keen::ranged_weapon::WeaponParameters weaponParameters; // Offset: 8 + keen::Time stateStartTime; // Offset: 32 + keen::ItemInstanceInfo weaponInstance; // Offset: 40 + keen::ItemId ammunitionItemId; // Offset: 60 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 64 +}; + +struct ecs.ClientRangedWeapon { + keen::ranged_weapon::State previousState; // Offset: 0 + keen::bool isInitialUpdate; // Offset: 1 +}; + +struct ecs.RangedWeaponRender { +}; + +struct ecs.SpellChargeSfx { + keen::SoundContainerReference buildUpChargeSfx; // Offset: 0 + keen::SoundContainerReference sustainChargeSfx; // Offset: 16 + keen::bool hasHandledFullyCharged; // Offset: 32 +}; + +enum class ecs.PlayerFlags { + IsSpawned = 0, + InFullScreenUi = 1, + UiCoverRequest = 2, + CanTriggerHookShot = 3, + CanTriggerGlider = 4, + InBlueprintSnappingMode = 5, + InVoxelGridSnappingMode = 6, + WantsToSprint = 7, + IsSprinting = 8, + InTargetLockCombatMode = 9, + QueueFireRangedShot = 10, + HasRangedWeaponFeedbackBeenSent = 11, + IsOutsideSafeZone = 12, + IsInBigDungeon = 13, + HideHelmet = 14, + HideGloves = 15, +}; + +typedef keen::Bitmask16 ecs.PlayerStateMask; + +struct ecs.ParryProjectile { + keen::ecs::EntityId projectileEntityId; // Offset: 0 + keen::actor::SequenceResourceId anticipationSequenceResourceId; // Offset: 4 +}; + +struct ecs.PlayerState { + keen::actor::StateMask previousActorState; // Offset: 0 + keen::Time lastSprintEndTime; // Offset: 8 + keen::Time lastBlockEndTime; // Offset: 16 + keen::Time noMovementInputDuration; // Offset: 24 + keen::Time outsideSafeZoneCountdown; // Offset: 32 + keen::float32 sprintTurnSpeedFactor; // Offset: 40 + keen::ecs::PlayerStateMask playerStateMask; // Offset: 44 + keen::LocaTagId dungeonZoneMapMarkerId; // Offset: 48 + keen::ecs::PlayerInputType rangedWeaponArmedViaInput; // Offset: 52 + keen::ecs::ParryProjectile parryProjectile; // Offset: 56 +}; + +struct ecs.PlayerTracking { + keen::Time levelUpDuration; // Offset: 0 + keen::Time playtimeDuration; // Offset: 8 +}; + +struct ecs.PlayerDebugServer { + keen::Time debugEventTime; // Offset: 0 + keen::Time clientUpdateTime; // Offset: 8 + keen::Time serverRecvTime; // Offset: 16 + keen::Time serverUpdateTime; // Offset: 24 +}; + +struct ecs.PlayerDebugClient { + keen::Time debugEventTime; // Offset: 0 + keen::Time debugEventDelta; // Offset: 8 + keen::Time debugEventMappingDelta; // Offset: 16 +}; + +struct ecs.ClientPlayerStaminaHints { + keen::Time firstSprintUtteranceDelay; // Offset: 0 + keen::Time sprintUtteranceInterval; // Offset: 8 + keen::Time nextUtterance; // Offset: 16 +}; + +struct ecs.PlayerQuestProgressionMode { + keen::bool isInPersonalProgressionMode; // Offset: 0 + keen::uint32 changeCounter; // Offset: 4 +}; + +struct ecs.PlayerPinnedRecipes { + keen::RecipeId pinnedRecipe; // Offset: 0 + keen::HashKey32 questEntryId; // Offset: 4 +}; + +struct ecs.PlayerWaypoint { + keen::bool enabled; // Offset: 0 + keen::WorldPosition waypointPosition; // Offset: 8 +}; + +struct ecs.SkillState { + keen::ecs::EntityId impcatEntity; // Offset: 0 + keen::bool isUnlocked; // Offset: 4 +}; + +typedef keen::uint64 ecs.SkillUnlockMask; + +typedef keen::StaticArray ecs.UnlockedSkillsMask; + +struct ecs.UnlockedSkillNodes { + keen::StaticArray nodes; // Offset: 0 + keen::StaticArray activeSkillImpacts; // Offset: 1024 + keen::uint32 version; // Offset: 2048 +}; + +struct ecs.PlayerSkillsUi { + keen::ecs::UnlockedSkillsMask skillUnlockMasks; // Offset: 0 +}; + +struct ecs.PlayerGroupMember { + keen::Time lastUpdateTime; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct ecs.ServerPlayerGroupMembers { + keen::StaticArray groupMembers; // Offset: 0 +}; + +struct ecs.PickingTarget { + keen::ecs::QueryId rayQueryId; // Offset: 0 + keen::Time nextUpdate; // Offset: 8 +}; + +enum class ecs.CursorFlag { + InvalidCursorTransform = 0, + CursorOutsideBuildingZone = 1, + CursorInsideFogZone = 2, + CursorTooFarAway = 3, + CursorInsideLenientBuildInhibitorZone = 4, + CursorInsideStrictBuildInhibitorZone = 5, + MaxAltarCountReached = 6, + AreaOccupied = 7, + EnemiesNearby = 8, + InvalidSurfaceNormal = 9, + InvalidCursorVoxelMaterial = 10, + MissingMaterials = 11, + ItemNotUnlocked = 12, + NoPermission = 13, + MaxTameAnimalCountReached = 14, +}; + +typedef keen::Bitmask16 ecs.CursorFlags; + +struct ecs.ServerCursor { + keen::ecs::QueryId rayQueryId; // Offset: 0 + keen::ecs::QueryId placementBlockerQueryId; // Offset: 4 + keen::StaticArray solidCollisionsQueryIds; // Offset: 8 + keen::ecs::RangeQueryId enemiesQueryId; // Offset: 16 + keen::float3 pointerInfoPosition; // Offset: 20 + keen::VoxelMaterialId hoveredVoxelMaterialId; // Offset: 32 + keen::WorldTransform secondaryActionTransform; // Offset: 40 + keen::float randomYawAngleOffset; // Offset: 96 + keen::Time snapToPlaneDelay; // Offset: 104 + keen::ecs::EntityId hoverVoxelBlueprintOverlayEntityId; // Offset: 112 +}; + +struct ecs.ClientServerCursor { + keen::WorldTransform transform; // Offset: 0 + keen::ecs::EntityId cursorEntityId; // Offset: 56 + keen::ecs::EntityId hoveredEntityId; // Offset: 60 + keen::ecs::EntityId selectedEntityId; // Offset: 64 + keen::ecs::DismantleMethod selectedEntityDismantleMethod; // Offset: 68 + keen::bool isBlueprintSelected; // Offset: 69 + keen::bool isDismantleAllowed; // Offset: 70 + keen::float3 hoverPosition; // Offset: 72 + keen::float3 hoverNormal; // Offset: 84 + keen::ItemInstanceInfo currentBuildingItemInstance; // Offset: 96 + keen::ItemId previousBuildingItemId; // Offset: 116 + keen::float effectivePlacementVolume; // Offset: 120 + keen::float maxPlacementVolume; // Offset: 124 + keen::ecs::CursorFlags cursorFlagsPrimary; // Offset: 128 + keen::ecs::CursorFlags cursorFlagsSecondary; // Offset: 130 + keen::bool wasLastActionSecondary; // Offset: 132 + keen::bool isSnappingToBoxes; // Offset: 133 + keen::bool isNearBuildingZone; // Offset: 134 + keen::bool canUndoBuildingAction; // Offset: 135 +}; + +struct ecs.ClientCursorVfx { + keen::uint3 position; // Offset: 0 + keen::uint32 fxHandle; // Offset: 12 +}; + +struct ecs.ClientCursor { + keen::Time hoveredEntityHightlightPhase; // Offset: 0 + keen::ecs::EntityId previousSelectedEntityId; // Offset: 8 + keen::Color previousSelectedEntityTintColor; // Offset: 12 + keen::ItemId previousBuildingItemId; // Offset: 16 + keen::HighlightColorIndex highlightColorValid; // Offset: 20 + keen::HighlightColorIndex highlightColorInvalid; // Offset: 21 + keen::HighlightColorIndex highlightColorMuted; // Offset: 22 + keen::StaticArray blueprintHoverVfx; // Offset: 24 +}; + +struct ecs.Terraforming { + keen::ecs::RangeQueryId snappingQueryId; // Offset: 0 + keen::ecs::RangeQueryId temporaryMiningQueryId; // Offset: 4 +}; + +struct ecs.VfxZone { +}; + +struct ecs.Destructible { +}; + +struct ecs.CameraShakeParams { + keen::float32 trauma; // Offset: 0 +}; + +struct ecs.NotifierComponent { + keen::ecs::Offset notifierOffset; // Offset: 0 + keen::NotifierReference notifier; // Offset: 40 + keen::ecs::CameraShakeParams cameraShake; // Offset: 56 + keen::SoundContainerReference sfx; // Offset: 60 + keen::VfxReference vfx; // Offset: 76 +}; + +struct ecs.OnCreate { + keen::AttachmentSlot slot; // Offset: 92 + keen::bool attach; // Offset: 93 +}; + +struct ecs.OnDestroy { + keen::float32 noiseRange; // Offset: 92 + keen::float3 hitDirection; // Offset: 96 +}; + +struct ecs.SpawnEntityOnDestroy { + keen::ecs::TemplateReference spawnEntity; // Offset: 0 + keen::bool keepDespawnLink; // Offset: 16 + keen::bool triggered; // Offset: 17 +}; + +struct ecs.DestroyEntityOnParentRespawn { + keen::bool checkParent; // Offset: 0 +}; + +typedef keen::HashKey32 FogRemovalId; + +struct ecs.FogRemovalIdComponent { + keen::FogRemovalId fogRemovalId; // Offset: 0 +}; + +struct ecs.RemoveFog { +}; + +enum class ecs.EasingType { + Linear = 0, + QuadraticIn = 1, + CubicIn = 2, + QuadraticOut = 3, + CubicOut = 4, + Count = 5, +}; + +struct ecs.Dissolve { + keen::float3 rotationOriginOffset; // Offset: 0 + keen::float32 yOffset; // Offset: 12 + keen::Time duration; // Offset: 16 + keen::float32 rotationAngle; // Offset: 24 + keen::bool calculateOffsets; // Offset: 28 + keen::ecs::EasingType dissolveEasing; // Offset: 29 + keen::ecs::EasingType translationEasing; // Offset: 30 + keen::ecs::EasingType rotationEasing; // Offset: 31 +}; + +struct ecs.DynamicDissolve { + keen::Time startTime; // Offset: 0 + keen::ecs::EntityId alignmentTarget; // Offset: 8 + keen::bool started; // Offset: 12 +}; + +struct ecs.ClientDissolve { + keen::uint32 renderModelUpdateCounter; // Offset: 0 + keen::float32 modelCenter; // Offset: 4 + keen::float32 boundingBoxHeight; // Offset: 8 + keen::float32 dissolveEdgeBrightness; // Offset: 12 +}; + +enum class ecs.FadeState { + Visible = 0, + FadeIn = 1, + FadeOut = 2, + Invisible = 3, +}; + +struct ecs.Fade { + keen::Time duration; // Offset: 0 + keen::float3 dissolveMaskOffset; // Offset: 8 + keen::float32 dissolveMaskRadius; // Offset: 20 + keen::float32 dissolveEdgeBrightness; // Offset: 24 + keen::ecs::FadeState initialState; // Offset: 28 +}; + +struct ecs.DynamicFade { + keen::Time startTime; // Offset: 0 + keen::ecs::FadeState state; // Offset: 8 +}; + +struct ecs.ActorInput { + keen::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 0 + keen::actor::ActionSequenceTriggerContext triggerContext; // Offset: 8 + keen::uint8 triggerCallCounter; // Offset: 232 + keen::uint32 sequenceTriggerId; // Offset: 236 + keen::float3 desiredLocalMoveInput; // Offset: 240 + keen::float3 desiredWorldMoveInput; // Offset: 252 + keen::float3 desiredWorldLookDirection; // Offset: 264 + keen::ecs::LocomotionSpeedSelector locomotionSpeed; // Offset: 276 + keen::ecs::LocomotionSpeedSelector lastLocomotionSpeed; // Offset: 277 +}; + +struct ecs.FlapSetup { + keen::Time minFlapDuration; // Offset: 0 + keen::Time maxFlapDuration; // Offset: 8 + keen::Time minFlapPauseDuration; // Offset: 16 + keen::Time maxFlapPauseDuration; // Offset: 24 +}; + +struct ecs.Flying { + keen::float32 maxAcceleration; // Offset: 0 + keen::actor::ActorSequenceReference startFlyingSequence; // Offset: 4 + keen::actor::ActorSequenceReference stopFlyingSequence; // Offset: 20 + keen::actor::ActorSequenceReference flyingSequence; // Offset: 36 + keen::actor::ActorSequenceReference hoverSequence; // Offset: 52 + keen::actor::ActorSequenceReference flappingSequence; // Offset: 68 + keen::actor::ActorSequenceReference hitInAirSequence; // Offset: 84 + keen::actor::ActorSequenceReference stuckOnGroundSequence; // Offset: 100 + keen::ecs::FlapSetup flapSetup; // Offset: 120 + keen::bool useFlyAnimationHandling; // Offset: 152 + keen::bool fallOnHit; // Offset: 153 + keen::bool fallOnParryStun; // Offset: 154 + keen::bool flyAfterSpawn; // Offset: 155 +}; + +enum class ecs.FlyingState { + None = 0, + NotFlying = 1, + Flying = 2, + Flapping = 3, + Hovering = 4, + StartFlying = 5, + StopFlying = 6, + Fall = 7, + StuckOnGround = 8, +}; + +struct ecs.DynamicFlying { + keen::ecs::FlyingState state; // Offset: 0 + keen::Time nextCheckFlappingTime; // Offset: 8 + keen::bool isSequenceHandlingPaused; // Offset: 16 + keen::bool wasSequenceHandlingPaused; // Offset: 17 + keen::bool isFlappingAllowed; // Offset: 18 + keen::bool fallOnDeath; // Offset: 19 +}; + +struct ecs.CSPDummy { +}; + +struct ecs.SlotAttachmentBase { + keen::ecs::Offset offset; // Offset: 0 + keen::AttachmentSlot attachmentSlot; // Offset: 40 + keen::ecs::EntityId attachedToEntityId; // Offset: 44 +}; + +struct ecs.ServerSlotAttachment { +}; + +struct ecs.SlotAttachment { +}; + +struct ecs.Friction { + keen::bool isSliding; // Offset: 0 + keen::float32 frictionFactor; // Offset: 4 +}; + +struct ecs.RotationSpeedEntry { + keen::float32 rotationSpeed; // Offset: 0 + keen::actor::InterpolationMode interpolationMode; // Offset: 4 +}; + +struct ecs.ActorRotation { + keen::ecs::RotationSpeedEntry standingRotationSpeed; // Offset: 0 + keen::ecs::RotationSpeedEntry movingRotationSpeed; // Offset: 8 + keen::ecs::RotationSpeedEntry runningRotationSpeed; // Offset: 16 + keen::ecs::RotationSpeedEntry slidingRotationSpeed; // Offset: 24 + keen::ecs::RotationSpeedEntry inAirRotationSpeed; // Offset: 32 + keen::ecs::RotationSpeedEntry dodgingAroundTargetRotationSpeed; // Offset: 40 + keen::ecs::RotationSpeedEntry hookPullingRotationSpeed; // Offset: 48 + keen::ecs::RotationSpeedEntry hookSwingingRotationSpeed; // Offset: 56 + keen::ecs::RotationSpeedEntry climbingRotationSpeed; // Offset: 64 + keen::ecs::RotationSpeedEntry gliderRotationSpeed; // Offset: 72 + keen::float32 minLinearAxisRotationAngle; // Offset: 80 +}; + +enum class ecs.LocomotionState { + Walking = 0, + Sliding = 1, + Falling = 2, + Flying = 3, + HangGliding = 4, + HookPulling = 5, + HookSwinging = 6, + ClimbingWall = 7, + ClimbingLadder = 8, +}; + +enum class ecs.LocomotionFlags { + LveRunning = 0, + Sprinting = 1, + OffBalance = 2, + MovingTowardsHole = 3, + AirwolfActive = 4, + IsUpdraftDepleted = 5, + WantsToMove = 6, +}; + +typedef keen::Bitmask8 ecs.LocomotionMask; + +struct ecs.LocomotionAccelerationConfig { + keen::float32 minTurnAngle; // Offset: 0 + keen::float32 maxWalkAcceleration; // Offset: 4 + keen::float32 maxRunAcceleration; // Offset: 8 + keen::float32 maxSprintAcceleration; // Offset: 12 + keen::float32 groundFrictionSusceptibility; // Offset: 16 +}; + +struct ecs.LocomotionSlideConfig { + keen::float32 downhillAccelerationFactor; // Offset: 0 + keen::float32 downhillAcceleration; // Offset: 4 + keen::float32 lateralAcceleration; // Offset: 8 + keen::float32 uphillAcceleration; // Offset: 12 + keen::float32 maxUphillSpeed; // Offset: 16 +}; + +struct ecs.LocomotionTurnConfig { + keen::bool useTurnSequences; // Offset: 0 + keen::Angle minTurnAngle; // Offset: 4 + keen::float32 minVelocity; // Offset: 8 + keen::Time minRequiredVelocityDuration; // Offset: 16 + keen::Time minTimeSinceRequiredVelocityWasReached; // Offset: 24 + keen::actor::ActorSequenceReference leftTurnSequence; // Offset: 32 + keen::actor::ActorSequenceReference rightTurnSequence; // Offset: 48 +}; + +struct ecs.LocomotionAvoidHolesConfig { + keen::bool avoidHoles; // Offset: 0 + keen::float32 checkLength; // Offset: 4 + keen::float32 minHoleDepth; // Offset: 8 +}; + +struct ecs.Locomotion { + keen::ecs::LocomotionAccelerationConfig accelerationConfig; // Offset: 0 + keen::ecs::LocomotionSlideConfig slideConfig; // Offset: 20 + keen::ecs::LocomotionTurnConfig turnConfig; // Offset: 40 + keen::ecs::LocomotionAvoidHolesConfig avoidHolesConfig; // Offset: 104 +}; + +enum class ecs.JumpRuntimeType { + Default = 0, + Double = 1, + Sprint = 2, + Glider = 3, + HookSwingDefaultExit = 4, + HookSwingSprintExit = 5, + LadderClimbing = 6, + FreeClimbing = 7, + Slide = 8, + Attack = 9, +}; + +struct ecs.GliderTurbulence { + keen::float3 direction; // Offset: 0 + keen::float32 intensity; // Offset: 12 + keen::Time remainingDuration; // Offset: 16 +}; + +struct ecs.DynamicLocomotion { + keen::float3 inputVelocity; // Offset: 0 + keen::float3 floorNormal; // Offset: 12 + keen::float3 slopeNormal; // Offset: 24 + keen::actor::MovementFactors movementFactors; // Offset: 36 + keen::float3 rootMotion; // Offset: 48 + keen::animationgraph::RootMotionMask rootMotionMode; // Offset: 60 + keen::ecs::LocomotionState state; // Offset: 61 + keen::Time lastStateSwitchTime; // Offset: 64 + keen::Time slideDetected; // Offset: 72 + keen::Time takeOffTime; // Offset: 80 + keen::Time spheroidCollisionDuration; // Offset: 88 + keen::float32 rotationSpeedFactor; // Offset: 96 + keen::bool isGliderForwardInputDeliberate; // Offset: 100 + keen::bool isNearGround; // Offset: 101 + keen::bool wasTurning; // Offset: 102 + keen::Time sprintJumpRunUpTimer; // Offset: 104 + keen::Time airwolfTimer; // Offset: 112 + keen::ecs::LocomotionMask flags; // Offset: 120 + keen::bool isFastEnoughForTurn; // Offset: 121 + keen::Time speedForTurnSequenceReachedStartTime; // Offset: 128 + keen::Time speedForTurnSequenceReachedEndTime; // Offset: 136 + keen::float slideJumpAirControlSpeed; // Offset: 144 + keen::actor::JumpType jumpType; // Offset: 148 + keen::uint8 jumpCount; // Offset: 149 + keen::WorldPosition previousJumpTakeOffPosition; // Offset: 152 + keen::float airControlMinVelocity; // Offset: 176 + keen::float airControlMaxVelocity; // Offset: 180 + keen::float frictionFactor; // Offset: 184 + keen::float effectiveMovementMod; // Offset: 188 + keen::float gliderUpstreamFactor; // Offset: 192 + keen::ecs::GliderTurbulence gliderTurbulence; // Offset: 200 +}; + +struct ecs.NetworkLocomotion { + keen::bool hasSlideAnimations; // Offset: 0 + keen::bool hasJumpAnimations; // Offset: 1 + keen::bool hasWalkAnimations; // Offset: 2 + keen::bool hasMoveAnimation; // Offset: 3 + keen::bool leanTowardsMoveDirection; // Offset: 4 + keen::float leanFactor; // Offset: 8 + keen::float maxLeanYawAngle; // Offset: 12 + keen::float maxLeanPitchAngle; // Offset: 16 + keen::float leanFadeOutSpeedFactor; // Offset: 20 + keen::float minLeanYawInterpolationSpeed; // Offset: 24 + keen::float maxLeanYawInterpolationSpeed; // Offset: 28 + keen::float leanYawSpeedInterpolationStartAngle; // Offset: 32 + keen::float leanYawSpeedInterpolationEndAngle; // Offset: 36 + keen::float leanPitchInterpolationSpeed; // Offset: 40 + keen::float leanYawStartAngle; // Offset: 44 + keen::Angle pitchAngleOffset; // Offset: 48 +}; + +struct ecs.DynamicNetworkLocomotion { + keen::float3 floorNormal; // Offset: 0 + keen::float3 desiredWorldLookDirection; // Offset: 12 + keen::float3 desiredLeanDirection; // Offset: 24 + keen::ecs::LocomotionState state; // Offset: 36 + keen::ecs::LocomotionMask flags; // Offset: 37 + keen::animationgraph::StateIdHash currentIdleAnimation; // Offset: 40 + keen::animationgraph::StateIdHash currentWalkAnimation; // Offset: 44 + keen::float32 gliderTurbulenceScreenShakeIntensity; // Offset: 48 +}; + +struct ecs.ClientLocomotion { + keen::float32 runSpeed; // Offset: 0 + keen::float32 sprintSpeed; // Offset: 4 + keen::float32 currentLocalRollAngle; // Offset: 8 + keen::float32 currentLocalPitchAngle; // Offset: 12 + keen::float32 currentLocalYawAngle; // Offset: 16 + keen::float32 currentLeanYawAngle; // Offset: 20 + keen::float32 currentLeanPitchAngle; // Offset: 24 + keen::float32 lastAnimationInputSpeed; // Offset: 28 +}; + +struct ecs.GliderUpstreamZone { +}; + +struct ecs.JumpParameters { + keen::float32 jumpDistance; // Offset: 0 + keen::float32 jumpHeight; // Offset: 4 + keen::Quaternion launchOffset; // Offset: 8 +}; + +struct ecs.SlopeAlignment { + keen::float32 defaultLongitudinalFactor; // Offset: 0 + keen::float32 defaultLateralFactor; // Offset: 4 + keen::float32 currentLongitudinalFactor; // Offset: 8 + keen::float32 currentLateralFactor; // Offset: 12 +}; + +struct ecs.BaseActor { + keen::actor::ActionSequence currentAction; // Offset: 0 + keen::actor::StateMask currentState; // Offset: 2048 + keen::actor::AbilityMask currentAbilityMask; // Offset: 2056 + keen::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 2064 +}; + +struct ecs.ServerActionSequenceData { + keen::actor::SequenceRuntimeId sequenceId; // Offset: 0 + keen::actor::SignalStates signalStates; // Offset: 24 + keen::actor::ColliderModeData colliderModeOverride; // Offset: 152 + keen::actor::RotationInterpolation rotationInterpolation; // Offset: 168 + keen::Time rotationInterpolationStartTime; // Offset: 224 + keen::Time rotationInterpolationEndTime; // Offset: 232 + keen::animationgraph::StateIdHash animationStateId; // Offset: 240 + keen::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 244 + keen::ecs::EntityId lastSpawnedEntityId; // Offset: 248 + keen::ecs::EntityId stopEntityId; // Offset: 252 + keen::float3 positionLerpEnd; // Offset: 256 + keen::Time positionLerpDuration; // Offset: 272 + keen::Time positionLerpTime; // Offset: 280 + keen::Quaternion orientationLerpEnd; // Offset: 288 + keen::Time orientationLerpDuration; // Offset: 304 + keen::Time orientationLerpTime; // Offset: 312 + keen::actor::MovementFactors movementFactors; // Offset: 320 + keen::actor::MovementFactors movementFactorsLerpStart; // Offset: 332 + keen::actor::MovementFactors movementFactorsLerpEnd; // Offset: 344 + keen::Time movementFactorsLerpDuration; // Offset: 360 + keen::Time movementFactorsLerpTime; // Offset: 368 + keen::float32 rotationSpeedFactor; // Offset: 376 + keen::float32 rotationFactorLerpStart; // Offset: 380 + keen::float32 rotationFactorLerpEnd; // Offset: 384 + keen::Time rotationFactorLerpDuration; // Offset: 392 + keen::Time rotationFactorLerpTime; // Offset: 400 + keen::float32 gravityModifier; // Offset: 408 + keen::bool isGravityModified; // Offset: 412 +}; + +struct ecs.Actor { + keen::ecs::ServerActionSequenceData currentServerAction; // Offset: 2088 + keen::actor::ActorSequenceReference deathSequence; // Offset: 2504 + keen::bool deathSequenceWaitsForGroundedState; // Offset: 2520 + keen::bool defaultVisibleState; // Offset: 2521 + keen::bool sendDeathEvent; // Offset: 2522 + keen::actor::SequenceResourceId deathSequenceId; // Offset: 2524 + keen::ecs::ColliderMode currentColliderMode; // Offset: 2528 + keen::actor::RotationInterpolation rotationInterpolation; // Offset: 2532 +}; + +struct ecs.DisableColliderModeChanges { +}; + +struct ecs.NetworkActor { + keen::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::actor::AbilityMask currentAbilityMask; // Offset: 24 + keen::actor::StateMask currentState; // Offset: 32 + keen::ecs::EntityId interactionHostId; // Offset: 40 + keen::StaticArray currentActionEntityTags; // Offset: 44 + keen::ItemId usedItemId; // Offset: 108 + keen::actor::ActionSequenceState currentActionState; // Offset: 112 +}; + +struct ecs.ClientActor { + keen::actor::SequenceRuntimeId lastReceivedSequenceRuntimeId; // Offset: 2088 +}; + +struct ecs.SimpleActorInput { + keen::actor::ActorSequenceReference sequence; // Offset: 0 + keen::ItemReference usedItem; // Offset: 16 + keen::bool loop; // Offset: 32 +}; + +struct ecs.SimpleToggleActor { + keen::ecs::SimpleActorInput on; // Offset: 0 + keen::ecs::SimpleActorInput off; // Offset: 36 +}; + +struct ecs.DynamicSimpleToggleActor { + keen::Time triggerTime; // Offset: 0 +}; + +enum class ecs.TrapState { + Armed = 0, + Disarmed = 1, + Triggered = 2, +}; + +enum class impact.AttackCategory { + Melee = 0, + Ranged = 1, + Magic = 2, + Tool = 3, + Other = 4, + AoE = 5, + SkillShot = 6, +}; + +typedef keen::Bitmask8 impact.AttackCategoryMask; + +struct ecs.SimpleTrapActor { + keen::ecs::SimpleActorInput onTriggerEnter; // Offset: 0 + keen::ecs::SimpleActorInput onTriggerLeave; // Offset: 36 + keen::ecs::SimpleActorInput onArm; // Offset: 72 + keen::ecs::SimpleActorInput onDisarm; // Offset: 108 + keen::Time triggerCooldownTime; // Offset: 144 + keen::bool triggerOnHit; // Offset: 152 + keen::impact::AttackCategoryMask disabledDamageTypes; // Offset: 153 + keen::animationgraph::StateIdReference idleArmedAnimation; // Offset: 156 + keen::animationgraph::StateIdReference idleDisarmedAnimation; // Offset: 172 +}; + +struct ecs.DynamicSimpleTrapActor { + keen::Time lastArmedTime; // Offset: 0 + keen::ecs::TrapState state; // Offset: 8 +}; + +struct ecs.TeleportZone { + keen::ecs::EntityTagReference zoneTag; // Offset: 0 +}; + +struct ecs.TeleportZoneConnection { + keen::LocaTagId teleporterId; // Offset: 0 + keen::LocaTagId targetTeleporterId; // Offset: 4 +}; + +struct ecs.Teleport { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 56 + keen::bool applied; // Offset: 60 + keen::bool searchBestSpawnPosition; // Offset: 61 +}; + +struct ecs.FallDamage { + keen::float32 fallDamageStartDistance; // Offset: 0 + keen::float32 fallDamageLethalDistance; // Offset: 4 + keen::actor::ActorSequenceReference fallDamageSequence; // Offset: 8 +}; + +struct ecs.DynamicFallDamage { + keen::bool wasFalling; // Offset: 0 + keen::bool resetFallAltitudeOnApex; // Offset: 1 + keen::float32 fallStartAltitude; // Offset: 4 + keen::float32 detectedFallDistance; // Offset: 8 + keen::float32 detectedFallDamagePercentage; // Offset: 12 +}; + +struct ecs.ServerCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::CameraId lockedCameraId; // Offset: 1 + keen::Time unlockTime; // Offset: 8 + keen::CameraOverride cameraOverride; // Offset: 16 + keen::Time overrideEndTime; // Offset: 24 +}; + +struct ecs.NetworkCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::CameraId lockedCameraId; // Offset: 1 + keen::CameraOverride cameraOverride; // Offset: 2 +}; + +struct ecs.ClientCameraControl { + keen::CameraId activeCameraId; // Offset: 0 + keen::float32 idleCameraTriggerDelay; // Offset: 4 + keen::float32 buildingCameraSwitchDelay; // Offset: 8 + keen::float32 hipfireCameraSwitchDelay; // Offset: 12 + keen::WorldPosition entityCameraPosition; // Offset: 16 + keen::Quaternion entityCameraOrientation; // Offset: 40 +}; + +enum class ecs.LockedTargetFlags { + Static = 0, + Updated = 1, + VelocityUpdated = 2, + SupportsHardLock = 3, + WasHit = 4, +}; + +struct ecs.TargetSelector { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 range; // Offset: 4 + keen::Time time; // Offset: 8 +}; + +enum class ecs.TargetImportance { + None = 0, + VeryLow = 1, + Low = 2, + Normal = 3, + High = 4, + VeryHigh = 5, +}; + +struct ecs.TargetInfo { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ecs::Offset targetingOffset; // Offset: 56 + keen::ecs::EntityId targetId; // Offset: 96 + keen::ecs::TargetImportance targetImportance; // Offset: 100 + keen::ecs::ColliderId colliderId; // Offset: 104 + keen::uint16 changeCounter; // Offset: 112 + keen::Bitmask8 flags; // Offset: 114 +}; + +struct ecs.SelectedTargets { + keen::StaticArray targets; // Offset: 0 + keen::actor::SequenceResourceId interactionSequencePredictionHelper; // Offset: 1920 +}; + +struct ecs.NetworkSelectedTargets { + keen::StaticArray targetIds; // Offset: 0 + keen::bool combatTargetSupportsHardLock; // Offset: 64 +}; + +struct ecs.ParentTargets { +}; + +struct ecs.ServerTarget { + keen::bool hardLockTarget; // Offset: 0 + keen::ecs::TargetImportance targetImportance; // Offset: 1 +}; + +struct ecs.HardLockTarget { +}; + +struct ecs.ClearPathToTarget { + keen::float32 yOffset; // Offset: 0 + keen::ecs::QueryId queryId; // Offset: 4 + keen::bool hasHitSolidCollider; // Offset: 8 + keen::bool hasHitSteeringCollider; // Offset: 9 +}; + +struct ecs.Loot { + keen::ItemId itemId; // Offset: 0 + keen::bool awaitingDestroy; // Offset: 4 +}; + +struct ecs.Orb { + keen::NotifierReference pickupNotifier; // Offset: 0 + keen::ecs::TemplateReference pickupTemplate; // Offset: 16 + keen::ImpactProgramReference program; // Offset: 32 + keen::bool awaitingDestroy; // Offset: 48 + keen::SoundContainerReference sfx; // Offset: 52 + keen::VfxReference vfx; // Offset: 68 +}; + +struct ecs.SceneLootNodeId { + keen::LootContainerId id; // Offset: 0 +}; + +struct ecs.RandomLoot { + keen::ObjectReference defaultLabels; // Offset: 0 +}; + +struct ecs.RandomLootProbability { + keen::float32 spawnProbability; // Offset: 0 +}; + +struct ecs.RandomLootSlotCount { + keen::uint8 slotsMin; // Offset: 0 + keen::uint8 slotsMax; // Offset: 1 +}; + +struct ecs.RandomLootContainer { + keen::uint32 spawnedLootVersion; // Offset: 0 + keen::LootContainerId parentNodeId; // Offset: 4 + keen::LootContainerId defaultLabelsId; // Offset: 8 +}; + +struct ecs.RandomLootPlayerScale { + keen::uint8 playerCount; // Offset: 0 +}; + +struct ecs.RandomLootLock { +}; + +struct ecs.PickupLootSlot { + keen::ecs::TemplateReference genericPickupItem; // Offset: 0 + keen::ecs::EntityId spawnedPickupEntity; // Offset: 16 +}; + +struct ecs.RandomLootInventory { +}; + +struct ecs.RandomLootOnDestroy { + keen::bool triggered; // Offset: 0 +}; + +struct ecs.DisableRandomLootOnDestroy { +}; + +struct ecs.RandomLootEntitySpawner { + keen::ecs::TemplateReference lootEntity; // Offset: 0 + keen::ecs::EntityId spawnedEntityId; // Offset: 16 +}; + +struct ecs.LocaTagComponent { + keen::LocaTagReference locaTag; // Offset: 0 +}; + +struct LocaTag { + keen::string keenglish; // Offset: 0 + keen::string description; // Offset: 8 +}; + +typedef keen::LocaTag ecs.MapMarkerLocaTag; + +typedef keen::ObjectReference MapMarkerTypeReference; + +struct ecs.MapMarker { + keen::LocaTagReference markerId; // Offset: 0 + keen::MapMarkerTypeReference markerType; // Offset: 16 + keen::float rangeScale; // Offset: 32 +}; + +enum class ecs.MapMarkerVisibilityType { + Hidden = 0, + Hint = 1, + Visible = 2, + Completed = 3, +}; + +typedef keen::Bitmask8 ecs.MapMarkerVisibilityStateMask; + +struct ecs.MapMarkerVisibilityState { + keen::ecs::MapMarkerVisibilityType visibility; // Offset: 0 + keen::Time lastChange; // Offset: 8 + keen::uint16 knowledgeChangeCounter; // Offset: 16 +}; + +struct ecs.MapMarkerToggleState { + keen::ecs::MapMarkerVisibilityStateMask visibilityMap; // Offset: 0 +}; + +struct ecs.Location { + keen::ecs::LocalPlayerMask isInLocation; // Offset: 0 +}; + +struct ecs.IsPlayerInRange { + keen::bool onlyPlayer; // Offset: 0 + keen::actor::StateMask ignoreStates; // Offset: 8 + keen::Time updateDelay; // Offset: 16 + keen::float32 deactivateRange; // Offset: 24 + keen::float32 minRange; // Offset: 28 +}; + +struct ecs.DynamicIsPlayerInRange { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::ecs::EntityId closestActorId; // Offset: 4 + keen::Time startTime; // Offset: 8 +}; + +enum class ecs.ToggleType { + On = 0, + Off = 1, +}; + +typedef keen::Bitmask8 ecs.ToggleMask; + +struct ecs.ToggleInShape { + keen::ecs::ToggleMask ignoreState; // Offset: 0 +}; + +struct ecs.InertialFrame { + keen::float3 velocity; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SlopeDefinition { + keen::Angle steepFloorAngle; // Offset: 0 + keen::Angle slidingAngle; // Offset: 4 + keen::Angle fallDamageAngle; // Offset: 8 + keen::Angle slidingMaterialMinAngle; // Offset: 12 +}; + +struct ecs.SlopeConfig { + keen::SlopeDefinition slopeDefinition; // Offset: 0 + keen::ObjectReference slopeDefinitionObject; // Offset: 16 +}; + +enum class ecs.HookShotType { + None = 0, + PullTarget = 1, + PullSelf = 2, + SwingSelf = 3, + Count = 4, + Auto = 4, +}; + +struct ecs.PlayerFx { + keen::ecs::EntityId fxEntityId; // Offset: 0 + keen::ecs::EntityId attachEntityId; // Offset: 4 +}; + +struct ecs.PlayerFxSpawner { + keen::ecs::PlayerFx hookShotTargetFx; // Offset: 0 + keen::ecs::PlayerFx hookShotRopeFx; // Offset: 8 + keen::ecs::PlayerFx gliderUpstreamFx; // Offset: 16 +}; + +enum class ecs.HookShotState { + Invalid = 0, + Enter = 1, + Update = 2, + Exit = 3, +}; + +struct ecs.HookShot { + keen::ecs::EntityId triggerAnchorEntityId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::actor::ActionSequenceTrigger sequenceTrigger; // Offset: 16 + keen::ItemInstanceInfo triggerItemInstance; // Offset: 20 + keen::ecs::HookShotType hookShotType; // Offset: 40 + keen::ecs::HookShotState hookShotState; // Offset: 41 + keen::actor::SequenceResourceId sequenceResourceId; // Offset: 44 + keen::actor::SequenceRuntimeId sequenceId; // Offset: 48 + keen::ecs::EntityId anchorEntityId; // Offset: 72 + keen::WorldPosition anchorPosition; // Offset: 80 + keen::float3 hookPullActorTargetOffset; // Offset: 104 + keen::float3 hookPullAnchorNormal; // Offset: 116 + keen::float3 hookPullOriginalVelocity; // Offset: 128 + keen::float3 hookSwingOriginalHorizontalDirection; // Offset: 140 + keen::Time hookSwingEndTime; // Offset: 152 + keen::float32 hookSwingRopeLength; // Offset: 160 + keen::bool isEnemyHookAnchor; // Offset: 164 + keen::bool useHookShotCamera; // Offset: 165 + keen::bool hasTouchedGroundAfterHook; // Offset: 166 +}; + +struct ecs.ClientHookShot { + keen::Time triggerTime; // Offset: 0 + keen::WorldPosition anchorPosition; // Offset: 8 + keen::bool useHookShotCamera; // Offset: 32 + keen::ecs::HookShotType hookShotType; // Offset: 33 +}; + +struct ecs.HookShotDiscoverMemory { + keen::StaticArray entityIds; // Offset: 0 + keen::uint16 discoveredMask; // Offset: 64 +}; + +struct ecs.HookShotInteractionOffer { + keen::WorldTransform targetTransform; // Offset: 0 + keen::float3 actorTargetOffset; // Offset: 56 + keen::uint32 anchorEntityLevel; // Offset: 68 + keen::ecs::HookShotType hookShotType; // Offset: 72 + keen::uint8 index; // Offset: 73 + keen::bool hasPriority; // Offset: 74 +}; + +struct ecs.HookShotTargeting { + keen::ecs::HookShotInteractionOffer bestInteractionOffer; // Offset: 0 + keen::ecs::HookShotDiscoverMemory discoverMemory; // Offset: 80 +}; + +struct ecs.HookShotAnchor { + keen::ecs::HookShotType hookShotType; // Offset: 0 + keen::float3 targetOffset; // Offset: 4 +}; + +struct ecs.HookShotAnchorSubEntity { + keen::ecs::TemplateReference anchorEntityTemplate; // Offset: 0 + keen::ecs::Offset attachmentOffset; // Offset: 16 +}; + +struct ecs.HookPullImpulse { + keen::ecs::ImpulseData impulseData; // Offset: 0 + keen::ecs::EntityId pullingEntityId; // Offset: 32 +}; + +enum class ecs.ClimbType { + Invalid = 0, + Wall = 1, + Ladder = 2, +}; + +enum class ecs.ClimbState { + Invalid = 0, + Enter = 1, + Climb = 2, + Exit = 3, +}; + +enum class ecs.LadderQueryType { + StepUp = 0, + StepDown = 1, + ExitTop = 2, + Count = 3, +}; + +struct ecs.LadderQuery { + keen::ecs::QueryId queryId; // Offset: 0 + keen::bool isValid; // Offset: 4 + keen::bool enable; // Offset: 5 +}; + +struct ecs.Climb { + keen::ecs::ClimbType climbType; // Offset: 0 + keen::ecs::ClimbState climbState; // Offset: 1 + keen::float3 climbNormal; // Offset: 4 + keen::Time climbBlockingTimeEnd; // Offset: 16 + keen::StaticArray ladderCollisionQueries; // Offset: 24 + keen::ecs::EntityId ladderEntityId; // Offset: 48 + keen::ecs::RangeQueryId laddersQueryId; // Offset: 52 + keen::bool ladderStepPhase; // Offset: 56 +}; + +struct ecs.Ladder { + keen::float3 topOffset; // Offset: 0 + keen::float3 bottomOffset; // Offset: 12 + keen::float3 normal; // Offset: 24 +}; + +struct ecs.LerpTransformData { + keen::ecs::LerpTransformTarget target; // Offset: 0 + keen::Time localTime; // Offset: 8 + keen::Time duration; // Offset: 16 +}; + +struct ecs.LerpTransform { + keen::StaticArray targetTransforms; // Offset: 0 + keen::ecs::LerpTransformData positionLerpData; // Offset: 168 + keen::ecs::LerpTransformData orientationLerpData; // Offset: 192 +}; + +struct ecs.BasicSpawnerComponent { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct ecs.TriggerSpawner { + keen::bool isTriggered; // Offset: 16 + keen::ecs::EntityId spawnedEntityId; // Offset: 20 + keen::Time spawnTimeout; // Offset: 24 + keen::Time nextAllowedSpawnTime; // Offset: 32 +}; + +struct ecs.TriggerBoxMultiSpawner { + keen::bool linkDestroyToEventSender; // Offset: 16 + keen::bool randomizeOrientation; // Offset: 17 + keen::Time lastTriggerTime; // Offset: 24 + keen::float32 minDistanceToEventSender; // Offset: 32 +}; + +enum class ecs.SpawnTarget { + SpawnerCenter = 0, + Player = 1, +}; + +enum class ecs.SpawnMode { + Random = 0, + Grouped = 1, +}; + +enum class ecs.SpawnOrientationMode { + LookAtTarget = 0, + LookAwayFromTarget = 1, + LookAtPlayer = 2, +}; + +enum class ecs.SpawnCondition { + IsDay = 0, + IsNight = 1, +}; + +typedef keen::Bitmask8 ecs.SpawnConditionFlags; + +struct ecs.SpawnGroupId { +}; + +struct ecs.SpawnGroup { + keen::ObjectReference spawnGroupId; // Offset: 0 + keen::uint8 minSpawnAmount; // Offset: 16 + keen::uint8 maxSpawnAmount; // Offset: 17 + keen::float weight; // Offset: 20 +}; + +struct ecs.SpawnerEntry { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 + keen::ObjectReference spawnGroupId; // Offset: 16 + keen::ecs::SpawnConditionFlags spawnConditions; // Offset: 32 + keen::float weight; // Offset: 36 +}; + +struct ecs.SpawnPositionSettings { + keen::float horizontalSearchDistance; // Offset: 0 + keen::float verticalSearchDistance; // Offset: 4 + keen::float minHorizontalSpace; // Offset: 8 + keen::float minVerticalSpace; // Offset: 12 + keen::ecs::PathNodeRequirements nodeRequirements; // Offset: 16 + keen::ecs::PathGridType pathGridType; // Offset: 20 +}; + +struct ecs.RandomSpawner { + keen::BlobArray spawnEntries; // Offset: 0 + keen::BlobArray spawnGroups; // Offset: 8 + keen::float32 minSpawnRange; // Offset: 16 + keen::float32 maxSpawnRange; // Offset: 20 + keen::Time initialSpawnTimeout; // Offset: 24 + keen::Time minSpawnTimeout; // Offset: 32 + keen::Time maxSpawnTimeout; // Offset: 40 + keen::uint8 minSpawnAmount; // Offset: 48 + keen::uint8 maxSpawnAmount; // Offset: 49 + keen::Time minSpawnDelay; // Offset: 56 + keen::Time maxSpawnDelay; // Offset: 64 + keen::uint8 maxTotalSpawnCount; // Offset: 72 + keen::bool destroyOnSpawnFinished; // Offset: 73 + keen::ecs::SpawnMode spawnMode; // Offset: 74 + keen::ecs::SpawnTarget spawnTarget; // Offset: 75 + keen::ecs::SpawnOrientationMode spawnOrientationMode; // Offset: 76 + keen::float32 minEntityDistance; // Offset: 80 + keen::float32 maxEntityDistance; // Offset: 84 + keen::float32 maxSpawnAngle; // Offset: 88 + keen::bool waitUntilEntitiesAreDestroyed; // Offset: 92 + keen::bool allowRespawn; // Offset: 93 + keen::bool useKeepAliveConditions; // Offset: 94 + keen::bool searchForGroundPosition; // Offset: 95 + keen::ecs::SpawnPositionSettings spawnPositionSettings; // Offset: 96 + keen::bool spawnAsUnitGroup; // Offset: 120 + keen::bool despawnEntities; // Offset: 121 + keen::bool checkDeathState; // Offset: 122 + keen::float32 conditionalDespawnMinRange; // Offset: 124 + keen::float32 defaultDespawnMinRange; // Offset: 128 + keen::bool useUpScaling; // Offset: 132 + keen::bool useDownScaling; // Offset: 133 + keen::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 134 +}; + +struct ecs.RandomSpawnerCommand { + keen::Time spawnTime; // Offset: 0 + keen::ecs::Transform transform; // Offset: 8 + keen::uint8 spawnEntryIndex; // Offset: 36 + keen::bool isAdditionalScalingCommand; // Offset: 37 +}; + +struct ecs.DynamicRandomSpawner { + keen::Time nextSpawnTime; // Offset: 0 + keen::ecs::EntityId currentGroupId; // Offset: 8 + keen::StaticArray spawnedEntities; // Offset: 12 + keen::StaticArray spawnCommands; // Offset: 48 + keen::bool wasSpawnedEntityAlive; // Offset: 528 + keen::bool wasAnySpawnedEntityKilled; // Offset: 529 + keen::uint8 totalSpawnCount; // Offset: 530 + keen::uint8 spawnCommandCount; // Offset: 531 + keen::Time trySpawnDuration; // Offset: 536 +}; + +struct ecs.ConditionalDespawn { + keen::float32 conditionalDespawnMinRange; // Offset: 0 + keen::float32 defaultDespawnMinRange; // Offset: 4 + keen::ecs::SpawnConditionFlags keepAliveConditions; // Offset: 8 + keen::Time nextQueryUpdateTime; // Offset: 16 +}; + +struct ecs.ClientToggleFromActorState { + keen::ecs::EntityReferenceType entityReferenceType; // Offset: 0 + keen::actor::StateMask setIf; // Offset: 8 + keen::actor::StateMask setIfNot; // Offset: 16 +}; + +struct ecs.NetworkHealth { + keen::uint32 health; // Offset: 0 + keen::uint32 healthMax; // Offset: 4 +}; + +struct ecs.NetworkStamina { + keen::uint16 stamina; // Offset: 0 + keen::uint16 staminaMax; // Offset: 2 +}; + +struct ecs.NetworkLevel { + keen::uint16 level; // Offset: 0 +}; + +struct ecs.NetworkServerProgress { + keen::uint16 level; // Offset: 0 + keen::uint16 currentAltarCount; // Offset: 2 + keen::uint16 currentHighestAltarLevel; // Offset: 4 +}; + +struct ecs.BaseAttributesData { + keen::uint8 strength; // Offset: 0 + keen::uint8 strengthFromSkill; // Offset: 1 + keen::uint8 dexterity; // Offset: 2 + keen::uint8 dexterityFromSkill; // Offset: 3 + keen::uint8 intelligence; // Offset: 4 + keen::uint8 intelligenceFromSkill; // Offset: 5 + keen::uint8 constitution; // Offset: 6 + keen::uint8 constitutionFromSkill; // Offset: 7 + keen::uint8 endurance; // Offset: 8 + keen::uint8 enduranceFromSkill; // Offset: 9 + keen::uint8 spirit; // Offset: 10 + keen::uint8 spiritFromSkill; // Offset: 11 +}; + +struct ecs.ArmorAttributes { + keen::float32 physicalBlowthrough; // Offset: 0 + keen::float32 magicalBlowthrough; // Offset: 4 + keen::uint16 physicalArmor; // Offset: 8 + keen::uint16 cutArmor; // Offset: 10 + keen::uint16 bluntArmor; // Offset: 12 + keen::uint16 pierceArmor; // Offset: 14 + keen::uint16 magicalArmor; // Offset: 16 + keen::uint16 fireArmor; // Offset: 18 + keen::uint16 iceArmor; // Offset: 20 + keen::uint16 fogArmor; // Offset: 22 + keen::uint16 lightningArmor; // Offset: 24 +}; + +enum class ecs.ReviveState { + Invalid = 0, + Reviving = 1, + GettingRevived = 2, +}; + +struct ecs.NetworkReviveData { + keen::ecs::ReviveState state; // Offset: 0 + keen::float duration; // Offset: 4 + keen::float left; // Offset: 8 +}; + +struct ecs.NetworkPlayerAttributes { + keen::ecs::ArmorAttributes armorAttributes; // Offset: 0 + keen::ecs::BaseAttributesData baseAttributes; // Offset: 28 + keen::ecs::NetworkReviveData revivieData; // Offset: 40 + keen::float32 movementNormal; // Offset: 52 + keen::float32 movementSprint; // Offset: 56 + keen::float32 movementSneak; // Offset: 60 + keen::float32 reviveDuration; // Offset: 64 + keen::float32 reviveHealth; // Offset: 68 + keen::float32 critChance; // Offset: 72 + keen::float32 critChanceMagic; // Offset: 76 + keen::float32 critChanceMelee; // Offset: 80 + keen::float32 critChanceRanged; // Offset: 84 + keen::uint16 critDamageMod; // Offset: 88 + keen::uint16 damageMod; // Offset: 90 + keen::uint16 meleeDamageMod; // Offset: 92 + keen::uint16 rangedDamageMod; // Offset: 94 + keen::uint16 magicDamageMod; // Offset: 96 + keen::uint16 damageModSneak; // Offset: 98 + keen::uint16 damageModMerciless; // Offset: 100 + keen::uint16 damageModBackstab; // Offset: 102 + keen::uint16 damageModSkillshot; // Offset: 104 + keen::uint16 poisonSusceptibility; // Offset: 106 + keen::uint16 health; // Offset: 108 + keen::uint16 healthMax; // Offset: 110 + keen::uint16 healthReg; // Offset: 112 + keen::uint16 healthRegDelay; // Offset: 114 + keen::uint16 stamina; // Offset: 116 + keen::uint16 staminaMax; // Offset: 118 + keen::uint16 staminaReg; // Offset: 120 + keen::uint16 staminaRegDelay; // Offset: 122 + keen::uint16 mana; // Offset: 124 + keen::uint16 manaMax; // Offset: 126 + keen::uint16 manaReg; // Offset: 128 + keen::uint16 manaRegDelay; // Offset: 130 + keen::uint16 bodyHeat; // Offset: 132 + keen::uint16 bodyHeatMax; // Offset: 134 + keen::uint16 bodyHeatReg; // Offset: 136 + keen::uint16 bodyHeatRegDelay; // Offset: 138 + keen::uint16 experience; // Offset: 140 + keen::uint16 experienceRequired; // Offset: 142 + keen::uint16 fogResistance; // Offset: 144 + keen::uint16 fogResistanceMax; // Offset: 146 + keen::uint16 level; // Offset: 148 + keen::uint16 staffDamage; // Offset: 150 + keen::uint16 wandDamage; // Offset: 152 + keen::uint16 oneHandedDamage; // Offset: 154 + keen::uint16 twoHandedDamage; // Offset: 156 + keen::uint16 bowDamage; // Offset: 158 + keen::uint16 daggerDamage; // Offset: 160 + keen::uint16 throwableDamage; // Offset: 162 + keen::uint16 unarmedDamage; // Offset: 164 + keen::uint16 magicalFoeDamage; // Offset: 166 + keen::uint16 meleeFoeDamage; // Offset: 168 + keen::uint16 rangedFoeDamage; // Offset: 170 + keen::uint16 flyingFoeDamage; // Offset: 172 + keen::uint16 skeletonFoeDamage; // Offset: 174 + keen::uint16 healing; // Offset: 176 + keen::uint16 freezingResistance; // Offset: 178 + keen::uint8 comfortLevel; // Offset: 180 +}; + +enum class ecs.GatherResourceType { + Wood = 0, + Stone = 1, +}; + +struct ecs.MiningNode { + keen::ecs::GatherResourceType resourceType; // Offset: 0 + keen::NotifierReference onResourceDepletion; // Offset: 4 + keen::ecs::Offset offset; // Offset: 20 + keen::SoundContainerReference sfx; // Offset: 60 + keen::VfxReference vfx; // Offset: 76 + keen::uint8 aliveDropCount; // Offset: 92 + keen::uint8 numberOfDrops; // Offset: 93 +}; + +struct ecs.DynamicMiningNode { + keen::bool isInitialized; // Offset: 0 + keen::bool canBeDestroyed; // Offset: 1 + keen::uint8 remainingDropCount; // Offset: 2 +}; + +struct ecs.WiggleComponent { + keen::Time startTime; // Offset: 0 + keen::float3 rotationAxis; // Offset: 8 + keen::Time duration; // Offset: 24 + keen::float32 intensity; // Offset: 32 + keen::float32 bounciness; // Offset: 36 +}; + +struct ecs.HealthBasedScale { + keen::float32 minSize; // Offset: 0 + keen::uint8 percentage; // Offset: 4 +}; + +struct ecs.InventoryEmptyState { + keen::bool toggleVFX; // Offset: 0 + keen::bool isEmpty; // Offset: 1 +}; + +struct ecs.CopyInventoryEmptyStateFromParent { +}; + +struct ecs.TransformHistoryEntry { + keen::uint32 tick; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct ecs.TransformationHistory { + keen::StaticArray history; // Offset: 0 + keen::Time lastSampleTime; // Offset: 3840 + keen::uint32 lastIndex; // Offset: 3848 + keen::uint32 maxIndex; // Offset: 3852 +}; + +struct ecs.ServerTransformationHistory { +}; + +struct ecs.ClientTransformationHistory { +}; + +struct ecs.GameEvent { + keen::Time timeStamp; // Offset: 0 +}; + +struct ecs.BaseHitEvent { + keen::WorldTransform targetTransform; // Offset: 8 + keen::float3 volumeMin; // Offset: 64 + keen::float3 volumeMax; // Offset: 76 + keen::bool hasVolume; // Offset: 88 + keen::float32 miningDamagedVolume; // Offset: 92 + keen::float32 miningRemovedVolume; // Offset: 96 + keen::bool hasMiningVolume; // Offset: 100 + keen::CollisionFeedbackMaterialReference materialA; // Offset: 104 + keen::CollisionFeedbackMaterialReference materialB; // Offset: 120 + keen::float3 position; // Offset: 136 + keen::float3 normal; // Offset: 148 + keen::float3 hitDirection; // Offset: 160 + keen::ecs::EntityId rootSourceId; // Offset: 172 + keen::ecs::EntityId targetId; // Offset: 176 + keen::ecs::HitEventFlagMask flags; // Offset: 180 +}; + +struct impact.ImpactId { + keen::uint32 id; // Offset: 0 +}; + +enum class impact.PushBackForce { + None = 0, + Small = 1, + Normal = 2, + Big = 3, + VeryBig = 4, + VerySmall = 5, +}; + +typedef keen::HashKey32 WeaponCategoryId; + +struct ecs.HitEvent { + keen::ecs::EntityId rootTargetId; // Offset: 184 + keen::ecs::EntityId sourceId; // Offset: 188 + keen::ecs::EntityId permissionSourceId; // Offset: 192 + keen::ecs::EntityId weaponPideId; // Offset: 196 + keen::ecs::EntityId armorPideId; // Offset: 200 + keen::float32 hitAngle; // Offset: 204 + keen::float32 range; // Offset: 208 + keen::sint32 healthChange; // Offset: 212 + keen::sint32 staminaChange; // Offset: 216 + keen::float32 aggro; // Offset: 220 + keen::float32 noiseRange; // Offset: 224 + keen::impact::ImpactId impactId; // Offset: 228 + keen::impact::PushBackForce pushBackForce; // Offset: 232 + keen::impact::HitReactionType hitReaction; // Offset: 234 + keen::impact::MajorDirection hitDirectionConfig; // Offset: 236 + keen::impact::AttackCategoryMask attackCategory; // Offset: 237 + keen::WeaponCategoryId weaponCategory; // Offset: 240 + keen::FactionType targetFaction; // Offset: 244 +}; + +struct ecs.HitHistory { + keen::StaticArray history; // Offset: 0 + keen::StaticArray targetTransform; // Offset: 2480 + keen::uint32 lastIndex; // Offset: 3040 + keen::uint32 maxIndex; // Offset: 3044 +}; + +struct ecs.ExperienceSource { + keen::ecs::EntityId lastHitPlayerId; // Offset: 0 + keen::float xpMod; // Offset: 4 +}; + +struct ecs.FogOfWarDiscovery { + keen::float32 discoveryRange; // Offset: 0 +}; + +enum class FogType { + None = 0, + NoneTemporary = 1, + Dangerous = 2, + Death = 3, +}; + +struct ecs.EnvironmentSensor { + keen::FogType fogType; // Offset: 0 + keen::TemperatureVoxelType temperature; // Offset: 1 +}; + +struct ecs.ToggleAnimation { + keen::animationgraph::StateIdReference animationStateOn; // Offset: 0 + keen::animationgraph::StateIdReference animationStateOff; // Offset: 16 +}; + +struct ecs.ToggleOnHit { + keen::impact::AttackCategoryMask disabledDamageTypes; // Offset: 0 + keen::bool canToggleOn; // Offset: 1 + keen::bool canToggleOff; // Offset: 2 +}; + +struct ecs.LinkToggleStateToSignalState { + keen::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentSignalState { + keen::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.LinkClientToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.SendToggleStateToParentToggleState { +}; + +struct ecs.LinkToggleStateToEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.SignalTransmitter { + keen::SignalReference signal; // Offset: 0 + keen::SignalId signalId; // Offset: 16 + keen::bool state; // Offset: 20 + keen::bool sendActivatedEvent; // Offset: 21 + keen::bool sendDeactivatedEvent; // Offset: 22 + keen::bool sendResultSignal; // Offset: 23 +}; + +struct ecs.SignalReceiver { + keen::SignalId signalId; // Offset: 0 + keen::ecs::EntityId lastSenderId; // Offset: 4 + keen::SignalReference signal; // Offset: 8 +}; + +enum class DelayFlags { + On = 0, + Off = 1, +}; + +typedef keen::Bitmask8 DelayMask; + +struct ecs.SignalDelay { + keen::Time duration; // Offset: 0 + keen::DelayMask filterMask; // Offset: 8 + keen::Time toggleTime; // Offset: 16 + keen::bool nextState; // Offset: 24 + keen::bool initialized; // Offset: 25 +}; + +struct ecs.MagicalBarrier { +}; + +struct ecs.MagicalBarrierConnection { + keen::bool initialized; // Offset: 0 + keen::ecs::EntityId barrierEntityId; // Offset: 4 + keen::ecs::EntityId spawnedSubentityId; // Offset: 8 + keen::ObjectReference spawnEntity; // Offset: 12 +}; + +struct ecs.LocalSignalReceiver { + keen::SignalReference signal; // Offset: 0 +}; + +struct ecs.MultiSignalReceiver { + keen::bool evaluate; // Offset: 0 + keen::StaticArray calculation; // Offset: 4 + keen::StaticArray signalIds; // Offset: 132 + keen::StaticArray signalStates; // Offset: 196 + keen::bool receiveActivatedEvent; // Offset: 212 + keen::bool receiveDeactivatedEvent; // Offset: 213 + keen::bool hasEvaluatedToTrueOnce; // Offset: 214 +}; + +struct ecs.MultiSignalReceiverCounter { + keen::uint8 activeCount; // Offset: 0 + keen::uint8 requiredCount; // Offset: 1 +}; + +struct ecs.LoreReading { + keen::LocaTagReference description; // Offset: 0 + keen::ItemId displayedItemId; // Offset: 16 + keen::LocaTagReference entryName; // Offset: 20 + keen::LocaTagReference unlockMapMarker; // Offset: 36 + keen::ItemReference displayedItem; // Offset: 52 +}; + +struct ecs.NonModalHint { + keen::bool hasCloseRangeActivation; // Offset: 0 + keen::float fullTextActivation; // Offset: 4 + keen::LocaTagReference description; // Offset: 8 + keen::bool hasKnowledeRequirement; // Offset: 24 + keen::bool useSceneKnowledgeRequirement; // Offset: 25 + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 28 + keen::KnowledgeId queryId; // Offset: 132 +}; + +struct ecs.DynamicNonModalHint { + keen::bool isActive; // Offset: 0 + keen::bool isInCloseRange; // Offset: 1 + keen::float squaredPlayerDistance; // Offset: 4 +}; + +struct ecs.TargetingTransform { + keen::AttachmentSlot attachmentSlot; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 +}; + +struct ecs.UiOffsets { + keen::ecs::Offset healthBarOffset; // Offset: 0 + keen::ecs::Offset interactionPromptOffset; // Offset: 40 +}; + +struct ecs.Boss { +}; + +struct ecs.BossHealthBar { + keen::LocaTagReference displayName; // Offset: 0 + keen::float32 maxPlayerDistance; // Offset: 16 +}; + +struct ecs.BossDisplay { + keen::ecs::RangeQueryId rangeQueryId; // Offset: 0 + keen::ecs::EntityId bossEntityId; // Offset: 4 + keen::bool displayHealthBar; // Offset: 8 + keen::bool isEngagedWithPlayer; // Offset: 9 + keen::LocaTagId displayName; // Offset: 12 +}; + +struct ecs.BossMusicTag { + keen::BossMusicType bossMusic; // Offset: 0 +}; + +struct ecs.Faction { + keen::FactionType faction; // Offset: 0 +}; + +struct ecs.ControlCombatTarget { + keen::ecs::EntityId targetId; // Offset: 0 + keen::actor::SequenceRuntimeId attackSequenceId; // Offset: 8 +}; + +struct ecs.ItemState { + keen::InventorySlotId containedInSlotId; // Offset: 0 + keen::ItemId itemId; // Offset: 8 + keen::uint16 baseDamageUi; // Offset: 12 + keen::ItemStateMask itemState; // Offset: 14 + keen::ItemRarity itemRarityUi; // Offset: 15 + keen::uint8 itemLevelUi; // Offset: 16 + keen::uint8 durabilityRatioUi; // Offset: 17 +}; + +enum class ecs.CreateItemLootState { + Start = 0, + WaitForInventorySetup = 1, + WaitForPlayerRevive = 2, + LootCreated = 3, +}; + +struct ecs.CreateItemLoot { + keen::ecs::CreateItemLootState lootCreationState; // Offset: 0 +}; + +struct ecs.ItemEquippedLifetime { +}; + +struct ecs.SpawnedCollectionItem { + keen::ItemId itemId; // Offset: 0 + keen::uint32 modelHandle; // Offset: 4 +}; + +struct ecs.ItemCollectionComponent { + keen::LocaTagReference uiMenuName; // Offset: 0 + keen::LocaTagReference uiSlottingVerb; // Offset: 16 + keen::bool spawnCollectionModels; // Offset: 32 + keen::ObjectReference collection; // Offset: 36 + keen::ObjectReference hierarchy; // Offset: 52 + keen::ObjectReference pose; // Offset: 68 + keen::ObjectReference clothColliderReference; // Offset: 84 + keen::BlobArray slots; // Offset: 100 + keen::HashKey32 poseId; // Offset: 108 +}; + +struct ecs.DynamicItemCollectionComponent { + keen::StaticArray spawnedCollectionItems; // Offset: 0 +}; + +struct ecs.TriggerCollectionCompletionKnowledge { + keen::KnowledgeId completionKnowledgeId; // Offset: 0 +}; + +struct ecs.MovementSensor { + keen::ecs::RangeQueryId queryId; // Offset: 0 +}; + +struct ecs.FleeSensor { + keen::float32 viewConeHalfAngle; // Offset: 0 + keen::float32 alertZoneMediumWidth; // Offset: 4 + keen::float32 originalFleeRadius; // Offset: 8 + keen::float32 fleeRadius; // Offset: 12 + keen::bool checkViewCone; // Offset: 16 + keen::bool checkBackCone; // Offset: 17 + keen::Time ignoreCalmEnemiesUntilTime; // Offset: 24 + keen::ecs::AlertState alertState; // Offset: 32 + keen::ecs::EntityId highestDangerEntityId; // Offset: 36 + keen::WorldPosition highestDangerPosition; // Offset: 40 + keen::bool forceUpdate; // Offset: 64 +}; + +struct ecs.FriendSensor { + keen::float32 checkRadius; // Offset: 0 + keen::StaticArray friendsInRange; // Offset: 4 +}; + +struct ecs.EnemySensor { + keen::float32 checkRadius; // Offset: 0 + keen::uint8 enemiesInRange; // Offset: 4 +}; + +struct ecs.CheckLineAboveSensor { + keen::float32 lineCheckHeightAbove; // Offset: 0 +}; + +struct ecs.SafePlayerPosition { + keen::Time minSafeDuration; // Offset: 0 + keen::float32 minFallHeight; // Offset: 8 +}; + +struct ecs.DynamicSafePlayerPosition { + keen::WorldTransform transform; // Offset: 0 + keen::Time currentSafeDuration; // Offset: 56 +}; + +struct ecs.Crafting { + keen::ObjectReference workshop; // Offset: 0 + keen::WorkshopId workshopId; // Offset: 16 +}; + +struct ecs.LevelBasedModel { + keen::sint32 level; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +struct ecs.LevelBasedBuildingRange { + keen::sint32 level; // Offset: 0 + keen::float3 box; // Offset: 4 +}; + +struct ecs.UpgradableBuildingRange { +}; + +struct ecs.UpgradeData { + keen::ecs::TemplateReference upgradeEntity; // Offset: 0 + keen::sint32 level; // Offset: 16 +}; + +struct ecs.Upgrade { + keen::BlobArray levels; // Offset: 0 +}; + +struct ecs.DynamicUpgrade { + keen::ecs::EntityId entityId; // Offset: 0 + keen::sint32 spawnedLevel; // Offset: 4 +}; + +struct ecs.StoreAttributes { + keen::float32 health; // Offset: 0 + keen::float32 stamina; // Offset: 4 + keen::float32 mana; // Offset: 8 + keen::float32 bodyHeat; // Offset: 12 + keen::bool restoreAttributes; // Offset: 16 +}; + +struct ecs.GrassEffector { +}; + +struct ecs.SnappingBoxWorld { + keen::ecs::AlignedBox worldBox; // Offset: 0 + keen::ecs::AlignedBox snappingBox; // Offset: 24 + keen::ItemId containedItemId; // Offset: 48 + keen::uint8 version; // Offset: 52 +}; + +struct ecs.SnappingBoxLocal { + keen::ecs::AlignedBox localBox; // Offset: 0 + keen::ItemId containedItemId; // Offset: 24 +}; + +struct ecs.TemporaryMining { + keen::int3 voxelPosition; // Offset: 0 + keen::float32 relativeHealth; // Offset: 12 +}; + +struct ecs.ClientCycleInventoryStock { + keen::uint8 inventoryStockType; // Offset: 0 + keen::bool canCycle; // Offset: 1 + keen::bool isCyclingDisabled; // Offset: 2 + keen::bool showStock; // Offset: 3 +}; + +struct ecs.ClientLineOfSightState { + keen::ecs::LineOfSightState lineOfSightState; // Offset: 0 +}; + +struct UiNpcRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +struct ecs.NpcSetup { + keen::LocaTagReference name; // Offset: 0 + keen::bool includeInNpcRegistry; // Offset: 16 + keen::bool isCraftingAssistant; // Offset: 17 + keen::LocaTagReference workshopLabel; // Offset: 20 + keen::CharacterPresetReference preset; // Offset: 36 + keen::GameKnowledgeRequirement unlockRequirement; // Offset: 52 + keen::ItemReference placementItem; // Offset: 156 + keen::UiNpcRenderingOptions uiRendering; // Offset: 172 +}; + +struct ecs.CharacterSetup { + keen::Gender gender; // Offset: 0 + keen::VoicePackId voicePackId; // Offset: 4 + keen::CharacterPresetId presetId; // Offset: 8 + keen::ItemId hair; // Offset: 12 + keen::ItemId beard; // Offset: 16 + keen::ColorPresetId hairColorId; // Offset: 20 + keen::ColorPresetId beardColorId; // Offset: 24 + keen::PaletteColorId skinColor; // Offset: 28 + keen::PaletteColorId eyeBrowColor; // Offset: 32 + keen::PaletteColorId eyeColor; // Offset: 36 + keen::HashKey32 versionHash; // Offset: 40 +}; + +struct ecs.NewCharacterSetup { +}; + +struct ecs.EquipmentCheck { +}; + +struct ecs.PlayerLowHealth { + keen::Time blendOutDuration; // Offset: 0 + keen::Time lastTriggerTime; // Offset: 8 +}; + +struct ecs.GroundCheck { + keen::bool groundPositionFound; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::Time nextCheckTime; // Offset: 32 +}; + +struct ecs.ProcShuffleBag { + keen::uint8 procEarlyCount; // Offset: 0 + keen::uint8 procOnTimeCount; // Offset: 1 + keen::uint8 procLateCount; // Offset: 2 + keen::sint8 nextHitCountOffset; // Offset: 3 +}; + +struct ecs.TerrainLootMemory { + keen::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::float32 restVolumeAfterPayout; // Offset: 8 +}; + +struct ecs.BuildingLootMemory { + keen::uint32 volume; // Offset: 0 +}; + +struct ecs.MinerSkillMemory { + keen::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 payoutCounter; // Offset: 4 +}; + +struct ecs.TerraformingLootMemory { + keen::StaticArray terrainMemory; // Offset: 0 + keen::StaticArray buildingMemory; // Offset: 1536 + keen::ecs::MinerSkillMemory minerSkillMemory; // Offset: 2048 +}; + +struct ecs.TransformToLoot { + keen::ecs::Offset vfxOnSpawnOffset; // Offset: 0 + keen::ecs::DefaultInventoryReference defaultInventory; // Offset: 40 + keen::actor::ActorSequenceReference defaultAction; // Offset: 56 + keen::LocaTagReference verbLoca; // Offset: 72 + keen::VfxReference vfxOnSpawn; // Offset: 88 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::uint8 genericSlotCount; // Offset: 168 + keen::uint8 availableSlotCount; // Offset: 169 + keen::bool keepDefaultInventory; // Offset: 170 + keen::uint32 lootHealth; // Offset: 172 +}; + +struct ecs.PlayerStateIndicatorComponent { + keen::SoundContainerReference soundContainerLowHealth; // Offset: 0 + keen::SoundContainerReference soundContainerLowFogPower; // Offset: 16 + keen::uint32 sfxLowHealthHandle; // Offset: 32 + keen::uint32 sfxLowFogPowerHandle; // Offset: 36 +}; + +struct ecs.Pacify { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::FactionMask pacifyFactions; // Offset: 4 +}; + +struct ecs.PacifiedState { + keen::bool canBePacified; // Offset: 0 + keen::bool isPacified; // Offset: 1 + keen::bool wasPacifyAborted; // Offset: 2 + keen::ecs::EntityId pacifiedBy; // Offset: 4 + keen::Time pacifyEndTime; // Offset: 8 +}; + +struct ecs.CallFactionsForHelp { + keen::float32 callForHelpRange; // Offset: 0 + keen::FactionMask callForHelpFactions; // Offset: 4 + keen::ecs::EntityId currentGuardingEntityId; // Offset: 8 +}; + +struct ecs.DebugCameraDisplay { + keen::float3x4 transform; // Offset: 0 +}; + +struct ecs.CombatFlags { + keen::bool immune; // Offset: 0 + keen::bool propagateHits; // Offset: 1 + keen::bool handleHits; // Offset: 2 + keen::bool canBlock; // Offset: 3 + keen::bool ignoreMagic; // Offset: 4 + keen::bool ignoreMelee; // Offset: 5 + keen::bool ignoreRanged; // Offset: 6 + keen::bool ignoreTool; // Offset: 7 + keen::bool ignoreOther; // Offset: 8 + keen::bool ignoreAoE; // Offset: 9 + keen::bool canBeBackstabbed; // Offset: 10 +}; + +struct ecs.ToggleImmunity { + keen::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.RandomOrientation { + keen::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 0 + keen::bool needsTargetEntity; // Offset: 24 + keen::bool adjustVelocity; // Offset: 25 +}; + +struct ecs.RandomDurationScale { + keen::float min; // Offset: 0 + keen::float max; // Offset: 4 +}; + +struct ecs.Growth { + keen::Time minDuration; // Offset: 0 + keen::ecs::RandomDurationScale randomDurationScale; // Offset: 8 + keen::BlobArray allowedSoil; // Offset: 16 +}; + +struct ecs.GrowthHint { +}; + +struct ecs.DynamicGrowth { + keen::Time nextLevelTime; // Offset: 0 +}; + +struct ecs.EntityTagContainer { + keen::BlobArray tags; // Offset: 0 +}; + +struct ecs.CombatStance { + keen::Time combatStanceDuration; // Offset: 0 + keen::Time combatStanceEndTime; // Offset: 8 +}; + +struct ecs.BenchmarkPoint { +}; + +struct ecs.CopyParentDamageSusceptibility { + keen::bool keepSkillShotAttribute; // Offset: 0 +}; + +enum class ecs.DetachAction { + None = 0, + Destroy = 1, + AddGravity = 2, +}; + +enum class ecs.AttachmentDirection { + Down = 0, + Up = 1, + Left = 2, + Right = 3, + Forward = 4, + Backward = 5, +}; + +struct ecs.AttachToSurface { + keen::ecs::DetachAction detachAction; // Offset: 0 + keen::ecs::DetachAction detachActionInBase; // Offset: 1 + keen::ecs::AttachmentDirection attachDirection; // Offset: 2 + keen::float searchLength; // Offset: 4 + keen::ecs::ColliderMask colliderMask; // Offset: 8 + keen::float yOffset; // Offset: 12 + keen::bool spawnFalling; // Offset: 16 +}; + +struct ecs.DynamicAttachToSurface { + keen::Time searchStartTime; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::ecs::EntityId attachmentContainerId; // Offset: 16 + keen::bool hasFoundContainer; // Offset: 20 + keen::bool shouldDestroy; // Offset: 21 + keen::bool hasAddedGravity; // Offset: 22 +}; + +struct ecs.DangerousArea { + keen::float32 range; // Offset: 0 +}; + +struct ecs.DangerSensor { + keen::float32 checkRadius; // Offset: 0 +}; + +struct ecs.DynamicDangerSensor { + keen::bool hasFoundDangerousEntity; // Offset: 0 + keen::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct ecs.CopyParentLevel { +}; + +struct ecs.ServerSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float maxMaterialSubmergeDepth; // Offset: 4 + keen::float lerpStartValue; // Offset: 8 + keen::float lerpEndValue; // Offset: 12 + keen::Time lerpDuration; // Offset: 16 + keen::Time lerpTime; // Offset: 24 +}; + +struct ecs.NetworkSubmerge { + keen::float submergeDepth; // Offset: 0 +}; + +struct ecs.ClientSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float interpolationSource; // Offset: 4 + keen::float interpolationTarget; // Offset: 8 + keen::uint32 interpolationNewestTick; // Offset: 12 +}; + +struct ecs.SongState { + keen::Time joinTime; // Offset: 0 + keen::Time songStartTime; // Offset: 8 + keen::SongId songId; // Offset: 16 + keen::uint16 songClusterId; // Offset: 20 +}; + +struct ecs.CustomPlayerString { + keen::CustomStringId stringId; // Offset: 0 +}; + +struct ecs.SongSelection { + keen::SongId selectedSongId; // Offset: 0 +}; + +struct ecs.Extinguish { + keen::SoundContainerReference extinguishSfx; // Offset: 0 +}; + +struct ecs.DynamicExtinguish { + keen::Time extinguishDetectionTime; // Offset: 0 + keen::Time lastToggle; // Offset: 8 + keen::float32 extinguishValue; // Offset: 16 + keen::bool switchedToggleOff; // Offset: 20 +}; + +struct ecs.ClientExtinguish { + keen::Time lastNotifyTime; // Offset: 0 + keen::float32 visualizedExtinguishValue; // Offset: 8 +}; + +struct ecs.PackedExtinguish { + keen::Time lastToggleTime; // Offset: 0 + keen::float32 extinguishValue; // Offset: 8 + keen::bool switchedToggleOff; // Offset: 12 +}; + +struct ecs.FoodBait { +}; + +struct ecs.RayCastSpawner { + keen::ecs::TemplateReference spawnTemplate; // Offset: 0 + keen::ecs::Offset rayOffset; // Offset: 16 + keen::float requiredDistanceToSpawnEntity; // Offset: 56 + keen::Time minLifeTime; // Offset: 64 + keen::Time maxLifeTime; // Offset: 72 +}; + +struct ecs.DynamicRayCastSpawner { + keen::WorldPosition lastSpawnPosition; // Offset: 0 +}; + +struct ecs.WaterSurfaceFX { + keen::VfxReference standingVfx; // Offset: 0 + keen::VfxReference movingVfx; // Offset: 16 + keen::SoundContainerReference waterSfx; // Offset: 32 + keen::uint32 vfxHandle; // Offset: 48 + keen::uint32 sfxHandle; // Offset: 52 + keen::float3 previousPlayerPosition; // Offset: 56 + keen::bool playerWasMoving; // Offset: 68 +}; + +struct ecs.MoveColliderWithRay { + keen::float targetLength; // Offset: 0 + keen::Time increaseLengthDuration; // Offset: 8 +}; + +struct ecs.DynamicMoveColliderWithRay { + keen::Time startTime; // Offset: 0 +}; + +struct ecs.WaterDispenser { + keen::bool visualOnly; // Offset: 0 +}; + +struct ecs.WaterDrain { +}; + +enum class GameMessageChannelId { + Login = 0, + ServerInfo = 1, + VoxelWorld = 2, + EcsClient = 3, + EcsPrediction = 4, + Input = 5, + SaveGame = 6, + Knowledge = 7, + Debug = 8, + EcsReset = 9, + VoiceChat = 10, + CustomPlayerStrings = 11, + Water = 12, + TwitchDrop = 13, + Weather = 14, +}; + +enum class GameMessageLoginType { + Login = 0, + SystemsReady = 1, + GameplayReady = 2, + Logout = 3, +}; + +enum class GameMessageLoginErrors { + Authentication = 0, + Version = 1, + Full = 2, + Shutdown = 3, + SaveDataIssue = 4, + Generic = 5, +}; + +enum class GameMessageLoginResult { + Ok = 0, + Failed = 1, +}; + +struct DaytimeSync { + keen::Time ecsTime; // Offset: 0 + keen::Time gameTime; // Offset: 8 + keen::float32 gameTimeScale; // Offset: 16 +}; + +struct DebugMessage { + keen::float3 cameraTarget; // Offset: 0 +}; + +struct KnownUserData { + keen::CharacterId characterId; // Offset: 0 + keen::BaseId baseId; // Offset: 16 +}; + +struct KnownUsers { + keen::uint32 version; // Offset: 0 + keen::BlobArray users; // Offset: 4 +}; + +enum class BaseState { + Default = 0, + Abandoned = 1, +}; + +struct EntitySaveData { + keen::WorldTransform transform; // Offset: 0 + keen::bool forcedSave; // Offset: 56 + keen::BlobArray entityData; // Offset: 60 +}; + +struct BaseSaveData { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::BlobArray voxel; // Offset: 48 + keen::BlobArray water; // Offset: 56 +}; + +struct ServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::BlobArray bases; // Offset: 4 + keen::BlobArray entities; // Offset: 12 + keen::BlobArray progressEntity; // Offset: 20 + keen::BlobArray entitySerializationContext; // Offset: 28 + keen::Time playTime; // Offset: 40 +}; + +enum class ServerSaveGameVersion { + V_0 = 0, + V_1 = 1, + V_2 = 2, + V_3_FirstWorldOffset = 3, + V_4_DeduplicateEntitiesOnLoad = 4, + V_5_UnlockWorldDialogKnowledge = 5, + V_6_KnowledgeRename = 6, + V_7_Water = 7, +}; + +struct ExtendedServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::uint32 sceneOffsetChangeCounter; // Offset: 4 + keen::Time dayTime; // Offset: 8 +}; + +enum class ExtendedServerSaveGameVersion { + V_0 = 0, + V_1_DayTime = 1, +}; + +enum class ecs.GameSettingsPreset { + Default = 0, + Relaxed = 1, + Hard = 2, + Survival = 3, + Custom = 4, +}; + +struct ServerSaveGameMeta { + keen::uint32 version; // Offset: 0 + keen::CalendarTimeStamp lastPlayTime; // Offset: 8 + keen::uint32 progressLevel; // Offset: 16 + keen::string name; // Offset: 20 + keen::Time playTime; // Offset: 32 + keen::ecs::GameSettingsPreset gameSettingsPreset; // Offset: 40 +}; + +struct UnlockedItemKnowledgeSave { + keen::uint32 version; // Offset: 0 + keen::ItemId itemId; // Offset: 4 + keen::ItemKnowledgeMask knowledge; // Offset: 8 +}; + +struct CustomMapMarkerArray { + keen::BlobArray mapMarkers; // Offset: 0 +}; + +struct CharacterSaveGameEntry { + keen::string name; // Offset: 0 + keen::CharacterId id; // Offset: 8 + keen::CharacterId cloudId; // Offset: 24 + keen::CalendarTimeStamp lastPlayTime; // Offset: 40 + keen::uint32 version; // Offset: 48 + keen::uint32 level; // Offset: 52 + keen::CharacterStateMask stateMask; // Offset: 56 + keen::CustomMapMarkerArray customMapMarker; // Offset: 60 + keen::BlobArray data; // Offset: 68 +}; + +struct ItemColorSetupInternal { + keen::ColorCombinationResource colorIds; // Offset: 0 + keen::bool isSet; // Offset: 12 +}; + +struct OutfitItemData { + keen::ItemId itemId; // Offset: 0 + keen::ItemColorSetupInternal colors; // Offset: 4 +}; + +struct OutfitArray { + keen::StaticArray data; // Offset: 0 +}; + +struct CharacterOutfit { + keen::uint32 version; // Offset: 0 + keen::OutfitArray items; // Offset: 4 + keen::ecs::CharacterSetup setup; // Offset: 484 +}; + +struct old_saves.v6.BaseSaveDataV6 { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::WorldTransform DEPRECATEDtransform; // Offset: 48 + keen::BlobArray voxel; // Offset: 104 +}; + +struct old_saves.v6.ServerSaveGameV6 { + keen::uint32 version; // Offset: 0 + keen::BlobArray bases; // Offset: 4 + keen::BlobArray entities; // Offset: 12 + keen::BlobArray progressEntity; // Offset: 20 + keen::BlobArray entitySerializationContext; // Offset: 28 + keen::Time playTime; // Offset: 40 +}; + +struct ecs.CameraShake { + keen::float32 trauma; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::ecs::EntityId triggerId; // Offset: 24 +}; + +struct ecs.CameraShakeImpulse { + keen::float3 impulse; // Offset: 8 + keen::float additionalTrauma; // Offset: 20 + keen::Time duration; // Offset: 24 + keen::ecs::EntityId triggerId; // Offset: 32 +}; + +struct ecs.UiCurrentLocationEvent { + keen::LocaTagId location; // Offset: 8 +}; + +struct ecs.UiNegativeFeedbackEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::LocaTagReference messageLocaTag; // Offset: 12 +}; + +struct ecs.UiInsufficientResourcesEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId itemSlotId; // Offset: 12 + keen::ResourceTypesMask flags; // Offset: 20 +}; + +struct ecs.UiResourcesFullEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId buffEntityId; // Offset: 12 + keen::InventorySlotId itemSlotId; // Offset: 16 + keen::ResourceTypesMask flags; // Offset: 24 +}; + +struct ecs.AppliedBuffEvent { + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::BuffSlotType slotType; // Offset: 12 + keen::uint32 slotTypeCount; // Offset: 16 +}; + +struct ecs.UiInventoryStockCycleEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool selectionResult; // Offset: 12 +}; + +struct ecs.UiBuildingEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool isUndoAction; // Offset: 12 + keen::bool isSuccessful; // Offset: 13 +}; + +struct ecs.UiItemTriggerFailedEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId itemSlotId; // Offset: 12 + keen::EquipmentSlotType equipmentSlotType; // Offset: 20 +}; + +struct ecs.UnlockSkillEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlearnSkillEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlockPerkEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.TrashItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.SelectDialogOptionEvent { + keen::ecs::EntityId interactingEntityId; // Offset: 8 + keen::LocaTagId selectedOptionId; // Offset: 12 + keen::KnowledgeId knowledgeId; // Offset: 16 +}; + +struct ecs.NpcInputEvent { + keen::NpcId npcId; // Offset: 8 + keen::float roamingRange; // Offset: 12 +}; + +struct ecs.TriggerKnowledgeUiEvent { + keen::KnowledgeId knowledgeId; // Offset: 8 +}; + +struct ecs.SetPersonalQuestProgressionEvent { + keen::bool enable; // Offset: 8 +}; + +struct ecs.ServerSelectDialogOptionEvent { + keen::ecs::EntityId npcEntity; // Offset: 8 + keen::ecs::EntityId playerEntity; // Offset: 12 + keen::LocaTagId selectedOptionId; // Offset: 16 +}; + +struct ecs.BuildingPlaceEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::CollisionFeedbackMaterialReference material; // Offset: 60 + keen::ItemId trackingItemId; // Offset: 76 +}; + +struct ecs.BuildingPickUpEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +struct ecs.BuildingTearDownEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +struct ecs.ProhibitedHit { + keen::CollisionFeedbackMaterialReference materialA; // Offset: 8 + keen::CollisionFeedbackMaterialReference materialB; // Offset: 24 + keen::float3 position; // Offset: 40 + keen::float3 normal; // Offset: 52 + keen::ecs::EntityId rootSourceId; // Offset: 64 + keen::ecs::EntityId targetId; // Offset: 68 +}; + +struct ecs.TerraformingHitEvent { + keen::float32 range; // Offset: 184 +}; + +enum class ecs.HitCandidateType { + Entity = 0, + Terrain = 1, + Building = 2, +}; + +struct ecs.HitCandidate { + keen::float3 sourceVelocity; // Offset: 248 + keen::WorldTransform sourceTransform; // Offset: 264 + keen::sint32 sourceManaCost; // Offset: 320 + keen::ecs::HitCandidateType candidateType; // Offset: 324 + keen::bool propagate; // Offset: 325 + keen::bool sendHitEvent; // Offset: 326 + keen::bool ignoreConsecutiveHits; // Offset: 327 +}; + +struct ecs.ResourceCandidate { + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::HashKey32 attributeId; // Offset: 12 + keen::sint32 change; // Offset: 16 +}; + +struct ecs.ResourceChange { + keen::uint32 gain; // Offset: 0 + keen::uint32 loss; // Offset: 4 +}; + +struct ecs.ResourceChangeEvent { + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::ecs::ResourceChange healthChange; // Offset: 12 + keen::ecs::ResourceChange manaChange; // Offset: 20 + keen::ecs::ResourceChange staminaChange; // Offset: 28 +}; + +struct ecs.EnemyAttackStartedEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.CallForHelpEvent { + keen::ecs::EntityId noticingEntityId; // Offset: 8 + keen::float3 noticingEntityPosition; // Offset: 12 + keen::ecs::EntityId noticedEntityId; // Offset: 24 + keen::float3 noticedEntityPosition; // Offset: 28 + keen::float32 radius; // Offset: 40 + keen::bool checkSight; // Offset: 44 + keen::FactionMask factions; // Offset: 46 +}; + +struct ecs.EnemyIsHelpingEvent { + keen::ecs::EntityId helpingEntityId; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 12 +}; + +struct ecs.GenericEnemyEvent { + keen::ecs::EntityId enemyEntityId; // Offset: 8 + keen::ecs::EnemyEventType eventType; // Offset: 12 +}; + +struct ecs.NoiseEvent { + keen::ecs::EntityId senderId; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::float32 range; // Offset: 24 +}; + +struct ecs.ChildDestroyed { + keen::ecs::EntityId childId; // Offset: 8 + keen::ecs::EntityId parentId; // Offset: 12 +}; + +struct ecs.PickupEvent { + keen::float3 position; // Offset: 8 + keen::ItemId itemId; // Offset: 20 + keen::uint32 itemCount; // Offset: 24 + keen::ecs::EntityId pickedUpByEntityId; // Offset: 28 + keen::ecs::EntityId pickedUpFromEntityId; // Offset: 32 + keen::InventorySlotId targetSlotId; // Offset: 36 +}; + +enum class InventoryCategory { + Invalid = 0, + Customization = 1, + Equipment = 2, + Currency = 3, + Generic = 4, + Virtual = 5, +}; + +typedef keen::Bitmask8 InventoryCategoryMask; + +struct ecs.InventoryFull { + keen::ecs::EntityId pickedUpById; // Offset: 8 + keen::ecs::EntityId pickedUpFromId; // Offset: 12 + keen::InventoryCategoryMask mask; // Offset: 16 +}; + +struct ecs.XPGainedEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint32 amount; // Offset: 12 + keen::ExperienceSourceType source; // Offset: 16 +}; + +struct ecs.PuzzleCompletedEvent { + keen::StaticArray clusterPlayerEntityIds; // Offset: 8 +}; + +struct ecs.LevelUpEvent { + keen::WorldPosition position; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 32 + keen::Time duration; // Offset: 40 + keen::sint32 level; // Offset: 48 +}; + +struct ecs.AcceptOfferedInteractionEvent { + keen::ecs::EntityId guestEntityId; // Offset: 8 + keen::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.InteractionAcceptedEvent { + keen::ecs::EntityId guestEntityId; // Offset: 8 + keen::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.SetToggleStateEvent { + keen::ecs::EntityId senderId; // Offset: 8 + keen::SignalId signalId; // Offset: 12 + keen::bool newState; // Offset: 16 +}; + +struct ecs.ToggleInteractionEvent { + keen::ecs::EntityId guestId; // Offset: 8 + keen::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.ActionbarSelectionEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ActionbarSlotSelection selectedIndex; // Offset: 12 +}; + +struct ecs.InventoryStockSelectionEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint8 inventoryStockType; // Offset: 12 + keen::ItemId selectedItemId; // Offset: 16 +}; + +struct ecs.ChangeEquipmentEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId inventorySlotId; // Offset: 12 + keen::EquipmentSlot equipmentSlot; // Offset: 20 + keen::ecs::ChangeEquipment type; // Offset: 21 +}; + +struct ecs.SwapEquipmentSetEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId targetInventoryId; // Offset: 12 + keen::ecs::SwapEquipmentTarget type; // Offset: 16 +}; + +struct ecs.HandleEquipmentSlotChangedEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::EquipmentSlot equipmentSlot; // Offset: 12 +}; + +struct ecs.ConsumeItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId inventorySlotId; // Offset: 12 +}; + +struct ecs.InspectItemEvent { + keen::InventorySlotId inventorySlotId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 16 +}; + +struct ecs.UiCreateBuildingItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ActionbarSlotSelection selectedIndex; // Offset: 12 + keen::ItemId itemId; // Offset: 16 +}; + +struct ecs.UiCreateNpcItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ItemId itemId; // Offset: 12 +}; + +struct ecs.TeleportPlayerEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 12 + keen::float3 targetWorldPosition; // Offset: 16 +}; + +struct ecs.TransferItemToInventoryEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId targetInventoryId; // Offset: 12 + keen::InventorySlotId targetSlotId; // Offset: 16 + keen::ecs::EntityId sourceInventoryId; // Offset: 24 + keen::InventorySlotId sourceSlotId; // Offset: 28 + keen::InventoryActionType type; // Offset: 36 + keen::ecs::TransferItemToInventoryFlags flags; // Offset: 37 + keen::uint16 amount; // Offset: 38 +}; + +struct ecs.SortInventoryEvent { + keen::ecs::EntityId targetInventoryId; // Offset: 8 +}; + +struct ecs.LootInteractionEvent { + keen::ecs::EntityId guestId; // Offset: 8 + keen::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 + keen::bool lootAll; // Offset: 20 + keen::bool forAllPlayers; // Offset: 21 + keen::StaticArray knowledgeIds; // Offset: 24 +}; + +struct ecs.UiCraftRecipeEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.UiAutomaticTransferEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 + keen::ItemId itemId; // Offset: 20 + keen::uint16 amount; // Offset: 24 +}; + +struct ecs.UiSelectCraftingStationRecipeEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 +}; + +struct ecs.CraftRecipeEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.CraftRecipeSuccessEvent { + keen::WorkshopId workshopId; // Offset: 8 + keen::RecipeId recipeId; // Offset: 12 +}; + +struct ecs.UiPinRecipeEvent { + keen::RecipeId recipeId; // Offset: 8 + keen::bool pinRecipe; // Offset: 12 +}; + +struct ecs.UiWaypointEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 + keen::bool enable; // Offset: 40 +}; + +struct ecs.UiPingEvent { + keen::ecs::EntityId senderEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 +}; + +struct ecs.UiPingInputEvent { +}; + +typedef keen::HashKey32 MapMarkerTypeId; + +struct ecs.UiAddMapMarkerEvent { + keen::WorldPosition position; // Offset: 8 + keen::uint8 colorScheme; // Offset: 32 + keen::MapMarkerTypeId type; // Offset: 36 +}; + +struct ecs.UiRemoveMapMarkerEvent { + keen::uint32 handle; // Offset: 8 +}; + +struct ecs.ChangeCustomizationEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId targetSlotId; // Offset: 12 + keen::ItemId itemId; // Offset: 20 +}; + +struct ecs.OpenHudScreenEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId interactionHostId; // Offset: 12 + keen::HudScreenType screen; // Offset: 16 +}; + +struct ecs.KillFaction { + keen::FactionMask factionMask; // Offset: 8 + keen::uint32 playerMask; // Offset: 12 +}; + +struct ecs.StartFlyingEvent { + keen::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.StopFlyingEvent { + keen::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.EnterFlyingStateEvent { + keen::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.SyncedAttackEvent { + keen::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 12 + keen::Time resolveTime; // Offset: 16 + keen::ecs::SyncedAttackType type; // Offset: 24 +}; + +struct ecs.SyncedSequenceEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::ecs::EntityId triggeringEntityId; // Offset: 12 + keen::actor::ActorSequenceReference sequence; // Offset: 16 +}; + +struct ecs.VisceralAttackExecutedEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.OnDestroyNotifyEvent { + keen::WorldTransform transform; // Offset: 8 + keen::Guid type; // Offset: 64 + keen::float3 hitDirection; // Offset: 80 +}; + +enum class ecs.NotifyEventType { + Normal = 0, + Sfx = 1, + Vfx = 2, +}; + +struct ecs.NotifyEvent { + keen::ecs::Offset offset; // Offset: 8 + keen::WorldTransform transform; // Offset: 48 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::ecs::EntityId sourceEntityId; // Offset: 168 + keen::actor::SequenceRuntimeId sequenceId; // Offset: 176 + keen::uint32 slot; // Offset: 200 + keen::Guid typeGuid; // Offset: 204 + keen::ecs::NotifyEventType type; // Offset: 220 + keen::bool attach; // Offset: 221 + keen::bool canBeCanceled; // Offset: 222 +}; + +struct ecs.NotifyEnvFxEvent { + keen::Guid eventGuid; // Offset: 8 + keen::EnvironmentEffectType environmentEffectType; // Offset: 24 + keen::ecs::EntityId sourceEntityId; // Offset: 28 + keen::AttachmentSlot slot; // Offset: 32 + keen::ecs::Offset offset; // Offset: 36 + keen::bool attach; // Offset: 76 + keen::float32 rayOffsetY; // Offset: 80 + keen::float32 rayLength; // Offset: 84 +}; + +struct ecs.FootDown { + keen::EnvironmentEffectType environmentEffectType; // Offset: 8 + keen::ecs::EntityId sourceEntityId; // Offset: 12 + keen::AttachmentSlot slot; // Offset: 16 + keen::ecs::Offset offset; // Offset: 20 +}; + +struct ecs.FoleyEnvEvent { + keen::Guid eventGuid; // Offset: 8 + keen::FoleyType foleyFxType; // Offset: 24 + keen::ecs::EntityId sourceEntityId; // Offset: 28 +}; + +struct ecs.RegisterControlledCombatTargetEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.UnregisterControlledCombatTargetEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.LoreRead { + keen::LocaTagId locaTag; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.ItemUsed { + keen::ItemId itemId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.StartPlaySongEvent { + keen::ecs::EntityId playerId; // Offset: 8 + keen::SongId songId; // Offset: 12 +}; + +enum class ecs.SequenceTerminationReason { + Finished = 0, + AbortedDefault = 1, + AbortedDeath = 2, + AbortedMovement = 3, + AbortedInteract = 4, + AbortedFollowUp = 5, + AbortedExternalOverride = 6, + AbortedStopEntity = 7, +}; + +struct ecs.ItemKnowledgeGained { + keen::ItemId itemId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 + keen::ItemKnowledgeMask gainedKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeTriggerEvent { + keen::KnowledgeId knowledgeId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 + keen::bool removeKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeUnlockedEvent { + keen::KnowledgeId knowledgeId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 +}; + +enum class ecs.KnowledgeType { + None = 0, + Dialog = 1, + JournalEntry = 2, + JournalCompletion = 3, + Recipe = 4, + MapMarker = 5, + NpcUnlock = 6, +}; + +struct ecs.KnowledgeGained { + keen::ecs::KnowledgeType targetType; // Offset: 8 + keen::WorkshopId workshopId; // Offset: 12 + keen::NpcId npcId; // Offset: 16 + keen::RecipeId recipeId; // Offset: 20 + keen::JournalEntryId journalId; // Offset: 24 + keen::ecs::EntityId mapMarkerEntityId; // Offset: 28 +}; + +struct ecs.ParryEvent { + keen::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ecs::EntityId blockerEntityId; // Offset: 12 + keen::sint32 staminaDrain; // Offset: 16 +}; + +struct ecs.CookingEvent { + keen::ecs::Offset attachmentOffset; // Offset: 8 + keen::ecs::EntityId cookedEntityId; // Offset: 48 + keen::ItemId itemId; // Offset: 52 + keen::AttachmentSlot attachmentSlot; // Offset: 56 + keen::bool burned; // Offset: 57 +}; + +struct ecs.PlayerBaseChangeEvent { + keen::CharacterId playerCharacterId; // Offset: 8 + keen::BaseId baseId; // Offset: 24 +}; + +struct ecs.KickPlayerEvent { + keen::ecs::EntityId playerToKick; // Offset: 8 +}; + +struct ecs.FlameAltarEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId baseEntityId; // Offset: 12 + keen::ecs::FlameAltarActionType type; // Offset: 16 +}; + +struct ecs.EntityDiedEvent { + keen::ecs::EntityId deadEntityId; // Offset: 8 +}; + +struct ecs.ActivateFactionPacifyEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::FactionType faction; // Offset: 12 +}; + +struct ecs.ActivateFactionCallForHelpEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::FactionType faction; // Offset: 12 +}; + +struct ecs.StartGuardingEvent { + keen::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.StopGuardingEvent { + keen::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.DestroyedWithoutSurfaceEvent { + keen::WorldTransform transform; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 64 + keen::CollisionFeedbackMaterialReference material; // Offset: 68 +}; + +struct ecs.TransformedToLootEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::VfxUserEffectParameterDataBlock overwriteVfxParameters; // Offset: 12 + keen::bool useVfxDefaultParameters; // Offset: 76 +}; + +struct ecs.GameSettingsChangedEvent { + keen::ecs::GameSettings newSettings; // Offset: 8 +}; + +struct ecs.SetEnemyVariableEvent { + keen::ecs::EntityId enemyId; // Offset: 8 + keen::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ecs.UiWorldEvent { + keen::HashKey32 worldEventId; // Offset: 8 +}; + +struct ecs.DebugHitRequest { + keen::ecs::EntityId targetEntityId; // Offset: 0 + keen::WorldTransform sourceTransform; // Offset: 8 + keen::impact::MajorDirection majorHitDirection; // Offset: 64 +}; + +struct ecs.DebugHitResult { + keen::float3 hitPosition; // Offset: 0 + keen::float3 hitNormal; // Offset: 12 + keen::float3 hitDirection; // Offset: 24 + keen::float32 hitAngle; // Offset: 36 + keen::bool hit; // Offset: 40 +}; + +struct GuidRegistryResource { + keen::BlobArray guids; // Offset: 0 +}; + +enum class impact.ImpactFilter { + Player = 0, + Enemy = 1, +}; + +enum class impact.AttackFlags { + CanBeBlocked = 0, +}; + +struct impact.DamageData { +}; + +struct impact.DamageConfig { +}; + +struct impact.SphereColliderConfig { +}; + +struct impact.ImpactQueryResult { + keen::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::ecs::QueryResultFlags flags; // Offset: 28 +}; + +enum class impact.Flags { + Initialized = 0, + Executed = 1, + CleanupDone = 2, + Halt = 3, + Error = 4, + Result_DestroyEntity = 5, +}; + +struct impact.DebugServerImpactMessage { + keen::impact::ImpactId id; // Offset: 0 +}; + +struct impact.DebugImpactRequestMessage { + keen::Guid impactGuid; // Offset: 0 +}; + +struct impact.DebugImpcatState { + keen::uint16 rPC; // Offset: 0 + keen::uint16 rSP; // Offset: 2 + keen::uint16 rFP; // Offset: 4 + keen::Bitmask8 flags; // Offset: 6 + keen::BlobArray stack; // Offset: 8 + keen::BlobArray data; // Offset: 16 +}; + +struct impact.DebugImpactFunctionCall { + keen::uint16 pc; // Offset: 0 + keen::impact::DebugImpcatState beforeUpdate; // Offset: 4 + keen::impact::DebugImpcatState afterUpdate; // Offset: 28 +}; + +struct impact.DebugImpactData { + keen::ecs::EntityId rootId; // Offset: 0 + keen::impact::DebugImpcatState beforeUpdate; // Offset: 4 + keen::impact::DebugImpcatState afterUpdate; // Offset: 28 + keen::BlobArray calls; // Offset: 52 + keen::BlobArray programCounter; // Offset: 60 + keen::BlobArray appliedConfigurations; // Offset: 68 +}; + +struct impact.DebugImpact { + keen::Guid impactId; // Offset: 0 + keen::uint32 tick; // Offset: 16 + keen::ecs::EntityId impactEntityId; // Offset: 20 + keen::impact::DebugImpactData data; // Offset: 24 +}; + +enum class ImpactOps { + INVALID = 0, + IADD = 1, + ISUB = 2, + IMUL = 3, + IDIV = 4, + ILT = 5, + IEQ = 6, + ILEQ = 7, + BR = 8, + BRT = 9, + BRF = 10, + ICONST = 11, + ICONST0 = 12, + ICONST1 = 13, + INC = 14, + DEC = 15, + COPY = 16, + DUP = 17, + CALL = 18, + ECALL = 19, + RET = 20, + LOAD = 21, + GLOAD = 22, + STORE = 23, + GSTORE = 24, + LTIME = 25, + TIMEFF = 26, + POP = 27, + RVM = 28, + DSELF = 29, + HALT = 30, +}; + +enum class impact.ImpcatValueNumberFormat { + Normal = 0, + Percentage = 1, + Duration = 2, + Numberless = 3, +}; + +typedef keen::ObjectReference impact.ConfigIdReference; + +struct impact.ImpactConfig { + keen::LocaTagReference locaTag; // Offset: 0 + keen::bool isSigned; // Offset: 16 + keen::impact::ImpcatValueNumberFormat valueFormat; // Offset: 17 + keen::impact::ConfigIdReference id; // Offset: 20 + keen::HashKey32 configId; // Offset: 36 + keen::HashKey32 type; // Offset: 40 + keen::Guid configGuid; // Offset: 44 + keen::Guid objectId; // Offset: 60 +}; + +struct impact.BuffImpactConfig { + keen::BuffTypeReference value; // Offset: 76 +}; + +struct impact.EnemyVariableImpactConfig { + keen::enemy01::EnemyVariableReference value; // Offset: 76 +}; + +struct impact_nodes.ImpactNode { + keen::Vector2 uiPosition; // Offset: 0 +}; + +struct impact_nodes.ImpactValueNode { + keen::impact::ConfigIdReference id; // Offset: 8 + keen::LocaTagReference locaTag; // Offset: 24 + keen::bool isSigned; // Offset: 40 + keen::impact::ImpcatValueNumberFormat valueFormat; // Offset: 41 + keen::Guid objectId; // Offset: 44 +}; + +struct impact_nodes.BuffValueNode { + keen::BuffTypeReference value; // Offset: 60 +}; + +struct impact_nodes.ImpactExecutableNode { +}; + +struct impact_nodes.ApplyBuff { + keen::BuffTypeReference buffInput; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 24 + keen::impact::DamageSetup damageSetup; // Offset: 28 + keen::Time durationInput; // Offset: 80 +}; + +struct impact_nodes.ImpactBranchNode { +}; + +struct impact_nodes.ImpactNodeExecutionBranch { +}; + +struct impact_nodes.IfBranchNode { + keen::bool negate; // Offset: 8 + keen::impact_nodes::ImpactNodeExecutionBranch ifBranch; // Offset: 9 + keen::impact_nodes::ImpactNodeExecutionBranch elseBranch; // Offset: 10 +}; + +struct impact_nodes.HasBuffNode { + keen::BuffTypeReference buffInput; // Offset: 12 + keen::ecs::EntityId targetEntityId; // Offset: 28 +}; + +struct impact_nodes.RemoveBuff { + keen::BuffTypeReference buffInput; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 24 + keen::bool wasRemoved; // Offset: 28 +}; + +struct ecs.ImpactHierarchy { + keen::ecs::EntityId parentImpactId; // Offset: 0 + keen::ecs::EntityId rootImpactId; // Offset: 4 + keen::ecs::EntityId weaponPideId; // Offset: 8 + keen::ecs::EntityId permissionCheckId; // Offset: 12 +}; + +struct ecs.ImpactItemConfig { + keen::ItemInstanceInfo usedItem; // Offset: 0 + keen::ItemInstanceInfo ammunitionItem; // Offset: 20 + keen::PerkId usedPerkId; // Offset: 40 +}; + +struct ecs.SequenceEventCollider { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.SequenceEventImpactConfig { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.ImpactConfiguration { + keen::impact::Configurations configValues; // Offset: 0 + keen::impact::DamageDistribution damageDistribution; // Offset: 8 + keen::bool damageDistributionIsSet; // Offset: 60 +}; + +struct ecs.ImpactDirection { + keen::impact::MajorDirection direction; // Offset: 0 +}; + +struct ecs.Impact { + keen::ImpactProgramReference program; // Offset: 0 + keen::impact::ImpactId impactId; // Offset: 16 +}; + +struct ecs.ImpactHalted { +}; + +typedef keen::uint32 ImpactCommand; + +enum class TerraformingType { + Remove = 0, + Add = 1, + Flatten = 2, + FlattenHorizontal = 3, +}; + +enum class WeaponCategoryType { + OneHandAxe = 0, + OneHandClub = 1, + OneHandSword = 2, + RangedBow = 3, + RangedStaff = 4, + RangedWand = 5, + TwoHandAxe = 6, + TwoHandClub = 7, + TwoHandHammer = 8, + UnarmedFists = 9, + Throwable = 10, + Dagger = 11, +}; + +typedef keen::Bitmask16 WeaponCategoryTypeMask; + +enum class VisceralAttackType { + Invalid = 0, + Sneak = 1, + Merciless = 2, +}; + +typedef keen::HashKey32 impact.ProgramId; + +typedef keen::HashKey32 impact.VariableTypeId; + +struct impact.ConfigId { +}; + +typedef keen::HashKey32 impact.ConfigIdHash; + +struct impact.ConfigIdCollection { +}; + +struct impact.ConfigValueId { + keen::uint32 value; // Offset: 0 +}; + +struct impact.TypedValue32 { +}; + +struct impact.FloatImpactConfig { + keen::float32 value; // Offset: 76 +}; + +struct impact.Uint32ImpactConfig { + keen::uint32 value; // Offset: 76 +}; + +struct impact.Sint32ImpactConfig { + keen::sint32 value; // Offset: 76 +}; + +struct impact.BoolImpactConfig { + keen::bool value; // Offset: 76 +}; + +struct impact.Float2ImpactConfig { + keen::float2 value; // Offset: 76 +}; + +struct impact.Float3ImpactConfig { + keen::float3 value; // Offset: 76 +}; + +struct impact.Float4ImpactConfig { + keen::float4 value; // Offset: 76 +}; + +struct impact.TemplateImpactConfig { + keen::ecs::TemplateReference value; // Offset: 76 +}; + +struct impact.EntityTagImpactConfig { + keen::ecs::EntityTagReference value; // Offset: 76 +}; + +struct impact.MaterialImpactConfig { + keen::CollisionFeedbackMaterialReference value; // Offset: 76 +}; + +struct impact.TimeImpactConfig { + keen::Time value; // Offset: 80 +}; + +struct impact.FactionImpactConfig { + keen::FactionType value; // Offset: 76 +}; + +struct impact.AttributeReferenceConfig { + keen::AttributeReference value; // Offset: 76 +}; + +struct impact.VisceralAttackTypeConfig { + keen::VisceralAttackType value; // Offset: 76 +}; + +struct impact.DamageTerraformingSetup { + keen::sint32 softDamage; // Offset: 0 + keen::sint32 slightlyHardDamage; // Offset: 4 + keen::sint32 moderatelyHardDamage; // Offset: 8 + keen::sint32 hardDamage; // Offset: 12 + keen::sint32 veryHardDamage; // Offset: 16 +}; + +struct impact.DamageTerraformingRuntimeSetup { + keen::float32 woodDamageMod; // Offset: 20 + keen::float32 stoneDamageMod; // Offset: 24 + keen::float32 metalDamageMod; // Offset: 28 +}; + +struct impact.DamageTerraformingSetupConfig { + keen::impact::DamageTerraformingSetup value; // Offset: 76 +}; + +struct impact.ArmorDistribution { + keen::float32 physical; // Offset: 0 + keen::float32 blunt; // Offset: 4 + keen::float32 pierce; // Offset: 8 + keen::float32 cut; // Offset: 12 + keen::float32 magical; // Offset: 16 + keen::float32 fire; // Offset: 20 + keen::float32 ice; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 lightning; // Offset: 32 +}; + +struct impact.TerraformingTypeConfig { + keen::TerraformingType value; // Offset: 76 +}; + +enum class impact.DamageTypeNew { + Physical_Cut = 0, + Physical_Pierce = 1, + Physical_Blunt = 2, + Magical_Fire = 3, + Magical_Ice = 4, + Magical_Fog = 5, + Magical_Lightning = 6, + Healing = 7, + Poison = 8, + Wood = 9, + Stone = 10, + Metal = 11, + Explosion = 12, +}; + +struct impact.AttackCategoryMaskConfig { + keen::impact::AttackCategoryMask value; // Offset: 76 +}; + +typedef keen::ObjectReference WeaponCategoryReference; + +struct impact.WeaponCategoryConfig { + keen::WeaponCategoryReference value; // Offset: 76 +}; + +struct impact.MajorDirectionConfig { + keen::impact::MajorDirection value; // Offset: 76 +}; + +struct impact.HitReactionTypeConfig { + keen::impact::HitReactionType value; // Offset: 76 +}; + +struct impact.PushBackForceConfig { + keen::impact::PushBackForce value; // Offset: 76 +}; + +enum class impact.EventStream { + OnCollision = 0, + OnHit = 1, + OnParry = 2, + OnFootDown = 3, +}; + +typedef keen::Bitmask8 impact.EventStreamMask; + +struct ImpactUiValue { + keen::LocaTagId locaId; // Offset: 0 + keen::bool isSigned; // Offset: 4 + keen::impact::ImpcatValueNumberFormat valueFormat; // Offset: 5 + keen::sint32 value; // Offset: 8 +}; + +typedef keen::ObjectReference impact_nodes.NodeReference; + +struct impact_nodes.ResetPoint { +}; + +struct impact_nodes.TerraformingTypeValueNode { + keen::TerraformingType value; // Offset: 60 +}; + +struct impact_nodes.ExecutionLink { + keen::impact_nodes::NodeReference startNode; // Offset: 0 + keen::BlobString startElementName; // Offset: 16 + keen::impact_nodes::NodeReference endNode; // Offset: 24 +}; + +struct impact_nodes.DataLink { + keen::impact_nodes::NodeReference ownerNodeId; // Offset: 0 + keen::BlobString ownerMemberName; // Offset: 16 + keen::impact_nodes::NodeReference accessorNodeId; // Offset: 24 + keen::BlobString accessorMemberName; // Offset: 40 +}; + +struct impact_nodes.FloatValueNode { + keen::float32 value; // Offset: 60 +}; + +struct impact_nodes.Uint32ValueNode { + keen::uint32 value; // Offset: 60 +}; + +struct impact_nodes.Sint32ValueNode { + keen::sint32 value; // Offset: 60 +}; + +struct impact_nodes.BoolValueNode { + keen::bool value; // Offset: 60 +}; + +struct impact_nodes.Float2ValueNode { + keen::float2 value; // Offset: 60 +}; + +struct impact_nodes.Float3ValueNode { + keen::float3 value; // Offset: 60 +}; + +struct impact_nodes.Float4ValueNode { + keen::float4 value; // Offset: 60 +}; + +struct impact_nodes.TemplateValueNode { + keen::ecs::TemplateReference value; // Offset: 60 +}; + +struct impact_nodes.EntityTagValueNode { + keen::ecs::EntityTagReference value; // Offset: 60 +}; + +struct impact_nodes.MaterialValueNode { + keen::CollisionFeedbackMaterialReference value; // Offset: 60 +}; + +struct impact_nodes.TimeValueNode { + keen::Time value; // Offset: 64 +}; + +struct impact_nodes.FactionValueNode { + keen::FactionType value; // Offset: 60 +}; + +struct impact_nodes.AttributeReferenceValueNode { + keen::AttributeReference value; // Offset: 60 +}; + +struct impact_nodes.DamageSetupValueNode { + keen::impact::DamageSetup value; // Offset: 60 +}; + +struct impact_nodes.DamageTerraformingSetupValueNode { + keen::impact::DamageTerraformingSetup value; // Offset: 60 +}; + +struct impact_nodes.AttackCategoryMaskValueNode { + keen::impact::AttackCategoryMask value; // Offset: 60 +}; + +struct impact_nodes.WeaponCategoryValueNode { + keen::WeaponCategoryReference value; // Offset: 60 +}; + +struct impact_nodes.MajorDirectionValueNode { + keen::impact::MajorDirection value; // Offset: 60 +}; + +struct impact_nodes.HitReactionTypeValueNode { + keen::impact::HitReactionType value; // Offset: 60 +}; + +struct impact_nodes.PushBackForceValueNode { + keen::impact::PushBackForce value; // Offset: 60 +}; + +struct impact_nodes.VisceralAttackTypeValueNode { + keen::VisceralAttackType value; // Offset: 60 +}; + +struct impact_nodes.HaltNode { +}; + +struct impact_nodes.DestroySelfNode { +}; + +struct impact_nodes.ResetNode { +}; + +struct impact_nodes.RVM { +}; + +struct impact_nodes.GetParent { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetRoot { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetEntityParent { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetHitTarget { + keen::ecs::EntityId entityId; // Offset: 8 + keen::ecs::EntityId hitEntityId; // Offset: 12 +}; + +struct impact_nodes.GetLockedTarget { + keen::ecs::TargetType type; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::ecs::EntityId targetId; // Offset: 16 +}; + +struct impact_nodes.GetSelf { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetTransform { + keen::ecs::EntityId entityId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.GetSlotTransform { + keen::AttachmentSlot slot; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.ConsumeItem { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.ApplyOffset { + keen::WorldTransform transform; // Offset: 8 + keen::float3 localOffset; // Offset: 64 + keen::float3 worldOffset; // Offset: 76 + keen::float4 orientationOffset; // Offset: 88 + keen::WorldTransform result; // Offset: 104 +}; + +struct impact_nodes.StartQuery { + keen::WorldTransform transform; // Offset: 8 + keen::float32 range; // Offset: 64 + keen::float3 offset; // Offset: 68 + keen::ecs::QueryId queryId; // Offset: 80 + keen::ecs::ColliderFlags colliderFlag; // Offset: 84 + keen::bool sortByDistance; // Offset: 86 +}; + +struct impact_nodes.StopQuery { + keen::ecs::QueryId queryId; // Offset: 8 +}; + +struct impact_nodes.FetchAttribute { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::impact::TypedValue32 value; // Offset: 28 +}; + +struct impact_nodes.SetAttribute { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::impact::TypedValue32 value; // Offset: 28 +}; + +enum class impact_nodes.ValuesMathOperator { + Add = 0, + Sub = 1, + Mul = 2, + Div = 3, +}; + +struct impact_nodes.ApplyChange { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::AttributeReference attributeRefInput; // Offset: 28 + keen::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::impact::TypedValue32 valueStorage; // Offset: 45 + keen::bool valueStorageSign; // Offset: 46 + keen::impact::TypedValue32 value; // Offset: 47 +}; + +struct impact_nodes.ChangeAttribute { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::AttributeReference attributeRefInput; // Offset: 28 + keen::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::impact::TypedValue32 valueStorage; // Offset: 45 + keen::impact::TypedValue32 value; // Offset: 46 +}; + +struct impact_nodes.AddValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.SubValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.MulValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.DivValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.Normalize { + keen::float3 input; // Offset: 8 + keen::float3 result; // Offset: 20 +}; + +struct impact_nodes.SetLength { + keen::float3 input; // Offset: 8 + keen::float32 length; // Offset: 20 + keen::float3 result; // Offset: 24 +}; + +struct impact_nodes.GetLength { + keen::float3 input; // Offset: 8 + keen::float32 result; // Offset: 20 +}; + +struct impact_nodes.SpawnEntity { + keen::bool breakImpactHierarchy; // Offset: 8 + keen::ecs::TemplateReference templateInput; // Offset: 12 + keen::WorldTransform transform; // Offset: 32 + keen::float3 position; // Offset: 88 + keen::float3 velocity; // Offset: 100 + keen::ecs::EntityId targetEntityId; // Offset: 112 + keen::ecs::EntityId parentEntityId; // Offset: 116 + keen::uint32 levelOverride; // Offset: 120 + keen::FactionType factionOverride; // Offset: 124 + keen::ecs::EntityId entityId; // Offset: 128 +}; + +struct impact_nodes.CreateDamageSetup { + keen::sint32 physicalCutDamage; // Offset: 8 + keen::sint32 physicalPierceDamage; // Offset: 12 + keen::sint32 physicalBluntDamage; // Offset: 16 + keen::sint32 magicalFireDamage; // Offset: 20 + keen::sint32 magicalIceDamage; // Offset: 24 + keen::sint32 magicalFogDamage; // Offset: 28 + keen::sint32 magicalFogLightning; // Offset: 32 + keen::sint32 healing; // Offset: 36 + keen::sint32 poisonDamage; // Offset: 40 + keen::sint32 woodDamage; // Offset: 44 + keen::sint32 stoneDamage; // Offset: 48 + keen::sint32 metalDamage; // Offset: 52 + keen::sint32 explosionDamage; // Offset: 56 + keen::impact::DamageSetup damageSetup; // Offset: 60 +}; + +struct impact_nodes.ApplyDamage { + keen::ecs::EntityId sourceId; // Offset: 12 + keen::ecs::EntityId targetId; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::impact::MajorDirection hitDirection; // Offset: 44 + keen::float32 attackMod; // Offset: 48 + keen::float32 attackStaminaMod; // Offset: 52 + keen::float32 noiseRange; // Offset: 56 + keen::sint32 manaCost; // Offset: 60 + keen::AttributeRootReference damageScaleAttribute; // Offset: 64 + keen::impact::PushBackForce pushBack; // Offset: 80 + keen::impact::HitReactionType hitReaction; // Offset: 82 + keen::impact::DamageSetup damageSetup; // Offset: 84 + keen::impact::AttackCategoryMask attackCategory; // Offset: 136 + keen::WeaponCategoryReference weaponCategory; // Offset: 140 + keen::CollisionFeedbackMaterialReference materialId; // Offset: 156 + keen::bool canBeBlocked; // Offset: 172 + keen::bool canCrit; // Offset: 173 + keen::VisceralAttackType visceralAttackType; // Offset: 174 + keen::bool ignoreConsecutiveHits; // Offset: 175 + keen::bool pusbackDirectionOverride; // Offset: 176 + keen::bool wasBlocked; // Offset: 177 +}; + +struct impact_nodes.GetConsecutiveHitCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.IsConsecutiveHit { + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsSkillUnlocked { + keen::ecs::EntityId entityId; // Offset: 12 + keen::skilltree_nodes::NodeReference skill; // Offset: 16 +}; + +struct impact_nodes.ClearConsecutiveHits { + keen::Time clearInterval; // Offset: 8 +}; + +struct impact_nodes.GetCursorTransform { + keen::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 +}; + +struct impact_nodes.Terraforming { + keen::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::TerraformingType terraformingType; // Offset: 72 + keen::impact::DamageTerraformingSetup damageTerraformingSetup; // Offset: 76 + keen::CollisionFeedbackMaterialReference materialId; // Offset: 96 + keen::float32 rangeDefault; // Offset: 112 + keen::float32 rangeAdd; // Offset: 116 + keen::float32 rangeFlatten; // Offset: 120 +}; + +struct impact_nodes.GetQueryResultCount { + keen::ecs::QueryId queryId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FetchQueryResult { + keen::ecs::QueryId queryId; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::bool hit; // Offset: 44 + keen::bool queryNew; // Offset: 45 + keen::bool updateNew; // Offset: 46 +}; + +struct impact_nodes.SetTransform { + keen::WorldTransform transform; // Offset: 8 +}; + +struct impact_nodes.GetOnCollisionEventCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.Wait { + keen::Time durationInput; // Offset: 8 +}; + +struct impact_nodes.FetchOnCollisionEvent { + keen::uint32 index; // Offset: 12 + keen::bool ignoreSameRoot; // Offset: 16 + keen::bool ignoreWeakspots; // Offset: 17 + keen::ecs::EntityId otherEntity; // Offset: 20 + keen::ecs::EntityId otherEntityRoot; // Offset: 24 + keen::bool combatCollider; // Offset: 28 + keen::float3 position; // Offset: 32 + keen::float3 normal; // Offset: 44 + keen::bool isWeakSpot; // Offset: 56 +}; + +struct impact_nodes.TriggerNoise { + keen::float3 position; // Offset: 8 + keen::float32 range; // Offset: 20 +}; + +struct impact_nodes.PacifyFaction { + keen::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.CallFactionForHelp { + keen::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.RandomBranchNode { + keen::float32 chance; // Offset: 12 +}; + +struct impact_nodes.RandomValueNode { + keen::float32 value; // Offset: 8 +}; + +struct impact_nodes.ForEach { + keen::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::uint32 count; // Offset: 16 +}; + +struct impact_nodes.WhileLoopBranchNode { + keen::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 +}; + +struct impact_nodes.OnEvent { + keen::impact::EventStream eventType; // Offset: 8 + keen::impact::EventStream eventStream; // Offset: 9 +}; + +struct impact_nodes.FilterRandom { + keen::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FilterFriends { + keen::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterSameRoot { + keen::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterRootEntity { + keen::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterFaction { + keen::impact::EventStream eventStream; // Offset: 8 + keen::FactionMask faction; // Offset: 10 +}; + +struct impact_nodes.FilterConsecutiveHits { + keen::impact::EventStream eventStream; // Offset: 8 +}; + +struct impact_nodes.FilterEntityTag { + keen::impact::EventStream eventStream; // Offset: 8 + keen::ecs::EntityTagReference entityTag; // Offset: 12 + keen::bool invert; // Offset: 28 +}; + +struct impact_nodes.ForEachCollisionInStream { + keen::impact::EventStream eventStream; // Offset: 16 + keen::ecs::EntityId otherEntity; // Offset: 20 + keen::ecs::EntityId otherRootEntity; // Offset: 24 + keen::float3 position; // Offset: 28 + keen::float3 normal; // Offset: 40 + keen::WorldTransform transform; // Offset: 56 + keen::uint32 voxelMaterial; // Offset: 112 + keen::bool isCombatTarget; // Offset: 116 + keen::bool isWeakSpot; // Offset: 117 +}; + +struct impact_nodes.ForEachFootDownInStream { + keen::impact::EventStream eventStream; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.IsStreamEmpty { + keen::impact::EventStream eventStream; // Offset: 12 +}; + +struct impact_nodes.GetStreamEventCount { + keen::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.ForEachCollision { + keen::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.ForEachHitEvent { + keen::bool wasParried; // Offset: 16 + keen::bool wasBlocked; // Offset: 17 + keen::bool wasBlockBroken; // Offset: 18 + keen::bool wasBackstab; // Offset: 19 + keen::bool wasCrit; // Offset: 20 + keen::bool wasImmune; // Offset: 21 + keen::bool wasKillingBlow; // Offset: 22 + keen::bool wasVisceral; // Offset: 23 + keen::bool wasWeakspot; // Offset: 24 + keen::bool wasSkillShot; // Offset: 25 + keen::FactionType targetFaction; // Offset: 26 + keen::impact::AttackCategoryMask attackCategory; // Offset: 27 + keen::WeaponCategoryReference weaponCategory; // Offset: 28 + keen::ecs::EntityId rootEntity; // Offset: 44 + keen::ecs::EntityId sourceEntity; // Offset: 48 + keen::ecs::EntityId targetRootEntity; // Offset: 52 + keen::ecs::EntityId targetEntity; // Offset: 56 + keen::ecs::EntityId weaponEntity; // Offset: 60 + keen::float3 position; // Offset: 64 + keen::float3 normal; // Offset: 76 + keen::sint32 healthChange; // Offset: 88 + keen::sint32 staminaChange; // Offset: 92 +}; + +struct impact_nodes.SendBaseHitEvent { + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::CollisionFeedbackMaterialReference impactMaterial; // Offset: 32 + keen::uint32 voxelMaterial; // Offset: 48 + keen::ecs::EntityId targetId; // Offset: 52 +}; + +struct impact_nodes.ForEachParryEvent { + keen::ecs::EntityId blockerId; // Offset: 16 + keen::ecs::EntityId attackerId; // Offset: 20 + keen::sint32 staminaDrain; // Offset: 24 +}; + +struct impact_nodes.ForEachItemInBackpack { + keen::ecs::EntityId ownerId; // Offset: 16 + keen::ecs::EntityId pideId; // Offset: 20 +}; + +struct impact_nodes.BoolIfBranchNode { + keen::bool value; // Offset: 12 +}; + +enum class impact_nodes.ValuesCompareOperator { + Equal = 0, + Less = 1, +}; + +struct impact_nodes.IsEqual { + keen::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::impact::TypedValue32 valueA; // Offset: 13 + keen::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsLess { + keen::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::impact::TypedValue32 valueA; // Offset: 13 + keen::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsInState { + keen::ecs::EntityId entityId; // Offset: 12 + keen::actor::StateFlag state; // Offset: 16 +}; + +struct impact_nodes.HasFaction { + keen::ecs::EntityId entityId; // Offset: 12 + keen::FactionMask faction; // Offset: 16 +}; + +struct impact_nodes.HasEntityTag { + keen::ecs::EntityId entityId; // Offset: 12 + keen::ecs::EntityTagReference entityTag; // Offset: 16 +}; + +struct impact_nodes.IsValidEntity { + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsInsideBox { + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 + keen::float3 box; // Offset: 84 + keen::float3 boxOffset; // Offset: 96 +}; + +struct impact_nodes.HasAttackCategory { + keen::impact::AttackCategoryMask categoryMask; // Offset: 12 + keen::impact::AttackCategoryMask contains; // Offset: 13 + keen::bool matchAll; // Offset: 14 +}; + +struct impact_nodes.HasWeaponCategory { + keen::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::WeaponCategoryReference requiredCategory; // Offset: 28 +}; + +struct impact_nodes.HasWeaponCategoryType { + keen::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::WeaponCategoryTypeMask allowedCategories; // Offset: 28 +}; + +struct impact_nodes.GetWeaponVisualEntityId { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.IsSameEntity { + keen::ecs::EntityId entityAId; // Offset: 12 + keen::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsEnemy { + keen::ecs::EntityId entityAId; // Offset: 12 + keen::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsFriend { + keen::ecs::EntityId entityAId; // Offset: 12 + keen::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.GetEnemyCountInRange { + keen::ecs::EntityId entityId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.SetEnemyVariable { + keen::ecs::EntityId entityId; // Offset: 8 + keen::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ImpactDefinition { +}; + +struct ImpactVariable { + keen::HashKey32 name; // Offset: 0 + keen::HashKey32 configId; // Offset: 4 + keen::HashKey32 type; // Offset: 8 + keen::uint16 size; // Offset: 12 + keen::uint16 offsetInBytes; // Offset: 14 + keen::BlobString dbgName; // Offset: 16 +}; + +struct ImpactProgram { + keen::impact::ProgramId id; // Offset: 0 + keen::Guid programGuid; // Offset: 4 + keen::uint16 stackSize; // Offset: 20 + keen::impact::EventStreamMask usedStreams; // Offset: 22 + keen::BlobArray code; // Offset: 24 + keen::BlobArray codeShutdown; // Offset: 32 + keen::BlobArray dataLayout; // Offset: 40 + keen::BlobArray data; // Offset: 48 +}; + +struct ImpactConfigInfoEntry { + keen::string nodeName; // Offset: 0 + keen::HashKey32 name; // Offset: 8 + keen::HashKey32 configId; // Offset: 12 + keen::HashKey32 type; // Offset: 16 +}; + +struct ExecutionInfo { + keen::Guid nodeId; // Offset: 0 + keen::BlobArray branch; // Offset: 16 +}; + +struct ImpactFunctionCallDebugInfo { + keen::string nodeName; // Offset: 0 + keen::Guid nodeId; // Offset: 8 + keen::uint16 pc; // Offset: 24 +}; + +struct ImpactInfo { + keen::Guid programGuid; // Offset: 0 + keen::uint32 cmdCount; // Offset: 16 + keen::BlobArray configs; // Offset: 20 + keen::BlobArray programFlow; // Offset: 28 + keen::BlobArray dataLayout; // Offset: 36 + keen::BlobArray debugInfo; // Offset: 44 + keen::BlobArray shutdownlDebugInfo; // Offset: 52 +}; + +struct ImpactConfigData { + keen::impact::Configurations configValues; // Offset: 0 +}; + +struct ImpactSubDirectory { +}; + +struct ImpactDirectory { +}; + +struct ImpactRegistryResource { + keen::BlobArray programs; // Offset: 0 +}; + +enum class CelestialBodyDirection { + Clockwise = 0, + Counterclockwise = 1, +}; + +struct CelestialBodySetup { + keen::float32 riseAngle; // Offset: 0 + keen::float32 setAngle; // Offset: 4 + keen::float32 zenithAngle; // Offset: 8 + keen::CelestialBodyDirection direction; // Offset: 12 +}; + +struct IngameTimeConfig { + keen::Time dayStart; // Offset: 0 + keen::Time dayEnd; // Offset: 8 + keen::CelestialBodySetup sunSetup; // Offset: 16 + keen::CelestialBodySetup moonSetup; // Offset: 32 +}; + +struct IngameTimeSpan { + keen::Time start; // Offset: 0 + keen::Time end; // Offset: 8 +}; + +enum class input_mapping.PresetId { + Custom = 0, + PresetA = 1, + PresetB = 2, + Default = 1, + MaxKeyboardMousePreset = 1, + MaxGamepadPreset = 2, +}; + +enum class input_mapping.ControlOperationType { + Invalid = 0, + Key = 1, + MouseButton = 2, + MouseWheel = 3, + MouseMove = 4, + GamepadButton = 5, + Axis = 6, + AnalogStick = 7, +}; + +enum class input_mapping.InputModality { + Press = 0, + Tap = 1, + Hold = 2, + Release = 3, +}; + +enum class input_mapping.AxisDirection { + Invalid = 0, + PositiveX = 1, + NegativeX = 2, + PositiveY = 3, + NegativeY = 4, +}; + +enum class input_mapping.runtime.GameplayAction { + MovementLeft = 0, + MovementRight = 1, + MovementUp = 2, + MovementDown = 3, + CameraLeft = 4, + CameraRight = 5, + CameraUp = 6, + CameraDown = 7, + CameraZoomIn = 8, + CameraZoomOut = 9, + MainhandAction = 10, + MainhandAction_Release = 11, + ContextualAction = 12, + ContextualAction_Tap = 13, + ContextualAction_Hold = 14, + CancelAction = 15, + AmmunitionSelectPrevious = 16, + AmmunitionSelectNext = 17, + ShowTutorial = 18, + BlueprintDistanceIncrease = 19, + BlueprintDistanceDecrease = 20, + BlueprintMaterialSelectPrevious = 21, + BlueprintMaterialSelectNext = 22, + BlueprintPageSelectPrevious = 23, + BlueprintPageSelectNext = 24, + BlueprintShapeSelectPrevious = 25, + BlueprintShapeSelectNext = 26, + BlueprintShapeSelect0 = 27, + BlueprintShapeSelect1 = 28, + BlueprintShapeSelect2 = 29, + BlueprintShapeSelect3 = 30, + BlueprintShapeSelect4 = 31, + BlueprintShapeSelect5 = 32, + BlueprintShapeSelect6 = 33, + BlueprintShapeSelect7 = 34, + BlueprintShapeSelect8 = 35, + BlueprintShapeSelect9 = 36, + QuickUse0 = 37, + QuickUse1 = 38, + QuickUse2 = 39, + QuickUse3 = 40, + QuickUse4 = 41, + QuickUse5 = 42, + QuickUse6 = 43, + QuickUse7 = 44, + QuickUse0_Release = 45, + QuickUse1_Release = 46, + QuickUse2_Release = 47, + QuickUse3_Release = 48, + QuickUse4_Release = 49, + QuickUse5_Release = 50, + QuickUse6_Release = 51, + QuickUse7_Release = 52, + Block = 53, + Evade = 54, + Jump = 55, + Jump_Hold = 56, + Glider = 57, + Respawn = 58, + ShowActionbarWheel = 59, + ActionbarSwapPage = 60, + ActionbarPreviousSlot = 61, + ActionbarNextSlot = 62, + LootSelectPrevious = 63, + LootSelectNext = 64, + SongSelectOpen = 65, + SongSelectPrevious = 66, + SongSelectNext = 67, + BuildingRotateLittleClockwise = 68, + BuildingRotateLittleCounterClockwise = 69, + BuildingRotateFarClockwise = 70, + BuildingRotateFarCounterClockwise = 71, + BuildingUndo = 72, + BuildingBlueprintSnapping = 73, + BuildingVoxelGridSnapping = 74, + LockCombatTarget = 75, + CombatTargetSelectPrevious = 76, + CombatTargetSelectNext = 77, + RangedCombatArm = 78, + RangedCombatShoot = 79, + Sprint = 80, + Sneak = 81, + Sit = 82, + UiSystemMenu = 83, + UiInGameMenu = 84, + UiBackpack = 85, + UiBuildingMenu = 86, + UiCharacter = 87, + UiCrafting = 88, + UiJournal = 89, + UiJumpToNotification = 90, + UiMap = 91, + UiSkills = 92, + UiUserFeedback = 93, + Count = 94, +}; + +enum class input_mapping.config.GameplayAction { + MovementLeft = 0, + MovementRight = 1, + MovementUp = 2, + MovementDown = 3, + CameraLeft = 4, + CameraRight = 5, + CameraUp = 6, + CameraDown = 7, + CameraZoomIn = 8, + CameraZoomOut = 9, + MainhandAction = 10, + ContextualAction = 11, + CancelAction = 12, + AmmunitionSelectPrevious = 13, + AmmunitionSelectNext = 14, + ShowTutorial = 15, + BlueprintDistanceIncrease = 16, + BlueprintDistanceDecrease = 17, + BlueprintMaterialSelectPrevious = 18, + BlueprintMaterialSelectNext = 19, + BlueprintPageSelectPrevious = 20, + BlueprintPageSelectNext = 21, + BlueprintShapeSelectPrevious = 22, + BlueprintShapeSelectNext = 23, + BlueprintShapeSelect0 = 24, + BlueprintShapeSelect1 = 25, + BlueprintShapeSelect2 = 26, + BlueprintShapeSelect3 = 27, + BlueprintShapeSelect4 = 28, + BlueprintShapeSelect5 = 29, + BlueprintShapeSelect6 = 30, + BlueprintShapeSelect7 = 31, + BlueprintShapeSelect8 = 32, + BlueprintShapeSelect9 = 33, + QuickUse0 = 34, + QuickUse1 = 35, + QuickUse2 = 36, + QuickUse3 = 37, + QuickUse4 = 38, + QuickUse5 = 39, + QuickUse6 = 40, + QuickUse7 = 41, + Block = 42, + Evade = 43, + Jump = 44, + Glider = 45, + Respawn = 46, + ShowActionbarWheel = 47, + ActionbarSwapPage = 48, + ActionbarPreviousSlot = 49, + ActionbarNextSlot = 50, + SongSelectOpen = 51, + SongSelectPrevious = 52, + SongSelectNext = 53, + BuildingRotateLittleClockwise = 54, + BuildingRotateLittleCounterClockwise = 55, + BuildingRotateFarClockwise = 56, + BuildingRotateFarCounterClockwise = 57, + BuildingUndo = 58, + BuildingSnapping = 59, + LockCombatTarget = 60, + CombatTargetSelectPrevious = 61, + CombatTargetSelectNext = 62, + RangedCombatArm = 63, + RangedCombatShoot = 64, + Sprint = 65, + Sneak = 66, + Sit = 67, + UiSystemMenu = 68, + UiInGameMenu = 69, + UiBackpack = 70, + UiBuildingMenu = 71, + UiCharacter = 72, + UiCrafting = 73, + UiJournal = 74, + UiJumpToNotification = 75, + UiMap = 76, + UiSkills = 77, + UiUserFeedback = 78, + Count = 79, +}; + +struct input_mapping.serialize.ControlOperation { + keen::input_mapping::ControlOperationType type; // Offset: 0 + keen::string id; // Offset: 4 + keen::input_mapping::AxisDirection axis; // Offset: 12 +}; + +struct input_mapping.serialize.ControlOperationCombo { + keen::input_mapping::serialize::ControlOperation operation; // Offset: 0 + keen::BlobArray modifiers; // Offset: 16 +}; + +struct input_mapping.serialize.KeyboardMouseAction { + keen::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 24 + keen::input_mapping::InputModality modality; // Offset: 48 + keen::bool toggle; // Offset: 49 +}; + +struct input_mapping.serialize.GamepadAction { + keen::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 24 + keen::input_mapping::InputModality modality; // Offset: 48 + keen::bool toggle; // Offset: 49 +}; + +struct input_mapping.serialize.ActionInputBinding { + keen::BlobString gameplay; // Offset: 0 + keen::input_mapping::serialize::KeyboardMouseAction keyboardMouse; // Offset: 8 + keen::input_mapping::serialize::GamepadAction gamepad; // Offset: 60 +}; + +struct input_mapping.serialize.InputBindings { + keen::input_mapping::PresetId customKeyboardMouseBasePresetId; // Offset: 0 + keen::input_mapping::PresetId customGamepadBasePresetId; // Offset: 1 + keen::BlobArray bindings; // Offset: 4 +}; + +enum class input_mapping.runtime.ContextualVector2Context { + PositionDelta = 0, + Velocity = 1, +}; + +struct input_mapping.runtime.ContextualVector2 { + keen::input_mapping::runtime::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.InteractionQuery { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 queryRadius; // Offset: 4 + keen::float3 queryOffset; // Offset: 8 +}; + +struct ecs.ClientInteractionQuery { + keen::uint32 nearestOfferedInteractionOfferId; // Offset: 0 + keen::ecs::SpecialInteraction specialInteraction; // Offset: 4 +}; + +struct ecs.InteractionAcceptData { + keen::ecs::EntityId guestId; // Offset: 0 + keen::InventorySlotId usedItem; // Offset: 4 + keen::uint32 offerId; // Offset: 12 +}; + +struct ecs.InteractionOffer { + keen::actor::ActorSequenceReference defaultAction; // Offset: 0 + keen::LocaTagReference verbLoca; // Offset: 16 + keen::LocaTagReference lastVerbLoca; // Offset: 32 + keen::LocaTagReference overrideVerbLoca; // Offset: 48 + keen::actor::SequenceResourceId overrideSequence; // Offset: 64 + keen::ecs::InteractionAcceptData lastAttemptData; // Offset: 68 + keen::ecs::InteractionAcceptData lastAcceptData; // Offset: 84 + keen::Time lastAcceptTime; // Offset: 104 + keen::uint32 offerId; // Offset: 112 + keen::LocaTagId verbId; // Offset: 116 + keen::bool isColliderDirty; // Offset: 120 + keen::bool isOffered; // Offset: 121 + keen::bool reduceInteractionWeight; // Offset: 122 +}; + +struct ecs.ClientInteractionOffer { + keen::LocaTagId verbId; // Offset: 0 + keen::ecs::EntityId lastAcceptionId; // Offset: 4 + keen::bool isOffered; // Offset: 8 +}; + +enum class ecs.InteractionLockFlag { + Consume = 0, + DestroyLock = 1, +}; + +typedef keen::Bitmask8 ecs.InteractionLockMask; + +struct ecs.InteractionLock { + keen::ItemReference requiredItemRef; // Offset: 0 + keen::ItemId requiredItem; // Offset: 16 + keen::PlayerPermissionsMask requiredPermission; // Offset: 20 + keen::ecs::InteractionLockMask lockMask; // Offset: 21 + keen::actor::ActorSequenceReference successfulAttempt; // Offset: 24 + keen::actor::ActorSequenceReference failedAttempt; // Offset: 40 + keen::bool destroy; // Offset: 56 +}; + +struct ecs.LootRefill { + keen::ItemReference lootableItemRef; // Offset: 0 + keen::uint32 refillCount; // Offset: 16 + keen::uint32 maxCount; // Offset: 20 +}; + +struct ecs.InteractionLootRefill { + keen::Time waitTime; // Offset: 0 + keen::LocaTagReference verbLoca; // Offset: 8 + keen::actor::ActorSequenceReference defaultSequence; // Offset: 24 + keen::BlobArray items; // Offset: 40 +}; + +struct ecs.DynamicInteractionLootRefill { + keen::Time nextRefill; // Offset: 0 +}; + +struct ecs.ClientInteractionLock { + keen::Guid failedAttempt; // Offset: 0 + keen::Guid successfulAttempt; // Offset: 16 + keen::ItemId requiredItem; // Offset: 32 + keen::uint32 offerId; // Offset: 36 + keen::PlayerPermissionsMask requiredPermission; // Offset: 40 +}; + +struct ecs.InteractionKnowledgeLock { + keen::ecs::ToggleModifier modifier; // Offset: 0 + keen::bool useSpawnKnowledgeRequirement; // Offset: 1 + keen::GameKnowledgeRequirement unlockRequiement; // Offset: 4 + keen::KnowledgeId queryId; // Offset: 108 +}; + +struct ecs.ClientInteractionToState { +}; + +struct ecs.InteractionPause { + keen::Time timeout; // Offset: 0 +}; + +struct ecs.RemoveInteractionOnEmptyInventory { +}; + +enum class ecs.DirectionalState { + Idle = 0, + Front = 1, + Back = 2, +}; + +struct ecs.DirectionalInteractionSetup { + keen::bool backToIdle; // Offset: 0 + keen::LocaTagReference verb; // Offset: 4 + keen::actor::ActorSequenceReference sequence; // Offset: 20 + keen::animationgraph::StateIdReference animationState; // Offset: 36 +}; + +struct ecs.DirectionalInteraction { + keen::ecs::DirectionalState state; // Offset: 0 + keen::ecs::DirectionalInteractionSetup idleState; // Offset: 4 + keen::ecs::DirectionalInteractionSetup frontInteraction; // Offset: 56 + keen::ecs::DirectionalInteractionSetup backInteraction; // Offset: 108 +}; + +struct ecs.InteractionToggle { + keen::LocaTagReference offToOnVerb; // Offset: 0 + keen::actor::ActorSequenceReference offToOnSequence; // Offset: 16 + keen::LocaTagReference onToOffVerb; // Offset: 32 + keen::actor::ActorSequenceReference onToOffSequence; // Offset: 48 +}; + +struct ecs.CraftingInteraction { + keen::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::ObjectReference workshop; // Offset: 12 + keen::WorkshopId workshopId; // Offset: 28 +}; + +struct ecs.ClientCraftingInteraction { + keen::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::WorkshopId workshopId; // Offset: 12 +}; + +struct ecs.InteractionAttachment { + keen::ecs::Offset guestOffset; // Offset: 0 + keen::Time lastAttachTime; // Offset: 40 +}; + +struct ecs.InteractionAttachmentGuest { + keen::ecs::EntityId lastHostEntityId; // Offset: 0 +}; + +struct ItemData { + keen::uint32 count; // Offset: 0 + keen::ecs::EntityId pide; // Offset: 4 +}; + +struct ItemStack { + keen::ItemId id; // Offset: 0 + keen::ItemData data; // Offset: 4 +}; + +struct ecs.DefaultInventoryDirectory { +}; + +struct ecs.DefaultInventoryEntry { + keen::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct ecs.RandomDefaultInventoryEntry { + keen::ItemReference item; // Offset: 0 + keen::uint32 countMin; // Offset: 16 + keen::uint32 countMax; // Offset: 20 + keen::float spawnProbability; // Offset: 24 +}; + +struct ecs.WeightedDefaultInventoryEntry { + keen::float weight; // Offset: 28 +}; + +struct ecs.RandomDefaultInventoryEntrySelector { +}; + +struct ecs.DefaultInventorySetup { +}; + +struct ecs.ItemStackInfoResource { + keen::ItemReference itemRef; // Offset: 0 + keen::ItemId item; // Offset: 16 + keen::uint32 countMin; // Offset: 20 + keen::uint32 countMax; // Offset: 24 + keen::float spawnProbability; // Offset: 28 +}; + +struct ecs.ItemStackInfoResourceWeighted { + keen::float weight; // Offset: 32 +}; + +struct ecs.DefaultInventoryEntrySelectorResource { + keen::BlobArray selectionCandidates; // Offset: 0 +}; + +struct ecs.DefaultInventoryResource { + keen::BlobArray stacks; // Offset: 0 + keen::BlobArray stackSelectors; // Offset: 8 +}; + +struct ecs.DefaultInventory { + keen::ecs::DefaultInventoryReference defaultInventory; // Offset: 0 + keen::bool keepOnRandomLoot; // Offset: 16 + keen::bool applied; // Offset: 17 +}; + +struct ecs.DefaultInventoryOverrides { + keen::ecs::DefaultInventoryReference slot1; // Offset: 0 + keen::ecs::DefaultInventoryReference slot2; // Offset: 16 + keen::ecs::DefaultInventoryReference slot3; // Offset: 32 +}; + +struct ecs.AffectedByIncreasedPickupSkill { +}; + +struct ecs.AdditionalMaterialLoot { + keen::ItemId additionalItemId; // Offset: 0 +}; + +struct ecs.InventoryLink { + keen::ecs::EntityId entityId; // Offset: 0 + keen::InventoryCategory category; // Offset: 4 +}; + +enum class ecs.InventoryFlags { + IsPlayer = 0, + IsNpc = 1, + ShowContentPreview = 2, +}; + +typedef keen::Bitmask8 ecs.InventorySetupMask; + +struct ecs.InventorySetup { + keen::StaticArray linksEntities; // Offset: 0 + keen::StaticArray linksCategories; // Offset: 64 + keen::ecs::InventorySetupMask inventoryFlags; // Offset: 80 + keen::uint8 genericSlotCount; // Offset: 81 + keen::uint8 availableSlotCount; // Offset: 82 + keen::bool isInitialized; // Offset: 83 +}; + +struct ecs.InventorySetupInit { +}; + +struct ecs.Inventory { + keen::StaticArray slots; // Offset: 0 +}; + +struct ecs.InventoryCraftingStock { +}; + +struct ecs.ResourceNodeDropInfo { + keen::ecs::TemplateReference entity; // Offset: 0 + keen::ItemReference item; // Offset: 16 + keen::uint8 stackAmount; // Offset: 32 + keen::float32 weight; // Offset: 36 +}; + +struct ecs.ResourceNodePickupDrops { + keen::ecs::TemplateReference pickupItemReference; // Offset: 0 + keen::BlobArray drops; // Offset: 16 + keen::uint8 numberOfDrops; // Offset: 24 + keen::float32 dropWhileAlivePercentage; // Offset: 28 + keen::bool dropInWorld; // Offset: 32 + keen::float32 yOffsetMin; // Offset: 36 + keen::float32 yOffsetMax; // Offset: 40 + keen::float32 dropRadiusMin; // Offset: 44 + keen::float32 dropRadiusMax; // Offset: 48 + keen::float32 velocityMin; // Offset: 52 + keen::float32 velocityMax; // Offset: 56 +}; + +struct ecs.MiningNodeKnowledge { + keen::bool useSpawnTriggerKnowledge; // Offset: 0 + keen::ObjectReference knowledgeNode; // Offset: 4 + keen::bool unlockForGroup; // Offset: 20 +}; + +struct ecs.PickupItem { + keen::ItemId itemId; // Offset: 0 + keen::ItemReference item; // Offset: 4 + keen::uint32 level; // Offset: 20 + keen::ItemRarity rarity; // Offset: 24 + keen::uint16 pickupAmount; // Offset: 26 +}; + +struct ecs.PickupItemModelSetup { +}; + +struct ecs.DestroyOnLoot { + keen::Time despawnTime; // Offset: 0 + keen::NotifierReference vfxOnDestroy; // Offset: 8 + keen::ecs::Offset offset; // Offset: 24 + keen::bool isActive; // Offset: 64 + keen::bool shouldDestroy; // Offset: 65 + keen::SoundContainerReference sfx; // Offset: 68 + keen::VfxReference vfx; // Offset: 84 +}; + +struct ecs.DestroyOnLootActivated { +}; + +struct ecs.AddDestructibleOnLoot { + keen::uint32 health; // Offset: 0 +}; + +enum class ItemCategory { + Customization = 0, + Equipment = 1, + Weapons = 2, + Tools = 3, + Instrument = 4, + BuildTools = 5, + Consumables = 6, + Ammunition = 7, + Materials = 8, + Blueprints = 9, + Currency = 10, + Collectibles = 11, + AnimalFood = 12, + PetFood = 13, +}; + +typedef keen::Bitmask16 ItemCategoryMask; + +enum class CrosshairType { + None = 0, + Bow = 1, + Wand = 2, + Staff_Directional = 3, + Staff_Area = 4, + Building = 5, + Terraforming = 6, +}; + +typedef keen::Bitmask8 ItemRarityMask; + +enum class ItemFlag { + HasKnowledgeUnlocks = 0, + HasPIDE = 1, + IsContainer = 2, + IsBlueprint = 3, + IsTerraformer = 4, + IsNpc = 5, + IsCookable = 6, + IsAnimal = 7, + IsAnimalBait = 8, + CanTriggerCooking = 9, + TwitchDrop = 10, + CommerceItem = 11, +}; + +typedef keen::Bitmask16 ItemFlags; + +struct ItemTag { + keen::LocaTagReference label; // Offset: 0 +}; + +typedef keen::ObjectReference ItemTagReference; + +struct ItemTagWeight { + keen::ItemTagReference tag; // Offset: 0 + keen::uint32 nominator; // Offset: 16 + keen::uint32 denominator; // Offset: 20 +}; + +struct ItemTagInfo { + keen::Guid tagGuid; // Offset: 0 + keen::LocaTagId labelId; // Offset: 16 +}; + +struct ItemTagInfoList { + keen::BlobArray itemTags; // Offset: 0 +}; + +enum class SnappingToggleMode { + Disabled = 0, + VoxelGrid = 1, + SnappingBoxes = 2, +}; + +struct ChangeVoxelData { + keen::bool isBuildingVoxel; // Offset: 0 + keen::ObjectReference placeVoxelMaterial; // Offset: 4 + keen::uint8 placeVoxelMaterialId; // Offset: 20 +}; + +enum class CameraDistance { + Near = 0, + Medium = 1, + Far = 2, +}; + +struct CameraDistanceOverride { + keen::CameraDistance distance; // Offset: 0 + keen::bool override; // Offset: 1 +}; + +enum class BuildingCameraMode { + Orbit = 0, + Free = 1, + FreeHorizontalWhileUsing = 2, +}; + +struct CursorFxConfig { + keen::SoundContainerReference loopedSfx; // Offset: 0 + keen::SoundContainerReference oneShotSfx; // Offset: 16 + keen::VfxReference oneShotVfx; // Offset: 32 + keen::ecs::Offset oneShotVfxOffset; // Offset: 48 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 88 + keen::sint32 vfxParameterOffset_boundingBoxMin; // Offset: 152 + keen::sint32 vfxParameterOffset_boundingBoxMax; // Offset: 156 +}; + +struct GliderConfig { + keen::float32 accelerationForward; // Offset: 0 + keen::float32 airResistanceLongitudinal; // Offset: 4 + keen::float32 airResistanceLateral; // Offset: 8 + keen::float32 airResistanceVertical; // Offset: 12 + keen::float32 yawAngleSpeed; // Offset: 16 + keen::float32 pitchAngleSpeed; // Offset: 20 + keen::float32 rollAngleSpeed; // Offset: 24 +}; + +enum class InventoryStockType { + Arrow = 0, + Spell = 1, + TerrainMaterial = 2, + BlueprintMaterial_Default = 3, + BlueprintMaterial_Roof = 4, + Count = 5, +}; + +enum class AttachDirection { + Floor = 0, + Wall = 1, + Ceiling = 2, +}; + +enum class AttachAngleRange { + Disabled = 0, + Narrow = 1, + Wide = 2, +}; + +struct AttachAngleConfig { + keen::AttachAngleRange ceilingAngle; // Offset: 0 + keen::AttachAngleRange wallAngle; // Offset: 1 + keen::AttachAngleRange floorAngle; // Offset: 2 + keen::AttachDirection defaultAttachDirection; // Offset: 3 + keen::AttachDirection secondaryAttachDirection; // Offset: 4 + keen::bool hasSecondaryAttachDirection; // Offset: 5 + keen::bool forceUprightNormal; // Offset: 6 +}; + +struct VoxelRequirement { + keen::ObjectReference soil; // Offset: 0 + keen::VoxelMaterialId soilMaterialId; // Offset: 16 + keen::float factor; // Offset: 20 +}; + +struct VoxelRequirementInfo { + keen::BlobArray requirements; // Offset: 0 +}; + +struct CursorActionConfig { + keen::bool snapPositionToAddableVoxel; // Offset: 0 + keen::bool snapPositionToRemovableVoxel; // Offset: 1 +}; + +struct CursorConfig { + keen::ecs::TemplateReference customCursorEntity; // Offset: 0 + keen::bool autoCenterPivot; // Offset: 16 + keen::float3 pivotOffset; // Offset: 20 + keen::bool allowSnapToSnappingBoxes; // Offset: 32 + keen::bool forceSnapPositionToVoxelGrid; // Offset: 33 + keen::bool snapOrientationToVoxelGrid; // Offset: 34 + keen::bool snapToCenterWhenSmallerThanVoxel; // Offset: 35 + keen::bool smoothOutTerrainNormal; // Offset: 36 + keen::bool alwaysFacePlayer; // Offset: 37 + keen::bool addRandomYawAngleOffset; // Offset: 38 + keen::CursorActionConfig primaryActionConfig; // Offset: 39 + keen::AttachAngleConfig attachAngleConfig; // Offset: 41 + keen::bool checkRequiredMaterialsOnPrimaryAction; // Offset: 48 + keen::CursorActionConfig secondaryActionConfig; // Offset: 49 + keen::AttachAngleConfig attachAngleConfigSecondary; // Offset: 51 + keen::bool checkRequiredMaterialsOnSecondaryAction; // Offset: 58 + keen::bool useSphereCast; // Offset: 59 + keen::bool keepSnappedToPlane; // Offset: 60 + keen::bool checkBuildZoneEnemies; // Offset: 61 + keen::bool checkSurfaceTopology; // Offset: 62 + keen::BlobArray allowedVoxels; // Offset: 64 + keen::bool highlightHoveredEntity; // Offset: 72 + keen::bool showVoxelBlock; // Offset: 73 + keen::CursorFxConfig addFxConfig; // Offset: 76 + keen::CursorFxConfig subFxConfig; // Offset: 236 + keen::ObjectReference defaultCursorStaticModel; // Offset: 396 + keen::ObjectReference defaultCursorSkinnedModel; // Offset: 412 + keen::ObjectReference defaultCursorVfx; // Offset: 428 +}; + +struct VoxelSnappingConfigOld { + keen::uint3 snapBoxOffsetMin; // Offset: 0 + keen::uint3 snapBoxOffsetMax; // Offset: 12 + keen::uint8 basementHeight; // Offset: 24 +}; + +struct EquipmentModel { + keen::BlendShapeMask mask; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +enum class SequenceRequirments { + Combat_Target = 0, + Combat_Target_Static = 1, + Combat_Target_Not_Static = 2, + IsAboveTarget = 3, + IsEvading = 4, + IsAirborne = 5, + HasNpcTarget = 6, +}; + +typedef keen::Bitmask16 SequenceRequirmentMask; + +enum class KnowledgeTriggerType { + World = 0, + Player = 1, + Item = 2, +}; + +struct GameKnowledgeTrigger { + keen::KnowledgeTriggerType triggerType; // Offset: 0 + keen::ObjectReference unlockKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::ItemKnowledgeTrigger itemKnowledge; // Offset: 36 + keen::bool useWorldItemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 +}; + +struct ItemSequence { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::actor::ActorSequenceReference sequence; // Offset: 4 + keen::actor::ActionSequenceTrigger triggeredBy; // Offset: 20 + keen::SequenceRequirmentMask requirements; // Offset: 22 + keen::skilltree_nodes::NodeReference requiredSkill; // Offset: 24 + keen::ecs::SpecialInteraction specialInteractionType; // Offset: 40 + keen::ItemReference costOverride; // Offset: 44 + keen::bool triggerKnowledge; // Offset: 60 + keen::GameKnowledgeTrigger knowledgeTrigger; // Offset: 64 + keen::HashKey32 triggerKnowledgeId; // Offset: 120 + keen::ecs::EntityTagReference sequenceEntityTag; // Offset: 124 + keen::BlobArray combinedEntityTags; // Offset: 140 +}; + +struct UiActionHints { + keen::LocaTagReference primaryAction; // Offset: 0 + keen::LocaTagReference secondaryAction; // Offset: 16 + keen::LocaTagReference tertiaryAction; // Offset: 32 + keen::input_mapping::runtime::GameplayAction tertiaryGameplayAction; // Offset: 48 + keen::bool alwaysShow; // Offset: 49 +}; + +struct EquipmentSetup { + keen::EquipmentSlotType slot; // Offset: 0 + keen::bool repeatActionWhenPressed; // Offset: 1 + keen::ecs::EntityTagReference itemSequencesEntityTag; // Offset: 4 + keen::BlendShapeMask blendShapeMask; // Offset: 20 + keen::VisualEquipmentMask hideMask; // Offset: 24 + keen::ImpactEquipmentMask disableMask; // Offset: 28 + keen::ecs::TemplateReference impactEntity; // Offset: 32 + keen::ImpactProgramReference program; // Offset: 48 + keen::ecs::TemplateReference visualEntity; // Offset: 64 + keen::ObjectReference visualModel; // Offset: 80 + keen::PrimaryAnimationSet primaryAnimationSet; // Offset: 96 + keen::SecondaryAnimationSet secondaryAnimationSet; // Offset: 97 + keen::CrosshairType crosshairType; // Offset: 98 + keen::CursorConfig cursorConfig; // Offset: 100 + keen::ObjectReference cursorModel; // Offset: 544 + keen::ObjectReference cursorSkinnedModel; // Offset: 560 + keen::ObjectReference cursorVfx; // Offset: 576 + keen::CameraDistanceOverride cameraDistanceOverride; // Offset: 592 + keen::BuildingCameraMode buildingCameraMode; // Offset: 594 + keen::float32 defaultVerticalPlacementOffset; // Offset: 596 + keen::float32 maxTiltAngle; // Offset: 600 + keen::float32 maxDistance; // Offset: 604 + keen::ecs::TemplateReference placedEntity; // Offset: 608 + keen::float3 placementAABBmin; // Offset: 624 + keen::float3 placementAABBmax; // Offset: 636 + keen::float3 snappingAABBmin; // Offset: 648 + keen::float3 snappingAABBmax; // Offset: 660 + keen::BlobArray placementColliders; // Offset: 672 + keen::ecs::TriggerShapes placementNoBuildZones; // Offset: 680 + keen::BuffTypeReference appliedBuff; // Offset: 688 + keen::BuffTypeReference appliedDebuff; // Offset: 704 + keen::bool allowPlacementBelowFog; // Offset: 720 + keen::InhibitBuildingCheck checkInhibitBuild; // Offset: 721 + keen::bool buildZoneRequired; // Offset: 722 + keen::bool requiresAltarSlot; // Offset: 723 + keen::BlobArray requiredCraftingIngredients; // Offset: 724 + keen::float3 placedEntityLocalSpawnVelocity; // Offset: 732 + keen::ChangeVoxelData voxelData; // Offset: 744 + keen::ObjectReference voxelObject; // Offset: 768 + keen::ObjectReference terrainVoxelObject; // Offset: 784 + keen::VoxelSnappingConfigOld voxelSnappingConfig; // Offset: 800 + keen::ObjectReference voxelBlueprintConfig; // Offset: 828 + keen::ObjectReference voxelBlueprintMaterialPool; // Offset: 844 + keen::sint8 voxelObjectMaterialOverride; // Offset: 860 + keen::BlobArray visualModels; // Offset: 864 + keen::GliderConfig gliderConfig; // Offset: 872 + keen::TerraformingType terraformingType; // Offset: 900 +}; + +typedef keen::Bitmask8 ItemKnowledgeTriggerMask; + +struct ItemKnowledgeBase { + keen::ItemKnowledgeTriggerMask trigger; // Offset: 0 + keen::LocaTagReference triggerTag; // Offset: 4 +}; + +struct ItemKnowledgeName { + keen::NameLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeDescription { + keen::DescriptionLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeLore { + keen::LoreLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeRecipe { + keen::bool unused; // Offset: 20 +}; + +struct ItemLevelRange { + keen::uint32 minLevel; // Offset: 0 + keen::uint32 maxLevel; // Offset: 4 +}; + +struct StackSizeRange { + keen::uint16 minStackSize; // Offset: 0 + keen::uint16 maxStackSize; // Offset: 2 +}; + +struct ItemCommerceLink { + keen::CommerceProductReference product; // Offset: 0 + keen::CommerceProductId id; // Offset: 16 + keen::bool isSet; // Offset: 20 +}; + +struct ItemDamageSetup { + keen::float32 speedMod; // Offset: 0 + keen::float32 dmgMod; // Offset: 4 + keen::impact::DamageDistribution distribution; // Offset: 8 + keen::bool isSet; // Offset: 60 +}; + +struct ItemPermissionSetup { + keen::PlayerPermissionsMask permissions; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ItemArmorSetup { + keen::impact::ArmorDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 36 +}; + +struct ItemBlockSetup { + keen::float quality; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemScaledCostSetup { + keen::float staminaMod; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemFuelData { + keen::Time burnTime; // Offset: 0 + keen::uint32 energyOutput; // Offset: 8 + keen::bool isSet; // Offset: 12 +}; + +struct ItemColorCombination { + keen::ColorCombinationReference combination; // Offset: 0 +}; + +struct ItemComfortSetup { + keen::uint32 comfortAmount; // Offset: 0 +}; + +struct ItemInfoExposure { + keen::bool enable; // Offset: 0 + keen::float exposure; // Offset: 4 +}; + +enum class ItemClassAlignmentType { + None = 0, + Warrior = 1, + Mage = 2, + Ranger = 3, +}; + +typedef keen::ObjectReference PerkReference; + +struct ItemCollectionInfo { + keen::bool isOverrideModelSet; // Offset: 0 + keen::ObjectReference overrideModel; // Offset: 4 + keen::ecs::Offset overrideModelOffset; // Offset: 20 + keen::BlobArray categories; // Offset: 60 +}; + +struct ItemInfo { + keen::ItemId itemId; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::uint16 maxStackSize; // Offset: 20 + keen::bool generateRarity; // Offset: 22 + keen::ItemRarity rarity; // Offset: 23 + keen::ItemRarityMask disableRarityGeneration; // Offset: 24 + keen::StackSizeRange randomLootStackRange; // Offset: 26 + keen::BlobArray overridePickupModels; // Offset: 32 + keen::ecs::TemplateReference overridePickupEntity; // Offset: 40 + keen::NotifierReference pickupFx; // Offset: 56 + keen::NameLocaTag name; // Offset: 72 + keen::CaptionLocaTag caption; // Offset: 88 + keen::DescriptionLocaTag description; // Offset: 104 + keen::LoreLocaTag lore; // Offset: 120 + keen::UiActionHints uiActionHints; // Offset: 136 + keen::ItemCategory category; // Offset: 188 + keen::AmmunitionType ammunitionType; // Offset: 189 + keen::WeaponCategoryReference weaponCategoryReference; // Offset: 192 + keen::ItemClassAlignmentType itemClassAlignment; // Offset: 208 + keen::MidiInstrumentType midiInstrumentType; // Offset: 209 + keen::EquipmentSetup equipment; // Offset: 212 + keen::BlobArray sequences; // Offset: 1116 + keen::ecs::TemplateReference pidEntity; // Offset: 1124 + keen::ObjectReference exchangeOnBroken; // Offset: 1140 + keen::ImageReference iconImage; // Offset: 1156 + keen::ObjectReference iconModel; // Offset: 1172 + keen::ObjectReference iconScene; // Offset: 1188 + keen::ecs::Offset iconRenderOffset; // Offset: 1204 + keen::float32 iconRenderCookingScale; // Offset: 1244 + keen::float32 iconRenderGlobalScale; // Offset: 1248 + keen::ItemInfoExposure overrideSceneExposure; // Offset: 1252 + keen::bool fitToItemModelBoundingBox; // Offset: 1260 + keen::ItemFlags flags; // Offset: 1262 + keen::bool overrideKnowledgeGeneration; // Offset: 1264 + keen::Bitmask16 generateKnowledge; // Offset: 1266 + keen::BlobArray tags; // Offset: 1268 + keen::BlobArray uiValues; // Offset: 1276 + keen::BlobArray uiBuffValues; // Offset: 1284 + keen::impact::Configurations impactValues; // Offset: 1292 + keen::StaticArray perkReferences; // Offset: 1300 + keen::ItemLevelRange itemLevelRange; // Offset: 1380 + keen::ItemDamageSetup damageSetup; // Offset: 1388 + keen::ItemArmorSetup armorSetup; // Offset: 1452 + keen::ItemFuelData fuelSetup; // Offset: 1496 + keen::ItemBlockSetup blockSetup; // Offset: 1512 + keen::ItemScaledCostSetup scaledCostSetup; // Offset: 1520 + keen::ItemCommerceLink commerceLink; // Offset: 1528 + keen::ItemPermissionSetup permissionSetup; // Offset: 1552 + keen::ItemColorSetupInternal itemPaletteColorSetup; // Offset: 1556 + keen::ItemCollectionInfo collectionInfo; // Offset: 1572 + keen::ItemComfortSetup comfortSetup; // Offset: 1640 + keen::BlobString debugName; // Offset: 1644 +}; + +struct ItemConvertInfo { + keen::BlobString name; // Offset: 0 + keen::Guid id; // Offset: 8 + keen::BlobArray> knowledge; // Offset: 24 + keen::Guid visualModelGuid; // Offset: 32 + keen::BlobArray visualModels; // Offset: 48 + keen::VisualEquipmentMask hideMask; // Offset: 56 + keen::BlendShapeMask allowedBlendShapeMask; // Offset: 60 + keen::BlendShapeMask setBlendShapeMask; // Offset: 64 + keen::ColorCombination colorCombination; // Offset: 68 + keen::Guid voxelMaterialGuid; // Offset: 116 + keen::bool isDevItem; // Offset: 132 +}; + +struct GameKnowledgeGenerationScope { + keen::Bitmask16 knowledgeTypes; // Offset: 0 +}; + +struct ItemSubDirectory { +}; + +struct ItemRarityDropSettings { + keen::float32 common; // Offset: 0 + keen::float32 uncommon; // Offset: 4 + keen::float32 rare; // Offset: 8 + keen::float32 legendary; // Offset: 12 +}; + +struct WeaponCategory { + keen::LocaTagReference locaTag; // Offset: 0 + keen::AttributeReference damageMod; // Offset: 16 + keen::WeaponCategoryType categoryType; // Offset: 32 + keen::ItemClassAlignmentType classType; // Offset: 33 + keen::float32 cameraTraumaVerySmall; // Offset: 36 + keen::float32 cameraTraumaSmall; // Offset: 40 + keen::float32 cameraTraumaNormal; // Offset: 44 + keen::float32 cameraTraumaBig; // Offset: 48 + keen::float32 cameraTraumaVeryBig; // Offset: 52 + keen::float32 cameraImpulseStrength; // Offset: 56 + keen::Time cameraImpulseDuration; // Offset: 64 +}; + +struct WeaponCategoryResource { + keen::Guid guid; // Offset: 0 + keen::WeaponCategory weaponCategory; // Offset: 16 +}; + +struct WeaponCategoryDirectory { +}; + +struct ItemDirectory { + keen::ObjectReference defaultIconScene; // Offset: 0 + keen::ItemRarityDropSettings rarityDropWeights; // Offset: 16 + keen::float weaponArmorRatio; // Offset: 32 + keen::ObjectReference weaponCategoryDirectory; // Offset: 36 +}; + +struct WeaponCategoryDirectoryResource { + keen::BlobArray weaponCategories; // Offset: 0 +}; + +struct ItemRegistryResource { + keen::BlobArray itemRefs; // Offset: 0 + keen::BlobArray itemTags; // Offset: 8 + keen::BlobArray weaponCategories; // Offset: 16 + keen::BlobArray dbgNames; // Offset: 24 +}; + +struct ItemIconRegistryEntryResource { + keen::Guid guid; // Offset: 0 + keen::UiTextureResource uiTexture; // Offset: 16 +}; + +struct ItemIconRegistryResource { + keen::BlobArray icons; // Offset: 0 +}; + +struct DevItemRegistryResource { +}; + +struct ItemKnowledgeLock { + keen::LocaTagId unlockedLocaId; // Offset: 0 + keen::LocaTagId keyLocaId; // Offset: 4 + keen::ItemKnowledgeTriggerMask unlockTrigger; // Offset: 8 +}; + +struct ItemKnowledge { + keen::ItemId itemId; // Offset: 0 + keen::ItemKnowledgeMask lockedKnowledgeMask; // Offset: 4 + keen::ItemKnowledgeLock nameLock; // Offset: 8 + keen::ItemKnowledgeLock descriptionLock; // Offset: 20 + keen::ItemKnowledgeLock loreLock; // Offset: 32 + keen::ItemKnowledgeLock recipeLock; // Offset: 44 +}; + +struct ItemKnowledgeResource { + keen::BlobArray knowledgeArray; // Offset: 0 +}; + +struct PickupFxConfig { + keen::SoundContainerReference sfx; // Offset: 0 + keen::VfxReference vfx; // Offset: 16 +}; + +struct PickupModelOverride { + keen::ObjectReference model; // Offset: 0 +}; + +struct PickupEntityOverride { + keen::ecs::TemplateReference entity; // Offset: 0 +}; + +struct ItemCollectionOptionBase { +}; + +struct ItemCollectionCategoryReference { + keen::ObjectReference category; // Offset: 0 +}; + +struct ItemCollectionModelOverride { + keen::ObjectReference model; // Offset: 0 + keen::ecs::Offset modelOffset; // Offset: 16 +}; + +struct VoxelBlueprintItem { + keen::ItemId itemId; // Offset: 0 + keen::uint3 size; // Offset: 4 + keen::BlobArray data; // Offset: 16 + keen::bool isDataCompressed; // Offset: 24 +}; + +struct VoxelBlueprintItemRegistryResource { + keen::BlobArray blueprintItems; // Offset: 0 +}; + +struct ItemPropsForPropTestResource { + keen::BlobArray propItems; // Offset: 0 +}; + +struct ItemCollectionDirectory { +}; + +struct ItemCollectionSubDirectory { +}; + +struct ItemCollectionSetup { + keen::ObjectReference hierarchy; // Offset: 0 + keen::ObjectReference completionKnowledge; // Offset: 16 +}; + +struct ItemCollectionSlot { + keen::string jointName; // Offset: 0 + keen::ecs::Offset offset; // Offset: 8 +}; + +struct ItemCollectionSlotId { + keen::ObjectReference itemId; // Offset: 48 +}; + +struct ItemCollectionSlotCategory { + keen::ObjectReference category; // Offset: 48 +}; + +struct ItemCollectionSlotEquipment { + keen::EquipmentSlot equipmentSlot; // Offset: 48 +}; + +struct ItemCollectionResource { + keen::BlobArray slots; // Offset: 0 + keen::KnowledgeId completionKnowledgeId; // Offset: 8 +}; + +struct ItemCollectionSlotResource { + keen::ItemCollectionId collectionId; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 + keen::ItemId itemId; // Offset: 44 + keen::ItemCollectionId collectionCategoryId; // Offset: 48 + keen::EquipmentSlot equipmentSlot; // Offset: 52 +}; + +struct ItemCollectionCategoryDirectory { +}; + +struct ItemCollectionCategory { +}; + +struct SceneScatterData { + keen::ObjectReference scatterSet; // Offset: 0 + keen::uint2 start; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool disable; // Offset: 32 + keen::bool writeDebug; // Offset: 33 +}; + +enum class WorldDistributionTypeFlag { + Flubber = 0, + Blub = 1, + Perry = 2, +}; + +typedef keen::Bitmask8 WorldDistributionTypeFlags; + +struct SceneResetPlayersOutOfBounds { + keen::float32 marginHorizontal; // Offset: 0 + keen::float32 marginVertical; // Offset: 4 + keen::BlobArray playableAreas; // Offset: 8 +}; + +struct Scene { + keen::ObjectReference voxelWorld; // Offset: 0 + keen::uint2 worldSize; // Offset: 16 + keen::int3 worldOrigin; // Offset: 24 + keen::ObjectReference ibl; // Offset: 36 + keen::float32 iblIntensity; // Offset: 52 + keen::ObjectReference atmosphere; // Offset: 56 + keen::Biome biome; // Offset: 72 + keen::ObjectReference biomeMap; // Offset: 76 + keen::SceneScatterData scatterData; // Offset: 92 + keen::bool limitMacroScattering; // Offset: 128 + keen::uint2 macroScatterStart; // Offset: 132 + keen::uint2 macroScatterSize; // Offset: 140 + keen::bool disableVoxelBrushDisplacement; // Offset: 148 + keen::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 149 + keen::bool isTestScene; // Offset: 150 + keen::float32 distantObjectSize; // Offset: 152 + keen::uint32 moveVersion; // Offset: 156 + keen::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 160 +}; + +struct ItemIconScene { + keen::float32 fixedExposure; // Offset: 176 +}; + +enum class WorldTransformFlag { + Translation = 0, + Orientation = 1, + UniformScale = 2, + NonUniformScale = 3, +}; + +typedef keen::Bitmask8 WorldTransformFlags; + +enum class ContentPass { + ManualPois = 0, + LargeStamps = 1, + PrioPois = 2, + FillPois = 3, + DecoStamps = 4, + Enemies = 5, +}; + +struct SceneObject { + keen::WorldTransform worldTransform; // Offset: 0 + keen::WorldTransformFlags worldTransformFlags; // Offset: 56 + keen::ContentPass contentPass; // Offset: 57 +}; + +struct SceneCamera { + keen::BlobString name; // Offset: 64 + keen::Guid guid; // Offset: 72 + keen::float32 nearClip; // Offset: 88 + keen::float32 farClip; // Offset: 92 + keen::float32 fovY; // Offset: 96 +}; + +struct ItemIconSceneCamera { +}; + +struct ItemIconSceneSun { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct SceneBaseLight { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct ScenePointLight { + keen::float32 radius; // Offset: 80 + keen::bool castShadows; // Offset: 84 +}; + +struct ItemIconScenePointLight { +}; + +struct CameraData { + keen::float32 nearClip; // Offset: 0 + keen::float32 farClip; // Offset: 4 + keen::float32 fovY; // Offset: 8 +}; + +struct render.AtmosphereParameters { + keen::float32 planetRadius; // Offset: 0 + keen::ColorRgb rayleighScattering; // Offset: 4 + keen::float32 rayleighDensity; // Offset: 16 + keen::ColorRgb ozoneExtinction; // Offset: 20 + keen::float32 ozoneDensity; // Offset: 32 + keen::float32 rayleightDistribution; // Offset: 36 + keen::float32 mieScattering; // Offset: 40 + keen::float32 mieExtinction; // Offset: 44 + keen::float32 mieDensity; // Offset: 48 + keen::float32 mieDistribution; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::FloatRange yRange; // Offset: 60 +}; + +struct ItemIconSceneInfo { + keen::CameraData camera; // Offset: 0 + keen::WorldTransform cameraTransform; // Offset: 16 + keen::ObjectReference ibl; // Offset: 72 + keen::render::AtmosphereParameters atmosphereParameters; // Offset: 88 + keen::float32 fixedExposure; // Offset: 156 + keen::float32 iblIntensity; // Offset: 160 + keen::float32 sunAzimuth; // Offset: 164 + keen::float32 sunElevation; // Offset: 168 + keen::float3 sunColor; // Offset: 172 + keen::BlobArray lights; // Offset: 184 + keen::BlobArray lightsTransform; // Offset: 192 +}; + +struct JournalDirectory { +}; + +struct JournalSubDirectory { +}; + +struct JournalLoreCategory { + keen::LocaTagReference categoryName; // Offset: 0 +}; + +struct JournalCollectionBase { + keen::LocaTagReference name; // Offset: 0 + keen::LocaTagReference referencedDocumentName; // Offset: 16 + keen::uint32 priority; // Offset: 32 +}; + +struct JournalCollection { +}; + +enum class QuestSourceType { + None = 0, + Flame = 1, + Blacksmith = 2, + Alchemist = 3, + Huntress = 4, + Farmer = 5, + Carpenter = 6, + CryptKeeper = 7, + Bard = 8, +}; + +enum class QuestType { + Auto = 0, + WorldQuest = 1, + PlayerQuest = 2, +}; + +struct JournalQuestReward { +}; + +struct JournalItemReward { + keen::ItemReference item; // Offset: 0 +}; + +struct JournalExperienceReward { + keen::ObjectReference experience; // Offset: 0 +}; + +struct CompletableJournalCollection { + keen::QuestSourceType questSource; // Offset: 36 + keen::QuestType type; // Offset: 37 +}; + +struct TutorialJournalCollection { +}; + +struct JournalEntryBase { + keen::LocaTagReference name; // Offset: 0 + keen::LocaTagReference text; // Offset: 16 + keen::LocaTagReference mapMarkerReference; // Offset: 32 + keen::ObjectReference itemIcon; // Offset: 48 +}; + +struct JournalEntry { +}; + +struct CompletableJournalEntry { +}; + +struct TutorialJournalEntry { +}; + +struct JournalCompletionRequirement { +}; + +struct JournalEntryResource { + keen::JournalEntryId entryId; // Offset: 0 + keen::LocaTagId name; // Offset: 4 + keen::LocaTagId text; // Offset: 8 + keen::LocaTagId mapMarkerReference; // Offset: 12 + keen::ItemId itemIconId; // Offset: 16 + keen::KnowledgeId knowledgeRequirement; // Offset: 20 + keen::KnowledgeId completionRequirement; // Offset: 24 +}; + +struct JournalCollectionResource { + keen::JournalEntryId entryId; // Offset: 0 + keen::LocaTagId loreCategory; // Offset: 4 + keen::LocaTagId name; // Offset: 8 + keen::LocaTagId referencedDocumentName; // Offset: 12 + keen::uint32 priority; // Offset: 16 + keen::bool isTutorial; // Offset: 20 + keen::BlobArray entries; // Offset: 24 +}; + +struct QuestRewardResource { + keen::ItemReference itemRef; // Offset: 0 + keen::ItemId itemId; // Offset: 16 + keen::HashKey32 experienceValueId; // Offset: 20 +}; + +struct JournalQuestResource { + keen::QuestSourceType source; // Offset: 32 + keen::QuestType type; // Offset: 33 + keen::bool unlockForAllPlayers; // Offset: 34 + keen::BlobArray rewards; // Offset: 36 +}; + +struct JournalRegistryResource { + keen::BlobArray quests; // Offset: 0 + keen::BlobArray collections; // Offset: 8 +}; + +struct ecs.KnowledgeTrigger { + keen::StaticArray knowledgeIds; // Offset: 0 + keen::bool canActivate; // Offset: 32 + keen::bool canDeactivate; // Offset: 33 +}; + +struct SubEntityKnowledgeQuery { + keen::KnowledgeId knowledgeQueryId; // Offset: 0 + keen::Guid subEntityTemplate; // Offset: 4 + keen::HashKey32 uiWorldEventId; // Offset: 20 +}; + +struct ecs.KnowledgeQuery { + keen::HashKey32 knowledgeId; // Offset: 0 + keen::HashKey32 uiWorldEventId; // Offset: 4 + keen::bool wasEventTriggered; // Offset: 8 + keen::StaticArray subEntityQueries; // Offset: 12 +}; + +struct ecs.MapMarkerUnlockRequirements { + keen::GameKnowledgeRequirement hintState; // Offset: 0 + keen::GameKnowledgeRequirement visibleState; // Offset: 104 + keen::bool hasCompletedState; // Offset: 208 + keen::GameKnowledgeRequirement completedState; // Offset: 212 + keen::KnowledgeId hintStateQueryId; // Offset: 316 + keen::KnowledgeId visibleStateQueryId; // Offset: 320 + keen::KnowledgeId completedStateQueryId; // Offset: 324 +}; + +struct ecs.KnowledgeTriggerToggle { +}; + +struct ecs.KnowledgeTriggerRange { +}; + +struct ecs.KnowledgeTriggerOnKill { + keen::bool useSceneKnowledgeTrigger; // Offset: 0 + keen::bool unlockForGroup; // Offset: 1 + keen::GameKnowledgeTrigger triggerKnowledge; // Offset: 4 + keen::KnowledgeId triggerKnowledgeId; // Offset: 60 +}; + +struct ecs.KnowledgeUiWorldEvent { + keen::ObjectReference triggerEvent; // Offset: 0 +}; + +struct LootTreeNodeIntermediate { + keen::Guid objectId; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 16 + keen::HashKey32 parentId; // Offset: 20 + keen::uint32 potentialSlots; // Offset: 24 + keen::uint32 potentialChildSlots; // Offset: 28 +}; + +struct LootTreeIntermediate { + keen::BlobArray nodes; // Offset: 0 +}; + +struct LootNodeResource { + keen::HashKey32 nodeId; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 +}; + +struct LootContainerResource { + keen::uint32 lootSettingsIndex; // Offset: 8 +}; + +enum class LootModifierMode { + Set = 0, + Add = 1, + Multiply = 2, + None = 3, +}; + +struct LootModifierValue { + keen::LootModifierMode mode; // Offset: 0 + keen::float32 value; // Offset: 4 +}; + +struct LootModifierInfo { + keen::LootModifierValue level; // Offset: 0 + keen::LootModifierValue levelOffset; // Offset: 8 + keen::float32 levelOffsetRangeMin; // Offset: 16 + keen::float32 levelOffsetRangeMax; // Offset: 20 + keen::StaticArray rarities; // Offset: 24 +}; + +struct LootSettingsResource { + keen::LootModifierInfo modifier; // Offset: 0 + keen::BlobArray tags; // Offset: 64 +}; + +struct SceneRandomLootResource { + keen::BlobArray lootSettings; // Offset: 0 + keen::BlobArray specialItems; // Offset: 8 + keen::BlobArray lootNodes; // Offset: 16 + keen::BlobArray lootContainer; // Offset: 24 +}; + +struct LootDistributionBaseNode { + keen::Guid objectId; // Offset: 0 + keen::BlobArray tags; // Offset: 16 + keen::LootModifierInfo modifier; // Offset: 24 + keen::uint32 potentialSlots; // Offset: 88 + keen::uint32 potentialChildSlots; // Offset: 92 +}; + +struct LootDistributionTreeNode { + keen::HashKey32 nodeId; // Offset: 96 + keen::HashKey32 parentId; // Offset: 100 + keen::BlobArray childNodes; // Offset: 104 +}; + +struct LootContainerInfo { + keen::LootContainerId id; // Offset: 96 + keen::LootContainerId parentId; // Offset: 100 +}; + +struct SpecialItemInfo { + keen::HashKey32 nodeId; // Offset: 0 + keen::ItemId itemId; // Offset: 4 + keen::bool checkItemLabels; // Offset: 8 + keen::uint8 amount; // Offset: 9 +}; + +struct LootDistributionTreeResource { + keen::BlobArray specialItems; // Offset: 112 +}; + +struct EntityRandomLootInfo { + keen::bool isLootEntity; // Offset: 0 + keen::uint32 potentialSlotCount; // Offset: 4 +}; + +struct SceneWhiteboxLootInfo { + keen::HashKey32 lootNodeId; // Offset: 0 + keen::LootContainerInfo lootContainer; // Offset: 4 +}; + +struct SceneWhiteboxLootInfos { + keen::BlobArray lootContainer; // Offset: 0 +}; + +struct LootSlotInfo { + keen::ItemId itemId; // Offset: 0 + keen::uint16 stackSize; // Offset: 4 + keen::ItemRarity rarity; // Offset: 6 + keen::uint32 level; // Offset: 8 +}; + +struct LootContainerFillInfo { + keen::uint8 version; // Offset: 0 + keen::uint8 filledSlots; // Offset: 1 + keen::StaticArray slots; // Offset: 4 +}; + +struct ImportantLootSlotInfo { + keen::uint32 importantItemIndex; // Offset: 0 + keen::ItemId itemId; // Offset: 4 +}; + +struct ImportantLootContainerFillInfo { + keen::uint8 filledSlots; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct LootModifierBase { + keen::LootModifierMode mode; // Offset: 0 +}; + +struct LootModifierAmount { + keen::float32 amount; // Offset: 4 +}; + +struct LootModifierRarity { + keen::ItemRarity rarity; // Offset: 1 + keen::float32 weight; // Offset: 4 +}; + +struct LootModifierItemValue { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct LootModifierLevelOffset { + keen::float32 value; // Offset: 4 +}; + +struct LootModifierLevelOffsetRange { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct RandomLootItem { + keen::ItemReference item; // Offset: 0 + keen::uint8 amount; // Offset: 16 + keen::bool checkItemLabels; // Offset: 17 +}; + +struct RandomLootItemInfo { + keen::ItemId itemId; // Offset: 0 + keen::ItemReference itemRef; // Offset: 4 + keen::uint8 amount; // Offset: 20 + keen::bool checkItemLabels; // Offset: 21 +}; + +struct LootTagInfo { + keen::HashKey32 tagId; // Offset: 0 + keen::float32 weight; // Offset: 4 + keen::Guid guid; // Offset: 8 +}; + +struct ObjectLootSettings { + keen::LootModifierInfo modifier; // Offset: 0 + keen::BlobArray tags; // Offset: 64 + keen::BlobArray specialItems; // Offset: 72 +}; + +enum class ShufflebagItemType { + None = 0, + Weapon = 1, + Armor = 2, +}; + +struct ItemLabelGroupResource { + keen::BlobArray labels; // Offset: 0 + keen::BlobArray childGroups; // Offset: 8 +}; + +struct LootableItemInfo { + keen::ItemId itemId; // Offset: 0 + keen::ItemRarityMask rarities; // Offset: 4 + keen::bool useUiRarity; // Offset: 5 + keen::ItemRarity uiRarity; // Offset: 6 + keen::ItemLabelGroupResource labelGroups; // Offset: 8 + keen::uint16 stackSizeMin; // Offset: 24 + keen::uint16 stackSizeMax; // Offset: 26 + keen::uint16 stackSizeMaxScaled; // Offset: 28 + keen::bool stackSizeScalable; // Offset: 30 + keen::ShufflebagItemType shufflebagType; // Offset: 31 + keen::bool hasWeaponCategory; // Offset: 32 + keen::WeaponCategoryType weaponCategoryType; // Offset: 33 + keen::EquipmentSlotType armorCategoryType; // Offset: 34 + keen::ItemClassAlignmentType classAlignmentType; // Offset: 35 +}; + +struct LootableItemsResource { + keen::StaticArray globalRarityDropRates; // Offset: 0 + keen::float32 weaponArmorRatio; // Offset: 20 + keen::BlobArray items; // Offset: 24 + keen::uint64 itemClassCategoryMask; // Offset: 32 + keen::uint64 weaponCategoryMask; // Offset: 40 + keen::uint64 armorCategoryMask; // Offset: 48 +}; + +struct DefaultLootLabelCollectionResource { + keen::BlobArray lootSettings; // Offset: 0 +}; + +struct DefaultLootSettingsResource { + keen::LootContainerId id; // Offset: 72 +}; + +struct DistributionLootSceneInput { + keen::Guid scatterSetId; // Offset: 0 + keen::LootModifierInfo modifier; // Offset: 16 + keen::BlobArray tags; // Offset: 80 + keen::BlobString lootIdsInput; // Offset: 88 + keen::BlobString lootTreeInput; // Offset: 96 +}; + +struct DistributionLootConverterParameters { + keen::BlobArray lootSceneInputs; // Offset: 0 +}; + +struct DebugItemDropInfo { + keen::ItemId itemId; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct DebugLootSceneInfoMessage { + keen::Guid sceneId; // Offset: 0 +}; + +struct DebugLootContainerInfoMessage { + keen::HashKey32 nodeId; // Offset: 0 + keen::BlobArray droppedItems; // Offset: 4 + keen::float32 weightSum; // Offset: 12 + keen::LootModifierInfo modifierInfo; // Offset: 16 + keen::BlobArray tags; // Offset: 80 + keen::BlobArray possibleItems; // Offset: 88 +}; + +struct RegisteredLootContainerParams { + keen::LootContainerId containerId; // Offset: 0 + keen::LootContainerId parentNodeId; // Offset: 4 + keen::HashKey32 labelDefinitionsId; // Offset: 8 + keen::float baseProbability; // Offset: 12 + keen::uint8 slotsMin; // Offset: 16 + keen::uint8 slotsMax; // Offset: 17 + keen::BlobOptional level; // Offset: 20 +}; + +struct DebugRegisteredLootContainerMessage { + keen::BlobArray registeredContainer; // Offset: 0 +}; + +struct DebugTrackLootContainerMessage { + keen::bool isLootContainer; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 4 +}; + +struct DebugRefreshLootMessage { + keen::HashKey32 nodeId; // Offset: 0 +}; + +struct GroupedItemLabels { +}; + +typedef keen::uint64 LabelMask; + +enum class MarkerTypeSorting { + None = 0, + FlameRelated = 1, + Dungeons = 2, + Locations = 3, + CustomMarker = 4, +}; + +struct MapMarkerType { + keen::MapMarkerTypeId markerId; // Offset: 0 + keen::UiTexture icon; // Offset: 4 + keen::float32 iconDisplaySize; // Offset: 52 + keen::bool isHighlightable; // Offset: 56 + keen::bool isFastTravelDestination; // Offset: 57 + keen::bool showAboveFogOfWar; // Offset: 58 + keen::bool showLabel; // Offset: 59 + keen::bool showRange; // Offset: 60 + keen::bool isCustomMarkerType; // Offset: 61 + keen::bool canBeFiltered; // Offset: 62 + keen::MarkerTypeSorting sortingCategory; // Offset: 63 + keen::uint8 minimizeAboveZoomStep; // Offset: 64 + keen::uint8 hideAboveZoomStep; // Offset: 65 + keen::Color minimizedColor; // Offset: 68 + keen::bool scaleWithZoom; // Offset: 72 +}; + +struct MapMarkerRegistryTool { +}; + +struct MapMarkerRegistryResource { + keen::BlobArray mapMarkers; // Offset: 0 + keen::UiTexturePreload texturePreload; // Offset: 8 +}; + +struct CustomMapMarker { + keen::WorldPosition position; // Offset: 0 + keen::uint8 colorScheme; // Offset: 24 + keen::MapMarkerTypeId type; // Offset: 28 +}; + +enum class npc.HappinessRequirement { + Sheltered = 0, + Bed = 1, + Food = 2, +}; + +typedef keen::Bitmask8 npc.HapinessMask; + +struct npc.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +typedef keen::uint8 player_bases.BaseIndex; + +struct npc.PlacedNpcInfo { + keen::player_bases::BaseIndex baseIndex; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 4 + keen::npc::HapinessMask happiness; // Offset: 8 +}; + +enum class active_npc.State { + Invalid = 0, + Start = 1, + FindBed = 2, + Idle = 3, + DecideTask = 4, + FindTarget = 5, + GoToTarget = 6, + Work = 7, + Roam = 8, + Sleep = 9, + Sitting = 10, + Inspecting = 11, + Eating = 12, + FinishTask = 13, +}; + +enum class active_npc.StateCondition { + IsFinished = 0, + HasFailed = 1, +}; + +enum class active_npc.Decision { + None = 0, + WantsToWork = 1, + WantsToRoam = 2, + WantsToSitDown = 3, + WantsToInspect = 4, + WantsToSleep = 5, + WantsToEat = 6, + WantsToIdle = 7, +}; + +enum class active_npc.NpcType { + None = 0, + TownFolk = 1, + Alchemist = 2, + Bard = 3, + Blacksmith = 4, + Carpenter = 5, + CryptKeeper = 6, + Hunter = 7, + Farmer = 8, +}; + +struct active_npc.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float roamWeight; // Offset: 12 + keen::float workWeight; // Offset: 16 +}; + +struct active_npc.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct active_npc.WorkSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.TargetSetup { + keen::bool isFarmland; // Offset: 0 + keen::bool isBed; // Offset: 1 + keen::bool isCraftingStation; // Offset: 2 + keen::bool isSeating; // Offset: 3 + keen::bool isFood; // Offset: 4 + keen::bool isInteresting; // Offset: 5 +}; + +struct ecs.NpcDialog { + keen::bool isFlame; // Offset: 0 + keen::ObjectReference dialog; // Offset: 4 + keen::NpcDialogResource dialogResource; // Offset: 20 + keen::LocaTagReference interactionVerbLoca; // Offset: 104 +}; + +struct ecs.DynamicNpcDialog { + keen::uint16 syncedKnowledgeQueryCounter; // Offset: 0 +}; + +struct ecs.NpcDialogPartner { + keen::bool isInGreetingRange; // Offset: 0 + keen::Time lastGreetingTime; // Offset: 8 +}; + +struct ecs.NpcState { + keen::actor::ActorSequenceReference defaultGreetingSequence; // Offset: 0 + keen::actor::ActorSequenceReference attentionGreetingSequence; // Offset: 16 + keen::actor::TurnSetup turnSetup; // Offset: 32 + keen::npc::IdleSequenceSetup idleSetup; // Offset: 104 + keen::npc::HapinessMask hapinessMask; // Offset: 120 + keen::float32 minDistanceToPlayer; // Offset: 124 +}; + +typedef keen::uint64 ecs.PlayerMask; + +enum class ecs.NpcInteractionState { + IsTurning = 0, + IsGreeting = 1, + IsCloseToPlayer = 2, + IsPlayingSequence = 3, +}; + +typedef keen::Bitmask8 ecs.NpcInteractionStates; + +struct ecs.DynamicNpcState { + keen::LocaTagId lastSelectedDialogId; // Offset: 0 + keen::ecs::EntityId lastInteractingEntityId; // Offset: 4 + keen::bool dialogSequenceActive; // Offset: 8 + keen::Time nextGreetingTime; // Offset: 16 + keen::Time lastLookAtPlayerTime; // Offset: 24 + keen::Time nextLookAtPlayerTime; // Offset: 32 + keen::Time remainingNextSequenceTime; // Offset: 40 + keen::StaticArray queryIds; // Offset: 48 + keen::ecs::PlayerMask playersInSight; // Offset: 112 + keen::ecs::PlayerMask greetedPlayers; // Offset: 120 + keen::bool isInitialized; // Offset: 128 + keen::bool isSpawning; // Offset: 129 + keen::Quaternion revertToRotation; // Offset: 132 +}; + +struct ecs.ActiveNpcState { + keen::NpcId npcId; // Offset: 0 + keen::actor::ActorSequenceReference sitSequence; // Offset: 4 + keen::actor::ActorSequenceReference sleepSequence; // Offset: 20 + keen::actor::ActorSequenceReference inspectSequence; // Offset: 36 + keen::active_npc::NpcType npcType; // Offset: 52 + keen::active_npc::DecisionSetup decisionSetup; // Offset: 56 + keen::active_npc::IdleSetup idleSetup; // Offset: 80 + keen::active_npc::RoamingSetup roamingSetup; // Offset: 96 + keen::active_npc::MovementSetup movementSetup; // Offset: 108 + keen::active_npc::WorkSetup workSetup; // Offset: 120 + keen::active_npc::SleepSetup sleepSetup; // Offset: 136 + keen::active_npc::SearchTargetSetup searchTargetSetup; // Offset: 152 + keen::active_npc::PathNodeSetup pathNodeSetup; // Offset: 160 +}; + +struct ecs.DynamicActiveNpcState { + keen::active_npc::State state; // Offset: 0 + keen::active_npc::State previousState; // Offset: 1 + keen::active_npc::Decision decision; // Offset: 2 + keen::npc::HapinessMask happiness; // Offset: 3 + keen::bool wasPaused; // Offset: 4 +}; + +struct ecs.NPCMovement { + keen::Time duration; // Offset: 0 + keen::float3 movement; // Offset: 8 +}; + +struct ecs.NpcCommon { + keen::ecs::NpcInteractionStates interactionStates; // Offset: 0 + keen::Time stateTimer; // Offset: 8 + keen::Time currentStateDuration; // Offset: 16 + keen::Time stuckTime; // Offset: 24 + keen::Time stuckTimeOut; // Offset: 32 + keen::ecs::RangeQueryId queryId; // Offset: 40 + keen::ecs::EntityId closestPlayerId; // Offset: 44 + keen::ecs::EntityId currentTargetId; // Offset: 48 + keen::ecs::EntityId bedId; // Offset: 52 + keen::ecs::EntityId previousTargetId; // Offset: 56 + keen::float sleepTime; // Offset: 60 + keen::float wakeUpTime; // Offset: 64 + keen::float closestPlayerDistance; // Offset: 68 + keen::float squaredDistanceToTarget; // Offset: 72 + keen::float3 currentTargetPosition; // Offset: 76 + keen::StaticArray history; // Offset: 88 + keen::uint8 historyIndex; // Offset: 1528 + keen::Guid currentSequenceId; // Offset: 1532 + keen::bool useReducedRoamingSpace; // Offset: 1548 + keen::bool shouldBeMoving; // Offset: 1549 + keen::uint8 unstuckTries; // Offset: 1550 + keen::uint8 stateFailures; // Offset: 1551 +}; + +struct ecs.ActiveNpcStateSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::bool overrideRoamingRange; // Offset: 12 + keen::float roamingRange; // Offset: 16 + keen::WorldPosition teleportPositionAfterFinishing; // Offset: 24 +}; + +struct ecs.ClientActiveNpcState { + keen::ecs::EntityId bedId; // Offset: 0 + keen::npc::HapinessMask happiness; // Offset: 4 + keen::float roamingRange; // Offset: 8 +}; + +struct ecs.StoreAssociatedNpcIds { + keen::bool initialized; // Offset: 0 + keen::StaticArray npcIds; // Offset: 4 +}; + +struct ecs.ActiveNpcTarget { + keen::active_npc::TargetSetup setup; // Offset: 0 + keen::active_npc::NpcType npcType; // Offset: 6 + keen::NpcId associatedNpc; // Offset: 8 + keen::ecs::Offset targetOffset; // Offset: 12 +}; + +struct ecs.ClientActiveNpcTarget { + keen::NpcId associatedNpc; // Offset: 0 + keen::bool isBed; // Offset: 4 +}; + +struct ecs.NpcSequenceEntry { + keen::actor::ActorSequenceReference sequence; // Offset: 0 +}; + +struct ecs.BaseNpcSequences { + keen::BlobArray sequences; // Offset: 0 +}; + +struct ecs.NpcIdleSequences { +}; + +struct ecs.NpcWorkSequences { +}; + +struct ecs.NpcActionSequences { + keen::ecs::NpcIdleSequences idleSequences; // Offset: 0 + keen::ecs::NpcWorkSequences workSequences; // Offset: 8 +}; + +struct NpcResource { + keen::NpcId id; // Offset: 0 + keen::LocaTagId name; // Offset: 4 + keen::bool isCraftingAssistant; // Offset: 8 + keen::KnowledgeId unlockRequirement; // Offset: 12 + keen::WorkshopId workshopId; // Offset: 16 + keen::LocaTagId workshopLabel; // Offset: 20 + keen::ItemId itemId; // Offset: 24 + keen::ItemReference itemRef; // Offset: 28 + keen::CharacterPresetReference characterPresetReference; // Offset: 44 + keen::CharacterPresetId characterPresetId; // Offset: 60 + keen::UiNpcRenderingOptions uiRendering; // Offset: 64 + keen::BlobString debugName; // Offset: 116 +}; + +struct NpcCollection { + keen::BlobArray npcs; // Offset: 0 +}; + +struct ecs.PathFinder { + keen::ecs::PathGridDistance horizontalStartSearchRadius; // Offset: 0 + keen::ecs::PathGridDistance verticalStartSearchRadius; // Offset: 4 + keen::ecs::PathfindingSettings settings; // Offset: 8 +}; + +struct ecs.DynamicPathFinder { + keen::Time lastQueryTime; // Offset: 0 + keen::float3 targetPosition; // Offset: 8 + keen::float3 lastStartPosition; // Offset: 20 + keen::float3 lastTargetPosition; // Offset: 32 + keen::uint32 lastKeepDistance; // Offset: 44 + keen::HashKey32 lastParametersHash; // Offset: 48 + keen::float32 lastMaxTargetNodeDistance; // Offset: 52 + keen::ecs::PathQueryId queryId; // Offset: 56 + keen::uint32 keepDistance; // Offset: 60 + keen::ecs::PathGridDistance horizontalSearchRadius; // Offset: 64 + keen::ecs::PathGridDistance verticalSearchRadius; // Offset: 68 + keen::ecs::PathGridType gridType; // Offset: 72 + keen::bool keepLastResults; // Offset: 73 + keen::ecs::PathQueryCheck pathQueryCheck; // Offset: 74 + keen::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 76 + keen::ecs::PathGridDistance minHorizontalSpace; // Offset: 80 + keen::ecs::PathGridDistance minVerticalSpace; // Offset: 84 + keen::float32 maxTargetNodeDistance; // Offset: 88 + keen::uint32 maxWalkDistance; // Offset: 92 + keen::ecs::PathQueryTargetType targetType; // Offset: 96 + keen::uint32 maxIterations; // Offset: 100 + keen::float2 horizontalKeepDistanceDirection; // Offset: 104 + keen::float3 freePathCheckPosition; // Offset: 112 + keen::bool enableAdditionalSpaceSearch; // Offset: 124 + keen::bool enableJumpUp; // Offset: 125 + keen::bool enableJumpDown; // Offset: 126 + keen::bool canOpenDoors; // Offset: 127 + keen::uint8 maxJumpUpHeight; // Offset: 128 + keen::uint8 maxJumpDownHeight; // Offset: 129 + keen::bool enforceUpdate; // Offset: 130 + keen::bool ignoreWalkableColliders; // Offset: 131 + keen::bool ignoreMovingObjects; // Offset: 132 + keen::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 136 + keen::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 140 + keen::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 144 + keen::float32 horizontalDistanceCostFactor; // Offset: 196 + keen::bool checkFreePathToTarget; // Offset: 200 + keen::bool ignoreNodesCloseToHole; // Offset: 201 +}; + +enum class ecs.PathWalkerState { + Idle = 0, + WaitingForQuery = 1, + Walking = 2, + TurnBeforeJump = 3, + WalkToJumpPoint = 4, + JumpUp = 5, + JumpDown = 6, + TargetReached = 7, + TargetNotReachable = 8, + Stuck = 9, + Turn = 10, + Teleporting = 11, + WalkToDoor = 12, + OpenDoor = 13, +}; + +struct ecs.PathWalkerTurnSettings { + keen::float turnToNextWayPointMinDistanceWalk; // Offset: 0 + keen::float turnToNextWayPointMinDistanceRun; // Offset: 4 +}; + +struct ecs.PathWalker { + keen::actor::ActorSequenceReference jumpSequence; // Offset: 0 + keen::actor::ActorSequenceReference openDoorSequence; // Offset: 16 + keen::bool usePathFinding; // Offset: 32 + keen::actor::ActorSequenceReference teleportSequence; // Offset: 36 + keen::float32 jumpMoveSpeed; // Offset: 52 + keen::float32 horizontalRadius; // Offset: 56 + keen::float32 verticalRadius; // Offset: 60 + keen::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 64 + keen::ecs::PathWalkerTurnSettings turnSettings; // Offset: 68 +}; + +struct ecs.DynamicPathWalker { + keen::float3 targetPosition; // Offset: 0 + keen::uint32 upateCounter; // Offset: 12 + keen::uint32 pathIndex; // Offset: 16 + keen::ecs::PathWalkerState state; // Offset: 20 + keen::float3 lookAtTarget; // Offset: 24 + keen::bool lookAtMovementTarget; // Offset: 36 + keen::bool setDesiredWorldLookDirection; // Offset: 37 + keen::uint32 keepDistance; // Offset: 40 + keen::ecs::PathGridDistance horizontalSearchRadius; // Offset: 44 + keen::ecs::PathGridDistance verticalSearchRadius; // Offset: 48 + keen::float32 maxArriveWaypointDistance; // Offset: 52 + keen::float32 maxArriveTargetDistance; // Offset: 56 + keen::bool shouldOverrideMinArriveDistance; // Offset: 60 + keen::float32 overrideMinArriveDistance; // Offset: 64 + keen::bool shouldOverrideMinTurnDistance; // Offset: 68 + keen::float32 overrideMinTurnDistance; // Offset: 72 + keen::Time stuckTime; // Offset: 80 + keen::bool keepLastResults; // Offset: 88 + keen::ecs::PathQueryCheck pathQueryCheck; // Offset: 89 + keen::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 92 + keen::ecs::PathGridDistance minHorizontalSpace; // Offset: 96 + keen::ecs::PathGridDistance minVerticalSpace; // Offset: 100 + keen::Time standingDuration; // Offset: 104 + keen::Time walkingDuration; // Offset: 112 + keen::float32 maxTargetNodeDistance; // Offset: 120 + keen::uint32 maxWalkDistance; // Offset: 124 + keen::ecs::PathQueryTargetType targetType; // Offset: 128 + keen::float32 closestWaypointSquareDistance; // Offset: 132 + keen::uint32 maxIterations; // Offset: 136 + keen::float32 currentPathLengthToTarget; // Offset: 140 + keen::float2 horizontalKeepDistanceDirection; // Offset: 144 + keen::float3 freePathCheckPosition; // Offset: 152 + keen::float3 lastReachedTarget; // Offset: 164 + keen::bool isWalkingActive; // Offset: 176 + keen::bool enableAdditionalSpaceSearch; // Offset: 177 + keen::bool enableJumpUp; // Offset: 178 + keen::bool enableJumpDown; // Offset: 179 + keen::bool canOpenDoors; // Offset: 180 + keen::uint8 maxJumpUpHeight; // Offset: 181 + keen::uint8 maxJumpDownHeight; // Offset: 182 + keen::Time lastEnforceUpdateTime; // Offset: 184 + keen::bool useTurnSequences; // Offset: 192 + keen::actor::SequenceRuntimeId turnSequenceId; // Offset: 200 + keen::actor::SequenceRuntimeId teleportSequenceId; // Offset: 224 + keen::actor::SequenceRuntimeId openDoorSequenceId; // Offset: 248 + keen::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 272 + keen::bool enableTeleportMovement; // Offset: 276 + keen::bool ignoreWalkableColliders; // Offset: 277 + keen::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 280 + keen::float32 horizontalDistanceCostFactor; // Offset: 332 + keen::bool checkFreePathToTarget; // Offset: 336 + keen::ecs::PathNodeRequirements pathNodeRequirementsOverride; // Offset: 338 + keen::bool useNodeRequirementsOverride; // Offset: 342 + keen::bool ignoreMovingObjects; // Offset: 343 + keen::bool tryToReachTargetAsCloseAsPossible; // Offset: 344 + keen::bool ignoreNodesCloseToHole; // Offset: 345 +}; + +enum class ecs.PathGridInteractionObjectType { + Door = 0, + MovingObject = 1, +}; + +struct ecs.PathGridInteraction { + keen::ecs::PathGridInteractionObjectType interactionObjectType; // Offset: 0 +}; + +struct ecs.DynamicPathGridInteraction { + keen::bool isRegistered; // Offset: 0 +}; + +struct ecs.PathFinderTester { +}; + +enum class ecs.PathFindingMarkerType { + Start = 0, + Target = 1, +}; + +enum class ecs.PathFindingMarkerTestMode { + PathFound = 0, + NoPathFound = 1, +}; + +enum class ecs.PathFindingMarkerTestState { + NotStarted = 0, + Running = 1, + Finished = 2, + Failed = 3, +}; + +struct ecs.PathFindingTestMarker { + keen::ecs::PathFindingMarkerType type; // Offset: 0 + keen::ecs::PathFindingMarkerTestMode testMode; // Offset: 1 + keen::ecs::PathFindingMarkerTestState state; // Offset: 2 + keen::ecs::PathQueryId queryId; // Offset: 4 +}; + +struct PerkDamageModifier { + keen::impact::DamageDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 52 +}; + +enum class PerkConfig { + MaxPerksPerItem = 5, +}; + +struct Perk { + keen::NameLocaTag name; // Offset: 0 + keen::DescriptionLocaTag description; // Offset: 16 + keen::UiTexture icon; // Offset: 32 + keen::ImpactProgramReference impact; // Offset: 80 + keen::bool simpleAttributeBuff; // Offset: 96 + keen::BlobArray uiValues; // Offset: 100 + keen::impact::Configurations impactValues; // Offset: 108 + keen::PerkDamageModifier damageModifier; // Offset: 116 + keen::ItemArmorSetup perkArmorSetup; // Offset: 172 + keen::string debugName; // Offset: 212 +}; + +struct PerkSubDirectory { +}; + +struct PerkDirectory { +}; + +struct PerkCollectionResource { + keen::BlobArray perks; // Offset: 0 +}; + +enum class RecipeLevelRequirement { + None = 0, + LevelEqual = 1, + LevelGreaterOrEqual = 2, +}; + +struct RecipeItemStack { + keen::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct RecipeInputList { +}; + +struct RecipeOutputList { +}; + +struct RequiredProp { + keen::ObjectReference craftingProp; // Offset: 0 +}; + +struct Recipe { + keen::NameLocaTag name; // Offset: 0 + keen::DescriptionLocaTag description; // Offset: 16 + keen::LoreLocaTag lore; // Offset: 32 + keen::bool showIsNewLabel; // Offset: 48 + keen::bool useCustomCompletionRequirement; // Offset: 49 + keen::GameKnowledgeRequirement completionRequirement; // Offset: 52 + keen::bool requiresSheltered; // Offset: 156 + keen::ObjectReference workshopReference; // Offset: 160 + keen::RecipeLevelRequirement levelRequirement; // Offset: 176 + keen::uint32 level; // Offset: 180 + keen::RecipeLevelRequirement comfortLevelRequirement; // Offset: 184 + keen::uint32 comfortLevel; // Offset: 188 + keen::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 192 + keen::uint32 serverProgressLevel; // Offset: 196 + keen::uint32 requiredHappyNpcCount; // Offset: 200 + keen::uint32 requiredEnergy; // Offset: 204 + keen::Time craftingDuration; // Offset: 208 + keen::bool isUpgrade; // Offset: 216 +}; + +struct RecipeList { + keen::ObjectReference workshopDirectory; // Offset: 0 +}; + +struct RecipeInfo { + keen::RecipeId recipeId; // Offset: 0 + keen::WorkshopId workshopId; // Offset: 4 + keen::BlobArray input; // Offset: 8 + keen::BlobArray output; // Offset: 16 + keen::bool requiresSheltered; // Offset: 24 + keen::bool showIsImportantLabel; // Offset: 25 + keen::RecipeLevelRequirement levelRequirement; // Offset: 26 + keen::uint32 level; // Offset: 28 + keen::RecipeLevelRequirement comfortLevelRequirement; // Offset: 32 + keen::uint32 comfortLevel; // Offset: 36 + keen::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 40 + keen::uint32 serverProgressLevel; // Offset: 44 + keen::uint32 requiredHappyNpcCount; // Offset: 48 + keen::uint32 requiredEnergy; // Offset: 52 + keen::Time craftingDuration; // Offset: 56 + keen::bool isCookingRecipe; // Offset: 64 + keen::bool isUpgrade; // Offset: 65 + keen::BlobArray requiredProps; // Offset: 68 + keen::CraftingPropMask requiredPropsMask; // Offset: 80 + keen::KnowledgeId knowledgeRequirement; // Offset: 88 + keen::KnowledgeId recipeInspectedKnowledgeId; // Offset: 92 + keen::KnowledgeId recipeCraftedKnowledgeId; // Offset: 96 + keen::KnowledgeId completionRequirementId; // Offset: 100 + keen::NameLocaTag recipeName; // Offset: 104 + keen::BlobString debugName; // Offset: 120 +}; + +struct RecipeRegistryResource { + keen::BlobArray recipes; // Offset: 0 +}; + +typedef keen::HashKey32 SkillNodeLinkId; + +struct ecs.SkillIdComponent { + keen::SkillNodeId skillId; // Offset: 0 +}; + +enum class SkillNodeType { + Root = 0, + Attribute = 1, + ActiveSkill = 2, + PassiveSkill = 3, + MartyrSkill = 4, +}; + +enum class ClassType { + Warrior = 0, + Mage = 1, + Ranger = 2, + Neutral = 3, +}; + +struct SkillTreeNodeLink { + keen::SkillNodeLinkId id; // Offset: 0 + keen::SkillNodeId sourceNode; // Offset: 4 + keen::SkillNodeId targetNode; // Offset: 8 + keen::bool isBidirectional; // Offset: 12 +}; + +struct SkillTreeNode { + keen::SkillNodeId id; // Offset: 0 + keen::SkillNodeType type; // Offset: 4 + keen::float2 uiPosition; // Offset: 8 + keen::uint16 costs; // Offset: 16 + keen::LocaTagId name; // Offset: 20 + keen::LocaTagId description; // Offset: 24 + keen::ClassType classAlignment; // Offset: 28 + keen::ItemReference activeSkillUnlockRef; // Offset: 32 + keen::ItemId activeSkillUnlock; // Offset: 48 + keen::UiTexture iconInactive; // Offset: 52 + keen::UiTexture iconActive; // Offset: 100 + keen::ImpactProgramReference impactReference; // Offset: 148 + keen::BlobArray uiValues; // Offset: 164 + keen::impact::Configurations configValues; // Offset: 172 + keen::bool isDeactivatedForEarlyAccess; // Offset: 180 + keen::BlobArray incomingLinks; // Offset: 184 + keen::BlobArray outgoingLinks; // Offset: 192 +}; + +typedef keen::ObjectReference SkillTreeNodeReference; + +struct SkillTreeResource { + keen::BlobArray nodes; // Offset: 0 + keen::BlobArray links; // Offset: 8 +}; + +struct SkillTreeDefinition { +}; + +struct skilltree_nodes.Node { + keen::Vector2 uiPosition; // Offset: 0 + keen::NameLocaTag name; // Offset: 8 + keen::DescriptionLocaTag description; // Offset: 24 + keen::ImageReference iconInactive; // Offset: 40 + keen::ImageReference iconActive; // Offset: 56 + keen::uint16 costs; // Offset: 72 + keen::ClassType classAlignment; // Offset: 74 + keen::bool isDeactivatedForEarlyAccess; // Offset: 75 +}; + +struct skilltree_nodes.StartingNode { +}; + +struct skilltree_nodes.AbilityNode { + keen::ItemReference abilityItem; // Offset: 76 + keen::ImpactProgramReference impactReference; // Offset: 92 + keen::impact::Configurations configValues; // Offset: 108 +}; + +struct skilltree_nodes.AttributeNode { + keen::ImpactProgramReference impactReference; // Offset: 76 + keen::impact::Configurations configValues; // Offset: 92 +}; + +struct skilltree_nodes.PassiveNode { + keen::ImpactProgramReference impactReference; // Offset: 76 + keen::impact::Configurations configValues; // Offset: 92 +}; + +struct skilltree_nodes.MartyrNode { + keen::ImpactProgramReference impactReference; // Offset: 76 + keen::impact::Configurations configValues; // Offset: 92 +}; + +struct skilltree_nodes.SkillTreeLink { + keen::skilltree_nodes::NodeReference startNode; // Offset: 0 + keen::BlobString startElementName; // Offset: 16 + keen::skilltree_nodes::NodeReference endNode; // Offset: 24 +}; + +struct ecs.SteeringLocomotion { + keen::bool setRotationFlag; // Offset: 0 + keen::bool clearVelocity; // Offset: 1 + keen::bool slowDownIfMovementAngleIsTooBig; // Offset: 2 + keen::float32 maxRunAngle; // Offset: 4 + keen::float32 maxMovementAngle; // Offset: 8 + keen::bool isCloseToHole; // Offset: 12 + keen::Time lastHookedTime; // Offset: 16 +}; + +struct ecs.SteeringAgent { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::bool active; // Offset: 4 + keen::float3 desiredVelocity; // Offset: 8 + keen::float32 currentVelocityWeight; // Offset: 20 + keen::float32 desiredVelocityWeight; // Offset: 24 + keen::float3 velocity; // Offset: 28 + keen::float32 maxSpeed; // Offset: 40 + keen::float32 maxForce; // Offset: 44 + keen::float32 maxAcceleration; // Offset: 48 + keen::float32 mass; // Offset: 52 + keen::float32 separationRange; // Offset: 56 + keen::uint8 priority; // Offset: 60 + keen::ecs::EntityId ignoredEntity; // Offset: 64 +}; + +struct ecs.SteeringBehavior { + keen::float3 steeringForce; // Offset: 0 +}; + +struct ecs.SteeringBehavior_Seek { +}; + +struct ecs.SteeringBehavior_Flee { + keen::float32 viewConeHalfAngle; // Offset: 12 + keen::float32 fleeRadius; // Offset: 16 + keen::bool checkViewCone; // Offset: 20 +}; + +struct ecs.SteeringBehavior_Separation { + keen::bool enabled; // Offset: 12 + keen::Time forceActiveDuration; // Offset: 16 +}; + +struct ecs.SteeringBehavior_LookAhead { + keen::Time lastQueryTime; // Offset: 16 + keen::Angle lookAheadAngle; // Offset: 24 + keen::float lookAheadDistance; // Offset: 28 +}; + +struct ecs.SteeringBehavior_ObstacleAvoidance { + keen::ecs::QueryId queryId; // Offset: 12 + keen::Time lastCheckTime; // Offset: 16 + keen::float32 minHeightDiff; // Offset: 24 +}; + +struct ecs.SteeringBehavior_Cohesion { +}; + +struct ecs.SteeringBehavior_Alignment { +}; + +struct ecs.SteeringAnimator { + keen::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::animationgraph::StateIdReference walkAnimation; // Offset: 16 +}; + +struct ToolTerraformingEfficiency { + keen::ItemReference toolItem; // Offset: 0 + keen::float32 efficiency; // Offset: 16 +}; + +struct ConditionalVoxelMaterialBuffType { + keen::float minSubmergePercentage; // Offset: 0 + keen::BuffTypeReference buffType; // Offset: 4 +}; + +typedef keen::uint8 TerrainMaterialType; + +struct TerrainMaterialId { + keen::TerrainMaterialType value; // Offset: 0 +}; + +struct TerrainTerraformingConfig { + keen::TerrainMaterialId terrainMaterial; // Offset: 0 + keen::ItemReference terrainItem; // Offset: 4 + keen::HardnessCategory hardness; // Offset: 20 + keen::uint32 terrainPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::bool canBeFlattened; // Offset: 32 + keen::bool isSlidingMaterial; // Offset: 33 + keen::Guid experienceGainGuid; // Offset: 36 + keen::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::BuffTypeReference buffReference; // Offset: 72 + keen::BlobArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 96 + keen::float frictionFactor; // Offset: 100 + keen::float maxSubmergeDepth; // Offset: 104 + keen::float minSubmergePercentage; // Offset: 108 + keen::float maxSubmergePercentage; // Offset: 112 + keen::Guid entityTag; // Offset: 116 + keen::ecs::PathNodeType pathNodeType; // Offset: 132 +}; + +typedef keen::uint8 BuildingMaterialType; + +struct BuildingMaterialId { + keen::BuildingMaterialType value; // Offset: 0 +}; + +struct BuildingTerraformingConfig { + keen::BuildingMaterialId buildingMaterial; // Offset: 0 + keen::ItemReference materialItem; // Offset: 4 + keen::HardnessCategory hardness; // Offset: 20 + keen::uint32 blocksPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::KnowledgeId knowledgeId; // Offset: 32 + keen::Guid experienceGainGuid; // Offset: 36 + keen::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::BuffTypeReference buffReference; // Offset: 72 + keen::BlobArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 96 + keen::float frictionFactor; // Offset: 100 + keen::float maxSubmergeDepth; // Offset: 104 + keen::float minSubmergePercentage; // Offset: 108 + keen::float maxSubmergePercentage; // Offset: 112 + keen::Guid entityTag; // Offset: 116 + keen::ecs::PathNodeType pathNodeType; // Offset: 132 +}; + +struct TerraformingEfficiencyRegistryResource { + keen::BlobArray terrainConfigs; // Offset: 0 + keen::BlobArray buildingConfigs; // Offset: 8 +}; + +typedef keen::HashKey32 TwitchDropId; + +struct TwitchDropItem { + keen::ItemReference item; // Offset: 0 +}; + +struct TwitchDrop { +}; + +struct TwitchDropSubDirectory { +}; + +struct TwitchDropDirectory { +}; + +struct TwitchDropResource { + keen::TwitchDropId dropId; // Offset: 0 + keen::BlobArray items; // Offset: 4 + keen::BlobArray itemRefs; // Offset: 12 + keen::string debugName; // Offset: 20 + keen::Guid debugId; // Offset: 28 +}; + +struct TwitchDropCollection { + keen::BlobArray drops; // Offset: 0 +}; + +typedef keen::HashKey32 VoxelBlueprintId; + +typedef keen::HashKey32 VoxelBlueprintMaterialPoolId; + +struct VoxelSnappingRule { + keen::BlobArray> snappingTargets; // Offset: 0 + keen::BlobArray> excludeSnappingTargets; // Offset: 8 + keen::uint8 maxHorizontalDistance; // Offset: 16 + keen::uint8 maxVerticalDistance; // Offset: 17 + keen::bool snapHorizontally; // Offset: 18 + keen::bool snapVertically; // Offset: 19 + keen::bool aboveAdjacent; // Offset: 20 + keen::bool aboveEnclosing; // Offset: 21 + keen::bool belowAdjacent; // Offset: 22 + keen::bool belowEnclosing; // Offset: 23 + keen::bool directionalHorizontalSnapping; // Offset: 24 + keen::bool sideAdjacent; // Offset: 25 + keen::bool sideEnclosing; // Offset: 26 + keen::bool lenghtwiseAdjacent; // Offset: 27 + keen::bool lenghtwiseEnclosing; // Offset: 28 + keen::bool crosswiseAdjacent; // Offset: 29 + keen::bool crosswiseEnclosing; // Offset: 30 + keen::BlobString debugName; // Offset: 32 +}; + +struct VoxelBlueprintMaterial { + keen::ObjectReference materialItem; // Offset: 0 +}; + +struct VoxelBlueprintConfigSnapping { + keen::BlobArray rules; // Offset: 0 +}; + +struct VoxelBlueprintMaterialPool { + keen::EquipmentSlot equipmentSlot; // Offset: 0 + keen::VoxelBlueprintMaterialPoolId poolId; // Offset: 4 + keen::BlobArray materials; // Offset: 8 + keen::BlobString debugName; // Offset: 16 +}; + +struct VoxelBlueprintConfig { + keen::VoxelBlueprintConfigSnapping snappingConfig; // Offset: 0 + keen::BlobString debugName; // Offset: 8 +}; + +struct VoxelBlueprintRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryResource { + keen::BlobArray materialPools; // Offset: 0 +}; + +enum class VoxelScatterImageMode { + HigherThan = 0, + SurfaceMaterial = 1, + AboveFog = 2, +}; + +enum class VoxelScatterImageContentPass { + ManualPois = 0, + LargeStamps = 1, + PrioPois = 2, + FillPois = 3, + DecoStamps = 4, + Enemies = 5, + Final = 6, +}; + +struct AbstractScatterImage { +}; + +struct VoxelScatterImage { + keen::ObjectReference scene; // Offset: 0 + keen::VoxelScatterImageContentPass contentPass; // Offset: 16 + keen::uint32 upscaleFactor; // Offset: 20 + keen::VoxelScatterImageMode mode; // Offset: 24 + keen::float32 referenceHeight; // Offset: 28 + keen::ObjectReference referenceMaterial; // Offset: 32 +}; + +enum class ecs.GameSettingsVersion { + V_0 = 0, + V_1 = 1, + V_2 = 2, + V_3 = 3, + V_4_HungerDuration = 4, + V_5_EnumStrings = 5, + V_6_PlayerBodyHeat = 6, + V_7_GliderTurbulences = 7, + V_8_WeatherFrequency = 8, + V_9_TamingStartleRepercussion = 9, +}; + +struct ecs.GameSettingsPresetConfig { + keen::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::ecs::GameSettings settings; // Offset: 8 +}; + +struct GameSettingsPresetsResource { + keen::ecs::GameSettings minValues; // Offset: 0 + keen::ecs::GameSettings maxValues; // Offset: 128 + keen::BlobArray presets; // Offset: 256 +}; + +enum class G38TestState { + Invalid = 0, + Setup = 1, + Running = 2, + Cleanup = 3, + Finished = 4, +}; + +struct G38TestResult { + keen::string name; // Offset: 0 + keen::string program; // Offset: 8 + keen::Time duration; // Offset: 16 + keen::ErrorId error; // Offset: 24 +}; + +struct G38TestSummary { + keen::uint32 count; // Offset: 0 + keen::uint32 failed; // Offset: 4 +}; + +struct G38TestReport { + keen::CalendarTimeStamp date; // Offset: 0 + keen::G38TestSummary summary; // Offset: 8 + keen::BlobArray testResults; // Offset: 16 +}; + +typedef keen::LocaTagReference UiLocaTagReference; + +struct FbUiLocaCraftingWorkshops { + keen::UiLocaTagReference player; // Offset: 0 + keen::UiLocaTagReference alchemist; // Offset: 16 + keen::UiLocaTagReference blacksmith; // Offset: 32 + keen::UiLocaTagReference carpenter; // Offset: 48 + keen::UiLocaTagReference workbench; // Offset: 64 + keen::UiLocaTagReference grindingWheel; // Offset: 80 + keen::UiLocaTagReference oven; // Offset: 96 + keen::UiLocaTagReference campfireBarbecue; // Offset: 112 + keen::UiLocaTagReference anvil; // Offset: 128 + keen::UiLocaTagReference distillery; // Offset: 144 + keen::UiLocaTagReference furnace; // Offset: 160 + keen::UiLocaTagReference mortar; // Offset: 176 + keen::UiLocaTagReference sketches; // Offset: 192 + keen::UiLocaTagReference flameAltar; // Offset: 208 +}; + +struct FbUiLocaCraftingCategories { + keen::UiLocaTagReference untaggedRecipeSet; // Offset: 0 + keen::UiLocaTagReference customization; // Offset: 16 + keen::UiLocaTagReference equipment; // Offset: 32 + keen::UiLocaTagReference weapons; // Offset: 48 + keen::UiLocaTagReference tools; // Offset: 64 + keen::UiLocaTagReference buildTools; // Offset: 80 + keen::UiLocaTagReference consumables; // Offset: 96 + keen::UiLocaTagReference ammunition; // Offset: 112 + keen::UiLocaTagReference materials; // Offset: 128 + keen::UiLocaTagReference blueprints; // Offset: 144 + keen::UiLocaTagReference currency; // Offset: 160 + keen::UiLocaTagReference collectible; // Offset: 176 + keen::UiLocaTagReference genericItem; // Offset: 192 +}; + +struct FbUiLocaCrafting { + keen::FbUiLocaCraftingWorkshops workshops; // Offset: 0 + keen::FbUiLocaCraftingCategories categories; // Offset: 224 + keen::UiLocaTagReference browserPinned; // Offset: 432 + keen::UiLocaTagReference toggleDirectoryFilter; // Offset: 448 + keen::UiLocaTagReference itemViewerNoRecipeHint; // Offset: 464 + keen::UiLocaTagReference requirementHeader; // Offset: 480 + keen::UiLocaTagReference ingredientsHeader; // Offset: 496 + keen::UiLocaTagReference emptyMenuHintShort; // Offset: 512 + keen::UiLocaTagReference emptyMenuHintLong; // Offset: 528 + keen::UiLocaTagReference automatedCraftingStatusWaiting; // Offset: 544 + keen::UiLocaTagReference automatedCraftingStatusRunning; // Offset: 560 + keen::UiLocaTagReference automatedCraftingStatusPaused; // Offset: 576 + keen::UiLocaTagReference automatedCraftingInsufficientMaterials; // Offset: 592 + keen::UiLocaTagReference automatedCraftingAmountCraftableStacks; // Offset: 608 + keen::UiLocaTagReference automatedCraftingStart; // Offset: 624 + keen::UiLocaTagReference automatedCraftingResume; // Offset: 640 + keen::UiLocaTagReference automatedCraftingStop; // Offset: 656 + keen::UiLocaTagReference automatedCraftingStopUnavailable; // Offset: 672 + keen::UiLocaTagReference automatedCraftingPaused; // Offset: 688 + keen::UiLocaTagReference automatedCraftingIdle; // Offset: 704 + keen::UiLocaTagReference automatedCraftingWorking; // Offset: 720 + keen::UiLocaTagReference automatedCraftingStorageFull; // Offset: 736 + keen::UiLocaTagReference automatedCraftingQueued; // Offset: 752 + keen::UiLocaTagReference automatedCraftingInsufficientMaterialsHint; // Offset: 768 + keen::UiLocaTagReference automatedCraftingStorageFullHint; // Offset: 784 + keen::UiLocaTagReference automatedCraftingSourceMaterials; // Offset: 800 + keen::UiLocaTagReference changeRecipeHint; // Offset: 816 + keen::UiLocaTagReference factoryNoRecipesAvailable; // Offset: 832 + keen::UiLocaTagReference factoryMagicChestNoRecipesAvailable; // Offset: 848 + keen::UiLocaTagReference factoryShowCurrentProduction; // Offset: 864 + keen::UiLocaTagReference craftingItemInInventory; // Offset: 880 + keen::UiLocaTagReference noUpgradableItems; // Offset: 896 + keen::UiLocaTagReference noIngredientMissing; // Offset: 912 + keen::UiLocaTagReference ingredientsMissing; // Offset: 928 + keen::UiLocaTagReference ingredientsNeeds; // Offset: 944 + keen::UiLocaTagReference availableOutputs; // Offset: 960 + keen::UiLocaTagReference selected; // Offset: 976 + keen::UiLocaTagReference recipeViewerTabIngredients; // Offset: 992 + keen::UiLocaTagReference recipeViewerTabRecipe; // Offset: 1008 + keen::UiLocaTagReference recipeViewerTabItem; // Offset: 1024 +}; + +struct FbUiLocaItemEquipmentSlots { + keen::UiLocaTagReference armourHead; // Offset: 0 + keen::UiLocaTagReference armourUpperBody; // Offset: 16 + keen::UiLocaTagReference armourArms; // Offset: 32 + keen::UiLocaTagReference armourLowerBody; // Offset: 48 + keen::UiLocaTagReference armourFeet; // Offset: 64 + keen::UiLocaTagReference armourAccessory; // Offset: 80 + keen::UiLocaTagReference armourRing; // Offset: 96 + keen::UiLocaTagReference armourShield; // Offset: 112 + keen::UiLocaTagReference vanityHead; // Offset: 128 + keen::UiLocaTagReference vanityUpperBody; // Offset: 144 + keen::UiLocaTagReference vanityArms; // Offset: 160 + keen::UiLocaTagReference vanityLowerBody; // Offset: 176 + keen::UiLocaTagReference vanityFeet; // Offset: 192 + keen::UiLocaTagReference hookshot; // Offset: 208 + keen::UiLocaTagReference glider; // Offset: 224 + keen::UiLocaTagReference meleeWeapon; // Offset: 240 + keen::UiLocaTagReference midRangeWeapon; // Offset: 256 + keen::UiLocaTagReference rangedWeapon; // Offset: 272 + keen::UiLocaTagReference arrow; // Offset: 288 + keen::UiLocaTagReference spell; // Offset: 304 + keen::UiLocaTagReference backpackExtender; // Offset: 320 +}; + +struct FbUiLocaPunctuations { + keen::LocaTag plusSign; // Offset: 0 + keen::LocaTag minusSign; // Offset: 16 + keen::LocaTag multiplySign; // Offset: 32 + keen::UiLocaTagReference decimalSeparator; // Offset: 48 + keen::UiLocaTagReference thousandsSeparator; // Offset: 64 + keen::LocaTag exclamationMark; // Offset: 80 + keen::LocaTag questionMark; // Offset: 96 + keen::LocaTag questionMarkTriple; // Offset: 112 + keen::LocaTag bulletDot; // Offset: 128 + keen::LocaTag emDash; // Offset: 144 + keen::UiLocaTagReference action1AndAction2; // Offset: 160 +}; + +struct FbUiLocaGeneric { + keen::UiLocaTagReference timeUnitsAbbreviations; // Offset: 0 + keen::UiLocaTagReference milliseconds; // Offset: 16 + keen::UiLocaTagReference inactiveState; // Offset: 32 +}; + +struct FbUiLocaInput { + keen::UiLocaTagReference unassigned; // Offset: 0 + keen::UiLocaTagReference invalidStick; // Offset: 16 + keen::UiLocaTagReference leftMouseButton; // Offset: 32 + keen::UiLocaTagReference rightMouseButton; // Offset: 48 + keen::UiLocaTagReference middleMouseButton; // Offset: 64 + keen::UiLocaTagReference mouse4; // Offset: 80 + keen::UiLocaTagReference mouse5; // Offset: 96 + keen::UiLocaTagReference mouseWheelLeft; // Offset: 112 + keen::UiLocaTagReference mouseWheelRight; // Offset: 128 + keen::UiLocaTagReference mouseWheelUp; // Offset: 144 + keen::UiLocaTagReference mouseWheelDown; // Offset: 160 + keen::UiLocaTagReference mouseMoveLeft; // Offset: 176 + keen::UiLocaTagReference mouseMoveRight; // Offset: 192 + keen::UiLocaTagReference mouseMoveUp; // Offset: 208 + keen::UiLocaTagReference mouseMoveDown; // Offset: 224 +}; + +struct FbUiLocaAttributeInfo { + keen::UiLocaTagReference label; // Offset: 0 + keen::UiLocaTagReference alternativeLabel; // Offset: 16 + keen::UiLocaTagReference tooltip; // Offset: 32 + keen::float32 impliedBaseMultiplier; // Offset: 48 + keen::float32 relativeToValue; // Offset: 52 +}; + +struct FbUiLocaAttributes { + keen::UiLocaTagReference attributeMenuHeader; // Offset: 0 + keen::UiLocaTagReference subTabBasics; // Offset: 16 + keen::UiLocaTagReference groupFoundation; // Offset: 32 + keen::UiLocaTagReference groupPrimary; // Offset: 48 + keen::UiLocaTagReference groupSecondary; // Offset: 64 + keen::UiLocaTagReference groupVital; // Offset: 80 + keen::UiLocaTagReference groupCombat; // Offset: 96 + keen::UiLocaTagReference groupFogSurvival; // Offset: 112 + keen::UiLocaTagReference groupMain; // Offset: 128 + keen::UiLocaTagReference groupRegeneration; // Offset: 144 + keen::UiLocaTagReference groupProtection; // Offset: 160 + keen::UiLocaTagReference groupMovement; // Offset: 176 + keen::UiLocaTagReference groupDamage; // Offset: 192 + keen::UiLocaTagReference groupWeaponDamage; // Offset: 208 + keen::UiLocaTagReference groupEnemyDamage; // Offset: 224 + keen::UiLocaTagReference groupMisc; // Offset: 240 + keen::UiLocaTagReference valueExplainer; // Offset: 256 + keen::UiLocaTagReference valueExplainerWithBuff; // Offset: 272 + keen::FbUiLocaAttributeInfo health; // Offset: 288 + keen::FbUiLocaAttributeInfo mana; // Offset: 344 + keen::FbUiLocaAttributeInfo stamina; // Offset: 400 + keen::FbUiLocaAttributeInfo fogResistance; // Offset: 456 + keen::FbUiLocaAttributeInfo fogResistanceDuration; // Offset: 512 + keen::FbUiLocaAttributeInfo fogResistanceDurationMax; // Offset: 568 + keen::FbUiLocaAttributeInfo freezeResistance; // Offset: 624 + keen::FbUiLocaAttributeInfo bodyHeat; // Offset: 680 + keen::FbUiLocaAttributeInfo strength; // Offset: 736 + keen::FbUiLocaAttributeInfo dexterity; // Offset: 792 + keen::FbUiLocaAttributeInfo intelligence; // Offset: 848 + keen::FbUiLocaAttributeInfo constitution; // Offset: 904 + keen::FbUiLocaAttributeInfo endurance; // Offset: 960 + keen::FbUiLocaAttributeInfo spirit; // Offset: 1016 + keen::FbUiLocaAttributeInfo healthRegeneration; // Offset: 1072 + keen::FbUiLocaAttributeInfo healthRegenerationDelay; // Offset: 1128 + keen::FbUiLocaAttributeInfo manaRegeneration; // Offset: 1184 + keen::FbUiLocaAttributeInfo manaRegenerationDelay; // Offset: 1240 + keen::FbUiLocaAttributeInfo staminaRegeneration; // Offset: 1296 + keen::FbUiLocaAttributeInfo staminaRegenerationDelay; // Offset: 1352 + keen::FbUiLocaAttributeInfo bodyHeatRegeneration; // Offset: 1408 + keen::FbUiLocaAttributeInfo bodyHeatRegenerationDelay; // Offset: 1464 + keen::FbUiLocaAttributeInfo baseMovementSpeed; // Offset: 1520 + keen::FbUiLocaAttributeInfo sprintMovementSpeed; // Offset: 1576 + keen::FbUiLocaAttributeInfo sneakMovementSpeed; // Offset: 1632 + keen::FbUiLocaAttributeInfo critChanceMelee; // Offset: 1688 + keen::FbUiLocaAttributeInfo critChanceMagical; // Offset: 1744 + keen::FbUiLocaAttributeInfo critChanceRanged; // Offset: 1800 + keen::FbUiLocaAttributeInfo skillShotDamage; // Offset: 1856 + keen::FbUiLocaAttributeInfo staffDamage; // Offset: 1912 + keen::FbUiLocaAttributeInfo wandDamage; // Offset: 1968 + keen::FbUiLocaAttributeInfo oneHandDamage; // Offset: 2024 + keen::FbUiLocaAttributeInfo daggerDamage; // Offset: 2080 + keen::FbUiLocaAttributeInfo twoHandDamage; // Offset: 2136 + keen::FbUiLocaAttributeInfo bowDamage; // Offset: 2192 + keen::FbUiLocaAttributeInfo throwableDamage; // Offset: 2248 + keen::FbUiLocaAttributeInfo unarmedDamage; // Offset: 2304 + keen::FbUiLocaAttributeInfo foeMagicalDamage; // Offset: 2360 + keen::FbUiLocaAttributeInfo foeMeleeDamage; // Offset: 2416 + keen::FbUiLocaAttributeInfo foeRangedDamage; // Offset: 2472 + keen::FbUiLocaAttributeInfo foeFlyingDamage; // Offset: 2528 + keen::FbUiLocaAttributeInfo foeSkeletonDamage; // Offset: 2584 + keen::FbUiLocaAttributeInfo healing; // Offset: 2640 + keen::FbUiLocaAttributeInfo reviveDuration; // Offset: 2696 + keen::FbUiLocaAttributeInfo reviveHealth; // Offset: 2752 + keen::FbUiLocaAttributeInfo lifeSteal; // Offset: 2808 + keen::FbUiLocaAttributeInfo restedDurationBonus; // Offset: 2864 + keen::FbUiLocaAttributeInfo offenseBackstab; // Offset: 2920 + keen::FbUiLocaAttributeInfo offenseCritical; // Offset: 2976 + keen::FbUiLocaAttributeInfo offenseCritChance; // Offset: 3032 + keen::FbUiLocaAttributeInfo damageMelee; // Offset: 3088 + keen::FbUiLocaAttributeInfo damageSpell; // Offset: 3144 + keen::FbUiLocaAttributeInfo damageRanged; // Offset: 3200 + keen::FbUiLocaAttributeInfo blockAttribute; // Offset: 3256 + keen::FbUiLocaAttributeInfo parryAttribute; // Offset: 3312 + keen::FbUiLocaAttributeInfo resistancePhysical; // Offset: 3368 + keen::FbUiLocaAttributeInfo resistancePhysicalCut; // Offset: 3424 + keen::FbUiLocaAttributeInfo resistancePhysicalPierce; // Offset: 3480 + keen::FbUiLocaAttributeInfo resistancePhysicalBlunt; // Offset: 3536 + keen::FbUiLocaAttributeInfo resistanceMagical; // Offset: 3592 + keen::FbUiLocaAttributeInfo resistanceMagicalFire; // Offset: 3648 + keen::FbUiLocaAttributeInfo resistanceMagicalIce; // Offset: 3704 + keen::FbUiLocaAttributeInfo resistanceMagicalFog; // Offset: 3760 + keen::FbUiLocaAttributeInfo resistanceMagicalLightning; // Offset: 3816 + keen::FbUiLocaAttributeInfo poisonSusceptibility; // Offset: 3872 + keen::FbUiLocaAttributeInfo sneakAttack; // Offset: 3928 + keen::FbUiLocaAttributeInfo mercilessAttack; // Offset: 3984 + keen::FbUiLocaAttributeInfo ambushAttack; // Offset: 4040 + keen::UiLocaTagReference numberExplanation; // Offset: 4096 +}; + +struct FbUiLocaPerkAttributes { + keen::UiLocaTagReference damagePhysicalCut; // Offset: 0 + keen::UiLocaTagReference damagePhysicalPierce; // Offset: 16 + keen::UiLocaTagReference damagePhysicalBlunt; // Offset: 32 + keen::UiLocaTagReference damagePoison; // Offset: 48 + keen::UiLocaTagReference damageMagicalFire; // Offset: 64 + keen::UiLocaTagReference damageMagicalIce; // Offset: 80 + keen::UiLocaTagReference damageMagicalFog; // Offset: 96 + keen::UiLocaTagReference damageMagicalLightning; // Offset: 112 + keen::UiLocaTagReference resistancePhysicalCut; // Offset: 128 + keen::UiLocaTagReference resistancePhysicalPierce; // Offset: 144 + keen::UiLocaTagReference resistancePhysicalBlunt; // Offset: 160 + keen::UiLocaTagReference resistanceMagicalFire; // Offset: 176 + keen::UiLocaTagReference resistanceMagicalIce; // Offset: 192 + keen::UiLocaTagReference resistanceMagicalFog; // Offset: 208 + keen::UiLocaTagReference resistanceMagicalLightning; // Offset: 224 +}; + +struct FbUiNpcNames { + keen::UiLocaTagReference flame; // Offset: 0 + keen::UiLocaTagReference alchemist; // Offset: 16 + keen::UiLocaTagReference blacksmith; // Offset: 32 + keen::UiLocaTagReference hunter; // Offset: 48 + keen::UiLocaTagReference farmer; // Offset: 64 + keen::UiLocaTagReference carpenter; // Offset: 80 + keen::UiLocaTagReference cryptKeeper; // Offset: 96 + keen::UiLocaTagReference bard; // Offset: 112 +}; + +struct FbUiLocaRpgTerms { + keen::FbUiNpcNames npcNames; // Offset: 0 + keen::UiLocaTagReference entityLevel; // Offset: 128 + keen::UiLocaTagReference genericLevelWithArgument; // Offset: 144 + keen::UiLocaTagReference characterLevel; // Offset: 160 + keen::UiLocaTagReference experiencePoints; // Offset: 176 + keen::UiLocaTagReference experiencePointsShort; // Offset: 192 + keen::UiLocaTagReference experiencePointsRequired; // Offset: 208 + keen::FbUiLocaAttributes attributes; // Offset: 224 + keen::FbUiLocaPerkAttributes perkAttributes; // Offset: 4336 + keen::UiLocaTagReference durabilityGeneric; // Offset: 4576 + keen::UiLocaTagReference damagePhysicalCut; // Offset: 4592 + keen::UiLocaTagReference damagePhysicalPierce; // Offset: 4608 + keen::UiLocaTagReference damagePhysicalBlunt; // Offset: 4624 + keen::UiLocaTagReference damageMagicalFire; // Offset: 4640 + keen::UiLocaTagReference damageMagicalIce; // Offset: 4656 + keen::UiLocaTagReference damageMagicalFog; // Offset: 4672 + keen::UiLocaTagReference damageMagicalLightning; // Offset: 4688 + keen::UiLocaTagReference damageHealing; // Offset: 4704 + keen::UiLocaTagReference damagePoison; // Offset: 4720 + keen::UiLocaTagReference bowDamageBase; // Offset: 4736 + keen::UiLocaTagReference bowDamageNoBonus; // Offset: 4752 + keen::UiLocaTagReference bowDamagePhysicalCut; // Offset: 4768 + keen::UiLocaTagReference bowDamagePhysicalPierce; // Offset: 4784 + keen::UiLocaTagReference bowDamagePhysicalBlunt; // Offset: 4800 + keen::UiLocaTagReference bowDamageMagicalFire; // Offset: 4816 + keen::UiLocaTagReference bowDamageMagicalIce; // Offset: 4832 + keen::UiLocaTagReference bowDamageMagicalFog; // Offset: 4848 + keen::UiLocaTagReference bowDamageMagicalLightning; // Offset: 4864 + keen::UiLocaTagReference bowDamageHealing; // Offset: 4880 + keen::UiLocaTagReference bowDamagePoison; // Offset: 4896 + keen::UiLocaTagReference armorResistanceCutShort; // Offset: 4912 + keen::UiLocaTagReference armorResistancePierceShort; // Offset: 4928 + keen::UiLocaTagReference armorResistanceBluntShort; // Offset: 4944 + keen::UiLocaTagReference armorResistanceFireShort; // Offset: 4960 + keen::UiLocaTagReference armorResistanceIceShort; // Offset: 4976 + keen::UiLocaTagReference armorResistanceFogShort; // Offset: 4992 + keen::UiLocaTagReference armorResistanceLightningShort; // Offset: 5008 + keen::UiLocaTagReference rarityUndefined; // Offset: 5024 + keen::UiLocaTagReference rarityCommon; // Offset: 5040 + keen::UiLocaTagReference rarityUncommon; // Offset: 5056 + keen::UiLocaTagReference rarityRare; // Offset: 5072 + keen::UiLocaTagReference rarityEpic; // Offset: 5088 + keen::UiLocaTagReference rarityLegendary; // Offset: 5104 + keen::UiLocaTagReference rarityVanity; // Offset: 5120 + keen::UiLocaTagReference restedBuffNone; // Offset: 5136 + keen::UiLocaTagReference restedBuffCharging; // Offset: 5152 + keen::UiLocaTagReference restedBuffActive; // Offset: 5168 + keen::UiLocaTagReference restedBuffGenericDescription; // Offset: 5184 + keen::UiLocaTagReference comfortLevel; // Offset: 5200 + keen::UiLocaTagReference comfort; // Offset: 5216 + keen::UiLocaTagReference statusSitting; // Offset: 5232 + keen::UiLocaTagReference statusSheltered; // Offset: 5248 + keen::UiLocaTagReference statusSleeping; // Offset: 5264 + keen::UiLocaTagReference statusInCombat; // Offset: 5280 + keen::UiLocaTagReference statusWarmth; // Offset: 5296 + keen::UiLocaTagReference statusShelteredBed; // Offset: 5312 + keen::UiLocaTagReference statusSittingDesc; // Offset: 5328 + keen::UiLocaTagReference statusShelteredDesc; // Offset: 5344 + keen::UiLocaTagReference statusSleepingDesc; // Offset: 5360 + keen::UiLocaTagReference statusWarmthDesc; // Offset: 5376 + keen::UiLocaTagReference statusSittingNot; // Offset: 5392 + keen::UiLocaTagReference statusShelteredNot; // Offset: 5408 + keen::UiLocaTagReference statusInCombatNot; // Offset: 5424 + keen::UiLocaTagReference statusWarmthNot; // Offset: 5440 + keen::UiLocaTagReference foodTypeAlreadyActive; // Offset: 5456 + keen::UiLocaTagReference foodSlotsAllOccupied; // Offset: 5472 + keen::UiLocaTagReference npcProps; // Offset: 5488 + keen::UiLocaTagReference npcUndiscoveredName; // Offset: 5504 + keen::UiLocaTagReference npcUndiscoveredDescription; // Offset: 5520 +}; + +struct FbUiLocaHudBuildFeedback { + keen::UiLocaTagReference cursorOutsideBuildZone; // Offset: 0 + keen::UiLocaTagReference cursorInsideFogZone; // Offset: 16 + keen::UiLocaTagReference cursorTooFarAway; // Offset: 32 + keen::UiLocaTagReference cursorInsideLenientBuildInhibitor; // Offset: 48 + keen::UiLocaTagReference cursorInsideStrictBuildInhibitor; // Offset: 64 + keen::UiLocaTagReference maxAltarCountReached; // Offset: 80 + keen::UiLocaTagReference maxAltarCountUpgradeHint; // Offset: 96 + keen::UiLocaTagReference maxAltarCountLimitHint; // Offset: 112 + keen::UiLocaTagReference maxTameAnimalCountReached; // Offset: 128 + keen::UiLocaTagReference enemiesNearby; // Offset: 144 + keen::UiLocaTagReference areaOccupied; // Offset: 160 + keen::UiLocaTagReference invalidSurfaceNormal; // Offset: 176 + keen::UiLocaTagReference invalidCursorVoxelMaterial; // Offset: 192 + keen::UiLocaTagReference missingMaterials; // Offset: 208 + keen::UiLocaTagReference noPermission; // Offset: 224 + keen::UiLocaTagReference assignNpcToBed; // Offset: 240 + keen::UiLocaTagReference hintNpcNotPlaced; // Offset: 256 + keen::UiLocaTagReference bedUnoccupied; // Offset: 272 + keen::UiLocaTagReference bedOccupiedBy; // Offset: 288 + keen::UiLocaTagReference bedTooFarAway; // Offset: 304 + keen::UiLocaTagReference useStaffToAssignBed; // Offset: 320 +}; + +struct FbUiLocaHudItemUseMessages { + keen::UiLocaTagReference hookshotUseFail; // Offset: 0 + keen::UiLocaTagReference doorOpenFail; // Offset: 16 + keen::UiLocaTagReference gliderUseFail; // Offset: 32 + keen::UiLocaTagReference gliderUseHint; // Offset: 48 + keen::UiLocaTagReference itemMovedToEquipmentSlotByUsing; // Offset: 64 + keen::UiLocaTagReference itemFailedInsufficientStamina; // Offset: 80 +}; + +struct FbUiLocaHitEventLabels { + keen::UiLocaTagReference crit; // Offset: 0 + keen::UiLocaTagReference backstab; // Offset: 16 + keen::UiLocaTagReference weakspot; // Offset: 32 + keen::UiLocaTagReference immune; // Offset: 48 + keen::UiLocaTagReference ineffective; // Offset: 64 + keen::UiLocaTagReference resist; // Offset: 80 +}; + +struct FbUiLocaTutorialHints { + keen::UiLocaTagReference quickbuilderMaterialHint; // Offset: 0 + keen::UiLocaTagReference quickbuilderShapeHint; // Offset: 16 + keen::UiLocaTagReference quickbuilderTabsHint; // Offset: 32 + keen::UiLocaTagReference quickbuilderShapeSelectionHint; // Offset: 48 + keen::UiLocaTagReference cookingTutorialHint; // Offset: 64 + keen::UiLocaTagReference craftingRecipeList; // Offset: 80 + keen::UiLocaTagReference craftingRecipeCategories; // Offset: 96 + keen::UiLocaTagReference craftingRecipeSeries; // Offset: 112 + keen::UiLocaTagReference craftingIngredients; // Offset: 128 + keen::UiLocaTagReference craftingPinRecipe; // Offset: 144 + keen::UiLocaTagReference craftingTabs; // Offset: 160 + keen::UiLocaTagReference npcCraftingTabs; // Offset: 176 + keen::UiLocaTagReference enhancingItemList; // Offset: 192 + keen::UiLocaTagReference enhancingPerks; // Offset: 208 + keen::UiLocaTagReference enhancingCurrency; // Offset: 224 + keen::UiLocaTagReference factoryInventory; // Offset: 240 + keen::UiLocaTagReference factoryRecipes; // Offset: 256 + keen::UiLocaTagReference factoryFillIngredients; // Offset: 272 + keen::UiLocaTagReference factoryInputHints; // Offset: 288 + keen::UiLocaTagReference factoryStart; // Offset: 304 + keen::UiLocaTagReference actionbarTutorial1; // Offset: 320 + keen::UiLocaTagReference actionbarTutorial2; // Offset: 336 + keen::UiLocaTagReference summoningStaffTutorialNpcTypes; // Offset: 352 + keen::UiLocaTagReference summoningStaffTutorialPlacing; // Offset: 368 + keen::UiLocaTagReference summoningStaffRoamingRange; // Offset: 384 + keen::UiLocaTagReference flameUpgradeHappyNpc; // Offset: 400 + keen::UiLocaTagReference nextHint; // Offset: 416 +}; + +struct FbUiLocaHudXpSources { + keen::UiLocaTagReference xpSourceQuest; // Offset: 0 + keen::UiLocaTagReference xpSourceCombat; // Offset: 16 + keen::UiLocaTagReference xpSourceLore; // Offset: 32 + keen::UiLocaTagReference xpSourceExploration; // Offset: 48 + keen::UiLocaTagReference xpSourceMining; // Offset: 64 +}; + +struct FbUiLocaHudHappinessDialog { + keen::UiLocaTagReference missingBedDialogText; // Offset: 0 + keen::UiLocaTagReference missingBedDialogLabel; // Offset: 16 + keen::UiLocaTagReference missingShelterDialogText; // Offset: 32 + keen::UiLocaTagReference missingShelterDialogLabel; // Offset: 48 + keen::UiLocaTagReference missingFoodDialogText; // Offset: 64 + keen::UiLocaTagReference missingFoodDialogLabel; // Offset: 80 +}; + +struct FbUiLocaHudTemperature { + keen::UiLocaTagReference resistanceBuffLabel; // Offset: 0 + keen::UiLocaTagReference resistanceLowWarning; // Offset: 16 + keen::UiLocaTagReference deadlyDebuffLabel; // Offset: 32 + keen::UiLocaTagReference deadlyDebuffWarning; // Offset: 48 +}; + +struct FbUiLocaHud { + keen::FbUiLocaHudBuildFeedback buildFeedback; // Offset: 0 + keen::FbUiLocaHudItemUseMessages itemUseMessages; // Offset: 336 + keen::FbUiLocaHitEventLabels hitEventLabels; // Offset: 432 + keen::FbUiLocaTutorialHints tutorialHints; // Offset: 528 + keen::FbUiLocaHudXpSources xpSources; // Offset: 960 + keen::FbUiLocaHudHappinessDialog missingHappinessDialogOptions; // Offset: 1040 + keen::UiLocaTagReference nightSpeed; // Offset: 1136 + keen::FbUiLocaHudTemperature freezing; // Offset: 1152 + keen::FbUiLocaHudTemperature extremeHeat; // Offset: 1216 + keen::UiLocaTagReference gameProgressSummaryTitle; // Offset: 1280 + keen::UiLocaTagReference ammoLabelNoneEquipped; // Offset: 1296 + keen::UiLocaTagReference quickBuilderPreUseHint; // Offset: 1312 + keen::UiLocaTagReference buildTooltipQuickBuilderInit; // Offset: 1328 + keen::UiLocaTagReference buildTooltipChangeBlueprint; // Offset: 1344 + keen::UiLocaTagReference buildTooltipChangeShovelAction; // Offset: 1360 + keen::UiLocaTagReference buildTooltipChangeNpc; // Offset: 1376 + keen::UiLocaTagReference buildTooltipChangeMaterial; // Offset: 1392 + keen::UiLocaTagReference buildTooltipRotate90; // Offset: 1408 + keen::UiLocaTagReference buildTooltipRotate; // Offset: 1424 + keen::UiLocaTagReference buildTooltipAreaActions; // Offset: 1440 + keen::UiLocaTagReference buildTooltipUseSnapping; // Offset: 1456 + keen::UiLocaTagReference cursorHintSnappingActive; // Offset: 1472 + keen::UiLocaTagReference cursorHintSnappingReady; // Offset: 1488 + keen::UiLocaTagReference cursorHintSnappingOff; // Offset: 1504 + keen::UiLocaTagReference buildTooltipMultiToolMaterialHeader; // Offset: 1520 + keen::UiLocaTagReference buildTooltipMultiToolMaterialActionLabel; // Offset: 1536 + keen::UiLocaTagReference leaveNpcConversation; // Offset: 1552 + keen::UiLocaTagReference messageFastTravelUnlock; // Offset: 1568 + keen::UiLocaTagReference messageNpcFound; // Offset: 1584 + keen::UiLocaTagReference messageSpecialLootAcquired; // Offset: 1600 + keen::UiLocaTagReference messageLevelUp; // Offset: 1616 + keen::UiLocaTagReference messageFlameLevelUp; // Offset: 1632 + keen::UiLocaTagReference messageAllItemsRepaired; // Offset: 1648 + keen::UiLocaTagReference messagePinnedRecipeReady; // Offset: 1664 + keen::UiLocaTagReference messageMagicBarrierUnlocked; // Offset: 1680 + keen::UiLocaTagReference messageDoorUnlocked; // Offset: 1696 + keen::UiLocaTagReference messageSecretDoorUnlocked; // Offset: 1712 + keen::UiLocaTagReference messageNewTwitchDropUnlocked; // Offset: 1728 + keen::UiLocaTagReference knowledgeNotificationGeneral; // Offset: 1744 + keen::UiLocaTagReference knowledgeNotificationMap; // Offset: 1760 + keen::UiLocaTagReference knowledgeNotificationJournal; // Offset: 1776 + keen::UiLocaTagReference knowledgeNotificationNewTutorial; // Offset: 1792 + keen::UiLocaTagReference knowledgeNotificationNewLoreDocument; // Offset: 1808 + keen::UiLocaTagReference knowledgeNotificationNewLorePage; // Offset: 1824 + keen::UiLocaTagReference knowledgeNotificationNewQuest; // Offset: 1840 + keen::UiLocaTagReference knowledgeNotificationUpdatedQuest; // Offset: 1856 + keen::UiLocaTagReference knowledgeNotificationJournalCompleted; // Offset: 1872 + keen::UiLocaTagReference knowledgeNotificationCrafting; // Offset: 1888 + keen::UiLocaTagReference knowledgeNotificationIngredientKnowledge; // Offset: 1904 + keen::UiLocaTagReference knowledgeNotificationNpcDialog; // Offset: 1920 + keen::UiLocaTagReference priorityJournalEntryPrompt; // Offset: 1936 + keen::UiLocaTagReference priorityJournalEntryPromptNoBinding; // Offset: 1952 + keen::UiLocaTagReference priorityJournalLocationReached; // Offset: 1968 + keen::UiLocaTagReference interactionItemRequirementHeader; // Offset: 1984 + keen::UiLocaTagReference backpackFullMessage; // Offset: 2000 + keen::UiLocaTagReference storageFullMessage; // Offset: 2016 + keen::UiLocaTagReference compassWaypointReached; // Offset: 2032 + keen::UiLocaTagReference compassWaypointReachedAbove; // Offset: 2048 + keen::UiLocaTagReference compassWaypointReachedBelow; // Offset: 2064 + keen::UiLocaTagReference compassInFog; // Offset: 2080 + keen::UiLocaTagReference compassInDeadlyFog; // Offset: 2096 + keen::UiLocaTagReference compassEarlyFogWarning; // Offset: 2112 + keen::UiLocaTagReference compassFogWarning; // Offset: 2128 + keen::UiLocaTagReference staminaMax; // Offset: 2144 + keen::UiLocaTagReference restedBuffConditionHeader; // Offset: 2160 + keen::UiLocaTagReference markersAdded; // Offset: 2176 + keen::UiLocaTagReference entriesLogged; // Offset: 2192 + keen::UiLocaTagReference entriesCompleted; // Offset: 2208 + keen::UiLocaTagReference oneRecipeLearned; // Offset: 2224 + keen::UiLocaTagReference recipesLearned; // Offset: 2240 + keen::UiLocaTagReference recipesLearnedPersonal; // Offset: 2256 + keen::UiLocaTagReference readyToCraft; // Offset: 2272 + keen::UiLocaTagReference readyToCraftPinned; // Offset: 2288 + keen::UiLocaTagReference loading; // Offset: 2304 + keen::UiLocaTagReference reviving; // Offset: 2320 + keen::UiLocaTagReference beingRevived; // Offset: 2336 + keen::UiLocaTagReference canBeRevived; // Offset: 2352 + keen::UiLocaTagReference craftableAmount; // Offset: 2368 + keen::UiLocaTagReference emptyHint; // Offset: 2384 + keen::UiLocaTagReference inventoryCount; // Offset: 2400 + keen::UiLocaTagReference serverPerformanceBad; // Offset: 2416 + keen::UiLocaTagReference serverPerformanceBadHost; // Offset: 2432 + keen::UiLocaTagReference serverPerformanceBadDesc; // Offset: 2448 + keen::UiLocaTagReference serverPerformanceBadDescHost; // Offset: 2464 + keen::UiLocaTagReference serverPerformanceCritical; // Offset: 2480 + keen::UiLocaTagReference serverPerformanceCriticalHost; // Offset: 2496 + keen::UiLocaTagReference serverPerformanceCriticalDesc; // Offset: 2512 + keen::UiLocaTagReference serverPerformanceCriticalDescHost; // Offset: 2528 + keen::UiLocaTagReference currentServerPerformance; // Offset: 2544 + keen::UiLocaTagReference currentServerPerformanceHost; // Offset: 2560 + keen::UiLocaTagReference flameUpgradeBaseLabel; // Offset: 2576 + keen::UiLocaTagReference personalProgressionModeHint; // Offset: 2592 + keen::UiLocaTagReference allMissedWorldQuestsCompletedMessage; // Offset: 2608 + keen::UiLocaTagReference interactionNoPermission; // Offset: 2624 + keen::UiLocaTagReference itemUseNoPermission; // Offset: 2640 + keen::UiLocaTagReference currentSongPlayingHint; // Offset: 2656 + keen::UiLocaTagReference tamingTutorialTitle; // Offset: 2672 + keen::UiLocaTagReference tamingTutorialStep1; // Offset: 2688 + keen::UiLocaTagReference tamingTutorialStep2; // Offset: 2704 + keen::UiLocaTagReference tamingTutorialStep3; // Offset: 2720 + keen::UiLocaTagReference tamingTutorialStep4; // Offset: 2736 +}; + +struct FbUiLocaMenuFlameAltar { + keen::UiLocaTagReference menuHeader; // Offset: 0 + keen::UiLocaTagReference altarLevelLabel; // Offset: 16 + keen::UiLocaTagReference altarRangeLabel; // Offset: 32 + keen::UiLocaTagReference motherflameLevelLabel; // Offset: 48 + keen::UiLocaTagReference lastPlayed; // Offset: 64 + keen::UiLocaTagReference altarRange; // Offset: 80 + keen::UiLocaTagReference flameUpgradeMaxAltarCountLabel; // Offset: 96 + keen::UiLocaTagReference flameUpgradeAttributeBonusLabel; // Offset: 112 + keen::UiLocaTagReference flameUpgradeFogResistanceLabel; // Offset: 128 + keen::UiLocaTagReference flameUpgradeFogResistanceLevel; // Offset: 144 + keen::UiLocaTagReference flameUpgradeFogResistanceDuration; // Offset: 160 + keen::UiLocaTagReference flameCodexDesc; // Offset: 176 + keen::UiLocaTagReference flameCodexUpgradeHeader; // Offset: 192 + keen::UiLocaTagReference tileAltarUpgradeMainText; // Offset: 208 + keen::UiLocaTagReference tileAltarUpgradeSecondaryText; // Offset: 224 + keen::UiLocaTagReference tileMotherflameUpgradeMainText; // Offset: 240 + keen::UiLocaTagReference tileMotherflameUpgradeSecondaryText; // Offset: 256 + keen::UiLocaTagReference tileReviveNpcMainText; // Offset: 272 + keen::UiLocaTagReference tileReviveNpcSecondaryText; // Offset: 288 + keen::UiLocaTagReference tileRespecMainText; // Offset: 304 + keen::UiLocaTagReference tileRespecSecondaryText; // Offset: 320 + keen::UiLocaTagReference respecDescription; // Offset: 336 + keen::UiLocaTagReference actionRespecSkills; // Offset: 352 + keen::UiLocaTagReference actionDeactivate; // Offset: 368 + keen::UiLocaTagReference actionDeactivateSecondaryText; // Offset: 384 + keen::UiLocaTagReference actionReactivate; // Offset: 400 + keen::UiLocaTagReference deactivateAltarDesc; // Offset: 416 + keen::UiLocaTagReference inactiveStateDesc; // Offset: 432 + keen::UiLocaTagReference reactivationProhibited; // Offset: 448 + keen::UiLocaTagReference altarUpgradeRecipeHeader; // Offset: 464 + keen::UiLocaTagReference motherflameUpgradeRecipeHeader; // Offset: 480 + keen::UiLocaTagReference actionAltarUpgrade; // Offset: 496 + keen::UiLocaTagReference actionMotherflameUpgrade; // Offset: 512 + keen::UiLocaTagReference npcReviveSubheader; // Offset: 528 + keen::UiLocaTagReference deactivationExplanation; // Offset: 544 + keen::UiLocaTagReference noPermissionHintGeneral; // Offset: 560 + keen::UiLocaTagReference noAltarUpgradePermission; // Offset: 576 + keen::UiLocaTagReference noFlameUpgradePermission; // Offset: 592 + keen::UiLocaTagReference noExtinguishAltarPermission; // Offset: 608 + keen::UiLocaTagReference shelteredBedsRequirement; // Offset: 624 +}; + +struct FbUiLocaMenuPregame { + keen::UiLocaTagReference mainMenuPlay; // Offset: 0 + keen::UiLocaTagReference mainMenuJoinSessionHeader; // Offset: 16 + keen::UiLocaTagReference mainMenuInviteHeader; // Offset: 32 + keen::UiLocaTagReference mainMenuInviteAccept; // Offset: 48 + keen::UiLocaTagReference mainMenuInviteDecline; // Offset: 64 + keen::UiLocaTagReference mainMenuJoinSessionFallbackName; // Offset: 80 + keen::UiLocaTagReference mainMenuCredits; // Offset: 96 + keen::UiLocaTagReference mainMenuQuit; // Offset: 112 + keen::UiLocaTagReference mainMenuGPUDriverWarning; // Offset: 128 + keen::UiLocaTagReference thankYouClosedBeta; // Offset: 144 + keen::UiLocaTagReference steamCallToAction; // Offset: 160 + keen::UiLocaTagReference discordCallToAction; // Offset: 176 + keen::UiLocaTagReference characterSelectionEnterVerb; // Offset: 192 + keen::UiLocaTagReference characterSelectionHeaderCreate; // Offset: 208 + keen::UiLocaTagReference characterSelectionHeaderSelect; // Offset: 224 + keen::UiLocaTagReference characterSelectionEmptySlotHint; // Offset: 240 + keen::UiLocaTagReference characterDeletionConfirmHeader; // Offset: 256 + keen::UiLocaTagReference characterBackupRestoreDialogHeader; // Offset: 272 + keen::UiLocaTagReference characterBackupRestoreDataLabel; // Offset: 288 + keen::UiLocaTagReference characterBackupRestoreButtonLabel; // Offset: 304 + keen::UiLocaTagReference playSelectionHeader; // Offset: 320 + keen::UiLocaTagReference playSelectionRecent; // Offset: 336 + keen::UiLocaTagReference playSelectionJoin; // Offset: 352 + keen::UiLocaTagReference playSelectionJoinDescription; // Offset: 368 + keen::UiLocaTagReference playSelectionJoinHeader; // Offset: 384 + keen::UiLocaTagReference playSelectionHostPublic; // Offset: 400 + keen::UiLocaTagReference playSelectionHostPublicDescription; // Offset: 416 + keen::UiLocaTagReference playSelectionHostPublicHeader; // Offset: 432 + keen::UiLocaTagReference playSelectionPrivate; // Offset: 448 + keen::UiLocaTagReference playSelectionPrivateDescription; // Offset: 464 + keen::UiLocaTagReference playSelectionPrivateHeader; // Offset: 480 + keen::UiLocaTagReference party; // Offset: 496 + keen::UiLocaTagReference filterFriends; // Offset: 512 + keen::UiLocaTagReference filterDedicatedServer; // Offset: 528 + keen::UiLocaTagReference filterEmpty; // Offset: 544 + keen::UiLocaTagReference filterName; // Offset: 560 + keen::UiLocaTagReference filterPassword; // Offset: 576 + keen::UiLocaTagReference filterFreeSlots; // Offset: 592 + keen::UiLocaTagReference filterNameHeader; // Offset: 608 + keen::UiLocaTagReference sessionSearchEmptyResult; // Offset: 624 + keen::UiLocaTagReference sessionSearchOngoing; // Offset: 640 + keen::UiLocaTagReference errorServerNotFound; // Offset: 656 + keen::UiLocaTagReference errorServerNotFoundDesc; // Offset: 672 + keen::UiLocaTagReference serverFound; // Offset: 688 + keen::UiLocaTagReference noSessionsMatchingFilter; // Offset: 704 + keen::UiLocaTagReference enterGridSelection; // Offset: 720 + keen::UiLocaTagReference playVoiceSample; // Offset: 736 + keen::UiLocaTagReference customizationOptionNone; // Offset: 752 + keen::UiLocaTagReference customizationBodyType; // Offset: 768 + keen::UiLocaTagReference customizationPreset; // Offset: 784 + keen::UiLocaTagReference customizationSkinColor; // Offset: 800 + keen::UiLocaTagReference customizationEyeColor; // Offset: 816 + keen::UiLocaTagReference customizationEyeBrowColor; // Offset: 832 + keen::UiLocaTagReference customizationHair; // Offset: 848 + keen::UiLocaTagReference customizationHairColor; // Offset: 864 + keen::UiLocaTagReference customizationBeard; // Offset: 880 + keen::UiLocaTagReference customizationBeardColor; // Offset: 896 + keen::UiLocaTagReference customizationVoice; // Offset: 912 + keen::UiLocaTagReference customizationName; // Offset: 928 + keen::UiLocaTagReference customizationCharacter; // Offset: 944 + keen::UiLocaTagReference customizationNameAndFinish; // Offset: 960 + keen::UiLocaTagReference customizationResetPreset; // Offset: 976 + keen::UiLocaTagReference customizationFinish; // Offset: 992 + keen::UiLocaTagReference refresh; // Offset: 1008 + keen::UiLocaTagReference newGame; // Offset: 1024 + keen::UiLocaTagReference unnamed; // Offset: 1040 + keen::UiLocaTagReference create; // Offset: 1056 + keen::UiLocaTagReference edit; // Offset: 1072 + keen::UiLocaTagReference configure; // Offset: 1088 + keen::UiLocaTagReference myWorld; // Offset: 1104 + keen::UiLocaTagReference editWorldSave; // Offset: 1120 + keen::UiLocaTagReference configureWorldSave; // Offset: 1136 + keen::UiLocaTagReference deleteWorld; // Offset: 1152 + keen::UiLocaTagReference deleteWorldDesc; // Offset: 1168 + keen::UiLocaTagReference maxWorldCountReached; // Offset: 1184 + keen::UiLocaTagReference worldSaveNameTitle; // Offset: 1200 + keen::UiLocaTagReference gameSettings; // Offset: 1216 + keen::UiLocaTagReference sessionVisibility; // Offset: 1232 + keen::UiLocaTagReference joinGame; // Offset: 1248 + keen::UiLocaTagReference publicGame; // Offset: 1264 + keen::UiLocaTagReference privateGame; // Offset: 1280 + keen::UiLocaTagReference sessionVisibiltyFriends; // Offset: 1296 + keen::UiLocaTagReference sessionVisibiltyPublic; // Offset: 1312 + keen::UiLocaTagReference hidePasswordInput; // Offset: 1328 + keen::UiLocaTagReference setPasswordProtection; // Offset: 1344 + keen::UiLocaTagReference hostHintHasNoPassword; // Offset: 1360 + keen::UiLocaTagReference hostSettings; // Offset: 1376 + keen::UiLocaTagReference hostStartDialogHeader; // Offset: 1392 + keen::UiLocaTagReference hostStartButton; // Offset: 1408 + keen::UiLocaTagReference worldNameEmptyProhibited; // Offset: 1424 + keen::UiLocaTagReference noPassword; // Offset: 1440 + keen::UiLocaTagReference sessionPassword; // Offset: 1456 + keen::UiLocaTagReference rolePassword; // Offset: 1472 + keen::UiLocaTagReference setPassword; // Offset: 1488 + keen::UiLocaTagReference removePassword; // Offset: 1504 + keen::UiLocaTagReference enterPasswordHeader; // Offset: 1520 + keen::UiLocaTagReference sessionSize; // Offset: 1536 + keen::UiLocaTagReference maxPlayerCount; // Offset: 1552 + keen::UiLocaTagReference serverFilter; // Offset: 1568 + keen::UiLocaTagReference availableServer; // Offset: 1584 + keen::UiLocaTagReference serverName; // Offset: 1600 + keen::UiLocaTagReference hostedBy; // Offset: 1616 + keen::UiLocaTagReference currentSessionSize; // Offset: 1632 + keen::UiLocaTagReference sessionSizeWarning; // Offset: 1648 + keen::UiLocaTagReference enterPassword; // Offset: 1664 + keen::UiLocaTagReference searchIPv4; // Offset: 1680 + keen::UiLocaTagReference addToFavourite; // Offset: 1696 + keen::UiLocaTagReference renameCharacter; // Offset: 1712 + keen::UiLocaTagReference legalLine; // Offset: 1728 + keen::UiLocaTagReference gportalLogoDesc; // Offset: 1744 + keen::UiLocaTagReference gportalLink; // Offset: 1760 + keen::UiLocaTagReference versionText; // Offset: 1776 + keen::UiLocaTagReference preload; // Offset: 1792 + keen::UiLocaTagReference compilingShaders; // Offset: 1808 + keen::UiLocaTagReference addServerCaption; // Offset: 1824 + keen::UiLocaTagReference serverDidNotResponde; // Offset: 1840 + keen::UiLocaTagReference serverDidResponde; // Offset: 1856 + keen::UiLocaTagReference inviteBuildVersionWarningLocalOld; // Offset: 1872 + keen::UiLocaTagReference inviteBuildVersionWarningInviteOld; // Offset: 1888 + keen::UiLocaTagReference serverSettingsRolesHeader; // Offset: 1904 + keen::UiLocaTagReference serverSettingsRolesExplanation; // Offset: 1920 + keen::UiLocaTagReference serverSettingsSelectedSavegameHeader; // Offset: 1936 + keen::UiLocaTagReference serverSettingsRoleDisabled; // Offset: 1952 + keen::UiLocaTagReference serverSettingsRolePublic; // Offset: 1968 + keen::UiLocaTagReference serverSettingsAllRolesDisabledWarning; // Offset: 1984 + keen::UiLocaTagReference serverRolePermissionsHeader; // Offset: 2000 + keen::UiLocaTagReference serverRoleSupressed; // Offset: 2016 + keen::UiLocaTagReference serverRolesInvalidHint; // Offset: 2032 + keen::UiLocaTagReference warningHostSettingsNotConfigured; // Offset: 2048 + keen::UiLocaTagReference warningServerRoleSupressed; // Offset: 2064 + keen::UiLocaTagReference warningServerRoleSamePassword; // Offset: 2080 + keen::UiLocaTagReference warningPublicServerRole; // Offset: 2096 + keen::UiLocaTagReference warningAdminPasswordRequired; // Offset: 2112 + keen::UiLocaTagReference warningFriendPasswordRequired; // Offset: 2128 + keen::UiLocaTagReference warningNoPasswordPublic; // Offset: 2144 + keen::UiLocaTagReference forceAllowPublicFriendRole; // Offset: 2160 + keen::UiLocaTagReference rolePasswordHeader; // Offset: 2176 + keen::UiLocaTagReference changePassword; // Offset: 2192 + keen::UiLocaTagReference publicRole; // Offset: 2208 + keen::UiLocaTagReference protectedRole; // Offset: 2224 + keen::UiLocaTagReference disabled; // Offset: 2240 + keen::UiLocaTagReference joinWithoutPw; // Offset: 2256 + keen::UiLocaTagReference optionalPwHint; // Offset: 2272 +}; + +struct FbUiLocaMenuSystem { + keen::UiLocaTagReference returnToGame; // Offset: 0 + keen::UiLocaTagReference returnToPregame; // Offset: 16 + keen::UiLocaTagReference showServerRole; // Offset: 32 + keen::UiLocaTagReference quitToDesktop; // Offset: 48 + keen::UiLocaTagReference networkQuality; // Offset: 64 + keen::UiLocaTagReference latencyValue; // Offset: 80 + keen::UiLocaTagReference shaderCompileProgress; // Offset: 96 + keen::UiLocaTagReference feedbackPopupHint; // Offset: 112 + keen::UiLocaTagReference feedbackIssue; // Offset: 128 + keen::UiLocaTagReference feedbackIssueLink; // Offset: 144 + keen::UiLocaTagReference bugReport; // Offset: 160 + keen::UiLocaTagReference bugReportLink; // Offset: 176 + keen::UiLocaTagReference discordServer; // Offset: 192 + keen::UiLocaTagReference discordServerLink; // Offset: 208 + keen::UiLocaTagReference connectTwitch; // Offset: 224 + keen::UiLocaTagReference connectTwitchLink; // Offset: 240 + keen::UiLocaTagReference steamWishlist; // Offset: 256 + keen::UiLocaTagReference steamWishlistLink; // Offset: 272 + keen::UiLocaTagReference watermarkLabel; // Offset: 288 + keen::UiLocaTagReference watermarkBetaLabel; // Offset: 304 + keen::UiLocaTagReference watermarkSecondLine; // Offset: 320 + keen::UiLocaTagReference watermarkF1Hint; // Offset: 336 + keen::UiLocaTagReference hours; // Offset: 352 + keen::UiLocaTagReference minutes; // Offset: 368 + keen::UiLocaTagReference gamePaused; // Offset: 384 +}; + +struct FbUiLocaMenuBindingsReset { + keen::UiLocaTagReference resetHeader; // Offset: 0 + keen::UiLocaTagReference resetDescription; // Offset: 16 + keen::UiLocaTagReference presetChangeHeader; // Offset: 32 + keen::UiLocaTagReference presetChangeDescription; // Offset: 48 + keen::UiLocaTagReference presetChangeConfirmButton; // Offset: 64 +}; + +struct FbUiLongDocParagraph { + keen::UiLocaTagReference locaTag; // Offset: 0 + keen::UiLocaTagReference hyperLink; // Offset: 16 +}; + +struct FbUiLocaTagDifficultySettings { + keen::UiLocaTagReference presetDefault; // Offset: 0 + keen::UiLocaTagReference presetDefaultDesc; // Offset: 16 + keen::UiLocaTagReference presetSurvivalist; // Offset: 32 + keen::UiLocaTagReference presetSurvivalistDesc; // Offset: 48 + keen::UiLocaTagReference presetBuilders; // Offset: 64 + keen::UiLocaTagReference presetBuildersDesc; // Offset: 80 + keen::UiLocaTagReference presetCombatChallenge; // Offset: 96 + keen::UiLocaTagReference presetCombatChallengeDesc; // Offset: 112 + keen::UiLocaTagReference presetCustom; // Offset: 128 + keen::UiLocaTagReference presetCustomDesc; // Offset: 144 + keen::UiLocaTagReference enemySettingsHeader; // Offset: 160 + keen::UiLocaTagReference enemyDamage; // Offset: 176 + keen::UiLocaTagReference enemyDamageDesc; // Offset: 192 + keen::UiLocaTagReference enemyHealth; // Offset: 208 + keen::UiLocaTagReference enemyHealthDesc; // Offset: 224 + keen::UiLocaTagReference enemyStamina; // Offset: 240 + keen::UiLocaTagReference enemyStaminaDesc; // Offset: 256 + keen::UiLocaTagReference enemyPerceptionRange; // Offset: 272 + keen::UiLocaTagReference enemyPerceptionRangeDesc; // Offset: 288 + keen::UiLocaTagReference enemyAttackSimultaneous; // Offset: 304 + keen::UiLocaTagReference enemyAttackSimultaneousDesc; // Offset: 320 + keen::UiLocaTagReference enemyAttackFrequency; // Offset: 336 + keen::UiLocaTagReference enemyAttackFrequencyDesc; // Offset: 352 + keen::UiLocaTagReference pacifyEnemies; // Offset: 368 + keen::UiLocaTagReference pacifyEnemiesDesc; // Offset: 384 + keen::UiLocaTagReference enemySpawnerAmount; // Offset: 400 + keen::UiLocaTagReference enemySpawnerAmountDesc; // Offset: 416 + keen::UiLocaTagReference enemySpawnerAmountFew; // Offset: 432 + keen::UiLocaTagReference enemySpawnerAmountNormal; // Offset: 448 + keen::UiLocaTagReference enemySpawnerAmountMore; // Offset: 464 + keen::UiLocaTagReference enemySpawnerAmountMany; // Offset: 480 + keen::UiLocaTagReference bossHealth; // Offset: 496 + keen::UiLocaTagReference bossHealthDesc; // Offset: 512 + keen::UiLocaTagReference bossDamage; // Offset: 528 + keen::UiLocaTagReference bossDamageDesc; // Offset: 544 + keen::UiLocaTagReference playerHealth; // Offset: 560 + keen::UiLocaTagReference playerHealthDesc; // Offset: 576 + keen::UiLocaTagReference playerMana; // Offset: 592 + keen::UiLocaTagReference playerManaDesc; // Offset: 608 + keen::UiLocaTagReference playerStamina; // Offset: 624 + keen::UiLocaTagReference playerStaminaDesc; // Offset: 640 + keen::UiLocaTagReference otherSettingsHeader; // Offset: 656 + keen::UiLocaTagReference xpGainMining; // Offset: 672 + keen::UiLocaTagReference xpGainMiningDesc; // Offset: 688 + keen::UiLocaTagReference xpGainQuests; // Offset: 704 + keen::UiLocaTagReference xpGainQuestsDesc; // Offset: 720 + keen::UiLocaTagReference xpGainCombat; // Offset: 736 + keen::UiLocaTagReference xpGainCombatDesc; // Offset: 752 + keen::UiLocaTagReference shroudTime; // Offset: 768 + keen::UiLocaTagReference shroudTimeDesc; // Offset: 784 + keen::UiLocaTagReference productionSpeed; // Offset: 800 + keen::UiLocaTagReference productionSpeedDesc; // Offset: 816 + keen::UiLocaTagReference plantGrowSpeed; // Offset: 832 + keen::UiLocaTagReference plantGrowSpeedDesc; // Offset: 848 + keen::UiLocaTagReference weaponUpgradeCosts; // Offset: 864 + keen::UiLocaTagReference weaponUpgradeCostsDesc; // Offset: 880 + keen::UiLocaTagReference perkUpgradeRecyclingFactor; // Offset: 896 + keen::UiLocaTagReference perkUpgradeRecyclingFactorDesc; // Offset: 912 + keen::UiLocaTagReference backpackDeathBehaviour; // Offset: 928 + keen::UiLocaTagReference backpackDeathBehaviourDesc; // Offset: 944 + keen::UiLocaTagReference backpackDeathBehaviourKeepAll; // Offset: 960 + keen::UiLocaTagReference backpackDeathBehaviourDefault; // Offset: 976 + keen::UiLocaTagReference backpackDeathBehaviourLoseAll; // Offset: 992 + keen::UiLocaTagReference durabilityEnabled; // Offset: 1008 + keen::UiLocaTagReference durabilityEnabledDesc; // Offset: 1024 + keen::UiLocaTagReference durabilityScaling; // Offset: 1040 + keen::UiLocaTagReference durabilityScalingDesc; // Offset: 1056 + keen::UiLocaTagReference worldRefreshTime; // Offset: 1072 + keen::UiLocaTagReference worldRefreshTimeDesc; // Offset: 1088 + keen::UiLocaTagReference dayDuration; // Offset: 1104 + keen::UiLocaTagReference dayDurationDesc; // Offset: 1120 + keen::UiLocaTagReference nightDuration; // Offset: 1136 + keen::UiLocaTagReference nightDurationDesc; // Offset: 1152 + keen::UiLocaTagReference foodDuration; // Offset: 1168 + keen::UiLocaTagReference foodDurationDesc; // Offset: 1184 + keen::UiLocaTagReference foodSurvival; // Offset: 1200 + keen::UiLocaTagReference foodSurvivalDesc; // Offset: 1216 + keen::UiLocaTagReference starvingTime; // Offset: 1232 + keen::UiLocaTagReference starvingTimeDesc; // Offset: 1248 + keen::UiLocaTagReference weatherFrequency; // Offset: 1264 + keen::UiLocaTagReference weatherFrequencyDesc; // Offset: 1280 + keen::UiLocaTagReference enableGliderTurbulences; // Offset: 1296 + keen::UiLocaTagReference enableGliderTurbulencesDesc; // Offset: 1312 + keen::UiLocaTagReference tamingStartleRepercussion; // Offset: 1328 + keen::UiLocaTagReference tamingStartleRepercussionDesc; // Offset: 1344 + keen::UiLocaTagReference bodyHeat; // Offset: 1360 + keen::UiLocaTagReference bodyHeatDesc; // Offset: 1376 + keen::UiLocaTagReference miningDamage; // Offset: 1392 + keen::UiLocaTagReference miningDamageDesc; // Offset: 1408 + keen::UiLocaTagReference lootAmount; // Offset: 1424 + keen::UiLocaTagReference lootAmountDesc; // Offset: 1440 + keen::UiLocaTagReference resourcesHeader; // Offset: 1456 + keen::UiLocaTagReference xpModsHeader; // Offset: 1472 + keen::UiLocaTagReference survivalHeader; // Offset: 1488 + keen::UiLocaTagReference playerHeader; // Offset: 1504 + keen::UiLocaTagReference selectedLabel; // Offset: 1520 +}; + +struct FbUiLocaMenuSettings { + keen::UiLocaTagReference tabGame; // Offset: 0 + keen::UiLocaTagReference tabDisplay; // Offset: 16 + keen::UiLocaTagReference tabSound; // Offset: 32 + keen::UiLocaTagReference tabAccessibility; // Offset: 48 + keen::UiLocaTagReference tabControls; // Offset: 64 + keen::UiLocaTagReference tabLegal; // Offset: 80 + keen::BlobArray privacyPolicyParagraphs; // Offset: 96 + keen::UiLocaTagReference settingAuto; // Offset: 104 + keen::UiLocaTagReference settingOff; // Offset: 120 + keen::UiLocaTagReference settingOn; // Offset: 136 + keen::UiLocaTagReference settingBoost; // Offset: 152 + keen::UiLocaTagReference settingLowest; // Offset: 168 + keen::UiLocaTagReference settingLow; // Offset: 184 + keen::UiLocaTagReference settingMedium; // Offset: 200 + keen::UiLocaTagReference settingHigh; // Offset: 216 + keen::UiLocaTagReference settingUltra; // Offset: 232 + keen::UiLocaTagReference settingPerformance; // Offset: 248 + keen::UiLocaTagReference settingBalance; // Offset: 264 + keen::UiLocaTagReference settingQuality; // Offset: 280 + keen::UiLocaTagReference settingUltraQuality; // Offset: 296 + keen::UiLocaTagReference settingUltraPerformance; // Offset: 312 + keen::UiLocaTagReference settingNative; // Offset: 328 + keen::UiLocaTagReference settingRare; // Offset: 344 + keen::UiLocaTagReference settingNormal; // Offset: 360 + keen::UiLocaTagReference settingOften; // Offset: 376 + keen::UiLocaTagReference settingKeepProgress; // Offset: 392 + keen::UiLocaTagReference settingLoseSomeProgress; // Offset: 408 + keen::UiLocaTagReference settingLoseAllProgress; // Offset: 424 + keen::UiLocaTagReference difficultyLabel; // Offset: 440 + keen::UiLocaTagReference difficultyEasy; // Offset: 456 + keen::UiLocaTagReference difficultyDefault; // Offset: 472 + keen::UiLocaTagReference difficultyHard; // Offset: 488 + keen::UiLocaTagReference difficultyVeryHard; // Offset: 504 + keen::UiLocaTagReference difficultyCustom; // Offset: 520 + keen::UiLocaTagReference controlsSectionKeyboardMouse; // Offset: 536 + keen::UiLocaTagReference controlsSectionGamepad; // Offset: 552 + keen::UiLocaTagReference mouseCameraSmoothing; // Offset: 568 + keen::UiLocaTagReference cameraSensitivity; // Offset: 584 + keen::UiLocaTagReference aimingSensitivity; // Offset: 600 + keen::UiLocaTagReference cameraInversion; // Offset: 616 + keen::UiLocaTagReference cameraInversionValueNone; // Offset: 632 + keen::UiLocaTagReference cameraInversionValueX; // Offset: 648 + keen::UiLocaTagReference cameraInversionValueY; // Offset: 664 + keen::UiLocaTagReference cameraInversionValueXY; // Offset: 680 + keen::UiLocaTagReference actionDirection; // Offset: 696 + keen::UiLocaTagReference actionDirectionDesc; // Offset: 712 + keen::UiLocaTagReference cameraDirection; // Offset: 728 + keen::UiLocaTagReference characterDirection; // Offset: 744 + keen::UiLocaTagReference controlsKeyboardMouseBindingsButton; // Offset: 760 + keen::UiLocaTagReference controlsGamepadBindingsButton; // Offset: 776 + keen::UiLocaTagReference controlScheme; // Offset: 792 + keen::UiLocaTagReference controlSchemePresetA; // Offset: 808 + keen::UiLocaTagReference controlSchemePresetB; // Offset: 824 + keen::UiLocaTagReference controlSchemeCustom; // Offset: 840 + keen::UiLocaTagReference controlSchemeEdit; // Offset: 856 + keen::UiLocaTagReference controlSchemeCreate; // Offset: 872 + keen::UiLocaTagReference controlSchemeCreateDescription; // Offset: 888 + keen::UiLocaTagReference controlSchemeResetButton; // Offset: 904 + keen::FbUiLocaMenuBindingsReset controlSchemeResetDialog; // Offset: 920 + keen::UiLocaTagReference bindingEntryChange; // Offset: 1000 + keen::UiLocaTagReference bindingEntryUndo; // Offset: 1016 + keen::UiLocaTagReference bindingEntryReset; // Offset: 1032 + keen::UiLocaTagReference bindingEntryDelete; // Offset: 1048 + keen::UiLocaTagReference bindingEntryCustomize; // Offset: 1064 + keen::UiLocaTagReference bindingEntryRemapPrompt; // Offset: 1080 + keen::UiLocaTagReference warningHeader; // Offset: 1096 + keen::UiLocaTagReference warningCriticalDescription; // Offset: 1112 + keen::UiLocaTagReference warningRecommendedDescription; // Offset: 1128 + keen::UiLocaTagReference warningContinueEdit; // Offset: 1144 + keen::UiLocaTagReference warningUsePreset; // Offset: 1160 + keen::UiLocaTagReference warningUseIncompleteBindings; // Offset: 1176 + keen::UiLocaTagReference bindingCategoryMovements; // Offset: 1192 + keen::UiLocaTagReference bindingCategoryBasicActions; // Offset: 1208 + keen::UiLocaTagReference bindingCategoryCamera; // Offset: 1224 + keen::UiLocaTagReference bindingCategoryActionBar; // Offset: 1240 + keen::UiLocaTagReference bindingCategoryCombat; // Offset: 1256 + keen::UiLocaTagReference bindingCategoryShortcuts; // Offset: 1272 + keen::UiLocaTagReference bindingCategoryBuildings; // Offset: 1288 + keen::UiLocaTagReference bindingCategoryUserInterface; // Offset: 1304 + keen::UiLocaTagReference invalidBindingInput; // Offset: 1320 + keen::UiLocaTagReference useAnalogStickHint; // Offset: 1336 + keen::UiLocaTagReference searchKey; // Offset: 1352 + keen::UiLocaTagReference pressKey; // Offset: 1368 + keen::UiLocaTagReference inputKeyToSearch; // Offset: 1384 + keen::UiLocaTagReference clearSearch; // Offset: 1400 + keen::UiLocaTagReference volumeMaster; // Offset: 1416 + keen::UiLocaTagReference volumeMusic; // Offset: 1432 + keen::UiLocaTagReference volumeUi; // Offset: 1448 + keen::UiLocaTagReference volumeGame; // Offset: 1464 + keen::UiLocaTagReference volumeVoices; // Offset: 1480 + keen::UiLocaTagReference audioReverb; // Offset: 1496 + keen::UiLocaTagReference muteInBackground; // Offset: 1512 + keen::UiLocaTagReference monitor; // Offset: 1528 + keen::UiLocaTagReference displayMode; // Offset: 1544 + keen::UiLocaTagReference windowed; // Offset: 1560 + keen::UiLocaTagReference fullscreen; // Offset: 1576 + keen::UiLocaTagReference resolution; // Offset: 1592 + keen::UiLocaTagReference renderScale; // Offset: 1608 + keen::UiLocaTagReference vsync; // Offset: 1624 + keen::UiLocaTagReference sleepInBackground; // Offset: 1640 + keen::UiLocaTagReference pointLightShadows; // Offset: 1656 + keen::UiLocaTagReference fov; // Offset: 1672 + keen::UiLocaTagReference brightness; // Offset: 1688 + keen::UiLocaTagReference gamma; // Offset: 1704 + keen::UiLocaTagReference contrast; // Offset: 1720 + keen::UiLocaTagReference sharpness; // Offset: 1736 + keen::UiLocaTagReference quality; // Offset: 1752 + keen::UiLocaTagReference qualityPreset; // Offset: 1768 + keen::UiLocaTagReference custom; // Offset: 1784 + keen::UiLocaTagReference antialiasing; // Offset: 1800 + keen::UiLocaTagReference shadowQuality; // Offset: 1816 + keen::UiLocaTagReference contactShadows; // Offset: 1832 + keen::UiLocaTagReference fsr2Quality; // Offset: 1848 + keen::UiLocaTagReference fsr3Quality; // Offset: 1864 + keen::UiLocaTagReference dlssQuality; // Offset: 1880 + keen::UiLocaTagReference nvReflexQuality; // Offset: 1896 + keen::UiLocaTagReference reflections; // Offset: 1912 + keen::UiLocaTagReference fogQuality; // Offset: 1928 + keen::UiLocaTagReference volumetricShadowQuality; // Offset: 1944 + keen::UiLocaTagReference textureResolution; // Offset: 1960 + keen::UiLocaTagReference textureFiltering; // Offset: 1976 + keen::UiLocaTagReference ssao; // Offset: 1992 + keen::UiLocaTagReference distantObjects; // Offset: 2008 + keen::UiLocaTagReference decoObjects; // Offset: 2024 + keen::UiLocaTagReference detailScattering; // Offset: 2040 + keen::UiLocaTagReference voxelMeshing; // Offset: 2056 + keen::UiLocaTagReference tessellation; // Offset: 2072 + keen::UiLocaTagReference indirectLighting; // Offset: 2088 + keen::UiLocaTagReference antialiasingFxaa; // Offset: 2104 + keen::UiLocaTagReference antialiasingFsr2; // Offset: 2120 + keen::UiLocaTagReference antialiasingFsr3; // Offset: 2136 + keen::UiLocaTagReference antialiasingDlss; // Offset: 2152 + keen::UiLocaTagReference antialiasingDlaa; // Offset: 2168 + keen::UiLocaTagReference language; // Offset: 2184 + keen::UiLocaTagReference resolutionValue; // Offset: 2200 + keen::UiLocaTagReference nativeResolutionValue; // Offset: 2216 + keen::UiLocaTagReference vsyncIntervalValue; // Offset: 2232 + keen::UiLocaTagReference renderScaleDescription; // Offset: 2248 + keen::UiLocaTagReference antialiasingDescription; // Offset: 2264 + keen::UiLocaTagReference fsr2Description; // Offset: 2280 + keen::UiLocaTagReference fsr3Description; // Offset: 2296 + keen::UiLocaTagReference dlssDescription; // Offset: 2312 + keen::UiLocaTagReference nvReflexDescription; // Offset: 2328 + keen::UiLocaTagReference shadowsDescription; // Offset: 2344 + keen::UiLocaTagReference contactShadowsDescription; // Offset: 2360 + keen::UiLocaTagReference reflectionsDescription; // Offset: 2376 + keen::UiLocaTagReference fogQualityDescription; // Offset: 2392 + keen::UiLocaTagReference volShadowDescription; // Offset: 2408 + keen::UiLocaTagReference ssaoDescription; // Offset: 2424 + keen::UiLocaTagReference indirectLightingDescription; // Offset: 2440 + keen::UiLocaTagReference useCharacterNameDescription; // Offset: 2456 + keen::UiLocaTagReference gameplaySectionCamera; // Offset: 2472 + keen::UiLocaTagReference gameplaySectionCombat; // Offset: 2488 + keen::UiLocaTagReference gameplaySectionUI; // Offset: 2504 + keen::UiLocaTagReference cameraDistance; // Offset: 2520 + keen::UiLocaTagReference idleCameraMovement; // Offset: 2536 + keen::UiLocaTagReference idleCameraMovementDescription; // Offset: 2552 + keen::UiLocaTagReference reduceDynamicCameraMovement; // Offset: 2568 + keen::UiLocaTagReference reduceDynamicCameraMovementDescription; // Offset: 2584 + keen::UiLocaTagReference dynamicCameraGlider; // Offset: 2600 + keen::UiLocaTagReference dynamicCameraCombat; // Offset: 2616 + keen::UiLocaTagReference dynamicCameraGrapplingHook; // Offset: 2632 + keen::UiLocaTagReference dynamicCameraCampfire; // Offset: 2648 + keen::UiLocaTagReference screenShake; // Offset: 2664 + keen::UiLocaTagReference screenShakeStrength; // Offset: 2680 + keen::UiLocaTagReference displayDamageNumbers; // Offset: 2696 + keen::UiLocaTagReference displayDamagePropertyTexts; // Offset: 2712 + keen::UiLocaTagReference keepTargetLockWhenSprinting; // Offset: 2728 + keen::UiLocaTagReference autoChangeTargetLockOnKill; // Offset: 2744 + keen::UiLocaTagReference textScale; // Offset: 2760 + keen::UiLocaTagReference hudAspectRatioLimit; // Offset: 2776 + keen::UiLocaTagReference hudAspectRatioLimitNone; // Offset: 2792 + keen::UiLocaTagReference hideHUD; // Offset: 2808 + keen::UiLocaTagReference showHUD; // Offset: 2824 + keen::UiLocaTagReference hideHelmet; // Offset: 2840 + keen::UiLocaTagReference hideGloves; // Offset: 2856 + keen::UiLocaTagReference showRarityIcons; // Offset: 2872 + keen::UiLocaTagReference useCharacterName; // Offset: 2888 + keen::UiLocaTagReference confirmDeletionByRarity; // Offset: 2904 + keen::UiLocaTagReference confirmDeletionByRarityDescription; // Offset: 2920 + keen::UiLocaTagReference rarityAndAbove; // Offset: 2936 + keen::UiLocaTagReference hideSmallSpiders; // Offset: 2952 + keen::UiLocaTagReference controllerButtonStyle; // Offset: 2968 + keen::UiLocaTagReference controllerDiagramPageGeneral; // Offset: 2984 + keen::UiLocaTagReference controllerDiagramPageBuilding; // Offset: 3000 + keen::FbUiLocaTagDifficultySettings difficulty; // Offset: 3016 +}; + +struct FbUiUserPermissions { + keen::UiLocaTagReference kickBanPermissionDesc; // Offset: 0 + keen::UiLocaTagReference accessInventoriesPermissionDesc; // Offset: 16 + keen::UiLocaTagReference editBasePermissionDesc; // Offset: 32 + keen::UiLocaTagReference extendBasePermissionDesc; // Offset: 48 +}; + +struct FbUiLocaMenuJournal { + keen::UiLocaTagReference emptyMenuHintShort; // Offset: 0 + keen::UiLocaTagReference emptyMenuHintLong; // Offset: 16 +}; + +struct FbUiLocaMenus { + keen::FbUiLocaMenuPregame pregame; // Offset: 0 + keen::FbUiLocaMenuSystem system; // Offset: 2288 + keen::FbUiLocaMenuSettings settings; // Offset: 2688 + keen::FbUiUserPermissions userPermissions; // Offset: 7240 + keen::FbUiLocaMenuFlameAltar flameAltar; // Offset: 7304 + keen::FbUiLocaMenuJournal journal; // Offset: 7944 + keen::UiLocaTagReference menuHeaderFallbackCollection; // Offset: 7976 + keen::UiLocaTagReference menuHeaderFallbackFoodStorage; // Offset: 7992 + keen::UiLocaTagReference menuHeaderSkillTree; // Offset: 8008 + keen::UiLocaTagReference menuHeaderCharacterCustomization; // Offset: 8024 + keen::UiLocaTagReference menuHeaderCharacterCreation; // Offset: 8040 + keen::UiLocaTagReference menuHeaderStorageChest; // Offset: 8056 + keen::UiLocaTagReference menuHeaderLootEntity; // Offset: 8072 + keen::UiLocaTagReference menuHeaderSystem; // Offset: 8088 + keen::UiLocaTagReference bpMenuGettingReady; // Offset: 8104 + keen::UiLocaTagReference bpMenuSectionActiveBlueprint; // Offset: 8120 + keen::UiLocaTagReference bpMenuSectionAvailableBlueprints; // Offset: 8136 + keen::UiLocaTagReference bpMenuSectionMaterials; // Offset: 8152 + keen::UiLocaTagReference bpMenuShapeBarExpansionHint; // Offset: 8168 + keen::UiLocaTagReference bpMenuSubCategorySingleBlock; // Offset: 8184 + keen::UiLocaTagReference bpMenuSubCategoryNonRoof; // Offset: 8200 + keen::UiLocaTagReference bpMenuSubCategoryNonRoof_4m; // Offset: 8216 + keen::UiLocaTagReference bpMenuSubCategoryRoof; // Offset: 8232 + keen::UiLocaTagReference bpMenuSubCategoryRoof_4m; // Offset: 8248 + keen::UiLocaTagReference bpMenuSubCategoryTerrain; // Offset: 8264 + keen::UiLocaTagReference terraformerMenuSectionActiveTool; // Offset: 8280 + keen::UiLocaTagReference terraformerMenuSectionAvailableTool; // Offset: 8296 + keen::UiLocaTagReference npcSideMenuSectionActiveTool; // Offset: 8312 + keen::UiLocaTagReference npcSideMenuSectionAvailableTool; // Offset: 8328 + keen::UiLocaTagReference npcSideMenuNoAvailableNpcs; // Offset: 8344 + keen::UiLocaTagReference npcSideMenuRoamingRange; // Offset: 8360 + keen::UiLocaTagReference npcSideMenuRoamingRangeLabel; // Offset: 8376 + keen::UiLocaTagReference dialogNoChatterHint; // Offset: 8392 + keen::UiLocaTagReference repairNotAvailableHint; // Offset: 8408 + keen::UiLocaTagReference craftingTabManual; // Offset: 8424 + keen::UiLocaTagReference craftingTabRepair; // Offset: 8440 + keen::UiLocaTagReference craftingTabRecycling; // Offset: 8456 + keen::UiLocaTagReference craftingTabUpgrade; // Offset: 8472 + keen::UiLocaTagReference playerEntryFallback; // Offset: 8488 + keen::UiLocaTagReference itemPerksHeader; // Offset: 8504 + keen::UiLocaTagReference itemPerksAttributeGeneric; // Offset: 8520 + keen::UiLocaTagReference flame; // Offset: 8536 + keen::UiLocaTagReference theFlame; // Offset: 8552 + keen::UiLocaTagReference activeAltars; // Offset: 8568 + keen::UiLocaTagReference mapNpcUnplacedHint; // Offset: 8584 + keen::UiLocaTagReference attributeValueExplainShort; // Offset: 8600 + keen::UiLocaTagReference attributeValueExplainLong; // Offset: 8616 + keen::UiLocaTagReference resistanceAttributeBonusTooltip; // Offset: 8632 + keen::UiLocaTagReference susceptibilityAttributeTooltip; // Offset: 8648 + keen::UiLocaTagReference page; // Offset: 8664 + keen::UiLocaTagReference pageNavigation; // Offset: 8680 + keen::UiLocaTagReference pagesUnlocked; // Offset: 8696 + keen::UiLocaTagReference rewards; // Offset: 8712 + keen::UiLocaTagReference activeQuest; // Offset: 8728 + keen::UiLocaTagReference fastTravelDisabled; // Offset: 8744 + keen::UiLocaTagReference fastTravelDisabledFalling; // Offset: 8760 + keen::UiLocaTagReference objective; // Offset: 8776 + keen::UiLocaTagReference location; // Offset: 8792 + keen::UiLocaTagReference completed; // Offset: 8808 + keen::UiLocaTagReference documentItem; // Offset: 8824 + keen::UiLocaTagReference loreCategoryUnsorted; // Offset: 8840 + keen::UiLocaTagReference loreCategoryUndiscovered; // Offset: 8856 + keen::UiLocaTagReference noUncompletedQuestsHint; // Offset: 8872 + keen::UiLocaTagReference noCompletedQuestsHint; // Offset: 8888 + keen::UiLocaTagReference customMapMarkerLabel; // Offset: 8904 + keen::UiLocaTagReference tombstoneLabel; // Offset: 8920 + keen::UiLocaTagReference missedWorldQuestsMapHint; // Offset: 8936 + keen::UiLocaTagReference questCategoryActive; // Offset: 8952 + keen::UiLocaTagReference questCategoryInactive; // Offset: 8968 + keen::UiLocaTagReference nextQuestHintDocName; // Offset: 8984 + keen::UiLocaTagReference nextQuestHintPageName; // Offset: 9000 + keen::UiLocaTagReference nextQuestHintText; // Offset: 9016 + keen::UiLocaTagReference kickPlayerPopupHeader; // Offset: 9032 + keen::UiLocaTagReference kickPlayerPopupContent; // Offset: 9048 + keen::UiLocaTagReference currentPlayerPermissionHeader; // Offset: 9064 + keen::UiLocaTagReference nextQuestHintTheFlame; // Offset: 9080 + keen::UiLocaTagReference songSelectionHeader; // Offset: 9096 + keen::UiLocaTagReference showDetailedDiffucultySettings; // Offset: 9112 + keen::UiLocaTagReference difficultySettingsReadOnlyExplanation; // Offset: 9128 + keen::UiLocaTagReference difficultySettingsReadOnlyExplanationDedicatedServer; // Offset: 9144 + keen::UiLocaTagReference twitchDropsHeader; // Offset: 9160 + keen::UiLocaTagReference twitchDropsNoUnlocks; // Offset: 9176 + keen::UiLocaTagReference npcStatusBed; // Offset: 9192 + keen::UiLocaTagReference npcStatusFood; // Offset: 9208 + keen::UiLocaTagReference collectionDisplayedHeader; // Offset: 9224 + keen::UiLocaTagReference collectionAvailableItemsHeader; // Offset: 9240 + keen::UiLocaTagReference collectionAvailableItemsSubHeader; // Offset: 9256 + keen::UiLocaTagReference collectionNoAvailableItemsHint; // Offset: 9272 + keen::UiLocaTagReference npcCraftingLabel; // Offset: 9288 + keen::UiLocaTagReference npcAssistantLabel; // Offset: 9304 + keen::UiLocaTagReference npcTownsfolkLabel; // Offset: 9320 + keen::UiLocaTagReference basesInfoAnimalsHungry; // Offset: 9336 + keen::UiLocaTagReference basesInfoAnimalsBeds; // Offset: 9352 + keen::UiLocaTagReference basesInfoAnimalsBedsObstructed; // Offset: 9368 + keen::UiLocaTagReference basesGenericLabel; // Offset: 9384 + keen::UiLocaTagReference altarGenericLabel; // Offset: 9400 +}; + +struct FbUiLocaEquipmentMenu { + keen::UiLocaTagReference mainHand; // Offset: 0 + keen::UiLocaTagReference shield; // Offset: 16 + keen::UiLocaTagReference rangedWeapon; // Offset: 32 + keen::UiLocaTagReference arrow; // Offset: 48 + keen::UiLocaTagReference spell; // Offset: 64 + keen::UiLocaTagReference backpackExtender; // Offset: 80 + keen::UiLocaTagReference climbTool; // Offset: 96 + keen::UiLocaTagReference hookshot; // Offset: 112 + keen::UiLocaTagReference glider; // Offset: 128 + keen::UiLocaTagReference accessory0; // Offset: 144 + keen::UiLocaTagReference accessory1; // Offset: 160 + keen::UiLocaTagReference ring0; // Offset: 176 + keen::UiLocaTagReference ring1; // Offset: 192 + keen::UiLocaTagReference head; // Offset: 208 + keen::UiLocaTagReference upperBody; // Offset: 224 + keen::UiLocaTagReference arms; // Offset: 240 + keen::UiLocaTagReference lowerBody; // Offset: 256 + keen::UiLocaTagReference boots; // Offset: 272 + keen::UiLocaTagReference attributes; // Offset: 288 + keen::UiLocaTagReference status; // Offset: 304 + keen::UiLocaTagReference attributeTileMainhandDamage; // Offset: 320 + keen::UiLocaTagReference attributeTileRangedEquipmentDamage; // Offset: 336 + keen::UiLocaTagReference attributeTileShieldDefense; // Offset: 352 + keen::UiLocaTagReference attributeTileBackpackExtender; // Offset: 368 + keen::UiLocaTagReference attributeTilePrompt; // Offset: 384 + keen::UiLocaTagReference statusTilePrompt; // Offset: 400 + keen::UiLocaTagReference attributeSectionMain; // Offset: 416 + keen::UiLocaTagReference attributeSectionOffense; // Offset: 432 + keen::UiLocaTagReference attributeSectionDefense; // Offset: 448 + keen::UiLocaTagReference attributeBonusHint; // Offset: 464 + keen::UiLocaTagReference attributeTooltipHint; // Offset: 480 + keen::UiLocaTagReference statusNothingHintCondensed; // Offset: 496 + keen::UiLocaTagReference statusNothingHint; // Offset: 512 + keen::UiLocaTagReference statusSectionFood; // Offset: 528 + keen::UiLocaTagReference statusSectionRest; // Offset: 544 + keen::UiLocaTagReference statusFoodEmptyHint; // Offset: 560 + keen::UiLocaTagReference statusRestConditionHeader; // Offset: 576 + keen::UiLocaTagReference statusRestConditionSitOrShelter; // Offset: 592 + keen::UiLocaTagReference statusRestComfortHeader; // Offset: 608 + keen::UiLocaTagReference statusRestComfortLevel; // Offset: 624 + keen::UiLocaTagReference statusRestComfortLevelNumbered; // Offset: 640 + keen::UiLocaTagReference statusRestComfortCondition; // Offset: 656 + keen::UiLocaTagReference statusBuffs; // Offset: 672 + keen::UiLocaTagReference statusDebuffs; // Offset: 688 + keen::UiLocaTagReference statusPlayerState; // Offset: 704 + keen::UiLocaTagReference noDebuffActive; // Offset: 720 + keen::UiLocaTagReference noBuffActive; // Offset: 736 + keen::UiLocaTagReference noPlayerStateActive; // Offset: 752 + keen::UiLocaTagReference equipped; // Offset: 768 + keen::UiLocaTagReference available; // Offset: 784 + keen::UiLocaTagReference slotContentNone; // Offset: 800 + keen::UiLocaTagReference vanityModePrompt; // Offset: 816 + keen::UiLocaTagReference vanityModeGearSection; // Offset: 832 + keen::UiLocaTagReference vanityModeVisualSection; // Offset: 848 + keen::UiLocaTagReference vanityModeHideSlotAction; // Offset: 864 + keen::UiLocaTagReference equipmentUsedAsVanityHint; // Offset: 880 +}; + +struct FbUiLocaInventory { + keen::UiLocaTagReference actionBar; // Offset: 0 + keen::UiLocaTagReference actionBarCurrent; // Offset: 16 + keen::UiLocaTagReference mainTabBackpack; // Offset: 32 + keen::UiLocaTagReference mainTabEquipment; // Offset: 48 + keen::UiLocaTagReference mainTabCrafting; // Offset: 64 + keen::UiLocaTagReference mainTabJournal; // Offset: 80 + keen::UiLocaTagReference mainTabMap; // Offset: 96 + keen::UiLocaTagReference mainTabSkillTree; // Offset: 112 + keen::UiLocaTagReference mainTabSettings; // Offset: 128 + keen::UiLocaTagReference mainTabStore; // Offset: 144 + keen::UiLocaTagReference giftingMenuTitle; // Offset: 160 + keen::UiLocaTagReference giftingLimitationHint; // Offset: 176 + keen::UiLocaTagReference giftingActionHeader; // Offset: 192 + keen::UiLocaTagReference giftingAmountOne; // Offset: 208 + keen::UiLocaTagReference giftingAmountHalf; // Offset: 224 + keen::UiLocaTagReference giftingAmountAll; // Offset: 240 + keen::UiLocaTagReference giftingAmountAdjust; // Offset: 256 + keen::UiLocaTagReference giftingTargetStatusCanReceive; // Offset: 272 + keen::UiLocaTagReference giftingTargetStatusDead; // Offset: 288 + keen::UiLocaTagReference giftingTargetStatusOutOfRange; // Offset: 304 + keen::UiLocaTagReference giftingTargetStatusBackpackFull; // Offset: 320 + keen::UiLocaTagReference giftingTarget; // Offset: 336 + keen::UiLocaTagReference giftingTargetMissingHint; // Offset: 352 + keen::UiLocaTagReference giftingActionConfirm; // Offset: 368 + keen::UiLocaTagReference giftingStackNew; // Offset: 384 + keen::UiLocaTagReference giftingStackOriginal; // Offset: 400 + keen::UiLocaTagReference giftedLootLogEntryHint; // Offset: 416 + keen::UiLocaTagReference splitStackNew; // Offset: 432 + keen::UiLocaTagReference splitStackOriginal; // Offset: 448 + keen::UiLocaTagReference deletionConfirmMessage; // Offset: 464 + keen::UiLocaTagReference deletionConfirmSuppression; // Offset: 480 + keen::UiLocaTagReference deletionConfirmSettingHint; // Offset: 496 + keen::UiLocaTagReference salvagingConfirmMessage; // Offset: 512 + keen::UiLocaTagReference highlightIsCurrentItemHint; // Offset: 528 + keen::UiLocaTagReference codexTileClues; // Offset: 544 + keen::UiLocaTagReference codexTileLore; // Offset: 560 + keen::UiLocaTagReference codexTilePinnedRecipe; // Offset: 576 + keen::UiLocaTagReference codexTileRecipeBook; // Offset: 592 + keen::UiLocaTagReference codexTileTutorials; // Offset: 608 + keen::UiLocaTagReference codexPageNotDiscovered; // Offset: 624 + keen::UiLocaTagReference journalCompletedSectionLabel; // Offset: 640 + keen::UiLocaTagReference journalWorldQuestSectionLabel; // Offset: 656 + keen::UiLocaTagReference journalMissedWorldQuestSectionLabel; // Offset: 672 + keen::UiLocaTagReference journalPersonalQuestSectionLabel; // Offset: 688 + keen::UiLocaTagReference journalCompletedSectionDesc; // Offset: 704 + keen::UiLocaTagReference journalWorldQuestSectionDesc; // Offset: 720 + keen::UiLocaTagReference journalMissedWorldQuestSectionDesc; // Offset: 736 + keen::UiLocaTagReference journalPersonalQuestSectionDesc; // Offset: 752 + keen::UiLocaTagReference codexTileMotherflame; // Offset: 768 + keen::UiLocaTagReference codexTileNpcs; // Offset: 784 + keen::UiLocaTagReference codexTileSurvivors; // Offset: 800 + keen::UiLocaTagReference codexTileTownfolk; // Offset: 816 + keen::UiLocaTagReference codexTileBases; // Offset: 832 + keen::UiLocaTagReference codexTileGroupPersonal; // Offset: 848 + keen::UiLocaTagReference codexTileGroupWorld; // Offset: 864 + keen::UiLocaTagReference freeWaypointLabel; // Offset: 880 + keen::UiLocaTagReference mapNodeIsWaypointHint; // Offset: 896 + keen::UiLocaTagReference noItemSelectedHint; // Offset: 912 + keen::UiLocaTagReference noSlotInBackpackHint; // Offset: 928 + keen::UiLocaTagReference skillpointLabelAvailable; // Offset: 944 + keen::UiLocaTagReference skillpointLabelInUse; // Offset: 960 + keen::UiLocaTagReference skillpointLabelRefund; // Offset: 976 + keen::UiLocaTagReference skilltreeNodeUnlocked; // Offset: 992 + keen::UiLocaTagReference skilltreeNodeOutOfRange; // Offset: 1008 + keen::UiLocaTagReference skilltreeNodeFutureContent; // Offset: 1024 + keen::UiLocaTagReference skilltreeNodeActivated; // Offset: 1040 + keen::UiLocaTagReference cookingHintRelease; // Offset: 1056 + keen::UiLocaTagReference cookingHintHold; // Offset: 1072 + keen::UiLocaTagReference sortStacksFromInventory; // Offset: 1088 + keen::UiLocaTagReference sortStacksToInventory; // Offset: 1104 + keen::UiLocaTagReference takeStacks; // Offset: 1120 + keen::UiLocaTagReference depositStacks; // Offset: 1136 + keen::UiLocaTagReference takeAll; // Offset: 1152 + keen::UiLocaTagReference depositAll; // Offset: 1168 + keen::UiLocaTagReference sortInventory; // Offset: 1184 + keen::UiLocaTagReference sortStorage; // Offset: 1200 + keen::UiLocaTagReference magicChestTab; // Offset: 1216 + keen::UiLocaTagReference magicChestAddOne; // Offset: 1232 + keen::UiLocaTagReference magicChestAddStack; // Offset: 1248 + keen::UiLocaTagReference magicChestAddAll; // Offset: 1264 + keen::UiLocaTagReference feedingStationStackAdditionMaxPossible; // Offset: 1280 + keen::UiLocaTagReference factoryAddIngredientsOne; // Offset: 1296 + keen::UiLocaTagReference factoryAddIngredientsMultiple; // Offset: 1312 + keen::UiLocaTagReference itemNoTwitchPermission; // Offset: 1328 + keen::UiLocaTagReference twitchItemLabel; // Offset: 1344 + keen::FbUiLocaEquipmentMenu equipmentMenu; // Offset: 1360 +}; + +struct FbUiLocaBuildVerbs { + keen::UiLocaTagReference genericAction; // Offset: 0 + keen::UiLocaTagReference blockAction; // Offset: 16 + keen::UiLocaTagReference blueprintAction; // Offset: 32 + keen::UiLocaTagReference propAction; // Offset: 48 + keen::UiLocaTagReference terraformAddAction; // Offset: 64 + keen::UiLocaTagReference terraformFlattenAction; // Offset: 80 + keen::UiLocaTagReference terraformRemoveAction; // Offset: 96 +}; + +struct FbUiLocaGameplayActionLabels { + keen::UiLocaTagReference locomotionMoveLeft; // Offset: 0 + keen::UiLocaTagReference locomotionMoveRight; // Offset: 16 + keen::UiLocaTagReference locomotionMoveForward; // Offset: 32 + keen::UiLocaTagReference locomotionMoveBackward; // Offset: 48 + keen::UiLocaTagReference locomotionMove; // Offset: 64 + keen::UiLocaTagReference cameraRotateLeft; // Offset: 80 + keen::UiLocaTagReference cameraRotateRight; // Offset: 96 + keen::UiLocaTagReference cameraRotateUp; // Offset: 112 + keen::UiLocaTagReference cameraRotateDown; // Offset: 128 + keen::UiLocaTagReference cameraRotate; // Offset: 144 + keen::UiLocaTagReference cameraZoomIn; // Offset: 160 + keen::UiLocaTagReference cameraZoomOut; // Offset: 176 + keen::UiLocaTagReference mainHandAction; // Offset: 192 + keen::UiLocaTagReference contextualAction; // Offset: 208 + keen::UiLocaTagReference cancelAction; // Offset: 224 + keen::UiLocaTagReference ammunitionSelectPrevious; // Offset: 240 + keen::UiLocaTagReference ammunitionSelectNext; // Offset: 256 + keen::UiLocaTagReference blueprintDistanceIncrease; // Offset: 272 + keen::UiLocaTagReference blueprintDistanceDecrease; // Offset: 288 + keen::UiLocaTagReference blueprintMaterialSelectPrevious; // Offset: 304 + keen::UiLocaTagReference blueprintMaterialSelectNext; // Offset: 320 + keen::UiLocaTagReference blueprintPageSelectPrevious; // Offset: 336 + keen::UiLocaTagReference blueprintPageSelectNext; // Offset: 352 + keen::UiLocaTagReference blueprintShapeSelectPrevious; // Offset: 368 + keen::UiLocaTagReference blueprintShapeSelectNext; // Offset: 384 + keen::UiLocaTagReference actionBarSlot1; // Offset: 400 + keen::UiLocaTagReference actionBarSlot2; // Offset: 416 + keen::UiLocaTagReference actionBarSlot3; // Offset: 432 + keen::UiLocaTagReference actionBarSlot4; // Offset: 448 + keen::UiLocaTagReference actionBarSlot5; // Offset: 464 + keen::UiLocaTagReference actionBarSlot6; // Offset: 480 + keen::UiLocaTagReference actionBarSlot7; // Offset: 496 + keen::UiLocaTagReference actionBarSlot8; // Offset: 512 + keen::UiLocaTagReference actionBarSlot9; // Offset: 528 + keen::UiLocaTagReference actionBarSlot10; // Offset: 544 + keen::UiLocaTagReference actionBarWheel; // Offset: 560 + keen::UiLocaTagReference actionBarSwapPage; // Offset: 576 + keen::UiLocaTagReference actionBarSwapPageVerbOnly; // Offset: 592 + keen::UiLocaTagReference actionBarSlotPrevious; // Offset: 608 + keen::UiLocaTagReference actionBarSlotNext; // Offset: 624 + keen::UiLocaTagReference guardAndParry; // Offset: 640 + keen::UiLocaTagReference guard; // Offset: 656 + keen::UiLocaTagReference parry; // Offset: 672 + keen::UiLocaTagReference locomotionSprint; // Offset: 688 + keen::UiLocaTagReference locomotionEvade; // Offset: 704 + keen::UiLocaTagReference locomotionJump; // Offset: 720 + keen::UiLocaTagReference locomotionSneak; // Offset: 736 + keen::UiLocaTagReference locomotionSit; // Offset: 752 + keen::UiLocaTagReference locomotionGlide; // Offset: 768 + keen::UiLocaTagReference locomotionHookshot; // Offset: 784 + keen::UiLocaTagReference respawn; // Offset: 800 + keen::UiLocaTagReference buildingUndo; // Offset: 816 + keen::UiLocaTagReference buildingDismantle; // Offset: 832 + keen::UiLocaTagReference buildingDismantlePickup; // Offset: 848 + keen::UiLocaTagReference buildingDismantleNotPossible; // Offset: 864 + keen::UiLocaTagReference animalPickupNotPossible; // Offset: 880 + keen::UiLocaTagReference buildingSnapping; // Offset: 896 + keen::UiLocaTagReference transformRotateClockwiseSmall; // Offset: 912 + keen::UiLocaTagReference transformRotateClockwiseBig; // Offset: 928 + keen::UiLocaTagReference transformRotateCounterClockwiseSmall; // Offset: 944 + keen::UiLocaTagReference transformRotateCounterClockwiseBig; // Offset: 960 + keen::UiLocaTagReference transformChangeAngleClockwise; // Offset: 976 + keen::UiLocaTagReference transformChangeAngleCounterClockwise; // Offset: 992 + keen::UiLocaTagReference combatTargetLock; // Offset: 1008 + keen::UiLocaTagReference combatTargetLeft; // Offset: 1024 + keen::UiLocaTagReference combatTargetRight; // Offset: 1040 + keen::UiLocaTagReference rangedCombatReady; // Offset: 1056 + keen::UiLocaTagReference rangedCombatShoot; // Offset: 1072 + keen::UiLocaTagReference songSelectOpen; // Offset: 1088 + keen::UiLocaTagReference songSelectPrevious; // Offset: 1104 + keen::UiLocaTagReference songSelectNext; // Offset: 1120 + keen::UiLocaTagReference systemMenuOpen; // Offset: 1136 + keen::UiLocaTagReference playerMenuOpen; // Offset: 1152 + keen::UiLocaTagReference playerMenuBackpack; // Offset: 1168 + keen::UiLocaTagReference playerMenuEquipmentAndStats; // Offset: 1184 + keen::UiLocaTagReference playerMenuWorld; // Offset: 1200 + keen::UiLocaTagReference playerMenuJournal; // Offset: 1216 + keen::UiLocaTagReference playerMenuCrafting; // Offset: 1232 + keen::UiLocaTagReference playerMenuSkills; // Offset: 1248 + keen::UiLocaTagReference goToCurrentNotificationTab; // Offset: 1264 + keen::UiLocaTagReference hudMenuBlueprints; // Offset: 1280 + keen::UiLocaTagReference inputModalityTap; // Offset: 1296 + keen::UiLocaTagReference inputModalityHold; // Offset: 1312 + keen::UiLocaTagReference inputModalityRelease; // Offset: 1328 + keen::UiLocaTagReference inputModalityToggle; // Offset: 1344 + keen::UiLocaTagReference assignBedHint; // Offset: 1360 + keen::FbUiLocaBuildVerbs buildVerbs; // Offset: 1376 +}; + +struct FbUiLocaUiActionLabels { + keen::UiLocaTagReference recipeUpgrade; // Offset: 0 + keen::UiLocaTagReference repairItem; // Offset: 16 + keen::UiLocaTagReference confirm; // Offset: 32 + keen::UiLocaTagReference finish; // Offset: 48 + keen::UiLocaTagReference cancel; // Offset: 64 + keen::UiLocaTagReference back; // Offset: 80 + keen::UiLocaTagReference openHint; // Offset: 96 + keen::UiLocaTagReference close; // Offset: 112 + keen::UiLocaTagReference leave; // Offset: 128 + keen::UiLocaTagReference join; // Offset: 144 + keen::UiLocaTagReference changeGeneric; // Offset: 160 + keen::UiLocaTagReference secondaryAction; // Offset: 176 + keen::UiLocaTagReference tertiaryAction; // Offset: 192 + keen::UiLocaTagReference moveObject; // Offset: 208 + keen::UiLocaTagReference changeTab; // Offset: 224 + keen::UiLocaTagReference navigationMove; // Offset: 240 + keen::UiLocaTagReference navigationScroll; // Offset: 256 + keen::UiLocaTagReference previousPage; // Offset: 272 + keen::UiLocaTagReference nextPage; // Offset: 288 + keen::UiLocaTagReference mapZoom; // Offset: 304 + keen::UiLocaTagReference mapFastTravel; // Offset: 320 + keen::UiLocaTagReference mapSnapToWaypoint; // Offset: 336 + keen::UiLocaTagReference mapSnapToPlayerPos; // Offset: 352 + keen::UiLocaTagReference mapSnapToHomeBase; // Offset: 368 + keen::UiLocaTagReference mapLocateGeneric; // Offset: 384 + keen::UiLocaTagReference mapWorldSidebar; // Offset: 400 + keen::UiLocaTagReference mapPlayersSidebar; // Offset: 416 + keen::UiLocaTagReference mapFilterSidebar; // Offset: 432 + keen::UiLocaTagReference mapFilterFocusType; // Offset: 448 + keen::UiLocaTagReference clearMapFilter; // Offset: 464 + keen::UiLocaTagReference mapGotoJournal; // Offset: 480 + keen::UiLocaTagReference gotoReferencedJournalPage; // Offset: 496 + keen::UiLocaTagReference gotoReferencedLorePage; // Offset: 512 + keen::UiLocaTagReference gotoReferencedQuestPage; // Offset: 528 + keen::UiLocaTagReference mapActions; // Offset: 544 + keen::UiLocaTagReference mapSetWaypoint; // Offset: 560 + keen::UiLocaTagReference mapSetAsWaypoint; // Offset: 576 + keen::UiLocaTagReference mapRemoveWaypoint; // Offset: 592 + keen::UiLocaTagReference mapSendPing; // Offset: 608 + keen::UiLocaTagReference codexShowOnMap; // Offset: 624 + keen::UiLocaTagReference placeNpcInWorld; // Offset: 640 + keen::UiLocaTagReference itemViewerVisibilityToggle; // Offset: 656 + keen::UiLocaTagReference backpackUseItem; // Offset: 672 + keen::UiLocaTagReference backpackActions; // Offset: 688 + keen::UiLocaTagReference backpackSplitStack; // Offset: 704 + keen::UiLocaTagReference backpackDeleteItem; // Offset: 720 + keen::UiLocaTagReference backpackSalvageItem; // Offset: 736 + keen::UiLocaTagReference splitStackAdjustMin; // Offset: 752 + keen::UiLocaTagReference splitStackAdjustDecrement; // Offset: 768 + keen::UiLocaTagReference splitStackAdjustHalf; // Offset: 784 + keen::UiLocaTagReference splitStackAdjustIncrement; // Offset: 800 + keen::UiLocaTagReference splitStackAdjustMax; // Offset: 816 + keen::UiLocaTagReference backpackGrabItemForMoving; // Offset: 832 + keen::UiLocaTagReference backpackGrabItemForMovingPartial; // Offset: 848 + keen::UiLocaTagReference backpackGrabItemForMovingHoldable; // Offset: 864 + keen::UiLocaTagReference backpackDropItemIntoSlot; // Offset: 880 + keen::UiLocaTagReference quickMoveItem; // Offset: 896 + keen::UiLocaTagReference quickMoveItemActionbar; // Offset: 912 + keen::UiLocaTagReference quickMoveItemStorage; // Offset: 928 + keen::UiLocaTagReference quickMoveTargetFull; // Offset: 944 + keen::UiLocaTagReference refillStacks; // Offset: 960 + keen::UiLocaTagReference backpackEquip; // Offset: 976 + keen::UiLocaTagReference backpackUnequip; // Offset: 992 + keen::UiLocaTagReference backpackReplaceItem; // Offset: 1008 + keen::UiLocaTagReference backpackGiftItem; // Offset: 1024 + keen::UiLocaTagReference showTutorial; // Offset: 1040 + keen::UiLocaTagReference changeBlueprint; // Offset: 1056 + keen::UiLocaTagReference lootTakeSingle; // Offset: 1072 + keen::UiLocaTagReference lootTakeAll; // Offset: 1088 + keen::UiLocaTagReference craftActionSingle; // Offset: 1104 + keen::UiLocaTagReference craftActionMultiple; // Offset: 1120 + keen::UiLocaTagReference stopAutomatedCraftingNext; // Offset: 1136 + keen::UiLocaTagReference changeAutomatedCraftingOuput; // Offset: 1152 + keen::UiLocaTagReference recipePin; // Offset: 1168 + keen::UiLocaTagReference recipeUnpin; // Offset: 1184 + keen::UiLocaTagReference showItemViewerTextArea; // Offset: 1200 + keen::UiLocaTagReference showItemViewerRecipeArea; // Offset: 1216 + keen::UiLocaTagReference toggleItemViewerRecipeView; // Offset: 1232 + keen::UiLocaTagReference activate; // Offset: 1248 + keen::UiLocaTagReference unlock; // Offset: 1264 + keen::UiLocaTagReference unlockNextPerk; // Offset: 1280 + keen::UiLocaTagReference rename; // Offset: 1296 + keen::UiLocaTagReference done; // Offset: 1312 + keen::UiLocaTagReference refillToInventory; // Offset: 1328 + keen::UiLocaTagReference refillFromInventory; // Offset: 1344 + keen::UiLocaTagReference increase; // Offset: 1360 + keen::UiLocaTagReference decrease; // Offset: 1376 + keen::UiLocaTagReference clear; // Offset: 1392 + keen::UiLocaTagReference selectSessionSettings; // Offset: 1408 + keen::UiLocaTagReference selectSavegame; // Offset: 1424 + keen::UiLocaTagReference selectServerFilter; // Offset: 1440 + keen::UiLocaTagReference selectServer; // Offset: 1456 + keen::UiLocaTagReference skip; // Offset: 1472 + keen::UiLocaTagReference select; // Offset: 1488 + keen::UiLocaTagReference next; // Offset: 1504 + keen::UiLocaTagReference create; // Offset: 1520 + keen::UiLocaTagReference continueAction; // Offset: 1536 + keen::UiLocaTagReference setActiveQuest; // Offset: 1552 + keen::UiLocaTagReference hidePassword; // Offset: 1568 + keen::UiLocaTagReference toggleFavourite; // Offset: 1584 + keen::UiLocaTagReference hideIPAddressInput; // Offset: 1600 + keen::UiLocaTagReference createMarker; // Offset: 1616 + keen::UiLocaTagReference removeMarker; // Offset: 1632 + keen::UiLocaTagReference togglePersonalProgression; // Offset: 1648 + keen::UiLocaTagReference activatePersonalProgression; // Offset: 1664 + keen::UiLocaTagReference deactivatePersonalProgression; // Offset: 1680 + keen::UiLocaTagReference search; // Offset: 1696 + keen::UiLocaTagReference expandToggle; // Offset: 1712 + keen::UiLocaTagReference toggleTooltip; // Offset: 1728 + keen::UiLocaTagReference toggleVisibility; // Offset: 1744 + keen::UiLocaTagReference change; // Offset: 1760 + keen::UiLocaTagReference kickPlayer; // Offset: 1776 + keen::UiLocaTagReference toggle; // Offset: 1792 + keen::UiLocaTagReference renameAltar; // Offset: 1808 + keen::UiLocaTagReference enable; // Offset: 1824 + keen::UiLocaTagReference disable; // Offset: 1840 + keen::UiLocaTagReference instrumentActionTuneIn; // Offset: 1856 + keen::UiLocaTagReference confirmPassword; // Offset: 1872 + keen::UiLocaTagReference resetToDefault; // Offset: 1888 + keen::UiLocaTagReference claimTwitchItem; // Offset: 1904 + keen::UiLocaTagReference swapArmor; // Offset: 1920 + keen::UiLocaTagReference swapVanity; // Offset: 1936 + keen::UiLocaTagReference equipCollection; // Offset: 1952 + keen::UiLocaTagReference unequipCollection; // Offset: 1968 + keen::UiLocaTagReference equipAsArmor; // Offset: 1984 + keen::UiLocaTagReference equipAsVanity; // Offset: 2000 +}; + +struct FbUiLocaLinks { + keen::UiLocaTagReference styleTest; // Offset: 0 + keen::UiLocaTagReference invalidUiString; // Offset: 16 + keen::UiLocaTagReference closedBetaHint; // Offset: 32 + keen::UiLocaTagReference demoSettingsHint; // Offset: 48 + keen::FbUiLocaRpgTerms rpgTerms; // Offset: 64 + keen::FbUiLocaGeneric genericStrings; // Offset: 5600 + keen::FbUiLocaPunctuations punctuations; // Offset: 5648 + keen::FbUiLocaUiActionLabels uiActions; // Offset: 5824 + keen::FbUiLocaGameplayActionLabels gameplayActions; // Offset: 7840 + keen::FbUiLocaInput inputStrings; // Offset: 9328 + keen::FbUiLocaHud hudStrings; // Offset: 9568 + keen::FbUiLocaInventory inventory; // Offset: 12320 + keen::FbUiLocaMenus menuStrings; // Offset: 14576 + keen::FbUiLocaCrafting crafting; // Offset: 23992 + keen::FbUiLocaItemEquipmentSlots itemEquipmentSlots; // Offset: 25032 +}; + +struct FbUiCharacterView { + keen::float3 lookAt; // Offset: 0 + keen::float32 distance; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 yaw; // Offset: 20 + keen::float32 fov; // Offset: 24 +}; + +enum class FbUiGamepadButtonImageTagId { + None = 0, + Dpad = 1, + DpadLeft = 2, + DpadRight = 3, + DpadUp = 4, + DpadDown = 5, + DpadVertical = 6, + DpadHorizontal = 7, + LeftStick = 8, + RightStick = 9, + LeftStickPress = 10, + RightStickPress = 11, + LeftStickUp = 12, + LeftStickDown = 13, + LeftStickLeft = 14, + LeftStickRight = 15, + LeftStickHorizontal = 16, + LeftStickVertical = 17, + RightStickUp = 18, + RightStickDown = 19, + RightStickLeft = 20, + RightStickRight = 21, + RightStickHorizontal = 22, + RightStickVertical = 23, + FaceTop = 24, + FaceBottom = 25, + FaceLeft = 26, + FaceRight = 27, + ShoulderLeftUpper = 28, + ShoulderLeftLower = 29, + ShoulderRightUpper = 30, + ShoulderRightLower = 31, + SystemLeft = 32, + SystemRight = 33, +}; + +struct FbUiGamepadButtonSet { + keen::UiTexture dpad; // Offset: 0 + keen::UiTexture dpadLeft; // Offset: 48 + keen::UiTexture dpadRight; // Offset: 96 + keen::UiTexture dpadUp; // Offset: 144 + keen::UiTexture dpadDown; // Offset: 192 + keen::UiTexture dpadVertical; // Offset: 240 + keen::UiTexture dpadHorizontal; // Offset: 288 + keen::UiTexture leftStick; // Offset: 336 + keen::UiTexture rightStick; // Offset: 384 + keen::UiTexture leftStickPress; // Offset: 432 + keen::UiTexture rightStickPress; // Offset: 480 + keen::UiTexture leftStickUp; // Offset: 528 + keen::UiTexture leftStickDown; // Offset: 576 + keen::UiTexture leftStickLeft; // Offset: 624 + keen::UiTexture leftStickRight; // Offset: 672 + keen::UiTexture leftStickDirectionalHorizontal; // Offset: 720 + keen::UiTexture leftStickDirectionalVertical; // Offset: 768 + keen::UiTexture rightStickUp; // Offset: 816 + keen::UiTexture rightStickDown; // Offset: 864 + keen::UiTexture rightStickLeft; // Offset: 912 + keen::UiTexture rightStickRight; // Offset: 960 + keen::UiTexture rightStickDirectionalHorizontal; // Offset: 1008 + keen::UiTexture rightStickDirectionalVertical; // Offset: 1056 + keen::UiTexture faceTop; // Offset: 1104 + keen::UiTexture faceBottom; // Offset: 1152 + keen::UiTexture faceLeft; // Offset: 1200 + keen::UiTexture faceRight; // Offset: 1248 + keen::UiTexture shoulderLeftUpper; // Offset: 1296 + keen::UiTexture shoulderLeftLower; // Offset: 1344 + keen::UiTexture shoulderRightUpper; // Offset: 1392 + keen::UiTexture shoulderRightLower; // Offset: 1440 + keen::UiTexture systemLeft; // Offset: 1488 + keen::UiTexture systemRight; // Offset: 1536 +}; + +struct UiColor { + keen::Color value; // Offset: 0 + keen::float32 intensity; // Offset: 4 +}; + +struct FbUiGamepadButtonSets { + keen::UiTexture controllerShape; // Offset: 0 + keen::UiTexture genericController; // Offset: 48 + keen::UiTexture controllerPlaystation; // Offset: 96 + keen::UiTexture controllerNintendoSwitch; // Offset: 144 + keen::UiTexture genericButtonsForms; // Offset: 192 + keen::UiTexture genericButtonsXABY; // Offset: 240 + keen::UiTexture genericButtonsYBAX; // Offset: 288 + keen::UiColor diagramKeyColor; // Offset: 336 + keen::FbUiGamepadButtonSet xbox; // Offset: 344 + keen::FbUiGamepadButtonSet playstation; // Offset: 1928 + keen::FbUiGamepadButtonSet nintendoSwitch; // Offset: 3512 + keen::UiTexture twoHeadedArrowHorizontal; // Offset: 5096 + keen::UiTexture twoHeadedArrowVertical; // Offset: 5144 +}; + +struct UiBorder { + keen::float32 left; // Offset: 0 + keen::float32 top; // Offset: 4 + keen::float32 right; // Offset: 8 + keen::float32 bottom; // Offset: 12 +}; + +struct UiNineSliceTexture { + keen::UiBorder border; // Offset: 48 +}; + +struct FbUiKeyboardKeys { + keen::UiTexture standardKey; // Offset: 0 + keen::UiNineSliceTexture nineSlicedKey; // Offset: 48 +}; + +struct FbUiKeyboardKeyLegends { + keen::UiTexture up; // Offset: 0 + keen::UiTexture down; // Offset: 48 + keen::UiTexture left; // Offset: 96 + keen::UiTexture right; // Offset: 144 +}; + +struct FbUiMouseHints { + keen::UiTexture left; // Offset: 0 + keen::UiTexture right; // Offset: 48 + keen::UiTexture middle; // Offset: 96 + keen::UiTexture button4; // Offset: 144 + keen::UiTexture button5; // Offset: 192 + keen::UiTexture wheel; // Offset: 240 + keen::UiTexture wheelUp; // Offset: 288 + keen::UiTexture wheelDown; // Offset: 336 + keen::UiTexture directionalContext; // Offset: 384 + keen::UiTexture move; // Offset: 432 + keen::UiTexture moveUp; // Offset: 480 + keen::UiTexture moveDown; // Offset: 528 + keen::UiTexture moveLeft; // Offset: 576 + keen::UiTexture moveRight; // Offset: 624 +}; + +struct FbUiGradients { + keen::UiTexture whiteToBlackTest; // Offset: 0 + keen::UiTexture alphaToRight; // Offset: 48 + keen::UiTexture alphaToBottom; // Offset: 96 + keen::UiTexture alphaToBottomRight; // Offset: 144 + keen::UiTexture alphaToTopBottom; // Offset: 192 + keen::UiTexture alphaToLeftRight; // Offset: 240 + keen::UiNineSliceTexture alphaToLeftRightSliced; // Offset: 288 +}; + +struct FbUiPrimitives { + keen::UiTexture circle; // Offset: 0 + keen::UiTexture circleOutline; // Offset: 48 + keen::UiTexture circleSoftGlow; // Offset: 96 + keen::UiTexture ringSoftGlow; // Offset: 144 + keen::UiTexture diamond; // Offset: 192 + keen::UiTexture triangle; // Offset: 240 + keen::UiTexture separatorLineHorizontal; // Offset: 288 + keen::UiTexture separatorLineHorizontalLeftHeavy; // Offset: 336 + keen::UiTexture separatorLineVertical; // Offset: 384 + keen::FbUiGradients gradients; // Offset: 432 + keen::UiNineSliceTexture boxInnerGlow; // Offset: 784 + keen::UiNineSliceTexture glowBoxSmall; // Offset: 848 + keen::UiNineSliceTexture glowBoxLarge; // Offset: 912 + keen::UiNineSliceTexture roundedBoxSmall; // Offset: 976 + keen::UiNineSliceTexture roundedBoxSmallOutline; // Offset: 1040 + keen::UiNineSliceTexture roundedBoxSmallOutlineThin; // Offset: 1104 + keen::UiNineSliceTexture roundedBoxOutlineBuildingZone; // Offset: 1168 +}; + +struct FbUiSocialLogos { + keen::UiTexture steam; // Offset: 0 + keen::UiTexture discord; // Offset: 48 + keen::UiTexture qq; // Offset: 96 + keen::UiTexture yooreka; // Offset: 144 + keen::UiTexture twitchText; // Offset: 192 + keen::UiTexture twitchIcon; // Offset: 240 +}; + +struct FbUiLoadingSymbol { + keen::float32 logoHeight; // Offset: 0 + keen::UiColor dotFadeColor; // Offset: 4 +}; + +struct FbUiStatusIcons { + keen::UiTexture happy; // Offset: 0 + keen::UiTexture sheltered; // Offset: 48 + keen::UiTexture bed; // Offset: 96 + keen::UiTexture food; // Offset: 144 + keen::UiTexture warmth; // Offset: 192 + keen::UiTexture location; // Offset: 240 + keen::UiTexture bedStandlone; // Offset: 288 + keen::UiTexture shelteredStandlone; // Offset: 336 + keen::UiTexture fullfilledNpcNeeds; // Offset: 384 +}; + +struct FbUiGenericIcons { + keen::UiTexture attention; // Offset: 0 + keen::UiTexture checkmark; // Offset: 48 + keen::UiTexture fulfilled; // Offset: 96 + keen::UiTexture unfulfilled; // Offset: 144 + keen::UiTexture missing; // Offset: 192 + keen::UiTexture weight; // Offset: 240 + keen::UiTexture pin; // Offset: 288 + keen::UiTexture menuAttentionMarker; // Offset: 336 + keen::UiTexture speechBubble; // Offset: 384 + keen::UiTexture speechBubbleImportant; // Offset: 432 + keen::UiTexture speechBubbleDotDotDot; // Offset: 480 + keen::UiTexture hudMarkerFill; // Offset: 528 + keen::UiTexture hudMarkerOutline; // Offset: 576 + keen::UiTexture hudMarkerQuestionMark; // Offset: 624 + keen::UiTexture warningTriangle; // Offset: 672 + keen::UiTexture forbidden; // Offset: 720 + keen::UiTexture store; // Offset: 768 + keen::UiTexture settings; // Offset: 816 + keen::UiTexture arrowRight; // Offset: 864 + keen::UiTexture arrowLeftRight; // Offset: 912 + keen::UiTexture locked; // Offset: 960 + keen::UiTexture star4; // Offset: 1008 + keen::UiTexture star5; // Offset: 1056 + keen::UiTexture itemRarity; // Offset: 1104 + keen::UiTexture privateGame; // Offset: 1152 + keen::UiTexture publicGame; // Offset: 1200 + keen::UiTexture joinGame; // Offset: 1248 + keen::UiTexture networkGood; // Offset: 1296 + keen::UiTexture networkAcceptable; // Offset: 1344 + keen::UiTexture networkBad; // Offset: 1392 + keen::UiTexture infinitySymbol; // Offset: 1440 + keen::UiTexture craftingCogwheel; // Offset: 1488 + keen::UiTexture craftingInactiveLayer; // Offset: 1536 + keen::UiTexture loadingIcon; // Offset: 1584 + keen::UiTexture friendServer; // Offset: 1632 + keen::UiTexture dedicatedServer; // Offset: 1680 + keen::UiTexture nonDedicatedServer; // Offset: 1728 + keen::UiTexture favouriteServerSet; // Offset: 1776 + keen::UiTexture favouriteServerUnset; // Offset: 1824 + keen::UiTexture hide; // Offset: 1872 + keen::UiTexture visible; // Offset: 1920 + keen::UiTexture hide_selected; // Offset: 1968 + keen::UiTexture visible_selected; // Offset: 2016 + keen::UiTexture externalLink; // Offset: 2064 + keen::UiTexture sort; // Offset: 2112 + keen::UiTexture moveStacks; // Offset: 2160 + keen::UiTexture moveAll; // Offset: 2208 + keen::UiTexture serverSettingProhibited; // Offset: 2256 + keen::UiTexture permissionKick; // Offset: 2304 + keen::UiTexture permissionEditBase; // Offset: 2352 + keen::UiTexture permissionUpgradeBase; // Offset: 2400 + keen::UiTexture permissionAccessStorage; // Offset: 2448 + keen::UiTexture pwOptional; // Offset: 2496 + keen::FbUiStatusIcons statusIcons; // Offset: 2544 +}; + +enum class FbUiCoverStyle { + None = 0, + NoneButKeepMenu = 1, + ImmediateBlack = 2, + LoadedToGame = 3, + RespawnToGame = 4, + TeleportToGame = 5, + GameToTeleport = 6, + DeathToRespawn = 7, + GameToDeath = 8, + ToTitleScreen = 9, +}; + +struct FbUiCoverTransition { + keen::FbUiCoverStyle coverStyle; // Offset: 0 + keen::uint32 changeCount; // Offset: 4 +}; + +struct FbUiCursors { + keen::UiColor lockonColor; // Offset: 0 + keen::UiTexture lockon; // Offset: 8 + keen::UiTexture bow; // Offset: 56 + keen::UiTexture bowFalloff; // Offset: 104 + keen::UiTexture spell; // Offset: 152 + keen::UiTexture spellArea; // Offset: 200 + keen::UiColor crosshairWarningColor; // Offset: 248 + keen::UiColor snappingReadyColor; // Offset: 256 + keen::UiColor snappingActiveColor; // Offset: 264 +}; + +struct UiSkillTreeNode { + keen::float2 pos; // Offset: 0 + keen::string name; // Offset: 8 + keen::uint32 i; // Offset: 16 + keen::bool isA; // Offset: 20 + keen::bool isL; // Offset: 21 +}; + +struct UiSkillTreeConnection { + keen::uint32 a; // Offset: 0 + keen::uint32 b; // Offset: 4 +}; + +struct UiSkillTree { + keen::BlobArray sList; // Offset: 0 + keen::BlobArray sConList; // Offset: 8 +}; + +struct FbUiInline3SkillDescriptions { + keen::string jumpAttack; // Offset: 0 + keen::string evadeAttack; // Offset: 8 + keen::string doubleJump; // Offset: 16 + keen::string attributeStrength; // Offset: 24 + keen::string attributeDexterity; // Offset: 32 + keen::string attributeIntelligence; // Offset: 40 +}; + +struct FbUiSkillTreeFallbackTexts { + keen::string activeSkillName; // Offset: 0 + keen::string activeSkillDesc; // Offset: 8 + keen::string attributeName; // Offset: 16 + keen::string attributeDesc; // Offset: 24 + keen::string passiveSkillName; // Offset: 32 + keen::string passiveSkillDesc; // Offset: 40 +}; + +struct FbUiSkillNode { + keen::float32 textureRadius; // Offset: 0 + keen::float32 glowScale; // Offset: 4 + keen::float32 contentRadius; // Offset: 8 + keen::float32 focusRadiusGrowth; // Offset: 12 + keen::UiTexture mutedForEA; // Offset: 16 + keen::UiTexture outOfReach; // Offset: 64 + keen::UiTexture inReach; // Offset: 112 + keen::UiTexture activated; // Offset: 160 + keen::UiTexture glow; // Offset: 208 +}; + +struct FbUiSkillNodes { + keen::UiTexture starter; // Offset: 0 + keen::float32 starterRadius; // Offset: 48 + keen::float32 skillIconScale; // Offset: 52 + keen::float32 skillIconSubjectTextureReferenceHeight; // Offset: 56 + keen::FbUiSkillNode attributes; // Offset: 60 + keen::FbUiSkillNode passiveSkill; // Offset: 316 + keen::FbUiSkillNode activeSkill; // Offset: 572 +}; + +struct FbUiSkillTreeLinkColors { + keen::UiColor activatedCore; // Offset: 0 + keen::UiColor activatedGlow; // Offset: 8 + keen::UiColor adjacent; // Offset: 16 + keen::UiColor adjacentHover; // Offset: 24 + keen::UiColor inactive; // Offset: 32 + keen::UiColor muted; // Offset: 40 +}; + +struct FbUiCanvasParallaxLayer { + keen::UiTexture texture; // Offset: 0 + keen::float2 sizeOnCanvas; // Offset: 48 + keen::float32 parallaxDistance; // Offset: 56 + keen::UiColor renderTint; // Offset: 60 +}; + +struct FbUiSkillGlowColor { + keen::UiColor idle; // Offset: 0 + keen::UiColor activated; // Offset: 8 +}; + +struct FbUiSkillGlowColors { + keen::FbUiSkillGlowColor mage; // Offset: 0 + keen::FbUiSkillGlowColor warrior; // Offset: 16 + keen::FbUiSkillGlowColor ranger; // Offset: 32 + keen::FbUiSkillGlowColor neutral; // Offset: 48 +}; + +struct UiSkillTreeClassHint { + keen::UiLocaTagReference label; // Offset: 0 + keen::bool isPrimary; // Offset: 16 + keen::UiColor color; // Offset: 20 + keen::sint32 directionDegrees; // Offset: 28 + keen::float32 distanceFromRing; // Offset: 32 +}; + +struct FbUiSkillTree { + keen::BlobArray zoomSteps; // Offset: 0 + keen::BlobArray bgLayers; // Offset: 8 + keen::FbUiCanvasParallaxLayer skillLayoutHelper; // Offset: 16 + keen::UiColor backgroundColor; // Offset: 84 + keen::FbUiSkillTreeLinkColors linkColors; // Offset: 92 + keen::UiTexture connectionDirectionalPulse; // Offset: 140 + keen::UiTexture connectionCore; // Offset: 188 + keen::UiTexture connectionCoreInactive; // Offset: 236 + keen::UiTexture connectionCoreOneWayStretch; // Offset: 284 + keen::UiTexture connectionCoreOneWayEnd; // Offset: 332 + keen::UiTexture connectionGlow; // Offset: 380 + keen::UiColor connectionPulseColorGeneric; // Offset: 428 + keen::UiTexture nodeHighlight; // Offset: 436 + keen::UiTexture cursorHighlight; // Offset: 484 + keen::FbUiSkillGlowColors glowColors; // Offset: 532 + keen::BlobArray classHints; // Offset: 596 + keen::UiColor mageKeyColor; // Offset: 604 + keen::UiColor warriorKeyColor; // Offset: 612 + keen::UiColor rangerKeyColor; // Offset: 620 + keen::UiColor neutralClassKeyColor; // Offset: 628 + keen::UiColor mutedOverlayColor; // Offset: 636 + keen::FbUiSkillNodes nodes; // Offset: 644 + keen::UiTexture centerRing; // Offset: 1472 + keen::float32 centerRingRadius; // Offset: 1520 + keen::FbUiSkillTreeFallbackTexts fallbackTexts; // Offset: 1524 +}; + +struct FbUiMapMarkerIcons { + keen::UiTexture waypoint; // Offset: 0 + keen::UiTexture playerCorpse; // Offset: 48 + keen::UiTexture playerCorpseInDungeon; // Offset: 96 + keen::UiTexture markerFrame; // Offset: 144 + keen::UiTexture markerSelector; // Offset: 192 + keen::UiTexture investigation; // Offset: 240 + keen::UiTexture investigationOpaque; // Offset: 288 + keen::UiTexture completed; // Offset: 336 + keen::UiTexture playerPing; // Offset: 384 + keen::UiTexture playerMarkerPing; // Offset: 432 + keen::UiColor playerPingColor; // Offset: 480 +}; + +enum class CustomMapMarkerColorScheme { + White = 0, + Red = 1, + Green = 2, + Blue = 3, + Yellow = 4, + Purple = 5, + Turquoise = 6, + Black = 7, + Count = 8, +}; + +struct FbUiCustomMarkerColorScheme { + keen::CustomMapMarkerColorScheme colorSchemeType; // Offset: 0 + keen::UiColor baseColor; // Offset: 4 + keen::UiColor iconColor; // Offset: 12 +}; + +struct FbUiCustomMapMarker { + keen::StaticArray colors; // Offset: 0 + keen::UiTexture markerBase; // Offset: 160 + keen::UiTexture customMarkerSelector; // Offset: 208 + keen::UiTexture customMarkerWaypoint; // Offset: 256 + keen::UiTexture customMarkerHighlight; // Offset: 304 +}; + +struct FbUiMapIsolineConfig { + keen::float32 thickness; // Offset: 0 + keen::float32 alpha; // Offset: 4 +}; + +struct FbUiMapZoomConfig { + keen::float32 zoomScale; // Offset: 0 + keen::StaticArray isolineConfigs; // Offset: 4 +}; + +struct FbUiMapInvestigationArea { + keen::UiTexture pattern; // Offset: 0 + keen::float32 tileSize; // Offset: 48 + keen::UiTexture mask; // Offset: 52 + keen::UiColor patternColor; // Offset: 100 + keen::UiColor bgColor; // Offset: 108 + keen::float2 alphaRange; // Offset: 116 + keen::float32 pulseCycleInSeconds; // Offset: 124 +}; + +struct FbUiAdventureMap { + keen::UiTexture playerPosition; // Offset: 0 + keen::UiColor currentPlayerColor; // Offset: 48 + keen::UiColor otherPlayerColor; // Offset: 56 + keen::float2 fogZoneAlphaRange; // Offset: 64 + keen::Time fogZonePulseLength; // Offset: 72 + keen::float32 outerCornerNominalSize; // Offset: 80 + keen::UiNineSliceTexture outerFrame; // Offset: 84 + keen::float32 frameInnerGradientNominalSize; // Offset: 148 + keen::UiNineSliceTexture frameInnerGradient; // Offset: 152 + keen::UiTexture cursorPiece; // Offset: 216 + keen::UiTexture offscreenIconBubble; // Offset: 264 + keen::UiTexture circularArea; // Offset: 312 + keen::UiTexture markerRipple; // Offset: 360 + keen::FbUiMapInvestigationArea investigation; // Offset: 408 + keen::FbUiMapMarkerIcons markerIcons; // Offset: 536 + keen::BlobArray zoomConfigs; // Offset: 1024 + keen::FbUiCustomMapMarker customMarkers; // Offset: 1032 +}; + +struct FbUiRecipeCategoryIcons { + keen::UiTexture swords; // Offset: 0 + keen::UiTexture ammo; // Offset: 48 + keen::UiTexture potion; // Offset: 96 + keen::UiTexture misc; // Offset: 144 + keen::UiTexture armor; // Offset: 192 + keen::UiTexture magical; // Offset: 240 +}; + +struct FbUiRecipeGroupDefinition { + keen::UiTexture icon; // Offset: 0 + keen::ItemTagReference tagRef; // Offset: 48 + keen::ItemCategory itemCategoryFallback; // Offset: 64 +}; + +struct FbUiCrafting { + keen::FbUiRecipeCategoryIcons categoryIcons; // Offset: 0 + keen::UiColor ingredientBgColorDefault; // Offset: 288 + keen::UiColor sufficientIngredientColor; // Offset: 296 + keen::UiColor insufficientIngredientColor; // Offset: 304 + keen::UiColor successFlashColor; // Offset: 312 + keen::UiTexture pinnedRecipeIcon; // Offset: 320 + keen::BlobArray groupDefinitions; // Offset: 368 + keen::BlobArray recipeSets; // Offset: 376 +}; + +struct FbUiRecipeSetFolder { +}; + +struct FbUiRecipeSet { +}; + +struct FbUiWorldEvents { +}; + +struct FbUiWorldEvent { + keen::HashKey32 eventId; // Offset: 0 + keen::UiTexture mainTexture; // Offset: 4 + keen::UiTexture ornament; // Offset: 52 + keen::UiColor initialColor; // Offset: 100 + keen::UiColor secondaryColor; // Offset: 108 + keen::UiColor rippleColor; // Offset: 116 + keen::float imageSize; // Offset: 124 + keen::SoundContainerReference sfx; // Offset: 128 + keen::UiLocaTagReference text; // Offset: 144 +}; + +enum class UiParagraphAlignment { + Left = 0, + Center = 1, + Right = 2, +}; + +struct UiParagraphStyle { + keen::string identifier; // Offset: 0 + keen::float32 leading; // Offset: 8 + keen::bool enableAlignment; // Offset: 12 + keen::UiParagraphAlignment alignment; // Offset: 13 + keen::float32 indentLeft; // Offset: 16 + keen::float32 indentRight; // Offset: 20 + keen::float32 lineSpacing; // Offset: 24 +}; + +struct FbUiMenuParagraphStyles { + keen::UiParagraphStyle loreReaderBody; // Offset: 0 +}; + +struct FbUiEquipmentBodyPartViews { + keen::FbUiCharacterView full; // Offset: 0 + keen::FbUiCharacterView head; // Offset: 28 + keen::FbUiCharacterView chest; // Offset: 56 + keen::FbUiCharacterView arm; // Offset: 84 + keen::FbUiCharacterView legs; // Offset: 112 + keen::FbUiCharacterView feet; // Offset: 140 + keen::FbUiCharacterView ring; // Offset: 168 +}; + +struct FbUiHudMenuMetrics { + keen::float32 lootingMenuWidth; // Offset: 0 + keen::float32 centerMessageBottomY; // Offset: 4 + keen::Time epicLootLeaveCenterDelay; // Offset: 8 + keen::FbUiEquipmentBodyPartViews equipmentBodyPartViews; // Offset: 16 +}; + +struct FbUiCustomizationViews { + keen::FbUiCharacterView fullBody; // Offset: 0 + keen::FbUiCharacterView head; // Offset: 28 + keen::FbUiCharacterView presetView; // Offset: 56 + keen::FbUiCharacterView hairView; // Offset: 84 + keen::FbUiCharacterView beardView; // Offset: 112 + keen::FbUiCharacterView hairColorView; // Offset: 140 +}; + +struct CharacterPresetObject { + keen::CharacterPresetObjectReference presetObject; // Offset: 0 + keen::UiTexture previewImage; // Offset: 16 +}; + +struct CharacterItemReferences { + keen::ItemReference itemReference; // Offset: 0 + keen::UiTexture previewImage; // Offset: 16 +}; + +struct FbUiCustomization { + keen::FbUiCustomizationViews characterViews; // Offset: 0 + keen::BlobArray presetObjects; // Offset: 168 + keen::BlobArray hairColors; // Offset: 176 + keen::BlobArray beardColors; // Offset: 184 + keen::BlobArray hairItems; // Offset: 192 + keen::BlobArray beardItems; // Offset: 200 + keen::BlobArray> eyeColors; // Offset: 208 + keen::BlobArray> eyeBrowColors; // Offset: 216 + keen::BlobArray> skinColors; // Offset: 224 + keen::BlobArray> voiceItems; // Offset: 232 +}; + +struct FbUiTileArtConfig { + keen::float2 pivot; // Offset: 0 + keen::float32 scaleTweak; // Offset: 8 + keen::UiTexture texture; // Offset: 12 +}; + +struct FbUiMenuTiles { + keen::float32 idleAlphaScale; // Offset: 0 + keen::float32 emptyContentAlphaScale; // Offset: 4 + keen::FbUiTileArtConfig lockedContent; // Offset: 8 + keen::FbUiTileArtConfig quests; // Offset: 68 + keen::FbUiTileArtConfig flame; // Offset: 128 + keen::FbUiTileArtConfig craftspeople; // Offset: 188 + keen::FbUiTileArtConfig townsfolk; // Offset: 248 + keen::FbUiTileArtConfig bases; // Offset: 308 + keen::FbUiTileArtConfig workshops; // Offset: 368 + keen::FbUiTileArtConfig lore; // Offset: 428 + keen::FbUiTileArtConfig tutorials; // Offset: 488 + keen::FbUiTileArtConfig altarUpgradeGeneric; // Offset: 548 + keen::BlobArray altarLevels; // Offset: 608 + keen::FbUiTileArtConfig flameUpgrade; // Offset: 616 + keen::FbUiTileArtConfig skilltree; // Offset: 676 +}; + +struct FbUiMenuButtonTextures { + keen::UiNineSliceTexture background; // Offset: 0 + keen::UiNineSliceTexture backgroundDestructive; // Offset: 64 + keen::UiNineSliceTexture backGlow; // Offset: 128 + keen::UiNineSliceTexture ornament; // Offset: 192 +}; + +struct UiCharacterStyleActivePropertyFlags { + keen::bool font; // Offset: 0 + keen::bool size; // Offset: 1 + keen::bool tracking; // Offset: 2 + keen::bool variant; // Offset: 3 + keen::bool uppercase; // Offset: 4 + keen::bool color; // Offset: 5 + keen::bool outline; // Offset: 6 + keen::bool dropShadow; // Offset: 7 +}; + +struct UiCharacterStyle { + keen::string identifier; // Offset: 0 + keen::UiCharacterStyleActivePropertyFlags activeProperties; // Offset: 8 + keen::ObjectReference font; // Offset: 16 + keen::float32 fontSize; // Offset: 32 + keen::float32 spacing; // Offset: 36 + keen::bool bold; // Offset: 40 + keen::bool italic; // Offset: 41 + keen::bool uppercase; // Offset: 42 + keen::UiColor color; // Offset: 44 + keen::bool outline; // Offset: 52 + keen::UiColor outlineColor; // Offset: 56 + keen::float32 outlineSize; // Offset: 64 + keen::bool dropShadow; // Offset: 68 + keen::UiColor dropShadowColor; // Offset: 72 + keen::float2 dropShadowOffset; // Offset: 80 +}; + +struct FbUiMenuButton { + keen::FbUiMenuButtonTextures standalone; // Offset: 0 + keen::FbUiMenuButtonTextures inGroupLeft; // Offset: 256 + keen::FbUiMenuButtonTextures inGroupMiddle; // Offset: 512 + keen::FbUiMenuButtonTextures inGroupRight; // Offset: 768 + keen::FbUiMenuButtonTextures standaloneSmall; // Offset: 1024 + keen::UiTexture sliderKnob; // Offset: 1280 + keen::UiCharacterStyle labelStyle; // Offset: 1328 + keen::UiColor ornamentTint; // Offset: 1416 + keen::UiColor destructiveTint; // Offset: 1424 + keen::UiColor textColorDestructive; // Offset: 1432 +}; + +struct FbUiMenuToggle { + keen::UiTexture toggleOn; // Offset: 0 + keen::UiTexture toggleOff; // Offset: 48 + keen::UiTexture backGlow; // Offset: 96 +}; + +struct FbUiMenuScrollbar { + keen::UiNineSliceTexture slider; // Offset: 0 + keen::UiNineSliceTexture range; // Offset: 64 + keen::UiColor rangeTint; // Offset: 128 +}; + +struct FbUiCharacterInventory { + keen::UiTexture levelBadgeBackground; // Offset: 0 + keen::float2 xpBarLevelBadgeSize; // Offset: 48 +}; + +struct FbUiMultiToolMenu { + keen::UiLocaTagReference materialHeader; // Offset: 0 + keen::UiLocaTagReference tooltipMaterialHint; // Offset: 16 + keen::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 32 + keen::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 48 + keen::UiLocaTagReference itemSubInfo; // Offset: 64 + keen::UiLocaTagReference preUseHint_QuickBuilder; // Offset: 80 + keen::UiLocaTagReference preUseHint_Terraformer; // Offset: 96 + keen::UiLocaTagReference preUseHint_NpcSummoner; // Offset: 112 + keen::UiLocaTagReference preUseHintHud_QuickBuilder; // Offset: 128 + keen::UiLocaTagReference preUseHintHud_Terraformer; // Offset: 144 + keen::UiLocaTagReference preUseHintHud_NpcSummoner; // Offset: 160 + keen::UiLocaTagReference noAltarBuild; // Offset: 176 + keen::UiLocaTagReference craftBlocksHint; // Offset: 192 + keen::UiLocaTagReference craftRoofBlocksHint; // Offset: 208 + keen::UiLocaTagReference collectMaterialsHint; // Offset: 224 + keen::UiLocaTagReference noMaterialsAvailable; // Offset: 240 + keen::UiLocaTagReference needsFlameAltarHint; // Offset: 256 + keen::UiColor antiTofuTint_Temp; // Offset: 272 +}; + +struct FbUiEquipmentSlotIcons { + keen::UiTexture mainHand; // Offset: 0 + keen::UiTexture shield; // Offset: 48 + keen::UiTexture backpackExtender; // Offset: 96 + keen::UiTexture rangedWeapon; // Offset: 144 + keen::UiTexture arrow; // Offset: 192 + keen::UiTexture spell; // Offset: 240 + keen::UiTexture wallClimber; // Offset: 288 + keen::UiTexture hookshot; // Offset: 336 + keen::UiTexture glider; // Offset: 384 + keen::UiTexture accessory; // Offset: 432 + keen::UiTexture ring; // Offset: 480 + keen::UiTexture head; // Offset: 528 + keen::UiTexture upperBody; // Offset: 576 + keen::UiTexture arms; // Offset: 624 + keen::UiTexture lowerBody; // Offset: 672 + keen::UiTexture boots; // Offset: 720 + keen::UiTexture vanity; // Offset: 768 +}; + +struct FbUiPerkIcons { + keen::UiTexture nodeOutline; // Offset: 0 + keen::UiTexture genericAttributeNode; // Offset: 48 +}; + +struct FbUiFancyBox { + keen::float32 cornerSize; // Offset: 0 + keen::UiNineSliceTexture frame; // Offset: 4 + keen::UiNineSliceTexture frameSimple; // Offset: 68 + keen::UiColor frameColor; // Offset: 132 + keen::UiNineSliceTexture backgroundShape; // Offset: 140 + keen::UiNineSliceTexture backgroundShapeHalved; // Offset: 204 + keen::UiNineSliceTexture backgroundShapeGlassMask; // Offset: 268 + keen::UiNineSliceTexture backgroundShapeHalvedGlassMask; // Offset: 332 + keen::UiColor backgroundColor; // Offset: 396 + keen::UiColor backgroundColorDark; // Offset: 404 + keen::UiTexture backgroundPattern; // Offset: 412 + keen::UiColor backgroundPatternColor; // Offset: 460 + keen::float32 patternSize; // Offset: 468 + keen::UiNineSliceTexture frameFull; // Offset: 472 + keen::UiNineSliceTexture backgroundShapeFrameFull; // Offset: 536 + keen::UiNineSliceTexture backgroundShapeGradientToLeft; // Offset: 600 + keen::UiNineSliceTexture backgroundShapeGradientToTop; // Offset: 664 + keen::UiNineSliceTexture frameFullSimple; // Offset: 728 + keen::UiNineSliceTexture backgroundShapeFrameFullSimple; // Offset: 792 + keen::UiNineSliceTexture frameTopMinimal; // Offset: 856 + keen::UiNineSliceTexture backgroundShapeTopMinimal; // Offset: 920 + keen::UiNineSliceTexture frameFullDetailed; // Offset: 984 + keen::UiNineSliceTexture backgroundShapeFrameFullDetailed; // Offset: 1048 +}; + +struct FbUiFancyLoadingBar { + keen::UiNineSliceTexture background; // Offset: 0 + keen::UiNineSliceTexture bar; // Offset: 64 + keen::UiNineSliceTexture glow; // Offset: 128 + keen::UiColor sectionCompletedColor; // Offset: 192 +}; + +struct UiVector { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 +}; + +typedef keen::UiVector UiSize; + +struct FbUiMenuExplainer { + keen::UiColor darkenerColor; // Offset: 0 + keen::float32 areaFeatherSize; // Offset: 8 + keen::UiSize areaContentPadding; // Offset: 12 + keen::float32 textMaxWidth; // Offset: 20 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiJournalBaseInfo { + keen::UiTexture iconFlameAltar; // Offset: 0 + keen::UiTexture iconNpc; // Offset: 48 + keen::UiTexture iconNpcBed; // Offset: 96 + keen::UiTexture iconAnimal; // Offset: 144 +}; + +struct FbUiCodexAssets { + keen::UiTexture questSourceIconBG; // Offset: 0 + keen::UiTexture repeatedQuestSourceIconBG; // Offset: 48 + keen::UiTexture questIconFlame; // Offset: 96 + keen::UiTexture questIconBlacksmith; // Offset: 144 + keen::UiTexture questIconAlchemist; // Offset: 192 + keen::UiTexture questIconHunter; // Offset: 240 + keen::UiTexture questIconCarpenter; // Offset: 288 + keen::UiTexture questIconFarmer; // Offset: 336 + keen::UiTexture questIconCryptKeeper; // Offset: 384 + keen::UiTexture questIconBard; // Offset: 432 + keen::UiTexture questIconMisc; // Offset: 480 + keen::UiTexture questIconTexture; // Offset: 528 + keen::UiTexture questProgressEmpty; // Offset: 576 + keen::UiTexture questProgressFilled; // Offset: 624 + keen::UiTexture questCheckmark; // Offset: 672 + keen::UiTexture lorePageFound; // Offset: 720 + keen::UiTexture lorePageLocked; // Offset: 768 + keen::UiTexture activeQuestIndicator; // Offset: 816 + keen::UiTexture lockedLoreTileImage; // Offset: 864 + keen::UiColor completedQuestsColor; // Offset: 912 + keen::UiColor flameQuestEntryColor; // Offset: 920 + keen::UiColor npcQuestEntryColor; // Offset: 928 + keen::UiColor miscQuestEntryColor; // Offset: 936 + keen::UiColor repeatedQuestEntryColor; // Offset: 944 + keen::FbUiJournalBaseInfo baseInfo; // Offset: 952 +}; + +struct FbUiLoreCategory { + keen::UiLocaTagReference categoryName; // Offset: 0 + keen::FbUiTileArtConfig artConfig; // Offset: 16 +}; + +struct FbUiMenuAttributeTabs { + keen::UiTexture basicsTab; // Offset: 0 + keen::UiTexture damageTab; // Offset: 48 + keen::UiTexture resistanceTab; // Offset: 96 +}; + +struct FbUiCollectionCategoryInfo { + keen::ObjectReference category; // Offset: 0 + keen::UiLocaTagReference label; // Offset: 16 + keen::UiTexture icon; // Offset: 32 +}; + +struct FbUiDifficultyOptionValue { + keen::bool isAvailable; // Offset: 0 + keen::BlobArray steps; // Offset: 4 +}; + +struct FbUiDifficultyOptionValues { + keen::FbUiDifficultyOptionValue enemyDamage; // Offset: 0 + keen::FbUiDifficultyOptionValue enemyHealth; // Offset: 12 + keen::FbUiDifficultyOptionValue enemyStamina; // Offset: 24 + keen::FbUiDifficultyOptionValue enemyPerceptionRange; // Offset: 36 + keen::FbUiDifficultyOptionValue enemyAttackFrequency; // Offset: 48 + keen::FbUiDifficultyOptionValue bossHealth; // Offset: 60 + keen::FbUiDifficultyOptionValue bossDamage; // Offset: 72 + keen::FbUiDifficultyOptionValue miningXp; // Offset: 84 + keen::FbUiDifficultyOptionValue questXp; // Offset: 96 + keen::FbUiDifficultyOptionValue combatXp; // Offset: 108 + keen::FbUiDifficultyOptionValue playerHealth; // Offset: 120 + keen::FbUiDifficultyOptionValue playerStamina; // Offset: 132 + keen::FbUiDifficultyOptionValue playerMana; // Offset: 144 + keen::FbUiDifficultyOptionValue shroudTime; // Offset: 156 + keen::FbUiDifficultyOptionValue durability; // Offset: 168 + keen::FbUiDifficultyOptionValue dayTime; // Offset: 180 + keen::FbUiDifficultyOptionValue nightTime; // Offset: 192 + keen::FbUiDifficultyOptionValue foodDuration; // Offset: 204 + keen::FbUiDifficultyOptionValue productionTime; // Offset: 216 + keen::FbUiDifficultyOptionValue plantGrowTime; // Offset: 228 + keen::FbUiDifficultyOptionValue weaponUpgradeCost; // Offset: 240 + keen::FbUiDifficultyOptionValue perkUpgradeRecyclingFactor; // Offset: 252 + keen::FbUiDifficultyOptionValue worldRefreshTime; // Offset: 264 + keen::FbUiDifficultyOptionValue miningDamage; // Offset: 276 + keen::FbUiDifficultyOptionValue dropAmount; // Offset: 288 + keen::FbUiDifficultyOptionValue starvingTime; // Offset: 300 + keen::FbUiDifficultyOptionValue bodyHeat; // Offset: 312 + keen::bool tombstoneMode; // Offset: 324 + keen::bool randomSpawnerAmount; // Offset: 325 + keen::bool aggroPoolAmount; // Offset: 326 + keen::bool enableDurability; // Offset: 327 + keen::bool enableStarvingDebuff; // Offset: 328 + keen::bool pacifyAllEnemies; // Offset: 329 + keen::bool weatherFrequency; // Offset: 330 + keen::bool enableGliderTurbulences; // Offset: 331 + keen::bool tamingStartleRepercussion; // Offset: 332 +}; + +struct FbUiDifficultyPreset { + keen::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::UiLocaTagReference label; // Offset: 4 + keen::UiLocaTagReference desc; // Offset: 20 + keen::UiTexture iconSelected; // Offset: 36 + keen::UiTexture iconUnelected; // Offset: 84 + keen::UiTexture iconSmall; // Offset: 132 + keen::ecs::GameSettings settings; // Offset: 184 +}; + +struct FbUiDifficultySettings { + keen::FbUiDifficultyOptionValues settingValues; // Offset: 0 + keen::FbUiDifficultyPreset presetDefault; // Offset: 336 + keen::FbUiDifficultyPreset presetBuilder; // Offset: 648 + keen::FbUiDifficultyPreset presetSurvivalist; // Offset: 960 + keen::FbUiDifficultyPreset presetCombatChallenge; // Offset: 1272 + keen::FbUiDifficultyPreset custom; // Offset: 1584 + keen::UiTexture presetIconHighlight; // Offset: 1896 +}; + +struct FbUiMenu { + keen::FbUiHudMenuMetrics metrics; // Offset: 0 + keen::FbUiMenuParagraphStyles paragraphStyles; // Offset: 216 + keen::FbUiCharacterInventory characterInventory; // Offset: 244 + keen::FbUiSkillTree skilltree; // Offset: 300 + keen::FbUiAdventureMap map; // Offset: 1872 + keen::FbUiCrafting crafting; // Offset: 3256 + keen::BlobArray collectionCategories; // Offset: 3640 + keen::FbUiMultiToolMenu multiTool; // Offset: 3648 + keen::FbUiEquipmentSlotIcons equipmentSlots; // Offset: 3928 + keen::FbUiPerkIcons itemPerkIcons; // Offset: 4744 + keen::FbUiMenuAttributeTabs attributeTabs; // Offset: 4840 + keen::FbUiMenuTiles menuTiles; // Offset: 4984 + keen::UiTexture codexMotherflameIllustration; // Offset: 5720 + keen::FbUiCodexAssets codexAssets; // Offset: 5768 + keen::BlobArray loreCategories; // Offset: 6912 + keen::FbUiMenuButton button; // Offset: 6920 + keen::FbUiMenuToggle toggle; // Offset: 8360 + keen::FbUiMenuScrollbar scrollbar; // Offset: 8504 + keen::FbUiFancyLoadingBar loadingBar; // Offset: 8640 + keen::UiColor frostedGlassDefaultTint; // Offset: 8840 + keen::UiColor backgroundDarkenerColor; // Offset: 8848 + keen::UiNineSliceTexture topTabBackground; // Offset: 8856 + keen::UiColor tabLabelIdleColor; // Offset: 8920 + keen::UiColor tabLabelHighlightColor; // Offset: 8928 + keen::UiColor tabHighlightColor; // Offset: 8936 + keen::UiNineSliceTexture tabHighlight; // Offset: 8944 + keen::UiColor basicWidgetColor; // Offset: 9008 + keen::UiColor basicWidgetColorHighlighted; // Offset: 9016 + keen::UiColor tileBackgroundColor; // Offset: 9024 + keen::UiColor tileHighlightOutlineColor; // Offset: 9032 + keen::UiNineSliceTexture basicWidgetMinimizedShape; // Offset: 9040 + keen::UiNineSliceTexture basicWidgetBackground; // Offset: 9104 + keen::UiNineSliceTexture basicWidgetBackgroundWide; // Offset: 9168 + keen::UiNineSliceTexture basicWidgetBackgroundLarge; // Offset: 9232 + keen::UiNineSliceTexture basicWidgetBackgroundFaded; // Offset: 9296 + keen::UiNineSliceTexture basicWidgetHeader; // Offset: 9360 + keen::UiNineSliceTexture basicWidgetRarityStripe; // Offset: 9424 + keen::UiNineSliceTexture basicWidgetHighlightOutline; // Offset: 9488 + keen::FbUiFancyBox fancyBox; // Offset: 9552 + keen::UiNineSliceTexture pillWidgetBackground; // Offset: 10664 + keen::UiTexture flameIcon; // Offset: 10728 + keen::UiTexture moveStacksLeftIcon; // Offset: 10776 + keen::UiTexture moveStacksRightIcon; // Offset: 10824 + keen::UiTexture iconPlayerInventory; // Offset: 10872 + keen::UiTexture iconStorageInventory; // Offset: 10920 + keen::UiTexture iconOpenInventoryTransactions; // Offset: 10968 + keen::UiTexture spatialFactoryInfoBg; // Offset: 11016 + keen::UiTexture actionbarTutorialKeyImage; // Offset: 11064 + keen::UiTexture fancyToggleSmallOff; // Offset: 11112 + keen::UiTexture fancyToggleSmallOn; // Offset: 11160 + keen::FbUiMenuExplainer explainer; // Offset: 11208 +}; + +struct FbUiItemSlotFrame { + keen::UiTexture shapeBase; // Offset: 0 + keen::UiTexture shapeSubtle; // Offset: 48 + keen::UiTexture outline; // Offset: 96 +}; + +struct FbUiItemSlotMinimal { + keen::UiTexture cookable; // Offset: 0 + keen::UiTexture uncookable; // Offset: 48 + keen::UiTexture empty; // Offset: 96 +}; + +struct FbUiItemEquipIndicator { + keen::UiLocaTagReference label; // Offset: 0 + keen::UiTexture texture; // Offset: 16 + keen::UiColor color; // Offset: 64 + keen::bool useFrame; // Offset: 72 +}; + +struct FbUiItemStackProperties { + keen::UiTexture isNew; // Offset: 0 + keen::UiTexture equippableFrame; // Offset: 48 + keen::UiTexture equipMissingHint; // Offset: 96 + keen::UiLocaTagReference initialEquipActionMessage; // Offset: 144 + keen::UiLocaTagReference labelEquipped; // Offset: 160 + keen::UiLocaTagReference labelUnequipped; // Offset: 176 + keen::FbUiItemEquipIndicator actionBarHighlight; // Offset: 192 + keen::FbUiItemEquipIndicator instaUse; // Offset: 268 + keen::FbUiItemEquipIndicator armor; // Offset: 344 + keen::FbUiItemEquipIndicator vanityArmor; // Offset: 420 + keen::FbUiItemEquipIndicator rangedWeapon; // Offset: 496 + keen::FbUiItemEquipIndicator arrow; // Offset: 572 + keen::FbUiItemEquipIndicator spell; // Offset: 648 + keen::FbUiItemEquipIndicator blueprintDefaultShape; // Offset: 724 + keen::FbUiItemEquipIndicator blueprintDefaultMaterial; // Offset: 800 + keen::FbUiItemEquipIndicator blueprintRoofShape; // Offset: 876 + keen::FbUiItemEquipIndicator blueprintRoofMaterial; // Offset: 952 + keen::FbUiItemEquipIndicator blueprintTerrainShape; // Offset: 1028 + keen::FbUiItemEquipIndicator blueprintTerrainMaterial; // Offset: 1104 + keen::FbUiItemEquipIndicator missingTwitchPermission; // Offset: 1180 + keen::UiColor durabilityColorDefault; // Offset: 1256 + keen::UiColor durabilityColorLow; // Offset: 1264 + keen::UiColor durabilityColorDraining; // Offset: 1272 + keen::UiColor durabilityColorDrainingLow; // Offset: 1280 +}; + +struct FbUiItemSlot { + keen::FbUiItemStackProperties properties; // Offset: 0 + keen::FbUiItemSlotFrame backpack; // Offset: 1288 + keen::FbUiItemSlotMinimal minimal; // Offset: 1432 + keen::UiCharacterStyle countNumberStyle; // Offset: 1576 + keen::UiColor grabAmountColor; // Offset: 1664 + keen::UiColor backgroundColor; // Offset: 1672 + keen::UiColor backgroundColorBright; // Offset: 1680 + keen::UiTexture actionbarPageInactive; // Offset: 1688 + keen::UiTexture actionbarPageActive; // Offset: 1736 + keen::UiTexture pageHint; // Offset: 1784 + keen::UiTexture blueprintBackground; // Offset: 1832 + keen::UiTexture blueprintTypeIconMini; // Offset: 1880 + keen::UiTexture blueprintIntroItemIcon; // Offset: 1928 +}; + +struct FbUiBlueprint { + keen::UiLocaTagReference introRecipeName; // Offset: 0 + keen::UiLocaTagReference introRecipeDescription1; // Offset: 16 + keen::UiLocaTagReference introRecipeDescription2; // Offset: 32 + keen::UiLocaTagReference introItemSubinfo; // Offset: 48 + keen::UiLocaTagReference introItemEmptyHint; // Offset: 64 + keen::UiLocaTagReference introItemUsageHint; // Offset: 80 + keen::UiLocaTagReference materialHeader; // Offset: 96 + keen::UiLocaTagReference tooltipMaterialHint; // Offset: 112 + keen::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 128 + keen::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 144 + keen::UiColor antiTofuTint_Temp; // Offset: 160 +}; + +struct FbUiBuffIcons { + keen::UiTexture circularBarMask; // Offset: 0 + keen::UiColor frameColor; // Offset: 48 + keen::UiColor pieFillColor; // Offset: 56 + keen::UiColor pieFillColorHungry; // Offset: 64 + keen::UiColor pieFillColorStarving; // Offset: 72 + keen::UiColor pieLineColor; // Offset: 80 + keen::UiTexture extremeCold; // Offset: 88 + keen::UiTexture extremeHeat; // Offset: 136 + keen::UiTexture restedConditionsBracket; // Offset: 184 +}; + +struct FbUiAnimatedHealthBarColors { + keen::UiColor frameColor; // Offset: 0 + keen::UiColor rangeColor; // Offset: 8 + keen::UiColor fillColor; // Offset: 16 + keen::UiColor fillEndColor; // Offset: 24 + keen::UiColor damageColor; // Offset: 32 + keen::UiColor healColor; // Offset: 40 +}; + +struct FbUiHudBuffDisplay { + keen::float2 textEntriesOffset; // Offset: 0 + keen::float32 offsetY; // Offset: 8 + keen::float32 iconColumnsDistance; // Offset: 12 + keen::float32 restedAnchorSize; // Offset: 16 + keen::float2 restedBarPieceSize; // Offset: 20 +}; + +struct FbUiHudPlayerStatus { + keen::float2 widgetBaseOffset; // Offset: 0 + keen::float4 flameWarningThresholds; // Offset: 8 + keen::FbUiHudBuffDisplay buffDisplay; // Offset: 24 + keen::UiNineSliceTexture barBackground; // Offset: 52 + keen::float4 barBorderThickness; // Offset: 116 + keen::float2 barGroupOffset; // Offset: 132 + keen::float2 xpBarSize; // Offset: 140 + keen::float2 xpBarOffset; // Offset: 148 + keen::float32 xpBarDisplayTime; // Offset: 156 + keen::float2 healthBarSize; // Offset: 160 + keen::float2 manaBarSize; // Offset: 168 + keen::UiTexture staminaCircleMain; // Offset: 176 + keen::UiTexture staminaCircleBuff; // Offset: 224 + keen::UiTexture staminaCircleInner; // Offset: 272 + keen::BlobArray staminaCirlceSizesInner; // Offset: 320 + keen::BlobArray staminaCirlceSizesOuter; // Offset: 328 + keen::FbUiAnimatedHealthBarColors xpColors; // Offset: 336 + keen::FbUiAnimatedHealthBarColors healthColors; // Offset: 384 + keen::FbUiAnimatedHealthBarColors staminaColors; // Offset: 432 + keen::FbUiAnimatedHealthBarColors manaColors; // Offset: 480 +}; + +struct FbUiAltarAttentionMarkerAnim { + keen::Time altarAttentionMarkerFadeIn; // Offset: 0 + keen::Time altarAttentionMarkerFadeOut; // Offset: 8 + keen::Time altarAttentionMarkerSecondPingDelay; // Offset: 16 + keen::Time altarAttentionMarkerAnimDelay; // Offset: 24 + keen::float32 altarAttentionMarkerGrow; // Offset: 32 + keen::float32 altarAttentionMarkerPingSize; // Offset: 36 + keen::float32 altarAttentionMarkerMinAlpha; // Offset: 40 + keen::float32 altarAttentionMarkerPingStartAlpha; // Offset: 44 + keen::float32 altarAttentionMarkerPingEndAlpha; // Offset: 48 +}; + +struct FbUiHUDSpatial { + keen::UiTexture lockonBackground; // Offset: 0 + keen::UiTexture lockonArrow; // Offset: 48 + keen::float32 lockonArrowSize; // Offset: 96 + keen::UiNineSliceTexture healthBar; // Offset: 100 + keen::UiTexture critIndicator; // Offset: 164 + keen::float2 critIndcatorOffset; // Offset: 212 + keen::float32 bonusIndicatorUnitHeight; // Offset: 220 + keen::UiTexture bonusIndicator; // Offset: 224 + keen::UiTexture malusIndicator; // Offset: 272 + keen::float2 bonusGroupOffset; // Offset: 320 + keen::float2 malusGroupOffset; // Offset: 328 + keen::float2 symbolOffset; // Offset: 336 + keen::float2 enemyHealthBarSize; // Offset: 344 + keen::float2 enemyStaminaBarSize; // Offset: 352 + keen::float2 enemyBarGroupBorder; // Offset: 360 + keen::UiColor damageTextBonusFill; // Offset: 368 + keen::UiColor damageTextBonusOutlineFrom; // Offset: 376 + keen::UiColor damageTextBonusOutlineTo; // Offset: 384 + keen::UiColor damageTextMalusFill; // Offset: 392 + keen::UiColor damageTextMalusOutlineFrom; // Offset: 400 + keen::UiColor damageTextMalusOutlineTo; // Offset: 408 + keen::UiColor attentionMarkerQuestionFill; // Offset: 416 + keen::UiColor attentionMarkerFlameInfoFill; // Offset: 424 + keen::FbUiAnimatedHealthBarColors coPlayerHealthColors; // Offset: 432 + keen::UiColor coPlayerLevelBadgeFill; // Offset: 480 + keen::UiColor coPlayerLevelBadgeOutline; // Offset: 488 + keen::UiColor enemyLevelBadgeFill; // Offset: 496 + keen::UiColor enemyLevelBadgeOutline; // Offset: 504 + keen::FbUiAnimatedHealthBarColors enemyHealthColors; // Offset: 512 + keen::FbUiAnimatedHealthBarColors enemyStaminaColors; // Offset: 560 + keen::UiColor enemyHigherLevelBadgeFill; // Offset: 608 + keen::UiColor enemyHigherLevelBadgeOutline; // Offset: 616 + keen::FbUiAnimatedHealthBarColors enemyHigherLevelHealthColors; // Offset: 624 + keen::FbUiAnimatedHealthBarColors neutralHealthColors; // Offset: 672 + keen::UiColor neutralLevelBadgeFill; // Offset: 720 + keen::UiColor neutralLevelBadgeOutline; // Offset: 728 + keen::FbUiAltarAttentionMarkerAnim altarAttentionMarkerAnim; // Offset: 736 + keen::UiTexture hookshotPullTargetIcon; // Offset: 792 + keen::UiTexture hookshotPullTargetIconLockIn; // Offset: 840 +}; + +struct FbUiHudBuildModeHint { + keen::UiTexture slotArc; // Offset: 0 + keen::UiTexture flashGradient; // Offset: 48 + keen::UiTexture flashMask; // Offset: 96 + keen::UiColor flashColor; // Offset: 144 +}; + +struct FbUiHudTopNotification { + keen::UiColor bgTintColor; // Offset: 0 + keen::UiColor accentColor; // Offset: 8 + keen::float32 barMinWidth; // Offset: 16 + keen::float32 featherWidth; // Offset: 20 + keen::float32 fadeWaveWidth; // Offset: 24 + keen::float32 fadeInFromX; // Offset: 28 + keen::float32 offsetY; // Offset: 32 + keen::float32 offsetYinPlayerMenu; // Offset: 36 +}; + +struct FbUiHudLowHealth { + keen::UiTexture vignette; // Offset: 0 + keen::UiColor vignetteColor; // Offset: 48 + keen::UiColor enterLowHealthFlashColor; // Offset: 56 +}; + +struct FbUiHudFreezing { + keen::UiTexture frostBorderCorner; // Offset: 0 + keen::float32 frostBorderCornerHeightTop; // Offset: 48 + keen::float32 frostBorderCornerHeightBottom; // Offset: 52 + keen::UiTexture frostBorderTop; // Offset: 56 + keen::UiTexture creepInGradientTop; // Offset: 104 + keen::float32 frostBorderHeightTop; // Offset: 152 + keen::UiTexture frostBorderLeft; // Offset: 156 + keen::UiTexture creepInGradientLeft; // Offset: 204 + keen::float32 frostBorderHeightBottom; // Offset: 252 + keen::float32 frostBorderWidthLeftRight; // Offset: 256 + keen::UiColor frostBorderTint; // Offset: 260 + keen::float32 bgBlurCenterYratio; // Offset: 268 + keen::UiTexture bgBlurVignetteTopLeft; // Offset: 272 + keen::UiTexture bgBlurVignetteTop; // Offset: 320 + keen::UiTexture bgBlurVignetteLeft; // Offset: 368 + keen::float32 bgBlurCornerWidth; // Offset: 416 + keen::float32 bgBlurCornerHeightTop; // Offset: 420 + keen::float32 bgBlurCornerHeightBottom; // Offset: 424 + keen::UiColor bgBlurTint; // Offset: 428 + keen::float32 idleAlpha; // Offset: 436 + keen::float2 criticalAlpha; // Offset: 440 +}; + +struct FbUiControlScheme { + keen::UiTexture game; // Offset: 0 + keen::UiTexture build; // Offset: 48 +}; + +struct FbUiHudBarrierUnlock { + keen::float32 backgroundSize; // Offset: 0 + keen::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::UiTexture backgroundOrnament; // Offset: 52 + keen::UiTexture ornamentHighlight; // Offset: 100 + keen::UiColor backgroundColor; // Offset: 148 + keen::UiColor highlightColor; // Offset: 156 + keen::UiColor glowRippleColor; // Offset: 164 + keen::Time lootDelay; // Offset: 176 +}; + +struct FbUiHudMessage { + keen::float32 backgroundSize; // Offset: 0 + keen::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::UiTexture backgroundOrnament; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 100 + keen::float32 badgeSize; // Offset: 108 + keen::UiColor badgeColor; // Offset: 112 + keen::UiColor glowRippleColor; // Offset: 120 + keen::Time messageDelay; // Offset: 128 + keen::Time lootDelay; // Offset: 136 +}; + +struct FbUiHudPartyHealth { + keen::float32 widgetGroupOffsetY; // Offset: 0 + keen::UiColor barFillColor; // Offset: 4 + keen::UiColor barBgColor; // Offset: 12 + keen::float2 barSize; // Offset: 20 + keen::float32 barSpacing; // Offset: 28 +}; + +struct FbUiHudServerPerformance { + keen::Time badPerformanceHintDuration; // Offset: 0 + keen::Time badPerformanceHintInterval; // Offset: 8 + keen::Time criticalPerformanceHintDuration; // Offset: 16 + keen::Time criticalPerformanceHintInterval; // Offset: 24 + keen::UiColor badPerformanceBgColor; // Offset: 32 + keen::UiColor badPerformanceTextColor; // Offset: 40 + keen::UiColor criticalPerformanceBgColor; // Offset: 48 + keen::UiColor criticalPerformanceTextColor; // Offset: 56 +}; + +struct FbUiHudOutOfBound { + keen::UiColor coverColor; // Offset: 0 + keen::UiLocaTagReference messageString; // Offset: 8 + keen::UiCharacterStyle messageStyle; // Offset: 24 + keen::UiCharacterStyle countdownStyle; // Offset: 112 +}; + +struct FbUiHudNightSpeed { + keen::UiColor bgColor; // Offset: 0 + keen::UiColor iconColor; // Offset: 8 + keen::UiTexture sleeper; // Offset: 16 + keen::UiTexture partyMember; // Offset: 64 + keen::UiTexture nightSpeed; // Offset: 112 +}; + +struct FbUiHudGameProgressSummary { + keen::Time visibleDuration; // Offset: 0 + keen::UiColor bgColor; // Offset: 8 + keen::UiColor accentColor; // Offset: 16 + keen::float32 featherWidth; // Offset: 24 + keen::float32 widgetWidth; // Offset: 28 + keen::UiColor contentTintFlame; // Offset: 32 + keen::UiColor contentTintCrafting; // Offset: 40 + keen::UiTexture illustrationFlame; // Offset: 48 + keen::UiTexture illustrationCrafting; // Offset: 96 +}; + +struct FbUiHudMusicBuff { + keen::UiTexture musicIcon; // Offset: 0 + keen::UiColor barBgColor; // Offset: 48 + keen::UiColor barFillColor; // Offset: 56 + keen::UiColor barFillEndColor; // Offset: 64 +}; + +struct FbUiHudAnimalTaming { + keen::UiTexture tamingIconEmpty; // Offset: 0 + keen::UiTexture tamingIconPending; // Offset: 48 + keen::UiTexture tamingIconFull; // Offset: 96 + keen::UiTexture tamingAttention; // Offset: 144 + keen::UiTexture tamingAlert; // Offset: 192 + keen::UiTexture tamingAlertOutline; // Offset: 240 + keen::UiColor tamingIconColor; // Offset: 288 +}; + +struct FbUiItemWheel { + keen::UiColor slotColor_idle; // Offset: 0 + keen::UiColor slotColor_selected; // Offset: 8 + keen::UiColor previewCenterColor; // Offset: 16 + keen::UiTexture background; // Offset: 24 + keen::UiTexture direction; // Offset: 72 + keen::UiTexture dot_selected; // Offset: 120 + keen::UiTexture dot_unselected; // Offset: 168 + keen::UiTexture wheelRing_complete; // Offset: 216 + keen::UiTexture wheelRing_highlight; // Offset: 264 + keen::UiTexture blurredBackgroundMask; // Offset: 312 + keen::UiColor highlightColor; // Offset: 360 + keen::UiColor stickOutOfRangeColor; // Offset: 368 +}; + +struct FbUiCompass { + keen::UiSize baseSize; // Offset: 0 + keen::UiTexture background; // Offset: 8 + keen::UiTexture northBackground; // Offset: 56 + keen::UiTexture north; // Offset: 104 + keen::UiTexture east; // Offset: 152 + keen::UiTexture south; // Offset: 200 + keen::UiTexture west; // Offset: 248 + keen::UiTexture mark; // Offset: 296 + keen::UiTexture player; // Offset: 344 + keen::UiTexture priorityMarker; // Offset: 392 + keen::UiNineSliceTexture fogTimerShape; // Offset: 440 + keen::UiColor fogMeterFill; // Offset: 504 + keen::UiColor fogMeterRange; // Offset: 512 + keen::UiColor fogMeterDrain; // Offset: 520 +}; + +struct FbUiDialog { + keen::UiColor dialogMarkerColor; // Offset: 0 + keen::UiColor floatingBubbleTint; // Offset: 8 + keen::UiColor frostedGlassTint; // Offset: 16 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiHUD { + keen::UiBorder screenPosClampingBorderDefault; // Offset: 0 + keen::UiColor widgetBackgroundColor; // Offset: 16 + keen::FbUiCursors cursors; // Offset: 24 + keen::FbUiHudPlayerStatus playerStatus; // Offset: 296 + keen::FbUiItemWheel itemWheel; // Offset: 824 + keen::FbUiHudMessage levelUp; // Offset: 1200 + keen::FbUiHudBarrierUnlock barrierUnlocked; // Offset: 1344 + keen::FbUiHudMessage doorUnlocked; // Offset: 1528 + keen::FbUiHudMessage secretUnlocked; // Offset: 1672 + keen::UiTexture quickItemBackground; // Offset: 1816 + keen::UiTexture equippedItemBackground; // Offset: 1864 + keen::FbUiHudBuildModeHint buildModeHint; // Offset: 1912 + keen::UiColor buildingZoneTooltipOutline; // Offset: 2064 + keen::FbUiHudNightSpeed nightSpeedHint; // Offset: 2072 + keen::FbUiCompass compass; // Offset: 2232 + keen::FbUiAnimatedHealthBarColors bossHealthColors; // Offset: 2760 + keen::FbUiAnimatedHealthBarColors bossStaminaColors; // Offset: 2808 + keen::UiBorder bossBarBorderThickness; // Offset: 2856 + keen::FbUiDialog dialog; // Offset: 2872 + keen::FbUiHUDSpatial spatial; // Offset: 2904 + keen::FbUiHudTopNotification notification; // Offset: 3792 + keen::FbUiHudGameProgressSummary gameProgressSummary; // Offset: 3832 + keen::FbUiHudLowHealth lowHealthVignette; // Offset: 3976 + keen::UiTexture blurVignette; // Offset: 4040 + keen::FbUiHudFreezing freezingVignette; // Offset: 4088 + keen::BlobArray freezingWarningTimes; // Offset: 4536 + keen::FbUiHudPartyHealth partyHealth; // Offset: 4544 + keen::FbUiHudOutOfBound outOfBound; // Offset: 4576 + keen::FbUiHudServerPerformance serverPerforamceHint; // Offset: 4776 + keen::FbUiHudMusicBuff musicBuff; // Offset: 4840 + keen::FbUiHudAnimalTaming animalTaming; // Offset: 4912 +}; + +struct FbUiHeadline { + keen::UiNineSliceTexture background; // Offset: 0 + keen::UiColor criticalWarningTextColor; // Offset: 64 +}; + +struct FbUiItemWheelDummy { + keen::UiTexture texture; // Offset: 0 + keen::UiTexture glow; // Offset: 48 +}; + +struct FbUiScreenDeath { + keen::UiColor backgroundColor; // Offset: 0 + keen::UiLocaTagReference normalDeathHeadline; // Offset: 8 + keen::UiLocaTagReference fogDeathHeadline; // Offset: 24 + keen::UiLocaTagReference fogDeathHint; // Offset: 40 + keen::UiLocaTagReference inventoryLossHint; // Offset: 56 + keen::UiLocaTagReference inventoryLostAllHint; // Offset: 72 +}; + +struct FbUiScreen { + keen::UiTexture titleScreenKeyArt; // Offset: 0 + keen::FbUiScreenDeath death; // Offset: 48 + keen::FbUiControlScheme controlScheme; // Offset: 136 +}; + +struct FbUiSoundsMenuGeneric { + keen::SoundContainerReference flameAltarOpen; // Offset: 0 + keen::SoundContainerReference skillTreeOpen; // Offset: 16 + keen::SoundContainerReference loreOpen; // Offset: 32 + keen::SoundContainerReference loreClose; // Offset: 48 + keen::SoundContainerReference signpostOpen; // Offset: 64 + keen::SoundContainerReference signpostClose; // Offset: 80 + keen::SoundContainerReference systemMenuOpen; // Offset: 96 + keen::SoundContainerReference open; // Offset: 112 + keen::SoundContainerReference close; // Offset: 128 + keen::SoundContainerReference back; // Offset: 144 + keen::SoundContainerReference clickNeutral; // Offset: 160 + keen::SoundContainerReference tabChange; // Offset: 176 + keen::SoundContainerReference highlightChange; // Offset: 192 + keen::SoundContainerReference entryTrigger; // Offset: 208 + keen::SoundContainerReference entryCancel; // Offset: 224 + keen::SoundContainerReference entryTriggerFailed; // Offset: 240 + keen::SoundContainerReference sideMenuFadeIn; // Offset: 256 + keen::SoundContainerReference sideMenuFadeOut; // Offset: 272 + keen::SoundContainerReference equip; // Offset: 288 + keen::SoundContainerReference unequip; // Offset: 304 + keen::SoundContainerReference columnChange; // Offset: 320 + keen::SoundContainerReference leftOpen; // Offset: 336 + keen::SoundContainerReference leftClose; // Offset: 352 + keen::SoundContainerReference rightOpen; // Offset: 368 + keen::SoundContainerReference rightClose; // Offset: 384 + keen::SoundContainerReference settingWidgetToggle; // Offset: 400 + keen::SoundContainerReference settingMenuEnter; // Offset: 416 + keen::SoundContainerReference settingMenuExit; // Offset: 432 + keen::SoundContainerReference repairItems; // Offset: 448 + keen::SoundContainerReference textEnter; // Offset: 464 + keen::SoundContainerReference textDelete; // Offset: 480 + keen::SoundContainerReference mouseClickGeneric; // Offset: 496 + keen::SoundContainerReference mouseHover; // Offset: 512 + keen::SoundContainerReference activatePersonalProgression; // Offset: 528 + keen::SoundContainerReference deactivatePersonalProgression; // Offset: 544 + keen::SoundContainerReference sliderValueChange; // Offset: 560 + keen::SoundContainerReference selectDifficulty; // Offset: 576 + keen::Time mouseHoverTimeout; // Offset: 592 +}; + +struct FbUiSoundsMenuCrafting { + keen::SoundContainerReference recipeMoveWithinEntry; // Offset: 0 + keen::SoundContainerReference highlightChange; // Offset: 16 + keen::SoundContainerReference entryTrigger; // Offset: 32 + keen::SoundContainerReference craftingSuccessful; // Offset: 48 + keen::SoundContainerReference craftingFailed; // Offset: 64 + keen::SoundContainerReference pin; // Offset: 80 + keen::SoundContainerReference unpin; // Offset: 96 + keen::SoundContainerReference pinnedRecipeCraftable; // Offset: 112 + keen::SoundContainerReference pinnedRecipeIngredientCompleted; // Offset: 128 + keen::SoundContainerReference perkUnlocked; // Offset: 144 +}; + +struct FbUiSoundsMenuJournal { + keen::SoundContainerReference openTile; // Offset: 0 +}; + +struct FbUiSoundsMenuAltar { + keen::SoundContainerReference highlightChange; // Offset: 0 + keen::SoundContainerReference entryTrigger; // Offset: 16 + keen::SoundContainerReference leave; // Offset: 32 +}; + +struct FbUiSoundsLootAquisition { + keen::SoundContainerReference common; // Offset: 0 + keen::SoundContainerReference uncommon; // Offset: 16 + keen::SoundContainerReference rare; // Offset: 32 + keen::SoundContainerReference epic; // Offset: 48 + keen::SoundContainerReference legendary; // Offset: 64 + keen::SoundContainerReference keyItem; // Offset: 80 + keen::SoundContainerReference specialLoot; // Offset: 96 + keen::SoundContainerReference npc; // Offset: 112 + keen::SoundContainerReference pinnedRecipeHint; // Offset: 128 + keen::SoundContainerReference twitchReward; // Offset: 144 +}; + +struct FbUiSoundsSkillTree { + keen::SoundContainerReference attributeIncrease; // Offset: 0 + keen::SoundContainerReference skillUnlock; // Offset: 16 + keen::SoundContainerReference skillModUnlock; // Offset: 32 + keen::SoundContainerReference passivePerkUnlock; // Offset: 48 + keen::SoundContainerReference reactivePerkUnlock; // Offset: 64 + keen::SoundContainerReference nodeFocus; // Offset: 80 + keen::SoundContainerReference zoomIn; // Offset: 96 + keen::SoundContainerReference zoomOut; // Offset: 112 +}; + +struct FbUiSoundsEventMessages { + keen::SoundContainerReference menuUpdateNotification; // Offset: 0 + keen::SoundContainerReference locationDiscovery; // Offset: 16 + keen::SoundContainerReference npcRevived; // Offset: 32 + keen::SoundContainerReference amuletUpgraded; // Offset: 48 + keen::SoundContainerReference giftingSend; // Offset: 64 + keen::SoundContainerReference giftingReceive; // Offset: 80 + keen::SoundContainerReference clueCompleted; // Offset: 96 + keen::SoundContainerReference playerLevelup; // Offset: 112 + keen::SoundContainerReference flameLevelUp; // Offset: 128 + keen::SoundContainerReference magicBarrierUnlocked; // Offset: 144 + keen::SoundContainerReference doorUnlocked; // Offset: 160 + keen::SoundContainerReference secretDoorUnlocked; // Offset: 176 + keen::SoundContainerReference allMissedQuestsCompleted; // Offset: 192 + keen::SoundContainerReference newTwitchDropUnlocked; // Offset: 208 +}; + +struct FbUiSoundsAdventureMap { + keen::SoundContainerReference waypointSet; // Offset: 0 + keen::SoundContainerReference waypointClear; // Offset: 16 + keen::SoundContainerReference waypointLocate; // Offset: 32 + keen::SoundContainerReference zoomIn; // Offset: 48 + keen::SoundContainerReference zoomOut; // Offset: 64 + keen::SoundContainerReference fastTravelTriggered; // Offset: 80 + keen::SoundContainerReference showOnMap; // Offset: 96 + keen::SoundContainerReference goToHomeBase; // Offset: 112 + keen::SoundContainerReference recenter; // Offset: 128 + keen::SoundContainerReference playerPing; // Offset: 144 +}; + +struct FbUiSoundsDialog { + keen::SoundContainerReference startDialog; // Offset: 0 + keen::SoundContainerReference changeEntry; // Offset: 16 + keen::SoundContainerReference confirmEntry; // Offset: 32 + keen::SoundContainerReference cancelEntry; // Offset: 48 + keen::SoundContainerReference revealDialogLine; // Offset: 64 +}; + +struct FbUiSoundsActionbar { + keen::SoundContainerReference cantUse; // Offset: 0 + keen::SoundContainerReference moveHighlight; // Offset: 16 + keen::SoundContainerReference cycleActionbar; // Offset: 32 +}; + +struct FbUiSoundsBackpack { + keen::SoundContainerReference inventoryFull; // Offset: 0 + keen::SoundContainerReference deleteItem; // Offset: 16 + keen::SoundContainerReference dropItemIntoSlot; // Offset: 32 + keen::SoundContainerReference dropItemIntoActionBar; // Offset: 48 + keen::SoundContainerReference grabItem; // Offset: 64 + keen::SoundContainerReference swapItems; // Offset: 80 + keen::SoundContainerReference splitStack; // Offset: 96 + keen::SoundContainerReference salvageItem; // Offset: 112 + keen::SoundContainerReference sortInventory; // Offset: 128 +}; + +struct FbUiSoundsItemWheel { + keen::SoundContainerReference open; // Offset: 0 + keen::SoundContainerReference close; // Offset: 16 + keen::SoundContainerReference changeHighlight; // Offset: 32 +}; + +struct FbUiSoundsHud { + keen::SoundContainerReference lowHealthLoop; // Offset: 0 + keen::SoundContainerReference enterFog; // Offset: 16 + keen::Time enterFogTimeout; // Offset: 32 + keen::SoundContainerReference enterDangerousFog; // Offset: 40 + keen::SoundContainerReference enterFreeze; // Offset: 56 + keen::SoundContainerReference freezeWarning; // Offset: 72 + keen::SoundContainerReference freezeResistanceDepleted; // Offset: 88 + keen::SoundContainerReference flameReminder; // Offset: 104 + keen::SoundContainerReference flameLow; // Offset: 120 + keen::SoundContainerReference flameVeryLow; // Offset: 136 + keen::SoundContainerReference flameDepleted; // Offset: 152 + keen::SoundContainerReference flameLowLoop; // Offset: 168 + keen::SoundContainerReference manaInsufficient; // Offset: 184 + keen::Time manaInsufficientTimeout; // Offset: 200 + keen::SoundContainerReference staminaInsufficient; // Offset: 208 + keen::Time staminaInsufficientTimeout; // Offset: 224 + keen::SoundContainerReference ammoChanged; // Offset: 232 + keen::SoundContainerReference buildActionFailed; // Offset: 248 + keen::Time buildActionFailedTimeout; // Offset: 264 + keen::SoundContainerReference buildUndoSuccessful; // Offset: 272 + keen::SoundContainerReference buildInvMaximize; // Offset: 288 + keen::SoundContainerReference buildInvMinimize; // Offset: 304 + keen::SoundContainerReference buildModeEnter; // Offset: 320 + keen::SoundContainerReference buildModeExit; // Offset: 336 + keen::SoundContainerReference musicBuffProgressed; // Offset: 352 +}; + +struct FbUiSoundsTitleScreen { + keen::SoundContainerReference backgroundMusic; // Offset: 0 + keen::SoundContainerReference startTrigger; // Offset: 16 +}; + +struct FbUiSounds { + keen::SoundContainerReference test; // Offset: 0 + keen::FbUiSoundsTitleScreen titleScreen; // Offset: 16 + keen::FbUiSoundsEventMessages events; // Offset: 48 + keen::FbUiSoundsMenuGeneric menu; // Offset: 272 + keen::FbUiSoundsMenuCrafting crafting; // Offset: 872 + keen::FbUiSoundsMenuJournal journal; // Offset: 1032 + keen::FbUiSoundsMenuAltar altar; // Offset: 1048 + keen::FbUiSoundsSkillTree skilltree; // Offset: 1096 + keen::FbUiSoundsLootAquisition lootGet; // Offset: 1224 + keen::FbUiSoundsAdventureMap map; // Offset: 1384 + keen::FbUiSoundsDialog dialog; // Offset: 1544 + keen::FbUiSoundsItemWheel itemWheel; // Offset: 1624 + keen::FbUiSoundsHud hud; // Offset: 1672 + keen::FbUiSoundsActionbar actionbar; // Offset: 2040 + keen::FbUiSoundsBackpack backpack; // Offset: 2088 +}; + +struct FbUiHudCharacterStyles { + keen::UiCharacterStyle celebrationMain; // Offset: 0 + keen::UiCharacterStyle celebrationLevelNumber; // Offset: 88 + keen::UiCharacterStyle specialLootMain; // Offset: 176 + keen::UiCharacterStyle specialLootSecondary; // Offset: 264 + keen::UiCharacterStyle enemyDamagePoint; // Offset: 352 + keen::UiCharacterStyle enemyDamageBonusText; // Offset: 440 + keen::UiCharacterStyle healingDamagePoint; // Offset: 528 + keen::UiCharacterStyle playerDamagePoint; // Offset: 616 + keen::UiCharacterStyle immuneDamagePoint; // Offset: 704 + keen::UiCharacterStyle restoreManaPoint; // Offset: 792 + keen::UiCharacterStyle playerName; // Offset: 880 + keen::UiCharacterStyle enemyName; // Offset: 968 + keen::UiCharacterStyle bossName; // Offset: 1056 + keen::UiCharacterStyle ammoListEntry; // Offset: 1144 + keen::UiCharacterStyle staminaInfo; // Offset: 1232 + keen::UiCharacterStyle compassMarkerDistance; // Offset: 1320 + keen::UiCharacterStyle compassWayointMessage; // Offset: 1408 + keen::UiCharacterStyle compassFogTimer; // Offset: 1496 + keen::UiCharacterStyle compassFogTypeLabel; // Offset: 1584 + keen::UiCharacterStyle compassLeaveFogWarning; // Offset: 1672 + keen::UiCharacterStyle nightSpeedHint; // Offset: 1760 +}; + +struct FbUiMenuCharacterStyles { + keen::UiCharacterStyle topTab; // Offset: 0 + keen::UiCharacterStyle header1; // Offset: 88 + keen::UiCharacterStyle header2; // Offset: 176 + keen::UiCharacterStyle header3; // Offset: 264 + keen::UiCharacterStyle buttonHint; // Offset: 352 + keen::UiCharacterStyle textfieldEmptyHint; // Offset: 440 +}; + +struct FbUiMapCharacterStyles { + keen::UiCharacterStyle playerName; // Offset: 0 + keen::UiCharacterStyle locationName; // Offset: 88 + keen::UiCharacterStyle clusterSizeNumber; // Offset: 176 + keen::UiCharacterStyle markerLabel; // Offset: 264 + keen::UiCharacterStyle tooltip; // Offset: 352 +}; + +struct FbUiFontSizes { + keen::BlobArray textScaleSteps; // Offset: 0 + keen::float32 xsmall; // Offset: 8 + keen::float32 small; // Offset: 12 + keen::float32 medium; // Offset: 16 + keen::float32 large; // Offset: 20 + keen::float32 xlarge; // Offset: 24 + keen::float32 caps_small; // Offset: 28 + keen::float32 caps_medium; // Offset: 32 + keen::float32 caps_large; // Offset: 36 + keen::float32 caps_xlarge; // Offset: 40 +}; + +struct FbUiCharacterStyles { + keen::UiCharacterStyle defaultStyle; // Offset: 0 + keen::UiCharacterStyle defaultStyleOutline; // Offset: 88 + keen::UiCharacterStyle secondaryText; // Offset: 176 + keen::UiCharacterStyle mutedItalic; // Offset: 264 + keen::UiCharacterStyle redText; // Offset: 352 + keen::UiCharacterStyle greenText; // Offset: 440 + keen::UiCharacterStyle h1; // Offset: 528 + keen::UiCharacterStyle h2; // Offset: 616 + keen::UiCharacterStyle h3; // Offset: 704 + keen::UiCharacterStyle legalText; // Offset: 792 + keen::UiCharacterStyle warning; // Offset: 880 + keen::UiCharacterStyle hyperlink; // Offset: 968 + keen::UiCharacterStyle location; // Offset: 1056 + keen::UiCharacterStyle npc; // Offset: 1144 + keen::UiCharacterStyle craftingstation; // Offset: 1232 + keen::UiCharacterStyle keyitem; // Offset: 1320 + keen::UiCharacterStyle lorename; // Offset: 1408 + keen::UiCharacterStyle impactAttribute; // Offset: 1496 + keen::UiCharacterStyle textChatSpeakerNameSelf; // Offset: 1584 + keen::UiCharacterStyle textChatSpeakerNameOther; // Offset: 1672 + keen::UiCharacterStyle textChatMessage; // Offset: 1760 + keen::FbUiHudCharacterStyles hud; // Offset: 1848 + keen::FbUiMenuCharacterStyles menu; // Offset: 3696 + keen::FbUiMapCharacterStyles map; // Offset: 4224 + keen::UiCharacterStyle keyboardLegend; // Offset: 4664 + keen::UiCharacterStyle versionWatermark; // Offset: 4752 + keen::UiCharacterStyle versionWatermarkSecondLine; // Offset: 4840 +}; + +struct FbUiParagraphStyles { + keen::UiParagraphStyle hudDefault; // Offset: 0 + keen::UiParagraphStyle test; // Offset: 28 +}; + +struct FbUiScrollingLayouts { +}; + +struct Curve { + keen::uint32 sampleCount; // Offset: 0 +}; + +typedef keen::UiVector UiPosition; + +struct UiTestTypes { + keen::string type_string; // Offset: 0 + keen::float2 type_float2; // Offset: 8 + keen::float3 type_float3; // Offset: 16 + keen::uint32 type_uint32; // Offset: 28 + keen::bool type_bool; // Offset: 32 + keen::Color type_Color; // Offset: 36 + keen::SoundContainerReference type_SoundContainerReference; // Offset: 40 + keen::Curve type_Curve; // Offset: 56 + keen::UiTexture type_UiTexture; // Offset: 60 + keen::UiPosition type_UiPosition; // Offset: 108 + keen::UiSize type_UiSize; // Offset: 116 + keen::UiColor type_UiColor; // Offset: 124 +}; + +enum class UiHorizontalAlignment { + None = 0, + Left = 1, + Center = 2, + Right = 3, +}; + +enum class UiVerticalAlignment { + None = 0, + Top = 1, + Center = 2, + Bottom = 3, +}; + +struct UiAlignment { + keen::UiHorizontalAlignment horizontal; // Offset: 0 + keen::UiVerticalAlignment vertical; // Offset: 1 +}; + +enum class GameUiTextLayoutStyle { + Floating = 0, + Wrap = 1, + Wrap_ScaleFontSizeToFit = 2, + Scroll = 3, + Scroll_FixedPixelPerSecond = 4, +}; + +struct GameUiTextParameterData { + keen::string characterStyle; // Offset: 0 + keen::string paragraphStyle; // Offset: 8 + keen::float2 offset; // Offset: 16 + keen::float2 stretch; // Offset: 24 + keen::UiAlignment alignment; // Offset: 32 + keen::UiBorder margin; // Offset: 36 + keen::UiBorder padding; // Offset: 52 + keen::Time revealTime; // Offset: 72 + keen::GameUiTextLayoutStyle textLayoutStyle; // Offset: 80 + keen::bool allowLineBreak; // Offset: 81 +}; + +enum class GameUiImageSizing { + Stretched = 0, + Fit = 1, + Cropped = 2, +}; + +struct GameUiImageParameterData { + keen::GameUiImageSizing sizing; // Offset: 0 + keen::float32 alpha; // Offset: 4 + keen::UiColor color; // Offset: 8 + keen::float2 offset; // Offset: 16 + keen::float2 stretch; // Offset: 24 + keen::UiBorder margin; // Offset: 32 + keen::UiBorder padding; // Offset: 48 +}; + +struct FbUiTestParameters { + keen::UiTestTypes _types; // Offset: 0 + keen::FbUiScrollingLayouts scrollingLayouts; // Offset: 132 + keen::GameUiTextParameterData testTextParameter; // Offset: 136 + keen::GameUiImageParameterData testImageParameter; // Offset: 224 + keen::UiNineSliceTexture testNineSliceTexture; // Offset: 288 + keen::UiBorder testNineSliceScreenBorder; // Offset: 352 + keen::Time durationTextTestTime; // Offset: 368 + keen::bool durationTextShowOnlyBiggestTimeUnit; // Offset: 376 + keen::bool durationTextUseLocalizedUnits; // Offset: 377 + keen::bool durationTextUseThirdNumber; // Offset: 378 + keen::uint8 durationTextSubSecondDigits; // Offset: 379 +}; + +struct FbUiRarityColors { + keen::UiColor undefined; // Offset: 0 + keen::UiColor common; // Offset: 8 + keen::UiColor uncommon; // Offset: 16 + keen::UiColor rare; // Offset: 24 + keen::UiColor epic; // Offset: 32 + keen::UiColor legendary; // Offset: 40 + keen::UiColor vanity; // Offset: 48 + keen::UiColor collectible; // Offset: 56 + keen::float32 vanityTextColorIntensity; // Offset: 64 +}; + +struct FbUiNetworkQualityColors { + keen::UiColor good; // Offset: 0 + keen::UiColor acceptable; // Offset: 8 + keen::UiColor bad; // Offset: 16 +}; + +struct FbUiGlobalColors { + keen::FbUiRarityColors rarity; // Offset: 0 + keen::UiColor priorityColor; // Offset: 68 + keen::UiColor priorityBgColor; // Offset: 76 + keen::UiColor attentionColor; // Offset: 84 + keen::UiColor checkmarkGreen; // Offset: 92 + keen::UiColor warningColor; // Offset: 100 + keen::UiColor warningColorBackground; // Offset: 108 + keen::UiColor warningColorFrostedGlassTint; // Offset: 116 + keen::UiColor attributeBetterColor; // Offset: 124 + keen::UiColor attributeWorseColor; // Offset: 132 + keen::FbUiNetworkQualityColors networkQuality; // Offset: 140 +}; + +struct FbUiFrostedGlassParameters { + keen::uint32 downsampleSteps; // Offset: 0 + keen::float32 sigma; // Offset: 4 + keen::ObjectReference colorGradingMap; // Offset: 8 + keen::bool colorGradeBeforeBlur; // Offset: 24 +}; + +struct FbUiStartUpLogo { + keen::UiTexture image; // Offset: 0 + keen::float32 height; // Offset: 48 + keen::SoundContainerReference sound; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 68 +}; + +struct FbUiStartUpLogoSequence { + keen::Time logoFadeDuration; // Offset: 0 + keen::Time logoIdleDuration; // Offset: 8 + keen::FbUiStartUpLogo keenLogo; // Offset: 16 + keen::FbUiStartUpLogo bmwiLogo; // Offset: 92 + keen::Time postLogoDelay; // Offset: 168 + keen::Time mainMenuFadeInDuration; // Offset: 176 +}; + +struct FbUiPreGameCharacterViews { + keen::FbUiCharacterView mainMenu; // Offset: 0 + keen::FbUiCharacterView postMainMenu; // Offset: 28 + keen::FbUiCharacterView savePortrait; // Offset: 56 +}; + +struct FbUiCustomizationHairColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationSkinColors { + keen::UiColor african_1; // Offset: 0 + keen::UiColor african_2; // Offset: 8 + keen::UiColor asian_1; // Offset: 16 + keen::UiColor caucasian_1; // Offset: 24 + keen::UiColor caucasian_2; // Offset: 32 + keen::UiColor caucasian_3; // Offset: 40 + keen::UiColor mixed_1; // Offset: 48 + keen::UiColor mixed_2; // Offset: 56 +}; + +struct FbUiCustomizationEyeColors { + keen::UiColor blue; // Offset: 0 + keen::UiColor brightBrown; // Offset: 8 + keen::UiColor brown; // Offset: 16 + keen::UiColor green; // Offset: 24 + keen::UiColor grey; // Offset: 32 +}; + +struct FbUiCustomizationEyeBrowColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationTabIcons { + keen::UiTexture iconBodytype; // Offset: 0 + keen::UiTexture iconHair; // Offset: 48 + keen::UiTexture iconBeard; // Offset: 96 + keen::UiTexture iconVoice; // Offset: 144 + keen::UiTexture iconName; // Offset: 192 + keen::UiTexture iconPlay; // Offset: 240 + keen::UiTexture iconHairColor; // Offset: 288 + keen::UiTexture iconBeardColor; // Offset: 336 + keen::UiTexture iconEyeColor; // Offset: 384 + keen::UiTexture iconEyeBrowColor; // Offset: 432 + keen::UiTexture iconSkinColor; // Offset: 480 +}; + +struct FbUiCharacterCustomization { + keen::FbUiCustomizationHairColors hairColors; // Offset: 0 + keen::FbUiCustomizationSkinColors skinColors; // Offset: 64 + keen::FbUiCustomizationEyeColors eyeColors; // Offset: 128 + keen::FbUiCustomizationEyeBrowColors eyeBrowColors; // Offset: 168 + keen::FbUiCustomizationTabIcons tabIcons; // Offset: 232 + keen::UiTexture widgetSelector; // Offset: 760 + keen::UiTexture voicePreview1; // Offset: 808 + keen::UiTexture voicePreview2; // Offset: 856 +}; + +struct FbUiPreGame { + keen::FbUiStartUpLogoSequence startUpSequence; // Offset: 0 + keen::Time startGameFadeOutDuration; // Offset: 184 + keen::UiTexture titleScreenKeyArt; // Offset: 192 + keen::UiTexture mainMenuLogo; // Offset: 240 + keen::UiBorder mainMenuPadding; // Offset: 288 + keen::float32 logoHeight; // Offset: 304 + keen::float32 backgroundScale; // Offset: 308 + keen::float32 backgroundNormalizedOffsetX; // Offset: 312 + keen::float32 backgroundNormalizedOffsetY; // Offset: 316 + keen::UiTexture mainMenuEntryHighlightBackground; // Offset: 320 + keen::UiTexture joinTileBg; // Offset: 368 + keen::UiTexture hostPublicTileBg; // Offset: 416 + keen::UiTexture privateTileBg; // Offset: 464 + keen::FbUiPreGameCharacterViews characterViews; // Offset: 512 + keen::FbUiCharacterCustomization characterCustomization; // Offset: 596 + keen::UiTexture menuEntryHighlightBackground; // Offset: 1500 + keen::UiTexture logoGPortal; // Offset: 1548 + keen::UiColor dedicatedServerColor; // Offset: 1596 + keen::UiColor friendServerColor; // Offset: 1604 +}; + +enum class FbUiCreditsItemType { + None = 0, + Title = 1, + Heading = 2, + SubHeading = 3, + Text = 4, + Image = 5, +}; + +struct FbUiCreditItemImage { + keen::BlobString identifier; // Offset: 0 + keen::UiTexture texture; // Offset: 8 + keen::UiColor color; // Offset: 56 + keen::UiSize imageSize; // Offset: 64 +}; + +struct FbUiCreditImageRepository { +}; + +struct FbUiCreditsItem { + keen::FbUiCreditsItemType itemType; // Offset: 0 + keen::string text; // Offset: 4 + keen::FbUiCreditItemImage image; // Offset: 12 +}; + +struct FbUiCreditStyle { + keen::UiCharacterStyle style; // Offset: 0 + keen::float32 fontSize; // Offset: 88 + keen::float32 topSpacer; // Offset: 92 +}; + +struct FbUiCreditStyles { + keen::FbUiCreditStyle h1; // Offset: 0 + keen::FbUiCreditStyle h2; // Offset: 96 + keen::FbUiCreditStyle h3; // Offset: 192 + keen::FbUiCreditStyle text; // Offset: 288 +}; + +struct FbUiCredits { + keen::BlobArray items; // Offset: 0 + keen::UiLocaTagReference text; // Offset: 8 + keen::UiLocaTagReference creditEndText; // Offset: 24 + keen::FbUiCreditStyles creditStyles; // Offset: 40 + keen::float32 scrollSpeed; // Offset: 424 + keen::float32 gamepadScrollSpeed; // Offset: 428 +}; + +struct FbUiKnowledgeRequirement { + keen::GameKnowledgeTrigger trigger; // Offset: 0 + keen::KnowledgeId triggerId; // Offset: 56 +}; + +struct FbUiTutorialKnowledge { + keen::FbUiKnowledgeRequirement quickbuilder; // Offset: 0 + keen::FbUiKnowledgeRequirement summoningStaff; // Offset: 60 + keen::FbUiKnowledgeRequirement crafting; // Offset: 120 + keen::FbUiKnowledgeRequirement factory; // Offset: 180 + keen::FbUiKnowledgeRequirement enhancing; // Offset: 240 + keen::FbUiKnowledgeRequirement cooking; // Offset: 300 + keen::FbUiKnowledgeRequirement actionbar; // Offset: 360 + keen::FbUiKnowledgeRequirement storage; // Offset: 420 + keen::FbUiKnowledgeRequirement taming; // Offset: 480 + keen::FbUiKnowledgeRequirement happyNpcRequirement; // Offset: 540 +}; + +struct FbUiKnowledge { + keen::FbUiTutorialKnowledge tutorial; // Offset: 0 +}; + +struct SystemErrorMessages { + keen::UiLocaTagReference waitingForProcess; // Offset: 0 + keen::UiLocaTagReference noInputDevice; // Offset: 16 + keen::UiLocaTagReference connectFailed; // Offset: 32 + keen::UiLocaTagReference connectionLost; // Offset: 48 + keen::UiLocaTagReference newVersionRequired; // Offset: 64 + keen::UiLocaTagReference playerNotSignedIn; // Offset: 80 + keen::UiLocaTagReference playerNoPrivileges; // Offset: 96 + keen::UiLocaTagReference playerNoMultiplayerEntitlement; // Offset: 112 + keen::UiLocaTagReference createGameFailed; // Offset: 128 + keen::UiLocaTagReference joinGameFailed; // Offset: 144 + keen::UiLocaTagReference joinGameFailed_NotFound; // Offset: 160 + keen::UiLocaTagReference joinGameFailed_Full; // Offset: 176 + keen::UiLocaTagReference joinGameFailed_Reserved; // Offset: 192 + keen::UiLocaTagReference joinGameFailed_WrongPassword; // Offset: 208 + keen::UiLocaTagReference joinGameFailed_WrongPasswordCooldown; // Offset: 224 + keen::UiLocaTagReference sessionFailed; // Offset: 240 + keen::UiLocaTagReference joinPlayerFailed; // Offset: 256 + keen::UiLocaTagReference kicked; // Offset: 272 + keen::UiLocaTagReference saveGameCorrupt; // Offset: 288 + keen::UiLocaTagReference settingsCorrupt; // Offset: 304 + keen::UiLocaTagReference eraseFailed; // Offset: 320 + keen::UiLocaTagReference notEnoughSpace; // Offset: 336 + keen::UiLocaTagReference createFailed; // Offset: 352 + keen::UiLocaTagReference readError; // Offset: 368 + keen::UiLocaTagReference writeError; // Offset: 384 +}; + +struct SystemErrorResponses { + keen::UiLocaTagReference retry; // Offset: 0 + keen::UiLocaTagReference disable; // Offset: 16 + keen::UiLocaTagReference erase; // Offset: 32 + keen::UiLocaTagReference reset; // Offset: 48 + keen::UiLocaTagReference deviceSelection; // Offset: 64 + keen::UiLocaTagReference overwrite; // Offset: 80 + keen::UiLocaTagReference cancel; // Offset: 96 + keen::UiLocaTagReference ok; // Offset: 112 +}; + +struct SystemErrorLoca { + keen::SystemErrorMessages errors; // Offset: 0 + keen::SystemErrorResponses responses; // Offset: 400 + keen::UiLocaTagReference errorTitleWarning; // Offset: 528 +}; + +enum class DefaultServerRoleType { + Guest = 0, + Friend = 1, + Admin = 2, +}; + +struct FbUiServerRoleSettings { + keen::BlobArray defaultServerRoles; // Offset: 0 + keen::BlobArray serverRoleIcons; // Offset: 8 +}; + +struct FbUiServerRole { + keen::DefaultServerRoleType type; // Offset: 0 + keen::UiLocaTagReference roleName; // Offset: 4 + keen::PlayerPermissionsMask permissions; // Offset: 20 +}; + +struct FbUiLoreSlide { + keen::UiTexture slideImage; // Offset: 0 + keen::UiLocaTagReference slideText; // Offset: 48 + keen::bool useTextBackground; // Offset: 64 + keen::UiVector startOffset; // Offset: 68 + keen::UiVector endOffset; // Offset: 76 + keen::float32 startScale; // Offset: 84 + keen::float32 endScale; // Offset: 88 + keen::float32 slideDuration; // Offset: 92 + keen::float32 textStartDelay; // Offset: 96 + keen::float32 textAnimDuration; // Offset: 100 + keen::float32 fadeInDuration; // Offset: 104 + keen::float32 fadeOutDuration; // Offset: 108 + keen::UiColor fadeInColor; // Offset: 112 + keen::UiColor fadeOutColor; // Offset: 120 +}; + +struct FbUiLogos { + keen::BlobArray creditsLogos; // Offset: 0 + keen::UiTexture enshrouded_TraditionalChinese; // Offset: 8 + keen::UiTexture enshrouded_SimplifiedChinese; // Offset: 56 + keen::UiTexture enshrouded_Japanese; // Offset: 104 + keen::UiTexture enshrouded_Korean; // Offset: 152 +}; + +struct FbUiLoreIntro { + keen::BlobArray allSlides; // Offset: 0 + keen::UiCharacterStyle textStyle; // Offset: 8 + keen::UiNineSliceTexture slideBorder; // Offset: 96 +}; + +struct UiBundle { + keen::UiTexturePreload texturePreload; // Offset: 0 + keen::BlobArray characterStyles; // Offset: 8 + keen::BlobArray paragraphStyles; // Offset: 16 +}; + +struct FbUiBundle { + keen::FbUiLocaLinks locatags; // Offset: 24 + keen::FbUiSocialLogos socialLogos; // Offset: 25392 + keen::FbUiLogos logos; // Offset: 25680 + keen::FbUiGenericIcons genericIcons; // Offset: 25880 + keen::FbUiGamepadButtonSets gamepadButtons; // Offset: 28856 + keen::FbUiKeyboardKeys keyboardKeys; // Offset: 34048 + keen::FbUiKeyboardKeyLegends keyboardKeyLegends; // Offset: 34160 + keen::FbUiMouseHints mouseHints; // Offset: 34352 + keen::FbUiPrimitives primitives; // Offset: 35024 + keen::FbUiLoadingSymbol loading; // Offset: 36256 + keen::FbUiGlobalColors globalColors; // Offset: 36268 + keen::FbUiPreGame preGame; // Offset: 36432 + keen::FbUiHUD hud; // Offset: 38048 + keen::FbUiMenu menu; // Offset: 43256 + keen::FbUiCustomization customization; // Offset: 54496 + keen::FbUiKnowledge knowledge; // Offset: 54736 + keen::FbUiItemSlot itemSlot; // Offset: 55336 + keen::FbUiBuffIcons buffIcons; // Offset: 57312 + keen::FbUiScreen screen; // Offset: 57544 + keen::FbUiHeadline headline; // Offset: 57776 + keen::FbUiFontSizes fontSizes; // Offset: 57848 + keen::FbUiCharacterStyles namedStyles; // Offset: 57892 + keen::FbUiParagraphStyles namedParagraphStyles; // Offset: 62820 + keen::FbUiSounds sounds; // Offset: 62880 + keen::FbUiTestParameters testParameters; // Offset: 65112 + keen::FbUiFrostedGlassParameters frostedGlass; // Offset: 65496 + keen::SystemErrorLoca systemErrors; // Offset: 65524 + keen::FbUiServerRoleSettings serverRoleSettings; // Offset: 66068 + keen::FbUiDifficultySettings difficultySettings; // Offset: 66088 + keen::UiTexture noRtxWarning; // Offset: 68032 + keen::FbUiCredits credits; // Offset: 68080 + keen::FbUiLoreIntro loreIntro; // Offset: 68512 + keen::BlobArray worldEvents; // Offset: 68672 +}; + +struct FbUiMap { + keen::ObjectReference scene; // Offset: 0 + keen::float32 isolineSpacing; // Offset: 16 + keen::ObjectReference baseGradient; // Offset: 20 + keen::ObjectReference isolineGradient; // Offset: 36 + keen::ObjectReference fogNoise; // Offset: 52 + keen::uint8 fogZoneBorderSdfDistance; // Offset: 68 + keen::ObjectReference fogZoneBorderGradient; // Offset: 72 + keen::ObjectReference fogZoneTextureNormal; // Offset: 88 + keen::ObjectReference fogZoneTextureDangerous; // Offset: 104 +}; + +struct FbUiTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint8 levelCount; // Offset: 4 + keen::PixelFormat format; // Offset: 5 + keen::TextureType type; // Offset: 6 + keen::ContentHash data; // Offset: 8 + keen::string debugName; // Offset: 24 +}; + +struct FbUiMapResource { + keen::float32 tileSize; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::float2 normalizedTileSize; // Offset: 12 + keen::FbUiTexture baseGradientTexture; // Offset: 20 + keen::FbUiTexture isolineGradientTexture; // Offset: 52 + keen::FbUiTexture fogZoneBorderGradientTexture; // Offset: 84 + keen::FbUiTexture fogNoiseTexture; // Offset: 116 + keen::FbUiTexture fogZoneTextureNormal; // Offset: 148 + keen::FbUiTexture fogZoneTextureDangerous; // Offset: 180 +}; + +struct FbUiMapTileResource { + keen::FbUiTexture mapTexture; // Offset: 0 +}; + +enum class FatalErrorId { + Ok = 0, + Generic = 1, + Graphics_InitializationFailed = 2, + Graphics_DriverTooOld = 3, + Graphics_NoCompatibleDeviceFound = 4, + Graphics_NotEnoughDeviceMemory = 5, + MemorySystem_InitializationFailed = 6, + MemorySystem_NotEnoughMemory = 7, + SaveData_InitalizationFailed = 8, + Online_InitializationFailed = 9, + Steam_CoreResourcePackageNotFound = 10, + Steam_NotSubscribed = 11, +}; + +struct GameBenchmarkSampleZone { + keen::string name; // Offset: 0 + keen::string valueName; // Offset: 8 + keen::Time minDuration; // Offset: 16 + keen::Time maxDuration; // Offset: 24 + keen::Time averageDuration; // Offset: 32 + keen::uint64 minValue; // Offset: 40 + keen::uint64 maxValue; // Offset: 48 + keen::uint64 averageValue; // Offset: 56 + keen::uint32 sampleCount; // Offset: 64 +}; + +struct GameBenchmarkSample { + keen::uint16 frameCount; // Offset: 0 + keen::Time sampleTime; // Offset: 8 + keen::BlobArray zones; // Offset: 16 +}; + +struct GameBenchmarkPlace { + keen::float3 position; // Offset: 0 + keen::HashKey32 instanceHash; // Offset: 12 + keen::BlobArray samples; // Offset: 16 + keen::Guid guid; // Offset: 24 +}; + +struct GameBenchmarkResource { + keen::string description; // Offset: 0 + keen::string bauPath; // Offset: 8 + keen::ContentHash hash; // Offset: 16 +}; + +struct GameBenchmarkResult { + keen::string name; // Offset: 0 + keen::string author; // Offset: 8 + keen::string machine; // Offset: 16 + keen::string engineVersion; // Offset: 24 + keen::CalendarTimeStamp date; // Offset: 32 + keen::BlobArray resources; // Offset: 40 + keen::BlobArray places; // Offset: 48 +}; + +enum class GameFrameworkWindowType { + Fixed = 0, + Resizable = 1, + Fullscreen = 2, +}; + +struct GameFrameworkGraphicsConfig { + keen::StaticArray apiName; // Offset: 0 + keen::GameFrameworkWindowType windowType; // Offset: 128 + keen::sint32 windowPosX; // Offset: 132 + keen::sint32 windowPosY; // Offset: 136 + keen::uint32 windowSizeX; // Offset: 140 + keen::uint32 windowSizeY; // Offset: 144 + keen::uint32 presentationInterval; // Offset: 148 +}; + +struct GameFrameworkConfig { + keen::GameFrameworkGraphicsConfig graphics; // Offset: 0 +}; + +enum class GameUiAxis { + Horizontal = 0, + Vertical = 1, +}; + +enum class GameUiFrameLayout { + Horizontal = 0, + Vertical = 1, + Grid = 2, +}; + +enum class GameUiScrollingSliderStyle { + Solid = 0, + Textured = 1, +}; + +enum class GameUiScrollingHotkeyFlag { + MouseWheel = 0, + Dpad = 1, + LeftStick = 2, + RightStick = 3, + PageKeys = 4, + ArrowKeys = 5, +}; + +enum class GameUiMouseDragInputFlag { + MouseLeft = 0, + MouseRight = 1, + MouseMiddle = 2, +}; + +typedef keen::Bitmask8 GameUiMouseDragInputMask; + +typedef keen::Bitmask8 GameUiScrollingKeyMask; + +struct GameUiScrollbarParameterData { + keen::GameUiAxis direction; // Offset: 0 + keen::UiColor rangeRectColor; // Offset: 4 + keen::UiColor sliderIdleColor; // Offset: 12 + keen::UiColor sliderHoverColor; // Offset: 20 + keen::UiColor sliderOutlineColor; // Offset: 28 + keen::UiNineSliceTexture rangeTexture; // Offset: 36 + keen::UiNineSliceTexture sliderTexture; // Offset: 100 + keen::UiTexture sliderGripTexture; // Offset: 164 + keen::GameUiScrollingSliderStyle sliderStyle; // Offset: 212 + keen::float32 sliderIdleWidth; // Offset: 216 + keen::float32 sliderHoverWidth; // Offset: 220 + keen::float32 baseWidth; // Offset: 224 + keen::float32 rangeTextureWidth; // Offset: 228 + keen::bool useInverseRangeRect; // Offset: 232 + keen::bool useGlobalFocus; // Offset: 233 + keen::bool enableDrag; // Offset: 234 + keen::bool enableTouchDrag; // Offset: 235 + keen::bool forceScrollbar; // Offset: 236 + keen::UiPosition offset; // Offset: 240 + keen::UiBorder padding; // Offset: 248 + keen::UiBorder sliderMargin; // Offset: 264 +}; + +struct GameUiScrollingLayoutParameterData { + keen::UiColor borderColor; // Offset: 0 + keen::UiTexture scrollHintTexture; // Offset: 8 + keen::UiBorder padding; // Offset: 56 + keen::UiAlignment scrollbarAlignment; // Offset: 72 + keen::bool showScrollHint; // Offset: 74 + keen::bool enableScrollbar; // Offset: 75 + keen::bool useNavigation; // Offset: 76 + keen::bool stealCapture; // Offset: 77 + keen::bool doScissorWhenScrolling; // Offset: 78 + keen::bool centerChildren; // Offset: 79 + keen::bool enableDrag; // Offset: 80 + keen::bool forceScrollbar; // Offset: 81 + keen::bool useGlobalFocus; // Offset: 82 + keen::bool useFillerSeperatorLineDistance; // Offset: 83 + keen::bool consumeInput; // Offset: 84 + keen::bool useAutoScrolling; // Offset: 85 + keen::float32 fillerSeperatorLineDistance; // Offset: 88 + keen::float32 spacing; // Offset: 92 + keen::GameUiScrollingKeyMask scrollingHotKeyMask; // Offset: 96 + keen::GameUiMouseDragInputMask mouseDragInputMask; // Offset: 97 + keen::GameUiScrollbarParameterData scrollBar; // Offset: 100 +}; + +struct SlotJointMapping { + keen::string head; // Offset: 0 + keen::string chest; // Offset: 8 + keen::string pelvis; // Offset: 16 + keen::string footL; // Offset: 24 + keen::string footR; // Offset: 32 + keen::string footRL; // Offset: 40 + keen::string footRR; // Offset: 48 + keen::string handR; // Offset: 56 + keen::string handL; // Offset: 64 + keen::string kneeR; // Offset: 72 + keen::string kneeL; // Offset: 80 + keen::string armL; // Offset: 88 + keen::string block; // Offset: 96 +}; + +struct ModelBase { +}; + +struct ModelHierarchy { + keen::string exportNode; // Offset: 0 + keen::float32 scale; // Offset: 8 + keen::float32 xanimScale; // Offset: 12 + keen::bool rotateY; // Offset: 16 + keen::SlotJointMapping slotJointMapping; // Offset: 20 + keen::PreviewModelArray previewModels; // Offset: 124 +}; + +struct ModelHierarchyJointData { + keen::uint32 index; // Offset: 0 + keen::string name; // Offset: 4 + keen::uint32 parentIndex; // Offset: 12 + keen::uint32 tag; // Offset: 16 + keen::Matrix43 defaultPose; // Offset: 32 + keen::bool fixPosition; // Offset: 96 +}; + +struct ModelHierarchyData { + keen::BlobArray joints; // Offset: 0 + keen::uint64 defaultPoseHash; // Offset: 8 + keen::SlotJointMapping slotJointMapping; // Offset: 16 + keen::PreviewModelArray previewModels; // Offset: 120 +}; + +struct ModelPose { + keen::BlobArray data; // Offset: 0 + keen::uint32 alignedJointCount; // Offset: 8 +}; + +struct ModelHierarchyJointDescription { + keen::BlobArray jointDescriptions; // Offset: 0 +}; + +struct ModelHierarchyResource { + keen::Guid hierarchyId; // Offset: 0 + keen::BlobArray jointNames; // Offset: 16 + keen::BlobArray joinParentIndices; // Offset: 24 + keen::BlobArray skinToJointMatrices; // Offset: 32 + keen::uint32 jointCount; // Offset: 40 + keen::ModelPose defaultPose; // Offset: 44 + keen::BlobArray defaultPoseJoints; // Offset: 56 +}; + +struct VertexAttribute { + keen::uint8 id; // Offset: 0 + keen::uint8 format; // Offset: 1 +}; + +enum class GpcVariantFlag { + Debug = 0, + Float16 = 1, +}; + +struct GpcShaderVariant { + keen::Bitmask8 mask; // Offset: 0 + keen::ContentHash code; // Offset: 4 + keen::ContentHash strippedCode; // Offset: 20 +}; + +struct GpcShaderResource { + keen::BlobArray variants; // Offset: 0 + keen::string entryPoint; // Offset: 8 +}; + +enum class GpcPrimitiveType { + TriangleList = 0, + TriangleStrip = 1, + LineList = 2, + PatchList = 3, +}; + +enum class GpcCullMode { + None = 0, + Front = 1, + Back = 2, +}; + +enum class GpcFillMode { + Solid = 0, + Wireframe = 1, +}; + +enum class GpcWindingOrder { + Ccw = 0, + Cw = 1, +}; + +enum class GpcBlendOp { + None = 0, + Add = 1, + Subtract = 2, + RevSubtract = 3, + Min = 4, + Max = 5, +}; + +enum class GpcBlendFactor { + Zero = 0, + One = 1, + SrcColor = 2, + InvSrcColor = 3, + SrcAlpha = 4, + InvSrcAlpha = 5, + DestAlpha = 6, + InvDestAlpha = 7, + DestColor = 8, + InvDestColor = 9, + SrcAlphaSat = 10, +}; + +enum class GpcComparisonFunction { + Never = 0, + Less = 1, + Equal = 2, + LessEqual = 3, + Greater = 4, + NotEqual = 5, + GreaterEqual = 6, + Always = 7, +}; + +struct GpcRasterPipelineResource { + keen::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 8 + keen::BlobArray colorTargetFormats; // Offset: 12 + keen::PixelFormat depthStencilTargetFormat; // Offset: 20 + keen::uint8 sampleCount; // Offset: 21 + keen::GpcPrimitiveType primitiveType; // Offset: 22 + keen::uint8 patchSize; // Offset: 23 + keen::GpcCullMode cullMode; // Offset: 24 + keen::GpcFillMode fillMode; // Offset: 25 + keen::GpcWindingOrder windingOrder; // Offset: 26 + keen::GpcBlendOp blendOp; // Offset: 27 + keen::GpcBlendFactor blendSourceFactor; // Offset: 28 + keen::GpcBlendFactor blendDestFactor; // Offset: 29 + keen::bool sampleShading; // Offset: 30 + keen::bool alphaToCoverage; // Offset: 31 + keen::GpcComparisonFunction depthComparisonFunction; // Offset: 32 + keen::bool depthWriteEnable; // Offset: 33 + keen::float32 constDepthBias; // Offset: 36 + keen::float32 slopeDepthBias; // Offset: 40 + keen::GpcShaderResource vsShaderCode; // Offset: 44 + keen::GpcShaderResource tcShaderCode; // Offset: 60 + keen::GpcShaderResource teShaderCode; // Offset: 76 + keen::GpcShaderResource fsShaderCode; // Offset: 92 +}; + +struct GpcComputePipelineResource { + keen::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 8 + keen::uint3 groupSize; // Offset: 12 + keen::GpcShaderResource computeShader; // Offset: 24 +}; + +struct GpcResource { + keen::HashKey32 signatureHash; // Offset: 0 + keen::BlobArray rasterPipelines; // Offset: 4 + keen::BlobArray computePipelines; // Offset: 12 +}; + +struct GpcResourceList { + keen::string path; // Offset: 0 +}; + +typedef keen::uint32 gpu.u32; + +typedef keen::sint32 gpu.s32; + +typedef keen::float32 gpu.f32; + +typedef keen::uint32 gpu.u32_1; + +typedef keen::uint2 gpu.u32_2; + +typedef keen::uint3 gpu.u32_3; + +typedef keen::uint4 gpu.u32_4; + +typedef keen::sint32 gpu.s32_1; + +typedef keen::int2 gpu.s32_2; + +typedef keen::int3 gpu.s32_3; + +typedef keen::int4 gpu.s32_4; + +typedef keen::float32 gpu.f32_1; + +typedef keen::float2 gpu.f32_2; + +typedef keen::float3 gpu.f32_3; + +typedef keen::float4 gpu.f32_4; + +struct GraphicsMatrix43 { + keen::float4 row0; // Offset: 0 + keen::float4 row1; // Offset: 16 + keen::float4 row2; // Offset: 32 +}; + +typedef keen::GraphicsMatrix43 gpu.f32_3x4; + +struct GraphicsMatrix44 { + keen::float4 row0; // Offset: 0 + keen::float4 row1; // Offset: 16 + keen::float4 row2; // Offset: 32 + keen::float4 row3; // Offset: 48 +}; + +typedef keen::GraphicsMatrix44 gpu.f32_4x4; + +struct GraphicsDrawIndirectParameter { + keen::uint32 vertexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 vertexOffset; // Offset: 8 + keen::uint32 instanceOffset; // Offset: 12 +}; + +typedef keen::GraphicsDrawIndirectParameter gpu.DrawIndirectParameter; + +struct GraphicsDrawIndexedIndirectParameter { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 +}; + +typedef keen::GraphicsDrawIndexedIndirectParameter gpu.DrawIndexedIndirectParameter; + +struct GraphicsDispatchIndirectParameter { + keen::uint32 groupCountX; // Offset: 0 + keen::uint32 groupCountY; // Offset: 4 + keen::uint32 groupCountZ; // Offset: 8 +}; + +typedef keen::GraphicsDispatchIndirectParameter gpu.DispatchIndirectParameter; + +struct BindlessTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_uint { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSystemInformation { + keen::StaticArray description; // Offset: 0 + keen::StaticArray model; // Offset: 64 + keen::uint64 videoMemorySize; // Offset: 128 + keen::uint64 sharedMemorySize; // Offset: 136 + keen::bool hasDirectX9; // Offset: 144 + keen::bool hasDirectX11; // Offset: 145 + keen::bool hasGl1; // Offset: 146 + keen::bool hasGl2; // Offset: 147 + keen::bool hasGl3; // Offset: 148 + keen::bool hasGl4; // Offset: 149 + keen::bool hasGles2; // Offset: 150 + keen::bool hasGles3; // Offset: 151 + keen::bool hasMetal; // Offset: 152 + keen::bool hasVulkan; // Offset: 153 +}; + +struct DisplaySystemInformation { + keen::StaticArray description; // Offset: 0 + keen::uint32 gpuIndex; // Offset: 64 + keen::uint32 pixelWidth; // Offset: 68 + keen::uint32 pixelHeight; // Offset: 72 + keen::float32 aspectRatio; // Offset: 76 + keen::uint32 dpi; // Offset: 80 +}; + +struct GraphicsSystemInformation { + keen::uint32 totalPixelWidth; // Offset: 0 + keen::uint32 totalPixelHeight; // Offset: 4 + keen::uint32 gpuCount; // Offset: 8 + keen::uint32 displayCount; // Offset: 12 + keen::StaticArray gpus; // Offset: 16 + keen::StaticArray displays; // Offset: 656 +}; + +enum class GraphicsBlendOperation { + None = 0, + Add = 1, + Subtract = 2, + RevSubtract = 3, + Min = 4, + Max = 5, +}; + +enum class GraphicsBlendFactor { + Zero = 0, + One = 1, + SrcColor = 2, + InvSrcColor = 3, + SrcAlpha = 4, + InvSrcAlpha = 5, + DestAlpha = 6, + InvDestAlpha = 7, + DestColor = 8, + InvDestColor = 9, + SrcAlphaSat = 10, +}; + +enum class GraphicsFillMode { + Wireframe = 0, + Solid = 1, +}; + +enum class GraphicsCullMode { + None = 0, + Front = 1, + Back = 2, +}; + +enum class GraphicsWindingOrder { + Ccw = 0, + Cw = 1, +}; + +enum class GraphicsSamplerFilterMode { + Nearest = 0, + Linear = 1, +}; + +enum class GraphicsSamplerAddressMode { + Wrap = 0, + Mirror = 1, + Clamp = 2, +}; + +enum class GraphicsComparisonFunction { + Never = 0, + Less = 1, + Equal = 2, + LessEqual = 3, + Greater = 4, + NotEqual = 5, + GreaterEqual = 6, + Always = 7, +}; + +enum class GraphicsStencilOperation { + Keep = 0, + Zero = 1, + Replace = 2, + Increment = 3, + Decrement = 4, + IncrementWrap = 5, + DecrementWrap = 6, + Invert = 7, +}; + +enum class GraphicsColorWriteFlag { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +enum class GraphicsDeviceMemoryPriority { + Lowest = 0, + Low = 1, + Normal = 2, + High = 3, + Highest = 4, +}; + +enum class DlssQualityPreset { + MaxPerf = 0, + Balanced = 1, + MaxQuality = 2, + UltraPerformance = 3, + UltraQuality = 4, + Dlaa = 5, +}; + +struct HistogramData { + keen::BlobString id; // Offset: 0 + keen::BlobArray slots; // Offset: 8 + keen::uint32 valueCount; // Offset: 16 + keen::sint64 valueSum; // Offset: 24 + keen::sint64 minValue; // Offset: 32 + keen::sint64 maxValue; // Offset: 40 + keen::sint64 rangeStart; // Offset: 48 + keen::sint64 rangeEnd; // Offset: 56 + keen::bool isLinear; // Offset: 64 + keen::bool isTime; // Offset: 65 +}; + +struct HolisticEngineVersion { + keen::string gitHash; // Offset: 0 +}; + +enum class HolisticSceneRenderFlag { + Sdf = 0, + SdfBvh = 1, + NeutralAlbedo = 2, + OrientationCoordinateFrame = 3, + Triggers = 4, + Grid = 5, + ScatterRadii = 6, + OnlyLocalVoxels = 7, + VisualizeIbl = 8, + SolidColliders = 9, + TintSubEntities = 10, + WhiteboxModelOverlay = 11, + Cloth = 12, + ModelChunks = 13, + DisableCardClusterShadows = 14, +}; + +typedef keen::Bitmask32 HolisticSceneRenderFlags; + +enum class SceneCameraSpeed { + VerySlow = 0, + Slow = 1, + Medium = 2, + Fast = 3, + VeryFast = 4, +}; + +enum class SceneCameraSpeedBoostFactor { + X4 = 0, + X8 = 1, + X16 = 2, +}; + +struct HolisticSceneCameraSettings { + keen::SceneCameraSpeed cameraSpeed; // Offset: 0 + keen::SceneCameraSpeedBoostFactor cameraSpeedBoost; // Offset: 1 + keen::float farClip; // Offset: 4 + keen::float fovY; // Offset: 8 +}; + +struct HolisticSceneEditorLighting { + keen::float4 sunColor; // Offset: 0 + keen::float iblIntensity; // Offset: 16 + keen::float editorFixedExposure; // Offset: 20 + keen::bool forceEditorLighting; // Offset: 24 +}; + +enum class HolisticSnappingFlag { + Grid = 0, + Ground = 1, +}; + +typedef keen::Bitmask32 HolisticSnappingFlags; + +enum class HolisticSceneViewOverlay { + Camera = 0, + Environment = 1, + RenderGraph = 2, + RenderFeatures = 3, + Shading = 4, + Time = 5, + Disolve = 6, + Wind = 7, + Snapping = 8, + NonSelectableTypes = 9, + BlendShape = 10, + ColorGradient = 11, + AlbedoTintColors = 12, +}; + +typedef keen::Bitmask32 HolisticSceneViewOverlays; + +struct HolisticSceneSnappingSettings { + keen::uint32 gridSize; // Offset: 0 + keen::float32 angleStep; // Offset: 4 + keen::HolisticSnappingFlags lockedSnappingFlags; // Offset: 8 +}; + +struct HolisticOverlaySettings { + keen::HolisticSceneViewOverlays overlays; // Offset: 0 + keen::bool showOverlays; // Offset: 4 + keen::bool isNonSelectableOverlayExpanded; // Offset: 5 + keen::bool isCustomLightOverlayExpanded; // Offset: 6 + keen::StaticArray isAlbedoTintLayerOverlayExpanded; // Offset: 7 +}; + +struct HolisticSceneToolboxSettings { + keen::bool randomRotateY; // Offset: 0 + keen::bool alignToNormal; // Offset: 1 +}; + +struct HolisticPersistentSceneSettings { + keen::HolisticSceneCameraSettings camera; // Offset: 0 + keen::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::HolisticSceneSnappingSettings snapping; // Offset: 40 + keen::HolisticOverlaySettings overlaySettings; // Offset: 52 + keen::HolisticSceneToolboxSettings toolbox; // Offset: 64 +}; + +struct HolisticPersistentPreviewSettings { + keen::HolisticSceneCameraSettings camera; // Offset: 0 + keen::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::HolisticOverlaySettings overlaySettings; // Offset: 40 +}; + +struct HolisticPersistentUserSettings { + keen::HolisticPersistentSceneSettings scene; // Offset: 0 + keen::HolisticPersistentPreviewSettings preview; // Offset: 68 +}; + +struct HolisticVfxTestParameters { + keen::WorldTransform worldTransform; // Offset: 0 + keen::float3 targetPosition; // Offset: 56 +}; + +struct HolisticMapFilterCollection { +}; + +struct HolisticMapFilterDirectory { +}; + +struct HolisticMapFilter { + keen::float markerSize; // Offset: 0 + keen::Color color; // Offset: 4 + keen::bool isVisible; // Offset: 8 +}; + +struct Folder { +}; + +struct ImporterModelConfig { + keen::BlobArray parentNamePatters; // Offset: 0 + keen::BlobArray nameIncludePatters; // Offset: 8 + keen::BlobArray nameExcludePatters; // Offset: 16 +}; + +struct ImporterTemplate { +}; + +struct ImporterTemplateObject { + keen::string descriptionFormat; // Offset: 0 + keen::string type; // Offset: 8 + keen::string initialState; // Offset: 16 + keen::uint32 sortIndex; // Offset: 24 + keen::Guid containerId; // Offset: 28 +}; + +enum class ImporterAction { + Nothing = 0, +}; + +typedef keen::string SourceFileHash; + +struct ImporterFileTemplate { + keen::string extension; // Offset: 0 + keen::ImporterAction action; // Offset: 8 + keen::SourceFileHash contentHash; // Offset: 12 +}; + +struct TagCollection { +}; + +struct ObjectTagGroup { + keen::Color color; // Offset: 0 +}; + +struct ObjectTag { +}; + +typedef keen::ObjectReference TagReference; + +struct TagDirectoryContent { + keen::BlobArray tags; // Offset: 0 + keen::BlobArray groups; // Offset: 8 +}; + +enum class HolisticImporterObjectType { + Invalid = 0, + Unknown = 1, + SourceData = 2, + Image = 3, + Model = 4, + ModelHierarchy = 5, + Animation = 6, + Substance = 7, + ChunkedImage = 8, + VfxShader = 9, + VoxelObject = 10, + VoxelRoadShape = 11, + Midi = 12, + Sound = 13, + InstrumentSample = 14, + Text = 15, +}; + +struct SourceFile { + keen::SourceFileHash fileHash; // Offset: 0 + keen::HolisticImporterObjectType targetType; // Offset: 8 +}; + +typedef keen::ObjectReference SourceFileReference; + +struct SourceData { + keen::SourceFileHash dataHash; // Offset: 0 +}; + +typedef keen::ObjectReference SourceDataReference; + +struct WhiteboxTagDirectory { +}; + +struct WhiteboxTagGroup { + keen::Color color; // Offset: 0 +}; + +struct WhiteboxTag { +}; + +struct LootTagGroup { + keen::Color color; // Offset: 0 +}; + +struct LootTag { +}; + +struct DefaultLootLabelCollectionRootDirectory { +}; + +struct DefaultLootLabelCollectionDirectory { +}; + +struct DefaultLootLabelCollection { +}; + +struct DungeonRoomContextTag { + keen::bool invert; // Offset: 0 +}; + +struct DungeonRoomGroundContextTag { +}; + +struct DungeonRoomCeilingContextTag { +}; + +typedef keen::ObjectReference WhiteboxTagReference; + +typedef keen::ObjectReference WhiteboxTagGroupReference; + +struct WhiteboxTagInstance { + keen::WhiteboxTagReference tag; // Offset: 0 +}; + +typedef keen::ObjectReference LootTagReference; + +struct LootTagInstance { + keen::LootTagReference tag; // Offset: 0 + keen::float32 itemLootWeight; // Offset: 16 +}; + +struct WhiteboxTagInfo { + keen::Guid instance; // Offset: 0 + keen::WhiteboxTagReference tag; // Offset: 16 + keen::WhiteboxTagGroupReference group; // Offset: 32 +}; + +struct WhiteboxTagInheritanceInfo { + keen::Guid parentId; // Offset: 0 + keen::Guid tagGuid; // Offset: 16 +}; + +struct WhiteboxTagInheritanceList { + keen::BlobArray inheritedTags; // Offset: 0 +}; + +enum class ImageType { + _1d = 0, + _2d = 1, + _3d = 2, +}; + +enum class ImageColorSpace { + Linear = 0, + sRGB = 1, +}; + +enum class ImageContentType { + Unknown = 0, + Albedo = 1, + Normal = 2, + Opacity = 3, + Height = 4, + Roughness = 5, + Metallic = 6, + Reflectance = 7, + AmbientOcclusion = 8, + Emissive = 9, + UvDistortion = 10, +}; + +struct Image { + keen::ImageType type; // Offset: 0 + keen::BlobString slice; // Offset: 4 + keen::BlobString alphaChannel; // Offset: 12 + keen::ImageColorSpace colorSpace; // Offset: 20 + keen::ImageContentType contentType; // Offset: 24 + keen::uint32 sizeDivider; // Offset: 28 + keen::uint32 slices; // Offset: 32 + keen::uint32 sliceRows; // Offset: 36 +}; + +struct ImageInfo { + keen::uint32 width; // Offset: 0 + keen::uint32 height; // Offset: 4 + keen::uint32 depth; // Offset: 8 + keen::BlobString name; // Offset: 12 +}; + +struct ChunkedImage { + keen::uint2 tileSize; // Offset: 0 + keen::uint2 numTiles; // Offset: 8 + keen::uint2 dimension; // Offset: 16 +}; + +struct ImageColorRange { + keen::float4 averageColor; // Offset: 0 + keen::float4 minColor; // Offset: 16 + keen::float4 maxColor; // Offset: 32 +}; + +enum class ScatterImageType { + Default = 0, + Heightmap = 1, +}; + +struct ScatterImage { + keen::ScatterImageType type; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 4 +}; + +struct ScatterImageMetaData { + keen::ChunkedImage chunkedImage; // Offset: 8 +}; + +struct ScatterImageAreaMetaData { + keen::uint2 tileRangeX; // Offset: 32 + keen::uint2 tileRangeY; // Offset: 40 +}; + +struct ScatterImageLoadParameters { + keen::Guid imageGuid; // Offset: 48 + keen::uint32 channel; // Offset: 64 +}; + +struct GameKnowledgeDirectory { + keen::ObjectReference itemDirectory; // Offset: 0 + keen::ObjectReference dialogDirectory; // Offset: 16 + keen::ObjectReference recipeDirectory; // Offset: 32 + keen::ObjectReference journalDirectory; // Offset: 48 +}; + +struct GameKnowledgeSubDirectory { +}; + +struct GameKnowledgeObjectBase { + keen::bool sendToAnalytics; // Offset: 0 +}; + +struct WorldKnowledgeObject { + keen::bool generateAdditionalPlayerKnowledge; // Offset: 1 +}; + +struct PlayerKnowledgeObject { + keen::bool unlocksSkillPoints; // Offset: 1 + keen::uint8 unlockedSkillPoints; // Offset: 2 + keen::ObjectReference experienceGain; // Offset: 4 + keen::AchievementDataReference unlockAchievement; // Offset: 20 +}; + +struct SceneKnowledgeRequirement { + keen::ecs::TemplateReference targetSubentity; // Offset: 104 +}; + +struct KnowledgeObjectInfo { + keen::KnowledgeId id; // Offset: 0 + keen::string name; // Offset: 4 + keen::bool isPlayerKnowledge; // Offset: 12 + keen::bool generateAdditionalPlayerKnowledge; // Offset: 13 + keen::bool sendToAnalytics; // Offset: 14 + keen::uint8 unlockedSkillPoints; // Offset: 15 + keen::HashKey32 experienceGainId; // Offset: 16 + keen::AchievementId achievementId; // Offset: 20 +}; + +struct KnowledgeExperienceCountInfo { + keen::BlobArray experienceObjects; // Offset: 0 +}; + +struct KnowledgeExperienceCount { + keen::HashKey32 experienceObjectId; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct KnowledgeObjectResource { + keen::KnowledgeId id; // Offset: 0 + keen::bool sendToAnalytics; // Offset: 4 +}; + +struct WorldKnowledgeObjectResource { + keen::bool hasOptionalPlayerProgression; // Offset: 8 +}; + +struct PlayerKnowledgeObjectResource { + keen::uint8 unlockedSkillPoints; // Offset: 8 + keen::HashKey32 experienceGainId; // Offset: 12 + keen::AchievementId achievementId; // Offset: 16 +}; + +struct GameKnowledgeResource { + keen::BlobArray worldKnowledge; // Offset: 0 + keen::BlobArray playerKnowledge; // Offset: 8 + keen::BlobArray dialogKnowledgeIds; // Offset: 16 + keen::BlobArray itemKnowledgeIds; // Offset: 24 +}; + +struct GameKnowledgeDbInfo { + keen::BlobArray worldKnowledgeObjects; // Offset: 0 + keen::BlobArray playerKnowledgeObjects; // Offset: 8 +}; + +struct KnowledgeQueryDirectory { + keen::ObjectReference knowledgeDirectory; // Offset: 0 + keen::ObjectReference demoKnowledge; // Offset: 16 +}; + +struct KnowledgeQuerySubDirectory { +}; + +enum class KnowledgeQueryOperator { + AND = 0, + OR = 1, + XOR = 2, +}; + +struct GameKnowledgeQuery { + keen::KnowledgeQueryOperator type; // Offset: 0 + keen::bool invert; // Offset: 1 +}; + +struct BaseKnowledgeQueryAction { + keen::bool invert; // Offset: 0 +}; + +struct KnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::ObjectReference worldKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 +}; + +struct ItemKnowledgeQueryAction { + keen::ItemKnowledgeTrigger itemKnowledge; // Offset: 1 + keen::bool worldItemKnowledge; // Offset: 2 + keen::ObjectReference item; // Offset: 4 +}; + +struct DialogKnowledgeQueryAction { + keen::ObjectReference dialogOption; // Offset: 4 +}; + +enum class NpcQueryActionType { + IsSpawned = 0, + CraftingPropPlaced = 1, + IsSheltered = 2, + SufficientComfortLevel = 3, +}; + +struct NpcQueryAction { + keen::NpcQueryActionType type; // Offset: 1 + keen::ObjectReference npc; // Offset: 4 + keen::ecs::TemplateReference npcEntity; // Offset: 20 + keen::ObjectReference requiredCraftingProp; // Offset: 36 +}; + +struct CraftingQueryAction { + keen::ObjectReference recipe; // Offset: 4 +}; + +struct PredefinedKnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::PredefinedKnowledgeTypes knowledge; // Offset: 2 +}; + +enum class CompareOperator { + GreaterThan = 0, + LessThan = 1, + Equals = 2, +}; + +struct FlameAltarCountQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct FlameAltarLevelQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct MotherFlameLevelQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct PlayerLevelQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct OtherQueryAction { + keen::ObjectReference query; // Offset: 4 +}; + +struct InventoryQueryAction { + keen::ObjectReference item; // Offset: 4 +}; + +enum class KnowledgeQueryActionType { + Knowledge = 0, + Query = 1, + Inventory = 2, + Npc = 3, + FlameAltarCount = 4, + FlameAltarLevel = 5, + MotherFlameLevel = 6, + PlayerLevel = 7, +}; + +struct KnowledgeQueryActionInfo { + keen::KnowledgeQueryActionType type; // Offset: 0 + keen::string name; // Offset: 4 + keen::KnowledgeId queryId; // Offset: 12 + keen::uint32 queryIndex; // Offset: 16 + keen::uint32 playerProgressionQueryIndex; // Offset: 20 + keen::bool invertResult; // Offset: 24 + keen::bool isPlayerAction; // Offset: 25 +}; + +enum class KnowledgeQueryType { + SimpleQuery = 0, + ANDQuery = 1, + ORQuery = 2, + XORQuery = 3, + InventoryQuery = 4, + NpcQuery = 5, + FlameAltarCountQuery = 6, + FlameAltarLevelQuery = 7, + MotherFlameLevelQuery = 8, + PlayerLevelQuery = 9, +}; + +struct GameKnowledgeQueryResourceBase { + keen::string name; // Offset: 0 + keen::KnowledgeId queryId; // Offset: 8 + keen::uint32 queryIndex; // Offset: 12 + keen::KnowledgeQueryType type; // Offset: 16 + keen::bool isPlayerQuery; // Offset: 17 + keen::bool invertResult; // Offset: 18 +}; + +struct GameKnowledgeQueryResource { + keen::bool hasOptionalPlayerProgression; // Offset: 20 + keen::BlobArray actions; // Offset: 24 +}; + +struct GameRuntimeQueryResource { + keen::ItemReference itemRef; // Offset: 20 + keen::ItemId itemId; // Offset: 36 + keen::NpcQueryActionType npcActionType; // Offset: 40 + keen::NpcId npcId; // Offset: 44 + keen::CraftingPropId craftingProp; // Offset: 48 + keen::CompareOperator compareOperation; // Offset: 52 + keen::uint16 compareValue; // Offset: 54 +}; + +struct GameKnowledgeQueryResourceDb { + keen::KnowledgeId demoKnowledgeId; // Offset: 0 + keen::uint32 playerQueryStartIndex; // Offset: 4 + keen::uint32 runtimePlayerQueryStartIndex; // Offset: 8 + keen::BlobArray queries; // Offset: 12 + keen::BlobArray runtimeQueries; // Offset: 20 +}; + +enum class RecipeKnowledgeType { + Inspect = 0, + Craft = 1, +}; + +struct GameKnowledgeQueryTriggerSubDirectory { +}; + +struct GameKnowledgeQueryTriggerDirectory { + keen::ObjectReference knowledgeQueries; // Offset: 0 +}; + +struct GameKnowledgeQueryTrigger { + keen::bool canUnlockKnowledge; // Offset: 0 + keen::bool canRemoveKnowledge; // Offset: 1 + keen::GameKnowledgeRequirement requirement; // Offset: 4 + keen::KnowledgeId queryId; // Offset: 108 + keen::BlobArray unlockKnowledge; // Offset: 112 +}; + +struct GameKnowledgeQueryTriggerResource { + keen::BlobArray worldQueries; // Offset: 0 + keen::BlobArray playerQueries; // Offset: 8 +}; + +enum class DebugKnowledgeQuerySource { + Server = 0, + Client = 1, +}; + +struct DebugServerKnowledgeMessage { + keen::uint16 changeCounter; // Offset: 0 + keen::uint16 playerIndex; // Offset: 2 + keen::bool isPlayerKnowledge; // Offset: 4 + keen::BlobArray unlockedKnowledge; // Offset: 8 +}; + +struct DebugResetKnowledgeMessage { + keen::bool isPlayerKnowledge; // Offset: 0 +}; + +struct DebugUnlockFullKnowledgeMessage { + keen::bool unlockPlayerKnowledge; // Offset: 0 +}; + +struct DebugToggleKnowledgeMessage { + keen::KnowledgeId knowledgeId; // Offset: 0 + keen::bool resultState; // Offset: 4 + keen::bool isPlayerKnowledge; // Offset: 5 + keen::uint16 playerIndex; // Offset: 6 +}; + +enum class DebugKnowledgeQueryResultType { + World = 0, + Player = 1, + RuntimeWorld = 2, + RuntimePlayer = 3, +}; + +struct DebugKnowledgeQueryResult { + keen::DebugKnowledgeQueryResultType type; // Offset: 0 + keen::uint32 queryIndex; // Offset: 4 + keen::bool isPending; // Offset: 8 + keen::bool isPendingPersonal; // Offset: 9 + keen::bool result; // Offset: 10 + keen::bool resultPersonal; // Offset: 11 +}; + +struct SceneKnowledgeOverride { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct SceneKnowledgeTriggerOverride { + keen::GameKnowledgeTrigger knowledgeTrigger; // Offset: 16 +}; + +struct SceneKnowledgeRequirementOverride { + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 16 +}; + +struct SceneKnowledgeMapMarkerOverride { + keen::GameKnowledgeRequirement hintState; // Offset: 16 + keen::GameKnowledgeRequirement visibleState; // Offset: 120 + keen::bool hasCompletedState; // Offset: 224 + keen::GameKnowledgeRequirement completedState; // Offset: 228 +}; + +enum class SceneKnowledgeOverrideType { + KnowledgeTrigger = 0, + KnowledgeQuery = 1, + MapMarker = 2, +}; + +struct SceneKnowledgeOverrideInfo { + keen::Guid entityTemplateGuid; // Offset: 0 + keen::SceneKnowledgeOverrideType type; // Offset: 16 + keen::KnowledgeId knowledgeId; // Offset: 20 + keen::KnowledgeId knowledgeId2; // Offset: 24 + keen::KnowledgeId knowledgeId3; // Offset: 28 +}; + +struct SceneKnowledgeOverrides { + keen::BlobArray knowledgeOverrides; // Offset: 0 +}; + +struct DebugKnowledgeQueryResults { + keen::BlobArray results; // Offset: 0 + keen::uint8 playerIndex; // Offset: 8 +}; + +struct LocaTagGroup { +}; + +typedef keen::Bitmask64 LocaLanguages; + +typedef keen::ObjectReference LocaCrowdinProjectReference; + +struct LocaCrowdinProject { + keen::LanguageId inputLanguage; // Offset: 0 + keen::LocaCrowdinProjectReference inputProject; // Offset: 4 + keen::LocaLanguages outputLanguages; // Offset: 24 + keen::uint64 projectId; // Offset: 32 + keen::uint64 fileId; // Offset: 40 + keen::bool onlyApproved; // Offset: 48 + keen::SourceFileReference crowdinCSV; // Offset: 52 +}; + +struct LocaTagCollection { + keen::LocaCrowdinProjectReference crowdinWritingProject; // Offset: 0 + keen::LocaCrowdinProjectReference crowdinTranslationProject; // Offset: 16 +}; + +struct LocaTagCollectionResourceLanguage { + keen::LanguageId language; // Offset: 0 + keen::ContentHash dataHash; // Offset: 4 +}; + +struct LocaTagCollectionResource { + keen::ContentHash keenglishDataHash; // Offset: 0 + keen::BlobArray languages; // Offset: 16 +}; + +enum class LocaArgumentType { + Generic = 0, + Input = 1, + Config = 2, + Balancing = 3, +}; + +struct LocaTagArgument { + keen::uint32 id; // Offset: 0 + keen::LocaArgumentType type; // Offset: 4 +}; + +struct LocaTagResource { + keen::LocaTagId id; // Offset: 0 + keen::string text; // Offset: 4 + keen::BlobArray arguments; // Offset: 12 + keen::uint32 genericArguments; // Offset: 20 +}; + +struct LocaTagCollectionResourceData { + keen::BlobArray tags; // Offset: 0 +}; + +enum class AxisAlignedDirection { + AxisAlignedDirection_NegX = 0, + AxisAlignedDirection_PosX = 1, + AxisAlignedDirection_NegY = 2, + AxisAlignedDirection_PosY = 3, + AxisAlignedDirection_NegZ = 4, + AxisAlignedDirection_PosZ = 5, + AxisAlignedDirection_Count = 6, +}; + +struct BSpline { + keen::BlobArray controlPoints; // Offset: 0 + keen::bool closed; // Offset: 8 +}; + +struct Vector4 { +}; + +struct Matrix44 { + keen::Vector4 x; // Offset: 0 + keen::Vector4 y; // Offset: 16 + keen::Vector4 z; // Offset: 32 + keen::Vector4 w; // Offset: 48 +}; + +struct Sphere { + keen::float3 center; // Offset: 0 + keen::float32 radius; // Offset: 12 +}; + +struct MemorySystemInformationBlock { + keen::StaticArray name; // Offset: 0 + keen::uint32 size; // Offset: 32 + keen::uint16 type; // Offset: 36 +}; + +struct MemorySystemInformation { + keen::uint64 totalSize; // Offset: 0 + keen::uint64 allocatedSize; // Offset: 8 + keen::uint64 freeSize; // Offset: 16 + keen::StaticArray memoryBlocks; // Offset: 24 + keen::uint32 memoryBlockCount; // Offset: 1304 +}; + +struct Midi { +}; + +enum class MidiInstrumentSampleType { + Lute = 0, + LuteChord = 1, + Flute = 2, + Harp = 3, + DounDoun = 4, + Tambourin = 5, +}; + +struct InstrumentSampleCollection { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct InstrumentSample { + keen::bool isPitched; // Offset: 0 + keen::uint8 baseNote; // Offset: 1 + keen::float32 fineTune; // Offset: 4 + keen::float32 volume; // Offset: 8 +}; + +struct SamplerInstrument { + keen::float32 volume; // Offset: 0 + keen::uint32 releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::MidiInstrumentSampleType instrument; // Offset: 9 +}; + +struct SamplerInstrumentLayer { + keen::ObjectReference sample; // Offset: 0 + keen::uint8 minNote; // Offset: 16 + keen::uint8 maxNote; // Offset: 17 + keen::uint8 minVelocity; // Offset: 18 + keen::uint8 maxVelocity; // Offset: 19 +}; + +struct InstrumentSampleData { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::BlobArray samples; // Offset: 8 +}; + +struct SamplerInstrumentResourceSample { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::uint8 minNote; // Offset: 8 + keen::uint8 maxNote; // Offset: 9 + keen::uint8 minVelocity; // Offset: 10 + keen::uint8 maxVelocity; // Offset: 11 + keen::uint32 sampleOffset; // Offset: 12 + keen::uint32 sampleLength; // Offset: 16 +}; + +struct SamplerInstrumentResource { + keen::float volume; // Offset: 0 + keen::float releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::BlobArray samples; // Offset: 12 + keen::ContentHash sampleData; // Offset: 20 + keen::MidiInstrumentSampleType instrument; // Offset: 36 +}; + +struct MidiEvent { + keen::uint32 timestamp; // Offset: 0 + keen::uint8 eventType; // Offset: 4 + keen::uint8 subType; // Offset: 5 + keen::uint8 param1; // Offset: 6 + keen::uint8 param2; // Offset: 7 +}; + +enum class MidiTrackRole { + Lead = 0, + Chord = 1, + Back = 2, +}; + +struct MidiTrack { + keen::string name; // Offset: 0 + keen::string instrumentName; // Offset: 8 + keen::MidiInstrumentSampleType instrument; // Offset: 16 + keen::MidiTrackRole role; // Offset: 17 + keen::BlobArray events; // Offset: 20 +}; + +struct MidiTimeSignature { + keen::uint8 numerator; // Offset: 0 + keen::uint8 denominator; // Offset: 1 + keen::uint8 amountOf32NotesInQN; // Offset: 2 + keen::uint8 metronomeTicksPQN; // Offset: 3 +}; + +struct MidiResource { + keen::MidiTimeSignature timeSignature; // Offset: 0 + keen::uint16 pulsesPQN; // Offset: 4 + keen::bool isSMPTE; // Offset: 6 + keen::BlobArray tracks; // Offset: 8 + keen::uint32 songDurationMS; // Offset: 16 + keen::string debugName; // Offset: 20 +}; + +typedef keen::ObjectReference MidiResourceReference; + +struct NotifierContainer { +}; + +enum class CharacterUtterance { + Invalid = 0, + Attack_Long = 1, + Attack_Short = 2, + Attack_Finisher = 3, + Attack_Chain_Finisher = 4, + Attack_Roll_Finisher = 5, + Die = 6, + Hit = 7, + Jump = 8, + Exhausted = 9, + StaminaDrain = 10, + Customization = 11, + Count = 11, +}; + +struct VoicePack { + keen::SoundContainerReference attackShort; // Offset: 0 + keen::SoundContainerReference attackLong; // Offset: 16 + keen::SoundContainerReference attackFinisher; // Offset: 32 + keen::SoundContainerReference attackChainFinisherLong; // Offset: 48 + keen::SoundContainerReference attackRollFinisher; // Offset: 64 + keen::SoundContainerReference die; // Offset: 80 + keen::SoundContainerReference hit; // Offset: 96 + keen::SoundContainerReference jump; // Offset: 112 + keen::SoundContainerReference exhausted; // Offset: 128 + keen::SoundContainerReference staminaDrain; // Offset: 144 + keen::SoundContainerReference customization; // Offset: 160 +}; + +struct VoicePackResource { + keen::StaticArray sound; // Offset: 0 +}; + +typedef keen::ObjectReference VoicePackResourceReference; + +struct VoicePackSubDirectory { +}; + +struct VoicePackDirectory { +}; + +struct VoicePackDirectoryResource { + keen::BlobArray voicePacks; // Offset: 0 +}; + +struct Notifier { + keen::VfxReference defaultVfx; // Offset: 0 + keen::SoundContainerReference defaultSound; // Offset: 16 + keen::CharacterUtterance playerVoice; // Offset: 32 +}; + +struct NotifierResource { + keen::ObjectReference defaultVfx; // Offset: 0 + keen::VfxUserEffectParameterDataBlock defaultVfxInitParameters; // Offset: 16 + keen::SoundContainerReference defaultSound; // Offset: 80 + keen::CharacterUtterance playerVoice; // Offset: 96 +}; + +struct NotifierEventBase { + keen::AttachmentSlot slot; // Offset: 96 + keen::ecs::Offset notifierOffset; // Offset: 100 + keen::bool attach; // Offset: 140 + keen::bool cancelFromActorSequence; // Offset: 141 +}; + +enum class FootId { + Left = 0, + Right = 1, +}; + +struct FootPassingEvent { + keen::FootId foot; // Offset: 96 +}; + +struct NotifierEvent { + keen::NotifierReference notifier; // Offset: 144 +}; + +struct VfxNotifierEvent { + keen::VfxReference vfx; // Offset: 144 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 160 +}; + +struct SfxNotifierEvent { + keen::SoundContainerReference sound; // Offset: 144 + keen::float32 noiseRange; // Offset: 160 +}; + +struct EnvironmentEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::EnvironmentEffectType environmentEffectType; // Offset: 160 + keen::float32 rayOffsetY; // Offset: 164 + keen::float32 rayLength; // Offset: 168 +}; + +struct FoleyEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::FoleyType foleyType; // Offset: 160 +}; + +struct ClothSimulationEventModel { + keen::ObjectReference model; // Offset: 0 +}; + +struct ClothSimulationEvent { + keen::ObjectReference model; // Offset: 96 + keen::float32 damping; // Offset: 112 + keen::float32 linearInertia; // Offset: 116 + keen::float32 angularInertia; // Offset: 120 + keen::float32 centrifugalInertia; // Offset: 124 + keen::float32 solverFrequency; // Offset: 128 + keen::float32 collisionFriction; // Offset: 132 + keen::float32 motionConstraintsMaxRadius; // Offset: 136 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 140 + keen::float32 gravity; // Offset: 144 + keen::BlobArray models; // Offset: 148 +}; + +struct ClothSimulationResetVelocityEvent { +}; + +struct ChainSimulationEvent { + keen::float32 damping; // Offset: 96 + keen::float32 linearInertia; // Offset: 100 + keen::float32 angularInertia; // Offset: 104 + keen::float32 centrifugalInertia; // Offset: 108 + keen::float32 collisionFriction; // Offset: 112 + keen::float32 motionConstraintRadius; // Offset: 116 + keen::float32 gravity; // Offset: 120 + keen::BlobArray models; // Offset: 124 +}; + +enum class CpuArchitecure { + Unknown = 0, + X86 = 1, + X64 = 2, + Arm7 = 3, + Count = 4, +}; + +struct CpuSystemInformation { + keen::CpuArchitecure architecture; // Offset: 0 + keen::uint32 bitCount; // Offset: 4 + keen::uint32 cpuCount; // Offset: 8 + keen::uint32 threadCount; // Offset: 12 + keen::StaticArray vendorId; // Offset: 16 + keen::StaticArray brand; // Offset: 32 + keen::bool hasSSE2; // Offset: 96 + keen::bool hasSSE42; // Offset: 97 + keen::bool hasAVX; // Offset: 98 + keen::bool hasAVX2; // Offset: 99 + keen::bool hasNeon; // Offset: 100 +}; + +enum class DeviceId { + Unknown = 0, + iPhone_1G = 1, + iPhone_3G = 2, + iPhone_3GS = 3, + iPhone_4 = 4, + iPhone_4S = 5, + iPhone_5 = 6, + iPhone_5C = 7, + iPhone_5S = 8, + iPhone_6 = 9, + iPhone_6_Plus = 10, + iPhone_6S = 11, + iPhone_6S_Plus = 12, + iPhone_SE = 13, + iPhone_7 = 14, + iPhone_7_Plus = 15, + iPhone_8 = 16, + iPhone_8_Plus = 17, + iPhone_X = 18, + iPhone_XR = 19, + iPhone_XS = 20, + iPhone_XS_Max = 21, + iPod_Touch_1G = 22, + iPod_Touch_2G = 23, + iPod_Touch_3G = 24, + iPod_Touch_4G = 25, + iPod_Touch_5G = 26, + iPod_Touch_6G = 27, + iPad = 28, + iPad_2 = 29, + iPad_3 = 30, + iPad_4 = 31, + iPad_Air = 32, + iPad_Air_2 = 33, + iPad_Mini = 34, + iPad_Mini_2G = 35, + iPad_Mini_3 = 36, + iPad_Mini_4 = 37, + iPad_Pro = 38, + iPad_Pro_LTE = 39, + iPad_Pro_9_7 = 40, + iPad_Pro_9_7_LTE = 41, + iPad_5thGen = 42, + iPad_5thGen_LTE = 43, + iPad_6thGen = 44, + iPad_6thGen_LTE = 45, + iPad_Pro_12_9_2ndGen = 46, + iPad_Pro_12_9_2ndGen_LTE = 47, + iPad_Pro_10_5 = 48, + iPad_Pro_10_5_LTE = 49, + iPad_Pro_11_0 = 50, + iPad_Pro_12_9_3rdGen = 51, + Apple_TV_2G = 52, + Apple_TV_3 = 53, + Apple_TV_4 = 54, + Apple_TV_4k = 55, + Simulator = 56, + Count = 57, +}; + +struct DeviceSystemInformation { + keen::DeviceId id; // Offset: 0 + keen::StaticArray model; // Offset: 4 + keen::StaticArray name; // Offset: 68 + keen::StaticArray macAddress; // Offset: 132 + keen::bool isRooted; // Offset: 150 +}; + +enum class OperatingSystemType { + Unknown = 0, + Windows = 1, + Linux = 2, + Android = 3, + Ios = 4, + Playstation4 = 5, + XboxOne = 6, + Count = 7, +}; + +struct OsSystemInformation { + keen::OperatingSystemType type; // Offset: 0 + keen::uint32 majorVersion; // Offset: 4 + keen::uint32 minorVersion; // Offset: 8 + keen::uint32 build; // Offset: 12 + keen::StaticArray versionString; // Offset: 16 + keen::StaticArray distribution; // Offset: 48 + keen::uint32 bitCount; // Offset: 80 +}; + +struct ProcessId { + keen::uint32 pid; // Offset: 0 +}; + +struct AtmosphereShaderData { + keen::uint32 isValid; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 + keen::float2 yToNormalizedHeight; // Offset: 8 + keen::float3 rayleighScattering; // Offset: 16 + keen::float32 invRayleighDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float32 pad3; // Offset: 44 + keen::float32 mieScattering; // Offset: 48 + keen::float32 mieExtinction; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::float32 invMieDistribution; // Offset: 60 +}; + +struct PreintegrateAtmosphereTransmittanceShaderData { + keen::float2 invTextureSize; // Offset: 0 + keen::float2 pixelToHeight; // Offset: 8 + keen::float planetRadius; // Offset: 16 + keen::float cutoffRadius; // Offset: 20 + keen::float mieExtinction; // Offset: 24 + keen::float invMieDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float invRayleighDistribution; // Offset: 44 +}; + +struct ComputeAtmosphereScatteringLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float2 texcoordToHeight; // Offset: 16 + keen::float2 pad1; // Offset: 24 + keen::float2 yToNormalizedHeight; // Offset: 32 + keen::float planetRadius; // Offset: 40 + keen::float cutoffRadius; // Offset: 44 + keen::float3 rayleighExtinction; // Offset: 48 + keen::float invRayleighDistribution; // Offset: 60 + keen::float3 rayleighScattering; // Offset: 64 + keen::float pad2; // Offset: 76 + keen::float mieExtinction; // Offset: 80 + keen::float invMieDistribution; // Offset: 84 + keen::float mieScattering; // Offset: 88 + keen::float mieG; // Offset: 92 +}; + +struct ComputeAtmosphereAmbientIlluminationLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 +}; + +struct Material { +}; + +struct BillboardMaterial { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference opacityMap; // Offset: 16 + keen::ObjectReference roughnessMap; // Offset: 32 + keen::ObjectReference reflectanceMap; // Offset: 48 + keen::ObjectReference metallicMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference translucencyMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 +}; + +enum class BillboardRfxTexture { + Opacity = 0, + Albedo = 1, + MaterialParams = 2, + Normal = 3, + Count = 4, +}; + +struct StreamedTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct StreamedTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BillboardRfxRenderMaterial { + keen::StreamedTexture2D_float opacityMap; // Offset: 0 + keen::StreamedTexture2D_float4 albedoMap; // Offset: 4 + keen::StreamedTexture2D_float4 materialParamsMap; // Offset: 8 + keen::StreamedTexture2D_float4 normalMap; // Offset: 12 +}; + +struct BrickVisibilityPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::uint32 frameId; // Offset: 76 +}; + +struct BrickDebugShadingConstants { + keen::float3 directionalLightDirection; // Offset: 0 + keen::float3 directionalLightColor; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 +}; + +struct VolumetricFogGridMaterial { + keen::float3 absorption; // Offset: 0 + keen::float3 scattering; // Offset: 16 + keen::float3 emission; // Offset: 32 +}; + +struct VolumetricFogGridCascadeShaderData { + keen::float3 origin; // Offset: 0 + keen::float32 size; // Offset: 12 + keen::int3 pixelOffset; // Offset: 16 + keen::uint32 explicitPad0; // Offset: 28 +}; + +struct VolumetricFogGridShaderData { + keen::uint32 flags; // Offset: 0 + keen::float3 origin; // Offset: 4 + keen::float3 size; // Offset: 16 + keen::uint3 topLevelMaxVoxel; // Offset: 32 + keen::VolumetricFogGridMaterial none; // Offset: 48 + keen::VolumetricFogGridMaterial dangerous; // Offset: 96 + keen::VolumetricFogGridMaterial deadly; // Offset: 144 + keen::VolumetricFogGridMaterial decorative; // Offset: 192 + keen::StaticArray cascades; // Offset: 240 +}; + +struct BrickFillGBufferConstants { + keen::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint32 layerCount; // Offset: 496 + keen::uint32 showLayerWeight; // Offset: 500 + keen::uint32 debugLayerIndex; // Offset: 504 + keen::uint2 outputSize; // Offset: 512 + keen::float2 invOutputSize; // Offset: 520 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::uint32 isMaterialDataValid; // Offset: 592 + keen::float3 cameraWorldPosition; // Offset: 596 + keen::float exposureCorrection; // Offset: 608 + keen::float time; // Offset: 612 +}; + +struct GpuCullingFrustum { + keen::float4 plane0; // Offset: 0 + keen::float4 plane1; // Offset: 16 + keen::float4 plane2; // Offset: 32 + keen::float4 plane3; // Offset: 48 + keen::float4 plane4; // Offset: 64 + keen::float4 plane5; // Offset: 80 +}; + +struct GpuOcclusionCullingShaderData { + keen::float2 depthPyramidResolution; // Offset: 0 + keen::float2 screenToDepthPyramidUvScale; // Offset: 8 + keen::float P00; // Offset: 16 + keen::float P11; // Offset: 20 + keen::float P03; // Offset: 24 + keen::float P13; // Offset: 28 + keen::float P22; // Offset: 32 + keen::float P23; // Offset: 36 + keen::float zNear; // Offset: 40 + keen::float zFar; // Offset: 44 + keen::uint orthoProjection; // Offset: 48 +}; + +struct BrickCullingShaderParameters { + keen::uint32 instanceCount; // Offset: 0 + keen::GpuCullingFrustum frustum; // Offset: 16 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 112 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 160 +}; + +struct BrickDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 firstIndex; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 firstInstance; // Offset: 16 +}; + +struct BrickSdfBakingShaderParameters { + keen::uint3 textureOffset; // Offset: 0 + keen::uint32 resolution; // Offset: 12 +}; + +struct BrickVoxelCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 brickIndex; // Offset: 4 + keen::uint2 brickData; // Offset: 8 +}; + +struct BrickVoxelDilateShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 +}; + +struct NewBrickCommandData { + keen::uint2 data; // Offset: 0 + keen::uint32 index; // Offset: 8 +}; + +struct BrickUploadShaderParameters { + keen::uint32 newBrickCount; // Offset: 0 +}; + +enum class BuildingMappingType { + Default = 0, + Wood = 1, + Roof = 2, +}; + +struct BuildingMaterialParameters { + keen::BuildingMappingType mapping; // Offset: 0 + keen::bool edgeOnlySide; // Offset: 1 + keen::BlobArray decoObjectRules; // Offset: 4 +}; + +struct BuildingMaterialParametersResource { + keen::BlobArray materials; // Offset: 0 +}; + +struct BuildingMaterials { + keen::BlobArray> materials; // Offset: 0 +}; + +struct RenderTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 + keen::string debugName; // Offset: 28 +}; + +struct BuildingMaterialLayerImages { + keen::RenderTexture emissiveMap; // Offset: 0 + keen::RenderTexture albedoMap; // Offset: 36 + keen::RenderTexture metallicMap; // Offset: 72 + keen::RenderTexture roughnessMap; // Offset: 108 + keen::RenderTexture reflectanceMap; // Offset: 144 + keen::RenderTexture normalMap; // Offset: 180 + keen::RenderTexture heightMap; // Offset: 216 + keen::RenderTexture aoMap; // Offset: 252 +}; + +struct BuildingMaterialImages { + keen::BuildingMaterialLayerImages baseSide; // Offset: 0 + keen::BuildingMaterialLayerImages baseTop; // Offset: 288 + keen::BuildingMaterialLayerImages baseBottom; // Offset: 576 + keen::BuildingMaterialLayerImages edge; // Offset: 864 + keen::BuildingMaterialLayerImages noise; // Offset: 1152 +}; + +struct BuildingMaterialBlendingMaterialLayerTextureShaderData { + keen::StreamedTexture2D_float4 emissiveMap; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 4 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 8 + keen::StreamedTexture2D_float4 albedoMap; // Offset: 12 + keen::StreamedTexture2D_float metallicMap; // Offset: 16 + keen::StreamedTexture2D_float roughnessMap; // Offset: 20 + keen::StreamedTexture2D_float reflectanceMap; // Offset: 24 + keen::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::StreamedTexture2D_float heightMap; // Offset: 32 + keen::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 tilingFactor; // Offset: 40 + keen::float32 displacementScale; // Offset: 44 + keen::float32 displacementOffset; // Offset: 48 + keen::float32 emissiveGiFactor; // Offset: 52 +}; + +struct BuildingMaterialBlendingMaterialLayerShaderData { + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData baseSideTexture; // Offset: 0 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData baseTopTexture; // Offset: 56 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData baseBottomTexture; // Offset: 112 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTexture; // Offset: 168 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTopTexture; // Offset: 224 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData noiseTexture; // Offset: 280 + keen::float32 heightBlendingRange; // Offset: 336 + keen::float32 heightBlendingRangeNoise; // Offset: 340 + keen::float32 edgeBlendingCurve; // Offset: 344 + keen::uint32 edgeOnlySide; // Offset: 348 + keen::float2 noiseBlendRange; // Offset: 352 + keen::float32 bevelRadius; // Offset: 360 + keen::uint32 isRoof; // Offset: 364 +}; + +struct RenderParameterBlock { + keen::HashKey32 typeSignatureHash; // Offset: 0 + keen::ContentHash data; // Offset: 4 + keen::BlobArray patchPoints; // Offset: 20 + keen::BlobArray textures; // Offset: 28 + keen::BlobArray samplers; // Offset: 36 + keen::string debugName; // Offset: 44 +}; + +struct BuildingMaterialBlendingResource { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 layerSizeInBytes; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::RenderParameterBlock renderingParameterBlock; // Offset: 16 + keen::BlobArray renderingImageSizeInfos; // Offset: 68 + keen::BlobArray renderingLayerImageSizeInfoStartIndices; // Offset: 76 +}; + +struct BuildingMaterialMapping { + keen::ObjectReference voxelMaterial; // Offset: 0 + keen::uint8 id; // Offset: 16 +}; + +struct BuildingMaterialPalette { +}; + +struct BuildingMaterialPalettesFolder { +}; + +typedef keen::ObjectReference BuildingMaterialPaletteId; + +enum class DecoObjectRuleType { + RoofTop = 0, + RoofTopSmall = 1, + RoofSideLeft = 2, + RoofSideRight = 3, + RoofBottom = 4, + RoofBrokenSideLeft = 5, + RoofBrokenSideRight = 6, + RoofBrokenTop = 7, + SupportBeams = 8, + MaterialEdgeTop = 9, + MaterialEdgeTopCornerOuter = 10, + MaterialEdgeBottom = 11, + MaterialEdgeBottomCornerOuter = 12, + MaterialEdgeLeft = 13, + MaterialEdgeRight = 14, + MaterialEdgeSideBoth = 15, + WallCornerOuter = 16, + WallCornerOuterSmall = 17, + WallCeilingCorner = 18, + WallCeilingCornerSmall = 19, + WallCeilingCornerOuter = 20, + WallCeilingCornerOuterSmall = 21, + WallFloorCorner = 22, + WallFloorCornerOuter = 23, + WallEndSide = 24, + VoxelEdgeSide = 25, + VoxelEdgeTop = 26, + VoxelEdgeBottom = 27, + Stairs = 28, + HangingCeilingEdge = 29, +}; + +enum class DecoObjectPartMode { + MiddleOnly = 0, + StartEndAdd = 1, + StartEndReplace = 2, +}; + +enum class DecoObjectPart { + Start = 0, + Middle = 1, + End = 2, +}; + +struct DecoObjectInstance { + keen::ObjectReference model; // Offset: 0 + keen::DecoObjectPart part; // Offset: 16 + keen::sint32 fixedOrderKey; // Offset: 20 +}; + +struct DecoObjectRule { + keen::DecoObjectRuleType rule; // Offset: 0 + keen::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::float32 density; // Offset: 48 +}; + +struct DecoObjectRuleSet { + keen::DecoObjectRuleType rule; // Offset: 0 + keen::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::float32 density; // Offset: 8 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::bool fixedOrder; // Offset: 48 + keen::BlobArray> startModels; // Offset: 52 + keen::BlobArray> middleModels; // Offset: 60 + keen::BlobArray> endModels; // Offset: 68 +}; + +struct DecoObjectRules { + keen::BlobArray rules; // Offset: 0 +}; + +struct BuildingMaterialListEntry { + keen::Guid guid; // Offset: 0 + keen::ObjectReference pbrBuildingMaterial; // Offset: 16 +}; + +struct BuildingMaterialList { + keen::BlobArray entries; // Offset: 0 +}; + +struct FFX_CACAO_Constants { + keen::float2 DepthUnpackConsts; // Offset: 0 + keen::float2 CameraTanHalfFOV; // Offset: 8 + keen::float2 NDCToViewMul; // Offset: 16 + keen::float2 NDCToViewAdd; // Offset: 24 + keen::float2 DepthBufferUVToViewMul; // Offset: 32 + keen::float2 DepthBufferUVToViewAdd; // Offset: 40 + keen::float32 EffectRadius; // Offset: 48 + keen::float32 EffectShadowStrength; // Offset: 52 + keen::float32 EffectShadowPow; // Offset: 56 + keen::float32 EffectShadowClamp; // Offset: 60 + keen::float32 EffectFadeOutMul; // Offset: 64 + keen::float32 EffectFadeOutAdd; // Offset: 68 + keen::float32 EffectHorizonAngleThreshold; // Offset: 72 + keen::float32 EffectSamplingRadiusNearLimitRec; // Offset: 76 + keen::float32 DepthPrecisionOffsetMod; // Offset: 80 + keen::float32 NegRecEffectRadius; // Offset: 84 + keen::float32 LoadCounterAvgDiv; // Offset: 88 + keen::float32 AdaptiveSampleCountLimit; // Offset: 92 + keen::float32 InvSharpness; // Offset: 96 + keen::sint32 PassIndex; // Offset: 100 + keen::float32 BilateralSigmaSquared; // Offset: 104 + keen::float32 BilateralSimilarityDistanceSigma; // Offset: 108 + keen::StaticArray PatternRotScaleMatrices; // Offset: 112 + keen::float32 DetailAOStrength; // Offset: 192 + keen::float32 Dummy0; // Offset: 196 + keen::float32 Dummy1; // Offset: 200 + keen::float32 Dummy2; // Offset: 204 + keen::float2 SSAOBufferDimensions; // Offset: 208 + keen::float2 SSAOBufferInverseDimensions; // Offset: 216 + keen::float2 DepthBufferDimensions; // Offset: 224 + keen::float2 DepthBufferInverseDimensions; // Offset: 232 + keen::int2 DepthBufferOffset; // Offset: 240 + keen::float2 PerPassFullResUVOffset; // Offset: 248 + keen::float2 OutputBufferDimensions; // Offset: 256 + keen::float2 OutputBufferInverseDimensions; // Offset: 264 + keen::float2 ImportanceMapDimensions; // Offset: 272 + keen::float2 ImportanceMapInverseDimensions; // Offset: 280 + keen::float2 DeinterleavedDepthBufferDimensions; // Offset: 288 + keen::float2 DeinterleavedDepthBufferInverseDimensions; // Offset: 296 + keen::float2 DeinterleavedDepthBufferOffset; // Offset: 304 + keen::float2 DeinterleavedDepthBufferNormalisedOffset; // Offset: 312 + keen::GraphicsMatrix44 NormalsWorldToViewspaceMatrix; // Offset: 320 +}; + +enum class VoxelChunkPassType { + DepthPrepass = 0, + GBuffer = 1, + Shadow = 2, +}; + +struct PackedShaderWorldTransform { + keen::uint3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct PackedShaderWorldPositionUniform { + keen::uint3 position; // Offset: 0 +}; + +struct VoxelChunkShaderData { + keen::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::PackedShaderWorldPositionUniform worldPosition; // Offset: 32 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float4 boundingSphere; // Offset: 96 + keen::float scale; // Offset: 112 + keen::uint triangleIndexOffset; // Offset: 116 + keen::uint triangleIndexCount; // Offset: 120 + keen::uint quadIndexOffset; // Offset: 124 + keen::uint quadIndexCount; // Offset: 128 + keen::uint vertexOffset; // Offset: 132 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 136 + keen::uint chunkletOffset; // Offset: 140 + keen::uint chunkletCount; // Offset: 144 + keen::uint chunkletVisibilityOffset; // Offset: 148 + keen::uint highlightColorPaletteIndexTransparency; // Offset: 152 + keen::uint sizeFeedbackIndex; // Offset: 156 + keen::StaticArray pipelineIndices; // Offset: 160 + keen::uint flags; // Offset: 172 +}; + +struct ShaderChunkletCullingSubView { + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 + keen::uint32 flags; // Offset: 16 + keen::float3 exclusionCircle; // Offset: 20 + keen::float3 viewDirection; // Offset: 32 + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 48 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 144 + keen::GpuOcclusionCullingShaderData occlusionData; // Offset: 192 +}; + +struct ShaderChunkletCullingPass { + keen::uint32 flags; // Offset: 0 + keen::uint32 subViewIndex; // Offset: 4 + keen::uint32 passType; // Offset: 8 +}; + +struct RenderChunkletCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2432 + keen::uint32 passCount; // Offset: 2436 + keen::uint32 jobCount; // Offset: 2440 + keen::uint32 stageIndex; // Offset: 2444 +}; + +struct CulledChunklet { + keen::uint data0; // Offset: 0 + keen::uint visibility; // Offset: 4 +}; + +struct ChunkletPrefixSumShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint stageIndex; // Offset: 4 +}; + +struct VoxelChunkArgumentsPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct RenderChunkletDrawPrepareShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint batchOffset; // Offset: 4 +}; + +struct ChunkletPipelineInfoShaderData { + keen::uint flags; // Offset: 0 +}; + +struct ChunkletDrawCommand { + keen::uint vertexCount; // Offset: 0 + keen::uint instanceCount; // Offset: 4 + keen::uint vertexOffset; // Offset: 8 + keen::uint instanceOffset; // Offset: 12 +}; + +struct ChunkletPushConstants { + keen::uint drawIndex; // Offset: 0 +}; + +struct VoxelChunkSizeFeedbackShaderParameters { + keen::float3 viewPosition; // Offset: 0 + keen::float pixelSize; // Offset: 12 + keen::uint chunkCount; // Offset: 16 +}; + +struct RenderChunklet { + keen::uint data0; // Offset: 0 +}; + +struct ChunkletCullingDebugCounters { + keen::uint culledByOrientation; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledByVisibility; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct ClusterCullingCellData { + keen::uint2 lightListCountAndOffset; // Offset: 0 + keen::uint2 decalListCountAndOffset; // Offset: 8 +}; + +struct ClusterCullingShaderData { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint3 clusterSize; // Offset: 112 + keen::uint cellLightListOffsetCounterOffset; // Offset: 124 + keen::uint cellDecalListOffsetCounterOffset; // Offset: 128 + keen::float2 linearDepthParameters; // Offset: 132 + keen::float2 tileRatio; // Offset: 144 + keen::uint pointLightCounterOffset; // Offset: 152 + keen::uint maxPointLightCount; // Offset: 156 + keen::uint decalCounterOffset; // Offset: 160 + keen::uint maxDecalCount; // Offset: 164 +}; + +struct ClusterCullingDebugPushConstants { + keen::uint2 debugImageSize; // Offset: 0 +}; + +enum class GpuCulling2StageId { + Early = 0, + Late = 1, +}; + +enum class GpuCulling2PassType { + DepthPrePass = 0, + GBuffer = 1, + Shadow = 2, + Debug = 3, + Transparent = 4, +}; + +enum class GpuCulling2PassId { + Main_DepthPrepass = 0, + Main_GBuffer = 1, + Main_Transparent = 2, + Main_Debug = 3, + Shadow_Cascade0 = 4, + Shadow_Cascade1 = 5, + Shadow_Cascade2 = 6, + Shadow_Cascade3 = 7, + Shadow_Cascade4 = 8, + Shadow_Cascade5 = 9, + Shadow_Cascade6 = 10, + Shadow_Cascade7 = 11, +}; + +struct GpuCulling2SubViewConstants { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 80 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 +}; + +struct GpuCulling2PassConstants { + keen::uint flags; // Offset: 0 + keen::uint subViewIndex; // Offset: 4 + keen::uint passType; // Offset: 8 +}; + +struct GpuCulling2ShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2640 + keen::uint subViewCount; // Offset: 2832 + keen::uint passCount; // Offset: 2836 + keen::uint visibleGroupMask; // Offset: 2840 + keen::uint isLateStage; // Offset: 2844 + keen::uint flags; // Offset: 2848 + keen::uint instanceCount; // Offset: 2852 + keen::uint batchCount; // Offset: 2856 + keen::float pixelSizeCullingBias; // Offset: 2860 + keen::uint meshCount; // Offset: 2864 + keen::uint maxCulledInstanceCount; // Offset: 2868 + keen::uint scanShaderGroupSize; // Offset: 2872 + keen::uint fixupShaderGroupSize; // Offset: 2876 + keen::PackedShaderWorldPositionUniform mainViewCameraPosition; // Offset: 2880 + keen::float mainViewPixelSize; // Offset: 2896 +}; + +struct GpuCulling2SubViewDebugCounters { + keen::uint notCulled; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledBySize; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct GpuCulling2PassDebugCounters { + keen::uint notCulled; // Offset: 0 +}; + +struct GpuCulling2Counters { + keen::uint culledInstanceCount; // Offset: 0 + keen::uint leftoverInstances; // Offset: 4 + keen::uint firstInstanceCount; // Offset: 8 +}; + +enum class GpuCulling2DispatchCommandId { + ScanInstances = 0, + FixupInstances = 1, +}; + +struct GpuCulling2DebugCounters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 220 + keen::uint culledByGroupMask; // Offset: 268 + keen::uint culledByPixelSize; // Offset: 272 +}; + +struct GpuCulling2CulledInstanceData { + keen::uint meshIndexAndBatchIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct GpuCulling2PixelQuery { + keen::uint2 position; // Offset: 0 +}; + +struct GpuCulling2PixelQueryResult { + keen::uint stageId; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint instanceDataIndex; // Offset: 8 + keen::uint meshIndexAndBatchIndex; // Offset: 12 +}; + +enum class GpuCulling2HighlightType { + None = 0, + Mesh = 1, + Model = 2, + Batch = 3, +}; + +struct GpuCulling2RenderData { + keen::GpuCulling2PixelQuery pixelQuery; // Offset: 0 + keen::GpuCulling2PixelQueryResult pixelQueryResult; // Offset: 8 + keen::GpuCulling2HighlightType highlightType; // Offset: 24 + keen::uint highlightValue; // Offset: 28 + keen::uint highlightValue2; // Offset: 32 +}; + +struct RenderMaterialMeshShaderData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint modelMaterialData; // Offset: 28 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 32 + keen::uint blendShapeVertexOffset; // Offset: 36 + keen::uint blendShapeMask; // Offset: 40 + keen::uint vertexCount; // Offset: 44 +}; + +struct RenderDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::uint32 materialMeshIndexAndLodIndex; // Offset: 20 +}; + +struct RenderDrawData { + keen::uint modelIndex; // Offset: 0 + keen::uint instanceDataIndex; // Offset: 4 + keen::uint groupMask; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct RenderModelDrawData { + keen::float4 boundingSphere; // Offset: 0 + keen::uint modelLodStartIndex; // Offset: 16 + keen::uint modelLodCount; // Offset: 20 + keen::uint hasCardClusterLod; // Offset: 24 + keen::uint sizeFeedbackIndex; // Offset: 28 + keen::StaticArray lodPixelSizes; // Offset: 32 +}; + +struct RenderModelLodDrawData { + keen::uint materialMeshStartIndex; // Offset: 0 + keen::uint materialMeshCount; // Offset: 4 + keen::uint _pad0; // Offset: 8 + keen::uint _pad1; // Offset: 12 +}; + +struct RenderMaterialMeshDrawData { + keen::uint pipelineIndex; // Offset: 0 + keen::uint indexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::int vertexOffset; // Offset: 12 +}; + +struct GpuCullingDrawCounter { + keen::uint32 offset; // Offset: 0 + keen::uint32 maxCount; // Offset: 4 +}; + +struct GpuCullingDebugCounters { + keen::uint32 notCulled; // Offset: 0 + keen::uint32 culledByVisibility; // Offset: 4 + keen::uint32 culledBySize; // Offset: 8 + keen::uint32 culledByFrustum; // Offset: 12 + keen::uint32 culledByOcclusion; // Offset: 16 + keen::uint32 culledByExclusion; // Offset: 20 +}; + +struct CullingShaderData { + keen::float3 viewPosition; // Offset: 0 + keen::int fixedLod; // Offset: 12 + keen::uint viewVisibilityMask; // Offset: 16 + keen::float pixelSize; // Offset: 20 + keen::float pixelSizeCullingBias; // Offset: 24 + keen::uint visibleGroupMask; // Offset: 28 + keen::GpuCullingFrustum frustum; // Offset: 32 + keen::float3 exclusionCircle; // Offset: 128 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 144 + keen::GraphicsMatrix44 projectionMatrix; // Offset: 192 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 256 + keen::uint drawCounterOffset; // Offset: 320 + keen::uint occlusionCullingEnabled; // Offset: 324 + keen::uint exclusionCullingEnabled; // Offset: 328 + keen::uint useLastFrameVisibility; // Offset: 332 + keen::uint cpuDrawCount; // Offset: 336 + keen::uint cullSmallObjects; // Offset: 340 + keen::float smallObjectRadius; // Offset: 344 + keen::uint forceCardClusterLod; // Offset: 348 + keen::uint useCameraCenteredSpace; // Offset: 352 + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 368 +}; + +struct UploadRenderInstancesShaderData { + keen::uint32 uploadInstanceCount; // Offset: 0 +}; + +struct DebugOcclusionCullingShaderParameters { + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::float4 viewSpaceSphere; // Offset: 64 +}; + +struct DebugOcclusionCullingResultShaderData { + keen::uint isValid; // Offset: 0 + keen::uint level; // Offset: 4 + keen::float2 rectMin; // Offset: 8 + keen::float2 rectMax; // Offset: 16 + keen::float2 uv; // Offset: 24 +}; + +enum class CurvePointTangent { + Free = 0, + Weighted = 1, + Linear = 2, +}; + +enum class CurveTangent { + Smooth = 0, + Broken = 1, +}; + +struct CurvePoint { + keen::CurveTangent tangent; // Offset: 8 + keen::CurvePointTangent pointTangent; // Offset: 9 +}; + +struct ImageDiffShaderParameters { + keen::float32 threshold; // Offset: 0 +}; + +struct DebugMagnifierShaderParameters { + keen::uint imageWidth; // Offset: 0 + keen::uint imageHeight; // Offset: 4 + keen::uint2 mousePos; // Offset: 8 + keen::float4 borderColor; // Offset: 16 + keen::float magnificationAmount; // Offset: 32 + keen::float magnifierScreenRadius; // Offset: 36 + keen::int magnifierOffsetX; // Offset: 40 + keen::int magnifierOffsetY; // Offset: 44 + keen::float brightness; // Offset: 48 + keen::float contrast; // Offset: 52 +}; + +enum class VisualizeTextureOp { + One = 0, + Zero = 1, + Copy = 2, + IntegerHashR = 3, + IntegerHashG = 4, + IntegerHashB = 5, +}; + +enum class VisualizeTextureChannel { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +struct VisualizeTextureCommandShaderData { + keen::VisualizeTextureOp op; // Offset: 0 + keen::VisualizeTextureChannel channel; // Offset: 4 + keen::uint32 scale; // Offset: 8 + keen::float power; // Offset: 12 +}; + +struct VisualizeTextureShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::StaticArray commands; // Offset: 16 +}; + +struct VisualizeOverdrawShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float scale; // Offset: 8 +}; + +struct IblVisualizationData { + keen::GraphicsMatrix44 ndcToWorldMatrix; // Offset: 0 + keen::float iblIntensity; // Offset: 64 + keen::float exposure; // Offset: 68 +}; + +enum class DecalNormalBlendMode { + Linear = 0, + DetailOriented = 1, +}; + +enum class DecalRoughnessBlendMode { + Multiply = 0, + Replace = 1, +}; + +struct Decal { + keen::bool affectShading; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 4 + keen::ObjectReference opacityMap; // Offset: 20 + keen::ObjectReference normalMap; // Offset: 36 + keen::DecalNormalBlendMode normalBlendMode; // Offset: 52 + keen::ObjectReference roughnessMap; // Offset: 56 + keen::DecalRoughnessBlendMode roughnessBlendMode; // Offset: 72 + keen::ObjectReference emissiveMap; // Offset: 76 + keen::ObjectReference emissiveAlphaMap; // Offset: 92 + keen::ObjectReference metallicMap; // Offset: 108 + keen::ObjectReference aoMap; // Offset: 124 + keen::bool affectTerrainVoxelMesh; // Offset: 140 + keen::bool affectBuildingVoxelMesh; // Offset: 141 + keen::bool affectRoofVoxelMesh; // Offset: 142 + keen::bool affectModels; // Offset: 143 + keen::bool affectSkinnedModels; // Offset: 144 + keen::bool affectBuildingDecoModels; // Offset: 145 + keen::bool affectScatterDetailModels; // Offset: 146 + keen::bool affectScattering; // Offset: 147 + keen::ObjectReference scatterScaleMap; // Offset: 148 + keen::float scatterScaleFactor; // Offset: 164 +}; + +enum class DecalLayer { + TerrainVoxelMesh = 0, + BuildingVoxelMesh = 1, + RoofVoxelMesh = 2, + StaticModel = 3, + SkinnedModel = 4, + BuildingDecoModel = 5, + ScatterDecoModel = 6, + VfxModel = 7, +}; + +typedef keen::Bitmask32 DecalLayerMask; + +struct DecalMaterialData { + keen::BindlessTexture2D_float4 albedoMap; // Offset: 0 + keen::BindlessTexture2D_float4 normalMap; // Offset: 4 + keen::BindlessTexture2D_float roughnessMap; // Offset: 8 + keen::BindlessTexture2D_float metallicMap; // Offset: 12 + keen::BindlessTexture2D_float4 emissiveMap; // Offset: 16 + keen::BindlessTexture2D_float aoMap; // Offset: 20 + keen::BindlessTexture2D_float scatterScaleMap; // Offset: 24 + keen::uint32 decalLayerMask; // Offset: 28 + keen::float scatterScaleFactor; // Offset: 32 +}; + +struct RenderDecal { + keen::RenderParameterBlock parameterBlock; // Offset: 0 +}; + +struct WeatherSurfaceMaterialData { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float frostUVScale; // Offset: 8 + keen::float frostScale; // Offset: 12 + keen::float3 frostAlbedo; // Offset: 16 + keen::float frostRoughness; // Offset: 28 + keen::float3 frostPuddleAlbedo; // Offset: 32 + keen::float frostPorosityScale; // Offset: 44 + keen::float snowVertexNormalPower; // Offset: 48 + keen::float snowVertexNormalCutoff; // Offset: 52 +}; + +struct GrassMovementData { + keen::PackedShaderWorldPositionUniform origin; // Offset: 0 + keen::float2 reciprocalSize; // Offset: 16 + keen::uint32 validData; // Offset: 24 +}; + +struct TessellatedMaterialConstants { + keen::float2 levelMapping; // Offset: 0 + keen::float32 maxLevel; // Offset: 8 +}; + +enum class RenderShaderDebugMode { + None = 0, + DiffuseColor = 1, + SpecularColor = 2, + Emissive = 3, + DiffuseResult = 4, + SpecularResult = 5, + IndirectSpecularResult = 6, + IndirectDiffuseResult = 7, + Normal = 8, + Albedo = 9, + Reflectance = 10, + Metallic = 11, + Roughness = 12, + Ao = 13, + SunVisibility = 14, + VertexColorRed = 15, + VertexColorGreen = 16, + VertexColorBlue = 17, + VertexColorAlpha = 18, + VertexColorRgb = 19, + CodeDebug = 20, + WorldSpaceTextureDebug = 21, + WorldSpaceWhiteTextureDebug = 22, + DissolveMask = 23, + TerrainMaterialLayer = 24, + Illuminance = 25, + Bloom = 26, + MipLevelMin = 27, + MipLevelMax = 28, + Displacement = 29, + DisplacementSide = 30, + DisplacementTop = 31, + DisplacementBottom = 32, + LodIndex = 33, + WorldSpaceScatteringTexture = 34, + SlopeAngle = 35, + Translucency = 36, + ObjectSpaceNormal = 37, + RawReflectance = 38, + FlagAnisotropicSpecular = 39, + FlagGiWrapShading = 40, + FlagGiAdjustNormals = 41, + FlagAoForDirectLighting = 42, + DetailScatteringFadeout = 43, + Freezing = 44, +}; + +struct RenderDebugConstants { + keen::RenderShaderDebugMode debugMode; // Offset: 0 + keen::uint32 debugNeutralAlbedo; // Offset: 4 + keen::uint32 debugTextureIndex; // Offset: 8 + keen::float32 debugTextureAlpha; // Offset: 12 + keen::float4 debugValue; // Offset: 16 +}; + +struct DynamicHeightmapSamplingShaderData { + keen::uint size; // Offset: 0 + keen::float inverseSize; // Offset: 4 + keen::int2 origin; // Offset: 8 + keen::float scale; // Offset: 16 + keen::float2 distanceFade; // Offset: 20 + keen::uint explicitPad0; // Offset: 28 +}; + +struct WeatherSampleConstants { + keen::uint flags; // Offset: 0 + keen::float2 texcoordMappingScale; // Offset: 4 + keen::float2 texcoordMappingOffset; // Offset: 16 + keen::float2 snowBorderMapping; // Offset: 24 + keen::float32 cameraPositionY; // Offset: 32 + keen::DynamicHeightmapSamplingShaderData heightMap; // Offset: 48 + keen::float3 heightMapCameraPosition; // Offset: 80 + keen::float3 frostVoxelTexcoordMappingScale; // Offset: 96 + keen::float3 frostVoxelTexcoordMappingOffset; // Offset: 112 +}; + +struct RenderLightFactors { + keen::float32 sun; // Offset: 0 + keen::float32 skyGeometrySun; // Offset: 4 + keen::float32 pointLights; // Offset: 8 + keen::float32 gi; // Offset: 12 + keen::float32 emissive; // Offset: 16 + keen::float32 exposure; // Offset: 20 + keen::float32 exposureCorrection; // Offset: 24 +}; + +struct SnowDisplacementData { + keen::PackedShaderWorldPositionUniform tileOrigin; // Offset: 0 + keen::float reciprocalSize; // Offset: 16 + keen::float rcpNormalScale; // Offset: 20 + keen::float halfWorldSize; // Offset: 24 + keen::float heightScale; // Offset: 28 + keen::uint32 validData; // Offset: 32 +}; + +struct RenderGBufferConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::float32 prevTime; // Offset: 192 + keen::GrassMovementData grassMovement; // Offset: 208 + keen::GrassMovementData grassMovementPrevious; // Offset: 240 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 272 + keen::TessellatedMaterialConstants buildingTessellation; // Offset: 288 + keen::RenderDebugConstants debugData; // Offset: 304 + keen::uint32 enableCloth; // Offset: 336 + keen::uint32 enableLavaShader; // Offset: 340 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 344 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 348 + keen::WeatherSurfaceMaterialData weatherSurfaceMaterialData; // Offset: 352 + keen::WeatherSampleConstants weather; // Offset: 416 + keen::RenderLightFactors lightFactors; // Offset: 544 + keen::uint32 blueNoiseSizeMask; // Offset: 576 + keen::uint2 blueNoiseOffset; // Offset: 580 + keen::uint32 isVoxelMaterialDataValid; // Offset: 588 + keen::float highlightAmount; // Offset: 592 + keen::float highlightIntensity; // Offset: 596 + keen::StaticArray highlightColorPaletteArray; // Offset: 608 + keen::float mipBias; // Offset: 736 + keen::uint32 useStochasticMaterialSampling; // Offset: 740 + keen::float2 cancelJitter; // Offset: 744 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 752 + keen::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 768 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 784 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 848 + keen::SnowDisplacementData snowDisplacement; // Offset: 912 +}; + +struct CascadeShadowShaderData { + keen::GraphicsMatrix43 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 48 + keen::float4 fadeParameters0; // Offset: 96 + keen::float4 fadeParameters1; // Offset: 112 +}; + +struct RenderShadowAtlasShaderData { + keen::float4 viewMatrixRowZ; // Offset: 0 + keen::float4 atlasSize; // Offset: 16 + keen::float4 cascadeCount; // Offset: 32 + keen::float4 firstCascadeDistanceFadeParameters; // Offset: 48 + keen::StaticArray cascades; // Offset: 64 +}; + +struct ForwardDirectionalLightData { + keen::float3 direction; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float pad1; // Offset: 28 +}; + +struct ForwardIblData { + keen::float4 azimuthRotationXZ; // Offset: 0 + keen::float32 specularMipLevelCount; // Offset: 16 + keen::float32 intensity; // Offset: 20 + keen::uint32 isValid; // Offset: 24 +}; + +struct Fog2ShadowVolumeTransform { + keen::StaticArray worldToCascadeMatrices; // Offset: 0 +}; + +struct Fog2ShadowVolumeSampleParameters { + keen::Fog2ShadowVolumeTransform transform; // Offset: 0 + keen::uint32 cascadeCount; // Offset: 192 + keen::float32 invCascadeCount; // Offset: 196 + keen::float32 halfPixelWidth; // Offset: 200 +}; + +struct VolumetricShadowRuntimeData { + keen::Fog2ShadowVolumeSampleParameters fog2ShadowVolumeSampleParameters; // Offset: 0 + keen::float3 directionalLightDirection; // Offset: 208 + keen::uint32 flags; // Offset: 220 + keen::float2 cloudMapTexcoordMapping; // Offset: 224 + keen::float32 pad0; // Offset: 232 + keen::float32 pad1; // Offset: 236 +}; + +struct DeferredLightingConstants { + keen::RenderLightFactors lightFactors; // Offset: 0 + keen::uint2 outputSize; // Offset: 32 + keen::float2 invOutputSize; // Offset: 40 + keen::float32 time; // Offset: 48 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 176 + keen::float3 cameraWorldPosition; // Offset: 240 + keen::float3 playerWorldPosition; // Offset: 256 + keen::float4 clearColor; // Offset: 272 + keen::RenderShadowAtlasShaderData atlasData; // Offset: 288 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 1376 + keen::AtmosphereShaderData atmosphere; // Offset: 1408 + keen::ForwardIblData iblData; // Offset: 1472 + keen::uint32 fogDisabled; // Offset: 1500 + keen::uint32 ssaoEnabled; // Offset: 1504 + keen::uint32 useAoMin; // Offset: 1508 + keen::uint32 useAoMaps; // Offset: 1512 + keen::uint32 giEnabled; // Offset: 1516 + keen::uint32 pointLightsEnabled; // Offset: 1520 + keen::uint32 useHorizonBasedSpecularOcclusion; // Offset: 1524 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1536 + keen::RenderDebugConstants debugData; // Offset: 1776 + keen::uint32 accumulateSceneBrightness; // Offset: 1808 +}; + +struct VisibilityMaterialParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 16 + keen::uint32 drawCommandBufferOffsetEarly; // Offset: 80 + keen::uint32 drawCommandBufferOffsetEarlyTessellated; // Offset: 84 + keen::uint32 drawCommandBufferOffsetLate; // Offset: 88 + keen::uint32 drawCommandBufferOffsetLateTessellated; // Offset: 92 +}; + +struct DepthOfFieldConstants { + keen::float focalLength; // Offset: 0 + keen::float focalDistance; // Offset: 4 + keen::float cocScale; // Offset: 8 + keen::float2 linearDepthParameters; // Offset: 16 + keen::float2 kernelScale; // Offset: 24 + keen::float2 sceneImagePixelSize; // Offset: 32 + keen::float2 jitterOffset; // Offset: 40 + keen::GraphicsMatrix44 invProjectionMatrix; // Offset: 48 + keen::StaticArray samplesHigh; // Offset: 112 + keen::StaticArray samplesLow; // Offset: 880 +}; + +struct DepthPyramidShaderParameters { + keen::float2 inverseOutputResolution; // Offset: 0 + keen::uint2 inputResolution; // Offset: 8 +}; + +enum class DetailScatterModelAlignmentAxis { + PlusX = 0, + PlusY = 1, +}; + +struct DetailScatterModel { + keen::DetailScatterModelAlignmentAxis alignmentAxis; // Offset: 0 + keen::bool spawnInside; // Offset: 1 + keen::bool spawnOutside; // Offset: 2 + keen::float32 alignWithNormalStrength; // Offset: 4 + keen::float32 randomRotationXStrength; // Offset: 8 + keen::float32 randomRotationYStrength; // Offset: 12 + keen::float32 randomRotationZStrength; // Offset: 16 + keen::float32 minFadeoutDistance; // Offset: 20 + keen::float32 maxFadeoutDistance; // Offset: 24 + keen::float32 minScale; // Offset: 28 + keen::float32 maxScale; // Offset: 32 + keen::float32 mapScaleStrength; // Offset: 36 + keen::float32 materialWeightScaleStrength; // Offset: 40 +}; + +struct DetailScatterInstance { + keen::ObjectReference model; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::bool onlyOnWeathered; // Offset: 20 +}; + +enum class TextureChannel { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +struct DetailScatterGroup { + keen::TextureChannel mapChannel; // Offset: 0 +}; + +struct DetailScatterLayer { + keen::ObjectReference map; // Offset: 0 + keen::float32 mapTilingSize; // Offset: 16 +}; + +struct DetailScatterLayerShaderData { + keen::BindlessTexture2D_float4 map; // Offset: 0 + keen::float32 mapTilingFactor; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::BindlessTexture2D_float edgeNoiseMap; // Offset: 16 + keen::float32 edgeNoiseTilingFactor; // Offset: 20 + keen::float32 edgeNoiseMappingFactor; // Offset: 24 + keen::uint32 pad2; // Offset: 28 + keen::uint4 modelOffset; // Offset: 32 + keen::uint4 modelCount; // Offset: 48 +}; + +struct DetailScatterModelProbabilityCutoffShaderData { + keen::float32 value; // Offset: 0 +}; + +struct DetailScatterModelShaderData { + keen::float32 minFadeoutDistance; // Offset: 0 + keen::float32 maxFadeoutDistance; // Offset: 4 + keen::float32 minScale; // Offset: 8 + keen::float32 maxScale; // Offset: 12 + keen::float32 alignWithNormalStrength; // Offset: 16 + keen::uint32 params0; // Offset: 20 + keen::uint32 params1; // Offset: 24 + keen::float32 lodDistance; // Offset: 28 +}; + +struct DetailScatterShaderData { + keen::BindlessSampler scatterMapSampler; // Offset: 0 + keen::uint32 pad0; // Offset: 4 + keen::uint32 pad1; // Offset: 8 + keen::uint32 pad2; // Offset: 12 +}; + +struct DetailScatterResource { + keen::RenderParameterBlock shaderDataParameterBlock; // Offset: 0 + keen::RenderParameterBlock layersShaderDataParameterBlock; // Offset: 52 + keen::RenderParameterBlock modelsShaderDataParameterBlock; // Offset: 104 + keen::RenderParameterBlock modelProbabilityCutoffsShaderDataParameterBlock; // Offset: 156 + keen::BlobArray> models; // Offset: 208 + keen::float largestModelRadius; // Offset: 216 +}; + +struct DissolveMaterialParameters { + keen::bool enable; // Offset: 0 + keen::float32 noiseTiling; // Offset: 4 + keen::float32 noiseFadeRange; // Offset: 8 + keen::ObjectReference noiseMap; // Offset: 12 + keen::bool enableEdgeGlow; // Offset: 28 + keen::float32 edgeWidth; // Offset: 32 + keen::Color edgeColor; // Offset: 36 +}; + +struct DynamicHeightmapFillShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 + keen::uint2 ditherPos; // Offset: 16 + keen::int2 origin; // Offset: 24 + keen::float scale; // Offset: 32 + keen::float worldTop; // Offset: 36 +}; + +struct DynamicHeightmapRasterizeTreesShaderParameters { + keen::float32 scale; // Offset: 0 +}; + +struct CollectGpuCullingTreesShaderParameters { + keen::uint drawCountBufferOffset; // Offset: 0 + keen::uint drawCommandBufferOffset; // Offset: 4 +}; + +struct FfxShadowDenoiserShaderParameters { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 reprojectionMatrix; // Offset: 128 + keen::GraphicsMatrix43 viewMatrix; // Offset: 192 + keen::float3 cameraPosition; // Offset: 240 + keen::uint2 packedSize; // Offset: 256 + keen::uint2 targetSize; // Offset: 264 + keen::float2 inverseTargetSize; // Offset: 272 + keen::uint32 isFirstFrame; // Offset: 280 + keen::uint32 pixelSize; // Offset: 284 + keen::float32 depthSigma; // Offset: 288 +}; + +struct FfxShadowDenoiserPushConstants { + keen::uint32 stepSize; // Offset: 0 +}; + +struct FogMaterialParameters { + keen::float32 absorption; // Offset: 0 + keen::Color scattering; // Offset: 4 + keen::HdrColorRgb emission; // Offset: 8 + keen::float32 density; // Offset: 24 +}; + +struct FoliageAnimationAdvancedParameters { + keen::float32 branchPhaseOffset; // Offset: 0 + keen::float32 detailFrequency; // Offset: 4 + keen::float32 edgeAmplitude; // Offset: 8 + keen::float32 branchAmplitude; // Offset: 12 +}; + +struct FoliageAnimationModelParameters { + keen::float32 assetHeightFactor; // Offset: 0 + keen::float32 globalStiffnessFactor; // Offset: 4 + keen::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 8 +}; + +struct GrassPushbackModelParameters { + keen::float32 bounceTime; // Offset: 0 + keen::uint32 bounceCount; // Offset: 4 + keen::float32 bounceDamping; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct GrassPushbackShaderParameters { + keen::float32 bounceDamping; // Offset: 0 + keen::float32 bounceFrequency; // Offset: 4 + keen::float32 oneOverBounceTime; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct FoliageAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 precomputedBendScale; // Offset: 4 + keen::float32 globalStiffnessFactor; // Offset: 8 + keen::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 12 + keen::GrassPushbackShaderParameters pushBack; // Offset: 28 +}; + +struct GrassAnimationModelParameters { + keen::float32 largeDisplacementWeight; // Offset: 0 + keen::float32 smallDisplacementWeight; // Offset: 4 +}; + +struct GrassAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 largeDisplacementWeight; // Offset: 4 + keen::float32 smallDisplacementWeight; // Offset: 8 + keen::float32 oneOverModelHeight; // Offset: 12 + keen::GrassPushbackShaderParameters pushBack; // Offset: 16 +}; + +struct ForestFogFootprintMaterial { +}; + +struct ForestFogFootprintRenderMaterial { +}; + +struct RenderPushConstants2 { + keen::uint32 drawCommandBufferOffset; // Offset: 0 + keen::uint32 isLateCullingPass; // Offset: 4 + keen::uint32 drawIndex; // Offset: 8 + keen::uint32 isRunningOnSteamDeck; // Offset: 12 +}; + +struct VfxDrawPushConstants { + keen::uint32 baseDrawIndex; // Offset: 0 +}; + +struct RenderShadowPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::GrassMovementData grassMovement; // Offset: 80 + keen::SnowDisplacementData snowDisplacement; // Offset: 112 + keen::uint32 enableCloth; // Offset: 160 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 176 + keen::TessellatedMaterialConstants buildingTessellation; // Offset: 192 + keen::uint32 blueNoiseSizeMask; // Offset: 208 + keen::uint2 blueNoiseOffset; // Offset: 212 + keen::uint32 useStochasticMaterialSampling; // Offset: 220 + keen::uint32 isVoxelMaterialDataValid; // Offset: 224 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 256 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 320 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 324 +}; + +struct RenderDepthConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::float32 prevTime; // Offset: 80 + keen::GrassMovementData grassMovement; // Offset: 96 + keen::GrassMovementData grassMovementPrevious; // Offset: 128 + keen::SnowDisplacementData snowDisplacement; // Offset: 160 + keen::uint32 enableCloth; // Offset: 208 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::TessellatedMaterialConstants buildingTessellation; // Offset: 240 + keen::float mipBias; // Offset: 256 + keen::uint32 blueNoiseSizeMask; // Offset: 260 + keen::uint2 blueNoiseOffset; // Offset: 264 + keen::uint32 useStochasticMaterialSampling; // Offset: 272 + keen::uint32 isVoxelMaterialDataValid; // Offset: 276 + keen::float2 cancelJitter; // Offset: 280 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 288 + keen::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 304 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 320 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 384 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 448 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 452 +}; + +struct RenderForwardConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 176 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::float3 cameraWorldPosition; // Offset: 256 + keen::float32 time; // Offset: 268 + keen::RenderDebugConstants debugData; // Offset: 272 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 304 + keen::RenderLightFactors lightFactors; // Offset: 336 +}; + +struct VoxelWorldShadowCascadeShaderData { + keen::GraphicsMatrix44 worldToShadowMatrix; // Offset: 0 +}; + +struct VoxelWorldShadowMapShaderData { + keen::StaticArray cascades; // Offset: 0 + keen::float2 shadowMapSize; // Offset: 128 + keen::float2 inverseShadowMapSize; // Offset: 136 + keen::uint32 isValid; // Offset: 144 +}; + +struct RenderTransparentConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::RenderDebugConstants debugData; // Offset: 192 + keen::uint32 fogDisabled; // Offset: 224 + keen::uint32 shadowsDisabled; // Offset: 228 + keen::uint32 manyLightsShadowsEnabled; // Offset: 232 + keen::uint32 measureOverdraw; // Offset: 236 + keen::uint32 isFsrEnabled; // Offset: 240 + keen::RenderShadowAtlasShaderData atlasData; // Offset: 256 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 1344 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1376 + keen::AtmosphereShaderData atmosphere; // Offset: 1616 + keen::RenderLightFactors lightFactors; // Offset: 1680 + keen::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 1712 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 1872 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 1888 +}; + +struct RenderDebugPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 64 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 96 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 336 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 352 +}; + +struct ViewSpacePositionReconstructionData { + keen::GraphicsMatrix44 screenToTargetSpaceTransform; // Offset: 0 +}; + +struct Fog2ViewVolumeTransform { + keen::float32 depthRemap; // Offset: 0 + keen::float32 invDepthRemap; // Offset: 4 +}; + +struct Fog2ViewVolumeSampleParameters { + keen::Fog2ViewVolumeTransform transform; // Offset: 0 + keen::float3 viewVolumeSize; // Offset: 16 +}; + +struct RenderForwardTransparentConstants { + keen::ViewSpacePositionReconstructionData viewSpacePositionReconstructionData; // Offset: 0 + keen::Fog2ViewVolumeSampleParameters viewVolumeSampleParameters; // Offset: 64 + keen::float2 linearDepthParameters; // Offset: 96 + keen::uint32 fogFlags; // Offset: 104 +}; + +enum class RenderModelMaterialDataType { + Invalid = 0, + GrassAnimation = 1, + FoliageAnimation = 2, +}; + +struct Fsr3UpscalerConstants { + keen::int2 iRenderSize; // Offset: 0 + keen::int2 iMaxRenderSize; // Offset: 8 + keen::int2 iDisplaySize; // Offset: 16 + keen::int2 iInputColorResourceDimensions; // Offset: 24 + keen::int2 iLumaMipDimensions; // Offset: 32 + keen::int iLumaMipLevelToUse; // Offset: 40 + keen::int iFrameIndex; // Offset: 44 + keen::float4 fDeviceToViewDepth; // Offset: 48 + keen::float2 fJitter; // Offset: 64 + keen::float2 fMotionVectorScale; // Offset: 72 + keen::float2 fDownscaleFactor; // Offset: 80 + keen::float2 fMotionVectorJitterCancellation; // Offset: 88 + keen::float fExposure; // Offset: 96 + keen::float fPreExposure; // Offset: 100 + keen::float fPreviousFramePreExposure; // Offset: 104 + keen::float fTanHalfFOV; // Offset: 108 + keen::float fJitterSequenceLength; // Offset: 112 + keen::float fDeltaTime; // Offset: 116 + keen::float fDynamicResChangeFactor; // Offset: 120 + keen::float fViewSpaceToMetersFactor; // Offset: 124 +}; + +struct Fsr3UpscalerSpdConstants { + keen::uint mips; // Offset: 0 + keen::uint numWorkGroups; // Offset: 4 + keen::uint2 workGroupOffset; // Offset: 8 + keen::uint2 renderSize; // Offset: 16 +}; + +struct Fsr3UpscalerRcasConstants { + keen::uint4 rcasConfig; // Offset: 0 +}; + +enum class GiQuality { + Performance = 0, + Balance = 1, + High = 2, + Ultra = 3, + GroundTruth = 4, +}; + +enum class GiProbeSize { + PixelCount_8 = 0, + PixelCount_16 = 1, + PixelCount_32 = 2, +}; + +enum class GiIrradianceProbeSize { + PixelCount_8 = 0, + PixelCount_12 = 1, + PixelCount_16 = 2, +}; + +enum class GiDispatchSize { + Dispatch_3x3x3 = 0, + Dispatch_7x7x7 = 1, +}; + +enum class SdfBvhVariant { + VoxelWorld = 0, + VoxelWorldAndModels = 1, +}; + +struct GiQualitySettings { + keen::GiProbeSize radianceAndDistancePixelCount; // Offset: 0 + keen::GiIrradianceProbeSize irradiancePixelCount; // Offset: 4 + keen::uint atlasSizeX; // Offset: 8 + keen::uint atlasSizeY; // Offset: 12 + keen::uint globalRayBudget; // Offset: 16 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 20 + keen::uint frustumMinRaysPerProbe; // Offset: 24 + keen::uint frustumIncreasedMinRaysPerProbe; // Offset: 28 + keen::uint frustumMaxProbeRayCount; // Offset: 32 + keen::uint frustumRayBatchSize; // Offset: 36 + keen::uint worldCacheRayBatchSize; // Offset: 40 + keen::uint worldCacheMinRaysPerProbe; // Offset: 44 + keen::uint worldCacheMaxProbeRayCount; // Offset: 48 + keen::uint ambientRayBatchSize; // Offset: 52 + keen::uint ambientMinRaysPerProbe; // Offset: 56 + keen::uint ambientMaxProbeRayCount; // Offset: 60 + keen::uint ambientFroxelDepthSliceCount; // Offset: 64 + keen::float frustumLightCacheStartDiameter; // Offset: 68 + keen::float worldCacheLightCacheStartDiameter; // Offset: 72 + keen::uint maxNeighboursSharingHistory; // Offset: 76 + keen::uint maxNeighboursSharingRays; // Offset: 80 + keen::GiDispatchSize neighbourCandidateDispatchSize; // Offset: 84 + keen::float fillAmbientProbeRayCountScale; // Offset: 88 + keen::bool fillAmbientProbesIteratively; // Offset: 92 + keen::uint minimumFilledRaysToAmbientProbes; // Offset: 96 + keen::uint prefilterRadianceLevelCount; // Offset: 100 + keen::float prefilterAngleScale; // Offset: 104 + keen::uint rayBinCascadeStartOffset; // Offset: 108 + keen::uint worldCacheRayBinCascadeStartOffset; // Offset: 112 + keen::SdfBvhVariant sdfBvhVariant; // Offset: 116 +}; + +struct GiSunLightShaderData { + keen::float3 direction0; // Offset: 0 + keen::float3 directLight0; // Offset: 16 + keen::float3 indirectLight0; // Offset: 32 + keen::float3 direction1; // Offset: 48 + keen::float3 indirectLight1; // Offset: 64 +}; + +struct GiShadowShaderData { + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1088 + keen::uint32 flags; // Offset: 1328 +}; + +struct GiProbe { + keen::float3 pushedOutPosition; // Offset: 0 + keen::float size; // Offset: 12 + keen::float probeDataQuality; // Offset: 16 + keen::uint32 probeRadianceSum; // Offset: 20 + keen::uint32 rayListStartIndexAndProbeState; // Offset: 24 + keen::uint32 rayListRayCountAndRequestedRayCount; // Offset: 28 +}; + +struct GiMovingAverageEstimatorData { + keen::float3 shortMean; // Offset: 0 + keen::float vbbr; // Offset: 12 + keen::float3 variance; // Offset: 16 + keen::float inconsistency; // Offset: 28 +}; + +struct GiMovingAverageEstimatorDataEncoded { + keen::uint4 data; // Offset: 0 +}; + +enum class GiProbeType { + FrustumProbe = 0, + WorldCacheProbe = 1, + AmbientProbe = 2, + Invalid = 3, +}; + +enum class GiRayHitType { + Terrain = 0, + Building = 1, + Sky = 2, + Invalid = 3, +}; + +struct GiRayHit { + keen::float2 octahedralNormal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 8 + keen::uint materialIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevelAndHitTypeAndRayIndex; // Offset: 28 +}; + +struct GiRayHitDecoded { + keen::float3 normal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevel; // Offset: 28 + keen::GiRayHitType hitType; // Offset: 32 + keen::uint rayIndex; // Offset: 36 + keen::uint materialIndex; // Offset: 40 +}; + +struct GiRayHitCounters { + keen::uint terrainRayCount; // Offset: 0 + keen::uint buildingRayCount; // Offset: 4 + keen::uint skyRayCount; // Offset: 8 +}; + +struct GiRayEncoded { + keen::uint4 data; // Offset: 0 +}; + +struct GiRayDecoded { + keen::float3 direction; // Offset: 0 + keen::float hitDistance; // Offset: 12 + keen::float3 radiance; // Offset: 16 +}; + +struct GiRayListData { + keen::float3 origin; // Offset: 0 + keen::uint probeIndexAndRayCount; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint rayStorageIndex; // Offset: 28 +}; + +struct GiPrepareVisualisationParameters { + keen::float3 cameraOrigin; // Offset: 0 + keen::float3 farPlaneOrigin; // Offset: 16 + keen::float3 farPlaneX; // Offset: 32 + keen::float3 farPlaneY; // Offset: 48 + keen::uint2 outputSize; // Offset: 64 +}; + +struct VoxelMaterialBlendingConstants { + keen::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint hasBakingData; // Offset: 496 + keen::uint hasSimpleWorldData; // Offset: 500 + keen::uint buildingMaterialCount; // Offset: 504 + keen::float exposureCorrection; // Offset: 508 +}; + +struct LightCacheCascadeShaderData { + keen::int3 origin; // Offset: 0 + keen::int3 scrollDelta; // Offset: 16 +}; + +struct LightCacheLookupShaderData { + keen::float3 gridOrigin; // Offset: 0 + keen::float cascadeCellStartDiameter; // Offset: 12 + keen::StaticArray cascades; // Offset: 16 +}; + +struct GiVisualisationParameters { + keen::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::AtmosphereShaderData atmosphere; // Offset: 512 + keen::GiShadowShaderData shadow; // Offset: 576 + keen::LightCacheLookupShaderData primaryLightCache; // Offset: 1920 + keen::LightCacheLookupShaderData worldCachelightCache; // Offset: 2320 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 2720 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 2848 + keen::uint2 screenSize; // Offset: 2912 + keen::float2 invScreenSize; // Offset: 2920 + keen::float3 cameraOrigin; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunDirection; // Offset: 2944 + keen::float exposure; // Offset: 2956 + keen::float exposureCorrection; // Offset: 2960 + keen::float3 farPlaneOrigin; // Offset: 2964 + keen::uint32 forceNeutralAlbedo; // Offset: 2976 + keen::float3 farPlaneX; // Offset: 2980 + keen::uint32 useWorldCache; // Offset: 2992 + keen::float3 farPlaneY; // Offset: 2996 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3008 + keen::float3 lightFactorSun; // Offset: 3012 + keen::float lightFactorEmissive; // Offset: 3024 + keen::float3 lightFactorSky; // Offset: 3028 + keen::float lightFactorGi; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 +}; + +struct GiCreateProbeDrawCommandPushConstants { + keen::uint32 vertexCount; // Offset: 0 +}; + +struct GiProbePrefilterLevels { + keen::uint probeSize; // Offset: 0 +}; + +struct GiProbeVisualisationParameters { + keen::StaticArray radianceMapProbeLevels; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 128 + keen::uint sphereBandPower; // Offset: 192 + keen::float exposure; // Offset: 196 + keen::uint32 drawPixelCage; // Offset: 200 + keen::uint32 hoverProbeIndex; // Offset: 204 + keen::uint32 selectedProbeIndex; // Offset: 208 + keen::uint32 pushOutByDistance; // Offset: 212 + keen::uint32 drawIrradiance; // Offset: 216 + keen::uint32 visibleRadianceSpecularMip; // Offset: 220 + keen::uint32 atlasSizeX; // Offset: 224 + keen::uint32 atlasSizeY; // Offset: 228 + keen::uint32 debugWorldCache; // Offset: 232 + keen::float probeSizeScale; // Offset: 236 + keen::uint32 drawMovingAverageEstimatorShortMean; // Offset: 240 + keen::uint32 drawMovingAverageEstimatorVbbr; // Offset: 244 + keen::uint32 drawMovingAverageEstimatorVariance; // Offset: 248 + keen::uint32 drawMovingAverageEstimatorInconsistency; // Offset: 252 +}; + +struct GiShootShadowRaysParameters { + keen::float3 sunDirection; // Offset: 0 + keen::uint32 maxRayCount; // Offset: 12 + keen::uint32 drawSunShadowRayProbeIndex; // Offset: 16 +}; + +struct GiProbeUpdateParameters { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint3 minMaxRayCount; // Offset: 400 + keen::uint32 maxDeleteListCount; // Offset: 412 + keen::uint32 debugEnabled; // Offset: 416 + keen::uint32 drawPushOut; // Offset: 420 + keen::uint32 framesTillProbeInactive; // Offset: 424 + keen::uint32 maxProbeCount; // Offset: 428 + keen::float probeRecycleAgeScale; // Offset: 432 + keen::float invFramesTillProbeInactive; // Offset: 436 + keen::float invFramesTillProbeQualityReached; // Offset: 440 + keen::uint32 useDirectionToOffsetProbes; // Offset: 444 +}; + +struct LightCacheFreeEntriesConstants { + keen::uint32 maxDeleteListCount; // Offset: 0 +}; + +struct GiProbeShootRaysParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 400 + keen::float2 debugScreenSizeInv; // Offset: 464 + keen::uint32 frameId; // Offset: 472 + keen::uint32 rotateRays; // Offset: 476 + keen::uint32 maxRayCount; // Offset: 480 + keen::uint32 writeOutDirection; // Offset: 484 + keen::uint32 traceBvhSdfInstances; // Offset: 488 + keen::uint32 useSortedBins; // Offset: 492 + keen::uint32 showRayBins; // Offset: 496 + keen::uint32 debugSelectedProbeIndex; // Offset: 500 + keen::uint2 debugMouseScreenPosition; // Offset: 504 + keen::uint2 rayBinDirectionIndexRange; // Offset: 512 + keen::uint rayBinCascadeStartOffset; // Offset: 520 +}; + +struct GiProbeSortHitsParameters { + keen::uint32 maxRayCount; // Offset: 0 +}; + +struct GiProbeShadeHitsParameters { + keen::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::LightCacheLookupShaderData primaryLightCache; // Offset: 512 + keen::LightCacheLookupShaderData worldCachelightCache; // Offset: 912 + keen::AtmosphereShaderData atmosphere; // Offset: 1312 + keen::GiShadowShaderData shadow; // Offset: 1376 + keen::GiSunLightShaderData sun; // Offset: 2720 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 2800 + keen::float3 sunDirection; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunColor; // Offset: 2944 + keen::uint32 maxHitCount; // Offset: 2956 + keen::float3 lightFactorSky; // Offset: 2960 + keen::float lightFactorEmissive; // Offset: 2972 + keen::uint2 debugRaysRange; // Offset: 2976 + keen::float lightFactorGi; // Offset: 2984 + keen::uint32 enablePointLights; // Offset: 2988 + keen::uint32 enablePointLightShadows; // Offset: 2992 + keen::float pointLightInfluenceScale; // Offset: 2996 + keen::uint32 traceBvhSdfInstances; // Offset: 3000 + keen::uint32 forceNeutralAlbedo; // Offset: 3004 + keen::uint32 isFogEnabled; // Offset: 3008 + keen::uint32 maxRayCount; // Offset: 3012 + keen::uint32 useWorldCache; // Offset: 3016 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3020 + keen::float exposure; // Offset: 3024 + keen::float primaryCacheExposureCorrection; // Offset: 3028 + keen::float worldCacheExposureCorrection; // Offset: 3032 + keen::uint32 drawRaysInRange; // Offset: 3036 + keen::uint32 drawRaysProbeIndex; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 + keen::uint32 applyWetness; // Offset: 3052 + keen::float3 cameraWorldPosition; // Offset: 3056 + keen::uint32 applySnow; // Offset: 3068 + keen::uint32 applyCloudMap; // Offset: 3072 +}; + +struct GiRasterizeIrradianceParameters { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::StaticArray radianceMapProbeLevels; // Offset: 400 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 592 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 656 + keen::GraphicsMatrix44 previousCameraCenteredToClipSpaceMatrix; // Offset: 720 + keen::float3 cameraWorldPosition; // Offset: 784 + keen::uint32 radianceMipsCount; // Offset: 796 + keen::float3 previousCameraWorldPosition; // Offset: 800 + keen::uint32 useStochasticSampling; // Offset: 812 + keen::uint2 screenSize; // Offset: 816 + keen::float2 invScreenSize; // Offset: 824 + keen::uint2 blueNoiseOffset; // Offset: 832 + keen::float previousExposureCorrection; // Offset: 840 + keen::float exposureCorrection; // Offset: 844 + keen::float2 linearDepthParameters; // Offset: 848 + keen::float exposure; // Offset: 856 + keen::uint32 useStochasticReflectedRadiance; // Offset: 860 + keen::uint32 useStochasticReflectedIrradiance; // Offset: 864 + keen::uint32 stochasticFrameId; // Offset: 868 + keen::uint32 useHistory; // Offset: 872 + keen::uint32 atlasSizeX; // Offset: 876 + keen::uint32 atlasSizeY; // Offset: 880 + keen::uint32 colorCodeReprojection; // Offset: 884 + keen::uint2 mousePos; // Offset: 888 + keen::uint32 drawPixelCage; // Offset: 896 + keen::uint32 groundTruthSpecular; // Offset: 900 + keen::uint32 writeToSceneBrightness; // Offset: 904 +}; + +struct GiVisualizeIrradianceParameters { + keen::uint2 screenSize; // Offset: 0 + keen::float giLightFactor; // Offset: 8 + keen::float exposure; // Offset: 12 +}; + +struct GiProbeBlendRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float previousExposureInverse; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::float maxRayRadiance; // Offset: 12 + keen::float warmupProbeQualityBorderline; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 + keen::uint32 debugProbeIndex; // Offset: 28 + keen::float varianceGuidedRayCountThreshold; // Offset: 32 +}; + +struct GiProbeBlendWorldCacheRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float maxRayRadiance; // Offset: 4 + keen::uint32 debugProbeIndex; // Offset: 8 + keen::float previousExposureInverse; // Offset: 12 + keen::float exposure; // Offset: 16 +}; + +struct GiBlendNeighbourRadianceProbesParameters { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::float exposure; // Offset: 400 + keen::float exposureCorrectionFactor; // Offset: 404 + keen::uint32 blendIterations; // Offset: 408 + keen::uint32 blendRaysIterations; // Offset: 412 + keen::uint32 maxProbeCount; // Offset: 416 + keen::uint32 drawNeighbourBlendProbeIndex; // Offset: 420 + keen::uint32 showBlendPixels; // Offset: 424 + keen::uint32 onlyShowDebugInfo; // Offset: 428 + keen::uint32 atlasSizeX; // Offset: 432 + keen::uint32 atlasSizeY; // Offset: 436 + keen::float allowOccludedPixelsAfterDistance; // Offset: 440 + keen::float occludedPixelsDepthBias; // Offset: 444 + keen::uint32 debugNeighbourPixelProjection; // Offset: 448 + keen::float2 debugPixelProjectionParameters; // Offset: 452 +}; + +struct GiBlendNeighbourRadianceProbesRootConstantData { + keen::uint randomSeed; // Offset: 0 + keen::float doNotShareProbesBelowQuality; // Offset: 4 + keen::uint blendIterations; // Offset: 8 +}; + +struct GiProbeShadeHitsPipelineRootConstantData { + keen::uint rayHitType; // Offset: 0 + keen::uint probeType; // Offset: 4 +}; + +struct GiProbePrepareShadeIndirectDispatchesParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint shadowDispatchSize; // Offset: 4 + keen::uint prepareShadowRays; // Offset: 8 +}; + +struct GiProbePrefilterRadianceParameters { + keen::uint2 lowResolutionSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 sourceSize; // Offset: 16 + keen::float invProbeSize; // Offset: 24 + keen::float invSourceProbeSize; // Offset: 28 + keen::float sampleScale; // Offset: 32 + keen::float linearEnergyScale; // Offset: 36 + keen::float cosAngleScale; // Offset: 40 + keen::uint maxProbeCount; // Offset: 44 + keen::uint atlasSizeX; // Offset: 48 + keen::uint atlasSizeY; // Offset: 52 +}; + +struct GiProbeBlendIrradianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float updateFromPreviousExposure; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::uint32 debugProbeIndex; // Offset: 12 + keen::uint32 highlightNewProbes; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 +}; + +struct GiProbeBlendDistanceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::uint32 atlasSizeX; // Offset: 4 + keen::uint32 atlasSizeY; // Offset: 8 + keen::uint32 frameId; // Offset: 12 + keen::uint32 debugProbeIndex; // Offset: 16 + keen::float exposure; // Offset: 20 +}; + +struct GiProbeDebugData { + keen::uint isCoveringPixel; // Offset: 0 +}; + +struct GiDebugProbeInfo { + keen::float3 pushedOutPosition; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint3 cellCoordinate; // Offset: 16 + keen::uint cascadeIndex; // Offset: 28 + keen::uint requestedRayCount; // Offset: 32 + keen::uint rayCount; // Offset: 36 + keen::float probeQuality; // Offset: 40 + keen::uint isNew; // Offset: 44 +}; + +struct ShSpectralCoeffs { + keen::float4 r; // Offset: 0 + keen::float4 g; // Offset: 16 + keen::float4 b; // Offset: 32 +}; + +struct GiPopulateRayListPrepareIndirectParameters { + keen::uint dispatchSize; // Offset: 0 +}; + +struct GiPopulateRayListParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint useUniformSamplingAfterFrames; // Offset: 424 + keen::uint validRadianceMaps; // Offset: 428 + keen::float minLuminanceSumForRayGuiding; // Offset: 432 + keen::uint sortRaysIntoBins; // Offset: 436 + keen::uint rayBinCascadeStartOffset; // Offset: 440 + keen::uint atlasSizeX; // Offset: 444 + keen::uint atlasSizeY; // Offset: 448 +}; + +struct GiPopulateWorldCacheRayListParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 + keen::uint atlasSizeX; // Offset: 432 + keen::uint atlasSizeY; // Offset: 436 +}; + +struct GiCullRequestedRaysWithRayBudgetParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRaysPerProbe; // Offset: 400 + keen::uint maxRayCount; // Offset: 404 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 408 + keen::uint rayBatchSize; // Offset: 412 + keen::uint maxProbeCount; // Offset: 416 + keen::uint debugEnabled; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 +}; + +struct GiPrepareRayBinsParameters { + keen::uint maxProbeCount; // Offset: 0 +}; + +struct GiCalculateBinDirectionOffsetParameters { + keen::uint maxRayCount; // Offset: 0 +}; + +struct GiSortRaysIntoBinsParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint debugSorting; // Offset: 8 +}; + +struct GiCullRequestedAmbientRaysWithRayBudgetParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint rayBatchSize; // Offset: 8 + keen::uint debugEnabled; // Offset: 12 +}; + +struct GiWorldCacheBlendSphericalHarmonicsIrradianceParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint debugEnabled; // Offset: 4 +}; + +struct GiCleanupCacheParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint atlasSizeX; // Offset: 4 + keen::uint atlasSizeY; // Offset: 8 +}; + +struct GiFillAmbientProbesParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::float3 referencePosition; // Offset: 256 + keen::float exposureCorrection; // Offset: 268 + keen::uint32 maxHitCount; // Offset: 272 + keen::float maxRayCountScale; // Offset: 276 + keen::uint32 minFillRayCount; // Offset: 280 + keen::uint32 useReverseRayReprojection; // Offset: 284 + keen::uint32 debugSelectedProbeIndex; // Offset: 288 + keen::uint32 debugEnabled; // Offset: 292 + keen::uint32 atlasSizeX; // Offset: 296 + keen::uint32 atlasSizeY; // Offset: 300 +}; + +struct GiAmbientConvergeParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::uint32 shouldUseHistory; // Offset: 256 + keen::float hysteresis; // Offset: 260 + keen::uint minRaysPerProbe; // Offset: 264 + keen::uint maxRaysPerProbe; // Offset: 268 + keen::uint32 atlasSizeX; // Offset: 272 + keen::uint32 atlasSizeY; // Offset: 276 + keen::float previousExposureCorrection; // Offset: 280 + keen::float exposure; // Offset: 284 + keen::uint32 debugProbeHighlightEnabled; // Offset: 288 + keen::uint32 debugSelectedProbeId; // Offset: 292 + keen::uint32 debugEnabled; // Offset: 296 + keen::uint32 debugStarvingProbes; // Offset: 300 +}; + +struct GiCalculateAmbientProbesVisibilityParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GpuCullingFrustum frustum; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 160 + keen::StaticArray lastCascadeGridSpaceOffset; // Offset: 288 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 416 + keen::float3 cameraPosition; // Offset: 544 + keen::uint32 shouldUpdateCameraVisibility; // Offset: 556 + keen::float2 linearDepthParameters; // Offset: 560 + keen::uint32 debugShowVisibilityRays; // Offset: 568 + keen::uint32 debugActiveCascade; // Offset: 572 +}; + +struct GiAmbientProbeVisualisationParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 192 + keen::uint sphereBandPower; // Offset: 320 + keen::float exposure; // Offset: 324 + keen::uint cascadeIndex; // Offset: 328 + keen::uint debugSelectedProbeIndex; // Offset: 332 + keen::uint showVisibilityMask; // Offset: 336 + keen::uint renderConvergedTexture; // Offset: 340 + keen::uint useGridCoordinatesWithoutOffset; // Offset: 344 + keen::uint showWarmupProbes; // Offset: 348 +}; + +struct GiAmbientDebugProbeInfo { + keen::uint3 cellCoordinate; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint cascadeIndex; // Offset: 16 + keen::uint rayIntersectedProbeCount; // Offset: 20 +}; + +struct GiPopulateAmbientRayListParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint frameId; // Offset: 4 + keen::uint rotateRays; // Offset: 8 + keen::float randomDirectionScale; // Offset: 12 + keen::uint rayBatchSize; // Offset: 16 + keen::uint atlasSizeX; // Offset: 20 + keen::uint atlasSizeY; // Offset: 24 +}; + +struct GiAmbientRayListData { + keen::float3 origin; // Offset: 0 + keen::uint rayListStartIndex; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint probeRayCount; // Offset: 28 +}; + +struct GiAmbientProbesLookupData { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::StaticArray gridSpaceReferencePosition; // Offset: 256 + keen::float3 referencePosition; // Offset: 384 +}; + +struct GiAmbientFroxelVolumeParameters { + keen::float3 depthRemap; // Offset: 0 + keen::uint tileSize; // Offset: 12 + keen::uint3 froxelVolumeSize; // Offset: 16 + keen::float near; // Offset: 28 + keen::float3 invFroxelVolumeSize; // Offset: 32 + keen::float far; // Offset: 44 + keen::float2 linearDepthParameters; // Offset: 48 + keen::uint2 screenSize; // Offset: 56 +}; + +struct GiFillAmbientFroxelVolumeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 previousViewProjectionMatrix; // Offset: 128 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 192 + keen::GiAmbientProbesLookupData ambientProbeLookup; // Offset: 256 + keen::GiAmbientFroxelVolumeParameters froxelData; // Offset: 656 + keen::float3 cameraPosition; // Offset: 720 + keen::float exposure; // Offset: 732 + keen::uint2 blueNoiseOffset; // Offset: 736 + keen::float2 invScreenSize; // Offset: 744 + keen::float3 previousCameraPosition; // Offset: 752 + keen::uint historyValid; // Offset: 764 + keen::float previousToCurrentExposure; // Offset: 768 + keen::uint debugShowFroxels; // Offset: 772 + keen::uint debugDrawFroxelZIndex; // Offset: 776 + keen::uint debugColorCodeReprojection; // Offset: 780 +}; + +struct GiProbePrepareFillRaysIndirectDispatchParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint minimumAllowedRays; // Offset: 4 + keen::float rayCountScale; // Offset: 8 +}; + +struct GiFillAmbientProbesWithAmbientRaysRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiCalculateAmbientProbesVisibilityRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiAmbientConvergeRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +enum class GiDebugStep { + UpdateFrustumProbes = 0, + PopulateCullAndShootFrustumRays = 1, + UpdateWorldCacheProbes = 2, + PopulateCullAndShootWorldCacheRays = 3, + UpdateAmbientProbes = 4, + PopulateCullAndShootAmbientRays = 5, + ShootPrimaryShadowRays = 6, + ShootWorldCacheAndAmbientShadowRays = 7, + ShadeWorldCacheRayHits = 8, + BlendWorldCacheRadiance = 9, + BlendWorldCacheSphericalHarmonics = 10, + ShadePrimaryAndAmbientRayHits = 11, + BlendFrustumRadianceAndDistance = 12, + BlendFrustumNeighbourProbeRays = 13, + BlendFrustumNeighbourProbes = 14, + PrefilterFrustumRadiance = 15, + BlendFrustumIrradiance = 16, + RasterizeIrradianceAndReflectedRadiance = 17, + AmbientProbeVisibility = 18, + FillAmbientProbesWithFrustumRays = 19, + FillAmbientProbesWithWorldCacheRays = 20, + FillAmbientProbesWithAmbientRays = 21, + ConvergeAmbientProbes = 22, + GiDebugStepNone = 23, +}; + +enum class GiDebugProbeType { + PrimaryProbe = 0, + WorldCacheProbe = 1, + AmbientProbe = 2, +}; + +struct GizmoMaterial { +}; + +struct GizmoRfxRenderMaterial { + keen::float4 dummy; // Offset: 0 +}; + +struct GpuCounterFillCommand { + keen::uint32 byteOffset; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct FillBufferParameters { + keen::uint32 commandCount; // Offset: 0 +}; + +enum class GpuDataCacheImageStreamingState { + Idle = 0, + Working = 1, + Flushing = 2, +}; + +struct GpuDataCacheImageStreamingMemoryBlockInfo { + keen::uint64 sizeInBytes; // Offset: 0 +}; + +struct GpuDataCacheMemoryRangeInfo { + keen::uint8 blockIndex; // Offset: 0 + keen::uint64 offset; // Offset: 8 + keen::uint64 size; // Offset: 16 +}; + +enum class GpuImageStreamingDataLoadingState { + Idle = 0, + Scheduled = 1, + CreateHighResTexture = 2, + AllocateUploadMemory = 3, + StartContentLoad = 4, + WaitForContentLoad = 5, + StartUploadMemoryTransfer = 6, + WaitForUploadMemoryTransfer = 7, + WriteDescriptorSet = 8, + WaitForPendingFrames = 9, +}; + +struct GpuDataCacheImageStreamingImageInfo { + keen::uint32 handle; // Offset: 0 + keen::string name; // Offset: 4 + keen::TextureType type; // Offset: 12 + keen::PixelFormat format; // Offset: 13 + keen::ContentHash content; // Offset: 16 + keen::uint3 originalSize; // Offset: 32 + keen::uint8 mipTailStartLevel; // Offset: 44 + keen::float32 requiredLevel; // Offset: 48 + keen::uint8 currentLevel; // Offset: 52 + keen::uint32 sampledLevelsMask; // Offset: 56 + keen::GpuImageStreamingDataLoadingState state; // Offset: 60 + keen::GpuDataCacheMemoryRangeInfo memoryRange; // Offset: 64 + keen::GpuDataCacheMemoryRangeInfo loadingMemoryRange; // Offset: 88 + keen::uint64 estimatedRequiredMemorySize; // Offset: 112 + keen::uint64 actualRequiredMemorySize; // Offset: 120 +}; + +enum class ImageStreamingAlgorithm { + ForceUnload = 0, + ForceFullResolution = 1, + ForceIdealSolution = 2, + BudgetAware = 3, +}; + +struct GpuDataCacheImageStreamingStateMessage { + keen::GpuDataCacheImageStreamingState state; // Offset: 0 + keen::bool isSamplerFeedbackResetEnabled; // Offset: 1 + keen::uint64 currentUploadBudget; // Offset: 8 + keen::uint64 uploadBudget; // Offset: 16 + keen::ImageStreamingAlgorithm algorithm; // Offset: 24 + keen::BlobArray memoryBlocks; // Offset: 28 + keen::uint64 totalMemorySize; // Offset: 40 + keen::uint64 allocatedMemorySize; // Offset: 48 + keen::uint64 loadingMemorySize; // Offset: 56 + keen::BlobArray images; // Offset: 64 + keen::uint64 estimatedWorkingSetSize; // Offset: 72 + keen::uint64 actualWorkingSetSize; // Offset: 80 +}; + +struct GpuDataCacheSetSamplerFeedbackResetMessage { + keen::bool enableReset; // Offset: 0 +}; + +struct GpuDataCacheSetImageStreamingAlgorithmMessage { + keen::ImageStreamingAlgorithm algorithm; // Offset: 0 +}; + +struct GpuDataCacheFlushImageStreamingMemoryMessage { +}; + +struct GpuDebugRendererVertex { + keen::float3 position; // Offset: 0 + keen::uint32 color; // Offset: 12 +}; + +enum class GpuDebugRendererContextCounter { + Lines = 0, +}; + +struct GpuDebugRendererContextState { + keen::uint32 lineCounterOffset; // Offset: 0 + keen::uint32 maxLineCount; // Offset: 4 +}; + +struct GpuDebugRendererDrawParameters { + keen::GraphicsMatrix44 mvp; // Offset: 0 +}; + +struct GpuModel { + keen::uint32 nodeModelIndex0; // Offset: 0 + keen::uint32 nodeModelIndex1; // Offset: 4 + keen::uint32 nodeModelIndex2; // Offset: 8 + keen::uint32 nodeModelIndex3; // Offset: 12 + keen::uint32 nodeModelIndex4; // Offset: 16 + keen::uint32 nodeModelIndex5; // Offset: 20 +}; + +struct GrassMovementUpdateParameters { + keen::uint2 textureSize; // Offset: 0 + keen::uint lastTextureId; // Offset: 8 + keen::uint bodyCounterOffset; // Offset: 12 + keen::float2 size; // Offset: 16 + keen::float2 oneOverSize; // Offset: 24 + keen::PackedShaderWorldPositionUniform currentOrigin; // Offset: 32 + keen::float historyStrength; // Offset: 48 + keen::PackedShaderWorldPositionUniform lastOrigin; // Offset: 64 + keen::float deltaTime; // Offset: 80 + keen::float2 oneOverTextureSize; // Offset: 84 +}; + +struct GrassMovementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float outerRadius; // Offset: 12 + keen::float innerRadius; // Offset: 16 + keen::float strength; // Offset: 20 +}; + +struct GridMaterial { + keen::float32 lineSize; // Offset: 0 + keen::float32 axisSize; // Offset: 4 + keen::Color color0; // Offset: 8 + keen::Color color1; // Offset: 12 +}; + +struct GridRfxRenderMaterial { + keen::float32 axisSize; // Offset: 0 + keen::float32 lineSize; // Offset: 4 + keen::float4 color0; // Offset: 8 + keen::float4 color1; // Offset: 24 +}; + +struct VfxGridMaterial { + keen::float32 cellSize; // Offset: 0 + keen::Color color; // Offset: 4 +}; + +struct VfxGridRfxRenderMaterial { + keen::float3 color; // Offset: 0 + keen::float32 invCellSize; // Offset: 12 +}; + +enum class IblSourceType { + LatLong = 0, + Cubemap = 1, +}; + +struct Ibl { + keen::IblSourceType sourceType; // Offset: 0 + keen::uint16 diffuseOutputSize; // Offset: 2 + keen::uint16 diffuseSampleCount; // Offset: 4 + keen::uint16 specularSampleCount; // Offset: 6 +}; + +struct IblResource { + keen::uint16 diffuseSize; // Offset: 0 + keen::ContentHash diffuseData; // Offset: 4 + keen::uint16 specularSize; // Offset: 20 + keen::uint8 specularLevelCount; // Offset: 22 + keen::ContentHash specularData; // Offset: 24 +}; + +struct SpecularIblLutResource { + keen::uint16 size; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::ContentHash content; // Offset: 4 +}; + +struct CreateDispatchArgsShaderData { + keen::uint targetThreadGroupSize; // Offset: 0 + keen::uint targetBufferOffset; // Offset: 4 + keen::uint threadCountOffsetX; // Offset: 8 + keen::uint threadCountPerSourceCount; // Offset: 12 +}; + +struct LightCacheFrustumTestShaderParameters { + keen::float3 cellCenter; // Offset: 0 + keen::float32 cellSize; // Offset: 12 + keen::float3 sunDirection; // Offset: 16 +}; + +struct LightCacheFrustumTestShaderResult { + keen::StaticArray planes; // Offset: 0 + keen::uint32 hits; // Offset: 144 +}; + +struct LightCacheCounters { + keen::uint32 allocationCount; // Offset: 0 + keen::uint32 maxAllocationCount; // Offset: 4 + keen::uint32 freeListIndex; // Offset: 8 + keen::uint32 visibleCount; // Offset: 12 + keen::uint32 deleteCount; // Offset: 16 +}; + +struct LightCacheAllocateGiProbeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::float3 cameraPosition; // Offset: 480 + keen::uint32 frameId; // Offset: 492 + keen::uint2 blueNoiseOffset; // Offset: 496 + keen::uint32 allocateDownsample; // Offset: 504 + keen::uint cascadeCellCount; // Offset: 508 + keen::uint2 mousePosition; // Offset: 512 + keen::uint showCascadeTransitions; // Offset: 520 +}; + +struct LightCachePrepareAllocateParameters { + keen::uint32 maxEntryCount; // Offset: 0 +}; + +struct LightCachePrepareEntriesParameters { + keen::uint32 entryCount; // Offset: 0 +}; + +struct LightCacheRecycleEntriesParameters { + keen::uint32 maxEntryCount; // Offset: 0 + keen::float entryRecycleAgeScale; // Offset: 4 +}; + +struct LightCacheAllocateEntriesParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::uint32 allocateDownsample; // Offset: 480 + keen::uint32 frameId; // Offset: 484 + keen::uint32 cascadeCellCount; // Offset: 488 +}; + +struct LightCacheAllocateEntriesAtPositionsParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::LightCacheLookupShaderData primaryLightCache; // Offset: 400 + keen::float maxRange; // Offset: 800 + keen::uint32 useDirectionBuffer; // Offset: 804 + keen::uint32 usePrimaryCache; // Offset: 808 + keen::uint32 maxEntryCount; // Offset: 812 + keen::float3 cameraPosition; // Offset: 816 + keen::uint32 minCascade; // Offset: 828 +}; + +struct LightCacheScrollCascadesParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 +}; + +struct LightCacheDebugParameters { + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint2 screenSize; // Offset: 64 + keen::LightCacheLookupShaderData lightCache; // Offset: 80 + keen::uint32 totalCellCount; // Offset: 480 + keen::uint32 frameId; // Offset: 484 +}; + +struct LightCacheLightCullingIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 + keen::uint lightCacheLightListOffset; // Offset: 8 + keen::uint lightCacheEntryCount; // Offset: 12 +}; + +struct LightCacheLightCullingUniformBuffer { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCountOffset; // Offset: 400 + keen::uint maxLightCount; // Offset: 404 + keen::uint maxLightCacheEntries; // Offset: 408 + keen::uint lightCacheEntries; // Offset: 412 +}; + +struct LightCacheLightCullingResultUniformBuffer { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCacheDataEntryCount; // Offset: 400 +}; + +struct LightCacheLightCullingDebugParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::uint2 targetSize; // Offset: 64 + keen::float2 invTargetSize; // Offset: 72 + keen::LightCacheLookupShaderData lightCache; // Offset: 80 +}; + +enum class ManyLightsShadowsQuality { + UltraPerformance = 0, + Performance = 1, + High = 2, + Ultra = 3, +}; + +struct ManyLightsShadowsQualitySettings { + keen::uint atlasSizeX; // Offset: 0 + keen::uint atlasSizeY; // Offset: 4 + keen::uint shadowAtlasTextureSize; // Offset: 8 + keen::float shadowMapBias; // Offset: 12 + keen::float shadowMapNormalBias; // Offset: 16 + keen::float gaussianScale; // Offset: 20 + keen::float exponentialShadowConstantX; // Offset: 24 + keen::float exponentialShadowConstantY; // Offset: 28 + keen::SdfBvhVariant sdfBvhVariant; // Offset: 32 +}; + +struct ManyLightsShadowsIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 +}; + +struct ManyLightsShadowsIndirectArgument { + keen::uint3 updateShadowAtlas; // Offset: 0 + keen::uint3 updateLightCache; // Offset: 12 + keen::uint3 activeLight32; // Offset: 24 + keen::uint3 atlasBorders; // Offset: 36 +}; + +struct ManyLightsPackedSdfShaderData { + keen::float4 sphere; // Offset: 0 + keen::uint modelPartIndex; // Offset: 16 + keen::uint instancePartIndex; // Offset: 20 +}; + +struct ManyLightsShadowsAtlasParameters { + keen::uint2 atlasSize; // Offset: 0 + keen::uint atlasMaxEntries; // Offset: 8 + keen::uint atlasHashMapSize; // Offset: 12 + keen::uint atlasElementSize; // Offset: 16 + keen::uint atlasElementTexelCount; // Offset: 20 + keen::uint atlasElementBorder; // Offset: 24 + keen::float2 atlasExponentialShadowConstant; // Offset: 32 + keen::float2 atlasExponentialShadowChebyshevConstants; // Offset: 40 + keen::float atlasNormalBias; // Offset: 48 + keen::float atlasShadowMapBias; // Offset: 52 +}; + +struct ManyLightsShadowsUniformBuffer { + keen::GraphicsMatrix44 invViewProj; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint2 bufferDimensions; // Offset: 112 + keen::float2 invBufferDimensions; // Offset: 120 + keen::uint frameId; // Offset: 128 + keen::uint lightCount; // Offset: 132 + keen::uint maxLightCount; // Offset: 136 + keen::float gaussianBlurScale; // Offset: 140 + keen::uint enableOcclusionCulling; // Offset: 144 + keen::GpuOcclusionCullingShaderData occlusionCulling; // Offset: 160 + keen::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 224 + keen::uint2 mousePosition; // Offset: 288 + keen::uint outputUseNDotL; // Offset: 296 + keen::uint outputDrawCellBoxes; // Offset: 300 + keen::uint outputShowLightPosition; // Offset: 304 + keen::uint showLighWithRealSize; // Offset: 308 + keen::float sizeOfDebugSphere; // Offset: 312 +}; + +struct ManyLightsShadowsResultUniformBuffer { + keen::uint enabled; // Offset: 0 + keen::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 16 + keen::uint showLightInfluence; // Offset: 80 + keen::uint useAtlasSampler; // Offset: 84 + keen::uint useAtlasBias; // Offset: 88 +}; + +struct ManyLightsGatherSdfShaderParameters { + keen::uint sdfInstanceCount; // Offset: 0 +}; + +struct GaussianRootConstantData { + keen::uint2 blurVector; // Offset: 0 +}; + +typedef keen::ObjectReference MaterialReference; + +enum class ModelType { + Static = 0, + Skinned = 1, +}; + +enum class ModelTangentSpaceType { + Keen = 0, + Unity3D = 1, + Mikk = 2, +}; + +struct ModelMaterialMapEntry { + keen::string name; // Offset: 0 + keen::MaterialReference material; // Offset: 8 +}; + +typedef keen::ObjectReference ModelBlendShapeIdReference; + +struct ModelBlendShapeIdDirectory { +}; + +struct ModelBlendShapeMapEntry { + keen::string name; // Offset: 0 + keen::ModelBlendShapeIdReference id; // Offset: 8 +}; + +struct ModelConverterBlendShapeNames { + keen::BlobArray names; // Offset: 0 + keen::BlobArray selection; // Offset: 8 + keen::BlobArray ids; // Offset: 16 +}; + +struct ModelLodGenerationParameters { + keen::uint32 maxLod; // Offset: 0 + keen::float32 triangleReductionPerStep; // Offset: 4 + keen::float32 maxErrorPerStep; // Offset: 8 +}; + +struct ModelDisplacementOverrides { + keen::float32 displacementScale; // Offset: 0 + keen::float32 displacementOffset; // Offset: 4 +}; + +struct ModelClothColliderSphere { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 +}; + +struct ModelClothColliderSphereInstance { + keen::uint32 instanceIndex; // Offset: 16 +}; + +struct ModelClothColliderCapsule { + keen::ModelClothColliderSphere sphere0; // Offset: 0 + keen::ModelClothColliderSphere sphere1; // Offset: 16 +}; + +struct ModelClothColliderCapsuleInstance { + keen::uint32 instanceIndex; // Offset: 32 +}; + +struct ClothCollider { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct ModelClothSleeveCapsuleCollider { + keen::string upperBoneName; // Offset: 32 + keen::string lowerBoneName; // Offset: 40 + keen::uint32 instanceIndex; // Offset: 48 +}; + +struct ModelChain { + keen::string rootBoneName; // Offset: 0 + keen::bool propagateRotation; // Offset: 8 + keen::float32 gravity; // Offset: 12 + keen::float32 mass; // Offset: 16 + keen::float32 dragCoefficient; // Offset: 20 + keen::float32 liftCoefficient; // Offset: 24 + keen::float32 stiffnessFrequencey; // Offset: 28 + keen::float32 damping; // Offset: 32 + keen::float32 motionConstraintRadius; // Offset: 36 + keen::float32 linearInertia; // Offset: 40 + keen::float32 angularInertia; // Offset: 44 + keen::float32 centrifugalInertia; // Offset: 48 + keen::float32 phasesStiffness; // Offset: 52 + keen::float32 phasesStiffnessMultiplier; // Offset: 56 + keen::float32 phasesCompressionLimit; // Offset: 60 + keen::float32 phasesStretchLimit; // Offset: 64 + keen::float32 collisionFriction; // Offset: 68 +}; + +struct ModelChainBundle { +}; + +enum class ModelModelChainBoneConstraintAxis { + XAxis = 0, + YAxis = 1, + ZAxis = 2, +}; + +struct ModelChainBoneConstraint { + keen::string boneName; // Offset: 0 + keen::ModelModelChainBoneConstraintAxis axis; // Offset: 8 + keen::float32 minAngle; // Offset: 12 + keen::float32 maxAngle; // Offset: 16 +}; + +struct ModelClothColliderBoneAttachment { + keen::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 8 +}; + +struct ModelMaterial { + keen::string name; // Offset: 0 + keen::MaterialReference material; // Offset: 8 +}; + +struct ModelBlendshape { + keen::string name; // Offset: 0 + keen::ModelBlendShapeIdReference id; // Offset: 8 +}; + +struct ModelClothColliderContainer { +}; + +struct Model { + keen::ObjectReference hierarchy; // Offset: 0 + keen::string export_node; // Offset: 16 + keen::float32 scale; // Offset: 24 + keen::float32 k3dScale; // Offset: 28 + keen::bool create_backfaces; // Offset: 32 + keen::bool support_raytracing; // Offset: 33 + keen::string raytrace_node_name; // Offset: 36 + keen::bool rotateY; // Offset: 44 + keen::float32 lodValue; // Offset: 48 + keen::ModelLodGenerationParameters generatedLods; // Offset: 52 + keen::bool ignoreClothCollider; // Offset: 64 + keen::bool enableCardClusterLod; // Offset: 65 + keen::uint64 cardClusterVersion; // Offset: 72 + keen::bool enableGrassAnimation; // Offset: 80 + keen::GrassAnimationModelParameters grassAnimation; // Offset: 84 + keen::bool enableGrassPushback; // Offset: 92 + keen::GrassPushbackModelParameters grassPushback; // Offset: 96 + keen::bool enableSdf; // Offset: 112 +}; + +struct CardClusterInfo { + keen::bool isValid; // Offset: 0 + keen::RenderTexture albedoMap; // Offset: 4 + keen::RenderTexture materialParamsMap; // Offset: 40 + keen::RenderTexture normalMap; // Offset: 76 + keen::RenderTexture opacityMap; // Offset: 112 + keen::float32 texCoord0Delta; // Offset: 148 + keen::uint32 vertexCount; // Offset: 152 + keen::uint32 indexCount; // Offset: 156 + keen::ContentHash vertexBufferHash; // Offset: 160 + keen::ContentHash indexBufferHash; // Offset: 176 + keen::AxisAlignedBox aabb; // Offset: 192 + keen::Sphere boundingSphere; // Offset: 224 +}; + +struct ColorGradient { + keen::ObjectReference image; // Offset: 0 +}; + +struct ShaderModelChunkMesh { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 +}; + +struct ShaderModelChunkPipelineIndex { + keen::uint32 index; // Offset: 0 +}; + +struct ShaderModelChunkModelMesh { + keen::uint32 meshIndex; // Offset: 0 + keen::StaticArray pipelineIndices; // Offset: 4 +}; + +struct ShaderModelChunkModel { + keen::float4 boundingSphere; // Offset: 0 + keen::StaticArray meshes; // Offset: 16 + keen::uint32 meshCount; // Offset: 48 + keen::uint32 modelSizeFeedbackIndex; // Offset: 52 +}; + +struct ShaderModelChunkSubView { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 32 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 48 + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 96 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 192 +}; + +struct ShaderModelChunkPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 passType; // Offset: 4 +}; + +struct ShaderModelChunkInstanceCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2464 + keen::uint32 passCount; // Offset: 2468 + keen::uint32 maxDrawCount; // Offset: 2472 + keen::uint32 maxMeshCount; // Offset: 2476 + keen::float distanceCullingThreshold; // Offset: 2480 + keen::float distanceCullingJitterFactor; // Offset: 2484 + keen::float modelSizeFeedbackPixelSize; // Offset: 2488 + keen::uint smallObjectCulling; // Offset: 2492 + keen::uint writeForestFogFootprints; // Offset: 2496 +}; + +enum class ModelChunkType { + Deco = 0, + Distant = 1, + EditorModels = 2, +}; + +struct ShaderModelChunk { + keen::float4 boundingSphere; // Offset: 0 + keen::PackedShaderWorldPositionUniform worldOrigin; // Offset: 16 + keen::float3 extents; // Offset: 32 + keen::float scale; // Offset: 44 + keen::float4 orientation; // Offset: 48 + keen::PackedShaderWorldTransform transform; // Offset: 64 + keen::uint32 instanceOffset; // Offset: 96 + keen::uint32 instanceCount; // Offset: 100 + keen::ModelChunkType type; // Offset: 104 +}; + +struct ShaderModelChunkInstance { + keen::uint32 packedPosition; // Offset: 0 + keen::uint32 packedOrientation; // Offset: 4 + keen::uint32 packedScaleModelIndex; // Offset: 8 +}; + +struct ShaderModelChunkCandidate { + keen::uint32 chunkIndex; // Offset: 0 + keen::uint32 visibilityMask; // Offset: 4 +}; + +struct ShaderModelChunkCullingShaderParameters { + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 64 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 80 + keen::uint candidateCount; // Offset: 128 +}; + +struct ShaderModelChunkInstanceCullingPushConstants { + keen::uint chunkCandidateIndex; // Offset: 0 +}; + +struct ShaderModelChunkDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 +}; + +struct ShaderModelChunkDraw { + keen::uint packedChunkIndexAndMeshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct ShaderModelChunkRenderInstance { + keen::float3 cameraRelativePosition; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct ShaderModelChunkPushConstant { + keen::uint baseDrawIndex; // Offset: 0 + keen::uint isRunningOnSteamDeck; // Offset: 4 +}; + +struct ShaderModelChunkWriteDrawCommandsPushConstants { + keen::uint batchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 +}; + +struct ShaderModelChunkWriteInstanceDataConstants { + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 +}; + +struct ShaderModelChunkBatchPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct MotionVectorsShaderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float2 cancelJitter; // Offset: 16 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 +}; + +struct MotionVectorsDebugShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 +}; + +struct FFX_ParallelSortCB { + keen::uint NumKeys; // Offset: 0 + keen::int NumBlocksPerThreadGroup; // Offset: 4 + keen::uint NumThreadGroups; // Offset: 8 + keen::uint NumThreadGroupsWithAdditionalBlocks; // Offset: 12 + keen::uint NumReduceThreadgroupPerBin; // Offset: 16 + keen::uint NumScanValues; // Offset: 20 + keen::uint _pad0; // Offset: 24 + keen::uint _pad1; // Offset: 28 +}; + +struct KEEN_VFX_ParallelSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct FFX_SetupIndirectCB { + keen::uint NumKeysCounterByteOffset; // Offset: 0 + keen::uint MaxNumKeys; // Offset: 4 + keen::uint MaxThreadGroups; // Offset: 8 +}; + +struct FFX_RootConstantData { + keen::uint CShiftBit; // Offset: 0 +}; + +struct PbrMaterialScalarValue { + keen::float32 value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialColorValue { + keen::Color value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialParameters { + keen::PbrMaterialColorValue emissive; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 20 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 24 + keen::float32 emissiveGiFactor; // Offset: 28 + keen::PbrMaterialColorValue albedo; // Offset: 32 + keen::PbrMaterialScalarValue metallic; // Offset: 52 + keen::PbrMaterialScalarValue roughness; // Offset: 72 + keen::PbrMaterialScalarValue reflectance; // Offset: 92 + keen::ObjectReference normal; // Offset: 112 + keen::ObjectReference height; // Offset: 128 + keen::ObjectReference ao; // Offset: 144 + keen::bool enableLavaShader; // Offset: 160 + keen::ObjectReference distortionMap; // Offset: 164 + keen::ObjectReference lightningMap; // Offset: 180 + keen::ObjectReference gradientMap; // Offset: 196 + keen::float32 distortionMapScale; // Offset: 212 + keen::float32 distortionMapSpeed; // Offset: 216 + keen::float32 distortionMapIntensity; // Offset: 220 + keen::float32 lightningMapScrollSpeed; // Offset: 224 + keen::float32 lightningMapIntensity; // Offset: 228 +}; + +enum class VertexColorChannelRgb { + RGB = 0, + Red = 1, + Green = 2, + Blue = 3, + Alpha = 4, +}; + +struct PbrMaterialTintLayer { + keen::bool enable; // Offset: 0 + keen::ObjectReference maskMap; // Offset: 4 +}; + +enum class RenderSamplerAddressMode { + Wrap = 0, + Mirror = 1, + Clamp = 2, + ClampToZero = 3, +}; + +struct PbrMaterialLayer { + keen::ObjectReference emissiveMap; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 16 + keen::ObjectReference metallicMap; // Offset: 32 + keen::ObjectReference roughnessMap; // Offset: 48 + keen::ObjectReference reflectanceMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference heightMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 + keen::ObjectReference opacityMap; // Offset: 128 + keen::StaticArray albedoTint; // Offset: 144 + keen::uint8 uvSet; // Offset: 204 + keen::float32 uvScaling; // Offset: 208 + keen::bool uvScalingYEnable; // Offset: 212 + keen::float32 uvScalingY; // Offset: 216 + keen::RenderSamplerAddressMode addressModeU; // Offset: 220 + keen::RenderSamplerAddressMode addressModeV; // Offset: 221 + keen::float32 heightBias; // Offset: 224 + keen::bool enableAnisotropy; // Offset: 228 + keen::ObjectReference anisotropicDirectionMap; // Offset: 232 + keen::float32 anisotropy; // Offset: 248 + keen::bool maskAnisotropy; // Offset: 252 + keen::float32 emissiveMapIntensity; // Offset: 256 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 260 + keen::float32 emissiveGiFactor; // Offset: 264 +}; + +enum class PbrMaterialBlendMode { + None = 0, + VertexValue = 1, + LocalBlendMap = 2, +}; + +struct PbrMaterialBlendVertexValue { + keen::VertexColorChannel blendLayer1Channel; // Offset: 0 +}; + +struct PbrMaterialBlendMap { + keen::ObjectReference map; // Offset: 0 + keen::RenderSamplerAddressMode addressModeU; // Offset: 16 + keen::RenderSamplerAddressMode addressModeV; // Offset: 17 + keen::uint8 uvSet; // Offset: 18 + keen::float32 uvScaling; // Offset: 20 + keen::bool uvScalingYEnable; // Offset: 24 + keen::float32 uvScalingY; // Offset: 28 +}; + +struct PbrMaterialOverlayNormalMap { + keen::ObjectReference normalMap; // Offset: 0 + keen::ObjectReference aoMap; // Offset: 16 + keen::RenderSamplerAddressMode addressModeU; // Offset: 32 + keen::RenderSamplerAddressMode addressModeV; // Offset: 33 + keen::uint8 uvSet; // Offset: 34 + keen::float32 uvScaling; // Offset: 36 + keen::bool uvScalingYEnable; // Offset: 40 + keen::float32 uvScalingY; // Offset: 44 + keen::bool useVertexColorChannelWeight; // Offset: 48 + keen::VertexColorChannel vertexColorChannel; // Offset: 49 +}; + +struct PbrTranslucency { + keen::float32 strength; // Offset: 0 + keen::ObjectReference thicknessMap; // Offset: 4 + keen::Color color; // Offset: 20 + keen::float viewDependency; // Offset: 24 + keen::float wrapShadingStrength; // Offset: 28 +}; + +struct PbrMaterial { + keen::BlobArray blendLayers; // Offset: 0 + keen::PbrMaterialBlendMode blendMode; // Offset: 8 + keen::PbrMaterialBlendVertexValue blendVertexVertexValue; // Offset: 9 + keen::PbrMaterialBlendMap blendMap; // Offset: 12 + keen::PbrMaterialOverlayNormalMap overlayNormalLayer; // Offset: 44 + keen::bool multiplyEmissiveByVertexColor; // Offset: 96 + keen::VertexColorChannelRgb multiplyEmissiveVertexColorChannel; // Offset: 97 + keen::bool multiplyAlbedoByVertexColor; // Offset: 98 + keen::VertexColorChannelRgb multiplyAlbedoVertexColorChannel; // Offset: 99 + keen::bool multiplyAoByVertexColorChannel; // Offset: 100 + keen::VertexColorChannel multiplyAoVertexColorChannel; // Offset: 101 + keen::bool multiplyAlphaByVertexAlpha; // Offset: 102 + keen::PbrTranslucency translucency; // Offset: 104 + keen::bool enableGiWrapShading; // Offset: 136 + keen::bool adjustGiNormals; // Offset: 137 + keen::bool enableGiSpecular; // Offset: 138 + keen::bool enableBackfaceCulling; // Offset: 139 + keen::bool useFlippedBackfaceNormals; // Offset: 140 + keen::bool enableAlphaBlending; // Offset: 141 + keen::bool enableAlphaTest; // Offset: 142 + keen::bool enableShadowAlphaTest; // Offset: 143 + keen::bool enableHashedAlphaTest; // Offset: 144 + keen::bool disableFrostShader; // Offset: 145 + keen::bool disableSnowShader; // Offset: 146 + keen::bool disableWetnessShader; // Offset: 147 + keen::bool enableFrostShaderGlitter; // Offset: 148 + keen::bool enableGradientMapSupport; // Offset: 149 + keen::bool enableTessellation; // Offset: 150 + keen::float32 tessellationStartDistance; // Offset: 152 + keen::float32 tessellationSubdivisions; // Offset: 156 + keen::float32 displacementScale; // Offset: 160 + keen::float32 displacementOffset; // Offset: 164 + keen::bool enableShadows; // Offset: 168 + keen::bool enableContactShadows; // Offset: 169 + keen::DissolveMaterialParameters dissolve; // Offset: 172 +}; + +struct PbrMaterialEmissiveMapShaderData { + keen::float32 intensity; // Offset: 0 + keen::float32 exposureCorrectionFactor; // Offset: 4 +}; + +struct PbrMaterialTintShaderData { + keen::uint32 enableLayerBitMask; // Offset: 0 + keen::StaticArray maskMaps; // Offset: 4 +}; + +struct PbrMaterialDisplacementSettings { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrTerrainMaterialLayer { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference roughnessMap; // Offset: 16 + keen::ObjectReference normalMap; // Offset: 32 + keen::ObjectReference heightMap; // Offset: 48 + keen::ObjectReference aoMap; // Offset: 64 + keen::float32 tilingSize; // Offset: 80 +}; + +struct PbrTerrainMaterialBlendingSmoothness { + keen::float32 position; // Offset: 0 + keen::float32 smoothness; // Offset: 4 + keen::float32 heightBias; // Offset: 8 +}; + +struct PbrTerrainMaterialCenterBlendingSmoothness { + keen::float32 smoothness; // Offset: 0 + keen::float32 heightBias; // Offset: 4 +}; + +enum class PbrTerrainMaterialDetailNormalBlendMode { + Alpha = 0, + Overlay = 1, +}; + +struct PbrTerrainMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 origin; // Offset: 4 +}; + +struct PbrBuildingNoiseBlendRange { + keen::float32 min; // Offset: 0 + keen::float32 max; // Offset: 4 +}; + +struct PbrBuildingMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrBuildingMaterial { + keen::PbrMaterialLayer baseMaterialSide; // Offset: 0 + keen::PbrBuildingMaterialDisplacementLayer baseMaterialSideDisplacement; // Offset: 268 + keen::PbrMaterialLayer baseMaterialTop; // Offset: 276 + keen::PbrBuildingMaterialDisplacementLayer baseMaterialTopDisplacement; // Offset: 544 + keen::PbrMaterialLayer baseMaterialBottom; // Offset: 552 + keen::PbrBuildingMaterialDisplacementLayer baseMaterialBottomDisplacement; // Offset: 820 + keen::PbrMaterialLayer edgeMaterial; // Offset: 828 + keen::PbrBuildingMaterialDisplacementLayer edgeMaterialDisplacement; // Offset: 1096 + keen::PbrBuildingMaterialDisplacementLayer edgeMaterialTopDisplacement; // Offset: 1104 + keen::PbrMaterialLayer noiseMaterial; // Offset: 1112 + keen::PbrBuildingMaterialDisplacementLayer noiseMaterialDisplacement; // Offset: 1380 + keen::float32 edgeBlendingCurve; // Offset: 1388 + keen::PbrBuildingNoiseBlendRange noiseBlendRange; // Offset: 1392 + keen::bool edgeOnlySide; // Offset: 1400 + keen::float32 bevelRadius; // Offset: 1404 + keen::BuildingMappingType mapping; // Offset: 1408 +}; + +struct PbrBuildingDetailScatterLayerTop { +}; + +struct PbrBuildingDetailScatterLayerSide { +}; + +struct PbrBuildingDetailScatterLayerBottom { +}; + +struct PbrBuildingDetailScatterLayerNoise { +}; + +enum class PbrRfxRenderMaterialFlag { + EnableGiWrapShading = 0, + AdjustGiNormals = 1, + EnableDissolve = 2, + EnableHashedAlpha = 3, + EnableGradientMap = 4, + SampleAo = 5, + SampleOpacity = 6, + EnableContactShadows = 7, + EnableAnisotropicSpecular = 8, + FlipBackfaceNormals = 9, + MultiplyAlphaByVertexAlpha = 10, + DisableFrostShader = 11, + DisableSnowShader = 12, + DisableWetnessShader = 13, + EnableFrostShaderGlitter = 14, +}; + +typedef keen::Bitmask32 PbrRfxRenderMaterialFlagMask; + +struct RfxSampler { + keen::uint32 id; // Offset: 0 +}; + +struct PbrRfxRenderMaterial { + keen::uint32 layerParameters; // Offset: 0 + keen::StreamedTexture2D_float blendMap; // Offset: 4 + keen::float2 blendMapTexcoordScaling; // Offset: 8 + keen::StaticArray albedoMap; // Offset: 16 + keen::StaticArray normalMap; // Offset: 24 + keen::StaticArray emissiveMap; // Offset: 32 + keen::StaticArray materialParamsMap; // Offset: 40 + keen::StaticArray heightMap; // Offset: 48 + keen::StaticArray layerSampler; // Offset: 56 + keen::StaticArray texCoordScaling; // Offset: 64 + keen::StaticArray anisotropyDirectionMap; // Offset: 80 + keen::StaticArray anisotropyStrength; // Offset: 88 + keen::StaticArray constantReflectance; // Offset: 96 + keen::StaticArray albedoTintShaderData; // Offset: 104 + keen::StaticArray heightBlendingRange; // Offset: 136 + keen::uint32 multiplyEmissiveVertexColorChannelSwizzle; // Offset: 144 + keen::uint32 multiplyAlbedoVertexColorChannelSwizzle; // Offset: 148 + keen::uint32 multiplyAoVertexColorChannelSwizzle; // Offset: 152 + keen::RfxSampler blendMapSampler; // Offset: 156 + keen::float translucencyStrength; // Offset: 160 + keen::StreamedTexture2D_float translucencyMap; // Offset: 164 + keen::StaticArray emissiveMapShaderData; // Offset: 168 + keen::StreamedTexture2D_float4 overlayNormalMap; // Offset: 184 + keen::StreamedTexture2D_float overlayAoMap; // Offset: 188 + keen::RfxSampler overlayNormalMapSampler; // Offset: 192 + keen::uint32 overlayNormalMapVertexColorChannelSwizzle; // Offset: 196 + keen::float2 overlayNormalMapTexCoordScaling; // Offset: 200 + keen::float3 dissolveEdgeGlowColor; // Offset: 208 + keen::float32 dissolveEdgeGlowWidthInv; // Offset: 220 + keen::float32 dissolveEdgeGlowParam; // Offset: 224 + keen::BindlessTexture3D_float dissolveNoiseMap; // Offset: 228 + keen::float32 dissolveNoiseTiling; // Offset: 232 + keen::float32 dissolveNoiseFadeRange; // Offset: 236 + keen::uint32 flags; // Offset: 240 +}; + +struct post_processing.NightAdaptation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.WhiteBalance { + keen::bool enable; // Offset: 0 + keen::float temperature; // Offset: 4 + keen::float tint; // Offset: 8 +}; + +struct post_processing.ChannelMixer { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb r; // Offset: 4 + keen::HdrColorRgb g; // Offset: 20 + keen::HdrColorRgb b; // Offset: 36 +}; + +struct post_processing.WeightedColor { + keen::HdrColorRgb color; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +struct post_processing.TonalColors { + keen::bool enable; // Offset: 0 + keen::post_processing::WeightedColor shadows; // Offset: 4 + keen::post_processing::WeightedColor midtones; // Offset: 24 + keen::post_processing::WeightedColor highlights; // Offset: 44 + keen::float shadowStart; // Offset: 64 + keen::float midStart; // Offset: 68 + keen::float midEnd; // Offset: 72 + keen::float highlightEnd; // Offset: 76 +}; + +struct post_processing.ColorChannelWeights { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 +}; + +struct post_processing.SlopeOffsetColor { + keen::bool enable; // Offset: 0 + keen::post_processing::ColorChannelWeights slope; // Offset: 4 + keen::post_processing::ColorChannelWeights offset; // Offset: 16 + keen::post_processing::ColorChannelWeights power; // Offset: 28 +}; + +struct post_processing.Contrast { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Vibrance { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Saturation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Curves { + keen::bool enable; // Offset: 0 + keen::post_processing::ColorChannelWeights shadowGamma; // Offset: 4 + keen::post_processing::ColorChannelWeights midpoint; // Offset: 16 + keen::post_processing::ColorChannelWeights highlightScale; // Offset: 28 +}; + +struct post_processing.ColorFilter { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct post_processing.ColorGrading { + keen::post_processing::NightAdaptation nightAdaptation; // Offset: 0 + keen::post_processing::WhiteBalance whiteBalance; // Offset: 8 + keen::post_processing::ChannelMixer channelMixer; // Offset: 20 + keen::post_processing::TonalColors tonalColors; // Offset: 72 + keen::post_processing::SlopeOffsetColor slopeOffsetColor; // Offset: 152 + keen::post_processing::Contrast contrast; // Offset: 192 + keen::post_processing::Vibrance vibrance; // Offset: 200 + keen::post_processing::Saturation saturation; // Offset: 208 + keen::post_processing::Curves curves; // Offset: 216 +}; + +struct PostProcessingParameters { + keen::post_processing::ColorFilter colorFilter; // Offset: 0 + keen::post_processing::ColorGrading colorGrading; // Offset: 20 +}; + +struct TonemappingConstants { + keen::float4 curve; // Offset: 0 + keen::float3 crosstalkPreSaturation; // Offset: 16 + keen::float hdrMax; // Offset: 28 + keen::float3 crosstalk; // Offset: 32 + keen::float3 crosstalkPostSaturation; // Offset: 48 +}; + +enum class PostProcessingCompositeFlag { + EnableBilateralGrid = 0, + EnableColorGrading = 1, + OverlayDebugColor = 2, + EnableDithering = 3, + SkipConversionToSrgb = 4, + EnableToneMapping = 5, + OutputFinalHistogram = 6, + ResetAlphaPreUpscale = 7, +}; + +typedef keen::Bitmask32 PostProcessingCompositeFlags; + +struct PostProcessingCompositeConstants { + keen::uint32 flags; // Offset: 0 + keen::float3 colorFilter; // Offset: 4 + keen::float32 bloomStrength; // Offset: 16 + keen::float32 temporalNoise; // Offset: 20 + keen::float3 lutOffset; // Offset: 32 + keen::float3 lutScale; // Offset: 48 + keen::float4 vignetteColor; // Offset: 64 + keen::float4 flashColor; // Offset: 80 + keen::TonemappingConstants toneMapping; // Offset: 96 +}; + +struct PostProcessingHistogramConstants { + keen::uint2 targetSize; // Offset: 0 + keen::float32 exposure; // Offset: 8 + keen::float32 inverseExposure; // Offset: 12 + keen::uint32 useSceneBrightness; // Offset: 16 +}; + +struct PostProcessingHistogramResult { + keen::StaticArray pixelCount; // Offset: 0 +}; + +struct SceneHistogramShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct BloomConstants { + keen::float2 halfPixelSize; // Offset: 0 + keen::uint applyBilateralGrid; // Offset: 8 + keen::float bilateralGridDetail; // Offset: 12 + keen::float thresholdLow; // Offset: 16 + keen::float thresholdHigh; // Offset: 20 + keen::float fogContribution; // Offset: 24 + keen::float compression; // Offset: 28 + keen::float scale; // Offset: 32 +}; + +struct ClearBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct FillBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::uint2 sourceSize; // Offset: 16 + keen::float2 oneOverSourceSize; // Offset: 24 + keen::float32 inverseExposure; // Offset: 32 +}; + +struct CopyResultBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct BlurBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::float3 oneOverGridSize; // Offset: 16 +}; + +struct ApplyBilateralGridConstants { + keen::float3 oneOverGridSize; // Offset: 0 + keen::float inverseExposure; // Offset: 12 + keen::float midPointLogLuminance; // Offset: 16 + keen::float highlightContrastFactor; // Offset: 20 + keen::float shadowContrastFactor; // Offset: 24 + keen::float detailFactor; // Offset: 28 +}; + +struct PrefixSumPrepareConstants { + keen::uint32 maxElementCount; // Offset: 0 + keen::uint32 counterIndex; // Offset: 4 +}; + +struct SmallPrefixSumShaderParameters { + keen::uint32 elementCount; // Offset: 0 +}; + +struct RenderShaderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 +}; + +enum class RenderVertexFormat { + P = 0, + PC = 1, + PT = 2, + PCT = 3, + PNCT = 4, + PNTT = 5, + PNTCT = 6, + Vfx = 7, +}; + +enum class TextureAlphaMode { + None = 0, + ExplicitChannel = 1, + Stencil = 2, + Smooth = 3, +}; + +enum class TextureContentType { + RgbColors = 0, + TangentSpaceNormals = 1, + RgbWithAlphaCoverage = 2, + AlphaCoverage = 3, + ObjectSpaceNormal = 4, +}; + +enum class TextureConverterFlag { + DontCreateMipMapChain = 0, + DisableSRGBToLinearConversionAtRuntime = 1, +}; + +typedef keen::Bitmask32 TextureConverterFlags; + +struct RenderTextureChannelData { + keen::ObjectReference image; // Offset: 0 + keen::TextureChannel sourceChannel; // Offset: 16 + keen::ObjectReference roughnessNormalMapImage; // Offset: 20 + keen::bool clampRoughnessNormalU; // Offset: 36 + keen::bool clampRoughnessNormalV; // Offset: 37 + keen::TextureChannel targetChannel; // Offset: 38 +}; + +struct RenderMaterialTextureSamplingInfo { + keen::uint8 vertexAttributeId; // Offset: 0 + keen::float32 scaling; // Offset: 4 +}; + +struct RenderMaterialTextureElement { + keen::BlobArray textureChannels; // Offset: 0 + keen::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 8 +}; + +struct RenderMaterialTextureData { + keen::uint32 offset; // Offset: 0 + keen::TextureType textureType; // Offset: 4 + keen::PixelFormat pixelFormat; // Offset: 5 + keen::TextureAlphaMode alphaMode; // Offset: 6 + keen::BlobArray textureElements; // Offset: 8 + keen::TextureContentType contentType; // Offset: 16 + keen::TextureConverterFlags convertFlags; // Offset: 20 + keen::string name; // Offset: 24 +}; + +enum class RenderSamplerFilterMode { + Nearest = 0, + Linear = 1, +}; + +enum class RenderComparisonFunction { + Never = 0, + Less = 1, + Equal = 2, + LessEqual = 3, + Greater = 4, + NotEqual = 5, + GreaterEqual = 6, + Always = 7, +}; + +struct RenderMaterialSamplerData { + keen::uint32 offset; // Offset: 0 + keen::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::RenderComparisonFunction comparisonFunction; // Offset: 10 +}; + +enum class RenderEffectId { + Simple = 0, + Billboard = 1, + Pbr = 2, + PbrTerrain = 3, + PbrBuilding = 4, + PbrRoof = 5, + Gizmo = 6, + Grid = 7, + VfxGrid = 8, + Transparent = 9, + TerraformingCursor = 10, + SkyTexture = 11, + ForestFogFootprint = 12, +}; + +enum class RenderMaterialFlag { + Tessellated = 0, + AlphaTested = 1, + DoubleSided = 2, + DisableShadows = 3, + CanDissolve = 4, +}; + +typedef keen::Bitmask8 RenderMaterialFlagMask; + +struct RenderMaterialConverterData { + keen::Guid objectId; // Offset: 0 + keen::string description; // Offset: 16 + keen::RenderEffectId effectId; // Offset: 24 + keen::RenderMaterialFlagMask flags; // Offset: 25 + keen::BlobArray data; // Offset: 28 + keen::HashKey32 dataTypeSignature; // Offset: 36 + keen::BlobArray textures; // Offset: 40 + keen::BlobArray samplers; // Offset: 48 + keen::RenderVertexFormat vertexFormat; // Offset: 56 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 60 +}; + +enum class RenderMemoryAllocatorObjectType { + Buffer = 0, + Texture = 1, +}; + +struct RenderMemoryAllocatorObjectState { + keen::RenderMemoryAllocatorObjectType type; // Offset: 0 + keen::string name; // Offset: 4 + keen::uint32 allocationRegionHandle; // Offset: 12 + keen::uint32 allocationMemoryType; // Offset: 16 + keen::uint64 allocationBlockHandle; // Offset: 24 + keen::uint64 allocationOffset; // Offset: 32 + keen::uint64 allocationSize; // Offset: 40 +}; + +struct RenderMemoryAllocatorAllocationState { + keen::uint32 handle; // Offset: 0 + keen::string name; // Offset: 4 + keen::BlobArray objects; // Offset: 12 +}; + +struct RenderMemoryAllocatorBlockState { + keen::uint64 handle; // Offset: 0 + keen::uint64 sizeInBytes; // Offset: 8 + keen::uint32 refCount; // Offset: 16 +}; + +struct RenderMemoryAllocatorRegionMemoryTypeState { + keen::uint32 memoryType; // Offset: 0 + keen::uint8 graphicsDeviceMemoryTypeIndex; // Offset: 4 + keen::bool isMapped; // Offset: 5 + keen::BlobArray blocks; // Offset: 8 +}; + +struct RenderMemoryAllocatorRegionState { + keen::uint32 handle; // Offset: 0 + keen::string name; // Offset: 4 + keen::GraphicsDeviceMemoryPriority priority; // Offset: 12 + keen::uint64 chunkSize; // Offset: 16 + keen::BlobArray memoryTypes; // Offset: 24 +}; + +struct RenderMemoryAllocatorState { + keen::BlobArray allocations; // Offset: 0 + keen::BlobArray regions; // Offset: 8 +}; + +struct RenderResources { + keen::ObjectReference renderSystem; // Offset: 0 + keen::ObjectReference worldMaterialBlending2; // Offset: 16 + keen::ObjectReference buildingMaterialBlending; // Offset: 32 + keen::ObjectReference giVoxelBuildingMaterial; // Offset: 48 + keen::ObjectReference worldDetailScatter; // Offset: 64 + keen::ObjectReference buildingDetailScatter; // Offset: 80 + keen::ObjectReference analyticFog; // Offset: 96 + keen::ObjectReference volumetricFog2; // Offset: 112 + keen::ObjectReference volumetricFogGridParameters; // Offset: 128 + keen::BlobArray> gpcResources; // Offset: 144 + keen::ObjectReference colorPaletteCollection; // Offset: 152 +}; + +struct RenderSceneCaptureModel { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference modelResource; // Offset: 56 +}; + +enum class RenderLightType { + Point = 0, +}; + +struct RenderLight { + keen::RenderLightType type; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 + keen::bool castShadows; // Offset: 20 + keen::float32 radius; // Offset: 24 +}; + +struct RenderSceneCaptureLight { + keen::WorldTransform transform; // Offset: 0 + keen::RenderLight light; // Offset: 56 +}; + +struct RenderSceneCaptureVfxInstance { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference vfxResource; // Offset: 56 + keen::float4 color; // Offset: 72 + keen::float4 param0; // Offset: 88 + keen::float4 param1; // Offset: 104 + keen::float4 param2; // Offset: 120 + keen::float4 param3; // Offset: 136 + keen::Time startTime; // Offset: 152 + keen::bool isActive; // Offset: 160 + keen::bool killWhenCulled; // Offset: 161 +}; + +struct RenderSceneCaptureChunk { + keen::WorldTransform transform; // Offset: 0 + keen::ContentHash voxelData; // Offset: 56 +}; + +struct RenderSceneCapture { + keen::WorldTransform captureViewTransform; // Offset: 0 + keen::BlobArray models; // Offset: 56 + keen::BlobArray lights; // Offset: 64 + keen::BlobArray vfxInstances; // Offset: 72 +}; + +enum class RenderAntiAliasingSetting { + None = 0, + FXAA = 1, + Fsr2 = 2, + Fsr3 = 3, + Dlss = 4, + Dlaa = 5, +}; + +typedef keen::Bitmask32 RenderAntiAliasingSettingsValidMask; + +enum class RenderTextureQualitySetting { + Low = 0, + Medium = 1, + High = 2, + Ultra = 3, +}; + +typedef keen::Bitmask32 RenderTextureQualitySettingsValidMask; + +struct RenderSettingsFeatures { + keen::RenderAntiAliasingSettingsValidMask antialiasingValidMask; // Offset: 0 + keen::RenderTextureQualitySettingsValidMask textureQualityValidMask; // Offset: 4 +}; + +enum class RenderSettingsPreset { + Lowest = 0, + Low = 1, + Medium = 2, + High = 3, + Ultra = 4, + Custom = 5, +}; + +enum class RenderFsr2PresetSetting { + Performance = 0, + Balance = 1, + Quality = 2, + UltraQuality = 3, +}; + +enum class RenderFsr3PresetSetting { + UltraPerformance = 0, + Performance = 1, + Balance = 2, + Quality = 3, + Native = 4, +}; + +enum class RenderDlssPresetSetting { + Auto = 0, + Quality = 1, + Balanced = 2, + Performance = 3, + UltraPerformance = 4, +}; + +enum class RenderShadowQualitySetting { + Low = 0, + Medium = 1, + High = 2, + Ultra = 3, +}; + +enum class RenderContactShadowsSetting { + Disabled = 0, + Enabled = 1, +}; + +enum class RenderGiSetting { + Performance = 0, + Balance = 1, + High = 2, + Ultra = 3, +}; + +enum class RenderReflectionsSetting { + Balance = 0, + High = 1, + Ultra = 2, +}; + +enum class RenderFogQualitySetting { + Low = 0, + High = 1, +}; + +enum class RenderFogVolumetricShadowQualitySetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderSsaoSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderDistantObjectsSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderDecoObjectsSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderDetailScatteringSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderVoxelMeshQualitySetting { + Low = 0, + High = 1, +}; + +enum class RenderTessellationSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderPointLightShadowsSetting { + Disabled = 0, + Lowest = 1, + Low = 2, + High = 3, + Ultra = 4, +}; + +struct RenderSettings { + keen::RenderSettingsPreset preset; // Offset: 0 + keen::RenderAntiAliasingSetting antiAliasing; // Offset: 4 + keen::RenderFsr2PresetSetting fsr2; // Offset: 8 + keen::RenderFsr3PresetSetting fsr3; // Offset: 12 + keen::RenderDlssPresetSetting dlss; // Offset: 16 + keen::RenderTextureQualitySetting textures; // Offset: 20 + keen::RenderShadowQualitySetting shadows; // Offset: 24 + keen::RenderContactShadowsSetting contactShadows; // Offset: 28 + keen::RenderGiSetting dynamicGi; // Offset: 32 + keen::RenderReflectionsSetting reflections; // Offset: 36 + keen::RenderFogQualitySetting fog; // Offset: 40 + keen::RenderFogVolumetricShadowQualitySetting volumetricShadow; // Offset: 44 + keen::RenderSsaoSetting ssao; // Offset: 48 + keen::RenderDistantObjectsSetting distantObjects; // Offset: 52 + keen::RenderDecoObjectsSetting decoObjects; // Offset: 56 + keen::RenderDetailScatteringSetting detailScattering; // Offset: 60 + keen::RenderVoxelMeshQualitySetting voxelMeshQuality; // Offset: 64 + keen::RenderTessellationSetting tessellation; // Offset: 68 + keen::RenderPointLightShadowsSetting pointLightShadows; // Offset: 72 + keen::float32 sharpness; // Offset: 76 +}; + +struct RenderSettingsGpuPresets { +}; + +enum class RenderSettingsGpuTargetResolution { + Target720p = 0, + Target1080p = 1, + Target1440p = 2, + TargetSteamDeck = 3, +}; + +enum class RenderSettingsGpuTargetFps { + Target30Fps = 0, + Target60Fps = 1, +}; + +struct RenderSettingsGpuMapping { + keen::RenderSettingsGpuTargetResolution targetResolution; // Offset: 0 + keen::RenderSettingsGpuTargetFps targetFps; // Offset: 4 + keen::RenderSettings settings; // Offset: 8 +}; + +struct RenderSettingsGpuMatch { + keen::string name; // Offset: 0 +}; + +struct RenderSettingsGpuPresetsResource { + keen::BlobArray gpus; // Offset: 0 + keen::BlobArray presets; // Offset: 8 +}; + +struct RenderSettingsGpuPresetsResourceGpu { + keen::HashKey32 nameHash; // Offset: 0 + keen::uint32 presetIndex; // Offset: 4 +}; + +struct RenderSettingsGpuPresetResource { + keen::RenderSettings settings; // Offset: 0 + keen::uint32 targetPixelCount; // Offset: 80 + keen::uint32 targetFps; // Offset: 84 +}; + +struct ForwardPointLightData { + keen::float3 position; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float falloffWeight; // Offset: 28 + keen::uint32 uniqueId; // Offset: 32 + keen::uint32 enableShadows; // Offset: 36 + keen::float radius; // Offset: 40 + keen::uint32 pad2; // Offset: 44 +}; + +struct ForwardDecalData { + keen::GraphicsMatrix43 decalTransform; // Offset: 0 + keen::float4 worldBoundingSphere; // Offset: 48 + keen::float4 color; // Offset: 64 + keen::float4 emissiveTintAndAlpha; // Offset: 80 + keen::uint32 materialDataIndex; // Offset: 96 + keen::float32 normalFade; // Offset: 100 + keen::uint layerMask; // Offset: 104 + keen::uint enableTransparencyCompositionMask; // Offset: 108 +}; + +struct ClusterCullingInfo { + keen::uint3 clusterSize; // Offset: 0 + keen::uint32 enableOverdraw; // Offset: 12 + keen::float2 inverseViewportSize; // Offset: 16 + keen::float32 zNear; // Offset: 24 + keen::float32 zFar; // Offset: 28 +}; + +struct RenderWeatherMaskResource { + keen::RenderTexture mask; // Offset: 0 +}; + +struct RenderWeatherResource { + keen::float2 snowBorderRangeMapping; // Offset: 0 + keen::RenderWeatherMaskResource snowBorderMask; // Offset: 8 +}; + +struct RenderWeatherPhenomenonResource { + keen::RenderTexture cloudMap; // Offset: 0 +}; + +struct RenderWeatherRasterCouldsParameters { + keen::float32 invRenderTargetSize; // Offset: 0 +}; + +struct RenderWeatherRasterCloudsInstanceData { + keen::float4 transformM; // Offset: 0 + keen::float2 transformT; // Offset: 16 + keen::uint32 data; // Offset: 24 + keen::BindlessTexture2D_float4 cloudMap; // Offset: 28 + keen::BindlessTexture2D_float restrictMask; // Offset: 32 + keen::BindlessTexture2D_float excludeMask; // Offset: 36 +}; + +struct RenderWeatherWeatherMapSubtractParameters { + keen::float32 wetnessValue; // Offset: 0 + keen::float32 puddleValue; // Offset: 4 +}; + +struct RenderWeatherWeatherMapAddParameters { + keen::float32 rainWetnessValue; // Offset: 0 + keen::float32 rainPuddleValue; // Offset: 4 +}; + +struct RenderWeatherDynamicWetnessSampleUpload { + keen::uint32 pointIndex; // Offset: 0 + keen::sint32 instanceIndex; // Offset: 4 + keen::sint32 boneIndex; // Offset: 8 + keen::float3 localPosition; // Offset: 12 +}; + +struct RenderWeatherDynamicWetnessSample { + keen::sint32 instanceIndex; // Offset: 0 + keen::sint32 boneIndex; // Offset: 4 + keen::float3 localPosition; // Offset: 8 +}; + +struct RenderWeatherDynamicWetnessUpdateConstants { + keen::uint32 uploadCount; // Offset: 0 + keen::float dryWetnessValue; // Offset: 4 + keen::float addRainWetnessValue; // Offset: 8 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 16 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 32 +}; + +struct RenderWeatherFilterDynamicHeightmapConstants { + keen::float2 rcpTextureSize; // Offset: 0 +}; + +enum class RenderWeatherInstanceFlag { + Tiling = 0, + MaskStrength = 1, + MaskRainStrength = 2, + Blizzard = 3, +}; + +typedef keen::Bitmask32 RenderWeatherInstanceFlags; + +struct RenderWeatherInstanceParameters { + keen::float2 positionXZ; // Offset: 0 + keen::Angle orientation; // Offset: 8 + keen::float2 scaleXZ; // Offset: 12 + keen::float32 strength; // Offset: 20 + keen::float32 rainThreshold; // Offset: 24 + keen::RenderWeatherInstanceFlags flags; // Offset: 28 +}; + +struct RenderWeatherDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +struct RenderWeatherDebugState { + keen::bool debugDrawInstances; // Offset: 0 + keen::BlobArray instances; // Offset: 4 +}; + +struct RenderWeatherDebugUpdateDebugDrawInstances { + keen::bool debugDrawInstances; // Offset: 0 +}; + +struct RenderWeatherDebugAddInstance { + keen::ObjectReference phenomenon; // Offset: 0 + keen::RenderWeatherInstanceParameters parameters; // Offset: 16 +}; + +struct RenderWeatherDebugRemoveInstance { + keen::uint32 handle; // Offset: 0 +}; + +struct RenderWeatherDebugSetInstanceParameters { + keen::uint32 handle; // Offset: 0 + keen::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +enum class RenderWeatherDebugMode { + None = 0, + Rain = 1, + Snow = 2, + Frost = 3, +}; + +enum class Fsr3QualityPreset { + UltraPerformance = 0, + Performance = 1, + Balance = 2, + Quality = 3, + Native = 4, +}; + +enum class RenderUpscaleTechnique { + None = 0, + Fsr3 = 1, + Dlss = 2, +}; + +enum class RenderFeatureFlag { + Shadows = 0, + VolumetricShadows = 1, + Vfx = 2, + VolumetricFogGrid = 3, + Fog = 4, + AnalyticFog = 5, + Bloom = 6, + Sdf = 7, + DetailScattering = 8, + RayTracing = 9, + Gi = 10, + GrassMovement = 11, + Ssao = 12, + DynamicHeightmap = 13, + SdfShadows = 14, + ContactShadows = 15, + ContactShadows2 = 16, + Fxaa = 17, + Fsr3 = 18, + BrickRenderer = 19, + StochasticScreenSpaceReflections = 20, + SdfAo = 21, + ManyLightsShadows = 22, + Dlss = 23, + SdfBvh = 24, + SnowDisplacement = 25, +}; + +typedef keen::Bitmask32 RenderFeatureFlags; + +struct BlendShapeId { +}; + +enum class BeaufortWindForce { + Calm = 0, + LightAir = 1, + LightBreeze = 2, + GentleBreeze = 3, + ModerateBreeze = 4, + FreshBreeze = 5, + StrongBreeze = 6, + HighWind = 7, + FreshGale = 8, + StrongGale = 9, + Storm = 10, + ViolentStorm = 11, + Hurricane = 12, +}; + +struct ShaderDataPrimitiveTypes { + keen::sint32 f0; // Offset: 0 + keen::float32 f1; // Offset: 4 + keen::sint64 f2; // Offset: 8 + keen::float4 f3; // Offset: 16 + keen::float3 f4; // Offset: 32 + keen::float2 f5; // Offset: 44 + keen::uint3 f6; // Offset: 52 + keen::uint4 f7; // Offset: 64 +}; + +struct RenderColorGradingMap { + keen::ObjectReference image; // Offset: 0 +}; + +struct RenderColorGradingMapResource { + keen::ContentHash content; // Offset: 0 + keen::string debugName; // Offset: 16 +}; + +typedef keen::ObjectReference RenderColorGradingMapReference; + +enum class RenderViewDebugDrawMode { + None = 0, + Sdf = 1, + SdfVoxels = 2, + Ibl = 3, + MotionVectors = 4, + LightCache = 5, + LightCacheLightCulling = 6, + Bricks = 7, + Gi = 8, + SdfBvh = 9, + GiIrradianceBuffer = 10, + ShadowCascades = 11, + ShadowMask = 12, + ShadowCascadesWithOcclusion = 13, + VoxelWorldShadowMap = 14, + TransparentOverdraw = 15, + Ssao = 16, + ReactiveMask = 17, + TransparencyMask = 18, + ClusteredDecalOverdraw = 19, + ClusterCullingDecalBinning = 20, + SceneBrightness = 21, +}; + +enum class RenderDescriptorSetId { + Global = 0, + RenderNode = 1, + Material = 2, +}; + +enum class RenderSubpassIndex { + Default = 0, + ExtendedAttributes = 1, +}; + +enum class RenderPipelineStage { + Vertex = 0, + TessellationControl = 1, + TessellationEvaluation = 2, + Fragment = 3, + Compute = 4, + RayTrace = 5, +}; + +enum class ShaderCompileSourceLanguage { + Hlsl_2021 = 0, + Hlsl_2018 = 1, + Glsl = 2, + Pssl = 3, +}; + +enum class RenderPrimitiveType { + TriangleList = 0, + TriangleStrip = 1, + LineList = 2, + PatchList = 3, +}; + +struct RenderSampler { + keen::RenderSamplerAddressMode addressModeU; // Offset: 0 + keen::RenderSamplerAddressMode addressModeV; // Offset: 1 + keen::RenderSamplerAddressMode addressModeW; // Offset: 2 + keen::RenderSamplerFilterMode minFilter; // Offset: 3 + keen::RenderSamplerFilterMode magFilter; // Offset: 4 + keen::RenderSamplerFilterMode mipFilter; // Offset: 5 + keen::RenderComparisonFunction comparisonFunction; // Offset: 6 + keen::bool anisotropyEnable; // Offset: 7 +}; + +enum class RenderParameterBlockPatchPointType { + Texture = 0, + StreamedTexture = 1, + Sampler = 2, +}; + +struct RenderParameterBlockPatchPoint { + keen::RenderParameterBlockPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 parameterIndex; // Offset: 12 +}; + +struct RenderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 + keen::uint8 stream; // Offset: 2 +}; + +enum class ComputeGroupCountAlgorithm { + Target2D = 0, + Target2DHalf = 1, + Target2DArray = 2, + Target2DWidthOnly = 3, + Target3D = 4, + Target3DArray = 5, +}; + +struct RenderModelImageSizeInfo { + keen::float32 texelsPerMeter; // Offset: 0 +}; + +struct RenderMaterialImage { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 width; // Offset: 4 + keen::uint16 height; // Offset: 6 + keen::uint16 depth; // Offset: 8 + keen::uint16 arraySize; // Offset: 10 + keen::uint8 levelCount; // Offset: 12 + keen::TextureType type; // Offset: 13 + keen::PixelFormat format; // Offset: 14 + keen::ContentHash data; // Offset: 16 + keen::bool enableStreaming; // Offset: 32 + keen::string debugName; // Offset: 36 +}; + +struct RenderMaterialSampler { + keen::uint32 dataOffset; // Offset: 0 + keen::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::RenderComparisonFunction comparisonFunction; // Offset: 10 + keen::bool anisotropyEnable; // Offset: 11 +}; + +enum class RfxSamplerId { + Wrap = 0, + Clamp = 1, + ClampToZero = 2, + Mirror = 3, +}; + +struct RenderMaterialResource { + keen::RenderEffectId effectId; // Offset: 0 + keen::RenderMaterialFlagMask flags; // Offset: 1 + keen::BlobArray data; // Offset: 4 + keen::HashKey32 dataTypeSignature; // Offset: 12 + keen::BlobArray images; // Offset: 16 + keen::BlobArray samplers; // Offset: 24 + keen::string debugName; // Offset: 32 +}; + +typedef keen::ObjectReference RenderMaterialResourceReference; + +struct RenderMaterialTextureInfo { + keen::uint3 size; // Offset: 0 + keen::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 12 +}; + +struct RenderMaterialInfo { + keen::RenderEffectId effectId; // Offset: 0 + keen::RenderMaterialFlagMask flags; // Offset: 1 + keen::HashKey32 dataTypeSignature; // Offset: 4 + keen::bool hasStreamedTextures; // Offset: 8 + keen::BlobArray textures; // Offset: 12 +}; + +struct RenderBlendResourceData { + keen::ObjectReference id; // Offset: 0 +}; + +struct RenderMaterialMesh { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::Sphere boundingSphere; // Offset: 32 + keen::RenderEffectId renderEffectId; // Offset: 48 + keen::uint8 clothMeshIndex; // Offset: 49 + keen::RenderMaterialResourceReference material; // Offset: 52 + keen::RenderMaterialFlagMask materialFlags; // Offset: 68 + keen::BlobArray materialImageSizeInfos; // Offset: 72 + keen::ContentHash materialModelData; // Offset: 80 + keen::HashKey32 materialModelDataTypeSignatureHash; // Offset: 96 + keen::float3 positionScale; // Offset: 100 + keen::float3 positionOffset; // Offset: 112 + keen::uint32 vertexCount; // Offset: 124 + keen::uint32 indexCount; // Offset: 128 + keen::ContentHash vertexData; // Offset: 132 + keen::ContentHash indexData; // Offset: 148 + keen::ContentHash skinningData; // Offset: 164 + keen::ContentHash blendShapeVertexData; // Offset: 180 + keen::uint32 blendShapeMask; // Offset: 196 + keen::string debugName; // Offset: 200 +}; + +struct RenderModelLod { + keen::uint32 firstMeshIndex; // Offset: 0 + keen::uint32 meshCount; // Offset: 4 + keen::float32 pixelSize; // Offset: 8 +}; + +enum class RenderRayTraceVertexFormat { + Pos3f_Normal3f_Color4ub = 0, +}; + +struct RenderRayTraceMeshPart { + keen::uint32 jointIndex; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexOffset; // Offset: 12 + keen::uint32 vertexCount; // Offset: 16 +}; + +struct RenderRayTraceMesh { + keen::RenderRayTraceVertexFormat vertexFormat; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::ContentHash vertexData; // Offset: 12 + keen::ContentHash indexData; // Offset: 28 + keen::BlobArray parts; // Offset: 44 +}; + +struct RenderModelClothSleeve { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::uint32 upperJointIndex; // Offset: 32 + keen::uint32 lowerJointIndex; // Offset: 36 + keen::uint32 instanceIndex; // Offset: 40 + keen::ContentHash planes; // Offset: 44 + keen::ContentHash particleIndicies; // Offset: 60 +}; + +struct RenderModelSdfMaterial { + keen::float3 albedo; // Offset: 0 + keen::uint dummy; // Offset: 12 + keen::float3 emissive; // Offset: 16 +}; + +struct RenderModelSdfPart { + keen::uint3 resolution; // Offset: 0 + keen::uint32 jointIndex; // Offset: 12 + keen::uint8 mipLevelCount; // Offset: 16 + keen::float3 origin; // Offset: 20 + keen::float3 totalSize; // Offset: 32 + keen::ContentHash pixels; // Offset: 44 + keen::RenderModelSdfMaterial material; // Offset: 60 +}; + +struct RenderModelSdfData { + keen::BlobArray parts; // Offset: 0 +}; + +struct RenderGradientMapResource { + keen::uint16 width; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::PixelFormat format; // Offset: 3 + keen::ContentHash data; // Offset: 4 + keen::string debugName; // Offset: 20 +}; + +struct RenderModelClothColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::bool ignoreClothCollider; // Offset: 1 + keen::BlobArray spheres; // Offset: 4 + keen::BlobArray capsules; // Offset: 12 + keen::BlobArray instances; // Offset: 20 +}; + +struct SkinnedTreeModelData { + keen::BlobArray jointMatrix; // Offset: 0 + keen::BlobArray jointParent; // Offset: 8 + keen::BlobArray jointSpringData; // Offset: 16 + keen::BlobArray leafJoints; // Offset: 24 + keen::BlobArray inverseTransformTree; // Offset: 32 +}; + +struct RenderModel { + keen::string debugName; // Offset: 0 + keen::BlobArray meshes; // Offset: 8 + keen::BlobArray lods; // Offset: 16 + keen::AxisAlignedBox aabb; // Offset: 32 + keen::RenderRayTraceMesh rayTraceMesh; // Offset: 64 + keen::ObjectReference hierarchy; // Offset: 116 + keen::uint16 hierarchyJointCount; // Offset: 132 + keen::BlobArray skinningMap; // Offset: 136 + keen::BlobOptional cloth; // Offset: 144 + keen::BlobOptional chain; // Offset: 148 + keen::RenderModelClothColliderData collider; // Offset: 152 + keen::BlobArray sleeves; // Offset: 180 + keen::BlobArray blendShapes; // Offset: 188 + keen::uint32 jointCount; // Offset: 196 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 200 + keen::bool hasCardClusterLod; // Offset: 204 + keen::RenderModelSdfData sdf; // Offset: 208 + keen::SkinnedTreeModelData skinnedTree; // Offset: 216 +}; + +struct RenderClothVertexSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothFabricResource { + keen::uint32 numParticles; // Offset: 0 + keen::BlobArray phaseIndices; // Offset: 4 + keen::BlobArray sets; // Offset: 12 + keen::BlobArray restValues; // Offset: 20 + keen::BlobArray stiffnessValues; // Offset: 28 + keen::BlobArray indices; // Offset: 36 + keen::BlobArray anchors; // Offset: 44 + keen::BlobArray tetherLengths; // Offset: 52 + keen::BlobArray triangles; // Offset: 60 +}; + +struct RenderClothMeshResource { + keen::RenderClothFabricResource fabric; // Offset: 0 + keen::BlobArray simulationPositions; // Offset: 68 + keen::BlobArray simulationInvMasses; // Offset: 76 + keen::BlobArray simulationStiffnesses; // Offset: 84 + keen::BlobArray simulationVertexWeights; // Offset: 92 + keen::BlobArray simulationTriangles; // Offset: 100 + keen::BlobArray simulationBlendshapeDeltas; // Offset: 108 + keen::BlobArray simulationSkinningData; // Offset: 116 + keen::BlobArray skinnedVertexIndices; // Offset: 124 + keen::BlobArray renderPositions; // Offset: 132 + keen::BlobArray renderUvs; // Offset: 140 + keen::BlobArray renderTriangles; // Offset: 148 + keen::BlobArray renderSimulationVertexIndices; // Offset: 156 +}; + +struct RenderClothMesh { + keen::ContentHash data; // Offset: 0 + keen::float32 gravity; // Offset: 16 + keen::float32 windStrength; // Offset: 20 + keen::float32 dragCoefficient; // Offset: 24 + keen::float32 liftCoefficient; // Offset: 28 + keen::float32 damping; // Offset: 32 + keen::float32 linearInertia; // Offset: 36 + keen::float32 angularInertia; // Offset: 40 + keen::float32 centrifugalInertia; // Offset: 44 + keen::float32 tetherStiffness; // Offset: 48 + keen::float32 phasesStiffness; // Offset: 52 + keen::float32 phasesCompressionLimit; // Offset: 56 + keen::float32 phasesStretchLimit; // Offset: 60 + keen::float32 motionConstraintsStiffness; // Offset: 64 + keen::float32 collisionFriction; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 76 + keen::float32 motionConstraintsMaxRadius; // Offset: 80 +}; + +struct RenderClothColliderSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothColliderSphere { + keen::float3 center; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::RenderClothColliderSkinningData skinningData; // Offset: 16 +}; + +struct RenderClothColliderCapsule { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::RenderClothColliderSkinningData skinningData; // Offset: 32 +}; + +struct RenderModelColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::BlobArray spheres; // Offset: 4 + keen::BlobArray capsules; // Offset: 12 +}; + +struct RenderModelColliderInstanceData { + keen::BlobArray sphereIndices; // Offset: 0 + keen::BlobArray capsuleIndices; // Offset: 8 +}; + +struct RenderModelClothData { + keen::bool hasSkinning; // Offset: 0 + keen::BlobArray meshes; // Offset: 4 +}; + +struct RenderClothColliderResource { + keen::bool hasSkinning; // Offset: 0 + keen::uint32 maxJointIndex; // Offset: 4 + keen::BlobArray spheres; // Offset: 8 + keen::BlobArray capsules; // Offset: 16 +}; + +struct RenderModelChainConfig { + keen::bool propagateRotation; // Offset: 0 + keen::float32 gravity; // Offset: 4 + keen::float32 mass; // Offset: 8 + keen::float32 dragCoefficient; // Offset: 12 + keen::float32 liftCoefficient; // Offset: 16 + keen::float32 stiffnessFrequencey; // Offset: 20 + keen::float32 damping; // Offset: 24 + keen::float32 motionConstraintRadius; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 phasesStiffness; // Offset: 44 + keen::float32 phasesStiffnessMultiplier; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 collisionFriction; // Offset: 60 +}; + +struct RenderModelChain { + keen::Guid guid; // Offset: 0 + keen::uint16 jointBeginIndex; // Offset: 16 + keen::uint16 jointEndIndex; // Offset: 18 + keen::uint16 constraintBeginIndex; // Offset: 20 + keen::uint16 constraintEndIndex; // Offset: 22 + keen::uint8 configIndex; // Offset: 24 + keen::uint8 colliderIndex; // Offset: 25 +}; + +struct RenderModelChainData { + keen::BlobArray chains; // Offset: 0 + keen::BlobArray configs; // Offset: 8 + keen::BlobArray chainColliders; // Offset: 16 + keen::BlobArray anchorHierarchyJoints; // Offset: 24 + keen::BlobArray anchorDefaultPose; // Offset: 32 + keen::BlobArray anchorRestPosition; // Offset: 40 + keen::BlobArray joints; // Offset: 48 + keen::BlobArray modelMatrices; // Offset: 56 + keen::BlobArray skinToJointMatrix; // Offset: 64 + keen::BlobArray restPosition; // Offset: 72 + keen::BlobArray constraintJoints; // Offset: 80 + keen::BlobArray constraints; // Offset: 88 +}; + +struct RenderModelMaterialMeshData { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::RenderEffectId renderEffectId; // Offset: 32 + keen::uint32 vertexCount; // Offset: 36 + keen::uint32 indexCount; // Offset: 40 + keen::ContentHash vertexData; // Offset: 44 + keen::ContentHash indexData; // Offset: 60 +}; + +struct RenderModelLodMeshData { + keen::BlobArray meshes; // Offset: 0 +}; + +struct RenderModelMeshData { + keen::BlobArray lods; // Offset: 0 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 8 +}; + +struct RenderModelLodInfo { + keen::uint32 vertexCount; // Offset: 0 + keen::uint32 indexCount; // Offset: 4 +}; + +struct RenderModelInfo { + keen::BlobArray lods; // Offset: 0 + keen::ObjectReference modelHierarchy; // Offset: 8 +}; + +enum class AnalyticFogShapeType { + Sphere = 0, + Box = 1, +}; + +struct AnalyticFogShape { + keen::AnalyticFogShapeType type; // Offset: 0 + keen::float3 halfSize; // Offset: 4 + keen::float32 falloff; // Offset: 16 +}; + +struct RenderFogInjection { + keen::AnalyticFogShape shape; // Offset: 0 + keen::float32 absorption; // Offset: 20 + keen::Color scattering; // Offset: 24 + keen::Color emission; // Offset: 28 + keen::float32 density; // Offset: 32 +}; + +struct RenderFogDissolve { + keen::AnalyticFogShape shape; // Offset: 0 + keen::float32 strength; // Offset: 20 +}; + +struct RenderModelDrawData2 { + keen::float4 boundingSphere; // Offset: 0 + keen::uint flags; // Offset: 16 + keen::uint sizeFeedbackIndex; // Offset: 20 + keen::uint firstMesh; // Offset: 24 + keen::uint lodCount; // Offset: 28 + keen::StaticArray lodMeshOffsets; // Offset: 32 + keen::StaticArray lodMeshCounts; // Offset: 64 + keen::StaticArray lodPixelSizes; // Offset: 96 +}; + +struct RenderMeshDrawData2 { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint pipelineBits; // Offset: 28 + keen::uint indexOffset; // Offset: 32 + keen::uint indexCount; // Offset: 36 + keen::int vertexOffset; // Offset: 40 + keen::uint modelMaterialData; // Offset: 44 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 48 + keen::uint blendShapeVertexOffset; // Offset: 52 + keen::uint blendShapeMask; // Offset: 56 + keen::uint vertexCount; // Offset: 60 +}; + +struct RenderInstanceData { + keen::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 32 + keen::uint32 tintColor; // Offset: 80 + keen::BindlessTexture2D_float4 tintGradientMap; // Offset: 84 + keen::uint32 highlightColorPaletteIndexTransparency; // Offset: 88 + keen::uint32 flagsAndEmissiveFactor; // Offset: 92 + keen::float4 dissolveParameters; // Offset: 96 + keen::float32 dissolveEdgeBrightness; // Offset: 112 + keen::float32 alphaClip; // Offset: 116 + keen::uint32 activeBlendShapeMask; // Offset: 120 + keen::uint32 blendShapeWeights; // Offset: 124 + keen::StaticArray clothMeshDataOffsets; // Offset: 128 + keen::uint32 albedoTintColorIndices; // Offset: 144 + keen::uint32 skinMatrixOffset; // Offset: 148 + keen::uint32 decalLayerMask; // Offset: 152 + keen::uint32 dynamicWetnessOffset; // Offset: 156 + keen::uint32 modelIndex; // Offset: 160 + keen::uint32 groupMask; // Offset: 164 +}; + +struct DetailScatteringInstanceData { + keen::uint3 packedWorldPosition; // Offset: 0 + keen::uint scaleAndFadeout; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct HighlightColorPaletteSettings { + keen::float highlightAmount; // Offset: 0 + keen::float highlightIntensity; // Offset: 4 + keen::Color invalidHighlightColor; // Offset: 8 + keen::Color validHighlightColor; // Offset: 12 + keen::Color mutedHighlightColor; // Offset: 16 + keen::Color group1HighlightColor; // Offset: 20 + keen::Color group2HighlightColor; // Offset: 24 + keen::Color group3HighlightColor; // Offset: 28 + keen::Color group4HighlightColor; // Offset: 32 +}; + +struct WeatherSurfaceMaterialSettings { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float snowVertexNormalPower; // Offset: 8 + keen::float snowVertexNormalCutoff; // Offset: 12 + keen::float frostUVScale; // Offset: 16 + keen::float frostScale; // Offset: 20 + keen::float frostRoughness; // Offset: 24 + keen::float frostPorosityScale; // Offset: 28 + keen::Color frostAlbedo; // Offset: 32 + keen::Color frostPuddleAlbedo; // Offset: 36 +}; + +struct RenderSystemResource { + keen::SpecularIblLutResource specularIblLut; // Offset: 0 + keen::ObjectReference blueNoiseMap; // Offset: 20 + keen::RenderTexture blueNoiseRenderImage; // Offset: 36 + keen::ObjectReference globalSlopeDefinition; // Offset: 72 + keen::HighlightColorPaletteSettings highlightColorPalette; // Offset: 88 + keen::WeatherSurfaceMaterialSettings weatherSurfaceMaterialSettings; // Offset: 124 + keen::bool verifyDecoObjectMeshCountLimit; // Offset: 164 + keen::bool verifyDetailScatteringMeshCountLimit; // Offset: 165 + keen::ObjectReference atmosphere; // Offset: 168 + keen::ObjectReference zoneVisualizationSettings; // Offset: 184 + keen::ObjectReference frostBlendMask; // Offset: 200 + keen::ObjectReference snowRoughness; // Offset: 216 + keen::ObjectReference snowAlbedo; // Offset: 232 + keen::ObjectReference snowNormal; // Offset: 248 + keen::RenderTexture frostBlendMaskRenderImage; // Offset: 264 + keen::RenderTexture snowRoughnessRenderImage; // Offset: 300 + keen::RenderTexture snowAlbedoRenderImage; // Offset: 336 + keen::RenderTexture snowNormalRenderImage; // Offset: 372 +}; + +struct RenderModelChunkInstance { + keen::float3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::Quaternion orientation; // Offset: 16 + keen::uint16 modelIndex; // Offset: 32 + keen::bool canBeCulled; // Offset: 34 +}; + +struct RenderModelChunkModelData { + keen::WorldPosition origin; // Offset: 0 + keen::float3 extents; // Offset: 24 + keen::BlobArray instances; // Offset: 36 + keen::BlobArray entityIndexMap; // Offset: 44 + keen::BlobArray modelGuids; // Offset: 52 +}; + +struct RenderModelChunkModelResource { + keen::ContentHash modelData; // Offset: 0 + keen::HashKey32 modelDataTypeSignatureHash; // Offset: 16 +}; + +struct RenderModelChunkGridResource { + keen::uint2 chunkCount; // Offset: 0 +}; + +struct GBufferTemporalFilterConstants { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float temporalWeight; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 96 +}; + +struct TransparentMergeStartConstants { + keen::uint instanceCounterByteOffset; // Offset: 0 + keen::uint maxInstanceCount; // Offset: 4 +}; + +struct TransparentMergePrepareConstants { + keen::uint maxTriangleCount; // Offset: 0 +}; + +struct VoxelChunklet { + keen::float4 sphere; // Offset: 0 + keen::float4 normal; // Offset: 16 +}; + +struct GiVoxelMaterial { + keen::float3 emissive; // Offset: 0 + keen::float3 albedo; // Offset: 12 + keen::float roughness; // Offset: 24 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct GiVoxelBuildingMaterial { + keen::GiVoxelMaterial top; // Offset: 0 + keen::GiVoxelMaterial side; // Offset: 36 + keen::GiVoxelMaterial bottom; // Offset: 72 +}; + +struct GiVoxelBuildingMaterialResource { + keen::BlobArray materials; // Offset: 0 +}; + +struct BakeWorldTriangleMaterialDataVertexShaderParameters { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 vertexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 +}; + +struct BakeWorldTriangleMaterialDataTriangleShaderParameters { + keen::uint32 triangleCount; // Offset: 0 + keen::uint32 vertexOffset; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 + keen::uint32 bakedTriangleMaterialDataOffset; // Offset: 32 + keen::uint32 feedbackDataOffset; // Offset: 36 + keen::uint4 debug; // Offset: 48 +}; + +struct PatchMeshVerticesParameters { + keen::float3 positionOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 12 + keen::float3 positionScale; // Offset: 16 + keen::uint vertexStride; // Offset: 28 + keen::uint vertexOffset; // Offset: 32 +}; + +struct RenderBlendShapeSlot { + keen::ObjectReference id; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +enum class DetailScatteringPass { + DepthPrePass = 0, + Geometry = 1, +}; + +enum class DetailScatteringError { + OutOfDraws = 1, + OutOfObjects = 2, +}; + +enum class DetailScatteringDebugMode { + DetailScatteringDebugMode_None = 0, + DetailScatteringDebugMode_SingleModel = 1, + DetailScatteringDebugMode_SingleMaterial = 2, +}; + +struct ScatterModelData { + keen::GpuModel model; // Offset: 0 +}; + +struct ScatteredObjectData { + keen::uint modelIndexAndLodIndex; // Offset: 0 + keen::float fadeout; // Offset: 4 +}; + +struct ScatterTriangleCullingShaderParameters { + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint triangleBinSize; // Offset: 64 + keen::GpuCullingFrustum frustum; // Offset: 80 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::uint chunkletBinSize; // Offset: 244 + keen::float boundingSphereBias; // Offset: 248 + keen::float maxScatterDistance; // Offset: 252 +}; + +struct ScatterTriangleCullingPushConstants { + keen::uint chunkIndex; // Offset: 0 +}; + +struct ScatterChunkletCullingShaderParameters { + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint chunkletBinSize; // Offset: 64 + keen::GpuCullingFrustum frustum; // Offset: 80 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::float boundingSphereBias; // Offset: 244 + keen::float maxScatterDistance; // Offset: 248 +}; + +struct ScatterChunkletCullingPushConstants { + keen::uint jobCount; // Offset: 0 +}; + +struct ScatterObjectPrepareShaderParameters { + keen::uint targetGroupSize; // Offset: 0 +}; + +struct DetailScatteringShaderData { + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::uint scatteredObjectCounterOffset; // Offset: 16 + keen::uint scatteredObjectCapacity; // Offset: 20 + keen::uint scatteredCandidateCounterOffset; // Offset: 24 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::GraphicsMatrix44 cameraCenteredViewProjection; // Offset: 80 + keen::float4 frustumPlane0; // Offset: 144 + keen::float4 frustumPlane1; // Offset: 160 + keen::float4 frustumPlane2; // Offset: 176 + keen::float4 frustumPlane3; // Offset: 192 + keen::float4 frustumPlane4; // Offset: 208 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint dynamicHeightmapValid; // Offset: 272 + keen::uint debugMode; // Offset: 276 + keen::uint debugValue; // Offset: 280 + keen::float densityProbability; // Offset: 284 + keen::float modelSizeFeedbackPixelSize; // Offset: 288 + keen::float distanceCullingThreshold; // Offset: 292 + keen::float sizeCullingPixelSize; // Offset: 296 + keen::uint permutationBucketCount; // Offset: 300 + keen::float maxScatterDistance; // Offset: 304 + keen::float invMaxDistanceFadeLength; // Offset: 308 + keen::float displacementFadeoutStart; // Offset: 312 + keen::float displacementFadeoutEnd; // Offset: 316 + keen::float displacementStrength; // Offset: 320 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 336 + keen::uint occlusionCullingEnabled; // Offset: 400 + keen::uint triangleBinSize; // Offset: 404 +}; + +struct DetailScatteringChunkShaderData { + keen::float4 translationAndScale; // Offset: 0 + keen::uint indexOffset; // Offset: 16 + keen::uint vertexOffset; // Offset: 20 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 24 + keen::uint triangleCount; // Offset: 28 + keen::uint chunkletOffset; // Offset: 32 + keen::uint chunkletCount; // Offset: 36 +}; + +struct ScatterInstanceOffsetShaderData { + keen::uint scatterModelCount; // Offset: 0 + keen::uint instanceCounterOffset; // Offset: 4 + keen::DetailScatteringDebugMode debugMode; // Offset: 8 + keen::uint debugValue; // Offset: 12 + keen::uint permutationBucketCount; // Offset: 16 +}; + +struct ScatterInstancesShaderData { + keen::uint scatteredObjectCounterOffset; // Offset: 0 + keen::DetailScatteringDebugMode debugMode; // Offset: 4 + keen::uint debugValue; // Offset: 8 + keen::uint permutationBucketCount; // Offset: 12 +}; + +struct BiomeMap { + keen::Biome baseBiome; // Offset: 0 +}; + +struct BiomeMapLayer { + keen::Biome biome; // Offset: 0 +}; + +struct BiomeMapInfo { + keen::uint2 size; // Offset: 0 + keen::StaticArray data; // Offset: 8 +}; + +struct SdfCascadeData { + keen::GraphicsMatrix44 ndcToSdfMatrix; // Offset: 0 + keen::int3 origin; // Offset: 64 +}; + +struct SdfShaderData { + keen::uint32 sdfCascadeCount; // Offset: 0 + keen::uint32 sdfInstanceCount; // Offset: 4 + keen::uint32 sdfBaseDescriptorIndex; // Offset: 8 + keen::float32 sdfInvGridSize; // Offset: 12 +}; + +struct SdfDebugShaderParameters { + keen::SdfShaderData sdf; // Offset: 0 + keen::float3 cameraPosition; // Offset: 16 + keen::uint32 visibleGroupMask; // Offset: 28 +}; + +struct SdfCaptureDebugShaderParameters { + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 +}; + +struct SdfVoxelRegion { + keen::int3 origin; // Offset: 0 + keen::uint32 bufferOffset; // Offset: 12 + keen::uint3 size; // Offset: 16 +}; + +struct SdfUpdateShaderParameters { + keen::SdfVoxelRegion newVoxelRegion0; // Offset: 0 + keen::SdfVoxelRegion newVoxelRegion1; // Offset: 32 + keen::SdfVoxelRegion newVoxelRegion2; // Offset: 64 + keen::SdfVoxelRegion dirtyVoxelRegion; // Offset: 96 + keen::int3 origin; // Offset: 128 + keen::uint32 size; // Offset: 140 +}; + +struct SdfBakingShaderParameters { + keen::int3 voxelOrigin; // Offset: 0 + keen::uint32 volumeSize; // Offset: 12 + keen::float32 voxelSizeInMeters; // Offset: 16 + keen::uint3 targetOffset; // Offset: 20 +}; + +struct SdfFloodShaderParameters { + keen::sint32 stepSize; // Offset: 0 +}; + +struct SdfCascadeUpdateShaderParameters { + keen::uint32 cascadeIndex; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 +}; + +struct WorldChunkVoxelMaterialCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 + keen::uint32 chunkIndex; // Offset: 8 + keen::uint2 chunkData; // Offset: 16 +}; + +struct SdfModelShaderData { + keen::uint32 partCount; // Offset: 0 + keen::uint32 partOffset; // Offset: 4 +}; + +struct SdfModelPartShaderData { + keen::uint32 descriptorIndex; // Offset: 0 +}; + +struct SdfInstanceShaderData { + keen::uint32 modelIndex; // Offset: 0 + keen::uint32 partCount; // Offset: 4 + keen::uint32 partOffset; // Offset: 8 +}; + +struct SdfInstancePartShaderData { + keen::GraphicsMatrix43 inverseTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::float3 aabbMax; // Offset: 108 +}; + +struct SdfImageMaterialShaderData { + keen::float3 albedo; // Offset: 0 + keen::float3 emissive; // Offset: 12 +}; + +struct SdfSystemUpdateShaderParameters { + keen::uint newModelCount; // Offset: 0 + keen::uint newModelPartCount; // Offset: 4 + keen::uint newMaterialCount; // Offset: 8 +}; + +struct SdfSceneUpdateShaderParameters { + keen::uint newInstanceCount; // Offset: 0 + keen::uint newInstancePartCount; // Offset: 4 +}; + +struct SdfSystemShaderData { + keen::uint activeInstanceCount; // Offset: 0 + keen::uint activeInstancePartCount; // Offset: 4 +}; + +struct SdfAoTraceShaderParameters { + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint32 frameId; // Offset: 64 + keen::float radius; // Offset: 68 +}; + +struct SdfAoFilterShaderParameters { + keen::float2 inverseTargetSize; // Offset: 0 + keen::uint32 frameId; // Offset: 8 + keen::uint32 isHistoryValid; // Offset: 12 +}; + +enum class SdfBvhBuildMethod { + LBVH = 0, + LOC = 1, +}; + +struct SdfBvhCommonInstanceData { + keen::GraphicsMatrix43 worldToUvwMatrix; // Offset: 0 + keen::GraphicsMatrix43 uvwToWorldMatrix; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::uint descriptorIndex; // Offset: 108 + keen::float3 aabbMax; // Offset: 112 +}; + +struct SdfBvhNodeShaderData { + keen::float3 aabbMin; // Offset: 0 + keen::uint offset; // Offset: 12 + keen::float3 aabbMax; // Offset: 16 + keen::uint count; // Offset: 28 +}; + +struct SdfBvhDebugVisualizeIntersectionShaderParameters { + keen::float3 sunDirection; // Offset: 0 + keen::float3 cameraOrigin; // Offset: 16 + keen::float3 farPlaneOrigin; // Offset: 32 + keen::float3 farPlaneX; // Offset: 48 + keen::float3 farPlaneY; // Offset: 64 + keen::float2 inverseTargetSize; // Offset: 80 +}; + +struct SdfBvhDebugTraversalShaderParameters { + keen::float3 rayOrigin; // Offset: 0 + keen::float3 rayDirection; // Offset: 16 + keen::float rayLength; // Offset: 28 +}; + +enum class SdfBvhDebugStepType { + None = 0, + Leaf = 1, + Inner = 2, +}; + +struct SdfBvhDebugStepLeafShaderData { + keen::SdfBvhCommonInstanceData instance; // Offset: 0 + keen::float boxHitDistance; // Offset: 124 + keen::float sdfHitDistance; // Offset: 128 + keen::float hitDistance; // Offset: 132 +}; + +struct SdfBvhDebugStepInnerShaderData { + keen::float3 aabbMin0; // Offset: 0 + keen::float3 aabbMax0; // Offset: 12 + keen::float3 aabbMin1; // Offset: 24 + keen::float3 aabbMax1; // Offset: 36 + keen::float hitDistance0; // Offset: 48 + keen::float hitDistance1; // Offset: 52 +}; + +struct SdfBvhDebugStepShaderData { + keen::SdfBvhDebugStepType type; // Offset: 0 + keen::SdfBvhDebugStepLeafShaderData leaf; // Offset: 4 + keen::SdfBvhDebugStepInnerShaderData inner; // Offset: 140 + keen::float closestHit; // Offset: 196 +}; + +struct RenderSdfShadowShaderParameters { + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::float3 sunDirection; // Offset: 64 + keen::float sunConeAngle; // Offset: 76 + keen::uint2 targetSize; // Offset: 80 + keen::uint frameId; // Offset: 88 + keen::float rayBias; // Offset: 92 + keen::uint32 isSdfCacheValid; // Offset: 96 + keen::uint32 pixelSize; // Offset: 100 +}; + +enum class RasterShadowQuality { + Low = 0, + Medium = 1, + High = 2, + Ultra = 3, +}; + +struct RenderShadowAtlasMaskShaderParameters { + keen::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 + keen::float texelSize; // Offset: 1160 + keen::float3 toLightDirection; // Offset: 1168 +}; + +struct RenderShadowAtlasDebugShaderParameters { + keen::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 +}; + +struct VoxelWorldShadowDebugShaderParameters { + keen::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 0 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 160 + keen::uint2 targetSize; // Offset: 224 +}; + +struct PrimeShadowMapConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 64 + keen::float3 cameraWorldPosition; // Offset: 128 + keen::uint32 depthPyramidMip; // Offset: 140 + keen::float2 depthPyramidAspectRatio; // Offset: 144 + keen::uint32 tileCountX; // Offset: 152 + keen::uint32 tileCountY; // Offset: 156 + keen::uint32 useCameraCenteredPosition; // Offset: 160 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 176 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 192 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 256 +}; + +enum class RenderShadowMaskQuality { + Low = 0, + Medium = 1, + High = 2, +}; + +struct RenderShadowMaskFillShaderParameters { + keen::SdfShaderData sdf; // Offset: 0 + keen::LightCacheLookupShaderData lightCache; // Offset: 16 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 416 + keen::float2 linearDepthParameters; // Offset: 480 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 496 + keen::float2 tileRatio; // Offset: 560 + keen::uint32 pixelSize; // Offset: 568 + keen::uint32 frameId; // Offset: 572 + keen::float3 sunDirection; // Offset: 576 + keen::float32 sunConeAngle; // Offset: 588 + keen::float32 rayBias; // Offset: 592 + keen::uint32 visibleGroupMask; // Offset: 596 + keen::uint32 writeDebugOutput; // Offset: 600 + keen::uint32 enablePixelSdfCache; // Offset: 604 + keen::uint32 enableDebugTarget; // Offset: 608 +}; + +struct RenderShadowMaskFilterShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float32 historyWeight; // Offset: 8 +}; + +struct RenderShadowMaskUpsampleShaderParameters { + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::uint2 targetSize; // Offset: 1088 + keen::float2 linearDepthParameters; // Offset: 1096 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 1104 + keen::uint32 pixelSize; // Offset: 1168 +}; + +struct RenderContactShadowShaderParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 unjitteredProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix43 viewMatrix; // Offset: 128 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 176 + keen::float rcpNearPlaneDistance; // Offset: 240 + keen::float3 sunDirection; // Offset: 244 + keen::uint2 targetSize; // Offset: 256 + keen::uint32 frameId; // Offset: 264 + keen::uint32 discardContents; // Offset: 268 + keen::uint32 stepCount; // Offset: 272 + keen::float32 rayLength; // Offset: 276 + keen::float32 depthThickness; // Offset: 280 + keen::float32 hardness; // Offset: 284 + keen::uint32 combineWithDenoisedShadows; // Offset: 288 + keen::uint32 enableJitter; // Offset: 292 +}; + +struct RenderContactShadow2ShaderParameters { + keen::float4 lightCoordinate; // Offset: 0 + keen::float2 invDepthTextureSize; // Offset: 16 + keen::int2 waveOffset; // Offset: 24 + keen::float subSurfaceShadowStrength; // Offset: 32 +}; + +struct UnpackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct PackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct SharpnessParameters { + keen::float32 kDetectRatio; // Offset: 0 + keen::float32 kDetectThres; // Offset: 4 + keen::float32 kMinContrastRatio; // Offset: 8 + keen::float32 kRatioNorm; // Offset: 12 + keen::float32 kContrastBoost; // Offset: 16 + keen::float32 kEps; // Offset: 20 + keen::float32 kSharpStartY; // Offset: 24 + keen::float32 kSharpScaleY; // Offset: 28 + keen::float32 kSharpStrengthMin; // Offset: 32 + keen::float32 kSharpStrengthScale; // Offset: 36 + keen::float32 kSharpLimitMin; // Offset: 40 + keen::float32 kSharpLimitScale; // Offset: 44 + keen::float32 kScaleX; // Offset: 48 + keen::float32 kScaleY; // Offset: 52 + keen::float32 kDstNormX; // Offset: 56 + keen::float32 kDstNormY; // Offset: 60 + keen::float32 kSrcNormX; // Offset: 64 + keen::float32 kSrcNormY; // Offset: 68 + keen::uint32 kInputViewportOriginX; // Offset: 72 + keen::uint32 kInputViewportOriginY; // Offset: 76 + keen::uint32 kInputViewportWidth; // Offset: 80 + keen::uint32 kInputViewportHeight; // Offset: 84 + keen::uint32 kOutputViewportOriginX; // Offset: 88 + keen::uint32 kOutputViewportOriginY; // Offset: 92 + keen::uint32 kOutputViewportWidth; // Offset: 96 + keen::uint32 kOutputViewportHeight; // Offset: 100 +}; + +struct SimpleMaterial { + keen::bool enableTextureStreaming; // Offset: 0 + keen::bool receiveShadows; // Offset: 1 + keen::ObjectReference colorMap; // Offset: 4 + keen::ObjectReference normalMap; // Offset: 20 + keen::HdrColorRgb tintColor; // Offset: 36 +}; + +struct SimpleRfxRenderMaterial { + keen::StreamedTexture2D_float4 colorMap; // Offset: 0 + keen::uint32 receiveShadows; // Offset: 4 + keen::float3 tintColor; // Offset: 8 +}; + +struct SimpleVoxelPbrMaterial { + keen::float3 albedo; // Offset: 0 + keen::float roughness; // Offset: 12 + keen::float3 emissive; // Offset: 16 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct SimpleWorldMaterialShaderLayerWeights { + keen::float sideWeight; // Offset: 0 + keen::float bottomWeight; // Offset: 4 + keen::float topWeight; // Offset: 8 + keen::float flatnessWeight; // Offset: 12 + keen::float map0Weight; // Offset: 16 + keen::float map1Weight; // Offset: 20 + keen::float2 flatness; // Offset: 24 + keen::float4 sideParameters; // Offset: 32 +}; + +struct SimpleWorldMaterialBlendMap { + keen::StreamedTexture2D_float map; // Offset: 0 + keen::float tilingFactor; // Offset: 4 +}; + +struct SimpleVoxelLayerInfo { + keen::uint data; // Offset: 0 +}; + +struct SimpleWorldMaterialResource { + keen::RenderParameterBlock layerInfosParameterBlock; // Offset: 0 + keen::RenderParameterBlock layerWeightsParameterBlock; // Offset: 52 + keen::RenderParameterBlock layerPbrMaterialsParameterBlock; // Offset: 104 + keen::RenderParameterBlock blendMapsParameterBlock; // Offset: 156 +}; + +struct SimpleBuildingMaterialResource { +}; + +struct SkinnedTreeInstanceData { + keen::uint skinMatrixOffset; // Offset: 0 +}; + +struct SkinnedTreeModelSpringParameters { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct SkinnedTreeModelParameters { + keen::SkinnedTreeModelSpringParameters trunk; // Offset: 0 + keen::SkinnedTreeModelSpringParameters branch; // Offset: 16 +}; + +struct SkinnedTreeModelSpringData { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct CpuSkinVector3 { + keen::vf32_data x; // Offset: 0 + keen::vf32_data y; // Offset: 16 + keen::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix33 { + keen::vf32_data x; // Offset: 0 + keen::vf32_data y; // Offset: 16 + keen::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix43 { + keen::CpuSkinMatrix33 rot; // Offset: 0 + keen::vf32_data pos; // Offset: 48 +}; + +struct SkyTextureMaterial { + keen::ObjectReference texture; // Offset: 0 + keen::RenderSamplerAddressMode textureAddressMode; // Offset: 16 +}; + +struct SkyTextureRfxRenderMaterial { + keen::BindlessTexture2D_float4 texture; // Offset: 0 + keen::BindlessSampler sampler; // Offset: 4 +}; + +struct SnowDisplacementUpdateParameters { + keen::uint worldPixelSize; // Offset: 0 + keen::uint worldTextureSize; // Offset: 4 + keen::uint2 worldTileTopLeft; // Offset: 8 + keen::uint2 worldPositionTopLeft; // Offset: 16 + keen::uint2 oldWorldTileTopLeft; // Offset: 24 + keen::uint2 oldWorldPositionTopLeft; // Offset: 32 + keen::uint worldHeightScale; // Offset: 40 + keen::float rcpHeightScale; // Offset: 44 + keen::uint fadeOutHeightFill; // Offset: 48 + keen::uint heightMin; // Offset: 52 + keen::uint heightMax; // Offset: 56 + keen::uint oldHeightMin; // Offset: 60 + keen::uint bodyCounterOffset; // Offset: 64 +}; + +struct SnowDisplacementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float rcpMinSoftness; // Offset: 12 + keen::float rcpMaxSoftness; // Offset: 16 + keen::float heightNoiseScale; // Offset: 20 +}; + +enum class SsaoQuality { + Low = 0, + Medium = 1, + High = 2, +}; + +struct SsaoData { + keen::ViewSpacePositionReconstructionData viewspaceReconstructionData; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 64 + keen::uint2 _padding0; // Offset: 72 + keen::float32 ssaoIntensity; // Offset: 80 + keen::float32 ssaoBias; // Offset: 84 + keen::float32 ssaoScale; // Offset: 88 + keen::float32 ssaoSampleRadius; // Offset: 92 +}; + +struct StochasticScreenSpaceReflectionsConstantData { + keen::GraphicsMatrix44 g_inv_view_proj; // Offset: 0 + keen::GraphicsMatrix44 g_proj; // Offset: 64 + keen::GraphicsMatrix44 g_inv_proj; // Offset: 128 + keen::GraphicsMatrix43 g_view; // Offset: 192 + keen::GraphicsMatrix43 g_inv_view; // Offset: 240 + keen::GraphicsMatrix44 g_prev_view_proj; // Offset: 288 + keen::float3 g_camera_world_position; // Offset: 352 + keen::uint2 g_buffer_dimensions; // Offset: 368 + keen::float2 g_inv_buffer_dimensions; // Offset: 376 + keen::uint2 g_render_dimensions; // Offset: 384 + keen::float2 g_inv_render_dimensions; // Offset: 392 + keen::float g_temporal_stability_factor; // Offset: 400 + keen::float g_depth_buffer_thickness; // Offset: 404 + keen::float g_depth_buffer_thickness_far; // Offset: 408 + keen::float g_roughness_threshold; // Offset: 412 + keen::float g_temporal_variance_threshold; // Offset: 416 + keen::float g_sdf_ray_max_distance; // Offset: 420 + keen::float g_sdf_ray_start_offset; // Offset: 424 + keen::float g_sdf_hit_offset; // Offset: 428 + keen::uint g_frame_index; // Offset: 432 + keen::uint g_max_traversal_intersections; // Offset: 436 + keen::uint g_min_traversal_occupancy; // Offset: 440 + keen::uint g_most_detailed_mip; // Offset: 444 + keen::uint g_samples_per_quad; // Offset: 448 + keen::uint g_temporal_variance_guided_tracing_enabled; // Offset: 452 + keen::uint g_num_mips; // Offset: 456 + keen::uint g_resolution_downscale; // Offset: 460 + keen::float g_reflect_background; // Offset: 464 + keen::uint g_debug_reflection_rays; // Offset: 468 + keen::float g_edge_bleeding_max_distance; // Offset: 472 + keen::float g_edge_bleeding_offset; // Offset: 476 + keen::uint g_gi_enabled; // Offset: 480 + keen::float g_exposure; // Offset: 484 + keen::uint g_ground_truth_specular; // Offset: 488 +}; + +struct StochasticScreenSpaceReflectionsUpscaleData { + keen::uint2 outputSize; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 8 +}; + +struct DebugRootConstantData { + keen::uint debug_mode; // Offset: 0 +}; + +struct ApplyReflectionsConstants { + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 0 + keen::uint2 outputSize; // Offset: 64 + keen::float2 invOutputSize; // Offset: 72 + keen::float specularMax; // Offset: 80 + keen::uint enableHorizonBasedOcclusion; // Offset: 84 + keen::float giLightFactor; // Offset: 88 + keen::uint flags; // Offset: 92 + keen::float specularReflectionsFactor; // Offset: 96 + keen::uint groundTruthSpecular; // Offset: 100 + keen::uint writeToSceneBrightness; // Offset: 104 +}; + +struct SurfacePickerShaderParameters { + keen::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::float3 focusPosition; // Offset: 496 + keen::uint chunkCount; // Offset: 508 + keen::uint seed; // Offset: 512 + keen::float pickingRange; // Offset: 516 + keen::uint debugDrawPicks; // Offset: 520 + keen::uint enableDisplacement; // Offset: 524 +}; + +struct SurfacePickerShaderData { + keen::StaticArray binSize; // Offset: 0 + keen::StaticArray binOffset; // Offset: 24 + keen::StaticArray binPickIndex; // Offset: 48 + keen::uint culledChunkCount; // Offset: 72 + keen::uint pointCount; // Offset: 76 +}; + +struct SurfacePickerPointShaderData { + keen::float3 position; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SurfacePickerBakedDisplacementShaderData { + keen::float displacement; // Offset: 0 + keen::float displacementTop; // Offset: 4 + keen::float displacementBottom; // Offset: 8 + keen::float displacementSide; // Offset: 12 +}; + +struct TerraformingCursorMaterial { + keen::ObjectReference noiseMap; // Offset: 0 + keen::float3 noiseUvScale; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::HdrColorRgb ringColor; // Offset: 32 + keen::HdrColorRgb fillColor; // Offset: 48 +}; + +struct TerraformingCursorRfxRenderMaterial { + keen::float3 noiseUvScale; // Offset: 0 + keen::BindlessTexture3D_float noiseMap; // Offset: 12 + keen::float3 ringColor; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::float3 fillColor; // Offset: 32 +}; + +struct TextureInfo { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 +}; + +struct TextureSizeInfo { + keen::TextureInfo info; // Offset: 0 + keen::BlobArray sources; // Offset: 28 +}; + +struct TransparentMaterial { +}; + +enum class TransparentInstanceFlag { + IsAdditive = 0, + EnableLighting = 1, + EnableAlphaClip = 2, + UseVertexAlphaForAlphaClip = 3, +}; + +struct TransparentInstanceData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::BindlessTexture2D_float4 image; // Offset: 20 + keen::BindlessSampler imageSampler; // Offset: 24 + keen::BindlessSampler uvDistortionMapSampler; // Offset: 28 + keen::float32 edgeFadeOutFactor; // Offset: 32 + keen::float3 position; // Offset: 36 + keen::float32 depthFadeDistance; // Offset: 48 + keen::float4 rotation; // Offset: 52 + keen::float3 scale; // Offset: 68 + keen::float3 color; // Offset: 80 + keen::float32 alpha; // Offset: 92 + keen::float2 uvOffset; // Offset: 96 + keen::float2 uvScale; // Offset: 104 + keen::float2 uvDistortionOffset; // Offset: 112 + keen::float2 uvDistortionScale; // Offset: 120 + keen::float32 uvDistortionStrength; // Offset: 128 + keen::BindlessTexture2D_float4 uvDistortionMap; // Offset: 132 + keen::float32 alphaClipValue; // Offset: 136 + keen::float32 alphaClipHalfRange; // Offset: 140 + keen::uint32 flags; // Offset: 144 + keen::BindlessTexture2D_float4 motionVectorImage; // Offset: 148 + keen::float32 motionVectorScale; // Offset: 152 + keen::float32 flipbookTime; // Offset: 156 + keen::uint32 encodedFlipbookSize; // Offset: 160 +}; + +struct TransparentRfxRenderMaterial { +}; + +struct bool2 { + keen::bool x; // Offset: 0 + keen::bool y; // Offset: 1 +}; + +struct bool3 { + keen::bool x; // Offset: 0 + keen::bool y; // Offset: 1 + keen::bool z; // Offset: 2 +}; + +struct bool4 { + keen::bool x; // Offset: 0 + keen::bool y; // Offset: 1 + keen::bool z; // Offset: 2 + keen::bool w; // Offset: 3 +}; + +typedef keen::uint32 BoolMask; + +struct VfxSamplerParameters { + keen::RenderSamplerAddressMode addressU; // Offset: 0 + keen::RenderSamplerAddressMode addressV; // Offset: 1 + keen::RenderSamplerAddressMode addressW; // Offset: 2 +}; + +enum class ShaderVariableComponentType { + Float = 0, + Int = 1, + Uint = 2, + Bool = 3, + Quaternion = 4, +}; + +struct ShaderVariable { + keen::string name; // Offset: 0 + keen::ShaderVariableComponentType componentType; // Offset: 8 + keen::uint8 componentCount; // Offset: 9 +}; + +enum class VfxBufferMemberComponentType { + Float = 0, + SignedInt = 1, + UnsignedInt = 2, + BoolMask = 3, +}; + +struct VfxBufferMember { + keen::string name; // Offset: 0 + keen::uint32 componentCount; // Offset: 8 + keen::VfxBufferMemberComponentType componentType; // Offset: 12 + keen::uint32 offsetInBytes; // Offset: 16 +}; + +struct VfxParticleStateBufferInfo { + keen::BlobArray members; // Offset: 0 + keen::uint32 sizeInBytes; // Offset: 8 +}; + +enum class VfxParameterType { + Float = 0, + Float2 = 1, + Float3 = 2, + Float4 = 3, + Int = 4, + Int2 = 5, + Int3 = 6, + Int4 = 7, + Color = 8, + Quaternion = 9, +}; + +struct VfxMeshPatchPointData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::ContentHash vertexData; // Offset: 8 + keen::ContentHash indexData; // Offset: 24 + keen::float4 boundingSphere; // Offset: 40 +}; + +struct VfxModelPatchPointData { + keen::ObjectReference model; // Offset: 0 +}; + +struct VfxDecalPatchPointData { + keen::ObjectReference decal; // Offset: 0 +}; + +struct VfxImagePatchPointData { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::VfxSamplerParameters sampler; // Offset: 6 + keen::uint8 levelCount; // Offset: 9 + keen::TextureType type; // Offset: 10 + keen::PixelFormat format; // Offset: 11 + keen::ContentHash content; // Offset: 12 + keen::string debugName; // Offset: 28 +}; + +struct VfxEmitterPatchPointData { + keen::uint32 childIndex; // Offset: 0 +}; + +struct VfxCurvePatchPointData { + keen::ContentHash samples; // Offset: 0 + keen::float32 startTime; // Offset: 16 + keen::float32 totalTime; // Offset: 20 + keen::uint32 sampleCount; // Offset: 24 + keen::string name; // Offset: 28 +}; + +enum class VfxParticleParameterPatchPointType { + Image = 0, + Mesh = 1, + Model = 2, + Curve = 3, + Decal = 4, +}; + +struct VfxParticleParameterPatchPoint { + keen::VfxParticleParameterPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 dataIndex; // Offset: 12 +}; + +struct VfxParticleUniformData { + keen::ContentHash data; // Offset: 0 + keen::BlobArray patchPoints; // Offset: 16 + keen::BlobArray imageData; // Offset: 24 + keen::BlobArray meshData; // Offset: 32 + keen::BlobArray modelData; // Offset: 40 + keen::BlobArray emitterData; // Offset: 48 + keen::BlobArray curveData; // Offset: 56 + keen::BlobArray decalData; // Offset: 64 +}; + +enum class VfxParticleFeature { + Emit = 0, +}; + +typedef keen::Bitmask8 VfxParticleFeatureMask; + +struct VfxParticleResource { + keen::string name; // Offset: 0 + keen::uint32 parent; // Offset: 8 + keen::uint32 stateSize; // Offset: 12 + keen::uint32 maxCount; // Offset: 16 + keen::ContentHash code; // Offset: 20 + keen::ContentHash strippedCode; // Offset: 36 + keen::VfxParticleUniformData uniformData; // Offset: 52 +}; + +struct VfxUserEffectParameterDescription { + keen::string name; // Offset: 0 + keen::uint32 nameHash; // Offset: 8 + keen::uint32 offset; // Offset: 12 + keen::uint32 sizeInBytes; // Offset: 16 + keen::Guid inheritanceKey; // Offset: 20 +}; + +struct VfxResource { + keen::uint64 parameterHash; // Offset: 0 + keen::BlobArray parameters; // Offset: 8 + keen::VfxUserEffectParameterDataBlock defaultData; // Offset: 16 + keen::BlobArray particles; // Offset: 80 + keen::BlobArray stateInfos; // Offset: 88 + keen::float32 cullingDistanceMin; // Offset: 96 + keen::float32 cullingDistanceMax; // Offset: 100 + keen::uint32 killTimeInSeconds; // Offset: 104 + keen::string debugName; // Offset: 108 +}; + +struct VfxNode { + keen::bool enabled; // Offset: 0 + keen::ObjectReference particle; // Offset: 4 + keen::uint32 maxCount; // Offset: 20 +}; + +struct VfxDefinition { + keen::float32 cullingDistanceMin; // Offset: 0 + keen::float32 cullingDistanceMax; // Offset: 4 + keen::uint32 killTimeInSeconds; // Offset: 8 +}; + +struct VfxParticleDefinition { +}; + +enum class VfxParticleValueKind { + Value = 0, + Expression = 1, +}; + +struct VfxParameterDefinitionBase { + keen::VfxParticleValueKind kind; // Offset: 0 + keen::string expression; // Offset: 4 +}; + +struct VfxParameterDefinition_Float { + keen::float32 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Float2 { + keen::float2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Float3 { + keen::float3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Float4 { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int { + keen::sint32 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int2 { + keen::int2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int3 { + keen::int3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int4 { + keen::int4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt { + keen::uint32 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool { + keen::bool defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Color { + keen::Color defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Mesh { + keen::ObjectReference defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Model { + keen::ObjectReference defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Decal { + keen::ObjectReference defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Emitter { +}; + +struct VfxParameterDefinition_Image { + keen::ObjectReference defaultValue; // Offset: 12 + keen::VfxSamplerParameters sampler; // Offset: 28 +}; + +struct VfxStateDefinitionBase { + keen::VfxParticleValueKind kind; // Offset: 0 + keen::string expression; // Offset: 4 +}; + +struct VfxStateDefinition_Float { + keen::float32 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Float2 { + keen::float2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Float3 { + keen::float3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Float4 { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int { + keen::sint32 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int2 { + keen::int2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int3 { + keen::int3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int4 { + keen::int4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt { + keen::uint32 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool { + keen::bool defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Color { + keen::Color defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxExpressionBase { +}; + +struct VfxExpressionValue_Float1 { + keen::float32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int1 { + keen::sint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt1 { + keen::uint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool { + keen::bool value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Color { + keen::Color value; // Offset: 0 +}; + +struct VfxExpressionValue_Quaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Particle { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Mesh { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Model { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Decal { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Image { + keen::ObjectReference value; // Offset: 0 +}; + +enum class VfxExpressionType { + Expression = 0, + Value = 1, +}; + +struct VfxParameterExpression { + keen::ObjectReference parameter; // Offset: 0 + keen::VfxExpressionType type; // Offset: 16 + keen::string expression; // Offset: 20 + keen::BlobVariant value; // Offset: 28 +}; + +struct VfxStateExpression { + keen::ObjectReference state; // Offset: 0 + keen::VfxExpressionType type; // Offset: 16 + keen::string expression; // Offset: 20 + keen::BlobVariant value; // Offset: 28 +}; + +struct VfxEffectParameterBase { +}; + +struct VfxEffectParameterFloat { + keen::float32 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterBool { + keen::bool value; // Offset: 0 +}; + +struct VfxEffectParameterBool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxEffectParameterBool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxEffectParameterBool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxEffectParameterInt { + keen::sint32 value; // Offset: 0 +}; + +struct VfxEffectParameterInt2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxEffectParameterInt3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxEffectParameterInt4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxEffectParameterUint { + keen::uint32 value; // Offset: 0 +}; + +struct VfxEffectParameterUint2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxEffectParameterUint3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxEffectParameterUint4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxEffectParameterQuaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterColor { + keen::Color value; // Offset: 0 +}; + +struct VfxEffectParameterGroup { +}; + +struct VfxGlobalEffectParameterDirectory { +}; + +struct VfxGlobalEffectParameterInfo { + keen::Guid inheritanceKey; // Offset: 0 + keen::HashKey32 descriptionHash; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 20 +}; + +struct VfxGlobalEffectParameterRegistry { + keen::BlobArray parameters; // Offset: 0 +}; + +struct VfxEffectParameterInfo { + keen::VfxUserEffectParameterDescription description; // Offset: 0 + keen::BlobVariant value; // Offset: 36 + keen::uint32 registerOffset; // Offset: 48 +}; + +struct VfxUserEffectParameterInfos { + keen::BlobArray parameters; // Offset: 0 +}; + +struct VfxProfileEntry { + keen::Guid effectId; // Offset: 0 + keen::Time emitterGpuTime; // Offset: 16 + keen::Time particleGpuTime; // Offset: 24 + keen::uint32 instanceCount; // Offset: 32 + keen::uint32 chunkCount; // Offset: 36 + keen::uint32 dispatchCount; // Offset: 40 + keen::uint32 memoryUsage; // Offset: 44 +}; + +struct VfxProfileMessage { + keen::uint64 frameId; // Offset: 0 + keen::Time totalGpuTime; // Offset: 8 + keen::uint32 totalInstanceCount; // Offset: 16 + keen::uint32 totalMemoryUsage; // Offset: 20 + keen::uint32 totalDispatchCount; // Offset: 24 + keen::uint32 viewId; // Offset: 28 + keen::uint32 tickCount; // Offset: 32 + keen::BlobArray entries; // Offset: 36 +}; + +struct vfx_converter.ParticleStateInfo { + keen::BlobVariant definition; // Offset: 0 + keen::string name; // Offset: 12 + keen::Guid id; // Offset: 20 + keen::float64 sortKey; // Offset: 40 +}; + +struct vfx_converter.ParticleParameterInfo { + keen::BlobVariant definition; // Offset: 0 + keen::string name; // Offset: 12 + keen::Guid id; // Offset: 20 + keen::float64 sortKey; // Offset: 40 + keen::BlobArray spawnParameters; // Offset: 48 +}; + +struct vfx_converter.ParticleDefinitionInfo { + keen::BlobArray states; // Offset: 0 + keen::BlobArray parameters; // Offset: 8 + keen::bool isEmitter; // Offset: 16 +}; + +struct VfxConverterConfiguration { + keen::VfxReference singleEffect; // Offset: 0 +}; + +struct VfxNodeInfo { + keen::Guid parentNodeId; // Offset: 0 + keen::Guid parentNodeDefinitionId; // Offset: 16 + keen::BlobArray childNodeIds; // Offset: 32 + keen::bool isEnabled; // Offset: 40 +}; + +struct VfxBufferEntry { + keen::Guid id; // Offset: 0 + keen::string name; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 24 + keen::uint32 registerOffset; // Offset: 28 + keen::uint32 sizeInRegisters; // Offset: 32 + keen::bool hasCurveExpression; // Offset: 36 + keen::string hlslTypeName; // Offset: 40 + keen::string componentTypeName; // Offset: 48 + keen::uint32 componentCount; // Offset: 56 +}; + +struct VfxBufferInfo { + keen::BlobArray entries; // Offset: 0 + keen::uint32 sizeInRegisters; // Offset: 8 +}; + +struct VfxParticleDefinitionCurveExpression { + keen::Guid curveId; // Offset: 0 + keen::Guid referencedParameterId; // Offset: 16 +}; + +struct VfxParticleDefinitionCurveExpressions { + keen::BlobArray curves; // Offset: 0 +}; + +struct VfxParameterTypeIndices { + keen::BlobArray types; // Offset: 0 +}; + +struct VfxBaseEffectParameters { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::uint32 startTime; // Offset: 28 + keen::float3 scale; // Offset: 32 + keen::uint32 isActive; // Offset: 44 + keen::float cullingDistanceMin; // Offset: 48 + keen::float cullingDistanceMax; // Offset: 52 + keen::uint32 isHidden; // Offset: 56 + keen::uint32 age; // Offset: 60 +}; + +struct VfxCombinedEffectParameters { + keen::VfxBaseEffectParameters base; // Offset: 0 + keen::VfxUserEffectParameterDataBlock user; // Offset: 64 +}; + +struct VfxMeshInfo { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 + keen::uint32 packedPipelineIndices; // Offset: 40 +}; + +struct VfxModelInfo { + keen::float4 boundingSphere; // Offset: 0 + keen::uint32 modelSizeFeedbackIndex; // Offset: 16 + keen::uint32 firstMeshOffset; // Offset: 20 + keen::uint32 meshCount; // Offset: 24 +}; + +struct VfxModelInstanceTransform { + keen::float4 orientation; // Offset: 0 + keen::uint3 packedPosition; // Offset: 16 + keen::float scale; // Offset: 28 +}; + +struct VfxModelInstance { + keen::VfxModelInstanceTransform transform; // Offset: 0 + keen::VfxModelInstanceTransform previousTransform; // Offset: 32 + keen::float3 color; // Offset: 64 + keen::float alpha; // Offset: 76 + keen::float3 dissolveOffset; // Offset: 80 + keen::float dissolveRadius; // Offset: 92 + keen::float dissolveEdgeBrightness; // Offset: 96 + keen::float alphaClip; // Offset: 100 + keen::uint emissiveFactor; // Offset: 104 +}; + +struct VfxTerraformingCursorInstance { + keen::float3 boxSize; // Offset: 0 + keen::float sphereRadius; // Offset: 12 + keen::float3 position; // Offset: 16 + keen::uint isBox; // Offset: 28 + keen::float3 uvOffset; // Offset: 32 + keen::float ringAlpha; // Offset: 44 + keen::float ringAlphaClip; // Offset: 48 + keen::float ringAlphaClipHalfRange; // Offset: 52 + keen::float fillAlpha; // Offset: 56 + keen::float fillHardness; // Offset: 60 +}; + +struct VfxCullingInstance { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::float scale; // Offset: 28 + keen::uint modelIndex; // Offset: 32 + keen::uint instanceDataIndex; // Offset: 36 + keen::uint instanceDataTypeId; // Offset: 40 + keen::uint isDissolveActive; // Offset: 44 +}; + +struct VfxModelDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::float pad0; // Offset: 28 +}; + +struct VfxIntermediateDraw { + keen::uint meshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct VfxCullingSubView { + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 0 + keen::float minObjectSize; // Offset: 96 +}; + +struct VfxCullingPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 normalPipelineShift; // Offset: 4 + keen::uint32 dissolvePipelineShift; // Offset: 8 + keen::uint32 firstBatchIndex; // Offset: 12 +}; + +struct VfxCullInstancesConstants { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 1008 + keen::uint32 subViewCount; // Offset: 1168 + keen::uint32 passCount; // Offset: 1172 + keen::uint32 maxDrawCount; // Offset: 1176 + keen::uint32 maxMeshCount; // Offset: 1180 + keen::uint32 useOcclusionCulling; // Offset: 1184 + keen::float3 cameraWorldPosition; // Offset: 1188 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 1200 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 1248 + keen::float modelSizeFeedbackPixelSize; // Offset: 1312 +}; + +struct VfxWriteCulledDrawCommandsPushConstants { + keen::uint firstBatchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 + keen::uint pipelineCount; // Offset: 8 +}; + +struct PreloadVfxList { +}; + +struct PreloadVfxListResource { + keen::BlobArray vfxIds; // Offset: 0 +}; + +struct VoxelMaterialVfxDataResource { + keen::BlobArray materialType; // Offset: 0 +}; + +struct GpuImage2D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuImage3D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuCombinedImage2D { + keen::GpuImage2D image; // Offset: 0 + keen::GpuSampler sampler; // Offset: 4 +}; + +struct GpuCombinedImage3D { + keen::GpuImage3D image; // Offset: 0 + keen::GpuSampler sampler; // Offset: 4 +}; + +struct GpuMesh { + keen::uint32 vertexOffset; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexCount; // Offset: 12 + keen::float4 boundingSphere; // Offset: 16 +}; + +struct GpuMeshVertex { + keen::float3 position; // Offset: 0 + keen::float2 uv; // Offset: 12 + keen::float3 normal; // Offset: 20 + keen::float4 color; // Offset: 32 +}; + +struct GpuDecal { + keen::uint32 materialDataIndex; // Offset: 0 +}; + +struct GpuCurve { + keen::uint32 index; // Offset: 0 + keen::uint32 sampleCountMinusOne; // Offset: 4 + keen::float startTime; // Offset: 8 + keen::float inverseTotalTime; // Offset: 12 + keen::float inverseSampleDelta; // Offset: 16 +}; + +struct VfxBaseParticleState { + keen::uint myParentEmitterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint rngState; // Offset: 8 + keen::uint tickCount; // Offset: 12 +}; + +struct VfxEmitterState { + keen::uint particleCounterByteOffset; // Offset: 0 + keen::uint spawnCounterByteOffset; // Offset: 4 + keen::uint maxParticleCount; // Offset: 8 + keen::uint maxSpawnCount; // Offset: 12 + keen::uint particleChunkIndex; // Offset: 16 + keen::uint instanceIndex; // Offset: 20 + keen::uint particleTypeIndex; // Offset: 24 + keen::uint explicitPad0; // Offset: 28 +}; + +struct VfxChunkState { + keen::uint freeParticleCounterByteOffset; // Offset: 0 + keen::uint currentActiveParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct VfxUpdateBuffer { + keen::uint time; // Offset: 0 + keen::float fixedTimeStep; // Offset: 4 + keen::float realTimeStep; // Offset: 8 + keen::uint currentTickId; // Offset: 12 + keen::uint transparentInstanceBufferCapacity; // Offset: 16 + keen::uint transparentInstanceCounterByteOffset; // Offset: 20 + keen::uint injectInstanceBufferCapacity; // Offset: 24 + keen::uint injectInstanceCounterByteOffset; // Offset: 28 + keen::uint pointLightBufferCapacity; // Offset: 32 + keen::uint pointLightCounterByteOffset; // Offset: 36 + keen::uint decalBufferCapacity; // Offset: 40 + keen::uint decalCounterByteOffset; // Offset: 44 + keen::uint grassMovementBodyCounterByteOffset; // Offset: 48 + keen::uint grassMovementBodyListCapacity; // Offset: 52 + keen::float32 exposure; // Offset: 56 + keen::float32 exposureCorrection; // Offset: 60 + keen::float3 cameraPosition; // Offset: 64 + keen::float timeOfDay; // Offset: 76 + keen::uint3 cameraWorldPosition; // Offset: 80 + keen::float4 cameraOrientation; // Offset: 96 + keen::StaticArray frustumPlanes; // Offset: 112 + keen::float3 sunDirection; // Offset: 192 + keen::float32 sunDirectLightFadeFactor; // Offset: 204 + keen::float3 moonDirection; // Offset: 208 + keen::float32 moonDirectLightFadeFactor; // Offset: 220 + keen::uint skipInjectSort; // Offset: 224 + keen::uint worldChunkCount; // Offset: 228 + keen::uint useParallelRadixSort; // Offset: 232 + keen::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint isDynamicHeightmapValid; // Offset: 272 + keen::uint sdfCascadeCount; // Offset: 276 + keen::uint firstSdfImageIndex; // Offset: 280 + keen::float32 sdfInvGridSize; // Offset: 284 + keen::uint isSdfBvhValid; // Offset: 288 + keen::VolumetricFogGridShaderData fogGrid; // Offset: 304 + keen::uint playerCount; // Offset: 800 + keen::StaticArray playerPositions; // Offset: 816 + keen::uint maxCullingInstanceCount; // Offset: 1072 + keen::uint maxModelInstanceCount; // Offset: 1076 + keen::uint maxTerraformingCursorInstanceCount; // Offset: 1080 + keen::uint hideSpiders; // Offset: 1084 + keen::uint snowDisplacementBodyCounterByteOffset; // Offset: 1088 + keen::uint snowDisplacementBodyListCapacity; // Offset: 1092 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 1104 +}; + +struct VfxPushConstants { + keen::uint data; // Offset: 0 +}; + +struct VfxPrepareBuffer { + keen::uint emitterCount; // Offset: 0 +}; + +struct VfxWorldChunk { + keen::uint vertexOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::uint indexCount; // Offset: 12 + keen::uint type; // Offset: 16 + keen::float4 translationAndScale; // Offset: 20 +}; + +struct GpuSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct GpuSortShaderData { + keen::uint elementCount; // Offset: 0 +}; + +struct GpuSortWritebackShaderData { + keen::uint elementCounterOffset; // Offset: 0 +}; + +struct VfxChunkUpdateBuffer2 { + keen::uint particleTypeParametersOffset; // Offset: 0 + keen::uint activeParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint freeParticleCounterByteOffset; // Offset: 12 + keen::uint particleStatesOffset; // Offset: 16 + keen::uint oldActiveParticleIndicesOffset; // Offset: 20 + keen::uint newActiveParticleIndicesOffset; // Offset: 24 + keen::uint freeParticleIndicesOffset; // Offset: 28 + keen::uint parentStatesOffset; // Offset: 32 + keen::uint oldActiveParentParticleIndicesOffset; // Offset: 36 + keen::uint childParticleStatesOffset; // Offset: 40 + keen::uint childParticleFreeListOffset; // Offset: 44 + keen::uint childActiveParticleIndicesOffset; // Offset: 48 + keen::uint chunkId; // Offset: 52 + keen::uint explicitPad0; // Offset: 56 + keen::uint explicitPad1; // Offset: 60 +}; + +struct ViewReprojectionData { + keen::GraphicsMatrix44 ndcToPreviousNdcMatrix; // Offset: 0 +}; + +struct Fog2DownsampleDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 +}; + +struct Fog2MinMaxDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 targetSize; // Offset: 16 + keen::uint32 tileSize; // Offset: 24 +}; + +struct Fog2SampleSkyParameters { + keen::float32 cloudLayerY; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 +}; + +struct Fog2CloudsErosionParameters { + keen::float3 scrollSpeed; // Offset: 0 + keen::float32 tilingFactor; // Offset: 12 + keen::float32 heightTilingFactor; // Offset: 16 + keen::uint32 noiseTextureIndex; // Offset: 20 + keen::float32 strength; // Offset: 24 +}; + +struct Fog2CloudsParameters { + keen::float32 yRange; // Offset: 0 + keen::float32 invYRange; // Offset: 4 + keen::float2 texcoordMapping; // Offset: 8 + keen::uint32 cloudTypes; // Offset: 16 + keen::Fog2CloudsErosionParameters erosionPass0; // Offset: 32 + keen::Fog2CloudsErosionParameters erosionPass1; // Offset: 64 + keen::Fog2CloudsErosionParameters erosionPass2; // Offset: 96 + keen::float3 emission; // Offset: 128 + keen::float3 inScatteringDivExtinction; // Offset: 144 + keen::float32 extinctionLn2; // Offset: 156 +}; + +struct Fog2RenderSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::uint2 blueNoiseOffset; // Offset: 16 + keen::uint32 blueNoiseSizeMask; // Offset: 24 + keen::uint32 ditherPatternOffset; // Offset: 28 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::uint32 rayMarchSampleCount; // Offset: 160 + keen::float3 lightFactorSun; // Offset: 164 + keen::float32 exposure; // Offset: 176 + keen::float3 lightFactorSky; // Offset: 180 + keen::ForwardDirectionalLightData cloudsLight; // Offset: 192 + keen::ForwardDirectionalLightData skyLight0; // Offset: 224 + keen::ForwardDirectionalLightData skyLight1; // Offset: 256 + keen::AtmosphereShaderData atmosphere; // Offset: 288 + keen::Fog2CloudsParameters clouds; // Offset: 352 + keen::Fog2SampleSkyParameters sky; // Offset: 512 + keen::float32 time; // Offset: 528 +}; + +struct Fog2BlurSkyParameters { + keen::uint2 outputSize; // Offset: 0 +}; + +struct Fog2TfSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 20 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::Fog2SampleSkyParameters sky; // Offset: 160 +}; + +struct CloudsSampleConstants { + keen::float2 texcoordMappingScale; // Offset: 0 + keen::float2 texcoordMappingOffset; // Offset: 8 +}; + +struct Fog2SampleParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 80 + keen::uint32 enableWeather; // Offset: 112 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 128 + keen::CloudsSampleConstants cloudsSampleConstants; // Offset: 256 + keen::AtmosphereShaderData atmosphere; // Offset: 272 + keen::VolumetricShadowRuntimeData volumetricShadow; // Offset: 336 + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 576 + keen::VolumetricFogGridShaderData fogGrid; // Offset: 1664 + keen::SdfShaderData fogGridSdf; // Offset: 2160 + keen::GrassMovementData grassMovement; // Offset: 2176 + keen::float32 exposureCorrection; // Offset: 2208 + keen::float32 lightFactorEmissive; // Offset: 2212 + keen::float3 lightFactorSun; // Offset: 2224 + keen::float3 lightFactorSky; // Offset: 2240 + keen::float32 lightFactorPointLights; // Offset: 2252 + keen::GiAmbientFroxelVolumeParameters giFroxelParameters; // Offset: 2256 + keen::float32 lightFactorGi; // Offset: 2320 + keen::float2 surfaceFadeFunction; // Offset: 2324 + keen::float32 surfaceWidthFactor; // Offset: 2332 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 2336 + keen::float32 surfaceNoiseScaleFactor; // Offset: 2340 + keen::uint32 surfaceNoiseDescriptorIndex; // Offset: 2344 + keen::VolumetricFogGridMaterial surfaceMaterial; // Offset: 2352 + keen::SdfShaderData worldSdf; // Offset: 2400 + keen::float worldHeightPositionMapping; // Offset: 2416 + keen::float2 groundFadeFunction; // Offset: 2420 + keen::float2 groundGradientFadeFunction; // Offset: 2432 + keen::float32 groundHeightFactor; // Offset: 2440 + keen::float32 groundNoiseScrollSpeed; // Offset: 2444 + keen::float32 groundNoiseScale; // Offset: 2448 + keen::uint32 groundNoiseDescriptorIndex; // Offset: 2452 + keen::VolumetricFogGridMaterial groundMaterialAbove; // Offset: 2464 + keen::VolumetricFogGridMaterial groundMaterialBelow; // Offset: 2512 + keen::float32 heightExponent; // Offset: 2560 + keen::float32 forestExponent; // Offset: 2564 + keen::float2 heightFadeFunction; // Offset: 2568 + keen::float2 forestFadeFunction; // Offset: 2576 + keen::VolumetricFogGridMaterial heightMaterial; // Offset: 2592 + keen::VolumetricFogGridMaterial forestMaterial; // Offset: 2640 + keen::VolumetricFogGridMaterial rainMaterial; // Offset: 2688 + keen::VolumetricFogGridMaterial snowMaterial; // Offset: 2736 + keen::VolumetricFogGridMaterial blizzardMaterial; // Offset: 2784 + keen::float32 time; // Offset: 2832 + keen::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 2848 + keen::uint32 isGiEnabled; // Offset: 3008 + keen::GiAmbientProbesLookupData ambientProbesLookupData; // Offset: 3024 +}; + +struct Fog2RenderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float32 exposure; // Offset: 96 +}; + +struct Fog2RenderBlurResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 +}; + +struct Fog2TemporalBlendResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldDepthDifferenceWeight; // Offset: 20 + keen::float2 linearDepthParameters; // Offset: 24 + keen::float32 oldToNewExposure; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 +}; + +struct Fog2InitializeShadowVolumeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 12 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 +}; + +struct Fog2IntegrateShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::GraphicsMatrix43 worldToNextShadowCascadeMatrix; // Offset: 64 + keen::float32 dk; // Offset: 112 +}; + +struct Fog2IntegrateLastShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::float32 dk; // Offset: 64 + keen::VolumetricShadowRuntimeData volumetricShadow; // Offset: 80 +}; + +struct Fog2WriteShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 +}; + +struct Fog2TfShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2WriteScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 exposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 + keen::uint32 isShadowViewVolumeValid; // Offset: 128 +}; + +struct Fog2TfScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2InitializeParticipatingMediaVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 124 +}; + +struct Fog2WriteViewVolumeSourceTermParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::float32 exposure; // Offset: 112 + keen::float32 exposureCorrection; // Offset: 116 + keen::uint2 blueNoiseOffset; // Offset: 120 + keen::uint32 blueNoiseSizeMask; // Offset: 128 + keen::uint32 manyLightsShadowsEnabled; // Offset: 132 + keen::uint32 isShadowViewVolumeValid; // Offset: 136 + keen::uint32 isScatteredLightVolumeValid; // Offset: 140 +}; + +struct Fog2TfViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2IntegrateViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 +}; + +struct Fog2IntegrateViewVolume2Parameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 windTime; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 +}; + +struct Fog2RenderFogGridIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float3 fogGridMin; // Offset: 96 + keen::float3 fogGridMax; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 124 +}; + +struct Fog2RenderWeatherMapIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float2 weatherMapMin; // Offset: 96 + keen::float2 weatherMapMax; // Offset: 104 + keen::float2 weatherMapVoxelSize; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 120 + keen::uint32 enableWeather; // Offset: 124 +}; + +struct Fog2RenderRaymarchParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 80 + keen::Fog2SampleSkyParameters sky; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::float32 exposure; // Offset: 124 +}; + +struct Fog2CompositeViewVolumeDebugParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 80 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 144 + keen::GraphicsMatrix44 viewVolumeViewProjectionMatrix; // Offset: 160 + keen::GraphicsMatrix44 viewVolumeInvViewProjectionMatrix; // Offset: 224 + keen::float32 dk; // Offset: 288 +}; + +struct Fog2RenderUpscaleResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::uint2 blueNoiseOffset; // Offset: 8 + keen::uint32 blueNoiseSizeMask; // Offset: 16 + keen::float2 linearDepthParameters; // Offset: 20 +}; + +struct Fog2TestParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 +}; + +enum class Fog2CompositeFlag { + Sky = 0, + Result = 1, + ViewVolume = 2, + ViewVolumeDither = 3, +}; + +typedef keen::Bitmask32 Fog2CompositeFlags; + +struct Fog2CompositeParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 invTargetSize; // Offset: 8 + keen::uint32 flags; // Offset: 16 + keen::Fog2ViewVolumeSampleParameters sampleParameters; // Offset: 32 + keen::uint2 blueNoiseOffset; // Offset: 64 + keen::uint32 blueNoiseSizeMask; // Offset: 72 +}; + +struct Fog2DebugBlitParameters { + keen::uint2 blitOffset; // Offset: 0 + keen::uint2 blitSize; // Offset: 8 + keen::float32 scale; // Offset: 16 +}; + +struct VolumetricFog2ResourceData { + keen::ObjectReference initializationMaterial; // Offset: 0 + keen::ObjectReference atmosphere; // Offset: 16 + keen::FogMaterialParameters surfaceMaterial; // Offset: 32 + keen::float32 surfaceWidth; // Offset: 60 + keen::ImageReference surfaceNoise; // Offset: 64 + keen::float32 surfaceNoiseScale; // Offset: 80 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 84 + keen::FloatRange surfaceFadeRange; // Offset: 88 + keen::float32 groundHeightExponent; // Offset: 96 + keen::FogMaterialParameters groundMaterialAbove; // Offset: 100 + keen::FogMaterialParameters groundMaterialBelow; // Offset: 128 + keen::FloatRange groundFadeRange; // Offset: 156 + keen::FloatRange groundGradientFadeRange; // Offset: 164 + keen::ImageReference groundNoise; // Offset: 172 + keen::float32 groundNoiseScale; // Offset: 188 + keen::float32 groundNoiseFlowSpeed; // Offset: 192 + keen::float32 heightExponent; // Offset: 196 + keen::FogMaterialParameters heightMaterial; // Offset: 200 + keen::FloatRange heightFadeRange; // Offset: 228 + keen::float32 forestExponent; // Offset: 236 + keen::FogMaterialParameters forestMaterial; // Offset: 240 + keen::FloatRange forestFadeRange; // Offset: 268 + keen::FogMaterialParameters rainMaterial; // Offset: 276 + keen::FogMaterialParameters snowMaterial; // Offset: 304 + keen::FogMaterialParameters blizzardMaterial; // Offset: 332 +}; + +struct VolumetricFog2Resource { + keen::Fog2SampleSkyParameters sampleSkyParameters; // Offset: 0 + keen::Fog2CloudsParameters cloudParameters; // Offset: 16 + keen::RenderTexture cloudTypes; // Offset: 176 + keen::RenderTexture cloudErosionPass0; // Offset: 212 + keen::RenderTexture cloudErosionPass1; // Offset: 248 + keen::RenderTexture cloudErosionPass2; // Offset: 284 + keen::float2 surfaceFadeFunction; // Offset: 320 + keen::float32 surfaceWidth; // Offset: 328 + keen::RenderTexture surfaceNoise; // Offset: 332 + keen::float32 surfaceNoiseScale; // Offset: 368 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 372 + keen::FogMaterialParameters surfaceMaterial; // Offset: 376 + keen::float32 groundHeightFactor; // Offset: 404 + keen::FogMaterialParameters groundMaterialAbove; // Offset: 408 + keen::FogMaterialParameters groundMaterialBelow; // Offset: 436 + keen::float2 groundFadeFunction; // Offset: 464 + keen::float2 groundGradientFadeFunction; // Offset: 472 + keen::RenderTexture groundNoise; // Offset: 480 + keen::float32 groundNoiseScale; // Offset: 516 + keen::float32 groundNoiseScrollSpeed; // Offset: 520 + keen::float32 heightExponent; // Offset: 524 + keen::FogMaterialParameters heightMaterial; // Offset: 528 + keen::float2 heightFadeFunction; // Offset: 556 + keen::float32 forestExponent; // Offset: 564 + keen::FogMaterialParameters forestMaterial; // Offset: 568 + keen::float2 forestFadeFunction; // Offset: 596 + keen::FogMaterialParameters rainMaterial; // Offset: 604 + keen::FogMaterialParameters snowMaterial; // Offset: 632 + keen::FogMaterialParameters blizzardMaterial; // Offset: 660 +}; + +typedef keen::StaticArray Fog2ShadowVolumeTransformMatrices; + +struct VolumetricFogGridRenderParameters { + keen::FogMaterialParameters noneMaterial; // Offset: 0 + keen::FogMaterialParameters dangerousMaterial; // Offset: 28 + keen::FogMaterialParameters deadlyMaterial; // Offset: 56 + keen::FogMaterialParameters decorativeMaterial; // Offset: 84 +}; + +struct VolumetricFogGridUpdateShaderData { + keen::int3 origin; // Offset: 0 + keen::uint3 size; // Offset: 16 + keen::uint32 bufferOffset; // Offset: 28 +}; + +struct GroundFogParameters { + keen::float32 height; // Offset: 28 + keen::float32 angleFadeoutPosition; // Offset: 32 + keen::float32 angleFadeoutRange; // Offset: 36 + keen::float32 sdfGradientEpsilon; // Offset: 40 + keen::float32 flowSpeed; // Offset: 44 + keen::ObjectReference noise; // Offset: 48 + keen::float32 noiseTilingSize; // Offset: 64 +}; + +struct CloudErosionPass { + keen::float32 tilingSize; // Offset: 0 + keen::float32 heightTilingSize; // Offset: 4 + keen::float32 scrollSpeed; // Offset: 8 + keen::float32 strength; // Offset: 12 + keen::ObjectReference noise; // Offset: 16 +}; + +struct CloudParameters { + keen::float32 yMin; // Offset: 28 + keen::float32 yMax; // Offset: 32 + keen::ObjectReference cloudMap; // Offset: 36 + keen::ObjectReference cloudTypes; // Offset: 52 + keen::CloudErosionPass erosionPass0; // Offset: 68 + keen::CloudErosionPass erosionPass1; // Offset: 100 + keen::CloudErosionPass erosionPass2; // Offset: 132 + keen::float32 shadowStrength; // Offset: 164 + keen::float32 shadowStrengthSlope; // Offset: 168 + keen::float32 shadowStrengthOffset; // Offset: 172 + keen::float32 fadeoutStart; // Offset: 176 + keen::float32 fadeoutRange; // Offset: 180 +}; + +struct VolumetricFogInitializationMaterial { + keen::GroundFogParameters ground; // Offset: 0 + keen::CloudParameters clouds; // Offset: 68 +}; + +struct CloudLayerShadowParameterBlockData { + keen::float32 yMin; // Offset: 0 + keen::float32 yMax; // Offset: 4 + keen::float32 invYRange; // Offset: 8 + keen::float32 shadowStrength; // Offset: 12 + keen::float2 shadowSampleMap; // Offset: 16 +}; + +struct AnalyticFogShadowParameterBlock { + keen::CloudLayerShadowParameterBlockData clouds; // Offset: 0 +}; + +struct AnalyticFogResource { + keen::RenderParameterBlock analyticFogShadowParameterBlock; // Offset: 0 + keen::RenderTexture cloudMap; // Offset: 52 +}; + +enum class VolumetricFogInjectionShape { + Box = 0, + Sphere = 1, +}; + +struct VolumetricFogInjectInstanceData { + keen::float3 position; // Offset: 0 + keen::uint32 shape; // Offset: 12 + keen::float4 rotation; // Offset: 16 + keen::float3 size; // Offset: 32 + keen::float32 density; // Offset: 44 + keen::BindlessTexture3D_float densityTexture; // Offset: 48 + keen::BindlessSampler densityTextureSampler; // Offset: 52 + keen::float32 falloff; // Offset: 56 + keen::float3 uvOffset; // Offset: 60 + keen::float3 uvScale; // Offset: 72 + keen::float3 emission; // Offset: 84 + keen::float32 extinction; // Offset: 96 + keen::float3 scattering; // Offset: 100 + keen::float32 g; // Offset: 112 +}; + +enum class WeatherSampleFlag { + EnableDynamicWetness = 1, + ApplyWeather = 2, +}; + +struct VoxelMaterialList { + keen::ObjectReference defaultTerrainMaterial; // Offset: 0 +}; + +typedef keen::ObjectReference VoxelMaterialReference; + +struct TerrainMaterialLayer { + keen::ObjectReference material; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableSeparateTilingSizeY; // Offset: 20 + keen::float32 tilingSizeY; // Offset: 24 + keen::float32 parallaxDepth; // Offset: 28 + keen::uint32 parallaxMinLayerCount; // Offset: 32 + keen::uint32 parallaxMaxLayerCount; // Offset: 36 + keen::float32 parallaxFadeoutStart; // Offset: 40 + keen::float32 parallaxFadeoutLength; // Offset: 44 + keen::float32 parallaxMinAngle; // Offset: 48 + keen::float32 parallaxAngleFadeoutLength; // Offset: 52 + keen::PbrTerrainMaterialDisplacementLayer displacement; // Offset: 56 +}; + +struct TerrainMaterialOverlayBlendLayer { + keen::float32 fadeInDistance; // Offset: 64 + keen::float32 fadeInRange; // Offset: 68 +}; + +struct TerrainMaterialDetailBlendLayer { + keen::float32 maxOpacity; // Offset: 72 + keen::float32 maxOpacityNormal; // Offset: 76 + keen::PbrTerrainMaterialDetailNormalBlendMode mode; // Offset: 80 +}; + +struct TerrainMaterialColorVariation { + keen::ObjectReference map; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableMidPoint; // Offset: 20 + keen::Color start; // Offset: 24 + keen::Color mid; // Offset: 28 + keen::Color end; // Offset: 32 + keen::float32 midPosition; // Offset: 36 +}; + +enum class WorldMaterialBlending2MappingDirection { + Side = 1, + Top = 2, + Bottom = 4, + All = 7, +}; + +struct WorldMaterial2Layer { + keen::WorldMaterialBlending2MappingDirection mappingDirection; // Offset: 0 + keen::float32 heightBias; // Offset: 4 + keen::ObjectReference edgeNoiseMap; // Offset: 8 + keen::float32 edgeNoiseMapTilingSize; // Offset: 24 + keen::float32 edgeNoiseStrength; // Offset: 28 + keen::PbrTerrainMaterialCenterBlendingSmoothness frontRightBlendingSmoothness; // Offset: 32 + keen::bool enableSnowDisplacement; // Offset: 40 + keen::bool disableFrostShader; // Offset: 41 + keen::bool disableSnowShader; // Offset: 42 + keen::bool disableWetnessShader; // Offset: 43 + keen::bool enableFrostShaderGlitter; // Offset: 44 +}; + +enum class WorldMaterial2Area { + Surface = 0, + Underworld = 1, +}; + +enum class WorldMaterial2Side { + Top = 0, + Side = 1, + Bottom = 2, +}; + +enum class WorldMaterial2BlendingValue { + Flatness = 0, +}; + +struct WorldMaterial2BlendingValueMapping { + keen::float32 position; // Offset: 0 + keen::float32 range; // Offset: 4 +}; + +struct WorldMaterial2Node { + keen::bool enable; // Offset: 0 +}; + +struct WorldMaterial2AreaNode { + keen::WorldMaterial2Area area; // Offset: 1 +}; + +struct WorldMaterial2VoxelMaterialNode { + keen::ObjectReference voxelMaterial; // Offset: 4 +}; + +struct WorldMaterial2SideSelectorNode { + keen::WorldMaterial2BlendingValueMapping topMapping; // Offset: 4 + keen::WorldMaterial2BlendingValueMapping bottomMapping; // Offset: 12 +}; + +struct WorldMaterial2SideNode { + keen::WorldMaterial2Side side; // Offset: 1 +}; + +struct WorldMaterial2BlendingValueNode { + keen::WorldMaterial2BlendingValue value; // Offset: 1 + keen::WorldMaterial2BlendingValueMapping mapping; // Offset: 4 + keen::bool invert; // Offset: 12 +}; + +struct WorldMaterial2MapNode { + keen::ObjectReference map; // Offset: 4 + keen::float32 mapTilingSize; // Offset: 20 +}; + +struct WorldMaterial2LayerNode { + keen::ObjectReference material; // Offset: 4 +}; + +struct WorldMaterial2 { +}; + +enum class WorldMaterialBlending2BlendingMode { + Blend = 0, + OverlayNormal = 1, +}; + +enum class WorldMaterialBlending2BakingBlendValueOperationType { + Area = 1, + VoxelMaterial = 2, + InputValue = 3, + Map = 4, + Top = 10, + Bottom = 11, + Side = 12, +}; + +enum class WorldMaterialBlending2BakingInputValue { + TopSide = 0, + BottomSide = 1, + Flatness = 2, +}; + +struct WorldMaterialBlending2BakingBlendValueOperation { + keen::uint32 type; // Offset: 0 + keen::float32 param0; // Offset: 4 + keen::float32 param1; // Offset: 8 + keen::float32 param2; // Offset: 12 + keen::float32 param3; // Offset: 16 +}; + +struct WorldMaterialBlending2BakingLayerShaderData { + keen::StaticArray ops; // Offset: 0 + keen::uint32 opCount; // Offset: 160 +}; + +struct WorldMaterialBlending2MaterialBlendLayerShaderData { + keen::float2 weightFunction; // Offset: 0 +}; + +enum class WorldMaterialBlending2MaterialLayerFlag { + UsesDetailScattering = 1, + UsesSnowDisplacement = 2, + DisableFrostShader = 4, + DisableSnowShader = 8, + DisableWetnessShader = 16, + UsesFrostShaderGlitter = 32, +}; + +struct WorldMaterialBlending2MaterialLayerRenderingShaderData { + keen::uint32 mappingDirection; // Offset: 0 + keen::uint32 baseLayerIndex; // Offset: 4 + keen::uint32 blendLayerCount; // Offset: 8 + keen::uint32 detailBlendingMode; // Offset: 12 + keen::float32 heightBlendingFactor; // Offset: 16 + keen::StreamedTexture2D_float edgeNoise; // Offset: 20 + keen::float32 edgeNoiseTilingFactor; // Offset: 24 + keen::float32 edgeNoiseMappingFactor; // Offset: 28 + keen::float4 frontRightBlendSmoothness; // Offset: 32 + keen::float2 detailWeightFunction; // Offset: 48 + keen::float2 detailOpacityMapping; // Offset: 56 + keen::StaticArray blendLayerParameters; // Offset: 64 + keen::float3 colorVariationStart; // Offset: 96 + keen::StreamedTexture2D_float4 colorVariationMap; // Offset: 108 + keen::float3 colorVariationMid; // Offset: 112 + keen::float32 colorVariationTilingFactor; // Offset: 124 + keen::float3 colorVariationEnd; // Offset: 128 + keen::uint32 flags; // Offset: 140 + keen::float3 colorVariationParams; // Offset: 144 +}; + +struct WorldMaterialBlending2MaterialLayerTextureShaderData { + keen::float2 tilingFactor; // Offset: 0 + keen::StreamedTexture2D_float4 emissiveMap; // Offset: 8 + keen::float32 emissiveMapIntensity; // Offset: 12 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 16 + keen::StreamedTexture2D_float4 albedoMap; // Offset: 20 + keen::StreamedTexture2D_float roughnessMap; // Offset: 24 + keen::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::StreamedTexture2D_float heightMap; // Offset: 32 + keen::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 displacementScale; // Offset: 40 + keen::float32 displacementOffset; // Offset: 44 + keen::float32 parallaxFactor; // Offset: 48 + keen::uint32 parallaxMinLayerCount; // Offset: 52 + keen::uint32 parallaxMaxLayerCount; // Offset: 56 + keen::float32 parallaxFadeoutStart; // Offset: 60 + keen::float32 parallaxInverseFadeoutLength; // Offset: 64 + keen::float32 parallaxMinAngleSin; // Offset: 68 + keen::float32 parallaxInverseAngleFadeoutLength; // Offset: 72 + keen::float32 emissiveGiFactor; // Offset: 76 + keen::float32 distortionMapScale; // Offset: 80 + keen::float32 distortionMapSpeed; // Offset: 84 + keen::float32 distortionMapIntensity; // Offset: 88 + keen::float32 lightningMapScrollSpeed; // Offset: 92 + keen::float32 lightningMapIntensity; // Offset: 96 + keen::StreamedTexture2D_float4 distortionMap; // Offset: 100 + keen::StreamedTexture2D_float4 lightningMap; // Offset: 104 + keen::StreamedTexture2D_float4 gradientMap; // Offset: 108 +}; + +struct WorldMaterialBlending2MaterialLayerRange { + keen::uint32 firstLayer; // Offset: 0 + keen::uint32 layerCount; // Offset: 4 +}; + +struct WorldMaterialBlending2Resource { + keen::uint32 layerCount; // Offset: 0 + keen::RenderParameterBlock bakingParameterBlock; // Offset: 4 + keen::RenderParameterBlock renderingLayerParameterBlock; // Offset: 56 + keen::RenderParameterBlock renderingTextureParameterBlock; // Offset: 108 + keen::RenderParameterBlock voxelToLayerParameterBlock; // Offset: 160 + keen::BlobArray renderingLayerImageSizeInfos; // Offset: 212 + keen::BlobArray renderingLayerImageSizeInfoStartIndices; // Offset: 220 + keen::BlobArray renderingTextureImageSizeInfos; // Offset: 228 + keen::BlobArray renderingTextureImageSizeInfoStartIndices; // Offset: 236 + keen::BlobArray renderingLayerUsesSnowDisplacement; // Offset: 244 +}; + +struct WorldMaterialBlending2DebugResource { + keen::BlobArray layerGuids; // Offset: 0 + keen::BlobArray layerNames; // Offset: 8 +}; + +struct ZoneVisualizationSdfBoundingSphere { + keen::float3 worldSpacePosition; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 +}; + +enum class ZoneVisualizationSdfElementType { + BuildZone = 0, + NoBuildZone = 1, +}; + +struct ZoneVisualizationSdfElement { + keen::float3 halfSize; // Offset: 0 + keen::ZoneVisualizationSdfElementType type; // Offset: 12 +}; + +struct ZoneVisualizationSdfShaderData { + keen::uint32 elementCount; // Offset: 0 + keen::float32 smoothingRadius; // Offset: 4 +}; + +struct ZoneVisualizationSdfShaderStorageData { + keen::StaticArray boundingSpheres; // Offset: 0 + keen::StaticArray elements; // Offset: 512 +}; + +struct ZoneVisualizationSdfRenderingShaderData { + keen::float32 borderInverseSize; // Offset: 0 + keen::float32 borderCurveMax; // Offset: 4 + keen::float32 noiseBorderTilingFactor; // Offset: 8 + keen::float32 noisePositionTilingFactor; // Offset: 12 + keen::float32 noiseOffset; // Offset: 16 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 20 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 32 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 40 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 48 + keen::float3 buildZoneBorderColor; // Offset: 64 + keen::float3 noBuildZoneBorderColor; // Offset: 80 + keen::uint32 drawBuildZoneBorder; // Offset: 92 + keen::ZoneVisualizationSdfBoundingSphere previewBuildZoneBoundingSphere; // Offset: 96 + keen::ZoneVisualizationSdfElement previewBuildZone; // Offset: 112 + keen::float3 previewBuildZoneBorderColor; // Offset: 128 +}; + +struct ZoneVisualizationRasterizationShaderData { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::float3 cameraPosition; // Offset: 112 + keen::float4 color; // Offset: 128 + keen::float2 distanceFarFadeFunction; // Offset: 144 + keen::float2 distanceNearFadeFunction; // Offset: 152 +}; + +struct ZoneVisualizationRasterizationPushConstants { + keen::float3 boxCenter; // Offset: 0 + keen::float3 boxHalfSize; // Offset: 12 +}; + +struct ZoneVisualizationSettings { + keen::float32 smoothingRadius; // Offset: 0 + keen::HdrColorRgb buildZoneBorderColor; // Offset: 4 + keen::HdrColorRgb noBuildZoneBorderColor; // Offset: 20 + keen::HdrColorRgb previewBuildZoneBorderColor; // Offset: 36 + keen::float32 borderSize; // Offset: 52 + keen::float32 borderCurveMax; // Offset: 56 + keen::ObjectReference noiseTexture; // Offset: 60 + keen::float32 noiseBorderTilingSize; // Offset: 76 + keen::float32 noisePositionTilingSize; // Offset: 80 + keen::float32 noiseScrollSpeed; // Offset: 84 + keen::FloatRange buildZoneDistanceFadeRange; // Offset: 88 + keen::FloatRange noBuildZoneDistanceFadeRange; // Offset: 96 + keen::FloatRange noBuildZoneBuildZoneDistanceFadeRange; // Offset: 104 + keen::FloatRange noBuildZonePreviewDistanceFadeRange; // Offset: 112 + keen::HdrColorRgb playableAreaColor; // Offset: 120 + keen::float32 playableAreaAlpha; // Offset: 136 + keen::FloatRange playableAreaDistanceFadeRange; // Offset: 140 + keen::FloatRange playableAreaNearFadeRange; // Offset: 148 + keen::ObjectReference playableAreaModel; // Offset: 156 +}; + +struct ZoneVisualizationResource { + keen::float32 smoothingRadius; // Offset: 0 + keen::float32 borderInverseSize; // Offset: 4 + keen::float32 borderCurveMax; // Offset: 8 + keen::RenderTexture noiseTexture; // Offset: 12 + keen::float32 noiseBorderTilingFactor; // Offset: 48 + keen::float32 noisePositionTilingFactor; // Offset: 52 + keen::float32 noiseScrollSpeed; // Offset: 56 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 60 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 68 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 76 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 84 + keen::float3 buildZoneBorderColor; // Offset: 92 + keen::float3 noBuildZoneBorderColor; // Offset: 104 + keen::float3 previewBuildZoneBorderColor; // Offset: 116 + keen::float4 playableAreaColor; // Offset: 128 + keen::float2 playableAreaCameraDistanceFarFadeFunction; // Offset: 144 + keen::float2 playableAreaCameraDistanceNearFadeFunction; // Offset: 152 + keen::uint32 playableAreaMeshVertexCount; // Offset: 160 + keen::uint32 playableAreaMeshIndexCount; // Offset: 164 + keen::ContentHash playableAreaMeshData; // Offset: 168 +}; + +struct BlockOutMeshPointBrushScatteringSettings { + keen::bool disablePoint; // Offset: 0 + keen::bool disableLowerEdge; // Offset: 1 + keen::bool disableUpperEdge; // Offset: 2 + keen::bool disableWallTriangle0; // Offset: 3 + keen::bool disableWallTriangle1; // Offset: 4 +}; + +struct BlockOutMeshPoint { + keen::float3 position; // Offset: 0 + keen::float32 height; // Offset: 12 + keen::float2 offset; // Offset: 16 + keen::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 24 +}; + +enum class DistributionRule { + Everywhere = 0, + AboveFog = 1, + BelowFog = 2, +}; + +enum class DistributionNodeType { + None = 0, + VoxelBrush = 1, + Scene = 2, + Spawn = 3, +}; + +struct SceneEntitySpawnData { + keen::float3 velocity; // Offset: 0 + keen::Color tintColor; // Offset: 12 + keen::float32 triggerRange; // Offset: 16 + keen::float32 triggerRange2; // Offset: 20 + keen::float32 triggerRange3; // Offset: 24 + keen::ecs::Offset triggerOffset; // Offset: 28 + keen::sint32 level; // Offset: 68 + keen::sint32 levelOffset; // Offset: 72 + keen::ecs::EnemySettings enemySettings; // Offset: 76 + keen::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 140 + keen::ecs::EnemyTestFlags enemyTestFlags; // Offset: 144 + keen::AmbientEnvironment ambience; // Offset: 148 + keen::ObjectReference enemyMarkerTag; // Offset: 152 + keen::LocaTagReference teleporterId; // Offset: 168 + keen::LocaTagReference teleportTargetId; // Offset: 184 + keen::float32 jumpDistance; // Offset: 200 + keen::float32 jumpHeight; // Offset: 204 + keen::Quaternion jumpLaunchOffset; // Offset: 208 + keen::ecs::EntitySpawnValueMask mask; // Offset: 224 +}; + +struct DistributionNode { + keen::DistributionNodeType type; // Offset: 0 + keen::ObjectReference voxelBrush; // Offset: 4 + keen::float32 voxelBrushScale; // Offset: 20 + keen::float32 voxelBrushScaleVariation; // Offset: 24 + keen::ObjectReference scene; // Offset: 28 + keen::sint32 spawnLevelOffset; // Offset: 44 + keen::ObjectReference spawnTemplate; // Offset: 48 + keen::SceneEntitySpawnData spawnData; // Offset: 64 + keen::bool alignRotationToRoad; // Offset: 292 + keen::ObjectReference map; // Offset: 296 + keen::ObjectReference compositeMap; // Offset: 312 + keen::DistributionRule rule; // Offset: 328 + keen::float32 density; // Offset: 332 + keen::float32 radius; // Offset: 336 + keen::float32 maxHeightDifference; // Offset: 340 + keen::float32 minDistance; // Offset: 344 + keen::float32 minContentDistance; // Offset: 348 + keen::float32 maxRoadDistance; // Offset: 352 + keen::bool onlyAtCrossings; // Offset: 356 + keen::bool snapToRoad; // Offset: 357 + keen::FloatRange rotationRange; // Offset: 360 +}; + +struct DistributionNodeGroupEntry { + keen::DistributionNodeType type; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::ObjectReference voxelBrush; // Offset: 20 + keen::float32 voxelBrushScale; // Offset: 36 + keen::float32 voxelBrushScaleVariation; // Offset: 40 + keen::ObjectReference scene; // Offset: 44 + keen::sint32 spawnLevelOffset; // Offset: 60 + keen::ObjectReference spawnTemplate; // Offset: 64 + keen::SceneEntitySpawnData spawnData; // Offset: 80 + keen::BlobArray whiteboxTags; // Offset: 308 + keen::float32 probabilityWeight; // Offset: 316 + keen::bool alignRotationToRoad; // Offset: 320 + keen::FloatRange rotationRange; // Offset: 324 +}; + +struct RoadCrossingNode { + keen::ObjectReference scene; // Offset: 0 + keen::uint32 weight; // Offset: 16 + keen::bool keepPlainCrossing; // Offset: 20 +}; + +struct ConvertedDistributionNode { + keen::ObjectReference map; // Offset: 0 + keen::DistributionRule rule; // Offset: 16 + keen::float32 density; // Offset: 20 + keen::float32 radius; // Offset: 24 + keen::float32 maxHeightDifference; // Offset: 28 + keen::float32 minDistance; // Offset: 32 + keen::float32 minContentDistance; // Offset: 36 + keen::float32 maxRoadDistance; // Offset: 40 + keen::bool onlyAtCrossings; // Offset: 44 + keen::bool snapToRoad; // Offset: 45 + keen::Guid objectId; // Offset: 48 + keen::BlobArray groupEntries; // Offset: 64 +}; + +struct DistributionNodes { + keen::BlobArray nodes; // Offset: 0 + keen::BlobArray roadCrossings; // Offset: 8 +}; + +struct ScatterSetImageInfos { + keen::BlobArray> images; // Offset: 0 +}; + +enum class ScatterResolution { + One = 0, + Two = 1, + Four = 2, + Eight = 3, + Sixteen = 4, +}; + +struct ScatterNodeMap { + keen::ObjectReference image; // Offset: 0 + keen::uint2 position; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool wrap; // Offset: 32 +}; + +enum class ScatterNodeFlag { + UseNormal = 0, +}; + +typedef keen::Bitmask8 ScatterNodeFlags; + +enum class ScatterLocation { + Surface = 0, + Cave = 1, + Ceiling = 2, +}; + +enum class ScatterSetVoxelMap { + FloorHeight = 0, + CeilHeight = 1, + CaveHeight = 2, + FloorPitch = 3, + CavePitch = 4, + FloorBuilding = 5, + FloorFog = 6, + CaveFog = 7, + RoadDistance = 8, + Blockers = 9, +}; + +enum class ScatterSetRule { + Nowhere = 0, + Everywhere = 1, + Flat = 2, + AboveFog = 3, + BelowFog = 4, + InCave = 5, + ForestCore = 6, + ForestBorder = 7, + Road = 8, + RoadBorder = 9, + Water = 10, +}; + +enum class ScatterSetFootprintMap { + Two = 0, + Four = 1, + Eight = 2, + Sixteen = 3, +}; + +enum class ScatterSetImageMap { + Forest = 0, +}; + +struct ScatterScaleRange { + keen::float32 minValue; // Offset: 0 + keen::float32 maxValue; // Offset: 4 +}; + +struct ScatterYawRange { + keen::sint32 minValue; // Offset: 0 + keen::sint32 maxValue; // Offset: 4 +}; + +struct ScatterPitchRange { + keen::uint32 minValue; // Offset: 0 + keen::uint32 maxValue; // Offset: 4 +}; + +enum class ScatterNodeImageType { + ScatterNodeMap = 0, + ScatterImage = 1, + CompositeScatterImage = 2, +}; + +struct ScatterNode { + keen::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::ScatterNodeMap map; // Offset: 36 + keen::ObjectReference model; // Offset: 72 + keen::ecs::TemplateReference entity; // Offset: 88 + keen::ScatterResolution resolution; // Offset: 104 + keen::ScatterSetRule rule; // Offset: 105 + keen::Biome biome; // Offset: 106 + keen::ScatterLocation location; // Offset: 107 + keen::uint32 footprint; // Offset: 108 + keen::float32 probability; // Offset: 112 + keen::ScatterScaleRange scale; // Offset: 116 + keen::ScatterYawRange yaw; // Offset: 124 + keen::ScatterPitchRange pitch; // Offset: 132 + keen::ScatterNodeFlags flags; // Offset: 140 +}; + +struct ScatterSetMaps { + keen::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference forest; // Offset: 4 + keen::ObjectReference forestScatterImage; // Offset: 20 + keen::ObjectReference forestCompositeScatterImage; // Offset: 36 +}; + +struct ScatterSet3 { + keen::ScatterSetMaps maps; // Offset: 0 +}; + +struct ScatterSetObject { + keen::ObjectReference model; // Offset: 0 + keen::ecs::TemplateResourceReference entity; // Offset: 16 + keen::ScatterSetRule rule; // Offset: 32 + keen::uint32 mapIndex; // Offset: 36 + keen::uint32 footprint; // Offset: 40 + keen::float32 probability; // Offset: 44 + keen::FloatRange scale; // Offset: 48 + keen::FloatRange yaw; // Offset: 56 + keen::FloatRange pitch; // Offset: 64 + keen::ScatterNodeFlags flags; // Offset: 72 + keen::Biome biome; // Offset: 73 + keen::ScatterLocation location; // Offset: 74 + keen::ScatterResolution resolution; // Offset: 75 + keen::BlobString name; // Offset: 76 +}; + +struct ScatterSetMapInfo { + keen::uint2 size; // Offset: 0 + keen::ContentHash hash; // Offset: 8 + keen::BlobString name; // Offset: 24 + keen::BlobString bauPath; // Offset: 32 +}; + +struct ScatterSetImageData { + keen::uint2 imageSize; // Offset: 0 + keen::uint2 position; // Offset: 8 + keen::uint2 size; // Offset: 16 + keen::bool wrap; // Offset: 24 + keen::ContentHash hash; // Offset: 28 + keen::BlobString name; // Offset: 44 + keen::BlobString bauPath; // Offset: 52 + keen::Guid scatterImage; // Offset: 60 +}; + +struct ScatterSetLocationObjects { + keen::BlobArray objects; // Offset: 0 +}; + +struct ScatterSetResolutionObjects { + keen::StaticArray locations; // Offset: 0 +}; + +struct ScatterSet3Resource { + keen::BlobArray maps; // Offset: 0 + keen::StaticArray resolutions; // Offset: 8 + keen::BlobArray objects; // Offset: 128 +}; + +typedef keen::ObjectReference ScatterSet3ResourceReference; + +enum class composite_scatter_image.CompositeOperation { + Multiply = 0, + InverseMultiply = 1, + Min = 2, + Max = 3, + Add = 4, + Sub = 5, +}; + +enum class composite_scatter_image.InputType { + ScatterImage = 0, + CompositeScatterImage = 1, + Value = 2, +}; + +enum class composite_scatter_image.InputOperation { + None = 0, + Invert = 1, + RangeToMask = 2, +}; + +struct composite_scatter_image.Input { + keen::composite_scatter_image::InputType type; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::float32 value; // Offset: 36 + keen::composite_scatter_image::InputOperation inputOperation; // Offset: 40 + keen::float32 inputToMaskMin; // Offset: 44 + keen::float32 inputToMaskMax; // Offset: 48 + keen::composite_scatter_image::CompositeOperation operation; // Offset: 52 +}; + +struct CompositeScatterImage { + keen::uint32 upscaleFactor; // Offset: 0 + keen::StaticArray inputs; // Offset: 4 + keen::float32 remapSourceFrom; // Offset: 340 + keen::float32 remapSourceTo; // Offset: 344 + keen::float32 outputLevelsFrom; // Offset: 348 + keen::float32 outputLevelsTo; // Offset: 352 +}; + +struct TestCompositeScatterImage { + keen::ObjectReference testObjectReference; // Offset: 0 +}; + +struct DungeonTriggerConfiguration { +}; + +struct DungeonTriggerSetup { + keen::BlobString identifier; // Offset: 0 + keen::Color color; // Offset: 8 +}; + +struct DungeonTriggerSlot { + keen::BlobString identifier; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 8 +}; + +struct DungeonTriggerInput { +}; + +struct DungeonTriggerOutput { + keen::bool sendActivateEvent; // Offset: 12 + keen::bool sendDeactivateEvent; // Offset: 13 + keen::bool sendResultSignal; // Offset: 14 +}; + +struct DungeonTriggerInfo { + keen::Color color; // Offset: 0 + keen::BlobArray inputs; // Offset: 4 + keen::BlobArray outputs; // Offset: 12 +}; + +typedef keen::DungeonTriggerInfo EntityTriggerInfo; + +struct DungeonTriggerGraph { +}; + +struct DungeonTriggerGraphNode { + keen::Vector2 position; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 8 +}; + +struct DungeonTriggerGraphNodeEndPoint { + keen::ObjectReference trigger; // Offset: 24 + keen::ObjectReference scene; // Offset: 40 + keen::ObjectReference room; // Offset: 56 +}; + +enum class DungeonLogicOperator { + Invalid = 0, + And = 1, + Or = 2, + Not = 3, +}; + +struct DungeonTriggerSettingsNode { +}; + +struct DungeonTriggerGraphNodeDungeonLogic { +}; + +struct DungeonTriggerGraphNodeBool { + keen::bool value; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeAnd { + keen::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeOr { + keen::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeNot { + keen::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeDelay { + keen::Time duration; // Offset: 24 + keen::DelayMask filter; // Offset: 32 +}; + +struct DungeonTriggerGraphNodeSender { +}; + +struct DungeonTriggerGraphNodeReceiver { +}; + +struct DungeonTriggerGraphNodeWhitebox { +}; + +struct DungeonTriggerGraphLink { + keen::ObjectReference startNode; // Offset: 0 + keen::ObjectReference endNode; // Offset: 16 + keen::HashKey32 startSlot; // Offset: 32 + keen::HashKey32 endSlot; // Offset: 36 + keen::uint8 startIndex; // Offset: 40 + keen::uint8 endIndex; // Offset: 41 + keen::bool sendActivateEvent; // Offset: 42 + keen::bool sendDeactivateEvent; // Offset: 43 + keen::bool sendResultSignal; // Offset: 44 +}; + +struct PrefabTriggerInfo { + keen::Guid triggerEntityGuid; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 16 +}; + +struct PrefabContainmentSet { + keen::BlobArray triggerTypes; // Offset: 0 +}; + +struct PrefabTriggerSlotType { + keen::HashKey32 slotTypeId; // Offset: 0 + keen::bool isInput; // Offset: 4 + keen::Color uiColor; // Offset: 8 + keen::string identifier; // Offset: 12 + keen::bool sendActivateEvent; // Offset: 20 + keen::bool sendDeactivateEvent; // Offset: 21 + keen::bool sendResultSignal; // Offset: 22 +}; + +struct PrefabContainment { + keen::Guid prefabId; // Offset: 0 + keen::BlobArray triggerGuids; // Offset: 16 + keen::BlobArray slotDefinitions; // Offset: 24 + keen::BlobArray containmentVariations; // Offset: 32 +}; + +struct WhiteboxContainment { + keen::BlobArray slotDefinitions; // Offset: 0 + keen::BlobArray containmentVariations; // Offset: 8 +}; + +enum class WhiteboxTriggerFlags { + Invalid = 0, + Settings = 1, + Sender = 2, + Receiver = 3, +}; + +typedef keen::Bitmask8 WhiteboxTriggerMask; + +struct WhiteboxTriggerSetup { + keen::string triggerFormula; // Offset: 0 + keen::Time triggerDelay; // Offset: 8 + keen::DelayMask triggerDelayMask; // Offset: 16 + keen::StaticArray triggerIds; // Offset: 20 + keen::HashKey32 triggerSlot; // Offset: 84 + keen::WhiteboxTriggerMask triggerMask; // Offset: 88 + keen::uint8 triggerIndex; // Offset: 89 + keen::bool sendActivateEvent; // Offset: 90 + keen::bool sendDeactivateEvent; // Offset: 91 + keen::bool sendResultSignal; // Offset: 92 + keen::bool initialState; // Offset: 93 +}; + +struct WhiteboxTriggerInfo { + keen::Guid triggerObjectInstanceId; // Offset: 96 +}; + +struct DungeonTrigger { + keen::BlobString identifier; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 + keen::Guid roomSceneId; // Offset: 64 + keen::Guid roomInstanceId; // Offset: 80 + keen::Guid whiteboxInstanceId; // Offset: 96 + keen::BlobArray containmentVariations; // Offset: 112 + keen::AxisAlignedBox boundingBox; // Offset: 128 +}; + +struct RoomTriggerList { + keen::Guid dungeonTriggerGraphId; // Offset: 0 + keen::BlobArray slotDefinitions; // Offset: 16 + keen::BlobArray trigger; // Offset: 24 +}; + +struct DungeonTriggerWhitebox { + keen::Guid id; // Offset: 0 + keen::BlobArray setups; // Offset: 16 +}; + +struct DungeonTriggerRoom { + keen::Guid id; // Offset: 0 + keen::BlobArray whiteboxes; // Offset: 16 +}; + +struct DungeonTriggers { + keen::BlobArray rooms; // Offset: 0 +}; + +struct EntityAnimationPath { + keen::AttachmentSlot slot; // Offset: 0 + keen::Time length; // Offset: 8 +}; + +struct EntityAnimationPathPoint { + keen::float3 offset; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::bool enableConstantRotationX; // Offset: 28 + keen::float constantRotationX; // Offset: 32 + keen::bool enableConstantRotationY; // Offset: 36 + keen::float constantRotationY; // Offset: 40 + keen::bool enableConstantRotationZ; // Offset: 44 + keen::float constantRotationZ; // Offset: 48 +}; + +struct SceneTemplate { +}; + +struct SceneWaterTemplate { +}; + +struct VfxUserEffectParameterDataBlockIncludeDummy0 { + keen::VfxUserEffectParameterDataBlock dummy; // Offset: 0 +}; + +struct SceneModel { + keen::ObjectReference model; // Offset: 64 + keen::ObjectReference clothCollider; // Offset: 80 + keen::Color color; // Offset: 96 +}; + +struct EntitySpawnDefinition { + keen::ecs::TemplateReference templateReference; // Offset: 0 + keen::ObjectReference model; // Offset: 16 + keen::Color color; // Offset: 32 +}; + +struct TemplatePreviewSubEntity { + keen::Guid templateId; // Offset: 0 + keen::BlobArray> models; // Offset: 16 + keen::ecs::Offset offset; // Offset: 24 + keen::AttachmentSlot slot; // Offset: 64 +}; + +struct TemplatePreviewVfx { + keen::ObjectReference vfx; // Offset: 0 + keen::ecs::Offset offset; // Offset: 16 + keen::AttachmentSlot slot; // Offset: 56 + keen::BlobOptional initParameters; // Offset: 60 +}; + +struct TemplatePreviewPart { + keen::ObjectReference model; // Offset: 0 + keen::ColorCombination paletteColors; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::BlobArray blendShapes; // Offset: 80 +}; + +struct TemplatePreview { + keen::BlobArray parts; // Offset: 0 + keen::ObjectReference spawnedEntity; // Offset: 8 + keen::TemplatePreviewVfx vfx; // Offset: 24 + keen::BlobArray subEntities; // Offset: 88 + keen::AttachmentSlotMask subEntityAttachmentMask; // Offset: 96 + keen::ObjectReference animationGraph; // Offset: 100 + keen::StaticArray slotJointIndexMapping; // Offset: 116 + keen::Guid hierarchyId; // Offset: 144 + keen::ecs::ColliderDataArray allColliders; // Offset: 160 + keen::float scale; // Offset: 168 +}; + +struct TemplateInfo { + keen::BlobString description; // Offset: 0 + keen::bool isPlayerSpawn; // Offset: 8 + keen::bool isMapMarker; // Offset: 9 + keen::bool isFakePlayerSpawner; // Offset: 10 + keen::bool isContainer; // Offset: 11 + keen::bool isActor; // Offset: 12 + keen::bool isAutomatedPlayer; // Offset: 13 + keen::bool isSkinned; // Offset: 14 + keen::bool doNotSave; // Offset: 15 + keen::bool questEntity; // Offset: 16 + keen::bool isNpc; // Offset: 17 + keen::bool isCraftingAssistant; // Offset: 18 + keen::LocaTagId nameLocaId; // Offset: 20 + keen::UiNpcRenderingOptions npcRenderingOptions; // Offset: 24 + keen::WorkshopId workshopId; // Offset: 76 + keen::LocaTagId workshopLabel; // Offset: 80 + keen::CharacterPresetReference characterPresetReference; // Offset: 84 + keen::ItemReference placementItem; // Offset: 100 + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 116 + keen::uint32 containerSlotCount; // Offset: 220 + keen::ObjectReference floorMaterial; // Offset: 224 + keen::float32 floorMaterialRadius; // Offset: 240 + keen::FloorMaterialShape floorMaterialShape; // Offset: 244 + keen::float32 floorMaterialNoiseStrength; // Offset: 248 + keen::ObjectReference fallbackModel; // Offset: 252 +}; + +struct TemplateInfoCollection { + keen::BlobArray templateGuids; // Offset: 0 + keen::BlobArray templateInfos; // Offset: 8 + keen::BlobArray templateBBoxes; // Offset: 16 +}; + +struct TemplateSubentityIds { + keen::BlobArray subentityTemplateGuids; // Offset: 0 +}; + +struct SceneEntitySpawn { + keen::ObjectReference entitySpawnDefinition; // Offset: 64 + keen::ObjectReference templateReference; // Offset: 80 + keen::ContentHash templatePreviewContentHash; // Offset: 96 + keen::SceneEntitySpawnData spawnData; // Offset: 112 + keen::bool storeSceneId; // Offset: 340 + keen::bool snapToGround; // Offset: 341 + keen::bool enableFloorMaterial; // Offset: 342 +}; + +struct EntitySpawnInfo { + keen::KnowledgeId unlockKnowledge; // Offset: 0 + keen::BlobArray subEntityKnowledgeQueries; // Offset: 4 + keen::BlobArray triggerKnowledgeIds; // Offset: 12 + keen::HashKey32 uiWorldEventId; // Offset: 20 + keen::Guid knowledgeQuery; // Offset: 24 + keen::LootContainerId lootContainerId; // Offset: 40 + keen::FogRemovalId fogRemovalId; // Offset: 44 + keen::JointAnimationReference entityAnimation; // Offset: 48 + keen::AttachmentSlotMask entityAnimationSlotMask; // Offset: 64 +}; + +struct SceneVoxelObject { + keen::ObjectReference voxelModel; // Offset: 64 + keen::bool isWeathered; // Offset: 80 + keen::Color color; // Offset: 84 +}; + +enum class VoxelBlitFunction { + Default = 0, + KeepBuildings = 1, + Water = 2, + DestructionVoxels = 3, +}; + +struct SceneVoxelBrush { + keen::ObjectReference model; // Offset: 64 + keen::Color color; // Offset: 80 + keen::VoxelMaterialReference material; // Offset: 84 + keen::bool disableDisplacement; // Offset: 100 + keen::bool resolveBiomePerVoxel; // Offset: 101 + keen::bool paintMaterialOnly; // Offset: 102 + keen::VoxelBlitFunction blitFunction; // Offset: 103 + keen::bool allowNonManifold; // Offset: 104 + keen::ObjectReference removableFogId; // Offset: 108 + keen::bool addDestructionEdge; // Offset: 124 +}; + +struct SceneBlockOutBrushPoint { + keen::float32 height; // Offset: 64 + keen::float2 offset; // Offset: 68 + keen::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 76 +}; + +struct SceneBlockOutBrush { + keen::VoxelMaterialReference material; // Offset: 64 + keen::Color color; // Offset: 80 + keen::bool enableTopDisplacement; // Offset: 84 + keen::bool enableTopBrushScattering; // Offset: 85 + keen::bool negativeVoxels; // Offset: 86 + keen::bool ignoreDisplacementBlockers; // Offset: 87 + keen::bool resolveBiomePerVoxel; // Offset: 88 + keen::ObjectReference scattering; // Offset: 92 + keen::ObjectReference removableFogId; // Offset: 108 +}; + +struct BlockOutBrushScatteringDefinition { +}; + +struct BlockOutBrushScatteringPointModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::FloatRange heightRange; // Offset: 24 + keen::float32 randomYRotation; // Offset: 32 + keen::float32 nonUniformScaling; // Offset: 36 + keen::float32 shearFactor; // Offset: 40 +}; + +struct BlockOutBrushScatteringPoint { + keen::BlobArray models; // Offset: 0 +}; + +struct BlockOutBrushScatteringLowerEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringLowEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringUpperEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringUpperEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringWallModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 maxOverhangY; // Offset: 24 + keen::float32 randomYRotation; // Offset: 28 +}; + +struct BlockOutBrushScatteringWall { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringTopModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange randomScale; // Offset: 28 +}; + +struct BlockOutBrushScatteringTop { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringDefinitionConverterData { + keen::Guid id; // Offset: 0 + keen::BlobArray points; // Offset: 16 + keen::BlobArray lowerEdges; // Offset: 24 + keen::BlobArray upperEdges; // Offset: 32 + keen::BlobArray walls; // Offset: 40 + keen::BlobArray tops; // Offset: 48 +}; + +struct BlockOutBrushScatteringDefinitionConverterDependencies { + keen::Guid id; // Offset: 0 + keen::BlobArray models; // Offset: 16 +}; + +struct SceneVoxelMultiBrush { + keen::BlobArray brushes; // Offset: 64 +}; + +enum class DestructionBubbleMode { + SetWeatheredFlag = 0, + ClearWeatheredFlag = 1, + Destruction = 2, + DestructionNoEntities = 3, +}; + +struct SceneDestructionBubble { + keen::ObjectReference model; // Offset: 64 + keen::DestructionBubbleMode mode; // Offset: 80 + keen::bool dontDestroyEntities; // Offset: 81 + keen::float32 density; // Offset: 84 +}; + +enum class SceneSurfaceMaterialBubbleMode { + UnderRoads = 0, + CoverRoads = 1, +}; + +struct SceneSurfaceMaterialBubble { + keen::ObjectReference model; // Offset: 64 + keen::VoxelMaterialReference material; // Offset: 80 + keen::uint depth; // Offset: 96 + keen::uint height; // Offset: 100 + keen::bool shelteredByTerrain; // Offset: 104 + keen::SceneSurfaceMaterialBubbleMode mode; // Offset: 105 +}; + +struct SceneCurvePoint { +}; + +struct SceneCurve { +}; + +struct SceneRoadPoint { + keen::float32 widthScale; // Offset: 64 +}; + +struct RoadDefinition { + keen::float32 width; // Offset: 0 + keen::bool snapToGround; // Offset: 4 + keen::float32 snapStepSize; // Offset: 8 + keen::float32 snapAllowedError; // Offset: 12 + keen::float32 snapMaxSlopeChange; // Offset: 16 + keen::ObjectReference roadShape; // Offset: 20 + keen::VoxelMaterialReference surfaceMaterial; // Offset: 36 + keen::VoxelMaterialReference groundMaterial; // Offset: 52 + keen::float32 distributionNoise; // Offset: 68 + keen::float32 edgeNoiseWidth; // Offset: 72 + keen::float32 edgeNoiseScale; // Offset: 76 + keen::float32 edgeNoisePersistance; // Offset: 80 +}; + +struct SceneRoad { + keen::ObjectReference definition; // Offset: 64 + keen::bool snapToOtherRoads; // Offset: 80 +}; + +enum class CaveVoxelMode { + NegativeWithShell = 0, + NegativeOnly = 1, + Lake = 2, + NegativeWithMaterialOverride = 3, + LakeWithMaterialOverride = 4, +}; + +struct SceneDungeonCaveCurvePoint { +}; + +struct SceneDungeonCaveCurve { + keen::CaveVoxelMode mode; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneTunnelPoint { +}; + +struct SceneTunnel { + keen::float32 width; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneScatterBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 +}; + +enum class DisplacementBlockerMode { + SetToZero = 0, + SetToBlockerHeight = 1, +}; + +struct SceneDisplacementBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 + keen::float32 innerDisplacementFactor; // Offset: 72 + keen::DisplacementBlockerMode mode; // Offset: 76 + keen::bool affectFog; // Offset: 77 +}; + +struct SceneVfx { + keen::ObjectReference effect; // Offset: 64 + keen::HdrColorRgb color; // Offset: 80 + keen::float4 param0; // Offset: 96 + keen::float4 param1; // Offset: 112 + keen::float4 param2; // Offset: 128 + keen::float4 param3; // Offset: 144 + keen::float32 duration; // Offset: 160 + keen::float3 targetPosition; // Offset: 164 + keen::Time startTime; // Offset: 176 + keen::bool isActive; // Offset: 184 +}; + +struct SceneSound { + keen::SoundContainerReference soundContainer; // Offset: 64 + keen::float32 activeRange; // Offset: 80 +}; + +struct SceneInstance { + keen::ObjectReference scene; // Offset: 64 + keen::bool connectToRoad; // Offset: 80 + keen::sint32 spawnLevelOffset; // Offset: 84 + keen::HashKey32 whiteboxSeed; // Offset: 88 +}; + +struct SceneGroup { + keen::bool isLocked; // Offset: 0 +}; + +struct SceneRoadAttachmentPoint { + keen::ObjectReference roadDefinition; // Offset: 64 +}; + +struct SceneScatterImage { + keen::ObjectReference scatterImage; // Offset: 64 +}; + +struct SceneScatterOrigin { + keen::float32 distributionRadius; // Offset: 64 +}; + +enum class SceneAreaFlag { + BigDungeon = 0, +}; + +typedef keen::Bitmask8 SceneAreaFlagMask; + +struct ScenePlayableArea { + keen::float3 size; // Offset: 64 + keen::SceneAreaFlagMask flags; // Offset: 76 + keen::LocaTagReference mapMarkerId; // Offset: 80 +}; + +struct SceneCinematicTimelineEvent { +}; + +struct SceneCinematicCameraSmoothing { + keen::bool enableSmoothing; // Offset: 0 + keen::float lerpSpeed; // Offset: 4 +}; + +struct SceneCinematicTimeLineAnimationEvent { + keen::AnimationReference animation; // Offset: 96 + keen::ObjectReference modelObject; // Offset: 112 +}; + +struct SceneCinematicTimeLineModelAnimationEvent { +}; + +struct SceneCinematicTimeLineCameraAnimationEvent { + keen::Angle fovY; // Offset: 128 +}; + +struct SceneCinematicTimeLineCameraEvent { + keen::SceneCamera key; // Offset: 96 + keen::SceneCamera nextKey; // Offset: 200 + keen::Guid id; // Offset: 304 + keen::SceneCinematicCameraSmoothing smoothing; // Offset: 320 + keen::float lerpSpeed; // Offset: 328 + keen::float nextLerpSpeed; // Offset: 332 +}; + +struct SceneCinematicTimelineEventMaterializeVoxelObject { + keen::ObjectReference voxelObject; // Offset: 96 + keen::SceneVoxelObject voxelData; // Offset: 112 +}; + +struct SequenceTrack { + keen::Time loopStart; // Offset: 0 + keen::Time loopEnd; // Offset: 8 + keen::bool loop; // Offset: 16 +}; + +struct SceneCinematicTimelineTrack { +}; + +struct SceneCinematicTimelineCameraTrack { +}; + +struct SceneCinematicTimeline { +}; + +struct SceneCinematic { + keen::ObjectReference timeline; // Offset: 4 +}; + +struct CinematicDynamicModelObject { + keen::Guid objectGuid; // Offset: 0 + keen::SceneModel sceneModel; // Offset: 16 +}; + +struct CinematicSequenceResource { + keen::BlobArray dynamicModelObjects; // Offset: 32 +}; + +struct SceneCinematicList { + keen::BlobArray cinematics; // Offset: 0 +}; + +struct SceneModelTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneVoxelObjectTemplate { + keen::ObjectReference defaultVoxelModel; // Offset: 0 +}; + +struct SceneVoxelBrushTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneDestructionBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneSurfaceMaterialBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 + keen::VoxelMaterialReference defaultMaterial; // Offset: 16 +}; + +struct SceneVoxelMultiBrushTemplate { +}; + +struct SceneEntitySpawnTemplate { + keen::ObjectReference defaultEntityTemplate; // Offset: 0 +}; + +struct SceneVfxTemplate { + keen::ObjectReference defaultEffect; // Offset: 0 +}; + +struct SceneWhiteboxTemplate { + keen::ObjectReference defaultWhitebox; // Offset: 0 +}; + +struct SceneRoadTemplate { +}; + +struct SceneScatterBlockerTemplate { +}; + +struct SceneDisplacementBlockerTemplate { +}; + +struct SceneSoundTemplate { +}; + +struct SceneCameraTemplate { +}; + +struct SceneInstanceTemplate { + keen::ObjectReference defaultScene; // Offset: 0 +}; + +struct DungeonInstanceTemplate { + keen::ObjectReference defaultDungeon; // Offset: 0 +}; + +struct DungeonRoomInstanceTemplate { + keen::ObjectReference defaultDungeonRoom; // Offset: 0 +}; + +struct SceneRoadAttachmentPointTemplate { +}; + +struct SceneScatterOriginTemplate { +}; + +struct ScenePlayableAreaTemplate { +}; + +struct SceneScatterEntity { + keen::WorldTransform transform; // Offset: 0 + keen::uint16 index; // Offset: 56 +}; + +struct SceneScatterChunkDataEntity { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneScatterChunkData { + keen::BlobArray templateEntities; // Offset: 0 + keen::BlobArray modelEntities; // Offset: 8 +}; + +struct SpawnTemplateModel { + keen::Guid templateGuid; // Offset: 0 + keen::BlobArray modelsGuid; // Offset: 16 +}; + +struct SpawnTemplateModels { + keen::BlobArray templateModels; // Offset: 0 + keen::uint32 templateCount; // Offset: 8 +}; + +struct SpawnTemplateGuids { + keen::BlobArray templateGuids; // Offset: 0 + keen::uint32 templateCount; // Offset: 8 +}; + +struct SceneScatterResource { + keen::ScatterSet3ResourceReference scatterSet; // Offset: 0 + keen::uint2 scatterStart; // Offset: 16 + keen::uint2 scatterSize; // Offset: 24 + keen::BlobArray templates; // Offset: 32 + keen::BlobArray models; // Offset: 40 + keen::BlobArray templateGuids; // Offset: 48 + keen::BlobArray modelGuids; // Offset: 56 + keen::BlobArray templateNames; // Offset: 64 + keen::BlobArray modelNames; // Offset: 72 + keen::SpawnTemplateModels spawnTemplateModels; // Offset: 80 + keen::uint2 debugMapSize; // Offset: 92 + keen::BlobArray debugMapNames; // Offset: 100 + keen::BlobArray debugMaps; // Offset: 108 +}; + +typedef keen::ObjectReference SceneScatterResourceReference; + +struct SceneScatterChunkResource { + keen::BlobArray templates; // Offset: 0 + keen::BlobArray models; // Offset: 8 + keen::BlobArray templateGuids; // Offset: 16 + keen::BlobArray modelGuids; // Offset: 24 + keen::BlobArray templateNames; // Offset: 32 + keen::BlobArray modelNames; // Offset: 40 +}; + +struct ScenePlayableAreaBox { + keen::WorldPosition areaMin; // Offset: 0 + keen::WorldPosition areaMax; // Offset: 24 + keen::SceneAreaFlagMask flags; // Offset: 48 + keen::LocaTagId mapMarkerId; // Offset: 52 +}; + +struct SceneProceduralLayer { + keen::ContentPass contentPass; // Offset: 0 + keen::ObjectReference scatterSet; // Offset: 4 + keen::WorldDistributionTypeFlags distributionTypeMask; // Offset: 20 + keen::SourceDataReference content; // Offset: 24 + keen::SourceDataReference contentTags; // Offset: 40 + keen::bool connectManualSubscenesToRoad; // Offset: 56 +}; + +enum class SceneObjectType { + Model = 0, + PointLight = 1, + Camera = 2, + EntitySpawn = 3, + VoxelObject = 4, + VoxelBrush = 5, + VoxelMultiBrush = 6, + Vfx = 7, + Sound = 8, + Road = 9, + RoadPoint = 10, + ScatterBlocker = 11, + DisplacementBlocker = 12, + SceneInstance = 13, + ProceduralLayer = 14, + RoadAttachmentPoint = 15, + ScatterOrigin = 16, + PlayableArea = 17, + Group = 18, + Whitebox = 19, + CaveCurve = 20, + CaveCurvePoint = 21, + DestructionBubble = 22, + SurfaceMaterialBubble = 23, + Tunnel = 24, + TunnelPoint = 25, + BlockOutBrush = 26, + Sun = 27, +}; + +typedef keen::Bitmask32 SceneObjectTypeMask; + +struct SceneTreeNode { + keen::SceneObjectType type; // Offset: 0 + keen::uint32 typeIndex; // Offset: 4 + keen::uint32 childStart; // Offset: 8 + keen::uint32 childCount; // Offset: 12 +}; + +struct SceneDistributionDebugData { + keen::Vector3 position; // Offset: 0 + keen::Guid objectId; // Offset: 16 + keen::float32 radius; // Offset: 32 + keen::float32 minDistance; // Offset: 36 +}; + +struct SceneDistributionTag { + keen::WhiteboxTagInfo tagInfo; // Offset: 0 + keen::uint32 sceneIndex; // Offset: 48 +}; + +struct DistributionLootInfo { + keen::Guid scatterSetId; // Offset: 0 + keen::uint32 objectIndex; // Offset: 16 +}; + +struct SceneContent { + keen::BlobArray models; // Offset: 0 + keen::BlobArray pointLights; // Offset: 8 + keen::BlobArray cameras; // Offset: 16 + keen::BlobArray spawns; // Offset: 24 + keen::BlobArray voxelObjects; // Offset: 32 + keen::BlobArray voxelBrushes; // Offset: 40 + keen::BlobArray destructionBubbles; // Offset: 48 + keen::BlobArray surfaceMaterialBubbles; // Offset: 56 + keen::BlobArray vfxs; // Offset: 64 + keen::BlobArray sounds; // Offset: 72 + keen::BlobArray roads; // Offset: 80 + keen::BlobArray pendingRoads; // Offset: 88 + keen::BlobArray caves; // Offset: 96 + keen::BlobArray tunnels; // Offset: 104 + keen::BlobArray blockOuts; // Offset: 112 + keen::BlobArray scatterBlockers; // Offset: 120 + keen::BlobArray displacementBlockers; // Offset: 128 + keen::BlobArray instances; // Offset: 136 + keen::BlobArray resolvedInstances; // Offset: 144 + keen::BlobArray dungeonRoomInstances; // Offset: 152 + keen::BlobArray playableAreas; // Offset: 160 + keen::BlobArray proceduralLayers; // Offset: 168 + keen::BlobArray distributionTags; // Offset: 176 + keen::BlobArray spawnLootInfos; // Offset: 184 + keen::BlobArray sceneLootInfos; // Offset: 192 + keen::BlobArray distributionDebugData; // Offset: 200 + keen::bool isDebugDataDirty; // Offset: 208 +}; + +struct SceneContentPasses { + keen::BlobArray passes; // Offset: 0 +}; + +struct SceneDestructionBubbles { + keen::BlobArray bubbles; // Offset: 0 +}; + +struct SceneRuntimeContent { + keen::BlobArray models; // Offset: 0 + keen::BlobArray pointLights; // Offset: 8 + keen::BlobArray cameras; // Offset: 16 + keen::BlobArray spawns; // Offset: 24 + keen::BlobArray vfxs; // Offset: 32 + keen::BlobArray sounds; // Offset: 40 + keen::BlobArray scatterBlockers; // Offset: 48 + keen::BlobArray instances; // Offset: 56 + keen::BlobArray playableAreas; // Offset: 64 + keen::BlobArray proceduralLayers; // Offset: 72 +}; + +struct SceneVoxelContent { + keen::BlobArray passes; // Offset: 0 + keen::BlobArray destructionBubbles; // Offset: 8 + keen::BlobArray surfaceMaterialBubbles; // Offset: 16 + keen::BlobArray nonConnectingRoads; // Offset: 24 + keen::BlobArray displacementBlockers; // Offset: 32 +}; + +struct SceneCombinedContent { + keen::SceneRuntimeContent runtime; // Offset: 0 + keen::SceneVoxelContent voxel; // Offset: 80 +}; + +struct ContentPassIndex { + keen::uint64 indexPath; // Offset: 0 + keen::uint32 depth; // Offset: 8 +}; + +struct SceneVoxelContentPass { + keen::ContentPassIndex passIndex; // Offset: 0 + keen::BlobArray blockOuts; // Offset: 16 + keen::BlobArray voxelObjects; // Offset: 24 + keen::BlobArray voxelBrushes; // Offset: 32 + keen::BlobArray caves; // Offset: 40 + keen::BlobArray tunnels; // Offset: 48 + keen::BlobArray roads; // Offset: 56 + keen::BlobArray instances; // Offset: 64 + keen::BlobArray dungeonRoomInstances; // Offset: 72 + keen::BlobArray proceduralLayers; // Offset: 80 +}; + +struct SceneContentRoads { + keen::BlobArray roads; // Offset: 0 +}; + +struct SceneRoadAttachment { + keen::Vector3 position; // Offset: 0 + keen::Guid definitionGuid; // Offset: 16 + keen::RoadDefinition definition; // Offset: 32 +}; + +struct SceneAttachments { + keen::BlobArray roadAttachments; // Offset: 0 +}; + +struct SceneLightResource { + keen::WorldTransform transform; // Offset: 0 + keen::RenderLight light; // Offset: 56 +}; + +struct SceneContentRoadPoint { + keen::WorldPosition position; // Offset: 0 + keen::float32 width; // Offset: 24 +}; + +struct SceneContentRoad { + keen::Guid definition; // Offset: 0 + keen::BlobArray points; // Offset: 16 + keen::ContentPass contentPass; // Offset: 24 + keen::bool snapToOtherRoads; // Offset: 25 +}; + +struct SceneContentBlockOut { + keen::Guid objectGuid; // Offset: 0 + keen::WorldTransform transform; // Offset: 16 + keen::BlobArray points; // Offset: 72 + keen::VoxelMaterialReference material; // Offset: 80 + keen::bool enableTopDisplacement; // Offset: 96 + keen::bool enableTopBrushScattering; // Offset: 97 + keen::bool negativeVoxels; // Offset: 98 + keen::bool ignoreDisplacementBlockers; // Offset: 99 + keen::bool resolveBiomePerVoxel; // Offset: 100 + keen::ObjectReference scattering; // Offset: 104 + keen::ObjectReference removableFogId; // Offset: 120 +}; + +struct SceneContentCaveCurvePoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentCaveCurve { + keen::WorldTransform transform; // Offset: 0 + keen::float32 height; // Offset: 56 + keen::CaveVoxelMode mode; // Offset: 60 + keen::VoxelMaterialReference material; // Offset: 64 + keen::BlobArray points; // Offset: 80 +}; + +struct SceneContentTunnelPoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentTunnel { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::VoxelMaterialReference material; // Offset: 8 + keen::BlobArray points; // Offset: 24 +}; + +struct SceneEntitySpawnResource { + keen::WorldTransform transform; // Offset: 0 + keen::ecs::TemplateReference templateReference; // Offset: 56 + keen::SceneEntitySpawnData spawnData; // Offset: 72 + keen::BlobArray> components; // Offset: 300 + keen::bool snapToGround; // Offset: 308 + keen::bool enableFloorMaterial; // Offset: 309 +}; + +struct SceneContentInstance { + keen::WorldTransform transform; // Offset: 0 + keen::Guid instanceGuid; // Offset: 56 + keen::Guid sceneGuid; // Offset: 72 + keen::bool connectToRoad; // Offset: 88 + keen::sint32 spawnLevelOffset; // Offset: 92 +}; + +struct SceneNoBuildZone { + keen::WorldPosition worldBoxMin; // Offset: 0 + keen::WorldPosition worldBoxMax; // Offset: 24 + keen::AmbientEnvironment ambience; // Offset: 48 +}; + +struct SceneQuestEntity { + keen::WorldTransform transform; // Offset: 0 + keen::Guid templateGuid; // Offset: 56 +}; + +struct SceneResource { + keen::ObjectReference ibl; // Offset: 0 + keen::float32 iblIntensity; // Offset: 16 + keen::BlobOptional atmosphereParameters; // Offset: 20 + keen::BlobArray nodes; // Offset: 24 + keen::BlobArray models; // Offset: 32 + keen::BlobArray lights; // Offset: 40 + keen::BlobArray cameras; // Offset: 48 + keen::BlobArray vfxs; // Offset: 56 + keen::BlobArray sounds; // Offset: 64 + keen::BlobArray noBuildZones; // Offset: 72 + keen::BlobArray questEntities; // Offset: 80 + keen::uint2 entityChunkCount; // Offset: 88 + keen::uint32 moveVersion; // Offset: 96 + keen::SceneScatterResourceReference scatterResource; // Offset: 100 + keen::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 116 +}; + +struct SceneEntityChunkResource { + keen::BlobArray templates; // Offset: 0 + keen::BlobArray templatesDoNotSave; // Offset: 8 + keen::BlobArray> models; // Offset: 16 + keen::BlobArray entities; // Offset: 24 + keen::BlobArray entityExtraData; // Offset: 32 +}; + +struct SceneEntityExtraData { + keen::SceneEntitySpawnData spawnData; // Offset: 0 + keen::BlobArray> components; // Offset: 228 + keen::bool enableFloorMaterial; // Offset: 236 +}; + +struct SceneEntityChunkSpawn { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneEntityChunkTemplateInfo { + keen::Guid templateId; // Offset: 0 + keen::BlobOptional boundingBox; // Offset: 16 + keen::ObjectReference fallbackModel; // Offset: 20 + keen::ObjectReference floorMaterial; // Offset: 36 + keen::float32 floorMaterialRadius; // Offset: 52 + keen::float32 floorMaterialNoiseStrength; // Offset: 56 + keen::FloorMaterialShape floorMaterialShape; // Offset: 60 + keen::bool doNotSave; // Offset: 61 + keen::bool isSkinned; // Offset: 62 +}; + +struct SceneEntityChunkTemplateInfos { + keen::BlobArray infos; // Offset: 0 +}; + +struct SceneScatterBlockerChunk { + keen::BlobArray scatterBlockers; // Offset: 0 +}; + +struct SceneFloorMaterialInstance { + keen::WorldPosition position; // Offset: 0 + keen::float32 radius; // Offset: 24 + keen::ObjectReference material; // Offset: 28 + keen::FloorMaterialShape shape; // Offset: 44 + keen::float32 noiseStrength; // Offset: 48 +}; + +struct SceneFloorMaterialChunk { + keen::BlobArray instances; // Offset: 0 +}; + +typedef keen::ObjectReference SceneResourceReference; + +struct SceneInfo { + keen::float3 pivot; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 16 + keen::bool hasBuildingVoxels; // Offset: 17 +}; + +struct SceneBoundingBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 + keen::float3 pivot; // Offset: 24 +}; + +struct ScatterImageAlias { + keen::Guid target; // Offset: 0 + keen::Guid replacement; // Offset: 16 +}; + +struct ScatterImageAliases { + keen::BlobArray aliases; // Offset: 0 +}; + +struct ScenePreview { + keen::BlobArray modelIds; // Offset: 0 + keen::BlobArray transforms; // Offset: 8 + keen::SceneObjectTypeMask objectTypes; // Offset: 16 +}; + +struct SceneConverterConfig { + keen::bool validateNonTestScenes; // Offset: 0 +}; + +struct BenchmarkPointDebugContent { + keen::Guid guid; // Offset: 0 + keen::WorldTransform worldTransform; // Offset: 16 + keen::HashKey32 hash; // Offset: 72 +}; + +struct SceneResolvedDebugContent { + keen::BlobArray benchmarkPoints; // Offset: 0 +}; + +struct SceneDebugContent { + keen::BlobArray benchmarkPoints; // Offset: 0 +}; + +struct SceneLevelDistribution { + keen::ObjectReference levelDistributionSet; // Offset: 0 +}; + +struct SceneLevelDistributionSet { +}; + +struct SceneLevelMap { + keen::ObjectReference scatterImage; // Offset: 0 + keen::uint32 level; // Offset: 16 +}; + +struct SceneLevelMapConvertInfo { + keen::uint32 level; // Offset: 0 + keen::Guid imageId; // Offset: 4 + keen::ScatterImageMetaData imageMetaData; // Offset: 20 +}; + +struct SceneLevelDistributionConvertParams { + keen::Guid sceneId; // Offset: 0 + keen::Guid levelDistributionSetObjectId; // Offset: 16 + keen::BlobArray levelInfos; // Offset: 32 +}; + +struct SceneLevelDistributionSetInfo { + keen::uint2 mapSize; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 8 +}; + +struct PrefabLibrary { + keen::ObjectReference collisions; // Offset: 0 + keen::ObjectReference connections; // Offset: 16 +}; + +struct PrefabLibrarySettings { + keen::ObjectReference collisions; // Offset: 0 +}; + +struct DungeonConnectionInfo { + keen::BlobArray connectionPoints; // Offset: 0 +}; + +struct PrefabDirectory { +}; + +struct Prefab { + keen::float32 replacementWeight; // Offset: 96 +}; + +struct PrefabEntitySpawn { + keen::Guid objectId; // Offset: 312 + keen::ContentPass contentPass; // Offset: 328 +}; + +enum class TileContextFlags { + Ground = 0, + Wall = 1, + Ceiling = 2, + Stairs = 3, + CornerLeft = 4, + CornerRight = 5, + Corridor = 6, + Column = 7, +}; + +struct PrefabObjectContextInfo { + keen::SceneObjectType objectType; // Offset: 0 + keen::ContentPassIndex passIndex; // Offset: 8 + keen::TileContextFlags type; // Offset: 24 + keen::uint32 index; // Offset: 28 + keen::bool forbidden; // Offset: 32 +}; + +struct WhiteboxTriggerScope { +}; + +struct PrefabLootEntity { + keen::uint32 spawnIndex; // Offset: 0 + keen::LootContainerInfo entityLootInfo; // Offset: 4 +}; + +struct PrefabContent { + keen::BlobArray spawns; // Offset: 0 + keen::BlobArray models; // Offset: 8 + keen::BlobArray destructionBubbles; // Offset: 16 + keen::BlobArray pointLights; // Offset: 24 + keen::BlobArray lootInfos; // Offset: 32 + keen::BlobArray contextInfos; // Offset: 40 + keen::BlobArray roads; // Offset: 48 + keen::BlobArray displacementBlockers; // Offset: 56 + keen::BlobArray passes; // Offset: 64 +}; + +struct PrefabContentPass { + keen::ContentPassIndex passIndex; // Offset: 0 + keen::BlobArray voxelObjects; // Offset: 16 + keen::BlobArray voxelBrushes; // Offset: 24 + keen::BlobArray tunnels; // Offset: 32 +}; + +struct PrefabEntityInfo { + keen::BlobString description; // Offset: 0 + keen::ObjectReference prefab; // Offset: 8 + keen::ObjectReference templateReference; // Offset: 24 +}; + +struct PrefabVoxelWorldSceneContent { + keen::BlobArray whiteboxes; // Offset: 0 + keen::BlobArray voxelObjects; // Offset: 8 + keen::BlobArray voxelBrushes; // Offset: 16 + keen::BlobArray destructionBubbles; // Offset: 24 + keen::BlobArray roads; // Offset: 32 + keen::BlobArray tunnels; // Offset: 40 +}; + +struct PrefabWhiteboxResolveInfo { + keen::WorldTransform worldTransform; // Offset: 0 + keen::ContentPass contentPass; // Offset: 56 +}; + +struct WhiteboxEntityList { + keen::BlobArray singleEntityPrefabs; // Offset: 0 + keen::BlobArray customPrefabs; // Offset: 8 +}; + +struct WhiteboxOptions { + keen::Guid whiteboxDefinitionId; // Offset: 0 + keen::bool reducePrefabProbability; // Offset: 16 + keen::BlobArray prefabs; // Offset: 20 +}; + +struct PrefabInfo { + keen::ObjectReference prefab; // Offset: 0 + keen::float32 weight; // Offset: 16 + keen::BlobArray tags; // Offset: 20 +}; + +enum class WhiteboxTileType { + None = 0, + Ground = 1, + Wall = 2, + Ceiling = 3, + Stairs = 4, + Column = 5, +}; + +struct WhiteboxDefinitionModelVisibility { + keen::bool voxelMode; // Offset: 0 + keen::bool editMode; // Offset: 1 + keen::bool brushMode; // Offset: 2 +}; + +struct WhiteboxDefinition { + keen::ObjectReference model; // Offset: 0 + keen::WhiteboxDefinitionModelVisibility modelVisibility; // Offset: 16 + keen::bool reducePrefabProbability; // Offset: 19 + keen::WhiteboxTileType type; // Offset: 20 + keen::float2 gridSize; // Offset: 24 + keen::Color tintColor; // Offset: 32 + keen::float3 modelScale; // Offset: 36 +}; + +typedef keen::Bitmask8 TileContextFlagMask; + +struct WhiteboxTileContext { + keen::TileContextFlagMask context; // Offset: 0 +}; + +struct SceneDungeonRoomWhitebox { + keen::BlobString identifier; // Offset: 64 + keen::ObjectReference definition; // Offset: 72 + keen::float32 replacementProbability; // Offset: 88 + keen::float32 randomRotationOffsetX; // Offset: 92 + keen::float32 randomRotationOffsetY; // Offset: 96 + keen::float32 randomRotationOffsetZ; // Offset: 100 + keen::bool snapToGround; // Offset: 104 + keen::SceneEntitySpawnData spawnData; // Offset: 108 +}; + +struct DungeonRoomDirectory { +}; + +struct DungeonRoomScene { + keen::uint3 size; // Offset: 176 +}; + +struct DungeonRoomRayDedubg { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 + keen::bool hit; // Offset: 32 +}; + +struct DungeonRoomCollisionsDebugInfo { + keen::BlobArray rayChecks; // Offset: 0 + keen::BlobArray checkBoundingBoxes; // Offset: 8 +}; + +struct DungeonRoomShapes { + keen::BlobArray boundingBoxes; // Offset: 0 +}; + +struct DungeonRoomSceneLayerGroup { +}; + +enum class RoomConnectionPointType { + Door = 0, + RoadPoint = 1, +}; + +struct DungeonRoomConnectionPoint { + keen::Guid objectId; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 16 + keen::Guid roomSceneId; // Offset: 32 + keen::Guid whiteboxDefinitionId; // Offset: 48 + keen::WorldTransform worldTransform; // Offset: 64 + keen::RoomConnectionPointType type; // Offset: 120 + keen::AxisAlignedBox boundingBox; // Offset: 128 + keen::string identifier; // Offset: 160 +}; + +struct DungeonRoomConnectionPoints { + keen::BlobArray connections; // Offset: 0 +}; + +struct DungeonConnectionPointInfo { + keen::DungeonRoomConnectionPoint pointA; // Offset: 0 + keen::DungeonRoomConnectionPoint pointB; // Offset: 176 +}; + +struct DungeonConnectionPoints { + keen::BlobArray connections; // Offset: 0 +}; + +struct DungeonWhiteboxReplacement { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid newWhiteboxDefinitionId; // Offset: 16 +}; + +struct DungeonWhiteboxReplacements { + keen::BlobArray replacements; // Offset: 0 +}; + +struct DungeonEntranceInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::BlobString identifier; // Offset: 16 + keen::WorldTransform transform; // Offset: 24 + keen::AxisAlignedBox boundingBox; // Offset: 80 +}; + +struct DungeonRoomEntranceList { + keen::BlobArray entrances; // Offset: 0 +}; + +struct DungeonRoomEntranceConvertInfo { + keen::BlobArray markedEntrances; // Offset: 0 +}; + +struct WhiteboxCollisionSetup { +}; + +struct WhiteboxCollisionGroup { +}; + +struct WhiteboxCollisionItem { + keen::ObjectReference definition; // Offset: 0 + keen::uint8 weight; // Offset: 16 + keen::float32 range; // Offset: 20 +}; + +struct WhiteboxCollisionGroupInfo { + keen::BlobArray items; // Offset: 0 +}; + +struct WhiteboxCollisionInfo { + keen::BlobArray groups; // Offset: 0 +}; + +struct WhiteboxContextSetup { + keen::ObjectReference groundTag; // Offset: 0 + keen::ObjectReference ceilingTag; // Offset: 16 +}; + +struct DungeonConnectionsConfig { +}; + +struct DungeonConnectionSetup { + keen::ObjectReference connectionWhitebox; // Offset: 0 + keen::ObjectReference replacementOtherConnection; // Offset: 16 + keen::ObjectReference replacementRoadPoint; // Offset: 32 + keen::ObjectReference replacementWithoutConnection; // Offset: 48 + keen::AxisAlignedBox connectionAABB; // Offset: 64 +}; + +enum class WhiteboxNodeType { + SceneInstance = 0, + Whitebox = 1, +}; + +struct WhiteboxConvertInfo { + keen::HashKey32 id; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 + keen::WhiteboxNodeType type; // Offset: 8 + keen::Guid replacementObjectId; // Offset: 12 + keen::Guid whiteboxInstanceId; // Offset: 28 + keen::Guid whiteboxDefinitionId; // Offset: 44 + keen::ContentPassIndex passIndex; // Offset: 64 + keen::WhiteboxTileContext roomTileContext; // Offset: 80 + keen::WhiteboxTileContext requiredRoomTileContext; // Offset: 81 + keen::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 82 + keen::BlobArray requiredTriggers; // Offset: 84 + keen::BlobArray triggerInfos; // Offset: 92 + keen::WorldTransform worldTransform; // Offset: 104 + keen::BlobArray tags; // Offset: 160 + keen::float3 randomRotationOffset; // Offset: 168 + keen::float32 replacementProbability; // Offset: 180 + keen::SceneEntitySpawnData entitySpawnData; // Offset: 184 + keen::Guid triggerGraphId; // Offset: 412 +}; + +struct WhiteboxReplacementPass { + keen::BlobArray replacements; // Offset: 0 + keen::BlobArray failedReplacements; // Offset: 8 +}; + +struct WhiteboxReplacementInfoPasses { + keen::BlobArray passes; // Offset: 0 +}; + +struct WhiteboxReplacementInfoPass { + keen::ContentPassIndex passIndex; // Offset: 0 + keen::BlobArray replacements; // Offset: 16 +}; + +struct WhiteboxReplacementInfo { + keen::HashKey32 id; // Offset: 0 + keen::Guid sceneId; // Offset: 4 + keen::WorldTransform worldTransform; // Offset: 24 + keen::BlobArray triggers; // Offset: 80 + keen::WhiteboxTileContext roomTileContext; // Offset: 88 + keen::SceneEntitySpawnData entitySpawnData; // Offset: 92 +}; + +struct SceneWhiteboxContentInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid whiteboxDefinitionId; // Offset: 16 + keen::uint32 passIndex; // Offset: 32 + keen::WorldTransform worldTransform; // Offset: 40 + keen::float3 randomRotationOffset; // Offset: 96 + keen::float32 replacementProbability; // Offset: 108 + keen::BlobArray tags; // Offset: 112 + keen::WhiteboxTileContext requiredRoomTileContext; // Offset: 120 + keen::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 121 + keen::SceneEntitySpawnData entitySpawnData; // Offset: 124 + keen::Guid triggerGraphId; // Offset: 352 +}; + +struct SceneWhiteboxInfo { + keen::BlobArray whiteboxes; // Offset: 0 +}; + +struct SceneWhiteboxErrorInfo { + keen::uint32 failedReplacementCount; // Offset: 0 +}; + +struct WhiteboxTagList { + keen::BlobArray tags; // Offset: 0 +}; + +struct SceneDungeonRoomInstance { + keen::BlobString identifier; // Offset: 64 + keen::ObjectReference room; // Offset: 72 + keen::sint32 spawnLevelOffset; // Offset: 88 + keen::HashKey32 whiteboxSeed; // Offset: 92 +}; + +struct SceneDungeonRoomLayerGroupInstance { + keen::ObjectReference layerGroup; // Offset: 64 +}; + +struct DungeonEntranceDefinition { + keen::ObjectReference whitebox; // Offset: 0 +}; + +struct DungeonConnectionPriority { + keen::ObjectReference room; // Offset: 0 + keen::ObjectReference whitebox; // Offset: 16 +}; + +struct DungeonDirectory { +}; + +struct DungeonScene { +}; + +struct SceneDungeonInstance { + keen::ObjectReference dungeon; // Offset: 64 + keen::sint32 spawnLevelOffset; // Offset: 80 + keen::HashKey32 whiteboxSeed; // Offset: 84 +}; + +struct SceneWhiteboxPathParameters { + keen::WorldTransform transform; // Offset: 0 + keen::Guid rootSceneId; // Offset: 56 + keen::Guid sceneInstanceId; // Offset: 72 + keen::uint32 seed; // Offset: 88 +}; + +struct SceneWhiteboxPathList { + keen::SceneWhiteboxPathParameters rootScene; // Offset: 0 + keen::BlobArray subscenes; // Offset: 96 + keen::BlobArray scatterScenes; // Offset: 104 +}; + +struct ContentLabelInfo { + keen::BlobArray whiteboxLabels; // Offset: 0 + keen::ObjectLootSettings lootSettings; // Offset: 8 +}; + +struct ecs.EntityTag { +}; + +struct ForbiddenEntityTags { +}; + +typedef keen::ObjectReference SequenceReference; + +enum class SessionDebugAction { + Start = 0, + Stop = 1, +}; + +struct SessionDebugActionMessage { + keen::SessionDebugAction action; // Offset: 0 +}; + +struct SessionDebugChannelInfo { + keen::string name; // Offset: 0 +}; + +struct SessionDebugChannelsMessage { + keen::BlobArray channels; // Offset: 0 +}; + +struct SessionDebugPacketChannel { + keen::uint16 messageSize; // Offset: 0 + keen::uint8 messageCount; // Offset: 2 +}; + +struct SessionDebugPacketsChannel { + keen::uint64 totalMessageSize; // Offset: 0 + keen::uint32 totalMessageCount; // Offset: 8 + keen::uint32 messageSize; // Offset: 12 + keen::uint16 messageCount; // Offset: 16 +}; + +typedef keen::StaticArray SessionDebugPacketChannels; + +typedef keen::StaticArray SessionDebugPacketsChannels; + +struct SessionDebugPacket { + keen::Time time; // Offset: 0 + keen::Time oldestMessageTime; // Offset: 8 + keen::uint32 machineId; // Offset: 16 + keen::uint32 packetId; // Offset: 20 + keen::uint32 packetSize; // Offset: 24 + keen::uint8 machineIndex; // Offset: 28 + keen::SessionDebugPacketChannels channels; // Offset: 30 +}; + +struct SessionDebugPacketMessage { + keen::Time time; // Offset: 0 + keen::uint32 machineId; // Offset: 8 + keen::SessionDebugPacketsChannels packetsChannels; // Offset: 16 + keen::uint64 totalPacketsSize; // Offset: 784 + keen::uint32 packetsSize; // Offset: 792 +}; + +struct SessionDebugPacketSendMessage { + keen::BlobArray packets; // Offset: 800 +}; + +struct SessionDebugPacketRecvMessage { + keen::BlobArray packets; // Offset: 800 +}; + +struct SessionDebugMachineStats { + keen::uint32 machineIndex; // Offset: 0 + keen::uint32 lostPackets; // Offset: 4 + keen::Time roundTripTime; // Offset: 8 + keen::uint64 bandwidthLimitInBps; // Offset: 16 +}; + +struct SessionDebugStatsMessage { + keen::Time time; // Offset: 0 + keen::BlobArray machineStats; // Offset: 8 +}; + +struct GameParameters { + keen::uint32 flameLevel; // Offset: 0 + keen::uint32 gameSettingsPreset; // Offset: 4 +}; + +enum class SoundContentType { + Unknown = 0, + Effect = 1, + Ambience = 2, + Music = 3, +}; + +struct Sound { + keen::SoundContentType contentType; // Offset: 0 +}; + +typedef keen::ObjectReference SoundReference; + +struct SoundContainer { +}; + +struct SoundContainerEntryShared { + keen::float32 chance; // Offset: 0 +}; + +struct SoundContainerEntry { +}; + +struct SoundContainerSoundEntry { + keen::SoundReference sound; // Offset: 4 +}; + +struct SoundContainerContainerEntry { + keen::SoundContainerReference container; // Offset: 4 +}; + +struct SoundContainerResource { + keen::BlobArray> entries; // Offset: 64 +}; + +struct SoundContainerResourceEntry { +}; + +typedef keen::ObjectReference SoundResourceReference; + +struct SoundContainerResourceSoundEntry { + keen::SoundResourceReference sound; // Offset: 4 +}; + +struct SoundContainerResourceContainerEntry { + keen::SoundContainerResourceReference container; // Offset: 4 +}; + +struct SoundMusicPlaylist { + keen::BlobArray tracks; // Offset: 0 + keen::bool shuffle; // Offset: 8 + keen::float32 fadeDuration; // Offset: 12 +}; + +typedef keen::ObjectReference SoundMusicPlaylistReference; + +enum class SoundChannelConfiguration { + Mono = 0, + Stereo = 1, + Quadrophonic = 2, + FiveDotOne = 3, + SevenDotOne = 4, +}; + +enum class SoundDataFormat { + Uncompressed = 0, + FramelessQOA = 1, +}; + +struct SoundResource { + keen::SoundChannelConfiguration channelConfiguration; // Offset: 0 + keen::SoundDataFormat format; // Offset: 1 + keen::uint16 framesPerSecond; // Offset: 2 + keen::uint32 frameCount; // Offset: 4 + keen::Time duration; // Offset: 8 + keen::BlobArray data; // Offset: 16 + keen::ContentHash dataHash; // Offset: 24 + keen::string debugName; // Offset: 40 +}; + +struct GpuInformation { + keen::string identifier; // Offset: 0 +}; + +struct SessionStarted { + keen::uint32 userId; // Offset: 0 + keen::uint32 sessionCount; // Offset: 4 + keen::GpuInformation gpu; // Offset: 8 + keen::uint32 gameVersion; // Offset: 16 + keen::uint32 engineVersion; // Offset: 20 +}; + +struct CraftingAction { + keen::HashKey32 station; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct FoodBuffData { + keen::uint32 maxUsedSlots; // Offset: 0 + keen::uint32 activatedFoodBuffs; // Offset: 4 +}; + +struct SessionEnded { + keen::uint32 userId; // Offset: 0 + keen::uint32 maxPlayer; // Offset: 4 + keen::Time playTime; // Offset: 8 + keen::bool host; // Offset: 16 + keen::uint32 saveGameSize; // Offset: 20 + keen::GpuInformation gpu; // Offset: 24 + keen::uint32 gameVersion; // Offset: 32 + keen::uint32 engineVersion; // Offset: 36 + keen::BlobArray unlockedKnowledge; // Offset: 40 + keen::BlobArray crafting; // Offset: 48 + keen::FoodBuffData foodBuffData; // Offset: 56 + keen::bool didUsePersonelCrafting; // Offset: 64 + keen::ecs::GameSettingsPreset preset; // Offset: 65 + keen::ecs::GameSettings settings; // Offset: 72 +}; + +struct DedicatedSessionStarted { +}; + +struct DedicatedSessionEnded { + keen::Time playTime; // Offset: 0 +}; + +enum class DeathCause { + Impact = 0, + FallDamage = 1, + Fog = 2, +}; + +struct PlayerDeath { + keen::DeathCause cause; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::Guid causeGuid; // Offset: 16 + keen::bool wasDeadlyFog; // Offset: 32 +}; + +struct tracking.LevelUp { + keen::sint32 level; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::float3 position; // Offset: 16 +}; + +enum class tracking.MinSpecError { + Ram = 0, + VRam = 1, +}; + +typedef keen::Bitmask8 tracking.MinSpecErrorMask; + +struct tracking.CrashInfo { + keen::uint32 userId; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::uint32 gameVersion; // Offset: 16 + keen::uint32 engineVersion; // Offset: 20 + keen::tracking::MinSpecErrorMask minspecError; // Offset: 24 +}; + +struct TtfFontResource { + keen::ContentHash fontFileHash; // Offset: 0 +}; + +struct TtfFontInfo { + keen::Guid objectId; // Offset: 0 + keen::ContentHash fontFileHash; // Offset: 16 +}; + +struct TtfFont { +}; + +typedef keen::ObjectReference TtfFontReference; + +typedef keen::ObjectReference TtfFontResourceReference; + +struct UiTestStyles { + keen::UiCharacterStyle test; // Offset: 0 +}; + +struct UiTestParagraphStyles { + keen::UiParagraphStyle test; // Offset: 0 + keen::UiParagraphStyle test2; // Offset: 28 +}; + +typedef keen::ObjectReference UiFontReference; + +struct UiBundleTest { + keen::UiTexture test; // Offset: 24 + keen::UiTestStyles namedStyles; // Offset: 72 + keen::UiTestParagraphStyles namedParagraphStyles; // Offset: 160 + keen::UiFontReference font; // Offset: 216 +}; + +struct UiFontRange { + keen::uint32 firstRune; // Offset: 0 + keen::uint32 lastRune; // Offset: 4 +}; + +struct UiGlyphSet { + keen::TtfFontReference font; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::bool useForMetrics; // Offset: 20 + keen::bool bold; // Offset: 21 + keen::bool italic; // Offset: 22 +}; + +struct UiFont { +}; + +struct UiFontLanguage { + keen::bool En_Us; // Offset: 0 + keen::bool En_Gb; // Offset: 1 + keen::bool De_De; // Offset: 2 + keen::bool Nl_Nl; // Offset: 3 + keen::bool Fr_Fr; // Offset: 4 + keen::bool It_It; // Offset: 5 + keen::bool Es_Es; // Offset: 6 + keen::bool Es_Mx; // Offset: 7 + keen::bool Ru_Ru; // Offset: 8 + keen::bool Pl_Pl; // Offset: 9 + keen::bool Ja_Jp; // Offset: 10 + keen::bool Id_Id; // Offset: 11 + keen::bool Ko_Kr; // Offset: 12 + keen::bool Ms_My; // Offset: 13 + keen::bool Pt_Pt; // Offset: 14 + keen::bool Pt_Br; // Offset: 15 + keen::bool Th_Th; // Offset: 16 + keen::bool Tr_Tr; // Offset: 17 + keen::bool Vi_Vn; // Offset: 18 + keen::bool Zh_Cn; // Offset: 19 + keen::bool Zh_Tw; // Offset: 20 + keen::bool Fr_Ca; // Offset: 21 + keen::bool Es_419; // Offset: 22 + keen::bool Bg_Bg; // Offset: 23 + keen::bool Cs_Cz; // Offset: 24 + keen::bool Da_Dk; // Offset: 25 + keen::bool Fi_Fi; // Offset: 26 + keen::bool El_Gr; // Offset: 27 + keen::bool Hu_Hu; // Offset: 28 + keen::bool No_No; // Offset: 29 + keen::bool Nb_No; // Offset: 30 + keen::bool Ro_Ro; // Offset: 31 + keen::bool Sv_Se; // Offset: 32 + keen::bool Uk_Ua; // Offset: 33 + keen::bool Default; // Offset: 34 +}; + +typedef keen::Bitmask64 UiFontLanguageMask; + +enum class UiFontVariantFlag { + Normal = 0, + Bold = 1, + Italic = 2, +}; + +typedef keen::Bitmask8 UiFontVariantMask; + +struct UiGlyphSetResource { + keen::uint32 fontIndex; // Offset: 0 + keen::float32 scale; // Offset: 4 + keen::BlobArray ranges; // Offset: 8 + keen::UiFontVariantMask fontVariantMask; // Offset: 16 +}; + +struct UiFontLanguageGroupResource { + keen::UiFontLanguageMask groupLanguages; // Offset: 0 + keen::BlobArray glyphSets; // Offset: 8 + keen::uint32 metricsIndex; // Offset: 16 + keen::bool isDefaultLanguageGroup; // Offset: 20 +}; + +struct UiFontResource { + keen::BlobArray fonts; // Offset: 0 + keen::BlobArray languageGroups; // Offset: 8 +}; + +struct UiFontPreviewLanguageGroupOutput { + keen::BlobArray fonts; // Offset: 0 + keen::BlobArray glyphSets; // Offset: 8 +}; + +typedef keen::ObjectReference UiFontResourceReference; + +struct UiRectangle { + keen::UiPosition position; // Offset: 0 + keen::UiSize size; // Offset: 8 +}; + +struct UiTime { + keen::uint64 m_timeStamp; // Offset: 0 +}; + +typedef keen::uint64 UiObjectId; + +struct UiPassTreeFrameState { + keen::UiObjectId stateId; // Offset: 0 + keen::uint32 size; // Offset: 8 +}; + +enum class UiFrameFlag { + ClampOnXAxisAtParentBorder = 0, + ClampOnYAxisAtParentBorder = 1, + EqualStretchInXAxis = 2, + EqualStretchInYAxis = 3, + WidthIgnoredForStretch = 4, + HeightIgnoredForStretch = 5, +}; + +typedef keen::Bitmask8 UiFrameFlags; + +struct UiFrameSizes { + keen::UiPosition offset; // Offset: 0 + keen::UiSize minSize; // Offset: 8 + keen::UiSize prefSize; // Offset: 16 + keen::UiSize maxSize; // Offset: 24 + keen::UiSize stretch; // Offset: 32 +}; + +enum class UiFrameLayoutType { + None = 0, + Horizontal = 1, + Vertical = 2, + Grid = 3, + Count = 4, +}; + +struct UiFrameLayout { + keen::UiFrameLayoutType type; // Offset: 0 + keen::bool horizontalScroll; // Offset: 4 + keen::bool verticalScroll; // Offset: 5 + keen::bool flow; // Offset: 6 + keen::bool splitter; // Offset: 7 + keen::UiSize spacing; // Offset: 8 + keen::uint32 framesPerGridRow; // Offset: 16 +}; + +struct UiFrameBorder { + keen::UiBorder margin; // Offset: 0 + keen::UiBorder padding; // Offset: 16 +}; + +struct UiFrameScrollState { + keen::UiPosition scrollOffset; // Offset: 0 + keen::UiSize scrollAreaSize; // Offset: 8 +}; + +struct UiFrameLayoutState { + keen::UiSize minSize; // Offset: 0 + keen::UiSize prefSize; // Offset: 8 + keen::UiSize maxSize; // Offset: 16 + keen::UiSize stretch; // Offset: 24 + keen::bool flowChild; // Offset: 32 +}; + +struct UiPassTreeFrame { + keen::UiObjectId frameId; // Offset: 0 + keen::UiObjectId localFrameId; // Offset: 8 + keen::UiObjectId highestChildUiFrameId; // Offset: 16 + keen::UiFrameFlags flags; // Offset: 24 + keen::uint32 inputMask; // Offset: 28 + keen::UiFrameSizes sizes; // Offset: 32 + keen::UiFrameLayout layout; // Offset: 72 + keen::UiFrameBorder border; // Offset: 92 + keen::UiAlignment alignment; // Offset: 124 + keen::UiAlignment childAlignment; // Offset: 126 + keen::BlobString debugName; // Offset: 128 + keen::BlobArray children; // Offset: 136 + keen::BlobArray states; // Offset: 144 + keen::UiFrameScrollState scrollState; // Offset: 152 + keen::UiFrameLayoutState layoutState; // Offset: 168 + keen::UiRectangle oldRect; // Offset: 204 + keen::UiRectangle rect; // Offset: 220 + keen::UiPosition offset; // Offset: 236 +}; + +typedef keen::BlobOptional UiPassTreeFrameOpt; + +struct UiPassTreeWindow { + keen::UiObjectId windowId; // Offset: 0 + keen::uint32 zOrder; // Offset: 8 + keen::uint32 inputMask; // Offset: 12 + keen::uint32 flags; // Offset: 16 + keen::UiPosition offset; // Offset: 20 + keen::float32 scale; // Offset: 28 + keen::UiPassTreeFrameOpt rootFrame; // Offset: 32 + keen::BlobString debugName; // Offset: 36 +}; + +struct UiPassTreeScreen { + keen::UiObjectId screenId; // Offset: 0 + keen::UiRectangle rect; // Offset: 8 + keen::BlobArray windows; // Offset: 24 +}; + +struct UiPassTree { + keen::uint32 systemUpdateCounter; // Offset: 0 + keen::BlobArray screens; // Offset: 4 +}; + +struct UiSplitterSizes { + keen::UiSize minSize; // Offset: 0 + keen::UiSize prefSize; // Offset: 8 + keen::UiSize maxSize; // Offset: 16 + keen::UiSize stretch; // Offset: 24 +}; + +struct UiFrameSplitterData { + keen::UiPosition position; // Offset: 0 + keen::UiPosition positionClamped; // Offset: 8 + keen::UiPosition dragSplitterPosition; // Offset: 16 + keen::UiPosition dragMousePosition; // Offset: 24 + keen::UiSplitterSizes sizes; // Offset: 32 +}; + +struct UiFrameSplitterState { + keen::StaticArray splitter; // Offset: 0 +}; + +struct VoxelTemperatureResource { + keen::int3 worldOrigin; // Offset: 0 + keen::uint3 worldSize; // Offset: 12 + keen::uint3 sizeInVoxels; // Offset: 24 + keen::BlobArray voxelData; // Offset: 36 +}; + +typedef keen::ObjectReference VoxelTemperatureReference; + +enum class VoxelWorldResourceType { + Solid = 0, + Fog = 1, + Water = 2, + Temperature = 3, +}; + +struct VoxelWorldResource { + keen::VoxelWorldResourceType type; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::int3 origin; // Offset: 12 + keen::ContentHash lowLODData; // Offset: 24 + keen::uint32 lowLODMaxLevel; // Offset: 40 + keen::StaticArray materialGuids; // Offset: 44 + keen::uint8 defaultTerrainMaterial; // Offset: 4140 +}; + +struct VoxelWorldChunkResource { + keen::ContentHash highLODData; // Offset: 0 + keen::BlobArray waterTileNotEmptyMask; // Offset: 16 +}; + +typedef keen::ObjectReference VoxelWorldReference; + +struct SolidVoxelMaterialWithId { + keen::Guid id; // Offset: 0 + keen::Guid stoneMaterialId; // Offset: 16 + keen::bool canReceiveFloorMaterial; // Offset: 32 +}; + +struct BiomeVoxelMaterialMapping { + keen::Guid id; // Offset: 0 + keen::StaticArray biomes; // Offset: 16 +}; + +struct VoxelMaterialResolvedList { + keen::BlobArray solidMaterials; // Offset: 0 + keen::BlobArray buildingMaterials; // Offset: 8 + keen::BlobArray biomeMaterials; // Offset: 16 +}; + +struct VoxelMaterialSettings { + keen::uint8 defaultTerrainMaterial; // Offset: 0 +}; + +struct VoxelDisplacementMaterial { + keen::Guid id; // Offset: 0 + keen::VoxelWorldDisplacement side; // Offset: 16 + keen::VoxelWorldDisplacement top; // Offset: 44 +}; + +struct VoxelMaterialDisplacement { + keen::BlobArray materials; // Offset: 0 +}; + +enum class FogVoxelMaterialResolvedType { + Gameplay = 0, + Decorative = 1, +}; + +struct FogVoxelMaterialResolved { + keen::Guid id; // Offset: 0 + keen::FogVoxelMaterialResolvedType type; // Offset: 16 + keen::uint8 level; // Offset: 17 +}; + +struct FogVoxelMaterialResolvedList { + keen::BlobArray fogMaterials; // Offset: 0 +}; + +struct WaterVoxelMaterialResolvedList { + keen::Guid waterMaterial; // Offset: 0 +}; + +struct TemperatureVoxelMaterialResolvedList { + keen::BlobArray temperatureMaterials; // Offset: 0 +}; + +struct BuildingMaterialMappingResource { + keen::uint8 localId; // Offset: 0 + keen::Guid materialId; // Offset: 4 +}; + +struct BuildingMaterialPaletteResource { + keen::BlobArray mappings; // Offset: 0 +}; + +enum class ReservedMaterialId { + Empty = 0, + Conservative = 1, + Dirt = 2, + Count = 3, +}; + +struct FogRemovalSetup { + keen::uint8 level; // Offset: 0 +}; + +struct FogRemovalDirectory { +}; + +struct FogRemovalLink { + keen::ObjectReference fogId; // Offset: 0 +}; + +enum class FogVoxelMappingType { + Gameplay = 0, + Decorative = 1, +}; + +struct FogVoxelMapping { + keen::FogVoxelMappingType type; // Offset: 0 + keen::uint8 level; // Offset: 1 + keen::FogRemovalId removalId; // Offset: 4 + keen::AxisAlignedBox boundingBox; // Offset: 16 +}; + +struct FogVoxelMappingResource { + keen::BlobArray mapping; // Offset: 0 +}; + +struct VoxelModelResource { + keen::uint3 size; // Offset: 0 + keen::BlobArray data; // Offset: 12 + keen::bool isTerrain; // Offset: 20 +}; + +struct VoxelModelInfo { + keen::uint3 size; // Offset: 0 + keen::BlobArray materialMap; // Offset: 12 + keen::bool isTerrain; // Offset: 20 +}; + +enum class VoxelObjectPreviewMode { + OnlyBuildingVoxels = 0, + BuildingAndDirt = 1, + AllVoxels = 2, +}; + +struct VoxelObjectDefinition { + keen::ObjectReference materialPalette; // Offset: 0 + keen::ObjectReference material; // Offset: 16 + keen::bool invertEmptyConservative; // Offset: 32 + keen::VoxelObjectPreviewMode previewMode; // Offset: 33 +}; + +struct TerrainVoxelObjectDefinition { + keen::ObjectReference model; // Offset: 0 +}; + +struct VoxelWorldObject { + keen::ImageReference heightmap; // Offset: 0 + keen::ObjectReference compositeHeightmap; // Offset: 16 + keen::float32 heightScale; // Offset: 32 + keen::bool useCompositeScatterImage; // Offset: 36 + keen::bool displaceHeightmap; // Offset: 37 + keen::int3 origin; // Offset: 40 +}; + +struct VoxelWorldInfo { + keen::int2 minTile; // Offset: 0 + keen::int2 maxTile; // Offset: 8 + keen::sint32 yOffset; // Offset: 16 + keen::uint2 heightMapSize; // Offset: 20 + keen::float32 heightMapHeight; // Offset: 28 +}; + +struct VoxelWorldTerraAction { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::uint32 mode; // Offset: 16 +}; + +struct VoxelWorldTerraActions { + keen::BlobArray actions; // Offset: 0 +}; + +struct VoxelRoadShapeDefinition { + keen::float32 roadWidth; // Offset: 0 +}; + +struct VoxelWorldAutomatedTest { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference referenceVoxelData; // Offset: 16 +}; + +enum class DestructionVoxelBlockType { + Empty = 0, + DestructionEdge = 1, + ModeStart = 2, +}; + +struct VoxelWorldConverterConfig { + keen::bool buildWaterVoxels; // Offset: 0 +}; + +struct WeatherPhenomenon { + keen::ObjectReference cloudMap; // Offset: 0 + keen::bool tiling; // Offset: 16 +}; + +struct WeatherSnowBorderConfiguration { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 + keen::uint32 maskResolutionDivisor; // Offset: 24 +}; + +struct WeatherSystemConfiguration { + keen::ObjectReference scene; // Offset: 0 + keen::WeatherSnowBorderConfiguration snowBorder; // Offset: 16 + keen::uint32 layerMaskResolutionDivisor; // Offset: 44 +}; + +struct WeatherHeightMap { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 +}; + +struct WeatherPhenomenonProbability { + keen::float32 probability; // Offset: 0 + keen::TimeRange duration; // Offset: 8 +}; + +struct WeatherLayerConfiguration { + keen::bool useMaskResolutionDivisor; // Offset: 0 + keen::ObjectReference restrictMask; // Offset: 4 + keen::ObjectReference excludeMask; // Offset: 20 + keen::bool maskClouds; // Offset: 36 + keen::bool maskRain; // Offset: 37 + keen::WeatherPhenomenonProbability nothingProbability; // Offset: 40 +}; + +enum class WeatherPhenomenonEffect { + None = 0, + Rain = 1, + Blizzard = 2, +}; + +struct WeatherPhenomenonConfiguration { + keen::WeatherPhenomenonProbability probability; // Offset: 0 + keen::ObjectReference phenomenon; // Offset: 24 + keen::FloatRange scale; // Offset: 40 + keen::FloatRange rotation; // Offset: 48 + keen::FloatRange moveSpeed; // Offset: 56 + keen::bool alignRotationToMoveSpeed; // Offset: 64 + keen::Time spawnFadeTime; // Offset: 72 + keen::Time despawnFadeTime; // Offset: 80 + keen::WeatherPhenomenonEffect effect; // Offset: 88 + keen::float32 rainThreshold; // Offset: 92 +}; + +struct WeatherSystemMaskResource { + keen::float2 bboxMin; // Offset: 0 + keen::float2 bboxMax; // Offset: 8 + keen::float2 worldToRelative; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::BlobArray data; // Offset: 32 +}; + +struct WeatherSystemResource { + keen::HashKey32 dataHash; // Offset: 0 + keen::uint2 worldSize; // Offset: 4 + keen::float2 snowBorderRangeMapping; // Offset: 12 + keen::WeatherSystemMaskResource snowBorderMask; // Offset: 20 + keen::BlobArray layers; // Offset: 60 + keen::BlobArray layerMasks; // Offset: 68 + keen::BlobArray phenomenons; // Offset: 76 + keen::BlobArray rainMasks; // Offset: 84 +}; + +typedef keen::uint8 WeatherLayerMaskIndex; + +enum class WeatherSystemPhenomenonResourceFlag { + Tiling = 0, + MaskCloudMap = 1, + MaskRain = 2, +}; + +typedef keen::Bitmask32 WeatherSystemPhenomenonResourceFlags; + +typedef keen::uint8 WeatherRainMaskIndex; + +struct WeatherSystemPhenomenonResource { + keen::Guid guid; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::WeatherSystemPhenomenonResourceFlags flags; // Offset: 20 + keen::Time durationMin; // Offset: 24 + keen::Time durationMax; // Offset: 32 + keen::float32 radiusMin; // Offset: 40 + keen::float32 radiusMax; // Offset: 44 + keen::float32 moveSpeedMin; // Offset: 48 + keen::float32 moveSpeedMax; // Offset: 52 + keen::Time spawnFadeTime; // Offset: 56 + keen::Time despawnFadeTime; // Offset: 64 + keen::float32 rainThreshold; // Offset: 72 + keen::WeatherRainMaskIndex rainMaskIndex; // Offset: 76 + keen::ObjectReference renderer; // Offset: 80 + keen::WeatherPhenomenonEffect effect; // Offset: 96 +}; + +struct WeatherSystemLayerResource { + keen::Guid guid; // Offset: 0 + keen::WeatherLayerMaskIndex restrictMaskIndex; // Offset: 16 + keen::WeatherLayerMaskIndex excludeMaskIndex; // Offset: 17 + keen::BlobArray phenomenonIndices; // Offset: 20 + keen::WeatherSystemPhenomenonResource nothingPhenomenon; // Offset: 32 +}; + +struct WeatherSystemLayerMaskResource { + keen::WeatherSystemMaskResource mask; // Offset: 0 + keen::ObjectReference renderer; // Offset: 40 +}; + +struct WeatherSystemDebugState { + keen::Time currentTime; // Offset: 0 + keen::BlobArray layers; // Offset: 8 + keen::BlobArray instances; // Offset: 16 +}; + +struct WeatherSystemDebugLayerState { + keen::Guid guid; // Offset: 0 + keen::Time nextPhenomenonTime; // Offset: 16 + keen::uint32 currentInstanceHandle; // Offset: 24 + keen::uint32 previousInstanceHandle; // Offset: 28 +}; + +struct WeatherSystemDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::Guid guid; // Offset: 4 + keen::float2 position; // Offset: 20 + keen::float32 rotation; // Offset: 28 + keen::float32 radius; // Offset: 32 + keen::float32 moveSpeed; // Offset: 36 + keen::float32 fade; // Offset: 40 +}; + +struct WeatherSystemDebugSkipToNextPhenomenonMessage { + keen::uint32 layerIndex; // Offset: 0 +}; + +typedef keen::uint8 WeatherPhenomenonIndex; + +struct weather.save_v0.WeatherSavedLayerInstance { + keen::WeatherPhenomenonIndex phenomenonIndex; // Offset: 0 + keen::WorldPosition spawnPosition; // Offset: 8 + keen::Angle rotation; // Offset: 32 + keen::float32 radius; // Offset: 36 + keen::float32 moveSpeed; // Offset: 40 + keen::Time spawnTime; // Offset: 48 + keen::Time despawnTime; // Offset: 56 +}; + +struct weather.save_v0.WeatherSavedLayer { + keen::Time nextPhenomenon; // Offset: 0 + keen::weather::save_v0::WeatherSavedLayerInstance currentInstance; // Offset: 8 + keen::weather::save_v0::WeatherSavedLayerInstance previousInstance; // Offset: 72 +}; + +typedef keen::uint8 WeatherLayerIndex; + +struct WeatherSpawnParameters { + keen::float32 eventProbabilityModifier; // Offset: 0 +}; + +struct g38_options.SettingsHeader { + keen::uint32 version; // Offset: 0 +}; + +enum class g38_options.pc.v5_dedicated_song_selection_binding.machine.WindowMode { + Windowed = 0, + Fullscreen = 1, +}; + +enum class g38_options.pc.v5_dedicated_song_selection_binding.machine.NvidiaReflexModeSettings { + Off = 0, + On = 1, + Boost = 2, +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.GraphicsSettings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode windowMode; // Offset: 0 + keen::int2 windowPosition; // Offset: 4 + keen::uint2 windowSize; // Offset: 12 + keen::uint2 forceBackbufferResolution; // Offset: 20 + keen::float32 renderScale; // Offset: 28 + keen::bool automaticRenderScale; // Offset: 32 + keen::bool vsync; // Offset: 33 + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings nvidiaReflex; // Offset: 36 + keen::RenderSettings render; // Offset: 40 + keen::bool useDefaultRenderSettings; // Offset: 120 + keen::bool sleepInBackground; // Offset: 121 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.SoundSettings { + keen::bool muteInBackground; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings graphics; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings sound; // Offset: 128 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GraphicsSettings { + keen::float32 fov; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.SoundSettings { + keen::float32 masterVolume; // Offset: 0 + keen::float32 musicVolume; // Offset: 4 + keen::float32 uiVolume; // Offset: 8 + keen::float32 gameVolume; // Offset: 12 + keen::float32 voiceVolume; // Offset: 16 + keen::bool dynamicReverb; // Offset: 20 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.MouseSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::AttackDirectionInput attackDirection; // Offset: 10 + keen::bool enableSmoothing; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GamepadSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::AttackDirectionInput attackDirection; // Offset: 10 + keen::ControllerButtonStyle controllerButtonStyle; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.InputSettings { + keen::input_mapping::PresetId selectedKeyboardMousePresetId; // Offset: 0 + keen::input_mapping::PresetId selectedGamepadPresetId; // Offset: 1 + keen::input_mapping::serialize::InputBindings customInputBindings; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings mouse; // Offset: 16 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings gamepad; // Offset: 28 +}; + +enum class g38_options.pc.v5_dedicated_song_selection_binding.user.SpiderSetting { + Show = 0, + HideSmall = 1, +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GameplaySettings { + keen::float cameraZoomFactor; // Offset: 0 + keen::bool enableIdleCameraTransition; // Offset: 4 + keen::bool reduceDynamicCameraMovement; // Offset: 5 + keen::float screenShakeStrength; // Offset: 8 + keen::bool displayDamageNumbers; // Offset: 12 + keen::bool displayDamagePropertyTexts; // Offset: 13 + keen::bool keepTargetLockWhenSprinting; // Offset: 14 + keen::bool breakTargetLockOnKill; // Offset: 15 + keen::uint32 hudAspectRatioWidth; // Offset: 16 + keen::float textScale; // Offset: 20 + keen::bool useAdditionalSymbolsForItemRarity; // Offset: 24 + keen::bool hideHUD; // Offset: 25 + keen::bool hideHelmet; // Offset: 26 + keen::bool hideGloves; // Offset: 27 + keen::bool showCharacterName; // Offset: 28 + keen::ItemRarity itemDeletionProtectionLevel; // Offset: 29 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting hideSpiders; // Offset: 30 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostUserGroup { + keen::bool enable; // Offset: 0 + keen::string password; // Offset: 4 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostSettings { + keen::uint32 maxSlots; // Offset: 0 + keen::string password; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup guests; // Offset: 12 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup friends; // Offset: 24 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup admins; // Offset: 36 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings graphics; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings sound; // Offset: 8 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings input; // Offset: 32 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings gameplay; // Offset: 72 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings hostSettings; // Offset: 104 + keen::uint32 playedSessions; // Offset: 152 +}; + +struct g38_options.pc.v4_dedicated_glider_binding.machine.Settings { +}; + +struct g38_options.pc.v4_dedicated_glider_binding.user.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct g38_options.pc.v3_early_access_release.machine.Settings { +}; + +struct g38_options.pc.v3_early_access_release.user.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct G38SupportedFeatures { + keen::RenderSettingsFeatures renderFeatures; // Offset: 0 + keen::bool isNvReflexAvailable; // Offset: 8 +}; + +struct debug.CameraPathKeyframe { + keen::Matrix43 transform; // Offset: 0 + keen::Time time; // Offset: 64 +}; + +struct debug.CameraRecording { + keen::BlobArray cameraPath; // Offset: 0 +}; + +typedef keen::AchievementId AchievementId; + +typedef keen::AchievementValue AchievementValue; + +typedef keen::ObjectReference LocaTagReference; + +typedef keen::ds::LocaTagReference NameLocaTag; + +typedef keen::ds::LocaTagReference DescriptionLocaTag; + +struct AchievementData { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::DescriptionLocaTag description; // Offset: 16 + keen::bool hasUnlockValue; // Offset: 32 + keen::ds::AchievementValue unlockValue; // Offset: 36 +}; + +typedef keen::ObjectReference AchievementDataReference; + +typedef keen::DsString string; + +struct Achievement { + keen::ds::AchievementId id; // Offset: 0 + keen::bool hasUnlockValue; // Offset: 4 + keen::ds::AchievementValue unlockValue; // Offset: 8 + keen::uint32 dosId; // Offset: 12 + keen::ds::string steamName; // Offset: 16 + keen::ds::string steamStat; // Offset: 56 + keen::int npId; // Offset: 96 + keen::int xsapiId; // Offset: 100 + keen::Guid guid; // Offset: 104 + keen::ds::string dbgName; // Offset: 120 +}; + +struct AchievementDefinitionResource { + keen::DsArray achievements; // Offset: 0 +}; + +typedef keen::ObjectReference AchievementDefinitionReference; + +struct AchievementSubDirectory { +}; + +struct AchievementDirectory { +}; + +typedef keen::AmbientSfxPlaybackType AmbientSfxPlaybackType; + +typedef keen::AmbientEitherOrBoth AmbientEitherOrBoth; + +typedef keen::ObjectReference SoundContainerReference; + +typedef keen::AmbientMask AmbientMask; + +struct AmbientSoundEffectEntry { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::ds::SoundContainerReference soundContainer; // Offset: 8 + keen::ObjectReference ingameTimeSpan; // Offset: 24 + keen::ds::AmbientSfxPlaybackType playbackType; // Offset: 40 + keen::ds::AmbientMask additionalTagsInclude; // Offset: 41 + keen::Bitmask8 weather; // Offset: 42 +}; + +typedef keen::AmbientEnvironment AmbientEnvironment; + +struct AmbientSoundEffect { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::bool inAllEnvironments; // Offset: 8 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 9 + keen::ds::AmbientEitherOrBoth indoors; // Offset: 10 + keen::ds::AmbientEnvironment environment; // Offset: 11 + keen::ds::AmbientMask ambientTagsInclude; // Offset: 12 + keen::ds::AmbientMask ambientTagsExclude; // Offset: 13 +}; + +struct AmbientSoundEffectParameters { + keen::float sfxLifeTimeInSeconds; // Offset: 0 + keen::float chanceToPlaySound; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::uint32 daytimeFadeValuePlusMinusMinutes; // Offset: 64 + keen::float playerIsInFogThreshold; // Offset: 68 + keen::float startFogEffectsThreshold; // Offset: 72 + keen::float stopFogEffectsThreshold; // Offset: 76 + keen::float playerIsInEnvironmentThreshold; // Offset: 80 + keen::float startEnvironmentEffectsThreshold; // Offset: 84 + keen::float stopEnvironmentEffectsThreshold; // Offset: 88 + keen::float baseAmbienceThreshold; // Offset: 92 + keen::float smallEnvironmentMultiplier; // Offset: 96 + keen::float oneshotDistanceMultiplier; // Offset: 100 + keen::float temporalSmoothingSpeed; // Offset: 104 + keen::Time silenceAfterVictoryDuration; // Offset: 112 + keen::float fogMusicFogVolumeMod; // Offset: 120 + keen::float environmentMusicFogVolumeMod; // Offset: 124 + keen::float environmentMusicEnvVolumeMod; // Offset: 128 + keen::float fogLoopsFogVolumeMod; // Offset: 132 + keen::float environmentLoopsFogVolumeMod; // Offset: 136 + keen::float environmentLoopsEnvVolumeMod; // Offset: 140 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 144 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 152 +}; + +struct AmbientSfxSubDirectory { +}; + +struct AmbientSfxDirectory { +}; + +typedef keen::SoundContainerMode SoundContainerMode; + +typedef keen::SoundContainerScene SoundContainerScene; + +struct SoundContainerShared { + keen::ds::SoundContainerMode mode; // Offset: 0 + keen::ds::SoundContainerScene scene; // Offset: 1 + keen::bool loop; // Offset: 2 + keen::bool loopSameChosenEntry; // Offset: 3 + keen::uint32 avoidRepeatingLastX; // Offset: 4 + keen::float32 volume; // Offset: 8 + keen::float32 volumeRandomness; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 pitchRandomness; // Offset: 20 + keen::Time sleep; // Offset: 24 + keen::Time sleepRandomness; // Offset: 32 + keen::bool hasPosition; // Offset: 40 + keen::float32 minDistance; // Offset: 44 + keen::float32 maxDistance; // Offset: 48 + keen::bool hasRandomPosition; // Offset: 52 + keen::float32 randomLeftRight; // Offset: 56 + keen::float32 randomFrontBack; // Offset: 60 +}; + +struct AmbientSfxResource { + keen::bool inAllEnvironments; // Offset: 0 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 1 + keen::ds::AmbientEitherOrBoth indoors; // Offset: 2 + keen::ds::AmbientEnvironment environment; // Offset: 3 + keen::ds::AmbientSfxPlaybackType playbackType; // Offset: 4 + keen::Bitmask8 weather; // Offset: 5 + keen::ds::AmbientMask ambientTagsInclude; // Offset: 6 + keen::ds::AmbientMask ambientTagsExclude; // Offset: 7 + keen::float32 volume; // Offset: 8 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::ds::SoundContainerShared soundContainerShared; // Offset: 32 + keen::uint soundStart; // Offset: 96 + keen::uint soundCount; // Offset: 100 + keen::Guid id; // Offset: 104 + keen::DsString debugNameEffect; // Offset: 120 + keen::DsString debugNameEffectEntry; // Offset: 160 +}; + +struct AmbientSfxCollectionResource { + keen::DsArray effects; // Offset: 0 + keen::DsArray loops; // Offset: 40 + keen::DsArray music; // Offset: 80 + keen::DsArray sounds; // Offset: 120 +}; + +struct AmbientEventSounds { + keen::ds::SoundContainerReference battleStartJingle; // Offset: 0 + keen::ds::SoundContainerReference battleEndJingle; // Offset: 16 + keen::ds::SoundContainerReference bossMusicScavenger; // Offset: 32 + keen::ds::SoundContainerReference bossMusicMonstrosity; // Offset: 48 + keen::ds::SoundContainerReference bossMusicFoggerHeavy; // Offset: 64 + keen::ds::SoundContainerReference bossMusicFoggerMage; // Offset: 80 + keen::ds::SoundContainerReference bossMusicVukahBigfoot; // Offset: 96 + keen::ds::SoundContainerReference bossMusicLurchie; // Offset: 112 + keen::ds::SoundContainerReference bossMusicHollow; // Offset: 128 + keen::ds::SoundContainerReference bossMusicCyclops; // Offset: 144 + keen::ds::SoundContainerReference bossMusicDragon; // Offset: 160 + keen::ds::SoundContainerReference bushCollision; // Offset: 176 +}; + +typedef keen::ObjectReference SoundContainerResourceReference; + +struct AmbientEventSoundsResource { + keen::ds::SoundContainerResourceReference battleStartJingle; // Offset: 0 + keen::ds::SoundContainerResourceReference battleEndJingle; // Offset: 16 + keen::ds::SoundContainerResourceReference bossMusicScavenger; // Offset: 32 + keen::ds::SoundContainerResourceReference bossMusicMonstrosity; // Offset: 48 + keen::ds::SoundContainerResourceReference bossMusicFoggerHeavy; // Offset: 64 + keen::ds::SoundContainerResourceReference bossMusicFoggerMage; // Offset: 80 + keen::ds::SoundContainerResourceReference bossMusicVukahBigfoot; // Offset: 96 + keen::ds::SoundContainerResourceReference bossMusicLurchie; // Offset: 112 + keen::ds::SoundContainerResourceReference bossMusicHollow; // Offset: 128 + keen::ds::SoundContainerResourceReference bossMusicCyclops; // Offset: 144 + keen::ds::SoundContainerResourceReference bossMusicDragon; // Offset: 160 + keen::ds::SoundContainerResourceReference bushCollision; // Offset: 176 +}; + +struct AmbientParameterResource { + keen::uint16 chanceForSilence; // Offset: 0 + keen::float sfxLifeTimeInSeconds; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::float playerIsInFogThreshold; // Offset: 64 + keen::float startFogEffectsThreshold; // Offset: 68 + keen::float stopFogEffectsThreshold; // Offset: 72 + keen::float playerIsInEnvironmentThreshold; // Offset: 76 + keen::float startEnvironmentEffectsThreshold; // Offset: 80 + keen::float stopEnvironmentEffectsThreshold; // Offset: 84 + keen::float baseAmbienceThreshold; // Offset: 88 + keen::float smallEnvironmentMultiplier; // Offset: 92 + keen::float oneshotDistanceMultiplier; // Offset: 96 + keen::float temporalSmoothingSpeed; // Offset: 100 + keen::Time silenceAfterVictoryDuration; // Offset: 104 + keen::float fogMusicFogVolumeMod; // Offset: 112 + keen::float environmentMusicFogVolumeMod; // Offset: 116 + keen::float environmentMusicEnvVolumeMod; // Offset: 120 + keen::float fogLoopsFogVolumeMod; // Offset: 124 + keen::float environmentLoopsFogVolumeMod; // Offset: 128 + keen::float environmentLoopsEnvVolumeMod; // Offset: 132 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 136 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 144 +}; + +typedef keen::ObjectReference VfxReference; + +typedef keen::ObjectReference IngameTimeSpanReference; + +struct AmbientVisualEffectEntry { + keen::ds::VfxReference vfx; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Bitmask8 weather; // Offset: 32 +}; + +struct AmbientVisualEffect { + keen::ds::AmbientEnvironment environment; // Offset: 0 + keen::bool inAllEnvironments; // Offset: 1 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 2 +}; + +struct AmbientVfxSubDirectory { +}; + +struct AmbientVfxDirectory { +}; + +struct AmbientVfxResource { + keen::ds::VfxReference vfx; // Offset: 0 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::ds::AmbientEnvironment environment; // Offset: 32 + keen::bool inAllEnvironments; // Offset: 33 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 34 + keen::Bitmask8 weather; // Offset: 35 + keen::Guid id; // Offset: 36 +}; + +struct AmbientVfxCollectionResource { + keen::DsArray effects; // Offset: 0 +}; + +struct AmbientEnvironmentMapResource { + keen::StaticArray voxelIdToAmbientEnvironmentMap; // Offset: 0 +}; + +struct AmbientPPPDawnDuskOffsets { + keen::Time nightAdaptationStartOffset; // Offset: 0 + keen::Time nightAdaptationEndOffset; // Offset: 8 + keen::Time dayAdaptationStartOffset; // Offset: 16 + keen::Time dayAdaptationEndOffset; // Offset: 24 +}; + +struct AmbientPostProcessingParameters { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::ds::AmbientPPPDawnDuskOffsets dawnDuskOffset; // Offset: 8 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientPostProcessingResource { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::Time nightAdaptationStartOffset; // Offset: 8 + keen::Time nightAdaptationEndOffset; // Offset: 16 + keen::Time dayAdaptationStartOffset; // Offset: 24 + keen::Time dayAdaptationEndOffset; // Offset: 32 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientCollectionResource { + keen::ObjectReference sfxCollection; // Offset: 0 + keen::ObjectReference vfxCollection; // Offset: 16 + keen::ObjectReference parameters; // Offset: 32 + keen::ObjectReference mapping; // Offset: 48 + keen::ObjectReference eventSounds; // Offset: 64 + keen::ObjectReference postProcessing; // Offset: 80 +}; + +typedef keen::ambient::ReasonThisSoundDoesNotPlay ambient.ReasonThisSoundDoesNotPlay; + +typedef keen::ambient::ReasonThisSoundDoesNotPlayMask ambient.ReasonThisSoundDoesNotPlayMask; + +struct ambient.SoundExplanation { + keen::ds::ambient::ReasonThisSoundDoesNotPlayMask reason; // Offset: 0 + keen::float volumeCurrent; // Offset: 4 + keen::float volumeTarget; // Offset: 8 + keen::Guid soundGuid; // Offset: 12 +}; + +struct ambient.EffectsSoundReasonsDebugMessage { + keen::Guid effectGuid; // Offset: 0 + keen::ds::ambient::SoundExplanation explanation; // Offset: 16 + keen::uint cellIndex; // Offset: 44 +}; + +struct ambient.DebugMessageBundle { + keen::DsArray data; // Offset: 0 +}; + +typedef keen::BossMusicType BossMusicType; + +struct ecs.Component { +}; + +struct ecs.IsTame { +}; + +typedef keen::AnimationLoopType AnimationLoopType; + +struct AnimationJointQuality { + keen::ds::string trackName; // Offset: 0 + keen::float32 quality; // Offset: 40 +}; + +typedef keen::AttachmentSlot AttachmentSlot; + +typedef keen::AttachmentSlotMask AttachmentSlotMask; + +typedef keen::AnimationSpace AnimationSpace; + +struct ModelHintSetEntry { + keen::ObjectReference model; // Offset: 0 +}; + +struct ModelHintSet { +}; + +struct Animation { + keen::ds::string animation_node; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 40 + keen::ObjectReference modelHint; // Offset: 56 + keen::ObjectReference modelHintSet; // Offset: 72 + keen::ObjectReference clothCollider; // Offset: 88 + keen::uint32 startFrame; // Offset: 104 + keen::uint32 endFrame; // Offset: 108 + keen::sint32 refFrame; // Offset: 112 + keen::ds::AnimationSpace space; // Offset: 116 + keen::float32 xanimScale; // Offset: 120 + keen::float32 quality; // Offset: 124 + keen::DsArray qualityOverrite; // Offset: 128 + keen::ds::AnimationLoopType loopType; // Offset: 168 + keen::float32 autoLoopEpsilon; // Offset: 172 + keen::bool loopLve; // Offset: 176 + keen::bool exportJointAnimation; // Offset: 177 + keen::bool exportLveAnimation; // Offset: 178 + keen::bool exportSequenceData; // Offset: 179 + keen::bool exportDebugData; // Offset: 180 +}; + +typedef keen::ObjectReference AnimationReference; + +struct AnimationInfo { + keen::float32 length; // Offset: 0 + keen::uint32 jointCount; // Offset: 4 + keen::uint32 frameCount; // Offset: 8 + keen::ObjectReference modelHint; // Offset: 12 + keen::ObjectReference modelHintSet; // Offset: 28 + keen::ObjectReference hierarchy; // Offset: 44 + keen::bool hasLve; // Offset: 60 + keen::bool hasSequences; // Offset: 61 + keen::bool loops; // Offset: 62 + keen::ds::AnimationSpace space; // Offset: 63 + keen::DsString name; // Offset: 64 +}; + +struct AnimationConverterConfiguration { + keen::bool checkParentNames; // Offset: 0 + keen::bool checkMatrixDecomposition; // Offset: 1 +}; + +struct Sequence { + keen::Time length; // Offset: 0 + keen::bool loop; // Offset: 8 +}; + +struct AnimationEventSequence { + keen::ObjectReference hierarchyPreviewSettings; // Offset: 16 + keen::ObjectReference previewClothCollider; // Offset: 32 +}; + +typedef keen::ObjectReference AnimationEventSequenceReference; + +struct AnimationSequenceContainer { + keen::DsArray sequences; // Offset: 0 +}; + +typedef keen::Blend1DInterpolationCurve Blend1DInterpolationCurve; + +struct animationgraph.StateId { +}; + +struct animationgraph.InputId { +}; + +struct animationgraph.FloatInputId { +}; + +struct animationgraph.BoolInputId { +}; + +struct animationgraph.IntInputId { +}; + +struct animationgraph.UintInputId { +}; + +struct animationgraph.IdInputId { +}; + +struct animationgraph.OverlayId { +}; + +struct animationgraph.OverlayContextId { +}; + +typedef keen::ObjectReference animationgraph.StateIdReference; + +typedef keen::ObjectReference animationgraph.InputIdReference; + +typedef keen::ObjectReference animationgraph.OverlayIdReference; + +typedef keen::ObjectReference animationgraph.OverlayContextIdReference; + +typedef keen::animationgraph::StateIdHash animationgraph.StateIdHash; + +typedef keen::animationgraph::InputIdHash animationgraph.InputIdHash; + +struct animationgraph.AnimationIdCollection { +}; + +struct animationgraph.StateIdCollection { +}; + +struct animationgraph.InputIdCollection { +}; + +struct animationgraph.OverlayIdCollection { +}; + +struct animationgraph.OverlayContextIdCollection { +}; + +struct animationgraph.AnimationDebugEntry { + keen::Guid guid; // Offset: 0 + keen::HashKey32 hash; // Offset: 16 + keen::DsString debugName; // Offset: 24 +}; + +struct animationgraph.AnimationGraphDebugInfo { + keen::DsArray entries; // Offset: 0 +}; + +typedef keen::animationgraph::RootMotionFlag animationgraph.RootMotionFlag; + +typedef keen::animationgraph::RootMotionMask animationgraph.RootMotionMask; + +struct animationgraph.NodeBase { + keen::ds::animationgraph::StateIdReference id; // Offset: 0 + keen::Vector2 position; // Offset: 16 + keen::float32 defaultBlendInDuration; // Offset: 24 + keen::float3 pivotOffset; // Offset: 28 + keen::bool isIncompatibleWithOverlays; // Offset: 40 + keen::bool restartOnRetrigger; // Offset: 41 +}; + +struct animationgraph.AnimationSpeedGradientController { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph.AnimationNode { + keen::ds::AnimationReference animation; // Offset: 44 +}; + +struct animationgraph.AnimationSpeedGradientNode { + keen::ds::animationgraph::AnimationSpeedGradientController speedController; // Offset: 60 +}; + +struct animationgraph.BlendData1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph.ChoiceData1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph.NoAnimationBlendData1D { +}; + +struct animationgraph.NoAnimationChoiceData1D { +}; + +struct animationgraph.AnimationBlendData1D { + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationChoiceData1D { + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationSpeedGradientBlendData1D { + keen::ds::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.AnimationSpeedGradientChoiceData1D { + keen::ds::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.HierarchyBlendData1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.BlendHierarchyDataChoice1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.ChoiceHierarchyDataBlend1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyDataChoice1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.GenderAnimationReference { + keen::ds::AnimationReference maleAnimation; // Offset: 0 + keen::ds::AnimationReference femaleAnimation; // Offset: 16 +}; + +struct animationgraph.PrimaryItemSpecificAnimationReference { + keen::ds::AnimationReference unarmedAnimation; // Offset: 0 + keen::ds::AnimationReference singleAndShieldAnimation; // Offset: 16 + keen::ds::AnimationReference singleNoShieldAnimation; // Offset: 32 + keen::ds::AnimationReference dualAnimation; // Offset: 48 + keen::ds::AnimationReference twoHandedAnimation; // Offset: 64 + keen::ds::AnimationReference bowPrimaryAnimation; // Offset: 80 + keen::ds::AnimationReference staffPrimaryAnimation; // Offset: 96 + keen::ds::AnimationReference wandPrimaryAnimation; // Offset: 112 +}; + +struct animationgraph.SecondaryItemSpecificAnimationReference { + keen::ds::AnimationReference bowAnimation; // Offset: 0 + keen::ds::AnimationReference staffSecondaryAnimation; // Offset: 16 + keen::ds::AnimationReference wandSecondaryAnimation; // Offset: 32 +}; + +struct animationgraph.PrimaryItemSpecificAnimationNode { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.SecondaryItemSpecificAnimationNode { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.PrimaryItemSpecificBlend1D { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlend1D { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificChoice1D { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificChoice1D { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.VerySpecialBlockNode { +}; + +struct animationgraph.MaskedNode { + keen::DsString delimiterJoint; // Offset: 48 + keen::ds::animationgraph::InputIdReference delimiterInputName; // Offset: 88 + keen::Time lowerBodyBlendInTime; // Offset: 104 + keen::Time lowerBodyBlendOutTime; // Offset: 112 + keen::bool resetLowerBodyOnToggleOn; // Offset: 120 + keen::ObjectReference upperAnims; // Offset: 124 + keen::ObjectReference lowerAnims; // Offset: 140 +}; + +struct animationgraph.Blend1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 44 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 60 + keen::bool wrapInputAsAngle; // Offset: 61 +}; + +struct animationgraph.Choice1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 44 +}; + +struct animationgraph.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph.AnimationBlendLayer { + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.HierarchyBlendLayer { + keen::ds::animationgraph::HierarchyBlendData1D blendHierarchy; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyBlendLayer { + keen::ds::animationgraph::ChoiceHierarchyDataBlend1D choiceHierarchy; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificBlendLayer { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlendLayer { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.BlendLayersNode { +}; + +typedef keen::ObjectReference animationgraph.NodeBaseReference; + +struct animationgraph.TransitionBase { + keen::ds::animationgraph::NodeBaseReference startNode; // Offset: 0 + keen::ds::animationgraph::NodeBaseReference endNode; // Offset: 16 + keen::float32 duration; // Offset: 32 +}; + +struct animationgraph.LinearTransition { + keen::bool sync; // Offset: 36 +}; + +struct animationgraph.AnimationTransition { + keen::ds::AnimationReference animation; // Offset: 36 + keen::float32 blendIn; // Offset: 52 + keen::float32 blendOut; // Offset: 56 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 60 +}; + +struct animationgraph.OverlayBase { + keen::ds::animationgraph::OverlayIdReference id; // Offset: 0 + keen::ds::animationgraph::OverlayContextIdReference context; // Offset: 16 + keen::DsArray abortUnlessInNodes; // Offset: 32 +}; + +struct animationgraph.AnimationOverlay { + keen::ds::AnimationReference animation; // Offset: 72 +}; + +struct Group { +}; + +struct AnimationGraphDirectory { +}; + +struct AnimationGraph { + keen::float32 defaultTransitionTime; // Offset: 0 + keen::DsArray genderLookupTable; // Offset: 8 + keen::ObjectReference clothColliderReference; // Offset: 48 +}; + +struct animation.NodeId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.TransitionBase { + keen::ds::animation::NodeId endNodeIndex; // Offset: 0 + keen::Time duration; // Offset: 8 +}; + +struct animationgraph_resource.LinearTransition { + keen::bool sync; // Offset: 16 +}; + +struct animation.AnimationId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.GenderSpecificAnimationIndex { + keen::ds::animation::AnimationId maleAnimation; // Offset: 0 + keen::ds::animation::AnimationId femaleAnimation; // Offset: 4 +}; + +struct animationgraph_resource.ExitAnimation { + keen::ds::animation::NodeId targetNodeIndex; // Offset: 0 + keen::Time blendIn; // Offset: 8 + keen::Time blendOut; // Offset: 16 + keen::ds::animation::AnimationId animationIndex; // Offset: 24 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 28 +}; + +struct animationgraph_resource.AnimationSpeedGradientController { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph_resource.NodeBase { + keen::ds::animationgraph::StateIdReference stateIdReference; // Offset: 0 + keen::ds::animationgraph::StateIdHash stateId; // Offset: 16 + keen::DsArray onExits; // Offset: 24 + keen::uint32 defaultInboundTransition; // Offset: 64 + keen::DsArray outgoingTransitions; // Offset: 72 + keen::float3 pivotOffset; // Offset: 112 + keen::bool isIncompatibleWithOverlays; // Offset: 124 + keen::bool restartOnRetrigger; // Offset: 125 + keen::bool graphCanBePaused; // Offset: 126 +}; + +struct animationgraph_resource.AnimationNode { + keen::ds::animation::AnimationId animationIndex; // Offset: 128 +}; + +struct animationgraph_resource.AnimationSpeedGradientNode { + keen::ds::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 136 +}; + +struct animationgraph_resource.BlendDataFloat1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph_resource.BlendDataUint1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph_resource.NoAnimationBlendDataFloat1D { +}; + +struct animationgraph_resource.AnimationBlendDataFloat1D { + keen::ds::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.NoAnimationBlendDataUint1D { +}; + +struct animationgraph_resource.AnimationBlendDataUint1D { + keen::ds::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataFloat1D { + keen::ds::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataUint1D { + keen::ds::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.FloatHierarchy1D { + keen::ds::animationgraph::InputIdReference floatInputName; // Offset: 0 + keen::bool wrapInputAsAngle; // Offset: 16 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 17 + keen::DsArray> blendData; // Offset: 24 +}; + +struct animationgraph_resource.UintHierarchy1D { + keen::ds::animationgraph::InputIdReference uintInputName; // Offset: 0 + keen::DsArray> blendData; // Offset: 16 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataFloat1D { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataUint1D { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.UintHierarchyBlendDataFloat1D { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.UintHierarchyBlendDataUint1D { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.BlendFloat1DNode { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 128 +}; + +struct animationgraph_resource.BlendUint1DNode { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 128 +}; + +struct animationgraph_resource.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph_resource.AnimationBlendLayer { + keen::ds::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.BlendHierarchyBlendLayer { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.ChoiceHierarchyBlendLayer { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.BlendLayersNode { + keen::DsArray> blendLayers; // Offset: 128 +}; + +typedef keen::ObjectReference animationgraph_resource.NodeBaseReference; + +struct animationgraph_resource.VerySpecialBlockNode { + keen::ds::string delimiterJoint; // Offset: 128 + keen::ds::animationgraph_resource::UintHierarchy1D blockAnimData; // Offset: 168 + keen::ds::animationgraph_resource::FloatHierarchy1D moveAnimData; // Offset: 224 +}; + +struct animationgraph_resource.MaskedNode { + keen::ds::string delimiterJoint; // Offset: 128 + keen::ds::animationgraph::InputIdReference delimiterInputName; // Offset: 168 + keen::Time lowerBodyBlendInTime; // Offset: 184 + keen::Time lowerBodyBlendOutTime; // Offset: 192 + keen::bool resetLowerBodyOnToggleOn; // Offset: 200 + keen::DsArray> upperLayers; // Offset: 208 + keen::DsArray> lowerLayers; // Offset: 248 +}; + +struct animationgraph_resource.AnimationListEntry { + keen::ds::AnimationReference reference; // Offset: 0 + keen::Time duration; // Offset: 16 + keen::uint32 frameCount; // Offset: 24 + keen::bool hasLve; // Offset: 28 + keen::bool hasSequences; // Offset: 29 + keen::bool loops; // Offset: 30 + keen::ds::AnimationSpace space; // Offset: 31 + keen::DsString name; // Offset: 32 +}; + +struct animationgraph_resource.AnimationListResource { + keen::DsArray animations; // Offset: 0 +}; + +struct animationgraph_resource.OverlayBase { + keen::ds::animationgraph::StateIdHash stateId; // Offset: 0 + keen::ds::animationgraph::OverlayIdReference name; // Offset: 4 + keen::ds::animationgraph::OverlayContextIdReference context; // Offset: 20 + keen::DsArray abortUnlessInNodes; // Offset: 40 + keen::DsString dbgName; // Offset: 80 +}; + +struct animationgraph_resource.AnimationOverlay { + keen::ds::animation::AnimationId maleAnimationIndex; // Offset: 120 + keen::ds::animation::AnimationId femaleAnimationIndex; // Offset: 124 +}; + +typedef keen::AnimationJointIndex AnimationJointIndex; + +struct AnimationGraphResource { + keen::uint32 jointCount; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 4 + keen::DsArray> nodes; // Offset: 24 + keen::DsArray animations; // Offset: 64 + keen::DsArray> transitions; // Offset: 104 + keen::DsArray> overlays; // Offset: 144 + keen::ds::animationgraph_resource::UintHierarchy1D globalOverlay; // Offset: 184 + keen::StaticArray slotBoneIndexMapping; // Offset: 240 + keen::ObjectReference clothColliderReference; // Offset: 268 +}; + +typedef keen::ObjectReference AnimationGraphReference; + +struct AnimationGraphInputBase { + keen::ds::animationgraph::InputIdHash hash; // Offset: 0 +}; + +struct AnimationGraphFloatInput { + keen::float32 value; // Offset: 4 +}; + +struct AnimationGraphUintInput { + keen::uint32 value; // Offset: 4 +}; + +struct AnimationGraphBoolInput { + keen::bool value; // Offset: 4 +}; + +struct AnimationGraphIntInput { + keen::sint32 value; // Offset: 4 +}; + +struct AnimationGraphIdInput { + keen::ds::animationgraph::StateIdHash value; // Offset: 4 +}; + +struct WarpToTargetConfig { + keen::WorldTransform targetTransform; // Offset: 0 + keen::Time duration; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::float32 maxScale; // Offset: 72 + keen::bool isTargetSet; // Offset: 76 + keen::bool abortWarpAboveMaxScale; // Offset: 77 +}; + +struct RootMotionConfig { + keen::float32 movementMod; // Offset: 0 + keen::ds::WarpToTargetConfig warpToTargetConfig; // Offset: 8 +}; + +typedef keen::OverlayInputsEventType OverlayInputsEventType; + +struct OverlayInputsEvent { + keen::ds::animationgraph::StateIdHash animationStateId; // Offset: 0 + keen::uint32 jointId; // Offset: 4 + keen::ds::OverlayInputsEventType type; // Offset: 8 + keen::uint8 changeCounter; // Offset: 9 +}; + +struct AnimationGraphInputs { + keen::StaticArray floatInputs; // Offset: 0 + keen::StaticArray uintInputs; // Offset: 64 + keen::StaticArray boolInputs; // Offset: 128 + keen::StaticArray intInputs; // Offset: 144 + keen::StaticArray idInputs; // Offset: 160 + keen::StaticArray overlayInputs; // Offset: 176 + keen::ds::RootMotionConfig rootMotionConfig; // Offset: 240 + keen::WorldTransform currentTransform; // Offset: 328 +}; + +typedef keen::AnimGraphPreviewEventType AnimGraphPreviewEventType; + +struct AnimGraphPreviewSeqenceEntry { + keen::ds::AnimGraphPreviewEventType eventType; // Offset: 0 + keen::Time timeFromStart; // Offset: 8 + keen::uint32 selectedIndex; // Offset: 16 +}; + +struct AnimGraphPreviewSeqence { + keen::DsArray entries; // Offset: 0 +}; + +struct AnimationGraphInfo { + keen::DsArray nodes; // Offset: 0 + keen::DsArray floatInputs; // Offset: 40 + keen::DsArray uintInputs; // Offset: 80 + keen::DsArray boolInputs; // Offset: 120 + keen::DsArray overlays; // Offset: 160 + keen::ObjectReference modelHierarchy; // Offset: 200 +}; + +typedef keen::anim_graph::LayerBlendMode anim_graph.LayerBlendMode; + +typedef keen::anim_graph::AdditiveType anim_graph.AdditiveType; + +typedef keen::anim_graph::TransitionRootMotionMode anim_graph.TransitionRootMotionMode; + +struct anim_graph.LayerBlendOptions { + keen::ds::anim_graph::LayerBlendMode blendMode; // Offset: 0 + keen::ObjectReference boneMask; // Offset: 4 +}; + +struct anim_graph.BoneMask { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntry { + keen::ds::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 40 +}; + +struct anim_graph.BoneMaskResource { + keen::DsArray entries; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntryResource { + keen::uint8 boneIndex; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct anim_graph.AnimationSpeedController { + keen::ObjectReference inputName; // Offset: 0 + keen::HashKey32 inputHash; // Offset: 16 + keen::float32 inputValueA; // Offset: 20 + keen::float32 inputValueB; // Offset: 24 + keen::float32 speedFactorA; // Offset: 28 + keen::float32 speedFactorB; // Offset: 32 +}; + +struct anim_graph.GenderMappingEntry { + keen::Guid maleAnimation; // Offset: 0 + keen::Guid femaleAnimation; // Offset: 16 +}; + +typedef keen::anim_graph::tool_graph::DataType anim_graph.tool_graph.DataType; + +struct anim_graph.tool_graph.GraphParameterBase { + keen::ObjectReference inputId; // Offset: 0 +}; + +struct anim_graph.tool_graph.FloatGraphParameter { +}; + +struct anim_graph.tool_graph.IntGraphParameter { +}; + +struct anim_graph.tool_graph.BoolGraphParameter { +}; + +struct anim_graph.tool_graph.IDGraphParameterValue { +}; + +struct anim_graph.tool_graph.IDGraphParameter { +}; + +struct anim_graph.tool_graph.GraphParameterSet { +}; + +struct anim_graph.tool_graph.PinBase { + keen::ds::anim_graph::tool_graph::DataType dataType; // Offset: 0 +}; + +struct anim_graph.tool_graph.InputPin { +}; + +struct anim_graph.tool_graph.OutputPin { +}; + +struct anim_graph.tool_graph.Link { + keen::ObjectReference sourcePin; // Offset: 0 + keen::ObjectReference targetPin; // Offset: 16 +}; + +struct anim_graph.tool_graph.EditorNodeBase { + keen::Vector2 uiPosition; // Offset: 0 + keen::ObjectReference secondaryGraph; // Offset: 8 + keen::ObjectReference childGraph; // Offset: 24 +}; + +struct anim_graph.tool_graph.FloatParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.FloatConstant { + keen::float32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.FloatAdd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatSubtract { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatMultiply { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatGreaterThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatLessThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::float32 tolerance; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatGreaterThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatLessThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::float32 tolerance; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatDivide { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.SelectPoseBase { + keen::ObjectReference outputPose; // Offset: 40 + keen::float32 blendTime; // Offset: 56 +}; + +struct anim_graph.tool_graph.SelectPoseByBool { + keen::ObjectReference poseA; // Offset: 60 + keen::ObjectReference poseB; // Offset: 76 +}; + +struct anim_graph.tool_graph.SelectPoseByBoolParameters { + keen::ObjectReference selectA; // Offset: 40 +}; + +struct anim_graph.tool_graph.FloatRemap { + keen::FloatRange inputRange; // Offset: 40 + keen::FloatRange outputRange; // Offset: 48 + keen::ObjectReference inputValue; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDConstant { + keen::ObjectReference value; // Offset: 40 + keen::ObjectReference output; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameterEqualsConstant { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IDEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::ObjectReference value; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IntParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IntConstant { + keen::sint32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.IntEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IntEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::sint32 value; // Offset: 72 +}; + +struct anim_graph.tool_graph.IsOverlayActive { + keen::ObjectReference active; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolConstant { + keen::bool value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.BoolNegate { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolAnd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolOr { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.LayerBlend { + keen::ds::anim_graph::LayerBlendOptions blendOptions; // Offset: 40 + keen::ObjectReference base; // Offset: 60 + keen::ObjectReference layer; // Offset: 76 + keen::ObjectReference outputPose; // Offset: 92 +}; + +struct anim_graph.tool_graph.SaveCachedPose { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.UseCachedPose { + keen::ObjectReference pose; // Offset: 40 + keen::ObjectReference cachedPose; // Offset: 56 +}; + +struct anim_graph.tool_graph.PoseResult { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachine { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachineState { + keen::bool restartOnRetrigger; // Offset: 40 + keen::bool startAtRandomTime; // Offset: 41 +}; + +struct anim_graph.tool_graph.TransitionAdvancedOptions { + keen::uint8 priority; // Offset: 0 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 1 +}; + +struct anim_graph.tool_graph.StateMachineTransition { + keen::ObjectReference fromState; // Offset: 40 + keen::ObjectReference toState; // Offset: 56 + keen::bool autoTransition; // Offset: 72 + keen::float32 duration; // Offset: 76 + keen::ds::anim_graph::tool_graph::TransitionAdvancedOptions advancedOptions; // Offset: 80 + keen::bool isGlobalTransition; // Offset: 82 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitions { +}; + +struct anim_graph.tool_graph.StateInputPin { + keen::ObjectReference state; // Offset: 4 + keen::float32 duration; // Offset: 20 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 24 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitionParameters { +}; + +struct anim_graph.tool_graph.AdditiveAnimationParameters { + keen::bool useCurrentAnimationAsReference; // Offset: 0 + keen::uint16 additiveReferenceFrame; // Offset: 2 + keen::ds::AnimationReference additiveReferenceAnimation; // Offset: 4 +}; + +struct anim_graph.tool_graph.AnimationClipSampler { + keen::ds::AnimationReference animation; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::ds::anim_graph::tool_graph::AdditiveAnimationParameters additiveParameters; // Offset: 76 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 96 +}; + +struct anim_graph.tool_graph.EmptyAdditivePose { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.BlendSpace_1DItem { + keen::float32 parameterValue; // Offset: 0 + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct anim_graph.tool_graph.BlendSpace_1D { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::uint16 additiveReferenceFrame; // Offset: 74 + keen::ds::AnimationReference additiveReferenceAnimation; // Offset: 76 + keen::bool interpolateInputValue; // Offset: 92 + keen::float interpolationSpeed; // Offset: 96 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 100 +}; + +struct anim_graph.tool_graph.TransitionParameters { + keen::ObjectReference condition; // Offset: 40 +}; + +struct anim_graph.tool_graph.EditorGraphBase { + keen::ObjectReference parentNode; // Offset: 0 + keen::ObjectReference mostSignificantNode; // Offset: 16 +}; + +struct anim_graph.tool_graph.FlowGraph { +}; + +struct anim_graph.tool_graph.StateMachineGraph { + keen::ObjectReference globalTransitions; // Offset: 32 +}; + +struct anim_graph.tool_graph.BlendTree { +}; + +struct anim_graph.tool_graph.ExpressionTree { +}; + +struct anim_graph.tool_graph.DefaultIdInputIdValue { + keen::ObjectReference key; // Offset: 0 + keen::ObjectReference defaultValue; // Offset: 16 +}; + +typedef keen::ObjectReference PreviewModelReference; + +typedef keen::StaticArray PreviewModelArray; + +struct anim_graph.tool_graph.AnimationGraph2_0 { + keen::ObjectReference rootGraph; // Offset: 0 + keen::ObjectReference clothColliderReference; // Offset: 16 + keen::ds::PreviewModelArray previewModelOverride; // Offset: 32 + keen::ds::string genderPrefix; // Offset: 288 + keen::DsArray genderMapping; // Offset: 328 +}; + +typedef keen::anim_graph::runtime_graph::AnimationNodeType anim_graph.runtime_graph.AnimationNodeType; + +struct anim_graph.runtime_graph.AnimationNodeDefinition { + keen::HashKey32 id; // Offset: 0 + keen::ds::anim_graph::runtime_graph::AnimationNodeType type; // Offset: 4 +}; + +struct anim_graph.runtime_graph.PoseResultNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.SampleAnimationClipNodeDefinition { + keen::bool loop; // Offset: 8 + keen::float32 animationDuration; // Offset: 12 + keen::ObjectReference animation; // Offset: 16 + keen::ObjectReference animationGenderAlternative; // Offset: 32 + keen::ObjectReference rootMotionAnimation; // Offset: 48 + keen::ObjectReference rootMotionAnimationGenderAlternative; // Offset: 64 + keen::ObjectReference eventSequenceContainer; // Offset: 80 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 96 + keen::ObjectReference additiveReferenceAnimation; // Offset: 100 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 116 + keen::uint16 additiveReferenceFrame; // Offset: 132 + keen::bool animationContentAdditive; // Offset: 134 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 136 +}; + +struct anim_graph.runtime_graph.EmptyAdditivePoseNodeDefinition { +}; + +struct anim_graph.runtime_graph.BlendSpace_1DItemRuntime { + keen::float32 parameterValue; // Offset: 0 + keen::float32 animationDuration; // Offset: 4 + keen::ObjectReference animation; // Offset: 8 + keen::ObjectReference animationGenderAlternative; // Offset: 24 + keen::ObjectReference eventSequenceContainer; // Offset: 40 +}; + +struct anim_graph.runtime_graph.BlendSpace_1DNodeDefinition { + keen::DsArray items; // Offset: 8 + keen::ObjectReference parameter; // Offset: 48 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 64 + keen::ObjectReference additiveReferenceAnimation; // Offset: 68 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 84 + keen::uint16 additiveReferenceFrame; // Offset: 100 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 104 + keen::float interpolationSpeed; // Offset: 140 + keen::bool loop; // Offset: 144 + keen::bool animationContentAdditive; // Offset: 145 +}; + +struct anim_graph.runtime_graph.LayerBlendNodeDefinition { + keen::HashKey32 base; // Offset: 8 + keen::HashKey32 layer; // Offset: 12 + keen::ds::anim_graph::LayerBlendOptions blendOptions; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SaveCachedPoseNodeDefinition { + keen::HashKey32 inputPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.UseCachedPoseNodeDefinition { + keen::HashKey32 cachedPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatConstantNodeDefinition { + keen::float32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.StateMachineGlobalTransitionInfo { + keen::HashKey32 toState; // Offset: 0 + keen::float32 duration; // Offset: 4 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 8 + keen::HashKey32 conditionNode; // Offset: 12 +}; + +struct anim_graph.runtime_graph.StateMachineNodeDefinition { + keen::DsArray states; // Offset: 8 + keen::DsArray transitions; // Offset: 48 + keen::HashKey32 entryState; // Offset: 88 + keen::StaticArray globalTransitions; // Offset: 92 + keen::uint8 numGlobalTransitions; // Offset: 604 + keen::HashKey32 globalTransitionNodeId; // Offset: 608 + keen::DsString debugName; // Offset: 616 +}; + +struct anim_graph.runtime_graph.StateMachineStateNodeDefinition { + keen::HashKey32 poseResult; // Offset: 8 + keen::DsString debugName; // Offset: 16 + keen::bool restartOnRetrigger; // Offset: 56 + keen::bool startAtRandomTime; // Offset: 57 +}; + +struct anim_graph.runtime_graph.StateMachineTransitionNodeDefinition { + keen::HashKey32 fromState; // Offset: 8 + keen::HashKey32 toState; // Offset: 12 + keen::float32 duration; // Offset: 16 + keen::uint8 priority; // Offset: 20 + keen::HashKey32 conditionNode; // Offset: 24 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 28 + keen::bool autoTransition; // Offset: 29 +}; + +struct anim_graph.runtime_graph.IntConstantNodeDefinition { + keen::sint32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IntParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolConstantNodeDefinition { + keen::bool value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDConstantNodeDefinition { + keen::HashKey32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolNegateNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolAndNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolOrNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.FloatRemapNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::FloatRange inputRange; // Offset: 12 + keen::FloatRange outputRange; // Offset: 20 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SelectPoseByBoolNodeDefinition { + keen::HashKey32 inputA; // Offset: 8 + keen::HashKey32 inputB; // Offset: 12 + keen::HashKey32 selectA; // Offset: 16 + keen::float32 blendTime; // Offset: 20 +}; + +struct anim_graph.runtime_graph.IdParameterEqualsConstantNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 + keen::HashKey32 value; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IdEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IdEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 comparatorValue; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IntEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IntEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::sint32 comparatorValue; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IsOverlayActiveNodeDefinition { + keen::HashKey32 overlay; // Offset: 8 +}; + +struct anim_graph.runtime_graph.ParameterList { + keen::DsArray parameterIds; // Offset: 0 +}; + +struct anim_graph.runtime_graph.AnimationGraphResource2_0 { + keen::ds::anim_graph::runtime_graph::ParameterList floatParameters; // Offset: 0 + keen::ds::anim_graph::runtime_graph::ParameterList uintParameters; // Offset: 40 + keen::ds::anim_graph::runtime_graph::ParameterList intParameters; // Offset: 80 + keen::ds::anim_graph::runtime_graph::ParameterList boolParameters; // Offset: 120 + keen::ds::anim_graph::runtime_graph::ParameterList idParameters; // Offset: 160 + keen::ds::anim_graph::runtime_graph::ParameterList usedInputIds; // Offset: 200 + keen::ObjectReference hierarchy; // Offset: 240 + keen::StaticArray slotBoneIndexMapping; // Offset: 256 + keen::HashKey32 rootNode; // Offset: 284 + keen::DsArray> nodeDefinitions; // Offset: 288 + keen::ObjectReference clothColliderReference; // Offset: 328 + keen::DsArray genderMapping; // Offset: 344 +}; + +struct anim_graph.GameUpdateMessage { + keen::bool isPaused; // Offset: 0 +}; + +struct anim_graph.DebugEntityChangedMessage { + keen::uint32 selectedEntity; // Offset: 0 +}; + +struct anim_graph.debug.DebugMessageBase { + keen::Time timestamp; // Offset: 0 + keen::uint32 entityId; // Offset: 8 + keen::Guid rootGraphGuid; // Offset: 12 + keen::Guid templateId; // Offset: 28 +}; + +struct anim_graph.debug.NodeStateUpdateMessage { + keen::HashKey32 nodeId; // Offset: 48 + keen::bool isActive; // Offset: 52 + keen::bool isFrozen; // Offset: 53 + keen::float32 progress; // Offset: 56 + keen::float32 timeSpentInNode; // Offset: 60 + keen::HashKey32 fromState; // Offset: 64 + keen::HashKey32 toState; // Offset: 68 +}; + +struct anim_graph.debug.InputIdMessage { + keen::StaticArray floatInputIdHashes; // Offset: 48 + keen::StaticArray floatInputIdValues; // Offset: 80 + keen::StaticArray intInputIdHashes; // Offset: 112 + keen::StaticArray intInputIdValues; // Offset: 144 + keen::StaticArray boolInputIdHashes; // Offset: 176 + keen::StaticArray boolInputIdValues; // Offset: 208 + keen::StaticArray idInputIdHashes; // Offset: 216 + keen::StaticArray idInputIdValues; // Offset: 248 + keen::StaticArray overlayIdValues; // Offset: 280 +}; + +struct anim_graph.debug.EntityJointMessage { + keen::StaticArray animationJoints; // Offset: 48 + keen::uint8 numJoints; // Offset: 12336 +}; + +struct anim_graph.debug.AnimationGraphInstanceInfoMessage { + keen::uint32 retriggerCount; // Offset: 48 +}; + +struct anim_graph.debug.StateMachineMessage { + keen::uint32 stateMachineId; // Offset: 48 + keen::StaticArray fromState; // Offset: 52 + keen::StaticArray toState; // Offset: 84 + keen::StaticArray duration; // Offset: 116 + keen::StaticArray elapsed; // Offset: 148 + keen::StaticArray priority; // Offset: 180 + keen::StaticArray frozen; // Offset: 188 +}; + +typedef keen::ObjectReference AnimationGraphResourceReference; + +struct JointAnimationHeader { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 startTime; // Offset: 4 + keen::uint16 endTime; // Offset: 6 + keen::uint16 usedOrientationJoints; // Offset: 8 + keen::uint16 nonConstOrientationJoints; // Offset: 10 + keen::uint16 usedPositionJoints; // Offset: 12 + keen::uint16 nonConstPositionJoints; // Offset: 14 + keen::uint16 usedScaleJoints; // Offset: 16 + keen::uint16 nonConstScaleJoints; // Offset: 18 +}; + +struct JointAnimation { + keen::uint64 hierarchyHash; // Offset: 0 + keen::float32 positionFactor; // Offset: 8 + keen::float32 positionTangent; // Offset: 12 + keen::float32 scaleFactor; // Offset: 16 + keen::DsArray headers; // Offset: 24 + keen::ContentHash data; // Offset: 64 + keen::uint16 fps; // Offset: 80 + keen::uint16 frameCount; // Offset: 82 + keen::uint16 jointCount; // Offset: 84 + keen::uint16 flags; // Offset: 86 +}; + +typedef keen::ObjectReference JointAnimationReference; + +struct LveOrientationKey { + keen::uint32 time; // Offset: 0 + keen::float4 values; // Offset: 4 + keen::float4 controls; // Offset: 20 +}; + +struct LvePositionKey { + keen::uint32 time; // Offset: 0 + keen::float3 values; // Offset: 4 + keen::float3 controls; // Offset: 16 +}; + +struct LveAnimation { + keen::crc32 trackName; // Offset: 0 + keen::DsArray orientationKeys; // Offset: 8 + keen::DsArray positionKeys; // Offset: 48 + keen::float3 startToEnd; // Offset: 88 + keen::uint16 fps; // Offset: 100 + keen::uint16 frameCount; // Offset: 102 + keen::uint16 flags; // Offset: 104 +}; + +struct RootMotionAnimation { + keen::DsArray orientations; // Offset: 0 + keen::DsArray positions; // Offset: 40 + keen::float3 startToEnd; // Offset: 80 + keen::uint16 fps; // Offset: 92 + keen::uint16 frameCount; // Offset: 94 +}; + +typedef keen::ds::string DsTypeName; + +struct vf32_data { + keen::StaticArray data; // Offset: 0 +}; + +typedef keen::ContentCategory ContentCategory; + +typedef keen::VertexColorChannel VertexColorChannel; + +struct ClothMaterial { + keen::ds::VertexColorChannel simulationWeightVertexColorChannel; // Offset: 0 + keen::bool useMass; // Offset: 1 + keen::float32 mass; // Offset: 4 + keen::bool usePerVertexStiffness; // Offset: 8 + keen::ds::VertexColorChannel perVertexStiffnessVertexColorChannel; // Offset: 9 + keen::float32 gravity; // Offset: 12 + keen::float32 windStrength; // Offset: 16 + keen::float32 dragCoefficient; // Offset: 20 + keen::float32 liftCoefficient; // Offset: 24 + keen::float32 damping; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 tetherStiffness; // Offset: 44 + keen::float32 phasesStiffness; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 motionConstraintsMaxRadius; // Offset: 60 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 64 + keen::float32 motionConstraintsStiffness; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 collisionFriction; // Offset: 76 +}; + +struct BvhTreeNodeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::sint32 value; // Offset: 32 +}; + +struct BvhTreeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::DsArray nodes; // Offset: 32 +}; + +typedef keen::CollisionSegmentDirection CollisionSegmentDirection; + +struct NavEdge { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 +}; + +struct NavPortal { + keen::StaticArray cellIndices; // Offset: 32 +}; + +struct CollisionShapeId { + keen::uint32 shapeId; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 +}; + +struct NavCell { + keen::uint16 index; // Offset: 0 + keen::float32 minY; // Offset: 4 + keen::float32 maxY; // Offset: 8 + keen::DsArray edgeIndices; // Offset: 16 + keen::DsArray portalIndices; // Offset: 56 + keen::DsArray collisionShapeIds; // Offset: 96 + keen::uint16 extensionPortalIndex; // Offset: 136 + keen::Vector3 centroid; // Offset: 144 +}; + +struct ColliderShape { +}; + +struct SphereColliderShape { + keen::float32 radius; // Offset: 0 +}; + +struct SpheroidColliderShape { + keen::float32 horizontalRadius; // Offset: 0 + keen::float32 verticalRadius; // Offset: 4 +}; + +struct CapsuleColliderShape { + keen::float32 radius; // Offset: 0 + keen::float32 length; // Offset: 4 +}; + +struct BoxColliderShape { + keen::float3 halfSize; // Offset: 0 +}; + +struct SegmentColliderShape { + keen::float3 direction; // Offset: 0 + keen::float32 length; // Offset: 12 +}; + +struct CollisionFace { + keen::StaticArray vertices; // Offset: 0 + keen::StaticArray neighborFaces; // Offset: 6 + keen::uint8 neighborEdgeIndices; // Offset: 12 + keen::uint8 material; // Offset: 13 + keen::uint16 flags; // Offset: 14 +}; + +struct CollisionObject { + keen::uint32 id; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 + keen::DsArray shapeVertices; // Offset: 8 + keen::DsArray navCellIndices; // Offset: 48 + keen::float32 health; // Offset: 88 + keen::float32 y; // Offset: 92 +}; + +struct CollisionGridCell { + keen::uint16 start; // Offset: 0 + keen::uint16 count; // Offset: 2 +}; + +struct CollisionGrid { + keen::DsArray gridCells; // Offset: 0 + keen::DsArray gridIndicies; // Offset: 40 + keen::DsArray collShapesPerGrid; // Offset: 80 + keen::DsArray collShapesPerGridIndicies; // Offset: 120 + keen::uint16 cellsX; // Offset: 160 + keen::Vector2 origin; // Offset: 164 + keen::Vector2 cellSize; // Offset: 172 +}; + +struct CollisionMeshData { + keen::DsArray m_vertices; // Offset: 0 + keen::DsArray m_faces; // Offset: 40 + keen::ds::CollisionGrid m_grid; // Offset: 80 + keen::DsArray m_objects; // Offset: 264 + keen::DsArray m_navCells; // Offset: 304 + keen::DsArray m_navEdges; // Offset: 344 + keen::DsArray m_navPortals; // Offset: 384 +}; + +struct WorldCollisionBatch { + keen::uint32 triangleIndex; // Offset: 0 + keen::uint32 triangleCount; // Offset: 4 +}; + +struct WorldCollision { + keen::DsArray triangleBatches; // Offset: 0 + keen::DsArray vertexPositions; // Offset: 40 + keen::DsArray materialIds; // Offset: 80 + keen::ds::BvhTreeData bvhTreeData; // Offset: 128 +}; + +struct PaletteColor { + keen::HdrColorRgb color; // Offset: 0 +}; + +typedef keen::ObjectReference PaletteColorReference; + +struct ColorPalette { +}; + +struct ColorPaletteCollection { +}; + +typedef keen::PaletteColorId PaletteColorId; + +struct PaletteColorResource { + keen::ds::PaletteColorId paletteColorId; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct ColorPaletteCollectionResource { + keen::DsArray colors; // Offset: 0 +}; + +typedef keen::CommerceProductId CommerceProductId; + +struct CommerceProduct { + keen::ds::CommerceProductId id; // Offset: 0 + keen::uint32 platformIdSteam; // Offset: 4 +}; + +typedef keen::ObjectReference CommerceProductReference; + +struct CommerceProductSubDirectory { +}; + +struct CommerceProductDirectory { +}; + +struct CommerceProductResource { + keen::DsArray products; // Offset: 0 +}; + +typedef keen::ObjectReference CommerceResourceReference; + +struct ecs.SpawnComponent { +}; + +struct ecs.LastTransform { + keen::WorldTransform transform; // Offset: 0 + keen::float3 velocity; // Offset: 56 +}; + +struct ecs.PlayerFocus { + keen::WorldPosition position; // Offset: 0 +}; + +struct ecs.StaticTransform { +}; + +struct ecs.StaticTransformDynamic { +}; + +struct ecs.DoNotSave { +}; + +struct ecs.ForceSave { +}; + +struct ecs.PlayerInRange { +}; + +struct ecs.CheckPlayerInRange { + keen::uint8 distanceInMeter; // Offset: 0 +}; + +struct ecs.ServerProgress { +}; + +struct ecs.StoredSceneId { + keen::Guid sceneGuid; // Offset: 0 +}; + +struct ecs.EnemyMarkerSettings { + keen::ObjectReference tag; // Offset: 0 +}; + +struct ecs.TeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool isWaitingForTeleport; // Offset: 1 +}; + +struct ecs.RenderTeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool wasTeleported; // Offset: 1 +}; + +struct ecs.ScaleComponent { + keen::float32 uniformScale; // Offset: 0 +}; + +struct ecs.Velocity { + keen::float3 velocity; // Offset: 0 +}; + +typedef keen::ecs::ImpulseType ecs.ImpulseType; + +struct ecs.ImpulseData { + keen::float3 impulse; // Offset: 0 + keen::ds::ecs::ImpulseType type; // Offset: 12 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 +}; + +struct ecs.Impulse { + keen::float3 impulse; // Offset: 0 + keen::StaticArray impulses; // Offset: 16 +}; + +struct ecs.OscillateTransform { + keen::float3 center; // Offset: 0 + keen::float3 amplitudeAxis; // Offset: 12 + keen::float32 duration; // Offset: 24 + keen::float32 phase; // Offset: 28 +}; + +struct ecs.EntityId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.OwnerRelationship { + keen::ds::ecs::EntityId ownerEntityId; // Offset: 0 +}; + +struct ecs.SpawnTime { + keen::Time spawnTime; // Offset: 0 +}; + +struct ecs.LifeTime { + keen::Time lifeTime; // Offset: 0 + keen::Time endOfLife; // Offset: 8 + keen::bool enforceDestroy; // Offset: 16 + keen::bool triggeredDestroy; // Offset: 17 +}; + +struct ecs.Aging { + keen::float32 speed; // Offset: 0 +}; + +struct ecs.TintColor { + keen::Color color; // Offset: 0 +}; + +struct ecs.ColorCombinationComponent { + keen::StaticArray colorIds; // Offset: 0 +}; + +typedef keen::HighlightColorIndex HighlightColorIndex; + +struct ecs.HighlightColor { + keen::ds::HighlightColorIndex colorIndex; // Offset: 0 +}; + +struct ecs.Transparency { + keen::float32 transparency; // Offset: 0 +}; + +struct ecs.Ao { + keen::uint8 value; // Offset: 0 +}; + +struct ecs.Hide { + keen::bool isHidden; // Offset: 0 + keen::bool isLocalyHidden; // Offset: 1 +}; + +struct ecs.ModelComponent { + keen::uint32 modelHandle; // Offset: 0 +}; + +typedef keen::ecs::ToggleModifier ecs.ToggleModifier; + +struct ecs.ModelRenderHint { + keen::bool canReceiveDecals; // Offset: 0 + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 1 +}; + +struct ecs.ModelDynamic { + keen::ObjectReference lastModel; // Offset: 0 +}; + +struct ecs.ModelResource { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.ModelResourceDynamic { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.VoxelModel { + keen::uint32 renderNode; // Offset: 0 +}; + +struct ecs.VoxelModelVolatile { + keen::uint32 pendingRenderNode; // Offset: 4 + keen::ObjectReference lastModel; // Offset: 8 + keen::uint8 lastMaterialOverride; // Offset: 24 + keen::bool isVoxelModelChangePending; // Offset: 25 +}; + +struct ecs.VoxelModelResourceComponent { + keen::ObjectReference model; // Offset: 0 + keen::uint8 materialOverride; // Offset: 16 +}; + +struct ecs.SnowDisplacementComponent { + keen::uint32 bodyHandle; // Offset: 0 + keen::float3 localOffset; // Offset: 4 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 + keen::float32 heightNoiseScale; // Offset: 24 +}; + +struct ecs.DungeonTriggerTypeComponent { + keen::ObjectReference triggerSetup; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent2 { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.VfxComponentResource { + keen::ds::VfxReference vfx; // Offset: 0 +}; + +struct ecs.VfxResourceDynamic { + keen::ds::VfxReference vfx; // Offset: 0 +}; + +struct VfxUserEffectParameterDataBlock { + keen::StaticArray data; // Offset: 0 +}; + +struct ecs.VfxParametersTemplateComponent { + keen::ds::VfxUserEffectParameterDataBlock parameters; // Offset: 0 +}; + +struct ecs.VfxParametersOverwriteComponent { + keen::bool useVfxDefaultParameters; // Offset: 0 + keen::ds::VfxUserEffectParameterDataBlock parameters; // Offset: 4 +}; + +struct ecs.OverrideLevel { + keen::uint32 newLevel; // Offset: 0 +}; + +typedef keen::ecs::ToggleModifierFlags ecs.ToggleModifierFlags; + +struct ecs.ToggleTimer { + keen::Time timer; // Offset: 0 + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 8 + keen::bool timerRunning; // Offset: 9 + keen::Time lastToggleChange; // Offset: 16 +}; + +struct ecs.DestroyOnState { + keen::bool wasInOppositeState; // Offset: 0 + keen::bool targetState; // Offset: 1 + keen::bool triggered; // Offset: 2 +}; + +struct ecs.FxComponent { + keen::uint32 fxHandle; // Offset: 0 + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 4 +}; + +struct ecs.VfxAnimationIdParameter { +}; + +struct ecs.Offset { + keen::float3 localOffset; // Offset: 0 + keen::float3 worldOffset; // Offset: 12 + keen::Quaternion orientationOffset; // Offset: 24 +}; + +struct ecs.VfxComponent { + keen::ds::ecs::Offset attachmentOffset; // Offset: 8 + keen::ds::AttachmentSlot slot; // Offset: 48 + keen::bool attachToParent; // Offset: 49 +}; + +typedef keen::ecs::TargetType ecs.TargetType; + +struct ecs.VfxTargetedComponent { + keen::ds::ecs::TargetType targetType; // Offset: 52 + keen::float3 targetPosition; // Offset: 56 + keen::bool updateTargetPosition; // Offset: 68 +}; + +struct ecs.TargetEntity { + keen::ds::ecs::EntityId targetId; // Offset: 0 +}; + +struct ecs.TargetPosition { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.VfxTargetParameter { + keen::ds::AttachmentSlot targetSlot; // Offset: 0 + keen::ds::ecs::Offset targetAttachmentOffset; // Offset: 4 + keen::bool attachToTarget; // Offset: 44 + keen::bool updateSourcePosition; // Offset: 45 +}; + +struct ecs.VfxComponentVolatile { + keen::ds::VfxReference lastVfx; // Offset: 52 +}; + +typedef keen::ObjectReference NotifierReference; + +struct ecs.VfxOnResourceDrop { + keen::ds::NotifierReference notifier; // Offset: 0 + keen::ds::SoundContainerReference sfx; // Offset: 16 + keen::ds::VfxReference vfx; // Offset: 32 +}; + +struct ecs.ToggleDelay { + keen::Time delay; // Offset: 0 +}; + +struct ecs.ToggleState { + keen::bool state; // Offset: 0 + keen::Time lastChange; // Offset: 8 +}; + +struct ecs.ServerToggleState { +}; + +struct ecs.NetworkToggleState { +}; + +struct ecs.ClientToggleState { +}; + +struct ecs.ToggleNotifier { + keen::Time lastEvent; // Offset: 0 + keen::ds::ecs::ToggleModifier flags; // Offset: 8 + keen::ds::NotifierReference notifier; // Offset: 12 + keen::Time duration; // Offset: 32 + keen::ds::AttachmentSlot sourceSlot; // Offset: 40 + keen::ds::ecs::Offset sourceAttachmentOffset; // Offset: 44 + keen::bool attachToSource; // Offset: 84 + keen::ds::AttachmentSlot targetSlot; // Offset: 85 + keen::ds::ecs::Offset targetAttachmentOffset; // Offset: 88 + keen::bool attachToTarget; // Offset: 128 + keen::ds::SoundContainerReference sfx; // Offset: 132 + keen::ds::VfxReference vfx; // Offset: 148 +}; + +struct ecs.BaseAnimationGraphInput { + keen::ds::animationgraph::StateIdReference initialAnimationStateIdReference; // Offset: 0 + keen::ds::AnimationGraphInputs animationInputs; // Offset: 16 + keen::ds::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 400 + keen::ds::animationgraph::StateIdHash animationStateId; // Offset: 404 + keen::uint32 retriggerCount; // Offset: 408 +}; + +struct ecs.ServerAnimationGraphInput { + keen::ds::AnimationGraphInputs previousAnimationInputs; // Offset: 416 + keen::uint8 overlayRingbufferIndex; // Offset: 800 +}; + +struct ecs.NetworkAnimationGraphInput { +}; + +struct ecs.ClientAnimationGraphInputLerp { + keen::ds::AnimationGraphInputs source; // Offset: 0 + keen::ds::AnimationGraphInputs target; // Offset: 384 + keen::uint32 tick; // Offset: 768 + keen::bool isSet; // Offset: 772 +}; + +struct ecs.ClientAnimationGraphInput { +}; + +struct ecs.AnimationGraphHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.RenderPoseHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphBaseComponent { + keen::ds::ecs::AnimationGraphHandleValue animationGraphHandle; // Offset: 0 + keen::ds::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 +}; + +struct ecs.AnimationGraphComponent { + keen::ObjectReference usedClothCollider; // Offset: 8 +}; + +struct ecs.AnimationGraphSlotComponent { + keen::bool slotsInitialized; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct ecs.ServerAnimationGraphComponent { +}; + +struct ecs.ServerAnimationGraphSlotComponent { +}; + +struct ecs.AnimationGraphHandleValue2 { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphComponent2 { + keen::ds::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 + keen::ds::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 + keen::Guid clothCollider; // Offset: 8 +}; + +struct ecs.ServerAnimationGraphComponent2 { + keen::ds::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 +}; + +struct ecs.CopyParentAnimationGraphState { +}; + +struct ecs.AnimatedCamera { + keen::ds::AttachmentSlot cameraSlot; // Offset: 0 +}; + +struct ecs.RngState { + keen::uint32 w; // Offset: 0 + keen::uint32 z; // Offset: 4 +}; + +typedef keen::VoxelMaterialId VoxelMaterialId; + +struct ecs.WorldCollisionResults { + keen::bool hasSpheroidCollision; // Offset: 0 + keen::float3 spheroidNormal; // Offset: 4 + keen::bool hasGroundCollision; // Offset: 16 + keen::bool isGroundWalkable; // Offset: 17 + keen::float3 groundNormal; // Offset: 20 + keen::float3 areaGroundNormal; // Offset: 32 + keen::float32 groundDistance; // Offset: 44 + keen::ds::VoxelMaterialId groundVoxelMaterialId; // Offset: 48 + keen::bool preventFallDamage; // Offset: 49 +}; + +struct ecs.OptionalWorldCollisionResults { + keen::ds::ecs::WorldCollisionResults m_value; // Offset: 0 + keen::bool m_isSet; // Offset: 52 +}; + +struct ecs.WorldCollider { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::float32 maxStepHeightVoxels; // Offset: 8 + keen::float32 maxStepHeightProps; // Offset: 12 + keen::bool onlyCheckPathCollidersWithBundleCheck; // Offset: 16 + keen::float32 yOffset; // Offset: 20 + keen::bool isWorldColliderReady; // Offset: 24 + keen::bool snapToGround; // Offset: 25 + keen::bool hasDetectedSafePositionBelow; // Offset: 26 + keen::ds::ecs::OptionalWorldCollisionResults results; // Offset: 28 +}; + +struct ecs.Gravity { + keen::float3 direction; // Offset: 0 + keen::float32 value; // Offset: 12 + keen::bool isActive; // Offset: 16 +}; + +struct ecs.StaticGravityModifier { + keen::float32 modifier; // Offset: 0 +}; + +struct ecs.Debug { +}; + +typedef keen::ObjectReference ecs.ColliderResponseResourceReference; + +struct ecs.ColliderResponseComponent { + keen::ds::ecs::ColliderResponseResourceReference colliderResponse; // Offset: 0 +}; + +typedef keen::ecs::ColliderResponseFlag ecs.ColliderResponseFlag; + +typedef keen::ecs::ColliderResponseFlags ecs.ColliderResponseFlags; + +typedef keen::ecs::CollisionType ecs.CollisionType; + +struct ecs.ColliderResponseResourceEntry { + keen::ds::SoundContainerReference sfx; // Offset: 0 + keen::ds::VfxReference vfx; // Offset: 16 + keen::ds::string sfxDescription; // Offset: 32 + keen::ds::string vfxDescription; // Offset: 72 + keen::ds::string description; // Offset: 112 + keen::float3 eulerOffset; // Offset: 152 + keen::float3 offset; // Offset: 164 + keen::ds::ecs::CollisionType collisionType; // Offset: 176 + keen::ds::AttachmentSlot slot; // Offset: 177 + keen::ds::ecs::ColliderResponseFlags flags; // Offset: 178 +}; + +struct ecs.ColliderResponseResource { + keen::DsArray responseEntries; // Offset: 0 + keen::Guid templateId; // Offset: 40 + keen::ds::string templateDescription; // Offset: 56 +}; + +struct ecs.ColliderResponse { + keen::ds::ecs::CollisionType collisionType; // Offset: 0 + keen::ds::SoundContainerReference sfx; // Offset: 4 + keen::ds::VfxReference vfx; // Offset: 20 + keen::float3 eulerOffset; // Offset: 36 + keen::float3 offset; // Offset: 48 + keen::bool applyLocally; // Offset: 60 + keen::bool orientToNormal; // Offset: 61 + keen::bool overrideSlot; // Offset: 62 + keen::ds::AttachmentSlot slot; // Offset: 63 + keen::bool attach; // Offset: 64 +}; + +struct ecs.ColliderResourceComponent { + keen::DsArray colliders; // Offset: 0 +}; + +typedef keen::ObjectReference CollisionFeedbackMaterialReference; + +typedef keen::ItemId ItemId; + +typedef keen::ObjectReference ItemReference; + +typedef keen::PropDamageSusceptibility PropDamageSusceptibility; + +struct ecs.CollisionFeedbackMaterialComponent { + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 16 + keen::ds::ItemReference itemRef; // Offset: 20 + keen::ds::PropDamageSusceptibility propDamageSusceptibility; // Offset: 36 +}; + +struct ecs.ColliderId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.AbstractCollider { + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 0 + keen::ds::ecs::ColliderId colliderId; // Offset: 8 +}; + +struct ecs.StaticCollider { +}; + +struct ecs.StaticClientCollider { +}; + +typedef keen::ecs::ColliderMask ecs.ColliderMask; + +typedef keen::ecs::ColliderMode ecs.ColliderMode; + +struct ecs.Collider { + keen::bool isPathBlocker; // Offset: 16 + keen::ds::ecs::ColliderMask disabledCollisions; // Offset: 20 + keen::ds::ecs::ColliderMode activeColliderSetup; // Offset: 24 +}; + +struct ecs.ClientCollider { +}; + +typedef keen::ecs::PlayerSpawnType ecs.PlayerSpawnType; + +struct ecs.PlayerSpawnPoint { + keen::ds::ecs::PlayerSpawnType target; // Offset: 0 + keen::StaticArray landingPads; // Offset: 4 +}; + +struct ecs.QueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.IsPlayerInSight { + keen::bool isInSight; // Offset: 0 + keen::ds::ecs::QueryId queryId; // Offset: 4 + keen::Time nextQueryUpdate; // Offset: 8 + keen::ds::ecs::Offset sourceOffset; // Offset: 16 + keen::ds::ecs::Offset targetOffset; // Offset: 56 +}; + +typedef keen::ecs::LocalPlayerMask ecs.LocalPlayerMask; + +struct ecs.IsLocalPlayerInRange { + keen::float32 rangeMargin; // Offset: 0 + keen::ds::ecs::LocalPlayerMask arePlayersInRangeMask; // Offset: 4 +}; + +typedef keen::ecs::TriggerShapeType ecs.TriggerShapeType; + +struct ecs.TriggerShape { + keen::ds::ecs::TriggerShapeType shape; // Offset: 0 + keen::float32 rangeX; // Offset: 4 + keen::float32 rangeY; // Offset: 8 + keen::float32 rangeZ; // Offset: 12 + keen::ds::ecs::Offset offset; // Offset: 16 +}; + +typedef keen::FloorMaterialShape FloorMaterialShape; + +struct ecs.FloorMaterial { + keen::ObjectReference material; // Offset: 0 + keen::float32 radius; // Offset: 16 + keen::ds::FloorMaterialShape shape; // Offset: 20 + keen::float32 noiseStrength; // Offset: 24 +}; + +struct ecs.TriggerShapes { + keen::DsArray shapes; // Offset: 0 +}; + +struct ecs.FogResistanceState { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.AudioResourceComponent { + keen::ds::SoundContainerReference soundContainer; // Offset: 0 +}; + +struct ecs.AudioComponent { + keen::ds::AttachmentSlot slot; // Offset: 8 + keen::ds::ecs::Offset offset; // Offset: 12 + keen::bool stopOnDestroy; // Offset: 52 + keen::bool attach; // Offset: 53 + keen::bool attachToParent; // Offset: 54 +}; + +struct ecs.AudioComponentVolatile { + keen::ds::SoundContainerReference lastSoundContainer; // Offset: 56 +}; + +struct ecs.AmbientQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.AmbientSystemQuery { + keen::ds::ecs::AmbientQueryId queryId; // Offset: 0 +}; + +typedef keen::LocaTagId LocaTagId; + +struct ecs.UiInteractable { + keen::uint32 handle; // Offset: 0 + keen::ds::LocaTagId verbId; // Offset: 4 + keen::float32 hintRange; // Offset: 8 +}; + +struct ecs.QueryTest { + keen::Time queryTime; // Offset: 0 + keen::ds::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.DespawnLink { + keen::ds::ecs::EntityId parentEntityId; // Offset: 0 + keen::bool despawnOnDeath; // Offset: 4 +}; + +struct ecs.Transform { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 +}; + +struct ecs.CurrentTransform { + keen::WorldTransform transform; // Offset: 0 +}; + +struct ecs.RenderTransform { + keen::WorldTransform transform; // Offset: 0 + keen::WorldTransform interpolationSource; // Offset: 56 + keen::WorldTransform interpolationTarget; // Offset: 112 + keen::uint32 interpolationNewestTick; // Offset: 168 +}; + +typedef keen::AmbientTags AmbientTags; + +struct ecs.SetDataBreakPointMessage { + keen::uint32 entityId; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 4 + keen::uint16 offset; // Offset: 8 + keen::uint8 size; // Offset: 10 + keen::bool write; // Offset: 11 +}; + +struct ecs.ComponentMessageEntry { + keen::DsString name; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 40 + keen::HashKey32 templateType; // Offset: 44 + keen::uint8 affinity; // Offset: 48 + keen::uint8 queryAffinity; // Offset: 49 +}; + +struct ecs.ComponentMessage { + keen::DsArray components; // Offset: 0 +}; + +struct ecs.EcsComponentsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.EcsSystemsMask { + keen::uint64 mask; // Offset: 0 +}; + +struct ecs.EcsEventsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.TemplateMessageEntry { + keen::Guid guid; // Offset: 0 + keen::DsString name; // Offset: 16 + keen::ds::ecs::EcsComponentsMask componentsMask; // Offset: 56 +}; + +struct ecs.TemplateMessage { + keen::DsArray templates; // Offset: 0 +}; + +struct ecs.EntityMessageEntry { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint32 templateIndex; // Offset: 4 +}; + +struct ecs.TotalEntityMessage { + keen::DsArray entities; // Offset: 0 +}; + +struct ecs.ChangeEntityMessage { + keen::DsArray createdEntities; // Offset: 0 + keen::DsArray destroyedEntities; // Offset: 40 +}; + +struct ecs.TickMessage { + keen::uint32 tick; // Offset: 0 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 entitiesAdded; // Offset: 8 + keen::uint32 entitiesRemoved; // Offset: 12 + keen::uint32 eventCount; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 +}; + +struct ecs.ProgramInfoComponentDependencies { + keen::ds::ecs::EcsComponentsMask required; // Offset: 0 + keen::ds::ecs::EcsComponentsMask optional; // Offset: 72 +}; + +struct ecs.ProgramInfoDependencies { + keen::ds::ecs::ProgramInfoComponentDependencies components; // Offset: 0 + keen::ds::ecs::ProgramInfoComponentDependencies templateComponents; // Offset: 144 + keen::ds::ecs::EcsSystemsMask externalSystems; // Offset: 288 + keen::ds::ecs::EcsComponentsMask entityComponents; // Offset: 296 + keen::ds::ecs::EcsComponentsMask entityTemplates; // Offset: 368 + keen::ds::ecs::EcsEventsMask events; // Offset: 440 + keen::bool isThreadSafe; // Offset: 456 +}; + +struct ecs.ProgramInfoReadWriteDependency { + keen::ds::ecs::ProgramInfoDependencies read; // Offset: 0 + keen::ds::ecs::ProgramInfoDependencies write; // Offset: 464 + keen::ds::ecs::EcsComponentsMask forbiddenComponents; // Offset: 928 + keen::ds::ecs::EcsComponentsMask requiredComponents; // Offset: 1000 +}; + +struct ecs.ProgramId { + keen::uint16 id; // Offset: 0 +}; + +struct ecs.ProgramInfo { + keen::ds::ecs::ProgramId programId; // Offset: 0 + keen::DsString programName; // Offset: 8 + keen::bool isPresentation; // Offset: 48 + keen::bool isDisabled; // Offset: 49 + keen::bool isSystem; // Offset: 50 + keen::bool isInit; // Offset: 51 + keen::bool noPrediction; // Offset: 52 + keen::bool isDeactivated; // Offset: 53 + keen::bool isDeactivatedPrediction; // Offset: 54 + keen::ds::ecs::ProgramInfoReadWriteDependency dependencies; // Offset: 56 +}; + +struct ecs.ProgramsMessage { + keen::DsArray programs; // Offset: 0 +}; + +struct ecs.EventTypesMessageEntry { + keen::ds::string name; // Offset: 0 + keen::uint16 size; // Offset: 40 + keen::bool serverRead; // Offset: 42 + keen::bool serverWrite; // Offset: 43 + keen::bool clientRead; // Offset: 44 + keen::bool clientWrite; // Offset: 45 +}; + +struct ecs.EventTypesMessage { + keen::DsArray events; // Offset: 0 +}; + +struct ecs.ExternalSystemsMessageEntry { + keen::ds::string name; // Offset: 0 + keen::bool readThreadSafe; // Offset: 40 + keen::bool writeThreadSafe; // Offset: 41 + keen::bool serverRead; // Offset: 42 + keen::bool serverWrite; // Offset: 43 + keen::bool clientRead; // Offset: 44 + keen::bool clientWrite; // Offset: 45 +}; + +struct ecs.ExternalSystemsMessage { + keen::DsArray systems; // Offset: 0 +}; + +struct ecs.TaskSlotsMessageProgram { + keen::uint16 index; // Offset: 0 + keen::uint16 storageCount; // Offset: 2 + keen::uint16 chunkCount; // Offset: 4 + keen::uint32 entityCount; // Offset: 8 +}; + +struct ecs.TaskSlotsMessageEntry { + keen::ds::ecs::EcsComponentsMask componentsRead; // Offset: 0 + keen::ds::ecs::EcsComponentsMask componentsWrite; // Offset: 72 + keen::ds::ecs::EcsSystemsMask systemsRead; // Offset: 144 + keen::ds::ecs::EcsSystemsMask systemsWrite; // Offset: 152 + keen::ds::ecs::EcsComponentsMask entitiesRead; // Offset: 160 + keen::ds::ecs::EcsComponentsMask entitiesWrite; // Offset: 232 + keen::bool isThreadSafe; // Offset: 304 + keen::DsArray programs; // Offset: 312 +}; + +struct ecs.TaskSlotsMessage { + keen::uint32 tick; // Offset: 0 + keen::DsArray entries; // Offset: 8 +}; + +struct ecs.SendTaskSlotsMessage { + keen::uint8 dummy; // Offset: 0 +}; + +struct ecs.StartEntityUpdateMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.StopEntityUpdateMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.EntityComponentEntry { + keen::uint16 index; // Offset: 0 + keen::uint16 offset; // Offset: 2 + keen::uint16 size; // Offset: 4 +}; + +struct ecs.EntityComponentMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::DsArray components; // Offset: 8 + keen::DsArray buffer; // Offset: 48 +}; + +struct ecs.EntityTemplateMessage { + keen::Guid templateGuid; // Offset: 0 + keen::DsArray templateData; // Offset: 16 +}; + +struct ecs.StartTimelineMessage { + keen::DsArray entityIds; // Offset: 0 +}; + +struct ecs.StopTimelineMessage { + keen::uint8 dummy; // Offset: 0 +}; + +typedef keen::ecs::AdjustTick ecs.AdjustTick; + +struct ecs.TimelineFrameMessage { + keen::Time time; // Offset: 0 + keen::Time systemTime; // Offset: 8 + keen::Time lastSystemTime; // Offset: 16 + keen::uint32 tickCount; // Offset: 24 + keen::uint32 currentTick; // Offset: 28 + keen::uint32 lastTick; // Offset: 32 + keen::Time frameDuration; // Offset: 40 + keen::Time frameTime; // Offset: 48 + keen::Time nextTickTime; // Offset: 56 + keen::float32 tickInterpolationFactor; // Offset: 64 + keen::ds::ecs::AdjustTick adjustTick; // Offset: 68 +}; + +struct ecs.UpdateGameTimeMessage { + keen::Time time; // Offset: 0 +}; + +struct ecs.DebugQueryMessage { + keen::ds::ecs::QueryId queryId; // Offset: 0 +}; + +struct ecs.EntityStateComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 size; // Offset: 2 + keen::uint16 offset0; // Offset: 4 + keen::uint16 offset1; // Offset: 6 +}; + +struct ecs.TimelineEntityStateData { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 + keen::uint32 gridCellId; // Offset: 64 + keen::uint32 dirtyValue; // Offset: 68 + keen::uint32 dataTick; // Offset: 72 + keen::uint16 isCulled; // Offset: 76 + keen::uint16 isCulledPrediction; // Offset: 78 + keen::uint16 playerMask; // Offset: 80 +}; + +struct ecs.TimelineEntityState { + keen::ds::ecs::TimelineEntityStateData entity0; // Offset: 0 + keen::ds::ecs::TimelineEntityStateData entity1; // Offset: 88 + keen::DsArray components; // Offset: 176 + keen::DsArray buffer; // Offset: 216 +}; + +struct ecs.TimelineSystemCounts { + keen::uint32 entities; // Offset: 0 + keen::uint32 sceneEntities; // Offset: 4 + keen::uint32 activeSceneChunks; // Offset: 8 +}; + +struct ecs.TimelineCamera { + keen::WorldTransform transform0; // Offset: 0 + keen::WorldTransform transform1; // Offset: 56 +}; + +struct ecs.TimelineSystemUpdateMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::Time frameTime; // Offset: 16 + keen::Time frameDuration; // Offset: 24 + keen::uint32 tick; // Offset: 32 + keen::uint32 lastTick; // Offset: 36 + keen::float32 tickFactor; // Offset: 40 + keen::ds::ecs::TimelineSystemCounts startCounts; // Offset: 44 + keen::ds::ecs::TimelineSystemCounts endCounts; // Offset: 56 + keen::DsArray createdEntities; // Offset: 72 + keen::DsArray destroyedEntities; // Offset: 112 + keen::DsArray entities; // Offset: 152 + keen::ds::ecs::TimelineCamera camera; // Offset: 192 +}; + +struct ecs.TimelineReplicationPriorityEntry { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint16 priority; // Offset: 4 +}; + +struct ecs.TimelineReplicationPriorityMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::DsArray clientEntries; // Offset: 16 + keen::DsArray predictionEntries; // Offset: 56 +}; + +typedef keen::ecs::TimelineEntitySkipReason ecs.TimelineEntitySkipReason; + +struct ecs.TimelineEntitySkipMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::ds::ecs::EntityId entityId; // Offset: 16 + keen::ds::ecs::TimelineEntitySkipReason reason; // Offset: 20 +}; + +struct ecs.TimelineEntitySendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::bool create; // Offset: 14 + keen::ds::ecs::EntityId entityId; // Offset: 16 + keen::DsArray messageData; // Offset: 24 +}; + +struct ecs.TimelineEntityRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineEntityProcessMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineInputSendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineInputRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineReplicationComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 count; // Offset: 2 + keen::uint16 deltaSize; // Offset: 4 +}; + +struct ecs.TimelineReplicationTemplate { + keen::ds::string name; // Offset: 0 + keen::uint32 checkedEntityCount; // Offset: 40 + keen::uint32 updatedEntityCount; // Offset: 44 + keen::DsArray components; // Offset: 48 +}; + +struct ecs.TimelineReplicationEvent { + keen::ds::string name; // Offset: 0 + keen::uint32 size; // Offset: 40 + keen::uint32 count; // Offset: 44 +}; + +struct ecs.TimelineReplicationStatisticsData { + keen::uint32 prioQueueSize; // Offset: 0 + keen::uint32 dirtyEntities; // Offset: 4 + keen::uint32 changedEntities; // Offset: 8 + keen::uint32 createdEntities; // Offset: 12 + keen::uint32 destroyedEntities; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 + keen::uint32 messageSize; // Offset: 24 + keen::uint32 totalEventCount; // Offset: 28 + keen::uint32 totalEventSize; // Offset: 32 + keen::DsArray templates; // Offset: 40 + keen::DsArray events; // Offset: 80 +}; + +struct ecs.TimelineReplicationStatisticsMessage { + keen::Time time; // Offset: 0 + keen::uint32 playerIndex; // Offset: 8 + keen::ds::ecs::TimelineReplicationStatisticsData client; // Offset: 16 + keen::ds::ecs::TimelineReplicationStatisticsData prediction; // Offset: 136 +}; + +struct ecs.TimelinePredictionEntityState { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint32 dataTick; // Offset: 4 + keen::bool isDirty; // Offset: 8 + keen::bool isDestroyed; // Offset: 9 + keen::DsArray components; // Offset: 16 + keen::DsArray buffer; // Offset: 56 +}; + +struct ecs.TimelinePredictionUpdateMessage { + keen::Time time; // Offset: 0 + keen::uint32 startTick; // Offset: 8 + keen::uint32 clientTick; // Offset: 12 + keen::uint32 lastTick; // Offset: 16 + keen::uint32 sourceTick; // Offset: 20 + keen::DsArray entities; // Offset: 24 +}; + +struct ecs.TimelinePredictionTickMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::uint32 tick; // Offset: 16 + keen::DsArray entities; // Offset: 24 +}; + +struct ecs.SceneCellEntity { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::uint16 templateIndex; // Offset: 16 + keen::uint16 clientCulledMask; // Offset: 18 + keen::uint16 predictionCulledMask; // Offset: 20 + keen::bool isUncullable; // Offset: 22 + keen::bool hasPosition; // Offset: 23 + keen::bool isDynamic; // Offset: 24 +}; + +struct ecs.SceneCellMessage { + keen::uint2 cellPosition; // Offset: 0 + keen::uint32 cellIndex; // Offset: 8 + keen::DsArray entities; // Offset: 16 + keen::uint32 sceneEntityCount; // Offset: 56 +}; + +typedef keen::ecs::SceneChunkState ecs.SceneChunkState; + +struct ecs.SceneChunkEntry { + keen::ds::ecs::SceneChunkState state; // Offset: 0 + keen::bool isActive; // Offset: 1 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 destroyedEntityCount; // Offset: 8 + keen::Time unloadAge; // Offset: 16 +}; + +struct ecs.SceneChunksMessage { + keen::DsArray chunks; // Offset: 0 +}; + +struct ecs.SceneZoneBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +struct ecs.SceneBuildZonesMessage { + keen::DsArray allowedZones; // Offset: 0 + keen::DsArray forbiddenZones; // Offset: 40 + keen::DsArray activeZones; // Offset: 80 + keen::DsArray playableZones; // Offset: 120 +}; + +struct ecs.SceneMessage { + keen::Guid sceneGuid; // Offset: 0 + keen::uint2 sceneChunkSize; // Offset: 16 + keen::uint2 entityGridSize; // Offset: 24 + keen::float32 entityGridCellSize; // Offset: 32 +}; + +typedef keen::ecs::SceneControlMessageType ecs.SceneControlMessageType; + +struct ecs.SceneControlMessage { + keen::ds::ecs::SceneControlMessageType type; // Offset: 0 +}; + +struct ecs.SceneHotPointsMessage { + keen::DsArray hotPoints; // Offset: 0 +}; + +struct ecs.SceneHotPointsFile { + keen::DsArray hotPoints; // Offset: 0 +}; + +struct ecs.ScenePlayerCamera { + keen::float3 position; // Offset: 0 + keen::float yRotation; // Offset: 12 +}; + +struct ecs.ScenePlayerCamerasMessage { + keen::StaticArray cameras; // Offset: 0 +}; + +struct ecs.SceneChunkResetMessage { + keen::uint32 chunkIndex; // Offset: 0 +}; + +typedef keen::ecs::QueryFlags ecs.QueryFlags; + +struct ecs.SceneColliderQueryEntry { + keen::ds::ecs::QueryId queryId; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 4 + keen::ds::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::ds::ecs::QueryFlags flags; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::AxisAlignedBox colliderAabb; // Offset: 32 + keen::ds::string debugName; // Offset: 64 + keen::uint32 resultCount; // Offset: 104 + keen::bool checkWorldTriangles; // Offset: 108 +}; + +struct ecs.RangeQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.SceneRangeQueryEntry { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 4 + keen::ds::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::uint16 componentId; // Offset: 16 + keen::AxisAlignedBox aabb; // Offset: 32 + keen::float32 range; // Offset: 64 + keen::ds::string debugName; // Offset: 72 + keen::uint32 resultCount; // Offset: 112 +}; + +struct ecs.SceneQueriesMessage { + keen::uint32 triangleQueryCount; // Offset: 0 + keen::DsArray colliderQueries; // Offset: 8 + keen::DsArray rangeQueries; // Offset: 48 +}; + +struct ecs.TimeControlMessage { + keen::sint16 tickDelta; // Offset: 0 + keen::Time sleep; // Offset: 8 + keen::Time sleepOnce; // Offset: 16 +}; + +struct ecs.DestroyEntityMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateReference; + +struct HolisticMapFilterTemplateEntry { + keen::ds::ecs::TemplateReference templateReference; // Offset: 0 + keen::bool showChildTemplates; // Offset: 16 +}; + +typedef keen::ecs::TestState ecs.TestState; + +struct ecs.TestA { + keen::Time time; // Offset: 0 + keen::uint32 state; // Offset: 8 + keen::ds::ecs::TestState stateB; // Offset: 12 + keen::ds::ecs::TestState stateC; // Offset: 13 + keen::ds::ecs::TestState stateD; // Offset: 14 +}; + +struct ecs.TestB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestC { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestD { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestTemplateA { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateA { + keen::uint32 defValue; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct ecs.TestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTypeTestTemplate { + keen::DsArray values; // Offset: 0 +}; + +struct ecs.TestBase { + keen::DsString name; // Offset: 0 +}; + +struct ecs.DynamicTestBase { + keen::uint32 value; // Offset: 0 + keen::uint32 notSave; // Offset: 4 + keen::ds::ecs::EntityId mainEntity; // Offset: 8 + keen::Time start; // Offset: 16 + keen::Time duration; // Offset: 24 +}; + +struct ecs.TestBaseEntry { + keen::uint32 value; // Offset: 0 + keen::ds::ecs::EntityId spouseId; // Offset: 4 + keen::ds::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.TestBaseEntryServer { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryTemplateClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntrySpawnClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryAddClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.Event { +}; + +struct ecs.TestEvent1 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEvent2 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEventCreate { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.GridId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.PathQueryId { + keen::uint32 id; // Offset: 0 +}; + +typedef keen::ecs::QueryFlag ecs.QueryFlag; + +typedef keen::ecs::QueryResultFlag ecs.QueryResultFlag; + +typedef keen::ecs::QueryResultFlags ecs.QueryResultFlags; + +typedef keen::ecs::CollisionCheckFlag ecs.CollisionCheckFlag; + +typedef keen::ecs::CollisionCheckFlags ecs.CollisionCheckFlags; + +struct ecs.Template { + keen::bool predictEntity; // Offset: 0 + keen::bool farCulling; // Offset: 1 + keen::bool questEntity; // Offset: 2 +}; + +struct ecs.TemplateResource { + keen::ds::string name; // Offset: 0 + keen::bool predictEntity; // Offset: 40 + keen::bool farCulling; // Offset: 41 + keen::DsArray> components; // Offset: 48 +}; + +typedef keen::ObjectReference ecs.TemplateResourceReference; + +struct ecs.TemplateSubDirectory { +}; + +struct ecs.TemplateDirectory { +}; + +struct ecs.TemplateCollectionResource { + keen::DsArray templates; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateCollectionReference; + +struct ecs.ServerInfo { + keen::Time minDuration; // Offset: 0 + keen::Time avgDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 + keen::uint32 sceneEntityCount; // Offset: 24 + keen::uint32 dynamicEntityCount; // Offset: 28 + keen::uint32 sceneChunkCount; // Offset: 32 + keen::uint32 bandwidth; // Offset: 36 +}; + +typedef keen::ecs::ColliderFlags ecs.ColliderFlags; + +struct ecs.ColliderFlagData { + keen::ds::ecs::ColliderMask isA; // Offset: 0 + keen::ds::ecs::ColliderMask checkAgainst; // Offset: 4 +}; + +struct ecs.ColliderModeSetup { + keen::bool defaultMode; // Offset: 0 + keen::bool sitting; // Offset: 1 + keen::bool lying; // Offset: 2 + keen::bool evading; // Offset: 3 + keen::bool climbingWall; // Offset: 4 + keen::bool death; // Offset: 5 + keen::bool invisible; // Offset: 6 +}; + +struct ecs.ColliderData { + keen::bool enabled; // Offset: 0 + keen::ds::ecs::ColliderFlagData flags; // Offset: 4 + keen::float3 offset; // Offset: 12 + keen::Quaternion orientation; // Offset: 24 + keen::float32 stickyness; // Offset: 40 + keen::ds::ecs::ColliderModeSetup colliderModeSetup; // Offset: 44 + keen::bool preventFallDamage; // Offset: 51 + keen::bool isSnappingBox; // Offset: 52 +}; + +struct ecs.SphereColliderData { + keen::ds::SphereColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 60 +}; + +struct ecs.SpheroidColliderData { + keen::ds::SpheroidColliderShape shape; // Offset: 56 +}; + +struct ecs.CapsuleColliderData { + keen::ds::CapsuleColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 64 +}; + +struct ecs.SegmentColliderData { + keen::ds::SegmentColliderShape shape; // Offset: 56 +}; + +struct ecs.MovingSphereColliderData { + keen::ds::SphereColliderShape sphereShape; // Offset: 56 + keen::ds::SegmentColliderShape segmentShape; // Offset: 60 +}; + +struct ecs.BoxColliderData { + keen::ds::BoxColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 68 +}; + +struct ecs.LineSegment { + keen::Vector3 p0; // Offset: 0 + keen::Vector3 p1; // Offset: 16 +}; + +struct ecs.SegmentBundleColliderData { + keen::StaticArray segments; // Offset: 64 +}; + +typedef keen::DsArray> ecs.ColliderDataArray; + +typedef keen::ecs::ColliderResolveFlag ecs.ColliderResolveFlag; + +typedef keen::ecs::ColliderResolveMask ecs.ColliderResolveMask; + +struct ecs.ColliderResourceData { + keen::ds::ecs::ColliderDataArray dataArray; // Offset: 0 + keen::ds::ecs::ColliderFlagData combinedFlags; // Offset: 40 + keen::ds::ecs::ColliderResolveMask resolveMask; // Offset: 48 +}; + +struct ecs.CollisionEvent { + keen::ds::ecs::EntityId entityA; // Offset: 0 + keen::ds::ecs::EntityId entityB; // Offset: 4 + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::float32 sqrDistance; // Offset: 32 + keen::float32 overlap; // Offset: 36 + keen::ds::ecs::ColliderMask colliderFlagsA; // Offset: 40 + keen::ds::ecs::ColliderMask colliderFlagsB; // Offset: 44 + keen::uint8 voxelMaterialId; // Offset: 48 +}; + +typedef keen::ecs::EntitySpawnValue ecs.EntitySpawnValue; + +typedef keen::ecs::EntitySpawnValueMask ecs.EntitySpawnValueMask; + +typedef keen::ecs::EnemyFeature ecs.EnemyFeature; + +typedef keen::ecs::EnemyFeatureMask ecs.EnemyFeatureMask; + +struct ecs.EnemyMarkerTag { +}; + +typedef keen::ObjectReference actor.ActorSequenceReference; + +struct ecs.EnemySettings { + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::ds::ecs::EnemyFeatureMask enabledFeatures; // Offset: 16 + keen::ds::ecs::EnemyFeatureMask disabledFeatures; // Offset: 20 + keen::float32 checkDistance; // Offset: 24 + keen::ObjectReference requiredMarkerTag; // Offset: 28 + keen::ds::actor::ActorSequenceReference spawnSequence; // Offset: 44 + keen::float32 maxTargetDistanceToHomeZone; // Offset: 60 +}; + +typedef keen::ecs::RandomSpawnerSetting ecs.RandomSpawnerSetting; + +typedef keen::ecs::RandomSpawnerSettingMask ecs.RandomSpawnerSettingMask; + +typedef keen::ecs::RandomSpawnerAmount ecs.RandomSpawnerAmount; + +struct ecs.RandomSpawnerSettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ds::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 + keen::ds::ecs::RandomSpawnerSettingMask changedSettings; // Offset: 3 +}; + +struct ecs.RandomSpawnerEntitySettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ds::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 +}; + +struct ecs.EntitySpawnData { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::ds::ecs::EntityId parentEntityId; // Offset: 28 + keen::Time spawnTime; // Offset: 32 + keen::uint64 randomSeed; // Offset: 40 + keen::float3 velocity; // Offset: 48 + keen::Color tintColor; // Offset: 60 + keen::float32 triggerRange; // Offset: 64 + keen::float32 triggerRange2; // Offset: 68 + keen::float32 triggerRange3; // Offset: 72 + keen::HashKey32 itemId; // Offset: 76 + keen::ds::ecs::EnemySettings enemySettings; // Offset: 80 + keen::ds::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 144 + keen::sint32 level; // Offset: 148 + keen::ds::ecs::EntitySpawnValueMask mask; // Offset: 152 +}; + +typedef keen::ecs::PathGridType ecs.PathGridType; + +typedef keen::ecs::PathNodeType ecs.PathNodeType; + +struct ecs.PathNodeCostFactors { + keen::float32 none; // Offset: 0 + keen::float32 building; // Offset: 4 + keen::float32 collider; // Offset: 8 + keen::float32 walkablePlatform; // Offset: 12 + keen::float32 tar; // Offset: 16 + keen::float32 mud; // Offset: 20 + keen::float32 road; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 deadlyFog; // Offset: 32 + keen::float32 lava; // Offset: 36 + keen::float32 noNpcMovement; // Offset: 40 + keen::float32 npcAvoid; // Offset: 44 + keen::float32 closedDoor; // Offset: 48 +}; + +typedef keen::ecs::PathNodeTypeMask ecs.PathNodeTypeMask; + +struct ecs.PathGridMaterialSettings { + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 0 +}; + +typedef keen::ecs::PathGridMaterialSettingsArray ecs.PathGridMaterialSettingsArray; + +struct ecs.PathNodeRequirements { + keen::ds::ecs::PathNodeTypeMask requiredTypes; // Offset: 0 + keen::ds::ecs::PathNodeTypeMask forbiddenTypes; // Offset: 2 +}; + +typedef keen::ecs::PathQueryTargetType ecs.PathQueryTargetType; + +typedef keen::ecs::PathMoveType ecs.PathMoveType; + +typedef keen::ecs::PathMoveTypeMask ecs.PathMoveTypeMask; + +typedef keen::ecs::PathQueryCheck ecs.PathQueryCheck; + +struct ecs.PathGridDistance { + keen::uint32 halfMeters; // Offset: 0 +}; + +typedef keen::ecs::PathGridInteractionType ecs.PathGridInteractionType; + +struct ecs.PathfindingHeightDifferenceSettings { + keen::float terrain; // Offset: 0 + keen::float building; // Offset: 4 + keen::float collider; // Offset: 8 +}; + +struct ecs.PathfindingSettings { + keen::ds::ecs::PathfindingHeightDifferenceSettings maxHeightDifferenceSettings; // Offset: 0 +}; + +typedef keen::ecs::LerpTransformTarget ecs.LerpTransformTarget; + +struct ecs.AlignedBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +typedef keen::enemy01::CombatState enemy01.CombatState; + +typedef keen::enemy01::CombatStateMask enemy01.CombatStateMask; + +typedef keen::enemy01::State enemy01.State; + +typedef keen::enemy01::EnemyClass enemy01.EnemyClass; + +typedef keen::enemy01::StateMask enemy01.StateMask; + +typedef keen::enemy01::StateUpdateType enemy01.StateUpdateType; + +typedef keen::enemy01::StateCondition enemy01.StateCondition; + +struct enemy01.EnemyVariable { +}; + +typedef keen::ObjectReference enemy01.EnemyVariableReference; + +struct enemy01.AbilityConstrain { + keen::bool negated; // Offset: 0 +}; + +struct enemy01.DistanceConstrain { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct enemy01.VerticalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.HorizontalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.ClearPathConstrain { + keen::bool checkSolidColliders; // Offset: 1 + keen::bool checkSteeringColliders; // Offset: 2 +}; + +struct enemy01.CooldownConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.StateConstrain { + keen::ds::enemy01::StateMask states; // Offset: 4 +}; + +struct enemy01.CombatStateConstrain { + keen::ds::enemy01::CombatStateMask combatStates; // Offset: 4 +}; + +struct enemy01.StateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.CurrentCombatStateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.IsRetaliateAllowedConstrain { + keen::bool isAllowed; // Offset: 1 +}; + +struct enemy01.IsTargetOfMyTargetConstrain { + keen::bool isTargetOfMyTarget; // Offset: 1 +}; + +struct enemy01.LastHitReceivedConstrain { + keen::Time minDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 +}; + +struct enemy01.ThreatConstrain { + keen::float32 minThreat; // Offset: 4 +}; + +struct enemy01.AngleToTargetConstrain { + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.AngleFromSlotToTargetConstraint { + keen::ds::AttachmentSlot slot; // Offset: 1 + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.IsInAttackRangeConstrain { +}; + +struct enemy01.IsInPhaseConstrain { + keen::ObjectReference phase; // Offset: 4 + keen::Time minDuration; // Offset: 24 +}; + +struct enemy01.IsLastPhaseConstraint { + keen::ObjectReference phase; // Offset: 4 +}; + +typedef keen::ecs::HitEventFlagMask ecs.HitEventFlagMask; + +struct enemy01.HasBeenHitInCurrentPhaseConstrain { + keen::ds::ecs::HitEventFlagMask requiredHitEventFlags; // Offset: 4 +}; + +typedef keen::actor::StateMask actor.StateMask; + +struct enemy01.CombatTargetStateFlagsConstrain { + keen::ds::actor::StateMask flags; // Offset: 8 +}; + +struct enemy01.IsAttackSelectedConstrain { + keen::ds::actor::ActorSequenceReference attackSequence; // Offset: 4 +}; + +struct enemy01.IsAnyAttackSelectedConstraint { +}; + +struct enemy01.EnemyHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.CurrentTargetHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.IsPlayerTargetConstrain { + keen::bool isPlayer; // Offset: 1 +}; + +struct enemy01.TargetActorStatesConstrain { + keen::ds::actor::StateMask requiredStates; // Offset: 8 + keen::ds::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.ActorStatesConstrain { + keen::ds::actor::StateMask requiredStates; // Offset: 8 + keen::ds::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.HasCombatTargetConstrain { +}; + +struct enemy01.NeedsToFlee { +}; + +struct enemy01.RandomChanceConstrain { + keen::float32 chance; // Offset: 4 +}; + +struct enemy01.IsGroupLeaderConstrain { +}; + +struct enemy01.IsGroupMemberConstrain { +}; + +struct enemy01.IsGuardingPlayerConstraint { +}; + +struct enemy01.IsTargetInHomeZoneConstraint { +}; + +struct enemy01.TargetDistanceToHomeZoneConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.IsTargetReachableConstraint { +}; + +struct enemy01.IsVariableSetConstraint { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 4 +}; + +struct enemy01.Ability { + keen::ds::actor::ActorSequenceReference actionSequence; // Offset: 0 +}; + +struct enemy01.AbilitySelectionContrains { +}; + +struct enemy01.AbilityExecutionContrains { +}; + +struct enemy01.AbilityAbortConstraints { +}; + +typedef keen::DsArray> enemy01.AbilityConstrains; + +typedef keen::enemy01::AttackStyle enemy01.AttackStyle; + +typedef keen::enemy01::AttackStyleMask enemy01.AttackStyleMask; + +typedef keen::enemy01::AttackFlag enemy01.AttackFlag; + +typedef keen::enemy01::AttackFlagMask enemy01.AttackFlagMask; + +typedef keen::enemy01::CombatTargetChangeMode enemy01.CombatTargetChangeMode; + +typedef keen::enemy01::BlockRotationDuration enemy01.BlockRotationDuration; + +struct enemy01.Action { +}; + +typedef keen::DsVariant enemy01.ActionVariant; + +typedef keen::DsArray enemy01.ActionVariants; + +struct enemy01.AttackActions { +}; + +struct enemy01.AttackConstraints { +}; + +typedef keen::enemy01::AttackCommandMode enemy01.AttackCommandMode; + +struct enemy01.AttackCommandData { + keen::ds::enemy01::AttackCommandMode mode; // Offset: 0 +}; + +struct enemy01.AttackCommandDescription { +}; + +struct enemy01.AttackCommand { + keen::ds::enemy01::AbilityConstrains constraints; // Offset: 8 + keen::ds::enemy01::ActionVariants actions; // Offset: 48 +}; + +typedef keen::DsArray enemy01.AttackCommandArray; + +struct enemy01.AttackCommandContainerDescription { +}; + +struct enemy01.AttackData { +}; + +struct enemy01.JumpAttackData { + keen::float32 distanceFactor; // Offset: 0 + keen::float32 minForce; // Offset: 4 + keen::float32 maxForce; // Offset: 8 + keen::float32 height; // Offset: 12 + keen::float32 forwardMomentum; // Offset: 16 +}; + +struct enemy01.DashAttackData { + keen::float32 overshootDistance; // Offset: 0 + keen::float32 lookAheadLength; // Offset: 4 + keen::float32 collisionAvoidanceLength; // Offset: 8 + keen::float32 collisionOffset; // Offset: 12 + keen::float32 decelerateDistance; // Offset: 16 + keen::float32 decelerateEnforceDistance; // Offset: 20 +}; + +struct enemy01.TeleportAttackData { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::uint32 verticalSearchDistance; // Offset: 8 + keen::bool checkLineOfSight; // Offset: 12 + keen::ds::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 14 + keen::float32 minHorizontalSpace; // Offset: 20 + keen::float32 minVerticalSpace; // Offset: 24 +}; + +typedef keen::DsVariant enemy01.AttackDataVariant; + +struct enemy01.AttackDataDescription { +}; + +struct enemy01.AttackDesscription { + keen::ds::enemy01::AttackStyleMask attackStyle; // Offset: 16 + keen::float32 selectionChance; // Offset: 20 + keen::ds::enemy01::AttackFlagMask flags; // Offset: 24 + keen::float32 threat; // Offset: 28 + keen::float32 minRange; // Offset: 32 + keen::float32 maxRange; // Offset: 36 + keen::float32 maxVerticalRange; // Offset: 40 + keen::ObjectReference cooldownGroupID; // Offset: 44 + keen::float32 speed; // Offset: 60 + keen::float32 acceleration; // Offset: 64 + keen::ds::actor::ActorSequenceReference executionAttackSequence; // Offset: 68 + keen::ds::enemy01::BlockRotationDuration blockRotationDuration; // Offset: 84 + keen::ds::enemy01::CombatTargetChangeMode combatTargetChangeMode; // Offset: 85 +}; + +struct enemy01.AttackDesscriptionResource { + keen::ds::enemy01::AttackDesscription description; // Offset: 0 + keen::ds::enemy01::AbilityConstrains selectionConstrain; // Offset: 88 + keen::ds::enemy01::AbilityConstrains executionConstrain; // Offset: 128 + keen::ds::enemy01::AbilityConstrains abortConstraints; // Offset: 168 + keen::ds::enemy01::AttackCommandArray commands; // Offset: 208 + keen::ds::enemy01::AttackDataVariant data; // Offset: 248 +}; + +typedef keen::enemy01::BehaviorMode enemy01.BehaviorMode; + +struct enemy01.BehaviorExecutionContrains { +}; + +struct enemy01.BehaviorAbortConstraints { +}; + +struct enemy01.BehaviorActions { +}; + +struct enemy01.BehaviorSettings { + keen::Time checkIntervalMin; // Offset: 0 + keen::Time checkIntervalMax; // Offset: 8 + keen::Time cooldownMin; // Offset: 16 + keen::Time cooldownMax; // Offset: 24 + keen::float32 chance; // Offset: 32 +}; + +struct enemy01.BehaviorDesscription { + keen::ds::enemy01::BehaviorMode mode; // Offset: 0 + keen::ds::enemy01::BehaviorSettings settings; // Offset: 8 +}; + +struct enemy01.BehaviorDesscriptionResource { + keen::ds::enemy01::AbilityConstrains executionConstrain; // Offset: 48 + keen::ds::enemy01::AbilityConstrains abortConstraints; // Offset: 88 + keen::ds::enemy01::ActionVariants actions; // Offset: 128 +}; + +typedef keen::ObjectReference enemy01.BehaviorDescriptionReference; + +struct enemy01.BehaviorReferenceDescription { + keen::ds::enemy01::BehaviorDescriptionReference behavior; // Offset: 0 +}; + +struct enemy01.AttackCooldownGroupId { +}; + +struct enemy01.AttackCooldownGroup { + keen::ObjectReference id; // Offset: 0 + keen::Time cooldown; // Offset: 16 +}; + +struct enemy01.BlockRotationSettings { + keen::Time shortBlockRotationDuration; // Offset: 0 + keen::Time mediumBlockRotationDuration; // Offset: 8 + keen::Time longBlockRotationDuration; // Offset: 16 +}; + +struct enemy01.CombatTurnConditions { + keen::float32 minSpeed; // Offset: 0 + keen::Time minWalkDuration; // Offset: 8 +}; + +struct enemy01.LeaningSettings { + keen::ds::enemy01::CombatStateMask combatStates; // Offset: 0 + keen::ds::AttachmentSlot slot; // Offset: 4 +}; + +struct enemy01.CombatJumpMoveSettings { + keen::bool useJumpMoveIfTargetIsNotReachable; // Offset: 0 + keen::Time minJumpMoveDuration; // Offset: 8 + keen::Time maxJumpMoveDuration; // Offset: 16 + keen::uint8 maxJumpUpHeight; // Offset: 24 + keen::uint8 maxJumpDownHeight; // Offset: 25 +}; + +struct enemy01.AttackMoveSettings { + keen::bool alwaysLookAtCombatTarget; // Offset: 0 +}; + +struct enemy01.SleepDaytimeSetting { + keen::float chance; // Offset: 0 + keen::Time minSleepDuration; // Offset: 8 + keen::Time maxSleepDuration; // Offset: 16 +}; + +struct enemy01.SleepSetup { + keen::ds::enemy01::SleepDaytimeSetting daySettings; // Offset: 0 + keen::ds::enemy01::SleepDaytimeSetting nightSettings; // Offset: 24 + keen::Time minInitialCheckDelay; // Offset: 48 + keen::Time maxInitialCheckDelay; // Offset: 56 + keen::Time minCheckInterval; // Offset: 64 + keen::Time maxCheckInterval; // Offset: 72 + keen::ds::animationgraph::StateIdReference sleepAnimation; // Offset: 80 +}; + +struct enemy01.CombatSetup { + keen::float32 preferedDistance; // Offset: 0 + keen::float32 preferedDistanceVariation; // Offset: 4 + keen::float32 preferedDistanceEngaged; // Offset: 8 + keen::float32 preferedDistanceEngagedVariation; // Offset: 12 + keen::float32 maxVerticalDistance; // Offset: 16 + keen::float32 maxPlayerTargetDistance; // Offset: 20 + keen::float32 maxNonPlayerTargetDistance; // Offset: 24 + keen::uint8 retaliateCount; // Offset: 28 + keen::DsArray cooldownGroups; // Offset: 32 + keen::float32 walkStartDistance; // Offset: 72 + keen::float32 runStartDistance; // Offset: 76 + keen::float32 runEndDistance; // Offset: 80 + keen::float32 combatRotationSpeedFactor; // Offset: 84 + keen::ds::animationgraph::StateIdReference combatIdleAnimation; // Offset: 88 + keen::ds::enemy01::BlockRotationSettings blockRotationSettings; // Offset: 104 + keen::Time minAttackDuration; // Offset: 128 + keen::Time maxAttackDuration; // Offset: 136 + keen::ds::enemy01::CombatTurnConditions turnConditions; // Offset: 144 + keen::ds::enemy01::LeaningSettings leaningSettings; // Offset: 160 + keen::ds::enemy01::CombatJumpMoveSettings jumpMoveSettings; // Offset: 168 + keen::ds::enemy01::AttackMoveSettings attackMoveSettings; // Offset: 200 +}; + +struct enemy01.BlockingSetup { + keen::ds::actor::ActorSequenceReference blockSequence; // Offset: 0 + keen::Time minBlockDuration; // Offset: 16 + keen::Time maxBlockDuration; // Offset: 24 + keen::Time maxTotalBlockDuration; // Offset: 32 + keen::Time minBlockHitExtendDuration; // Offset: 40 + keen::Time maxBlockHitExtendDuration; // Offset: 48 + keen::float32 blockAfterHitChance; // Offset: 56 + keen::bool activateBlockAtStart; // Offset: 60 + keen::bool autoToggleBlock; // Offset: 61 + keen::float32 autoToggleBlockMaxDistance; // Offset: 64 + keen::bool useBlockWalk; // Offset: 68 + keen::ds::animationgraph::StateIdReference blockWalkAnimation; // Offset: 72 + keen::float32 minBlockProjectileDistance; // Offset: 88 + keen::float32 maxBlockProjectileDistance; // Offset: 92 +}; + +struct enemy01.HomeZoneSetup { + keen::float32 radius; // Offset: 0 +}; + +struct enemy01.AggroPoolSetup { + keen::float32 maxValue; // Offset: 0 +}; + +struct enemy01.AggroPools { + keen::ds::enemy01::AggroPoolSetup senses; // Offset: 0 + keen::ds::enemy01::AggroPoolSetup friends; // Offset: 4 + keen::ds::enemy01::AggroPoolSetup enemies; // Offset: 8 +}; + +struct enemy01.AggroSetup { + keen::float32 viewRange; // Offset: 0 + keen::float32 nightViewRangeFactor; // Offset: 4 + keen::float32 viewConeHalfAngle; // Offset: 8 + keen::float32 aggroFromAttack; // Offset: 12 + keen::float32 aggroInRange; // Offset: 16 + keen::float32 aggroLossOutOfSight; // Offset: 20 + keen::float32 aggroLossUnreachable; // Offset: 24 + keen::float32 aggroDiminishSpeed; // Offset: 28 + keen::float32 noticedAggro; // Offset: 32 + keen::float32 initialAggro; // Offset: 36 + keen::float32 alarmedAggroThreshold; // Offset: 40 + keen::float32 aggroRange; // Offset: 44 + keen::float32 aggroRangeWhileMoving; // Offset: 48 + keen::bool checkPathToTarget; // Offset: 52 + keen::bool checkLineOfSight; // Offset: 53 + keen::ds::enemy01::AggroPools pools; // Offset: 56 + keen::bool preferCloserTargets; // Offset: 68 + keen::float32 preferCloserTargetsDistanceThreshold; // Offset: 72 + keen::bool preferShortestPath; // Offset: 76 + keen::float32 preferShortestPathDistanceThreshold; // Offset: 80 + keen::bool preferTargetsWithLessAttackers; // Offset: 84 +}; + +struct enemy01.CallForHelpSetup { + keen::float32 chance; // Offset: 0 + keen::float32 minRange; // Offset: 4 + keen::float32 radius; // Offset: 8 +}; + +struct enemy01.RoamingSetup { + keen::Time minInitialStartDuration; // Offset: 0 + keen::Time maxInitialStartDuration; // Offset: 8 + keen::Time minStartDuration; // Offset: 16 + keen::Time maxStartDuration; // Offset: 24 + keen::float32 minRadius; // Offset: 32 + keen::float32 maxRadius; // Offset: 36 + keen::float32 maxAngle; // Offset: 40 + keen::float32 maxHomeZoneDistance; // Offset: 44 + keen::bool loop; // Offset: 48 + keen::float32 minLoopUpdateDistance; // Offset: 52 + keen::ds::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 56 +}; + +struct enemy01.FleeSetup { + keen::float32 minFleeRadius; // Offset: 0 + keen::float32 maxFleeRadius; // Offset: 4 + keen::ds::animationgraph::StateIdReference fleeAnimation; // Offset: 8 + keen::Time maxFleeDuration; // Offset: 24 +}; + +struct enemy01.NoiseListenerSetup { + keen::ds::actor::ActorSequenceReference reactToNoiseSequence; // Offset: 0 + keen::float32 listenRangeFactor; // Offset: 16 + keen::float32 listenRangeFactorWhileSleeping; // Offset: 20 +}; + +struct enemy01.SteeringSetup { + keen::float32 defaultSteeringWeight; // Offset: 0 + keen::float32 roamingSteeringWeight; // Offset: 4 + keen::float32 closeCombatSteeringWeight; // Offset: 8 + keen::float32 farCombatSteeringWeight; // Offset: 12 +}; + +struct enemy01.ProwlSetup { + keen::float32 minProwlDistance; // Offset: 0 + keen::float32 maxProwlDistance; // Offset: 4 + keen::float32 maxHeightDifference; // Offset: 8 + keen::Time minProwlDuration; // Offset: 16 + keen::Time maxProwlDuration; // Offset: 24 + keen::Time minProwlCooldown; // Offset: 32 + keen::Time maxProwlCooldown; // Offset: 40 + keen::bool checkClearPath; // Offset: 48 +}; + +struct enemy01.ParrySetup { + keen::ds::actor::ActorSequenceReference parriedSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference parriedStunSequence; // Offset: 16 + keen::ds::actor::ActorSequenceReference parriedStunLongDurationSequence; // Offset: 32 + keen::float32 addedThreatAfterParry; // Offset: 48 +}; + +typedef keen::ecs::LocomotionSpeedSelector ecs.LocomotionSpeedSelector; + +struct enemy01.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleProwl; // Offset: 4 + keen::float32 maxMovementAngleCombat; // Offset: 8 + keen::float32 maxMovementAngleCombatWithoutRoation; // Offset: 12 + keen::float32 maxMovementAngleRoaming; // Offset: 16 + keen::ds::ecs::LocomotionSpeedSelector returnHomeSpeed; // Offset: 20 +}; + +struct enemy01.GuardSetup { + keen::float32 startDistance; // Offset: 0 + keen::float32 targetDistance; // Offset: 4 + keen::bool guardParent; // Offset: 8 + keen::bool canGuardPlayer; // Offset: 9 +}; + +struct enemy01.PatrolSetup { + keen::Time initialStartTimeMin; // Offset: 0 + keen::Time initialStartTimeMax; // Offset: 8 + keen::Time patrolStartMin; // Offset: 16 + keen::Time patrolStartMax; // Offset: 24 + keen::Time patrolPauseMin; // Offset: 32 + keen::Time patrolPauseMax; // Offset: 40 + keen::float startTurnDistamce; // Offset: 48 + keen::ds::animationgraph::StateIdReference patrolAnimation; // Offset: 52 +}; + +struct enemy01.InteractionSetup { + keen::Time interactionPauseMin; // Offset: 0 + keen::Time interactionPauseMax; // Offset: 8 +}; + +struct enemy01.TauntSetup { + keen::ds::actor::ActorSequenceReference tauntSequence; // Offset: 0 + keen::float32 tauntChance; // Offset: 16 + keen::Time cooldown; // Offset: 24 +}; + +struct actor.TurnSetup { + keen::ds::actor::ActorSequenceReference turnLeftSmallSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference turnLeftBigSequence; // Offset: 16 + keen::ds::actor::ActorSequenceReference turnRightSmallSequence; // Offset: 32 + keen::ds::actor::ActorSequenceReference turnRightBigSequence; // Offset: 48 + keen::float32 minSmallTurnAngle; // Offset: 64 + keen::float32 minBigTurnAngle; // Offset: 68 +}; + +struct enemy01.TurnSetup { + keen::float32 minIdleTurnAngle; // Offset: 72 + keen::Time minIdleTurnCooldown; // Offset: 80 + keen::Time maxIdleTurnCooldown; // Offset: 88 + keen::float32 minDistance; // Offset: 96 + keen::ds::AttachmentSlot slot; // Offset: 100 +}; + +struct enemy01.SearchForCoverSetup { + keen::uint8 minCoverDistance; // Offset: 0 + keen::uint8 maxCoverDistance; // Offset: 1 + keen::Time minCoverDuration; // Offset: 8 + keen::Time maxCoverDuration; // Offset: 16 + keen::Time minCoverCooldown; // Offset: 24 + keen::Time maxCoverCooldown; // Offset: 32 +}; + +struct enemy01.RunAroundSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 +}; + +struct enemy01.PathNodeSetup { + keen::ds::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ds::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +typedef keen::enemy01::CirclingDirection enemy01.CirclingDirection; + +struct enemy01.CirclingSetup { + keen::float initialRadius; // Offset: 0 + keen::float initialHeightOffset; // Offset: 4 + keen::bool useOuterCircleAsCombatPosition; // Offset: 8 + keen::ds::enemy01::CirclingDirection initialDirection; // Offset: 9 + keen::bool changeDirection; // Offset: 10 + keen::Time minDirectionChangeDuration; // Offset: 16 + keen::Time maxDirectionChangeDuration; // Offset: 24 +}; + +typedef keen::ObjectReference enemy01.CombatSetupReference; + +typedef keen::enemy01::LookAtMovementTargetState enemy01.LookAtMovementTargetState; + +typedef keen::enemy01::UnreachableJumpMoveState enemy01.UnreachableJumpMoveState; + +struct enemy01.EnemyVariableStateEntry { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.EnemyVariableStates { + keen::StaticArray states; // Offset: 0 +}; + +typedef keen::impact::HitReactionType impact.HitReactionType; + +struct enemy01.CombatData { + keen::uint8 selectedAttackIndex; // Offset: 0 + keen::uint8 lastAttackIndex; // Offset: 1 + keen::float3 toTarget; // Offset: 4 + keen::float2 horizontalKeepDistanceDirection; // Offset: 16 + keen::HashKey32 threatPoolId; // Offset: 24 + keen::Time lastChangeEvaluation; // Offset: 32 + keen::Time stateChangeTime; // Offset: 40 + keen::Time stateMinTime; // Offset: 48 + keen::Time stateMaxTime; // Offset: 56 + keen::Time lastAttackTime; // Offset: 64 + keen::Time lastHitReceived; // Offset: 72 + keen::ds::impact::HitReactionType lastHitReactionType; // Offset: 80 + keen::ds::ecs::HitEventFlagMask lastHitEventFlags; // Offset: 84 + keen::Time targetEnteredPrivateSpace; // Offset: 88 + keen::Time prowlAngleChange; // Offset: 96 + keen::float32 selectedPreferedDistance; // Offset: 104 + keen::float32 preferedDistanceMin; // Offset: 108 + keen::float32 preferedDistanceMax; // Offset: 112 + keen::float32 prowlAngle; // Offset: 116 + keen::float32 distanceToTarget; // Offset: 120 + keen::ds::enemy01::CombatState state; // Offset: 124 + keen::bool targetOfMyTarget; // Offset: 125 + keen::uint8 hitsReceivedWhileBlocking; // Offset: 126 + keen::Time lastBlockChanceEvaluationTime; // Offset: 128 + keen::bool shouldBlockLastHit; // Offset: 136 + keen::StaticArray attackExecutionCount; // Offset: 137 + keen::StaticArray nextAllowedAttackGroupTime; // Offset: 160 + keen::float3 closestReachableTargetPosition; // Offset: 224 + keen::Time nextReachablePositionUpdateTime; // Offset: 240 + keen::bool isTargetReachable; // Offset: 248 + keen::bool isTargetInsideLeash; // Offset: 249 + keen::ds::ecs::EntityId lastTargetId; // Offset: 252 + keen::uint8 commandIndex; // Offset: 256 + keen::uint8 actionIndex; // Offset: 257 + keen::Time lastActionStartTime; // Offset: 264 + keen::Time lastAttackAbortCheckTime; // Offset: 272 + keen::Time nextAllowedProwlTime; // Offset: 280 + keen::Time nextAllowedSearchForCoverTime; // Offset: 288 + keen::Time nextSearchForCoverChangeDistanceTime; // Offset: 296 + keen::uint8 currentSearchForCoverDistance; // Offset: 304 + keen::ds::enemy01::LookAtMovementTargetState lookAtMovementTargetState; // Offset: 305 + keen::Time unreachableJumpMoveStartTime; // Offset: 312 + keen::Time unreachableJumpMoveEndTime; // Offset: 320 + keen::ds::enemy01::UnreachableJumpMoveState unreachableJumpMoveState; // Offset: 328 +}; + +typedef keen::enemy01::CirclingState enemy01.CirclingState; + +struct enemy01.CirclingData { + keen::ds::enemy01::CirclingState state; // Offset: 0 + keen::Angle targetAngle; // Offset: 4 + keen::WorldPosition centerPosition; // Offset: 8 + keen::float radius; // Offset: 32 + keen::ds::enemy01::CirclingDirection direction; // Offset: 36 + keen::Time nextDirectionChangeTime; // Offset: 40 + keen::float centerHeightOffset; // Offset: 48 +}; + +typedef keen::enemy01::EnemyMarkerType enemy01.EnemyMarkerType; + +typedef keen::enemy01::EnemyMarkerTypeMask enemy01.EnemyMarkerTypeMask; + +struct enemy01.SetCombatStateAction { + keen::ds::enemy01::CombatState state; // Offset: 0 + keen::Time minTime; // Offset: 8 + keen::Time maxTime; // Offset: 16 +}; + +struct enemy01.SetPhaseAction { + keen::ObjectReference newPhase; // Offset: 0 +}; + +struct enemy01.SwitchToLastPhaseAction { +}; + +struct enemy01.SelectAttackAction { + keen::ds::enemy01::AttackStyle attackStyle; // Offset: 0 +}; + +struct enemy01.GetStunnedAction { +}; + +struct enemy01.SetImmuneAction { + keen::bool immune; // Offset: 0 +}; + +typedef keen::ObjectReference SignalReference; + +struct enemy01.SendToggleEventAction { + keen::ds::SignalReference triggerId; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.TriggerStateConditionAction { + keen::ds::enemy01::StateCondition condition; // Offset: 0 +}; + +struct enemy01.RunAwayAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 +}; + +struct enemy01.MoveForwardAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::ds::ecs::LocomotionSpeedSelector speed; // Offset: 8 +}; + +struct enemy01.PauseAction { + keen::float32 minDuration; // Offset: 0 + keen::float32 maxDuration; // Offset: 4 + keen::bool lookAtCombatTarget; // Offset: 8 +}; + +struct enemy01.SetIdleAnimationAction { + keen::ds::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetWalkAnimationAction { + keen::ds::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetMovementSpeedAction { + keen::ds::ecs::LocomotionSpeedSelector movementType; // Offset: 0 + keen::float32 speed; // Offset: 4 +}; + +struct enemy01.PlayActionSequenceAction { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 0 + keen::bool waitUntilFinished; // Offset: 16 +}; + +struct enemy01.ChangeSlopeAlignmentAction { + keen::float32 longitudinalFactor; // Offset: 0 + keen::float32 lateralFactor; // Offset: 4 +}; + +struct enemy01.StartFlyingAction { +}; + +struct enemy01.EnterFlyingStateAction { +}; + +struct enemy01.StopFlyingAction { +}; + +struct enemy01.ToggleAllowFallDownAction { + keen::bool allowFallDown; // Offset: 0 +}; + +struct enemy01.GuardParentAction { +}; + +struct enemy01.GuardGroupLeaderAction { +}; + +struct enemy01.StopGuardAction { +}; + +struct enemy01.EnableFeatureAction { + keen::ds::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.DisableFeatureAction { + keen::ds::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.SetFleeRadiusAction { + keen::float32 fleeRadius; // Offset: 0 +}; + +struct enemy01.SelectFriendAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.SelectEnemyAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.MoveToTargetAction { + keen::float32 targetDistance; // Offset: 0 + keen::ds::ecs::TargetType targetType; // Offset: 4 + keen::ds::ecs::LocomotionSpeedSelector speed; // Offset: 5 +}; + +typedef keen::actor::StateFlag actor.StateFlag; + +struct enemy01.WaitUntilActorStateIsFinished { + keen::ds::actor::StateFlag state; // Offset: 0 +}; + +struct enemy01.WaitUntilSequenceIsFinished { +}; + +struct enemy01.SetWorldColliderYOffsetAction { + keen::float32 yOffset; // Offset: 0 +}; + +struct enemy01.ToggleBlockAction { + keen::bool shouldBlock; // Offset: 0 +}; + +struct enemy01.ToggleVerticalLeaningAction { + keen::bool shouldUseVerticalLeaning; // Offset: 0 +}; + +struct enemy01.SetVariableAction { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.ClearVariableAction { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 0 +}; + +struct enemy01.SetCirclingRadiusAction { + keen::float radius; // Offset: 0 +}; + +struct enemy01.SetCirclingHeightOffsetAction { + keen::float heightOffset; // Offset: 0 +}; + +struct enemy01.MoveToCirclingTargetAction { + keen::ds::ecs::LocomotionSpeedSelector speed; // Offset: 0 + keen::float32 maxArriveDistance; // Offset: 4 + keen::bool keepCurrentDirection; // Offset: 8 +}; + +struct enemy01.TurnToCirclingTargetAction { +}; + +struct enemy01.StoreCurrentCirclingTargetAngleAction { +}; + +struct enemy01.StoreCirclingPositionAsTargetAction { + keen::ds::ecs::TargetType target; // Offset: 0 + keen::float radius; // Offset: 4 + keen::Angle angleOffset; // Offset: 8 +}; + +typedef keen::ObjectReference ecs.AttackReference; + +typedef keen::ObjectReference ecs.AttackDescriptionReference; + +struct ecs.AttackReferenceDescription { + keen::ds::ecs::AttackDescriptionReference attack; // Offset: 0 +}; + +struct ecs.EnemyArsenal { +}; + +typedef keen::ecs::HitReactionTypeMask ecs.HitReactionTypeMask; + +struct ecs.Enemy01BehaviorState { + keen::ds::enemy01::CombatSetup combatSetup; // Offset: 0 + keen::ds::enemy01::HomeZoneSetup homeZoneSetup; // Offset: 208 + keen::ds::enemy01::AggroSetup aggroSetup; // Offset: 212 + keen::ds::enemy01::CallForHelpSetup callForHelpSetup; // Offset: 300 + keen::ds::enemy01::RoamingSetup roamingSetup; // Offset: 312 + keen::ds::enemy01::FleeSetup fleeSetup; // Offset: 376 + keen::ds::enemy01::BlockingSetup blockingSetup; // Offset: 408 + keen::ds::enemy01::NoiseListenerSetup noiseListenerSetup; // Offset: 504 + keen::ds::enemy01::SteeringSetup steeringSetup; // Offset: 528 + keen::ds::enemy01::ProwlSetup prowlSetup; // Offset: 544 + keen::ds::enemy01::ParrySetup parrySetup; // Offset: 600 + keen::ds::enemy01::MovementSetup movementSetup; // Offset: 652 + keen::ds::enemy01::GuardSetup guardSetup; // Offset: 676 + keen::ds::enemy01::InteractionSetup interactionSetup; // Offset: 688 + keen::ds::enemy01::PatrolSetup patrolSetup; // Offset: 704 + keen::ds::enemy01::TauntSetup tauntSetup; // Offset: 776 + keen::ds::enemy01::TurnSetup turnSetup; // Offset: 808 + keen::ds::enemy01::SearchForCoverSetup searchForCoverSetup; // Offset: 912 + keen::ds::enemy01::SleepSetup sleepSetup; // Offset: 952 + keen::ds::enemy01::RunAroundSetup runAroundSetup; // Offset: 1048 + keen::ds::enemy01::PathNodeSetup pathNodeSetup; // Offset: 1072 + keen::ds::enemy01::CirclingSetup circlingSetup; // Offset: 1176 + keen::ds::actor::ActorSequenceReference callForHelpSequence; // Offset: 1208 + keen::ds::actor::ActorSequenceReference spawnSequence; // Offset: 1224 + keen::ds::enemy01::EnemyClass enemyClass; // Offset: 1240 + keen::ds::ecs::EnemyFeatureMask enabledFeatures; // Offset: 1244 + keen::float32 threatFactor; // Offset: 1248 + keen::ds::SignalReference deathSignal; // Offset: 1252 + keen::float32 pushBackScale; // Offset: 1268 + keen::ds::ecs::HitReactionTypeMask disabledHitReactions; // Offset: 1272 + keen::float32 maxHeightDiff; // Offset: 1276 +}; + +struct ecs.FlyingEnemy { + keen::float32 minRoamingHeight; // Offset: 0 + keen::float32 maxRoamingHeight; // Offset: 4 + keen::float32 minFlyHeight; // Offset: 8 + keen::float32 maxFlyHeight; // Offset: 12 + keen::float32 landingHeight; // Offset: 16 + keen::float32 attackHeightOffset; // Offset: 20 + keen::float32 combatIdleHeightOffset; // Offset: 24 + keen::float32 defaultArriveDistance; // Offset: 28 + keen::float32 attackArriveDistance; // Offset: 32 + keen::bool attackWhileGrounded; // Offset: 36 + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 40 +}; + +struct ecs.DynamicEnemy01BehaviorState { + keen::ds::enemy01::State state; // Offset: 0 + keen::Time stateChangeTime; // Offset: 8 + keen::float3 homeZonePosition; // Offset: 16 + keen::bool movementTargetIsValid; // Offset: 28 + keen::float3 movementTarget; // Offset: 32 + keen::float3 movementStartPosition; // Offset: 44 + keen::Time movementStartTime; // Offset: 56 + keen::ds::enemy01::CombatData combatData; // Offset: 64 + keen::ds::enemy01::CirclingData circlingData; // Offset: 400 + keen::ds::enemy01::EnemyVariableStates variableStates; // Offset: 456 + keen::Time nextAllowedRoamingTime; // Offset: 536 + keen::uint16 targetCounter; // Offset: 544 + keen::Time lastBehaviorCheckTime; // Offset: 552 + keen::Time lastBehaviorExecutionTime; // Offset: 560 + keen::StaticArray nextBehaviorCheckTime; // Offset: 568 + keen::uint8 currentBehaviorIndex; // Offset: 824 + keen::uint8 currentBehaviorActionIndex; // Offset: 825 + keen::ds::ecs::QueryId callForHelpQueryId; // Offset: 828 + keen::ds::ecs::EntityId callForHelpTargetEntityId; // Offset: 832 + keen::Time lastHelpTime; // Offset: 840 + keen::Time returnHomeStartTime; // Offset: 848 + keen::ds::enemy01::StateMask executedStates; // Offset: 856 + keen::ds::ecs::QueryId dashQueryId; // Offset: 860 + keen::ds::ecs::EntityId noiseEntityId; // Offset: 864 + keen::ds::ecs::EntityId projectileEntityId; // Offset: 868 + keen::uint8 controlledByAttacks; // Offset: 872 + keen::Time nextAllowedCombatIdleRotationTime; // Offset: 880 + keen::bool teleportPositionFound; // Offset: 888 + keen::ds::animationgraph::StateIdHash currentIdleAnimation; // Offset: 892 + keen::ds::animationgraph::StateIdHash currentWalkAnimation; // Offset: 896 + keen::float32 currentLongitudinalSlopeAlignmentFactor; // Offset: 900 + keen::float32 currentLateralSlopeAlignmentFactor; // Offset: 904 + keen::ds::ecs::EntityId guardEntityId; // Offset: 908 + keen::float32 currentGuardTargetDistance; // Offset: 912 + keen::ds::ecs::EntityId currentMarkerId; // Offset: 916 + keen::Time nextAllowedInteractionTime; // Offset: 920 + keen::Time nextAllowedPatrolTime; // Offset: 928 + keen::Time nextCheckGuardTime; // Offset: 936 + keen::Time nextCheckTauntTime; // Offset: 944 + keen::Time nextAllowedCombatIdleTurnTime; // Offset: 952 + keen::bool enabled; // Offset: 960 + keen::float3 lastNoisePosition; // Offset: 964 + keen::bool shouldBlock; // Offset: 976 + keen::bool isWalkBlockActive; // Offset: 977 + keen::bool isAttackMove; // Offset: 978 + keen::bool isVerticalLeaningActive; // Offset: 979 + keen::ds::ecs::EnemyFeatureMask enabledFeatures; // Offset: 980 + keen::ds::ecs::EnemyFeatureMask disabledFeatures; // Offset: 984 + keen::Time nextSleepCheckTime; // Offset: 992 + keen::Time sleepEndTime; // Offset: 1000 + keen::ds::ecs::EntityId parriedByEntity; // Offset: 1008 +}; + +typedef keen::ecs::UnitMode ecs.UnitMode; + +struct ecs.UnitTransformer { + keen::ds::ecs::UnitMode mode; // Offset: 0 +}; + +struct ecs.PlayerCountScaling { + keen::bool scaleHealth; // Offset: 0 + keen::bool scaleDamage; // Offset: 1 + keen::bool scaleStamina; // Offset: 2 + keen::float32 healthScaling; // Offset: 4 + keen::float32 damageScaling; // Offset: 8 + keen::float32 staminaScaling; // Offset: 12 + keen::bool allowDownScaling; // Offset: 16 + keen::uint8 minPlayerCount; // Offset: 17 +}; + +struct ecs.EnemyLevelScaling { + keen::float32 healthScaleFactor; // Offset: 0 + keen::float32 staminaScaleFactor; // Offset: 4 +}; + +struct ecs.EnemyScaling { + keen::Time updateInterval; // Offset: 0 + keen::ds::ecs::PlayerCountScaling playerCountScaling; // Offset: 8 + keen::ds::ecs::EnemyLevelScaling enemyLevelScaling; // Offset: 28 +}; + +struct ecs.DynamicEnemyScaling { + keen::Time nextUpdateTime; // Offset: 0 + keen::uint32 lastTargets; // Offset: 8 + keen::uint32 lastLevel; // Offset: 12 + keen::float32 lastDamageMultiplier; // Offset: 16 + keen::sint32 initialBaseMaxHealth; // Offset: 20 + keen::sint32 initialBaseStrength; // Offset: 24 + keen::sint32 initialBaseDexterity; // Offset: 28 + keen::sint32 initialBaseIntelligence; // Offset: 32 +}; + +struct ecs.EnemyMarkerEntry { + keen::float3 position; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::enemy01::EnemyMarkerType markerType; // Offset: 16 +}; + +struct ecs.EnemyMarkerCheck { + keen::float32 checkDistance; // Offset: 0 + keen::ds::ecs::RangeQueryId queryId; // Offset: 4 + keen::Time nextCheckTime; // Offset: 8 + keen::StaticArray markers; // Offset: 16 +}; + +struct ecs.EnemyMarker { + keen::ds::enemy01::EnemyMarkerType markerType; // Offset: 0 + keen::ds::actor::ActorSequenceReference defaultInteractSequence; // Offset: 4 + keen::bool useTargetOffset; // Offset: 20 + keen::ds::ecs::Offset targetOffset; // Offset: 24 + keen::float32 arriveDistance; // Offset: 64 + keen::float32 alarmRange; // Offset: 68 + keen::bool usePatrolPointDirection; // Offset: 72 + keen::bool attackTargets; // Offset: 73 + keen::uint8 maxUsers; // Offset: 74 + keen::uint8 minHorizontalSpace; // Offset: 75 + keen::uint8 minTargetHorizontalSpace; // Offset: 76 +}; + +struct ecs.LastEnemyValue { + keen::float32 lastEnemyValue; // Offset: 0 +}; + +struct ecs.DynamicEnemyMarker { + keen::uint8 users; // Offset: 0 +}; + +struct ecs.EnemyArsenalReference { + keen::ObjectReference arsenal; // Offset: 0 +}; + +struct ecs.EnemyAttackAttachment { + keen::ds::actor::ActorSequenceReference initialSequence; // Offset: 0 +}; + +typedef keen::ecs::EnemyAttackAttachmentState ecs.EnemyAttackAttachmentState; + +struct ecs.DynamicEnemyAttackAttachment { + keen::ds::ecs::EnemyAttackAttachmentState state; // Offset: 0 +}; + +struct enemy.EnemyArsenal { + keen::DsArray attacks; // Offset: 0 + keen::DsArray behaviors; // Offset: 40 +}; + +struct enemy.EnemyArsenalResource { + keen::Guid guid; // Offset: 0 + keen::DsArray attacks; // Offset: 16 + keen::DsArray behaviors; // Offset: 56 +}; + +struct enemy.EnemyArsenalSubDirectory { +}; + +struct enemy.EnemyArsenalDirectory { +}; + +struct enemy.EnemyArsenalRegistryResource { + keen::DsArray arsenals; // Offset: 0 +}; + +struct enemy01_debug.KillEnemyMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.EnforceEnemyAttackMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 +}; + +struct enemy01_debug.ToggleDisableEnemyAttackMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 + keen::bool disabled; // Offset: 5 +}; + +struct enemy01_debug.SetTameStateMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::bool tamed; // Offset: 4 +}; + +struct enemy01_debug.SetFrozenStateMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::bool frozen; // Offset: 4 +}; + +struct enemy01_debug.DebugAnimationGraphMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.SetStateMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::ds::enemy01::State state; // Offset: 4 +}; + +struct enemy01_debug.EnforcePhaseMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::Guid phaseId; // Offset: 4 +}; + +struct enemy01.DebugAttackState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 +}; + +struct enemy01.DebugBehaviorState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 + keen::uint32 executionCount; // Offset: 12 +}; + +struct enemy01.StateEntry { + keen::ds::enemy01::State state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct enemy01.CombatStateEntry { + keen::ds::enemy01::CombatState state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct ecs.EnemyDebug { + keen::uint8 enforcedAttackIndex; // Offset: 0 + keen::StaticArray disabledAttacks; // Offset: 8 + keen::bool tamed; // Offset: 16 + keen::bool frozen; // Offset: 17 + keen::StaticArray attackStates; // Offset: 18 + keen::StaticArray behaviorStates; // Offset: 164 + keen::StaticArray stateHistory; // Offset: 680 + keen::StaticArray combatStateHistory; // Offset: 808 + keen::ds::enemy01::State nextState; // Offset: 936 + keen::Guid enforcedPhase; // Offset: 940 +}; + +typedef keen::ecs::EnemyTest ecs.EnemyTest; + +typedef keen::ecs::EnemyTestFlags ecs.EnemyTestFlags; + +struct ecs.EnemyPatrolTest { + keen::bool hasReachedPatrolPoint0; // Offset: 0 + keen::bool hasReachedPatrolPoint1; // Offset: 1 +}; + +struct ecs.EnemyTestToggle { + keen::ds::ecs::EnemyTestFlags tests; // Offset: 0 +}; + +struct ecs.UnitGroup { + keen::StaticArray members; // Offset: 0 + keen::Time nextUpdateTime; // Offset: 96 +}; + +struct ecs.UnitGroupMember { + keen::ds::ecs::EntityId groupId; // Offset: 0 + keen::ds::ecs::EntityId groupLeaderId; // Offset: 4 + keen::uint8 memberIndex; // Offset: 8 +}; + +typedef keen::wildlife::State wildlife.State; + +typedef keen::wildlife::StateCondition wildlife.StateCondition; + +typedef keen::wildlife::Feature wildlife.Feature; + +typedef keen::wildlife::FeatureMask wildlife.FeatureMask; + +struct wildlife.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleFlee; // Offset: 4 + keen::float32 maxMovementAngleRoaming; // Offset: 8 + keen::float32 maxMovementAngleLanding; // Offset: 12 +}; + +struct wildlife.GlidingSetup { + keen::float32 minGlidingDistance; // Offset: 0 + keen::float32 maxGlidingDistance; // Offset: 4 +}; + +struct wildlife.PathNodeSetup { + keen::ds::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ds::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct wildlife.TamingSetup { + keen::ds::ecs::TemplateReference favoriteFood; // Offset: 0 + keen::uint8 necessaryTamingSteps; // Offset: 16 + keen::float32 foodBaitSensorRange; // Offset: 20 + keen::float32 foodBaitAngleCheckMinDistance; // Offset: 24 + keen::Time foodBaitEatMaxDuration; // Offset: 32 + keen::Time alertDurationHigh; // Offset: 40 + keen::Time alertDurationMediumFoodEat; // Offset: 48 + keen::float32 foodBaitEatAdaptFleeRadiusDistance; // Offset: 56 + keen::float32 tamingApproachFinishedFleeRadius; // Offset: 60 + keen::float32 foodBaitEatSnoutPivotDistance; // Offset: 64 +}; + +struct ecs.WildlifeTurnSetup { + keen::bool useTurnSequences; // Offset: 72 +}; + +struct ecs.Wildlife { + keen::ds::actor::ActorSequenceReference spawnSequence; // Offset: 0 + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 16 + keen::Time minIdleDuration; // Offset: 32 + keen::Time maxIdleDuration; // Offset: 40 + keen::float32 minRoamingRadius; // Offset: 48 + keen::float32 maxRoamingRadius; // Offset: 52 + keen::float32 minFleeRadius; // Offset: 56 + keen::float32 maxFleeRadius; // Offset: 60 + keen::float32 fallbackFleeRadius; // Offset: 64 + keen::float32 maxMovementRadius; // Offset: 68 + keen::ds::animationgraph::StateIdReference secureIdleAnimation; // Offset: 72 + keen::Time minFeelSecureDuration; // Offset: 88 + keen::Time maxFeelSecureDuration; // Offset: 96 + keen::float32 callForHelpChance; // Offset: 104 + keen::ds::actor::ActorSequenceReference callForHelpSequence; // Offset: 108 + keen::float32 listenRangeFactor; // Offset: 124 + keen::ds::wildlife::FeatureMask enabledFeatures; // Offset: 128 + keen::ds::wildlife::MovementSetup movementSetup; // Offset: 132 + keen::ds::wildlife::GlidingSetup glidingSetup; // Offset: 148 + keen::ds::ecs::WildlifeTurnSetup turnSetup; // Offset: 156 + keen::ds::wildlife::PathNodeSetup pathNodeSetup; // Offset: 232 + keen::ds::wildlife::TamingSetup tamingSetup; // Offset: 336 + keen::ds::actor::ActorSequenceReference tamingPetInteractionSequence; // Offset: 408 + keen::ds::LocaTagReference tamingPetInteractionVerbLoca; // Offset: 424 +}; + +typedef keen::ecs::AlertState ecs.AlertState; + +struct ecs.DynamicWildlife { + keen::ds::wildlife::State state; // Offset: 0 + keen::ds::wildlife::State lastState; // Offset: 1 + keen::Time feelSecureDuration; // Offset: 8 + keen::Time lastFleeTime; // Offset: 16 + keen::float3 spawnPosition; // Offset: 24 + keen::Time idleEndTime; // Offset: 40 + keen::Time lastStateChangeTime; // Offset: 48 + keen::float3 dangerOrigin; // Offset: 56 + keen::float32 runAwayDistance; // Offset: 68 + keen::float3 currentTargetPosition; // Offset: 72 + keen::Time keepRoamingTargetUntilTime; // Offset: 88 + keen::Time foodBaitEatTimer; // Offset: 96 + keen::ds::ecs::AlertState previousAlertState; // Offset: 104 + keen::Time alertTimeStamp; // Offset: 112 + keen::Time foodBaitNeedinessTimeStamp; // Offset: 120 + keen::Time foodBaitReactionTimeStamp; // Offset: 128 + keen::Time tamingShrinkRadiusTimerStart; // Offset: 136 + keen::ds::ecs::EntityId foodBaitEntityId; // Offset: 144 + keen::uint8 tamingProgress; // Offset: 148 +}; + +struct ecs.NetworkWildlife { + keen::ds::ecs::AlertState alertState; // Offset: 0 + keen::Time alertTimeStamp; // Offset: 8 + keen::uint8 tamingProgress; // Offset: 16 + keen::bool isEatingFoodBait; // Offset: 17 +}; + +struct ecs.WildlifeTransformer { + keen::Time timeWithoutHit; // Offset: 0 + keen::Time minDurationWithoutHit; // Offset: 8 +}; + +typedef keen::AmbientEffectPlaybackType AmbientEffectPlaybackType; + +struct AmbientEffectEntry { + keen::ds::SoundContainerReference soundContainer; // Offset: 0 + keen::ObjectReference ingameTimeSpan; // Offset: 16 + keen::bool mute; // Offset: 32 + keen::ds::AmbientEffectPlaybackType playbackType; // Offset: 33 + keen::float32 volume; // Offset: 36 +}; + +typedef keen::Biome Biome; + +struct AmbientEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::ds::Biome biome; // Offset: 1 + keen::bool mute; // Offset: 2 + keen::bool whenInFog; // Offset: 3 +}; + +struct AmbientSoundEffectEntryResource { + keen::ds::SoundContainerReference soundContainer; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::float32 volume; // Offset: 32 + keen::Guid id; // Offset: 36 + keen::Time startTime; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::ds::string description; // Offset: 72 + keen::ds::string soundContainerDescription; // Offset: 112 + keen::ds::string ingameTimeSpanDescription; // Offset: 152 + keen::ds::AmbientEffectPlaybackType playbackType; // Offset: 192 +}; + +struct AmbientSoundEffectResource { + keen::bool inAllBiomes; // Offset: 0 + keen::bool whenInFog; // Offset: 1 + keen::ds::Biome biome; // Offset: 2 + keen::DsArray effectEntries; // Offset: 8 + keen::Guid id; // Offset: 48 + keen::ds::string description; // Offset: 64 +}; + +struct AmbientVfxEffectEntry { + keen::ds::VfxReference vfx; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 +}; + +struct AmbientVfxEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::ds::Biome biome; // Offset: 1 + keen::bool whenInFog; // Offset: 2 +}; + +struct AmbientVfxEffectEntryResource { + keen::ds::VfxReference vfx; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Time startTime; // Offset: 32 + keen::Time endTime; // Offset: 40 + keen::Guid id; // Offset: 48 + keen::ds::string description; // Offset: 64 + keen::ds::string vfxDescription; // Offset: 104 + keen::ds::string ingameTimeSpanDescription; // Offset: 144 +}; + +struct AmbientVfxEffectResource { + keen::DsArray effectEntries; // Offset: 0 + keen::ds::Biome biome; // Offset: 40 + keen::Guid id; // Offset: 44 + keen::ds::string description; // Offset: 64 + keen::bool whenInFog; // Offset: 104 + keen::bool inAllBiomes; // Offset: 105 +}; + +struct CollisionFeedbackEffect2 { + keen::bool enabled; // Offset: 0 + keen::ds::SoundContainerReference sfx; // Offset: 4 + keen::ds::VfxReference vfx; // Offset: 20 + keen::ds::ecs::Offset ecsOffset; // Offset: 36 + keen::bool orientToNormal; // Offset: 76 + keen::bool overrideSlot; // Offset: 77 + keen::ds::AttachmentSlot slot; // Offset: 78 + keen::bool attach; // Offset: 79 + keen::bool playOnlyLocalSFX; // Offset: 80 + keen::bool useRootPosition; // Offset: 81 +}; + +struct CollisionFeedbackEffectCollection2 { + keen::ds::CollisionFeedbackEffect2 onHit; // Offset: 0 + keen::ds::CollisionFeedbackEffect2 onCriticalHit; // Offset: 84 + keen::ds::CollisionFeedbackEffect2 onBlock; // Offset: 168 + keen::ds::CollisionFeedbackEffect2 onBrokenBlock; // Offset: 252 + keen::ds::CollisionFeedbackEffect2 onIneffective; // Offset: 336 + keen::ds::CollisionFeedbackEffect2 onImmune; // Offset: 420 + keen::ds::CollisionFeedbackEffect2 onFlattening; // Offset: 504 + keen::ds::CollisionFeedbackEffect2 onPileUp; // Offset: 588 +}; + +typedef keen::ObjectReference CollisionFeedbackEffectCollectionReference; + +typedef keen::MaterialFeedbackEventType MaterialFeedbackEventType; + +typedef keen::MaterialFeedbackEventMask MaterialFeedbackEventMask; + +typedef keen::MaterialFeedbackEffectSize MaterialFeedbackEffectSize; + +struct FoleyEffectCollection { + keen::ds::ecs::Offset offset; // Offset: 0 + keen::ds::SoundContainerReference evade; // Offset: 40 + keen::ds::SoundContainerReference jump; // Offset: 56 + keen::ds::SoundContainerReference run; // Offset: 72 + keen::ds::SoundContainerReference sprint; // Offset: 88 + keen::ds::SoundContainerReference walk; // Offset: 104 +}; + +struct EnvironmentEffectBase { + keen::ds::SoundContainerReference sfx; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 16 + keen::bool orientToNormal; // Offset: 56 + keen::ds::VfxReference vfx; // Offset: 60 +}; + +typedef keen::EnvironmentEffectType EnvironmentEffectType; + +struct EnvironmentEffectPlayerDodgerollStart { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerDodgerollEnd { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerFallDamage { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJump { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLand { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLandSmall { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerRun { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSprint { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerWalk { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSlide { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureCrashDown { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyLiftOff { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyTouchDown { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureHoverFlap { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectNPCWalk { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct MaterialFeedbackEventBase { + keen::ds::SoundContainerReference sfxTiny; // Offset: 0 + keen::ds::SoundContainerReference sfxSmall; // Offset: 16 + keen::ds::SoundContainerReference sfxMedium; // Offset: 32 + keen::ds::SoundContainerReference sfxLarge; // Offset: 48 + keen::ds::ecs::Offset ecsOffset; // Offset: 64 + keen::bool orientToNormal; // Offset: 104 + keen::bool useRootPosition; // Offset: 105 + keen::ds::VfxReference vfx; // Offset: 108 +}; + +struct MaterialFeedbackEventOnPlace { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPickup { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnTearDown { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnDestruction { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnFlatten { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPileUp { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct CollisionFeedbackMaterial { + keen::ds::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::ds::ItemReference materialItem; // Offset: 16 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 32 + keen::bool hasFoleyEffects; // Offset: 33 + keen::uint32 foleyEffectImportance; // Offset: 36 + keen::ds::FoleyEffectCollection foleyEffects; // Offset: 40 +}; + +typedef keen::WeatherState WeatherState; + +struct WeatherLayerMaterial { + keen::ds::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::ds::WeatherState weather; // Offset: 16 +}; + +struct CollisionFeedbackRule { + keen::ds::CollisionFeedbackMaterialReference materialA; // Offset: 0 + keen::ds::CollisionFeedbackMaterialReference materialB; // Offset: 16 + keen::ds::CollisionFeedbackEffectCollectionReference effectCollection; // Offset: 32 +}; + +struct CollisionFeedback { +}; + +typedef keen::ColliderFeedbackEffectFlag ColliderFeedbackEffectFlag; + +typedef keen::ColliderFeedbackEffectFlags ColliderFeedbackEffectFlags; + +struct MaterialFeedbackEffect { + keen::ds::string description; // Offset: 0 + keen::ds::ecs::Offset ecsOffset; // Offset: 40 + keen::ds::SoundContainerReference sfx; // Offset: 80 + keen::ds::VfxReference vfx; // Offset: 96 + keen::DsOptional vfxParameters; // Offset: 112 + keen::ds::AttachmentSlot slot; // Offset: 128 + keen::ds::ColliderFeedbackEffectFlags flags; // Offset: 129 +}; + +typedef keen::MaterialFeedbackId MaterialFeedbackId; + +struct MaterialFeedback { + keen::ds::MaterialFeedbackId id; // Offset: 0 + keen::ds::MaterialFeedbackEventMask eventTypeMask; // Offset: 4 + keen::StaticArray eventEffectsTiny; // Offset: 8 + keen::StaticArray eventEffectsSmall; // Offset: 824 + keen::StaticArray eventEffectsMedium; // Offset: 1640 + keen::StaticArray eventEffectsLarge; // Offset: 2456 + keen::bool hasFoleyEffects; // Offset: 3272 + keen::uint32 foleyEffectImportance; // Offset: 3276 + keen::StaticArray foleyMaterialFeedbackEffects; // Offset: 3280 + keen::bool hasEnvironmentEffects; // Offset: 3960 + keen::StaticArray environmentMaterialFeedbackEffects; // Offset: 3968 + keen::Bitmask16 collisionTypeMask; // Offset: 6008 + keen::StaticArray collisionTypeEffects; // Offset: 6016 +}; + +typedef keen::ObjectReference MaterialFeedbackReference; + +struct CollisionFeedbackMatrixEntry { + keen::uint64 materialPairId; // Offset: 0 + keen::StaticArray effects; // Offset: 8 + keen::Bitmask16 effectMask; // Offset: 1096 +}; + +struct MaterialFeedbackSubDirectory { +}; + +struct MaterialFeedbackDirectory { +}; + +struct MaterialFeedbackCollectionResource { + keen::Guid id; // Offset: 0 + keen::ds::string description; // Offset: 16 + keen::DsArray collisionEffectMatrixEntry; // Offset: 56 + keen::DsArray materials; // Offset: 96 + keen::ds::MaterialFeedbackReference rainMaterialLayeredEffects; // Offset: 136 + keen::ds::MaterialFeedbackReference snowMaterialLayeredEffects; // Offset: 152 + keen::ds::MaterialFeedbackReference blizzardMaterialLayeredEffects; // Offset: 168 +}; + +typedef keen::DebugEnvironmentEffectType DebugEnvironmentEffectType; + +typedef keen::FoleyType FoleyType; + +struct DebugEnvironmentEffect { + keen::ds::DebugEnvironmentEffectType type; // Offset: 0 + keen::ds::FoleyType foleyType; // Offset: 1 + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 2 + keen::ds::ecs::CollisionType collisionType; // Offset: 3 + keen::ds::MaterialFeedbackEventType eventType; // Offset: 4 + keen::ds::MaterialFeedbackEffectSize effectSize; // Offset: 5 + keen::ds::WeatherState weatherState; // Offset: 6 + keen::bool collisionRuleFound; // Offset: 7 + keen::ds::MaterialFeedbackId materialA; // Offset: 8 + keen::ds::MaterialFeedbackId materialB; // Offset: 12 + keen::Guid eventGuid; // Offset: 16 + keen::Guid sfx; // Offset: 32 + keen::Guid vfx; // Offset: 48 + keen::float eventSendTime; // Offset: 64 + keen::float eventReceiveTime; // Offset: 68 + keen::float entityFootWorldHeight; // Offset: 72 + keen::float effectWorldHeight; // Offset: 76 +}; + +typedef keen::impact::MajorDirection impact.MajorDirection; + +struct actor.ActorSequence { + keen::ds::impact::MajorDirection majorDirection; // Offset: 16 +}; + +typedef keen::DsArray> SequenceEvents; + +struct SequenceResource { + keen::ds::SequenceEvents events; // Offset: 0 + keen::Time length; // Offset: 40 + keen::bool loop; // Offset: 48 + keen::DsString name; // Offset: 56 +}; + +struct actor.ActorSequenceResource { + keen::Guid resourceId; // Offset: 96 + keen::ds::impact::MajorDirection majorDirection; // Offset: 112 +}; + +typedef keen::ObjectReference ecs.EntityTagReference; + +struct ecs.EntityTagReferenceEntry { + keen::ds::ecs::EntityTagReference tag; // Offset: 0 +}; + +struct SequenceEvent { + keen::Time time; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::ds::ecs::EntityTagReference requiredEntityTag; // Offset: 16 + keen::StaticArray forbiddenTags; // Offset: 32 +}; + +struct actor.SetAnimationEvent { + keen::ds::animationgraph::StateIdReference animationName; // Offset: 96 + keen::bool usePureLveLocomotion; // Offset: 112 + keen::bool alignLveLocomotionToFloor; // Offset: 113 + keen::bool scaleLveWithMovementInput; // Offset: 114 + keen::bool retriggerAnimation; // Offset: 115 +}; + +struct actor.RootMotionWarpEvent { + keen::float32 minDistanceToTarget; // Offset: 96 + keen::float32 maxScale; // Offset: 100 + keen::bool abortWarpAboveMaxScale; // Offset: 104 +}; + +struct actor.PreserveVelocity { +}; + +struct actor.ImpulseEvent { + keen::float3 worldDistance; // Offset: 96 + keen::float3 localDistance; // Offset: 108 + keen::ds::ecs::ImpulseType impulseType; // Offset: 120 + keen::bool applyOnlyHorizontally; // Offset: 121 +}; + +struct actor.ApplyImpulseEvent { + keen::float3 worldImpulse; // Offset: 96 + keen::float3 localImpulse; // Offset: 108 +}; + +struct actor.SetAnimationOverlayEvent { + keen::ds::animationgraph::OverlayIdReference overlayName; // Offset: 96 + keen::DsString jointMaskStart; // Offset: 112 +}; + +struct actor.KeepAliveEvent { + keen::ds::actor::StateMask keepAliveMask; // Offset: 96 + keen::ds::actor::StateMask abortMask; // Offset: 104 +}; + +struct actor.LoopEvent { + keen::ds::actor::StateMask keepAliveMask; // Offset: 96 + keen::ds::actor::StateMask abortMask; // Offset: 104 + keen::bool jumpToLoopEndOnAbort; // Offset: 112 +}; + +typedef keen::actor::ScopeEndBehavior actor.ScopeEndBehavior; + +struct actor.ScopeEvent { + keen::ds::actor::ScopeEndBehavior scopeEndBehavior; // Offset: 120 +}; + +struct actor.ChangeColliderSetup { + keen::ds::ecs::ColliderMode mode; // Offset: 96 +}; + +struct actor.ToggleInteractionActionEvent { +}; + +struct actor.LootInteractionActionEvent { + keen::bool lootAll; // Offset: 96 + keen::bool forAllPlayers; // Offset: 97 +}; + +struct actor.ResetFallAltitudeOnApexEvent { +}; + +typedef keen::actor::SnapType actor.SnapType; + +typedef keen::actor::InterpolationMode actor.InterpolationMode; + +struct actor.SnapEvent { + keen::ds::actor::SnapType type; // Offset: 96 + keen::ds::ecs::TargetType targetType; // Offset: 97 + keen::ds::actor::InterpolationMode rotationInterpolationMode; // Offset: 98 +}; + +struct actor.SetAbortByMovement { + keen::bool value; // Offset: 96 +}; + +struct actor.PushEvent { + keen::float32 force; // Offset: 96 +}; + +typedef keen::actor::JumpType actor.JumpType; + +struct actor.JumpEvent { +}; + +struct actor.HookEvent { +}; + +struct actor.SelfDestructEvent { +}; + +typedef keen::CameraId CameraId; + +struct actor.LockCameraIdEvent { + keen::ds::CameraId cameraId; // Offset: 96 +}; + +struct actor.UnlockCameraIdEvent { +}; + +typedef keen::CameraOverride CameraOverride; + +struct actor.SetCameraOverrideEvent { + keen::ds::CameraOverride cameraOverride; // Offset: 96 +}; + +struct actor.CameraShakeEvent { + keen::float32 trauma; // Offset: 96 +}; + +struct actor.CameraShakeImpulseEvent { + keen::float3 impulse; // Offset: 96 + keen::float32 additionalTrauma; // Offset: 108 +}; + +typedef keen::HudScreenType HudScreenType; + +struct actor.OpenUi { + keen::ds::HudScreenType hudScreen; // Offset: 96 +}; + +struct actor.NegativeFeedbackEvent { + keen::ds::LocaTagReference messageLocaTag; // Offset: 96 +}; + +typedef keen::ecs::EnemyEventType ecs.EnemyEventType; + +struct actor.EnemyCommandEvent { + keen::ds::ecs::EnemyEventType eventType; // Offset: 96 +}; + +struct actor.TriggerNoiseEvent { + keen::float32 range; // Offset: 96 +}; + +typedef keen::ecs::SyncedAttackType ecs.SyncedAttackType; + +struct actor.SyncAttackEvent { + keen::ds::ecs::SyncedAttackType type; // Offset: 96 +}; + +struct actor.SyncedSequenceEvent { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 96 +}; + +struct actor.TriggerKnowledge { + keen::bool unlockForGroup; // Offset: 96 +}; + +typedef keen::actor::AbilityFlag actor.AbilityFlag; + +typedef keen::actor::AbilityMask actor.AbilityMask; + +struct actor.MovementFactors { + keen::float32 forward; // Offset: 0 + keen::float32 backward; // Offset: 4 + keen::float32 lateral; // Offset: 8 +}; + +typedef keen::ObjectReference skilltree_nodes.NodeReference; + +struct actor.DisableAbilityEvent { + keen::ds::actor::AbilityMask mask; // Offset: 96 + keen::ds::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.EnableAbilityEvent { + keen::ds::actor::AbilityMask mask; // Offset: 96 + keen::ds::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.SetStateEvent { + keen::ds::actor::StateMask mask; // Offset: 96 +}; + +struct actor.ClearStateEvent { + keen::ds::actor::StateMask mask; // Offset: 96 +}; + +struct actor.RequestUiCover { +}; + +struct actor.SetGravityEvent { + keen::float32 gravityModifier; // Offset: 96 +}; + +struct actor.ResetGravityEvent { +}; + +struct actor.LerpMovementFactorEvent { + keen::ds::actor::MovementFactors desiredMovementFactors; // Offset: 96 + keen::Time lerpDuration; // Offset: 112 +}; + +struct actor.LerpRotationFactorEvent { + keen::float32 desiredRotationSpeedFactor; // Offset: 96 +}; + +struct actor.LerpTransformEvent { + keen::ds::ecs::LerpTransformTarget lerpTarget; // Offset: 96 + keen::bool lerpPosition; // Offset: 97 + keen::bool lerpOrientation; // Offset: 98 +}; + +struct actor.LerpSubmergeDepthEvent { + keen::float submergeDelta; // Offset: 96 +}; + +struct actor.StartClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.StopClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.PlayInstrumentEvent { +}; + +struct actor.TeleportToTargetEvent { + keen::ds::ecs::TargetType targetType; // Offset: 96 +}; + +struct actor.PetAnimalEvent { +}; + +struct actor.UpgradeAnimalEvent { +}; + +typedef keen::actor::ActionSequenceTrigger actor.ActionSequenceTrigger; + +struct actor.SetOpportunity { + keen::ds::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 + keen::ds::skilltree_nodes::NodeReference requiredSkill; // Offset: 100 + keen::Time followUpTime; // Offset: 120 + keen::Guid eventGuid; // Offset: 128 + keen::bool override; // Offset: 144 +}; + +typedef keen::ObjectReference ImpactProgramReference; + +typedef keen::DsArray> impact.Configurations; + +struct actor.SetActionOportunity { + keen::ds::actor::ActorSequenceReference followUp; // Offset: 152 + keen::ds::ImpactProgramReference costImpact; // Offset: 168 + keen::ds::impact::Configurations impactValues; // Offset: 184 +}; + +struct actor.ClearActionOportunity { + keen::ds::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 +}; + +typedef keen::actor::SpawnEntityTransform actor.SpawnEntityTransform; + +struct actor.RadiusRange { + keen::float32 minRadius; // Offset: 0 + keen::float32 maxRadius; // Offset: 4 +}; + +struct actor.RandomOrientationOffset { + keen::Angle minX; // Offset: 0 + keen::Angle maxX; // Offset: 4 + keen::Angle minY; // Offset: 8 + keen::Angle maxY; // Offset: 12 + keen::Angle minZ; // Offset: 16 + keen::Angle maxZ; // Offset: 20 +}; + +struct actor.SpawnEntityBaseEvent { + keen::ds::skilltree_nodes::NodeReference requiredSkill; // Offset: 96 + keen::ds::ecs::TemplateReference templateReference; // Offset: 112 + keen::ds::actor::SpawnEntityTransform spawnTransform; // Offset: 128 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 129 + keen::ds::AttachmentSlot spawnSlot; // Offset: 130 + keen::ds::ecs::Offset spawnOffset; // Offset: 132 + keen::ds::impact::MajorDirection vfxDirection; // Offset: 172 + keen::ds::ecs::TargetType providedTarget; // Offset: 173 + keen::bool consume; // Offset: 174 + keen::ds::ItemReference onConsumeExchange; // Offset: 176 + keen::bool addWeaponReference; // Offset: 192 + keen::bool despawnAfterSequence; // Offset: 193 + keen::bool endSequenceOnDespawn; // Offset: 194 + keen::bool transferUsedItem; // Offset: 195 + keen::bool copyCustomString; // Offset: 196 + keen::ds::actor::RadiusRange randomSpawnRadius; // Offset: 200 + keen::ds::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 208 + keen::float32 minSpawnRatio; // Offset: 232 + keen::float32 maxSpawnRatio; // Offset: 236 + keen::uint8 minSpawnCount; // Offset: 240 + keen::uint8 maxSpawnCount; // Offset: 241 + keen::bool breakImpactHierarchy; // Offset: 242 + keen::bool ignoreSpawnVelocity; // Offset: 243 + keen::float3 spawnVelocity; // Offset: 244 + keen::bool applyRandomLoot; // Offset: 256 + keen::bool copyCombatAttributes; // Offset: 257 + keen::float32 chance; // Offset: 260 +}; + +struct actor.RefillBurner { +}; + +struct actor.SpawnEntityEvent { + keen::bool isProjectile; // Offset: 264 + keen::bool clearProjectiles; // Offset: 265 +}; + +struct actor.TriggerMartyrSkills { +}; + +struct actor.SpawnEntityPerAggroTargetEvent { + keen::ds::actor::StateMask excludedTargetStates; // Offset: 264 + keen::bool isProjectile; // Offset: 272 + keen::bool clearProjectiles; // Offset: 273 + keen::bool onlyPlayerTargets; // Offset: 274 + keen::ds::actor::RadiusRange randomPerTargetSpawnRadius; // Offset: 276 + keen::uint8 maxTargets; // Offset: 284 +}; + +struct impact.DamageDistribution { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::uint32 woodDamage; // Offset: 36 + keen::uint32 stoneDamage; // Offset: 40 + keen::uint32 metalDamage; // Offset: 44 + keen::uint32 explosionDamage; // Offset: 48 +}; + +struct actor.SpawnImpact { + keen::ds::ImpactProgramReference impact; // Offset: 264 + keen::Guid eventGuid; // Offset: 280 + keen::ds::impact::DamageDistribution damageDistribution; // Offset: 296 + keen::ds::ecs::ColliderResourceData colliderData; // Offset: 352 + keen::ds::impact::Configurations impactValues; // Offset: 408 + keen::bool damageDistributionIsSet; // Offset: 448 +}; + +typedef keen::ObjectReference BuffTypeReference; + +struct actor.ApplyBuffEvent { + keen::ds::BuffTypeReference buffTypeOverride; // Offset: 96 + keen::bool consume; // Offset: 112 + keen::ds::impact::Configurations impactValues; // Offset: 120 + keen::ds::impact::DamageDistribution damageDistribution; // Offset: 160 + keen::bool damageDistributionIsSet; // Offset: 212 +}; + +struct actor.PlaceVoxelObjectEvent { + keen::bool subtract; // Offset: 96 + keen::bool consume; // Offset: 97 +}; + +struct actor.DetachEntityEvent { + keen::Vector3 force; // Offset: 96 + keen::Vector3 randomAngleByAxis; // Offset: 112 + keen::Matrix43 launchTransform; // Offset: 128 + keen::bool addGravity; // Offset: 192 +}; + +struct actor.DetachProjectileEntityEvent { +}; + +struct actor.SetTriggerStateEvent { + keen::ds::SignalReference trigger; // Offset: 96 + keen::bool state; // Offset: 112 +}; + +struct actor.ShowAmmunition { +}; + +struct actor.SetVisualAmmunition { +}; + +struct actor.ResetVisualAmmunition { +}; + +struct actor.StartCookEvent { +}; + +struct actor.SpawnCookEntitesEvent { +}; + +struct actor.ActivateCombatStanceEvent { +}; + +typedef keen::ObjectReference ecs.DefaultInventoryReference; + +struct actor.TransformToLootEvent { + keen::ds::ecs::DefaultInventoryReference defaultInventory; // Offset: 96 + keen::bool keepDefaultInventory; // Offset: 112 + keen::uint8 genericSlotCount; // Offset: 113 + keen::uint8 availableSlotCount; // Offset: 114 + keen::ds::actor::ActorSequenceReference defaultAction; // Offset: 116 + keen::ds::LocaTagReference verbLoca; // Offset: 132 + keen::ds::ecs::Offset vfxOnSpawnOffset; // Offset: 148 + keen::ds::VfxReference vfxOnSpawn; // Offset: 188 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 204 + keen::uint32 lootHealth; // Offset: 268 +}; + +struct actor.AcceptInteractionEvent { +}; + +typedef keen::actor::VoxelChangeType actor.VoxelChangeType; + +struct actor.ChangeVoxel { + keen::ds::actor::VoxelChangeType changeType; // Offset: 96 +}; + +struct actor.Dismantle { +}; + +typedef keen::NpcId NpcId; + +struct actor.AssignNpc { + keen::ds::NpcId npcId; // Offset: 96 +}; + +struct actor.TameWildlifeEvent { +}; + +struct actor.RotationInterpolation { + keen::Quaternion startOrientation; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 16 + keen::float3 linearRotationAxis; // Offset: 32 + keen::float32 speed; // Offset: 44 + keen::ds::actor::InterpolationMode interpolationMode; // Offset: 48 +}; + +struct actor.RotationData { + keen::Time startTime; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 8 + keen::Time snapDuration; // Offset: 24 +}; + +typedef keen::actor::SequenceResourceId actor.SequenceResourceId; + +struct actor.SequenceRuntimeId { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::ds::ecs::EntityId actorEntityId; // Offset: 16 + keen::uint8 callIndex; // Offset: 20 +}; + +typedef keen::InventorySlotIndex InventorySlotIndex; + +struct InventorySlotId { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::ds::InventorySlotIndex slotIndex; // Offset: 4 +}; + +typedef keen::ItemStateMask ItemStateMask; + +struct ItemInstanceInfo { + keen::ds::InventorySlotId slotId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::ecs::EntityId pide; // Offset: 12 + keen::ds::ItemStateMask stateMask; // Offset: 16 +}; + +typedef keen::SongId SongId; + +typedef keen::KnowledgeId KnowledgeId; + +struct actor.ActionSequenceTriggerContext { + keen::ds::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::ds::actor::ActionSequenceTrigger triggerType; // Offset: 24 + keen::ds::ItemInstanceInfo costItem; // Offset: 28 + keen::ds::ItemInstanceInfo usedItem; // Offset: 48 + keen::ds::ItemInstanceInfo usedAmmunition; // Offset: 68 + keen::ds::actor::JumpType jumpType; // Offset: 88 + keen::float3 directionOverride; // Offset: 92 + keen::ds::SongId songId; // Offset: 104 + keen::Time startTime; // Offset: 112 + keen::ds::ecs::EntityId interactionHostId; // Offset: 120 + keen::uint32 interactionOfferId; // Offset: 124 + keen::StaticArray unlockKnowledgeIds; // Offset: 128 + keen::StaticArray entityTags; // Offset: 160 +}; + +typedef keen::SkillNodeId SkillNodeId; + +struct actor.FollowUp { + keen::ds::actor::ActionSequenceTriggerContext context; // Offset: 0 + keen::ds::actor::SequenceResourceId originalEventSequence; // Offset: 224 + keen::Guid eventGuid; // Offset: 228 + keen::Time localExecutionTime; // Offset: 248 + keen::ds::SkillNodeId requiredSkill; // Offset: 256 + keen::ds::ImpactProgramReference costImpact; // Offset: 260 + keen::bool wasTriggered; // Offset: 276 +}; + +typedef keen::actor::ActionSequenceFlags actor.ActionSequenceFlags; + +typedef keen::actor::ActionSequenceState actor.ActionSequenceState; + +struct actor.ActionSequenceSpan { + keen::Time startTime; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ColliderModeData { + keen::ds::ecs::ColliderMode mode; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ActionSequencePlaybackContext { + keen::Time playedTime; // Offset: 0 + keen::Time currentTime; // Offset: 8 + keen::Time sequenceLength; // Offset: 16 + keen::Time scopeStartTime; // Offset: 24 + keen::Time scopeEndTime; // Offset: 32 + keen::ds::actor::StateMask scopeAbortMask; // Offset: 40 + keen::ds::actor::StateMask scopeKeepAliveMask; // Offset: 48 + keen::bool scopeJumpToScopeEndOnAbort; // Offset: 56 + keen::ds::actor::ActionSequenceState state; // Offset: 57 + keen::StaticArray playbackSpan; // Offset: 64 + keen::StaticArray followUps; // Offset: 96 + keen::ds::actor::AbilityMask abilityMask; // Offset: 1776 + keen::ds::actor::StateMask setStateMask; // Offset: 1784 + keen::ds::actor::StateMask unsetStateMask; // Offset: 1792 + keen::ds::actor::StateMask sequenceAbortMask; // Offset: 1800 + keen::ds::actor::StateMask sequenceKeepAliveMask; // Offset: 1808 + keen::bool wrapedAround; // Offset: 1816 +}; + +struct actor.SignalStates { + keen::StaticArray activeSignals; // Offset: 0 +}; + +struct actor.ActionSequence { + keen::ds::actor::ActionSequenceTriggerContext triggerContext; // Offset: 0 + keen::ds::actor::ActionSequencePlaybackContext playbackContext; // Offset: 224 +}; + +struct actor.PlaceItemEvent { +}; + +struct actor.SetAttackChainVariationEvent { + keen::ds::ecs::EntityTagReference followUpSequenceTag; // Offset: 96 +}; + +struct PreviewAnimGraph2 { + keen::ObjectReference animGraphId; // Offset: 0 + keen::bool useFemaleAnimation; // Offset: 16 +}; + +struct ActorActionContainer { + keen::ObjectReference previewAnimationGraph; // Offset: 0 + keen::ds::PreviewAnimGraph2 previewAnimationGraph2Info; // Offset: 16 +}; + +struct ActorActionContainerRoot { +}; + +typedef keen::ObjectReference ActorSequenceResourceReference; + +struct ActorSequenceCollectionResource { + keen::DsArray sequences; // Offset: 0 +}; + +typedef keen::AmmunitionType AmmunitionType; + +typedef keen::animal::Needs animal.Needs; + +typedef keen::animal::NeedsMask animal.NeedsMask; + +typedef keen::animal::InteractionState animal.InteractionState; + +typedef keen::animal::InteractionStates animal.InteractionStates; + +typedef keen::animal::TargetSearchState animal.TargetSearchState; + +typedef keen::animal::TargetSearchStates animal.TargetSearchStates; + +typedef keen::animal::State animal.State; + +typedef keen::animal::StateCondition animal.StateCondition; + +typedef keen::animal::Type animal.Type; + +typedef keen::animal::TypeMask animal.TypeMask; + +struct animal.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +struct animal.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float greetWeight; // Offset: 12 + keen::float roamWeight; // Offset: 16 +}; + +struct animal.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 sequenceChance; // Offset: 16 +}; + +struct animal.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct animal.TargetSetup { + keen::bool isBed; // Offset: 0 + keen::bool isFood; // Offset: 1 + keen::bool isInteresting; // Offset: 2 +}; + +struct animal.HungerSetup { + keen::Time timeUntilHungerMinDuration; // Offset: 0 + keen::Time timeUntilHungerMaxDuration; // Offset: 8 + keen::Time foodConsumptionRate; // Offset: 16 +}; + +struct animal.ReproductionSetup { + keen::float32 maxReproductionDistance; // Offset: 0 + keen::float32 baseReproductionChance; // Offset: 4 + keen::Time reproductionRate; // Offset: 8 +}; + +typedef keen::animal::AnimalQueryStatus animal.AnimalQueryStatus; + +struct animal.RangeQueryInfo { + keen::ds::animal::AnimalQueryStatus status; // Offset: 0 + keen::ds::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct animal.PathQueryInfo { + keen::ds::animal::AnimalQueryStatus status; // Offset: 0 + keen::ds::ecs::PathQueryId queryId; // Offset: 4 +}; + +typedef keen::animal::ReproductionQueryState animal.ReproductionQueryState; + +struct animal.ReproductionState { + keen::bool requirementsFulfilled; // Offset: 0 + keen::ds::animal::ReproductionQueryState queryState; // Offset: 1 + keen::ds::ecs::EntityId closestFreeBedId; // Offset: 4 + keen::ds::ecs::EntityId closestOtherAnimalId; // Offset: 8 + keen::ds::animal::RangeQueryInfo animalQuery; // Offset: 12 + keen::ds::animal::RangeQueryInfo bedQuery; // Offset: 20 + keen::ds::animal::PathQueryInfo animalPathQuery; // Offset: 28 + keen::ds::animal::PathQueryInfo bedPathQuery; // Offset: 36 +}; + +struct animal.HungerState { + keen::StaticArray foodTargets; // Offset: 0 + keen::ds::animal::RangeQueryInfo foodSourceQueryInfo; // Offset: 32 + keen::ds::animal::PathQueryInfo pathfindingQuery; // Offset: 40 + keen::uint8 currentPathfindingIndex; // Offset: 48 +}; + +struct active_npc.RoamingSetup { + keen::float32 minDistanceToCurrentPosition; // Offset: 0 + keen::float32 maxRadiusFromSpawn; // Offset: 4 + keen::ds::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 8 +}; + +struct active_npc.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleRoaming; // Offset: 4 +}; + +struct active_npc.SleepSetup { + keen::FloatRange sleepTime; // Offset: 0 + keen::FloatRange wakeUpTime; // Offset: 8 +}; + +struct active_npc.PathNodeSetup { + keen::ds::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ds::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct ecs.Animal { + keen::ds::actor::TurnSetup turnSetup; // Offset: 0 + keen::ds::actor::ActorSequenceReference sitSequence; // Offset: 72 + keen::ds::actor::ActorSequenceReference sleepSequence; // Offset: 88 + keen::ds::actor::ActorSequenceReference inspectSequence; // Offset: 104 + keen::ds::actor::ActorSequenceReference beingPetSequence; // Offset: 120 + keen::ds::actor::ActorSequenceReference eatingSequence; // Offset: 136 + keen::ds::actor::ActorSequenceReference sadIdleSequence; // Offset: 152 + keen::ds::actor::ActorSequenceReference greetSequence; // Offset: 168 + keen::float32 minDistanceToPlayer; // Offset: 184 + keen::ds::animal::Type type; // Offset: 188 + keen::ds::animal::DecisionSetup decisionSetup; // Offset: 192 + keen::ds::animal::IdleSetup idleSetup; // Offset: 216 + keen::ds::active_npc::RoamingSetup roamingSetup; // Offset: 240 + keen::ds::active_npc::MovementSetup movementSetup; // Offset: 252 + keen::ds::active_npc::SleepSetup sleepSetup; // Offset: 260 + keen::ds::animal::SearchTargetSetup searchTargetSetup; // Offset: 276 + keen::ds::active_npc::PathNodeSetup pathNodeSetup; // Offset: 284 + keen::ds::animal::HungerSetup hungerSetup; // Offset: 392 + keen::ds::animal::ReproductionSetup reproductionSetup; // Offset: 416 + keen::ds::ecs::TemplateReference babyAnimalVersion; // Offset: 432 + keen::ds::actor::ActorSequenceReference defaultInteractionSequence; // Offset: 448 + keen::ds::LocaTagReference defaultInteractionVerbLoca; // Offset: 464 +}; + +struct ecs.DynamicAnimal { + keen::ds::animal::State state; // Offset: 0 + keen::ds::animal::State previousState; // Offset: 1 + keen::Time standingNextToPlayerTimer; // Offset: 8 + keen::ds::animal::TargetSearchStates targetSearchStates; // Offset: 16 + keen::ds::ecs::EntityId beingPetByPlayerId; // Offset: 20 + keen::ds::ecs::RangeQueryId queryId; // Offset: 24 + keen::ds::animal::ReproductionState reproductionState; // Offset: 28 + keen::Time timeUntilHungry; // Offset: 72 + keen::Time eatingCooldown; // Offset: 80 + keen::ds::animal::HungerState hungerState; // Offset: 88 + keen::bool bedSearched; // Offset: 140 +}; + +struct ecs.NetworkAnimal { + keen::ds::animal::NeedsMask needs; // Offset: 0 +}; + +struct ecs.AnimalSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::Time lastFoodConsumptionTime; // Offset: 16 + keen::Time lastValidReproduction; // Offset: 24 + keen::bool willConsumeFood; // Offset: 32 + keen::Time nextReproductionCheck; // Offset: 40 + keen::ds::animal::NeedsMask needs; // Offset: 48 +}; + +struct ecs.AnimalTarget { + keen::ds::animal::TargetSetup setup; // Offset: 0 + keen::ds::animal::TypeMask types; // Offset: 4 + keen::ds::ecs::Offset targetOffset; // Offset: 8 +}; + +struct ecs.DynamicAnimalTarget { + keen::ds::ecs::EntityId associatedAnimal; // Offset: 0 +}; + +struct ecs.BabyAnimal { + keen::Time growTime; // Offset: 0 + keen::ds::ecs::TemplateReference grownUpEntity; // Offset: 8 + keen::Time growUpTimer; // Offset: 24 + keen::bool canGrowUp; // Offset: 32 +}; + +typedef keen::ecs::AttributeFlags ecs.AttributeFlags; + +struct ecs.AttributeComponent { + keen::HashKey32 rootId; // Offset: 0 + keen::HashKey32 signature; // Offset: 4 + keen::uint32 storageOffset; // Offset: 8 + keen::uint32 storageSize; // Offset: 12 + keen::Bitmask16 flags; // Offset: 16 +}; + +struct ecs.FloatAttribute { +}; + +struct ecs.UInt32Attribute { +}; + +struct ecs.SInt32Attribute { +}; + +struct ecs.BoolAttribute { +}; + +struct ecs.DurabilityLoad { + keen::float32 percentage; // Offset: 0 +}; + +struct ecs.DurabilityBurndown { + keen::Time lastUpdate; // Offset: 0 +}; + +typedef keen::impact::AttributeType impact.AttributeType; + +struct impact.AttributeDeclerationBase { + keen::DsString formula; // Offset: 0 +}; + +struct impact.AttributeDecleration { + keen::ds::impact::AttributeType type; // Offset: 40 +}; + +typedef keen::impact::AttributeIndex impact.AttributeIndex; + +struct AttributeContainer { +}; + +typedef keen::AttributeCommand AttributeCommand; + +typedef keen::AttributeOps AttributeOps; + +struct AttributeStructure { + keen::ds::impact::AttributeIndex parentIndex; // Offset: 0 + keen::ds::impact::AttributeIndex childIndex; // Offset: 2 + keen::ds::impact::AttributeIndex siblingIndex; // Offset: 4 + keen::DsArray calculation; // Offset: 8 +}; + +struct BaseAttributeResource { + keen::HashKey32 type; // Offset: 0 + keen::DsArray ids; // Offset: 8 + keen::DsArray structure; // Offset: 48 + keen::DsArray debugNames; // Offset: 88 +}; + +struct AttributeContainerResource { + keen::DsArray attributes; // Offset: 0 +}; + +typedef keen::ObjectReference AttributeRootReference; + +typedef keen::ObjectReference AttributeReference; + +struct AttributeValueBase { + keen::ds::AttributeReference id; // Offset: 0 +}; + +struct FloatAttributeValue { + keen::float32 value; // Offset: 16 +}; + +struct SInt32AttributeValue { + keen::sint32 value; // Offset: 16 +}; + +struct UInt32AttributeValue { + keen::uint32 value; // Offset: 16 +}; + +struct BoolAttributeValue { + keen::bool value; // Offset: 16 +}; + +struct BalancingAltarCount { + keen::uint8 flameLevel; // Offset: 0 + keen::uint8 altarCount; // Offset: 1 +}; + +struct BalancingBuildzoneSize { + keen::uint8 altarLevel; // Offset: 0 + keen::float3 buildzoneSize; // Offset: 4 +}; + +typedef keen::ExperienceSourceType ExperienceSourceType; + +struct ExperienceBalancing { + keen::ds::ExperienceSourceType source; // Offset: 0 +}; + +struct ExperienceBalanceValue { + keen::ds::ExperienceSourceType source; // Offset: 0 + keen::HashKey32 experienceValueId; // Offset: 4 + keen::uint32 experienceGain; // Offset: 8 +}; + +struct RandomSpawnerBalancing { + keen::float32 fewAmountFactor; // Offset: 0 + keen::float32 manyAmountFactor; // Offset: 4 + keen::float32 extremeAmountFactor; // Offset: 8 +}; + +struct AggroPoolThresholdBalancing { + keen::uint32 twoPoolsThreshold; // Offset: 0 + keen::uint32 threePoolsThreshold; // Offset: 4 + keen::uint32 maxPoolsThreshold; // Offset: 8 +}; + +struct AggroPoolBalancing { + keen::ds::AggroPoolThresholdBalancing fewThresholds; // Offset: 0 + keen::ds::AggroPoolThresholdBalancing normalThresholds; // Offset: 12 + keen::ds::AggroPoolThresholdBalancing manyThresholds; // Offset: 24 + keen::ds::AggroPoolThresholdBalancing extremeThresholds; // Offset: 36 +}; + +struct BalancingTable { + keen::uint32 genericWeaponSeed; // Offset: 0 + keen::uint32 flameLevelMax; // Offset: 4 + keen::uint32 altarLevelMax; // Offset: 8 + keen::uint32 playerLevelMax; // Offset: 12 + keen::uint32 playerLevelCap; // Offset: 16 + keen::uint32 itemLevelCap; // Offset: 20 + keen::float32 damageBoostFlame; // Offset: 24 + keen::uint32 apPerFlameLevel; // Offset: 28 + keen::float32 critBonus; // Offset: 32 + keen::float32 baseCritChance; // Offset: 36 + keen::float32 powerCreepWeapon; // Offset: 40 + keen::uint32 htkStartPve; // Offset: 44 + keen::uint32 htkEndPve; // Offset: 48 + keen::float32 damageMod2Handed; // Offset: 52 + keen::uint32 playerBaseHealth; // Offset: 56 + keen::uint32 playerHealthPerAP; // Offset: 60 + keen::uint32 playerBaseMana; // Offset: 64 + keen::uint32 playerManaPerAP; // Offset: 68 + keen::uint32 playerBaseStamina; // Offset: 72 + keen::uint32 playerStaminaPerAP; // Offset: 76 + keen::uint32 playerBaseBodyHeat; // Offset: 80 + keen::float32 freezeDurationFactor; // Offset: 84 + keen::float32 freezeDurationOffset; // Offset: 88 + keen::uint32 disableFreezingBaseLevel; // Offset: 92 + keen::uint32 playerBaseFogResistance; // Offset: 96 + keen::uint32 playerFogResistancePerFlameLevel; // Offset: 100 + keen::uint32 htkStartEvp; // Offset: 104 + keen::uint32 htkEndEvp; // Offset: 108 + keen::uint32 killToLevelUPStart; // Offset: 112 + keen::uint32 killToLevelUPEnd; // Offset: 116 + keen::float32 epicWeaponBonus; // Offset: 120 + keen::uint32 xpNeededFromKnowledge; // Offset: 124 + keen::float32 parryToDepletion; // Offset: 128 + keen::uint32 shotsToDepletion; // Offset: 132 + keen::uint32 avarageCharacterMod; // Offset: 136 + keen::ObjectReference knowledgeDirectory; // Offset: 140 + keen::float32 levelDifferenceXpDamper; // Offset: 156 + keen::float32 levelDifferenceXpModMin; // Offset: 160 + keen::float32 levelDifferenceXpModMax; // Offset: 164 + keen::float32 groupSizeXpDamper; // Offset: 168 + keen::float32 groupSizeXpDamperModMin; // Offset: 172 + keen::uint32 skillPointsPerLevel; // Offset: 176 + keen::uint32 maximumTotalMusicComfortBuff; // Offset: 180 + keen::uint32 maximumInstrumentsCountedForComfort; // Offset: 184 + keen::Time timePerInstrumentUntilMaxBuff; // Offset: 192 + keen::float32 defaultArmorBlowthrough; // Offset: 200 + keen::float32 damageScalePerAttributePoint; // Offset: 204 + keen::uint32 xpSeedEnemy; // Offset: 208 + keen::float32 xpSharedOther; // Offset: 212 + keen::float32 perkPower; // Offset: 216 + keen::uint32 perkUpgradeCostSeed; // Offset: 220 + keen::float32 perkCostCreep; // Offset: 224 + keen::uint32 trashStart; // Offset: 228 + keen::uint32 trashEnd; // Offset: 232 + keen::float noiseRainFactor; // Offset: 236 + keen::float buffReapplyPercentage; // Offset: 240 + keen::ds::RandomSpawnerBalancing randomSpawnerBalancing; // Offset: 244 + keen::ds::AggroPoolBalancing aggroPoolBalancing; // Offset: 256 + keen::uint32 maximumAnimalsInWorld; // Offset: 304 + keen::float hookShotCostLevelFactor; // Offset: 308 + keen::uint32 hookShotCostBase; // Offset: 312 + keen::DsArray altarsPerFlameLevel; // Offset: 320 + keen::DsArray buildzoneSizesPerAltarLevel; // Offset: 360 + keen::DsArray experienceValues; // Offset: 400 +}; + +typedef keen::BalancingLocaIds BalancingLocaIds; + +typedef keen::BuffSlotType BuffSlotType; + +typedef keen::BuffApplyType BuffApplyType; + +struct OnCreateHelper { + keen::ds::AttachmentSlot slot; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 + keen::bool attach; // Offset: 44 + keen::ds::SoundContainerReference sfx; // Offset: 48 + keen::ds::VfxReference vfx; // Offset: 64 + keen::bool onlyPlayer; // Offset: 80 + keen::ds::NotifierReference notifier; // Offset: 84 +}; + +struct WhileAppliedHelper { + keen::ds::AttachmentSlot slot; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 + keen::ds::SoundContainerReference sfx; // Offset: 44 + keen::ds::VfxReference vfx; // Offset: 60 + keen::ds::VfxUserEffectParameterDataBlock parameters; // Offset: 76 +}; + +typedef keen::BuffTypeId BuffTypeId; + +struct UiTextureResource { + keen::PixelFormat format; // Offset: 0 + keen::uint2 size; // Offset: 4 + keen::uint8 levelCount; // Offset: 12 + keen::ContentHash data; // Offset: 16 +}; + +typedef keen::ObjectReference ImageReference; + +struct UiTexture { + keen::ds::UiTextureResource texture; // Offset: 0 + keen::ds::ImageReference image; // Offset: 32 +}; + +typedef keen::FactionMask FactionMask; + +struct BuffType { + keen::ds::BuffTypeId buffTypeId; // Offset: 0 + keen::ds::BuffSlotType slot; // Offset: 4 + keen::ds::BuffApplyType applyType; // Offset: 5 + keen::Time defaultLifeTime; // Offset: 8 + keen::ds::NameLocaTag name; // Offset: 16 + keen::ds::DescriptionLocaTag description; // Offset: 32 + keen::bool hideInUi; // Offset: 48 + keen::ds::UiTexture icon; // Offset: 52 + keen::bool hideDurationInUi; // Offset: 100 + keen::bool despawnOnDeath; // Offset: 101 + keen::ds::ImpactProgramReference impact; // Offset: 104 + keen::ds::FactionMask factionExcludeMask; // Offset: 120 + keen::ds::impact::Configurations impactValues; // Offset: 128 + keen::DsArray uiValues; // Offset: 168 + keen::ds::OnCreateHelper onCreate; // Offset: 208 + keen::ds::WhileAppliedHelper whileApplied; // Offset: 308 +}; + +struct BuffTypeSubDirectory { +}; + +struct BuffTypDirectory { +}; + +struct ecs.BuffInstance { + keen::ds::ecs::EntityId buffEntityId; // Offset: 0 + keen::ds::BuffTypeId typeId; // Offset: 4 + keen::bool cleansed; // Offset: 8 +}; + +struct ecs.BuffContainer { + keen::StaticArray foodBuffs; // Offset: 0 + keen::StaticArray genericBuffs; // Offset: 48 + keen::StaticArray genericDebuffs; // Offset: 240 + keen::StaticArray restedBuff; // Offset: 432 + keen::StaticArray terrainDebuff; // Offset: 444 + keen::Time hungerStartTime; // Offset: 456 + keen::bool extendedFoodBuffSlots; // Offset: 464 +}; + +struct impact.DamageSetup { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::sint32 woodDamage; // Offset: 36 + keen::sint32 stoneDamage; // Offset: 40 + keen::sint32 metalDamage; // Offset: 44 + keen::sint32 explosionDamage; // Offset: 48 +}; + +struct ecs.BuffComponent { + keen::ds::BuffTypeId buffTypeId; // Offset: 0 + keen::ds::impact::DamageSetup damageSetup; // Offset: 4 + keen::bool isDamageSetupSet; // Offset: 56 +}; + +struct ecs.BuffNetworkData { + keen::Time restDuration; // Offset: 0 + keen::ds::BuffTypeId buffTypeId; // Offset: 8 + keen::float32 durationPercentage; // Offset: 12 +}; + +struct UiTexturePreload { + keen::DsArray textures; // Offset: 0 +}; + +struct BuffTypeCollectionResource { + keen::DsArray buffs; // Offset: 0 + keen::ds::UiTexturePreload uiTextures; // Offset: 40 +}; + +typedef keen::InhibitBuildingCheck InhibitBuildingCheck; + +typedef keen::InhibitBuildType InhibitBuildType; + +typedef keen::InhibitBuildMask InhibitBuildMask; + +typedef keen::Gender Gender; + +typedef keen::ObjectReference VoicePackReference; + +typedef keen::ObjectReference ColorPresetReference; + +struct CharacterPreset { + keen::ds::Gender gender; // Offset: 0 + keen::ds::VoicePackReference voicePackId; // Offset: 4 + keen::ds::ColorPresetReference hairGradient; // Offset: 20 + keen::ds::ColorPresetReference beardGradient; // Offset: 36 + keen::ds::PaletteColorReference skinColor; // Offset: 52 + keen::ds::PaletteColorReference eyeBrowColor; // Offset: 68 + keen::ds::PaletteColorReference eyeColor; // Offset: 84 + keen::ds::ItemReference head; // Offset: 100 + keen::ds::ItemReference hair; // Offset: 116 + keen::ds::ItemReference beard; // Offset: 132 + keen::ds::ItemReference neck; // Offset: 148 + keen::ds::ItemReference collar; // Offset: 164 + keen::ds::ItemReference chest; // Offset: 180 + keen::ds::ItemReference waist; // Offset: 196 + keen::ds::ItemReference crotch; // Offset: 212 + keen::ds::ItemReference upperArms; // Offset: 228 + keen::ds::ItemReference lowerArms; // Offset: 244 + keen::ds::ItemReference hands; // Offset: 260 + keen::ds::ItemReference upperLegs; // Offset: 276 + keen::ds::ItemReference lowerLegs; // Offset: 292 + keen::ds::ItemReference feet; // Offset: 308 + keen::ds::ItemReference armourHead; // Offset: 324 + keen::ds::ItemReference armourUpperBody; // Offset: 340 + keen::ds::ItemReference armourArms; // Offset: 356 + keen::ds::ItemReference armourLowerBody; // Offset: 372 + keen::ds::ItemReference armourFeet; // Offset: 388 +}; + +typedef keen::ObjectReference ColorGradientReference; + +struct ColorPreset { + keen::ds::ColorGradientReference colorGradient; // Offset: 0 +}; + +typedef keen::ColorPresetId ColorPresetId; + +struct ColorPresetResource { + keen::ds::ColorPresetId presetId; // Offset: 0 + keen::ObjectReference colorGradient; // Offset: 4 +}; + +struct CharacterPresetSubDirectory { +}; + +struct CharacterPresetDirectory { +}; + +typedef keen::ObjectReference CharacterPresetCollectionReference; + +typedef keen::CharacterPresetId CharacterPresetId; + +typedef keen::VoicePackId VoicePackId; + +struct CharacterPresetResource { + keen::ds::CharacterPreset references; // Offset: 0 + keen::ds::CharacterPresetId presetId; // Offset: 404 + keen::ds::Gender gender; // Offset: 408 + keen::ds::VoicePackId voicePackId; // Offset: 412 + keen::ds::ColorPresetId hairColorId; // Offset: 416 + keen::ds::ColorPresetId beardColorId; // Offset: 420 + keen::ds::PaletteColorId skinColor; // Offset: 424 + keen::ds::PaletteColorId eyeBrowColor; // Offset: 428 + keen::ds::PaletteColorId eyeColor; // Offset: 432 + keen::ds::ItemId head; // Offset: 436 + keen::ds::ItemId hair; // Offset: 440 + keen::ds::ItemId beard; // Offset: 444 + keen::ds::ItemId neck; // Offset: 448 + keen::ds::ItemId collar; // Offset: 452 + keen::ds::ItemId chest; // Offset: 456 + keen::ds::ItemId waist; // Offset: 460 + keen::ds::ItemId crotch; // Offset: 464 + keen::ds::ItemId upperArms; // Offset: 468 + keen::ds::ItemId lowerArms; // Offset: 472 + keen::ds::ItemId hands; // Offset: 476 + keen::ds::ItemId upperLegs; // Offset: 480 + keen::ds::ItemId lowerLegs; // Offset: 484 + keen::ds::ItemId feet; // Offset: 488 + keen::ds::ItemId armourHead; // Offset: 492 + keen::ds::ItemId armourUpperBody; // Offset: 496 + keen::ds::ItemId armourArms; // Offset: 500 + keen::ds::ItemId armourLowerBody; // Offset: 504 + keen::ds::ItemId armourFeet; // Offset: 508 +}; + +struct ColorCombination { + keen::ds::PaletteColorReference color0; // Offset: 0 + keen::ds::PaletteColorReference color1; // Offset: 16 + keen::ds::PaletteColorReference color2; // Offset: 32 +}; + +struct CharacterPresetPreviewModelInfo { + keen::ObjectReference model; // Offset: 0 + keen::ds::ColorCombination colorCombination; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::DsArray blendShapes; // Offset: 80 +}; + +typedef keen::ObjectReference CharacterPresetReference; + +typedef keen::BlendShapeMask BlendShapeMask; + +struct CharacterPresetPreview { + keen::ds::CharacterPresetReference preset; // Offset: 0 + keen::DsArray models; // Offset: 16 + keen::ds::BlendShapeMask activeBlendShapes; // Offset: 56 +}; + +typedef keen::ObjectReference CharacterPresetObjectReference; + +struct CharacterPresetCollection { + keen::DsArray presets; // Offset: 0 + keen::DsArray colorGradients; // Offset: 40 +}; + +typedef keen::ColorCombinationId ColorCombinationId; + +typedef keen::ObjectReference ColorCombinationReference; + +typedef keen::ColorCombinationResource ColorCombinationResource; + +struct ColorCombinationSubDirectory { +}; + +struct ColorCombinationDirectory { +}; + +struct ecs.ComfortQuery { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::Time nextQuery; // Offset: 8 + keen::bool nearWarmth; // Offset: 16 + keen::ds::ecs::EntityId warmthEntityId; // Offset: 20 +}; + +typedef keen::ecs::ComfortCategory ecs.ComfortCategory; + +struct ecs.ComfortProvider { + keen::sint32 comfort; // Offset: 0 + keen::ds::ecs::ComfortCategory category; // Offset: 4 + keen::float32 range; // Offset: 8 + keen::uint32 freezingResistance; // Offset: 12 +}; + +struct ecs.NetworkComfort { + keen::ds::ecs::EntityId hearthEntityId; // Offset: 0 + keen::uint16 level; // Offset: 4 +}; + +typedef keen::ecs::ShelterQueryState ecs.ShelterQueryState; + +struct ecs.Shelter { + keen::float32 checkRange; // Offset: 0 + keen::float32 requiredShelterPercentage; // Offset: 4 +}; + +typedef keen::ecs::ShelterRay ecs.ShelterRay; + +typedef keen::ecs::RayHitMask ecs.RayHitMask; + +struct ecs.DynamicShelter { + keen::uint32 nextQueryTick; // Offset: 0 + keen::float32 shelterPercentage; // Offset: 4 + keen::ds::ecs::RayHitMask queryHits; // Offset: 8 + keen::ds::ecs::ShelterQueryState queryState; // Offset: 10 + keen::bool sheltered; // Offset: 11 + keen::bool shelterStateSet; // Offset: 12 +}; + +struct ecs.Resting { + keen::Time waitTime0; // Offset: 0 + keen::Time waitTime1; // Offset: 8 + keen::Time waitTime2; // Offset: 16 + keen::Time waitTime3; // Offset: 24 + keen::Time waitTime4; // Offset: 32 +}; + +struct CraftingWorkshopDirectory { +}; + +struct CraftingWorkshopSubDirectory { +}; + +struct UiWorkshopRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::ds::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::ds::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +typedef keen::KnowledgeRequirementType KnowledgeRequirementType; + +typedef keen::PredefinedKnowledgeTypes PredefinedKnowledgeTypes; + +typedef keen::ItemKnowledgeTrigger ItemKnowledgeTrigger; + +struct GameKnowledgeRequirementBase { + keen::ds::KnowledgeRequirementType queryType; // Offset: 0 + keen::ObjectReference knowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::ds::PredefinedKnowledgeTypes predefinedKnowledge; // Offset: 36 + keen::ds::ItemKnowledgeTrigger itemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 + keen::ObjectReference dialogOption; // Offset: 56 + keen::ObjectReference query; // Offset: 72 + keen::ObjectReference triggerUiEvent; // Offset: 88 +}; + +struct GameKnowledgeRequirement { +}; + +struct WorkshopDefinition { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::ItemReference item; // Offset: 16 + keen::bool isNpc; // Offset: 32 + keen::bool ignoreInJournalUi; // Offset: 33 + keen::ds::GameKnowledgeRequirement unlockRequirement; // Offset: 36 +}; + +typedef keen::ObjectReference WorkshopReference; + +struct CraftingPropDefinition { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::ItemReference item; // Offset: 16 +}; + +typedef keen::WorkshopId WorkshopId; + +struct WorkshopResource { + keen::bool isNpc; // Offset: 0 + keen::bool ignoreInJournalUi; // Offset: 1 + keen::Guid workshopGuid; // Offset: 4 + keen::ds::WorkshopId workshopId; // Offset: 20 + keen::ds::LocaTagId name; // Offset: 24 + keen::ds::ItemId item; // Offset: 28 + keen::ds::ItemReference itemRef; // Offset: 32 +}; + +typedef keen::CraftingPropMask CraftingPropMask; + +typedef keen::CraftingPropId CraftingPropId; + +struct CraftingPropResource { + keen::Guid craftingPropGuid; // Offset: 0 + keen::ds::CraftingPropId craftingPropId; // Offset: 16 + keen::uint8 craftingPropIndex; // Offset: 20 + keen::ds::LocaTagId name; // Offset: 24 + keen::ds::ItemId item; // Offset: 28 + keen::ds::ItemReference itemRef; // Offset: 32 +}; + +struct WorkshopRegistryResource { + keen::DsArray npcs; // Offset: 0 + keen::DsArray workshops; // Offset: 40 + keen::DsArray craftingProps; // Offset: 80 +}; + +typedef keen::CustomStringId CustomStringId; + +struct debug.EnemySpawnEntry { + keen::DsString displayName; // Offset: 0 + keen::ds::ecs::TemplateReference entity; // Offset: 40 + keen::uint8 sortPriority; // Offset: 56 +}; + +struct debug.EnemyDebugMenuFilterEntry { + keen::DsString displayName; // Offset: 0 + keen::DsString filter; // Offset: 40 +}; + +struct debug.EnemyDebugMenu { + keen::DsArray entries; // Offset: 0 + keen::DsArray filters; // Offset: 40 + keen::sint32 maxLevel; // Offset: 80 +}; + +typedef keen::DialogOptionId DialogOptionId; + +struct NpcDialogDirectory { +}; + +struct NpcDialogDefinition { + keen::ds::actor::ActorSequenceReference defaultSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference missingRequirementSequence; // Offset: 16 + keen::ds::LocaTagReference headline; // Offset: 32 + keen::ds::LocaTagReference craftingOption; // Offset: 48 + keen::ds::LocaTagReference itemUpgradeOption; // Offset: 64 + keen::ds::LocaTagReference itemRecyclingOption; // Offset: 80 + keen::ds::LocaTagReference sendBackToFlameOption; // Offset: 96 +}; + +struct NpcDialogGroup { +}; + +struct NpcDialogOptionBase { + keen::bool overrideSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 4 +}; + +struct NpcDialogInitLine { + keen::bool isWakeup; // Offset: 20 +}; + +struct NpcDialogFarewellLine { +}; + +struct NpcDialogTransitionLine { +}; + +struct NpcDialogOption { + keen::ds::LocaTagReference name; // Offset: 20 +}; + +struct NpcDialogResponseBase { +}; + +struct NpcDialogText { + keen::ds::LocaTagReference body; // Offset: 0 +}; + +struct NpcDialogOptionResourceBase { + keen::ds::DialogOptionId optionId; // Offset: 0 + keen::bool overrideSequence; // Offset: 4 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 8 + keen::ds::KnowledgeId unlockKnowledge; // Offset: 24 + keen::ds::KnowledgeId knowledgeRequirement; // Offset: 28 + keen::DsArray bodyTexts; // Offset: 32 +}; + +struct NpcDialogInitLineResource { + keen::bool isWakeup; // Offset: 72 +}; + +struct NpcDialogTransitionLineResource { +}; + +struct NpcDialogFarewellResource { +}; + +struct NpcDialogOptionResource { + keen::ds::LocaTagId optionText; // Offset: 72 +}; + +struct NpcDialogResource { + keen::ds::LocaTagId headline; // Offset: 0 + keen::ds::LocaTagId crafting; // Offset: 4 + keen::ds::LocaTagId itemUpgrade; // Offset: 8 + keen::ds::LocaTagId itemRecycling; // Offset: 12 + keen::ds::LocaTagId sendBackToFlame; // Offset: 16 + keen::ds::actor::ActorSequenceReference defaultSequence; // Offset: 20 + keen::ds::actor::ActorSequenceReference missingRequirementSequence; // Offset: 36 + keen::DsArray initLines; // Offset: 56 + keen::DsArray transitionLines; // Offset: 96 + keen::DsArray farewellLines; // Offset: 136 + keen::DsArray dialogOptions; // Offset: 176 +}; + +typedef keen::EquipmentSlotType EquipmentSlotType; + +typedef keen::EquipmentSlot EquipmentSlot; + +typedef keen::VisualEquippedItems VisualEquippedItems; + +typedef keen::VisualEquipmentMask VisualEquipmentMask; + +typedef keen::BlendShapeFlags BlendShapeFlags; + +typedef keen::ImpactEquippedItems ImpactEquippedItems; + +typedef keen::ImpactEquipmentMask ImpactEquipmentMask; + +typedef keen::PerkId PerkId; + +struct ecs.ItemImpact { + keen::ds::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 20 + keen::StaticArray perkEntities; // Offset: 24 + keen::StaticArray perkIds; // Offset: 44 +}; + +struct ecs.ItemVisual { + keen::ds::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 20 +}; + +struct ecs.EquipmentSlotData { + keen::ds::InventorySlotId vanityHead; // Offset: 0 + keen::ds::InventorySlotId vanityUpperBody; // Offset: 8 + keen::ds::InventorySlotId vanityArms; // Offset: 16 + keen::ds::InventorySlotId vanityLowerBody; // Offset: 24 + keen::ds::InventorySlotId vanityFeet; // Offset: 32 + keen::ds::InventorySlotId armourHead; // Offset: 40 + keen::ds::InventorySlotId armourUpperBody; // Offset: 48 + keen::ds::InventorySlotId armourArms; // Offset: 56 + keen::ds::InventorySlotId armourLowerBody; // Offset: 64 + keen::ds::InventorySlotId armourFeet; // Offset: 72 + keen::ds::InventorySlotId bodyPartHead; // Offset: 80 + keen::ds::InventorySlotId bodyPartHair; // Offset: 88 + keen::ds::InventorySlotId bodyPartEyeBrow; // Offset: 96 + keen::ds::InventorySlotId bodyPartBeard; // Offset: 104 + keen::ds::InventorySlotId bodyPartNeck; // Offset: 112 + keen::ds::InventorySlotId bodyPartCollar; // Offset: 120 + keen::ds::InventorySlotId bodyPartChest; // Offset: 128 + keen::ds::InventorySlotId bodyPartWaist; // Offset: 136 + keen::ds::InventorySlotId bodyPartCrotch; // Offset: 144 + keen::ds::InventorySlotId bodyPartUpperArms; // Offset: 152 + keen::ds::InventorySlotId bodyPartLowerArms; // Offset: 160 + keen::ds::InventorySlotId bodyPartHands; // Offset: 168 + keen::ds::InventorySlotId bodyPartUpperLegs; // Offset: 176 + keen::ds::InventorySlotId bodyPartLowerLegs; // Offset: 184 + keen::ds::InventorySlotId bodyPartFeet; // Offset: 192 + keen::ds::InventorySlotId ring0; // Offset: 200 + keen::ds::InventorySlotId ring1; // Offset: 208 + keen::ds::InventorySlotId accessory0; // Offset: 216 + keen::ds::InventorySlotId accessory1; // Offset: 224 + keen::ds::InventorySlotId rangedWeapon; // Offset: 232 + keen::ds::InventorySlotId shield; // Offset: 240 + keen::ds::InventorySlotId arrow; // Offset: 248 + keen::ds::InventorySlotId spell; // Offset: 256 + keen::ds::InventorySlotId terrainMaterial; // Offset: 264 + keen::ds::InventorySlotId blueprintMaterialDefault; // Offset: 272 + keen::ds::InventorySlotId blueprintMaterialRoof; // Offset: 280 + keen::ds::InventorySlotId hookShot; // Offset: 288 + keen::ds::InventorySlotId glider; // Offset: 296 + keen::ds::InventorySlotId climbWall; // Offset: 304 + keen::ds::InventorySlotId backpack; // Offset: 312 +}; + +typedef keen::ecs::CspItemIsBroken ecs.CspItemIsBroken; + +typedef keen::ecs::CspItemIsBrokenMask ecs.CspItemIsBrokenMask; + +struct ActionbarSlotSelection { + keen::ds::InventorySlotIndex index; // Offset: 0 +}; + +struct ecs.SlotSelection { + keen::ds::ecs::EquipmentSlotData equipment; // Offset: 0 + keen::StaticArray actionbarEntityIds; // Offset: 320 + keen::ds::ItemInstanceInfo actionItem; // Offset: 328 + keen::ds::ImpactEquipmentMask disabledEquipment; // Offset: 348 + keen::ds::ActionbarSlotSelection actionbarSlotSelection; // Offset: 352 + keen::ds::ecs::CspItemIsBrokenMask cspItemIsBrokenHelper; // Offset: 356 +}; + +struct ecs.FinishedActionbarInit { +}; + +struct ecs.PackedEquipmentSlotEntityIds { + keen::ds::ecs::EntityId vanityHead; // Offset: 0 + keen::ds::ecs::EntityId vanityUpperBody; // Offset: 4 + keen::ds::ecs::EntityId vanityArms; // Offset: 8 + keen::ds::ecs::EntityId vanityLowerBody; // Offset: 12 + keen::ds::ecs::EntityId vanityFeet; // Offset: 16 + keen::ds::ecs::EntityId armourHead; // Offset: 20 + keen::ds::ecs::EntityId armourUpperBody; // Offset: 24 + keen::ds::ecs::EntityId armourArms; // Offset: 28 + keen::ds::ecs::EntityId armourLowerBody; // Offset: 32 + keen::ds::ecs::EntityId armourFeet; // Offset: 36 + keen::ds::ecs::EntityId bodyPartHead; // Offset: 40 + keen::ds::ecs::EntityId bodyPartHair; // Offset: 44 + keen::ds::ecs::EntityId bodyPartEyeBrow; // Offset: 48 + keen::ds::ecs::EntityId bodyPartBeard; // Offset: 52 + keen::ds::ecs::EntityId bodyPartNeck; // Offset: 56 + keen::ds::ecs::EntityId bodyPartCollar; // Offset: 60 + keen::ds::ecs::EntityId bodyPartChest; // Offset: 64 + keen::ds::ecs::EntityId bodyPartWaist; // Offset: 68 + keen::ds::ecs::EntityId bodyPartCrotch; // Offset: 72 + keen::ds::ecs::EntityId bodyPartUpperArms; // Offset: 76 + keen::ds::ecs::EntityId bodyPartLowerArms; // Offset: 80 + keen::ds::ecs::EntityId bodyPartHands; // Offset: 84 + keen::ds::ecs::EntityId bodyPartUpperLegs; // Offset: 88 + keen::ds::ecs::EntityId bodyPartLowerLegs; // Offset: 92 + keen::ds::ecs::EntityId bodyPartFeet; // Offset: 96 + keen::ds::ecs::EntityId ring0; // Offset: 100 + keen::ds::ecs::EntityId ring1; // Offset: 104 + keen::ds::ecs::EntityId accessory0; // Offset: 108 + keen::ds::ecs::EntityId accessory1; // Offset: 112 + keen::ds::ecs::EntityId rangedWeapon; // Offset: 116 + keen::ds::ecs::EntityId shield; // Offset: 120 + keen::ds::ecs::EntityId arrow; // Offset: 124 + keen::ds::ecs::EntityId spell; // Offset: 128 + keen::ds::ecs::EntityId terrainMaterial; // Offset: 132 + keen::ds::ecs::EntityId blueprintMaterialDefault; // Offset: 136 + keen::ds::ecs::EntityId blueprintMaterialRoof; // Offset: 140 + keen::ds::ecs::EntityId hookShot; // Offset: 144 + keen::ds::ecs::EntityId glider; // Offset: 148 + keen::ds::ecs::EntityId climbWall; // Offset: 152 + keen::ds::ecs::EntityId backpack; // Offset: 156 +}; + +struct ecs.PackedEquipmentSlotIndices { + keen::ds::InventorySlotIndex vanityHead; // Offset: 0 + keen::ds::InventorySlotIndex vanityUpperBody; // Offset: 1 + keen::ds::InventorySlotIndex vanityArms; // Offset: 2 + keen::ds::InventorySlotIndex vanityLowerBody; // Offset: 3 + keen::ds::InventorySlotIndex vanityFeet; // Offset: 4 + keen::ds::InventorySlotIndex armourHead; // Offset: 5 + keen::ds::InventorySlotIndex armourUpperBody; // Offset: 6 + keen::ds::InventorySlotIndex armourArms; // Offset: 7 + keen::ds::InventorySlotIndex armourLowerBody; // Offset: 8 + keen::ds::InventorySlotIndex armourFeet; // Offset: 9 + keen::ds::InventorySlotIndex bodyPartHead; // Offset: 10 + keen::ds::InventorySlotIndex bodyPartHair; // Offset: 11 + keen::ds::InventorySlotIndex bodyPartEyeBrow; // Offset: 12 + keen::ds::InventorySlotIndex bodyPartBeard; // Offset: 13 + keen::ds::InventorySlotIndex bodyPartNeck; // Offset: 14 + keen::ds::InventorySlotIndex bodyPartCollar; // Offset: 15 + keen::ds::InventorySlotIndex bodyPartChest; // Offset: 16 + keen::ds::InventorySlotIndex bodyPartWaist; // Offset: 17 + keen::ds::InventorySlotIndex bodyPartCrotch; // Offset: 18 + keen::ds::InventorySlotIndex bodyPartUpperArms; // Offset: 19 + keen::ds::InventorySlotIndex bodyPartLowerArms; // Offset: 20 + keen::ds::InventorySlotIndex bodyPartHands; // Offset: 21 + keen::ds::InventorySlotIndex bodyPartUpperLegs; // Offset: 22 + keen::ds::InventorySlotIndex bodyPartLowerLegs; // Offset: 23 + keen::ds::InventorySlotIndex bodyPartFeet; // Offset: 24 + keen::ds::InventorySlotIndex ring0; // Offset: 25 + keen::ds::InventorySlotIndex ring1; // Offset: 26 + keen::ds::InventorySlotIndex accessory0; // Offset: 27 + keen::ds::InventorySlotIndex accessory1; // Offset: 28 + keen::ds::InventorySlotIndex rangedWeapon; // Offset: 29 + keen::ds::InventorySlotIndex shield; // Offset: 30 + keen::ds::InventorySlotIndex arrow; // Offset: 31 + keen::ds::InventorySlotIndex spell; // Offset: 32 + keen::ds::InventorySlotIndex terrainMaterial; // Offset: 33 + keen::ds::InventorySlotIndex blueprintMaterialDefault; // Offset: 34 + keen::ds::InventorySlotIndex blueprintMaterialRoof; // Offset: 35 + keen::ds::InventorySlotIndex hookShot; // Offset: 36 + keen::ds::InventorySlotIndex glider; // Offset: 37 + keen::ds::InventorySlotIndex climbWall; // Offset: 38 + keen::ds::InventorySlotIndex backpack; // Offset: 39 +}; + +struct ecs.PackedSlotSelection { + keen::ds::ecs::PackedEquipmentSlotEntityIds equipmentEntityIds; // Offset: 0 + keen::ds::ecs::PackedEquipmentSlotIndices equipmentIndices; // Offset: 160 + keen::StaticArray actionbarEntityIds; // Offset: 200 + keen::ds::ItemInstanceInfo actionItem; // Offset: 208 + keen::ds::ImpactEquipmentMask disabledEquipment; // Offset: 228 + keen::ds::ActionbarSlotSelection actionbarSlotSelection; // Offset: 232 + keen::uint32 cspItemIsBrokenHelper; // Offset: 236 +}; + +struct ecs.CspHackInventoryStockSelection { + keen::StaticArray versions; // Offset: 0 +}; + +struct ecs.Equipment { + keen::ds::VisualEquipmentMask visualMask; // Offset: 0 + keen::ds::ImpactEquipmentMask impactMask; // Offset: 4 + keen::StaticArray equipmentImpacts; // Offset: 8 + keen::StaticArray equipmentVisuals; // Offset: 712 + keen::ds::CollisionFeedbackMaterialReference blockMaterial; // Offset: 1288 + keen::ds::CollisionFeedbackMaterialReference bodyMaterial; // Offset: 1304 +}; + +struct ecs.RenderEquipment { + keen::StaticArray modelHandles; // Offset: 0 + keen::StaticArray,24> lastModels; // Offset: 96 + keen::StaticArray colors; // Offset: 480 + keen::ds::VisualEquipmentMask hideMask; // Offset: 768 + keen::ds::MaterialFeedbackId foleyMaterialId; // Offset: 772 + keen::ds::BlendShapeMask blendShapeMask; // Offset: 776 +}; + +typedef keen::PrimaryAnimationSet PrimaryAnimationSet; + +typedef keen::SecondaryAnimationSet SecondaryAnimationSet; + +struct ecs.EquipmentAnimationSets { + keen::ds::PrimaryAnimationSet primaryAnimationSet; // Offset: 0 + keen::ds::SecondaryAnimationSet secondaryAnimationSet; // Offset: 1 +}; + +struct Game38RootObjects { + keen::ObjectReference renderSettingsGpuPresets; // Offset: 0 + keen::ObjectReference scene; // Offset: 16 + keen::ObjectReference itemDirectory; // Offset: 32 + keen::ObjectReference gameKnowledgeDirectory; // Offset: 48 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 64 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 80 + keen::ObjectReference lootLabelCollection; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference buffTypeCollection; // Offset: 160 + keen::ObjectReference midiSongCollection; // Offset: 176 + keen::ObjectReference impactRegistry; // Offset: 192 + keen::ObjectReference attributeContainer; // Offset: 208 + keen::ObjectReference actorSequenceCollection; // Offset: 224 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 240 + keen::ObjectReference voxelBlueprintConfig; // Offset: 256 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 272 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 288 + keen::ObjectReference enemyArsenalRegistry; // Offset: 304 + keen::ObjectReference perkCollection; // Offset: 320 + keen::ObjectReference ingameTimeConfig; // Offset: 336 + keen::ObjectReference skillTree; // Offset: 352 + keen::ObjectReference templateCollection; // Offset: 368 + keen::ObjectReference fbUiBundle; // Offset: 384 + keen::ObjectReference journalRegistry; // Offset: 400 + keen::ObjectReference mapMarkerRegistry; // Offset: 416 + keen::ObjectReference materialFeedbackCollection; // Offset: 432 + keen::ObjectReference locaTagCollection; // Offset: 448 + keen::ObjectReference voicePacks; // Offset: 464 + keen::ObjectReference ambientCollection; // Offset: 480 + keen::ObjectReference fbUiMapResource; // Offset: 496 + keen::ObjectReference uiFontDefault; // Offset: 512 + keen::ObjectReference uiFontFancy; // Offset: 528 + keen::ObjectReference grassVfx; // Offset: 544 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 560 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 576 + keen::ObjectReference maleClothCollider; // Offset: 592 + keen::ObjectReference femaleClothCollider; // Offset: 608 + keen::ObjectReference staminaDrainNotifier; // Offset: 624 + keen::ObjectReference exhaustedNotifier; // Offset: 640 + keen::ObjectReference pickupLootNotifier; // Offset: 656 + keen::ObjectReference itemBrokenNotifier; // Offset: 672 + keen::ObjectReference renderSystem; // Offset: 688 + keen::ObjectReference gpcResourceList; // Offset: 704 + keen::ObjectReference analyticFog; // Offset: 720 + keen::ObjectReference buildingMaterialBlending; // Offset: 736 + keen::ObjectReference worldMaterial2; // Offset: 752 + keen::ObjectReference volumetricFog2; // Offset: 768 + keen::ObjectReference volumetricFogGridParameters; // Offset: 784 + keen::ObjectReference pregameMusic; // Offset: 800 + keen::ObjectReference loreIntroMusic; // Offset: 816 + keen::ObjectReference spellChargeFullSfx; // Offset: 832 + keen::ObjectReference enemyDebugMenu; // Offset: 848 + keen::ObjectReference characterPresetCollection; // Offset: 864 + keen::ObjectReference twitchDropCollection; // Offset: 880 + keen::ObjectReference characterScenePlayer; // Offset: 896 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 912 + keen::ObjectReference characterScenePlayerPregame; // Offset: 928 + keen::ObjectReference characterSceneNpc; // Offset: 944 + keen::ObjectReference commerceProducts; // Offset: 960 + keen::ObjectReference achievements; // Offset: 976 + keen::ObjectReference preloadVfxList; // Offset: 992 + keen::ObjectReference colorPaletteCollection; // Offset: 1008 + keen::ObjectReference weatherSystemResource; // Offset: 1024 +}; + +struct Game38SharedResources { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference gameKnowledge; // Offset: 16 + keen::ObjectReference gameKnowledgeResource; // Offset: 32 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 48 + keen::ObjectReference itemRegistry; // Offset: 64 + keen::ObjectReference journalRegistry; // Offset: 80 + keen::ObjectReference devItemRegistry; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference npcCollection; // Offset: 160 + keen::ObjectReference lootLabelCollection; // Offset: 176 + keen::ObjectReference lootableItems; // Offset: 192 + keen::ObjectReference lootDistribution; // Offset: 208 + keen::ObjectReference buffTypeCollection; // Offset: 224 + keen::ObjectReference midiSongCollection; // Offset: 240 + keen::ObjectReference impactRegistry; // Offset: 256 + keen::ObjectReference attributeContainer; // Offset: 272 + keen::ObjectReference actorSequenceCollection; // Offset: 288 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 304 + keen::ObjectReference voxelBlueprintConfig; // Offset: 320 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 336 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 352 + keen::ObjectReference enemyArsenalRegistry; // Offset: 368 + keen::ObjectReference perkCollection; // Offset: 384 + keen::ObjectReference ingameTimeConfig; // Offset: 400 + keen::ObjectReference skillTree; // Offset: 416 + keen::ObjectReference templateCollection; // Offset: 432 + keen::ObjectReference twitchDropCollection; // Offset: 448 + keen::ObjectReference staminaDrainNotifier; // Offset: 464 + keen::ObjectReference exhaustedNotifier; // Offset: 480 + keen::ObjectReference pickupLootNotifier; // Offset: 496 + keen::ObjectReference itemBrokenNotifier; // Offset: 512 + keen::ObjectReference characterPresetCollection; // Offset: 528 + keen::ObjectReference animationGraphDebugInfo; // Offset: 544 + keen::ObjectReference commerceProducts; // Offset: 560 + keen::ObjectReference colorPaletteCollection; // Offset: 576 + keen::ObjectReference gameSettingPresets; // Offset: 592 + keen::ObjectReference weatherSystemResource; // Offset: 608 +}; + +struct Game38ClientResources { + keen::ds::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference renderSettingsGpuPresets; // Offset: 624 + keen::ObjectReference fbUiBundle; // Offset: 640 + keen::ObjectReference mapMarkerRegistry; // Offset: 656 + keen::ObjectReference itemKnowledge; // Offset: 672 + keen::ObjectReference voicePacks; // Offset: 688 + keen::ObjectReference materialFeedbackCollection; // Offset: 704 + keen::ObjectReference locaTagCollection; // Offset: 720 + keen::ObjectReference colorGradingFogRegular; // Offset: 736 + keen::ObjectReference colorGradingFogDangerous; // Offset: 752 + keen::ObjectReference colorGradingLowHealth; // Offset: 768 + keen::ObjectReference maleClothCollider; // Offset: 784 + keen::ObjectReference femaleClothCollider; // Offset: 800 + keen::ObjectReference fbUiMapResource; // Offset: 816 + keen::ObjectReference uiFontDefault; // Offset: 832 + keen::ObjectReference uiFontFancy; // Offset: 848 + keen::ObjectReference grassVfx; // Offset: 864 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 880 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 896 + keen::ObjectReference pregameMusic; // Offset: 912 + keen::ObjectReference loreIntroMusic; // Offset: 928 + keen::ObjectReference spellChargeFullSfx; // Offset: 944 + keen::ObjectReference ambientCollection; // Offset: 960 + keen::ObjectReference enemyDebugMenu; // Offset: 976 + keen::ObjectReference characterScenePlayer; // Offset: 992 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 1008 + keen::ObjectReference characterScenePlayerPregame; // Offset: 1024 + keen::ObjectReference characterSceneNpc; // Offset: 1040 + keen::ObjectReference achievements; // Offset: 1056 + keen::ObjectReference preloadVfxList; // Offset: 1072 +}; + +struct Game38ServerResources { + keen::ds::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 624 +}; + +typedef keen::ObjectReference MidiReference; + +typedef keen::MidiInstrumentType MidiInstrumentType; + +struct MidiSong { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::MidiReference midiSong; // Offset: 16 + keen::ds::MidiInstrumentType defaultForInstrument; // Offset: 32 +}; + +struct MidiSongSubDirectory { +}; + +struct MidiSongDirectory { +}; + +struct MidiSongResource { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::MidiReference midiSong; // Offset: 16 + keen::ds::KnowledgeId unlockKnowledge; // Offset: 32 + keen::ds::MidiInstrumentType defaultForInstrument; // Offset: 36 +}; + +struct InstrumentSampleCollectionResource { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct MidiSongCollection { + keen::DsArray> songCollection; // Offset: 0 + keen::ds::InstrumentSampleCollectionResource sampleCollection; // Offset: 40 +}; + +typedef keen::ecs::G38TestSuite ecs.G38TestSuite; + +typedef keen::ecs::FailTest ecs.FailTest; + +typedef keen::ecs::InventoryTest ecs.InventoryTest; + +typedef keen::ecs::DungeonTriggerTest ecs.DungeonTriggerTest; + +typedef keen::ecs::KnowledgeTest ecs.KnowledgeTest; + +typedef keen::ecs::CookingTest ecs.CookingTest; + +typedef keen::ecs::FallDamageTestId ecs.FallDamageTestId; + +typedef keen::ecs::SlidingTestId ecs.SlidingTestId; + +typedef keen::ecs::ClimbLadderTestId ecs.ClimbLadderTestId; + +typedef keen::ecs::ClimbWallTestId ecs.ClimbWallTestId; + +typedef keen::ecs::HookShotSwingTestId ecs.HookShotSwingTestId; + +typedef keen::ecs::HookShotPullTestId ecs.HookShotPullTestId; + +typedef keen::ecs::GliderTestId ecs.GliderTestId; + +struct ecs.CookingTestComponent { + keen::ds::ecs::EntityId campfireEntityId; // Offset: 0 + keen::Time cookTime; // Offset: 8 + keen::Time postCookWaitTime; // Offset: 16 + keen::Time sitWaitTime; // Offset: 24 + keen::Time standWaitTime; // Offset: 32 + keen::uint8 campfireEntityDeletionTryCount; // Offset: 40 + keen::uint8 cookingTestComponentDeletionTryCount; // Offset: 41 + keen::bool sitToggled; // Offset: 42 + keen::bool standToggled; // Offset: 43 + keen::bool cookingToggled; // Offset: 44 +}; + +struct ecs.TestValueMemory { + keen::float3 vectorValue; // Offset: 0 + keen::float32 floatValue; // Offset: 12 +}; + +struct ecs.FakePlayerSpawner { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +typedef keen::VoxelMaterialType VoxelMaterialType; + +struct BaseVoxelMaterial { +}; + +struct BiomeVoxelMaterial { + keen::ObjectReference grassland; // Offset: 0 + keen::ObjectReference desert; // Offset: 16 + keen::ObjectReference wetland; // Offset: 32 + keen::ObjectReference steppes; // Offset: 48 + keen::ObjectReference deepforest; // Offset: 64 + keen::ObjectReference coldheights; // Offset: 80 +}; + +typedef keen::HardnessCategory HardnessCategory; + +struct VoxelWorldDisplacement { + keen::ds::ImageReference map; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::float32 origin; // Offset: 20 + keen::float32 uvScale; // Offset: 24 +}; + +typedef keen::VfxMaterialType VfxMaterialType; + +struct SolidVoxelMaterial { + keen::ds::VoxelMaterialType type; // Offset: 0 + keen::ds::ItemReference materialItem; // Offset: 4 + keen::ds::HardnessCategory hardness; // Offset: 20 + keen::sint32 healthPoints; // Offset: 24 + keen::ObjectReference blockCraftingRecipe; // Offset: 28 + keen::uint32 voxelsPerLootItemExchangeRate; // Offset: 44 + keen::ObjectReference experienceGain; // Offset: 48 + keen::bool canBeFlattened; // Offset: 64 + keen::bool isSlidingMaterial; // Offset: 65 + keen::ds::VoxelWorldDisplacement sideDisplacement; // Offset: 68 + keen::ds::VoxelWorldDisplacement topDisplacement; // Offset: 96 + keen::ObjectReference stoneMaterial; // Offset: 124 + keen::bool canReceiveFloorMaterial; // Offset: 140 + keen::ObjectReference pbrBuildingMaterial; // Offset: 144 + keen::ds::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 160 + keen::ds::AmbientEnvironment ambientEnvironment; // Offset: 176 + keen::ds::BuffTypeReference buffType; // Offset: 180 + keen::ObjectReference previewVoxelObject; // Offset: 196 + keen::bool isDangerous; // Offset: 212 + keen::float frictionFactor; // Offset: 216 + keen::float maxSubmergeDepth; // Offset: 220 + keen::float minSubmergePercentage; // Offset: 224 + keen::float maxSubmergePercentage; // Offset: 228 + keen::ds::VfxMaterialType vfxMaterialType; // Offset: 232 + keen::ds::ecs::EntityTagReference entityTag; // Offset: 236 + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 252 +}; + +struct BaseFogVoxelMaterial { + keen::ds::VoxelWorldDisplacement sideDisplacement; // Offset: 0 + keen::ds::VoxelWorldDisplacement topDisplacement; // Offset: 28 +}; + +struct FogVoxelMaterial { + keen::uint8 level; // Offset: 56 +}; + +struct DecorativeFogVoxelMaterial { +}; + +struct WaterVoxelMaterial { +}; + +typedef keen::TemperatureVoxelType TemperatureVoxelType; + +struct TemperatureVoxelMaterial { + keen::ds::TemperatureVoxelType temperature; // Offset: 0 +}; + +struct VoxelMaterialTerraformingInfo { + keen::ds::SolidVoxelMaterial solidVoxelMaterial; // Offset: 0 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 256 +}; + +struct VoxelMaterialScatteringNoise { + keen::float32 scale; // Offset: 0 + keen::float32 persistence; // Offset: 4 + keen::float32 outMin; // Offset: 8 + keen::float32 outMax; // Offset: 12 +}; + +struct VoxelMaterialScattering { + keen::ObjectReference densityMap; // Offset: 0 + keen::float32 density; // Offset: 16 + keen::ds::VoxelMaterialScatteringNoise densityNoise; // Offset: 20 + keen::ds::VoxelMaterialScatteringNoise depthNoise; // Offset: 36 + keen::float32 maxWidth; // Offset: 52 + keen::ds::VoxelMaterialScatteringNoise detailNoise; // Offset: 56 + keen::ds::VoxelMaterialScatteringNoise dirtDetailNoise; // Offset: 72 +}; + +typedef keen::VoxelMaterialScatteringShape VoxelMaterialScatteringShape; + +struct VoxelMaterialScatterTargetMaterial { + keen::ObjectReference material; // Offset: 0 + keen::bool enableScattering; // Offset: 16 + keen::ds::VoxelMaterialScatteringShape shape; // Offset: 17 + keen::float32 modulationInputScale; // Offset: 20 + keen::float32 shapeNoiseScale; // Offset: 24 + keen::float32 structureScale; // Offset: 28 + keen::float32 structureFadeSize; // Offset: 32 + keen::float32 outerRadius; // Offset: 36 + keen::float32 geodesScattterRadius; // Offset: 40 + keen::uint32 geodesCount; // Offset: 44 + keen::float2 geodesRadiusRange; // Offset: 48 + keen::float32 geodesShellWidth; // Offset: 56 +}; + +struct VoxelMaterialScatterTargetMaterialList { + keen::DsArray materials; // Offset: 0 +}; + +struct VoxelMaterialScatteringList { + keen::DsArray materialGuids; // Offset: 0 + keen::DsArray settings; // Offset: 40 + keen::DsArray targetMaterials; // Offset: 80 +}; + +struct ecs.Health { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Stamina { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDepletionMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Mana { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Revive { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Durability { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Movement { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedCombat { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FogResistance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Level { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Experience { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Threat { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ThreatBonus { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ToolDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModBackstab { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSkillShot { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSneak { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModMerciless { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModAgainst { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealingMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageSusceptibility { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritChance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Strength { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Intelligence { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Dexterity { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Endurance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Constitution { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Spirit { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Armor { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ArmorPoints { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Block { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ParryProficiency { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Comfort { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Rested { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MeleeDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MagicDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.AllyAggroMultiplier { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaRechargeMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealthRechargeMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ManaRechargeMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.WeaponCategoryDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeatMaxMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeat { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FreezingResistance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +typedef keen::ItemCollectionId ItemCollectionId; + +typedef keen::SignalId SignalId; + +typedef keen::LootContainerId LootContainerId; + +typedef keen::JournalEntryId JournalEntryId; + +struct Signal { +}; + +typedef keen::ItemStateFlag ItemStateFlag; + +typedef keen::ds::LocaTagReference CaptionLocaTag; + +typedef keen::ds::LocaTagReference LoreLocaTag; + +typedef keen::ItemKnowledgeFlag ItemKnowledgeFlag; + +typedef keen::ItemKnowledgeMask ItemKnowledgeMask; + +struct RecipeItemStackResource { + keen::ds::ItemReference itemRef; // Offset: 0 + keen::ds::ItemId item; // Offset: 16 + keen::uint32 count; // Offset: 20 +}; + +typedef keen::InventoryActionType InventoryActionType; + +struct VersionedData { + keen::uint16 changeCount; // Offset: 0 +}; + +typedef keen::UiState UiState; + +typedef keen::WheelMenuType WheelMenuType; + +typedef keen::FactionType FactionType; + +typedef keen::InputMode InputMode; + +typedef keen::AttackDirectionInput AttackDirectionInput; + +typedef keen::ControllerButtonStyle ControllerButtonStyle; + +typedef keen::UiInputId UiInputId; + +typedef keen::CharacterState CharacterState; + +typedef keen::CharacterStateMask CharacterStateMask; + +typedef keen::CharacterId CharacterId; + +typedef keen::SaveGameSlotIndex SaveGameSlotIndex; + +typedef keen::PlayerId PlayerId; + +typedef keen::BaseId BaseId; + +struct EnemyPhase { +}; + +struct JumpToObject { + keen::Guid objectId; // Offset: 0 +}; + +typedef keen::ecs::SpecialInteraction ecs.SpecialInteraction; + +typedef keen::PlayerLoginState PlayerLoginState; + +typedef keen::GameClientInitState GameClientInitState; + +typedef keen::PlayerPermissions PlayerPermissions; + +typedef keen::PlayerPermissionsMask PlayerPermissionsMask; + +typedef keen::VoxelConstraint VoxelConstraint; + +typedef keen::VoxelConstraintMask VoxelConstraintMask; + +struct VoxelRequirements { + keen::ds::VoxelConstraintMask required; // Offset: 0 + keen::ds::VoxelConstraintMask forbidden; // Offset: 1 +}; + +struct ecs.ServerProgressSystem { + keen::ds::ecs::EntityId progressEntity; // Offset: 0 + keen::uint32 progressLevel; // Offset: 4 + keen::uint32 currentAltarCount; // Offset: 8 + keen::uint32 currentHighestAltarLevel; // Offset: 12 +}; + +struct ecs.BaseIdComponent { + keen::ds::BaseId baseId; // Offset: 0 + keen::float3 buildZoneSize; // Offset: 16 + keen::Time endOfTimeout; // Offset: 32 + keen::bool wasAbandoned; // Offset: 40 +}; + +struct ecs.ClientBaseIdComponent { + keen::Time endOfTimeout; // Offset: 0 + keen::bool wasAbandoned; // Offset: 8 + keen::uint16 farmingAnimalCount; // Offset: 10 + keen::uint16 hungryFarmingAnimalCount; // Offset: 12 + keen::uint16 animalsWithoutBedCount; // Offset: 14 + keen::uint16 npcBedCount; // Offset: 16 + keen::uint16 farmingAnimalBedCount; // Offset: 18 + keen::uint16 occupiedFarmingAnimalBedCount; // Offset: 20 +}; + +struct ecs.NoBuildZone { +}; + +struct ecs.UnlockedJournalEntries { + keen::uint16 knowledgeChangeCounter; // Offset: 0 + keen::uint16 journalChangeCounter; // Offset: 2 +}; + +struct ecs.HealthBar { + keen::Time lastChange; // Offset: 0 +}; + +struct ecs.EnergyProvider { + keen::uint32 energyPerSecond; // Offset: 0 +}; + +struct ecs.EnergyQuery { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint32 energyPerSecond; // Offset: 4 + keen::float32 entityDistanceSquared; // Offset: 8 +}; + +typedef keen::ecs::CookingState ecs.CookingState; + +typedef keen::ecs::CookingFlags ecs.CookingFlags; + +typedef keen::ecs::CookingMask ecs.CookingMask; + +struct ecs.CookingData { + keen::ds::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ds::ecs::EntityId skewerEntityId; // Offset: 4 + keen::ds::ecs::EntityId burnedFoodEntityId; // Offset: 8 + keen::ds::ecs::EntityId cookFoodEntityId; // Offset: 12 + keen::ds::ItemId baseItemId; // Offset: 16 + keen::ds::ItemId cookingItemId; // Offset: 20 + keen::ds::ItemId nextCookingItemId; // Offset: 24 + keen::ds::KnowledgeId nextKnowledgeTriggerId; // Offset: 28 + keen::ds::KnowledgeId cookingKnowledgeTriggerId; // Offset: 32 + keen::uint32 cookingEnergy; // Offset: 36 + keen::uint32 requiredEnergy; // Offset: 40 + keen::ds::ecs::CookingMask mask; // Offset: 44 + keen::ds::ecs::CookingState state; // Offset: 45 +}; + +struct ecs.NetworkCookingData { + keen::ds::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ds::ecs::CookingMask mask; // Offset: 4 +}; + +struct ecs.CookingNotifier { + keen::ds::NotifierReference onFoodStateChange; // Offset: 0 + keen::ds::NotifierReference onFoodBurned; // Offset: 16 +}; + +struct ecs.AttributeRegeneration { + keen::Time lastNegativeChange; // Offset: 0 + keen::float32 accumulatedValue; // Offset: 8 + keen::sint32 lastValue; // Offset: 12 +}; + +struct ecs.HealthRecharge { +}; + +struct ecs.StaminaRecharge { +}; + +struct ecs.ManaRegeneration { +}; + +struct ecs.BodyHeatRecharge { +}; + +struct ecs.StaminaDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.BodyHeatDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.MovementVector { + keen::float3 velocity; // Offset: 0 + keen::float3 movement; // Offset: 12 +}; + +struct ecs.Projectile { +}; + +struct ecs.ParriableProjectile { + keen::ds::ecs::TemplateReference parriedProjectileTemplate; // Offset: 0 + keen::Angle launchPitchAngleOffset; // Offset: 16 + keen::float32 launchSpeedFactor; // Offset: 20 +}; + +struct ecs.ParriedProjectile { + keen::ds::FactionType originalFaction; // Offset: 0 + keen::ds::ecs::EntityId originalSpawnerId; // Offset: 4 +}; + +typedef keen::ecs::ProjectileMode ecs.ProjectileMode; + +struct ecs.CirclingTargetSettings { + keen::Angle angleOffset; // Offset: 0 + keen::float radius; // Offset: 4 + keen::float heightOffset; // Offset: 8 +}; + +struct ecs.EnemyProjectile { + keen::ds::ecs::ProjectileMode mode; // Offset: 0 + keen::float32 targetOffsetY; // Offset: 4 + keen::uint8 maxTries; // Offset: 8 + keen::float32 force; // Offset: 12 + keen::bool addGravity; // Offset: 16 + keen::bool useLowAngle; // Offset: 17 + keen::bool lockTargetPosition; // Offset: 18 + keen::DsArray hitAngles; // Offset: 24 + keen::Angle minPitch; // Offset: 64 + keen::Angle maxPitch; // Offset: 68 + keen::Angle maxHorizontalAngle; // Offset: 72 + keen::bool useFixedTargetOffset; // Offset: 76 + keen::ds::ecs::Offset targetOffset; // Offset: 80 + keen::bool useCirclingTarget; // Offset: 120 + keen::ds::ecs::CirclingTargetSettings circlingTargetSettings; // Offset: 124 +}; + +struct ecs.StaticUsedItem { + keen::ds::ItemReference itemReference; // Offset: 0 +}; + +struct ecs.UsedItem { + keen::ds::ItemId itemId; // Offset: 0 +}; + +struct ecs.PerkContainer { + keen::StaticArray perkIds; // Offset: 0 + keen::StaticArray perkIsUnlocked; // Offset: 20 +}; + +typedef keen::ecs::DismantleVolumeClass ecs.DismantleVolumeClass; + +typedef keen::ecs::DismantleMethod ecs.DismantleMethod; + +struct ecs.DismantleOverride { + keen::bool overrideMethod; // Offset: 0 + keen::ds::ecs::DismantleMethod method; // Offset: 1 + keen::bool overrideVolumeClass; // Offset: 2 + keen::ds::ecs::DismantleVolumeClass volumeClass; // Offset: 3 + keen::bool ignoreBuildZoneChecks; // Offset: 4 + keen::bool preventDismantlingWithFilledInventory; // Offset: 5 +}; + +struct ecs.ClientDismantleOverride { + keen::bool forceImmediateDismantlePrompt; // Offset: 0 +}; + +struct ecs.SubEntitySpawnInfo { + keen::ds::ecs::TemplateReference templateRef; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 16 + keen::ds::AttachmentSlot slot; // Offset: 56 + keen::bool hasKnowledgeRequirement; // Offset: 57 + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 60 + keen::ds::KnowledgeId knowledgeRequirementId; // Offset: 164 + keen::bool attach; // Offset: 168 + keen::bool despawnOnDeath; // Offset: 169 + keen::bool addDespawnLink; // Offset: 170 + keen::bool addOwnerRelationship; // Offset: 171 + keen::bool doNotSave; // Offset: 172 + keen::bool copyConditionalDespawn; // Offset: 173 + keen::bool copyLevel; // Offset: 174 + keen::bool addImpactHierarchy; // Offset: 175 +}; + +struct ecs.SubEntities { + keen::DsArray subEntities; // Offset: 0 + keen::bool hasSavedChildren; // Offset: 40 +}; + +struct ecs.DynamicSubEntities { + keen::StaticArray subEntities; // Offset: 0 +}; + +struct ecs.SubEntitiesStop { +}; + +struct ecs.ToggleSubEntities { + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.DynamicToggleSubEntities { + keen::bool dontSpawn; // Offset: 0 +}; + +struct ecs.SubEntityAttachmentMask { + keen::ds::AttachmentSlotMask mask; // Offset: 0 +}; + +struct ecs.EntityAnimation { + keen::ds::JointAnimationReference animation; // Offset: 0 + keen::uint32 animationHandle; // Offset: 16 + keen::Time sampleTime; // Offset: 24 +}; + +struct ecs.DespawnAfterSequence { + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 0 +}; + +struct ecs.WeaponReference { + keen::ds::ecs::EntityId weaponEntityId; // Offset: 0 + keen::ds::ecs::EntityId weaponOwnerEntityId; // Offset: 4 +}; + +struct ecs.HitReactionConfig { + keen::ds::animationgraph::OverlayIdReference hitReactionOverlay; // Offset: 0 + keen::ds::actor::ActorSequenceReference hitSequence; // Offset: 16 +}; + +struct ecs.HitReactionBehavior { + keen::ds::ecs::HitReactionConfig hitReactionBlockLightAttack; // Offset: 0 + keen::ds::ecs::HitReactionConfig hitReactionLight; // Offset: 32 + keen::ds::ecs::HitReactionConfig hitReactionHeavy; // Offset: 64 + keen::ds::ecs::HitReactionConfig hitReactionBoss; // Offset: 96 + keen::ds::ecs::HitReactionConfig hitReactionLongStun; // Offset: 128 + keen::ds::ecs::HitReactionConfig hitReactionTrapStun; // Offset: 160 + keen::ds::ecs::HitReactionConfig hitReactionShortStunBeGoneSkill; // Offset: 192 + keen::ds::ecs::HitReactionConfig hitReactionThrowIntoAir; // Offset: 224 + keen::ds::ecs::HitReactionConfig hitReactionWhileFlying; // Offset: 256 +}; + +typedef keen::ecs::EntityReferenceType ecs.EntityReferenceType; + +struct ecs.LerpRenderTransform { + keen::bool isInitialized; // Offset: 0 + keen::ds::ecs::EntityReferenceType entityReferenceType; // Offset: 1 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 2 + keen::Time lerpDuration; // Offset: 8 + keen::float32 lerpValueStart; // Offset: 16 + keen::float32 lerpValueEnd; // Offset: 20 + keen::Time lerpTimeStart; // Offset: 24 + keen::float3 translateDelta; // Offset: 32 +}; + +struct ecs.HomeToTarget { + keen::float3 targetLocalOffset; // Offset: 0 + keen::float32 turnSpeed; // Offset: 12 + keen::float32 turnSpeedMinDistanceFactor; // Offset: 16 + keen::float32 turnSpeedMaxDistanceFactor; // Offset: 20 + keen::float32 turnSpeedMinDistance; // Offset: 24 + keen::float32 turnSpeedMaxDistance; // Offset: 28 + keen::float32 acceleration; // Offset: 32 + keen::float32 maxSpeed; // Offset: 36 + keen::bool homeToCollisionTarget; // Offset: 40 + keen::float32 rayLength; // Offset: 44 + keen::bool accelerateDependsOnAngle; // Offset: 48 +}; + +struct ecs.DynamicHomeToTarget { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.Boomerang { + keen::Time returnToSpawnerDelay; // Offset: 0 + keen::float32 destroyOnApproachSpawnerDistance; // Offset: 8 +}; + +typedef keen::ecs::AggroTargetState ecs.AggroTargetState; + +typedef keen::ecs::AggroPool ecs.AggroPool; + +struct ecs.AggroPoolData { + keen::float32 value; // Offset: 0 + keen::Time lastGain; // Offset: 8 +}; + +typedef keen::ecs::LineOfSightState ecs.LineOfSightState; + +typedef keen::ecs::TargetReachableState ecs.TargetReachableState; + +struct ecs.AggroTarget { + keen::StaticArray aggroPools; // Offset: 0 + keen::ds::ecs::AggroTargetState state; // Offset: 48 + keen::ds::ecs::EntityId entityId; // Offset: 52 + keen::float32 value; // Offset: 56 + keen::Time lastLineOfSightQueryTime; // Offset: 64 + keen::ds::ecs::LineOfSightState lineOfSightState; // Offset: 72 + keen::Time lastStateChangeTime; // Offset: 80 + keen::ds::FactionType faction; // Offset: 88 + keen::float pathLength; // Offset: 92 + keen::ds::ecs::TargetReachableState reachableState; // Offset: 96 + keen::float distanceToTarget; // Offset: 100 + keen::float enemyValue; // Offset: 104 +}; + +struct ecs.AggroTargetPathQuery { + keen::ds::ecs::PathQueryId queryId; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::float3 lastStart; // Offset: 16 + keen::float3 lastTarget; // Offset: 28 +}; + +struct ecs.Aggro { + keen::StaticArray targets; // Offset: 0 + keen::StaticArray pathQueries; // Offset: 672 + keen::Time nextAllowedTargetChangeTime; // Offset: 912 + keen::ds::ecs::QueryId queryId; // Offset: 920 + keen::bool applyEnemyValue; // Offset: 924 + keen::bool allowTargetSwitches; // Offset: 925 +}; + +struct ecs.TriggerNoise { + keen::float32 range; // Offset: 0 + keen::Time nextTriggerTime; // Offset: 8 + keen::Time triggerInterval; // Offset: 16 +}; + +struct ecs.TriggerWalkingNoise { + keen::float32 sneakRange; // Offset: 0 + keen::float32 walkRange; // Offset: 4 + keen::float32 runRange; // Offset: 8 + keen::float32 sprintRange; // Offset: 12 + keen::Time nextTriggerTime; // Offset: 16 + keen::Time triggerInterval; // Offset: 24 +}; + +struct ecs.EnemyPhases { + keen::StaticArray,8> phases; // Offset: 0 +}; + +struct ecs.DynamicEnemyPhases { + keen::Guid lastPhase; // Offset: 0 + keen::Guid currentPhase; // Offset: 16 + keen::Time currentPhaseStartTime; // Offset: 32 +}; + +struct ecs.EnemyAiming { + keen::DsArray hitPattern; // Offset: 0 + keen::float32 minDistanceToMissTarget; // Offset: 40 +}; + +struct ecs.DynamicEnemyAiming { + keen::uint8 hitIndex; // Offset: 0 + keen::uint8 hitAngleIndex; // Offset: 1 + keen::StaticArray projectiles; // Offset: 4 +}; + +typedef keen::ecs::ContextualVector2Context ecs.ContextualVector2Context; + +struct ecs.ContextualVector2 { + keen::ds::ecs::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.ExecutionTarget { + keen::float32 executionRange; // Offset: 0 + keen::bool enableSneackAttackExecution; // Offset: 4 + keen::bool enableMercilessAttackExecution; // Offset: 5 + keen::float32 minMercilessAttackHealthPercentage; // Offset: 8 + keen::bool allowMercilessAttackRetrigger; // Offset: 12 + keen::bool canMercilessAttackBeExecuted; // Offset: 13 + keen::bool waitForHealthAboveThreshold; // Offset: 14 + keen::bool waitForStaminaRecharge; // Offset: 15 +}; + +typedef keen::ecs::TransferItemToInventoryFlags ecs.TransferItemToInventoryFlags; + +struct ecs.InventoryTransferAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 4 + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::ds::InventorySlotId sourceSlotId; // Offset: 12 + keen::ds::InventorySlotId targetSlotId; // Offset: 20 + keen::ds::InventoryActionType type; // Offset: 28 + keen::ds::ecs::TransferItemToInventoryFlags flags; // Offset: 29 + keen::uint16 amount; // Offset: 30 +}; + +struct ecs.SelectSongAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::HashKey32 songId; // Offset: 4 +}; + +struct ecs.SortInventoryAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetInventoryId; // Offset: 4 +}; + +struct ecs.CreateBuildingItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 2 + keen::ds::ItemId itemId; // Offset: 4 +}; + +struct ecs.CreateNpcItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 +}; + +struct ecs.ActionbarSelectionAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 2 +}; + +struct ecs.InventoryStockCycleAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ItemId selectedItemId; // Offset: 4 +}; + +struct ecs.ParryAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::StaticArray targetEntityIds; // Offset: 4 +}; + +struct ecs.KickPlayerAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 4 +}; + +struct ecs.TwitchDropRewardAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 4 + keen::ds::ItemId itemId; // Offset: 8 +}; + +typedef keen::ecs::TombstoneMode ecs.TombstoneMode; + +typedef keen::ecs::WeatherFrequency ecs.WeatherFrequency; + +typedef keen::ecs::AggroPoolAmount ecs.AggroPoolAmount; + +typedef keen::ecs::TamingStartleRepercussion ecs.TamingStartleRepercussion; + +struct ecs.GameSettings { + keen::float playerHealthFactor; // Offset: 0 + keen::float playerManaFactor; // Offset: 4 + keen::float playerStaminaFactor; // Offset: 8 + keen::float playerBodyHeatFactor; // Offset: 12 + keen::bool enableDurability; // Offset: 16 + keen::bool enableStarvingDebuff; // Offset: 17 + keen::float foodBuffDurationFactor; // Offset: 20 + keen::Time fromHungerToStarving; // Offset: 24 + keen::float shroudTimeFactor; // Offset: 32 + keen::ds::ecs::TombstoneMode tombstoneMode; // Offset: 36 + keen::bool enableGliderTurbulences; // Offset: 37 + keen::ds::ecs::WeatherFrequency weatherFrequency; // Offset: 38 + keen::float miningDamageFactor; // Offset: 40 + keen::float plantGrowthSpeedFactor; // Offset: 44 + keen::float resourceDropStackAmountFactor; // Offset: 48 + keen::float factoryProductionSpeedFactor; // Offset: 52 + keen::float perkUpgradeRecyclingFactor; // Offset: 56 + keen::float perkCostFactor; // Offset: 60 + keen::float experienceCombatFactor; // Offset: 64 + keen::float experienceMiningFactor; // Offset: 68 + keen::float experienceExplorationQuestsFactor; // Offset: 72 + keen::ds::ecs::RandomSpawnerAmount randomSpawnerAmount; // Offset: 76 + keen::ds::ecs::AggroPoolAmount aggroPoolAmount; // Offset: 77 + keen::float enemyDamageFactor; // Offset: 80 + keen::float enemyHealthFactor; // Offset: 84 + keen::float enemyStaminaFactor; // Offset: 88 + keen::float enemyPerceptionRangeFactor; // Offset: 92 + keen::float bossDamageFactor; // Offset: 96 + keen::float bossHealthFactor; // Offset: 100 + keen::float threatBonus; // Offset: 104 + keen::bool pacifyAllEnemies; // Offset: 108 + keen::ds::ecs::TamingStartleRepercussion tamingStartleRepercussion; // Offset: 109 + keen::Time dayTimeDuration; // Offset: 112 + keen::Time nightTimeDuration; // Offset: 120 +}; + +struct ecs.AdminChangeGameSettingsAction { + keen::ds::ecs::GameSettings gameSettings; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 128 +}; + +struct ecs.AdminApplyInventoryCommand { + keen::ds::VersionedData versionData; // Offset: 0 + keen::Guid inventoryGuid; // Offset: 4 + keen::bool clearInventories; // Offset: 20 +}; + +struct ecs.AdminSpawnCommand { + keen::ds::VersionedData versionData; // Offset: 0 + keen::uint16 level; // Offset: 2 + keen::Guid templateGuid; // Offset: 4 + keen::uint8 optionalDistance; // Offset: 20 + keen::uint8 count; // Offset: 21 + keen::bool useRoaming; // Offset: 22 + keen::bool showSpawnSequence; // Offset: 23 + keen::bool spawnAsGroup; // Offset: 24 + keen::bool spawnAsFakePlayer; // Offset: 25 + keen::bool followPlayer; // Offset: 26 + keen::uint8 autoDestroyTicks; // Offset: 27 +}; + +struct ecs.AdminKillFactionCommand { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::FactionMask factionMask; // Offset: 2 + keen::uint32 playerMask; // Offset: 4 +}; + +typedef keen::ItemRarity ItemRarity; + +struct ecs.AdminInventoryCreateAction { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 + keen::uint16 count; // Offset: 6 + keen::ds::ItemRarity rarity; // Offset: 8 + keen::uint8 level; // Offset: 9 + keen::bool createForAllPlayers; // Offset: 10 + keen::bool createFullStack; // Offset: 11 + keen::bool fillEmptyStacks; // Offset: 12 + keen::bool maximizeCharacter; // Offset: 13 + keen::bool cleanupInventory; // Offset: 14 + keen::bool flameLevelUpgrade; // Offset: 15 +}; + +struct ecs.AdminTeleportAction { + keen::ds::ecs::Transform transform; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 28 +}; + +struct ecs.AdminSetDayTimeAction { + keen::Time syncDaytime; // Offset: 0 + keen::Time syncDaytimeTick; // Offset: 8 + keen::ds::VersionedData versionData; // Offset: 16 +}; + +struct ecs.AdminDestroyItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.AdminSetFlameLevel { + keen::ds::VersionedData versionData; // Offset: 0 + keen::uint8 flameLevel; // Offset: 2 +}; + +struct ecs.AdminSetCharacterLevel { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 4 + keen::uint8 level; // Offset: 8 +}; + +struct ecs.AdminPerkAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 + keen::bool state; // Offset: 12 +}; + +struct ecs.AdminDebugCameraDisplayAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::bool enable; // Offset: 2 +}; + +struct ecs.ChangeCustomizationAction { + keen::ds::InventorySlotId targetSlotId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::VersionedData versionData; // Offset: 12 +}; + +typedef keen::ecs::FlameAltarActionType ecs.FlameAltarActionType; + +struct ecs.FlameAltarAction { + keen::ds::ecs::EntityId baseEntityId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 + keen::ds::ecs::FlameAltarActionType type; // Offset: 6 +}; + +struct ecs.TeleportAction { + keen::ds::ecs::EntityId target; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 +}; + +struct ecs.UnlockSkillAction { + keen::ds::SkillNodeId skillId; // Offset: 0 + keen::bool resetSkills; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 6 +}; + +struct ecs.AdminUnlearnSkillAction { + keen::ds::SkillNodeId skillId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 +}; + +struct ecs.TriggerKnowledgeAction { + keen::ds::LocaTagId dialogOptionId; // Offset: 0 + keen::ds::KnowledgeId knowledgeId; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.SetPersonalProgressionAction { + keen::bool enable; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 2 +}; + +struct ecs.AmbientHelper { + keen::ds::AmbientMask ambientMask; // Offset: 0 +}; + +struct ecs.WaypointAction { + keen::WorldPosition position; // Offset: 0 + keen::bool enable; // Offset: 24 + keen::bool isPing; // Offset: 25 + keen::ds::VersionedData versionData; // Offset: 26 +}; + +struct ecs.SelectDialogOptionAction { + keen::ds::LocaTagId dialogOptionId; // Offset: 0 + keen::ds::ecs::EntityId targetNpc; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.NpcInputAction { + keen::ds::NpcId targetNpc; // Offset: 0 + keen::float roamingRange; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +typedef keen::RecipeId RecipeId; + +struct ecs.CraftRecipeAction { + keen::ds::ecs::EntityId craftingStationId; // Offset: 0 + keen::ds::RecipeId recipeId; // Offset: 4 + keen::uint16 recipeAmount; // Offset: 8 + keen::ds::VersionedData versionData; // Offset: 10 +}; + +struct ecs.AutomaticTransferAction { + keen::ds::ecs::EntityId craftingStationId; // Offset: 0 + keen::ds::RecipeId recipeId; // Offset: 4 + keen::ds::ItemId itemId; // Offset: 8 + keen::uint16 amount; // Offset: 12 + keen::ds::VersionedData versionData; // Offset: 14 +}; + +struct ecs.SelectCraftingStationRecipeAction { + keen::ds::ecs::EntityId craftingStationId; // Offset: 0 + keen::ds::RecipeId recipeId; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.PerkUnlockAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.TrashItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 +}; + +typedef keen::ecs::ChangeEquipment ecs.ChangeEquipment; + +struct ecs.ChangeEquipmentAction { + keen::ds::InventorySlotId inventorySlotId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 8 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 10 + keen::ds::ecs::ChangeEquipment type; // Offset: 11 +}; + +typedef keen::ecs::SwapEquipmentTarget ecs.SwapEquipmentTarget; + +struct ecs.SwapEquipmentSetAction { + keen::ds::ecs::EntityId targetInventoryId; // Offset: 0 + keen::ds::ecs::SwapEquipmentTarget target; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 6 +}; + +struct ecs.ConsumeItemAction { + keen::ds::InventorySlotId inventorySlotId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.InspectItemAction { + keen::ds::InventorySlotId inventorySlotId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.RepairAllItemsAction { + keen::ds::VersionedData versionData; // Offset: 0 +}; + +struct ecs.RequiredCraftingProp { + keen::ObjectReference type; // Offset: 0 + keen::ds::CraftingPropId craftingPropId; // Offset: 16 +}; + +typedef keen::ecs::FactoryStationState ecs.FactoryStationState; + +struct ecs.FactoryStation { + keen::ds::ecs::FactoryStationState state; // Offset: 0 + keen::ds::RecipeId runningRecipe; // Offset: 4 + keen::ds::RecipeId nextRecipe; // Offset: 8 + keen::Time recipeStart; // Offset: 16 +}; + +struct ecs.FactoryStationClient { + keen::ds::SoundContainerReference soundLoopRunning; // Offset: 0 + keen::uint32 soundLoopRunningHandle; // Offset: 16 +}; + +struct ecs.UiBlueprintShapeSelection { + keen::uint8 selectionIndex; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ecs.UiPlayerInput { + keen::sint8 lootSelectionDelta; // Offset: 0 + keen::sint8 blueprintPageSelectionDelta; // Offset: 1 + keen::sint8 blueprintShapeSelectionDelta; // Offset: 2 + keen::ds::ecs::UiBlueprintShapeSelection blueprintShapeSelection; // Offset: 3 + keen::float32 dismantleHoldProgress; // Offset: 8 + keen::bool canCycleInventoryStock; // Offset: 12 + keen::bool isInventoryStockCyclingDisabled; // Offset: 13 + keen::bool isBlueprintPageSelectionModifierActive; // Offset: 14 + keen::bool isTertiaryActionAllowed; // Offset: 15 + keen::bool showTutorial; // Offset: 16 + keen::bool showInventoryStock; // Offset: 17 + keen::bool showActionbarWheel; // Offset: 18 + keen::bool showQuickEquipWheel; // Offset: 19 + keen::bool jumpToNotification; // Offset: 20 +}; + +struct ecs.ClientOnlyPlayerInput { + keen::sint8 actionbarSelectionDelta; // Offset: 0 + keen::sint8 inventoryStockCycleDelta; // Offset: 1 + keen::sint8 songSelectionDelta; // Offset: 2 + keen::sint8 zoomInputDelta; // Offset: 3 +}; + +struct ecs.ClientCamera { + keen::WorldPosition position; // Offset: 0 + keen::Quaternion orientation; // Offset: 24 + keen::float32 distance; // Offset: 40 + keen::float32 fovY; // Offset: 44 + keen::float32 aspectRatio; // Offset: 48 + keen::float32 nearPlane; // Offset: 52 + keen::float32 farPlane; // Offset: 56 +}; + +typedef keen::ecs::ClientPlayerState ecs.ClientPlayerState; + +typedef keen::ecs::ClientPlayerStateMask ecs.ClientPlayerStateMask; + +typedef keen::ecs::PlayerDigitalInput ecs.PlayerDigitalInput; + +struct ecs.ClientPlayerInputData { + keen::ds::ecs::InventoryTransferAction inventoryTransferAction; // Offset: 0 + keen::ds::ecs::ClientCamera camera; // Offset: 32 + keen::ds::ecs::ActionbarSelectionAction actionbarSelectionAction; // Offset: 96 + keen::ds::ecs::SortInventoryAction sortInventoryAction; // Offset: 100 + keen::ds::ecs::SelectSongAction selectSongAction; // Offset: 108 + keen::ds::ecs::InventoryStockCycleAction inventoryStockCycleAction; // Offset: 116 + keen::ds::ecs::CraftRecipeAction craftRecipeAction; // Offset: 124 + keen::ds::ecs::AutomaticTransferAction automaticTransferAction; // Offset: 136 + keen::ds::ecs::SelectCraftingStationRecipeAction selectCraftingStationRecipeAction; // Offset: 152 + keen::ds::ecs::ChangeCustomizationAction changeCustomizationAction; // Offset: 164 + keen::ds::ecs::TeleportAction teleportAction; // Offset: 180 + keen::ds::ecs::UnlockSkillAction unlockSkillAction; // Offset: 188 + keen::ds::ecs::TriggerKnowledgeAction triggerKnowledgeAction; // Offset: 196 + keen::ds::ecs::SetPersonalProgressionAction setPersonalProgressionAction; // Offset: 208 + keen::ds::ecs::SelectDialogOptionAction selectDialogOptionAction; // Offset: 212 + keen::ds::ecs::NpcInputAction npcInputAction; // Offset: 224 + keen::ds::ecs::ChangeEquipmentAction changeEquipmentAction; // Offset: 236 + keen::ds::ecs::SwapEquipmentSetAction swapEquipmentSetAction; // Offset: 248 + keen::ds::ecs::ConsumeItemAction consumeItemAction; // Offset: 256 + keen::ds::ecs::InspectItemAction inspectItemAction; // Offset: 268 + keen::ds::ecs::RepairAllItemsAction repairAllItemsAction; // Offset: 280 + keen::ds::ecs::CreateBuildingItemAction createBuildingItemAction; // Offset: 284 + keen::ds::ecs::CreateNpcItemAction createNpcItemAction; // Offset: 292 + keen::ds::ecs::PerkUnlockAction perkUnlockAction; // Offset: 300 + keen::ds::ecs::TrashItemAction trashItemAction; // Offset: 312 + keen::ds::ecs::FlameAltarAction flameAltarAction; // Offset: 324 + keen::ds::ecs::WaypointAction waypointAction; // Offset: 336 + keen::ds::ecs::ParryAction parryAction; // Offset: 368 + keen::ds::ecs::KickPlayerAction kickPlayerAction; // Offset: 388 + keen::ds::ecs::TwitchDropRewardAction twitchDropRewardAction; // Offset: 396 + keen::Vector2 movementStick; // Offset: 408 + keen::ds::ecs::ContextualVector2 cameraRotationInput; // Offset: 416 + keen::sint16 buildingRotation; // Offset: 428 + keen::uint8 buildingDistance; // Offset: 430 + keen::ds::ecs::ClientPlayerStateMask mask; // Offset: 431 + keen::ds::ecs::PlayerDigitalInput digitalInput; // Offset: 432 + keen::Time respawnActionHoldDuration; // Offset: 440 + keen::Time debugEventTime; // Offset: 448 + keen::Time debugUpdateTime; // Offset: 456 +}; + +struct ecs.AdminClientPlayerInputData { + keen::ds::ecs::AdminInventoryCreateAction adminInventoryCreateAction; // Offset: 0 + keen::ds::ecs::AdminSpawnCommand adminSpawnCommand; // Offset: 16 + keen::ds::ecs::AdminKillFactionCommand adminKillFaction; // Offset: 44 + keen::ds::ecs::AdminTeleportAction adminTeleport; // Offset: 52 + keen::ds::ecs::AdminApplyInventoryCommand adminApplyInventory; // Offset: 84 + keen::ds::ecs::AdminSetDayTimeAction adminSetDaytime; // Offset: 112 + keen::ds::ecs::AdminDestroyItemAction adminDestroyItemAction; // Offset: 136 + keen::ds::ecs::AdminSetFlameLevel adminSetFlameLevel; // Offset: 148 + keen::ds::ecs::AdminSetCharacterLevel adminSetCharacterLevel; // Offset: 152 + keen::ds::ecs::AdminPerkAction adminPerkAction; // Offset: 164 + keen::ds::ecs::AdminDebugCameraDisplayAction adminDebugCameraDisplayAction; // Offset: 180 + keen::ds::ecs::AdminUnlearnSkillAction adminUnlearnSkillAction; // Offset: 184 + keen::ds::ecs::AdminChangeGameSettingsAction adminChangeGameSettingsAction; // Offset: 192 +}; + +typedef keen::ecs::DoubleInputBindings ecs.DoubleInputBindings; + +typedef keen::ecs::DoubleInputBindingsMask ecs.DoubleInputBindingsMask; + +struct ecs.ClientPlayerInputHistoryEntry { + keen::uint32 frameTick; // Offset: 0 + keen::ds::ecs::ClientPlayerInputData data; // Offset: 8 +}; + +typedef keen::ecs::PlayerSettingFlags ecs.PlayerSettingFlags; + +typedef keen::ecs::PlayerSettingMask ecs.PlayerSettingMask; + +struct ecs.ClientPlayerSettings { + keen::ds::AttackDirectionInput attackDirectionInput; // Offset: 0 + keen::ds::ecs::PlayerSettingMask flags; // Offset: 1 +}; + +struct ecs.ClientPlayerInputToggleConfig { + keen::ds::ecs::PlayerDigitalInput configuredAsToggle; // Offset: 0 +}; + +struct ecs.ClientPlayerInput { + keen::ds::ecs::ClientPlayerInputData data; // Offset: 0 + keen::ds::ecs::AdminClientPlayerInputData adminCommands; // Offset: 464 + keen::ds::ecs::ClientPlayerInputToggleConfig toggleConfig; // Offset: 792 + keen::ds::ecs::DoubleInputBindingsMask doubleInputBindings; // Offset: 800 + keen::ds::InputMode inputMode; // Offset: 801 + keen::ds::ecs::ClientOnlyPlayerInput clientOnlyPlayerInput; // Offset: 802 + keen::ds::ecs::UiPlayerInput uiPlayerInput; // Offset: 808 +}; + +struct ecs.PlayerInput { + keen::Time serverTime; // Offset: 0 + keen::ds::ecs::ClientPlayerInputData fromClient; // Offset: 8 + keen::ds::ecs::AdminClientPlayerInputData fromAdminClient; // Offset: 472 + keen::ds::ecs::ClientPlayerInputToggleConfig fromClientToggleConfig; // Offset: 800 + keen::ds::ecs::DoubleInputBindingsMask fromClientDoubleInputBindings; // Offset: 808 + keen::ds::InputMode fromClientInputMode; // Offset: 809 + keen::ds::ecs::ClientPlayerSettings fromClientSettings; // Offset: 810 + keen::bool fromClientIsReadyForGameplay; // Offset: 812 +}; + +struct ecs.ServerInputConsumer { + keen::ds::ecs::PlayerDigitalInput consumedInputs; // Offset: 0 + keen::ds::ecs::PlayerDigitalInput logicalStates; // Offset: 8 + keen::ds::ecs::PlayerDigitalInput totalPreviousInputs; // Offset: 16 +}; + +struct ecs.ServerConsumedPlayerInput { + keen::ds::ecs::ServerInputConsumer inputConsumer; // Offset: 0 + keen::ds::VersionedData consumedInventoryTransferAction; // Offset: 24 + keen::ds::VersionedData consumedSortInventoryAction; // Offset: 26 + keen::ds::VersionedData consumedSelectSongAction; // Offset: 28 + keen::ds::VersionedData consumedCreateBuildingItemAction; // Offset: 30 + keen::ds::VersionedData consumedCreateNpcItemAction; // Offset: 32 + keen::ds::VersionedData consumedActionbarSelectionAction; // Offset: 34 + keen::ds::VersionedData consumedInventoryStockCycleAction; // Offset: 36 + keen::ds::VersionedData consumedCraftRecipeAction; // Offset: 38 + keen::ds::VersionedData consumedAutomaticTransferAction; // Offset: 40 + keen::ds::VersionedData consumedSelectCraftingStationRecipeAction; // Offset: 42 + keen::ds::VersionedData consumedChangeCustomizationAction; // Offset: 44 + keen::ds::VersionedData consumedTeleportAction; // Offset: 46 + keen::ds::VersionedData consumedUnlockSkillAction; // Offset: 48 + keen::ds::VersionedData consumedTriggerKnowledgeAction; // Offset: 50 + keen::ds::VersionedData consumedSetPersonalProgressionAction; // Offset: 52 + keen::ds::VersionedData consumedWaypointAction; // Offset: 54 + keen::ds::VersionedData consumedSelectDialogOptionAction; // Offset: 56 + keen::ds::VersionedData consumedNpcInputAction; // Offset: 58 + keen::ds::VersionedData consumedChangeEquipmentAction; // Offset: 60 + keen::ds::VersionedData consumedSwapEquipmentSetAction; // Offset: 62 + keen::ds::VersionedData consumedConsumeItemAction; // Offset: 64 + keen::ds::VersionedData consumedInspectItemAction; // Offset: 66 + keen::ds::VersionedData consumedRepairAllItemsActionn; // Offset: 68 + keen::ds::VersionedData consumedPerkUnlockAction; // Offset: 70 + keen::ds::VersionedData consumedTrashItemAction; // Offset: 72 + keen::ds::VersionedData consumedFlameAltarAction; // Offset: 74 + keen::ds::VersionedData consumedParryAction; // Offset: 76 + keen::ds::VersionedData consumedKickPlayerAction; // Offset: 78 + keen::ds::VersionedData consumedtwitchDropAction; // Offset: 80 + keen::ds::VersionedData consumedAdminInventoryCreateAction; // Offset: 82 + keen::ds::VersionedData consumedAdminSpawnAction; // Offset: 84 + keen::ds::VersionedData consumedAdminKillFactionAction; // Offset: 86 + keen::ds::VersionedData consumedAdminTeleport; // Offset: 88 + keen::ds::VersionedData consumedAdminApplyInventory; // Offset: 90 + keen::ds::VersionedData consumedAdminSetDaytime; // Offset: 92 + keen::ds::VersionedData consumedAdminDestroyItemAction; // Offset: 94 + keen::ds::VersionedData consumedAdminSetFlameLevel; // Offset: 96 + keen::ds::VersionedData consumedAdminSetCharacterLevel; // Offset: 98 + keen::ds::VersionedData consumedAdminPerkAction; // Offset: 100 + keen::ds::VersionedData consumedAdminDebugCameraDisplayAction; // Offset: 102 + keen::ds::VersionedData consumedAdminUnlearnSkillAction; // Offset: 104 + keen::ds::VersionedData consumedAdminChangeGameSettingsAction; // Offset: 106 +}; + +struct ecs.InputRepeater { + keen::bool isAfterFirstRepetition; // Offset: 0 + keen::Time nextRepeatTime; // Offset: 8 +}; + +typedef keen::ecs::ClientOnlyPlayerInputRepeater ecs.ClientOnlyPlayerInputRepeater; + +typedef keen::ecs::ClientOnlyPlayerDigitalInput ecs.ClientOnlyPlayerDigitalInput; + +struct ecs.ClientInputConsumer { + keen::ds::ecs::ClientOnlyPlayerDigitalInput consumedInputs; // Offset: 0 + keen::ds::ecs::ClientOnlyPlayerDigitalInput logicalStates; // Offset: 8 + keen::ds::ecs::ClientOnlyPlayerInputRepeater inputRepeaters; // Offset: 16 +}; + +struct ecs.PlayerTestInput { + keen::ds::ecs::PlayerDigitalInput digitalInput; // Offset: 0 + keen::Vector2 movementStick; // Offset: 8 + keen::float3 cameraDirection; // Offset: 16 +}; + +typedef keen::ranged_weapon::State ranged_weapon.State; + +struct ranged_weapon.Input { + keen::bool aim; // Offset: 0 + keen::bool charge; // Offset: 1 + keen::bool fire; // Offset: 2 +}; + +struct ranged_weapon.WeaponParameters { + keen::Time chargeDuration; // Offset: 0 + keen::Time fireDuration; // Offset: 8 + keen::bool isChanneling; // Offset: 16 + keen::bool doesNeedAmmunition; // Offset: 17 + keen::bool canQueueFireBeforeFullyCharged; // Offset: 18 + keen::bool restartChargeOnAmmunitionSwitch; // Offset: 19 +}; + +struct ranged_weapon.StateMachine { + keen::ds::ranged_weapon::State currentState; // Offset: 0 + keen::Time stateStartTime; // Offset: 8 + keen::ds::ranged_weapon::Input previousInput; // Offset: 16 + keen::ds::ranged_weapon::WeaponParameters weaponParameters; // Offset: 24 + keen::bool isInitialUpdate; // Offset: 48 + keen::bool isFireQueued; // Offset: 49 +}; + +typedef keen::ecs::PlayerInputType ecs.PlayerInputType; + +typedef keen::ResourceTypesMask ResourceTypesMask; + +struct ecs.RangedWeapon { + keen::ds::ranged_weapon::StateMachine stateMachine; // Offset: 0 + keen::ds::ecs::PlayerInputType originalTrigger; // Offset: 56 + keen::ds::ecs::PlayerInputType currentTrigger; // Offset: 57 + keen::ds::ItemInstanceInfo triggerWeaponInstance; // Offset: 60 + keen::ds::ItemInstanceInfo triggerAmmunitionInstance; // Offset: 80 + keen::ds::ResourceTypesMask missingResourceMask; // Offset: 100 + keen::Time lastMissingResourceEvent; // Offset: 104 + keen::ds::ItemId lastVisualAmmoItemId; // Offset: 112 + keen::ds::ItemId visualAmmoItemId; // Offset: 116 + keen::ds::ecs::EntityId visualAmmoEntityId; // Offset: 120 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 124 + keen::bool previousSneakState; // Offset: 125 +}; + +struct ecs.NetworkRangedWeapon { + keen::ds::ranged_weapon::State currentState; // Offset: 0 + keen::ds::ranged_weapon::WeaponParameters weaponParameters; // Offset: 8 + keen::Time stateStartTime; // Offset: 32 + keen::ds::ItemInstanceInfo weaponInstance; // Offset: 40 + keen::ds::ItemId ammunitionItemId; // Offset: 60 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 64 +}; + +struct ecs.ClientRangedWeapon { + keen::ds::ranged_weapon::State previousState; // Offset: 0 + keen::bool isInitialUpdate; // Offset: 1 +}; + +struct ecs.RangedWeaponRender { +}; + +struct ecs.SpellChargeSfx { + keen::ds::SoundContainerReference buildUpChargeSfx; // Offset: 0 + keen::ds::SoundContainerReference sustainChargeSfx; // Offset: 16 + keen::bool hasHandledFullyCharged; // Offset: 32 +}; + +typedef keen::ecs::PlayerFlags ecs.PlayerFlags; + +typedef keen::ecs::PlayerStateMask ecs.PlayerStateMask; + +struct ecs.ParryProjectile { + keen::ds::ecs::EntityId projectileEntityId; // Offset: 0 + keen::ds::actor::SequenceResourceId anticipationSequenceResourceId; // Offset: 4 +}; + +struct ecs.PlayerState { + keen::ds::actor::StateMask previousActorState; // Offset: 0 + keen::Time lastSprintEndTime; // Offset: 8 + keen::Time lastBlockEndTime; // Offset: 16 + keen::Time noMovementInputDuration; // Offset: 24 + keen::Time outsideSafeZoneCountdown; // Offset: 32 + keen::float32 sprintTurnSpeedFactor; // Offset: 40 + keen::ds::ecs::PlayerStateMask playerStateMask; // Offset: 44 + keen::ds::LocaTagId dungeonZoneMapMarkerId; // Offset: 48 + keen::ds::ecs::PlayerInputType rangedWeaponArmedViaInput; // Offset: 52 + keen::ds::ecs::ParryProjectile parryProjectile; // Offset: 56 +}; + +struct ecs.PlayerTracking { + keen::Time levelUpDuration; // Offset: 0 + keen::Time playtimeDuration; // Offset: 8 +}; + +struct ecs.PlayerDebugServer { + keen::Time debugEventTime; // Offset: 0 + keen::Time clientUpdateTime; // Offset: 8 + keen::Time serverRecvTime; // Offset: 16 + keen::Time serverUpdateTime; // Offset: 24 +}; + +struct ecs.PlayerDebugClient { + keen::Time debugEventTime; // Offset: 0 + keen::Time debugEventDelta; // Offset: 8 + keen::Time debugEventMappingDelta; // Offset: 16 +}; + +struct ecs.ClientPlayerStaminaHints { + keen::Time firstSprintUtteranceDelay; // Offset: 0 + keen::Time sprintUtteranceInterval; // Offset: 8 + keen::Time nextUtterance; // Offset: 16 +}; + +struct ecs.PlayerQuestProgressionMode { + keen::bool isInPersonalProgressionMode; // Offset: 0 + keen::uint32 changeCounter; // Offset: 4 +}; + +struct ecs.PlayerPinnedRecipes { + keen::ds::RecipeId pinnedRecipe; // Offset: 0 + keen::HashKey32 questEntryId; // Offset: 4 +}; + +struct ecs.PlayerWaypoint { + keen::bool enabled; // Offset: 0 + keen::WorldPosition waypointPosition; // Offset: 8 +}; + +struct ecs.SkillState { + keen::ds::ecs::EntityId impcatEntity; // Offset: 0 + keen::bool isUnlocked; // Offset: 4 +}; + +typedef keen::ecs::SkillUnlockMask ecs.SkillUnlockMask; + +typedef keen::ecs::UnlockedSkillsMask ecs.UnlockedSkillsMask; + +struct ecs.UnlockedSkillNodes { + keen::StaticArray nodes; // Offset: 0 + keen::StaticArray activeSkillImpacts; // Offset: 1024 + keen::uint32 version; // Offset: 2048 +}; + +struct ecs.PlayerSkillsUi { + keen::ds::ecs::UnlockedSkillsMask skillUnlockMasks; // Offset: 0 +}; + +struct ecs.PlayerGroupMember { + keen::Time lastUpdateTime; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct ecs.ServerPlayerGroupMembers { + keen::StaticArray groupMembers; // Offset: 0 +}; + +struct ecs.PickingTarget { + keen::ds::ecs::QueryId rayQueryId; // Offset: 0 + keen::Time nextUpdate; // Offset: 8 +}; + +typedef keen::ecs::CursorFlag ecs.CursorFlag; + +typedef keen::ecs::CursorFlags ecs.CursorFlags; + +struct ecs.ServerCursor { + keen::ds::ecs::QueryId rayQueryId; // Offset: 0 + keen::ds::ecs::QueryId placementBlockerQueryId; // Offset: 4 + keen::StaticArray solidCollisionsQueryIds; // Offset: 8 + keen::ds::ecs::RangeQueryId enemiesQueryId; // Offset: 16 + keen::float3 pointerInfoPosition; // Offset: 20 + keen::ds::VoxelMaterialId hoveredVoxelMaterialId; // Offset: 32 + keen::WorldTransform secondaryActionTransform; // Offset: 40 + keen::float randomYawAngleOffset; // Offset: 96 + keen::Time snapToPlaneDelay; // Offset: 104 + keen::ds::ecs::EntityId hoverVoxelBlueprintOverlayEntityId; // Offset: 112 +}; + +struct ecs.ClientServerCursor { + keen::WorldTransform transform; // Offset: 0 + keen::ds::ecs::EntityId cursorEntityId; // Offset: 56 + keen::ds::ecs::EntityId hoveredEntityId; // Offset: 60 + keen::ds::ecs::EntityId selectedEntityId; // Offset: 64 + keen::ds::ecs::DismantleMethod selectedEntityDismantleMethod; // Offset: 68 + keen::bool isBlueprintSelected; // Offset: 69 + keen::bool isDismantleAllowed; // Offset: 70 + keen::float3 hoverPosition; // Offset: 72 + keen::float3 hoverNormal; // Offset: 84 + keen::ds::ItemInstanceInfo currentBuildingItemInstance; // Offset: 96 + keen::ds::ItemId previousBuildingItemId; // Offset: 116 + keen::float effectivePlacementVolume; // Offset: 120 + keen::float maxPlacementVolume; // Offset: 124 + keen::ds::ecs::CursorFlags cursorFlagsPrimary; // Offset: 128 + keen::ds::ecs::CursorFlags cursorFlagsSecondary; // Offset: 130 + keen::bool wasLastActionSecondary; // Offset: 132 + keen::bool isSnappingToBoxes; // Offset: 133 + keen::bool isNearBuildingZone; // Offset: 134 + keen::bool canUndoBuildingAction; // Offset: 135 +}; + +struct ecs.ClientCursorVfx { + keen::uint3 position; // Offset: 0 + keen::uint32 fxHandle; // Offset: 12 +}; + +struct ecs.ClientCursor { + keen::Time hoveredEntityHightlightPhase; // Offset: 0 + keen::ds::ecs::EntityId previousSelectedEntityId; // Offset: 8 + keen::Color previousSelectedEntityTintColor; // Offset: 12 + keen::ds::ItemId previousBuildingItemId; // Offset: 16 + keen::ds::HighlightColorIndex highlightColorValid; // Offset: 20 + keen::ds::HighlightColorIndex highlightColorInvalid; // Offset: 21 + keen::ds::HighlightColorIndex highlightColorMuted; // Offset: 22 + keen::StaticArray blueprintHoverVfx; // Offset: 24 +}; + +struct ecs.Terraforming { + keen::ds::ecs::RangeQueryId snappingQueryId; // Offset: 0 + keen::ds::ecs::RangeQueryId temporaryMiningQueryId; // Offset: 4 +}; + +struct ecs.VfxZone { +}; + +struct ecs.Destructible { +}; + +struct ecs.CameraShakeParams { + keen::float32 trauma; // Offset: 0 +}; + +struct ecs.NotifierComponent { + keen::ds::ecs::Offset notifierOffset; // Offset: 0 + keen::ds::NotifierReference notifier; // Offset: 40 + keen::ds::ecs::CameraShakeParams cameraShake; // Offset: 56 + keen::ds::SoundContainerReference sfx; // Offset: 60 + keen::ds::VfxReference vfx; // Offset: 76 +}; + +struct ecs.OnCreate { + keen::ds::AttachmentSlot slot; // Offset: 92 + keen::bool attach; // Offset: 93 +}; + +struct ecs.OnDestroy { + keen::float32 noiseRange; // Offset: 92 + keen::float3 hitDirection; // Offset: 96 +}; + +struct ecs.SpawnEntityOnDestroy { + keen::ds::ecs::TemplateReference spawnEntity; // Offset: 0 + keen::bool keepDespawnLink; // Offset: 16 + keen::bool triggered; // Offset: 17 +}; + +struct ecs.DestroyEntityOnParentRespawn { + keen::bool checkParent; // Offset: 0 +}; + +typedef keen::FogRemovalId FogRemovalId; + +struct ecs.FogRemovalIdComponent { + keen::ds::FogRemovalId fogRemovalId; // Offset: 0 +}; + +struct ecs.RemoveFog { +}; + +typedef keen::ecs::EasingType ecs.EasingType; + +struct ecs.Dissolve { + keen::float3 rotationOriginOffset; // Offset: 0 + keen::float32 yOffset; // Offset: 12 + keen::Time duration; // Offset: 16 + keen::float32 rotationAngle; // Offset: 24 + keen::bool calculateOffsets; // Offset: 28 + keen::ds::ecs::EasingType dissolveEasing; // Offset: 29 + keen::ds::ecs::EasingType translationEasing; // Offset: 30 + keen::ds::ecs::EasingType rotationEasing; // Offset: 31 +}; + +struct ecs.DynamicDissolve { + keen::Time startTime; // Offset: 0 + keen::ds::ecs::EntityId alignmentTarget; // Offset: 8 + keen::bool started; // Offset: 12 +}; + +struct ecs.ClientDissolve { + keen::uint32 renderModelUpdateCounter; // Offset: 0 + keen::float32 modelCenter; // Offset: 4 + keen::float32 boundingBoxHeight; // Offset: 8 + keen::float32 dissolveEdgeBrightness; // Offset: 12 +}; + +typedef keen::ecs::FadeState ecs.FadeState; + +struct ecs.Fade { + keen::Time duration; // Offset: 0 + keen::float3 dissolveMaskOffset; // Offset: 8 + keen::float32 dissolveMaskRadius; // Offset: 20 + keen::float32 dissolveEdgeBrightness; // Offset: 24 + keen::ds::ecs::FadeState initialState; // Offset: 28 +}; + +struct ecs.DynamicFade { + keen::Time startTime; // Offset: 0 + keen::ds::ecs::FadeState state; // Offset: 8 +}; + +struct ecs.ActorInput { + keen::ds::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 0 + keen::ds::actor::ActionSequenceTriggerContext triggerContext; // Offset: 8 + keen::uint8 triggerCallCounter; // Offset: 232 + keen::uint32 sequenceTriggerId; // Offset: 236 + keen::float3 desiredLocalMoveInput; // Offset: 240 + keen::float3 desiredWorldMoveInput; // Offset: 252 + keen::float3 desiredWorldLookDirection; // Offset: 264 + keen::ds::ecs::LocomotionSpeedSelector locomotionSpeed; // Offset: 276 + keen::ds::ecs::LocomotionSpeedSelector lastLocomotionSpeed; // Offset: 277 +}; + +struct ecs.FlapSetup { + keen::Time minFlapDuration; // Offset: 0 + keen::Time maxFlapDuration; // Offset: 8 + keen::Time minFlapPauseDuration; // Offset: 16 + keen::Time maxFlapPauseDuration; // Offset: 24 +}; + +struct ecs.Flying { + keen::float32 maxAcceleration; // Offset: 0 + keen::ds::actor::ActorSequenceReference startFlyingSequence; // Offset: 4 + keen::ds::actor::ActorSequenceReference stopFlyingSequence; // Offset: 20 + keen::ds::actor::ActorSequenceReference flyingSequence; // Offset: 36 + keen::ds::actor::ActorSequenceReference hoverSequence; // Offset: 52 + keen::ds::actor::ActorSequenceReference flappingSequence; // Offset: 68 + keen::ds::actor::ActorSequenceReference hitInAirSequence; // Offset: 84 + keen::ds::actor::ActorSequenceReference stuckOnGroundSequence; // Offset: 100 + keen::ds::ecs::FlapSetup flapSetup; // Offset: 120 + keen::bool useFlyAnimationHandling; // Offset: 152 + keen::bool fallOnHit; // Offset: 153 + keen::bool fallOnParryStun; // Offset: 154 + keen::bool flyAfterSpawn; // Offset: 155 +}; + +typedef keen::ecs::FlyingState ecs.FlyingState; + +struct ecs.DynamicFlying { + keen::ds::ecs::FlyingState state; // Offset: 0 + keen::Time nextCheckFlappingTime; // Offset: 8 + keen::bool isSequenceHandlingPaused; // Offset: 16 + keen::bool wasSequenceHandlingPaused; // Offset: 17 + keen::bool isFlappingAllowed; // Offset: 18 + keen::bool fallOnDeath; // Offset: 19 +}; + +struct ecs.CSPDummy { +}; + +struct ecs.SlotAttachmentBase { + keen::ds::ecs::Offset offset; // Offset: 0 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 40 + keen::ds::ecs::EntityId attachedToEntityId; // Offset: 44 +}; + +struct ecs.ServerSlotAttachment { +}; + +struct ecs.SlotAttachment { +}; + +struct ecs.Friction { + keen::bool isSliding; // Offset: 0 + keen::float32 frictionFactor; // Offset: 4 +}; + +struct ecs.RotationSpeedEntry { + keen::float32 rotationSpeed; // Offset: 0 + keen::ds::actor::InterpolationMode interpolationMode; // Offset: 4 +}; + +struct ecs.ActorRotation { + keen::ds::ecs::RotationSpeedEntry standingRotationSpeed; // Offset: 0 + keen::ds::ecs::RotationSpeedEntry movingRotationSpeed; // Offset: 8 + keen::ds::ecs::RotationSpeedEntry runningRotationSpeed; // Offset: 16 + keen::ds::ecs::RotationSpeedEntry slidingRotationSpeed; // Offset: 24 + keen::ds::ecs::RotationSpeedEntry inAirRotationSpeed; // Offset: 32 + keen::ds::ecs::RotationSpeedEntry dodgingAroundTargetRotationSpeed; // Offset: 40 + keen::ds::ecs::RotationSpeedEntry hookPullingRotationSpeed; // Offset: 48 + keen::ds::ecs::RotationSpeedEntry hookSwingingRotationSpeed; // Offset: 56 + keen::ds::ecs::RotationSpeedEntry climbingRotationSpeed; // Offset: 64 + keen::ds::ecs::RotationSpeedEntry gliderRotationSpeed; // Offset: 72 + keen::float32 minLinearAxisRotationAngle; // Offset: 80 +}; + +typedef keen::ecs::LocomotionState ecs.LocomotionState; + +typedef keen::ecs::LocomotionFlags ecs.LocomotionFlags; + +typedef keen::ecs::LocomotionMask ecs.LocomotionMask; + +struct ecs.LocomotionAccelerationConfig { + keen::float32 minTurnAngle; // Offset: 0 + keen::float32 maxWalkAcceleration; // Offset: 4 + keen::float32 maxRunAcceleration; // Offset: 8 + keen::float32 maxSprintAcceleration; // Offset: 12 + keen::float32 groundFrictionSusceptibility; // Offset: 16 +}; + +struct ecs.LocomotionSlideConfig { + keen::float32 downhillAccelerationFactor; // Offset: 0 + keen::float32 downhillAcceleration; // Offset: 4 + keen::float32 lateralAcceleration; // Offset: 8 + keen::float32 uphillAcceleration; // Offset: 12 + keen::float32 maxUphillSpeed; // Offset: 16 +}; + +struct ecs.LocomotionTurnConfig { + keen::bool useTurnSequences; // Offset: 0 + keen::Angle minTurnAngle; // Offset: 4 + keen::float32 minVelocity; // Offset: 8 + keen::Time minRequiredVelocityDuration; // Offset: 16 + keen::Time minTimeSinceRequiredVelocityWasReached; // Offset: 24 + keen::ds::actor::ActorSequenceReference leftTurnSequence; // Offset: 32 + keen::ds::actor::ActorSequenceReference rightTurnSequence; // Offset: 48 +}; + +struct ecs.LocomotionAvoidHolesConfig { + keen::bool avoidHoles; // Offset: 0 + keen::float32 checkLength; // Offset: 4 + keen::float32 minHoleDepth; // Offset: 8 +}; + +struct ecs.Locomotion { + keen::ds::ecs::LocomotionAccelerationConfig accelerationConfig; // Offset: 0 + keen::ds::ecs::LocomotionSlideConfig slideConfig; // Offset: 20 + keen::ds::ecs::LocomotionTurnConfig turnConfig; // Offset: 40 + keen::ds::ecs::LocomotionAvoidHolesConfig avoidHolesConfig; // Offset: 104 +}; + +typedef keen::ecs::JumpRuntimeType ecs.JumpRuntimeType; + +struct ecs.GliderTurbulence { + keen::float3 direction; // Offset: 0 + keen::float32 intensity; // Offset: 12 + keen::Time remainingDuration; // Offset: 16 +}; + +struct ecs.DynamicLocomotion { + keen::float3 inputVelocity; // Offset: 0 + keen::float3 floorNormal; // Offset: 12 + keen::float3 slopeNormal; // Offset: 24 + keen::ds::actor::MovementFactors movementFactors; // Offset: 36 + keen::float3 rootMotion; // Offset: 48 + keen::ds::animationgraph::RootMotionMask rootMotionMode; // Offset: 60 + keen::ds::ecs::LocomotionState state; // Offset: 61 + keen::Time lastStateSwitchTime; // Offset: 64 + keen::Time slideDetected; // Offset: 72 + keen::Time takeOffTime; // Offset: 80 + keen::Time spheroidCollisionDuration; // Offset: 88 + keen::float32 rotationSpeedFactor; // Offset: 96 + keen::bool isGliderForwardInputDeliberate; // Offset: 100 + keen::bool isNearGround; // Offset: 101 + keen::bool wasTurning; // Offset: 102 + keen::Time sprintJumpRunUpTimer; // Offset: 104 + keen::Time airwolfTimer; // Offset: 112 + keen::ds::ecs::LocomotionMask flags; // Offset: 120 + keen::bool isFastEnoughForTurn; // Offset: 121 + keen::Time speedForTurnSequenceReachedStartTime; // Offset: 128 + keen::Time speedForTurnSequenceReachedEndTime; // Offset: 136 + keen::float slideJumpAirControlSpeed; // Offset: 144 + keen::ds::actor::JumpType jumpType; // Offset: 148 + keen::uint8 jumpCount; // Offset: 149 + keen::WorldPosition previousJumpTakeOffPosition; // Offset: 152 + keen::float airControlMinVelocity; // Offset: 176 + keen::float airControlMaxVelocity; // Offset: 180 + keen::float frictionFactor; // Offset: 184 + keen::float effectiveMovementMod; // Offset: 188 + keen::float gliderUpstreamFactor; // Offset: 192 + keen::ds::ecs::GliderTurbulence gliderTurbulence; // Offset: 200 +}; + +struct ecs.NetworkLocomotion { + keen::bool hasSlideAnimations; // Offset: 0 + keen::bool hasJumpAnimations; // Offset: 1 + keen::bool hasWalkAnimations; // Offset: 2 + keen::bool hasMoveAnimation; // Offset: 3 + keen::bool leanTowardsMoveDirection; // Offset: 4 + keen::float leanFactor; // Offset: 8 + keen::float maxLeanYawAngle; // Offset: 12 + keen::float maxLeanPitchAngle; // Offset: 16 + keen::float leanFadeOutSpeedFactor; // Offset: 20 + keen::float minLeanYawInterpolationSpeed; // Offset: 24 + keen::float maxLeanYawInterpolationSpeed; // Offset: 28 + keen::float leanYawSpeedInterpolationStartAngle; // Offset: 32 + keen::float leanYawSpeedInterpolationEndAngle; // Offset: 36 + keen::float leanPitchInterpolationSpeed; // Offset: 40 + keen::float leanYawStartAngle; // Offset: 44 + keen::Angle pitchAngleOffset; // Offset: 48 +}; + +struct ecs.DynamicNetworkLocomotion { + keen::float3 floorNormal; // Offset: 0 + keen::float3 desiredWorldLookDirection; // Offset: 12 + keen::float3 desiredLeanDirection; // Offset: 24 + keen::ds::ecs::LocomotionState state; // Offset: 36 + keen::ds::ecs::LocomotionMask flags; // Offset: 37 + keen::ds::animationgraph::StateIdHash currentIdleAnimation; // Offset: 40 + keen::ds::animationgraph::StateIdHash currentWalkAnimation; // Offset: 44 + keen::float32 gliderTurbulenceScreenShakeIntensity; // Offset: 48 +}; + +struct ecs.ClientLocomotion { + keen::float32 runSpeed; // Offset: 0 + keen::float32 sprintSpeed; // Offset: 4 + keen::float32 currentLocalRollAngle; // Offset: 8 + keen::float32 currentLocalPitchAngle; // Offset: 12 + keen::float32 currentLocalYawAngle; // Offset: 16 + keen::float32 currentLeanYawAngle; // Offset: 20 + keen::float32 currentLeanPitchAngle; // Offset: 24 + keen::float32 lastAnimationInputSpeed; // Offset: 28 +}; + +struct ecs.GliderUpstreamZone { +}; + +struct ecs.JumpParameters { + keen::float32 jumpDistance; // Offset: 0 + keen::float32 jumpHeight; // Offset: 4 + keen::Quaternion launchOffset; // Offset: 8 +}; + +struct ecs.SlopeAlignment { + keen::float32 defaultLongitudinalFactor; // Offset: 0 + keen::float32 defaultLateralFactor; // Offset: 4 + keen::float32 currentLongitudinalFactor; // Offset: 8 + keen::float32 currentLateralFactor; // Offset: 12 +}; + +struct ecs.BaseActor { + keen::ds::actor::ActionSequence currentAction; // Offset: 0 + keen::ds::actor::StateMask currentState; // Offset: 2048 + keen::ds::actor::AbilityMask currentAbilityMask; // Offset: 2056 + keen::ds::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 2064 +}; + +struct ecs.ServerActionSequenceData { + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 0 + keen::ds::actor::SignalStates signalStates; // Offset: 24 + keen::ds::actor::ColliderModeData colliderModeOverride; // Offset: 152 + keen::ds::actor::RotationInterpolation rotationInterpolation; // Offset: 168 + keen::Time rotationInterpolationStartTime; // Offset: 224 + keen::Time rotationInterpolationEndTime; // Offset: 232 + keen::ds::animationgraph::StateIdHash animationStateId; // Offset: 240 + keen::ds::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 244 + keen::ds::ecs::EntityId lastSpawnedEntityId; // Offset: 248 + keen::ds::ecs::EntityId stopEntityId; // Offset: 252 + keen::float3 positionLerpEnd; // Offset: 256 + keen::Time positionLerpDuration; // Offset: 272 + keen::Time positionLerpTime; // Offset: 280 + keen::Quaternion orientationLerpEnd; // Offset: 288 + keen::Time orientationLerpDuration; // Offset: 304 + keen::Time orientationLerpTime; // Offset: 312 + keen::ds::actor::MovementFactors movementFactors; // Offset: 320 + keen::ds::actor::MovementFactors movementFactorsLerpStart; // Offset: 332 + keen::ds::actor::MovementFactors movementFactorsLerpEnd; // Offset: 344 + keen::Time movementFactorsLerpDuration; // Offset: 360 + keen::Time movementFactorsLerpTime; // Offset: 368 + keen::float32 rotationSpeedFactor; // Offset: 376 + keen::float32 rotationFactorLerpStart; // Offset: 380 + keen::float32 rotationFactorLerpEnd; // Offset: 384 + keen::Time rotationFactorLerpDuration; // Offset: 392 + keen::Time rotationFactorLerpTime; // Offset: 400 + keen::float32 gravityModifier; // Offset: 408 + keen::bool isGravityModified; // Offset: 412 +}; + +struct ecs.Actor { + keen::ds::ecs::ServerActionSequenceData currentServerAction; // Offset: 2088 + keen::ds::actor::ActorSequenceReference deathSequence; // Offset: 2504 + keen::bool deathSequenceWaitsForGroundedState; // Offset: 2520 + keen::bool defaultVisibleState; // Offset: 2521 + keen::bool sendDeathEvent; // Offset: 2522 + keen::ds::actor::SequenceResourceId deathSequenceId; // Offset: 2524 + keen::ds::ecs::ColliderMode currentColliderMode; // Offset: 2528 + keen::ds::actor::RotationInterpolation rotationInterpolation; // Offset: 2532 +}; + +struct ecs.DisableColliderModeChanges { +}; + +struct ecs.NetworkActor { + keen::ds::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::ds::actor::AbilityMask currentAbilityMask; // Offset: 24 + keen::ds::actor::StateMask currentState; // Offset: 32 + keen::ds::ecs::EntityId interactionHostId; // Offset: 40 + keen::StaticArray currentActionEntityTags; // Offset: 44 + keen::ds::ItemId usedItemId; // Offset: 108 + keen::ds::actor::ActionSequenceState currentActionState; // Offset: 112 +}; + +struct ecs.ClientActor { + keen::ds::actor::SequenceRuntimeId lastReceivedSequenceRuntimeId; // Offset: 2088 +}; + +struct ecs.SimpleActorInput { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 0 + keen::ds::ItemReference usedItem; // Offset: 16 + keen::bool loop; // Offset: 32 +}; + +struct ecs.SimpleToggleActor { + keen::ds::ecs::SimpleActorInput on; // Offset: 0 + keen::ds::ecs::SimpleActorInput off; // Offset: 36 +}; + +struct ecs.DynamicSimpleToggleActor { + keen::Time triggerTime; // Offset: 0 +}; + +typedef keen::ecs::TrapState ecs.TrapState; + +typedef keen::impact::AttackCategoryMask impact.AttackCategoryMask; + +struct ecs.SimpleTrapActor { + keen::ds::ecs::SimpleActorInput onTriggerEnter; // Offset: 0 + keen::ds::ecs::SimpleActorInput onTriggerLeave; // Offset: 36 + keen::ds::ecs::SimpleActorInput onArm; // Offset: 72 + keen::ds::ecs::SimpleActorInput onDisarm; // Offset: 108 + keen::Time triggerCooldownTime; // Offset: 144 + keen::bool triggerOnHit; // Offset: 152 + keen::ds::impact::AttackCategoryMask disabledDamageTypes; // Offset: 153 + keen::ds::animationgraph::StateIdReference idleArmedAnimation; // Offset: 156 + keen::ds::animationgraph::StateIdReference idleDisarmedAnimation; // Offset: 172 +}; + +struct ecs.DynamicSimpleTrapActor { + keen::Time lastArmedTime; // Offset: 0 + keen::ds::ecs::TrapState state; // Offset: 8 +}; + +struct ecs.TeleportZone { + keen::ds::ecs::EntityTagReference zoneTag; // Offset: 0 +}; + +struct ecs.TeleportZoneConnection { + keen::ds::LocaTagId teleporterId; // Offset: 0 + keen::ds::LocaTagId targetTeleporterId; // Offset: 4 +}; + +struct ecs.Teleport { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 56 + keen::bool applied; // Offset: 60 + keen::bool searchBestSpawnPosition; // Offset: 61 +}; + +struct ecs.FallDamage { + keen::float32 fallDamageStartDistance; // Offset: 0 + keen::float32 fallDamageLethalDistance; // Offset: 4 + keen::ds::actor::ActorSequenceReference fallDamageSequence; // Offset: 8 +}; + +struct ecs.DynamicFallDamage { + keen::bool wasFalling; // Offset: 0 + keen::bool resetFallAltitudeOnApex; // Offset: 1 + keen::float32 fallStartAltitude; // Offset: 4 + keen::float32 detectedFallDistance; // Offset: 8 + keen::float32 detectedFallDamagePercentage; // Offset: 12 +}; + +struct ecs.ServerCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::ds::CameraId lockedCameraId; // Offset: 1 + keen::Time unlockTime; // Offset: 8 + keen::ds::CameraOverride cameraOverride; // Offset: 16 + keen::Time overrideEndTime; // Offset: 24 +}; + +struct ecs.NetworkCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::ds::CameraId lockedCameraId; // Offset: 1 + keen::ds::CameraOverride cameraOverride; // Offset: 2 +}; + +struct ecs.ClientCameraControl { + keen::ds::CameraId activeCameraId; // Offset: 0 + keen::float32 idleCameraTriggerDelay; // Offset: 4 + keen::float32 buildingCameraSwitchDelay; // Offset: 8 + keen::float32 hipfireCameraSwitchDelay; // Offset: 12 + keen::WorldPosition entityCameraPosition; // Offset: 16 + keen::Quaternion entityCameraOrientation; // Offset: 40 +}; + +typedef keen::ecs::LockedTargetFlags ecs.LockedTargetFlags; + +struct ecs.TargetSelector { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 range; // Offset: 4 + keen::Time time; // Offset: 8 +}; + +typedef keen::ecs::TargetImportance ecs.TargetImportance; + +struct ecs.TargetInfo { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ds::ecs::Offset targetingOffset; // Offset: 56 + keen::ds::ecs::EntityId targetId; // Offset: 96 + keen::ds::ecs::TargetImportance targetImportance; // Offset: 100 + keen::ds::ecs::ColliderId colliderId; // Offset: 104 + keen::uint16 changeCounter; // Offset: 112 + keen::Bitmask8 flags; // Offset: 114 +}; + +struct ecs.SelectedTargets { + keen::StaticArray targets; // Offset: 0 + keen::ds::actor::SequenceResourceId interactionSequencePredictionHelper; // Offset: 1920 +}; + +struct ecs.NetworkSelectedTargets { + keen::StaticArray targetIds; // Offset: 0 + keen::bool combatTargetSupportsHardLock; // Offset: 64 +}; + +struct ecs.ParentTargets { +}; + +struct ecs.ServerTarget { + keen::bool hardLockTarget; // Offset: 0 + keen::ds::ecs::TargetImportance targetImportance; // Offset: 1 +}; + +struct ecs.HardLockTarget { +}; + +struct ecs.ClearPathToTarget { + keen::float32 yOffset; // Offset: 0 + keen::ds::ecs::QueryId queryId; // Offset: 4 + keen::bool hasHitSolidCollider; // Offset: 8 + keen::bool hasHitSteeringCollider; // Offset: 9 +}; + +struct ecs.Loot { + keen::ds::ItemId itemId; // Offset: 0 + keen::bool awaitingDestroy; // Offset: 4 +}; + +struct ecs.Orb { + keen::ds::NotifierReference pickupNotifier; // Offset: 0 + keen::ds::ecs::TemplateReference pickupTemplate; // Offset: 16 + keen::ds::ImpactProgramReference program; // Offset: 32 + keen::bool awaitingDestroy; // Offset: 48 + keen::ds::SoundContainerReference sfx; // Offset: 52 + keen::ds::VfxReference vfx; // Offset: 68 +}; + +struct ecs.SceneLootNodeId { + keen::ds::LootContainerId id; // Offset: 0 +}; + +struct ecs.RandomLoot { + keen::ObjectReference defaultLabels; // Offset: 0 +}; + +struct ecs.RandomLootProbability { + keen::float32 spawnProbability; // Offset: 0 +}; + +struct ecs.RandomLootSlotCount { + keen::uint8 slotsMin; // Offset: 0 + keen::uint8 slotsMax; // Offset: 1 +}; + +struct ecs.RandomLootContainer { + keen::uint32 spawnedLootVersion; // Offset: 0 + keen::ds::LootContainerId parentNodeId; // Offset: 4 + keen::ds::LootContainerId defaultLabelsId; // Offset: 8 +}; + +struct ecs.RandomLootPlayerScale { + keen::uint8 playerCount; // Offset: 0 +}; + +struct ecs.RandomLootLock { +}; + +struct ecs.PickupLootSlot { + keen::ds::ecs::TemplateReference genericPickupItem; // Offset: 0 + keen::ds::ecs::EntityId spawnedPickupEntity; // Offset: 16 +}; + +struct ecs.RandomLootInventory { +}; + +struct ecs.RandomLootOnDestroy { + keen::bool triggered; // Offset: 0 +}; + +struct ecs.DisableRandomLootOnDestroy { +}; + +struct ecs.RandomLootEntitySpawner { + keen::ds::ecs::TemplateReference lootEntity; // Offset: 0 + keen::ds::ecs::EntityId spawnedEntityId; // Offset: 16 +}; + +struct ecs.LocaTagComponent { + keen::ds::LocaTagReference locaTag; // Offset: 0 +}; + +struct LocaTag { + keen::ds::string keenglish; // Offset: 0 + keen::ds::string description; // Offset: 40 +}; + +typedef keen::ds::LocaTag ecs.MapMarkerLocaTag; + +typedef keen::ObjectReference MapMarkerTypeReference; + +struct ecs.MapMarker { + keen::ds::LocaTagReference markerId; // Offset: 0 + keen::ds::MapMarkerTypeReference markerType; // Offset: 16 + keen::float rangeScale; // Offset: 32 +}; + +typedef keen::ecs::MapMarkerVisibilityType ecs.MapMarkerVisibilityType; + +typedef keen::ecs::MapMarkerVisibilityStateMask ecs.MapMarkerVisibilityStateMask; + +struct ecs.MapMarkerVisibilityState { + keen::ds::ecs::MapMarkerVisibilityType visibility; // Offset: 0 + keen::Time lastChange; // Offset: 8 + keen::uint16 knowledgeChangeCounter; // Offset: 16 +}; + +struct ecs.MapMarkerToggleState { + keen::ds::ecs::MapMarkerVisibilityStateMask visibilityMap; // Offset: 0 +}; + +struct ecs.Location { + keen::ds::ecs::LocalPlayerMask isInLocation; // Offset: 0 +}; + +struct ecs.IsPlayerInRange { + keen::bool onlyPlayer; // Offset: 0 + keen::ds::actor::StateMask ignoreStates; // Offset: 8 + keen::Time updateDelay; // Offset: 16 + keen::float32 deactivateRange; // Offset: 24 + keen::float32 minRange; // Offset: 28 +}; + +struct ecs.DynamicIsPlayerInRange { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::ds::ecs::EntityId closestActorId; // Offset: 4 + keen::Time startTime; // Offset: 8 +}; + +typedef keen::ecs::ToggleType ecs.ToggleType; + +typedef keen::ecs::ToggleMask ecs.ToggleMask; + +struct ecs.ToggleInShape { + keen::ds::ecs::ToggleMask ignoreState; // Offset: 0 +}; + +struct ecs.InertialFrame { + keen::float3 velocity; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SlopeDefinition { + keen::Angle steepFloorAngle; // Offset: 0 + keen::Angle slidingAngle; // Offset: 4 + keen::Angle fallDamageAngle; // Offset: 8 + keen::Angle slidingMaterialMinAngle; // Offset: 12 +}; + +struct ecs.SlopeConfig { + keen::ds::SlopeDefinition slopeDefinition; // Offset: 0 + keen::ObjectReference slopeDefinitionObject; // Offset: 16 +}; + +typedef keen::ecs::HookShotType ecs.HookShotType; + +struct ecs.PlayerFx { + keen::ds::ecs::EntityId fxEntityId; // Offset: 0 + keen::ds::ecs::EntityId attachEntityId; // Offset: 4 +}; + +struct ecs.PlayerFxSpawner { + keen::ds::ecs::PlayerFx hookShotTargetFx; // Offset: 0 + keen::ds::ecs::PlayerFx hookShotRopeFx; // Offset: 8 + keen::ds::ecs::PlayerFx gliderUpstreamFx; // Offset: 16 +}; + +typedef keen::ecs::HookShotState ecs.HookShotState; + +struct ecs.HookShot { + keen::ds::ecs::EntityId triggerAnchorEntityId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::ds::actor::ActionSequenceTrigger sequenceTrigger; // Offset: 16 + keen::ds::ItemInstanceInfo triggerItemInstance; // Offset: 20 + keen::ds::ecs::HookShotType hookShotType; // Offset: 40 + keen::ds::ecs::HookShotState hookShotState; // Offset: 41 + keen::ds::actor::SequenceResourceId sequenceResourceId; // Offset: 44 + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 48 + keen::ds::ecs::EntityId anchorEntityId; // Offset: 72 + keen::WorldPosition anchorPosition; // Offset: 80 + keen::float3 hookPullActorTargetOffset; // Offset: 104 + keen::float3 hookPullAnchorNormal; // Offset: 116 + keen::float3 hookPullOriginalVelocity; // Offset: 128 + keen::float3 hookSwingOriginalHorizontalDirection; // Offset: 140 + keen::Time hookSwingEndTime; // Offset: 152 + keen::float32 hookSwingRopeLength; // Offset: 160 + keen::bool isEnemyHookAnchor; // Offset: 164 + keen::bool useHookShotCamera; // Offset: 165 + keen::bool hasTouchedGroundAfterHook; // Offset: 166 +}; + +struct ecs.ClientHookShot { + keen::Time triggerTime; // Offset: 0 + keen::WorldPosition anchorPosition; // Offset: 8 + keen::bool useHookShotCamera; // Offset: 32 + keen::ds::ecs::HookShotType hookShotType; // Offset: 33 +}; + +struct ecs.HookShotDiscoverMemory { + keen::StaticArray entityIds; // Offset: 0 + keen::uint16 discoveredMask; // Offset: 64 +}; + +struct ecs.HookShotInteractionOffer { + keen::WorldTransform targetTransform; // Offset: 0 + keen::float3 actorTargetOffset; // Offset: 56 + keen::uint32 anchorEntityLevel; // Offset: 68 + keen::ds::ecs::HookShotType hookShotType; // Offset: 72 + keen::uint8 index; // Offset: 73 + keen::bool hasPriority; // Offset: 74 +}; + +struct ecs.HookShotTargeting { + keen::ds::ecs::HookShotInteractionOffer bestInteractionOffer; // Offset: 0 + keen::ds::ecs::HookShotDiscoverMemory discoverMemory; // Offset: 80 +}; + +struct ecs.HookShotAnchor { + keen::ds::ecs::HookShotType hookShotType; // Offset: 0 + keen::float3 targetOffset; // Offset: 4 +}; + +struct ecs.HookShotAnchorSubEntity { + keen::ds::ecs::TemplateReference anchorEntityTemplate; // Offset: 0 + keen::ds::ecs::Offset attachmentOffset; // Offset: 16 +}; + +struct ecs.HookPullImpulse { + keen::ds::ecs::ImpulseData impulseData; // Offset: 0 + keen::ds::ecs::EntityId pullingEntityId; // Offset: 32 +}; + +typedef keen::ecs::ClimbType ecs.ClimbType; + +typedef keen::ecs::ClimbState ecs.ClimbState; + +typedef keen::ecs::LadderQueryType ecs.LadderQueryType; + +struct ecs.LadderQuery { + keen::ds::ecs::QueryId queryId; // Offset: 0 + keen::bool isValid; // Offset: 4 + keen::bool enable; // Offset: 5 +}; + +struct ecs.Climb { + keen::ds::ecs::ClimbType climbType; // Offset: 0 + keen::ds::ecs::ClimbState climbState; // Offset: 1 + keen::float3 climbNormal; // Offset: 4 + keen::Time climbBlockingTimeEnd; // Offset: 16 + keen::StaticArray ladderCollisionQueries; // Offset: 24 + keen::ds::ecs::EntityId ladderEntityId; // Offset: 48 + keen::ds::ecs::RangeQueryId laddersQueryId; // Offset: 52 + keen::bool ladderStepPhase; // Offset: 56 +}; + +struct ecs.Ladder { + keen::float3 topOffset; // Offset: 0 + keen::float3 bottomOffset; // Offset: 12 + keen::float3 normal; // Offset: 24 +}; + +struct ecs.LerpTransformData { + keen::ds::ecs::LerpTransformTarget target; // Offset: 0 + keen::Time localTime; // Offset: 8 + keen::Time duration; // Offset: 16 +}; + +struct ecs.LerpTransform { + keen::StaticArray targetTransforms; // Offset: 0 + keen::ds::ecs::LerpTransformData positionLerpData; // Offset: 168 + keen::ds::ecs::LerpTransformData orientationLerpData; // Offset: 192 +}; + +struct ecs.BasicSpawnerComponent { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct ecs.TriggerSpawner { + keen::bool isTriggered; // Offset: 16 + keen::ds::ecs::EntityId spawnedEntityId; // Offset: 20 + keen::Time spawnTimeout; // Offset: 24 + keen::Time nextAllowedSpawnTime; // Offset: 32 +}; + +struct ecs.TriggerBoxMultiSpawner { + keen::bool linkDestroyToEventSender; // Offset: 16 + keen::bool randomizeOrientation; // Offset: 17 + keen::Time lastTriggerTime; // Offset: 24 + keen::float32 minDistanceToEventSender; // Offset: 32 +}; + +typedef keen::ecs::SpawnTarget ecs.SpawnTarget; + +typedef keen::ecs::SpawnMode ecs.SpawnMode; + +typedef keen::ecs::SpawnOrientationMode ecs.SpawnOrientationMode; + +typedef keen::ecs::SpawnCondition ecs.SpawnCondition; + +typedef keen::ecs::SpawnConditionFlags ecs.SpawnConditionFlags; + +struct ecs.SpawnGroupId { +}; + +struct ecs.SpawnGroup { + keen::ObjectReference spawnGroupId; // Offset: 0 + keen::uint8 minSpawnAmount; // Offset: 16 + keen::uint8 maxSpawnAmount; // Offset: 17 + keen::float weight; // Offset: 20 +}; + +struct ecs.SpawnerEntry { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 + keen::ObjectReference spawnGroupId; // Offset: 16 + keen::ds::ecs::SpawnConditionFlags spawnConditions; // Offset: 32 + keen::float weight; // Offset: 36 +}; + +struct ecs.SpawnPositionSettings { + keen::float horizontalSearchDistance; // Offset: 0 + keen::float verticalSearchDistance; // Offset: 4 + keen::float minHorizontalSpace; // Offset: 8 + keen::float minVerticalSpace; // Offset: 12 + keen::ds::ecs::PathNodeRequirements nodeRequirements; // Offset: 16 + keen::ds::ecs::PathGridType pathGridType; // Offset: 20 +}; + +struct ecs.RandomSpawner { + keen::DsArray spawnEntries; // Offset: 0 + keen::DsArray spawnGroups; // Offset: 40 + keen::float32 minSpawnRange; // Offset: 80 + keen::float32 maxSpawnRange; // Offset: 84 + keen::Time initialSpawnTimeout; // Offset: 88 + keen::Time minSpawnTimeout; // Offset: 96 + keen::Time maxSpawnTimeout; // Offset: 104 + keen::uint8 minSpawnAmount; // Offset: 112 + keen::uint8 maxSpawnAmount; // Offset: 113 + keen::Time minSpawnDelay; // Offset: 120 + keen::Time maxSpawnDelay; // Offset: 128 + keen::uint8 maxTotalSpawnCount; // Offset: 136 + keen::bool destroyOnSpawnFinished; // Offset: 137 + keen::ds::ecs::SpawnMode spawnMode; // Offset: 138 + keen::ds::ecs::SpawnTarget spawnTarget; // Offset: 139 + keen::ds::ecs::SpawnOrientationMode spawnOrientationMode; // Offset: 140 + keen::float32 minEntityDistance; // Offset: 144 + keen::float32 maxEntityDistance; // Offset: 148 + keen::float32 maxSpawnAngle; // Offset: 152 + keen::bool waitUntilEntitiesAreDestroyed; // Offset: 156 + keen::bool allowRespawn; // Offset: 157 + keen::bool useKeepAliveConditions; // Offset: 158 + keen::bool searchForGroundPosition; // Offset: 159 + keen::ds::ecs::SpawnPositionSettings spawnPositionSettings; // Offset: 160 + keen::bool spawnAsUnitGroup; // Offset: 184 + keen::bool despawnEntities; // Offset: 185 + keen::bool checkDeathState; // Offset: 186 + keen::float32 conditionalDespawnMinRange; // Offset: 188 + keen::float32 defaultDespawnMinRange; // Offset: 192 + keen::bool useUpScaling; // Offset: 196 + keen::bool useDownScaling; // Offset: 197 + keen::ds::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 198 +}; + +struct ecs.RandomSpawnerCommand { + keen::Time spawnTime; // Offset: 0 + keen::ds::ecs::Transform transform; // Offset: 8 + keen::uint8 spawnEntryIndex; // Offset: 36 + keen::bool isAdditionalScalingCommand; // Offset: 37 +}; + +struct ecs.DynamicRandomSpawner { + keen::Time nextSpawnTime; // Offset: 0 + keen::ds::ecs::EntityId currentGroupId; // Offset: 8 + keen::StaticArray spawnedEntities; // Offset: 12 + keen::StaticArray spawnCommands; // Offset: 48 + keen::bool wasSpawnedEntityAlive; // Offset: 528 + keen::bool wasAnySpawnedEntityKilled; // Offset: 529 + keen::uint8 totalSpawnCount; // Offset: 530 + keen::uint8 spawnCommandCount; // Offset: 531 + keen::Time trySpawnDuration; // Offset: 536 +}; + +struct ecs.ConditionalDespawn { + keen::float32 conditionalDespawnMinRange; // Offset: 0 + keen::float32 defaultDespawnMinRange; // Offset: 4 + keen::ds::ecs::SpawnConditionFlags keepAliveConditions; // Offset: 8 + keen::Time nextQueryUpdateTime; // Offset: 16 +}; + +struct ecs.ClientToggleFromActorState { + keen::ds::ecs::EntityReferenceType entityReferenceType; // Offset: 0 + keen::ds::actor::StateMask setIf; // Offset: 8 + keen::ds::actor::StateMask setIfNot; // Offset: 16 +}; + +struct ecs.NetworkHealth { + keen::uint32 health; // Offset: 0 + keen::uint32 healthMax; // Offset: 4 +}; + +struct ecs.NetworkStamina { + keen::uint16 stamina; // Offset: 0 + keen::uint16 staminaMax; // Offset: 2 +}; + +struct ecs.NetworkLevel { + keen::uint16 level; // Offset: 0 +}; + +struct ecs.NetworkServerProgress { + keen::uint16 level; // Offset: 0 + keen::uint16 currentAltarCount; // Offset: 2 + keen::uint16 currentHighestAltarLevel; // Offset: 4 +}; + +struct ecs.BaseAttributesData { + keen::uint8 strength; // Offset: 0 + keen::uint8 strengthFromSkill; // Offset: 1 + keen::uint8 dexterity; // Offset: 2 + keen::uint8 dexterityFromSkill; // Offset: 3 + keen::uint8 intelligence; // Offset: 4 + keen::uint8 intelligenceFromSkill; // Offset: 5 + keen::uint8 constitution; // Offset: 6 + keen::uint8 constitutionFromSkill; // Offset: 7 + keen::uint8 endurance; // Offset: 8 + keen::uint8 enduranceFromSkill; // Offset: 9 + keen::uint8 spirit; // Offset: 10 + keen::uint8 spiritFromSkill; // Offset: 11 +}; + +struct ecs.ArmorAttributes { + keen::float32 physicalBlowthrough; // Offset: 0 + keen::float32 magicalBlowthrough; // Offset: 4 + keen::uint16 physicalArmor; // Offset: 8 + keen::uint16 cutArmor; // Offset: 10 + keen::uint16 bluntArmor; // Offset: 12 + keen::uint16 pierceArmor; // Offset: 14 + keen::uint16 magicalArmor; // Offset: 16 + keen::uint16 fireArmor; // Offset: 18 + keen::uint16 iceArmor; // Offset: 20 + keen::uint16 fogArmor; // Offset: 22 + keen::uint16 lightningArmor; // Offset: 24 +}; + +typedef keen::ecs::ReviveState ecs.ReviveState; + +struct ecs.NetworkReviveData { + keen::ds::ecs::ReviveState state; // Offset: 0 + keen::float duration; // Offset: 4 + keen::float left; // Offset: 8 +}; + +struct ecs.NetworkPlayerAttributes { + keen::ds::ecs::ArmorAttributes armorAttributes; // Offset: 0 + keen::ds::ecs::BaseAttributesData baseAttributes; // Offset: 28 + keen::ds::ecs::NetworkReviveData revivieData; // Offset: 40 + keen::float32 movementNormal; // Offset: 52 + keen::float32 movementSprint; // Offset: 56 + keen::float32 movementSneak; // Offset: 60 + keen::float32 reviveDuration; // Offset: 64 + keen::float32 reviveHealth; // Offset: 68 + keen::float32 critChance; // Offset: 72 + keen::float32 critChanceMagic; // Offset: 76 + keen::float32 critChanceMelee; // Offset: 80 + keen::float32 critChanceRanged; // Offset: 84 + keen::uint16 critDamageMod; // Offset: 88 + keen::uint16 damageMod; // Offset: 90 + keen::uint16 meleeDamageMod; // Offset: 92 + keen::uint16 rangedDamageMod; // Offset: 94 + keen::uint16 magicDamageMod; // Offset: 96 + keen::uint16 damageModSneak; // Offset: 98 + keen::uint16 damageModMerciless; // Offset: 100 + keen::uint16 damageModBackstab; // Offset: 102 + keen::uint16 damageModSkillshot; // Offset: 104 + keen::uint16 poisonSusceptibility; // Offset: 106 + keen::uint16 health; // Offset: 108 + keen::uint16 healthMax; // Offset: 110 + keen::uint16 healthReg; // Offset: 112 + keen::uint16 healthRegDelay; // Offset: 114 + keen::uint16 stamina; // Offset: 116 + keen::uint16 staminaMax; // Offset: 118 + keen::uint16 staminaReg; // Offset: 120 + keen::uint16 staminaRegDelay; // Offset: 122 + keen::uint16 mana; // Offset: 124 + keen::uint16 manaMax; // Offset: 126 + keen::uint16 manaReg; // Offset: 128 + keen::uint16 manaRegDelay; // Offset: 130 + keen::uint16 bodyHeat; // Offset: 132 + keen::uint16 bodyHeatMax; // Offset: 134 + keen::uint16 bodyHeatReg; // Offset: 136 + keen::uint16 bodyHeatRegDelay; // Offset: 138 + keen::uint16 experience; // Offset: 140 + keen::uint16 experienceRequired; // Offset: 142 + keen::uint16 fogResistance; // Offset: 144 + keen::uint16 fogResistanceMax; // Offset: 146 + keen::uint16 level; // Offset: 148 + keen::uint16 staffDamage; // Offset: 150 + keen::uint16 wandDamage; // Offset: 152 + keen::uint16 oneHandedDamage; // Offset: 154 + keen::uint16 twoHandedDamage; // Offset: 156 + keen::uint16 bowDamage; // Offset: 158 + keen::uint16 daggerDamage; // Offset: 160 + keen::uint16 throwableDamage; // Offset: 162 + keen::uint16 unarmedDamage; // Offset: 164 + keen::uint16 magicalFoeDamage; // Offset: 166 + keen::uint16 meleeFoeDamage; // Offset: 168 + keen::uint16 rangedFoeDamage; // Offset: 170 + keen::uint16 flyingFoeDamage; // Offset: 172 + keen::uint16 skeletonFoeDamage; // Offset: 174 + keen::uint16 healing; // Offset: 176 + keen::uint16 freezingResistance; // Offset: 178 + keen::uint8 comfortLevel; // Offset: 180 +}; + +typedef keen::ecs::GatherResourceType ecs.GatherResourceType; + +struct ecs.MiningNode { + keen::ds::ecs::GatherResourceType resourceType; // Offset: 0 + keen::ds::NotifierReference onResourceDepletion; // Offset: 4 + keen::ds::ecs::Offset offset; // Offset: 20 + keen::ds::SoundContainerReference sfx; // Offset: 60 + keen::ds::VfxReference vfx; // Offset: 76 + keen::uint8 aliveDropCount; // Offset: 92 + keen::uint8 numberOfDrops; // Offset: 93 +}; + +struct ecs.DynamicMiningNode { + keen::bool isInitialized; // Offset: 0 + keen::bool canBeDestroyed; // Offset: 1 + keen::uint8 remainingDropCount; // Offset: 2 +}; + +struct ecs.WiggleComponent { + keen::Time startTime; // Offset: 0 + keen::float3 rotationAxis; // Offset: 8 + keen::Time duration; // Offset: 24 + keen::float32 intensity; // Offset: 32 + keen::float32 bounciness; // Offset: 36 +}; + +struct ecs.HealthBasedScale { + keen::float32 minSize; // Offset: 0 + keen::uint8 percentage; // Offset: 4 +}; + +struct ecs.InventoryEmptyState { + keen::bool toggleVFX; // Offset: 0 + keen::bool isEmpty; // Offset: 1 +}; + +struct ecs.CopyInventoryEmptyStateFromParent { +}; + +struct ecs.TransformHistoryEntry { + keen::uint32 tick; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct ecs.TransformationHistory { + keen::StaticArray history; // Offset: 0 + keen::Time lastSampleTime; // Offset: 3840 + keen::uint32 lastIndex; // Offset: 3848 + keen::uint32 maxIndex; // Offset: 3852 +}; + +struct ecs.ServerTransformationHistory { +}; + +struct ecs.ClientTransformationHistory { +}; + +struct ecs.GameEvent { + keen::Time timeStamp; // Offset: 0 +}; + +struct ecs.BaseHitEvent { + keen::WorldTransform targetTransform; // Offset: 8 + keen::float3 volumeMin; // Offset: 64 + keen::float3 volumeMax; // Offset: 76 + keen::bool hasVolume; // Offset: 88 + keen::float32 miningDamagedVolume; // Offset: 92 + keen::float32 miningRemovedVolume; // Offset: 96 + keen::bool hasMiningVolume; // Offset: 100 + keen::ds::CollisionFeedbackMaterialReference materialA; // Offset: 104 + keen::ds::CollisionFeedbackMaterialReference materialB; // Offset: 120 + keen::float3 position; // Offset: 136 + keen::float3 normal; // Offset: 148 + keen::float3 hitDirection; // Offset: 160 + keen::ds::ecs::EntityId rootSourceId; // Offset: 172 + keen::ds::ecs::EntityId targetId; // Offset: 176 + keen::ds::ecs::HitEventFlagMask flags; // Offset: 180 +}; + +struct impact.ImpactId { + keen::uint32 id; // Offset: 0 +}; + +typedef keen::impact::PushBackForce impact.PushBackForce; + +typedef keen::WeaponCategoryId WeaponCategoryId; + +struct ecs.HitEvent { + keen::ds::ecs::EntityId rootTargetId; // Offset: 184 + keen::ds::ecs::EntityId sourceId; // Offset: 188 + keen::ds::ecs::EntityId permissionSourceId; // Offset: 192 + keen::ds::ecs::EntityId weaponPideId; // Offset: 196 + keen::ds::ecs::EntityId armorPideId; // Offset: 200 + keen::float32 hitAngle; // Offset: 204 + keen::float32 range; // Offset: 208 + keen::sint32 healthChange; // Offset: 212 + keen::sint32 staminaChange; // Offset: 216 + keen::float32 aggro; // Offset: 220 + keen::float32 noiseRange; // Offset: 224 + keen::ds::impact::ImpactId impactId; // Offset: 228 + keen::ds::impact::PushBackForce pushBackForce; // Offset: 232 + keen::ds::impact::HitReactionType hitReaction; // Offset: 234 + keen::ds::impact::MajorDirection hitDirectionConfig; // Offset: 236 + keen::ds::impact::AttackCategoryMask attackCategory; // Offset: 237 + keen::ds::WeaponCategoryId weaponCategory; // Offset: 240 + keen::ds::FactionType targetFaction; // Offset: 244 +}; + +struct ecs.HitHistory { + keen::StaticArray history; // Offset: 0 + keen::StaticArray targetTransform; // Offset: 2480 + keen::uint32 lastIndex; // Offset: 3040 + keen::uint32 maxIndex; // Offset: 3044 +}; + +struct ecs.ExperienceSource { + keen::ds::ecs::EntityId lastHitPlayerId; // Offset: 0 + keen::float xpMod; // Offset: 4 +}; + +struct ecs.FogOfWarDiscovery { + keen::float32 discoveryRange; // Offset: 0 +}; + +typedef keen::FogType FogType; + +struct ecs.EnvironmentSensor { + keen::ds::FogType fogType; // Offset: 0 + keen::ds::TemperatureVoxelType temperature; // Offset: 1 +}; + +struct ecs.ToggleAnimation { + keen::ds::animationgraph::StateIdReference animationStateOn; // Offset: 0 + keen::ds::animationgraph::StateIdReference animationStateOff; // Offset: 16 +}; + +struct ecs.ToggleOnHit { + keen::ds::impact::AttackCategoryMask disabledDamageTypes; // Offset: 0 + keen::bool canToggleOn; // Offset: 1 + keen::bool canToggleOff; // Offset: 2 +}; + +struct ecs.LinkToggleStateToSignalState { + keen::ds::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentSignalState { + keen::ds::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.LinkClientToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.SendToggleStateToParentToggleState { +}; + +struct ecs.LinkToggleStateToEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.SignalTransmitter { + keen::ds::SignalReference signal; // Offset: 0 + keen::ds::SignalId signalId; // Offset: 16 + keen::bool state; // Offset: 20 + keen::bool sendActivatedEvent; // Offset: 21 + keen::bool sendDeactivatedEvent; // Offset: 22 + keen::bool sendResultSignal; // Offset: 23 +}; + +struct ecs.SignalReceiver { + keen::ds::SignalId signalId; // Offset: 0 + keen::ds::ecs::EntityId lastSenderId; // Offset: 4 + keen::ds::SignalReference signal; // Offset: 8 +}; + +typedef keen::DelayMask DelayMask; + +struct ecs.SignalDelay { + keen::Time duration; // Offset: 0 + keen::ds::DelayMask filterMask; // Offset: 8 + keen::Time toggleTime; // Offset: 16 + keen::bool nextState; // Offset: 24 + keen::bool initialized; // Offset: 25 +}; + +struct ecs.MagicalBarrier { +}; + +struct ecs.MagicalBarrierConnection { + keen::bool initialized; // Offset: 0 + keen::ds::ecs::EntityId barrierEntityId; // Offset: 4 + keen::ds::ecs::EntityId spawnedSubentityId; // Offset: 8 + keen::ObjectReference spawnEntity; // Offset: 12 +}; + +struct ecs.LocalSignalReceiver { + keen::ds::SignalReference signal; // Offset: 0 +}; + +struct ecs.MultiSignalReceiver { + keen::bool evaluate; // Offset: 0 + keen::StaticArray calculation; // Offset: 4 + keen::StaticArray signalIds; // Offset: 132 + keen::StaticArray signalStates; // Offset: 196 + keen::bool receiveActivatedEvent; // Offset: 212 + keen::bool receiveDeactivatedEvent; // Offset: 213 + keen::bool hasEvaluatedToTrueOnce; // Offset: 214 +}; + +struct ecs.MultiSignalReceiverCounter { + keen::uint8 activeCount; // Offset: 0 + keen::uint8 requiredCount; // Offset: 1 +}; + +struct ecs.LoreReading { + keen::ds::LocaTagReference description; // Offset: 0 + keen::ds::ItemId displayedItemId; // Offset: 16 + keen::ds::LocaTagReference entryName; // Offset: 20 + keen::ds::LocaTagReference unlockMapMarker; // Offset: 36 + keen::ds::ItemReference displayedItem; // Offset: 52 +}; + +struct ecs.NonModalHint { + keen::bool hasCloseRangeActivation; // Offset: 0 + keen::float fullTextActivation; // Offset: 4 + keen::ds::LocaTagReference description; // Offset: 8 + keen::bool hasKnowledeRequirement; // Offset: 24 + keen::bool useSceneKnowledgeRequirement; // Offset: 25 + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 28 + keen::ds::KnowledgeId queryId; // Offset: 132 +}; + +struct ecs.DynamicNonModalHint { + keen::bool isActive; // Offset: 0 + keen::bool isInCloseRange; // Offset: 1 + keen::float squaredPlayerDistance; // Offset: 4 +}; + +struct ecs.TargetingTransform { + keen::ds::AttachmentSlot attachmentSlot; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 +}; + +struct ecs.UiOffsets { + keen::ds::ecs::Offset healthBarOffset; // Offset: 0 + keen::ds::ecs::Offset interactionPromptOffset; // Offset: 40 +}; + +struct ecs.Boss { +}; + +struct ecs.BossHealthBar { + keen::ds::LocaTagReference displayName; // Offset: 0 + keen::float32 maxPlayerDistance; // Offset: 16 +}; + +struct ecs.BossDisplay { + keen::ds::ecs::RangeQueryId rangeQueryId; // Offset: 0 + keen::ds::ecs::EntityId bossEntityId; // Offset: 4 + keen::bool displayHealthBar; // Offset: 8 + keen::bool isEngagedWithPlayer; // Offset: 9 + keen::ds::LocaTagId displayName; // Offset: 12 +}; + +struct ecs.BossMusicTag { + keen::ds::BossMusicType bossMusic; // Offset: 0 +}; + +struct ecs.Faction { + keen::ds::FactionType faction; // Offset: 0 +}; + +struct ecs.ControlCombatTarget { + keen::ds::ecs::EntityId targetId; // Offset: 0 + keen::ds::actor::SequenceRuntimeId attackSequenceId; // Offset: 8 +}; + +struct ecs.ItemState { + keen::ds::InventorySlotId containedInSlotId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 8 + keen::uint16 baseDamageUi; // Offset: 12 + keen::ds::ItemStateMask itemState; // Offset: 14 + keen::ds::ItemRarity itemRarityUi; // Offset: 15 + keen::uint8 itemLevelUi; // Offset: 16 + keen::uint8 durabilityRatioUi; // Offset: 17 +}; + +typedef keen::ecs::CreateItemLootState ecs.CreateItemLootState; + +struct ecs.CreateItemLoot { + keen::ds::ecs::CreateItemLootState lootCreationState; // Offset: 0 +}; + +struct ecs.ItemEquippedLifetime { +}; + +struct ecs.SpawnedCollectionItem { + keen::ds::ItemId itemId; // Offset: 0 + keen::uint32 modelHandle; // Offset: 4 +}; + +struct ecs.ItemCollectionComponent { + keen::ds::LocaTagReference uiMenuName; // Offset: 0 + keen::ds::LocaTagReference uiSlottingVerb; // Offset: 16 + keen::bool spawnCollectionModels; // Offset: 32 + keen::ObjectReference collection; // Offset: 36 + keen::ObjectReference hierarchy; // Offset: 52 + keen::ObjectReference pose; // Offset: 68 + keen::ObjectReference clothColliderReference; // Offset: 84 + keen::DsArray slots; // Offset: 104 + keen::HashKey32 poseId; // Offset: 144 +}; + +struct ecs.DynamicItemCollectionComponent { + keen::StaticArray spawnedCollectionItems; // Offset: 0 +}; + +struct ecs.TriggerCollectionCompletionKnowledge { + keen::ds::KnowledgeId completionKnowledgeId; // Offset: 0 +}; + +struct ecs.MovementSensor { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 +}; + +struct ecs.FleeSensor { + keen::float32 viewConeHalfAngle; // Offset: 0 + keen::float32 alertZoneMediumWidth; // Offset: 4 + keen::float32 originalFleeRadius; // Offset: 8 + keen::float32 fleeRadius; // Offset: 12 + keen::bool checkViewCone; // Offset: 16 + keen::bool checkBackCone; // Offset: 17 + keen::Time ignoreCalmEnemiesUntilTime; // Offset: 24 + keen::ds::ecs::AlertState alertState; // Offset: 32 + keen::ds::ecs::EntityId highestDangerEntityId; // Offset: 36 + keen::WorldPosition highestDangerPosition; // Offset: 40 + keen::bool forceUpdate; // Offset: 64 +}; + +struct ecs.FriendSensor { + keen::float32 checkRadius; // Offset: 0 + keen::StaticArray friendsInRange; // Offset: 4 +}; + +struct ecs.EnemySensor { + keen::float32 checkRadius; // Offset: 0 + keen::uint8 enemiesInRange; // Offset: 4 +}; + +struct ecs.CheckLineAboveSensor { + keen::float32 lineCheckHeightAbove; // Offset: 0 +}; + +struct ecs.SafePlayerPosition { + keen::Time minSafeDuration; // Offset: 0 + keen::float32 minFallHeight; // Offset: 8 +}; + +struct ecs.DynamicSafePlayerPosition { + keen::WorldTransform transform; // Offset: 0 + keen::Time currentSafeDuration; // Offset: 56 +}; + +struct ecs.Crafting { + keen::ObjectReference workshop; // Offset: 0 + keen::ds::WorkshopId workshopId; // Offset: 16 +}; + +struct ecs.LevelBasedModel { + keen::sint32 level; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +struct ecs.LevelBasedBuildingRange { + keen::sint32 level; // Offset: 0 + keen::float3 box; // Offset: 4 +}; + +struct ecs.UpgradableBuildingRange { +}; + +struct ecs.UpgradeData { + keen::ds::ecs::TemplateReference upgradeEntity; // Offset: 0 + keen::sint32 level; // Offset: 16 +}; + +struct ecs.Upgrade { + keen::DsArray levels; // Offset: 0 +}; + +struct ecs.DynamicUpgrade { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::sint32 spawnedLevel; // Offset: 4 +}; + +struct ecs.StoreAttributes { + keen::float32 health; // Offset: 0 + keen::float32 stamina; // Offset: 4 + keen::float32 mana; // Offset: 8 + keen::float32 bodyHeat; // Offset: 12 + keen::bool restoreAttributes; // Offset: 16 +}; + +struct ecs.GrassEffector { +}; + +struct ecs.SnappingBoxWorld { + keen::ds::ecs::AlignedBox worldBox; // Offset: 0 + keen::ds::ecs::AlignedBox snappingBox; // Offset: 24 + keen::ds::ItemId containedItemId; // Offset: 48 + keen::uint8 version; // Offset: 52 +}; + +struct ecs.SnappingBoxLocal { + keen::ds::ecs::AlignedBox localBox; // Offset: 0 + keen::ds::ItemId containedItemId; // Offset: 24 +}; + +struct ecs.TemporaryMining { + keen::int3 voxelPosition; // Offset: 0 + keen::float32 relativeHealth; // Offset: 12 +}; + +struct ecs.ClientCycleInventoryStock { + keen::uint8 inventoryStockType; // Offset: 0 + keen::bool canCycle; // Offset: 1 + keen::bool isCyclingDisabled; // Offset: 2 + keen::bool showStock; // Offset: 3 +}; + +struct ecs.ClientLineOfSightState { + keen::ds::ecs::LineOfSightState lineOfSightState; // Offset: 0 +}; + +struct UiNpcRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::ds::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::ds::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +struct ecs.NpcSetup { + keen::ds::LocaTagReference name; // Offset: 0 + keen::bool includeInNpcRegistry; // Offset: 16 + keen::bool isCraftingAssistant; // Offset: 17 + keen::ds::LocaTagReference workshopLabel; // Offset: 20 + keen::ds::CharacterPresetReference preset; // Offset: 36 + keen::ds::GameKnowledgeRequirement unlockRequirement; // Offset: 52 + keen::ds::ItemReference placementItem; // Offset: 156 + keen::ds::UiNpcRenderingOptions uiRendering; // Offset: 172 +}; + +struct ecs.CharacterSetup { + keen::ds::Gender gender; // Offset: 0 + keen::ds::VoicePackId voicePackId; // Offset: 4 + keen::ds::CharacterPresetId presetId; // Offset: 8 + keen::ds::ItemId hair; // Offset: 12 + keen::ds::ItemId beard; // Offset: 16 + keen::ds::ColorPresetId hairColorId; // Offset: 20 + keen::ds::ColorPresetId beardColorId; // Offset: 24 + keen::ds::PaletteColorId skinColor; // Offset: 28 + keen::ds::PaletteColorId eyeBrowColor; // Offset: 32 + keen::ds::PaletteColorId eyeColor; // Offset: 36 + keen::HashKey32 versionHash; // Offset: 40 +}; + +struct ecs.NewCharacterSetup { +}; + +struct ecs.EquipmentCheck { +}; + +struct ecs.PlayerLowHealth { + keen::Time blendOutDuration; // Offset: 0 + keen::Time lastTriggerTime; // Offset: 8 +}; + +struct ecs.GroundCheck { + keen::bool groundPositionFound; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::Time nextCheckTime; // Offset: 32 +}; + +struct ecs.ProcShuffleBag { + keen::uint8 procEarlyCount; // Offset: 0 + keen::uint8 procOnTimeCount; // Offset: 1 + keen::uint8 procLateCount; // Offset: 2 + keen::sint8 nextHitCountOffset; // Offset: 3 +}; + +struct ecs.TerrainLootMemory { + keen::ds::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::float32 restVolumeAfterPayout; // Offset: 8 +}; + +struct ecs.BuildingLootMemory { + keen::uint32 volume; // Offset: 0 +}; + +struct ecs.MinerSkillMemory { + keen::ds::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 payoutCounter; // Offset: 4 +}; + +struct ecs.TerraformingLootMemory { + keen::StaticArray terrainMemory; // Offset: 0 + keen::StaticArray buildingMemory; // Offset: 1536 + keen::ds::ecs::MinerSkillMemory minerSkillMemory; // Offset: 2048 +}; + +struct ecs.TransformToLoot { + keen::ds::ecs::Offset vfxOnSpawnOffset; // Offset: 0 + keen::ds::ecs::DefaultInventoryReference defaultInventory; // Offset: 40 + keen::ds::actor::ActorSequenceReference defaultAction; // Offset: 56 + keen::ds::LocaTagReference verbLoca; // Offset: 72 + keen::ds::VfxReference vfxOnSpawn; // Offset: 88 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::uint8 genericSlotCount; // Offset: 168 + keen::uint8 availableSlotCount; // Offset: 169 + keen::bool keepDefaultInventory; // Offset: 170 + keen::uint32 lootHealth; // Offset: 172 +}; + +struct ecs.PlayerStateIndicatorComponent { + keen::ds::SoundContainerReference soundContainerLowHealth; // Offset: 0 + keen::ds::SoundContainerReference soundContainerLowFogPower; // Offset: 16 + keen::uint32 sfxLowHealthHandle; // Offset: 32 + keen::uint32 sfxLowFogPowerHandle; // Offset: 36 +}; + +struct ecs.Pacify { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::ds::FactionMask pacifyFactions; // Offset: 4 +}; + +struct ecs.PacifiedState { + keen::bool canBePacified; // Offset: 0 + keen::bool isPacified; // Offset: 1 + keen::bool wasPacifyAborted; // Offset: 2 + keen::ds::ecs::EntityId pacifiedBy; // Offset: 4 + keen::Time pacifyEndTime; // Offset: 8 +}; + +struct ecs.CallFactionsForHelp { + keen::float32 callForHelpRange; // Offset: 0 + keen::ds::FactionMask callForHelpFactions; // Offset: 4 + keen::ds::ecs::EntityId currentGuardingEntityId; // Offset: 8 +}; + +struct ecs.DebugCameraDisplay { + keen::float3x4 transform; // Offset: 0 +}; + +struct ecs.CombatFlags { + keen::bool immune; // Offset: 0 + keen::bool propagateHits; // Offset: 1 + keen::bool handleHits; // Offset: 2 + keen::bool canBlock; // Offset: 3 + keen::bool ignoreMagic; // Offset: 4 + keen::bool ignoreMelee; // Offset: 5 + keen::bool ignoreRanged; // Offset: 6 + keen::bool ignoreTool; // Offset: 7 + keen::bool ignoreOther; // Offset: 8 + keen::bool ignoreAoE; // Offset: 9 + keen::bool canBeBackstabbed; // Offset: 10 +}; + +struct ecs.ToggleImmunity { + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.RandomOrientation { + keen::ds::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 0 + keen::bool needsTargetEntity; // Offset: 24 + keen::bool adjustVelocity; // Offset: 25 +}; + +struct ecs.RandomDurationScale { + keen::float min; // Offset: 0 + keen::float max; // Offset: 4 +}; + +struct ecs.Growth { + keen::Time minDuration; // Offset: 0 + keen::ds::ecs::RandomDurationScale randomDurationScale; // Offset: 8 + keen::DsArray allowedSoil; // Offset: 16 +}; + +struct ecs.GrowthHint { +}; + +struct ecs.DynamicGrowth { + keen::Time nextLevelTime; // Offset: 0 +}; + +struct ecs.EntityTagContainer { + keen::DsArray tags; // Offset: 0 +}; + +struct ecs.CombatStance { + keen::Time combatStanceDuration; // Offset: 0 + keen::Time combatStanceEndTime; // Offset: 8 +}; + +struct ecs.BenchmarkPoint { +}; + +struct ecs.CopyParentDamageSusceptibility { + keen::bool keepSkillShotAttribute; // Offset: 0 +}; + +typedef keen::ecs::DetachAction ecs.DetachAction; + +typedef keen::ecs::AttachmentDirection ecs.AttachmentDirection; + +struct ecs.AttachToSurface { + keen::ds::ecs::DetachAction detachAction; // Offset: 0 + keen::ds::ecs::DetachAction detachActionInBase; // Offset: 1 + keen::ds::ecs::AttachmentDirection attachDirection; // Offset: 2 + keen::float searchLength; // Offset: 4 + keen::ds::ecs::ColliderMask colliderMask; // Offset: 8 + keen::float yOffset; // Offset: 12 + keen::bool spawnFalling; // Offset: 16 +}; + +struct ecs.DynamicAttachToSurface { + keen::Time searchStartTime; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::ds::ecs::EntityId attachmentContainerId; // Offset: 16 + keen::bool hasFoundContainer; // Offset: 20 + keen::bool shouldDestroy; // Offset: 21 + keen::bool hasAddedGravity; // Offset: 22 +}; + +struct ecs.DangerousArea { + keen::float32 range; // Offset: 0 +}; + +struct ecs.DangerSensor { + keen::float32 checkRadius; // Offset: 0 +}; + +struct ecs.DynamicDangerSensor { + keen::bool hasFoundDangerousEntity; // Offset: 0 + keen::ds::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct ecs.CopyParentLevel { +}; + +struct ecs.ServerSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float maxMaterialSubmergeDepth; // Offset: 4 + keen::float lerpStartValue; // Offset: 8 + keen::float lerpEndValue; // Offset: 12 + keen::Time lerpDuration; // Offset: 16 + keen::Time lerpTime; // Offset: 24 +}; + +struct ecs.NetworkSubmerge { + keen::float submergeDepth; // Offset: 0 +}; + +struct ecs.ClientSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float interpolationSource; // Offset: 4 + keen::float interpolationTarget; // Offset: 8 + keen::uint32 interpolationNewestTick; // Offset: 12 +}; + +struct ecs.SongState { + keen::Time joinTime; // Offset: 0 + keen::Time songStartTime; // Offset: 8 + keen::ds::SongId songId; // Offset: 16 + keen::uint16 songClusterId; // Offset: 20 +}; + +struct ecs.CustomPlayerString { + keen::ds::CustomStringId stringId; // Offset: 0 +}; + +struct ecs.SongSelection { + keen::ds::SongId selectedSongId; // Offset: 0 +}; + +struct ecs.Extinguish { + keen::ds::SoundContainerReference extinguishSfx; // Offset: 0 +}; + +struct ecs.DynamicExtinguish { + keen::Time extinguishDetectionTime; // Offset: 0 + keen::Time lastToggle; // Offset: 8 + keen::float32 extinguishValue; // Offset: 16 + keen::bool switchedToggleOff; // Offset: 20 +}; + +struct ecs.ClientExtinguish { + keen::Time lastNotifyTime; // Offset: 0 + keen::float32 visualizedExtinguishValue; // Offset: 8 +}; + +struct ecs.PackedExtinguish { + keen::Time lastToggleTime; // Offset: 0 + keen::float32 extinguishValue; // Offset: 8 + keen::bool switchedToggleOff; // Offset: 12 +}; + +struct ecs.FoodBait { +}; + +struct ecs.RayCastSpawner { + keen::ds::ecs::TemplateReference spawnTemplate; // Offset: 0 + keen::ds::ecs::Offset rayOffset; // Offset: 16 + keen::float requiredDistanceToSpawnEntity; // Offset: 56 + keen::Time minLifeTime; // Offset: 64 + keen::Time maxLifeTime; // Offset: 72 +}; + +struct ecs.DynamicRayCastSpawner { + keen::WorldPosition lastSpawnPosition; // Offset: 0 +}; + +struct ecs.WaterSurfaceFX { + keen::ds::VfxReference standingVfx; // Offset: 0 + keen::ds::VfxReference movingVfx; // Offset: 16 + keen::ds::SoundContainerReference waterSfx; // Offset: 32 + keen::uint32 vfxHandle; // Offset: 48 + keen::uint32 sfxHandle; // Offset: 52 + keen::float3 previousPlayerPosition; // Offset: 56 + keen::bool playerWasMoving; // Offset: 68 +}; + +struct ecs.MoveColliderWithRay { + keen::float targetLength; // Offset: 0 + keen::Time increaseLengthDuration; // Offset: 8 +}; + +struct ecs.DynamicMoveColliderWithRay { + keen::Time startTime; // Offset: 0 +}; + +struct ecs.WaterDispenser { + keen::bool visualOnly; // Offset: 0 +}; + +struct ecs.WaterDrain { +}; + +typedef keen::GameMessageChannelId GameMessageChannelId; + +typedef keen::GameMessageLoginType GameMessageLoginType; + +typedef keen::GameMessageLoginErrors GameMessageLoginErrors; + +typedef keen::GameMessageLoginResult GameMessageLoginResult; + +struct DaytimeSync { + keen::Time ecsTime; // Offset: 0 + keen::Time gameTime; // Offset: 8 + keen::float32 gameTimeScale; // Offset: 16 +}; + +struct DebugMessage { + keen::float3 cameraTarget; // Offset: 0 +}; + +struct KnownUserData { + keen::ds::CharacterId characterId; // Offset: 0 + keen::ds::BaseId baseId; // Offset: 16 +}; + +struct KnownUsers { + keen::uint32 version; // Offset: 0 + keen::DsArray users; // Offset: 8 +}; + +typedef keen::BaseState BaseState; + +struct EntitySaveData { + keen::WorldTransform transform; // Offset: 0 + keen::bool forcedSave; // Offset: 56 + keen::DsArray entityData; // Offset: 64 +}; + +struct BaseSaveData { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::DsArray voxel; // Offset: 48 + keen::DsArray water; // Offset: 88 +}; + +struct ServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::DsArray bases; // Offset: 8 + keen::DsArray entities; // Offset: 48 + keen::DsArray progressEntity; // Offset: 88 + keen::DsArray entitySerializationContext; // Offset: 128 + keen::Time playTime; // Offset: 168 +}; + +typedef keen::ServerSaveGameVersion ServerSaveGameVersion; + +struct ExtendedServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::uint32 sceneOffsetChangeCounter; // Offset: 4 + keen::Time dayTime; // Offset: 8 +}; + +typedef keen::ExtendedServerSaveGameVersion ExtendedServerSaveGameVersion; + +typedef keen::ecs::GameSettingsPreset ecs.GameSettingsPreset; + +struct ServerSaveGameMeta { + keen::uint32 version; // Offset: 0 + keen::CalendarTimeStamp lastPlayTime; // Offset: 8 + keen::uint32 progressLevel; // Offset: 16 + keen::ds::string name; // Offset: 24 + keen::Time playTime; // Offset: 64 + keen::ds::ecs::GameSettingsPreset gameSettingsPreset; // Offset: 72 +}; + +struct UnlockedItemKnowledgeSave { + keen::uint32 version; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 + keen::ds::ItemKnowledgeMask knowledge; // Offset: 8 +}; + +struct CustomMapMarkerArray { + keen::DsArray mapMarkers; // Offset: 0 +}; + +struct CharacterSaveGameEntry { + keen::ds::string name; // Offset: 0 + keen::ds::CharacterId id; // Offset: 40 + keen::ds::CharacterId cloudId; // Offset: 56 + keen::CalendarTimeStamp lastPlayTime; // Offset: 72 + keen::uint32 version; // Offset: 80 + keen::uint32 level; // Offset: 84 + keen::ds::CharacterStateMask stateMask; // Offset: 88 + keen::ds::CustomMapMarkerArray customMapMarker; // Offset: 96 + keen::DsArray data; // Offset: 136 +}; + +struct ItemColorSetupInternal { + keen::ds::ColorCombinationResource colorIds; // Offset: 0 + keen::bool isSet; // Offset: 12 +}; + +struct OutfitItemData { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemColorSetupInternal colors; // Offset: 4 +}; + +struct OutfitArray { + keen::StaticArray data; // Offset: 0 +}; + +struct CharacterOutfit { + keen::uint32 version; // Offset: 0 + keen::ds::OutfitArray items; // Offset: 4 + keen::ds::ecs::CharacterSetup setup; // Offset: 484 +}; + +struct old_saves.v6.BaseSaveDataV6 { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::WorldTransform DEPRECATEDtransform; // Offset: 48 + keen::DsArray voxel; // Offset: 104 +}; + +struct old_saves.v6.ServerSaveGameV6 { + keen::uint32 version; // Offset: 0 + keen::DsArray bases; // Offset: 8 + keen::DsArray entities; // Offset: 48 + keen::DsArray progressEntity; // Offset: 88 + keen::DsArray entitySerializationContext; // Offset: 128 + keen::Time playTime; // Offset: 168 +}; + +struct ecs.CameraShake { + keen::float32 trauma; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::ds::ecs::EntityId triggerId; // Offset: 24 +}; + +struct ecs.CameraShakeImpulse { + keen::float3 impulse; // Offset: 8 + keen::float additionalTrauma; // Offset: 20 + keen::Time duration; // Offset: 24 + keen::ds::ecs::EntityId triggerId; // Offset: 32 +}; + +struct ecs.UiCurrentLocationEvent { + keen::ds::LocaTagId location; // Offset: 8 +}; + +typedef keen::ResourceTypes ResourceTypes; + +struct ecs.UiNegativeFeedbackEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::LocaTagReference messageLocaTag; // Offset: 12 +}; + +struct ecs.UiInsufficientResourcesEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId itemSlotId; // Offset: 12 + keen::ds::ResourceTypesMask flags; // Offset: 20 +}; + +struct ecs.UiResourcesFullEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId buffEntityId; // Offset: 12 + keen::ds::InventorySlotId itemSlotId; // Offset: 16 + keen::ds::ResourceTypesMask flags; // Offset: 24 +}; + +struct ecs.AppliedBuffEvent { + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::ds::BuffSlotType slotType; // Offset: 12 + keen::uint32 slotTypeCount; // Offset: 16 +}; + +struct ecs.UiInventoryStockCycleEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool selectionResult; // Offset: 12 +}; + +struct ecs.UiBuildingEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool isUndoAction; // Offset: 12 + keen::bool isSuccessful; // Offset: 13 +}; + +struct ecs.UiItemTriggerFailedEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId itemSlotId; // Offset: 12 + keen::ds::EquipmentSlotType equipmentSlotType; // Offset: 20 +}; + +struct ecs.UnlockSkillEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlearnSkillEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlockPerkEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.TrashItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.SelectDialogOptionEvent { + keen::ds::ecs::EntityId interactingEntityId; // Offset: 8 + keen::ds::LocaTagId selectedOptionId; // Offset: 12 + keen::ds::KnowledgeId knowledgeId; // Offset: 16 +}; + +struct ecs.NpcInputEvent { + keen::ds::NpcId npcId; // Offset: 8 + keen::float roamingRange; // Offset: 12 +}; + +struct ecs.TriggerKnowledgeUiEvent { + keen::ds::KnowledgeId knowledgeId; // Offset: 8 +}; + +struct ecs.SetPersonalQuestProgressionEvent { + keen::bool enable; // Offset: 8 +}; + +struct ecs.ServerSelectDialogOptionEvent { + keen::ds::ecs::EntityId npcEntity; // Offset: 8 + keen::ds::ecs::EntityId playerEntity; // Offset: 12 + keen::ds::LocaTagId selectedOptionId; // Offset: 16 +}; + +struct ecs.BuildingPlaceEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 60 + keen::ds::ItemId trackingItemId; // Offset: 76 +}; + +struct ecs.BuildingPickUpEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +struct ecs.BuildingTearDownEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +typedef keen::ecs::HitEventFlags ecs.HitEventFlags; + +struct ecs.ProhibitedHit { + keen::ds::CollisionFeedbackMaterialReference materialA; // Offset: 8 + keen::ds::CollisionFeedbackMaterialReference materialB; // Offset: 24 + keen::float3 position; // Offset: 40 + keen::float3 normal; // Offset: 52 + keen::ds::ecs::EntityId rootSourceId; // Offset: 64 + keen::ds::ecs::EntityId targetId; // Offset: 68 +}; + +struct ecs.TerraformingHitEvent { + keen::float32 range; // Offset: 184 +}; + +typedef keen::ecs::HitCandidateType ecs.HitCandidateType; + +struct ecs.HitCandidate { + keen::float3 sourceVelocity; // Offset: 248 + keen::WorldTransform sourceTransform; // Offset: 264 + keen::sint32 sourceManaCost; // Offset: 320 + keen::ds::ecs::HitCandidateType candidateType; // Offset: 324 + keen::bool propagate; // Offset: 325 + keen::bool sendHitEvent; // Offset: 326 + keen::bool ignoreConsecutiveHits; // Offset: 327 +}; + +struct ecs.ResourceCandidate { + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::HashKey32 attributeId; // Offset: 12 + keen::sint32 change; // Offset: 16 +}; + +struct ecs.ResourceChange { + keen::uint32 gain; // Offset: 0 + keen::uint32 loss; // Offset: 4 +}; + +struct ecs.ResourceChangeEvent { + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::ds::ecs::ResourceChange healthChange; // Offset: 12 + keen::ds::ecs::ResourceChange manaChange; // Offset: 20 + keen::ds::ecs::ResourceChange staminaChange; // Offset: 28 +}; + +struct ecs.EnemyAttackStartedEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.CallForHelpEvent { + keen::ds::ecs::EntityId noticingEntityId; // Offset: 8 + keen::float3 noticingEntityPosition; // Offset: 12 + keen::ds::ecs::EntityId noticedEntityId; // Offset: 24 + keen::float3 noticedEntityPosition; // Offset: 28 + keen::float32 radius; // Offset: 40 + keen::bool checkSight; // Offset: 44 + keen::ds::FactionMask factions; // Offset: 46 +}; + +struct ecs.EnemyIsHelpingEvent { + keen::ds::ecs::EntityId helpingEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 12 +}; + +struct ecs.GenericEnemyEvent { + keen::ds::ecs::EntityId enemyEntityId; // Offset: 8 + keen::ds::ecs::EnemyEventType eventType; // Offset: 12 +}; + +struct ecs.NoiseEvent { + keen::ds::ecs::EntityId senderId; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::float32 range; // Offset: 24 +}; + +struct ecs.ChildDestroyed { + keen::ds::ecs::EntityId childId; // Offset: 8 + keen::ds::ecs::EntityId parentId; // Offset: 12 +}; + +struct ecs.PickupEvent { + keen::float3 position; // Offset: 8 + keen::ds::ItemId itemId; // Offset: 20 + keen::uint32 itemCount; // Offset: 24 + keen::ds::ecs::EntityId pickedUpByEntityId; // Offset: 28 + keen::ds::ecs::EntityId pickedUpFromEntityId; // Offset: 32 + keen::ds::InventorySlotId targetSlotId; // Offset: 36 +}; + +typedef keen::InventoryCategoryMask InventoryCategoryMask; + +struct ecs.InventoryFull { + keen::ds::ecs::EntityId pickedUpById; // Offset: 8 + keen::ds::ecs::EntityId pickedUpFromId; // Offset: 12 + keen::ds::InventoryCategoryMask mask; // Offset: 16 +}; + +struct ecs.XPGainedEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint32 amount; // Offset: 12 + keen::ds::ExperienceSourceType source; // Offset: 16 +}; + +struct ecs.PuzzleCompletedEvent { + keen::StaticArray clusterPlayerEntityIds; // Offset: 8 +}; + +struct ecs.LevelUpEvent { + keen::WorldPosition position; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 32 + keen::Time duration; // Offset: 40 + keen::sint32 level; // Offset: 48 +}; + +struct ecs.AcceptOfferedInteractionEvent { + keen::ds::ecs::EntityId guestEntityId; // Offset: 8 + keen::ds::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.InteractionAcceptedEvent { + keen::ds::ecs::EntityId guestEntityId; // Offset: 8 + keen::ds::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.SetToggleStateEvent { + keen::ds::ecs::EntityId senderId; // Offset: 8 + keen::ds::SignalId signalId; // Offset: 12 + keen::bool newState; // Offset: 16 +}; + +struct ecs.ToggleInteractionEvent { + keen::ds::ecs::EntityId guestId; // Offset: 8 + keen::ds::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.ActionbarSelectionEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 12 +}; + +struct ecs.InventoryStockSelectionEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint8 inventoryStockType; // Offset: 12 + keen::ds::ItemId selectedItemId; // Offset: 16 +}; + +struct ecs.ChangeEquipmentEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId inventorySlotId; // Offset: 12 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 20 + keen::ds::ecs::ChangeEquipment type; // Offset: 21 +}; + +struct ecs.SwapEquipmentSetEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetInventoryId; // Offset: 12 + keen::ds::ecs::SwapEquipmentTarget type; // Offset: 16 +}; + +struct ecs.HandleEquipmentSlotChangedEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 12 +}; + +struct ecs.ConsumeItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId inventorySlotId; // Offset: 12 +}; + +struct ecs.InspectItemEvent { + keen::ds::InventorySlotId inventorySlotId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 16 +}; + +struct ecs.UiCreateBuildingItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 12 + keen::ds::ItemId itemId; // Offset: 16 +}; + +struct ecs.UiCreateNpcItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ItemId itemId; // Offset: 12 +}; + +struct ecs.TeleportPlayerEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 12 + keen::float3 targetWorldPosition; // Offset: 16 +}; + +typedef keen::ecs::TransferItemToInventoryFlag ecs.TransferItemToInventoryFlag; + +struct ecs.TransferItemToInventoryEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetInventoryId; // Offset: 12 + keen::ds::InventorySlotId targetSlotId; // Offset: 16 + keen::ds::ecs::EntityId sourceInventoryId; // Offset: 24 + keen::ds::InventorySlotId sourceSlotId; // Offset: 28 + keen::ds::InventoryActionType type; // Offset: 36 + keen::ds::ecs::TransferItemToInventoryFlags flags; // Offset: 37 + keen::uint16 amount; // Offset: 38 +}; + +struct ecs.SortInventoryEvent { + keen::ds::ecs::EntityId targetInventoryId; // Offset: 8 +}; + +struct ecs.LootInteractionEvent { + keen::ds::ecs::EntityId guestId; // Offset: 8 + keen::ds::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 + keen::bool lootAll; // Offset: 20 + keen::bool forAllPlayers; // Offset: 21 + keen::StaticArray knowledgeIds; // Offset: 24 +}; + +struct ecs.UiCraftRecipeEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.UiAutomaticTransferEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 + keen::ds::ItemId itemId; // Offset: 20 + keen::uint16 amount; // Offset: 24 +}; + +struct ecs.UiSelectCraftingStationRecipeEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 +}; + +struct ecs.CraftRecipeEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.CraftRecipeSuccessEvent { + keen::ds::WorkshopId workshopId; // Offset: 8 + keen::ds::RecipeId recipeId; // Offset: 12 +}; + +struct ecs.UiPinRecipeEvent { + keen::ds::RecipeId recipeId; // Offset: 8 + keen::bool pinRecipe; // Offset: 12 +}; + +struct ecs.UiWaypointEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 + keen::bool enable; // Offset: 40 +}; + +struct ecs.UiPingEvent { + keen::ds::ecs::EntityId senderEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 +}; + +struct ecs.UiPingInputEvent { +}; + +typedef keen::MapMarkerTypeId MapMarkerTypeId; + +struct ecs.UiAddMapMarkerEvent { + keen::WorldPosition position; // Offset: 8 + keen::uint8 colorScheme; // Offset: 32 + keen::ds::MapMarkerTypeId type; // Offset: 36 +}; + +struct ecs.UiRemoveMapMarkerEvent { + keen::uint32 handle; // Offset: 8 +}; + +struct ecs.ChangeCustomizationEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId targetSlotId; // Offset: 12 + keen::ds::ItemId itemId; // Offset: 20 +}; + +struct ecs.OpenHudScreenEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId interactionHostId; // Offset: 12 + keen::ds::HudScreenType screen; // Offset: 16 +}; + +struct ecs.KillFaction { + keen::ds::FactionMask factionMask; // Offset: 8 + keen::uint32 playerMask; // Offset: 12 +}; + +struct ecs.StartFlyingEvent { + keen::ds::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.StopFlyingEvent { + keen::ds::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.EnterFlyingStateEvent { + keen::ds::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.SyncedAttackEvent { + keen::ds::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 12 + keen::Time resolveTime; // Offset: 16 + keen::ds::ecs::SyncedAttackType type; // Offset: 24 +}; + +struct ecs.SyncedSequenceEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::ecs::EntityId triggeringEntityId; // Offset: 12 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 16 +}; + +struct ecs.VisceralAttackExecutedEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.OnDestroyNotifyEvent { + keen::WorldTransform transform; // Offset: 8 + keen::Guid type; // Offset: 64 + keen::float3 hitDirection; // Offset: 80 +}; + +typedef keen::ecs::NotifyEventType ecs.NotifyEventType; + +struct ecs.NotifyEvent { + keen::ds::ecs::Offset offset; // Offset: 8 + keen::WorldTransform transform; // Offset: 48 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 168 + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 176 + keen::uint32 slot; // Offset: 200 + keen::Guid typeGuid; // Offset: 204 + keen::ds::ecs::NotifyEventType type; // Offset: 220 + keen::bool attach; // Offset: 221 + keen::bool canBeCanceled; // Offset: 222 +}; + +struct ecs.NotifyEnvFxEvent { + keen::Guid eventGuid; // Offset: 8 + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 24 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 28 + keen::ds::AttachmentSlot slot; // Offset: 32 + keen::ds::ecs::Offset offset; // Offset: 36 + keen::bool attach; // Offset: 76 + keen::float32 rayOffsetY; // Offset: 80 + keen::float32 rayLength; // Offset: 84 +}; + +struct ecs.FootDown { + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 8 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 12 + keen::ds::AttachmentSlot slot; // Offset: 16 + keen::ds::ecs::Offset offset; // Offset: 20 +}; + +struct ecs.FoleyEnvEvent { + keen::Guid eventGuid; // Offset: 8 + keen::ds::FoleyType foleyFxType; // Offset: 24 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 28 +}; + +struct ecs.RegisterControlledCombatTargetEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.UnregisterControlledCombatTargetEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.LoreRead { + keen::ds::LocaTagId locaTag; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.ItemUsed { + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.StartPlaySongEvent { + keen::ds::ecs::EntityId playerId; // Offset: 8 + keen::ds::SongId songId; // Offset: 12 +}; + +typedef keen::ecs::SequenceTerminationReason ecs.SequenceTerminationReason; + +struct ecs.ItemKnowledgeGained { + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 + keen::ds::ItemKnowledgeMask gainedKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeTriggerEvent { + keen::ds::KnowledgeId knowledgeId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 + keen::bool removeKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeUnlockedEvent { + keen::ds::KnowledgeId knowledgeId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 +}; + +typedef keen::ecs::KnowledgeType ecs.KnowledgeType; + +struct ecs.KnowledgeGained { + keen::ds::ecs::KnowledgeType targetType; // Offset: 8 + keen::ds::WorkshopId workshopId; // Offset: 12 + keen::ds::NpcId npcId; // Offset: 16 + keen::ds::RecipeId recipeId; // Offset: 20 + keen::ds::JournalEntryId journalId; // Offset: 24 + keen::ds::ecs::EntityId mapMarkerEntityId; // Offset: 28 +}; + +struct ecs.ParryEvent { + keen::ds::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ds::ecs::EntityId blockerEntityId; // Offset: 12 + keen::sint32 staminaDrain; // Offset: 16 +}; + +struct ecs.CookingEvent { + keen::ds::ecs::Offset attachmentOffset; // Offset: 8 + keen::ds::ecs::EntityId cookedEntityId; // Offset: 48 + keen::ds::ItemId itemId; // Offset: 52 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 56 + keen::bool burned; // Offset: 57 +}; + +struct ecs.PlayerBaseChangeEvent { + keen::ds::CharacterId playerCharacterId; // Offset: 8 + keen::ds::BaseId baseId; // Offset: 24 +}; + +struct ecs.KickPlayerEvent { + keen::ds::ecs::EntityId playerToKick; // Offset: 8 +}; + +struct ecs.FlameAltarEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId baseEntityId; // Offset: 12 + keen::ds::ecs::FlameAltarActionType type; // Offset: 16 +}; + +struct ecs.EntityDiedEvent { + keen::ds::ecs::EntityId deadEntityId; // Offset: 8 +}; + +struct ecs.ActivateFactionPacifyEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::FactionType faction; // Offset: 12 +}; + +struct ecs.ActivateFactionCallForHelpEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::FactionType faction; // Offset: 12 +}; + +struct ecs.StartGuardingEvent { + keen::ds::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ds::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.StopGuardingEvent { + keen::ds::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ds::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.DestroyedWithoutSurfaceEvent { + keen::WorldTransform transform; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 64 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 68 +}; + +struct ecs.TransformedToLootEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::VfxUserEffectParameterDataBlock overwriteVfxParameters; // Offset: 12 + keen::bool useVfxDefaultParameters; // Offset: 76 +}; + +struct ecs.GameSettingsChangedEvent { + keen::ds::ecs::GameSettings newSettings; // Offset: 8 +}; + +struct ecs.SetEnemyVariableEvent { + keen::ds::ecs::EntityId enemyId; // Offset: 8 + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ecs.UiWorldEvent { + keen::HashKey32 worldEventId; // Offset: 8 +}; + +struct ecs.DebugHitRequest { + keen::ds::ecs::EntityId targetEntityId; // Offset: 0 + keen::WorldTransform sourceTransform; // Offset: 8 + keen::ds::impact::MajorDirection majorHitDirection; // Offset: 64 +}; + +struct ecs.DebugHitResult { + keen::float3 hitPosition; // Offset: 0 + keen::float3 hitNormal; // Offset: 12 + keen::float3 hitDirection; // Offset: 24 + keen::float32 hitAngle; // Offset: 36 + keen::bool hit; // Offset: 40 +}; + +struct GuidRegistryResource { + keen::DsArray guids; // Offset: 0 +}; + +typedef keen::impact::ImpactFilter impact.ImpactFilter; + +typedef keen::impact::AttackFlags impact.AttackFlags; + +struct impact.DamageData { +}; + +struct impact.DamageConfig { +}; + +struct impact.SphereColliderConfig { +}; + +struct impact.ImpactQueryResult { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::ds::ecs::QueryResultFlags flags; // Offset: 28 +}; + +typedef keen::impact::Flags impact.Flags; + +struct impact.DebugServerImpactMessage { + keen::ds::impact::ImpactId id; // Offset: 0 +}; + +struct impact.DebugImpactRequestMessage { + keen::Guid impactGuid; // Offset: 0 +}; + +struct impact.DebugImpcatState { + keen::uint16 rPC; // Offset: 0 + keen::uint16 rSP; // Offset: 2 + keen::uint16 rFP; // Offset: 4 + keen::Bitmask8 flags; // Offset: 6 + keen::DsArray stack; // Offset: 8 + keen::DsArray data; // Offset: 48 +}; + +struct impact.DebugImpactFunctionCall { + keen::uint16 pc; // Offset: 0 + keen::ds::impact::DebugImpcatState beforeUpdate; // Offset: 8 + keen::ds::impact::DebugImpcatState afterUpdate; // Offset: 96 +}; + +struct impact.DebugImpactData { + keen::ds::ecs::EntityId rootId; // Offset: 0 + keen::ds::impact::DebugImpcatState beforeUpdate; // Offset: 8 + keen::ds::impact::DebugImpcatState afterUpdate; // Offset: 96 + keen::DsArray calls; // Offset: 184 + keen::DsArray programCounter; // Offset: 224 + keen::DsArray appliedConfigurations; // Offset: 264 +}; + +struct impact.DebugImpact { + keen::Guid impactId; // Offset: 0 + keen::uint32 tick; // Offset: 16 + keen::ds::ecs::EntityId impactEntityId; // Offset: 20 + keen::ds::impact::DebugImpactData data; // Offset: 24 +}; + +typedef keen::ImpactOps ImpactOps; + +typedef keen::impact::ImpcatValueNumberFormat impact.ImpcatValueNumberFormat; + +typedef keen::ObjectReference impact.ConfigIdReference; + +struct impact.ImpactConfig { + keen::ds::LocaTagReference locaTag; // Offset: 0 + keen::bool isSigned; // Offset: 16 + keen::ds::impact::ImpcatValueNumberFormat valueFormat; // Offset: 17 + keen::ds::impact::ConfigIdReference id; // Offset: 20 + keen::HashKey32 configId; // Offset: 36 + keen::HashKey32 type; // Offset: 40 + keen::Guid configGuid; // Offset: 44 + keen::Guid objectId; // Offset: 60 +}; + +struct impact.BuffImpactConfig { + keen::ds::BuffTypeReference value; // Offset: 76 +}; + +struct impact.EnemyVariableImpactConfig { + keen::ds::enemy01::EnemyVariableReference value; // Offset: 76 +}; + +struct impact_nodes.ImpactNode { + keen::Vector2 uiPosition; // Offset: 0 +}; + +struct impact_nodes.ImpactValueNode { + keen::ds::impact::ConfigIdReference id; // Offset: 8 + keen::ds::LocaTagReference locaTag; // Offset: 24 + keen::bool isSigned; // Offset: 40 + keen::ds::impact::ImpcatValueNumberFormat valueFormat; // Offset: 41 + keen::Guid objectId; // Offset: 44 +}; + +struct impact_nodes.BuffValueNode { + keen::ds::BuffTypeReference value; // Offset: 60 +}; + +struct impact_nodes.ImpactExecutableNode { +}; + +struct impact_nodes.ApplyBuff { + keen::ds::BuffTypeReference buffInput; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 24 + keen::ds::impact::DamageSetup damageSetup; // Offset: 28 + keen::Time durationInput; // Offset: 80 +}; + +struct impact_nodes.ImpactBranchNode { +}; + +struct impact_nodes.ImpactNodeExecutionBranch { +}; + +struct impact_nodes.IfBranchNode { + keen::bool negate; // Offset: 8 + keen::ds::impact_nodes::ImpactNodeExecutionBranch ifBranch; // Offset: 9 + keen::ds::impact_nodes::ImpactNodeExecutionBranch elseBranch; // Offset: 10 +}; + +struct impact_nodes.HasBuffNode { + keen::ds::BuffTypeReference buffInput; // Offset: 12 + keen::ds::ecs::EntityId targetEntityId; // Offset: 28 +}; + +struct impact_nodes.RemoveBuff { + keen::ds::BuffTypeReference buffInput; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 24 + keen::bool wasRemoved; // Offset: 28 +}; + +struct ecs.ImpactHierarchy { + keen::ds::ecs::EntityId parentImpactId; // Offset: 0 + keen::ds::ecs::EntityId rootImpactId; // Offset: 4 + keen::ds::ecs::EntityId weaponPideId; // Offset: 8 + keen::ds::ecs::EntityId permissionCheckId; // Offset: 12 +}; + +struct ecs.ImpactItemConfig { + keen::ds::ItemInstanceInfo usedItem; // Offset: 0 + keen::ds::ItemInstanceInfo ammunitionItem; // Offset: 20 + keen::ds::PerkId usedPerkId; // Offset: 40 +}; + +struct ecs.SequenceEventCollider { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.SequenceEventImpactConfig { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.ImpactConfiguration { + keen::ds::impact::Configurations configValues; // Offset: 0 + keen::ds::impact::DamageDistribution damageDistribution; // Offset: 40 + keen::bool damageDistributionIsSet; // Offset: 92 +}; + +struct ecs.ImpactDirection { + keen::ds::impact::MajorDirection direction; // Offset: 0 +}; + +struct ecs.Impact { + keen::ds::ImpactProgramReference program; // Offset: 0 + keen::ds::impact::ImpactId impactId; // Offset: 16 +}; + +struct ecs.ImpactHalted { +}; + +typedef keen::ImpactCommand ImpactCommand; + +typedef keen::TerraformingType TerraformingType; + +typedef keen::WeaponCategoryType WeaponCategoryType; + +typedef keen::WeaponCategoryTypeMask WeaponCategoryTypeMask; + +typedef keen::VisceralAttackType VisceralAttackType; + +typedef keen::impact::ProgramId impact.ProgramId; + +typedef keen::impact::VariableTypeId impact.VariableTypeId; + +struct impact.ConfigId { +}; + +typedef keen::impact::ConfigIdHash impact.ConfigIdHash; + +struct impact.ConfigIdCollection { +}; + +struct impact.ConfigValueId { + keen::uint32 value; // Offset: 0 +}; + +struct impact.TypedValue32 { +}; + +struct impact.FloatImpactConfig { + keen::float32 value; // Offset: 76 +}; + +struct impact.Uint32ImpactConfig { + keen::uint32 value; // Offset: 76 +}; + +struct impact.Sint32ImpactConfig { + keen::sint32 value; // Offset: 76 +}; + +struct impact.BoolImpactConfig { + keen::bool value; // Offset: 76 +}; + +struct impact.Float2ImpactConfig { + keen::float2 value; // Offset: 76 +}; + +struct impact.Float3ImpactConfig { + keen::float3 value; // Offset: 76 +}; + +struct impact.Float4ImpactConfig { + keen::float4 value; // Offset: 76 +}; + +struct impact.TemplateImpactConfig { + keen::ds::ecs::TemplateReference value; // Offset: 76 +}; + +struct impact.EntityTagImpactConfig { + keen::ds::ecs::EntityTagReference value; // Offset: 76 +}; + +struct impact.MaterialImpactConfig { + keen::ds::CollisionFeedbackMaterialReference value; // Offset: 76 +}; + +struct impact.TimeImpactConfig { + keen::Time value; // Offset: 80 +}; + +struct impact.FactionImpactConfig { + keen::ds::FactionType value; // Offset: 76 +}; + +struct impact.AttributeReferenceConfig { + keen::ds::AttributeReference value; // Offset: 76 +}; + +struct impact.VisceralAttackTypeConfig { + keen::ds::VisceralAttackType value; // Offset: 76 +}; + +struct impact.DamageTerraformingSetup { + keen::sint32 softDamage; // Offset: 0 + keen::sint32 slightlyHardDamage; // Offset: 4 + keen::sint32 moderatelyHardDamage; // Offset: 8 + keen::sint32 hardDamage; // Offset: 12 + keen::sint32 veryHardDamage; // Offset: 16 +}; + +struct impact.DamageTerraformingRuntimeSetup { + keen::float32 woodDamageMod; // Offset: 20 + keen::float32 stoneDamageMod; // Offset: 24 + keen::float32 metalDamageMod; // Offset: 28 +}; + +struct impact.DamageTerraformingSetupConfig { + keen::ds::impact::DamageTerraformingSetup value; // Offset: 76 +}; + +struct impact.ArmorDistribution { + keen::float32 physical; // Offset: 0 + keen::float32 blunt; // Offset: 4 + keen::float32 pierce; // Offset: 8 + keen::float32 cut; // Offset: 12 + keen::float32 magical; // Offset: 16 + keen::float32 fire; // Offset: 20 + keen::float32 ice; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 lightning; // Offset: 32 +}; + +struct impact.TerraformingTypeConfig { + keen::ds::TerraformingType value; // Offset: 76 +}; + +typedef keen::impact::DamageTypeNew impact.DamageTypeNew; + +typedef keen::impact::AttackCategory impact.AttackCategory; + +struct impact.AttackCategoryMaskConfig { + keen::ds::impact::AttackCategoryMask value; // Offset: 76 +}; + +typedef keen::ObjectReference WeaponCategoryReference; + +struct impact.WeaponCategoryConfig { + keen::ds::WeaponCategoryReference value; // Offset: 76 +}; + +struct impact.MajorDirectionConfig { + keen::ds::impact::MajorDirection value; // Offset: 76 +}; + +struct impact.HitReactionTypeConfig { + keen::ds::impact::HitReactionType value; // Offset: 76 +}; + +struct impact.PushBackForceConfig { + keen::ds::impact::PushBackForce value; // Offset: 76 +}; + +typedef keen::impact::EventStream impact.EventStream; + +typedef keen::impact::EventStreamMask impact.EventStreamMask; + +struct ImpactUiValue { + keen::ds::LocaTagId locaId; // Offset: 0 + keen::bool isSigned; // Offset: 4 + keen::ds::impact::ImpcatValueNumberFormat valueFormat; // Offset: 5 + keen::sint32 value; // Offset: 8 +}; + +typedef keen::ObjectReference impact_nodes.NodeReference; + +struct impact_nodes.ResetPoint { +}; + +struct impact_nodes.TerraformingTypeValueNode { + keen::ds::TerraformingType value; // Offset: 60 +}; + +struct impact_nodes.ExecutionLink { + keen::ds::impact_nodes::NodeReference startNode; // Offset: 0 + keen::DsString startElementName; // Offset: 16 + keen::ds::impact_nodes::NodeReference endNode; // Offset: 56 +}; + +struct impact_nodes.DataLink { + keen::ds::impact_nodes::NodeReference ownerNodeId; // Offset: 0 + keen::DsString ownerMemberName; // Offset: 16 + keen::ds::impact_nodes::NodeReference accessorNodeId; // Offset: 56 + keen::DsString accessorMemberName; // Offset: 72 +}; + +struct impact_nodes.FloatValueNode { + keen::float32 value; // Offset: 60 +}; + +struct impact_nodes.Uint32ValueNode { + keen::uint32 value; // Offset: 60 +}; + +struct impact_nodes.Sint32ValueNode { + keen::sint32 value; // Offset: 60 +}; + +struct impact_nodes.BoolValueNode { + keen::bool value; // Offset: 60 +}; + +struct impact_nodes.Float2ValueNode { + keen::float2 value; // Offset: 60 +}; + +struct impact_nodes.Float3ValueNode { + keen::float3 value; // Offset: 60 +}; + +struct impact_nodes.Float4ValueNode { + keen::float4 value; // Offset: 60 +}; + +struct impact_nodes.TemplateValueNode { + keen::ds::ecs::TemplateReference value; // Offset: 60 +}; + +struct impact_nodes.EntityTagValueNode { + keen::ds::ecs::EntityTagReference value; // Offset: 60 +}; + +struct impact_nodes.MaterialValueNode { + keen::ds::CollisionFeedbackMaterialReference value; // Offset: 60 +}; + +struct impact_nodes.TimeValueNode { + keen::Time value; // Offset: 64 +}; + +struct impact_nodes.FactionValueNode { + keen::ds::FactionType value; // Offset: 60 +}; + +struct impact_nodes.AttributeReferenceValueNode { + keen::ds::AttributeReference value; // Offset: 60 +}; + +struct impact_nodes.DamageSetupValueNode { + keen::ds::impact::DamageSetup value; // Offset: 60 +}; + +struct impact_nodes.DamageTerraformingSetupValueNode { + keen::ds::impact::DamageTerraformingSetup value; // Offset: 60 +}; + +struct impact_nodes.AttackCategoryMaskValueNode { + keen::ds::impact::AttackCategoryMask value; // Offset: 60 +}; + +struct impact_nodes.WeaponCategoryValueNode { + keen::ds::WeaponCategoryReference value; // Offset: 60 +}; + +struct impact_nodes.MajorDirectionValueNode { + keen::ds::impact::MajorDirection value; // Offset: 60 +}; + +struct impact_nodes.HitReactionTypeValueNode { + keen::ds::impact::HitReactionType value; // Offset: 60 +}; + +struct impact_nodes.PushBackForceValueNode { + keen::ds::impact::PushBackForce value; // Offset: 60 +}; + +struct impact_nodes.VisceralAttackTypeValueNode { + keen::ds::VisceralAttackType value; // Offset: 60 +}; + +struct impact_nodes.HaltNode { +}; + +struct impact_nodes.DestroySelfNode { +}; + +struct impact_nodes.ResetNode { +}; + +struct impact_nodes.RVM { +}; + +struct impact_nodes.GetParent { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetRoot { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetEntityParent { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetHitTarget { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::ecs::EntityId hitEntityId; // Offset: 12 +}; + +struct impact_nodes.GetLockedTarget { + keen::ds::ecs::TargetType type; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::ecs::EntityId targetId; // Offset: 16 +}; + +struct impact_nodes.GetSelf { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetTransform { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.GetSlotTransform { + keen::ds::AttachmentSlot slot; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.ConsumeItem { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.ApplyOffset { + keen::WorldTransform transform; // Offset: 8 + keen::float3 localOffset; // Offset: 64 + keen::float3 worldOffset; // Offset: 76 + keen::float4 orientationOffset; // Offset: 88 + keen::WorldTransform result; // Offset: 104 +}; + +struct impact_nodes.StartQuery { + keen::WorldTransform transform; // Offset: 8 + keen::float32 range; // Offset: 64 + keen::float3 offset; // Offset: 68 + keen::ds::ecs::QueryId queryId; // Offset: 80 + keen::ds::ecs::ColliderFlags colliderFlag; // Offset: 84 + keen::bool sortByDistance; // Offset: 86 +}; + +struct impact_nodes.StopQuery { + keen::ds::ecs::QueryId queryId; // Offset: 8 +}; + +struct impact_nodes.FetchAttribute { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::impact::TypedValue32 value; // Offset: 28 +}; + +struct impact_nodes.SetAttribute { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::impact::TypedValue32 value; // Offset: 28 +}; + +typedef keen::impact_nodes::ValuesMathOperator impact_nodes.ValuesMathOperator; + +struct impact_nodes.ApplyChange { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::AttributeReference attributeRefInput; // Offset: 28 + keen::ds::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::ds::impact::TypedValue32 valueStorage; // Offset: 45 + keen::bool valueStorageSign; // Offset: 46 + keen::ds::impact::TypedValue32 value; // Offset: 47 +}; + +struct impact_nodes.ChangeAttribute { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::AttributeReference attributeRefInput; // Offset: 28 + keen::ds::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::ds::impact::TypedValue32 valueStorage; // Offset: 45 + keen::ds::impact::TypedValue32 value; // Offset: 46 +}; + +struct impact_nodes.AddValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.SubValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.MulValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.DivValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.Normalize { + keen::float3 input; // Offset: 8 + keen::float3 result; // Offset: 20 +}; + +struct impact_nodes.SetLength { + keen::float3 input; // Offset: 8 + keen::float32 length; // Offset: 20 + keen::float3 result; // Offset: 24 +}; + +struct impact_nodes.GetLength { + keen::float3 input; // Offset: 8 + keen::float32 result; // Offset: 20 +}; + +struct impact_nodes.SpawnEntity { + keen::bool breakImpactHierarchy; // Offset: 8 + keen::ds::ecs::TemplateReference templateInput; // Offset: 12 + keen::WorldTransform transform; // Offset: 32 + keen::float3 position; // Offset: 88 + keen::float3 velocity; // Offset: 100 + keen::ds::ecs::EntityId targetEntityId; // Offset: 112 + keen::ds::ecs::EntityId parentEntityId; // Offset: 116 + keen::uint32 levelOverride; // Offset: 120 + keen::ds::FactionType factionOverride; // Offset: 124 + keen::ds::ecs::EntityId entityId; // Offset: 128 +}; + +struct impact_nodes.CreateDamageSetup { + keen::sint32 physicalCutDamage; // Offset: 8 + keen::sint32 physicalPierceDamage; // Offset: 12 + keen::sint32 physicalBluntDamage; // Offset: 16 + keen::sint32 magicalFireDamage; // Offset: 20 + keen::sint32 magicalIceDamage; // Offset: 24 + keen::sint32 magicalFogDamage; // Offset: 28 + keen::sint32 magicalFogLightning; // Offset: 32 + keen::sint32 healing; // Offset: 36 + keen::sint32 poisonDamage; // Offset: 40 + keen::sint32 woodDamage; // Offset: 44 + keen::sint32 stoneDamage; // Offset: 48 + keen::sint32 metalDamage; // Offset: 52 + keen::sint32 explosionDamage; // Offset: 56 + keen::ds::impact::DamageSetup damageSetup; // Offset: 60 +}; + +struct impact_nodes.ApplyDamage { + keen::ds::ecs::EntityId sourceId; // Offset: 12 + keen::ds::ecs::EntityId targetId; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::ds::impact::MajorDirection hitDirection; // Offset: 44 + keen::float32 attackMod; // Offset: 48 + keen::float32 attackStaminaMod; // Offset: 52 + keen::float32 noiseRange; // Offset: 56 + keen::sint32 manaCost; // Offset: 60 + keen::ds::AttributeRootReference damageScaleAttribute; // Offset: 64 + keen::ds::impact::PushBackForce pushBack; // Offset: 80 + keen::ds::impact::HitReactionType hitReaction; // Offset: 82 + keen::ds::impact::DamageSetup damageSetup; // Offset: 84 + keen::ds::impact::AttackCategoryMask attackCategory; // Offset: 136 + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 140 + keen::ds::CollisionFeedbackMaterialReference materialId; // Offset: 156 + keen::bool canBeBlocked; // Offset: 172 + keen::bool canCrit; // Offset: 173 + keen::ds::VisceralAttackType visceralAttackType; // Offset: 174 + keen::bool ignoreConsecutiveHits; // Offset: 175 + keen::bool pusbackDirectionOverride; // Offset: 176 + keen::bool wasBlocked; // Offset: 177 +}; + +struct impact_nodes.GetConsecutiveHitCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.IsConsecutiveHit { + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsSkillUnlocked { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::skilltree_nodes::NodeReference skill; // Offset: 16 +}; + +struct impact_nodes.ClearConsecutiveHits { + keen::Time clearInterval; // Offset: 8 +}; + +struct impact_nodes.GetCursorTransform { + keen::ds::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 +}; + +struct impact_nodes.Terraforming { + keen::ds::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::ds::TerraformingType terraformingType; // Offset: 72 + keen::ds::impact::DamageTerraformingSetup damageTerraformingSetup; // Offset: 76 + keen::ds::CollisionFeedbackMaterialReference materialId; // Offset: 96 + keen::float32 rangeDefault; // Offset: 112 + keen::float32 rangeAdd; // Offset: 116 + keen::float32 rangeFlatten; // Offset: 120 +}; + +struct impact_nodes.GetQueryResultCount { + keen::ds::ecs::QueryId queryId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FetchQueryResult { + keen::ds::ecs::QueryId queryId; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::ds::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::bool hit; // Offset: 44 + keen::bool queryNew; // Offset: 45 + keen::bool updateNew; // Offset: 46 +}; + +struct impact_nodes.SetTransform { + keen::WorldTransform transform; // Offset: 8 +}; + +struct impact_nodes.GetOnCollisionEventCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.Wait { + keen::Time durationInput; // Offset: 8 +}; + +struct impact_nodes.FetchOnCollisionEvent { + keen::uint32 index; // Offset: 12 + keen::bool ignoreSameRoot; // Offset: 16 + keen::bool ignoreWeakspots; // Offset: 17 + keen::ds::ecs::EntityId otherEntity; // Offset: 20 + keen::ds::ecs::EntityId otherEntityRoot; // Offset: 24 + keen::bool combatCollider; // Offset: 28 + keen::float3 position; // Offset: 32 + keen::float3 normal; // Offset: 44 + keen::bool isWeakSpot; // Offset: 56 +}; + +struct impact_nodes.TriggerNoise { + keen::float3 position; // Offset: 8 + keen::float32 range; // Offset: 20 +}; + +struct impact_nodes.PacifyFaction { + keen::ds::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.CallFactionForHelp { + keen::ds::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.RandomBranchNode { + keen::float32 chance; // Offset: 12 +}; + +struct impact_nodes.RandomValueNode { + keen::float32 value; // Offset: 8 +}; + +struct impact_nodes.ForEach { + keen::ds::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::uint32 count; // Offset: 16 +}; + +struct impact_nodes.WhileLoopBranchNode { + keen::ds::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 +}; + +struct impact_nodes.OnEvent { + keen::ds::impact::EventStream eventType; // Offset: 8 + keen::ds::impact::EventStream eventStream; // Offset: 9 +}; + +struct impact_nodes.FilterRandom { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FilterFriends { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterSameRoot { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterRootEntity { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterFaction { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::ds::FactionMask faction; // Offset: 10 +}; + +struct impact_nodes.FilterConsecutiveHits { + keen::ds::impact::EventStream eventStream; // Offset: 8 +}; + +struct impact_nodes.FilterEntityTag { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::ds::ecs::EntityTagReference entityTag; // Offset: 12 + keen::bool invert; // Offset: 28 +}; + +struct impact_nodes.ForEachCollisionInStream { + keen::ds::impact::EventStream eventStream; // Offset: 16 + keen::ds::ecs::EntityId otherEntity; // Offset: 20 + keen::ds::ecs::EntityId otherRootEntity; // Offset: 24 + keen::float3 position; // Offset: 28 + keen::float3 normal; // Offset: 40 + keen::WorldTransform transform; // Offset: 56 + keen::uint32 voxelMaterial; // Offset: 112 + keen::bool isCombatTarget; // Offset: 116 + keen::bool isWeakSpot; // Offset: 117 +}; + +struct impact_nodes.ForEachFootDownInStream { + keen::ds::impact::EventStream eventStream; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.IsStreamEmpty { + keen::ds::impact::EventStream eventStream; // Offset: 12 +}; + +struct impact_nodes.GetStreamEventCount { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.ForEachCollision { + keen::ds::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.ForEachHitEvent { + keen::bool wasParried; // Offset: 16 + keen::bool wasBlocked; // Offset: 17 + keen::bool wasBlockBroken; // Offset: 18 + keen::bool wasBackstab; // Offset: 19 + keen::bool wasCrit; // Offset: 20 + keen::bool wasImmune; // Offset: 21 + keen::bool wasKillingBlow; // Offset: 22 + keen::bool wasVisceral; // Offset: 23 + keen::bool wasWeakspot; // Offset: 24 + keen::bool wasSkillShot; // Offset: 25 + keen::ds::FactionType targetFaction; // Offset: 26 + keen::ds::impact::AttackCategoryMask attackCategory; // Offset: 27 + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 28 + keen::ds::ecs::EntityId rootEntity; // Offset: 44 + keen::ds::ecs::EntityId sourceEntity; // Offset: 48 + keen::ds::ecs::EntityId targetRootEntity; // Offset: 52 + keen::ds::ecs::EntityId targetEntity; // Offset: 56 + keen::ds::ecs::EntityId weaponEntity; // Offset: 60 + keen::float3 position; // Offset: 64 + keen::float3 normal; // Offset: 76 + keen::sint32 healthChange; // Offset: 88 + keen::sint32 staminaChange; // Offset: 92 +}; + +struct impact_nodes.SendBaseHitEvent { + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::ds::CollisionFeedbackMaterialReference impactMaterial; // Offset: 32 + keen::uint32 voxelMaterial; // Offset: 48 + keen::ds::ecs::EntityId targetId; // Offset: 52 +}; + +struct impact_nodes.ForEachParryEvent { + keen::ds::ecs::EntityId blockerId; // Offset: 16 + keen::ds::ecs::EntityId attackerId; // Offset: 20 + keen::sint32 staminaDrain; // Offset: 24 +}; + +struct impact_nodes.ForEachItemInBackpack { + keen::ds::ecs::EntityId ownerId; // Offset: 16 + keen::ds::ecs::EntityId pideId; // Offset: 20 +}; + +struct impact_nodes.BoolIfBranchNode { + keen::bool value; // Offset: 12 +}; + +typedef keen::impact_nodes::ValuesCompareOperator impact_nodes.ValuesCompareOperator; + +struct impact_nodes.IsEqual { + keen::ds::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::ds::impact::TypedValue32 valueA; // Offset: 13 + keen::ds::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsLess { + keen::ds::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::ds::impact::TypedValue32 valueA; // Offset: 13 + keen::ds::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsInState { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::actor::StateFlag state; // Offset: 16 +}; + +struct impact_nodes.HasFaction { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::FactionMask faction; // Offset: 16 +}; + +struct impact_nodes.HasEntityTag { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::ecs::EntityTagReference entityTag; // Offset: 16 +}; + +struct impact_nodes.IsValidEntity { + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsInsideBox { + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 + keen::float3 box; // Offset: 84 + keen::float3 boxOffset; // Offset: 96 +}; + +struct impact_nodes.HasAttackCategory { + keen::ds::impact::AttackCategoryMask categoryMask; // Offset: 12 + keen::ds::impact::AttackCategoryMask contains; // Offset: 13 + keen::bool matchAll; // Offset: 14 +}; + +struct impact_nodes.HasWeaponCategory { + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::ds::WeaponCategoryReference requiredCategory; // Offset: 28 +}; + +struct impact_nodes.HasWeaponCategoryType { + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::ds::WeaponCategoryTypeMask allowedCategories; // Offset: 28 +}; + +struct impact_nodes.GetWeaponVisualEntityId { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.IsSameEntity { + keen::ds::ecs::EntityId entityAId; // Offset: 12 + keen::ds::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsEnemy { + keen::ds::ecs::EntityId entityAId; // Offset: 12 + keen::ds::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsFriend { + keen::ds::ecs::EntityId entityAId; // Offset: 12 + keen::ds::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.GetEnemyCountInRange { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.SetEnemyVariable { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ImpactDefinition { +}; + +struct ImpactVariable { + keen::HashKey32 name; // Offset: 0 + keen::HashKey32 configId; // Offset: 4 + keen::HashKey32 type; // Offset: 8 + keen::uint16 size; // Offset: 12 + keen::uint16 offsetInBytes; // Offset: 14 + keen::DsString dbgName; // Offset: 16 +}; + +struct ImpactProgram { + keen::ds::impact::ProgramId id; // Offset: 0 + keen::Guid programGuid; // Offset: 4 + keen::uint16 stackSize; // Offset: 20 + keen::ds::impact::EventStreamMask usedStreams; // Offset: 22 + keen::DsArray code; // Offset: 24 + keen::DsArray codeShutdown; // Offset: 64 + keen::DsArray dataLayout; // Offset: 104 + keen::DsArray data; // Offset: 144 +}; + +struct ImpactConfigInfoEntry { + keen::ds::string nodeName; // Offset: 0 + keen::HashKey32 name; // Offset: 40 + keen::HashKey32 configId; // Offset: 44 + keen::HashKey32 type; // Offset: 48 +}; + +struct ExecutionInfo { + keen::Guid nodeId; // Offset: 0 + keen::DsArray branch; // Offset: 16 +}; + +struct ImpactFunctionCallDebugInfo { + keen::ds::string nodeName; // Offset: 0 + keen::Guid nodeId; // Offset: 40 + keen::uint16 pc; // Offset: 56 +}; + +struct ImpactInfo { + keen::Guid programGuid; // Offset: 0 + keen::uint32 cmdCount; // Offset: 16 + keen::DsArray configs; // Offset: 24 + keen::DsArray programFlow; // Offset: 64 + keen::DsArray dataLayout; // Offset: 104 + keen::DsArray debugInfo; // Offset: 144 + keen::DsArray shutdownlDebugInfo; // Offset: 184 +}; + +struct ImpactConfigData { + keen::ds::impact::Configurations configValues; // Offset: 0 +}; + +struct ImpactSubDirectory { +}; + +struct ImpactDirectory { +}; + +struct ImpactRegistryResource { + keen::DsArray programs; // Offset: 0 +}; + +typedef keen::CelestialBodyDirection CelestialBodyDirection; + +struct CelestialBodySetup { + keen::float32 riseAngle; // Offset: 0 + keen::float32 setAngle; // Offset: 4 + keen::float32 zenithAngle; // Offset: 8 + keen::ds::CelestialBodyDirection direction; // Offset: 12 +}; + +struct IngameTimeConfig { + keen::Time dayStart; // Offset: 0 + keen::Time dayEnd; // Offset: 8 + keen::ds::CelestialBodySetup sunSetup; // Offset: 16 + keen::ds::CelestialBodySetup moonSetup; // Offset: 32 +}; + +struct IngameTimeSpan { + keen::Time start; // Offset: 0 + keen::Time end; // Offset: 8 +}; + +typedef keen::input_mapping::PresetId input_mapping.PresetId; + +typedef keen::input_mapping::ControlOperationType input_mapping.ControlOperationType; + +typedef keen::input_mapping::InputModality input_mapping.InputModality; + +typedef keen::input_mapping::AxisDirection input_mapping.AxisDirection; + +typedef keen::input_mapping::runtime::GameplayAction input_mapping.runtime.GameplayAction; + +typedef keen::input_mapping::config::GameplayAction input_mapping.config.GameplayAction; + +struct input_mapping.serialize.ControlOperation { + keen::ds::input_mapping::ControlOperationType type; // Offset: 0 + keen::ds::string id; // Offset: 8 + keen::ds::input_mapping::AxisDirection axis; // Offset: 48 +}; + +struct input_mapping.serialize.ControlOperationCombo { + keen::ds::input_mapping::serialize::ControlOperation operation; // Offset: 0 + keen::DsArray modifiers; // Offset: 56 +}; + +struct input_mapping.serialize.KeyboardMouseAction { + keen::ds::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::ds::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 96 + keen::ds::input_mapping::InputModality modality; // Offset: 192 + keen::bool toggle; // Offset: 193 +}; + +struct input_mapping.serialize.GamepadAction { + keen::ds::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::ds::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 96 + keen::ds::input_mapping::InputModality modality; // Offset: 192 + keen::bool toggle; // Offset: 193 +}; + +struct input_mapping.serialize.ActionInputBinding { + keen::DsString gameplay; // Offset: 0 + keen::ds::input_mapping::serialize::KeyboardMouseAction keyboardMouse; // Offset: 40 + keen::ds::input_mapping::serialize::GamepadAction gamepad; // Offset: 240 +}; + +struct input_mapping.serialize.InputBindings { + keen::ds::input_mapping::PresetId customKeyboardMouseBasePresetId; // Offset: 0 + keen::ds::input_mapping::PresetId customGamepadBasePresetId; // Offset: 1 + keen::DsArray bindings; // Offset: 8 +}; + +typedef keen::input_mapping::runtime::ContextualVector2Context input_mapping.runtime.ContextualVector2Context; + +struct input_mapping.runtime.ContextualVector2 { + keen::ds::input_mapping::runtime::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.InteractionQuery { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 queryRadius; // Offset: 4 + keen::float3 queryOffset; // Offset: 8 +}; + +struct ecs.ClientInteractionQuery { + keen::uint32 nearestOfferedInteractionOfferId; // Offset: 0 + keen::ds::ecs::SpecialInteraction specialInteraction; // Offset: 4 +}; + +struct ecs.InteractionAcceptData { + keen::ds::ecs::EntityId guestId; // Offset: 0 + keen::ds::InventorySlotId usedItem; // Offset: 4 + keen::uint32 offerId; // Offset: 12 +}; + +struct ecs.InteractionOffer { + keen::ds::actor::ActorSequenceReference defaultAction; // Offset: 0 + keen::ds::LocaTagReference verbLoca; // Offset: 16 + keen::ds::LocaTagReference lastVerbLoca; // Offset: 32 + keen::ds::LocaTagReference overrideVerbLoca; // Offset: 48 + keen::ds::actor::SequenceResourceId overrideSequence; // Offset: 64 + keen::ds::ecs::InteractionAcceptData lastAttemptData; // Offset: 68 + keen::ds::ecs::InteractionAcceptData lastAcceptData; // Offset: 84 + keen::Time lastAcceptTime; // Offset: 104 + keen::uint32 offerId; // Offset: 112 + keen::ds::LocaTagId verbId; // Offset: 116 + keen::bool isColliderDirty; // Offset: 120 + keen::bool isOffered; // Offset: 121 + keen::bool reduceInteractionWeight; // Offset: 122 +}; + +struct ecs.ClientInteractionOffer { + keen::ds::LocaTagId verbId; // Offset: 0 + keen::ds::ecs::EntityId lastAcceptionId; // Offset: 4 + keen::bool isOffered; // Offset: 8 +}; + +typedef keen::ecs::InteractionLockFlag ecs.InteractionLockFlag; + +typedef keen::ecs::InteractionLockMask ecs.InteractionLockMask; + +struct ecs.InteractionLock { + keen::ds::ItemReference requiredItemRef; // Offset: 0 + keen::ds::ItemId requiredItem; // Offset: 16 + keen::ds::PlayerPermissionsMask requiredPermission; // Offset: 20 + keen::ds::ecs::InteractionLockMask lockMask; // Offset: 21 + keen::ds::actor::ActorSequenceReference successfulAttempt; // Offset: 24 + keen::ds::actor::ActorSequenceReference failedAttempt; // Offset: 40 + keen::bool destroy; // Offset: 56 +}; + +struct ecs.LootRefill { + keen::ds::ItemReference lootableItemRef; // Offset: 0 + keen::uint32 refillCount; // Offset: 16 + keen::uint32 maxCount; // Offset: 20 +}; + +struct ecs.InteractionLootRefill { + keen::Time waitTime; // Offset: 0 + keen::ds::LocaTagReference verbLoca; // Offset: 8 + keen::ds::actor::ActorSequenceReference defaultSequence; // Offset: 24 + keen::DsArray items; // Offset: 40 +}; + +struct ecs.DynamicInteractionLootRefill { + keen::Time nextRefill; // Offset: 0 +}; + +struct ecs.ClientInteractionLock { + keen::Guid failedAttempt; // Offset: 0 + keen::Guid successfulAttempt; // Offset: 16 + keen::ds::ItemId requiredItem; // Offset: 32 + keen::uint32 offerId; // Offset: 36 + keen::ds::PlayerPermissionsMask requiredPermission; // Offset: 40 +}; + +struct ecs.InteractionKnowledgeLock { + keen::ds::ecs::ToggleModifier modifier; // Offset: 0 + keen::bool useSpawnKnowledgeRequirement; // Offset: 1 + keen::ds::GameKnowledgeRequirement unlockRequiement; // Offset: 4 + keen::ds::KnowledgeId queryId; // Offset: 108 +}; + +struct ecs.ClientInteractionToState { +}; + +struct ecs.InteractionPause { + keen::Time timeout; // Offset: 0 +}; + +struct ecs.RemoveInteractionOnEmptyInventory { +}; + +typedef keen::ecs::DirectionalState ecs.DirectionalState; + +struct ecs.DirectionalInteractionSetup { + keen::bool backToIdle; // Offset: 0 + keen::ds::LocaTagReference verb; // Offset: 4 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 20 + keen::ds::animationgraph::StateIdReference animationState; // Offset: 36 +}; + +struct ecs.DirectionalInteraction { + keen::ds::ecs::DirectionalState state; // Offset: 0 + keen::ds::ecs::DirectionalInteractionSetup idleState; // Offset: 4 + keen::ds::ecs::DirectionalInteractionSetup frontInteraction; // Offset: 56 + keen::ds::ecs::DirectionalInteractionSetup backInteraction; // Offset: 108 +}; + +struct ecs.InteractionToggle { + keen::ds::LocaTagReference offToOnVerb; // Offset: 0 + keen::ds::actor::ActorSequenceReference offToOnSequence; // Offset: 16 + keen::ds::LocaTagReference onToOffVerb; // Offset: 32 + keen::ds::actor::ActorSequenceReference onToOffSequence; // Offset: 48 +}; + +struct ecs.CraftingInteraction { + keen::ds::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::ObjectReference workshop; // Offset: 12 + keen::ds::WorkshopId workshopId; // Offset: 28 +}; + +struct ecs.ClientCraftingInteraction { + keen::ds::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::ds::WorkshopId workshopId; // Offset: 12 +}; + +struct ecs.InteractionAttachment { + keen::ds::ecs::Offset guestOffset; // Offset: 0 + keen::Time lastAttachTime; // Offset: 40 +}; + +struct ecs.InteractionAttachmentGuest { + keen::ds::ecs::EntityId lastHostEntityId; // Offset: 0 +}; + +struct ItemData { + keen::uint32 count; // Offset: 0 + keen::ds::ecs::EntityId pide; // Offset: 4 +}; + +struct ItemStack { + keen::ds::ItemId id; // Offset: 0 + keen::ds::ItemData data; // Offset: 4 +}; + +struct ecs.DefaultInventoryDirectory { +}; + +struct ecs.DefaultInventoryEntry { + keen::ds::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct ecs.RandomDefaultInventoryEntry { + keen::ds::ItemReference item; // Offset: 0 + keen::uint32 countMin; // Offset: 16 + keen::uint32 countMax; // Offset: 20 + keen::float spawnProbability; // Offset: 24 +}; + +struct ecs.WeightedDefaultInventoryEntry { + keen::float weight; // Offset: 28 +}; + +struct ecs.RandomDefaultInventoryEntrySelector { +}; + +struct ecs.DefaultInventorySetup { +}; + +struct ecs.ItemStackInfoResource { + keen::ds::ItemReference itemRef; // Offset: 0 + keen::ds::ItemId item; // Offset: 16 + keen::uint32 countMin; // Offset: 20 + keen::uint32 countMax; // Offset: 24 + keen::float spawnProbability; // Offset: 28 +}; + +struct ecs.ItemStackInfoResourceWeighted { + keen::float weight; // Offset: 32 +}; + +struct ecs.DefaultInventoryEntrySelectorResource { + keen::DsArray selectionCandidates; // Offset: 0 +}; + +struct ecs.DefaultInventoryResource { + keen::DsArray stacks; // Offset: 0 + keen::DsArray stackSelectors; // Offset: 40 +}; + +struct ecs.DefaultInventory { + keen::ds::ecs::DefaultInventoryReference defaultInventory; // Offset: 0 + keen::bool keepOnRandomLoot; // Offset: 16 + keen::bool applied; // Offset: 17 +}; + +struct ecs.DefaultInventoryOverrides { + keen::ds::ecs::DefaultInventoryReference slot1; // Offset: 0 + keen::ds::ecs::DefaultInventoryReference slot2; // Offset: 16 + keen::ds::ecs::DefaultInventoryReference slot3; // Offset: 32 +}; + +struct ecs.AffectedByIncreasedPickupSkill { +}; + +struct ecs.AdditionalMaterialLoot { + keen::ds::ItemId additionalItemId; // Offset: 0 +}; + +typedef keen::InventoryCategory InventoryCategory; + +struct ecs.InventoryLink { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::ds::InventoryCategory category; // Offset: 4 +}; + +typedef keen::ecs::InventoryFlags ecs.InventoryFlags; + +typedef keen::ecs::InventorySetupMask ecs.InventorySetupMask; + +struct ecs.InventorySetup { + keen::StaticArray linksEntities; // Offset: 0 + keen::StaticArray linksCategories; // Offset: 64 + keen::ds::ecs::InventorySetupMask inventoryFlags; // Offset: 80 + keen::uint8 genericSlotCount; // Offset: 81 + keen::uint8 availableSlotCount; // Offset: 82 + keen::bool isInitialized; // Offset: 83 +}; + +struct ecs.InventorySetupInit { +}; + +struct ecs.Inventory { + keen::StaticArray slots; // Offset: 0 +}; + +struct ecs.InventoryCraftingStock { +}; + +struct ecs.ResourceNodeDropInfo { + keen::ds::ecs::TemplateReference entity; // Offset: 0 + keen::ds::ItemReference item; // Offset: 16 + keen::uint8 stackAmount; // Offset: 32 + keen::float32 weight; // Offset: 36 +}; + +struct ecs.ResourceNodePickupDrops { + keen::ds::ecs::TemplateReference pickupItemReference; // Offset: 0 + keen::DsArray drops; // Offset: 16 + keen::uint8 numberOfDrops; // Offset: 56 + keen::float32 dropWhileAlivePercentage; // Offset: 60 + keen::bool dropInWorld; // Offset: 64 + keen::float32 yOffsetMin; // Offset: 68 + keen::float32 yOffsetMax; // Offset: 72 + keen::float32 dropRadiusMin; // Offset: 76 + keen::float32 dropRadiusMax; // Offset: 80 + keen::float32 velocityMin; // Offset: 84 + keen::float32 velocityMax; // Offset: 88 +}; + +struct ecs.MiningNodeKnowledge { + keen::bool useSpawnTriggerKnowledge; // Offset: 0 + keen::ObjectReference knowledgeNode; // Offset: 4 + keen::bool unlockForGroup; // Offset: 20 +}; + +struct ecs.PickupItem { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemReference item; // Offset: 4 + keen::uint32 level; // Offset: 20 + keen::ds::ItemRarity rarity; // Offset: 24 + keen::uint16 pickupAmount; // Offset: 26 +}; + +struct ecs.PickupItemModelSetup { +}; + +struct ecs.DestroyOnLoot { + keen::Time despawnTime; // Offset: 0 + keen::ds::NotifierReference vfxOnDestroy; // Offset: 8 + keen::ds::ecs::Offset offset; // Offset: 24 + keen::bool isActive; // Offset: 64 + keen::bool shouldDestroy; // Offset: 65 + keen::ds::SoundContainerReference sfx; // Offset: 68 + keen::ds::VfxReference vfx; // Offset: 84 +}; + +struct ecs.DestroyOnLootActivated { +}; + +struct ecs.AddDestructibleOnLoot { + keen::uint32 health; // Offset: 0 +}; + +typedef keen::ItemCategory ItemCategory; + +typedef keen::ItemCategoryMask ItemCategoryMask; + +typedef keen::CrosshairType CrosshairType; + +typedef keen::ItemRarityMask ItemRarityMask; + +typedef keen::ItemFlag ItemFlag; + +typedef keen::ItemFlags ItemFlags; + +struct ItemTag { + keen::ds::LocaTagReference label; // Offset: 0 +}; + +typedef keen::ObjectReference ItemTagReference; + +struct ItemTagWeight { + keen::ds::ItemTagReference tag; // Offset: 0 + keen::uint32 nominator; // Offset: 16 + keen::uint32 denominator; // Offset: 20 +}; + +struct ItemTagInfo { + keen::Guid tagGuid; // Offset: 0 + keen::ds::LocaTagId labelId; // Offset: 16 +}; + +struct ItemTagInfoList { + keen::DsArray itemTags; // Offset: 0 +}; + +typedef keen::SnappingToggleMode SnappingToggleMode; + +struct ChangeVoxelData { + keen::bool isBuildingVoxel; // Offset: 0 + keen::ObjectReference placeVoxelMaterial; // Offset: 4 + keen::uint8 placeVoxelMaterialId; // Offset: 20 +}; + +typedef keen::CameraDistance CameraDistance; + +struct CameraDistanceOverride { + keen::ds::CameraDistance distance; // Offset: 0 + keen::bool override; // Offset: 1 +}; + +typedef keen::BuildingCameraMode BuildingCameraMode; + +struct CursorFxConfig { + keen::ds::SoundContainerReference loopedSfx; // Offset: 0 + keen::ds::SoundContainerReference oneShotSfx; // Offset: 16 + keen::ds::VfxReference oneShotVfx; // Offset: 32 + keen::ds::ecs::Offset oneShotVfxOffset; // Offset: 48 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 88 + keen::sint32 vfxParameterOffset_boundingBoxMin; // Offset: 152 + keen::sint32 vfxParameterOffset_boundingBoxMax; // Offset: 156 +}; + +struct GliderConfig { + keen::float32 accelerationForward; // Offset: 0 + keen::float32 airResistanceLongitudinal; // Offset: 4 + keen::float32 airResistanceLateral; // Offset: 8 + keen::float32 airResistanceVertical; // Offset: 12 + keen::float32 yawAngleSpeed; // Offset: 16 + keen::float32 pitchAngleSpeed; // Offset: 20 + keen::float32 rollAngleSpeed; // Offset: 24 +}; + +typedef keen::InventoryStockType InventoryStockType; + +typedef keen::AttachDirection AttachDirection; + +typedef keen::AttachAngleRange AttachAngleRange; + +struct AttachAngleConfig { + keen::ds::AttachAngleRange ceilingAngle; // Offset: 0 + keen::ds::AttachAngleRange wallAngle; // Offset: 1 + keen::ds::AttachAngleRange floorAngle; // Offset: 2 + keen::ds::AttachDirection defaultAttachDirection; // Offset: 3 + keen::ds::AttachDirection secondaryAttachDirection; // Offset: 4 + keen::bool hasSecondaryAttachDirection; // Offset: 5 + keen::bool forceUprightNormal; // Offset: 6 +}; + +struct VoxelRequirement { + keen::ObjectReference soil; // Offset: 0 + keen::ds::VoxelMaterialId soilMaterialId; // Offset: 16 + keen::float factor; // Offset: 20 +}; + +struct VoxelRequirementInfo { + keen::DsArray requirements; // Offset: 0 +}; + +struct CursorActionConfig { + keen::bool snapPositionToAddableVoxel; // Offset: 0 + keen::bool snapPositionToRemovableVoxel; // Offset: 1 +}; + +struct CursorConfig { + keen::ds::ecs::TemplateReference customCursorEntity; // Offset: 0 + keen::bool autoCenterPivot; // Offset: 16 + keen::float3 pivotOffset; // Offset: 20 + keen::bool allowSnapToSnappingBoxes; // Offset: 32 + keen::bool forceSnapPositionToVoxelGrid; // Offset: 33 + keen::bool snapOrientationToVoxelGrid; // Offset: 34 + keen::bool snapToCenterWhenSmallerThanVoxel; // Offset: 35 + keen::bool smoothOutTerrainNormal; // Offset: 36 + keen::bool alwaysFacePlayer; // Offset: 37 + keen::bool addRandomYawAngleOffset; // Offset: 38 + keen::ds::CursorActionConfig primaryActionConfig; // Offset: 39 + keen::ds::AttachAngleConfig attachAngleConfig; // Offset: 41 + keen::bool checkRequiredMaterialsOnPrimaryAction; // Offset: 48 + keen::ds::CursorActionConfig secondaryActionConfig; // Offset: 49 + keen::ds::AttachAngleConfig attachAngleConfigSecondary; // Offset: 51 + keen::bool checkRequiredMaterialsOnSecondaryAction; // Offset: 58 + keen::bool useSphereCast; // Offset: 59 + keen::bool keepSnappedToPlane; // Offset: 60 + keen::bool checkBuildZoneEnemies; // Offset: 61 + keen::bool checkSurfaceTopology; // Offset: 62 + keen::DsArray allowedVoxels; // Offset: 64 + keen::bool highlightHoveredEntity; // Offset: 104 + keen::bool showVoxelBlock; // Offset: 105 + keen::ds::CursorFxConfig addFxConfig; // Offset: 108 + keen::ds::CursorFxConfig subFxConfig; // Offset: 268 + keen::ObjectReference defaultCursorStaticModel; // Offset: 428 + keen::ObjectReference defaultCursorSkinnedModel; // Offset: 444 + keen::ObjectReference defaultCursorVfx; // Offset: 460 +}; + +struct VoxelSnappingConfigOld { + keen::uint3 snapBoxOffsetMin; // Offset: 0 + keen::uint3 snapBoxOffsetMax; // Offset: 12 + keen::uint8 basementHeight; // Offset: 24 +}; + +struct EquipmentModel { + keen::ds::BlendShapeMask mask; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +typedef keen::SequenceRequirments SequenceRequirments; + +typedef keen::SequenceRequirmentMask SequenceRequirmentMask; + +typedef keen::KnowledgeTriggerType KnowledgeTriggerType; + +struct GameKnowledgeTrigger { + keen::ds::KnowledgeTriggerType triggerType; // Offset: 0 + keen::ObjectReference unlockKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::ds::ItemKnowledgeTrigger itemKnowledge; // Offset: 36 + keen::bool useWorldItemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 +}; + +struct ItemSequence { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 4 + keen::ds::actor::ActionSequenceTrigger triggeredBy; // Offset: 20 + keen::ds::SequenceRequirmentMask requirements; // Offset: 22 + keen::ds::skilltree_nodes::NodeReference requiredSkill; // Offset: 24 + keen::ds::ecs::SpecialInteraction specialInteractionType; // Offset: 40 + keen::ds::ItemReference costOverride; // Offset: 44 + keen::bool triggerKnowledge; // Offset: 60 + keen::ds::GameKnowledgeTrigger knowledgeTrigger; // Offset: 64 + keen::HashKey32 triggerKnowledgeId; // Offset: 120 + keen::ds::ecs::EntityTagReference sequenceEntityTag; // Offset: 124 + keen::DsArray combinedEntityTags; // Offset: 144 +}; + +struct UiActionHints { + keen::ds::LocaTagReference primaryAction; // Offset: 0 + keen::ds::LocaTagReference secondaryAction; // Offset: 16 + keen::ds::LocaTagReference tertiaryAction; // Offset: 32 + keen::ds::input_mapping::runtime::GameplayAction tertiaryGameplayAction; // Offset: 48 + keen::bool alwaysShow; // Offset: 49 +}; + +struct EquipmentSetup { + keen::ds::EquipmentSlotType slot; // Offset: 0 + keen::bool repeatActionWhenPressed; // Offset: 1 + keen::ds::ecs::EntityTagReference itemSequencesEntityTag; // Offset: 4 + keen::ds::BlendShapeMask blendShapeMask; // Offset: 20 + keen::ds::VisualEquipmentMask hideMask; // Offset: 24 + keen::ds::ImpactEquipmentMask disableMask; // Offset: 28 + keen::ds::ecs::TemplateReference impactEntity; // Offset: 32 + keen::ds::ImpactProgramReference program; // Offset: 48 + keen::ds::ecs::TemplateReference visualEntity; // Offset: 64 + keen::ObjectReference visualModel; // Offset: 80 + keen::ds::PrimaryAnimationSet primaryAnimationSet; // Offset: 96 + keen::ds::SecondaryAnimationSet secondaryAnimationSet; // Offset: 97 + keen::ds::CrosshairType crosshairType; // Offset: 98 + keen::ds::CursorConfig cursorConfig; // Offset: 104 + keen::ObjectReference cursorModel; // Offset: 584 + keen::ObjectReference cursorSkinnedModel; // Offset: 600 + keen::ObjectReference cursorVfx; // Offset: 616 + keen::ds::CameraDistanceOverride cameraDistanceOverride; // Offset: 632 + keen::ds::BuildingCameraMode buildingCameraMode; // Offset: 634 + keen::float32 defaultVerticalPlacementOffset; // Offset: 636 + keen::float32 maxTiltAngle; // Offset: 640 + keen::float32 maxDistance; // Offset: 644 + keen::ds::ecs::TemplateReference placedEntity; // Offset: 648 + keen::float3 placementAABBmin; // Offset: 664 + keen::float3 placementAABBmax; // Offset: 676 + keen::float3 snappingAABBmin; // Offset: 688 + keen::float3 snappingAABBmax; // Offset: 700 + keen::DsArray placementColliders; // Offset: 712 + keen::ds::ecs::TriggerShapes placementNoBuildZones; // Offset: 752 + keen::ds::BuffTypeReference appliedBuff; // Offset: 792 + keen::ds::BuffTypeReference appliedDebuff; // Offset: 808 + keen::bool allowPlacementBelowFog; // Offset: 824 + keen::ds::InhibitBuildingCheck checkInhibitBuild; // Offset: 825 + keen::bool buildZoneRequired; // Offset: 826 + keen::bool requiresAltarSlot; // Offset: 827 + keen::DsArray requiredCraftingIngredients; // Offset: 832 + keen::float3 placedEntityLocalSpawnVelocity; // Offset: 872 + keen::ds::ChangeVoxelData voxelData; // Offset: 884 + keen::ObjectReference voxelObject; // Offset: 908 + keen::ObjectReference terrainVoxelObject; // Offset: 924 + keen::ds::VoxelSnappingConfigOld voxelSnappingConfig; // Offset: 940 + keen::ObjectReference voxelBlueprintConfig; // Offset: 968 + keen::ObjectReference voxelBlueprintMaterialPool; // Offset: 984 + keen::sint8 voxelObjectMaterialOverride; // Offset: 1000 + keen::DsArray visualModels; // Offset: 1008 + keen::ds::GliderConfig gliderConfig; // Offset: 1048 + keen::ds::TerraformingType terraformingType; // Offset: 1076 +}; + +typedef keen::ItemKnowledgeTriggerMask ItemKnowledgeTriggerMask; + +struct ItemKnowledgeBase { + keen::ds::ItemKnowledgeTriggerMask trigger; // Offset: 0 + keen::ds::LocaTagReference triggerTag; // Offset: 4 +}; + +struct ItemKnowledgeName { + keen::ds::NameLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeDescription { + keen::ds::DescriptionLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeLore { + keen::ds::LoreLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeRecipe { + keen::bool unused; // Offset: 20 +}; + +struct ItemLevelRange { + keen::uint32 minLevel; // Offset: 0 + keen::uint32 maxLevel; // Offset: 4 +}; + +struct StackSizeRange { + keen::uint16 minStackSize; // Offset: 0 + keen::uint16 maxStackSize; // Offset: 2 +}; + +struct ItemCommerceLink { + keen::ds::CommerceProductReference product; // Offset: 0 + keen::ds::CommerceProductId id; // Offset: 16 + keen::bool isSet; // Offset: 20 +}; + +struct ItemDamageSetup { + keen::float32 speedMod; // Offset: 0 + keen::float32 dmgMod; // Offset: 4 + keen::ds::impact::DamageDistribution distribution; // Offset: 8 + keen::bool isSet; // Offset: 60 +}; + +struct ItemPermissionSetup { + keen::ds::PlayerPermissionsMask permissions; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ItemArmorSetup { + keen::ds::impact::ArmorDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 36 +}; + +struct ItemBlockSetup { + keen::float quality; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemScaledCostSetup { + keen::float staminaMod; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemFuelData { + keen::Time burnTime; // Offset: 0 + keen::uint32 energyOutput; // Offset: 8 + keen::bool isSet; // Offset: 12 +}; + +struct ItemColorCombination { + keen::ds::ColorCombinationReference combination; // Offset: 0 +}; + +struct ItemComfortSetup { + keen::uint32 comfortAmount; // Offset: 0 +}; + +struct ItemInfoExposure { + keen::bool enable; // Offset: 0 + keen::float exposure; // Offset: 4 +}; + +typedef keen::ItemClassAlignmentType ItemClassAlignmentType; + +typedef keen::ObjectReference PerkReference; + +struct ItemCollectionInfo { + keen::bool isOverrideModelSet; // Offset: 0 + keen::ObjectReference overrideModel; // Offset: 4 + keen::ds::ecs::Offset overrideModelOffset; // Offset: 20 + keen::DsArray categories; // Offset: 64 +}; + +struct ItemInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::uint16 maxStackSize; // Offset: 20 + keen::bool generateRarity; // Offset: 22 + keen::ds::ItemRarity rarity; // Offset: 23 + keen::ds::ItemRarityMask disableRarityGeneration; // Offset: 24 + keen::ds::StackSizeRange randomLootStackRange; // Offset: 26 + keen::DsArray overridePickupModels; // Offset: 32 + keen::ds::ecs::TemplateReference overridePickupEntity; // Offset: 72 + keen::ds::NotifierReference pickupFx; // Offset: 88 + keen::ds::NameLocaTag name; // Offset: 104 + keen::ds::CaptionLocaTag caption; // Offset: 120 + keen::ds::DescriptionLocaTag description; // Offset: 136 + keen::ds::LoreLocaTag lore; // Offset: 152 + keen::ds::UiActionHints uiActionHints; // Offset: 168 + keen::ds::ItemCategory category; // Offset: 220 + keen::ds::AmmunitionType ammunitionType; // Offset: 221 + keen::ds::WeaponCategoryReference weaponCategoryReference; // Offset: 224 + keen::ds::ItemClassAlignmentType itemClassAlignment; // Offset: 240 + keen::ds::MidiInstrumentType midiInstrumentType; // Offset: 241 + keen::ds::EquipmentSetup equipment; // Offset: 248 + keen::DsArray sequences; // Offset: 1328 + keen::ds::ecs::TemplateReference pidEntity; // Offset: 1368 + keen::ObjectReference exchangeOnBroken; // Offset: 1384 + keen::ds::ImageReference iconImage; // Offset: 1400 + keen::ObjectReference iconModel; // Offset: 1416 + keen::ObjectReference iconScene; // Offset: 1432 + keen::ds::ecs::Offset iconRenderOffset; // Offset: 1448 + keen::float32 iconRenderCookingScale; // Offset: 1488 + keen::float32 iconRenderGlobalScale; // Offset: 1492 + keen::ds::ItemInfoExposure overrideSceneExposure; // Offset: 1496 + keen::bool fitToItemModelBoundingBox; // Offset: 1504 + keen::ds::ItemFlags flags; // Offset: 1506 + keen::bool overrideKnowledgeGeneration; // Offset: 1508 + keen::Bitmask16 generateKnowledge; // Offset: 1510 + keen::DsArray tags; // Offset: 1512 + keen::DsArray uiValues; // Offset: 1552 + keen::DsArray uiBuffValues; // Offset: 1592 + keen::ds::impact::Configurations impactValues; // Offset: 1632 + keen::StaticArray perkReferences; // Offset: 1672 + keen::ds::ItemLevelRange itemLevelRange; // Offset: 1752 + keen::ds::ItemDamageSetup damageSetup; // Offset: 1760 + keen::ds::ItemArmorSetup armorSetup; // Offset: 1824 + keen::ds::ItemFuelData fuelSetup; // Offset: 1864 + keen::ds::ItemBlockSetup blockSetup; // Offset: 1880 + keen::ds::ItemScaledCostSetup scaledCostSetup; // Offset: 1888 + keen::ds::ItemCommerceLink commerceLink; // Offset: 1896 + keen::ds::ItemPermissionSetup permissionSetup; // Offset: 1920 + keen::ds::ItemColorSetupInternal itemPaletteColorSetup; // Offset: 1924 + keen::ds::ItemCollectionInfo collectionInfo; // Offset: 1944 + keen::ds::ItemComfortSetup comfortSetup; // Offset: 2048 + keen::DsString debugName; // Offset: 2056 +}; + +struct ItemConvertInfo { + keen::DsString name; // Offset: 0 + keen::Guid id; // Offset: 40 + keen::DsArray> knowledge; // Offset: 56 + keen::Guid visualModelGuid; // Offset: 96 + keen::DsArray visualModels; // Offset: 112 + keen::ds::VisualEquipmentMask hideMask; // Offset: 152 + keen::ds::BlendShapeMask allowedBlendShapeMask; // Offset: 156 + keen::ds::BlendShapeMask setBlendShapeMask; // Offset: 160 + keen::ds::ColorCombination colorCombination; // Offset: 164 + keen::Guid voxelMaterialGuid; // Offset: 212 + keen::bool isDevItem; // Offset: 228 +}; + +struct GameKnowledgeGenerationScope { + keen::Bitmask16 knowledgeTypes; // Offset: 0 +}; + +struct ItemSubDirectory { +}; + +struct ItemRarityDropSettings { + keen::float32 common; // Offset: 0 + keen::float32 uncommon; // Offset: 4 + keen::float32 rare; // Offset: 8 + keen::float32 legendary; // Offset: 12 +}; + +struct WeaponCategory { + keen::ds::LocaTagReference locaTag; // Offset: 0 + keen::ds::AttributeReference damageMod; // Offset: 16 + keen::ds::WeaponCategoryType categoryType; // Offset: 32 + keen::ds::ItemClassAlignmentType classType; // Offset: 33 + keen::float32 cameraTraumaVerySmall; // Offset: 36 + keen::float32 cameraTraumaSmall; // Offset: 40 + keen::float32 cameraTraumaNormal; // Offset: 44 + keen::float32 cameraTraumaBig; // Offset: 48 + keen::float32 cameraTraumaVeryBig; // Offset: 52 + keen::float32 cameraImpulseStrength; // Offset: 56 + keen::Time cameraImpulseDuration; // Offset: 64 +}; + +struct WeaponCategoryResource { + keen::Guid guid; // Offset: 0 + keen::ds::WeaponCategory weaponCategory; // Offset: 16 +}; + +struct WeaponCategoryDirectory { +}; + +struct ItemDirectory { + keen::ObjectReference defaultIconScene; // Offset: 0 + keen::ds::ItemRarityDropSettings rarityDropWeights; // Offset: 16 + keen::float weaponArmorRatio; // Offset: 32 + keen::ObjectReference weaponCategoryDirectory; // Offset: 36 +}; + +struct WeaponCategoryDirectoryResource { + keen::DsArray weaponCategories; // Offset: 0 +}; + +struct ItemRegistryResource { + keen::DsArray itemRefs; // Offset: 0 + keen::DsArray itemTags; // Offset: 40 + keen::DsArray weaponCategories; // Offset: 80 + keen::DsArray dbgNames; // Offset: 120 +}; + +struct ItemIconRegistryEntryResource { + keen::Guid guid; // Offset: 0 + keen::ds::UiTextureResource uiTexture; // Offset: 16 +}; + +struct ItemIconRegistryResource { + keen::DsArray icons; // Offset: 0 +}; + +struct DevItemRegistryResource { +}; + +struct ItemKnowledgeLock { + keen::ds::LocaTagId unlockedLocaId; // Offset: 0 + keen::ds::LocaTagId keyLocaId; // Offset: 4 + keen::ds::ItemKnowledgeTriggerMask unlockTrigger; // Offset: 8 +}; + +struct ItemKnowledge { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemKnowledgeMask lockedKnowledgeMask; // Offset: 4 + keen::ds::ItemKnowledgeLock nameLock; // Offset: 8 + keen::ds::ItemKnowledgeLock descriptionLock; // Offset: 20 + keen::ds::ItemKnowledgeLock loreLock; // Offset: 32 + keen::ds::ItemKnowledgeLock recipeLock; // Offset: 44 +}; + +struct ItemKnowledgeResource { + keen::DsArray knowledgeArray; // Offset: 0 +}; + +struct PickupFxConfig { + keen::ds::SoundContainerReference sfx; // Offset: 0 + keen::ds::VfxReference vfx; // Offset: 16 +}; + +struct PickupModelOverride { + keen::ObjectReference model; // Offset: 0 +}; + +struct PickupEntityOverride { + keen::ds::ecs::TemplateReference entity; // Offset: 0 +}; + +struct ItemCollectionOptionBase { +}; + +struct ItemCollectionCategoryReference { + keen::ObjectReference category; // Offset: 0 +}; + +struct ItemCollectionModelOverride { + keen::ObjectReference model; // Offset: 0 + keen::ds::ecs::Offset modelOffset; // Offset: 16 +}; + +struct VoxelBlueprintItem { + keen::ds::ItemId itemId; // Offset: 0 + keen::uint3 size; // Offset: 4 + keen::DsArray data; // Offset: 16 + keen::bool isDataCompressed; // Offset: 56 +}; + +struct VoxelBlueprintItemRegistryResource { + keen::DsArray blueprintItems; // Offset: 0 +}; + +struct ItemPropsForPropTestResource { + keen::DsArray propItems; // Offset: 0 +}; + +struct ItemCollectionDirectory { +}; + +struct ItemCollectionSubDirectory { +}; + +struct ItemCollectionSetup { + keen::ObjectReference hierarchy; // Offset: 0 + keen::ObjectReference completionKnowledge; // Offset: 16 +}; + +struct ItemCollectionSlot { + keen::ds::string jointName; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 40 +}; + +struct ItemCollectionSlotId { + keen::ObjectReference itemId; // Offset: 80 +}; + +struct ItemCollectionSlotCategory { + keen::ObjectReference category; // Offset: 80 +}; + +struct ItemCollectionSlotEquipment { + keen::ds::EquipmentSlot equipmentSlot; // Offset: 80 +}; + +struct ItemCollectionResource { + keen::DsArray slots; // Offset: 0 + keen::ds::KnowledgeId completionKnowledgeId; // Offset: 40 +}; + +struct ItemCollectionSlotResource { + keen::ds::ItemCollectionId collectionId; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 + keen::ds::ItemId itemId; // Offset: 44 + keen::ds::ItemCollectionId collectionCategoryId; // Offset: 48 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 52 +}; + +struct ItemCollectionCategoryDirectory { +}; + +struct ItemCollectionCategory { +}; + +struct SceneScatterData { + keen::ObjectReference scatterSet; // Offset: 0 + keen::uint2 start; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool disable; // Offset: 32 + keen::bool writeDebug; // Offset: 33 +}; + +typedef keen::WorldDistributionTypeFlags WorldDistributionTypeFlags; + +struct SceneResetPlayersOutOfBounds { + keen::float32 marginHorizontal; // Offset: 0 + keen::float32 marginVertical; // Offset: 4 + keen::DsArray playableAreas; // Offset: 8 +}; + +struct Scene { + keen::ObjectReference voxelWorld; // Offset: 0 + keen::uint2 worldSize; // Offset: 16 + keen::int3 worldOrigin; // Offset: 24 + keen::ObjectReference ibl; // Offset: 36 + keen::float32 iblIntensity; // Offset: 52 + keen::ObjectReference atmosphere; // Offset: 56 + keen::ds::Biome biome; // Offset: 72 + keen::ObjectReference biomeMap; // Offset: 76 + keen::ds::SceneScatterData scatterData; // Offset: 92 + keen::bool limitMacroScattering; // Offset: 128 + keen::uint2 macroScatterStart; // Offset: 132 + keen::uint2 macroScatterSize; // Offset: 140 + keen::bool disableVoxelBrushDisplacement; // Offset: 148 + keen::ds::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 149 + keen::bool isTestScene; // Offset: 150 + keen::float32 distantObjectSize; // Offset: 152 + keen::uint32 moveVersion; // Offset: 156 + keen::ds::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 160 +}; + +struct ItemIconScene { + keen::float32 fixedExposure; // Offset: 208 +}; + +typedef keen::WorldTransformFlags WorldTransformFlags; + +typedef keen::ContentPass ContentPass; + +struct SceneObject { + keen::WorldTransform worldTransform; // Offset: 0 + keen::ds::WorldTransformFlags worldTransformFlags; // Offset: 56 + keen::ds::ContentPass contentPass; // Offset: 57 +}; + +struct SceneCamera { + keen::DsString name; // Offset: 64 + keen::Guid guid; // Offset: 104 + keen::float32 nearClip; // Offset: 120 + keen::float32 farClip; // Offset: 124 + keen::float32 fovY; // Offset: 128 +}; + +struct ItemIconSceneCamera { +}; + +struct ItemIconSceneSun { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct SceneBaseLight { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct ScenePointLight { + keen::float32 radius; // Offset: 80 + keen::bool castShadows; // Offset: 84 +}; + +struct ItemIconScenePointLight { +}; + +struct CameraData { + keen::float32 nearClip; // Offset: 0 + keen::float32 farClip; // Offset: 4 + keen::float32 fovY; // Offset: 8 +}; + +struct render.AtmosphereParameters { + keen::float32 planetRadius; // Offset: 0 + keen::ColorRgb rayleighScattering; // Offset: 4 + keen::float32 rayleighDensity; // Offset: 16 + keen::ColorRgb ozoneExtinction; // Offset: 20 + keen::float32 ozoneDensity; // Offset: 32 + keen::float32 rayleightDistribution; // Offset: 36 + keen::float32 mieScattering; // Offset: 40 + keen::float32 mieExtinction; // Offset: 44 + keen::float32 mieDensity; // Offset: 48 + keen::float32 mieDistribution; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::FloatRange yRange; // Offset: 60 +}; + +struct ItemIconSceneInfo { + keen::ds::CameraData camera; // Offset: 0 + keen::WorldTransform cameraTransform; // Offset: 16 + keen::ObjectReference ibl; // Offset: 72 + keen::ds::render::AtmosphereParameters atmosphereParameters; // Offset: 88 + keen::float32 fixedExposure; // Offset: 156 + keen::float32 iblIntensity; // Offset: 160 + keen::float32 sunAzimuth; // Offset: 164 + keen::float32 sunElevation; // Offset: 168 + keen::float3 sunColor; // Offset: 172 + keen::DsArray lights; // Offset: 184 + keen::DsArray lightsTransform; // Offset: 224 +}; + +struct JournalDirectory { +}; + +struct JournalSubDirectory { +}; + +struct JournalLoreCategory { + keen::ds::LocaTagReference categoryName; // Offset: 0 +}; + +struct JournalCollectionBase { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::LocaTagReference referencedDocumentName; // Offset: 16 + keen::uint32 priority; // Offset: 32 +}; + +struct JournalCollection { +}; + +typedef keen::QuestSourceType QuestSourceType; + +typedef keen::QuestType QuestType; + +struct JournalQuestReward { +}; + +struct JournalItemReward { + keen::ds::ItemReference item; // Offset: 0 +}; + +struct JournalExperienceReward { + keen::ObjectReference experience; // Offset: 0 +}; + +struct CompletableJournalCollection { + keen::ds::QuestSourceType questSource; // Offset: 36 + keen::ds::QuestType type; // Offset: 37 +}; + +struct TutorialJournalCollection { +}; + +struct JournalEntryBase { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::LocaTagReference text; // Offset: 16 + keen::ds::LocaTagReference mapMarkerReference; // Offset: 32 + keen::ObjectReference itemIcon; // Offset: 48 +}; + +struct JournalEntry { +}; + +struct CompletableJournalEntry { +}; + +struct TutorialJournalEntry { +}; + +struct JournalCompletionRequirement { +}; + +struct JournalEntryResource { + keen::ds::JournalEntryId entryId; // Offset: 0 + keen::ds::LocaTagId name; // Offset: 4 + keen::ds::LocaTagId text; // Offset: 8 + keen::ds::LocaTagId mapMarkerReference; // Offset: 12 + keen::ds::ItemId itemIconId; // Offset: 16 + keen::ds::KnowledgeId knowledgeRequirement; // Offset: 20 + keen::ds::KnowledgeId completionRequirement; // Offset: 24 +}; + +struct JournalCollectionResource { + keen::ds::JournalEntryId entryId; // Offset: 0 + keen::ds::LocaTagId loreCategory; // Offset: 4 + keen::ds::LocaTagId name; // Offset: 8 + keen::ds::LocaTagId referencedDocumentName; // Offset: 12 + keen::uint32 priority; // Offset: 16 + keen::bool isTutorial; // Offset: 20 + keen::DsArray entries; // Offset: 24 +}; + +struct QuestRewardResource { + keen::ds::ItemReference itemRef; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 16 + keen::HashKey32 experienceValueId; // Offset: 20 +}; + +struct JournalQuestResource { + keen::ds::QuestSourceType source; // Offset: 64 + keen::ds::QuestType type; // Offset: 65 + keen::bool unlockForAllPlayers; // Offset: 66 + keen::DsArray rewards; // Offset: 72 +}; + +struct JournalRegistryResource { + keen::DsArray quests; // Offset: 0 + keen::DsArray collections; // Offset: 40 +}; + +struct ecs.KnowledgeTrigger { + keen::StaticArray knowledgeIds; // Offset: 0 + keen::bool canActivate; // Offset: 32 + keen::bool canDeactivate; // Offset: 33 +}; + +struct SubEntityKnowledgeQuery { + keen::ds::KnowledgeId knowledgeQueryId; // Offset: 0 + keen::Guid subEntityTemplate; // Offset: 4 + keen::HashKey32 uiWorldEventId; // Offset: 20 +}; + +struct ecs.KnowledgeQuery { + keen::HashKey32 knowledgeId; // Offset: 0 + keen::HashKey32 uiWorldEventId; // Offset: 4 + keen::bool wasEventTriggered; // Offset: 8 + keen::StaticArray subEntityQueries; // Offset: 12 +}; + +struct ecs.MapMarkerUnlockRequirements { + keen::ds::GameKnowledgeRequirement hintState; // Offset: 0 + keen::ds::GameKnowledgeRequirement visibleState; // Offset: 104 + keen::bool hasCompletedState; // Offset: 208 + keen::ds::GameKnowledgeRequirement completedState; // Offset: 212 + keen::ds::KnowledgeId hintStateQueryId; // Offset: 316 + keen::ds::KnowledgeId visibleStateQueryId; // Offset: 320 + keen::ds::KnowledgeId completedStateQueryId; // Offset: 324 +}; + +struct ecs.KnowledgeTriggerToggle { +}; + +struct ecs.KnowledgeTriggerRange { +}; + +struct ecs.KnowledgeTriggerOnKill { + keen::bool useSceneKnowledgeTrigger; // Offset: 0 + keen::bool unlockForGroup; // Offset: 1 + keen::ds::GameKnowledgeTrigger triggerKnowledge; // Offset: 4 + keen::ds::KnowledgeId triggerKnowledgeId; // Offset: 60 +}; + +struct ecs.KnowledgeUiWorldEvent { + keen::ObjectReference triggerEvent; // Offset: 0 +}; + +struct LootTreeNodeIntermediate { + keen::Guid objectId; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 16 + keen::HashKey32 parentId; // Offset: 20 + keen::uint32 potentialSlots; // Offset: 24 + keen::uint32 potentialChildSlots; // Offset: 28 +}; + +struct LootTreeIntermediate { + keen::DsArray nodes; // Offset: 0 +}; + +struct LootNodeResource { + keen::HashKey32 nodeId; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 +}; + +struct LootContainerResource { + keen::uint32 lootSettingsIndex; // Offset: 8 +}; + +typedef keen::LootModifierMode LootModifierMode; + +struct LootModifierValue { + keen::ds::LootModifierMode mode; // Offset: 0 + keen::float32 value; // Offset: 4 +}; + +struct LootModifierInfo { + keen::ds::LootModifierValue level; // Offset: 0 + keen::ds::LootModifierValue levelOffset; // Offset: 8 + keen::float32 levelOffsetRangeMin; // Offset: 16 + keen::float32 levelOffsetRangeMax; // Offset: 20 + keen::StaticArray rarities; // Offset: 24 +}; + +struct LootSettingsResource { + keen::ds::LootModifierInfo modifier; // Offset: 0 + keen::DsArray tags; // Offset: 64 +}; + +struct SceneRandomLootResource { + keen::DsArray lootSettings; // Offset: 0 + keen::DsArray specialItems; // Offset: 40 + keen::DsArray lootNodes; // Offset: 80 + keen::DsArray lootContainer; // Offset: 120 +}; + +struct LootDistributionBaseNode { + keen::Guid objectId; // Offset: 0 + keen::DsArray tags; // Offset: 16 + keen::ds::LootModifierInfo modifier; // Offset: 56 + keen::uint32 potentialSlots; // Offset: 120 + keen::uint32 potentialChildSlots; // Offset: 124 +}; + +struct LootDistributionTreeNode { + keen::HashKey32 nodeId; // Offset: 128 + keen::HashKey32 parentId; // Offset: 132 + keen::DsArray childNodes; // Offset: 136 +}; + +struct LootContainerInfo { + keen::ds::LootContainerId id; // Offset: 128 + keen::ds::LootContainerId parentId; // Offset: 132 +}; + +struct SpecialItemInfo { + keen::HashKey32 nodeId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 + keen::bool checkItemLabels; // Offset: 8 + keen::uint8 amount; // Offset: 9 +}; + +struct LootDistributionTreeResource { + keen::DsArray specialItems; // Offset: 176 +}; + +struct EntityRandomLootInfo { + keen::bool isLootEntity; // Offset: 0 + keen::uint32 potentialSlotCount; // Offset: 4 +}; + +struct SceneWhiteboxLootInfo { + keen::HashKey32 lootNodeId; // Offset: 0 + keen::ds::LootContainerInfo lootContainer; // Offset: 8 +}; + +struct SceneWhiteboxLootInfos { + keen::DsArray lootContainer; // Offset: 0 +}; + +struct LootSlotInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::uint16 stackSize; // Offset: 4 + keen::ds::ItemRarity rarity; // Offset: 6 + keen::uint32 level; // Offset: 8 +}; + +struct LootContainerFillInfo { + keen::uint8 version; // Offset: 0 + keen::uint8 filledSlots; // Offset: 1 + keen::StaticArray slots; // Offset: 4 +}; + +struct ImportantLootSlotInfo { + keen::uint32 importantItemIndex; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 +}; + +struct ImportantLootContainerFillInfo { + keen::uint8 filledSlots; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct LootModifierBase { + keen::ds::LootModifierMode mode; // Offset: 0 +}; + +struct LootModifierAmount { + keen::float32 amount; // Offset: 4 +}; + +struct LootModifierRarity { + keen::ds::ItemRarity rarity; // Offset: 1 + keen::float32 weight; // Offset: 4 +}; + +struct LootModifierItemValue { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct LootModifierLevelOffset { + keen::float32 value; // Offset: 4 +}; + +struct LootModifierLevelOffsetRange { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct RandomLootItem { + keen::ds::ItemReference item; // Offset: 0 + keen::uint8 amount; // Offset: 16 + keen::bool checkItemLabels; // Offset: 17 +}; + +struct RandomLootItemInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemReference itemRef; // Offset: 4 + keen::uint8 amount; // Offset: 20 + keen::bool checkItemLabels; // Offset: 21 +}; + +struct LootTagInfo { + keen::HashKey32 tagId; // Offset: 0 + keen::float32 weight; // Offset: 4 + keen::Guid guid; // Offset: 8 +}; + +struct ObjectLootSettings { + keen::ds::LootModifierInfo modifier; // Offset: 0 + keen::DsArray tags; // Offset: 64 + keen::DsArray specialItems; // Offset: 104 +}; + +typedef keen::ShufflebagItemType ShufflebagItemType; + +struct ItemLabelGroupResource { + keen::DsArray labels; // Offset: 0 + keen::DsArray childGroups; // Offset: 40 +}; + +struct LootableItemInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemRarityMask rarities; // Offset: 4 + keen::bool useUiRarity; // Offset: 5 + keen::ds::ItemRarity uiRarity; // Offset: 6 + keen::ds::ItemLabelGroupResource labelGroups; // Offset: 8 + keen::uint16 stackSizeMin; // Offset: 88 + keen::uint16 stackSizeMax; // Offset: 90 + keen::uint16 stackSizeMaxScaled; // Offset: 92 + keen::bool stackSizeScalable; // Offset: 94 + keen::ds::ShufflebagItemType shufflebagType; // Offset: 95 + keen::bool hasWeaponCategory; // Offset: 96 + keen::ds::WeaponCategoryType weaponCategoryType; // Offset: 97 + keen::ds::EquipmentSlotType armorCategoryType; // Offset: 98 + keen::ds::ItemClassAlignmentType classAlignmentType; // Offset: 99 +}; + +struct LootableItemsResource { + keen::StaticArray globalRarityDropRates; // Offset: 0 + keen::float32 weaponArmorRatio; // Offset: 20 + keen::DsArray items; // Offset: 24 + keen::uint64 itemClassCategoryMask; // Offset: 64 + keen::uint64 weaponCategoryMask; // Offset: 72 + keen::uint64 armorCategoryMask; // Offset: 80 +}; + +struct DefaultLootLabelCollectionResource { + keen::DsArray lootSettings; // Offset: 0 +}; + +struct DefaultLootSettingsResource { + keen::ds::LootContainerId id; // Offset: 104 +}; + +struct DistributionLootSceneInput { + keen::Guid scatterSetId; // Offset: 0 + keen::ds::LootModifierInfo modifier; // Offset: 16 + keen::DsArray tags; // Offset: 80 + keen::DsString lootIdsInput; // Offset: 120 + keen::DsString lootTreeInput; // Offset: 160 +}; + +struct DistributionLootConverterParameters { + keen::DsArray lootSceneInputs; // Offset: 0 +}; + +struct DebugItemDropInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct DebugLootSceneInfoMessage { + keen::Guid sceneId; // Offset: 0 +}; + +struct DebugLootContainerInfoMessage { + keen::HashKey32 nodeId; // Offset: 0 + keen::DsArray droppedItems; // Offset: 8 + keen::float32 weightSum; // Offset: 48 + keen::ds::LootModifierInfo modifierInfo; // Offset: 52 + keen::DsArray tags; // Offset: 120 + keen::DsArray possibleItems; // Offset: 160 +}; + +struct RegisteredLootContainerParams { + keen::ds::LootContainerId containerId; // Offset: 0 + keen::ds::LootContainerId parentNodeId; // Offset: 4 + keen::HashKey32 labelDefinitionsId; // Offset: 8 + keen::float baseProbability; // Offset: 12 + keen::uint8 slotsMin; // Offset: 16 + keen::uint8 slotsMax; // Offset: 17 + keen::DsOptional level; // Offset: 24 +}; + +struct DebugRegisteredLootContainerMessage { + keen::DsArray registeredContainer; // Offset: 0 +}; + +struct DebugTrackLootContainerMessage { + keen::bool isLootContainer; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 4 +}; + +struct DebugRefreshLootMessage { + keen::HashKey32 nodeId; // Offset: 0 +}; + +struct GroupedItemLabels { +}; + +typedef keen::LabelMask LabelMask; + +typedef keen::MarkerTypeSorting MarkerTypeSorting; + +struct MapMarkerType { + keen::ds::MapMarkerTypeId markerId; // Offset: 0 + keen::ds::UiTexture icon; // Offset: 4 + keen::float32 iconDisplaySize; // Offset: 52 + keen::bool isHighlightable; // Offset: 56 + keen::bool isFastTravelDestination; // Offset: 57 + keen::bool showAboveFogOfWar; // Offset: 58 + keen::bool showLabel; // Offset: 59 + keen::bool showRange; // Offset: 60 + keen::bool isCustomMarkerType; // Offset: 61 + keen::bool canBeFiltered; // Offset: 62 + keen::ds::MarkerTypeSorting sortingCategory; // Offset: 63 + keen::uint8 minimizeAboveZoomStep; // Offset: 64 + keen::uint8 hideAboveZoomStep; // Offset: 65 + keen::Color minimizedColor; // Offset: 68 + keen::bool scaleWithZoom; // Offset: 72 +}; + +struct MapMarkerRegistryTool { +}; + +struct MapMarkerRegistryResource { + keen::DsArray mapMarkers; // Offset: 0 + keen::ds::UiTexturePreload texturePreload; // Offset: 40 +}; + +struct CustomMapMarker { + keen::WorldPosition position; // Offset: 0 + keen::uint8 colorScheme; // Offset: 24 + keen::ds::MapMarkerTypeId type; // Offset: 28 +}; + +typedef keen::npc::HappinessRequirement npc.HappinessRequirement; + +typedef keen::npc::HapinessMask npc.HapinessMask; + +struct npc.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +typedef keen::player_bases::BaseIndex player_bases.BaseIndex; + +struct npc.PlacedNpcInfo { + keen::ds::player_bases::BaseIndex baseIndex; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 4 + keen::ds::npc::HapinessMask happiness; // Offset: 8 +}; + +typedef keen::active_npc::State active_npc.State; + +typedef keen::active_npc::StateCondition active_npc.StateCondition; + +typedef keen::active_npc::Decision active_npc.Decision; + +typedef keen::active_npc::NpcType active_npc.NpcType; + +struct active_npc.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float roamWeight; // Offset: 12 + keen::float workWeight; // Offset: 16 +}; + +struct active_npc.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct active_npc.WorkSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.TargetSetup { + keen::bool isFarmland; // Offset: 0 + keen::bool isBed; // Offset: 1 + keen::bool isCraftingStation; // Offset: 2 + keen::bool isSeating; // Offset: 3 + keen::bool isFood; // Offset: 4 + keen::bool isInteresting; // Offset: 5 +}; + +struct ecs.NpcDialog { + keen::bool isFlame; // Offset: 0 + keen::ObjectReference dialog; // Offset: 4 + keen::ds::NpcDialogResource dialogResource; // Offset: 24 + keen::ds::LocaTagReference interactionVerbLoca; // Offset: 240 +}; + +struct ecs.DynamicNpcDialog { + keen::uint16 syncedKnowledgeQueryCounter; // Offset: 0 +}; + +struct ecs.NpcDialogPartner { + keen::bool isInGreetingRange; // Offset: 0 + keen::Time lastGreetingTime; // Offset: 8 +}; + +struct ecs.NpcState { + keen::ds::actor::ActorSequenceReference defaultGreetingSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference attentionGreetingSequence; // Offset: 16 + keen::ds::actor::TurnSetup turnSetup; // Offset: 32 + keen::ds::npc::IdleSequenceSetup idleSetup; // Offset: 104 + keen::ds::npc::HapinessMask hapinessMask; // Offset: 120 + keen::float32 minDistanceToPlayer; // Offset: 124 +}; + +typedef keen::ecs::PlayerMask ecs.PlayerMask; + +typedef keen::ecs::NpcInteractionState ecs.NpcInteractionState; + +typedef keen::ecs::NpcInteractionStates ecs.NpcInteractionStates; + +struct ecs.DynamicNpcState { + keen::ds::LocaTagId lastSelectedDialogId; // Offset: 0 + keen::ds::ecs::EntityId lastInteractingEntityId; // Offset: 4 + keen::bool dialogSequenceActive; // Offset: 8 + keen::Time nextGreetingTime; // Offset: 16 + keen::Time lastLookAtPlayerTime; // Offset: 24 + keen::Time nextLookAtPlayerTime; // Offset: 32 + keen::Time remainingNextSequenceTime; // Offset: 40 + keen::StaticArray queryIds; // Offset: 48 + keen::ds::ecs::PlayerMask playersInSight; // Offset: 112 + keen::ds::ecs::PlayerMask greetedPlayers; // Offset: 120 + keen::bool isInitialized; // Offset: 128 + keen::bool isSpawning; // Offset: 129 + keen::Quaternion revertToRotation; // Offset: 132 +}; + +struct ecs.ActiveNpcState { + keen::ds::NpcId npcId; // Offset: 0 + keen::ds::actor::ActorSequenceReference sitSequence; // Offset: 4 + keen::ds::actor::ActorSequenceReference sleepSequence; // Offset: 20 + keen::ds::actor::ActorSequenceReference inspectSequence; // Offset: 36 + keen::ds::active_npc::NpcType npcType; // Offset: 52 + keen::ds::active_npc::DecisionSetup decisionSetup; // Offset: 56 + keen::ds::active_npc::IdleSetup idleSetup; // Offset: 80 + keen::ds::active_npc::RoamingSetup roamingSetup; // Offset: 96 + keen::ds::active_npc::MovementSetup movementSetup; // Offset: 108 + keen::ds::active_npc::WorkSetup workSetup; // Offset: 120 + keen::ds::active_npc::SleepSetup sleepSetup; // Offset: 136 + keen::ds::active_npc::SearchTargetSetup searchTargetSetup; // Offset: 152 + keen::ds::active_npc::PathNodeSetup pathNodeSetup; // Offset: 160 +}; + +struct ecs.DynamicActiveNpcState { + keen::ds::active_npc::State state; // Offset: 0 + keen::ds::active_npc::State previousState; // Offset: 1 + keen::ds::active_npc::Decision decision; // Offset: 2 + keen::ds::npc::HapinessMask happiness; // Offset: 3 + keen::bool wasPaused; // Offset: 4 +}; + +struct ecs.NPCMovement { + keen::Time duration; // Offset: 0 + keen::float3 movement; // Offset: 8 +}; + +struct ecs.NpcCommon { + keen::ds::ecs::NpcInteractionStates interactionStates; // Offset: 0 + keen::Time stateTimer; // Offset: 8 + keen::Time currentStateDuration; // Offset: 16 + keen::Time stuckTime; // Offset: 24 + keen::Time stuckTimeOut; // Offset: 32 + keen::ds::ecs::RangeQueryId queryId; // Offset: 40 + keen::ds::ecs::EntityId closestPlayerId; // Offset: 44 + keen::ds::ecs::EntityId currentTargetId; // Offset: 48 + keen::ds::ecs::EntityId bedId; // Offset: 52 + keen::ds::ecs::EntityId previousTargetId; // Offset: 56 + keen::float sleepTime; // Offset: 60 + keen::float wakeUpTime; // Offset: 64 + keen::float closestPlayerDistance; // Offset: 68 + keen::float squaredDistanceToTarget; // Offset: 72 + keen::float3 currentTargetPosition; // Offset: 76 + keen::StaticArray history; // Offset: 88 + keen::uint8 historyIndex; // Offset: 1528 + keen::Guid currentSequenceId; // Offset: 1532 + keen::bool useReducedRoamingSpace; // Offset: 1548 + keen::bool shouldBeMoving; // Offset: 1549 + keen::uint8 unstuckTries; // Offset: 1550 + keen::uint8 stateFailures; // Offset: 1551 +}; + +struct ecs.ActiveNpcStateSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::bool overrideRoamingRange; // Offset: 12 + keen::float roamingRange; // Offset: 16 + keen::WorldPosition teleportPositionAfterFinishing; // Offset: 24 +}; + +struct ecs.ClientActiveNpcState { + keen::ds::ecs::EntityId bedId; // Offset: 0 + keen::ds::npc::HapinessMask happiness; // Offset: 4 + keen::float roamingRange; // Offset: 8 +}; + +struct ecs.StoreAssociatedNpcIds { + keen::bool initialized; // Offset: 0 + keen::StaticArray npcIds; // Offset: 4 +}; + +struct ecs.ActiveNpcTarget { + keen::ds::active_npc::TargetSetup setup; // Offset: 0 + keen::ds::active_npc::NpcType npcType; // Offset: 6 + keen::ds::NpcId associatedNpc; // Offset: 8 + keen::ds::ecs::Offset targetOffset; // Offset: 12 +}; + +struct ecs.ClientActiveNpcTarget { + keen::ds::NpcId associatedNpc; // Offset: 0 + keen::bool isBed; // Offset: 4 +}; + +struct ecs.NpcSequenceEntry { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 0 +}; + +struct ecs.BaseNpcSequences { + keen::DsArray sequences; // Offset: 0 +}; + +struct ecs.NpcIdleSequences { +}; + +struct ecs.NpcWorkSequences { +}; + +struct ecs.NpcActionSequences { + keen::ds::ecs::NpcIdleSequences idleSequences; // Offset: 0 + keen::ds::ecs::NpcWorkSequences workSequences; // Offset: 40 +}; + +struct NpcResource { + keen::ds::NpcId id; // Offset: 0 + keen::ds::LocaTagId name; // Offset: 4 + keen::bool isCraftingAssistant; // Offset: 8 + keen::ds::KnowledgeId unlockRequirement; // Offset: 12 + keen::ds::WorkshopId workshopId; // Offset: 16 + keen::ds::LocaTagId workshopLabel; // Offset: 20 + keen::ds::ItemId itemId; // Offset: 24 + keen::ds::ItemReference itemRef; // Offset: 28 + keen::ds::CharacterPresetReference characterPresetReference; // Offset: 44 + keen::ds::CharacterPresetId characterPresetId; // Offset: 60 + keen::ds::UiNpcRenderingOptions uiRendering; // Offset: 64 + keen::DsString debugName; // Offset: 120 +}; + +struct NpcCollection { + keen::DsArray npcs; // Offset: 0 +}; + +struct ecs.PathFinder { + keen::ds::ecs::PathGridDistance horizontalStartSearchRadius; // Offset: 0 + keen::ds::ecs::PathGridDistance verticalStartSearchRadius; // Offset: 4 + keen::ds::ecs::PathfindingSettings settings; // Offset: 8 +}; + +struct ecs.DynamicPathFinder { + keen::Time lastQueryTime; // Offset: 0 + keen::float3 targetPosition; // Offset: 8 + keen::float3 lastStartPosition; // Offset: 20 + keen::float3 lastTargetPosition; // Offset: 32 + keen::uint32 lastKeepDistance; // Offset: 44 + keen::HashKey32 lastParametersHash; // Offset: 48 + keen::float32 lastMaxTargetNodeDistance; // Offset: 52 + keen::ds::ecs::PathQueryId queryId; // Offset: 56 + keen::uint32 keepDistance; // Offset: 60 + keen::ds::ecs::PathGridDistance horizontalSearchRadius; // Offset: 64 + keen::ds::ecs::PathGridDistance verticalSearchRadius; // Offset: 68 + keen::ds::ecs::PathGridType gridType; // Offset: 72 + keen::bool keepLastResults; // Offset: 73 + keen::ds::ecs::PathQueryCheck pathQueryCheck; // Offset: 74 + keen::ds::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 76 + keen::ds::ecs::PathGridDistance minHorizontalSpace; // Offset: 80 + keen::ds::ecs::PathGridDistance minVerticalSpace; // Offset: 84 + keen::float32 maxTargetNodeDistance; // Offset: 88 + keen::uint32 maxWalkDistance; // Offset: 92 + keen::ds::ecs::PathQueryTargetType targetType; // Offset: 96 + keen::uint32 maxIterations; // Offset: 100 + keen::float2 horizontalKeepDistanceDirection; // Offset: 104 + keen::float3 freePathCheckPosition; // Offset: 112 + keen::bool enableAdditionalSpaceSearch; // Offset: 124 + keen::bool enableJumpUp; // Offset: 125 + keen::bool enableJumpDown; // Offset: 126 + keen::bool canOpenDoors; // Offset: 127 + keen::uint8 maxJumpUpHeight; // Offset: 128 + keen::uint8 maxJumpDownHeight; // Offset: 129 + keen::bool enforceUpdate; // Offset: 130 + keen::bool ignoreWalkableColliders; // Offset: 131 + keen::bool ignoreMovingObjects; // Offset: 132 + keen::ds::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 136 + keen::ds::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 140 + keen::ds::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 144 + keen::float32 horizontalDistanceCostFactor; // Offset: 196 + keen::bool checkFreePathToTarget; // Offset: 200 + keen::bool ignoreNodesCloseToHole; // Offset: 201 +}; + +typedef keen::ecs::PathWalkerState ecs.PathWalkerState; + +struct ecs.PathWalkerTurnSettings { + keen::float turnToNextWayPointMinDistanceWalk; // Offset: 0 + keen::float turnToNextWayPointMinDistanceRun; // Offset: 4 +}; + +struct ecs.PathWalker { + keen::ds::actor::ActorSequenceReference jumpSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference openDoorSequence; // Offset: 16 + keen::bool usePathFinding; // Offset: 32 + keen::ds::actor::ActorSequenceReference teleportSequence; // Offset: 36 + keen::float32 jumpMoveSpeed; // Offset: 52 + keen::float32 horizontalRadius; // Offset: 56 + keen::float32 verticalRadius; // Offset: 60 + keen::ds::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 64 + keen::ds::ecs::PathWalkerTurnSettings turnSettings; // Offset: 68 +}; + +struct ecs.DynamicPathWalker { + keen::float3 targetPosition; // Offset: 0 + keen::uint32 upateCounter; // Offset: 12 + keen::uint32 pathIndex; // Offset: 16 + keen::ds::ecs::PathWalkerState state; // Offset: 20 + keen::float3 lookAtTarget; // Offset: 24 + keen::bool lookAtMovementTarget; // Offset: 36 + keen::bool setDesiredWorldLookDirection; // Offset: 37 + keen::uint32 keepDistance; // Offset: 40 + keen::ds::ecs::PathGridDistance horizontalSearchRadius; // Offset: 44 + keen::ds::ecs::PathGridDistance verticalSearchRadius; // Offset: 48 + keen::float32 maxArriveWaypointDistance; // Offset: 52 + keen::float32 maxArriveTargetDistance; // Offset: 56 + keen::bool shouldOverrideMinArriveDistance; // Offset: 60 + keen::float32 overrideMinArriveDistance; // Offset: 64 + keen::bool shouldOverrideMinTurnDistance; // Offset: 68 + keen::float32 overrideMinTurnDistance; // Offset: 72 + keen::Time stuckTime; // Offset: 80 + keen::bool keepLastResults; // Offset: 88 + keen::ds::ecs::PathQueryCheck pathQueryCheck; // Offset: 89 + keen::ds::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 92 + keen::ds::ecs::PathGridDistance minHorizontalSpace; // Offset: 96 + keen::ds::ecs::PathGridDistance minVerticalSpace; // Offset: 100 + keen::Time standingDuration; // Offset: 104 + keen::Time walkingDuration; // Offset: 112 + keen::float32 maxTargetNodeDistance; // Offset: 120 + keen::uint32 maxWalkDistance; // Offset: 124 + keen::ds::ecs::PathQueryTargetType targetType; // Offset: 128 + keen::float32 closestWaypointSquareDistance; // Offset: 132 + keen::uint32 maxIterations; // Offset: 136 + keen::float32 currentPathLengthToTarget; // Offset: 140 + keen::float2 horizontalKeepDistanceDirection; // Offset: 144 + keen::float3 freePathCheckPosition; // Offset: 152 + keen::float3 lastReachedTarget; // Offset: 164 + keen::bool isWalkingActive; // Offset: 176 + keen::bool enableAdditionalSpaceSearch; // Offset: 177 + keen::bool enableJumpUp; // Offset: 178 + keen::bool enableJumpDown; // Offset: 179 + keen::bool canOpenDoors; // Offset: 180 + keen::uint8 maxJumpUpHeight; // Offset: 181 + keen::uint8 maxJumpDownHeight; // Offset: 182 + keen::Time lastEnforceUpdateTime; // Offset: 184 + keen::bool useTurnSequences; // Offset: 192 + keen::ds::actor::SequenceRuntimeId turnSequenceId; // Offset: 200 + keen::ds::actor::SequenceRuntimeId teleportSequenceId; // Offset: 224 + keen::ds::actor::SequenceRuntimeId openDoorSequenceId; // Offset: 248 + keen::ds::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 272 + keen::bool enableTeleportMovement; // Offset: 276 + keen::bool ignoreWalkableColliders; // Offset: 277 + keen::ds::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 280 + keen::float32 horizontalDistanceCostFactor; // Offset: 332 + keen::bool checkFreePathToTarget; // Offset: 336 + keen::ds::ecs::PathNodeRequirements pathNodeRequirementsOverride; // Offset: 338 + keen::bool useNodeRequirementsOverride; // Offset: 342 + keen::bool ignoreMovingObjects; // Offset: 343 + keen::bool tryToReachTargetAsCloseAsPossible; // Offset: 344 + keen::bool ignoreNodesCloseToHole; // Offset: 345 +}; + +typedef keen::ecs::PathGridInteractionObjectType ecs.PathGridInteractionObjectType; + +struct ecs.PathGridInteraction { + keen::ds::ecs::PathGridInteractionObjectType interactionObjectType; // Offset: 0 +}; + +struct ecs.DynamicPathGridInteraction { + keen::bool isRegistered; // Offset: 0 +}; + +struct ecs.PathFinderTester { +}; + +typedef keen::ecs::PathFindingMarkerType ecs.PathFindingMarkerType; + +typedef keen::ecs::PathFindingMarkerTestMode ecs.PathFindingMarkerTestMode; + +typedef keen::ecs::PathFindingMarkerTestState ecs.PathFindingMarkerTestState; + +struct ecs.PathFindingTestMarker { + keen::ds::ecs::PathFindingMarkerType type; // Offset: 0 + keen::ds::ecs::PathFindingMarkerTestMode testMode; // Offset: 1 + keen::ds::ecs::PathFindingMarkerTestState state; // Offset: 2 + keen::ds::ecs::PathQueryId queryId; // Offset: 4 +}; + +struct PerkDamageModifier { + keen::ds::impact::DamageDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 52 +}; + +typedef keen::PerkConfig PerkConfig; + +struct Perk { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::DescriptionLocaTag description; // Offset: 16 + keen::ds::UiTexture icon; // Offset: 32 + keen::ds::ImpactProgramReference impact; // Offset: 80 + keen::bool simpleAttributeBuff; // Offset: 96 + keen::DsArray uiValues; // Offset: 104 + keen::ds::impact::Configurations impactValues; // Offset: 144 + keen::ds::PerkDamageModifier damageModifier; // Offset: 184 + keen::ds::ItemArmorSetup perkArmorSetup; // Offset: 240 + keen::ds::string debugName; // Offset: 280 +}; + +struct PerkSubDirectory { +}; + +struct PerkDirectory { +}; + +struct PerkCollectionResource { + keen::DsArray perks; // Offset: 0 +}; + +typedef keen::ecs::ClientOnlyPlayerInputType ecs.ClientOnlyPlayerInputType; + +typedef keen::RecipeLevelRequirement RecipeLevelRequirement; + +struct RecipeItemStack { + keen::ds::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct RecipeInputList { +}; + +struct RecipeOutputList { +}; + +struct RequiredProp { + keen::ObjectReference craftingProp; // Offset: 0 +}; + +struct Recipe { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::DescriptionLocaTag description; // Offset: 16 + keen::ds::LoreLocaTag lore; // Offset: 32 + keen::bool showIsNewLabel; // Offset: 48 + keen::bool useCustomCompletionRequirement; // Offset: 49 + keen::ds::GameKnowledgeRequirement completionRequirement; // Offset: 52 + keen::bool requiresSheltered; // Offset: 156 + keen::ObjectReference workshopReference; // Offset: 160 + keen::ds::RecipeLevelRequirement levelRequirement; // Offset: 176 + keen::uint32 level; // Offset: 180 + keen::ds::RecipeLevelRequirement comfortLevelRequirement; // Offset: 184 + keen::uint32 comfortLevel; // Offset: 188 + keen::ds::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 192 + keen::uint32 serverProgressLevel; // Offset: 196 + keen::uint32 requiredHappyNpcCount; // Offset: 200 + keen::uint32 requiredEnergy; // Offset: 204 + keen::Time craftingDuration; // Offset: 208 + keen::bool isUpgrade; // Offset: 216 +}; + +struct RecipeList { + keen::ObjectReference workshopDirectory; // Offset: 0 +}; + +struct RecipeInfo { + keen::ds::RecipeId recipeId; // Offset: 0 + keen::ds::WorkshopId workshopId; // Offset: 4 + keen::DsArray input; // Offset: 8 + keen::DsArray output; // Offset: 48 + keen::bool requiresSheltered; // Offset: 88 + keen::bool showIsImportantLabel; // Offset: 89 + keen::ds::RecipeLevelRequirement levelRequirement; // Offset: 90 + keen::uint32 level; // Offset: 92 + keen::ds::RecipeLevelRequirement comfortLevelRequirement; // Offset: 96 + keen::uint32 comfortLevel; // Offset: 100 + keen::ds::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 104 + keen::uint32 serverProgressLevel; // Offset: 108 + keen::uint32 requiredHappyNpcCount; // Offset: 112 + keen::uint32 requiredEnergy; // Offset: 116 + keen::Time craftingDuration; // Offset: 120 + keen::bool isCookingRecipe; // Offset: 128 + keen::bool isUpgrade; // Offset: 129 + keen::DsArray requiredProps; // Offset: 136 + keen::ds::CraftingPropMask requiredPropsMask; // Offset: 176 + keen::ds::KnowledgeId knowledgeRequirement; // Offset: 184 + keen::ds::KnowledgeId recipeInspectedKnowledgeId; // Offset: 188 + keen::ds::KnowledgeId recipeCraftedKnowledgeId; // Offset: 192 + keen::ds::KnowledgeId completionRequirementId; // Offset: 196 + keen::ds::NameLocaTag recipeName; // Offset: 200 + keen::DsString debugName; // Offset: 216 +}; + +struct RecipeRegistryResource { + keen::DsArray recipes; // Offset: 0 +}; + +typedef keen::SkillNodeLinkId SkillNodeLinkId; + +struct ecs.SkillIdComponent { + keen::ds::SkillNodeId skillId; // Offset: 0 +}; + +typedef keen::SkillNodeType SkillNodeType; + +typedef keen::ClassType ClassType; + +struct SkillTreeNodeLink { + keen::ds::SkillNodeLinkId id; // Offset: 0 + keen::ds::SkillNodeId sourceNode; // Offset: 4 + keen::ds::SkillNodeId targetNode; // Offset: 8 + keen::bool isBidirectional; // Offset: 12 +}; + +struct SkillTreeNode { + keen::ds::SkillNodeId id; // Offset: 0 + keen::ds::SkillNodeType type; // Offset: 4 + keen::float2 uiPosition; // Offset: 8 + keen::uint16 costs; // Offset: 16 + keen::ds::LocaTagId name; // Offset: 20 + keen::ds::LocaTagId description; // Offset: 24 + keen::ds::ClassType classAlignment; // Offset: 28 + keen::ds::ItemReference activeSkillUnlockRef; // Offset: 32 + keen::ds::ItemId activeSkillUnlock; // Offset: 48 + keen::ds::UiTexture iconInactive; // Offset: 52 + keen::ds::UiTexture iconActive; // Offset: 100 + keen::ds::ImpactProgramReference impactReference; // Offset: 148 + keen::DsArray uiValues; // Offset: 168 + keen::ds::impact::Configurations configValues; // Offset: 208 + keen::bool isDeactivatedForEarlyAccess; // Offset: 248 + keen::DsArray incomingLinks; // Offset: 256 + keen::DsArray outgoingLinks; // Offset: 296 +}; + +typedef keen::ObjectReference SkillTreeNodeReference; + +struct SkillTreeResource { + keen::DsArray nodes; // Offset: 0 + keen::DsArray links; // Offset: 40 +}; + +struct SkillTreeDefinition { +}; + +struct skilltree_nodes.Node { + keen::Vector2 uiPosition; // Offset: 0 + keen::ds::NameLocaTag name; // Offset: 8 + keen::ds::DescriptionLocaTag description; // Offset: 24 + keen::ds::ImageReference iconInactive; // Offset: 40 + keen::ds::ImageReference iconActive; // Offset: 56 + keen::uint16 costs; // Offset: 72 + keen::ds::ClassType classAlignment; // Offset: 74 + keen::bool isDeactivatedForEarlyAccess; // Offset: 75 +}; + +struct skilltree_nodes.StartingNode { +}; + +struct skilltree_nodes.AbilityNode { + keen::ds::ItemReference abilityItem; // Offset: 76 + keen::ds::ImpactProgramReference impactReference; // Offset: 92 + keen::ds::impact::Configurations configValues; // Offset: 112 +}; + +struct skilltree_nodes.AttributeNode { + keen::ds::ImpactProgramReference impactReference; // Offset: 76 + keen::ds::impact::Configurations configValues; // Offset: 96 +}; + +struct skilltree_nodes.PassiveNode { + keen::ds::ImpactProgramReference impactReference; // Offset: 76 + keen::ds::impact::Configurations configValues; // Offset: 96 +}; + +struct skilltree_nodes.MartyrNode { + keen::ds::ImpactProgramReference impactReference; // Offset: 76 + keen::ds::impact::Configurations configValues; // Offset: 96 +}; + +struct skilltree_nodes.SkillTreeLink { + keen::ds::skilltree_nodes::NodeReference startNode; // Offset: 0 + keen::DsString startElementName; // Offset: 16 + keen::ds::skilltree_nodes::NodeReference endNode; // Offset: 56 +}; + +struct ecs.SteeringLocomotion { + keen::bool setRotationFlag; // Offset: 0 + keen::bool clearVelocity; // Offset: 1 + keen::bool slowDownIfMovementAngleIsTooBig; // Offset: 2 + keen::float32 maxRunAngle; // Offset: 4 + keen::float32 maxMovementAngle; // Offset: 8 + keen::bool isCloseToHole; // Offset: 12 + keen::Time lastHookedTime; // Offset: 16 +}; + +struct ecs.SteeringAgent { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::bool active; // Offset: 4 + keen::float3 desiredVelocity; // Offset: 8 + keen::float32 currentVelocityWeight; // Offset: 20 + keen::float32 desiredVelocityWeight; // Offset: 24 + keen::float3 velocity; // Offset: 28 + keen::float32 maxSpeed; // Offset: 40 + keen::float32 maxForce; // Offset: 44 + keen::float32 maxAcceleration; // Offset: 48 + keen::float32 mass; // Offset: 52 + keen::float32 separationRange; // Offset: 56 + keen::uint8 priority; // Offset: 60 + keen::ds::ecs::EntityId ignoredEntity; // Offset: 64 +}; + +struct ecs.SteeringBehavior { + keen::float3 steeringForce; // Offset: 0 +}; + +struct ecs.SteeringBehavior_Seek { +}; + +struct ecs.SteeringBehavior_Flee { + keen::float32 viewConeHalfAngle; // Offset: 12 + keen::float32 fleeRadius; // Offset: 16 + keen::bool checkViewCone; // Offset: 20 +}; + +struct ecs.SteeringBehavior_Separation { + keen::bool enabled; // Offset: 12 + keen::Time forceActiveDuration; // Offset: 16 +}; + +struct ecs.SteeringBehavior_LookAhead { + keen::Time lastQueryTime; // Offset: 16 + keen::Angle lookAheadAngle; // Offset: 24 + keen::float lookAheadDistance; // Offset: 28 +}; + +struct ecs.SteeringBehavior_ObstacleAvoidance { + keen::ds::ecs::QueryId queryId; // Offset: 12 + keen::Time lastCheckTime; // Offset: 16 + keen::float32 minHeightDiff; // Offset: 24 +}; + +struct ecs.SteeringBehavior_Cohesion { +}; + +struct ecs.SteeringBehavior_Alignment { +}; + +struct ecs.SteeringAnimator { + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::ds::animationgraph::StateIdReference walkAnimation; // Offset: 16 +}; + +struct ToolTerraformingEfficiency { + keen::ds::ItemReference toolItem; // Offset: 0 + keen::float32 efficiency; // Offset: 16 +}; + +struct ConditionalVoxelMaterialBuffType { + keen::float minSubmergePercentage; // Offset: 0 + keen::ds::BuffTypeReference buffType; // Offset: 4 +}; + +typedef keen::TerrainMaterialType TerrainMaterialType; + +struct TerrainMaterialId { + keen::ds::TerrainMaterialType value; // Offset: 0 +}; + +struct TerrainTerraformingConfig { + keen::ds::TerrainMaterialId terrainMaterial; // Offset: 0 + keen::ds::ItemReference terrainItem; // Offset: 4 + keen::ds::HardnessCategory hardness; // Offset: 20 + keen::uint32 terrainPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::bool canBeFlattened; // Offset: 32 + keen::bool isSlidingMaterial; // Offset: 33 + keen::Guid experienceGainGuid; // Offset: 36 + keen::ds::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::ds::BuffTypeReference buffReference; // Offset: 72 + keen::DsArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 128 + keen::float frictionFactor; // Offset: 132 + keen::float maxSubmergeDepth; // Offset: 136 + keen::float minSubmergePercentage; // Offset: 140 + keen::float maxSubmergePercentage; // Offset: 144 + keen::Guid entityTag; // Offset: 148 + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 164 +}; + +typedef keen::BuildingMaterialType BuildingMaterialType; + +struct BuildingMaterialId { + keen::ds::BuildingMaterialType value; // Offset: 0 +}; + +struct BuildingTerraformingConfig { + keen::ds::BuildingMaterialId buildingMaterial; // Offset: 0 + keen::ds::ItemReference materialItem; // Offset: 4 + keen::ds::HardnessCategory hardness; // Offset: 20 + keen::uint32 blocksPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::ds::KnowledgeId knowledgeId; // Offset: 32 + keen::Guid experienceGainGuid; // Offset: 36 + keen::ds::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::ds::BuffTypeReference buffReference; // Offset: 72 + keen::DsArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 128 + keen::float frictionFactor; // Offset: 132 + keen::float maxSubmergeDepth; // Offset: 136 + keen::float minSubmergePercentage; // Offset: 140 + keen::float maxSubmergePercentage; // Offset: 144 + keen::Guid entityTag; // Offset: 148 + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 164 +}; + +struct TerraformingEfficiencyRegistryResource { + keen::DsArray terrainConfigs; // Offset: 0 + keen::DsArray buildingConfigs; // Offset: 40 +}; + +typedef keen::TwitchDropId TwitchDropId; + +struct TwitchDropItem { + keen::ds::ItemReference item; // Offset: 0 +}; + +struct TwitchDrop { +}; + +struct TwitchDropSubDirectory { +}; + +struct TwitchDropDirectory { +}; + +struct TwitchDropResource { + keen::ds::TwitchDropId dropId; // Offset: 0 + keen::DsArray items; // Offset: 8 + keen::DsArray itemRefs; // Offset: 48 + keen::ds::string debugName; // Offset: 88 + keen::Guid debugId; // Offset: 128 +}; + +struct TwitchDropCollection { + keen::DsArray drops; // Offset: 0 +}; + +typedef keen::VoxelBlueprintId VoxelBlueprintId; + +typedef keen::VoxelBlueprintMaterialPoolId VoxelBlueprintMaterialPoolId; + +struct VoxelSnappingRule { + keen::DsArray> snappingTargets; // Offset: 0 + keen::DsArray> excludeSnappingTargets; // Offset: 40 + keen::uint8 maxHorizontalDistance; // Offset: 80 + keen::uint8 maxVerticalDistance; // Offset: 81 + keen::bool snapHorizontally; // Offset: 82 + keen::bool snapVertically; // Offset: 83 + keen::bool aboveAdjacent; // Offset: 84 + keen::bool aboveEnclosing; // Offset: 85 + keen::bool belowAdjacent; // Offset: 86 + keen::bool belowEnclosing; // Offset: 87 + keen::bool directionalHorizontalSnapping; // Offset: 88 + keen::bool sideAdjacent; // Offset: 89 + keen::bool sideEnclosing; // Offset: 90 + keen::bool lenghtwiseAdjacent; // Offset: 91 + keen::bool lenghtwiseEnclosing; // Offset: 92 + keen::bool crosswiseAdjacent; // Offset: 93 + keen::bool crosswiseEnclosing; // Offset: 94 + keen::DsString debugName; // Offset: 96 +}; + +struct VoxelBlueprintMaterial { + keen::ObjectReference materialItem; // Offset: 0 +}; + +struct VoxelBlueprintConfigSnapping { + keen::DsArray rules; // Offset: 0 +}; + +struct VoxelBlueprintMaterialPool { + keen::ds::EquipmentSlot equipmentSlot; // Offset: 0 + keen::ds::VoxelBlueprintMaterialPoolId poolId; // Offset: 4 + keen::DsArray materials; // Offset: 8 + keen::DsString debugName; // Offset: 48 +}; + +struct VoxelBlueprintConfig { + keen::ds::VoxelBlueprintConfigSnapping snappingConfig; // Offset: 0 + keen::DsString debugName; // Offset: 40 +}; + +struct VoxelBlueprintRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryResource { + keen::DsArray materialPools; // Offset: 0 +}; + +typedef keen::VoxelScatterImageMode VoxelScatterImageMode; + +typedef keen::VoxelScatterImageContentPass VoxelScatterImageContentPass; + +struct AbstractScatterImage { +}; + +struct VoxelScatterImage { + keen::ObjectReference scene; // Offset: 0 + keen::ds::VoxelScatterImageContentPass contentPass; // Offset: 16 + keen::uint32 upscaleFactor; // Offset: 20 + keen::ds::VoxelScatterImageMode mode; // Offset: 24 + keen::float32 referenceHeight; // Offset: 28 + keen::ObjectReference referenceMaterial; // Offset: 32 +}; + +typedef keen::ecs::GameSettingsVersion ecs.GameSettingsVersion; + +struct ecs.GameSettingsPresetConfig { + keen::ds::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::ds::ecs::GameSettings settings; // Offset: 8 +}; + +struct GameSettingsPresetsResource { + keen::ds::ecs::GameSettings minValues; // Offset: 0 + keen::ds::ecs::GameSettings maxValues; // Offset: 128 + keen::DsArray presets; // Offset: 256 +}; + +typedef keen::G38TestState G38TestState; + +struct G38TestResult { + keen::ds::string name; // Offset: 0 + keen::ds::string program; // Offset: 40 + keen::Time duration; // Offset: 80 + keen::ErrorId error; // Offset: 88 +}; + +struct G38TestSummary { + keen::uint32 count; // Offset: 0 + keen::uint32 failed; // Offset: 4 +}; + +struct G38TestReport { + keen::CalendarTimeStamp date; // Offset: 0 + keen::ds::G38TestSummary summary; // Offset: 8 + keen::DsArray testResults; // Offset: 16 +}; + +typedef keen::ds::LocaTagReference UiLocaTagReference; + +struct FbUiLocaCraftingWorkshops { + keen::ds::UiLocaTagReference player; // Offset: 0 + keen::ds::UiLocaTagReference alchemist; // Offset: 16 + keen::ds::UiLocaTagReference blacksmith; // Offset: 32 + keen::ds::UiLocaTagReference carpenter; // Offset: 48 + keen::ds::UiLocaTagReference workbench; // Offset: 64 + keen::ds::UiLocaTagReference grindingWheel; // Offset: 80 + keen::ds::UiLocaTagReference oven; // Offset: 96 + keen::ds::UiLocaTagReference campfireBarbecue; // Offset: 112 + keen::ds::UiLocaTagReference anvil; // Offset: 128 + keen::ds::UiLocaTagReference distillery; // Offset: 144 + keen::ds::UiLocaTagReference furnace; // Offset: 160 + keen::ds::UiLocaTagReference mortar; // Offset: 176 + keen::ds::UiLocaTagReference sketches; // Offset: 192 + keen::ds::UiLocaTagReference flameAltar; // Offset: 208 +}; + +struct FbUiLocaCraftingCategories { + keen::ds::UiLocaTagReference untaggedRecipeSet; // Offset: 0 + keen::ds::UiLocaTagReference customization; // Offset: 16 + keen::ds::UiLocaTagReference equipment; // Offset: 32 + keen::ds::UiLocaTagReference weapons; // Offset: 48 + keen::ds::UiLocaTagReference tools; // Offset: 64 + keen::ds::UiLocaTagReference buildTools; // Offset: 80 + keen::ds::UiLocaTagReference consumables; // Offset: 96 + keen::ds::UiLocaTagReference ammunition; // Offset: 112 + keen::ds::UiLocaTagReference materials; // Offset: 128 + keen::ds::UiLocaTagReference blueprints; // Offset: 144 + keen::ds::UiLocaTagReference currency; // Offset: 160 + keen::ds::UiLocaTagReference collectible; // Offset: 176 + keen::ds::UiLocaTagReference genericItem; // Offset: 192 +}; + +struct FbUiLocaCrafting { + keen::ds::FbUiLocaCraftingWorkshops workshops; // Offset: 0 + keen::ds::FbUiLocaCraftingCategories categories; // Offset: 224 + keen::ds::UiLocaTagReference browserPinned; // Offset: 432 + keen::ds::UiLocaTagReference toggleDirectoryFilter; // Offset: 448 + keen::ds::UiLocaTagReference itemViewerNoRecipeHint; // Offset: 464 + keen::ds::UiLocaTagReference requirementHeader; // Offset: 480 + keen::ds::UiLocaTagReference ingredientsHeader; // Offset: 496 + keen::ds::UiLocaTagReference emptyMenuHintShort; // Offset: 512 + keen::ds::UiLocaTagReference emptyMenuHintLong; // Offset: 528 + keen::ds::UiLocaTagReference automatedCraftingStatusWaiting; // Offset: 544 + keen::ds::UiLocaTagReference automatedCraftingStatusRunning; // Offset: 560 + keen::ds::UiLocaTagReference automatedCraftingStatusPaused; // Offset: 576 + keen::ds::UiLocaTagReference automatedCraftingInsufficientMaterials; // Offset: 592 + keen::ds::UiLocaTagReference automatedCraftingAmountCraftableStacks; // Offset: 608 + keen::ds::UiLocaTagReference automatedCraftingStart; // Offset: 624 + keen::ds::UiLocaTagReference automatedCraftingResume; // Offset: 640 + keen::ds::UiLocaTagReference automatedCraftingStop; // Offset: 656 + keen::ds::UiLocaTagReference automatedCraftingStopUnavailable; // Offset: 672 + keen::ds::UiLocaTagReference automatedCraftingPaused; // Offset: 688 + keen::ds::UiLocaTagReference automatedCraftingIdle; // Offset: 704 + keen::ds::UiLocaTagReference automatedCraftingWorking; // Offset: 720 + keen::ds::UiLocaTagReference automatedCraftingStorageFull; // Offset: 736 + keen::ds::UiLocaTagReference automatedCraftingQueued; // Offset: 752 + keen::ds::UiLocaTagReference automatedCraftingInsufficientMaterialsHint; // Offset: 768 + keen::ds::UiLocaTagReference automatedCraftingStorageFullHint; // Offset: 784 + keen::ds::UiLocaTagReference automatedCraftingSourceMaterials; // Offset: 800 + keen::ds::UiLocaTagReference changeRecipeHint; // Offset: 816 + keen::ds::UiLocaTagReference factoryNoRecipesAvailable; // Offset: 832 + keen::ds::UiLocaTagReference factoryMagicChestNoRecipesAvailable; // Offset: 848 + keen::ds::UiLocaTagReference factoryShowCurrentProduction; // Offset: 864 + keen::ds::UiLocaTagReference craftingItemInInventory; // Offset: 880 + keen::ds::UiLocaTagReference noUpgradableItems; // Offset: 896 + keen::ds::UiLocaTagReference noIngredientMissing; // Offset: 912 + keen::ds::UiLocaTagReference ingredientsMissing; // Offset: 928 + keen::ds::UiLocaTagReference ingredientsNeeds; // Offset: 944 + keen::ds::UiLocaTagReference availableOutputs; // Offset: 960 + keen::ds::UiLocaTagReference selected; // Offset: 976 + keen::ds::UiLocaTagReference recipeViewerTabIngredients; // Offset: 992 + keen::ds::UiLocaTagReference recipeViewerTabRecipe; // Offset: 1008 + keen::ds::UiLocaTagReference recipeViewerTabItem; // Offset: 1024 +}; + +struct FbUiLocaItemEquipmentSlots { + keen::ds::UiLocaTagReference armourHead; // Offset: 0 + keen::ds::UiLocaTagReference armourUpperBody; // Offset: 16 + keen::ds::UiLocaTagReference armourArms; // Offset: 32 + keen::ds::UiLocaTagReference armourLowerBody; // Offset: 48 + keen::ds::UiLocaTagReference armourFeet; // Offset: 64 + keen::ds::UiLocaTagReference armourAccessory; // Offset: 80 + keen::ds::UiLocaTagReference armourRing; // Offset: 96 + keen::ds::UiLocaTagReference armourShield; // Offset: 112 + keen::ds::UiLocaTagReference vanityHead; // Offset: 128 + keen::ds::UiLocaTagReference vanityUpperBody; // Offset: 144 + keen::ds::UiLocaTagReference vanityArms; // Offset: 160 + keen::ds::UiLocaTagReference vanityLowerBody; // Offset: 176 + keen::ds::UiLocaTagReference vanityFeet; // Offset: 192 + keen::ds::UiLocaTagReference hookshot; // Offset: 208 + keen::ds::UiLocaTagReference glider; // Offset: 224 + keen::ds::UiLocaTagReference meleeWeapon; // Offset: 240 + keen::ds::UiLocaTagReference midRangeWeapon; // Offset: 256 + keen::ds::UiLocaTagReference rangedWeapon; // Offset: 272 + keen::ds::UiLocaTagReference arrow; // Offset: 288 + keen::ds::UiLocaTagReference spell; // Offset: 304 + keen::ds::UiLocaTagReference backpackExtender; // Offset: 320 +}; + +struct FbUiLocaPunctuations { + keen::ds::LocaTag plusSign; // Offset: 0 + keen::ds::LocaTag minusSign; // Offset: 80 + keen::ds::LocaTag multiplySign; // Offset: 160 + keen::ds::UiLocaTagReference decimalSeparator; // Offset: 240 + keen::ds::UiLocaTagReference thousandsSeparator; // Offset: 256 + keen::ds::LocaTag exclamationMark; // Offset: 272 + keen::ds::LocaTag questionMark; // Offset: 352 + keen::ds::LocaTag questionMarkTriple; // Offset: 432 + keen::ds::LocaTag bulletDot; // Offset: 512 + keen::ds::LocaTag emDash; // Offset: 592 + keen::ds::UiLocaTagReference action1AndAction2; // Offset: 672 +}; + +struct FbUiLocaGeneric { + keen::ds::UiLocaTagReference timeUnitsAbbreviations; // Offset: 0 + keen::ds::UiLocaTagReference milliseconds; // Offset: 16 + keen::ds::UiLocaTagReference inactiveState; // Offset: 32 +}; + +struct FbUiLocaInput { + keen::ds::UiLocaTagReference unassigned; // Offset: 0 + keen::ds::UiLocaTagReference invalidStick; // Offset: 16 + keen::ds::UiLocaTagReference leftMouseButton; // Offset: 32 + keen::ds::UiLocaTagReference rightMouseButton; // Offset: 48 + keen::ds::UiLocaTagReference middleMouseButton; // Offset: 64 + keen::ds::UiLocaTagReference mouse4; // Offset: 80 + keen::ds::UiLocaTagReference mouse5; // Offset: 96 + keen::ds::UiLocaTagReference mouseWheelLeft; // Offset: 112 + keen::ds::UiLocaTagReference mouseWheelRight; // Offset: 128 + keen::ds::UiLocaTagReference mouseWheelUp; // Offset: 144 + keen::ds::UiLocaTagReference mouseWheelDown; // Offset: 160 + keen::ds::UiLocaTagReference mouseMoveLeft; // Offset: 176 + keen::ds::UiLocaTagReference mouseMoveRight; // Offset: 192 + keen::ds::UiLocaTagReference mouseMoveUp; // Offset: 208 + keen::ds::UiLocaTagReference mouseMoveDown; // Offset: 224 +}; + +struct FbUiLocaAttributeInfo { + keen::ds::UiLocaTagReference label; // Offset: 0 + keen::ds::UiLocaTagReference alternativeLabel; // Offset: 16 + keen::ds::UiLocaTagReference tooltip; // Offset: 32 + keen::float32 impliedBaseMultiplier; // Offset: 48 + keen::float32 relativeToValue; // Offset: 52 +}; + +struct FbUiLocaAttributes { + keen::ds::UiLocaTagReference attributeMenuHeader; // Offset: 0 + keen::ds::UiLocaTagReference subTabBasics; // Offset: 16 + keen::ds::UiLocaTagReference groupFoundation; // Offset: 32 + keen::ds::UiLocaTagReference groupPrimary; // Offset: 48 + keen::ds::UiLocaTagReference groupSecondary; // Offset: 64 + keen::ds::UiLocaTagReference groupVital; // Offset: 80 + keen::ds::UiLocaTagReference groupCombat; // Offset: 96 + keen::ds::UiLocaTagReference groupFogSurvival; // Offset: 112 + keen::ds::UiLocaTagReference groupMain; // Offset: 128 + keen::ds::UiLocaTagReference groupRegeneration; // Offset: 144 + keen::ds::UiLocaTagReference groupProtection; // Offset: 160 + keen::ds::UiLocaTagReference groupMovement; // Offset: 176 + keen::ds::UiLocaTagReference groupDamage; // Offset: 192 + keen::ds::UiLocaTagReference groupWeaponDamage; // Offset: 208 + keen::ds::UiLocaTagReference groupEnemyDamage; // Offset: 224 + keen::ds::UiLocaTagReference groupMisc; // Offset: 240 + keen::ds::UiLocaTagReference valueExplainer; // Offset: 256 + keen::ds::UiLocaTagReference valueExplainerWithBuff; // Offset: 272 + keen::ds::FbUiLocaAttributeInfo health; // Offset: 288 + keen::ds::FbUiLocaAttributeInfo mana; // Offset: 344 + keen::ds::FbUiLocaAttributeInfo stamina; // Offset: 400 + keen::ds::FbUiLocaAttributeInfo fogResistance; // Offset: 456 + keen::ds::FbUiLocaAttributeInfo fogResistanceDuration; // Offset: 512 + keen::ds::FbUiLocaAttributeInfo fogResistanceDurationMax; // Offset: 568 + keen::ds::FbUiLocaAttributeInfo freezeResistance; // Offset: 624 + keen::ds::FbUiLocaAttributeInfo bodyHeat; // Offset: 680 + keen::ds::FbUiLocaAttributeInfo strength; // Offset: 736 + keen::ds::FbUiLocaAttributeInfo dexterity; // Offset: 792 + keen::ds::FbUiLocaAttributeInfo intelligence; // Offset: 848 + keen::ds::FbUiLocaAttributeInfo constitution; // Offset: 904 + keen::ds::FbUiLocaAttributeInfo endurance; // Offset: 960 + keen::ds::FbUiLocaAttributeInfo spirit; // Offset: 1016 + keen::ds::FbUiLocaAttributeInfo healthRegeneration; // Offset: 1072 + keen::ds::FbUiLocaAttributeInfo healthRegenerationDelay; // Offset: 1128 + keen::ds::FbUiLocaAttributeInfo manaRegeneration; // Offset: 1184 + keen::ds::FbUiLocaAttributeInfo manaRegenerationDelay; // Offset: 1240 + keen::ds::FbUiLocaAttributeInfo staminaRegeneration; // Offset: 1296 + keen::ds::FbUiLocaAttributeInfo staminaRegenerationDelay; // Offset: 1352 + keen::ds::FbUiLocaAttributeInfo bodyHeatRegeneration; // Offset: 1408 + keen::ds::FbUiLocaAttributeInfo bodyHeatRegenerationDelay; // Offset: 1464 + keen::ds::FbUiLocaAttributeInfo baseMovementSpeed; // Offset: 1520 + keen::ds::FbUiLocaAttributeInfo sprintMovementSpeed; // Offset: 1576 + keen::ds::FbUiLocaAttributeInfo sneakMovementSpeed; // Offset: 1632 + keen::ds::FbUiLocaAttributeInfo critChanceMelee; // Offset: 1688 + keen::ds::FbUiLocaAttributeInfo critChanceMagical; // Offset: 1744 + keen::ds::FbUiLocaAttributeInfo critChanceRanged; // Offset: 1800 + keen::ds::FbUiLocaAttributeInfo skillShotDamage; // Offset: 1856 + keen::ds::FbUiLocaAttributeInfo staffDamage; // Offset: 1912 + keen::ds::FbUiLocaAttributeInfo wandDamage; // Offset: 1968 + keen::ds::FbUiLocaAttributeInfo oneHandDamage; // Offset: 2024 + keen::ds::FbUiLocaAttributeInfo daggerDamage; // Offset: 2080 + keen::ds::FbUiLocaAttributeInfo twoHandDamage; // Offset: 2136 + keen::ds::FbUiLocaAttributeInfo bowDamage; // Offset: 2192 + keen::ds::FbUiLocaAttributeInfo throwableDamage; // Offset: 2248 + keen::ds::FbUiLocaAttributeInfo unarmedDamage; // Offset: 2304 + keen::ds::FbUiLocaAttributeInfo foeMagicalDamage; // Offset: 2360 + keen::ds::FbUiLocaAttributeInfo foeMeleeDamage; // Offset: 2416 + keen::ds::FbUiLocaAttributeInfo foeRangedDamage; // Offset: 2472 + keen::ds::FbUiLocaAttributeInfo foeFlyingDamage; // Offset: 2528 + keen::ds::FbUiLocaAttributeInfo foeSkeletonDamage; // Offset: 2584 + keen::ds::FbUiLocaAttributeInfo healing; // Offset: 2640 + keen::ds::FbUiLocaAttributeInfo reviveDuration; // Offset: 2696 + keen::ds::FbUiLocaAttributeInfo reviveHealth; // Offset: 2752 + keen::ds::FbUiLocaAttributeInfo lifeSteal; // Offset: 2808 + keen::ds::FbUiLocaAttributeInfo restedDurationBonus; // Offset: 2864 + keen::ds::FbUiLocaAttributeInfo offenseBackstab; // Offset: 2920 + keen::ds::FbUiLocaAttributeInfo offenseCritical; // Offset: 2976 + keen::ds::FbUiLocaAttributeInfo offenseCritChance; // Offset: 3032 + keen::ds::FbUiLocaAttributeInfo damageMelee; // Offset: 3088 + keen::ds::FbUiLocaAttributeInfo damageSpell; // Offset: 3144 + keen::ds::FbUiLocaAttributeInfo damageRanged; // Offset: 3200 + keen::ds::FbUiLocaAttributeInfo blockAttribute; // Offset: 3256 + keen::ds::FbUiLocaAttributeInfo parryAttribute; // Offset: 3312 + keen::ds::FbUiLocaAttributeInfo resistancePhysical; // Offset: 3368 + keen::ds::FbUiLocaAttributeInfo resistancePhysicalCut; // Offset: 3424 + keen::ds::FbUiLocaAttributeInfo resistancePhysicalPierce; // Offset: 3480 + keen::ds::FbUiLocaAttributeInfo resistancePhysicalBlunt; // Offset: 3536 + keen::ds::FbUiLocaAttributeInfo resistanceMagical; // Offset: 3592 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalFire; // Offset: 3648 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalIce; // Offset: 3704 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalFog; // Offset: 3760 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalLightning; // Offset: 3816 + keen::ds::FbUiLocaAttributeInfo poisonSusceptibility; // Offset: 3872 + keen::ds::FbUiLocaAttributeInfo sneakAttack; // Offset: 3928 + keen::ds::FbUiLocaAttributeInfo mercilessAttack; // Offset: 3984 + keen::ds::FbUiLocaAttributeInfo ambushAttack; // Offset: 4040 + keen::ds::UiLocaTagReference numberExplanation; // Offset: 4096 +}; + +struct FbUiLocaPerkAttributes { + keen::ds::UiLocaTagReference damagePhysicalCut; // Offset: 0 + keen::ds::UiLocaTagReference damagePhysicalPierce; // Offset: 16 + keen::ds::UiLocaTagReference damagePhysicalBlunt; // Offset: 32 + keen::ds::UiLocaTagReference damagePoison; // Offset: 48 + keen::ds::UiLocaTagReference damageMagicalFire; // Offset: 64 + keen::ds::UiLocaTagReference damageMagicalIce; // Offset: 80 + keen::ds::UiLocaTagReference damageMagicalFog; // Offset: 96 + keen::ds::UiLocaTagReference damageMagicalLightning; // Offset: 112 + keen::ds::UiLocaTagReference resistancePhysicalCut; // Offset: 128 + keen::ds::UiLocaTagReference resistancePhysicalPierce; // Offset: 144 + keen::ds::UiLocaTagReference resistancePhysicalBlunt; // Offset: 160 + keen::ds::UiLocaTagReference resistanceMagicalFire; // Offset: 176 + keen::ds::UiLocaTagReference resistanceMagicalIce; // Offset: 192 + keen::ds::UiLocaTagReference resistanceMagicalFog; // Offset: 208 + keen::ds::UiLocaTagReference resistanceMagicalLightning; // Offset: 224 +}; + +struct FbUiNpcNames { + keen::ds::UiLocaTagReference flame; // Offset: 0 + keen::ds::UiLocaTagReference alchemist; // Offset: 16 + keen::ds::UiLocaTagReference blacksmith; // Offset: 32 + keen::ds::UiLocaTagReference hunter; // Offset: 48 + keen::ds::UiLocaTagReference farmer; // Offset: 64 + keen::ds::UiLocaTagReference carpenter; // Offset: 80 + keen::ds::UiLocaTagReference cryptKeeper; // Offset: 96 + keen::ds::UiLocaTagReference bard; // Offset: 112 +}; + +struct FbUiLocaRpgTerms { + keen::ds::FbUiNpcNames npcNames; // Offset: 0 + keen::ds::UiLocaTagReference entityLevel; // Offset: 128 + keen::ds::UiLocaTagReference genericLevelWithArgument; // Offset: 144 + keen::ds::UiLocaTagReference characterLevel; // Offset: 160 + keen::ds::UiLocaTagReference experiencePoints; // Offset: 176 + keen::ds::UiLocaTagReference experiencePointsShort; // Offset: 192 + keen::ds::UiLocaTagReference experiencePointsRequired; // Offset: 208 + keen::ds::FbUiLocaAttributes attributes; // Offset: 224 + keen::ds::FbUiLocaPerkAttributes perkAttributes; // Offset: 4336 + keen::ds::UiLocaTagReference durabilityGeneric; // Offset: 4576 + keen::ds::UiLocaTagReference damagePhysicalCut; // Offset: 4592 + keen::ds::UiLocaTagReference damagePhysicalPierce; // Offset: 4608 + keen::ds::UiLocaTagReference damagePhysicalBlunt; // Offset: 4624 + keen::ds::UiLocaTagReference damageMagicalFire; // Offset: 4640 + keen::ds::UiLocaTagReference damageMagicalIce; // Offset: 4656 + keen::ds::UiLocaTagReference damageMagicalFog; // Offset: 4672 + keen::ds::UiLocaTagReference damageMagicalLightning; // Offset: 4688 + keen::ds::UiLocaTagReference damageHealing; // Offset: 4704 + keen::ds::UiLocaTagReference damagePoison; // Offset: 4720 + keen::ds::UiLocaTagReference bowDamageBase; // Offset: 4736 + keen::ds::UiLocaTagReference bowDamageNoBonus; // Offset: 4752 + keen::ds::UiLocaTagReference bowDamagePhysicalCut; // Offset: 4768 + keen::ds::UiLocaTagReference bowDamagePhysicalPierce; // Offset: 4784 + keen::ds::UiLocaTagReference bowDamagePhysicalBlunt; // Offset: 4800 + keen::ds::UiLocaTagReference bowDamageMagicalFire; // Offset: 4816 + keen::ds::UiLocaTagReference bowDamageMagicalIce; // Offset: 4832 + keen::ds::UiLocaTagReference bowDamageMagicalFog; // Offset: 4848 + keen::ds::UiLocaTagReference bowDamageMagicalLightning; // Offset: 4864 + keen::ds::UiLocaTagReference bowDamageHealing; // Offset: 4880 + keen::ds::UiLocaTagReference bowDamagePoison; // Offset: 4896 + keen::ds::UiLocaTagReference armorResistanceCutShort; // Offset: 4912 + keen::ds::UiLocaTagReference armorResistancePierceShort; // Offset: 4928 + keen::ds::UiLocaTagReference armorResistanceBluntShort; // Offset: 4944 + keen::ds::UiLocaTagReference armorResistanceFireShort; // Offset: 4960 + keen::ds::UiLocaTagReference armorResistanceIceShort; // Offset: 4976 + keen::ds::UiLocaTagReference armorResistanceFogShort; // Offset: 4992 + keen::ds::UiLocaTagReference armorResistanceLightningShort; // Offset: 5008 + keen::ds::UiLocaTagReference rarityUndefined; // Offset: 5024 + keen::ds::UiLocaTagReference rarityCommon; // Offset: 5040 + keen::ds::UiLocaTagReference rarityUncommon; // Offset: 5056 + keen::ds::UiLocaTagReference rarityRare; // Offset: 5072 + keen::ds::UiLocaTagReference rarityEpic; // Offset: 5088 + keen::ds::UiLocaTagReference rarityLegendary; // Offset: 5104 + keen::ds::UiLocaTagReference rarityVanity; // Offset: 5120 + keen::ds::UiLocaTagReference restedBuffNone; // Offset: 5136 + keen::ds::UiLocaTagReference restedBuffCharging; // Offset: 5152 + keen::ds::UiLocaTagReference restedBuffActive; // Offset: 5168 + keen::ds::UiLocaTagReference restedBuffGenericDescription; // Offset: 5184 + keen::ds::UiLocaTagReference comfortLevel; // Offset: 5200 + keen::ds::UiLocaTagReference comfort; // Offset: 5216 + keen::ds::UiLocaTagReference statusSitting; // Offset: 5232 + keen::ds::UiLocaTagReference statusSheltered; // Offset: 5248 + keen::ds::UiLocaTagReference statusSleeping; // Offset: 5264 + keen::ds::UiLocaTagReference statusInCombat; // Offset: 5280 + keen::ds::UiLocaTagReference statusWarmth; // Offset: 5296 + keen::ds::UiLocaTagReference statusShelteredBed; // Offset: 5312 + keen::ds::UiLocaTagReference statusSittingDesc; // Offset: 5328 + keen::ds::UiLocaTagReference statusShelteredDesc; // Offset: 5344 + keen::ds::UiLocaTagReference statusSleepingDesc; // Offset: 5360 + keen::ds::UiLocaTagReference statusWarmthDesc; // Offset: 5376 + keen::ds::UiLocaTagReference statusSittingNot; // Offset: 5392 + keen::ds::UiLocaTagReference statusShelteredNot; // Offset: 5408 + keen::ds::UiLocaTagReference statusInCombatNot; // Offset: 5424 + keen::ds::UiLocaTagReference statusWarmthNot; // Offset: 5440 + keen::ds::UiLocaTagReference foodTypeAlreadyActive; // Offset: 5456 + keen::ds::UiLocaTagReference foodSlotsAllOccupied; // Offset: 5472 + keen::ds::UiLocaTagReference npcProps; // Offset: 5488 + keen::ds::UiLocaTagReference npcUndiscoveredName; // Offset: 5504 + keen::ds::UiLocaTagReference npcUndiscoveredDescription; // Offset: 5520 +}; + +struct FbUiLocaHudBuildFeedback { + keen::ds::UiLocaTagReference cursorOutsideBuildZone; // Offset: 0 + keen::ds::UiLocaTagReference cursorInsideFogZone; // Offset: 16 + keen::ds::UiLocaTagReference cursorTooFarAway; // Offset: 32 + keen::ds::UiLocaTagReference cursorInsideLenientBuildInhibitor; // Offset: 48 + keen::ds::UiLocaTagReference cursorInsideStrictBuildInhibitor; // Offset: 64 + keen::ds::UiLocaTagReference maxAltarCountReached; // Offset: 80 + keen::ds::UiLocaTagReference maxAltarCountUpgradeHint; // Offset: 96 + keen::ds::UiLocaTagReference maxAltarCountLimitHint; // Offset: 112 + keen::ds::UiLocaTagReference maxTameAnimalCountReached; // Offset: 128 + keen::ds::UiLocaTagReference enemiesNearby; // Offset: 144 + keen::ds::UiLocaTagReference areaOccupied; // Offset: 160 + keen::ds::UiLocaTagReference invalidSurfaceNormal; // Offset: 176 + keen::ds::UiLocaTagReference invalidCursorVoxelMaterial; // Offset: 192 + keen::ds::UiLocaTagReference missingMaterials; // Offset: 208 + keen::ds::UiLocaTagReference noPermission; // Offset: 224 + keen::ds::UiLocaTagReference assignNpcToBed; // Offset: 240 + keen::ds::UiLocaTagReference hintNpcNotPlaced; // Offset: 256 + keen::ds::UiLocaTagReference bedUnoccupied; // Offset: 272 + keen::ds::UiLocaTagReference bedOccupiedBy; // Offset: 288 + keen::ds::UiLocaTagReference bedTooFarAway; // Offset: 304 + keen::ds::UiLocaTagReference useStaffToAssignBed; // Offset: 320 +}; + +struct FbUiLocaHudItemUseMessages { + keen::ds::UiLocaTagReference hookshotUseFail; // Offset: 0 + keen::ds::UiLocaTagReference doorOpenFail; // Offset: 16 + keen::ds::UiLocaTagReference gliderUseFail; // Offset: 32 + keen::ds::UiLocaTagReference gliderUseHint; // Offset: 48 + keen::ds::UiLocaTagReference itemMovedToEquipmentSlotByUsing; // Offset: 64 + keen::ds::UiLocaTagReference itemFailedInsufficientStamina; // Offset: 80 +}; + +struct FbUiLocaHitEventLabels { + keen::ds::UiLocaTagReference crit; // Offset: 0 + keen::ds::UiLocaTagReference backstab; // Offset: 16 + keen::ds::UiLocaTagReference weakspot; // Offset: 32 + keen::ds::UiLocaTagReference immune; // Offset: 48 + keen::ds::UiLocaTagReference ineffective; // Offset: 64 + keen::ds::UiLocaTagReference resist; // Offset: 80 +}; + +struct FbUiLocaTutorialHints { + keen::ds::UiLocaTagReference quickbuilderMaterialHint; // Offset: 0 + keen::ds::UiLocaTagReference quickbuilderShapeHint; // Offset: 16 + keen::ds::UiLocaTagReference quickbuilderTabsHint; // Offset: 32 + keen::ds::UiLocaTagReference quickbuilderShapeSelectionHint; // Offset: 48 + keen::ds::UiLocaTagReference cookingTutorialHint; // Offset: 64 + keen::ds::UiLocaTagReference craftingRecipeList; // Offset: 80 + keen::ds::UiLocaTagReference craftingRecipeCategories; // Offset: 96 + keen::ds::UiLocaTagReference craftingRecipeSeries; // Offset: 112 + keen::ds::UiLocaTagReference craftingIngredients; // Offset: 128 + keen::ds::UiLocaTagReference craftingPinRecipe; // Offset: 144 + keen::ds::UiLocaTagReference craftingTabs; // Offset: 160 + keen::ds::UiLocaTagReference npcCraftingTabs; // Offset: 176 + keen::ds::UiLocaTagReference enhancingItemList; // Offset: 192 + keen::ds::UiLocaTagReference enhancingPerks; // Offset: 208 + keen::ds::UiLocaTagReference enhancingCurrency; // Offset: 224 + keen::ds::UiLocaTagReference factoryInventory; // Offset: 240 + keen::ds::UiLocaTagReference factoryRecipes; // Offset: 256 + keen::ds::UiLocaTagReference factoryFillIngredients; // Offset: 272 + keen::ds::UiLocaTagReference factoryInputHints; // Offset: 288 + keen::ds::UiLocaTagReference factoryStart; // Offset: 304 + keen::ds::UiLocaTagReference actionbarTutorial1; // Offset: 320 + keen::ds::UiLocaTagReference actionbarTutorial2; // Offset: 336 + keen::ds::UiLocaTagReference summoningStaffTutorialNpcTypes; // Offset: 352 + keen::ds::UiLocaTagReference summoningStaffTutorialPlacing; // Offset: 368 + keen::ds::UiLocaTagReference summoningStaffRoamingRange; // Offset: 384 + keen::ds::UiLocaTagReference flameUpgradeHappyNpc; // Offset: 400 + keen::ds::UiLocaTagReference nextHint; // Offset: 416 +}; + +struct FbUiLocaHudXpSources { + keen::ds::UiLocaTagReference xpSourceQuest; // Offset: 0 + keen::ds::UiLocaTagReference xpSourceCombat; // Offset: 16 + keen::ds::UiLocaTagReference xpSourceLore; // Offset: 32 + keen::ds::UiLocaTagReference xpSourceExploration; // Offset: 48 + keen::ds::UiLocaTagReference xpSourceMining; // Offset: 64 +}; + +struct FbUiLocaHudHappinessDialog { + keen::ds::UiLocaTagReference missingBedDialogText; // Offset: 0 + keen::ds::UiLocaTagReference missingBedDialogLabel; // Offset: 16 + keen::ds::UiLocaTagReference missingShelterDialogText; // Offset: 32 + keen::ds::UiLocaTagReference missingShelterDialogLabel; // Offset: 48 + keen::ds::UiLocaTagReference missingFoodDialogText; // Offset: 64 + keen::ds::UiLocaTagReference missingFoodDialogLabel; // Offset: 80 +}; + +struct FbUiLocaHudTemperature { + keen::ds::UiLocaTagReference resistanceBuffLabel; // Offset: 0 + keen::ds::UiLocaTagReference resistanceLowWarning; // Offset: 16 + keen::ds::UiLocaTagReference deadlyDebuffLabel; // Offset: 32 + keen::ds::UiLocaTagReference deadlyDebuffWarning; // Offset: 48 +}; + +struct FbUiLocaHud { + keen::ds::FbUiLocaHudBuildFeedback buildFeedback; // Offset: 0 + keen::ds::FbUiLocaHudItemUseMessages itemUseMessages; // Offset: 336 + keen::ds::FbUiLocaHitEventLabels hitEventLabels; // Offset: 432 + keen::ds::FbUiLocaTutorialHints tutorialHints; // Offset: 528 + keen::ds::FbUiLocaHudXpSources xpSources; // Offset: 960 + keen::ds::FbUiLocaHudHappinessDialog missingHappinessDialogOptions; // Offset: 1040 + keen::ds::UiLocaTagReference nightSpeed; // Offset: 1136 + keen::ds::FbUiLocaHudTemperature freezing; // Offset: 1152 + keen::ds::FbUiLocaHudTemperature extremeHeat; // Offset: 1216 + keen::ds::UiLocaTagReference gameProgressSummaryTitle; // Offset: 1280 + keen::ds::UiLocaTagReference ammoLabelNoneEquipped; // Offset: 1296 + keen::ds::UiLocaTagReference quickBuilderPreUseHint; // Offset: 1312 + keen::ds::UiLocaTagReference buildTooltipQuickBuilderInit; // Offset: 1328 + keen::ds::UiLocaTagReference buildTooltipChangeBlueprint; // Offset: 1344 + keen::ds::UiLocaTagReference buildTooltipChangeShovelAction; // Offset: 1360 + keen::ds::UiLocaTagReference buildTooltipChangeNpc; // Offset: 1376 + keen::ds::UiLocaTagReference buildTooltipChangeMaterial; // Offset: 1392 + keen::ds::UiLocaTagReference buildTooltipRotate90; // Offset: 1408 + keen::ds::UiLocaTagReference buildTooltipRotate; // Offset: 1424 + keen::ds::UiLocaTagReference buildTooltipAreaActions; // Offset: 1440 + keen::ds::UiLocaTagReference buildTooltipUseSnapping; // Offset: 1456 + keen::ds::UiLocaTagReference cursorHintSnappingActive; // Offset: 1472 + keen::ds::UiLocaTagReference cursorHintSnappingReady; // Offset: 1488 + keen::ds::UiLocaTagReference cursorHintSnappingOff; // Offset: 1504 + keen::ds::UiLocaTagReference buildTooltipMultiToolMaterialHeader; // Offset: 1520 + keen::ds::UiLocaTagReference buildTooltipMultiToolMaterialActionLabel; // Offset: 1536 + keen::ds::UiLocaTagReference leaveNpcConversation; // Offset: 1552 + keen::ds::UiLocaTagReference messageFastTravelUnlock; // Offset: 1568 + keen::ds::UiLocaTagReference messageNpcFound; // Offset: 1584 + keen::ds::UiLocaTagReference messageSpecialLootAcquired; // Offset: 1600 + keen::ds::UiLocaTagReference messageLevelUp; // Offset: 1616 + keen::ds::UiLocaTagReference messageFlameLevelUp; // Offset: 1632 + keen::ds::UiLocaTagReference messageAllItemsRepaired; // Offset: 1648 + keen::ds::UiLocaTagReference messagePinnedRecipeReady; // Offset: 1664 + keen::ds::UiLocaTagReference messageMagicBarrierUnlocked; // Offset: 1680 + keen::ds::UiLocaTagReference messageDoorUnlocked; // Offset: 1696 + keen::ds::UiLocaTagReference messageSecretDoorUnlocked; // Offset: 1712 + keen::ds::UiLocaTagReference messageNewTwitchDropUnlocked; // Offset: 1728 + keen::ds::UiLocaTagReference knowledgeNotificationGeneral; // Offset: 1744 + keen::ds::UiLocaTagReference knowledgeNotificationMap; // Offset: 1760 + keen::ds::UiLocaTagReference knowledgeNotificationJournal; // Offset: 1776 + keen::ds::UiLocaTagReference knowledgeNotificationNewTutorial; // Offset: 1792 + keen::ds::UiLocaTagReference knowledgeNotificationNewLoreDocument; // Offset: 1808 + keen::ds::UiLocaTagReference knowledgeNotificationNewLorePage; // Offset: 1824 + keen::ds::UiLocaTagReference knowledgeNotificationNewQuest; // Offset: 1840 + keen::ds::UiLocaTagReference knowledgeNotificationUpdatedQuest; // Offset: 1856 + keen::ds::UiLocaTagReference knowledgeNotificationJournalCompleted; // Offset: 1872 + keen::ds::UiLocaTagReference knowledgeNotificationCrafting; // Offset: 1888 + keen::ds::UiLocaTagReference knowledgeNotificationIngredientKnowledge; // Offset: 1904 + keen::ds::UiLocaTagReference knowledgeNotificationNpcDialog; // Offset: 1920 + keen::ds::UiLocaTagReference priorityJournalEntryPrompt; // Offset: 1936 + keen::ds::UiLocaTagReference priorityJournalEntryPromptNoBinding; // Offset: 1952 + keen::ds::UiLocaTagReference priorityJournalLocationReached; // Offset: 1968 + keen::ds::UiLocaTagReference interactionItemRequirementHeader; // Offset: 1984 + keen::ds::UiLocaTagReference backpackFullMessage; // Offset: 2000 + keen::ds::UiLocaTagReference storageFullMessage; // Offset: 2016 + keen::ds::UiLocaTagReference compassWaypointReached; // Offset: 2032 + keen::ds::UiLocaTagReference compassWaypointReachedAbove; // Offset: 2048 + keen::ds::UiLocaTagReference compassWaypointReachedBelow; // Offset: 2064 + keen::ds::UiLocaTagReference compassInFog; // Offset: 2080 + keen::ds::UiLocaTagReference compassInDeadlyFog; // Offset: 2096 + keen::ds::UiLocaTagReference compassEarlyFogWarning; // Offset: 2112 + keen::ds::UiLocaTagReference compassFogWarning; // Offset: 2128 + keen::ds::UiLocaTagReference staminaMax; // Offset: 2144 + keen::ds::UiLocaTagReference restedBuffConditionHeader; // Offset: 2160 + keen::ds::UiLocaTagReference markersAdded; // Offset: 2176 + keen::ds::UiLocaTagReference entriesLogged; // Offset: 2192 + keen::ds::UiLocaTagReference entriesCompleted; // Offset: 2208 + keen::ds::UiLocaTagReference oneRecipeLearned; // Offset: 2224 + keen::ds::UiLocaTagReference recipesLearned; // Offset: 2240 + keen::ds::UiLocaTagReference recipesLearnedPersonal; // Offset: 2256 + keen::ds::UiLocaTagReference readyToCraft; // Offset: 2272 + keen::ds::UiLocaTagReference readyToCraftPinned; // Offset: 2288 + keen::ds::UiLocaTagReference loading; // Offset: 2304 + keen::ds::UiLocaTagReference reviving; // Offset: 2320 + keen::ds::UiLocaTagReference beingRevived; // Offset: 2336 + keen::ds::UiLocaTagReference canBeRevived; // Offset: 2352 + keen::ds::UiLocaTagReference craftableAmount; // Offset: 2368 + keen::ds::UiLocaTagReference emptyHint; // Offset: 2384 + keen::ds::UiLocaTagReference inventoryCount; // Offset: 2400 + keen::ds::UiLocaTagReference serverPerformanceBad; // Offset: 2416 + keen::ds::UiLocaTagReference serverPerformanceBadHost; // Offset: 2432 + keen::ds::UiLocaTagReference serverPerformanceBadDesc; // Offset: 2448 + keen::ds::UiLocaTagReference serverPerformanceBadDescHost; // Offset: 2464 + keen::ds::UiLocaTagReference serverPerformanceCritical; // Offset: 2480 + keen::ds::UiLocaTagReference serverPerformanceCriticalHost; // Offset: 2496 + keen::ds::UiLocaTagReference serverPerformanceCriticalDesc; // Offset: 2512 + keen::ds::UiLocaTagReference serverPerformanceCriticalDescHost; // Offset: 2528 + keen::ds::UiLocaTagReference currentServerPerformance; // Offset: 2544 + keen::ds::UiLocaTagReference currentServerPerformanceHost; // Offset: 2560 + keen::ds::UiLocaTagReference flameUpgradeBaseLabel; // Offset: 2576 + keen::ds::UiLocaTagReference personalProgressionModeHint; // Offset: 2592 + keen::ds::UiLocaTagReference allMissedWorldQuestsCompletedMessage; // Offset: 2608 + keen::ds::UiLocaTagReference interactionNoPermission; // Offset: 2624 + keen::ds::UiLocaTagReference itemUseNoPermission; // Offset: 2640 + keen::ds::UiLocaTagReference currentSongPlayingHint; // Offset: 2656 + keen::ds::UiLocaTagReference tamingTutorialTitle; // Offset: 2672 + keen::ds::UiLocaTagReference tamingTutorialStep1; // Offset: 2688 + keen::ds::UiLocaTagReference tamingTutorialStep2; // Offset: 2704 + keen::ds::UiLocaTagReference tamingTutorialStep3; // Offset: 2720 + keen::ds::UiLocaTagReference tamingTutorialStep4; // Offset: 2736 +}; + +struct FbUiLocaMenuFlameAltar { + keen::ds::UiLocaTagReference menuHeader; // Offset: 0 + keen::ds::UiLocaTagReference altarLevelLabel; // Offset: 16 + keen::ds::UiLocaTagReference altarRangeLabel; // Offset: 32 + keen::ds::UiLocaTagReference motherflameLevelLabel; // Offset: 48 + keen::ds::UiLocaTagReference lastPlayed; // Offset: 64 + keen::ds::UiLocaTagReference altarRange; // Offset: 80 + keen::ds::UiLocaTagReference flameUpgradeMaxAltarCountLabel; // Offset: 96 + keen::ds::UiLocaTagReference flameUpgradeAttributeBonusLabel; // Offset: 112 + keen::ds::UiLocaTagReference flameUpgradeFogResistanceLabel; // Offset: 128 + keen::ds::UiLocaTagReference flameUpgradeFogResistanceLevel; // Offset: 144 + keen::ds::UiLocaTagReference flameUpgradeFogResistanceDuration; // Offset: 160 + keen::ds::UiLocaTagReference flameCodexDesc; // Offset: 176 + keen::ds::UiLocaTagReference flameCodexUpgradeHeader; // Offset: 192 + keen::ds::UiLocaTagReference tileAltarUpgradeMainText; // Offset: 208 + keen::ds::UiLocaTagReference tileAltarUpgradeSecondaryText; // Offset: 224 + keen::ds::UiLocaTagReference tileMotherflameUpgradeMainText; // Offset: 240 + keen::ds::UiLocaTagReference tileMotherflameUpgradeSecondaryText; // Offset: 256 + keen::ds::UiLocaTagReference tileReviveNpcMainText; // Offset: 272 + keen::ds::UiLocaTagReference tileReviveNpcSecondaryText; // Offset: 288 + keen::ds::UiLocaTagReference tileRespecMainText; // Offset: 304 + keen::ds::UiLocaTagReference tileRespecSecondaryText; // Offset: 320 + keen::ds::UiLocaTagReference respecDescription; // Offset: 336 + keen::ds::UiLocaTagReference actionRespecSkills; // Offset: 352 + keen::ds::UiLocaTagReference actionDeactivate; // Offset: 368 + keen::ds::UiLocaTagReference actionDeactivateSecondaryText; // Offset: 384 + keen::ds::UiLocaTagReference actionReactivate; // Offset: 400 + keen::ds::UiLocaTagReference deactivateAltarDesc; // Offset: 416 + keen::ds::UiLocaTagReference inactiveStateDesc; // Offset: 432 + keen::ds::UiLocaTagReference reactivationProhibited; // Offset: 448 + keen::ds::UiLocaTagReference altarUpgradeRecipeHeader; // Offset: 464 + keen::ds::UiLocaTagReference motherflameUpgradeRecipeHeader; // Offset: 480 + keen::ds::UiLocaTagReference actionAltarUpgrade; // Offset: 496 + keen::ds::UiLocaTagReference actionMotherflameUpgrade; // Offset: 512 + keen::ds::UiLocaTagReference npcReviveSubheader; // Offset: 528 + keen::ds::UiLocaTagReference deactivationExplanation; // Offset: 544 + keen::ds::UiLocaTagReference noPermissionHintGeneral; // Offset: 560 + keen::ds::UiLocaTagReference noAltarUpgradePermission; // Offset: 576 + keen::ds::UiLocaTagReference noFlameUpgradePermission; // Offset: 592 + keen::ds::UiLocaTagReference noExtinguishAltarPermission; // Offset: 608 + keen::ds::UiLocaTagReference shelteredBedsRequirement; // Offset: 624 +}; + +struct FbUiLocaMenuPregame { + keen::ds::UiLocaTagReference mainMenuPlay; // Offset: 0 + keen::ds::UiLocaTagReference mainMenuJoinSessionHeader; // Offset: 16 + keen::ds::UiLocaTagReference mainMenuInviteHeader; // Offset: 32 + keen::ds::UiLocaTagReference mainMenuInviteAccept; // Offset: 48 + keen::ds::UiLocaTagReference mainMenuInviteDecline; // Offset: 64 + keen::ds::UiLocaTagReference mainMenuJoinSessionFallbackName; // Offset: 80 + keen::ds::UiLocaTagReference mainMenuCredits; // Offset: 96 + keen::ds::UiLocaTagReference mainMenuQuit; // Offset: 112 + keen::ds::UiLocaTagReference mainMenuGPUDriverWarning; // Offset: 128 + keen::ds::UiLocaTagReference thankYouClosedBeta; // Offset: 144 + keen::ds::UiLocaTagReference steamCallToAction; // Offset: 160 + keen::ds::UiLocaTagReference discordCallToAction; // Offset: 176 + keen::ds::UiLocaTagReference characterSelectionEnterVerb; // Offset: 192 + keen::ds::UiLocaTagReference characterSelectionHeaderCreate; // Offset: 208 + keen::ds::UiLocaTagReference characterSelectionHeaderSelect; // Offset: 224 + keen::ds::UiLocaTagReference characterSelectionEmptySlotHint; // Offset: 240 + keen::ds::UiLocaTagReference characterDeletionConfirmHeader; // Offset: 256 + keen::ds::UiLocaTagReference characterBackupRestoreDialogHeader; // Offset: 272 + keen::ds::UiLocaTagReference characterBackupRestoreDataLabel; // Offset: 288 + keen::ds::UiLocaTagReference characterBackupRestoreButtonLabel; // Offset: 304 + keen::ds::UiLocaTagReference playSelectionHeader; // Offset: 320 + keen::ds::UiLocaTagReference playSelectionRecent; // Offset: 336 + keen::ds::UiLocaTagReference playSelectionJoin; // Offset: 352 + keen::ds::UiLocaTagReference playSelectionJoinDescription; // Offset: 368 + keen::ds::UiLocaTagReference playSelectionJoinHeader; // Offset: 384 + keen::ds::UiLocaTagReference playSelectionHostPublic; // Offset: 400 + keen::ds::UiLocaTagReference playSelectionHostPublicDescription; // Offset: 416 + keen::ds::UiLocaTagReference playSelectionHostPublicHeader; // Offset: 432 + keen::ds::UiLocaTagReference playSelectionPrivate; // Offset: 448 + keen::ds::UiLocaTagReference playSelectionPrivateDescription; // Offset: 464 + keen::ds::UiLocaTagReference playSelectionPrivateHeader; // Offset: 480 + keen::ds::UiLocaTagReference party; // Offset: 496 + keen::ds::UiLocaTagReference filterFriends; // Offset: 512 + keen::ds::UiLocaTagReference filterDedicatedServer; // Offset: 528 + keen::ds::UiLocaTagReference filterEmpty; // Offset: 544 + keen::ds::UiLocaTagReference filterName; // Offset: 560 + keen::ds::UiLocaTagReference filterPassword; // Offset: 576 + keen::ds::UiLocaTagReference filterFreeSlots; // Offset: 592 + keen::ds::UiLocaTagReference filterNameHeader; // Offset: 608 + keen::ds::UiLocaTagReference sessionSearchEmptyResult; // Offset: 624 + keen::ds::UiLocaTagReference sessionSearchOngoing; // Offset: 640 + keen::ds::UiLocaTagReference errorServerNotFound; // Offset: 656 + keen::ds::UiLocaTagReference errorServerNotFoundDesc; // Offset: 672 + keen::ds::UiLocaTagReference serverFound; // Offset: 688 + keen::ds::UiLocaTagReference noSessionsMatchingFilter; // Offset: 704 + keen::ds::UiLocaTagReference enterGridSelection; // Offset: 720 + keen::ds::UiLocaTagReference playVoiceSample; // Offset: 736 + keen::ds::UiLocaTagReference customizationOptionNone; // Offset: 752 + keen::ds::UiLocaTagReference customizationBodyType; // Offset: 768 + keen::ds::UiLocaTagReference customizationPreset; // Offset: 784 + keen::ds::UiLocaTagReference customizationSkinColor; // Offset: 800 + keen::ds::UiLocaTagReference customizationEyeColor; // Offset: 816 + keen::ds::UiLocaTagReference customizationEyeBrowColor; // Offset: 832 + keen::ds::UiLocaTagReference customizationHair; // Offset: 848 + keen::ds::UiLocaTagReference customizationHairColor; // Offset: 864 + keen::ds::UiLocaTagReference customizationBeard; // Offset: 880 + keen::ds::UiLocaTagReference customizationBeardColor; // Offset: 896 + keen::ds::UiLocaTagReference customizationVoice; // Offset: 912 + keen::ds::UiLocaTagReference customizationName; // Offset: 928 + keen::ds::UiLocaTagReference customizationCharacter; // Offset: 944 + keen::ds::UiLocaTagReference customizationNameAndFinish; // Offset: 960 + keen::ds::UiLocaTagReference customizationResetPreset; // Offset: 976 + keen::ds::UiLocaTagReference customizationFinish; // Offset: 992 + keen::ds::UiLocaTagReference refresh; // Offset: 1008 + keen::ds::UiLocaTagReference newGame; // Offset: 1024 + keen::ds::UiLocaTagReference unnamed; // Offset: 1040 + keen::ds::UiLocaTagReference create; // Offset: 1056 + keen::ds::UiLocaTagReference edit; // Offset: 1072 + keen::ds::UiLocaTagReference configure; // Offset: 1088 + keen::ds::UiLocaTagReference myWorld; // Offset: 1104 + keen::ds::UiLocaTagReference editWorldSave; // Offset: 1120 + keen::ds::UiLocaTagReference configureWorldSave; // Offset: 1136 + keen::ds::UiLocaTagReference deleteWorld; // Offset: 1152 + keen::ds::UiLocaTagReference deleteWorldDesc; // Offset: 1168 + keen::ds::UiLocaTagReference maxWorldCountReached; // Offset: 1184 + keen::ds::UiLocaTagReference worldSaveNameTitle; // Offset: 1200 + keen::ds::UiLocaTagReference gameSettings; // Offset: 1216 + keen::ds::UiLocaTagReference sessionVisibility; // Offset: 1232 + keen::ds::UiLocaTagReference joinGame; // Offset: 1248 + keen::ds::UiLocaTagReference publicGame; // Offset: 1264 + keen::ds::UiLocaTagReference privateGame; // Offset: 1280 + keen::ds::UiLocaTagReference sessionVisibiltyFriends; // Offset: 1296 + keen::ds::UiLocaTagReference sessionVisibiltyPublic; // Offset: 1312 + keen::ds::UiLocaTagReference hidePasswordInput; // Offset: 1328 + keen::ds::UiLocaTagReference setPasswordProtection; // Offset: 1344 + keen::ds::UiLocaTagReference hostHintHasNoPassword; // Offset: 1360 + keen::ds::UiLocaTagReference hostSettings; // Offset: 1376 + keen::ds::UiLocaTagReference hostStartDialogHeader; // Offset: 1392 + keen::ds::UiLocaTagReference hostStartButton; // Offset: 1408 + keen::ds::UiLocaTagReference worldNameEmptyProhibited; // Offset: 1424 + keen::ds::UiLocaTagReference noPassword; // Offset: 1440 + keen::ds::UiLocaTagReference sessionPassword; // Offset: 1456 + keen::ds::UiLocaTagReference rolePassword; // Offset: 1472 + keen::ds::UiLocaTagReference setPassword; // Offset: 1488 + keen::ds::UiLocaTagReference removePassword; // Offset: 1504 + keen::ds::UiLocaTagReference enterPasswordHeader; // Offset: 1520 + keen::ds::UiLocaTagReference sessionSize; // Offset: 1536 + keen::ds::UiLocaTagReference maxPlayerCount; // Offset: 1552 + keen::ds::UiLocaTagReference serverFilter; // Offset: 1568 + keen::ds::UiLocaTagReference availableServer; // Offset: 1584 + keen::ds::UiLocaTagReference serverName; // Offset: 1600 + keen::ds::UiLocaTagReference hostedBy; // Offset: 1616 + keen::ds::UiLocaTagReference currentSessionSize; // Offset: 1632 + keen::ds::UiLocaTagReference sessionSizeWarning; // Offset: 1648 + keen::ds::UiLocaTagReference enterPassword; // Offset: 1664 + keen::ds::UiLocaTagReference searchIPv4; // Offset: 1680 + keen::ds::UiLocaTagReference addToFavourite; // Offset: 1696 + keen::ds::UiLocaTagReference renameCharacter; // Offset: 1712 + keen::ds::UiLocaTagReference legalLine; // Offset: 1728 + keen::ds::UiLocaTagReference gportalLogoDesc; // Offset: 1744 + keen::ds::UiLocaTagReference gportalLink; // Offset: 1760 + keen::ds::UiLocaTagReference versionText; // Offset: 1776 + keen::ds::UiLocaTagReference preload; // Offset: 1792 + keen::ds::UiLocaTagReference compilingShaders; // Offset: 1808 + keen::ds::UiLocaTagReference addServerCaption; // Offset: 1824 + keen::ds::UiLocaTagReference serverDidNotResponde; // Offset: 1840 + keen::ds::UiLocaTagReference serverDidResponde; // Offset: 1856 + keen::ds::UiLocaTagReference inviteBuildVersionWarningLocalOld; // Offset: 1872 + keen::ds::UiLocaTagReference inviteBuildVersionWarningInviteOld; // Offset: 1888 + keen::ds::UiLocaTagReference serverSettingsRolesHeader; // Offset: 1904 + keen::ds::UiLocaTagReference serverSettingsRolesExplanation; // Offset: 1920 + keen::ds::UiLocaTagReference serverSettingsSelectedSavegameHeader; // Offset: 1936 + keen::ds::UiLocaTagReference serverSettingsRoleDisabled; // Offset: 1952 + keen::ds::UiLocaTagReference serverSettingsRolePublic; // Offset: 1968 + keen::ds::UiLocaTagReference serverSettingsAllRolesDisabledWarning; // Offset: 1984 + keen::ds::UiLocaTagReference serverRolePermissionsHeader; // Offset: 2000 + keen::ds::UiLocaTagReference serverRoleSupressed; // Offset: 2016 + keen::ds::UiLocaTagReference serverRolesInvalidHint; // Offset: 2032 + keen::ds::UiLocaTagReference warningHostSettingsNotConfigured; // Offset: 2048 + keen::ds::UiLocaTagReference warningServerRoleSupressed; // Offset: 2064 + keen::ds::UiLocaTagReference warningServerRoleSamePassword; // Offset: 2080 + keen::ds::UiLocaTagReference warningPublicServerRole; // Offset: 2096 + keen::ds::UiLocaTagReference warningAdminPasswordRequired; // Offset: 2112 + keen::ds::UiLocaTagReference warningFriendPasswordRequired; // Offset: 2128 + keen::ds::UiLocaTagReference warningNoPasswordPublic; // Offset: 2144 + keen::ds::UiLocaTagReference forceAllowPublicFriendRole; // Offset: 2160 + keen::ds::UiLocaTagReference rolePasswordHeader; // Offset: 2176 + keen::ds::UiLocaTagReference changePassword; // Offset: 2192 + keen::ds::UiLocaTagReference publicRole; // Offset: 2208 + keen::ds::UiLocaTagReference protectedRole; // Offset: 2224 + keen::ds::UiLocaTagReference disabled; // Offset: 2240 + keen::ds::UiLocaTagReference joinWithoutPw; // Offset: 2256 + keen::ds::UiLocaTagReference optionalPwHint; // Offset: 2272 +}; + +struct FbUiLocaMenuSystem { + keen::ds::UiLocaTagReference returnToGame; // Offset: 0 + keen::ds::UiLocaTagReference returnToPregame; // Offset: 16 + keen::ds::UiLocaTagReference showServerRole; // Offset: 32 + keen::ds::UiLocaTagReference quitToDesktop; // Offset: 48 + keen::ds::UiLocaTagReference networkQuality; // Offset: 64 + keen::ds::UiLocaTagReference latencyValue; // Offset: 80 + keen::ds::UiLocaTagReference shaderCompileProgress; // Offset: 96 + keen::ds::UiLocaTagReference feedbackPopupHint; // Offset: 112 + keen::ds::UiLocaTagReference feedbackIssue; // Offset: 128 + keen::ds::UiLocaTagReference feedbackIssueLink; // Offset: 144 + keen::ds::UiLocaTagReference bugReport; // Offset: 160 + keen::ds::UiLocaTagReference bugReportLink; // Offset: 176 + keen::ds::UiLocaTagReference discordServer; // Offset: 192 + keen::ds::UiLocaTagReference discordServerLink; // Offset: 208 + keen::ds::UiLocaTagReference connectTwitch; // Offset: 224 + keen::ds::UiLocaTagReference connectTwitchLink; // Offset: 240 + keen::ds::UiLocaTagReference steamWishlist; // Offset: 256 + keen::ds::UiLocaTagReference steamWishlistLink; // Offset: 272 + keen::ds::UiLocaTagReference watermarkLabel; // Offset: 288 + keen::ds::UiLocaTagReference watermarkBetaLabel; // Offset: 304 + keen::ds::UiLocaTagReference watermarkSecondLine; // Offset: 320 + keen::ds::UiLocaTagReference watermarkF1Hint; // Offset: 336 + keen::ds::UiLocaTagReference hours; // Offset: 352 + keen::ds::UiLocaTagReference minutes; // Offset: 368 + keen::ds::UiLocaTagReference gamePaused; // Offset: 384 +}; + +struct FbUiLocaMenuBindingsReset { + keen::ds::UiLocaTagReference resetHeader; // Offset: 0 + keen::ds::UiLocaTagReference resetDescription; // Offset: 16 + keen::ds::UiLocaTagReference presetChangeHeader; // Offset: 32 + keen::ds::UiLocaTagReference presetChangeDescription; // Offset: 48 + keen::ds::UiLocaTagReference presetChangeConfirmButton; // Offset: 64 +}; + +struct FbUiLongDocParagraph { + keen::ds::UiLocaTagReference locaTag; // Offset: 0 + keen::ds::UiLocaTagReference hyperLink; // Offset: 16 +}; + +struct FbUiLocaTagDifficultySettings { + keen::ds::UiLocaTagReference presetDefault; // Offset: 0 + keen::ds::UiLocaTagReference presetDefaultDesc; // Offset: 16 + keen::ds::UiLocaTagReference presetSurvivalist; // Offset: 32 + keen::ds::UiLocaTagReference presetSurvivalistDesc; // Offset: 48 + keen::ds::UiLocaTagReference presetBuilders; // Offset: 64 + keen::ds::UiLocaTagReference presetBuildersDesc; // Offset: 80 + keen::ds::UiLocaTagReference presetCombatChallenge; // Offset: 96 + keen::ds::UiLocaTagReference presetCombatChallengeDesc; // Offset: 112 + keen::ds::UiLocaTagReference presetCustom; // Offset: 128 + keen::ds::UiLocaTagReference presetCustomDesc; // Offset: 144 + keen::ds::UiLocaTagReference enemySettingsHeader; // Offset: 160 + keen::ds::UiLocaTagReference enemyDamage; // Offset: 176 + keen::ds::UiLocaTagReference enemyDamageDesc; // Offset: 192 + keen::ds::UiLocaTagReference enemyHealth; // Offset: 208 + keen::ds::UiLocaTagReference enemyHealthDesc; // Offset: 224 + keen::ds::UiLocaTagReference enemyStamina; // Offset: 240 + keen::ds::UiLocaTagReference enemyStaminaDesc; // Offset: 256 + keen::ds::UiLocaTagReference enemyPerceptionRange; // Offset: 272 + keen::ds::UiLocaTagReference enemyPerceptionRangeDesc; // Offset: 288 + keen::ds::UiLocaTagReference enemyAttackSimultaneous; // Offset: 304 + keen::ds::UiLocaTagReference enemyAttackSimultaneousDesc; // Offset: 320 + keen::ds::UiLocaTagReference enemyAttackFrequency; // Offset: 336 + keen::ds::UiLocaTagReference enemyAttackFrequencyDesc; // Offset: 352 + keen::ds::UiLocaTagReference pacifyEnemies; // Offset: 368 + keen::ds::UiLocaTagReference pacifyEnemiesDesc; // Offset: 384 + keen::ds::UiLocaTagReference enemySpawnerAmount; // Offset: 400 + keen::ds::UiLocaTagReference enemySpawnerAmountDesc; // Offset: 416 + keen::ds::UiLocaTagReference enemySpawnerAmountFew; // Offset: 432 + keen::ds::UiLocaTagReference enemySpawnerAmountNormal; // Offset: 448 + keen::ds::UiLocaTagReference enemySpawnerAmountMore; // Offset: 464 + keen::ds::UiLocaTagReference enemySpawnerAmountMany; // Offset: 480 + keen::ds::UiLocaTagReference bossHealth; // Offset: 496 + keen::ds::UiLocaTagReference bossHealthDesc; // Offset: 512 + keen::ds::UiLocaTagReference bossDamage; // Offset: 528 + keen::ds::UiLocaTagReference bossDamageDesc; // Offset: 544 + keen::ds::UiLocaTagReference playerHealth; // Offset: 560 + keen::ds::UiLocaTagReference playerHealthDesc; // Offset: 576 + keen::ds::UiLocaTagReference playerMana; // Offset: 592 + keen::ds::UiLocaTagReference playerManaDesc; // Offset: 608 + keen::ds::UiLocaTagReference playerStamina; // Offset: 624 + keen::ds::UiLocaTagReference playerStaminaDesc; // Offset: 640 + keen::ds::UiLocaTagReference otherSettingsHeader; // Offset: 656 + keen::ds::UiLocaTagReference xpGainMining; // Offset: 672 + keen::ds::UiLocaTagReference xpGainMiningDesc; // Offset: 688 + keen::ds::UiLocaTagReference xpGainQuests; // Offset: 704 + keen::ds::UiLocaTagReference xpGainQuestsDesc; // Offset: 720 + keen::ds::UiLocaTagReference xpGainCombat; // Offset: 736 + keen::ds::UiLocaTagReference xpGainCombatDesc; // Offset: 752 + keen::ds::UiLocaTagReference shroudTime; // Offset: 768 + keen::ds::UiLocaTagReference shroudTimeDesc; // Offset: 784 + keen::ds::UiLocaTagReference productionSpeed; // Offset: 800 + keen::ds::UiLocaTagReference productionSpeedDesc; // Offset: 816 + keen::ds::UiLocaTagReference plantGrowSpeed; // Offset: 832 + keen::ds::UiLocaTagReference plantGrowSpeedDesc; // Offset: 848 + keen::ds::UiLocaTagReference weaponUpgradeCosts; // Offset: 864 + keen::ds::UiLocaTagReference weaponUpgradeCostsDesc; // Offset: 880 + keen::ds::UiLocaTagReference perkUpgradeRecyclingFactor; // Offset: 896 + keen::ds::UiLocaTagReference perkUpgradeRecyclingFactorDesc; // Offset: 912 + keen::ds::UiLocaTagReference backpackDeathBehaviour; // Offset: 928 + keen::ds::UiLocaTagReference backpackDeathBehaviourDesc; // Offset: 944 + keen::ds::UiLocaTagReference backpackDeathBehaviourKeepAll; // Offset: 960 + keen::ds::UiLocaTagReference backpackDeathBehaviourDefault; // Offset: 976 + keen::ds::UiLocaTagReference backpackDeathBehaviourLoseAll; // Offset: 992 + keen::ds::UiLocaTagReference durabilityEnabled; // Offset: 1008 + keen::ds::UiLocaTagReference durabilityEnabledDesc; // Offset: 1024 + keen::ds::UiLocaTagReference durabilityScaling; // Offset: 1040 + keen::ds::UiLocaTagReference durabilityScalingDesc; // Offset: 1056 + keen::ds::UiLocaTagReference worldRefreshTime; // Offset: 1072 + keen::ds::UiLocaTagReference worldRefreshTimeDesc; // Offset: 1088 + keen::ds::UiLocaTagReference dayDuration; // Offset: 1104 + keen::ds::UiLocaTagReference dayDurationDesc; // Offset: 1120 + keen::ds::UiLocaTagReference nightDuration; // Offset: 1136 + keen::ds::UiLocaTagReference nightDurationDesc; // Offset: 1152 + keen::ds::UiLocaTagReference foodDuration; // Offset: 1168 + keen::ds::UiLocaTagReference foodDurationDesc; // Offset: 1184 + keen::ds::UiLocaTagReference foodSurvival; // Offset: 1200 + keen::ds::UiLocaTagReference foodSurvivalDesc; // Offset: 1216 + keen::ds::UiLocaTagReference starvingTime; // Offset: 1232 + keen::ds::UiLocaTagReference starvingTimeDesc; // Offset: 1248 + keen::ds::UiLocaTagReference weatherFrequency; // Offset: 1264 + keen::ds::UiLocaTagReference weatherFrequencyDesc; // Offset: 1280 + keen::ds::UiLocaTagReference enableGliderTurbulences; // Offset: 1296 + keen::ds::UiLocaTagReference enableGliderTurbulencesDesc; // Offset: 1312 + keen::ds::UiLocaTagReference tamingStartleRepercussion; // Offset: 1328 + keen::ds::UiLocaTagReference tamingStartleRepercussionDesc; // Offset: 1344 + keen::ds::UiLocaTagReference bodyHeat; // Offset: 1360 + keen::ds::UiLocaTagReference bodyHeatDesc; // Offset: 1376 + keen::ds::UiLocaTagReference miningDamage; // Offset: 1392 + keen::ds::UiLocaTagReference miningDamageDesc; // Offset: 1408 + keen::ds::UiLocaTagReference lootAmount; // Offset: 1424 + keen::ds::UiLocaTagReference lootAmountDesc; // Offset: 1440 + keen::ds::UiLocaTagReference resourcesHeader; // Offset: 1456 + keen::ds::UiLocaTagReference xpModsHeader; // Offset: 1472 + keen::ds::UiLocaTagReference survivalHeader; // Offset: 1488 + keen::ds::UiLocaTagReference playerHeader; // Offset: 1504 + keen::ds::UiLocaTagReference selectedLabel; // Offset: 1520 +}; + +struct FbUiLocaMenuSettings { + keen::ds::UiLocaTagReference tabGame; // Offset: 0 + keen::ds::UiLocaTagReference tabDisplay; // Offset: 16 + keen::ds::UiLocaTagReference tabSound; // Offset: 32 + keen::ds::UiLocaTagReference tabAccessibility; // Offset: 48 + keen::ds::UiLocaTagReference tabControls; // Offset: 64 + keen::ds::UiLocaTagReference tabLegal; // Offset: 80 + keen::DsArray privacyPolicyParagraphs; // Offset: 96 + keen::ds::UiLocaTagReference settingAuto; // Offset: 136 + keen::ds::UiLocaTagReference settingOff; // Offset: 152 + keen::ds::UiLocaTagReference settingOn; // Offset: 168 + keen::ds::UiLocaTagReference settingBoost; // Offset: 184 + keen::ds::UiLocaTagReference settingLowest; // Offset: 200 + keen::ds::UiLocaTagReference settingLow; // Offset: 216 + keen::ds::UiLocaTagReference settingMedium; // Offset: 232 + keen::ds::UiLocaTagReference settingHigh; // Offset: 248 + keen::ds::UiLocaTagReference settingUltra; // Offset: 264 + keen::ds::UiLocaTagReference settingPerformance; // Offset: 280 + keen::ds::UiLocaTagReference settingBalance; // Offset: 296 + keen::ds::UiLocaTagReference settingQuality; // Offset: 312 + keen::ds::UiLocaTagReference settingUltraQuality; // Offset: 328 + keen::ds::UiLocaTagReference settingUltraPerformance; // Offset: 344 + keen::ds::UiLocaTagReference settingNative; // Offset: 360 + keen::ds::UiLocaTagReference settingRare; // Offset: 376 + keen::ds::UiLocaTagReference settingNormal; // Offset: 392 + keen::ds::UiLocaTagReference settingOften; // Offset: 408 + keen::ds::UiLocaTagReference settingKeepProgress; // Offset: 424 + keen::ds::UiLocaTagReference settingLoseSomeProgress; // Offset: 440 + keen::ds::UiLocaTagReference settingLoseAllProgress; // Offset: 456 + keen::ds::UiLocaTagReference difficultyLabel; // Offset: 472 + keen::ds::UiLocaTagReference difficultyEasy; // Offset: 488 + keen::ds::UiLocaTagReference difficultyDefault; // Offset: 504 + keen::ds::UiLocaTagReference difficultyHard; // Offset: 520 + keen::ds::UiLocaTagReference difficultyVeryHard; // Offset: 536 + keen::ds::UiLocaTagReference difficultyCustom; // Offset: 552 + keen::ds::UiLocaTagReference controlsSectionKeyboardMouse; // Offset: 568 + keen::ds::UiLocaTagReference controlsSectionGamepad; // Offset: 584 + keen::ds::UiLocaTagReference mouseCameraSmoothing; // Offset: 600 + keen::ds::UiLocaTagReference cameraSensitivity; // Offset: 616 + keen::ds::UiLocaTagReference aimingSensitivity; // Offset: 632 + keen::ds::UiLocaTagReference cameraInversion; // Offset: 648 + keen::ds::UiLocaTagReference cameraInversionValueNone; // Offset: 664 + keen::ds::UiLocaTagReference cameraInversionValueX; // Offset: 680 + keen::ds::UiLocaTagReference cameraInversionValueY; // Offset: 696 + keen::ds::UiLocaTagReference cameraInversionValueXY; // Offset: 712 + keen::ds::UiLocaTagReference actionDirection; // Offset: 728 + keen::ds::UiLocaTagReference actionDirectionDesc; // Offset: 744 + keen::ds::UiLocaTagReference cameraDirection; // Offset: 760 + keen::ds::UiLocaTagReference characterDirection; // Offset: 776 + keen::ds::UiLocaTagReference controlsKeyboardMouseBindingsButton; // Offset: 792 + keen::ds::UiLocaTagReference controlsGamepadBindingsButton; // Offset: 808 + keen::ds::UiLocaTagReference controlScheme; // Offset: 824 + keen::ds::UiLocaTagReference controlSchemePresetA; // Offset: 840 + keen::ds::UiLocaTagReference controlSchemePresetB; // Offset: 856 + keen::ds::UiLocaTagReference controlSchemeCustom; // Offset: 872 + keen::ds::UiLocaTagReference controlSchemeEdit; // Offset: 888 + keen::ds::UiLocaTagReference controlSchemeCreate; // Offset: 904 + keen::ds::UiLocaTagReference controlSchemeCreateDescription; // Offset: 920 + keen::ds::UiLocaTagReference controlSchemeResetButton; // Offset: 936 + keen::ds::FbUiLocaMenuBindingsReset controlSchemeResetDialog; // Offset: 952 + keen::ds::UiLocaTagReference bindingEntryChange; // Offset: 1032 + keen::ds::UiLocaTagReference bindingEntryUndo; // Offset: 1048 + keen::ds::UiLocaTagReference bindingEntryReset; // Offset: 1064 + keen::ds::UiLocaTagReference bindingEntryDelete; // Offset: 1080 + keen::ds::UiLocaTagReference bindingEntryCustomize; // Offset: 1096 + keen::ds::UiLocaTagReference bindingEntryRemapPrompt; // Offset: 1112 + keen::ds::UiLocaTagReference warningHeader; // Offset: 1128 + keen::ds::UiLocaTagReference warningCriticalDescription; // Offset: 1144 + keen::ds::UiLocaTagReference warningRecommendedDescription; // Offset: 1160 + keen::ds::UiLocaTagReference warningContinueEdit; // Offset: 1176 + keen::ds::UiLocaTagReference warningUsePreset; // Offset: 1192 + keen::ds::UiLocaTagReference warningUseIncompleteBindings; // Offset: 1208 + keen::ds::UiLocaTagReference bindingCategoryMovements; // Offset: 1224 + keen::ds::UiLocaTagReference bindingCategoryBasicActions; // Offset: 1240 + keen::ds::UiLocaTagReference bindingCategoryCamera; // Offset: 1256 + keen::ds::UiLocaTagReference bindingCategoryActionBar; // Offset: 1272 + keen::ds::UiLocaTagReference bindingCategoryCombat; // Offset: 1288 + keen::ds::UiLocaTagReference bindingCategoryShortcuts; // Offset: 1304 + keen::ds::UiLocaTagReference bindingCategoryBuildings; // Offset: 1320 + keen::ds::UiLocaTagReference bindingCategoryUserInterface; // Offset: 1336 + keen::ds::UiLocaTagReference invalidBindingInput; // Offset: 1352 + keen::ds::UiLocaTagReference useAnalogStickHint; // Offset: 1368 + keen::ds::UiLocaTagReference searchKey; // Offset: 1384 + keen::ds::UiLocaTagReference pressKey; // Offset: 1400 + keen::ds::UiLocaTagReference inputKeyToSearch; // Offset: 1416 + keen::ds::UiLocaTagReference clearSearch; // Offset: 1432 + keen::ds::UiLocaTagReference volumeMaster; // Offset: 1448 + keen::ds::UiLocaTagReference volumeMusic; // Offset: 1464 + keen::ds::UiLocaTagReference volumeUi; // Offset: 1480 + keen::ds::UiLocaTagReference volumeGame; // Offset: 1496 + keen::ds::UiLocaTagReference volumeVoices; // Offset: 1512 + keen::ds::UiLocaTagReference audioReverb; // Offset: 1528 + keen::ds::UiLocaTagReference muteInBackground; // Offset: 1544 + keen::ds::UiLocaTagReference monitor; // Offset: 1560 + keen::ds::UiLocaTagReference displayMode; // Offset: 1576 + keen::ds::UiLocaTagReference windowed; // Offset: 1592 + keen::ds::UiLocaTagReference fullscreen; // Offset: 1608 + keen::ds::UiLocaTagReference resolution; // Offset: 1624 + keen::ds::UiLocaTagReference renderScale; // Offset: 1640 + keen::ds::UiLocaTagReference vsync; // Offset: 1656 + keen::ds::UiLocaTagReference sleepInBackground; // Offset: 1672 + keen::ds::UiLocaTagReference pointLightShadows; // Offset: 1688 + keen::ds::UiLocaTagReference fov; // Offset: 1704 + keen::ds::UiLocaTagReference brightness; // Offset: 1720 + keen::ds::UiLocaTagReference gamma; // Offset: 1736 + keen::ds::UiLocaTagReference contrast; // Offset: 1752 + keen::ds::UiLocaTagReference sharpness; // Offset: 1768 + keen::ds::UiLocaTagReference quality; // Offset: 1784 + keen::ds::UiLocaTagReference qualityPreset; // Offset: 1800 + keen::ds::UiLocaTagReference custom; // Offset: 1816 + keen::ds::UiLocaTagReference antialiasing; // Offset: 1832 + keen::ds::UiLocaTagReference shadowQuality; // Offset: 1848 + keen::ds::UiLocaTagReference contactShadows; // Offset: 1864 + keen::ds::UiLocaTagReference fsr2Quality; // Offset: 1880 + keen::ds::UiLocaTagReference fsr3Quality; // Offset: 1896 + keen::ds::UiLocaTagReference dlssQuality; // Offset: 1912 + keen::ds::UiLocaTagReference nvReflexQuality; // Offset: 1928 + keen::ds::UiLocaTagReference reflections; // Offset: 1944 + keen::ds::UiLocaTagReference fogQuality; // Offset: 1960 + keen::ds::UiLocaTagReference volumetricShadowQuality; // Offset: 1976 + keen::ds::UiLocaTagReference textureResolution; // Offset: 1992 + keen::ds::UiLocaTagReference textureFiltering; // Offset: 2008 + keen::ds::UiLocaTagReference ssao; // Offset: 2024 + keen::ds::UiLocaTagReference distantObjects; // Offset: 2040 + keen::ds::UiLocaTagReference decoObjects; // Offset: 2056 + keen::ds::UiLocaTagReference detailScattering; // Offset: 2072 + keen::ds::UiLocaTagReference voxelMeshing; // Offset: 2088 + keen::ds::UiLocaTagReference tessellation; // Offset: 2104 + keen::ds::UiLocaTagReference indirectLighting; // Offset: 2120 + keen::ds::UiLocaTagReference antialiasingFxaa; // Offset: 2136 + keen::ds::UiLocaTagReference antialiasingFsr2; // Offset: 2152 + keen::ds::UiLocaTagReference antialiasingFsr3; // Offset: 2168 + keen::ds::UiLocaTagReference antialiasingDlss; // Offset: 2184 + keen::ds::UiLocaTagReference antialiasingDlaa; // Offset: 2200 + keen::ds::UiLocaTagReference language; // Offset: 2216 + keen::ds::UiLocaTagReference resolutionValue; // Offset: 2232 + keen::ds::UiLocaTagReference nativeResolutionValue; // Offset: 2248 + keen::ds::UiLocaTagReference vsyncIntervalValue; // Offset: 2264 + keen::ds::UiLocaTagReference renderScaleDescription; // Offset: 2280 + keen::ds::UiLocaTagReference antialiasingDescription; // Offset: 2296 + keen::ds::UiLocaTagReference fsr2Description; // Offset: 2312 + keen::ds::UiLocaTagReference fsr3Description; // Offset: 2328 + keen::ds::UiLocaTagReference dlssDescription; // Offset: 2344 + keen::ds::UiLocaTagReference nvReflexDescription; // Offset: 2360 + keen::ds::UiLocaTagReference shadowsDescription; // Offset: 2376 + keen::ds::UiLocaTagReference contactShadowsDescription; // Offset: 2392 + keen::ds::UiLocaTagReference reflectionsDescription; // Offset: 2408 + keen::ds::UiLocaTagReference fogQualityDescription; // Offset: 2424 + keen::ds::UiLocaTagReference volShadowDescription; // Offset: 2440 + keen::ds::UiLocaTagReference ssaoDescription; // Offset: 2456 + keen::ds::UiLocaTagReference indirectLightingDescription; // Offset: 2472 + keen::ds::UiLocaTagReference useCharacterNameDescription; // Offset: 2488 + keen::ds::UiLocaTagReference gameplaySectionCamera; // Offset: 2504 + keen::ds::UiLocaTagReference gameplaySectionCombat; // Offset: 2520 + keen::ds::UiLocaTagReference gameplaySectionUI; // Offset: 2536 + keen::ds::UiLocaTagReference cameraDistance; // Offset: 2552 + keen::ds::UiLocaTagReference idleCameraMovement; // Offset: 2568 + keen::ds::UiLocaTagReference idleCameraMovementDescription; // Offset: 2584 + keen::ds::UiLocaTagReference reduceDynamicCameraMovement; // Offset: 2600 + keen::ds::UiLocaTagReference reduceDynamicCameraMovementDescription; // Offset: 2616 + keen::ds::UiLocaTagReference dynamicCameraGlider; // Offset: 2632 + keen::ds::UiLocaTagReference dynamicCameraCombat; // Offset: 2648 + keen::ds::UiLocaTagReference dynamicCameraGrapplingHook; // Offset: 2664 + keen::ds::UiLocaTagReference dynamicCameraCampfire; // Offset: 2680 + keen::ds::UiLocaTagReference screenShake; // Offset: 2696 + keen::ds::UiLocaTagReference screenShakeStrength; // Offset: 2712 + keen::ds::UiLocaTagReference displayDamageNumbers; // Offset: 2728 + keen::ds::UiLocaTagReference displayDamagePropertyTexts; // Offset: 2744 + keen::ds::UiLocaTagReference keepTargetLockWhenSprinting; // Offset: 2760 + keen::ds::UiLocaTagReference autoChangeTargetLockOnKill; // Offset: 2776 + keen::ds::UiLocaTagReference textScale; // Offset: 2792 + keen::ds::UiLocaTagReference hudAspectRatioLimit; // Offset: 2808 + keen::ds::UiLocaTagReference hudAspectRatioLimitNone; // Offset: 2824 + keen::ds::UiLocaTagReference hideHUD; // Offset: 2840 + keen::ds::UiLocaTagReference showHUD; // Offset: 2856 + keen::ds::UiLocaTagReference hideHelmet; // Offset: 2872 + keen::ds::UiLocaTagReference hideGloves; // Offset: 2888 + keen::ds::UiLocaTagReference showRarityIcons; // Offset: 2904 + keen::ds::UiLocaTagReference useCharacterName; // Offset: 2920 + keen::ds::UiLocaTagReference confirmDeletionByRarity; // Offset: 2936 + keen::ds::UiLocaTagReference confirmDeletionByRarityDescription; // Offset: 2952 + keen::ds::UiLocaTagReference rarityAndAbove; // Offset: 2968 + keen::ds::UiLocaTagReference hideSmallSpiders; // Offset: 2984 + keen::ds::UiLocaTagReference controllerButtonStyle; // Offset: 3000 + keen::ds::UiLocaTagReference controllerDiagramPageGeneral; // Offset: 3016 + keen::ds::UiLocaTagReference controllerDiagramPageBuilding; // Offset: 3032 + keen::ds::FbUiLocaTagDifficultySettings difficulty; // Offset: 3048 +}; + +struct FbUiUserPermissions { + keen::ds::UiLocaTagReference kickBanPermissionDesc; // Offset: 0 + keen::ds::UiLocaTagReference accessInventoriesPermissionDesc; // Offset: 16 + keen::ds::UiLocaTagReference editBasePermissionDesc; // Offset: 32 + keen::ds::UiLocaTagReference extendBasePermissionDesc; // Offset: 48 +}; + +struct FbUiLocaMenuJournal { + keen::ds::UiLocaTagReference emptyMenuHintShort; // Offset: 0 + keen::ds::UiLocaTagReference emptyMenuHintLong; // Offset: 16 +}; + +struct FbUiLocaMenus { + keen::ds::FbUiLocaMenuPregame pregame; // Offset: 0 + keen::ds::FbUiLocaMenuSystem system; // Offset: 2288 + keen::ds::FbUiLocaMenuSettings settings; // Offset: 2688 + keen::ds::FbUiUserPermissions userPermissions; // Offset: 7272 + keen::ds::FbUiLocaMenuFlameAltar flameAltar; // Offset: 7336 + keen::ds::FbUiLocaMenuJournal journal; // Offset: 7976 + keen::ds::UiLocaTagReference menuHeaderFallbackCollection; // Offset: 8008 + keen::ds::UiLocaTagReference menuHeaderFallbackFoodStorage; // Offset: 8024 + keen::ds::UiLocaTagReference menuHeaderSkillTree; // Offset: 8040 + keen::ds::UiLocaTagReference menuHeaderCharacterCustomization; // Offset: 8056 + keen::ds::UiLocaTagReference menuHeaderCharacterCreation; // Offset: 8072 + keen::ds::UiLocaTagReference menuHeaderStorageChest; // Offset: 8088 + keen::ds::UiLocaTagReference menuHeaderLootEntity; // Offset: 8104 + keen::ds::UiLocaTagReference menuHeaderSystem; // Offset: 8120 + keen::ds::UiLocaTagReference bpMenuGettingReady; // Offset: 8136 + keen::ds::UiLocaTagReference bpMenuSectionActiveBlueprint; // Offset: 8152 + keen::ds::UiLocaTagReference bpMenuSectionAvailableBlueprints; // Offset: 8168 + keen::ds::UiLocaTagReference bpMenuSectionMaterials; // Offset: 8184 + keen::ds::UiLocaTagReference bpMenuShapeBarExpansionHint; // Offset: 8200 + keen::ds::UiLocaTagReference bpMenuSubCategorySingleBlock; // Offset: 8216 + keen::ds::UiLocaTagReference bpMenuSubCategoryNonRoof; // Offset: 8232 + keen::ds::UiLocaTagReference bpMenuSubCategoryNonRoof_4m; // Offset: 8248 + keen::ds::UiLocaTagReference bpMenuSubCategoryRoof; // Offset: 8264 + keen::ds::UiLocaTagReference bpMenuSubCategoryRoof_4m; // Offset: 8280 + keen::ds::UiLocaTagReference bpMenuSubCategoryTerrain; // Offset: 8296 + keen::ds::UiLocaTagReference terraformerMenuSectionActiveTool; // Offset: 8312 + keen::ds::UiLocaTagReference terraformerMenuSectionAvailableTool; // Offset: 8328 + keen::ds::UiLocaTagReference npcSideMenuSectionActiveTool; // Offset: 8344 + keen::ds::UiLocaTagReference npcSideMenuSectionAvailableTool; // Offset: 8360 + keen::ds::UiLocaTagReference npcSideMenuNoAvailableNpcs; // Offset: 8376 + keen::ds::UiLocaTagReference npcSideMenuRoamingRange; // Offset: 8392 + keen::ds::UiLocaTagReference npcSideMenuRoamingRangeLabel; // Offset: 8408 + keen::ds::UiLocaTagReference dialogNoChatterHint; // Offset: 8424 + keen::ds::UiLocaTagReference repairNotAvailableHint; // Offset: 8440 + keen::ds::UiLocaTagReference craftingTabManual; // Offset: 8456 + keen::ds::UiLocaTagReference craftingTabRepair; // Offset: 8472 + keen::ds::UiLocaTagReference craftingTabRecycling; // Offset: 8488 + keen::ds::UiLocaTagReference craftingTabUpgrade; // Offset: 8504 + keen::ds::UiLocaTagReference playerEntryFallback; // Offset: 8520 + keen::ds::UiLocaTagReference itemPerksHeader; // Offset: 8536 + keen::ds::UiLocaTagReference itemPerksAttributeGeneric; // Offset: 8552 + keen::ds::UiLocaTagReference flame; // Offset: 8568 + keen::ds::UiLocaTagReference theFlame; // Offset: 8584 + keen::ds::UiLocaTagReference activeAltars; // Offset: 8600 + keen::ds::UiLocaTagReference mapNpcUnplacedHint; // Offset: 8616 + keen::ds::UiLocaTagReference attributeValueExplainShort; // Offset: 8632 + keen::ds::UiLocaTagReference attributeValueExplainLong; // Offset: 8648 + keen::ds::UiLocaTagReference resistanceAttributeBonusTooltip; // Offset: 8664 + keen::ds::UiLocaTagReference susceptibilityAttributeTooltip; // Offset: 8680 + keen::ds::UiLocaTagReference page; // Offset: 8696 + keen::ds::UiLocaTagReference pageNavigation; // Offset: 8712 + keen::ds::UiLocaTagReference pagesUnlocked; // Offset: 8728 + keen::ds::UiLocaTagReference rewards; // Offset: 8744 + keen::ds::UiLocaTagReference activeQuest; // Offset: 8760 + keen::ds::UiLocaTagReference fastTravelDisabled; // Offset: 8776 + keen::ds::UiLocaTagReference fastTravelDisabledFalling; // Offset: 8792 + keen::ds::UiLocaTagReference objective; // Offset: 8808 + keen::ds::UiLocaTagReference location; // Offset: 8824 + keen::ds::UiLocaTagReference completed; // Offset: 8840 + keen::ds::UiLocaTagReference documentItem; // Offset: 8856 + keen::ds::UiLocaTagReference loreCategoryUnsorted; // Offset: 8872 + keen::ds::UiLocaTagReference loreCategoryUndiscovered; // Offset: 8888 + keen::ds::UiLocaTagReference noUncompletedQuestsHint; // Offset: 8904 + keen::ds::UiLocaTagReference noCompletedQuestsHint; // Offset: 8920 + keen::ds::UiLocaTagReference customMapMarkerLabel; // Offset: 8936 + keen::ds::UiLocaTagReference tombstoneLabel; // Offset: 8952 + keen::ds::UiLocaTagReference missedWorldQuestsMapHint; // Offset: 8968 + keen::ds::UiLocaTagReference questCategoryActive; // Offset: 8984 + keen::ds::UiLocaTagReference questCategoryInactive; // Offset: 9000 + keen::ds::UiLocaTagReference nextQuestHintDocName; // Offset: 9016 + keen::ds::UiLocaTagReference nextQuestHintPageName; // Offset: 9032 + keen::ds::UiLocaTagReference nextQuestHintText; // Offset: 9048 + keen::ds::UiLocaTagReference kickPlayerPopupHeader; // Offset: 9064 + keen::ds::UiLocaTagReference kickPlayerPopupContent; // Offset: 9080 + keen::ds::UiLocaTagReference currentPlayerPermissionHeader; // Offset: 9096 + keen::ds::UiLocaTagReference nextQuestHintTheFlame; // Offset: 9112 + keen::ds::UiLocaTagReference songSelectionHeader; // Offset: 9128 + keen::ds::UiLocaTagReference showDetailedDiffucultySettings; // Offset: 9144 + keen::ds::UiLocaTagReference difficultySettingsReadOnlyExplanation; // Offset: 9160 + keen::ds::UiLocaTagReference difficultySettingsReadOnlyExplanationDedicatedServer; // Offset: 9176 + keen::ds::UiLocaTagReference twitchDropsHeader; // Offset: 9192 + keen::ds::UiLocaTagReference twitchDropsNoUnlocks; // Offset: 9208 + keen::ds::UiLocaTagReference npcStatusBed; // Offset: 9224 + keen::ds::UiLocaTagReference npcStatusFood; // Offset: 9240 + keen::ds::UiLocaTagReference collectionDisplayedHeader; // Offset: 9256 + keen::ds::UiLocaTagReference collectionAvailableItemsHeader; // Offset: 9272 + keen::ds::UiLocaTagReference collectionAvailableItemsSubHeader; // Offset: 9288 + keen::ds::UiLocaTagReference collectionNoAvailableItemsHint; // Offset: 9304 + keen::ds::UiLocaTagReference npcCraftingLabel; // Offset: 9320 + keen::ds::UiLocaTagReference npcAssistantLabel; // Offset: 9336 + keen::ds::UiLocaTagReference npcTownsfolkLabel; // Offset: 9352 + keen::ds::UiLocaTagReference basesInfoAnimalsHungry; // Offset: 9368 + keen::ds::UiLocaTagReference basesInfoAnimalsBeds; // Offset: 9384 + keen::ds::UiLocaTagReference basesInfoAnimalsBedsObstructed; // Offset: 9400 + keen::ds::UiLocaTagReference basesGenericLabel; // Offset: 9416 + keen::ds::UiLocaTagReference altarGenericLabel; // Offset: 9432 +}; + +struct FbUiLocaEquipmentMenu { + keen::ds::UiLocaTagReference mainHand; // Offset: 0 + keen::ds::UiLocaTagReference shield; // Offset: 16 + keen::ds::UiLocaTagReference rangedWeapon; // Offset: 32 + keen::ds::UiLocaTagReference arrow; // Offset: 48 + keen::ds::UiLocaTagReference spell; // Offset: 64 + keen::ds::UiLocaTagReference backpackExtender; // Offset: 80 + keen::ds::UiLocaTagReference climbTool; // Offset: 96 + keen::ds::UiLocaTagReference hookshot; // Offset: 112 + keen::ds::UiLocaTagReference glider; // Offset: 128 + keen::ds::UiLocaTagReference accessory0; // Offset: 144 + keen::ds::UiLocaTagReference accessory1; // Offset: 160 + keen::ds::UiLocaTagReference ring0; // Offset: 176 + keen::ds::UiLocaTagReference ring1; // Offset: 192 + keen::ds::UiLocaTagReference head; // Offset: 208 + keen::ds::UiLocaTagReference upperBody; // Offset: 224 + keen::ds::UiLocaTagReference arms; // Offset: 240 + keen::ds::UiLocaTagReference lowerBody; // Offset: 256 + keen::ds::UiLocaTagReference boots; // Offset: 272 + keen::ds::UiLocaTagReference attributes; // Offset: 288 + keen::ds::UiLocaTagReference status; // Offset: 304 + keen::ds::UiLocaTagReference attributeTileMainhandDamage; // Offset: 320 + keen::ds::UiLocaTagReference attributeTileRangedEquipmentDamage; // Offset: 336 + keen::ds::UiLocaTagReference attributeTileShieldDefense; // Offset: 352 + keen::ds::UiLocaTagReference attributeTileBackpackExtender; // Offset: 368 + keen::ds::UiLocaTagReference attributeTilePrompt; // Offset: 384 + keen::ds::UiLocaTagReference statusTilePrompt; // Offset: 400 + keen::ds::UiLocaTagReference attributeSectionMain; // Offset: 416 + keen::ds::UiLocaTagReference attributeSectionOffense; // Offset: 432 + keen::ds::UiLocaTagReference attributeSectionDefense; // Offset: 448 + keen::ds::UiLocaTagReference attributeBonusHint; // Offset: 464 + keen::ds::UiLocaTagReference attributeTooltipHint; // Offset: 480 + keen::ds::UiLocaTagReference statusNothingHintCondensed; // Offset: 496 + keen::ds::UiLocaTagReference statusNothingHint; // Offset: 512 + keen::ds::UiLocaTagReference statusSectionFood; // Offset: 528 + keen::ds::UiLocaTagReference statusSectionRest; // Offset: 544 + keen::ds::UiLocaTagReference statusFoodEmptyHint; // Offset: 560 + keen::ds::UiLocaTagReference statusRestConditionHeader; // Offset: 576 + keen::ds::UiLocaTagReference statusRestConditionSitOrShelter; // Offset: 592 + keen::ds::UiLocaTagReference statusRestComfortHeader; // Offset: 608 + keen::ds::UiLocaTagReference statusRestComfortLevel; // Offset: 624 + keen::ds::UiLocaTagReference statusRestComfortLevelNumbered; // Offset: 640 + keen::ds::UiLocaTagReference statusRestComfortCondition; // Offset: 656 + keen::ds::UiLocaTagReference statusBuffs; // Offset: 672 + keen::ds::UiLocaTagReference statusDebuffs; // Offset: 688 + keen::ds::UiLocaTagReference statusPlayerState; // Offset: 704 + keen::ds::UiLocaTagReference noDebuffActive; // Offset: 720 + keen::ds::UiLocaTagReference noBuffActive; // Offset: 736 + keen::ds::UiLocaTagReference noPlayerStateActive; // Offset: 752 + keen::ds::UiLocaTagReference equipped; // Offset: 768 + keen::ds::UiLocaTagReference available; // Offset: 784 + keen::ds::UiLocaTagReference slotContentNone; // Offset: 800 + keen::ds::UiLocaTagReference vanityModePrompt; // Offset: 816 + keen::ds::UiLocaTagReference vanityModeGearSection; // Offset: 832 + keen::ds::UiLocaTagReference vanityModeVisualSection; // Offset: 848 + keen::ds::UiLocaTagReference vanityModeHideSlotAction; // Offset: 864 + keen::ds::UiLocaTagReference equipmentUsedAsVanityHint; // Offset: 880 +}; + +struct FbUiLocaInventory { + keen::ds::UiLocaTagReference actionBar; // Offset: 0 + keen::ds::UiLocaTagReference actionBarCurrent; // Offset: 16 + keen::ds::UiLocaTagReference mainTabBackpack; // Offset: 32 + keen::ds::UiLocaTagReference mainTabEquipment; // Offset: 48 + keen::ds::UiLocaTagReference mainTabCrafting; // Offset: 64 + keen::ds::UiLocaTagReference mainTabJournal; // Offset: 80 + keen::ds::UiLocaTagReference mainTabMap; // Offset: 96 + keen::ds::UiLocaTagReference mainTabSkillTree; // Offset: 112 + keen::ds::UiLocaTagReference mainTabSettings; // Offset: 128 + keen::ds::UiLocaTagReference mainTabStore; // Offset: 144 + keen::ds::UiLocaTagReference giftingMenuTitle; // Offset: 160 + keen::ds::UiLocaTagReference giftingLimitationHint; // Offset: 176 + keen::ds::UiLocaTagReference giftingActionHeader; // Offset: 192 + keen::ds::UiLocaTagReference giftingAmountOne; // Offset: 208 + keen::ds::UiLocaTagReference giftingAmountHalf; // Offset: 224 + keen::ds::UiLocaTagReference giftingAmountAll; // Offset: 240 + keen::ds::UiLocaTagReference giftingAmountAdjust; // Offset: 256 + keen::ds::UiLocaTagReference giftingTargetStatusCanReceive; // Offset: 272 + keen::ds::UiLocaTagReference giftingTargetStatusDead; // Offset: 288 + keen::ds::UiLocaTagReference giftingTargetStatusOutOfRange; // Offset: 304 + keen::ds::UiLocaTagReference giftingTargetStatusBackpackFull; // Offset: 320 + keen::ds::UiLocaTagReference giftingTarget; // Offset: 336 + keen::ds::UiLocaTagReference giftingTargetMissingHint; // Offset: 352 + keen::ds::UiLocaTagReference giftingActionConfirm; // Offset: 368 + keen::ds::UiLocaTagReference giftingStackNew; // Offset: 384 + keen::ds::UiLocaTagReference giftingStackOriginal; // Offset: 400 + keen::ds::UiLocaTagReference giftedLootLogEntryHint; // Offset: 416 + keen::ds::UiLocaTagReference splitStackNew; // Offset: 432 + keen::ds::UiLocaTagReference splitStackOriginal; // Offset: 448 + keen::ds::UiLocaTagReference deletionConfirmMessage; // Offset: 464 + keen::ds::UiLocaTagReference deletionConfirmSuppression; // Offset: 480 + keen::ds::UiLocaTagReference deletionConfirmSettingHint; // Offset: 496 + keen::ds::UiLocaTagReference salvagingConfirmMessage; // Offset: 512 + keen::ds::UiLocaTagReference highlightIsCurrentItemHint; // Offset: 528 + keen::ds::UiLocaTagReference codexTileClues; // Offset: 544 + keen::ds::UiLocaTagReference codexTileLore; // Offset: 560 + keen::ds::UiLocaTagReference codexTilePinnedRecipe; // Offset: 576 + keen::ds::UiLocaTagReference codexTileRecipeBook; // Offset: 592 + keen::ds::UiLocaTagReference codexTileTutorials; // Offset: 608 + keen::ds::UiLocaTagReference codexPageNotDiscovered; // Offset: 624 + keen::ds::UiLocaTagReference journalCompletedSectionLabel; // Offset: 640 + keen::ds::UiLocaTagReference journalWorldQuestSectionLabel; // Offset: 656 + keen::ds::UiLocaTagReference journalMissedWorldQuestSectionLabel; // Offset: 672 + keen::ds::UiLocaTagReference journalPersonalQuestSectionLabel; // Offset: 688 + keen::ds::UiLocaTagReference journalCompletedSectionDesc; // Offset: 704 + keen::ds::UiLocaTagReference journalWorldQuestSectionDesc; // Offset: 720 + keen::ds::UiLocaTagReference journalMissedWorldQuestSectionDesc; // Offset: 736 + keen::ds::UiLocaTagReference journalPersonalQuestSectionDesc; // Offset: 752 + keen::ds::UiLocaTagReference codexTileMotherflame; // Offset: 768 + keen::ds::UiLocaTagReference codexTileNpcs; // Offset: 784 + keen::ds::UiLocaTagReference codexTileSurvivors; // Offset: 800 + keen::ds::UiLocaTagReference codexTileTownfolk; // Offset: 816 + keen::ds::UiLocaTagReference codexTileBases; // Offset: 832 + keen::ds::UiLocaTagReference codexTileGroupPersonal; // Offset: 848 + keen::ds::UiLocaTagReference codexTileGroupWorld; // Offset: 864 + keen::ds::UiLocaTagReference freeWaypointLabel; // Offset: 880 + keen::ds::UiLocaTagReference mapNodeIsWaypointHint; // Offset: 896 + keen::ds::UiLocaTagReference noItemSelectedHint; // Offset: 912 + keen::ds::UiLocaTagReference noSlotInBackpackHint; // Offset: 928 + keen::ds::UiLocaTagReference skillpointLabelAvailable; // Offset: 944 + keen::ds::UiLocaTagReference skillpointLabelInUse; // Offset: 960 + keen::ds::UiLocaTagReference skillpointLabelRefund; // Offset: 976 + keen::ds::UiLocaTagReference skilltreeNodeUnlocked; // Offset: 992 + keen::ds::UiLocaTagReference skilltreeNodeOutOfRange; // Offset: 1008 + keen::ds::UiLocaTagReference skilltreeNodeFutureContent; // Offset: 1024 + keen::ds::UiLocaTagReference skilltreeNodeActivated; // Offset: 1040 + keen::ds::UiLocaTagReference cookingHintRelease; // Offset: 1056 + keen::ds::UiLocaTagReference cookingHintHold; // Offset: 1072 + keen::ds::UiLocaTagReference sortStacksFromInventory; // Offset: 1088 + keen::ds::UiLocaTagReference sortStacksToInventory; // Offset: 1104 + keen::ds::UiLocaTagReference takeStacks; // Offset: 1120 + keen::ds::UiLocaTagReference depositStacks; // Offset: 1136 + keen::ds::UiLocaTagReference takeAll; // Offset: 1152 + keen::ds::UiLocaTagReference depositAll; // Offset: 1168 + keen::ds::UiLocaTagReference sortInventory; // Offset: 1184 + keen::ds::UiLocaTagReference sortStorage; // Offset: 1200 + keen::ds::UiLocaTagReference magicChestTab; // Offset: 1216 + keen::ds::UiLocaTagReference magicChestAddOne; // Offset: 1232 + keen::ds::UiLocaTagReference magicChestAddStack; // Offset: 1248 + keen::ds::UiLocaTagReference magicChestAddAll; // Offset: 1264 + keen::ds::UiLocaTagReference feedingStationStackAdditionMaxPossible; // Offset: 1280 + keen::ds::UiLocaTagReference factoryAddIngredientsOne; // Offset: 1296 + keen::ds::UiLocaTagReference factoryAddIngredientsMultiple; // Offset: 1312 + keen::ds::UiLocaTagReference itemNoTwitchPermission; // Offset: 1328 + keen::ds::UiLocaTagReference twitchItemLabel; // Offset: 1344 + keen::ds::FbUiLocaEquipmentMenu equipmentMenu; // Offset: 1360 +}; + +struct FbUiLocaBuildVerbs { + keen::ds::UiLocaTagReference genericAction; // Offset: 0 + keen::ds::UiLocaTagReference blockAction; // Offset: 16 + keen::ds::UiLocaTagReference blueprintAction; // Offset: 32 + keen::ds::UiLocaTagReference propAction; // Offset: 48 + keen::ds::UiLocaTagReference terraformAddAction; // Offset: 64 + keen::ds::UiLocaTagReference terraformFlattenAction; // Offset: 80 + keen::ds::UiLocaTagReference terraformRemoveAction; // Offset: 96 +}; + +struct FbUiLocaGameplayActionLabels { + keen::ds::UiLocaTagReference locomotionMoveLeft; // Offset: 0 + keen::ds::UiLocaTagReference locomotionMoveRight; // Offset: 16 + keen::ds::UiLocaTagReference locomotionMoveForward; // Offset: 32 + keen::ds::UiLocaTagReference locomotionMoveBackward; // Offset: 48 + keen::ds::UiLocaTagReference locomotionMove; // Offset: 64 + keen::ds::UiLocaTagReference cameraRotateLeft; // Offset: 80 + keen::ds::UiLocaTagReference cameraRotateRight; // Offset: 96 + keen::ds::UiLocaTagReference cameraRotateUp; // Offset: 112 + keen::ds::UiLocaTagReference cameraRotateDown; // Offset: 128 + keen::ds::UiLocaTagReference cameraRotate; // Offset: 144 + keen::ds::UiLocaTagReference cameraZoomIn; // Offset: 160 + keen::ds::UiLocaTagReference cameraZoomOut; // Offset: 176 + keen::ds::UiLocaTagReference mainHandAction; // Offset: 192 + keen::ds::UiLocaTagReference contextualAction; // Offset: 208 + keen::ds::UiLocaTagReference cancelAction; // Offset: 224 + keen::ds::UiLocaTagReference ammunitionSelectPrevious; // Offset: 240 + keen::ds::UiLocaTagReference ammunitionSelectNext; // Offset: 256 + keen::ds::UiLocaTagReference blueprintDistanceIncrease; // Offset: 272 + keen::ds::UiLocaTagReference blueprintDistanceDecrease; // Offset: 288 + keen::ds::UiLocaTagReference blueprintMaterialSelectPrevious; // Offset: 304 + keen::ds::UiLocaTagReference blueprintMaterialSelectNext; // Offset: 320 + keen::ds::UiLocaTagReference blueprintPageSelectPrevious; // Offset: 336 + keen::ds::UiLocaTagReference blueprintPageSelectNext; // Offset: 352 + keen::ds::UiLocaTagReference blueprintShapeSelectPrevious; // Offset: 368 + keen::ds::UiLocaTagReference blueprintShapeSelectNext; // Offset: 384 + keen::ds::UiLocaTagReference actionBarSlot1; // Offset: 400 + keen::ds::UiLocaTagReference actionBarSlot2; // Offset: 416 + keen::ds::UiLocaTagReference actionBarSlot3; // Offset: 432 + keen::ds::UiLocaTagReference actionBarSlot4; // Offset: 448 + keen::ds::UiLocaTagReference actionBarSlot5; // Offset: 464 + keen::ds::UiLocaTagReference actionBarSlot6; // Offset: 480 + keen::ds::UiLocaTagReference actionBarSlot7; // Offset: 496 + keen::ds::UiLocaTagReference actionBarSlot8; // Offset: 512 + keen::ds::UiLocaTagReference actionBarSlot9; // Offset: 528 + keen::ds::UiLocaTagReference actionBarSlot10; // Offset: 544 + keen::ds::UiLocaTagReference actionBarWheel; // Offset: 560 + keen::ds::UiLocaTagReference actionBarSwapPage; // Offset: 576 + keen::ds::UiLocaTagReference actionBarSwapPageVerbOnly; // Offset: 592 + keen::ds::UiLocaTagReference actionBarSlotPrevious; // Offset: 608 + keen::ds::UiLocaTagReference actionBarSlotNext; // Offset: 624 + keen::ds::UiLocaTagReference guardAndParry; // Offset: 640 + keen::ds::UiLocaTagReference guard; // Offset: 656 + keen::ds::UiLocaTagReference parry; // Offset: 672 + keen::ds::UiLocaTagReference locomotionSprint; // Offset: 688 + keen::ds::UiLocaTagReference locomotionEvade; // Offset: 704 + keen::ds::UiLocaTagReference locomotionJump; // Offset: 720 + keen::ds::UiLocaTagReference locomotionSneak; // Offset: 736 + keen::ds::UiLocaTagReference locomotionSit; // Offset: 752 + keen::ds::UiLocaTagReference locomotionGlide; // Offset: 768 + keen::ds::UiLocaTagReference locomotionHookshot; // Offset: 784 + keen::ds::UiLocaTagReference respawn; // Offset: 800 + keen::ds::UiLocaTagReference buildingUndo; // Offset: 816 + keen::ds::UiLocaTagReference buildingDismantle; // Offset: 832 + keen::ds::UiLocaTagReference buildingDismantlePickup; // Offset: 848 + keen::ds::UiLocaTagReference buildingDismantleNotPossible; // Offset: 864 + keen::ds::UiLocaTagReference animalPickupNotPossible; // Offset: 880 + keen::ds::UiLocaTagReference buildingSnapping; // Offset: 896 + keen::ds::UiLocaTagReference transformRotateClockwiseSmall; // Offset: 912 + keen::ds::UiLocaTagReference transformRotateClockwiseBig; // Offset: 928 + keen::ds::UiLocaTagReference transformRotateCounterClockwiseSmall; // Offset: 944 + keen::ds::UiLocaTagReference transformRotateCounterClockwiseBig; // Offset: 960 + keen::ds::UiLocaTagReference transformChangeAngleClockwise; // Offset: 976 + keen::ds::UiLocaTagReference transformChangeAngleCounterClockwise; // Offset: 992 + keen::ds::UiLocaTagReference combatTargetLock; // Offset: 1008 + keen::ds::UiLocaTagReference combatTargetLeft; // Offset: 1024 + keen::ds::UiLocaTagReference combatTargetRight; // Offset: 1040 + keen::ds::UiLocaTagReference rangedCombatReady; // Offset: 1056 + keen::ds::UiLocaTagReference rangedCombatShoot; // Offset: 1072 + keen::ds::UiLocaTagReference songSelectOpen; // Offset: 1088 + keen::ds::UiLocaTagReference songSelectPrevious; // Offset: 1104 + keen::ds::UiLocaTagReference songSelectNext; // Offset: 1120 + keen::ds::UiLocaTagReference systemMenuOpen; // Offset: 1136 + keen::ds::UiLocaTagReference playerMenuOpen; // Offset: 1152 + keen::ds::UiLocaTagReference playerMenuBackpack; // Offset: 1168 + keen::ds::UiLocaTagReference playerMenuEquipmentAndStats; // Offset: 1184 + keen::ds::UiLocaTagReference playerMenuWorld; // Offset: 1200 + keen::ds::UiLocaTagReference playerMenuJournal; // Offset: 1216 + keen::ds::UiLocaTagReference playerMenuCrafting; // Offset: 1232 + keen::ds::UiLocaTagReference playerMenuSkills; // Offset: 1248 + keen::ds::UiLocaTagReference goToCurrentNotificationTab; // Offset: 1264 + keen::ds::UiLocaTagReference hudMenuBlueprints; // Offset: 1280 + keen::ds::UiLocaTagReference inputModalityTap; // Offset: 1296 + keen::ds::UiLocaTagReference inputModalityHold; // Offset: 1312 + keen::ds::UiLocaTagReference inputModalityRelease; // Offset: 1328 + keen::ds::UiLocaTagReference inputModalityToggle; // Offset: 1344 + keen::ds::UiLocaTagReference assignBedHint; // Offset: 1360 + keen::ds::FbUiLocaBuildVerbs buildVerbs; // Offset: 1376 +}; + +struct FbUiLocaUiActionLabels { + keen::ds::UiLocaTagReference recipeUpgrade; // Offset: 0 + keen::ds::UiLocaTagReference repairItem; // Offset: 16 + keen::ds::UiLocaTagReference confirm; // Offset: 32 + keen::ds::UiLocaTagReference finish; // Offset: 48 + keen::ds::UiLocaTagReference cancel; // Offset: 64 + keen::ds::UiLocaTagReference back; // Offset: 80 + keen::ds::UiLocaTagReference openHint; // Offset: 96 + keen::ds::UiLocaTagReference close; // Offset: 112 + keen::ds::UiLocaTagReference leave; // Offset: 128 + keen::ds::UiLocaTagReference join; // Offset: 144 + keen::ds::UiLocaTagReference changeGeneric; // Offset: 160 + keen::ds::UiLocaTagReference secondaryAction; // Offset: 176 + keen::ds::UiLocaTagReference tertiaryAction; // Offset: 192 + keen::ds::UiLocaTagReference moveObject; // Offset: 208 + keen::ds::UiLocaTagReference changeTab; // Offset: 224 + keen::ds::UiLocaTagReference navigationMove; // Offset: 240 + keen::ds::UiLocaTagReference navigationScroll; // Offset: 256 + keen::ds::UiLocaTagReference previousPage; // Offset: 272 + keen::ds::UiLocaTagReference nextPage; // Offset: 288 + keen::ds::UiLocaTagReference mapZoom; // Offset: 304 + keen::ds::UiLocaTagReference mapFastTravel; // Offset: 320 + keen::ds::UiLocaTagReference mapSnapToWaypoint; // Offset: 336 + keen::ds::UiLocaTagReference mapSnapToPlayerPos; // Offset: 352 + keen::ds::UiLocaTagReference mapSnapToHomeBase; // Offset: 368 + keen::ds::UiLocaTagReference mapLocateGeneric; // Offset: 384 + keen::ds::UiLocaTagReference mapWorldSidebar; // Offset: 400 + keen::ds::UiLocaTagReference mapPlayersSidebar; // Offset: 416 + keen::ds::UiLocaTagReference mapFilterSidebar; // Offset: 432 + keen::ds::UiLocaTagReference mapFilterFocusType; // Offset: 448 + keen::ds::UiLocaTagReference clearMapFilter; // Offset: 464 + keen::ds::UiLocaTagReference mapGotoJournal; // Offset: 480 + keen::ds::UiLocaTagReference gotoReferencedJournalPage; // Offset: 496 + keen::ds::UiLocaTagReference gotoReferencedLorePage; // Offset: 512 + keen::ds::UiLocaTagReference gotoReferencedQuestPage; // Offset: 528 + keen::ds::UiLocaTagReference mapActions; // Offset: 544 + keen::ds::UiLocaTagReference mapSetWaypoint; // Offset: 560 + keen::ds::UiLocaTagReference mapSetAsWaypoint; // Offset: 576 + keen::ds::UiLocaTagReference mapRemoveWaypoint; // Offset: 592 + keen::ds::UiLocaTagReference mapSendPing; // Offset: 608 + keen::ds::UiLocaTagReference codexShowOnMap; // Offset: 624 + keen::ds::UiLocaTagReference placeNpcInWorld; // Offset: 640 + keen::ds::UiLocaTagReference itemViewerVisibilityToggle; // Offset: 656 + keen::ds::UiLocaTagReference backpackUseItem; // Offset: 672 + keen::ds::UiLocaTagReference backpackActions; // Offset: 688 + keen::ds::UiLocaTagReference backpackSplitStack; // Offset: 704 + keen::ds::UiLocaTagReference backpackDeleteItem; // Offset: 720 + keen::ds::UiLocaTagReference backpackSalvageItem; // Offset: 736 + keen::ds::UiLocaTagReference splitStackAdjustMin; // Offset: 752 + keen::ds::UiLocaTagReference splitStackAdjustDecrement; // Offset: 768 + keen::ds::UiLocaTagReference splitStackAdjustHalf; // Offset: 784 + keen::ds::UiLocaTagReference splitStackAdjustIncrement; // Offset: 800 + keen::ds::UiLocaTagReference splitStackAdjustMax; // Offset: 816 + keen::ds::UiLocaTagReference backpackGrabItemForMoving; // Offset: 832 + keen::ds::UiLocaTagReference backpackGrabItemForMovingPartial; // Offset: 848 + keen::ds::UiLocaTagReference backpackGrabItemForMovingHoldable; // Offset: 864 + keen::ds::UiLocaTagReference backpackDropItemIntoSlot; // Offset: 880 + keen::ds::UiLocaTagReference quickMoveItem; // Offset: 896 + keen::ds::UiLocaTagReference quickMoveItemActionbar; // Offset: 912 + keen::ds::UiLocaTagReference quickMoveItemStorage; // Offset: 928 + keen::ds::UiLocaTagReference quickMoveTargetFull; // Offset: 944 + keen::ds::UiLocaTagReference refillStacks; // Offset: 960 + keen::ds::UiLocaTagReference backpackEquip; // Offset: 976 + keen::ds::UiLocaTagReference backpackUnequip; // Offset: 992 + keen::ds::UiLocaTagReference backpackReplaceItem; // Offset: 1008 + keen::ds::UiLocaTagReference backpackGiftItem; // Offset: 1024 + keen::ds::UiLocaTagReference showTutorial; // Offset: 1040 + keen::ds::UiLocaTagReference changeBlueprint; // Offset: 1056 + keen::ds::UiLocaTagReference lootTakeSingle; // Offset: 1072 + keen::ds::UiLocaTagReference lootTakeAll; // Offset: 1088 + keen::ds::UiLocaTagReference craftActionSingle; // Offset: 1104 + keen::ds::UiLocaTagReference craftActionMultiple; // Offset: 1120 + keen::ds::UiLocaTagReference stopAutomatedCraftingNext; // Offset: 1136 + keen::ds::UiLocaTagReference changeAutomatedCraftingOuput; // Offset: 1152 + keen::ds::UiLocaTagReference recipePin; // Offset: 1168 + keen::ds::UiLocaTagReference recipeUnpin; // Offset: 1184 + keen::ds::UiLocaTagReference showItemViewerTextArea; // Offset: 1200 + keen::ds::UiLocaTagReference showItemViewerRecipeArea; // Offset: 1216 + keen::ds::UiLocaTagReference toggleItemViewerRecipeView; // Offset: 1232 + keen::ds::UiLocaTagReference activate; // Offset: 1248 + keen::ds::UiLocaTagReference unlock; // Offset: 1264 + keen::ds::UiLocaTagReference unlockNextPerk; // Offset: 1280 + keen::ds::UiLocaTagReference rename; // Offset: 1296 + keen::ds::UiLocaTagReference done; // Offset: 1312 + keen::ds::UiLocaTagReference refillToInventory; // Offset: 1328 + keen::ds::UiLocaTagReference refillFromInventory; // Offset: 1344 + keen::ds::UiLocaTagReference increase; // Offset: 1360 + keen::ds::UiLocaTagReference decrease; // Offset: 1376 + keen::ds::UiLocaTagReference clear; // Offset: 1392 + keen::ds::UiLocaTagReference selectSessionSettings; // Offset: 1408 + keen::ds::UiLocaTagReference selectSavegame; // Offset: 1424 + keen::ds::UiLocaTagReference selectServerFilter; // Offset: 1440 + keen::ds::UiLocaTagReference selectServer; // Offset: 1456 + keen::ds::UiLocaTagReference skip; // Offset: 1472 + keen::ds::UiLocaTagReference select; // Offset: 1488 + keen::ds::UiLocaTagReference next; // Offset: 1504 + keen::ds::UiLocaTagReference create; // Offset: 1520 + keen::ds::UiLocaTagReference continueAction; // Offset: 1536 + keen::ds::UiLocaTagReference setActiveQuest; // Offset: 1552 + keen::ds::UiLocaTagReference hidePassword; // Offset: 1568 + keen::ds::UiLocaTagReference toggleFavourite; // Offset: 1584 + keen::ds::UiLocaTagReference hideIPAddressInput; // Offset: 1600 + keen::ds::UiLocaTagReference createMarker; // Offset: 1616 + keen::ds::UiLocaTagReference removeMarker; // Offset: 1632 + keen::ds::UiLocaTagReference togglePersonalProgression; // Offset: 1648 + keen::ds::UiLocaTagReference activatePersonalProgression; // Offset: 1664 + keen::ds::UiLocaTagReference deactivatePersonalProgression; // Offset: 1680 + keen::ds::UiLocaTagReference search; // Offset: 1696 + keen::ds::UiLocaTagReference expandToggle; // Offset: 1712 + keen::ds::UiLocaTagReference toggleTooltip; // Offset: 1728 + keen::ds::UiLocaTagReference toggleVisibility; // Offset: 1744 + keen::ds::UiLocaTagReference change; // Offset: 1760 + keen::ds::UiLocaTagReference kickPlayer; // Offset: 1776 + keen::ds::UiLocaTagReference toggle; // Offset: 1792 + keen::ds::UiLocaTagReference renameAltar; // Offset: 1808 + keen::ds::UiLocaTagReference enable; // Offset: 1824 + keen::ds::UiLocaTagReference disable; // Offset: 1840 + keen::ds::UiLocaTagReference instrumentActionTuneIn; // Offset: 1856 + keen::ds::UiLocaTagReference confirmPassword; // Offset: 1872 + keen::ds::UiLocaTagReference resetToDefault; // Offset: 1888 + keen::ds::UiLocaTagReference claimTwitchItem; // Offset: 1904 + keen::ds::UiLocaTagReference swapArmor; // Offset: 1920 + keen::ds::UiLocaTagReference swapVanity; // Offset: 1936 + keen::ds::UiLocaTagReference equipCollection; // Offset: 1952 + keen::ds::UiLocaTagReference unequipCollection; // Offset: 1968 + keen::ds::UiLocaTagReference equipAsArmor; // Offset: 1984 + keen::ds::UiLocaTagReference equipAsVanity; // Offset: 2000 +}; + +struct FbUiLocaLinks { + keen::ds::UiLocaTagReference styleTest; // Offset: 0 + keen::ds::UiLocaTagReference invalidUiString; // Offset: 16 + keen::ds::UiLocaTagReference closedBetaHint; // Offset: 32 + keen::ds::UiLocaTagReference demoSettingsHint; // Offset: 48 + keen::ds::FbUiLocaRpgTerms rpgTerms; // Offset: 64 + keen::ds::FbUiLocaGeneric genericStrings; // Offset: 5600 + keen::ds::FbUiLocaPunctuations punctuations; // Offset: 5648 + keen::ds::FbUiLocaUiActionLabels uiActions; // Offset: 6336 + keen::ds::FbUiLocaGameplayActionLabels gameplayActions; // Offset: 8352 + keen::ds::FbUiLocaInput inputStrings; // Offset: 9840 + keen::ds::FbUiLocaHud hudStrings; // Offset: 10080 + keen::ds::FbUiLocaInventory inventory; // Offset: 12832 + keen::ds::FbUiLocaMenus menuStrings; // Offset: 15088 + keen::ds::FbUiLocaCrafting crafting; // Offset: 24536 + keen::ds::FbUiLocaItemEquipmentSlots itemEquipmentSlots; // Offset: 25576 +}; + +struct FbUiCharacterView { + keen::float3 lookAt; // Offset: 0 + keen::float32 distance; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 yaw; // Offset: 20 + keen::float32 fov; // Offset: 24 +}; + +typedef keen::FbUiGamepadButtonImageTagId FbUiGamepadButtonImageTagId; + +struct FbUiGamepadButtonSet { + keen::ds::UiTexture dpad; // Offset: 0 + keen::ds::UiTexture dpadLeft; // Offset: 48 + keen::ds::UiTexture dpadRight; // Offset: 96 + keen::ds::UiTexture dpadUp; // Offset: 144 + keen::ds::UiTexture dpadDown; // Offset: 192 + keen::ds::UiTexture dpadVertical; // Offset: 240 + keen::ds::UiTexture dpadHorizontal; // Offset: 288 + keen::ds::UiTexture leftStick; // Offset: 336 + keen::ds::UiTexture rightStick; // Offset: 384 + keen::ds::UiTexture leftStickPress; // Offset: 432 + keen::ds::UiTexture rightStickPress; // Offset: 480 + keen::ds::UiTexture leftStickUp; // Offset: 528 + keen::ds::UiTexture leftStickDown; // Offset: 576 + keen::ds::UiTexture leftStickLeft; // Offset: 624 + keen::ds::UiTexture leftStickRight; // Offset: 672 + keen::ds::UiTexture leftStickDirectionalHorizontal; // Offset: 720 + keen::ds::UiTexture leftStickDirectionalVertical; // Offset: 768 + keen::ds::UiTexture rightStickUp; // Offset: 816 + keen::ds::UiTexture rightStickDown; // Offset: 864 + keen::ds::UiTexture rightStickLeft; // Offset: 912 + keen::ds::UiTexture rightStickRight; // Offset: 960 + keen::ds::UiTexture rightStickDirectionalHorizontal; // Offset: 1008 + keen::ds::UiTexture rightStickDirectionalVertical; // Offset: 1056 + keen::ds::UiTexture faceTop; // Offset: 1104 + keen::ds::UiTexture faceBottom; // Offset: 1152 + keen::ds::UiTexture faceLeft; // Offset: 1200 + keen::ds::UiTexture faceRight; // Offset: 1248 + keen::ds::UiTexture shoulderLeftUpper; // Offset: 1296 + keen::ds::UiTexture shoulderLeftLower; // Offset: 1344 + keen::ds::UiTexture shoulderRightUpper; // Offset: 1392 + keen::ds::UiTexture shoulderRightLower; // Offset: 1440 + keen::ds::UiTexture systemLeft; // Offset: 1488 + keen::ds::UiTexture systemRight; // Offset: 1536 +}; + +struct FbUiGamepadButtonSets { + keen::ds::UiTexture controllerShape; // Offset: 0 + keen::ds::UiTexture genericController; // Offset: 48 + keen::ds::UiTexture controllerPlaystation; // Offset: 96 + keen::ds::UiTexture controllerNintendoSwitch; // Offset: 144 + keen::ds::UiTexture genericButtonsForms; // Offset: 192 + keen::ds::UiTexture genericButtonsXABY; // Offset: 240 + keen::ds::UiTexture genericButtonsYBAX; // Offset: 288 + keen::UiColor diagramKeyColor; // Offset: 336 + keen::ds::FbUiGamepadButtonSet xbox; // Offset: 344 + keen::ds::FbUiGamepadButtonSet playstation; // Offset: 1928 + keen::ds::FbUiGamepadButtonSet nintendoSwitch; // Offset: 3512 + keen::ds::UiTexture twoHeadedArrowHorizontal; // Offset: 5096 + keen::ds::UiTexture twoHeadedArrowVertical; // Offset: 5144 +}; + +struct UiNineSliceTexture { + keen::UiBorder border; // Offset: 48 +}; + +struct FbUiKeyboardKeys { + keen::ds::UiTexture standardKey; // Offset: 0 + keen::ds::UiNineSliceTexture nineSlicedKey; // Offset: 48 +}; + +struct FbUiKeyboardKeyLegends { + keen::ds::UiTexture up; // Offset: 0 + keen::ds::UiTexture down; // Offset: 48 + keen::ds::UiTexture left; // Offset: 96 + keen::ds::UiTexture right; // Offset: 144 +}; + +struct FbUiMouseHints { + keen::ds::UiTexture left; // Offset: 0 + keen::ds::UiTexture right; // Offset: 48 + keen::ds::UiTexture middle; // Offset: 96 + keen::ds::UiTexture button4; // Offset: 144 + keen::ds::UiTexture button5; // Offset: 192 + keen::ds::UiTexture wheel; // Offset: 240 + keen::ds::UiTexture wheelUp; // Offset: 288 + keen::ds::UiTexture wheelDown; // Offset: 336 + keen::ds::UiTexture directionalContext; // Offset: 384 + keen::ds::UiTexture move; // Offset: 432 + keen::ds::UiTexture moveUp; // Offset: 480 + keen::ds::UiTexture moveDown; // Offset: 528 + keen::ds::UiTexture moveLeft; // Offset: 576 + keen::ds::UiTexture moveRight; // Offset: 624 +}; + +struct FbUiGradients { + keen::ds::UiTexture whiteToBlackTest; // Offset: 0 + keen::ds::UiTexture alphaToRight; // Offset: 48 + keen::ds::UiTexture alphaToBottom; // Offset: 96 + keen::ds::UiTexture alphaToBottomRight; // Offset: 144 + keen::ds::UiTexture alphaToTopBottom; // Offset: 192 + keen::ds::UiTexture alphaToLeftRight; // Offset: 240 + keen::ds::UiNineSliceTexture alphaToLeftRightSliced; // Offset: 288 +}; + +struct FbUiPrimitives { + keen::ds::UiTexture circle; // Offset: 0 + keen::ds::UiTexture circleOutline; // Offset: 48 + keen::ds::UiTexture circleSoftGlow; // Offset: 96 + keen::ds::UiTexture ringSoftGlow; // Offset: 144 + keen::ds::UiTexture diamond; // Offset: 192 + keen::ds::UiTexture triangle; // Offset: 240 + keen::ds::UiTexture separatorLineHorizontal; // Offset: 288 + keen::ds::UiTexture separatorLineHorizontalLeftHeavy; // Offset: 336 + keen::ds::UiTexture separatorLineVertical; // Offset: 384 + keen::ds::FbUiGradients gradients; // Offset: 432 + keen::ds::UiNineSliceTexture boxInnerGlow; // Offset: 784 + keen::ds::UiNineSliceTexture glowBoxSmall; // Offset: 848 + keen::ds::UiNineSliceTexture glowBoxLarge; // Offset: 912 + keen::ds::UiNineSliceTexture roundedBoxSmall; // Offset: 976 + keen::ds::UiNineSliceTexture roundedBoxSmallOutline; // Offset: 1040 + keen::ds::UiNineSliceTexture roundedBoxSmallOutlineThin; // Offset: 1104 + keen::ds::UiNineSliceTexture roundedBoxOutlineBuildingZone; // Offset: 1168 +}; + +struct FbUiSocialLogos { + keen::ds::UiTexture steam; // Offset: 0 + keen::ds::UiTexture discord; // Offset: 48 + keen::ds::UiTexture qq; // Offset: 96 + keen::ds::UiTexture yooreka; // Offset: 144 + keen::ds::UiTexture twitchText; // Offset: 192 + keen::ds::UiTexture twitchIcon; // Offset: 240 +}; + +struct FbUiLoadingSymbol { + keen::float32 logoHeight; // Offset: 0 + keen::UiColor dotFadeColor; // Offset: 4 +}; + +struct FbUiStatusIcons { + keen::ds::UiTexture happy; // Offset: 0 + keen::ds::UiTexture sheltered; // Offset: 48 + keen::ds::UiTexture bed; // Offset: 96 + keen::ds::UiTexture food; // Offset: 144 + keen::ds::UiTexture warmth; // Offset: 192 + keen::ds::UiTexture location; // Offset: 240 + keen::ds::UiTexture bedStandlone; // Offset: 288 + keen::ds::UiTexture shelteredStandlone; // Offset: 336 + keen::ds::UiTexture fullfilledNpcNeeds; // Offset: 384 +}; + +struct FbUiGenericIcons { + keen::ds::UiTexture attention; // Offset: 0 + keen::ds::UiTexture checkmark; // Offset: 48 + keen::ds::UiTexture fulfilled; // Offset: 96 + keen::ds::UiTexture unfulfilled; // Offset: 144 + keen::ds::UiTexture missing; // Offset: 192 + keen::ds::UiTexture weight; // Offset: 240 + keen::ds::UiTexture pin; // Offset: 288 + keen::ds::UiTexture menuAttentionMarker; // Offset: 336 + keen::ds::UiTexture speechBubble; // Offset: 384 + keen::ds::UiTexture speechBubbleImportant; // Offset: 432 + keen::ds::UiTexture speechBubbleDotDotDot; // Offset: 480 + keen::ds::UiTexture hudMarkerFill; // Offset: 528 + keen::ds::UiTexture hudMarkerOutline; // Offset: 576 + keen::ds::UiTexture hudMarkerQuestionMark; // Offset: 624 + keen::ds::UiTexture warningTriangle; // Offset: 672 + keen::ds::UiTexture forbidden; // Offset: 720 + keen::ds::UiTexture store; // Offset: 768 + keen::ds::UiTexture settings; // Offset: 816 + keen::ds::UiTexture arrowRight; // Offset: 864 + keen::ds::UiTexture arrowLeftRight; // Offset: 912 + keen::ds::UiTexture locked; // Offset: 960 + keen::ds::UiTexture star4; // Offset: 1008 + keen::ds::UiTexture star5; // Offset: 1056 + keen::ds::UiTexture itemRarity; // Offset: 1104 + keen::ds::UiTexture privateGame; // Offset: 1152 + keen::ds::UiTexture publicGame; // Offset: 1200 + keen::ds::UiTexture joinGame; // Offset: 1248 + keen::ds::UiTexture networkGood; // Offset: 1296 + keen::ds::UiTexture networkAcceptable; // Offset: 1344 + keen::ds::UiTexture networkBad; // Offset: 1392 + keen::ds::UiTexture infinitySymbol; // Offset: 1440 + keen::ds::UiTexture craftingCogwheel; // Offset: 1488 + keen::ds::UiTexture craftingInactiveLayer; // Offset: 1536 + keen::ds::UiTexture loadingIcon; // Offset: 1584 + keen::ds::UiTexture friendServer; // Offset: 1632 + keen::ds::UiTexture dedicatedServer; // Offset: 1680 + keen::ds::UiTexture nonDedicatedServer; // Offset: 1728 + keen::ds::UiTexture favouriteServerSet; // Offset: 1776 + keen::ds::UiTexture favouriteServerUnset; // Offset: 1824 + keen::ds::UiTexture hide; // Offset: 1872 + keen::ds::UiTexture visible; // Offset: 1920 + keen::ds::UiTexture hide_selected; // Offset: 1968 + keen::ds::UiTexture visible_selected; // Offset: 2016 + keen::ds::UiTexture externalLink; // Offset: 2064 + keen::ds::UiTexture sort; // Offset: 2112 + keen::ds::UiTexture moveStacks; // Offset: 2160 + keen::ds::UiTexture moveAll; // Offset: 2208 + keen::ds::UiTexture serverSettingProhibited; // Offset: 2256 + keen::ds::UiTexture permissionKick; // Offset: 2304 + keen::ds::UiTexture permissionEditBase; // Offset: 2352 + keen::ds::UiTexture permissionUpgradeBase; // Offset: 2400 + keen::ds::UiTexture permissionAccessStorage; // Offset: 2448 + keen::ds::UiTexture pwOptional; // Offset: 2496 + keen::ds::FbUiStatusIcons statusIcons; // Offset: 2544 +}; + +typedef keen::FbUiCoverStyle FbUiCoverStyle; + +struct FbUiCoverTransition { + keen::ds::FbUiCoverStyle coverStyle; // Offset: 0 + keen::uint32 changeCount; // Offset: 4 +}; + +struct FbUiCursors { + keen::UiColor lockonColor; // Offset: 0 + keen::ds::UiTexture lockon; // Offset: 8 + keen::ds::UiTexture bow; // Offset: 56 + keen::ds::UiTexture bowFalloff; // Offset: 104 + keen::ds::UiTexture spell; // Offset: 152 + keen::ds::UiTexture spellArea; // Offset: 200 + keen::UiColor crosshairWarningColor; // Offset: 248 + keen::UiColor snappingReadyColor; // Offset: 256 + keen::UiColor snappingActiveColor; // Offset: 264 +}; + +struct UiSkillTreeNode { + keen::float2 pos; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::uint32 i; // Offset: 48 + keen::bool isA; // Offset: 52 + keen::bool isL; // Offset: 53 +}; + +struct UiSkillTreeConnection { + keen::uint32 a; // Offset: 0 + keen::uint32 b; // Offset: 4 +}; + +struct UiSkillTree { + keen::DsArray sList; // Offset: 0 + keen::DsArray sConList; // Offset: 40 +}; + +struct FbUiInline3SkillDescriptions { + keen::ds::string jumpAttack; // Offset: 0 + keen::ds::string evadeAttack; // Offset: 40 + keen::ds::string doubleJump; // Offset: 80 + keen::ds::string attributeStrength; // Offset: 120 + keen::ds::string attributeDexterity; // Offset: 160 + keen::ds::string attributeIntelligence; // Offset: 200 +}; + +struct FbUiSkillTreeFallbackTexts { + keen::ds::string activeSkillName; // Offset: 0 + keen::ds::string activeSkillDesc; // Offset: 40 + keen::ds::string attributeName; // Offset: 80 + keen::ds::string attributeDesc; // Offset: 120 + keen::ds::string passiveSkillName; // Offset: 160 + keen::ds::string passiveSkillDesc; // Offset: 200 +}; + +struct FbUiSkillNode { + keen::float32 textureRadius; // Offset: 0 + keen::float32 glowScale; // Offset: 4 + keen::float32 contentRadius; // Offset: 8 + keen::float32 focusRadiusGrowth; // Offset: 12 + keen::ds::UiTexture mutedForEA; // Offset: 16 + keen::ds::UiTexture outOfReach; // Offset: 64 + keen::ds::UiTexture inReach; // Offset: 112 + keen::ds::UiTexture activated; // Offset: 160 + keen::ds::UiTexture glow; // Offset: 208 +}; + +struct FbUiSkillNodes { + keen::ds::UiTexture starter; // Offset: 0 + keen::float32 starterRadius; // Offset: 48 + keen::float32 skillIconScale; // Offset: 52 + keen::float32 skillIconSubjectTextureReferenceHeight; // Offset: 56 + keen::ds::FbUiSkillNode attributes; // Offset: 60 + keen::ds::FbUiSkillNode passiveSkill; // Offset: 316 + keen::ds::FbUiSkillNode activeSkill; // Offset: 572 +}; + +struct FbUiSkillTreeLinkColors { + keen::UiColor activatedCore; // Offset: 0 + keen::UiColor activatedGlow; // Offset: 8 + keen::UiColor adjacent; // Offset: 16 + keen::UiColor adjacentHover; // Offset: 24 + keen::UiColor inactive; // Offset: 32 + keen::UiColor muted; // Offset: 40 +}; + +struct FbUiCanvasParallaxLayer { + keen::ds::UiTexture texture; // Offset: 0 + keen::float2 sizeOnCanvas; // Offset: 48 + keen::float32 parallaxDistance; // Offset: 56 + keen::UiColor renderTint; // Offset: 60 +}; + +struct FbUiSkillGlowColor { + keen::UiColor idle; // Offset: 0 + keen::UiColor activated; // Offset: 8 +}; + +struct FbUiSkillGlowColors { + keen::ds::FbUiSkillGlowColor mage; // Offset: 0 + keen::ds::FbUiSkillGlowColor warrior; // Offset: 16 + keen::ds::FbUiSkillGlowColor ranger; // Offset: 32 + keen::ds::FbUiSkillGlowColor neutral; // Offset: 48 +}; + +struct UiSkillTreeClassHint { + keen::ds::UiLocaTagReference label; // Offset: 0 + keen::bool isPrimary; // Offset: 16 + keen::UiColor color; // Offset: 20 + keen::sint32 directionDegrees; // Offset: 28 + keen::float32 distanceFromRing; // Offset: 32 +}; + +struct FbUiSkillTree { + keen::DsArray zoomSteps; // Offset: 0 + keen::DsArray bgLayers; // Offset: 40 + keen::ds::FbUiCanvasParallaxLayer skillLayoutHelper; // Offset: 80 + keen::UiColor backgroundColor; // Offset: 148 + keen::ds::FbUiSkillTreeLinkColors linkColors; // Offset: 156 + keen::ds::UiTexture connectionDirectionalPulse; // Offset: 204 + keen::ds::UiTexture connectionCore; // Offset: 252 + keen::ds::UiTexture connectionCoreInactive; // Offset: 300 + keen::ds::UiTexture connectionCoreOneWayStretch; // Offset: 348 + keen::ds::UiTexture connectionCoreOneWayEnd; // Offset: 396 + keen::ds::UiTexture connectionGlow; // Offset: 444 + keen::UiColor connectionPulseColorGeneric; // Offset: 492 + keen::ds::UiTexture nodeHighlight; // Offset: 500 + keen::ds::UiTexture cursorHighlight; // Offset: 548 + keen::ds::FbUiSkillGlowColors glowColors; // Offset: 596 + keen::DsArray classHints; // Offset: 664 + keen::UiColor mageKeyColor; // Offset: 704 + keen::UiColor warriorKeyColor; // Offset: 712 + keen::UiColor rangerKeyColor; // Offset: 720 + keen::UiColor neutralClassKeyColor; // Offset: 728 + keen::UiColor mutedOverlayColor; // Offset: 736 + keen::ds::FbUiSkillNodes nodes; // Offset: 744 + keen::ds::UiTexture centerRing; // Offset: 1572 + keen::float32 centerRingRadius; // Offset: 1620 + keen::ds::FbUiSkillTreeFallbackTexts fallbackTexts; // Offset: 1624 +}; + +struct FbUiMapMarkerIcons { + keen::ds::UiTexture waypoint; // Offset: 0 + keen::ds::UiTexture playerCorpse; // Offset: 48 + keen::ds::UiTexture playerCorpseInDungeon; // Offset: 96 + keen::ds::UiTexture markerFrame; // Offset: 144 + keen::ds::UiTexture markerSelector; // Offset: 192 + keen::ds::UiTexture investigation; // Offset: 240 + keen::ds::UiTexture investigationOpaque; // Offset: 288 + keen::ds::UiTexture completed; // Offset: 336 + keen::ds::UiTexture playerPing; // Offset: 384 + keen::ds::UiTexture playerMarkerPing; // Offset: 432 + keen::UiColor playerPingColor; // Offset: 480 +}; + +typedef keen::CustomMapMarkerColorScheme CustomMapMarkerColorScheme; + +struct FbUiCustomMarkerColorScheme { + keen::ds::CustomMapMarkerColorScheme colorSchemeType; // Offset: 0 + keen::UiColor baseColor; // Offset: 4 + keen::UiColor iconColor; // Offset: 12 +}; + +struct FbUiCustomMapMarker { + keen::StaticArray colors; // Offset: 0 + keen::ds::UiTexture markerBase; // Offset: 160 + keen::ds::UiTexture customMarkerSelector; // Offset: 208 + keen::ds::UiTexture customMarkerWaypoint; // Offset: 256 + keen::ds::UiTexture customMarkerHighlight; // Offset: 304 +}; + +struct FbUiMapIsolineConfig { + keen::float32 thickness; // Offset: 0 + keen::float32 alpha; // Offset: 4 +}; + +struct FbUiMapZoomConfig { + keen::float32 zoomScale; // Offset: 0 + keen::StaticArray isolineConfigs; // Offset: 4 +}; + +struct FbUiMapInvestigationArea { + keen::ds::UiTexture pattern; // Offset: 0 + keen::float32 tileSize; // Offset: 48 + keen::ds::UiTexture mask; // Offset: 52 + keen::UiColor patternColor; // Offset: 100 + keen::UiColor bgColor; // Offset: 108 + keen::float2 alphaRange; // Offset: 116 + keen::float32 pulseCycleInSeconds; // Offset: 124 +}; + +struct FbUiAdventureMap { + keen::ds::UiTexture playerPosition; // Offset: 0 + keen::UiColor currentPlayerColor; // Offset: 48 + keen::UiColor otherPlayerColor; // Offset: 56 + keen::float2 fogZoneAlphaRange; // Offset: 64 + keen::Time fogZonePulseLength; // Offset: 72 + keen::float32 outerCornerNominalSize; // Offset: 80 + keen::ds::UiNineSliceTexture outerFrame; // Offset: 84 + keen::float32 frameInnerGradientNominalSize; // Offset: 148 + keen::ds::UiNineSliceTexture frameInnerGradient; // Offset: 152 + keen::ds::UiTexture cursorPiece; // Offset: 216 + keen::ds::UiTexture offscreenIconBubble; // Offset: 264 + keen::ds::UiTexture circularArea; // Offset: 312 + keen::ds::UiTexture markerRipple; // Offset: 360 + keen::ds::FbUiMapInvestigationArea investigation; // Offset: 408 + keen::ds::FbUiMapMarkerIcons markerIcons; // Offset: 536 + keen::DsArray zoomConfigs; // Offset: 1024 + keen::ds::FbUiCustomMapMarker customMarkers; // Offset: 1064 +}; + +struct FbUiRecipeCategoryIcons { + keen::ds::UiTexture swords; // Offset: 0 + keen::ds::UiTexture ammo; // Offset: 48 + keen::ds::UiTexture potion; // Offset: 96 + keen::ds::UiTexture misc; // Offset: 144 + keen::ds::UiTexture armor; // Offset: 192 + keen::ds::UiTexture magical; // Offset: 240 +}; + +struct FbUiRecipeGroupDefinition { + keen::ds::UiTexture icon; // Offset: 0 + keen::ds::ItemTagReference tagRef; // Offset: 48 + keen::ds::ItemCategory itemCategoryFallback; // Offset: 64 +}; + +struct FbUiCrafting { + keen::ds::FbUiRecipeCategoryIcons categoryIcons; // Offset: 0 + keen::UiColor ingredientBgColorDefault; // Offset: 288 + keen::UiColor sufficientIngredientColor; // Offset: 296 + keen::UiColor insufficientIngredientColor; // Offset: 304 + keen::UiColor successFlashColor; // Offset: 312 + keen::ds::UiTexture pinnedRecipeIcon; // Offset: 320 + keen::DsArray groupDefinitions; // Offset: 368 + keen::DsArray recipeSets; // Offset: 408 +}; + +struct FbUiRecipeSetFolder { +}; + +struct FbUiRecipeSet { +}; + +struct FbUiWorldEvents { +}; + +struct FbUiWorldEvent { + keen::HashKey32 eventId; // Offset: 0 + keen::ds::UiTexture mainTexture; // Offset: 4 + keen::ds::UiTexture ornament; // Offset: 52 + keen::UiColor initialColor; // Offset: 100 + keen::UiColor secondaryColor; // Offset: 108 + keen::UiColor rippleColor; // Offset: 116 + keen::float imageSize; // Offset: 124 + keen::ds::SoundContainerReference sfx; // Offset: 128 + keen::ds::UiLocaTagReference text; // Offset: 144 +}; + +typedef keen::UiParagraphAlignment UiParagraphAlignment; + +struct UiParagraphStyle { + keen::ds::string identifier; // Offset: 0 + keen::float32 leading; // Offset: 40 + keen::bool enableAlignment; // Offset: 44 + keen::ds::UiParagraphAlignment alignment; // Offset: 45 + keen::float32 indentLeft; // Offset: 48 + keen::float32 indentRight; // Offset: 52 + keen::float32 lineSpacing; // Offset: 56 +}; + +struct FbUiMenuParagraphStyles { + keen::ds::UiParagraphStyle loreReaderBody; // Offset: 0 +}; + +struct FbUiEquipmentBodyPartViews { + keen::ds::FbUiCharacterView full; // Offset: 0 + keen::ds::FbUiCharacterView head; // Offset: 28 + keen::ds::FbUiCharacterView chest; // Offset: 56 + keen::ds::FbUiCharacterView arm; // Offset: 84 + keen::ds::FbUiCharacterView legs; // Offset: 112 + keen::ds::FbUiCharacterView feet; // Offset: 140 + keen::ds::FbUiCharacterView ring; // Offset: 168 +}; + +struct FbUiHudMenuMetrics { + keen::float32 lootingMenuWidth; // Offset: 0 + keen::float32 centerMessageBottomY; // Offset: 4 + keen::Time epicLootLeaveCenterDelay; // Offset: 8 + keen::ds::FbUiEquipmentBodyPartViews equipmentBodyPartViews; // Offset: 16 +}; + +struct FbUiCustomizationViews { + keen::ds::FbUiCharacterView fullBody; // Offset: 0 + keen::ds::FbUiCharacterView head; // Offset: 28 + keen::ds::FbUiCharacterView presetView; // Offset: 56 + keen::ds::FbUiCharacterView hairView; // Offset: 84 + keen::ds::FbUiCharacterView beardView; // Offset: 112 + keen::ds::FbUiCharacterView hairColorView; // Offset: 140 +}; + +struct CharacterPresetObject { + keen::ds::CharacterPresetObjectReference presetObject; // Offset: 0 + keen::ds::UiTexture previewImage; // Offset: 16 +}; + +struct CharacterItemReferences { + keen::ds::ItemReference itemReference; // Offset: 0 + keen::ds::UiTexture previewImage; // Offset: 16 +}; + +struct FbUiCustomization { + keen::ds::FbUiCustomizationViews characterViews; // Offset: 0 + keen::DsArray presetObjects; // Offset: 168 + keen::DsArray hairColors; // Offset: 208 + keen::DsArray beardColors; // Offset: 248 + keen::DsArray hairItems; // Offset: 288 + keen::DsArray beardItems; // Offset: 328 + keen::DsArray> eyeColors; // Offset: 368 + keen::DsArray> eyeBrowColors; // Offset: 408 + keen::DsArray> skinColors; // Offset: 448 + keen::DsArray> voiceItems; // Offset: 488 +}; + +struct FbUiTileArtConfig { + keen::float2 pivot; // Offset: 0 + keen::float32 scaleTweak; // Offset: 8 + keen::ds::UiTexture texture; // Offset: 12 +}; + +struct FbUiMenuTiles { + keen::float32 idleAlphaScale; // Offset: 0 + keen::float32 emptyContentAlphaScale; // Offset: 4 + keen::ds::FbUiTileArtConfig lockedContent; // Offset: 8 + keen::ds::FbUiTileArtConfig quests; // Offset: 68 + keen::ds::FbUiTileArtConfig flame; // Offset: 128 + keen::ds::FbUiTileArtConfig craftspeople; // Offset: 188 + keen::ds::FbUiTileArtConfig townsfolk; // Offset: 248 + keen::ds::FbUiTileArtConfig bases; // Offset: 308 + keen::ds::FbUiTileArtConfig workshops; // Offset: 368 + keen::ds::FbUiTileArtConfig lore; // Offset: 428 + keen::ds::FbUiTileArtConfig tutorials; // Offset: 488 + keen::ds::FbUiTileArtConfig altarUpgradeGeneric; // Offset: 548 + keen::DsArray altarLevels; // Offset: 608 + keen::ds::FbUiTileArtConfig flameUpgrade; // Offset: 648 + keen::ds::FbUiTileArtConfig skilltree; // Offset: 708 +}; + +struct FbUiMenuButtonTextures { + keen::ds::UiNineSliceTexture background; // Offset: 0 + keen::ds::UiNineSliceTexture backgroundDestructive; // Offset: 64 + keen::ds::UiNineSliceTexture backGlow; // Offset: 128 + keen::ds::UiNineSliceTexture ornament; // Offset: 192 +}; + +struct UiCharacterStyleActivePropertyFlags { + keen::bool font; // Offset: 0 + keen::bool size; // Offset: 1 + keen::bool tracking; // Offset: 2 + keen::bool variant; // Offset: 3 + keen::bool uppercase; // Offset: 4 + keen::bool color; // Offset: 5 + keen::bool outline; // Offset: 6 + keen::bool dropShadow; // Offset: 7 +}; + +struct UiCharacterStyle { + keen::ds::string identifier; // Offset: 0 + keen::ds::UiCharacterStyleActivePropertyFlags activeProperties; // Offset: 40 + keen::ObjectReference font; // Offset: 48 + keen::float32 fontSize; // Offset: 64 + keen::float32 spacing; // Offset: 68 + keen::bool bold; // Offset: 72 + keen::bool italic; // Offset: 73 + keen::bool uppercase; // Offset: 74 + keen::UiColor color; // Offset: 76 + keen::bool outline; // Offset: 84 + keen::UiColor outlineColor; // Offset: 88 + keen::float32 outlineSize; // Offset: 96 + keen::bool dropShadow; // Offset: 100 + keen::UiColor dropShadowColor; // Offset: 104 + keen::float2 dropShadowOffset; // Offset: 112 +}; + +struct FbUiMenuButton { + keen::ds::FbUiMenuButtonTextures standalone; // Offset: 0 + keen::ds::FbUiMenuButtonTextures inGroupLeft; // Offset: 256 + keen::ds::FbUiMenuButtonTextures inGroupMiddle; // Offset: 512 + keen::ds::FbUiMenuButtonTextures inGroupRight; // Offset: 768 + keen::ds::FbUiMenuButtonTextures standaloneSmall; // Offset: 1024 + keen::ds::UiTexture sliderKnob; // Offset: 1280 + keen::ds::UiCharacterStyle labelStyle; // Offset: 1328 + keen::UiColor ornamentTint; // Offset: 1448 + keen::UiColor destructiveTint; // Offset: 1456 + keen::UiColor textColorDestructive; // Offset: 1464 +}; + +struct FbUiMenuToggle { + keen::ds::UiTexture toggleOn; // Offset: 0 + keen::ds::UiTexture toggleOff; // Offset: 48 + keen::ds::UiTexture backGlow; // Offset: 96 +}; + +struct FbUiMenuScrollbar { + keen::ds::UiNineSliceTexture slider; // Offset: 0 + keen::ds::UiNineSliceTexture range; // Offset: 64 + keen::UiColor rangeTint; // Offset: 128 +}; + +struct FbUiCharacterInventory { + keen::ds::UiTexture levelBadgeBackground; // Offset: 0 + keen::float2 xpBarLevelBadgeSize; // Offset: 48 +}; + +struct FbUiMultiToolMenu { + keen::ds::UiLocaTagReference materialHeader; // Offset: 0 + keen::ds::UiLocaTagReference tooltipMaterialHint; // Offset: 16 + keen::ds::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 32 + keen::ds::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 48 + keen::ds::UiLocaTagReference itemSubInfo; // Offset: 64 + keen::ds::UiLocaTagReference preUseHint_QuickBuilder; // Offset: 80 + keen::ds::UiLocaTagReference preUseHint_Terraformer; // Offset: 96 + keen::ds::UiLocaTagReference preUseHint_NpcSummoner; // Offset: 112 + keen::ds::UiLocaTagReference preUseHintHud_QuickBuilder; // Offset: 128 + keen::ds::UiLocaTagReference preUseHintHud_Terraformer; // Offset: 144 + keen::ds::UiLocaTagReference preUseHintHud_NpcSummoner; // Offset: 160 + keen::ds::UiLocaTagReference noAltarBuild; // Offset: 176 + keen::ds::UiLocaTagReference craftBlocksHint; // Offset: 192 + keen::ds::UiLocaTagReference craftRoofBlocksHint; // Offset: 208 + keen::ds::UiLocaTagReference collectMaterialsHint; // Offset: 224 + keen::ds::UiLocaTagReference noMaterialsAvailable; // Offset: 240 + keen::ds::UiLocaTagReference needsFlameAltarHint; // Offset: 256 + keen::UiColor antiTofuTint_Temp; // Offset: 272 +}; + +struct FbUiEquipmentSlotIcons { + keen::ds::UiTexture mainHand; // Offset: 0 + keen::ds::UiTexture shield; // Offset: 48 + keen::ds::UiTexture backpackExtender; // Offset: 96 + keen::ds::UiTexture rangedWeapon; // Offset: 144 + keen::ds::UiTexture arrow; // Offset: 192 + keen::ds::UiTexture spell; // Offset: 240 + keen::ds::UiTexture wallClimber; // Offset: 288 + keen::ds::UiTexture hookshot; // Offset: 336 + keen::ds::UiTexture glider; // Offset: 384 + keen::ds::UiTexture accessory; // Offset: 432 + keen::ds::UiTexture ring; // Offset: 480 + keen::ds::UiTexture head; // Offset: 528 + keen::ds::UiTexture upperBody; // Offset: 576 + keen::ds::UiTexture arms; // Offset: 624 + keen::ds::UiTexture lowerBody; // Offset: 672 + keen::ds::UiTexture boots; // Offset: 720 + keen::ds::UiTexture vanity; // Offset: 768 +}; + +struct FbUiPerkIcons { + keen::ds::UiTexture nodeOutline; // Offset: 0 + keen::ds::UiTexture genericAttributeNode; // Offset: 48 +}; + +struct FbUiFancyBox { + keen::float32 cornerSize; // Offset: 0 + keen::ds::UiNineSliceTexture frame; // Offset: 4 + keen::ds::UiNineSliceTexture frameSimple; // Offset: 68 + keen::UiColor frameColor; // Offset: 132 + keen::ds::UiNineSliceTexture backgroundShape; // Offset: 140 + keen::ds::UiNineSliceTexture backgroundShapeHalved; // Offset: 204 + keen::ds::UiNineSliceTexture backgroundShapeGlassMask; // Offset: 268 + keen::ds::UiNineSliceTexture backgroundShapeHalvedGlassMask; // Offset: 332 + keen::UiColor backgroundColor; // Offset: 396 + keen::UiColor backgroundColorDark; // Offset: 404 + keen::ds::UiTexture backgroundPattern; // Offset: 412 + keen::UiColor backgroundPatternColor; // Offset: 460 + keen::float32 patternSize; // Offset: 468 + keen::ds::UiNineSliceTexture frameFull; // Offset: 472 + keen::ds::UiNineSliceTexture backgroundShapeFrameFull; // Offset: 536 + keen::ds::UiNineSliceTexture backgroundShapeGradientToLeft; // Offset: 600 + keen::ds::UiNineSliceTexture backgroundShapeGradientToTop; // Offset: 664 + keen::ds::UiNineSliceTexture frameFullSimple; // Offset: 728 + keen::ds::UiNineSliceTexture backgroundShapeFrameFullSimple; // Offset: 792 + keen::ds::UiNineSliceTexture frameTopMinimal; // Offset: 856 + keen::ds::UiNineSliceTexture backgroundShapeTopMinimal; // Offset: 920 + keen::ds::UiNineSliceTexture frameFullDetailed; // Offset: 984 + keen::ds::UiNineSliceTexture backgroundShapeFrameFullDetailed; // Offset: 1048 +}; + +struct FbUiFancyLoadingBar { + keen::ds::UiNineSliceTexture background; // Offset: 0 + keen::ds::UiNineSliceTexture bar; // Offset: 64 + keen::ds::UiNineSliceTexture glow; // Offset: 128 + keen::UiColor sectionCompletedColor; // Offset: 192 +}; + +typedef keen::UiSize UiSize; + +struct FbUiMenuExplainer { + keen::UiColor darkenerColor; // Offset: 0 + keen::float32 areaFeatherSize; // Offset: 8 + keen::ds::UiSize areaContentPadding; // Offset: 12 + keen::float32 textMaxWidth; // Offset: 20 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiJournalBaseInfo { + keen::ds::UiTexture iconFlameAltar; // Offset: 0 + keen::ds::UiTexture iconNpc; // Offset: 48 + keen::ds::UiTexture iconNpcBed; // Offset: 96 + keen::ds::UiTexture iconAnimal; // Offset: 144 +}; + +struct FbUiCodexAssets { + keen::ds::UiTexture questSourceIconBG; // Offset: 0 + keen::ds::UiTexture repeatedQuestSourceIconBG; // Offset: 48 + keen::ds::UiTexture questIconFlame; // Offset: 96 + keen::ds::UiTexture questIconBlacksmith; // Offset: 144 + keen::ds::UiTexture questIconAlchemist; // Offset: 192 + keen::ds::UiTexture questIconHunter; // Offset: 240 + keen::ds::UiTexture questIconCarpenter; // Offset: 288 + keen::ds::UiTexture questIconFarmer; // Offset: 336 + keen::ds::UiTexture questIconCryptKeeper; // Offset: 384 + keen::ds::UiTexture questIconBard; // Offset: 432 + keen::ds::UiTexture questIconMisc; // Offset: 480 + keen::ds::UiTexture questIconTexture; // Offset: 528 + keen::ds::UiTexture questProgressEmpty; // Offset: 576 + keen::ds::UiTexture questProgressFilled; // Offset: 624 + keen::ds::UiTexture questCheckmark; // Offset: 672 + keen::ds::UiTexture lorePageFound; // Offset: 720 + keen::ds::UiTexture lorePageLocked; // Offset: 768 + keen::ds::UiTexture activeQuestIndicator; // Offset: 816 + keen::ds::UiTexture lockedLoreTileImage; // Offset: 864 + keen::UiColor completedQuestsColor; // Offset: 912 + keen::UiColor flameQuestEntryColor; // Offset: 920 + keen::UiColor npcQuestEntryColor; // Offset: 928 + keen::UiColor miscQuestEntryColor; // Offset: 936 + keen::UiColor repeatedQuestEntryColor; // Offset: 944 + keen::ds::FbUiJournalBaseInfo baseInfo; // Offset: 952 +}; + +struct FbUiLoreCategory { + keen::ds::UiLocaTagReference categoryName; // Offset: 0 + keen::ds::FbUiTileArtConfig artConfig; // Offset: 16 +}; + +struct FbUiMenuAttributeTabs { + keen::ds::UiTexture basicsTab; // Offset: 0 + keen::ds::UiTexture damageTab; // Offset: 48 + keen::ds::UiTexture resistanceTab; // Offset: 96 +}; + +struct FbUiCollectionCategoryInfo { + keen::ObjectReference category; // Offset: 0 + keen::ds::UiLocaTagReference label; // Offset: 16 + keen::ds::UiTexture icon; // Offset: 32 +}; + +struct FbUiDifficultyOptionValue { + keen::bool isAvailable; // Offset: 0 + keen::DsArray steps; // Offset: 8 +}; + +struct FbUiDifficultyOptionValues { + keen::ds::FbUiDifficultyOptionValue enemyDamage; // Offset: 0 + keen::ds::FbUiDifficultyOptionValue enemyHealth; // Offset: 48 + keen::ds::FbUiDifficultyOptionValue enemyStamina; // Offset: 96 + keen::ds::FbUiDifficultyOptionValue enemyPerceptionRange; // Offset: 144 + keen::ds::FbUiDifficultyOptionValue enemyAttackFrequency; // Offset: 192 + keen::ds::FbUiDifficultyOptionValue bossHealth; // Offset: 240 + keen::ds::FbUiDifficultyOptionValue bossDamage; // Offset: 288 + keen::ds::FbUiDifficultyOptionValue miningXp; // Offset: 336 + keen::ds::FbUiDifficultyOptionValue questXp; // Offset: 384 + keen::ds::FbUiDifficultyOptionValue combatXp; // Offset: 432 + keen::ds::FbUiDifficultyOptionValue playerHealth; // Offset: 480 + keen::ds::FbUiDifficultyOptionValue playerStamina; // Offset: 528 + keen::ds::FbUiDifficultyOptionValue playerMana; // Offset: 576 + keen::ds::FbUiDifficultyOptionValue shroudTime; // Offset: 624 + keen::ds::FbUiDifficultyOptionValue durability; // Offset: 672 + keen::ds::FbUiDifficultyOptionValue dayTime; // Offset: 720 + keen::ds::FbUiDifficultyOptionValue nightTime; // Offset: 768 + keen::ds::FbUiDifficultyOptionValue foodDuration; // Offset: 816 + keen::ds::FbUiDifficultyOptionValue productionTime; // Offset: 864 + keen::ds::FbUiDifficultyOptionValue plantGrowTime; // Offset: 912 + keen::ds::FbUiDifficultyOptionValue weaponUpgradeCost; // Offset: 960 + keen::ds::FbUiDifficultyOptionValue perkUpgradeRecyclingFactor; // Offset: 1008 + keen::ds::FbUiDifficultyOptionValue worldRefreshTime; // Offset: 1056 + keen::ds::FbUiDifficultyOptionValue miningDamage; // Offset: 1104 + keen::ds::FbUiDifficultyOptionValue dropAmount; // Offset: 1152 + keen::ds::FbUiDifficultyOptionValue starvingTime; // Offset: 1200 + keen::ds::FbUiDifficultyOptionValue bodyHeat; // Offset: 1248 + keen::bool tombstoneMode; // Offset: 1296 + keen::bool randomSpawnerAmount; // Offset: 1297 + keen::bool aggroPoolAmount; // Offset: 1298 + keen::bool enableDurability; // Offset: 1299 + keen::bool enableStarvingDebuff; // Offset: 1300 + keen::bool pacifyAllEnemies; // Offset: 1301 + keen::bool weatherFrequency; // Offset: 1302 + keen::bool enableGliderTurbulences; // Offset: 1303 + keen::bool tamingStartleRepercussion; // Offset: 1304 +}; + +struct FbUiDifficultyPreset { + keen::ds::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::ds::UiLocaTagReference label; // Offset: 4 + keen::ds::UiLocaTagReference desc; // Offset: 20 + keen::ds::UiTexture iconSelected; // Offset: 36 + keen::ds::UiTexture iconUnelected; // Offset: 84 + keen::ds::UiTexture iconSmall; // Offset: 132 + keen::ds::ecs::GameSettings settings; // Offset: 184 +}; + +struct FbUiDifficultySettings { + keen::ds::FbUiDifficultyOptionValues settingValues; // Offset: 0 + keen::ds::FbUiDifficultyPreset presetDefault; // Offset: 1312 + keen::ds::FbUiDifficultyPreset presetBuilder; // Offset: 1624 + keen::ds::FbUiDifficultyPreset presetSurvivalist; // Offset: 1936 + keen::ds::FbUiDifficultyPreset presetCombatChallenge; // Offset: 2248 + keen::ds::FbUiDifficultyPreset custom; // Offset: 2560 + keen::ds::UiTexture presetIconHighlight; // Offset: 2872 +}; + +struct FbUiMenu { + keen::ds::FbUiHudMenuMetrics metrics; // Offset: 0 + keen::ds::FbUiMenuParagraphStyles paragraphStyles; // Offset: 216 + keen::ds::FbUiCharacterInventory characterInventory; // Offset: 280 + keen::ds::FbUiSkillTree skilltree; // Offset: 336 + keen::ds::FbUiAdventureMap map; // Offset: 2200 + keen::ds::FbUiCrafting crafting; // Offset: 3616 + keen::DsArray collectionCategories; // Offset: 4064 + keen::ds::FbUiMultiToolMenu multiTool; // Offset: 4104 + keen::ds::FbUiEquipmentSlotIcons equipmentSlots; // Offset: 4384 + keen::ds::FbUiPerkIcons itemPerkIcons; // Offset: 5200 + keen::ds::FbUiMenuAttributeTabs attributeTabs; // Offset: 5296 + keen::ds::FbUiMenuTiles menuTiles; // Offset: 5440 + keen::ds::UiTexture codexMotherflameIllustration; // Offset: 6208 + keen::ds::FbUiCodexAssets codexAssets; // Offset: 6256 + keen::DsArray loreCategories; // Offset: 7400 + keen::ds::FbUiMenuButton button; // Offset: 7440 + keen::ds::FbUiMenuToggle toggle; // Offset: 8912 + keen::ds::FbUiMenuScrollbar scrollbar; // Offset: 9056 + keen::ds::FbUiFancyLoadingBar loadingBar; // Offset: 9192 + keen::UiColor frostedGlassDefaultTint; // Offset: 9392 + keen::UiColor backgroundDarkenerColor; // Offset: 9400 + keen::ds::UiNineSliceTexture topTabBackground; // Offset: 9408 + keen::UiColor tabLabelIdleColor; // Offset: 9472 + keen::UiColor tabLabelHighlightColor; // Offset: 9480 + keen::UiColor tabHighlightColor; // Offset: 9488 + keen::ds::UiNineSliceTexture tabHighlight; // Offset: 9496 + keen::UiColor basicWidgetColor; // Offset: 9560 + keen::UiColor basicWidgetColorHighlighted; // Offset: 9568 + keen::UiColor tileBackgroundColor; // Offset: 9576 + keen::UiColor tileHighlightOutlineColor; // Offset: 9584 + keen::ds::UiNineSliceTexture basicWidgetMinimizedShape; // Offset: 9592 + keen::ds::UiNineSliceTexture basicWidgetBackground; // Offset: 9656 + keen::ds::UiNineSliceTexture basicWidgetBackgroundWide; // Offset: 9720 + keen::ds::UiNineSliceTexture basicWidgetBackgroundLarge; // Offset: 9784 + keen::ds::UiNineSliceTexture basicWidgetBackgroundFaded; // Offset: 9848 + keen::ds::UiNineSliceTexture basicWidgetHeader; // Offset: 9912 + keen::ds::UiNineSliceTexture basicWidgetRarityStripe; // Offset: 9976 + keen::ds::UiNineSliceTexture basicWidgetHighlightOutline; // Offset: 10040 + keen::ds::FbUiFancyBox fancyBox; // Offset: 10104 + keen::ds::UiNineSliceTexture pillWidgetBackground; // Offset: 11216 + keen::ds::UiTexture flameIcon; // Offset: 11280 + keen::ds::UiTexture moveStacksLeftIcon; // Offset: 11328 + keen::ds::UiTexture moveStacksRightIcon; // Offset: 11376 + keen::ds::UiTexture iconPlayerInventory; // Offset: 11424 + keen::ds::UiTexture iconStorageInventory; // Offset: 11472 + keen::ds::UiTexture iconOpenInventoryTransactions; // Offset: 11520 + keen::ds::UiTexture spatialFactoryInfoBg; // Offset: 11568 + keen::ds::UiTexture actionbarTutorialKeyImage; // Offset: 11616 + keen::ds::UiTexture fancyToggleSmallOff; // Offset: 11664 + keen::ds::UiTexture fancyToggleSmallOn; // Offset: 11712 + keen::ds::FbUiMenuExplainer explainer; // Offset: 11760 +}; + +struct FbUiItemSlotFrame { + keen::ds::UiTexture shapeBase; // Offset: 0 + keen::ds::UiTexture shapeSubtle; // Offset: 48 + keen::ds::UiTexture outline; // Offset: 96 +}; + +struct FbUiItemSlotMinimal { + keen::ds::UiTexture cookable; // Offset: 0 + keen::ds::UiTexture uncookable; // Offset: 48 + keen::ds::UiTexture empty; // Offset: 96 +}; + +struct FbUiItemEquipIndicator { + keen::ds::UiLocaTagReference label; // Offset: 0 + keen::ds::UiTexture texture; // Offset: 16 + keen::UiColor color; // Offset: 64 + keen::bool useFrame; // Offset: 72 +}; + +struct FbUiItemStackProperties { + keen::ds::UiTexture isNew; // Offset: 0 + keen::ds::UiTexture equippableFrame; // Offset: 48 + keen::ds::UiTexture equipMissingHint; // Offset: 96 + keen::ds::UiLocaTagReference initialEquipActionMessage; // Offset: 144 + keen::ds::UiLocaTagReference labelEquipped; // Offset: 160 + keen::ds::UiLocaTagReference labelUnequipped; // Offset: 176 + keen::ds::FbUiItemEquipIndicator actionBarHighlight; // Offset: 192 + keen::ds::FbUiItemEquipIndicator instaUse; // Offset: 268 + keen::ds::FbUiItemEquipIndicator armor; // Offset: 344 + keen::ds::FbUiItemEquipIndicator vanityArmor; // Offset: 420 + keen::ds::FbUiItemEquipIndicator rangedWeapon; // Offset: 496 + keen::ds::FbUiItemEquipIndicator arrow; // Offset: 572 + keen::ds::FbUiItemEquipIndicator spell; // Offset: 648 + keen::ds::FbUiItemEquipIndicator blueprintDefaultShape; // Offset: 724 + keen::ds::FbUiItemEquipIndicator blueprintDefaultMaterial; // Offset: 800 + keen::ds::FbUiItemEquipIndicator blueprintRoofShape; // Offset: 876 + keen::ds::FbUiItemEquipIndicator blueprintRoofMaterial; // Offset: 952 + keen::ds::FbUiItemEquipIndicator blueprintTerrainShape; // Offset: 1028 + keen::ds::FbUiItemEquipIndicator blueprintTerrainMaterial; // Offset: 1104 + keen::ds::FbUiItemEquipIndicator missingTwitchPermission; // Offset: 1180 + keen::UiColor durabilityColorDefault; // Offset: 1256 + keen::UiColor durabilityColorLow; // Offset: 1264 + keen::UiColor durabilityColorDraining; // Offset: 1272 + keen::UiColor durabilityColorDrainingLow; // Offset: 1280 +}; + +struct FbUiItemSlot { + keen::ds::FbUiItemStackProperties properties; // Offset: 0 + keen::ds::FbUiItemSlotFrame backpack; // Offset: 1288 + keen::ds::FbUiItemSlotMinimal minimal; // Offset: 1432 + keen::ds::UiCharacterStyle countNumberStyle; // Offset: 1576 + keen::UiColor grabAmountColor; // Offset: 1696 + keen::UiColor backgroundColor; // Offset: 1704 + keen::UiColor backgroundColorBright; // Offset: 1712 + keen::ds::UiTexture actionbarPageInactive; // Offset: 1720 + keen::ds::UiTexture actionbarPageActive; // Offset: 1768 + keen::ds::UiTexture pageHint; // Offset: 1816 + keen::ds::UiTexture blueprintBackground; // Offset: 1864 + keen::ds::UiTexture blueprintTypeIconMini; // Offset: 1912 + keen::ds::UiTexture blueprintIntroItemIcon; // Offset: 1960 +}; + +struct FbUiBlueprint { + keen::ds::UiLocaTagReference introRecipeName; // Offset: 0 + keen::ds::UiLocaTagReference introRecipeDescription1; // Offset: 16 + keen::ds::UiLocaTagReference introRecipeDescription2; // Offset: 32 + keen::ds::UiLocaTagReference introItemSubinfo; // Offset: 48 + keen::ds::UiLocaTagReference introItemEmptyHint; // Offset: 64 + keen::ds::UiLocaTagReference introItemUsageHint; // Offset: 80 + keen::ds::UiLocaTagReference materialHeader; // Offset: 96 + keen::ds::UiLocaTagReference tooltipMaterialHint; // Offset: 112 + keen::ds::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 128 + keen::ds::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 144 + keen::UiColor antiTofuTint_Temp; // Offset: 160 +}; + +struct FbUiBuffIcons { + keen::ds::UiTexture circularBarMask; // Offset: 0 + keen::UiColor frameColor; // Offset: 48 + keen::UiColor pieFillColor; // Offset: 56 + keen::UiColor pieFillColorHungry; // Offset: 64 + keen::UiColor pieFillColorStarving; // Offset: 72 + keen::UiColor pieLineColor; // Offset: 80 + keen::ds::UiTexture extremeCold; // Offset: 88 + keen::ds::UiTexture extremeHeat; // Offset: 136 + keen::ds::UiTexture restedConditionsBracket; // Offset: 184 +}; + +struct FbUiAnimatedHealthBarColors { + keen::UiColor frameColor; // Offset: 0 + keen::UiColor rangeColor; // Offset: 8 + keen::UiColor fillColor; // Offset: 16 + keen::UiColor fillEndColor; // Offset: 24 + keen::UiColor damageColor; // Offset: 32 + keen::UiColor healColor; // Offset: 40 +}; + +struct FbUiHudBuffDisplay { + keen::float2 textEntriesOffset; // Offset: 0 + keen::float32 offsetY; // Offset: 8 + keen::float32 iconColumnsDistance; // Offset: 12 + keen::float32 restedAnchorSize; // Offset: 16 + keen::float2 restedBarPieceSize; // Offset: 20 +}; + +struct FbUiHudPlayerStatus { + keen::float2 widgetBaseOffset; // Offset: 0 + keen::float4 flameWarningThresholds; // Offset: 8 + keen::ds::FbUiHudBuffDisplay buffDisplay; // Offset: 24 + keen::ds::UiNineSliceTexture barBackground; // Offset: 52 + keen::float4 barBorderThickness; // Offset: 116 + keen::float2 barGroupOffset; // Offset: 132 + keen::float2 xpBarSize; // Offset: 140 + keen::float2 xpBarOffset; // Offset: 148 + keen::float32 xpBarDisplayTime; // Offset: 156 + keen::float2 healthBarSize; // Offset: 160 + keen::float2 manaBarSize; // Offset: 168 + keen::ds::UiTexture staminaCircleMain; // Offset: 176 + keen::ds::UiTexture staminaCircleBuff; // Offset: 224 + keen::ds::UiTexture staminaCircleInner; // Offset: 272 + keen::DsArray staminaCirlceSizesInner; // Offset: 320 + keen::DsArray staminaCirlceSizesOuter; // Offset: 360 + keen::ds::FbUiAnimatedHealthBarColors xpColors; // Offset: 400 + keen::ds::FbUiAnimatedHealthBarColors healthColors; // Offset: 448 + keen::ds::FbUiAnimatedHealthBarColors staminaColors; // Offset: 496 + keen::ds::FbUiAnimatedHealthBarColors manaColors; // Offset: 544 +}; + +struct FbUiAltarAttentionMarkerAnim { + keen::Time altarAttentionMarkerFadeIn; // Offset: 0 + keen::Time altarAttentionMarkerFadeOut; // Offset: 8 + keen::Time altarAttentionMarkerSecondPingDelay; // Offset: 16 + keen::Time altarAttentionMarkerAnimDelay; // Offset: 24 + keen::float32 altarAttentionMarkerGrow; // Offset: 32 + keen::float32 altarAttentionMarkerPingSize; // Offset: 36 + keen::float32 altarAttentionMarkerMinAlpha; // Offset: 40 + keen::float32 altarAttentionMarkerPingStartAlpha; // Offset: 44 + keen::float32 altarAttentionMarkerPingEndAlpha; // Offset: 48 +}; + +struct FbUiHUDSpatial { + keen::ds::UiTexture lockonBackground; // Offset: 0 + keen::ds::UiTexture lockonArrow; // Offset: 48 + keen::float32 lockonArrowSize; // Offset: 96 + keen::ds::UiNineSliceTexture healthBar; // Offset: 100 + keen::ds::UiTexture critIndicator; // Offset: 164 + keen::float2 critIndcatorOffset; // Offset: 212 + keen::float32 bonusIndicatorUnitHeight; // Offset: 220 + keen::ds::UiTexture bonusIndicator; // Offset: 224 + keen::ds::UiTexture malusIndicator; // Offset: 272 + keen::float2 bonusGroupOffset; // Offset: 320 + keen::float2 malusGroupOffset; // Offset: 328 + keen::float2 symbolOffset; // Offset: 336 + keen::float2 enemyHealthBarSize; // Offset: 344 + keen::float2 enemyStaminaBarSize; // Offset: 352 + keen::float2 enemyBarGroupBorder; // Offset: 360 + keen::UiColor damageTextBonusFill; // Offset: 368 + keen::UiColor damageTextBonusOutlineFrom; // Offset: 376 + keen::UiColor damageTextBonusOutlineTo; // Offset: 384 + keen::UiColor damageTextMalusFill; // Offset: 392 + keen::UiColor damageTextMalusOutlineFrom; // Offset: 400 + keen::UiColor damageTextMalusOutlineTo; // Offset: 408 + keen::UiColor attentionMarkerQuestionFill; // Offset: 416 + keen::UiColor attentionMarkerFlameInfoFill; // Offset: 424 + keen::ds::FbUiAnimatedHealthBarColors coPlayerHealthColors; // Offset: 432 + keen::UiColor coPlayerLevelBadgeFill; // Offset: 480 + keen::UiColor coPlayerLevelBadgeOutline; // Offset: 488 + keen::UiColor enemyLevelBadgeFill; // Offset: 496 + keen::UiColor enemyLevelBadgeOutline; // Offset: 504 + keen::ds::FbUiAnimatedHealthBarColors enemyHealthColors; // Offset: 512 + keen::ds::FbUiAnimatedHealthBarColors enemyStaminaColors; // Offset: 560 + keen::UiColor enemyHigherLevelBadgeFill; // Offset: 608 + keen::UiColor enemyHigherLevelBadgeOutline; // Offset: 616 + keen::ds::FbUiAnimatedHealthBarColors enemyHigherLevelHealthColors; // Offset: 624 + keen::ds::FbUiAnimatedHealthBarColors neutralHealthColors; // Offset: 672 + keen::UiColor neutralLevelBadgeFill; // Offset: 720 + keen::UiColor neutralLevelBadgeOutline; // Offset: 728 + keen::ds::FbUiAltarAttentionMarkerAnim altarAttentionMarkerAnim; // Offset: 736 + keen::ds::UiTexture hookshotPullTargetIcon; // Offset: 792 + keen::ds::UiTexture hookshotPullTargetIconLockIn; // Offset: 840 +}; + +struct FbUiHudBuildModeHint { + keen::ds::UiTexture slotArc; // Offset: 0 + keen::ds::UiTexture flashGradient; // Offset: 48 + keen::ds::UiTexture flashMask; // Offset: 96 + keen::UiColor flashColor; // Offset: 144 +}; + +struct FbUiHudTopNotification { + keen::UiColor bgTintColor; // Offset: 0 + keen::UiColor accentColor; // Offset: 8 + keen::float32 barMinWidth; // Offset: 16 + keen::float32 featherWidth; // Offset: 20 + keen::float32 fadeWaveWidth; // Offset: 24 + keen::float32 fadeInFromX; // Offset: 28 + keen::float32 offsetY; // Offset: 32 + keen::float32 offsetYinPlayerMenu; // Offset: 36 +}; + +struct FbUiHudLowHealth { + keen::ds::UiTexture vignette; // Offset: 0 + keen::UiColor vignetteColor; // Offset: 48 + keen::UiColor enterLowHealthFlashColor; // Offset: 56 +}; + +struct FbUiHudFreezing { + keen::ds::UiTexture frostBorderCorner; // Offset: 0 + keen::float32 frostBorderCornerHeightTop; // Offset: 48 + keen::float32 frostBorderCornerHeightBottom; // Offset: 52 + keen::ds::UiTexture frostBorderTop; // Offset: 56 + keen::ds::UiTexture creepInGradientTop; // Offset: 104 + keen::float32 frostBorderHeightTop; // Offset: 152 + keen::ds::UiTexture frostBorderLeft; // Offset: 156 + keen::ds::UiTexture creepInGradientLeft; // Offset: 204 + keen::float32 frostBorderHeightBottom; // Offset: 252 + keen::float32 frostBorderWidthLeftRight; // Offset: 256 + keen::UiColor frostBorderTint; // Offset: 260 + keen::float32 bgBlurCenterYratio; // Offset: 268 + keen::ds::UiTexture bgBlurVignetteTopLeft; // Offset: 272 + keen::ds::UiTexture bgBlurVignetteTop; // Offset: 320 + keen::ds::UiTexture bgBlurVignetteLeft; // Offset: 368 + keen::float32 bgBlurCornerWidth; // Offset: 416 + keen::float32 bgBlurCornerHeightTop; // Offset: 420 + keen::float32 bgBlurCornerHeightBottom; // Offset: 424 + keen::UiColor bgBlurTint; // Offset: 428 + keen::float32 idleAlpha; // Offset: 436 + keen::float2 criticalAlpha; // Offset: 440 +}; + +struct FbUiControlScheme { + keen::ds::UiTexture game; // Offset: 0 + keen::ds::UiTexture build; // Offset: 48 +}; + +struct FbUiHudBarrierUnlock { + keen::float32 backgroundSize; // Offset: 0 + keen::ds::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::ds::UiTexture backgroundOrnament; // Offset: 52 + keen::ds::UiTexture ornamentHighlight; // Offset: 100 + keen::UiColor backgroundColor; // Offset: 148 + keen::UiColor highlightColor; // Offset: 156 + keen::UiColor glowRippleColor; // Offset: 164 + keen::Time lootDelay; // Offset: 176 +}; + +struct FbUiHudMessage { + keen::float32 backgroundSize; // Offset: 0 + keen::ds::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::ds::UiTexture backgroundOrnament; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 100 + keen::float32 badgeSize; // Offset: 108 + keen::UiColor badgeColor; // Offset: 112 + keen::UiColor glowRippleColor; // Offset: 120 + keen::Time messageDelay; // Offset: 128 + keen::Time lootDelay; // Offset: 136 +}; + +struct FbUiHudPartyHealth { + keen::float32 widgetGroupOffsetY; // Offset: 0 + keen::UiColor barFillColor; // Offset: 4 + keen::UiColor barBgColor; // Offset: 12 + keen::float2 barSize; // Offset: 20 + keen::float32 barSpacing; // Offset: 28 +}; + +struct FbUiHudServerPerformance { + keen::Time badPerformanceHintDuration; // Offset: 0 + keen::Time badPerformanceHintInterval; // Offset: 8 + keen::Time criticalPerformanceHintDuration; // Offset: 16 + keen::Time criticalPerformanceHintInterval; // Offset: 24 + keen::UiColor badPerformanceBgColor; // Offset: 32 + keen::UiColor badPerformanceTextColor; // Offset: 40 + keen::UiColor criticalPerformanceBgColor; // Offset: 48 + keen::UiColor criticalPerformanceTextColor; // Offset: 56 +}; + +struct FbUiHudOutOfBound { + keen::UiColor coverColor; // Offset: 0 + keen::ds::UiLocaTagReference messageString; // Offset: 8 + keen::ds::UiCharacterStyle messageStyle; // Offset: 24 + keen::ds::UiCharacterStyle countdownStyle; // Offset: 144 +}; + +struct FbUiHudNightSpeed { + keen::UiColor bgColor; // Offset: 0 + keen::UiColor iconColor; // Offset: 8 + keen::ds::UiTexture sleeper; // Offset: 16 + keen::ds::UiTexture partyMember; // Offset: 64 + keen::ds::UiTexture nightSpeed; // Offset: 112 +}; + +struct FbUiHudGameProgressSummary { + keen::Time visibleDuration; // Offset: 0 + keen::UiColor bgColor; // Offset: 8 + keen::UiColor accentColor; // Offset: 16 + keen::float32 featherWidth; // Offset: 24 + keen::float32 widgetWidth; // Offset: 28 + keen::UiColor contentTintFlame; // Offset: 32 + keen::UiColor contentTintCrafting; // Offset: 40 + keen::ds::UiTexture illustrationFlame; // Offset: 48 + keen::ds::UiTexture illustrationCrafting; // Offset: 96 +}; + +struct FbUiHudMusicBuff { + keen::ds::UiTexture musicIcon; // Offset: 0 + keen::UiColor barBgColor; // Offset: 48 + keen::UiColor barFillColor; // Offset: 56 + keen::UiColor barFillEndColor; // Offset: 64 +}; + +struct FbUiHudAnimalTaming { + keen::ds::UiTexture tamingIconEmpty; // Offset: 0 + keen::ds::UiTexture tamingIconPending; // Offset: 48 + keen::ds::UiTexture tamingIconFull; // Offset: 96 + keen::ds::UiTexture tamingAttention; // Offset: 144 + keen::ds::UiTexture tamingAlert; // Offset: 192 + keen::ds::UiTexture tamingAlertOutline; // Offset: 240 + keen::UiColor tamingIconColor; // Offset: 288 +}; + +struct FbUiItemWheel { + keen::UiColor slotColor_idle; // Offset: 0 + keen::UiColor slotColor_selected; // Offset: 8 + keen::UiColor previewCenterColor; // Offset: 16 + keen::ds::UiTexture background; // Offset: 24 + keen::ds::UiTexture direction; // Offset: 72 + keen::ds::UiTexture dot_selected; // Offset: 120 + keen::ds::UiTexture dot_unselected; // Offset: 168 + keen::ds::UiTexture wheelRing_complete; // Offset: 216 + keen::ds::UiTexture wheelRing_highlight; // Offset: 264 + keen::ds::UiTexture blurredBackgroundMask; // Offset: 312 + keen::UiColor highlightColor; // Offset: 360 + keen::UiColor stickOutOfRangeColor; // Offset: 368 +}; + +struct FbUiCompass { + keen::ds::UiSize baseSize; // Offset: 0 + keen::ds::UiTexture background; // Offset: 8 + keen::ds::UiTexture northBackground; // Offset: 56 + keen::ds::UiTexture north; // Offset: 104 + keen::ds::UiTexture east; // Offset: 152 + keen::ds::UiTexture south; // Offset: 200 + keen::ds::UiTexture west; // Offset: 248 + keen::ds::UiTexture mark; // Offset: 296 + keen::ds::UiTexture player; // Offset: 344 + keen::ds::UiTexture priorityMarker; // Offset: 392 + keen::ds::UiNineSliceTexture fogTimerShape; // Offset: 440 + keen::UiColor fogMeterFill; // Offset: 504 + keen::UiColor fogMeterRange; // Offset: 512 + keen::UiColor fogMeterDrain; // Offset: 520 +}; + +struct FbUiDialog { + keen::UiColor dialogMarkerColor; // Offset: 0 + keen::UiColor floatingBubbleTint; // Offset: 8 + keen::UiColor frostedGlassTint; // Offset: 16 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiHUD { + keen::UiBorder screenPosClampingBorderDefault; // Offset: 0 + keen::UiColor widgetBackgroundColor; // Offset: 16 + keen::ds::FbUiCursors cursors; // Offset: 24 + keen::ds::FbUiHudPlayerStatus playerStatus; // Offset: 296 + keen::ds::FbUiItemWheel itemWheel; // Offset: 888 + keen::ds::FbUiHudMessage levelUp; // Offset: 1264 + keen::ds::FbUiHudBarrierUnlock barrierUnlocked; // Offset: 1408 + keen::ds::FbUiHudMessage doorUnlocked; // Offset: 1592 + keen::ds::FbUiHudMessage secretUnlocked; // Offset: 1736 + keen::ds::UiTexture quickItemBackground; // Offset: 1880 + keen::ds::UiTexture equippedItemBackground; // Offset: 1928 + keen::ds::FbUiHudBuildModeHint buildModeHint; // Offset: 1976 + keen::UiColor buildingZoneTooltipOutline; // Offset: 2128 + keen::ds::FbUiHudNightSpeed nightSpeedHint; // Offset: 2136 + keen::ds::FbUiCompass compass; // Offset: 2296 + keen::ds::FbUiAnimatedHealthBarColors bossHealthColors; // Offset: 2824 + keen::ds::FbUiAnimatedHealthBarColors bossStaminaColors; // Offset: 2872 + keen::UiBorder bossBarBorderThickness; // Offset: 2920 + keen::ds::FbUiDialog dialog; // Offset: 2936 + keen::ds::FbUiHUDSpatial spatial; // Offset: 2968 + keen::ds::FbUiHudTopNotification notification; // Offset: 3856 + keen::ds::FbUiHudGameProgressSummary gameProgressSummary; // Offset: 3896 + keen::ds::FbUiHudLowHealth lowHealthVignette; // Offset: 4040 + keen::ds::UiTexture blurVignette; // Offset: 4104 + keen::ds::FbUiHudFreezing freezingVignette; // Offset: 4152 + keen::DsArray freezingWarningTimes; // Offset: 4600 + keen::ds::FbUiHudPartyHealth partyHealth; // Offset: 4640 + keen::ds::FbUiHudOutOfBound outOfBound; // Offset: 4672 + keen::ds::FbUiHudServerPerformance serverPerforamceHint; // Offset: 4936 + keen::ds::FbUiHudMusicBuff musicBuff; // Offset: 5000 + keen::ds::FbUiHudAnimalTaming animalTaming; // Offset: 5072 +}; + +struct FbUiHeadline { + keen::ds::UiNineSliceTexture background; // Offset: 0 + keen::UiColor criticalWarningTextColor; // Offset: 64 +}; + +struct FbUiItemWheelDummy { + keen::ds::UiTexture texture; // Offset: 0 + keen::ds::UiTexture glow; // Offset: 48 +}; + +struct FbUiScreenDeath { + keen::UiColor backgroundColor; // Offset: 0 + keen::ds::UiLocaTagReference normalDeathHeadline; // Offset: 8 + keen::ds::UiLocaTagReference fogDeathHeadline; // Offset: 24 + keen::ds::UiLocaTagReference fogDeathHint; // Offset: 40 + keen::ds::UiLocaTagReference inventoryLossHint; // Offset: 56 + keen::ds::UiLocaTagReference inventoryLostAllHint; // Offset: 72 +}; + +struct FbUiScreen { + keen::ds::UiTexture titleScreenKeyArt; // Offset: 0 + keen::ds::FbUiScreenDeath death; // Offset: 48 + keen::ds::FbUiControlScheme controlScheme; // Offset: 136 +}; + +struct FbUiSoundsMenuGeneric { + keen::ds::SoundContainerReference flameAltarOpen; // Offset: 0 + keen::ds::SoundContainerReference skillTreeOpen; // Offset: 16 + keen::ds::SoundContainerReference loreOpen; // Offset: 32 + keen::ds::SoundContainerReference loreClose; // Offset: 48 + keen::ds::SoundContainerReference signpostOpen; // Offset: 64 + keen::ds::SoundContainerReference signpostClose; // Offset: 80 + keen::ds::SoundContainerReference systemMenuOpen; // Offset: 96 + keen::ds::SoundContainerReference open; // Offset: 112 + keen::ds::SoundContainerReference close; // Offset: 128 + keen::ds::SoundContainerReference back; // Offset: 144 + keen::ds::SoundContainerReference clickNeutral; // Offset: 160 + keen::ds::SoundContainerReference tabChange; // Offset: 176 + keen::ds::SoundContainerReference highlightChange; // Offset: 192 + keen::ds::SoundContainerReference entryTrigger; // Offset: 208 + keen::ds::SoundContainerReference entryCancel; // Offset: 224 + keen::ds::SoundContainerReference entryTriggerFailed; // Offset: 240 + keen::ds::SoundContainerReference sideMenuFadeIn; // Offset: 256 + keen::ds::SoundContainerReference sideMenuFadeOut; // Offset: 272 + keen::ds::SoundContainerReference equip; // Offset: 288 + keen::ds::SoundContainerReference unequip; // Offset: 304 + keen::ds::SoundContainerReference columnChange; // Offset: 320 + keen::ds::SoundContainerReference leftOpen; // Offset: 336 + keen::ds::SoundContainerReference leftClose; // Offset: 352 + keen::ds::SoundContainerReference rightOpen; // Offset: 368 + keen::ds::SoundContainerReference rightClose; // Offset: 384 + keen::ds::SoundContainerReference settingWidgetToggle; // Offset: 400 + keen::ds::SoundContainerReference settingMenuEnter; // Offset: 416 + keen::ds::SoundContainerReference settingMenuExit; // Offset: 432 + keen::ds::SoundContainerReference repairItems; // Offset: 448 + keen::ds::SoundContainerReference textEnter; // Offset: 464 + keen::ds::SoundContainerReference textDelete; // Offset: 480 + keen::ds::SoundContainerReference mouseClickGeneric; // Offset: 496 + keen::ds::SoundContainerReference mouseHover; // Offset: 512 + keen::ds::SoundContainerReference activatePersonalProgression; // Offset: 528 + keen::ds::SoundContainerReference deactivatePersonalProgression; // Offset: 544 + keen::ds::SoundContainerReference sliderValueChange; // Offset: 560 + keen::ds::SoundContainerReference selectDifficulty; // Offset: 576 + keen::Time mouseHoverTimeout; // Offset: 592 +}; + +struct FbUiSoundsMenuCrafting { + keen::ds::SoundContainerReference recipeMoveWithinEntry; // Offset: 0 + keen::ds::SoundContainerReference highlightChange; // Offset: 16 + keen::ds::SoundContainerReference entryTrigger; // Offset: 32 + keen::ds::SoundContainerReference craftingSuccessful; // Offset: 48 + keen::ds::SoundContainerReference craftingFailed; // Offset: 64 + keen::ds::SoundContainerReference pin; // Offset: 80 + keen::ds::SoundContainerReference unpin; // Offset: 96 + keen::ds::SoundContainerReference pinnedRecipeCraftable; // Offset: 112 + keen::ds::SoundContainerReference pinnedRecipeIngredientCompleted; // Offset: 128 + keen::ds::SoundContainerReference perkUnlocked; // Offset: 144 +}; + +struct FbUiSoundsMenuJournal { + keen::ds::SoundContainerReference openTile; // Offset: 0 +}; + +struct FbUiSoundsMenuAltar { + keen::ds::SoundContainerReference highlightChange; // Offset: 0 + keen::ds::SoundContainerReference entryTrigger; // Offset: 16 + keen::ds::SoundContainerReference leave; // Offset: 32 +}; + +struct FbUiSoundsLootAquisition { + keen::ds::SoundContainerReference common; // Offset: 0 + keen::ds::SoundContainerReference uncommon; // Offset: 16 + keen::ds::SoundContainerReference rare; // Offset: 32 + keen::ds::SoundContainerReference epic; // Offset: 48 + keen::ds::SoundContainerReference legendary; // Offset: 64 + keen::ds::SoundContainerReference keyItem; // Offset: 80 + keen::ds::SoundContainerReference specialLoot; // Offset: 96 + keen::ds::SoundContainerReference npc; // Offset: 112 + keen::ds::SoundContainerReference pinnedRecipeHint; // Offset: 128 + keen::ds::SoundContainerReference twitchReward; // Offset: 144 +}; + +struct FbUiSoundsSkillTree { + keen::ds::SoundContainerReference attributeIncrease; // Offset: 0 + keen::ds::SoundContainerReference skillUnlock; // Offset: 16 + keen::ds::SoundContainerReference skillModUnlock; // Offset: 32 + keen::ds::SoundContainerReference passivePerkUnlock; // Offset: 48 + keen::ds::SoundContainerReference reactivePerkUnlock; // Offset: 64 + keen::ds::SoundContainerReference nodeFocus; // Offset: 80 + keen::ds::SoundContainerReference zoomIn; // Offset: 96 + keen::ds::SoundContainerReference zoomOut; // Offset: 112 +}; + +struct FbUiSoundsEventMessages { + keen::ds::SoundContainerReference menuUpdateNotification; // Offset: 0 + keen::ds::SoundContainerReference locationDiscovery; // Offset: 16 + keen::ds::SoundContainerReference npcRevived; // Offset: 32 + keen::ds::SoundContainerReference amuletUpgraded; // Offset: 48 + keen::ds::SoundContainerReference giftingSend; // Offset: 64 + keen::ds::SoundContainerReference giftingReceive; // Offset: 80 + keen::ds::SoundContainerReference clueCompleted; // Offset: 96 + keen::ds::SoundContainerReference playerLevelup; // Offset: 112 + keen::ds::SoundContainerReference flameLevelUp; // Offset: 128 + keen::ds::SoundContainerReference magicBarrierUnlocked; // Offset: 144 + keen::ds::SoundContainerReference doorUnlocked; // Offset: 160 + keen::ds::SoundContainerReference secretDoorUnlocked; // Offset: 176 + keen::ds::SoundContainerReference allMissedQuestsCompleted; // Offset: 192 + keen::ds::SoundContainerReference newTwitchDropUnlocked; // Offset: 208 +}; + +struct FbUiSoundsAdventureMap { + keen::ds::SoundContainerReference waypointSet; // Offset: 0 + keen::ds::SoundContainerReference waypointClear; // Offset: 16 + keen::ds::SoundContainerReference waypointLocate; // Offset: 32 + keen::ds::SoundContainerReference zoomIn; // Offset: 48 + keen::ds::SoundContainerReference zoomOut; // Offset: 64 + keen::ds::SoundContainerReference fastTravelTriggered; // Offset: 80 + keen::ds::SoundContainerReference showOnMap; // Offset: 96 + keen::ds::SoundContainerReference goToHomeBase; // Offset: 112 + keen::ds::SoundContainerReference recenter; // Offset: 128 + keen::ds::SoundContainerReference playerPing; // Offset: 144 +}; + +struct FbUiSoundsDialog { + keen::ds::SoundContainerReference startDialog; // Offset: 0 + keen::ds::SoundContainerReference changeEntry; // Offset: 16 + keen::ds::SoundContainerReference confirmEntry; // Offset: 32 + keen::ds::SoundContainerReference cancelEntry; // Offset: 48 + keen::ds::SoundContainerReference revealDialogLine; // Offset: 64 +}; + +struct FbUiSoundsActionbar { + keen::ds::SoundContainerReference cantUse; // Offset: 0 + keen::ds::SoundContainerReference moveHighlight; // Offset: 16 + keen::ds::SoundContainerReference cycleActionbar; // Offset: 32 +}; + +struct FbUiSoundsBackpack { + keen::ds::SoundContainerReference inventoryFull; // Offset: 0 + keen::ds::SoundContainerReference deleteItem; // Offset: 16 + keen::ds::SoundContainerReference dropItemIntoSlot; // Offset: 32 + keen::ds::SoundContainerReference dropItemIntoActionBar; // Offset: 48 + keen::ds::SoundContainerReference grabItem; // Offset: 64 + keen::ds::SoundContainerReference swapItems; // Offset: 80 + keen::ds::SoundContainerReference splitStack; // Offset: 96 + keen::ds::SoundContainerReference salvageItem; // Offset: 112 + keen::ds::SoundContainerReference sortInventory; // Offset: 128 +}; + +struct FbUiSoundsItemWheel { + keen::ds::SoundContainerReference open; // Offset: 0 + keen::ds::SoundContainerReference close; // Offset: 16 + keen::ds::SoundContainerReference changeHighlight; // Offset: 32 +}; + +struct FbUiSoundsHud { + keen::ds::SoundContainerReference lowHealthLoop; // Offset: 0 + keen::ds::SoundContainerReference enterFog; // Offset: 16 + keen::Time enterFogTimeout; // Offset: 32 + keen::ds::SoundContainerReference enterDangerousFog; // Offset: 40 + keen::ds::SoundContainerReference enterFreeze; // Offset: 56 + keen::ds::SoundContainerReference freezeWarning; // Offset: 72 + keen::ds::SoundContainerReference freezeResistanceDepleted; // Offset: 88 + keen::ds::SoundContainerReference flameReminder; // Offset: 104 + keen::ds::SoundContainerReference flameLow; // Offset: 120 + keen::ds::SoundContainerReference flameVeryLow; // Offset: 136 + keen::ds::SoundContainerReference flameDepleted; // Offset: 152 + keen::ds::SoundContainerReference flameLowLoop; // Offset: 168 + keen::ds::SoundContainerReference manaInsufficient; // Offset: 184 + keen::Time manaInsufficientTimeout; // Offset: 200 + keen::ds::SoundContainerReference staminaInsufficient; // Offset: 208 + keen::Time staminaInsufficientTimeout; // Offset: 224 + keen::ds::SoundContainerReference ammoChanged; // Offset: 232 + keen::ds::SoundContainerReference buildActionFailed; // Offset: 248 + keen::Time buildActionFailedTimeout; // Offset: 264 + keen::ds::SoundContainerReference buildUndoSuccessful; // Offset: 272 + keen::ds::SoundContainerReference buildInvMaximize; // Offset: 288 + keen::ds::SoundContainerReference buildInvMinimize; // Offset: 304 + keen::ds::SoundContainerReference buildModeEnter; // Offset: 320 + keen::ds::SoundContainerReference buildModeExit; // Offset: 336 + keen::ds::SoundContainerReference musicBuffProgressed; // Offset: 352 +}; + +struct FbUiSoundsTitleScreen { + keen::ds::SoundContainerReference backgroundMusic; // Offset: 0 + keen::ds::SoundContainerReference startTrigger; // Offset: 16 +}; + +struct FbUiSounds { + keen::ds::SoundContainerReference test; // Offset: 0 + keen::ds::FbUiSoundsTitleScreen titleScreen; // Offset: 16 + keen::ds::FbUiSoundsEventMessages events; // Offset: 48 + keen::ds::FbUiSoundsMenuGeneric menu; // Offset: 272 + keen::ds::FbUiSoundsMenuCrafting crafting; // Offset: 872 + keen::ds::FbUiSoundsMenuJournal journal; // Offset: 1032 + keen::ds::FbUiSoundsMenuAltar altar; // Offset: 1048 + keen::ds::FbUiSoundsSkillTree skilltree; // Offset: 1096 + keen::ds::FbUiSoundsLootAquisition lootGet; // Offset: 1224 + keen::ds::FbUiSoundsAdventureMap map; // Offset: 1384 + keen::ds::FbUiSoundsDialog dialog; // Offset: 1544 + keen::ds::FbUiSoundsItemWheel itemWheel; // Offset: 1624 + keen::ds::FbUiSoundsHud hud; // Offset: 1672 + keen::ds::FbUiSoundsActionbar actionbar; // Offset: 2040 + keen::ds::FbUiSoundsBackpack backpack; // Offset: 2088 +}; + +struct FbUiHudCharacterStyles { + keen::ds::UiCharacterStyle celebrationMain; // Offset: 0 + keen::ds::UiCharacterStyle celebrationLevelNumber; // Offset: 120 + keen::ds::UiCharacterStyle specialLootMain; // Offset: 240 + keen::ds::UiCharacterStyle specialLootSecondary; // Offset: 360 + keen::ds::UiCharacterStyle enemyDamagePoint; // Offset: 480 + keen::ds::UiCharacterStyle enemyDamageBonusText; // Offset: 600 + keen::ds::UiCharacterStyle healingDamagePoint; // Offset: 720 + keen::ds::UiCharacterStyle playerDamagePoint; // Offset: 840 + keen::ds::UiCharacterStyle immuneDamagePoint; // Offset: 960 + keen::ds::UiCharacterStyle restoreManaPoint; // Offset: 1080 + keen::ds::UiCharacterStyle playerName; // Offset: 1200 + keen::ds::UiCharacterStyle enemyName; // Offset: 1320 + keen::ds::UiCharacterStyle bossName; // Offset: 1440 + keen::ds::UiCharacterStyle ammoListEntry; // Offset: 1560 + keen::ds::UiCharacterStyle staminaInfo; // Offset: 1680 + keen::ds::UiCharacterStyle compassMarkerDistance; // Offset: 1800 + keen::ds::UiCharacterStyle compassWayointMessage; // Offset: 1920 + keen::ds::UiCharacterStyle compassFogTimer; // Offset: 2040 + keen::ds::UiCharacterStyle compassFogTypeLabel; // Offset: 2160 + keen::ds::UiCharacterStyle compassLeaveFogWarning; // Offset: 2280 + keen::ds::UiCharacterStyle nightSpeedHint; // Offset: 2400 +}; + +struct FbUiMenuCharacterStyles { + keen::ds::UiCharacterStyle topTab; // Offset: 0 + keen::ds::UiCharacterStyle header1; // Offset: 120 + keen::ds::UiCharacterStyle header2; // Offset: 240 + keen::ds::UiCharacterStyle header3; // Offset: 360 + keen::ds::UiCharacterStyle buttonHint; // Offset: 480 + keen::ds::UiCharacterStyle textfieldEmptyHint; // Offset: 600 +}; + +struct FbUiMapCharacterStyles { + keen::ds::UiCharacterStyle playerName; // Offset: 0 + keen::ds::UiCharacterStyle locationName; // Offset: 120 + keen::ds::UiCharacterStyle clusterSizeNumber; // Offset: 240 + keen::ds::UiCharacterStyle markerLabel; // Offset: 360 + keen::ds::UiCharacterStyle tooltip; // Offset: 480 +}; + +struct FbUiFontSizes { + keen::DsArray textScaleSteps; // Offset: 0 + keen::float32 xsmall; // Offset: 40 + keen::float32 small; // Offset: 44 + keen::float32 medium; // Offset: 48 + keen::float32 large; // Offset: 52 + keen::float32 xlarge; // Offset: 56 + keen::float32 caps_small; // Offset: 60 + keen::float32 caps_medium; // Offset: 64 + keen::float32 caps_large; // Offset: 68 + keen::float32 caps_xlarge; // Offset: 72 +}; + +struct FbUiCharacterStyles { + keen::ds::UiCharacterStyle defaultStyle; // Offset: 0 + keen::ds::UiCharacterStyle defaultStyleOutline; // Offset: 120 + keen::ds::UiCharacterStyle secondaryText; // Offset: 240 + keen::ds::UiCharacterStyle mutedItalic; // Offset: 360 + keen::ds::UiCharacterStyle redText; // Offset: 480 + keen::ds::UiCharacterStyle greenText; // Offset: 600 + keen::ds::UiCharacterStyle h1; // Offset: 720 + keen::ds::UiCharacterStyle h2; // Offset: 840 + keen::ds::UiCharacterStyle h3; // Offset: 960 + keen::ds::UiCharacterStyle legalText; // Offset: 1080 + keen::ds::UiCharacterStyle warning; // Offset: 1200 + keen::ds::UiCharacterStyle hyperlink; // Offset: 1320 + keen::ds::UiCharacterStyle location; // Offset: 1440 + keen::ds::UiCharacterStyle npc; // Offset: 1560 + keen::ds::UiCharacterStyle craftingstation; // Offset: 1680 + keen::ds::UiCharacterStyle keyitem; // Offset: 1800 + keen::ds::UiCharacterStyle lorename; // Offset: 1920 + keen::ds::UiCharacterStyle impactAttribute; // Offset: 2040 + keen::ds::UiCharacterStyle textChatSpeakerNameSelf; // Offset: 2160 + keen::ds::UiCharacterStyle textChatSpeakerNameOther; // Offset: 2280 + keen::ds::UiCharacterStyle textChatMessage; // Offset: 2400 + keen::ds::FbUiHudCharacterStyles hud; // Offset: 2520 + keen::ds::FbUiMenuCharacterStyles menu; // Offset: 5040 + keen::ds::FbUiMapCharacterStyles map; // Offset: 5760 + keen::ds::UiCharacterStyle keyboardLegend; // Offset: 6360 + keen::ds::UiCharacterStyle versionWatermark; // Offset: 6480 + keen::ds::UiCharacterStyle versionWatermarkSecondLine; // Offset: 6600 +}; + +struct FbUiParagraphStyles { + keen::ds::UiParagraphStyle hudDefault; // Offset: 0 + keen::ds::UiParagraphStyle test; // Offset: 64 +}; + +struct FbUiScrollingLayouts { +}; + +struct Curve { + keen::uint32 sampleCount; // Offset: 0 +}; + +typedef keen::UiPosition UiPosition; + +struct UiTestTypes { + keen::ds::string type_string; // Offset: 0 + keen::float2 type_float2; // Offset: 40 + keen::float3 type_float3; // Offset: 48 + keen::uint32 type_uint32; // Offset: 60 + keen::bool type_bool; // Offset: 64 + keen::Color type_Color; // Offset: 68 + keen::ds::SoundContainerReference type_SoundContainerReference; // Offset: 72 + keen::ds::Curve type_Curve; // Offset: 88 + keen::ds::UiTexture type_UiTexture; // Offset: 92 + keen::ds::UiPosition type_UiPosition; // Offset: 140 + keen::ds::UiSize type_UiSize; // Offset: 148 + keen::UiColor type_UiColor; // Offset: 156 +}; + +typedef keen::GameUiTextLayoutStyle GameUiTextLayoutStyle; + +struct GameUiTextParameterData { + keen::ds::string characterStyle; // Offset: 0 + keen::ds::string paragraphStyle; // Offset: 40 + keen::float2 offset; // Offset: 80 + keen::float2 stretch; // Offset: 88 + keen::UiAlignment alignment; // Offset: 96 + keen::UiBorder margin; // Offset: 100 + keen::UiBorder padding; // Offset: 116 + keen::Time revealTime; // Offset: 136 + keen::ds::GameUiTextLayoutStyle textLayoutStyle; // Offset: 144 + keen::bool allowLineBreak; // Offset: 145 +}; + +typedef keen::GameUiImageSizing GameUiImageSizing; + +struct GameUiImageParameterData { + keen::ds::GameUiImageSizing sizing; // Offset: 0 + keen::float32 alpha; // Offset: 4 + keen::UiColor color; // Offset: 8 + keen::float2 offset; // Offset: 16 + keen::float2 stretch; // Offset: 24 + keen::UiBorder margin; // Offset: 32 + keen::UiBorder padding; // Offset: 48 +}; + +struct FbUiTestParameters { + keen::ds::UiTestTypes _types; // Offset: 0 + keen::ds::FbUiScrollingLayouts scrollingLayouts; // Offset: 168 + keen::ds::GameUiTextParameterData testTextParameter; // Offset: 176 + keen::ds::GameUiImageParameterData testImageParameter; // Offset: 328 + keen::ds::UiNineSliceTexture testNineSliceTexture; // Offset: 392 + keen::UiBorder testNineSliceScreenBorder; // Offset: 456 + keen::Time durationTextTestTime; // Offset: 472 + keen::bool durationTextShowOnlyBiggestTimeUnit; // Offset: 480 + keen::bool durationTextUseLocalizedUnits; // Offset: 481 + keen::bool durationTextUseThirdNumber; // Offset: 482 + keen::uint8 durationTextSubSecondDigits; // Offset: 483 +}; + +struct FbUiRarityColors { + keen::UiColor undefined; // Offset: 0 + keen::UiColor common; // Offset: 8 + keen::UiColor uncommon; // Offset: 16 + keen::UiColor rare; // Offset: 24 + keen::UiColor epic; // Offset: 32 + keen::UiColor legendary; // Offset: 40 + keen::UiColor vanity; // Offset: 48 + keen::UiColor collectible; // Offset: 56 + keen::float32 vanityTextColorIntensity; // Offset: 64 +}; + +struct FbUiNetworkQualityColors { + keen::UiColor good; // Offset: 0 + keen::UiColor acceptable; // Offset: 8 + keen::UiColor bad; // Offset: 16 +}; + +struct FbUiGlobalColors { + keen::ds::FbUiRarityColors rarity; // Offset: 0 + keen::UiColor priorityColor; // Offset: 68 + keen::UiColor priorityBgColor; // Offset: 76 + keen::UiColor attentionColor; // Offset: 84 + keen::UiColor checkmarkGreen; // Offset: 92 + keen::UiColor warningColor; // Offset: 100 + keen::UiColor warningColorBackground; // Offset: 108 + keen::UiColor warningColorFrostedGlassTint; // Offset: 116 + keen::UiColor attributeBetterColor; // Offset: 124 + keen::UiColor attributeWorseColor; // Offset: 132 + keen::ds::FbUiNetworkQualityColors networkQuality; // Offset: 140 +}; + +struct FbUiFrostedGlassParameters { + keen::uint32 downsampleSteps; // Offset: 0 + keen::float32 sigma; // Offset: 4 + keen::ObjectReference colorGradingMap; // Offset: 8 + keen::bool colorGradeBeforeBlur; // Offset: 24 +}; + +struct FbUiStartUpLogo { + keen::ds::UiTexture image; // Offset: 0 + keen::float32 height; // Offset: 48 + keen::ds::SoundContainerReference sound; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 68 +}; + +struct FbUiStartUpLogoSequence { + keen::Time logoFadeDuration; // Offset: 0 + keen::Time logoIdleDuration; // Offset: 8 + keen::ds::FbUiStartUpLogo keenLogo; // Offset: 16 + keen::ds::FbUiStartUpLogo bmwiLogo; // Offset: 92 + keen::Time postLogoDelay; // Offset: 168 + keen::Time mainMenuFadeInDuration; // Offset: 176 +}; + +struct FbUiPreGameCharacterViews { + keen::ds::FbUiCharacterView mainMenu; // Offset: 0 + keen::ds::FbUiCharacterView postMainMenu; // Offset: 28 + keen::ds::FbUiCharacterView savePortrait; // Offset: 56 +}; + +struct FbUiCustomizationHairColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationSkinColors { + keen::UiColor african_1; // Offset: 0 + keen::UiColor african_2; // Offset: 8 + keen::UiColor asian_1; // Offset: 16 + keen::UiColor caucasian_1; // Offset: 24 + keen::UiColor caucasian_2; // Offset: 32 + keen::UiColor caucasian_3; // Offset: 40 + keen::UiColor mixed_1; // Offset: 48 + keen::UiColor mixed_2; // Offset: 56 +}; + +struct FbUiCustomizationEyeColors { + keen::UiColor blue; // Offset: 0 + keen::UiColor brightBrown; // Offset: 8 + keen::UiColor brown; // Offset: 16 + keen::UiColor green; // Offset: 24 + keen::UiColor grey; // Offset: 32 +}; + +struct FbUiCustomizationEyeBrowColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationTabIcons { + keen::ds::UiTexture iconBodytype; // Offset: 0 + keen::ds::UiTexture iconHair; // Offset: 48 + keen::ds::UiTexture iconBeard; // Offset: 96 + keen::ds::UiTexture iconVoice; // Offset: 144 + keen::ds::UiTexture iconName; // Offset: 192 + keen::ds::UiTexture iconPlay; // Offset: 240 + keen::ds::UiTexture iconHairColor; // Offset: 288 + keen::ds::UiTexture iconBeardColor; // Offset: 336 + keen::ds::UiTexture iconEyeColor; // Offset: 384 + keen::ds::UiTexture iconEyeBrowColor; // Offset: 432 + keen::ds::UiTexture iconSkinColor; // Offset: 480 +}; + +struct FbUiCharacterCustomization { + keen::ds::FbUiCustomizationHairColors hairColors; // Offset: 0 + keen::ds::FbUiCustomizationSkinColors skinColors; // Offset: 64 + keen::ds::FbUiCustomizationEyeColors eyeColors; // Offset: 128 + keen::ds::FbUiCustomizationEyeBrowColors eyeBrowColors; // Offset: 168 + keen::ds::FbUiCustomizationTabIcons tabIcons; // Offset: 232 + keen::ds::UiTexture widgetSelector; // Offset: 760 + keen::ds::UiTexture voicePreview1; // Offset: 808 + keen::ds::UiTexture voicePreview2; // Offset: 856 +}; + +struct FbUiPreGame { + keen::ds::FbUiStartUpLogoSequence startUpSequence; // Offset: 0 + keen::Time startGameFadeOutDuration; // Offset: 184 + keen::ds::UiTexture titleScreenKeyArt; // Offset: 192 + keen::ds::UiTexture mainMenuLogo; // Offset: 240 + keen::UiBorder mainMenuPadding; // Offset: 288 + keen::float32 logoHeight; // Offset: 304 + keen::float32 backgroundScale; // Offset: 308 + keen::float32 backgroundNormalizedOffsetX; // Offset: 312 + keen::float32 backgroundNormalizedOffsetY; // Offset: 316 + keen::ds::UiTexture mainMenuEntryHighlightBackground; // Offset: 320 + keen::ds::UiTexture joinTileBg; // Offset: 368 + keen::ds::UiTexture hostPublicTileBg; // Offset: 416 + keen::ds::UiTexture privateTileBg; // Offset: 464 + keen::ds::FbUiPreGameCharacterViews characterViews; // Offset: 512 + keen::ds::FbUiCharacterCustomization characterCustomization; // Offset: 596 + keen::ds::UiTexture menuEntryHighlightBackground; // Offset: 1500 + keen::ds::UiTexture logoGPortal; // Offset: 1548 + keen::UiColor dedicatedServerColor; // Offset: 1596 + keen::UiColor friendServerColor; // Offset: 1604 +}; + +typedef keen::FbUiCreditsItemType FbUiCreditsItemType; + +struct FbUiCreditItemImage { + keen::DsString identifier; // Offset: 0 + keen::ds::UiTexture texture; // Offset: 40 + keen::UiColor color; // Offset: 88 + keen::ds::UiSize imageSize; // Offset: 96 +}; + +struct FbUiCreditImageRepository { +}; + +struct FbUiCreditsItem { + keen::ds::FbUiCreditsItemType itemType; // Offset: 0 + keen::ds::string text; // Offset: 8 + keen::ds::FbUiCreditItemImage image; // Offset: 48 +}; + +struct FbUiCreditStyle { + keen::ds::UiCharacterStyle style; // Offset: 0 + keen::float32 fontSize; // Offset: 120 + keen::float32 topSpacer; // Offset: 124 +}; + +struct FbUiCreditStyles { + keen::ds::FbUiCreditStyle h1; // Offset: 0 + keen::ds::FbUiCreditStyle h2; // Offset: 128 + keen::ds::FbUiCreditStyle h3; // Offset: 256 + keen::ds::FbUiCreditStyle text; // Offset: 384 +}; + +struct FbUiCredits { + keen::DsArray items; // Offset: 0 + keen::ds::UiLocaTagReference text; // Offset: 40 + keen::ds::UiLocaTagReference creditEndText; // Offset: 56 + keen::ds::FbUiCreditStyles creditStyles; // Offset: 72 + keen::float32 scrollSpeed; // Offset: 584 + keen::float32 gamepadScrollSpeed; // Offset: 588 +}; + +struct FbUiKnowledgeRequirement { + keen::ds::GameKnowledgeTrigger trigger; // Offset: 0 + keen::ds::KnowledgeId triggerId; // Offset: 56 +}; + +struct FbUiTutorialKnowledge { + keen::ds::FbUiKnowledgeRequirement quickbuilder; // Offset: 0 + keen::ds::FbUiKnowledgeRequirement summoningStaff; // Offset: 60 + keen::ds::FbUiKnowledgeRequirement crafting; // Offset: 120 + keen::ds::FbUiKnowledgeRequirement factory; // Offset: 180 + keen::ds::FbUiKnowledgeRequirement enhancing; // Offset: 240 + keen::ds::FbUiKnowledgeRequirement cooking; // Offset: 300 + keen::ds::FbUiKnowledgeRequirement actionbar; // Offset: 360 + keen::ds::FbUiKnowledgeRequirement storage; // Offset: 420 + keen::ds::FbUiKnowledgeRequirement taming; // Offset: 480 + keen::ds::FbUiKnowledgeRequirement happyNpcRequirement; // Offset: 540 +}; + +struct FbUiKnowledge { + keen::ds::FbUiTutorialKnowledge tutorial; // Offset: 0 +}; + +struct SystemErrorMessages { + keen::ds::UiLocaTagReference waitingForProcess; // Offset: 0 + keen::ds::UiLocaTagReference noInputDevice; // Offset: 16 + keen::ds::UiLocaTagReference connectFailed; // Offset: 32 + keen::ds::UiLocaTagReference connectionLost; // Offset: 48 + keen::ds::UiLocaTagReference newVersionRequired; // Offset: 64 + keen::ds::UiLocaTagReference playerNotSignedIn; // Offset: 80 + keen::ds::UiLocaTagReference playerNoPrivileges; // Offset: 96 + keen::ds::UiLocaTagReference playerNoMultiplayerEntitlement; // Offset: 112 + keen::ds::UiLocaTagReference createGameFailed; // Offset: 128 + keen::ds::UiLocaTagReference joinGameFailed; // Offset: 144 + keen::ds::UiLocaTagReference joinGameFailed_NotFound; // Offset: 160 + keen::ds::UiLocaTagReference joinGameFailed_Full; // Offset: 176 + keen::ds::UiLocaTagReference joinGameFailed_Reserved; // Offset: 192 + keen::ds::UiLocaTagReference joinGameFailed_WrongPassword; // Offset: 208 + keen::ds::UiLocaTagReference joinGameFailed_WrongPasswordCooldown; // Offset: 224 + keen::ds::UiLocaTagReference sessionFailed; // Offset: 240 + keen::ds::UiLocaTagReference joinPlayerFailed; // Offset: 256 + keen::ds::UiLocaTagReference kicked; // Offset: 272 + keen::ds::UiLocaTagReference saveGameCorrupt; // Offset: 288 + keen::ds::UiLocaTagReference settingsCorrupt; // Offset: 304 + keen::ds::UiLocaTagReference eraseFailed; // Offset: 320 + keen::ds::UiLocaTagReference notEnoughSpace; // Offset: 336 + keen::ds::UiLocaTagReference createFailed; // Offset: 352 + keen::ds::UiLocaTagReference readError; // Offset: 368 + keen::ds::UiLocaTagReference writeError; // Offset: 384 +}; + +struct SystemErrorResponses { + keen::ds::UiLocaTagReference retry; // Offset: 0 + keen::ds::UiLocaTagReference disable; // Offset: 16 + keen::ds::UiLocaTagReference erase; // Offset: 32 + keen::ds::UiLocaTagReference reset; // Offset: 48 + keen::ds::UiLocaTagReference deviceSelection; // Offset: 64 + keen::ds::UiLocaTagReference overwrite; // Offset: 80 + keen::ds::UiLocaTagReference cancel; // Offset: 96 + keen::ds::UiLocaTagReference ok; // Offset: 112 +}; + +struct SystemErrorLoca { + keen::ds::SystemErrorMessages errors; // Offset: 0 + keen::ds::SystemErrorResponses responses; // Offset: 400 + keen::ds::UiLocaTagReference errorTitleWarning; // Offset: 528 +}; + +typedef keen::DefaultServerRoleType DefaultServerRoleType; + +struct FbUiServerRoleSettings { + keen::DsArray defaultServerRoles; // Offset: 0 + keen::DsArray serverRoleIcons; // Offset: 40 +}; + +struct FbUiServerRole { + keen::ds::DefaultServerRoleType type; // Offset: 0 + keen::ds::UiLocaTagReference roleName; // Offset: 4 + keen::ds::PlayerPermissionsMask permissions; // Offset: 20 +}; + +struct FbUiLoreSlide { + keen::ds::UiTexture slideImage; // Offset: 0 + keen::ds::UiLocaTagReference slideText; // Offset: 48 + keen::bool useTextBackground; // Offset: 64 + keen::UiVector startOffset; // Offset: 68 + keen::UiVector endOffset; // Offset: 76 + keen::float32 startScale; // Offset: 84 + keen::float32 endScale; // Offset: 88 + keen::float32 slideDuration; // Offset: 92 + keen::float32 textStartDelay; // Offset: 96 + keen::float32 textAnimDuration; // Offset: 100 + keen::float32 fadeInDuration; // Offset: 104 + keen::float32 fadeOutDuration; // Offset: 108 + keen::UiColor fadeInColor; // Offset: 112 + keen::UiColor fadeOutColor; // Offset: 120 +}; + +struct FbUiLogos { + keen::DsArray creditsLogos; // Offset: 0 + keen::ds::UiTexture enshrouded_TraditionalChinese; // Offset: 40 + keen::ds::UiTexture enshrouded_SimplifiedChinese; // Offset: 88 + keen::ds::UiTexture enshrouded_Japanese; // Offset: 136 + keen::ds::UiTexture enshrouded_Korean; // Offset: 184 +}; + +struct FbUiLoreIntro { + keen::DsArray allSlides; // Offset: 0 + keen::ds::UiCharacterStyle textStyle; // Offset: 40 + keen::ds::UiNineSliceTexture slideBorder; // Offset: 160 +}; + +struct UiBundle { + keen::ds::UiTexturePreload texturePreload; // Offset: 0 + keen::DsArray characterStyles; // Offset: 40 + keen::DsArray paragraphStyles; // Offset: 80 +}; + +struct FbUiBundle { + keen::ds::FbUiLocaLinks locatags; // Offset: 120 + keen::ds::FbUiSocialLogos socialLogos; // Offset: 26032 + keen::ds::FbUiLogos logos; // Offset: 26320 + keen::ds::FbUiGenericIcons genericIcons; // Offset: 26552 + keen::ds::FbUiGamepadButtonSets gamepadButtons; // Offset: 29528 + keen::ds::FbUiKeyboardKeys keyboardKeys; // Offset: 34720 + keen::ds::FbUiKeyboardKeyLegends keyboardKeyLegends; // Offset: 34832 + keen::ds::FbUiMouseHints mouseHints; // Offset: 35024 + keen::ds::FbUiPrimitives primitives; // Offset: 35696 + keen::ds::FbUiLoadingSymbol loading; // Offset: 36928 + keen::ds::FbUiGlobalColors globalColors; // Offset: 36940 + keen::ds::FbUiPreGame preGame; // Offset: 37104 + keen::ds::FbUiHUD hud; // Offset: 38720 + keen::ds::FbUiMenu menu; // Offset: 44088 + keen::ds::FbUiCustomization customization; // Offset: 55880 + keen::ds::FbUiKnowledge knowledge; // Offset: 56408 + keen::ds::FbUiItemSlot itemSlot; // Offset: 57008 + keen::ds::FbUiBuffIcons buffIcons; // Offset: 59016 + keen::ds::FbUiScreen screen; // Offset: 59248 + keen::ds::FbUiHeadline headline; // Offset: 59480 + keen::ds::FbUiFontSizes fontSizes; // Offset: 59552 + keen::ds::FbUiCharacterStyles namedStyles; // Offset: 59632 + keen::ds::FbUiParagraphStyles namedParagraphStyles; // Offset: 66352 + keen::ds::FbUiSounds sounds; // Offset: 66480 + keen::ds::FbUiTestParameters testParameters; // Offset: 68712 + keen::ds::FbUiFrostedGlassParameters frostedGlass; // Offset: 69200 + keen::ds::SystemErrorLoca systemErrors; // Offset: 69228 + keen::ds::FbUiServerRoleSettings serverRoleSettings; // Offset: 69776 + keen::ds::FbUiDifficultySettings difficultySettings; // Offset: 69856 + keen::ds::UiTexture noRtxWarning; // Offset: 72776 + keen::ds::FbUiCredits credits; // Offset: 72824 + keen::ds::FbUiLoreIntro loreIntro; // Offset: 73416 + keen::DsArray worldEvents; // Offset: 73640 +}; + +struct FbUiMap { + keen::ObjectReference scene; // Offset: 0 + keen::float32 isolineSpacing; // Offset: 16 + keen::ObjectReference baseGradient; // Offset: 20 + keen::ObjectReference isolineGradient; // Offset: 36 + keen::ObjectReference fogNoise; // Offset: 52 + keen::uint8 fogZoneBorderSdfDistance; // Offset: 68 + keen::ObjectReference fogZoneBorderGradient; // Offset: 72 + keen::ObjectReference fogZoneTextureNormal; // Offset: 88 + keen::ObjectReference fogZoneTextureDangerous; // Offset: 104 +}; + +struct FbUiTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint8 levelCount; // Offset: 4 + keen::PixelFormat format; // Offset: 5 + keen::TextureType type; // Offset: 6 + keen::ContentHash data; // Offset: 8 + keen::ds::string debugName; // Offset: 24 +}; + +struct FbUiMapResource { + keen::float32 tileSize; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::float2 normalizedTileSize; // Offset: 12 + keen::ds::FbUiTexture baseGradientTexture; // Offset: 24 + keen::ds::FbUiTexture isolineGradientTexture; // Offset: 88 + keen::ds::FbUiTexture fogZoneBorderGradientTexture; // Offset: 152 + keen::ds::FbUiTexture fogNoiseTexture; // Offset: 216 + keen::ds::FbUiTexture fogZoneTextureNormal; // Offset: 280 + keen::ds::FbUiTexture fogZoneTextureDangerous; // Offset: 344 +}; + +struct FbUiMapTileResource { + keen::ds::FbUiTexture mapTexture; // Offset: 0 +}; + +typedef keen::FatalErrorId FatalErrorId; + +struct GameBenchmarkSampleZone { + keen::ds::string name; // Offset: 0 + keen::ds::string valueName; // Offset: 40 + keen::Time minDuration; // Offset: 80 + keen::Time maxDuration; // Offset: 88 + keen::Time averageDuration; // Offset: 96 + keen::uint64 minValue; // Offset: 104 + keen::uint64 maxValue; // Offset: 112 + keen::uint64 averageValue; // Offset: 120 + keen::uint32 sampleCount; // Offset: 128 +}; + +struct GameBenchmarkSample { + keen::uint16 frameCount; // Offset: 0 + keen::Time sampleTime; // Offset: 8 + keen::DsArray zones; // Offset: 16 +}; + +struct GameBenchmarkPlace { + keen::float3 position; // Offset: 0 + keen::HashKey32 instanceHash; // Offset: 12 + keen::DsArray samples; // Offset: 16 + keen::Guid guid; // Offset: 56 +}; + +struct GameBenchmarkResource { + keen::ds::string description; // Offset: 0 + keen::ds::string bauPath; // Offset: 40 + keen::ContentHash hash; // Offset: 80 +}; + +struct GameBenchmarkResult { + keen::ds::string name; // Offset: 0 + keen::ds::string author; // Offset: 40 + keen::ds::string machine; // Offset: 80 + keen::ds::string engineVersion; // Offset: 120 + keen::CalendarTimeStamp date; // Offset: 160 + keen::DsArray resources; // Offset: 168 + keen::DsArray places; // Offset: 208 +}; + +typedef keen::GameFrameworkWindowType GameFrameworkWindowType; + +struct GameFrameworkGraphicsConfig { + keen::StaticArray apiName; // Offset: 0 + keen::ds::GameFrameworkWindowType windowType; // Offset: 128 + keen::sint32 windowPosX; // Offset: 132 + keen::sint32 windowPosY; // Offset: 136 + keen::uint32 windowSizeX; // Offset: 140 + keen::uint32 windowSizeY; // Offset: 144 + keen::uint32 presentationInterval; // Offset: 148 +}; + +struct GameFrameworkConfig { + keen::ds::GameFrameworkGraphicsConfig graphics; // Offset: 0 +}; + +typedef keen::GameUiAxis GameUiAxis; + +typedef keen::GameUiFrameLayout GameUiFrameLayout; + +typedef keen::GameUiScrollingSliderStyle GameUiScrollingSliderStyle; + +typedef keen::GameUiScrollingHotkeyFlag GameUiScrollingHotkeyFlag; + +typedef keen::GameUiMouseDragInputFlag GameUiMouseDragInputFlag; + +typedef keen::GameUiMouseDragInputMask GameUiMouseDragInputMask; + +typedef keen::GameUiScrollingKeyMask GameUiScrollingKeyMask; + +struct GameUiScrollbarParameterData { + keen::ds::GameUiAxis direction; // Offset: 0 + keen::UiColor rangeRectColor; // Offset: 4 + keen::UiColor sliderIdleColor; // Offset: 12 + keen::UiColor sliderHoverColor; // Offset: 20 + keen::UiColor sliderOutlineColor; // Offset: 28 + keen::ds::UiNineSliceTexture rangeTexture; // Offset: 36 + keen::ds::UiNineSliceTexture sliderTexture; // Offset: 100 + keen::ds::UiTexture sliderGripTexture; // Offset: 164 + keen::ds::GameUiScrollingSliderStyle sliderStyle; // Offset: 212 + keen::float32 sliderIdleWidth; // Offset: 216 + keen::float32 sliderHoverWidth; // Offset: 220 + keen::float32 baseWidth; // Offset: 224 + keen::float32 rangeTextureWidth; // Offset: 228 + keen::bool useInverseRangeRect; // Offset: 232 + keen::bool useGlobalFocus; // Offset: 233 + keen::bool enableDrag; // Offset: 234 + keen::bool enableTouchDrag; // Offset: 235 + keen::bool forceScrollbar; // Offset: 236 + keen::ds::UiPosition offset; // Offset: 240 + keen::UiBorder padding; // Offset: 248 + keen::UiBorder sliderMargin; // Offset: 264 +}; + +struct GameUiScrollingLayoutParameterData { + keen::UiColor borderColor; // Offset: 0 + keen::ds::UiTexture scrollHintTexture; // Offset: 8 + keen::UiBorder padding; // Offset: 56 + keen::UiAlignment scrollbarAlignment; // Offset: 72 + keen::bool showScrollHint; // Offset: 74 + keen::bool enableScrollbar; // Offset: 75 + keen::bool useNavigation; // Offset: 76 + keen::bool stealCapture; // Offset: 77 + keen::bool doScissorWhenScrolling; // Offset: 78 + keen::bool centerChildren; // Offset: 79 + keen::bool enableDrag; // Offset: 80 + keen::bool forceScrollbar; // Offset: 81 + keen::bool useGlobalFocus; // Offset: 82 + keen::bool useFillerSeperatorLineDistance; // Offset: 83 + keen::bool consumeInput; // Offset: 84 + keen::bool useAutoScrolling; // Offset: 85 + keen::float32 fillerSeperatorLineDistance; // Offset: 88 + keen::float32 spacing; // Offset: 92 + keen::ds::GameUiScrollingKeyMask scrollingHotKeyMask; // Offset: 96 + keen::ds::GameUiMouseDragInputMask mouseDragInputMask; // Offset: 97 + keen::ds::GameUiScrollbarParameterData scrollBar; // Offset: 100 +}; + +struct SlotJointMapping { + keen::ds::string head; // Offset: 0 + keen::ds::string chest; // Offset: 40 + keen::ds::string pelvis; // Offset: 80 + keen::ds::string footL; // Offset: 120 + keen::ds::string footR; // Offset: 160 + keen::ds::string footRL; // Offset: 200 + keen::ds::string footRR; // Offset: 240 + keen::ds::string handR; // Offset: 280 + keen::ds::string handL; // Offset: 320 + keen::ds::string kneeR; // Offset: 360 + keen::ds::string kneeL; // Offset: 400 + keen::ds::string armL; // Offset: 440 + keen::ds::string block; // Offset: 480 +}; + +struct ModelBase { +}; + +struct ModelHierarchy { + keen::ds::string exportNode; // Offset: 0 + keen::float32 scale; // Offset: 40 + keen::float32 xanimScale; // Offset: 44 + keen::bool rotateY; // Offset: 48 + keen::ds::SlotJointMapping slotJointMapping; // Offset: 56 + keen::ds::PreviewModelArray previewModels; // Offset: 576 +}; + +struct ModelHierarchyJointData { + keen::uint32 index; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::uint32 parentIndex; // Offset: 48 + keen::uint32 tag; // Offset: 52 + keen::Matrix43 defaultPose; // Offset: 64 + keen::bool fixPosition; // Offset: 128 +}; + +struct ModelHierarchyData { + keen::DsArray joints; // Offset: 0 + keen::uint64 defaultPoseHash; // Offset: 40 + keen::ds::SlotJointMapping slotJointMapping; // Offset: 48 + keen::ds::PreviewModelArray previewModels; // Offset: 568 +}; + +struct ModelPose { + keen::DsArray data; // Offset: 0 + keen::uint32 alignedJointCount; // Offset: 40 +}; + +struct ModelHierarchyJointDescription { + keen::DsArray jointDescriptions; // Offset: 0 +}; + +struct ModelHierarchyResource { + keen::Guid hierarchyId; // Offset: 0 + keen::DsArray jointNames; // Offset: 16 + keen::DsArray joinParentIndices; // Offset: 56 + keen::DsArray skinToJointMatrices; // Offset: 96 + keen::uint32 jointCount; // Offset: 136 + keen::ds::ModelPose defaultPose; // Offset: 144 + keen::DsArray defaultPoseJoints; // Offset: 192 +}; + +typedef keen::GpcVariantFlag GpcVariantFlag; + +struct GpcShaderVariant { + keen::Bitmask8 mask; // Offset: 0 + keen::ContentHash code; // Offset: 4 + keen::ContentHash strippedCode; // Offset: 20 +}; + +struct GpcShaderResource { + keen::DsArray variants; // Offset: 0 + keen::ds::string entryPoint; // Offset: 40 +}; + +typedef keen::GpcPrimitiveType GpcPrimitiveType; + +typedef keen::GpcCullMode GpcCullMode; + +typedef keen::GpcFillMode GpcFillMode; + +typedef keen::GpcWindingOrder GpcWindingOrder; + +typedef keen::GpcBlendOp GpcBlendOp; + +typedef keen::GpcBlendFactor GpcBlendFactor; + +typedef keen::GpcComparisonFunction GpcComparisonFunction; + +struct GpcRasterPipelineResource { + keen::ds::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 40 + keen::DsArray colorTargetFormats; // Offset: 48 + keen::PixelFormat depthStencilTargetFormat; // Offset: 88 + keen::uint8 sampleCount; // Offset: 89 + keen::ds::GpcPrimitiveType primitiveType; // Offset: 90 + keen::uint8 patchSize; // Offset: 91 + keen::ds::GpcCullMode cullMode; // Offset: 92 + keen::ds::GpcFillMode fillMode; // Offset: 93 + keen::ds::GpcWindingOrder windingOrder; // Offset: 94 + keen::ds::GpcBlendOp blendOp; // Offset: 95 + keen::ds::GpcBlendFactor blendSourceFactor; // Offset: 96 + keen::ds::GpcBlendFactor blendDestFactor; // Offset: 97 + keen::bool sampleShading; // Offset: 98 + keen::bool alphaToCoverage; // Offset: 99 + keen::ds::GpcComparisonFunction depthComparisonFunction; // Offset: 100 + keen::bool depthWriteEnable; // Offset: 101 + keen::float32 constDepthBias; // Offset: 104 + keen::float32 slopeDepthBias; // Offset: 108 + keen::ds::GpcShaderResource vsShaderCode; // Offset: 112 + keen::ds::GpcShaderResource tcShaderCode; // Offset: 192 + keen::ds::GpcShaderResource teShaderCode; // Offset: 272 + keen::ds::GpcShaderResource fsShaderCode; // Offset: 352 +}; + +struct GpcComputePipelineResource { + keen::ds::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 40 + keen::uint3 groupSize; // Offset: 44 + keen::ds::GpcShaderResource computeShader; // Offset: 56 +}; + +struct GpcResource { + keen::HashKey32 signatureHash; // Offset: 0 + keen::DsArray rasterPipelines; // Offset: 8 + keen::DsArray computePipelines; // Offset: 48 +}; + +struct GpcResourceList { + keen::ds::string path; // Offset: 0 +}; + +typedef keen::gpu::u32 gpu.u32; + +typedef keen::gpu::s32 gpu.s32; + +typedef keen::gpu::f32 gpu.f32; + +typedef keen::gpu::u32_1 gpu.u32_1; + +typedef keen::gpu::u32_2 gpu.u32_2; + +typedef keen::gpu::u32_3 gpu.u32_3; + +typedef keen::gpu::u32_4 gpu.u32_4; + +typedef keen::gpu::s32_1 gpu.s32_1; + +typedef keen::gpu::s32_2 gpu.s32_2; + +typedef keen::gpu::s32_3 gpu.s32_3; + +typedef keen::gpu::s32_4 gpu.s32_4; + +typedef keen::gpu::f32_1 gpu.f32_1; + +typedef keen::gpu::f32_2 gpu.f32_2; + +typedef keen::gpu::f32_3 gpu.f32_3; + +typedef keen::gpu::f32_4 gpu.f32_4; + +typedef keen::gpu::f32_3x4 gpu.f32_3x4; + +typedef keen::gpu::f32_4x4 gpu.f32_4x4; + +typedef keen::gpu::DrawIndirectParameter gpu.DrawIndirectParameter; + +typedef keen::gpu::DrawIndexedIndirectParameter gpu.DrawIndexedIndirectParameter; + +typedef keen::gpu::DispatchIndirectParameter gpu.DispatchIndirectParameter; + +struct BindlessTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_uint { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSystemInformation { + keen::StaticArray description; // Offset: 0 + keen::StaticArray model; // Offset: 64 + keen::uint64 videoMemorySize; // Offset: 128 + keen::uint64 sharedMemorySize; // Offset: 136 + keen::bool hasDirectX9; // Offset: 144 + keen::bool hasDirectX11; // Offset: 145 + keen::bool hasGl1; // Offset: 146 + keen::bool hasGl2; // Offset: 147 + keen::bool hasGl3; // Offset: 148 + keen::bool hasGl4; // Offset: 149 + keen::bool hasGles2; // Offset: 150 + keen::bool hasGles3; // Offset: 151 + keen::bool hasMetal; // Offset: 152 + keen::bool hasVulkan; // Offset: 153 +}; + +struct DisplaySystemInformation { + keen::StaticArray description; // Offset: 0 + keen::uint32 gpuIndex; // Offset: 64 + keen::uint32 pixelWidth; // Offset: 68 + keen::uint32 pixelHeight; // Offset: 72 + keen::float32 aspectRatio; // Offset: 76 + keen::uint32 dpi; // Offset: 80 +}; + +struct GraphicsSystemInformation { + keen::uint32 totalPixelWidth; // Offset: 0 + keen::uint32 totalPixelHeight; // Offset: 4 + keen::uint32 gpuCount; // Offset: 8 + keen::uint32 displayCount; // Offset: 12 + keen::StaticArray gpus; // Offset: 16 + keen::StaticArray displays; // Offset: 656 +}; + +struct HistogramData { + keen::DsString id; // Offset: 0 + keen::DsArray slots; // Offset: 40 + keen::uint32 valueCount; // Offset: 80 + keen::sint64 valueSum; // Offset: 88 + keen::sint64 minValue; // Offset: 96 + keen::sint64 maxValue; // Offset: 104 + keen::sint64 rangeStart; // Offset: 112 + keen::sint64 rangeEnd; // Offset: 120 + keen::bool isLinear; // Offset: 128 + keen::bool isTime; // Offset: 129 +}; + +struct HolisticEngineVersion { + keen::ds::string gitHash; // Offset: 0 +}; + +typedef keen::HolisticSceneRenderFlag HolisticSceneRenderFlag; + +typedef keen::HolisticSceneRenderFlags HolisticSceneRenderFlags; + +typedef keen::SceneCameraSpeed SceneCameraSpeed; + +typedef keen::SceneCameraSpeedBoostFactor SceneCameraSpeedBoostFactor; + +struct HolisticSceneCameraSettings { + keen::ds::SceneCameraSpeed cameraSpeed; // Offset: 0 + keen::ds::SceneCameraSpeedBoostFactor cameraSpeedBoost; // Offset: 1 + keen::float farClip; // Offset: 4 + keen::float fovY; // Offset: 8 +}; + +struct HolisticSceneEditorLighting { + keen::float4 sunColor; // Offset: 0 + keen::float iblIntensity; // Offset: 16 + keen::float editorFixedExposure; // Offset: 20 + keen::bool forceEditorLighting; // Offset: 24 +}; + +typedef keen::HolisticSnappingFlag HolisticSnappingFlag; + +typedef keen::HolisticSnappingFlags HolisticSnappingFlags; + +typedef keen::HolisticSceneViewOverlay HolisticSceneViewOverlay; + +typedef keen::HolisticSceneViewOverlays HolisticSceneViewOverlays; + +struct HolisticSceneSnappingSettings { + keen::uint32 gridSize; // Offset: 0 + keen::float32 angleStep; // Offset: 4 + keen::ds::HolisticSnappingFlags lockedSnappingFlags; // Offset: 8 +}; + +struct HolisticOverlaySettings { + keen::ds::HolisticSceneViewOverlays overlays; // Offset: 0 + keen::bool showOverlays; // Offset: 4 + keen::bool isNonSelectableOverlayExpanded; // Offset: 5 + keen::bool isCustomLightOverlayExpanded; // Offset: 6 + keen::StaticArray isAlbedoTintLayerOverlayExpanded; // Offset: 7 +}; + +struct HolisticSceneToolboxSettings { + keen::bool randomRotateY; // Offset: 0 + keen::bool alignToNormal; // Offset: 1 +}; + +struct HolisticPersistentSceneSettings { + keen::ds::HolisticSceneCameraSettings camera; // Offset: 0 + keen::ds::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::ds::HolisticSceneSnappingSettings snapping; // Offset: 40 + keen::ds::HolisticOverlaySettings overlaySettings; // Offset: 52 + keen::ds::HolisticSceneToolboxSettings toolbox; // Offset: 64 +}; + +struct HolisticPersistentPreviewSettings { + keen::ds::HolisticSceneCameraSettings camera; // Offset: 0 + keen::ds::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::ds::HolisticOverlaySettings overlaySettings; // Offset: 40 +}; + +struct HolisticPersistentUserSettings { + keen::ds::HolisticPersistentSceneSettings scene; // Offset: 0 + keen::ds::HolisticPersistentPreviewSettings preview; // Offset: 68 +}; + +struct HolisticVfxTestParameters { + keen::WorldTransform worldTransform; // Offset: 0 + keen::float3 targetPosition; // Offset: 56 +}; + +struct HolisticMapFilterCollection { +}; + +struct HolisticMapFilterDirectory { +}; + +struct HolisticMapFilter { + keen::float markerSize; // Offset: 0 + keen::Color color; // Offset: 4 + keen::bool isVisible; // Offset: 8 +}; + +struct Folder { +}; + +struct ImporterModelConfig { + keen::DsArray parentNamePatters; // Offset: 0 + keen::DsArray nameIncludePatters; // Offset: 40 + keen::DsArray nameExcludePatters; // Offset: 80 +}; + +struct ImporterTemplate { +}; + +struct ImporterTemplateObject { + keen::ds::string descriptionFormat; // Offset: 0 + keen::ds::string type; // Offset: 40 + keen::ds::string initialState; // Offset: 80 + keen::uint32 sortIndex; // Offset: 120 + keen::Guid containerId; // Offset: 124 +}; + +typedef keen::ImporterAction ImporterAction; + +typedef keen::ds::string SourceFileHash; + +struct ImporterFileTemplate { + keen::ds::string extension; // Offset: 0 + keen::ds::ImporterAction action; // Offset: 40 + keen::ds::SourceFileHash contentHash; // Offset: 48 +}; + +struct TagCollection { +}; + +struct ObjectTagGroup { + keen::Color color; // Offset: 0 +}; + +struct ObjectTag { +}; + +typedef keen::ObjectReference TagReference; + +struct TagDirectoryContent { + keen::DsArray tags; // Offset: 0 + keen::DsArray groups; // Offset: 40 +}; + +typedef keen::HolisticImporterObjectType HolisticImporterObjectType; + +struct SourceFile { + keen::ds::SourceFileHash fileHash; // Offset: 0 + keen::ds::HolisticImporterObjectType targetType; // Offset: 40 +}; + +typedef keen::ObjectReference SourceFileReference; + +struct SourceData { + keen::ds::SourceFileHash dataHash; // Offset: 0 +}; + +typedef keen::ObjectReference SourceDataReference; + +struct WhiteboxTagDirectory { +}; + +struct WhiteboxTagGroup { + keen::Color color; // Offset: 0 +}; + +struct WhiteboxTag { +}; + +struct LootTagGroup { + keen::Color color; // Offset: 0 +}; + +struct LootTag { +}; + +struct DefaultLootLabelCollectionRootDirectory { +}; + +struct DefaultLootLabelCollectionDirectory { +}; + +struct DefaultLootLabelCollection { +}; + +struct DungeonRoomContextTag { + keen::bool invert; // Offset: 0 +}; + +struct DungeonRoomGroundContextTag { +}; + +struct DungeonRoomCeilingContextTag { +}; + +typedef keen::ObjectReference WhiteboxTagReference; + +typedef keen::ObjectReference WhiteboxTagGroupReference; + +struct WhiteboxTagInstance { + keen::ds::WhiteboxTagReference tag; // Offset: 0 +}; + +typedef keen::ObjectReference LootTagReference; + +struct LootTagInstance { + keen::ds::LootTagReference tag; // Offset: 0 + keen::float32 itemLootWeight; // Offset: 16 +}; + +struct WhiteboxTagInfo { + keen::Guid instance; // Offset: 0 + keen::ds::WhiteboxTagReference tag; // Offset: 16 + keen::ds::WhiteboxTagGroupReference group; // Offset: 32 +}; + +struct WhiteboxTagInheritanceInfo { + keen::Guid parentId; // Offset: 0 + keen::Guid tagGuid; // Offset: 16 +}; + +struct WhiteboxTagInheritanceList { + keen::DsArray inheritedTags; // Offset: 0 +}; + +typedef keen::ImageType ImageType; + +typedef keen::ImageColorSpace ImageColorSpace; + +typedef keen::ImageContentType ImageContentType; + +struct Image { + keen::ds::ImageType type; // Offset: 0 + keen::DsString slice; // Offset: 8 + keen::DsString alphaChannel; // Offset: 48 + keen::ds::ImageColorSpace colorSpace; // Offset: 88 + keen::ds::ImageContentType contentType; // Offset: 92 + keen::uint32 sizeDivider; // Offset: 96 + keen::uint32 slices; // Offset: 100 + keen::uint32 sliceRows; // Offset: 104 +}; + +struct ImageInfo { + keen::uint32 width; // Offset: 0 + keen::uint32 height; // Offset: 4 + keen::uint32 depth; // Offset: 8 + keen::DsString name; // Offset: 16 +}; + +struct ChunkedImage { + keen::uint2 tileSize; // Offset: 0 + keen::uint2 numTiles; // Offset: 8 + keen::uint2 dimension; // Offset: 16 +}; + +struct ImageColorRange { + keen::float4 averageColor; // Offset: 0 + keen::float4 minColor; // Offset: 16 + keen::float4 maxColor; // Offset: 32 +}; + +typedef keen::ScatterImageType ScatterImageType; + +struct ScatterImage { + keen::ds::ScatterImageType type; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 4 +}; + +struct ScatterImageMetaData { + keen::ds::ChunkedImage chunkedImage; // Offset: 8 +}; + +struct ScatterImageAreaMetaData { + keen::uint2 tileRangeX; // Offset: 32 + keen::uint2 tileRangeY; // Offset: 40 +}; + +struct ScatterImageLoadParameters { + keen::Guid imageGuid; // Offset: 48 + keen::uint32 channel; // Offset: 64 +}; + +struct GameKnowledgeDirectory { + keen::ObjectReference itemDirectory; // Offset: 0 + keen::ObjectReference dialogDirectory; // Offset: 16 + keen::ObjectReference recipeDirectory; // Offset: 32 + keen::ObjectReference journalDirectory; // Offset: 48 +}; + +struct GameKnowledgeSubDirectory { +}; + +struct GameKnowledgeObjectBase { + keen::bool sendToAnalytics; // Offset: 0 +}; + +struct WorldKnowledgeObject { + keen::bool generateAdditionalPlayerKnowledge; // Offset: 1 +}; + +struct PlayerKnowledgeObject { + keen::bool unlocksSkillPoints; // Offset: 1 + keen::uint8 unlockedSkillPoints; // Offset: 2 + keen::ObjectReference experienceGain; // Offset: 4 + keen::ds::AchievementDataReference unlockAchievement; // Offset: 20 +}; + +struct SceneKnowledgeRequirement { + keen::ds::ecs::TemplateReference targetSubentity; // Offset: 104 +}; + +struct KnowledgeObjectInfo { + keen::ds::KnowledgeId id; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::bool isPlayerKnowledge; // Offset: 48 + keen::bool generateAdditionalPlayerKnowledge; // Offset: 49 + keen::bool sendToAnalytics; // Offset: 50 + keen::uint8 unlockedSkillPoints; // Offset: 51 + keen::HashKey32 experienceGainId; // Offset: 52 + keen::ds::AchievementId achievementId; // Offset: 56 +}; + +struct KnowledgeExperienceCountInfo { + keen::DsArray experienceObjects; // Offset: 0 +}; + +struct KnowledgeExperienceCount { + keen::HashKey32 experienceObjectId; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct KnowledgeObjectResource { + keen::ds::KnowledgeId id; // Offset: 0 + keen::bool sendToAnalytics; // Offset: 4 +}; + +struct WorldKnowledgeObjectResource { + keen::bool hasOptionalPlayerProgression; // Offset: 8 +}; + +struct PlayerKnowledgeObjectResource { + keen::uint8 unlockedSkillPoints; // Offset: 8 + keen::HashKey32 experienceGainId; // Offset: 12 + keen::ds::AchievementId achievementId; // Offset: 16 +}; + +struct GameKnowledgeResource { + keen::DsArray worldKnowledge; // Offset: 0 + keen::DsArray playerKnowledge; // Offset: 40 + keen::DsArray dialogKnowledgeIds; // Offset: 80 + keen::DsArray itemKnowledgeIds; // Offset: 120 +}; + +struct GameKnowledgeDbInfo { + keen::DsArray worldKnowledgeObjects; // Offset: 0 + keen::DsArray playerKnowledgeObjects; // Offset: 40 +}; + +struct KnowledgeQueryDirectory { + keen::ObjectReference knowledgeDirectory; // Offset: 0 + keen::ObjectReference demoKnowledge; // Offset: 16 +}; + +struct KnowledgeQuerySubDirectory { +}; + +typedef keen::KnowledgeQueryOperator KnowledgeQueryOperator; + +struct GameKnowledgeQuery { + keen::ds::KnowledgeQueryOperator type; // Offset: 0 + keen::bool invert; // Offset: 1 +}; + +struct BaseKnowledgeQueryAction { + keen::bool invert; // Offset: 0 +}; + +struct KnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::ObjectReference worldKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 +}; + +struct ItemKnowledgeQueryAction { + keen::ds::ItemKnowledgeTrigger itemKnowledge; // Offset: 1 + keen::bool worldItemKnowledge; // Offset: 2 + keen::ObjectReference item; // Offset: 4 +}; + +struct DialogKnowledgeQueryAction { + keen::ObjectReference dialogOption; // Offset: 4 +}; + +typedef keen::NpcQueryActionType NpcQueryActionType; + +struct NpcQueryAction { + keen::ds::NpcQueryActionType type; // Offset: 1 + keen::ObjectReference npc; // Offset: 4 + keen::ds::ecs::TemplateReference npcEntity; // Offset: 20 + keen::ObjectReference requiredCraftingProp; // Offset: 36 +}; + +struct CraftingQueryAction { + keen::ObjectReference recipe; // Offset: 4 +}; + +struct PredefinedKnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::ds::PredefinedKnowledgeTypes knowledge; // Offset: 2 +}; + +typedef keen::CompareOperator CompareOperator; + +struct FlameAltarCountQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct FlameAltarLevelQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct MotherFlameLevelQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct PlayerLevelQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct OtherQueryAction { + keen::ObjectReference query; // Offset: 4 +}; + +struct InventoryQueryAction { + keen::ObjectReference item; // Offset: 4 +}; + +typedef keen::KnowledgeQueryActionType KnowledgeQueryActionType; + +struct KnowledgeQueryActionInfo { + keen::ds::KnowledgeQueryActionType type; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::ds::KnowledgeId queryId; // Offset: 48 + keen::uint32 queryIndex; // Offset: 52 + keen::uint32 playerProgressionQueryIndex; // Offset: 56 + keen::bool invertResult; // Offset: 60 + keen::bool isPlayerAction; // Offset: 61 +}; + +typedef keen::KnowledgeQueryType KnowledgeQueryType; + +struct GameKnowledgeQueryResourceBase { + keen::ds::string name; // Offset: 0 + keen::ds::KnowledgeId queryId; // Offset: 40 + keen::uint32 queryIndex; // Offset: 44 + keen::ds::KnowledgeQueryType type; // Offset: 48 + keen::bool isPlayerQuery; // Offset: 49 + keen::bool invertResult; // Offset: 50 +}; + +struct GameKnowledgeQueryResource { + keen::bool hasOptionalPlayerProgression; // Offset: 56 + keen::DsArray actions; // Offset: 64 +}; + +struct GameRuntimeQueryResource { + keen::ds::ItemReference itemRef; // Offset: 56 + keen::ds::ItemId itemId; // Offset: 72 + keen::ds::NpcQueryActionType npcActionType; // Offset: 76 + keen::ds::NpcId npcId; // Offset: 80 + keen::ds::CraftingPropId craftingProp; // Offset: 84 + keen::ds::CompareOperator compareOperation; // Offset: 88 + keen::uint16 compareValue; // Offset: 90 +}; + +struct GameKnowledgeQueryResourceDb { + keen::ds::KnowledgeId demoKnowledgeId; // Offset: 0 + keen::uint32 playerQueryStartIndex; // Offset: 4 + keen::uint32 runtimePlayerQueryStartIndex; // Offset: 8 + keen::DsArray queries; // Offset: 16 + keen::DsArray runtimeQueries; // Offset: 56 +}; + +typedef keen::RecipeKnowledgeType RecipeKnowledgeType; + +struct GameKnowledgeQueryTriggerSubDirectory { +}; + +struct GameKnowledgeQueryTriggerDirectory { + keen::ObjectReference knowledgeQueries; // Offset: 0 +}; + +struct GameKnowledgeQueryTrigger { + keen::bool canUnlockKnowledge; // Offset: 0 + keen::bool canRemoveKnowledge; // Offset: 1 + keen::ds::GameKnowledgeRequirement requirement; // Offset: 4 + keen::ds::KnowledgeId queryId; // Offset: 108 + keen::DsArray unlockKnowledge; // Offset: 112 +}; + +struct GameKnowledgeQueryTriggerResource { + keen::DsArray worldQueries; // Offset: 0 + keen::DsArray playerQueries; // Offset: 40 +}; + +typedef keen::DebugKnowledgeQuerySource DebugKnowledgeQuerySource; + +struct DebugServerKnowledgeMessage { + keen::uint16 changeCounter; // Offset: 0 + keen::uint16 playerIndex; // Offset: 2 + keen::bool isPlayerKnowledge; // Offset: 4 + keen::DsArray unlockedKnowledge; // Offset: 8 +}; + +struct DebugResetKnowledgeMessage { + keen::bool isPlayerKnowledge; // Offset: 0 +}; + +struct DebugUnlockFullKnowledgeMessage { + keen::bool unlockPlayerKnowledge; // Offset: 0 +}; + +struct DebugToggleKnowledgeMessage { + keen::ds::KnowledgeId knowledgeId; // Offset: 0 + keen::bool resultState; // Offset: 4 + keen::bool isPlayerKnowledge; // Offset: 5 + keen::uint16 playerIndex; // Offset: 6 +}; + +typedef keen::DebugKnowledgeQueryResultType DebugKnowledgeQueryResultType; + +struct DebugKnowledgeQueryResult { + keen::ds::DebugKnowledgeQueryResultType type; // Offset: 0 + keen::uint32 queryIndex; // Offset: 4 + keen::bool isPending; // Offset: 8 + keen::bool isPendingPersonal; // Offset: 9 + keen::bool result; // Offset: 10 + keen::bool resultPersonal; // Offset: 11 +}; + +struct SceneKnowledgeOverride { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct SceneKnowledgeTriggerOverride { + keen::ds::GameKnowledgeTrigger knowledgeTrigger; // Offset: 16 +}; + +struct SceneKnowledgeRequirementOverride { + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 16 +}; + +struct SceneKnowledgeMapMarkerOverride { + keen::ds::GameKnowledgeRequirement hintState; // Offset: 16 + keen::ds::GameKnowledgeRequirement visibleState; // Offset: 120 + keen::bool hasCompletedState; // Offset: 224 + keen::ds::GameKnowledgeRequirement completedState; // Offset: 228 +}; + +typedef keen::SceneKnowledgeOverrideType SceneKnowledgeOverrideType; + +struct SceneKnowledgeOverrideInfo { + keen::Guid entityTemplateGuid; // Offset: 0 + keen::ds::SceneKnowledgeOverrideType type; // Offset: 16 + keen::ds::KnowledgeId knowledgeId; // Offset: 20 + keen::ds::KnowledgeId knowledgeId2; // Offset: 24 + keen::ds::KnowledgeId knowledgeId3; // Offset: 28 +}; + +struct SceneKnowledgeOverrides { + keen::DsArray knowledgeOverrides; // Offset: 0 +}; + +struct DebugKnowledgeQueryResults { + keen::DsArray results; // Offset: 0 + keen::uint8 playerIndex; // Offset: 40 +}; + +struct LocaTagGroup { +}; + +typedef keen::LocaLanguages LocaLanguages; + +typedef keen::ObjectReference LocaCrowdinProjectReference; + +struct LocaCrowdinProject { + keen::LanguageId inputLanguage; // Offset: 0 + keen::ds::LocaCrowdinProjectReference inputProject; // Offset: 4 + keen::ds::LocaLanguages outputLanguages; // Offset: 24 + keen::uint64 projectId; // Offset: 32 + keen::uint64 fileId; // Offset: 40 + keen::bool onlyApproved; // Offset: 48 + keen::ds::SourceFileReference crowdinCSV; // Offset: 52 +}; + +struct LocaTagCollection { + keen::ds::LocaCrowdinProjectReference crowdinWritingProject; // Offset: 0 + keen::ds::LocaCrowdinProjectReference crowdinTranslationProject; // Offset: 16 +}; + +struct LocaTagCollectionResourceLanguage { + keen::LanguageId language; // Offset: 0 + keen::ContentHash dataHash; // Offset: 4 +}; + +struct LocaTagCollectionResource { + keen::ContentHash keenglishDataHash; // Offset: 0 + keen::DsArray languages; // Offset: 16 +}; + +typedef keen::LocaArgumentType LocaArgumentType; + +struct LocaTagArgument { + keen::uint32 id; // Offset: 0 + keen::ds::LocaArgumentType type; // Offset: 4 +}; + +struct LocaTagResource { + keen::ds::LocaTagId id; // Offset: 0 + keen::ds::string text; // Offset: 8 + keen::DsArray arguments; // Offset: 48 + keen::uint32 genericArguments; // Offset: 88 +}; + +struct LocaTagCollectionResourceData { + keen::DsArray tags; // Offset: 0 +}; + +struct BSpline { + keen::DsArray controlPoints; // Offset: 0 + keen::bool closed; // Offset: 40 +}; + +struct MemorySystemInformationBlock { + keen::StaticArray name; // Offset: 0 + keen::uint32 size; // Offset: 32 + keen::uint16 type; // Offset: 36 +}; + +struct MemorySystemInformation { + keen::uint64 totalSize; // Offset: 0 + keen::uint64 allocatedSize; // Offset: 8 + keen::uint64 freeSize; // Offset: 16 + keen::StaticArray memoryBlocks; // Offset: 24 + keen::uint32 memoryBlockCount; // Offset: 1304 +}; + +struct Midi { +}; + +typedef keen::MidiInstrumentSampleType MidiInstrumentSampleType; + +struct InstrumentSampleCollection { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct InstrumentSample { + keen::bool isPitched; // Offset: 0 + keen::uint8 baseNote; // Offset: 1 + keen::float32 fineTune; // Offset: 4 + keen::float32 volume; // Offset: 8 +}; + +struct SamplerInstrument { + keen::float32 volume; // Offset: 0 + keen::uint32 releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::ds::MidiInstrumentSampleType instrument; // Offset: 9 +}; + +struct SamplerInstrumentLayer { + keen::ObjectReference sample; // Offset: 0 + keen::uint8 minNote; // Offset: 16 + keen::uint8 maxNote; // Offset: 17 + keen::uint8 minVelocity; // Offset: 18 + keen::uint8 maxVelocity; // Offset: 19 +}; + +struct InstrumentSampleData { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::DsArray samples; // Offset: 8 +}; + +struct SamplerInstrumentResourceSample { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::uint8 minNote; // Offset: 8 + keen::uint8 maxNote; // Offset: 9 + keen::uint8 minVelocity; // Offset: 10 + keen::uint8 maxVelocity; // Offset: 11 + keen::uint32 sampleOffset; // Offset: 12 + keen::uint32 sampleLength; // Offset: 16 +}; + +struct SamplerInstrumentResource { + keen::float volume; // Offset: 0 + keen::float releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::DsArray samples; // Offset: 16 + keen::ContentHash sampleData; // Offset: 56 + keen::ds::MidiInstrumentSampleType instrument; // Offset: 72 +}; + +struct MidiEvent { + keen::uint32 timestamp; // Offset: 0 + keen::uint8 eventType; // Offset: 4 + keen::uint8 subType; // Offset: 5 + keen::uint8 param1; // Offset: 6 + keen::uint8 param2; // Offset: 7 +}; + +typedef keen::MidiTrackRole MidiTrackRole; + +struct MidiTrack { + keen::ds::string name; // Offset: 0 + keen::ds::string instrumentName; // Offset: 40 + keen::ds::MidiInstrumentSampleType instrument; // Offset: 80 + keen::ds::MidiTrackRole role; // Offset: 81 + keen::DsArray events; // Offset: 88 +}; + +struct MidiTimeSignature { + keen::uint8 numerator; // Offset: 0 + keen::uint8 denominator; // Offset: 1 + keen::uint8 amountOf32NotesInQN; // Offset: 2 + keen::uint8 metronomeTicksPQN; // Offset: 3 +}; + +struct MidiResource { + keen::ds::MidiTimeSignature timeSignature; // Offset: 0 + keen::uint16 pulsesPQN; // Offset: 4 + keen::bool isSMPTE; // Offset: 6 + keen::DsArray tracks; // Offset: 8 + keen::uint32 songDurationMS; // Offset: 48 + keen::ds::string debugName; // Offset: 56 +}; + +typedef keen::ObjectReference MidiResourceReference; + +struct NotifierContainer { +}; + +typedef keen::CharacterUtterance CharacterUtterance; + +struct VoicePack { + keen::ds::SoundContainerReference attackShort; // Offset: 0 + keen::ds::SoundContainerReference attackLong; // Offset: 16 + keen::ds::SoundContainerReference attackFinisher; // Offset: 32 + keen::ds::SoundContainerReference attackChainFinisherLong; // Offset: 48 + keen::ds::SoundContainerReference attackRollFinisher; // Offset: 64 + keen::ds::SoundContainerReference die; // Offset: 80 + keen::ds::SoundContainerReference hit; // Offset: 96 + keen::ds::SoundContainerReference jump; // Offset: 112 + keen::ds::SoundContainerReference exhausted; // Offset: 128 + keen::ds::SoundContainerReference staminaDrain; // Offset: 144 + keen::ds::SoundContainerReference customization; // Offset: 160 +}; + +struct VoicePackResource { + keen::StaticArray sound; // Offset: 0 +}; + +typedef keen::ObjectReference VoicePackResourceReference; + +struct VoicePackSubDirectory { +}; + +struct VoicePackDirectory { +}; + +struct VoicePackDirectoryResource { + keen::DsArray voicePacks; // Offset: 0 +}; + +struct Notifier { + keen::ds::VfxReference defaultVfx; // Offset: 0 + keen::ds::SoundContainerReference defaultSound; // Offset: 16 + keen::ds::CharacterUtterance playerVoice; // Offset: 32 +}; + +struct NotifierResource { + keen::ObjectReference defaultVfx; // Offset: 0 + keen::ds::VfxUserEffectParameterDataBlock defaultVfxInitParameters; // Offset: 16 + keen::ds::SoundContainerReference defaultSound; // Offset: 80 + keen::ds::CharacterUtterance playerVoice; // Offset: 96 +}; + +struct NotifierEventBase { + keen::ds::AttachmentSlot slot; // Offset: 96 + keen::ds::ecs::Offset notifierOffset; // Offset: 100 + keen::bool attach; // Offset: 140 + keen::bool cancelFromActorSequence; // Offset: 141 +}; + +typedef keen::FootId FootId; + +struct FootPassingEvent { + keen::ds::FootId foot; // Offset: 96 +}; + +struct NotifierEvent { + keen::ds::NotifierReference notifier; // Offset: 144 +}; + +struct VfxNotifierEvent { + keen::ds::VfxReference vfx; // Offset: 144 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 160 +}; + +struct SfxNotifierEvent { + keen::ds::SoundContainerReference sound; // Offset: 144 + keen::float32 noiseRange; // Offset: 160 +}; + +struct EnvironmentEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 160 + keen::float32 rayOffsetY; // Offset: 164 + keen::float32 rayLength; // Offset: 168 +}; + +struct FoleyEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::ds::FoleyType foleyType; // Offset: 160 +}; + +struct ClothSimulationEventModel { + keen::ObjectReference model; // Offset: 0 +}; + +struct ClothSimulationEvent { + keen::ObjectReference model; // Offset: 96 + keen::float32 damping; // Offset: 112 + keen::float32 linearInertia; // Offset: 116 + keen::float32 angularInertia; // Offset: 120 + keen::float32 centrifugalInertia; // Offset: 124 + keen::float32 solverFrequency; // Offset: 128 + keen::float32 collisionFriction; // Offset: 132 + keen::float32 motionConstraintsMaxRadius; // Offset: 136 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 140 + keen::float32 gravity; // Offset: 144 + keen::DsArray models; // Offset: 152 +}; + +struct ClothSimulationResetVelocityEvent { +}; + +struct ChainSimulationEvent { + keen::float32 damping; // Offset: 96 + keen::float32 linearInertia; // Offset: 100 + keen::float32 angularInertia; // Offset: 104 + keen::float32 centrifugalInertia; // Offset: 108 + keen::float32 collisionFriction; // Offset: 112 + keen::float32 motionConstraintRadius; // Offset: 116 + keen::float32 gravity; // Offset: 120 + keen::DsArray models; // Offset: 128 +}; + +typedef keen::CpuArchitecure CpuArchitecure; + +struct CpuSystemInformation { + keen::ds::CpuArchitecure architecture; // Offset: 0 + keen::uint32 bitCount; // Offset: 4 + keen::uint32 cpuCount; // Offset: 8 + keen::uint32 threadCount; // Offset: 12 + keen::StaticArray vendorId; // Offset: 16 + keen::StaticArray brand; // Offset: 32 + keen::bool hasSSE2; // Offset: 96 + keen::bool hasSSE42; // Offset: 97 + keen::bool hasAVX; // Offset: 98 + keen::bool hasAVX2; // Offset: 99 + keen::bool hasNeon; // Offset: 100 +}; + +typedef keen::DeviceId DeviceId; + +struct DeviceSystemInformation { + keen::ds::DeviceId id; // Offset: 0 + keen::StaticArray model; // Offset: 4 + keen::StaticArray name; // Offset: 68 + keen::StaticArray macAddress; // Offset: 132 + keen::bool isRooted; // Offset: 150 +}; + +typedef keen::OperatingSystemType OperatingSystemType; + +struct OsSystemInformation { + keen::ds::OperatingSystemType type; // Offset: 0 + keen::uint32 majorVersion; // Offset: 4 + keen::uint32 minorVersion; // Offset: 8 + keen::uint32 build; // Offset: 12 + keen::StaticArray versionString; // Offset: 16 + keen::StaticArray distribution; // Offset: 48 + keen::uint32 bitCount; // Offset: 80 +}; + +struct AtmosphereShaderData { + keen::uint32 isValid; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 + keen::float2 yToNormalizedHeight; // Offset: 8 + keen::float3 rayleighScattering; // Offset: 16 + keen::float32 invRayleighDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float32 pad3; // Offset: 44 + keen::float32 mieScattering; // Offset: 48 + keen::float32 mieExtinction; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::float32 invMieDistribution; // Offset: 60 +}; + +struct PreintegrateAtmosphereTransmittanceShaderData { + keen::float2 invTextureSize; // Offset: 0 + keen::float2 pixelToHeight; // Offset: 8 + keen::float planetRadius; // Offset: 16 + keen::float cutoffRadius; // Offset: 20 + keen::float mieExtinction; // Offset: 24 + keen::float invMieDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float invRayleighDistribution; // Offset: 44 +}; + +struct ComputeAtmosphereScatteringLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float2 texcoordToHeight; // Offset: 16 + keen::float2 pad1; // Offset: 24 + keen::float2 yToNormalizedHeight; // Offset: 32 + keen::float planetRadius; // Offset: 40 + keen::float cutoffRadius; // Offset: 44 + keen::float3 rayleighExtinction; // Offset: 48 + keen::float invRayleighDistribution; // Offset: 60 + keen::float3 rayleighScattering; // Offset: 64 + keen::float pad2; // Offset: 76 + keen::float mieExtinction; // Offset: 80 + keen::float invMieDistribution; // Offset: 84 + keen::float mieScattering; // Offset: 88 + keen::float mieG; // Offset: 92 +}; + +struct ComputeAtmosphereAmbientIlluminationLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 +}; + +struct Material { +}; + +struct BillboardMaterial { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference opacityMap; // Offset: 16 + keen::ObjectReference roughnessMap; // Offset: 32 + keen::ObjectReference reflectanceMap; // Offset: 48 + keen::ObjectReference metallicMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference translucencyMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 +}; + +typedef keen::BillboardRfxTexture BillboardRfxTexture; + +struct StreamedTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct StreamedTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BillboardRfxRenderMaterial { + keen::ds::StreamedTexture2D_float opacityMap; // Offset: 0 + keen::ds::StreamedTexture2D_float4 albedoMap; // Offset: 4 + keen::ds::StreamedTexture2D_float4 materialParamsMap; // Offset: 8 + keen::ds::StreamedTexture2D_float4 normalMap; // Offset: 12 +}; + +struct BrickVisibilityPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::uint32 frameId; // Offset: 76 +}; + +struct BrickDebugShadingConstants { + keen::float3 directionalLightDirection; // Offset: 0 + keen::float3 directionalLightColor; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 +}; + +struct VolumetricFogGridMaterial { + keen::float3 absorption; // Offset: 0 + keen::float3 scattering; // Offset: 16 + keen::float3 emission; // Offset: 32 +}; + +struct VolumetricFogGridCascadeShaderData { + keen::float3 origin; // Offset: 0 + keen::float32 size; // Offset: 12 + keen::int3 pixelOffset; // Offset: 16 + keen::uint32 explicitPad0; // Offset: 28 +}; + +struct VolumetricFogGridShaderData { + keen::uint32 flags; // Offset: 0 + keen::float3 origin; // Offset: 4 + keen::float3 size; // Offset: 16 + keen::uint3 topLevelMaxVoxel; // Offset: 32 + keen::ds::VolumetricFogGridMaterial none; // Offset: 48 + keen::ds::VolumetricFogGridMaterial dangerous; // Offset: 96 + keen::ds::VolumetricFogGridMaterial deadly; // Offset: 144 + keen::ds::VolumetricFogGridMaterial decorative; // Offset: 192 + keen::StaticArray cascades; // Offset: 240 +}; + +struct BrickFillGBufferConstants { + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint32 layerCount; // Offset: 496 + keen::uint32 showLayerWeight; // Offset: 500 + keen::uint32 debugLayerIndex; // Offset: 504 + keen::uint2 outputSize; // Offset: 512 + keen::float2 invOutputSize; // Offset: 520 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::uint32 isMaterialDataValid; // Offset: 592 + keen::float3 cameraWorldPosition; // Offset: 596 + keen::float exposureCorrection; // Offset: 608 + keen::float time; // Offset: 612 +}; + +struct GpuCullingFrustum { + keen::float4 plane0; // Offset: 0 + keen::float4 plane1; // Offset: 16 + keen::float4 plane2; // Offset: 32 + keen::float4 plane3; // Offset: 48 + keen::float4 plane4; // Offset: 64 + keen::float4 plane5; // Offset: 80 +}; + +struct GpuOcclusionCullingShaderData { + keen::float2 depthPyramidResolution; // Offset: 0 + keen::float2 screenToDepthPyramidUvScale; // Offset: 8 + keen::float P00; // Offset: 16 + keen::float P11; // Offset: 20 + keen::float P03; // Offset: 24 + keen::float P13; // Offset: 28 + keen::float P22; // Offset: 32 + keen::float P23; // Offset: 36 + keen::float zNear; // Offset: 40 + keen::float zFar; // Offset: 44 + keen::uint orthoProjection; // Offset: 48 +}; + +struct BrickCullingShaderParameters { + keen::uint32 instanceCount; // Offset: 0 + keen::ds::GpuCullingFrustum frustum; // Offset: 16 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 112 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 160 +}; + +struct BrickDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 firstIndex; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 firstInstance; // Offset: 16 +}; + +struct BrickSdfBakingShaderParameters { + keen::uint3 textureOffset; // Offset: 0 + keen::uint32 resolution; // Offset: 12 +}; + +struct BrickVoxelCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 brickIndex; // Offset: 4 + keen::uint2 brickData; // Offset: 8 +}; + +struct BrickVoxelDilateShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 +}; + +struct NewBrickCommandData { + keen::uint2 data; // Offset: 0 + keen::uint32 index; // Offset: 8 +}; + +struct BrickUploadShaderParameters { + keen::uint32 newBrickCount; // Offset: 0 +}; + +typedef keen::BuildingMappingType BuildingMappingType; + +struct BuildingMaterialParameters { + keen::ds::BuildingMappingType mapping; // Offset: 0 + keen::bool edgeOnlySide; // Offset: 1 + keen::DsArray decoObjectRules; // Offset: 8 +}; + +struct BuildingMaterialParametersResource { + keen::DsArray materials; // Offset: 0 +}; + +struct BuildingMaterials { + keen::DsArray> materials; // Offset: 0 +}; + +struct RenderTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 + keen::ds::string debugName; // Offset: 32 +}; + +struct BuildingMaterialLayerImages { + keen::ds::RenderTexture emissiveMap; // Offset: 0 + keen::ds::RenderTexture albedoMap; // Offset: 72 + keen::ds::RenderTexture metallicMap; // Offset: 144 + keen::ds::RenderTexture roughnessMap; // Offset: 216 + keen::ds::RenderTexture reflectanceMap; // Offset: 288 + keen::ds::RenderTexture normalMap; // Offset: 360 + keen::ds::RenderTexture heightMap; // Offset: 432 + keen::ds::RenderTexture aoMap; // Offset: 504 +}; + +struct BuildingMaterialImages { + keen::ds::BuildingMaterialLayerImages baseSide; // Offset: 0 + keen::ds::BuildingMaterialLayerImages baseTop; // Offset: 576 + keen::ds::BuildingMaterialLayerImages baseBottom; // Offset: 1152 + keen::ds::BuildingMaterialLayerImages edge; // Offset: 1728 + keen::ds::BuildingMaterialLayerImages noise; // Offset: 2304 +}; + +struct BuildingMaterialBlendingMaterialLayerTextureShaderData { + keen::ds::StreamedTexture2D_float4 emissiveMap; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 4 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 8 + keen::ds::StreamedTexture2D_float4 albedoMap; // Offset: 12 + keen::ds::StreamedTexture2D_float metallicMap; // Offset: 16 + keen::ds::StreamedTexture2D_float roughnessMap; // Offset: 20 + keen::ds::StreamedTexture2D_float reflectanceMap; // Offset: 24 + keen::ds::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::ds::StreamedTexture2D_float heightMap; // Offset: 32 + keen::ds::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 tilingFactor; // Offset: 40 + keen::float32 displacementScale; // Offset: 44 + keen::float32 displacementOffset; // Offset: 48 + keen::float32 emissiveGiFactor; // Offset: 52 +}; + +struct BuildingMaterialBlendingMaterialLayerShaderData { + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData baseSideTexture; // Offset: 0 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData baseTopTexture; // Offset: 56 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData baseBottomTexture; // Offset: 112 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTexture; // Offset: 168 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTopTexture; // Offset: 224 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData noiseTexture; // Offset: 280 + keen::float32 heightBlendingRange; // Offset: 336 + keen::float32 heightBlendingRangeNoise; // Offset: 340 + keen::float32 edgeBlendingCurve; // Offset: 344 + keen::uint32 edgeOnlySide; // Offset: 348 + keen::float2 noiseBlendRange; // Offset: 352 + keen::float32 bevelRadius; // Offset: 360 + keen::uint32 isRoof; // Offset: 364 +}; + +struct RenderParameterBlock { + keen::HashKey32 typeSignatureHash; // Offset: 0 + keen::ContentHash data; // Offset: 4 + keen::DsArray patchPoints; // Offset: 24 + keen::DsArray textures; // Offset: 64 + keen::DsArray samplers; // Offset: 104 + keen::ds::string debugName; // Offset: 144 +}; + +struct BuildingMaterialBlendingResource { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 layerSizeInBytes; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::ds::RenderParameterBlock renderingParameterBlock; // Offset: 16 + keen::DsArray renderingImageSizeInfos; // Offset: 200 + keen::DsArray renderingLayerImageSizeInfoStartIndices; // Offset: 240 +}; + +struct BuildingMaterialMapping { + keen::ObjectReference voxelMaterial; // Offset: 0 + keen::uint8 id; // Offset: 16 +}; + +struct BuildingMaterialPalette { +}; + +struct BuildingMaterialPalettesFolder { +}; + +typedef keen::ObjectReference BuildingMaterialPaletteId; + +typedef keen::DecoObjectRuleType DecoObjectRuleType; + +typedef keen::DecoObjectPartMode DecoObjectPartMode; + +typedef keen::DecoObjectPart DecoObjectPart; + +struct DecoObjectInstance { + keen::ObjectReference model; // Offset: 0 + keen::ds::DecoObjectPart part; // Offset: 16 + keen::sint32 fixedOrderKey; // Offset: 20 +}; + +struct DecoObjectRule { + keen::ds::DecoObjectRuleType rule; // Offset: 0 + keen::ds::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::float32 density; // Offset: 48 +}; + +struct DecoObjectRuleSet { + keen::ds::DecoObjectRuleType rule; // Offset: 0 + keen::ds::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::float32 density; // Offset: 8 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::bool fixedOrder; // Offset: 48 + keen::DsArray> startModels; // Offset: 56 + keen::DsArray> middleModels; // Offset: 96 + keen::DsArray> endModels; // Offset: 136 +}; + +struct DecoObjectRules { + keen::DsArray rules; // Offset: 0 +}; + +struct BuildingMaterialListEntry { + keen::Guid guid; // Offset: 0 + keen::ObjectReference pbrBuildingMaterial; // Offset: 16 +}; + +struct BuildingMaterialList { + keen::DsArray entries; // Offset: 0 +}; + +struct FFX_CACAO_Constants { + keen::float2 DepthUnpackConsts; // Offset: 0 + keen::float2 CameraTanHalfFOV; // Offset: 8 + keen::float2 NDCToViewMul; // Offset: 16 + keen::float2 NDCToViewAdd; // Offset: 24 + keen::float2 DepthBufferUVToViewMul; // Offset: 32 + keen::float2 DepthBufferUVToViewAdd; // Offset: 40 + keen::float32 EffectRadius; // Offset: 48 + keen::float32 EffectShadowStrength; // Offset: 52 + keen::float32 EffectShadowPow; // Offset: 56 + keen::float32 EffectShadowClamp; // Offset: 60 + keen::float32 EffectFadeOutMul; // Offset: 64 + keen::float32 EffectFadeOutAdd; // Offset: 68 + keen::float32 EffectHorizonAngleThreshold; // Offset: 72 + keen::float32 EffectSamplingRadiusNearLimitRec; // Offset: 76 + keen::float32 DepthPrecisionOffsetMod; // Offset: 80 + keen::float32 NegRecEffectRadius; // Offset: 84 + keen::float32 LoadCounterAvgDiv; // Offset: 88 + keen::float32 AdaptiveSampleCountLimit; // Offset: 92 + keen::float32 InvSharpness; // Offset: 96 + keen::sint32 PassIndex; // Offset: 100 + keen::float32 BilateralSigmaSquared; // Offset: 104 + keen::float32 BilateralSimilarityDistanceSigma; // Offset: 108 + keen::StaticArray PatternRotScaleMatrices; // Offset: 112 + keen::float32 DetailAOStrength; // Offset: 192 + keen::float32 Dummy0; // Offset: 196 + keen::float32 Dummy1; // Offset: 200 + keen::float32 Dummy2; // Offset: 204 + keen::float2 SSAOBufferDimensions; // Offset: 208 + keen::float2 SSAOBufferInverseDimensions; // Offset: 216 + keen::float2 DepthBufferDimensions; // Offset: 224 + keen::float2 DepthBufferInverseDimensions; // Offset: 232 + keen::int2 DepthBufferOffset; // Offset: 240 + keen::float2 PerPassFullResUVOffset; // Offset: 248 + keen::float2 OutputBufferDimensions; // Offset: 256 + keen::float2 OutputBufferInverseDimensions; // Offset: 264 + keen::float2 ImportanceMapDimensions; // Offset: 272 + keen::float2 ImportanceMapInverseDimensions; // Offset: 280 + keen::float2 DeinterleavedDepthBufferDimensions; // Offset: 288 + keen::float2 DeinterleavedDepthBufferInverseDimensions; // Offset: 296 + keen::float2 DeinterleavedDepthBufferOffset; // Offset: 304 + keen::float2 DeinterleavedDepthBufferNormalisedOffset; // Offset: 312 + keen::GraphicsMatrix44 NormalsWorldToViewspaceMatrix; // Offset: 320 +}; + +typedef keen::VoxelChunkPassType VoxelChunkPassType; + +struct PackedShaderWorldTransform { + keen::uint3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct PackedShaderWorldPositionUniform { + keen::uint3 position; // Offset: 0 +}; + +struct VoxelChunkShaderData { + keen::ds::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::ds::PackedShaderWorldPositionUniform worldPosition; // Offset: 32 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float4 boundingSphere; // Offset: 96 + keen::float scale; // Offset: 112 + keen::uint triangleIndexOffset; // Offset: 116 + keen::uint triangleIndexCount; // Offset: 120 + keen::uint quadIndexOffset; // Offset: 124 + keen::uint quadIndexCount; // Offset: 128 + keen::uint vertexOffset; // Offset: 132 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 136 + keen::uint chunkletOffset; // Offset: 140 + keen::uint chunkletCount; // Offset: 144 + keen::uint chunkletVisibilityOffset; // Offset: 148 + keen::uint highlightColorPaletteIndexTransparency; // Offset: 152 + keen::uint sizeFeedbackIndex; // Offset: 156 + keen::StaticArray pipelineIndices; // Offset: 160 + keen::uint flags; // Offset: 172 +}; + +struct ShaderChunkletCullingSubView { + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 + keen::uint32 flags; // Offset: 16 + keen::float3 exclusionCircle; // Offset: 20 + keen::float3 viewDirection; // Offset: 32 + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 48 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 144 + keen::ds::GpuOcclusionCullingShaderData occlusionData; // Offset: 192 +}; + +struct ShaderChunkletCullingPass { + keen::uint32 flags; // Offset: 0 + keen::uint32 subViewIndex; // Offset: 4 + keen::uint32 passType; // Offset: 8 +}; + +struct RenderChunkletCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2432 + keen::uint32 passCount; // Offset: 2436 + keen::uint32 jobCount; // Offset: 2440 + keen::uint32 stageIndex; // Offset: 2444 +}; + +struct CulledChunklet { + keen::uint data0; // Offset: 0 + keen::uint visibility; // Offset: 4 +}; + +struct ChunkletPrefixSumShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint stageIndex; // Offset: 4 +}; + +struct VoxelChunkArgumentsPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct RenderChunkletDrawPrepareShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint batchOffset; // Offset: 4 +}; + +struct ChunkletPipelineInfoShaderData { + keen::uint flags; // Offset: 0 +}; + +struct ChunkletDrawCommand { + keen::uint vertexCount; // Offset: 0 + keen::uint instanceCount; // Offset: 4 + keen::uint vertexOffset; // Offset: 8 + keen::uint instanceOffset; // Offset: 12 +}; + +struct ChunkletPushConstants { + keen::uint drawIndex; // Offset: 0 +}; + +struct VoxelChunkSizeFeedbackShaderParameters { + keen::float3 viewPosition; // Offset: 0 + keen::float pixelSize; // Offset: 12 + keen::uint chunkCount; // Offset: 16 +}; + +struct RenderChunklet { + keen::uint data0; // Offset: 0 +}; + +struct ChunkletCullingDebugCounters { + keen::uint culledByOrientation; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledByVisibility; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct ClusterCullingCellData { + keen::uint2 lightListCountAndOffset; // Offset: 0 + keen::uint2 decalListCountAndOffset; // Offset: 8 +}; + +struct ClusterCullingShaderData { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint3 clusterSize; // Offset: 112 + keen::uint cellLightListOffsetCounterOffset; // Offset: 124 + keen::uint cellDecalListOffsetCounterOffset; // Offset: 128 + keen::float2 linearDepthParameters; // Offset: 132 + keen::float2 tileRatio; // Offset: 144 + keen::uint pointLightCounterOffset; // Offset: 152 + keen::uint maxPointLightCount; // Offset: 156 + keen::uint decalCounterOffset; // Offset: 160 + keen::uint maxDecalCount; // Offset: 164 +}; + +struct ClusterCullingDebugPushConstants { + keen::uint2 debugImageSize; // Offset: 0 +}; + +typedef keen::GpuCulling2StageId GpuCulling2StageId; + +typedef keen::GpuCulling2PassType GpuCulling2PassType; + +typedef keen::GpuCulling2PassId GpuCulling2PassId; + +struct GpuCulling2SubViewConstants { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 80 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 +}; + +struct GpuCulling2PassConstants { + keen::uint flags; // Offset: 0 + keen::uint subViewIndex; // Offset: 4 + keen::uint passType; // Offset: 8 +}; + +struct GpuCulling2ShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2640 + keen::uint subViewCount; // Offset: 2832 + keen::uint passCount; // Offset: 2836 + keen::uint visibleGroupMask; // Offset: 2840 + keen::uint isLateStage; // Offset: 2844 + keen::uint flags; // Offset: 2848 + keen::uint instanceCount; // Offset: 2852 + keen::uint batchCount; // Offset: 2856 + keen::float pixelSizeCullingBias; // Offset: 2860 + keen::uint meshCount; // Offset: 2864 + keen::uint maxCulledInstanceCount; // Offset: 2868 + keen::uint scanShaderGroupSize; // Offset: 2872 + keen::uint fixupShaderGroupSize; // Offset: 2876 + keen::ds::PackedShaderWorldPositionUniform mainViewCameraPosition; // Offset: 2880 + keen::float mainViewPixelSize; // Offset: 2896 +}; + +struct GpuCulling2SubViewDebugCounters { + keen::uint notCulled; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledBySize; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct GpuCulling2PassDebugCounters { + keen::uint notCulled; // Offset: 0 +}; + +struct GpuCulling2Counters { + keen::uint culledInstanceCount; // Offset: 0 + keen::uint leftoverInstances; // Offset: 4 + keen::uint firstInstanceCount; // Offset: 8 +}; + +typedef keen::GpuCulling2DispatchCommandId GpuCulling2DispatchCommandId; + +struct GpuCulling2DebugCounters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 220 + keen::uint culledByGroupMask; // Offset: 268 + keen::uint culledByPixelSize; // Offset: 272 +}; + +struct GpuCulling2CulledInstanceData { + keen::uint meshIndexAndBatchIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct GpuCulling2PixelQuery { + keen::uint2 position; // Offset: 0 +}; + +struct GpuCulling2PixelQueryResult { + keen::uint stageId; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint instanceDataIndex; // Offset: 8 + keen::uint meshIndexAndBatchIndex; // Offset: 12 +}; + +typedef keen::GpuCulling2HighlightType GpuCulling2HighlightType; + +struct GpuCulling2RenderData { + keen::ds::GpuCulling2PixelQuery pixelQuery; // Offset: 0 + keen::ds::GpuCulling2PixelQueryResult pixelQueryResult; // Offset: 8 + keen::ds::GpuCulling2HighlightType highlightType; // Offset: 24 + keen::uint highlightValue; // Offset: 28 + keen::uint highlightValue2; // Offset: 32 +}; + +struct RenderMaterialMeshShaderData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint modelMaterialData; // Offset: 28 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 32 + keen::uint blendShapeVertexOffset; // Offset: 36 + keen::uint blendShapeMask; // Offset: 40 + keen::uint vertexCount; // Offset: 44 +}; + +struct RenderDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::uint32 materialMeshIndexAndLodIndex; // Offset: 20 +}; + +struct RenderDrawData { + keen::uint modelIndex; // Offset: 0 + keen::uint instanceDataIndex; // Offset: 4 + keen::uint groupMask; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct RenderModelDrawData { + keen::float4 boundingSphere; // Offset: 0 + keen::uint modelLodStartIndex; // Offset: 16 + keen::uint modelLodCount; // Offset: 20 + keen::uint hasCardClusterLod; // Offset: 24 + keen::uint sizeFeedbackIndex; // Offset: 28 + keen::StaticArray lodPixelSizes; // Offset: 32 +}; + +struct RenderModelLodDrawData { + keen::uint materialMeshStartIndex; // Offset: 0 + keen::uint materialMeshCount; // Offset: 4 + keen::uint _pad0; // Offset: 8 + keen::uint _pad1; // Offset: 12 +}; + +struct RenderMaterialMeshDrawData { + keen::uint pipelineIndex; // Offset: 0 + keen::uint indexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::int vertexOffset; // Offset: 12 +}; + +struct GpuCullingDrawCounter { + keen::uint32 offset; // Offset: 0 + keen::uint32 maxCount; // Offset: 4 +}; + +struct GpuCullingDebugCounters { + keen::uint32 notCulled; // Offset: 0 + keen::uint32 culledByVisibility; // Offset: 4 + keen::uint32 culledBySize; // Offset: 8 + keen::uint32 culledByFrustum; // Offset: 12 + keen::uint32 culledByOcclusion; // Offset: 16 + keen::uint32 culledByExclusion; // Offset: 20 +}; + +struct CullingShaderData { + keen::float3 viewPosition; // Offset: 0 + keen::int fixedLod; // Offset: 12 + keen::uint viewVisibilityMask; // Offset: 16 + keen::float pixelSize; // Offset: 20 + keen::float pixelSizeCullingBias; // Offset: 24 + keen::uint visibleGroupMask; // Offset: 28 + keen::ds::GpuCullingFrustum frustum; // Offset: 32 + keen::float3 exclusionCircle; // Offset: 128 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 144 + keen::GraphicsMatrix44 projectionMatrix; // Offset: 192 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 256 + keen::uint drawCounterOffset; // Offset: 320 + keen::uint occlusionCullingEnabled; // Offset: 324 + keen::uint exclusionCullingEnabled; // Offset: 328 + keen::uint useLastFrameVisibility; // Offset: 332 + keen::uint cpuDrawCount; // Offset: 336 + keen::uint cullSmallObjects; // Offset: 340 + keen::float smallObjectRadius; // Offset: 344 + keen::uint forceCardClusterLod; // Offset: 348 + keen::uint useCameraCenteredSpace; // Offset: 352 + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 368 +}; + +struct UploadRenderInstancesShaderData { + keen::uint32 uploadInstanceCount; // Offset: 0 +}; + +struct DebugOcclusionCullingShaderParameters { + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::float4 viewSpaceSphere; // Offset: 64 +}; + +struct DebugOcclusionCullingResultShaderData { + keen::uint isValid; // Offset: 0 + keen::uint level; // Offset: 4 + keen::float2 rectMin; // Offset: 8 + keen::float2 rectMax; // Offset: 16 + keen::float2 uv; // Offset: 24 +}; + +typedef keen::CurvePointTangent CurvePointTangent; + +typedef keen::CurveTangent CurveTangent; + +struct CurvePoint { + keen::ds::CurveTangent tangent; // Offset: 8 + keen::ds::CurvePointTangent pointTangent; // Offset: 9 +}; + +struct ImageDiffShaderParameters { + keen::float32 threshold; // Offset: 0 +}; + +struct DebugMagnifierShaderParameters { + keen::uint imageWidth; // Offset: 0 + keen::uint imageHeight; // Offset: 4 + keen::uint2 mousePos; // Offset: 8 + keen::float4 borderColor; // Offset: 16 + keen::float magnificationAmount; // Offset: 32 + keen::float magnifierScreenRadius; // Offset: 36 + keen::int magnifierOffsetX; // Offset: 40 + keen::int magnifierOffsetY; // Offset: 44 + keen::float brightness; // Offset: 48 + keen::float contrast; // Offset: 52 +}; + +typedef keen::VisualizeTextureOp VisualizeTextureOp; + +typedef keen::VisualizeTextureChannel VisualizeTextureChannel; + +struct VisualizeTextureCommandShaderData { + keen::ds::VisualizeTextureOp op; // Offset: 0 + keen::ds::VisualizeTextureChannel channel; // Offset: 4 + keen::uint32 scale; // Offset: 8 + keen::float power; // Offset: 12 +}; + +struct VisualizeTextureShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::StaticArray commands; // Offset: 16 +}; + +struct VisualizeOverdrawShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float scale; // Offset: 8 +}; + +struct IblVisualizationData { + keen::GraphicsMatrix44 ndcToWorldMatrix; // Offset: 0 + keen::float iblIntensity; // Offset: 64 + keen::float exposure; // Offset: 68 +}; + +typedef keen::DecalNormalBlendMode DecalNormalBlendMode; + +typedef keen::DecalRoughnessBlendMode DecalRoughnessBlendMode; + +struct Decal { + keen::bool affectShading; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 4 + keen::ObjectReference opacityMap; // Offset: 20 + keen::ObjectReference normalMap; // Offset: 36 + keen::ds::DecalNormalBlendMode normalBlendMode; // Offset: 52 + keen::ObjectReference roughnessMap; // Offset: 56 + keen::ds::DecalRoughnessBlendMode roughnessBlendMode; // Offset: 72 + keen::ObjectReference emissiveMap; // Offset: 76 + keen::ObjectReference emissiveAlphaMap; // Offset: 92 + keen::ObjectReference metallicMap; // Offset: 108 + keen::ObjectReference aoMap; // Offset: 124 + keen::bool affectTerrainVoxelMesh; // Offset: 140 + keen::bool affectBuildingVoxelMesh; // Offset: 141 + keen::bool affectRoofVoxelMesh; // Offset: 142 + keen::bool affectModels; // Offset: 143 + keen::bool affectSkinnedModels; // Offset: 144 + keen::bool affectBuildingDecoModels; // Offset: 145 + keen::bool affectScatterDetailModels; // Offset: 146 + keen::bool affectScattering; // Offset: 147 + keen::ObjectReference scatterScaleMap; // Offset: 148 + keen::float scatterScaleFactor; // Offset: 164 +}; + +typedef keen::DecalLayer DecalLayer; + +typedef keen::DecalLayerMask DecalLayerMask; + +struct DecalMaterialData { + keen::ds::BindlessTexture2D_float4 albedoMap; // Offset: 0 + keen::ds::BindlessTexture2D_float4 normalMap; // Offset: 4 + keen::ds::BindlessTexture2D_float roughnessMap; // Offset: 8 + keen::ds::BindlessTexture2D_float metallicMap; // Offset: 12 + keen::ds::BindlessTexture2D_float4 emissiveMap; // Offset: 16 + keen::ds::BindlessTexture2D_float aoMap; // Offset: 20 + keen::ds::BindlessTexture2D_float scatterScaleMap; // Offset: 24 + keen::uint32 decalLayerMask; // Offset: 28 + keen::float scatterScaleFactor; // Offset: 32 +}; + +struct RenderDecal { + keen::ds::RenderParameterBlock parameterBlock; // Offset: 0 +}; + +struct WeatherSurfaceMaterialData { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float frostUVScale; // Offset: 8 + keen::float frostScale; // Offset: 12 + keen::float3 frostAlbedo; // Offset: 16 + keen::float frostRoughness; // Offset: 28 + keen::float3 frostPuddleAlbedo; // Offset: 32 + keen::float frostPorosityScale; // Offset: 44 + keen::float snowVertexNormalPower; // Offset: 48 + keen::float snowVertexNormalCutoff; // Offset: 52 +}; + +struct GrassMovementData { + keen::ds::PackedShaderWorldPositionUniform origin; // Offset: 0 + keen::float2 reciprocalSize; // Offset: 16 + keen::uint32 validData; // Offset: 24 +}; + +struct TessellatedMaterialConstants { + keen::float2 levelMapping; // Offset: 0 + keen::float32 maxLevel; // Offset: 8 +}; + +typedef keen::RenderShaderDebugMode RenderShaderDebugMode; + +struct RenderDebugConstants { + keen::ds::RenderShaderDebugMode debugMode; // Offset: 0 + keen::uint32 debugNeutralAlbedo; // Offset: 4 + keen::uint32 debugTextureIndex; // Offset: 8 + keen::float32 debugTextureAlpha; // Offset: 12 + keen::float4 debugValue; // Offset: 16 +}; + +struct DynamicHeightmapSamplingShaderData { + keen::uint size; // Offset: 0 + keen::float inverseSize; // Offset: 4 + keen::int2 origin; // Offset: 8 + keen::float scale; // Offset: 16 + keen::float2 distanceFade; // Offset: 20 + keen::uint explicitPad0; // Offset: 28 +}; + +struct WeatherSampleConstants { + keen::uint flags; // Offset: 0 + keen::float2 texcoordMappingScale; // Offset: 4 + keen::float2 texcoordMappingOffset; // Offset: 16 + keen::float2 snowBorderMapping; // Offset: 24 + keen::float32 cameraPositionY; // Offset: 32 + keen::ds::DynamicHeightmapSamplingShaderData heightMap; // Offset: 48 + keen::float3 heightMapCameraPosition; // Offset: 80 + keen::float3 frostVoxelTexcoordMappingScale; // Offset: 96 + keen::float3 frostVoxelTexcoordMappingOffset; // Offset: 112 +}; + +struct RenderLightFactors { + keen::float32 sun; // Offset: 0 + keen::float32 skyGeometrySun; // Offset: 4 + keen::float32 pointLights; // Offset: 8 + keen::float32 gi; // Offset: 12 + keen::float32 emissive; // Offset: 16 + keen::float32 exposure; // Offset: 20 + keen::float32 exposureCorrection; // Offset: 24 +}; + +struct SnowDisplacementData { + keen::ds::PackedShaderWorldPositionUniform tileOrigin; // Offset: 0 + keen::float reciprocalSize; // Offset: 16 + keen::float rcpNormalScale; // Offset: 20 + keen::float halfWorldSize; // Offset: 24 + keen::float heightScale; // Offset: 28 + keen::uint32 validData; // Offset: 32 +}; + +struct RenderGBufferConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::float32 prevTime; // Offset: 192 + keen::ds::GrassMovementData grassMovement; // Offset: 208 + keen::ds::GrassMovementData grassMovementPrevious; // Offset: 240 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 272 + keen::ds::TessellatedMaterialConstants buildingTessellation; // Offset: 288 + keen::ds::RenderDebugConstants debugData; // Offset: 304 + keen::uint32 enableCloth; // Offset: 336 + keen::uint32 enableLavaShader; // Offset: 340 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 344 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 348 + keen::ds::WeatherSurfaceMaterialData weatherSurfaceMaterialData; // Offset: 352 + keen::ds::WeatherSampleConstants weather; // Offset: 416 + keen::ds::RenderLightFactors lightFactors; // Offset: 544 + keen::uint32 blueNoiseSizeMask; // Offset: 576 + keen::uint2 blueNoiseOffset; // Offset: 580 + keen::uint32 isVoxelMaterialDataValid; // Offset: 588 + keen::float highlightAmount; // Offset: 592 + keen::float highlightIntensity; // Offset: 596 + keen::StaticArray highlightColorPaletteArray; // Offset: 608 + keen::float mipBias; // Offset: 736 + keen::uint32 useStochasticMaterialSampling; // Offset: 740 + keen::float2 cancelJitter; // Offset: 744 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 752 + keen::ds::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 768 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 784 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 848 + keen::ds::SnowDisplacementData snowDisplacement; // Offset: 912 +}; + +struct CascadeShadowShaderData { + keen::GraphicsMatrix43 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 48 + keen::float4 fadeParameters0; // Offset: 96 + keen::float4 fadeParameters1; // Offset: 112 +}; + +struct RenderShadowAtlasShaderData { + keen::float4 viewMatrixRowZ; // Offset: 0 + keen::float4 atlasSize; // Offset: 16 + keen::float4 cascadeCount; // Offset: 32 + keen::float4 firstCascadeDistanceFadeParameters; // Offset: 48 + keen::StaticArray cascades; // Offset: 64 +}; + +struct ForwardDirectionalLightData { + keen::float3 direction; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float pad1; // Offset: 28 +}; + +struct ForwardIblData { + keen::float4 azimuthRotationXZ; // Offset: 0 + keen::float32 specularMipLevelCount; // Offset: 16 + keen::float32 intensity; // Offset: 20 + keen::uint32 isValid; // Offset: 24 +}; + +struct Fog2ShadowVolumeTransform { + keen::StaticArray worldToCascadeMatrices; // Offset: 0 +}; + +struct Fog2ShadowVolumeSampleParameters { + keen::ds::Fog2ShadowVolumeTransform transform; // Offset: 0 + keen::uint32 cascadeCount; // Offset: 192 + keen::float32 invCascadeCount; // Offset: 196 + keen::float32 halfPixelWidth; // Offset: 200 +}; + +struct VolumetricShadowRuntimeData { + keen::ds::Fog2ShadowVolumeSampleParameters fog2ShadowVolumeSampleParameters; // Offset: 0 + keen::float3 directionalLightDirection; // Offset: 208 + keen::uint32 flags; // Offset: 220 + keen::float2 cloudMapTexcoordMapping; // Offset: 224 + keen::float32 pad0; // Offset: 232 + keen::float32 pad1; // Offset: 236 +}; + +struct DeferredLightingConstants { + keen::ds::RenderLightFactors lightFactors; // Offset: 0 + keen::uint2 outputSize; // Offset: 32 + keen::float2 invOutputSize; // Offset: 40 + keen::float32 time; // Offset: 48 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 176 + keen::float3 cameraWorldPosition; // Offset: 240 + keen::float3 playerWorldPosition; // Offset: 256 + keen::float4 clearColor; // Offset: 272 + keen::ds::RenderShadowAtlasShaderData atlasData; // Offset: 288 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 1376 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 1408 + keen::ds::ForwardIblData iblData; // Offset: 1472 + keen::uint32 fogDisabled; // Offset: 1500 + keen::uint32 ssaoEnabled; // Offset: 1504 + keen::uint32 useAoMin; // Offset: 1508 + keen::uint32 useAoMaps; // Offset: 1512 + keen::uint32 giEnabled; // Offset: 1516 + keen::uint32 pointLightsEnabled; // Offset: 1520 + keen::uint32 useHorizonBasedSpecularOcclusion; // Offset: 1524 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1536 + keen::ds::RenderDebugConstants debugData; // Offset: 1776 + keen::uint32 accumulateSceneBrightness; // Offset: 1808 +}; + +struct VisibilityMaterialParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 16 + keen::uint32 drawCommandBufferOffsetEarly; // Offset: 80 + keen::uint32 drawCommandBufferOffsetEarlyTessellated; // Offset: 84 + keen::uint32 drawCommandBufferOffsetLate; // Offset: 88 + keen::uint32 drawCommandBufferOffsetLateTessellated; // Offset: 92 +}; + +struct DepthOfFieldConstants { + keen::float focalLength; // Offset: 0 + keen::float focalDistance; // Offset: 4 + keen::float cocScale; // Offset: 8 + keen::float2 linearDepthParameters; // Offset: 16 + keen::float2 kernelScale; // Offset: 24 + keen::float2 sceneImagePixelSize; // Offset: 32 + keen::float2 jitterOffset; // Offset: 40 + keen::GraphicsMatrix44 invProjectionMatrix; // Offset: 48 + keen::StaticArray samplesHigh; // Offset: 112 + keen::StaticArray samplesLow; // Offset: 880 +}; + +struct DepthPyramidShaderParameters { + keen::float2 inverseOutputResolution; // Offset: 0 + keen::uint2 inputResolution; // Offset: 8 +}; + +typedef keen::DetailScatterModelAlignmentAxis DetailScatterModelAlignmentAxis; + +struct DetailScatterModel { + keen::ds::DetailScatterModelAlignmentAxis alignmentAxis; // Offset: 0 + keen::bool spawnInside; // Offset: 1 + keen::bool spawnOutside; // Offset: 2 + keen::float32 alignWithNormalStrength; // Offset: 4 + keen::float32 randomRotationXStrength; // Offset: 8 + keen::float32 randomRotationYStrength; // Offset: 12 + keen::float32 randomRotationZStrength; // Offset: 16 + keen::float32 minFadeoutDistance; // Offset: 20 + keen::float32 maxFadeoutDistance; // Offset: 24 + keen::float32 minScale; // Offset: 28 + keen::float32 maxScale; // Offset: 32 + keen::float32 mapScaleStrength; // Offset: 36 + keen::float32 materialWeightScaleStrength; // Offset: 40 +}; + +struct DetailScatterInstance { + keen::ObjectReference model; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::bool onlyOnWeathered; // Offset: 20 +}; + +typedef keen::TextureChannel TextureChannel; + +struct DetailScatterGroup { + keen::ds::TextureChannel mapChannel; // Offset: 0 +}; + +struct DetailScatterLayer { + keen::ObjectReference map; // Offset: 0 + keen::float32 mapTilingSize; // Offset: 16 +}; + +struct DetailScatterLayerShaderData { + keen::ds::BindlessTexture2D_float4 map; // Offset: 0 + keen::float32 mapTilingFactor; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::ds::BindlessTexture2D_float edgeNoiseMap; // Offset: 16 + keen::float32 edgeNoiseTilingFactor; // Offset: 20 + keen::float32 edgeNoiseMappingFactor; // Offset: 24 + keen::uint32 pad2; // Offset: 28 + keen::uint4 modelOffset; // Offset: 32 + keen::uint4 modelCount; // Offset: 48 +}; + +struct DetailScatterModelProbabilityCutoffShaderData { + keen::float32 value; // Offset: 0 +}; + +struct DetailScatterModelShaderData { + keen::float32 minFadeoutDistance; // Offset: 0 + keen::float32 maxFadeoutDistance; // Offset: 4 + keen::float32 minScale; // Offset: 8 + keen::float32 maxScale; // Offset: 12 + keen::float32 alignWithNormalStrength; // Offset: 16 + keen::uint32 params0; // Offset: 20 + keen::uint32 params1; // Offset: 24 + keen::float32 lodDistance; // Offset: 28 +}; + +struct DetailScatterShaderData { + keen::ds::BindlessSampler scatterMapSampler; // Offset: 0 + keen::uint32 pad0; // Offset: 4 + keen::uint32 pad1; // Offset: 8 + keen::uint32 pad2; // Offset: 12 +}; + +struct DetailScatterResource { + keen::ds::RenderParameterBlock shaderDataParameterBlock; // Offset: 0 + keen::ds::RenderParameterBlock layersShaderDataParameterBlock; // Offset: 184 + keen::ds::RenderParameterBlock modelsShaderDataParameterBlock; // Offset: 368 + keen::ds::RenderParameterBlock modelProbabilityCutoffsShaderDataParameterBlock; // Offset: 552 + keen::DsArray> models; // Offset: 736 + keen::float largestModelRadius; // Offset: 776 +}; + +struct DissolveMaterialParameters { + keen::bool enable; // Offset: 0 + keen::float32 noiseTiling; // Offset: 4 + keen::float32 noiseFadeRange; // Offset: 8 + keen::ObjectReference noiseMap; // Offset: 12 + keen::bool enableEdgeGlow; // Offset: 28 + keen::float32 edgeWidth; // Offset: 32 + keen::Color edgeColor; // Offset: 36 +}; + +struct DynamicHeightmapFillShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 + keen::uint2 ditherPos; // Offset: 16 + keen::int2 origin; // Offset: 24 + keen::float scale; // Offset: 32 + keen::float worldTop; // Offset: 36 +}; + +struct DynamicHeightmapRasterizeTreesShaderParameters { + keen::float32 scale; // Offset: 0 +}; + +struct CollectGpuCullingTreesShaderParameters { + keen::uint drawCountBufferOffset; // Offset: 0 + keen::uint drawCommandBufferOffset; // Offset: 4 +}; + +struct FfxShadowDenoiserShaderParameters { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 reprojectionMatrix; // Offset: 128 + keen::GraphicsMatrix43 viewMatrix; // Offset: 192 + keen::float3 cameraPosition; // Offset: 240 + keen::uint2 packedSize; // Offset: 256 + keen::uint2 targetSize; // Offset: 264 + keen::float2 inverseTargetSize; // Offset: 272 + keen::uint32 isFirstFrame; // Offset: 280 + keen::uint32 pixelSize; // Offset: 284 + keen::float32 depthSigma; // Offset: 288 +}; + +struct FfxShadowDenoiserPushConstants { + keen::uint32 stepSize; // Offset: 0 +}; + +struct FogMaterialParameters { + keen::float32 absorption; // Offset: 0 + keen::Color scattering; // Offset: 4 + keen::HdrColorRgb emission; // Offset: 8 + keen::float32 density; // Offset: 24 +}; + +struct FoliageAnimationAdvancedParameters { + keen::float32 branchPhaseOffset; // Offset: 0 + keen::float32 detailFrequency; // Offset: 4 + keen::float32 edgeAmplitude; // Offset: 8 + keen::float32 branchAmplitude; // Offset: 12 +}; + +struct FoliageAnimationModelParameters { + keen::float32 assetHeightFactor; // Offset: 0 + keen::float32 globalStiffnessFactor; // Offset: 4 + keen::ds::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 8 +}; + +struct GrassPushbackModelParameters { + keen::float32 bounceTime; // Offset: 0 + keen::uint32 bounceCount; // Offset: 4 + keen::float32 bounceDamping; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct GrassPushbackShaderParameters { + keen::float32 bounceDamping; // Offset: 0 + keen::float32 bounceFrequency; // Offset: 4 + keen::float32 oneOverBounceTime; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct FoliageAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 precomputedBendScale; // Offset: 4 + keen::float32 globalStiffnessFactor; // Offset: 8 + keen::ds::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 12 + keen::ds::GrassPushbackShaderParameters pushBack; // Offset: 28 +}; + +struct GrassAnimationModelParameters { + keen::float32 largeDisplacementWeight; // Offset: 0 + keen::float32 smallDisplacementWeight; // Offset: 4 +}; + +struct GrassAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 largeDisplacementWeight; // Offset: 4 + keen::float32 smallDisplacementWeight; // Offset: 8 + keen::float32 oneOverModelHeight; // Offset: 12 + keen::ds::GrassPushbackShaderParameters pushBack; // Offset: 16 +}; + +struct ForestFogFootprintMaterial { +}; + +struct ForestFogFootprintRenderMaterial { +}; + +struct RenderPushConstants2 { + keen::uint32 drawCommandBufferOffset; // Offset: 0 + keen::uint32 isLateCullingPass; // Offset: 4 + keen::uint32 drawIndex; // Offset: 8 + keen::uint32 isRunningOnSteamDeck; // Offset: 12 +}; + +struct VfxDrawPushConstants { + keen::uint32 baseDrawIndex; // Offset: 0 +}; + +struct RenderShadowPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::ds::GrassMovementData grassMovement; // Offset: 80 + keen::ds::SnowDisplacementData snowDisplacement; // Offset: 112 + keen::uint32 enableCloth; // Offset: 160 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 176 + keen::ds::TessellatedMaterialConstants buildingTessellation; // Offset: 192 + keen::uint32 blueNoiseSizeMask; // Offset: 208 + keen::uint2 blueNoiseOffset; // Offset: 212 + keen::uint32 useStochasticMaterialSampling; // Offset: 220 + keen::uint32 isVoxelMaterialDataValid; // Offset: 224 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 256 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 320 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 324 +}; + +struct RenderDepthConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::float32 prevTime; // Offset: 80 + keen::ds::GrassMovementData grassMovement; // Offset: 96 + keen::ds::GrassMovementData grassMovementPrevious; // Offset: 128 + keen::ds::SnowDisplacementData snowDisplacement; // Offset: 160 + keen::uint32 enableCloth; // Offset: 208 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::ds::TessellatedMaterialConstants buildingTessellation; // Offset: 240 + keen::float mipBias; // Offset: 256 + keen::uint32 blueNoiseSizeMask; // Offset: 260 + keen::uint2 blueNoiseOffset; // Offset: 264 + keen::uint32 useStochasticMaterialSampling; // Offset: 272 + keen::uint32 isVoxelMaterialDataValid; // Offset: 276 + keen::float2 cancelJitter; // Offset: 280 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 288 + keen::ds::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 304 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 320 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 384 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 448 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 452 +}; + +struct RenderForwardConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 176 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::float3 cameraWorldPosition; // Offset: 256 + keen::float32 time; // Offset: 268 + keen::ds::RenderDebugConstants debugData; // Offset: 272 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 304 + keen::ds::RenderLightFactors lightFactors; // Offset: 336 +}; + +struct VoxelWorldShadowCascadeShaderData { + keen::GraphicsMatrix44 worldToShadowMatrix; // Offset: 0 +}; + +struct VoxelWorldShadowMapShaderData { + keen::StaticArray cascades; // Offset: 0 + keen::float2 shadowMapSize; // Offset: 128 + keen::float2 inverseShadowMapSize; // Offset: 136 + keen::uint32 isValid; // Offset: 144 +}; + +struct RenderTransparentConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::ds::RenderDebugConstants debugData; // Offset: 192 + keen::uint32 fogDisabled; // Offset: 224 + keen::uint32 shadowsDisabled; // Offset: 228 + keen::uint32 manyLightsShadowsEnabled; // Offset: 232 + keen::uint32 measureOverdraw; // Offset: 236 + keen::uint32 isFsrEnabled; // Offset: 240 + keen::ds::RenderShadowAtlasShaderData atlasData; // Offset: 256 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 1344 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1376 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 1616 + keen::ds::RenderLightFactors lightFactors; // Offset: 1680 + keen::ds::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 1712 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 1872 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 1888 +}; + +struct RenderDebugPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 64 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 96 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 336 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 352 +}; + +struct ViewSpacePositionReconstructionData { + keen::GraphicsMatrix44 screenToTargetSpaceTransform; // Offset: 0 +}; + +struct Fog2ViewVolumeTransform { + keen::float32 depthRemap; // Offset: 0 + keen::float32 invDepthRemap; // Offset: 4 +}; + +struct Fog2ViewVolumeSampleParameters { + keen::ds::Fog2ViewVolumeTransform transform; // Offset: 0 + keen::float3 viewVolumeSize; // Offset: 16 +}; + +struct RenderForwardTransparentConstants { + keen::ds::ViewSpacePositionReconstructionData viewSpacePositionReconstructionData; // Offset: 0 + keen::ds::Fog2ViewVolumeSampleParameters viewVolumeSampleParameters; // Offset: 64 + keen::float2 linearDepthParameters; // Offset: 96 + keen::uint32 fogFlags; // Offset: 104 +}; + +typedef keen::RenderModelMaterialDataType RenderModelMaterialDataType; + +struct Fsr3UpscalerConstants { + keen::int2 iRenderSize; // Offset: 0 + keen::int2 iMaxRenderSize; // Offset: 8 + keen::int2 iDisplaySize; // Offset: 16 + keen::int2 iInputColorResourceDimensions; // Offset: 24 + keen::int2 iLumaMipDimensions; // Offset: 32 + keen::int iLumaMipLevelToUse; // Offset: 40 + keen::int iFrameIndex; // Offset: 44 + keen::float4 fDeviceToViewDepth; // Offset: 48 + keen::float2 fJitter; // Offset: 64 + keen::float2 fMotionVectorScale; // Offset: 72 + keen::float2 fDownscaleFactor; // Offset: 80 + keen::float2 fMotionVectorJitterCancellation; // Offset: 88 + keen::float fExposure; // Offset: 96 + keen::float fPreExposure; // Offset: 100 + keen::float fPreviousFramePreExposure; // Offset: 104 + keen::float fTanHalfFOV; // Offset: 108 + keen::float fJitterSequenceLength; // Offset: 112 + keen::float fDeltaTime; // Offset: 116 + keen::float fDynamicResChangeFactor; // Offset: 120 + keen::float fViewSpaceToMetersFactor; // Offset: 124 +}; + +struct Fsr3UpscalerSpdConstants { + keen::uint mips; // Offset: 0 + keen::uint numWorkGroups; // Offset: 4 + keen::uint2 workGroupOffset; // Offset: 8 + keen::uint2 renderSize; // Offset: 16 +}; + +struct Fsr3UpscalerRcasConstants { + keen::uint4 rcasConfig; // Offset: 0 +}; + +typedef keen::GiQuality GiQuality; + +typedef keen::GiProbeSize GiProbeSize; + +typedef keen::GiIrradianceProbeSize GiIrradianceProbeSize; + +typedef keen::GiDispatchSize GiDispatchSize; + +typedef keen::SdfBvhVariant SdfBvhVariant; + +struct GiQualitySettings { + keen::ds::GiProbeSize radianceAndDistancePixelCount; // Offset: 0 + keen::ds::GiIrradianceProbeSize irradiancePixelCount; // Offset: 4 + keen::uint atlasSizeX; // Offset: 8 + keen::uint atlasSizeY; // Offset: 12 + keen::uint globalRayBudget; // Offset: 16 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 20 + keen::uint frustumMinRaysPerProbe; // Offset: 24 + keen::uint frustumIncreasedMinRaysPerProbe; // Offset: 28 + keen::uint frustumMaxProbeRayCount; // Offset: 32 + keen::uint frustumRayBatchSize; // Offset: 36 + keen::uint worldCacheRayBatchSize; // Offset: 40 + keen::uint worldCacheMinRaysPerProbe; // Offset: 44 + keen::uint worldCacheMaxProbeRayCount; // Offset: 48 + keen::uint ambientRayBatchSize; // Offset: 52 + keen::uint ambientMinRaysPerProbe; // Offset: 56 + keen::uint ambientMaxProbeRayCount; // Offset: 60 + keen::uint ambientFroxelDepthSliceCount; // Offset: 64 + keen::float frustumLightCacheStartDiameter; // Offset: 68 + keen::float worldCacheLightCacheStartDiameter; // Offset: 72 + keen::uint maxNeighboursSharingHistory; // Offset: 76 + keen::uint maxNeighboursSharingRays; // Offset: 80 + keen::ds::GiDispatchSize neighbourCandidateDispatchSize; // Offset: 84 + keen::float fillAmbientProbeRayCountScale; // Offset: 88 + keen::bool fillAmbientProbesIteratively; // Offset: 92 + keen::uint minimumFilledRaysToAmbientProbes; // Offset: 96 + keen::uint prefilterRadianceLevelCount; // Offset: 100 + keen::float prefilterAngleScale; // Offset: 104 + keen::uint rayBinCascadeStartOffset; // Offset: 108 + keen::uint worldCacheRayBinCascadeStartOffset; // Offset: 112 + keen::ds::SdfBvhVariant sdfBvhVariant; // Offset: 116 +}; + +struct GiSunLightShaderData { + keen::float3 direction0; // Offset: 0 + keen::float3 directLight0; // Offset: 16 + keen::float3 indirectLight0; // Offset: 32 + keen::float3 direction1; // Offset: 48 + keen::float3 indirectLight1; // Offset: 64 +}; + +struct GiShadowShaderData { + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1088 + keen::uint32 flags; // Offset: 1328 +}; + +struct GiProbe { + keen::float3 pushedOutPosition; // Offset: 0 + keen::float size; // Offset: 12 + keen::float probeDataQuality; // Offset: 16 + keen::uint32 probeRadianceSum; // Offset: 20 + keen::uint32 rayListStartIndexAndProbeState; // Offset: 24 + keen::uint32 rayListRayCountAndRequestedRayCount; // Offset: 28 +}; + +struct GiMovingAverageEstimatorData { + keen::float3 shortMean; // Offset: 0 + keen::float vbbr; // Offset: 12 + keen::float3 variance; // Offset: 16 + keen::float inconsistency; // Offset: 28 +}; + +struct GiMovingAverageEstimatorDataEncoded { + keen::uint4 data; // Offset: 0 +}; + +typedef keen::GiProbeType GiProbeType; + +typedef keen::GiRayHitType GiRayHitType; + +struct GiRayHit { + keen::float2 octahedralNormal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 8 + keen::uint materialIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevelAndHitTypeAndRayIndex; // Offset: 28 +}; + +struct GiRayHitDecoded { + keen::float3 normal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevel; // Offset: 28 + keen::ds::GiRayHitType hitType; // Offset: 32 + keen::uint rayIndex; // Offset: 36 + keen::uint materialIndex; // Offset: 40 +}; + +struct GiRayHitCounters { + keen::uint terrainRayCount; // Offset: 0 + keen::uint buildingRayCount; // Offset: 4 + keen::uint skyRayCount; // Offset: 8 +}; + +struct GiRayEncoded { + keen::uint4 data; // Offset: 0 +}; + +struct GiRayDecoded { + keen::float3 direction; // Offset: 0 + keen::float hitDistance; // Offset: 12 + keen::float3 radiance; // Offset: 16 +}; + +struct GiRayListData { + keen::float3 origin; // Offset: 0 + keen::uint probeIndexAndRayCount; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint rayStorageIndex; // Offset: 28 +}; + +struct GiPrepareVisualisationParameters { + keen::float3 cameraOrigin; // Offset: 0 + keen::float3 farPlaneOrigin; // Offset: 16 + keen::float3 farPlaneX; // Offset: 32 + keen::float3 farPlaneY; // Offset: 48 + keen::uint2 outputSize; // Offset: 64 +}; + +struct VoxelMaterialBlendingConstants { + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint hasBakingData; // Offset: 496 + keen::uint hasSimpleWorldData; // Offset: 500 + keen::uint buildingMaterialCount; // Offset: 504 + keen::float exposureCorrection; // Offset: 508 +}; + +struct LightCacheCascadeShaderData { + keen::int3 origin; // Offset: 0 + keen::int3 scrollDelta; // Offset: 16 +}; + +struct LightCacheLookupShaderData { + keen::float3 gridOrigin; // Offset: 0 + keen::float cascadeCellStartDiameter; // Offset: 12 + keen::StaticArray cascades; // Offset: 16 +}; + +struct GiVisualisationParameters { + keen::ds::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 512 + keen::ds::GiShadowShaderData shadow; // Offset: 576 + keen::ds::LightCacheLookupShaderData primaryLightCache; // Offset: 1920 + keen::ds::LightCacheLookupShaderData worldCachelightCache; // Offset: 2320 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 2720 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 2848 + keen::uint2 screenSize; // Offset: 2912 + keen::float2 invScreenSize; // Offset: 2920 + keen::float3 cameraOrigin; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunDirection; // Offset: 2944 + keen::float exposure; // Offset: 2956 + keen::float exposureCorrection; // Offset: 2960 + keen::float3 farPlaneOrigin; // Offset: 2964 + keen::uint32 forceNeutralAlbedo; // Offset: 2976 + keen::float3 farPlaneX; // Offset: 2980 + keen::uint32 useWorldCache; // Offset: 2992 + keen::float3 farPlaneY; // Offset: 2996 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3008 + keen::float3 lightFactorSun; // Offset: 3012 + keen::float lightFactorEmissive; // Offset: 3024 + keen::float3 lightFactorSky; // Offset: 3028 + keen::float lightFactorGi; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 +}; + +struct GiCreateProbeDrawCommandPushConstants { + keen::uint32 vertexCount; // Offset: 0 +}; + +struct GiProbePrefilterLevels { + keen::uint probeSize; // Offset: 0 +}; + +struct GiProbeVisualisationParameters { + keen::StaticArray radianceMapProbeLevels; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 128 + keen::uint sphereBandPower; // Offset: 192 + keen::float exposure; // Offset: 196 + keen::uint32 drawPixelCage; // Offset: 200 + keen::uint32 hoverProbeIndex; // Offset: 204 + keen::uint32 selectedProbeIndex; // Offset: 208 + keen::uint32 pushOutByDistance; // Offset: 212 + keen::uint32 drawIrradiance; // Offset: 216 + keen::uint32 visibleRadianceSpecularMip; // Offset: 220 + keen::uint32 atlasSizeX; // Offset: 224 + keen::uint32 atlasSizeY; // Offset: 228 + keen::uint32 debugWorldCache; // Offset: 232 + keen::float probeSizeScale; // Offset: 236 + keen::uint32 drawMovingAverageEstimatorShortMean; // Offset: 240 + keen::uint32 drawMovingAverageEstimatorVbbr; // Offset: 244 + keen::uint32 drawMovingAverageEstimatorVariance; // Offset: 248 + keen::uint32 drawMovingAverageEstimatorInconsistency; // Offset: 252 +}; + +struct GiShootShadowRaysParameters { + keen::float3 sunDirection; // Offset: 0 + keen::uint32 maxRayCount; // Offset: 12 + keen::uint32 drawSunShadowRayProbeIndex; // Offset: 16 +}; + +struct GiProbeUpdateParameters { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint3 minMaxRayCount; // Offset: 400 + keen::uint32 maxDeleteListCount; // Offset: 412 + keen::uint32 debugEnabled; // Offset: 416 + keen::uint32 drawPushOut; // Offset: 420 + keen::uint32 framesTillProbeInactive; // Offset: 424 + keen::uint32 maxProbeCount; // Offset: 428 + keen::float probeRecycleAgeScale; // Offset: 432 + keen::float invFramesTillProbeInactive; // Offset: 436 + keen::float invFramesTillProbeQualityReached; // Offset: 440 + keen::uint32 useDirectionToOffsetProbes; // Offset: 444 +}; + +struct LightCacheFreeEntriesConstants { + keen::uint32 maxDeleteListCount; // Offset: 0 +}; + +struct GiProbeShootRaysParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 400 + keen::float2 debugScreenSizeInv; // Offset: 464 + keen::uint32 frameId; // Offset: 472 + keen::uint32 rotateRays; // Offset: 476 + keen::uint32 maxRayCount; // Offset: 480 + keen::uint32 writeOutDirection; // Offset: 484 + keen::uint32 traceBvhSdfInstances; // Offset: 488 + keen::uint32 useSortedBins; // Offset: 492 + keen::uint32 showRayBins; // Offset: 496 + keen::uint32 debugSelectedProbeIndex; // Offset: 500 + keen::uint2 debugMouseScreenPosition; // Offset: 504 + keen::uint2 rayBinDirectionIndexRange; // Offset: 512 + keen::uint rayBinCascadeStartOffset; // Offset: 520 +}; + +struct GiProbeSortHitsParameters { + keen::uint32 maxRayCount; // Offset: 0 +}; + +struct GiProbeShadeHitsParameters { + keen::ds::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::ds::LightCacheLookupShaderData primaryLightCache; // Offset: 512 + keen::ds::LightCacheLookupShaderData worldCachelightCache; // Offset: 912 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 1312 + keen::ds::GiShadowShaderData shadow; // Offset: 1376 + keen::ds::GiSunLightShaderData sun; // Offset: 2720 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 2800 + keen::float3 sunDirection; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunColor; // Offset: 2944 + keen::uint32 maxHitCount; // Offset: 2956 + keen::float3 lightFactorSky; // Offset: 2960 + keen::float lightFactorEmissive; // Offset: 2972 + keen::uint2 debugRaysRange; // Offset: 2976 + keen::float lightFactorGi; // Offset: 2984 + keen::uint32 enablePointLights; // Offset: 2988 + keen::uint32 enablePointLightShadows; // Offset: 2992 + keen::float pointLightInfluenceScale; // Offset: 2996 + keen::uint32 traceBvhSdfInstances; // Offset: 3000 + keen::uint32 forceNeutralAlbedo; // Offset: 3004 + keen::uint32 isFogEnabled; // Offset: 3008 + keen::uint32 maxRayCount; // Offset: 3012 + keen::uint32 useWorldCache; // Offset: 3016 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3020 + keen::float exposure; // Offset: 3024 + keen::float primaryCacheExposureCorrection; // Offset: 3028 + keen::float worldCacheExposureCorrection; // Offset: 3032 + keen::uint32 drawRaysInRange; // Offset: 3036 + keen::uint32 drawRaysProbeIndex; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 + keen::uint32 applyWetness; // Offset: 3052 + keen::float3 cameraWorldPosition; // Offset: 3056 + keen::uint32 applySnow; // Offset: 3068 + keen::uint32 applyCloudMap; // Offset: 3072 +}; + +struct GiRasterizeIrradianceParameters { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::StaticArray radianceMapProbeLevels; // Offset: 400 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 592 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 656 + keen::GraphicsMatrix44 previousCameraCenteredToClipSpaceMatrix; // Offset: 720 + keen::float3 cameraWorldPosition; // Offset: 784 + keen::uint32 radianceMipsCount; // Offset: 796 + keen::float3 previousCameraWorldPosition; // Offset: 800 + keen::uint32 useStochasticSampling; // Offset: 812 + keen::uint2 screenSize; // Offset: 816 + keen::float2 invScreenSize; // Offset: 824 + keen::uint2 blueNoiseOffset; // Offset: 832 + keen::float previousExposureCorrection; // Offset: 840 + keen::float exposureCorrection; // Offset: 844 + keen::float2 linearDepthParameters; // Offset: 848 + keen::float exposure; // Offset: 856 + keen::uint32 useStochasticReflectedRadiance; // Offset: 860 + keen::uint32 useStochasticReflectedIrradiance; // Offset: 864 + keen::uint32 stochasticFrameId; // Offset: 868 + keen::uint32 useHistory; // Offset: 872 + keen::uint32 atlasSizeX; // Offset: 876 + keen::uint32 atlasSizeY; // Offset: 880 + keen::uint32 colorCodeReprojection; // Offset: 884 + keen::uint2 mousePos; // Offset: 888 + keen::uint32 drawPixelCage; // Offset: 896 + keen::uint32 groundTruthSpecular; // Offset: 900 + keen::uint32 writeToSceneBrightness; // Offset: 904 +}; + +struct GiVisualizeIrradianceParameters { + keen::uint2 screenSize; // Offset: 0 + keen::float giLightFactor; // Offset: 8 + keen::float exposure; // Offset: 12 +}; + +struct GiProbeBlendRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float previousExposureInverse; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::float maxRayRadiance; // Offset: 12 + keen::float warmupProbeQualityBorderline; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 + keen::uint32 debugProbeIndex; // Offset: 28 + keen::float varianceGuidedRayCountThreshold; // Offset: 32 +}; + +struct GiProbeBlendWorldCacheRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float maxRayRadiance; // Offset: 4 + keen::uint32 debugProbeIndex; // Offset: 8 + keen::float previousExposureInverse; // Offset: 12 + keen::float exposure; // Offset: 16 +}; + +struct GiBlendNeighbourRadianceProbesParameters { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::float exposure; // Offset: 400 + keen::float exposureCorrectionFactor; // Offset: 404 + keen::uint32 blendIterations; // Offset: 408 + keen::uint32 blendRaysIterations; // Offset: 412 + keen::uint32 maxProbeCount; // Offset: 416 + keen::uint32 drawNeighbourBlendProbeIndex; // Offset: 420 + keen::uint32 showBlendPixels; // Offset: 424 + keen::uint32 onlyShowDebugInfo; // Offset: 428 + keen::uint32 atlasSizeX; // Offset: 432 + keen::uint32 atlasSizeY; // Offset: 436 + keen::float allowOccludedPixelsAfterDistance; // Offset: 440 + keen::float occludedPixelsDepthBias; // Offset: 444 + keen::uint32 debugNeighbourPixelProjection; // Offset: 448 + keen::float2 debugPixelProjectionParameters; // Offset: 452 +}; + +struct GiBlendNeighbourRadianceProbesRootConstantData { + keen::uint randomSeed; // Offset: 0 + keen::float doNotShareProbesBelowQuality; // Offset: 4 + keen::uint blendIterations; // Offset: 8 +}; + +struct GiProbeShadeHitsPipelineRootConstantData { + keen::uint rayHitType; // Offset: 0 + keen::uint probeType; // Offset: 4 +}; + +struct GiProbePrepareShadeIndirectDispatchesParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint shadowDispatchSize; // Offset: 4 + keen::uint prepareShadowRays; // Offset: 8 +}; + +struct GiProbePrefilterRadianceParameters { + keen::uint2 lowResolutionSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 sourceSize; // Offset: 16 + keen::float invProbeSize; // Offset: 24 + keen::float invSourceProbeSize; // Offset: 28 + keen::float sampleScale; // Offset: 32 + keen::float linearEnergyScale; // Offset: 36 + keen::float cosAngleScale; // Offset: 40 + keen::uint maxProbeCount; // Offset: 44 + keen::uint atlasSizeX; // Offset: 48 + keen::uint atlasSizeY; // Offset: 52 +}; + +struct GiProbeBlendIrradianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float updateFromPreviousExposure; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::uint32 debugProbeIndex; // Offset: 12 + keen::uint32 highlightNewProbes; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 +}; + +struct GiProbeBlendDistanceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::uint32 atlasSizeX; // Offset: 4 + keen::uint32 atlasSizeY; // Offset: 8 + keen::uint32 frameId; // Offset: 12 + keen::uint32 debugProbeIndex; // Offset: 16 + keen::float exposure; // Offset: 20 +}; + +struct GiProbeDebugData { + keen::uint isCoveringPixel; // Offset: 0 +}; + +struct GiDebugProbeInfo { + keen::float3 pushedOutPosition; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint3 cellCoordinate; // Offset: 16 + keen::uint cascadeIndex; // Offset: 28 + keen::uint requestedRayCount; // Offset: 32 + keen::uint rayCount; // Offset: 36 + keen::float probeQuality; // Offset: 40 + keen::uint isNew; // Offset: 44 +}; + +struct ShSpectralCoeffs { + keen::float4 r; // Offset: 0 + keen::float4 g; // Offset: 16 + keen::float4 b; // Offset: 32 +}; + +struct GiPopulateRayListPrepareIndirectParameters { + keen::uint dispatchSize; // Offset: 0 +}; + +struct GiPopulateRayListParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint useUniformSamplingAfterFrames; // Offset: 424 + keen::uint validRadianceMaps; // Offset: 428 + keen::float minLuminanceSumForRayGuiding; // Offset: 432 + keen::uint sortRaysIntoBins; // Offset: 436 + keen::uint rayBinCascadeStartOffset; // Offset: 440 + keen::uint atlasSizeX; // Offset: 444 + keen::uint atlasSizeY; // Offset: 448 +}; + +struct GiPopulateWorldCacheRayListParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 + keen::uint atlasSizeX; // Offset: 432 + keen::uint atlasSizeY; // Offset: 436 +}; + +struct GiCullRequestedRaysWithRayBudgetParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRaysPerProbe; // Offset: 400 + keen::uint maxRayCount; // Offset: 404 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 408 + keen::uint rayBatchSize; // Offset: 412 + keen::uint maxProbeCount; // Offset: 416 + keen::uint debugEnabled; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 +}; + +struct GiPrepareRayBinsParameters { + keen::uint maxProbeCount; // Offset: 0 +}; + +struct GiCalculateBinDirectionOffsetParameters { + keen::uint maxRayCount; // Offset: 0 +}; + +struct GiSortRaysIntoBinsParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint debugSorting; // Offset: 8 +}; + +struct GiCullRequestedAmbientRaysWithRayBudgetParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint rayBatchSize; // Offset: 8 + keen::uint debugEnabled; // Offset: 12 +}; + +struct GiWorldCacheBlendSphericalHarmonicsIrradianceParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint debugEnabled; // Offset: 4 +}; + +struct GiCleanupCacheParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint atlasSizeX; // Offset: 4 + keen::uint atlasSizeY; // Offset: 8 +}; + +struct GiFillAmbientProbesParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::float3 referencePosition; // Offset: 256 + keen::float exposureCorrection; // Offset: 268 + keen::uint32 maxHitCount; // Offset: 272 + keen::float maxRayCountScale; // Offset: 276 + keen::uint32 minFillRayCount; // Offset: 280 + keen::uint32 useReverseRayReprojection; // Offset: 284 + keen::uint32 debugSelectedProbeIndex; // Offset: 288 + keen::uint32 debugEnabled; // Offset: 292 + keen::uint32 atlasSizeX; // Offset: 296 + keen::uint32 atlasSizeY; // Offset: 300 +}; + +struct GiAmbientConvergeParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::uint32 shouldUseHistory; // Offset: 256 + keen::float hysteresis; // Offset: 260 + keen::uint minRaysPerProbe; // Offset: 264 + keen::uint maxRaysPerProbe; // Offset: 268 + keen::uint32 atlasSizeX; // Offset: 272 + keen::uint32 atlasSizeY; // Offset: 276 + keen::float previousExposureCorrection; // Offset: 280 + keen::float exposure; // Offset: 284 + keen::uint32 debugProbeHighlightEnabled; // Offset: 288 + keen::uint32 debugSelectedProbeId; // Offset: 292 + keen::uint32 debugEnabled; // Offset: 296 + keen::uint32 debugStarvingProbes; // Offset: 300 +}; + +struct GiCalculateAmbientProbesVisibilityParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::ds::GpuCullingFrustum frustum; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 160 + keen::StaticArray lastCascadeGridSpaceOffset; // Offset: 288 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 416 + keen::float3 cameraPosition; // Offset: 544 + keen::uint32 shouldUpdateCameraVisibility; // Offset: 556 + keen::float2 linearDepthParameters; // Offset: 560 + keen::uint32 debugShowVisibilityRays; // Offset: 568 + keen::uint32 debugActiveCascade; // Offset: 572 +}; + +struct GiAmbientProbeVisualisationParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 192 + keen::uint sphereBandPower; // Offset: 320 + keen::float exposure; // Offset: 324 + keen::uint cascadeIndex; // Offset: 328 + keen::uint debugSelectedProbeIndex; // Offset: 332 + keen::uint showVisibilityMask; // Offset: 336 + keen::uint renderConvergedTexture; // Offset: 340 + keen::uint useGridCoordinatesWithoutOffset; // Offset: 344 + keen::uint showWarmupProbes; // Offset: 348 +}; + +struct GiAmbientDebugProbeInfo { + keen::uint3 cellCoordinate; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint cascadeIndex; // Offset: 16 + keen::uint rayIntersectedProbeCount; // Offset: 20 +}; + +struct GiPopulateAmbientRayListParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint frameId; // Offset: 4 + keen::uint rotateRays; // Offset: 8 + keen::float randomDirectionScale; // Offset: 12 + keen::uint rayBatchSize; // Offset: 16 + keen::uint atlasSizeX; // Offset: 20 + keen::uint atlasSizeY; // Offset: 24 +}; + +struct GiAmbientRayListData { + keen::float3 origin; // Offset: 0 + keen::uint rayListStartIndex; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint probeRayCount; // Offset: 28 +}; + +struct GiAmbientProbesLookupData { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::StaticArray gridSpaceReferencePosition; // Offset: 256 + keen::float3 referencePosition; // Offset: 384 +}; + +struct GiAmbientFroxelVolumeParameters { + keen::float3 depthRemap; // Offset: 0 + keen::uint tileSize; // Offset: 12 + keen::uint3 froxelVolumeSize; // Offset: 16 + keen::float near; // Offset: 28 + keen::float3 invFroxelVolumeSize; // Offset: 32 + keen::float far; // Offset: 44 + keen::float2 linearDepthParameters; // Offset: 48 + keen::uint2 screenSize; // Offset: 56 +}; + +struct GiFillAmbientFroxelVolumeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 previousViewProjectionMatrix; // Offset: 128 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 192 + keen::ds::GiAmbientProbesLookupData ambientProbeLookup; // Offset: 256 + keen::ds::GiAmbientFroxelVolumeParameters froxelData; // Offset: 656 + keen::float3 cameraPosition; // Offset: 720 + keen::float exposure; // Offset: 732 + keen::uint2 blueNoiseOffset; // Offset: 736 + keen::float2 invScreenSize; // Offset: 744 + keen::float3 previousCameraPosition; // Offset: 752 + keen::uint historyValid; // Offset: 764 + keen::float previousToCurrentExposure; // Offset: 768 + keen::uint debugShowFroxels; // Offset: 772 + keen::uint debugDrawFroxelZIndex; // Offset: 776 + keen::uint debugColorCodeReprojection; // Offset: 780 +}; + +struct GiProbePrepareFillRaysIndirectDispatchParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint minimumAllowedRays; // Offset: 4 + keen::float rayCountScale; // Offset: 8 +}; + +struct GiFillAmbientProbesWithAmbientRaysRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiCalculateAmbientProbesVisibilityRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiAmbientConvergeRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +typedef keen::GiDebugStep GiDebugStep; + +typedef keen::GiDebugProbeType GiDebugProbeType; + +struct GizmoMaterial { +}; + +struct GizmoRfxRenderMaterial { + keen::float4 dummy; // Offset: 0 +}; + +struct GpuCounterFillCommand { + keen::uint32 byteOffset; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct FillBufferParameters { + keen::uint32 commandCount; // Offset: 0 +}; + +typedef keen::GpuDataCacheImageStreamingState GpuDataCacheImageStreamingState; + +struct GpuDataCacheImageStreamingMemoryBlockInfo { + keen::uint64 sizeInBytes; // Offset: 0 +}; + +struct GpuDataCacheMemoryRangeInfo { + keen::uint8 blockIndex; // Offset: 0 + keen::uint64 offset; // Offset: 8 + keen::uint64 size; // Offset: 16 +}; + +typedef keen::GpuImageStreamingDataLoadingState GpuImageStreamingDataLoadingState; + +struct GpuDataCacheImageStreamingImageInfo { + keen::uint32 handle; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::TextureType type; // Offset: 48 + keen::PixelFormat format; // Offset: 49 + keen::ContentHash content; // Offset: 52 + keen::uint3 originalSize; // Offset: 68 + keen::uint8 mipTailStartLevel; // Offset: 80 + keen::float32 requiredLevel; // Offset: 84 + keen::uint8 currentLevel; // Offset: 88 + keen::uint32 sampledLevelsMask; // Offset: 92 + keen::ds::GpuImageStreamingDataLoadingState state; // Offset: 96 + keen::ds::GpuDataCacheMemoryRangeInfo memoryRange; // Offset: 104 + keen::ds::GpuDataCacheMemoryRangeInfo loadingMemoryRange; // Offset: 128 + keen::uint64 estimatedRequiredMemorySize; // Offset: 152 + keen::uint64 actualRequiredMemorySize; // Offset: 160 +}; + +typedef keen::ImageStreamingAlgorithm ImageStreamingAlgorithm; + +struct GpuDataCacheImageStreamingStateMessage { + keen::ds::GpuDataCacheImageStreamingState state; // Offset: 0 + keen::bool isSamplerFeedbackResetEnabled; // Offset: 1 + keen::uint64 currentUploadBudget; // Offset: 8 + keen::uint64 uploadBudget; // Offset: 16 + keen::ds::ImageStreamingAlgorithm algorithm; // Offset: 24 + keen::DsArray memoryBlocks; // Offset: 32 + keen::uint64 totalMemorySize; // Offset: 72 + keen::uint64 allocatedMemorySize; // Offset: 80 + keen::uint64 loadingMemorySize; // Offset: 88 + keen::DsArray images; // Offset: 96 + keen::uint64 estimatedWorkingSetSize; // Offset: 136 + keen::uint64 actualWorkingSetSize; // Offset: 144 +}; + +struct GpuDataCacheSetSamplerFeedbackResetMessage { + keen::bool enableReset; // Offset: 0 +}; + +struct GpuDataCacheSetImageStreamingAlgorithmMessage { + keen::ds::ImageStreamingAlgorithm algorithm; // Offset: 0 +}; + +struct GpuDataCacheFlushImageStreamingMemoryMessage { +}; + +struct GpuDebugRendererVertex { + keen::float3 position; // Offset: 0 + keen::uint32 color; // Offset: 12 +}; + +typedef keen::GpuDebugRendererContextCounter GpuDebugRendererContextCounter; + +struct GpuDebugRendererContextState { + keen::uint32 lineCounterOffset; // Offset: 0 + keen::uint32 maxLineCount; // Offset: 4 +}; + +struct GpuDebugRendererDrawParameters { + keen::GraphicsMatrix44 mvp; // Offset: 0 +}; + +struct GpuModel { + keen::uint32 nodeModelIndex0; // Offset: 0 + keen::uint32 nodeModelIndex1; // Offset: 4 + keen::uint32 nodeModelIndex2; // Offset: 8 + keen::uint32 nodeModelIndex3; // Offset: 12 + keen::uint32 nodeModelIndex4; // Offset: 16 + keen::uint32 nodeModelIndex5; // Offset: 20 +}; + +struct GrassMovementUpdateParameters { + keen::uint2 textureSize; // Offset: 0 + keen::uint lastTextureId; // Offset: 8 + keen::uint bodyCounterOffset; // Offset: 12 + keen::float2 size; // Offset: 16 + keen::float2 oneOverSize; // Offset: 24 + keen::ds::PackedShaderWorldPositionUniform currentOrigin; // Offset: 32 + keen::float historyStrength; // Offset: 48 + keen::ds::PackedShaderWorldPositionUniform lastOrigin; // Offset: 64 + keen::float deltaTime; // Offset: 80 + keen::float2 oneOverTextureSize; // Offset: 84 +}; + +struct GrassMovementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float outerRadius; // Offset: 12 + keen::float innerRadius; // Offset: 16 + keen::float strength; // Offset: 20 +}; + +struct GridMaterial { + keen::float32 lineSize; // Offset: 0 + keen::float32 axisSize; // Offset: 4 + keen::Color color0; // Offset: 8 + keen::Color color1; // Offset: 12 +}; + +struct GridRfxRenderMaterial { + keen::float32 axisSize; // Offset: 0 + keen::float32 lineSize; // Offset: 4 + keen::float4 color0; // Offset: 8 + keen::float4 color1; // Offset: 24 +}; + +struct VfxGridMaterial { + keen::float32 cellSize; // Offset: 0 + keen::Color color; // Offset: 4 +}; + +struct VfxGridRfxRenderMaterial { + keen::float3 color; // Offset: 0 + keen::float32 invCellSize; // Offset: 12 +}; + +typedef keen::IblSourceType IblSourceType; + +struct Ibl { + keen::ds::IblSourceType sourceType; // Offset: 0 + keen::uint16 diffuseOutputSize; // Offset: 2 + keen::uint16 diffuseSampleCount; // Offset: 4 + keen::uint16 specularSampleCount; // Offset: 6 +}; + +struct IblResource { + keen::uint16 diffuseSize; // Offset: 0 + keen::ContentHash diffuseData; // Offset: 4 + keen::uint16 specularSize; // Offset: 20 + keen::uint8 specularLevelCount; // Offset: 22 + keen::ContentHash specularData; // Offset: 24 +}; + +struct SpecularIblLutResource { + keen::uint16 size; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::ContentHash content; // Offset: 4 +}; + +struct CreateDispatchArgsShaderData { + keen::uint targetThreadGroupSize; // Offset: 0 + keen::uint targetBufferOffset; // Offset: 4 + keen::uint threadCountOffsetX; // Offset: 8 + keen::uint threadCountPerSourceCount; // Offset: 12 +}; + +struct LightCacheFrustumTestShaderParameters { + keen::float3 cellCenter; // Offset: 0 + keen::float32 cellSize; // Offset: 12 + keen::float3 sunDirection; // Offset: 16 +}; + +struct LightCacheFrustumTestShaderResult { + keen::StaticArray planes; // Offset: 0 + keen::uint32 hits; // Offset: 144 +}; + +struct LightCacheCounters { + keen::uint32 allocationCount; // Offset: 0 + keen::uint32 maxAllocationCount; // Offset: 4 + keen::uint32 freeListIndex; // Offset: 8 + keen::uint32 visibleCount; // Offset: 12 + keen::uint32 deleteCount; // Offset: 16 +}; + +struct LightCacheAllocateGiProbeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::float3 cameraPosition; // Offset: 480 + keen::uint32 frameId; // Offset: 492 + keen::uint2 blueNoiseOffset; // Offset: 496 + keen::uint32 allocateDownsample; // Offset: 504 + keen::uint cascadeCellCount; // Offset: 508 + keen::uint2 mousePosition; // Offset: 512 + keen::uint showCascadeTransitions; // Offset: 520 +}; + +struct LightCachePrepareAllocateParameters { + keen::uint32 maxEntryCount; // Offset: 0 +}; + +struct LightCachePrepareEntriesParameters { + keen::uint32 entryCount; // Offset: 0 +}; + +struct LightCacheRecycleEntriesParameters { + keen::uint32 maxEntryCount; // Offset: 0 + keen::float entryRecycleAgeScale; // Offset: 4 +}; + +struct LightCacheAllocateEntriesParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::uint32 allocateDownsample; // Offset: 480 + keen::uint32 frameId; // Offset: 484 + keen::uint32 cascadeCellCount; // Offset: 488 +}; + +struct LightCacheAllocateEntriesAtPositionsParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::ds::LightCacheLookupShaderData primaryLightCache; // Offset: 400 + keen::float maxRange; // Offset: 800 + keen::uint32 useDirectionBuffer; // Offset: 804 + keen::uint32 usePrimaryCache; // Offset: 808 + keen::uint32 maxEntryCount; // Offset: 812 + keen::float3 cameraPosition; // Offset: 816 + keen::uint32 minCascade; // Offset: 828 +}; + +struct LightCacheScrollCascadesParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 +}; + +struct LightCacheDebugParameters { + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint2 screenSize; // Offset: 64 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 80 + keen::uint32 totalCellCount; // Offset: 480 + keen::uint32 frameId; // Offset: 484 +}; + +struct LightCacheLightCullingIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 + keen::uint lightCacheLightListOffset; // Offset: 8 + keen::uint lightCacheEntryCount; // Offset: 12 +}; + +struct LightCacheLightCullingUniformBuffer { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCountOffset; // Offset: 400 + keen::uint maxLightCount; // Offset: 404 + keen::uint maxLightCacheEntries; // Offset: 408 + keen::uint lightCacheEntries; // Offset: 412 +}; + +struct LightCacheLightCullingResultUniformBuffer { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCacheDataEntryCount; // Offset: 400 +}; + +struct LightCacheLightCullingDebugParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::uint2 targetSize; // Offset: 64 + keen::float2 invTargetSize; // Offset: 72 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 80 +}; + +typedef keen::ManyLightsShadowsQuality ManyLightsShadowsQuality; + +struct ManyLightsShadowsQualitySettings { + keen::uint atlasSizeX; // Offset: 0 + keen::uint atlasSizeY; // Offset: 4 + keen::uint shadowAtlasTextureSize; // Offset: 8 + keen::float shadowMapBias; // Offset: 12 + keen::float shadowMapNormalBias; // Offset: 16 + keen::float gaussianScale; // Offset: 20 + keen::float exponentialShadowConstantX; // Offset: 24 + keen::float exponentialShadowConstantY; // Offset: 28 + keen::ds::SdfBvhVariant sdfBvhVariant; // Offset: 32 +}; + +struct ManyLightsShadowsIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 +}; + +struct ManyLightsShadowsIndirectArgument { + keen::uint3 updateShadowAtlas; // Offset: 0 + keen::uint3 updateLightCache; // Offset: 12 + keen::uint3 activeLight32; // Offset: 24 + keen::uint3 atlasBorders; // Offset: 36 +}; + +struct ManyLightsPackedSdfShaderData { + keen::float4 sphere; // Offset: 0 + keen::uint modelPartIndex; // Offset: 16 + keen::uint instancePartIndex; // Offset: 20 +}; + +struct ManyLightsShadowsAtlasParameters { + keen::uint2 atlasSize; // Offset: 0 + keen::uint atlasMaxEntries; // Offset: 8 + keen::uint atlasHashMapSize; // Offset: 12 + keen::uint atlasElementSize; // Offset: 16 + keen::uint atlasElementTexelCount; // Offset: 20 + keen::uint atlasElementBorder; // Offset: 24 + keen::float2 atlasExponentialShadowConstant; // Offset: 32 + keen::float2 atlasExponentialShadowChebyshevConstants; // Offset: 40 + keen::float atlasNormalBias; // Offset: 48 + keen::float atlasShadowMapBias; // Offset: 52 +}; + +struct ManyLightsShadowsUniformBuffer { + keen::GraphicsMatrix44 invViewProj; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint2 bufferDimensions; // Offset: 112 + keen::float2 invBufferDimensions; // Offset: 120 + keen::uint frameId; // Offset: 128 + keen::uint lightCount; // Offset: 132 + keen::uint maxLightCount; // Offset: 136 + keen::float gaussianBlurScale; // Offset: 140 + keen::uint enableOcclusionCulling; // Offset: 144 + keen::ds::GpuOcclusionCullingShaderData occlusionCulling; // Offset: 160 + keen::ds::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 224 + keen::uint2 mousePosition; // Offset: 288 + keen::uint outputUseNDotL; // Offset: 296 + keen::uint outputDrawCellBoxes; // Offset: 300 + keen::uint outputShowLightPosition; // Offset: 304 + keen::uint showLighWithRealSize; // Offset: 308 + keen::float sizeOfDebugSphere; // Offset: 312 +}; + +struct ManyLightsShadowsResultUniformBuffer { + keen::uint enabled; // Offset: 0 + keen::ds::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 16 + keen::uint showLightInfluence; // Offset: 80 + keen::uint useAtlasSampler; // Offset: 84 + keen::uint useAtlasBias; // Offset: 88 +}; + +struct ManyLightsGatherSdfShaderParameters { + keen::uint sdfInstanceCount; // Offset: 0 +}; + +struct GaussianRootConstantData { + keen::uint2 blurVector; // Offset: 0 +}; + +typedef keen::ObjectReference MaterialReference; + +typedef keen::ModelType ModelType; + +typedef keen::ModelTangentSpaceType ModelTangentSpaceType; + +struct ModelMaterialMapEntry { + keen::ds::string name; // Offset: 0 + keen::ds::MaterialReference material; // Offset: 40 +}; + +typedef keen::ObjectReference ModelBlendShapeIdReference; + +struct ModelBlendShapeIdDirectory { +}; + +struct ModelBlendShapeMapEntry { + keen::ds::string name; // Offset: 0 + keen::ds::ModelBlendShapeIdReference id; // Offset: 40 +}; + +struct ModelConverterBlendShapeNames { + keen::DsArray names; // Offset: 0 + keen::DsArray selection; // Offset: 40 + keen::DsArray ids; // Offset: 80 +}; + +struct ModelLodGenerationParameters { + keen::uint32 maxLod; // Offset: 0 + keen::float32 triangleReductionPerStep; // Offset: 4 + keen::float32 maxErrorPerStep; // Offset: 8 +}; + +struct ModelDisplacementOverrides { + keen::float32 displacementScale; // Offset: 0 + keen::float32 displacementOffset; // Offset: 4 +}; + +struct ModelClothColliderSphere { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 +}; + +struct ModelClothColliderSphereInstance { + keen::uint32 instanceIndex; // Offset: 16 +}; + +struct ModelClothColliderCapsule { + keen::ds::ModelClothColliderSphere sphere0; // Offset: 0 + keen::ds::ModelClothColliderSphere sphere1; // Offset: 16 +}; + +struct ModelClothColliderCapsuleInstance { + keen::uint32 instanceIndex; // Offset: 32 +}; + +struct ClothCollider { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct ModelClothSleeveCapsuleCollider { + keen::ds::string upperBoneName; // Offset: 32 + keen::ds::string lowerBoneName; // Offset: 72 + keen::uint32 instanceIndex; // Offset: 112 +}; + +struct ModelChain { + keen::ds::string rootBoneName; // Offset: 0 + keen::bool propagateRotation; // Offset: 40 + keen::float32 gravity; // Offset: 44 + keen::float32 mass; // Offset: 48 + keen::float32 dragCoefficient; // Offset: 52 + keen::float32 liftCoefficient; // Offset: 56 + keen::float32 stiffnessFrequencey; // Offset: 60 + keen::float32 damping; // Offset: 64 + keen::float32 motionConstraintRadius; // Offset: 68 + keen::float32 linearInertia; // Offset: 72 + keen::float32 angularInertia; // Offset: 76 + keen::float32 centrifugalInertia; // Offset: 80 + keen::float32 phasesStiffness; // Offset: 84 + keen::float32 phasesStiffnessMultiplier; // Offset: 88 + keen::float32 phasesCompressionLimit; // Offset: 92 + keen::float32 phasesStretchLimit; // Offset: 96 + keen::float32 collisionFriction; // Offset: 100 +}; + +struct ModelChainBundle { +}; + +typedef keen::ModelModelChainBoneConstraintAxis ModelModelChainBoneConstraintAxis; + +struct ModelChainBoneConstraint { + keen::ds::string boneName; // Offset: 0 + keen::ds::ModelModelChainBoneConstraintAxis axis; // Offset: 40 + keen::float32 minAngle; // Offset: 44 + keen::float32 maxAngle; // Offset: 48 +}; + +struct ModelClothColliderBoneAttachment { + keen::ds::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 40 +}; + +struct ModelMaterial { + keen::ds::string name; // Offset: 0 + keen::ds::MaterialReference material; // Offset: 40 +}; + +struct ModelBlendshape { + keen::ds::string name; // Offset: 0 + keen::ds::ModelBlendShapeIdReference id; // Offset: 40 +}; + +struct ModelClothColliderContainer { +}; + +struct Model { + keen::ObjectReference hierarchy; // Offset: 0 + keen::ds::string export_node; // Offset: 16 + keen::float32 scale; // Offset: 56 + keen::float32 k3dScale; // Offset: 60 + keen::bool create_backfaces; // Offset: 64 + keen::bool support_raytracing; // Offset: 65 + keen::ds::string raytrace_node_name; // Offset: 72 + keen::bool rotateY; // Offset: 112 + keen::float32 lodValue; // Offset: 116 + keen::ds::ModelLodGenerationParameters generatedLods; // Offset: 120 + keen::bool ignoreClothCollider; // Offset: 132 + keen::bool enableCardClusterLod; // Offset: 133 + keen::uint64 cardClusterVersion; // Offset: 136 + keen::bool enableGrassAnimation; // Offset: 144 + keen::ds::GrassAnimationModelParameters grassAnimation; // Offset: 148 + keen::bool enableGrassPushback; // Offset: 156 + keen::ds::GrassPushbackModelParameters grassPushback; // Offset: 160 + keen::bool enableSdf; // Offset: 176 +}; + +struct CardClusterInfo { + keen::bool isValid; // Offset: 0 + keen::ds::RenderTexture albedoMap; // Offset: 8 + keen::ds::RenderTexture materialParamsMap; // Offset: 80 + keen::ds::RenderTexture normalMap; // Offset: 152 + keen::ds::RenderTexture opacityMap; // Offset: 224 + keen::float32 texCoord0Delta; // Offset: 296 + keen::uint32 vertexCount; // Offset: 300 + keen::uint32 indexCount; // Offset: 304 + keen::ContentHash vertexBufferHash; // Offset: 308 + keen::ContentHash indexBufferHash; // Offset: 324 + keen::AxisAlignedBox aabb; // Offset: 352 + keen::Sphere boundingSphere; // Offset: 384 +}; + +struct ColorGradient { + keen::ObjectReference image; // Offset: 0 +}; + +struct ShaderModelChunkMesh { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 +}; + +struct ShaderModelChunkPipelineIndex { + keen::uint32 index; // Offset: 0 +}; + +struct ShaderModelChunkModelMesh { + keen::uint32 meshIndex; // Offset: 0 + keen::StaticArray pipelineIndices; // Offset: 4 +}; + +struct ShaderModelChunkModel { + keen::float4 boundingSphere; // Offset: 0 + keen::StaticArray meshes; // Offset: 16 + keen::uint32 meshCount; // Offset: 48 + keen::uint32 modelSizeFeedbackIndex; // Offset: 52 +}; + +struct ShaderModelChunkSubView { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 32 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 48 + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 96 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 192 +}; + +struct ShaderModelChunkPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 passType; // Offset: 4 +}; + +struct ShaderModelChunkInstanceCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2464 + keen::uint32 passCount; // Offset: 2468 + keen::uint32 maxDrawCount; // Offset: 2472 + keen::uint32 maxMeshCount; // Offset: 2476 + keen::float distanceCullingThreshold; // Offset: 2480 + keen::float distanceCullingJitterFactor; // Offset: 2484 + keen::float modelSizeFeedbackPixelSize; // Offset: 2488 + keen::uint smallObjectCulling; // Offset: 2492 + keen::uint writeForestFogFootprints; // Offset: 2496 +}; + +typedef keen::ModelChunkType ModelChunkType; + +struct ShaderModelChunk { + keen::float4 boundingSphere; // Offset: 0 + keen::ds::PackedShaderWorldPositionUniform worldOrigin; // Offset: 16 + keen::float3 extents; // Offset: 32 + keen::float scale; // Offset: 44 + keen::float4 orientation; // Offset: 48 + keen::ds::PackedShaderWorldTransform transform; // Offset: 64 + keen::uint32 instanceOffset; // Offset: 96 + keen::uint32 instanceCount; // Offset: 100 + keen::ds::ModelChunkType type; // Offset: 104 +}; + +struct ShaderModelChunkInstance { + keen::uint32 packedPosition; // Offset: 0 + keen::uint32 packedOrientation; // Offset: 4 + keen::uint32 packedScaleModelIndex; // Offset: 8 +}; + +struct ShaderModelChunkCandidate { + keen::uint32 chunkIndex; // Offset: 0 + keen::uint32 visibilityMask; // Offset: 4 +}; + +struct ShaderModelChunkCullingShaderParameters { + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 64 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 80 + keen::uint candidateCount; // Offset: 128 +}; + +struct ShaderModelChunkInstanceCullingPushConstants { + keen::uint chunkCandidateIndex; // Offset: 0 +}; + +struct ShaderModelChunkDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 +}; + +struct ShaderModelChunkDraw { + keen::uint packedChunkIndexAndMeshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct ShaderModelChunkRenderInstance { + keen::float3 cameraRelativePosition; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct ShaderModelChunkPushConstant { + keen::uint baseDrawIndex; // Offset: 0 + keen::uint isRunningOnSteamDeck; // Offset: 4 +}; + +struct ShaderModelChunkWriteDrawCommandsPushConstants { + keen::uint batchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 +}; + +struct ShaderModelChunkWriteInstanceDataConstants { + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 +}; + +struct ShaderModelChunkBatchPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct MotionVectorsShaderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float2 cancelJitter; // Offset: 16 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 +}; + +struct MotionVectorsDebugShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 +}; + +struct FFX_ParallelSortCB { + keen::uint NumKeys; // Offset: 0 + keen::int NumBlocksPerThreadGroup; // Offset: 4 + keen::uint NumThreadGroups; // Offset: 8 + keen::uint NumThreadGroupsWithAdditionalBlocks; // Offset: 12 + keen::uint NumReduceThreadgroupPerBin; // Offset: 16 + keen::uint NumScanValues; // Offset: 20 + keen::uint _pad0; // Offset: 24 + keen::uint _pad1; // Offset: 28 +}; + +struct KEEN_VFX_ParallelSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct FFX_SetupIndirectCB { + keen::uint NumKeysCounterByteOffset; // Offset: 0 + keen::uint MaxNumKeys; // Offset: 4 + keen::uint MaxThreadGroups; // Offset: 8 +}; + +struct FFX_RootConstantData { + keen::uint CShiftBit; // Offset: 0 +}; + +struct PbrMaterialScalarValue { + keen::float32 value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialColorValue { + keen::Color value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialParameters { + keen::ds::PbrMaterialColorValue emissive; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 20 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 24 + keen::float32 emissiveGiFactor; // Offset: 28 + keen::ds::PbrMaterialColorValue albedo; // Offset: 32 + keen::ds::PbrMaterialScalarValue metallic; // Offset: 52 + keen::ds::PbrMaterialScalarValue roughness; // Offset: 72 + keen::ds::PbrMaterialScalarValue reflectance; // Offset: 92 + keen::ObjectReference normal; // Offset: 112 + keen::ObjectReference height; // Offset: 128 + keen::ObjectReference ao; // Offset: 144 + keen::bool enableLavaShader; // Offset: 160 + keen::ObjectReference distortionMap; // Offset: 164 + keen::ObjectReference lightningMap; // Offset: 180 + keen::ObjectReference gradientMap; // Offset: 196 + keen::float32 distortionMapScale; // Offset: 212 + keen::float32 distortionMapSpeed; // Offset: 216 + keen::float32 distortionMapIntensity; // Offset: 220 + keen::float32 lightningMapScrollSpeed; // Offset: 224 + keen::float32 lightningMapIntensity; // Offset: 228 +}; + +typedef keen::VertexColorChannelRgb VertexColorChannelRgb; + +struct PbrMaterialTintLayer { + keen::bool enable; // Offset: 0 + keen::ObjectReference maskMap; // Offset: 4 +}; + +typedef keen::RenderSamplerAddressMode RenderSamplerAddressMode; + +struct PbrMaterialLayer { + keen::ObjectReference emissiveMap; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 16 + keen::ObjectReference metallicMap; // Offset: 32 + keen::ObjectReference roughnessMap; // Offset: 48 + keen::ObjectReference reflectanceMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference heightMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 + keen::ObjectReference opacityMap; // Offset: 128 + keen::StaticArray albedoTint; // Offset: 144 + keen::uint8 uvSet; // Offset: 204 + keen::float32 uvScaling; // Offset: 208 + keen::bool uvScalingYEnable; // Offset: 212 + keen::float32 uvScalingY; // Offset: 216 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 220 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 221 + keen::float32 heightBias; // Offset: 224 + keen::bool enableAnisotropy; // Offset: 228 + keen::ObjectReference anisotropicDirectionMap; // Offset: 232 + keen::float32 anisotropy; // Offset: 248 + keen::bool maskAnisotropy; // Offset: 252 + keen::float32 emissiveMapIntensity; // Offset: 256 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 260 + keen::float32 emissiveGiFactor; // Offset: 264 +}; + +typedef keen::PbrMaterialBlendMode PbrMaterialBlendMode; + +struct PbrMaterialBlendVertexValue { + keen::ds::VertexColorChannel blendLayer1Channel; // Offset: 0 +}; + +struct PbrMaterialBlendMap { + keen::ObjectReference map; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 16 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 17 + keen::uint8 uvSet; // Offset: 18 + keen::float32 uvScaling; // Offset: 20 + keen::bool uvScalingYEnable; // Offset: 24 + keen::float32 uvScalingY; // Offset: 28 +}; + +struct PbrMaterialOverlayNormalMap { + keen::ObjectReference normalMap; // Offset: 0 + keen::ObjectReference aoMap; // Offset: 16 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 32 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 33 + keen::uint8 uvSet; // Offset: 34 + keen::float32 uvScaling; // Offset: 36 + keen::bool uvScalingYEnable; // Offset: 40 + keen::float32 uvScalingY; // Offset: 44 + keen::bool useVertexColorChannelWeight; // Offset: 48 + keen::ds::VertexColorChannel vertexColorChannel; // Offset: 49 +}; + +struct PbrTranslucency { + keen::float32 strength; // Offset: 0 + keen::ObjectReference thicknessMap; // Offset: 4 + keen::Color color; // Offset: 20 + keen::float viewDependency; // Offset: 24 + keen::float wrapShadingStrength; // Offset: 28 +}; + +struct PbrMaterial { + keen::DsArray blendLayers; // Offset: 0 + keen::ds::PbrMaterialBlendMode blendMode; // Offset: 40 + keen::ds::PbrMaterialBlendVertexValue blendVertexVertexValue; // Offset: 41 + keen::ds::PbrMaterialBlendMap blendMap; // Offset: 44 + keen::ds::PbrMaterialOverlayNormalMap overlayNormalLayer; // Offset: 76 + keen::bool multiplyEmissiveByVertexColor; // Offset: 128 + keen::ds::VertexColorChannelRgb multiplyEmissiveVertexColorChannel; // Offset: 129 + keen::bool multiplyAlbedoByVertexColor; // Offset: 130 + keen::ds::VertexColorChannelRgb multiplyAlbedoVertexColorChannel; // Offset: 131 + keen::bool multiplyAoByVertexColorChannel; // Offset: 132 + keen::ds::VertexColorChannel multiplyAoVertexColorChannel; // Offset: 133 + keen::bool multiplyAlphaByVertexAlpha; // Offset: 134 + keen::ds::PbrTranslucency translucency; // Offset: 136 + keen::bool enableGiWrapShading; // Offset: 168 + keen::bool adjustGiNormals; // Offset: 169 + keen::bool enableGiSpecular; // Offset: 170 + keen::bool enableBackfaceCulling; // Offset: 171 + keen::bool useFlippedBackfaceNormals; // Offset: 172 + keen::bool enableAlphaBlending; // Offset: 173 + keen::bool enableAlphaTest; // Offset: 174 + keen::bool enableShadowAlphaTest; // Offset: 175 + keen::bool enableHashedAlphaTest; // Offset: 176 + keen::bool disableFrostShader; // Offset: 177 + keen::bool disableSnowShader; // Offset: 178 + keen::bool disableWetnessShader; // Offset: 179 + keen::bool enableFrostShaderGlitter; // Offset: 180 + keen::bool enableGradientMapSupport; // Offset: 181 + keen::bool enableTessellation; // Offset: 182 + keen::float32 tessellationStartDistance; // Offset: 184 + keen::float32 tessellationSubdivisions; // Offset: 188 + keen::float32 displacementScale; // Offset: 192 + keen::float32 displacementOffset; // Offset: 196 + keen::bool enableShadows; // Offset: 200 + keen::bool enableContactShadows; // Offset: 201 + keen::ds::DissolveMaterialParameters dissolve; // Offset: 204 +}; + +struct PbrMaterialEmissiveMapShaderData { + keen::float32 intensity; // Offset: 0 + keen::float32 exposureCorrectionFactor; // Offset: 4 +}; + +struct PbrMaterialTintShaderData { + keen::uint32 enableLayerBitMask; // Offset: 0 + keen::StaticArray maskMaps; // Offset: 4 +}; + +struct PbrMaterialDisplacementSettings { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrTerrainMaterialLayer { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference roughnessMap; // Offset: 16 + keen::ObjectReference normalMap; // Offset: 32 + keen::ObjectReference heightMap; // Offset: 48 + keen::ObjectReference aoMap; // Offset: 64 + keen::float32 tilingSize; // Offset: 80 +}; + +struct PbrTerrainMaterialBlendingSmoothness { + keen::float32 position; // Offset: 0 + keen::float32 smoothness; // Offset: 4 + keen::float32 heightBias; // Offset: 8 +}; + +struct PbrTerrainMaterialCenterBlendingSmoothness { + keen::float32 smoothness; // Offset: 0 + keen::float32 heightBias; // Offset: 4 +}; + +typedef keen::PbrTerrainMaterialDetailNormalBlendMode PbrTerrainMaterialDetailNormalBlendMode; + +struct PbrTerrainMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 origin; // Offset: 4 +}; + +struct PbrBuildingNoiseBlendRange { + keen::float32 min; // Offset: 0 + keen::float32 max; // Offset: 4 +}; + +struct PbrBuildingMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrBuildingMaterial { + keen::ds::PbrMaterialLayer baseMaterialSide; // Offset: 0 + keen::ds::PbrBuildingMaterialDisplacementLayer baseMaterialSideDisplacement; // Offset: 268 + keen::ds::PbrMaterialLayer baseMaterialTop; // Offset: 276 + keen::ds::PbrBuildingMaterialDisplacementLayer baseMaterialTopDisplacement; // Offset: 544 + keen::ds::PbrMaterialLayer baseMaterialBottom; // Offset: 552 + keen::ds::PbrBuildingMaterialDisplacementLayer baseMaterialBottomDisplacement; // Offset: 820 + keen::ds::PbrMaterialLayer edgeMaterial; // Offset: 828 + keen::ds::PbrBuildingMaterialDisplacementLayer edgeMaterialDisplacement; // Offset: 1096 + keen::ds::PbrBuildingMaterialDisplacementLayer edgeMaterialTopDisplacement; // Offset: 1104 + keen::ds::PbrMaterialLayer noiseMaterial; // Offset: 1112 + keen::ds::PbrBuildingMaterialDisplacementLayer noiseMaterialDisplacement; // Offset: 1380 + keen::float32 edgeBlendingCurve; // Offset: 1388 + keen::ds::PbrBuildingNoiseBlendRange noiseBlendRange; // Offset: 1392 + keen::bool edgeOnlySide; // Offset: 1400 + keen::float32 bevelRadius; // Offset: 1404 + keen::ds::BuildingMappingType mapping; // Offset: 1408 +}; + +struct PbrBuildingDetailScatterLayerTop { +}; + +struct PbrBuildingDetailScatterLayerSide { +}; + +struct PbrBuildingDetailScatterLayerBottom { +}; + +struct PbrBuildingDetailScatterLayerNoise { +}; + +typedef keen::PbrRfxRenderMaterialFlag PbrRfxRenderMaterialFlag; + +typedef keen::PbrRfxRenderMaterialFlagMask PbrRfxRenderMaterialFlagMask; + +struct RfxSampler { + keen::uint32 id; // Offset: 0 +}; + +struct PbrRfxRenderMaterial { + keen::uint32 layerParameters; // Offset: 0 + keen::ds::StreamedTexture2D_float blendMap; // Offset: 4 + keen::float2 blendMapTexcoordScaling; // Offset: 8 + keen::StaticArray albedoMap; // Offset: 16 + keen::StaticArray normalMap; // Offset: 24 + keen::StaticArray emissiveMap; // Offset: 32 + keen::StaticArray materialParamsMap; // Offset: 40 + keen::StaticArray heightMap; // Offset: 48 + keen::StaticArray layerSampler; // Offset: 56 + keen::StaticArray texCoordScaling; // Offset: 64 + keen::StaticArray anisotropyDirectionMap; // Offset: 80 + keen::StaticArray anisotropyStrength; // Offset: 88 + keen::StaticArray constantReflectance; // Offset: 96 + keen::StaticArray albedoTintShaderData; // Offset: 104 + keen::StaticArray heightBlendingRange; // Offset: 136 + keen::uint32 multiplyEmissiveVertexColorChannelSwizzle; // Offset: 144 + keen::uint32 multiplyAlbedoVertexColorChannelSwizzle; // Offset: 148 + keen::uint32 multiplyAoVertexColorChannelSwizzle; // Offset: 152 + keen::ds::RfxSampler blendMapSampler; // Offset: 156 + keen::float translucencyStrength; // Offset: 160 + keen::ds::StreamedTexture2D_float translucencyMap; // Offset: 164 + keen::StaticArray emissiveMapShaderData; // Offset: 168 + keen::ds::StreamedTexture2D_float4 overlayNormalMap; // Offset: 184 + keen::ds::StreamedTexture2D_float overlayAoMap; // Offset: 188 + keen::ds::RfxSampler overlayNormalMapSampler; // Offset: 192 + keen::uint32 overlayNormalMapVertexColorChannelSwizzle; // Offset: 196 + keen::float2 overlayNormalMapTexCoordScaling; // Offset: 200 + keen::float3 dissolveEdgeGlowColor; // Offset: 208 + keen::float32 dissolveEdgeGlowWidthInv; // Offset: 220 + keen::float32 dissolveEdgeGlowParam; // Offset: 224 + keen::ds::BindlessTexture3D_float dissolveNoiseMap; // Offset: 228 + keen::float32 dissolveNoiseTiling; // Offset: 232 + keen::float32 dissolveNoiseFadeRange; // Offset: 236 + keen::uint32 flags; // Offset: 240 +}; + +struct post_processing.NightAdaptation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.WhiteBalance { + keen::bool enable; // Offset: 0 + keen::float temperature; // Offset: 4 + keen::float tint; // Offset: 8 +}; + +struct post_processing.ChannelMixer { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb r; // Offset: 4 + keen::HdrColorRgb g; // Offset: 20 + keen::HdrColorRgb b; // Offset: 36 +}; + +struct post_processing.WeightedColor { + keen::HdrColorRgb color; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +struct post_processing.TonalColors { + keen::bool enable; // Offset: 0 + keen::ds::post_processing::WeightedColor shadows; // Offset: 4 + keen::ds::post_processing::WeightedColor midtones; // Offset: 24 + keen::ds::post_processing::WeightedColor highlights; // Offset: 44 + keen::float shadowStart; // Offset: 64 + keen::float midStart; // Offset: 68 + keen::float midEnd; // Offset: 72 + keen::float highlightEnd; // Offset: 76 +}; + +struct post_processing.ColorChannelWeights { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 +}; + +struct post_processing.SlopeOffsetColor { + keen::bool enable; // Offset: 0 + keen::ds::post_processing::ColorChannelWeights slope; // Offset: 4 + keen::ds::post_processing::ColorChannelWeights offset; // Offset: 16 + keen::ds::post_processing::ColorChannelWeights power; // Offset: 28 +}; + +struct post_processing.Contrast { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Vibrance { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Saturation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Curves { + keen::bool enable; // Offset: 0 + keen::ds::post_processing::ColorChannelWeights shadowGamma; // Offset: 4 + keen::ds::post_processing::ColorChannelWeights midpoint; // Offset: 16 + keen::ds::post_processing::ColorChannelWeights highlightScale; // Offset: 28 +}; + +struct post_processing.ColorFilter { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct post_processing.ColorGrading { + keen::ds::post_processing::NightAdaptation nightAdaptation; // Offset: 0 + keen::ds::post_processing::WhiteBalance whiteBalance; // Offset: 8 + keen::ds::post_processing::ChannelMixer channelMixer; // Offset: 20 + keen::ds::post_processing::TonalColors tonalColors; // Offset: 72 + keen::ds::post_processing::SlopeOffsetColor slopeOffsetColor; // Offset: 152 + keen::ds::post_processing::Contrast contrast; // Offset: 192 + keen::ds::post_processing::Vibrance vibrance; // Offset: 200 + keen::ds::post_processing::Saturation saturation; // Offset: 208 + keen::ds::post_processing::Curves curves; // Offset: 216 +}; + +struct PostProcessingParameters { + keen::ds::post_processing::ColorFilter colorFilter; // Offset: 0 + keen::ds::post_processing::ColorGrading colorGrading; // Offset: 20 +}; + +struct TonemappingConstants { + keen::float4 curve; // Offset: 0 + keen::float3 crosstalkPreSaturation; // Offset: 16 + keen::float hdrMax; // Offset: 28 + keen::float3 crosstalk; // Offset: 32 + keen::float3 crosstalkPostSaturation; // Offset: 48 +}; + +typedef keen::PostProcessingCompositeFlag PostProcessingCompositeFlag; + +typedef keen::PostProcessingCompositeFlags PostProcessingCompositeFlags; + +struct PostProcessingCompositeConstants { + keen::uint32 flags; // Offset: 0 + keen::float3 colorFilter; // Offset: 4 + keen::float32 bloomStrength; // Offset: 16 + keen::float32 temporalNoise; // Offset: 20 + keen::float3 lutOffset; // Offset: 32 + keen::float3 lutScale; // Offset: 48 + keen::float4 vignetteColor; // Offset: 64 + keen::float4 flashColor; // Offset: 80 + keen::ds::TonemappingConstants toneMapping; // Offset: 96 +}; + +struct PostProcessingHistogramConstants { + keen::uint2 targetSize; // Offset: 0 + keen::float32 exposure; // Offset: 8 + keen::float32 inverseExposure; // Offset: 12 + keen::uint32 useSceneBrightness; // Offset: 16 +}; + +struct PostProcessingHistogramResult { + keen::StaticArray pixelCount; // Offset: 0 +}; + +struct SceneHistogramShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct BloomConstants { + keen::float2 halfPixelSize; // Offset: 0 + keen::uint applyBilateralGrid; // Offset: 8 + keen::float bilateralGridDetail; // Offset: 12 + keen::float thresholdLow; // Offset: 16 + keen::float thresholdHigh; // Offset: 20 + keen::float fogContribution; // Offset: 24 + keen::float compression; // Offset: 28 + keen::float scale; // Offset: 32 +}; + +struct ClearBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct FillBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::uint2 sourceSize; // Offset: 16 + keen::float2 oneOverSourceSize; // Offset: 24 + keen::float32 inverseExposure; // Offset: 32 +}; + +struct CopyResultBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct BlurBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::float3 oneOverGridSize; // Offset: 16 +}; + +struct ApplyBilateralGridConstants { + keen::float3 oneOverGridSize; // Offset: 0 + keen::float inverseExposure; // Offset: 12 + keen::float midPointLogLuminance; // Offset: 16 + keen::float highlightContrastFactor; // Offset: 20 + keen::float shadowContrastFactor; // Offset: 24 + keen::float detailFactor; // Offset: 28 +}; + +struct PrefixSumPrepareConstants { + keen::uint32 maxElementCount; // Offset: 0 + keen::uint32 counterIndex; // Offset: 4 +}; + +struct SmallPrefixSumShaderParameters { + keen::uint32 elementCount; // Offset: 0 +}; + +struct RenderShaderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 +}; + +typedef keen::RenderVertexFormat RenderVertexFormat; + +typedef keen::TextureAlphaMode TextureAlphaMode; + +typedef keen::TextureContentType TextureContentType; + +typedef keen::TextureConverterFlag TextureConverterFlag; + +typedef keen::TextureConverterFlags TextureConverterFlags; + +struct RenderTextureChannelData { + keen::ObjectReference image; // Offset: 0 + keen::ds::TextureChannel sourceChannel; // Offset: 16 + keen::ObjectReference roughnessNormalMapImage; // Offset: 20 + keen::bool clampRoughnessNormalU; // Offset: 36 + keen::bool clampRoughnessNormalV; // Offset: 37 + keen::ds::TextureChannel targetChannel; // Offset: 38 +}; + +struct RenderMaterialTextureSamplingInfo { + keen::uint8 vertexAttributeId; // Offset: 0 + keen::float32 scaling; // Offset: 4 +}; + +struct RenderMaterialTextureElement { + keen::DsArray textureChannels; // Offset: 0 + keen::ds::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 40 +}; + +struct RenderMaterialTextureData { + keen::uint32 offset; // Offset: 0 + keen::TextureType textureType; // Offset: 4 + keen::PixelFormat pixelFormat; // Offset: 5 + keen::ds::TextureAlphaMode alphaMode; // Offset: 6 + keen::DsArray textureElements; // Offset: 8 + keen::ds::TextureContentType contentType; // Offset: 48 + keen::ds::TextureConverterFlags convertFlags; // Offset: 52 + keen::ds::string name; // Offset: 56 +}; + +typedef keen::RenderSamplerFilterMode RenderSamplerFilterMode; + +typedef keen::RenderComparisonFunction RenderComparisonFunction; + +struct RenderMaterialSamplerData { + keen::uint32 offset; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::ds::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::ds::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::ds::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::ds::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::ds::RenderComparisonFunction comparisonFunction; // Offset: 10 +}; + +typedef keen::RenderEffectId RenderEffectId; + +typedef keen::RenderMaterialFlagMask RenderMaterialFlagMask; + +struct RenderMaterialConverterData { + keen::Guid objectId; // Offset: 0 + keen::ds::string description; // Offset: 16 + keen::ds::RenderEffectId effectId; // Offset: 56 + keen::ds::RenderMaterialFlagMask flags; // Offset: 57 + keen::DsArray data; // Offset: 64 + keen::HashKey32 dataTypeSignature; // Offset: 104 + keen::DsArray textures; // Offset: 112 + keen::DsArray samplers; // Offset: 152 + keen::ds::RenderVertexFormat vertexFormat; // Offset: 192 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 196 +}; + +typedef keen::RenderMemoryAllocatorObjectType RenderMemoryAllocatorObjectType; + +struct RenderMemoryAllocatorObjectState { + keen::ds::RenderMemoryAllocatorObjectType type; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::uint32 allocationRegionHandle; // Offset: 48 + keen::uint32 allocationMemoryType; // Offset: 52 + keen::uint64 allocationBlockHandle; // Offset: 56 + keen::uint64 allocationOffset; // Offset: 64 + keen::uint64 allocationSize; // Offset: 72 +}; + +struct RenderMemoryAllocatorAllocationState { + keen::uint32 handle; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::DsArray objects; // Offset: 48 +}; + +struct RenderMemoryAllocatorBlockState { + keen::uint64 handle; // Offset: 0 + keen::uint64 sizeInBytes; // Offset: 8 + keen::uint32 refCount; // Offset: 16 +}; + +struct RenderMemoryAllocatorRegionMemoryTypeState { + keen::uint32 memoryType; // Offset: 0 + keen::uint8 graphicsDeviceMemoryTypeIndex; // Offset: 4 + keen::bool isMapped; // Offset: 5 + keen::DsArray blocks; // Offset: 8 +}; + +struct RenderMemoryAllocatorRegionState { + keen::uint32 handle; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::GraphicsDeviceMemoryPriority priority; // Offset: 48 + keen::uint64 chunkSize; // Offset: 56 + keen::DsArray memoryTypes; // Offset: 64 +}; + +struct RenderMemoryAllocatorState { + keen::DsArray allocations; // Offset: 0 + keen::DsArray regions; // Offset: 40 +}; + +struct RenderResources { + keen::ObjectReference renderSystem; // Offset: 0 + keen::ObjectReference worldMaterialBlending2; // Offset: 16 + keen::ObjectReference buildingMaterialBlending; // Offset: 32 + keen::ObjectReference giVoxelBuildingMaterial; // Offset: 48 + keen::ObjectReference worldDetailScatter; // Offset: 64 + keen::ObjectReference buildingDetailScatter; // Offset: 80 + keen::ObjectReference analyticFog; // Offset: 96 + keen::ObjectReference volumetricFog2; // Offset: 112 + keen::ObjectReference volumetricFogGridParameters; // Offset: 128 + keen::DsArray> gpcResources; // Offset: 144 + keen::ObjectReference colorPaletteCollection; // Offset: 184 +}; + +struct RenderSceneCaptureModel { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference modelResource; // Offset: 56 +}; + +typedef keen::RenderLightType RenderLightType; + +struct RenderLight { + keen::ds::RenderLightType type; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 + keen::bool castShadows; // Offset: 20 + keen::float32 radius; // Offset: 24 +}; + +struct RenderSceneCaptureLight { + keen::WorldTransform transform; // Offset: 0 + keen::ds::RenderLight light; // Offset: 56 +}; + +struct RenderSceneCaptureVfxInstance { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference vfxResource; // Offset: 56 + keen::float4 color; // Offset: 72 + keen::float4 param0; // Offset: 88 + keen::float4 param1; // Offset: 104 + keen::float4 param2; // Offset: 120 + keen::float4 param3; // Offset: 136 + keen::Time startTime; // Offset: 152 + keen::bool isActive; // Offset: 160 + keen::bool killWhenCulled; // Offset: 161 +}; + +struct RenderSceneCaptureChunk { + keen::WorldTransform transform; // Offset: 0 + keen::ContentHash voxelData; // Offset: 56 +}; + +struct RenderSceneCapture { + keen::WorldTransform captureViewTransform; // Offset: 0 + keen::DsArray models; // Offset: 56 + keen::DsArray lights; // Offset: 96 + keen::DsArray vfxInstances; // Offset: 136 +}; + +typedef keen::RenderAntiAliasingSettingsValidMask RenderAntiAliasingSettingsValidMask; + +typedef keen::RenderTextureQualitySettingsValidMask RenderTextureQualitySettingsValidMask; + +struct RenderSettingsFeatures { + keen::ds::RenderAntiAliasingSettingsValidMask antialiasingValidMask; // Offset: 0 + keen::ds::RenderTextureQualitySettingsValidMask textureQualityValidMask; // Offset: 4 +}; + +typedef keen::RenderSettingsPreset RenderSettingsPreset; + +typedef keen::RenderAntiAliasingSetting RenderAntiAliasingSetting; + +typedef keen::RenderFsr2PresetSetting RenderFsr2PresetSetting; + +typedef keen::RenderFsr3PresetSetting RenderFsr3PresetSetting; + +typedef keen::RenderDlssPresetSetting RenderDlssPresetSetting; + +typedef keen::RenderTextureQualitySetting RenderTextureQualitySetting; + +typedef keen::RenderShadowQualitySetting RenderShadowQualitySetting; + +typedef keen::RenderContactShadowsSetting RenderContactShadowsSetting; + +typedef keen::RenderGiSetting RenderGiSetting; + +typedef keen::RenderReflectionsSetting RenderReflectionsSetting; + +typedef keen::RenderFogQualitySetting RenderFogQualitySetting; + +typedef keen::RenderFogVolumetricShadowQualitySetting RenderFogVolumetricShadowQualitySetting; + +typedef keen::RenderSsaoSetting RenderSsaoSetting; + +typedef keen::RenderDistantObjectsSetting RenderDistantObjectsSetting; + +typedef keen::RenderDecoObjectsSetting RenderDecoObjectsSetting; + +typedef keen::RenderDetailScatteringSetting RenderDetailScatteringSetting; + +typedef keen::RenderVoxelMeshQualitySetting RenderVoxelMeshQualitySetting; + +typedef keen::RenderTessellationSetting RenderTessellationSetting; + +typedef keen::RenderPointLightShadowsSetting RenderPointLightShadowsSetting; + +struct RenderSettings { + keen::ds::RenderSettingsPreset preset; // Offset: 0 + keen::ds::RenderAntiAliasingSetting antiAliasing; // Offset: 4 + keen::ds::RenderFsr2PresetSetting fsr2; // Offset: 8 + keen::ds::RenderFsr3PresetSetting fsr3; // Offset: 12 + keen::ds::RenderDlssPresetSetting dlss; // Offset: 16 + keen::ds::RenderTextureQualitySetting textures; // Offset: 20 + keen::ds::RenderShadowQualitySetting shadows; // Offset: 24 + keen::ds::RenderContactShadowsSetting contactShadows; // Offset: 28 + keen::ds::RenderGiSetting dynamicGi; // Offset: 32 + keen::ds::RenderReflectionsSetting reflections; // Offset: 36 + keen::ds::RenderFogQualitySetting fog; // Offset: 40 + keen::ds::RenderFogVolumetricShadowQualitySetting volumetricShadow; // Offset: 44 + keen::ds::RenderSsaoSetting ssao; // Offset: 48 + keen::ds::RenderDistantObjectsSetting distantObjects; // Offset: 52 + keen::ds::RenderDecoObjectsSetting decoObjects; // Offset: 56 + keen::ds::RenderDetailScatteringSetting detailScattering; // Offset: 60 + keen::ds::RenderVoxelMeshQualitySetting voxelMeshQuality; // Offset: 64 + keen::ds::RenderTessellationSetting tessellation; // Offset: 68 + keen::ds::RenderPointLightShadowsSetting pointLightShadows; // Offset: 72 + keen::float32 sharpness; // Offset: 76 +}; + +struct RenderSettingsGpuPresets { +}; + +typedef keen::RenderSettingsGpuTargetResolution RenderSettingsGpuTargetResolution; + +typedef keen::RenderSettingsGpuTargetFps RenderSettingsGpuTargetFps; + +struct RenderSettingsGpuMapping { + keen::ds::RenderSettingsGpuTargetResolution targetResolution; // Offset: 0 + keen::ds::RenderSettingsGpuTargetFps targetFps; // Offset: 4 + keen::ds::RenderSettings settings; // Offset: 8 +}; + +struct RenderSettingsGpuMatch { + keen::ds::string name; // Offset: 0 +}; + +struct RenderSettingsGpuPresetsResource { + keen::DsArray gpus; // Offset: 0 + keen::DsArray presets; // Offset: 40 +}; + +struct RenderSettingsGpuPresetsResourceGpu { + keen::HashKey32 nameHash; // Offset: 0 + keen::uint32 presetIndex; // Offset: 4 +}; + +struct RenderSettingsGpuPresetResource { + keen::ds::RenderSettings settings; // Offset: 0 + keen::uint32 targetPixelCount; // Offset: 80 + keen::uint32 targetFps; // Offset: 84 +}; + +struct ForwardPointLightData { + keen::float3 position; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float falloffWeight; // Offset: 28 + keen::uint32 uniqueId; // Offset: 32 + keen::uint32 enableShadows; // Offset: 36 + keen::float radius; // Offset: 40 + keen::uint32 pad2; // Offset: 44 +}; + +struct ForwardDecalData { + keen::GraphicsMatrix43 decalTransform; // Offset: 0 + keen::float4 worldBoundingSphere; // Offset: 48 + keen::float4 color; // Offset: 64 + keen::float4 emissiveTintAndAlpha; // Offset: 80 + keen::uint32 materialDataIndex; // Offset: 96 + keen::float32 normalFade; // Offset: 100 + keen::uint layerMask; // Offset: 104 + keen::uint enableTransparencyCompositionMask; // Offset: 108 +}; + +struct ClusterCullingInfo { + keen::uint3 clusterSize; // Offset: 0 + keen::uint32 enableOverdraw; // Offset: 12 + keen::float2 inverseViewportSize; // Offset: 16 + keen::float32 zNear; // Offset: 24 + keen::float32 zFar; // Offset: 28 +}; + +struct RenderWeatherMaskResource { + keen::ds::RenderTexture mask; // Offset: 0 +}; + +struct RenderWeatherResource { + keen::float2 snowBorderRangeMapping; // Offset: 0 + keen::ds::RenderWeatherMaskResource snowBorderMask; // Offset: 8 +}; + +struct RenderWeatherPhenomenonResource { + keen::ds::RenderTexture cloudMap; // Offset: 0 +}; + +struct RenderWeatherRasterCouldsParameters { + keen::float32 invRenderTargetSize; // Offset: 0 +}; + +struct RenderWeatherRasterCloudsInstanceData { + keen::float4 transformM; // Offset: 0 + keen::float2 transformT; // Offset: 16 + keen::uint32 data; // Offset: 24 + keen::ds::BindlessTexture2D_float4 cloudMap; // Offset: 28 + keen::ds::BindlessTexture2D_float restrictMask; // Offset: 32 + keen::ds::BindlessTexture2D_float excludeMask; // Offset: 36 +}; + +struct RenderWeatherWeatherMapSubtractParameters { + keen::float32 wetnessValue; // Offset: 0 + keen::float32 puddleValue; // Offset: 4 +}; + +struct RenderWeatherWeatherMapAddParameters { + keen::float32 rainWetnessValue; // Offset: 0 + keen::float32 rainPuddleValue; // Offset: 4 +}; + +struct RenderWeatherDynamicWetnessSampleUpload { + keen::uint32 pointIndex; // Offset: 0 + keen::sint32 instanceIndex; // Offset: 4 + keen::sint32 boneIndex; // Offset: 8 + keen::float3 localPosition; // Offset: 12 +}; + +struct RenderWeatherDynamicWetnessSample { + keen::sint32 instanceIndex; // Offset: 0 + keen::sint32 boneIndex; // Offset: 4 + keen::float3 localPosition; // Offset: 8 +}; + +struct RenderWeatherDynamicWetnessUpdateConstants { + keen::uint32 uploadCount; // Offset: 0 + keen::float dryWetnessValue; // Offset: 4 + keen::float addRainWetnessValue; // Offset: 8 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 16 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 32 +}; + +struct RenderWeatherFilterDynamicHeightmapConstants { + keen::float2 rcpTextureSize; // Offset: 0 +}; + +typedef keen::RenderWeatherInstanceFlags RenderWeatherInstanceFlags; + +struct RenderWeatherInstanceParameters { + keen::float2 positionXZ; // Offset: 0 + keen::Angle orientation; // Offset: 8 + keen::float2 scaleXZ; // Offset: 12 + keen::float32 strength; // Offset: 20 + keen::float32 rainThreshold; // Offset: 24 + keen::ds::RenderWeatherInstanceFlags flags; // Offset: 28 +}; + +struct RenderWeatherDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::ds::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +struct RenderWeatherDebugState { + keen::bool debugDrawInstances; // Offset: 0 + keen::DsArray instances; // Offset: 8 +}; + +struct RenderWeatherDebugUpdateDebugDrawInstances { + keen::bool debugDrawInstances; // Offset: 0 +}; + +struct RenderWeatherDebugAddInstance { + keen::ObjectReference phenomenon; // Offset: 0 + keen::ds::RenderWeatherInstanceParameters parameters; // Offset: 16 +}; + +struct RenderWeatherDebugRemoveInstance { + keen::uint32 handle; // Offset: 0 +}; + +struct RenderWeatherDebugSetInstanceParameters { + keen::uint32 handle; // Offset: 0 + keen::ds::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +typedef keen::RenderWeatherInstanceFlag RenderWeatherInstanceFlag; + +typedef keen::RenderWeatherDebugMode RenderWeatherDebugMode; + +typedef keen::Fsr3QualityPreset Fsr3QualityPreset; + +typedef keen::RenderUpscaleTechnique RenderUpscaleTechnique; + +typedef keen::RenderFeatureFlag RenderFeatureFlag; + +typedef keen::RenderFeatureFlags RenderFeatureFlags; + +struct BlendShapeId { +}; + +typedef keen::BeaufortWindForce BeaufortWindForce; + +struct ShaderDataPrimitiveTypes { + keen::sint32 f0; // Offset: 0 + keen::float32 f1; // Offset: 4 + keen::sint64 f2; // Offset: 8 + keen::float4 f3; // Offset: 16 + keen::float3 f4; // Offset: 32 + keen::float2 f5; // Offset: 44 + keen::uint3 f6; // Offset: 52 + keen::uint4 f7; // Offset: 64 +}; + +struct RenderColorGradingMap { + keen::ObjectReference image; // Offset: 0 +}; + +struct RenderColorGradingMapResource { + keen::ContentHash content; // Offset: 0 + keen::ds::string debugName; // Offset: 16 +}; + +typedef keen::ObjectReference RenderColorGradingMapReference; + +typedef keen::RenderViewDebugDrawMode RenderViewDebugDrawMode; + +typedef keen::RenderDescriptorSetId RenderDescriptorSetId; + +typedef keen::RenderSubpassIndex RenderSubpassIndex; + +typedef keen::RenderPipelineStage RenderPipelineStage; + +typedef keen::ShaderCompileSourceLanguage ShaderCompileSourceLanguage; + +typedef keen::RenderPrimitiveType RenderPrimitiveType; + +struct RenderSampler { + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 1 + keen::ds::RenderSamplerAddressMode addressModeW; // Offset: 2 + keen::ds::RenderSamplerFilterMode minFilter; // Offset: 3 + keen::ds::RenderSamplerFilterMode magFilter; // Offset: 4 + keen::ds::RenderSamplerFilterMode mipFilter; // Offset: 5 + keen::ds::RenderComparisonFunction comparisonFunction; // Offset: 6 + keen::bool anisotropyEnable; // Offset: 7 +}; + +typedef keen::RenderParameterBlockPatchPointType RenderParameterBlockPatchPointType; + +struct RenderParameterBlockPatchPoint { + keen::ds::RenderParameterBlockPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 parameterIndex; // Offset: 12 +}; + +struct RenderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 + keen::uint8 stream; // Offset: 2 +}; + +typedef keen::ComputeGroupCountAlgorithm ComputeGroupCountAlgorithm; + +struct RenderModelImageSizeInfo { + keen::float32 texelsPerMeter; // Offset: 0 +}; + +typedef keen::RenderMaterialFlag RenderMaterialFlag; + +struct RenderMaterialImage { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 width; // Offset: 4 + keen::uint16 height; // Offset: 6 + keen::uint16 depth; // Offset: 8 + keen::uint16 arraySize; // Offset: 10 + keen::uint8 levelCount; // Offset: 12 + keen::TextureType type; // Offset: 13 + keen::PixelFormat format; // Offset: 14 + keen::ContentHash data; // Offset: 16 + keen::bool enableStreaming; // Offset: 32 + keen::ds::string debugName; // Offset: 40 +}; + +struct RenderMaterialSampler { + keen::uint32 dataOffset; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::ds::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::ds::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::ds::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::ds::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::ds::RenderComparisonFunction comparisonFunction; // Offset: 10 + keen::bool anisotropyEnable; // Offset: 11 +}; + +typedef keen::RfxSamplerId RfxSamplerId; + +struct RenderMaterialResource { + keen::ds::RenderEffectId effectId; // Offset: 0 + keen::ds::RenderMaterialFlagMask flags; // Offset: 1 + keen::DsArray data; // Offset: 8 + keen::HashKey32 dataTypeSignature; // Offset: 48 + keen::DsArray images; // Offset: 56 + keen::DsArray samplers; // Offset: 96 + keen::ds::string debugName; // Offset: 136 +}; + +typedef keen::ObjectReference RenderMaterialResourceReference; + +struct RenderMaterialTextureInfo { + keen::uint3 size; // Offset: 0 + keen::ds::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 12 +}; + +struct RenderMaterialInfo { + keen::ds::RenderEffectId effectId; // Offset: 0 + keen::ds::RenderMaterialFlagMask flags; // Offset: 1 + keen::HashKey32 dataTypeSignature; // Offset: 4 + keen::bool hasStreamedTextures; // Offset: 8 + keen::DsArray textures; // Offset: 16 +}; + +struct RenderBlendResourceData { + keen::ObjectReference id; // Offset: 0 +}; + +struct RenderMaterialMesh { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::Sphere boundingSphere; // Offset: 32 + keen::ds::RenderEffectId renderEffectId; // Offset: 48 + keen::uint8 clothMeshIndex; // Offset: 49 + keen::ds::RenderMaterialResourceReference material; // Offset: 52 + keen::ds::RenderMaterialFlagMask materialFlags; // Offset: 68 + keen::DsArray materialImageSizeInfos; // Offset: 72 + keen::ContentHash materialModelData; // Offset: 112 + keen::HashKey32 materialModelDataTypeSignatureHash; // Offset: 128 + keen::float3 positionScale; // Offset: 132 + keen::float3 positionOffset; // Offset: 144 + keen::uint32 vertexCount; // Offset: 156 + keen::uint32 indexCount; // Offset: 160 + keen::ContentHash vertexData; // Offset: 164 + keen::ContentHash indexData; // Offset: 180 + keen::ContentHash skinningData; // Offset: 196 + keen::ContentHash blendShapeVertexData; // Offset: 212 + keen::uint32 blendShapeMask; // Offset: 228 + keen::ds::string debugName; // Offset: 232 +}; + +struct RenderModelLod { + keen::uint32 firstMeshIndex; // Offset: 0 + keen::uint32 meshCount; // Offset: 4 + keen::float32 pixelSize; // Offset: 8 +}; + +typedef keen::RenderRayTraceVertexFormat RenderRayTraceVertexFormat; + +struct RenderRayTraceMeshPart { + keen::uint32 jointIndex; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexOffset; // Offset: 12 + keen::uint32 vertexCount; // Offset: 16 +}; + +struct RenderRayTraceMesh { + keen::ds::RenderRayTraceVertexFormat vertexFormat; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::ContentHash vertexData; // Offset: 12 + keen::ContentHash indexData; // Offset: 28 + keen::DsArray parts; // Offset: 48 +}; + +struct RenderModelClothSleeve { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::uint32 upperJointIndex; // Offset: 32 + keen::uint32 lowerJointIndex; // Offset: 36 + keen::uint32 instanceIndex; // Offset: 40 + keen::ContentHash planes; // Offset: 44 + keen::ContentHash particleIndicies; // Offset: 60 +}; + +struct RenderModelSdfMaterial { + keen::float3 albedo; // Offset: 0 + keen::uint dummy; // Offset: 12 + keen::float3 emissive; // Offset: 16 +}; + +struct RenderModelSdfPart { + keen::uint3 resolution; // Offset: 0 + keen::uint32 jointIndex; // Offset: 12 + keen::uint8 mipLevelCount; // Offset: 16 + keen::float3 origin; // Offset: 20 + keen::float3 totalSize; // Offset: 32 + keen::ContentHash pixels; // Offset: 44 + keen::ds::RenderModelSdfMaterial material; // Offset: 60 +}; + +struct RenderModelSdfData { + keen::DsArray parts; // Offset: 0 +}; + +struct RenderGradientMapResource { + keen::uint16 width; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::PixelFormat format; // Offset: 3 + keen::ContentHash data; // Offset: 4 + keen::ds::string debugName; // Offset: 24 +}; + +struct RenderModelClothColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::bool ignoreClothCollider; // Offset: 1 + keen::DsArray spheres; // Offset: 8 + keen::DsArray capsules; // Offset: 48 + keen::DsArray instances; // Offset: 88 +}; + +struct SkinnedTreeModelData { + keen::DsArray jointMatrix; // Offset: 0 + keen::DsArray jointParent; // Offset: 40 + keen::DsArray jointSpringData; // Offset: 80 + keen::DsArray leafJoints; // Offset: 120 + keen::DsArray inverseTransformTree; // Offset: 160 +}; + +struct RenderModel { + keen::ds::string debugName; // Offset: 0 + keen::DsArray meshes; // Offset: 40 + keen::DsArray lods; // Offset: 80 + keen::AxisAlignedBox aabb; // Offset: 128 + keen::ds::RenderRayTraceMesh rayTraceMesh; // Offset: 160 + keen::ObjectReference hierarchy; // Offset: 248 + keen::uint16 hierarchyJointCount; // Offset: 264 + keen::DsArray skinningMap; // Offset: 272 + keen::DsOptional cloth; // Offset: 312 + keen::DsOptional chain; // Offset: 328 + keen::ds::RenderModelClothColliderData collider; // Offset: 344 + keen::DsArray sleeves; // Offset: 472 + keen::DsArray blendShapes; // Offset: 512 + keen::uint32 jointCount; // Offset: 552 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 556 + keen::bool hasCardClusterLod; // Offset: 560 + keen::ds::RenderModelSdfData sdf; // Offset: 568 + keen::ds::SkinnedTreeModelData skinnedTree; // Offset: 608 +}; + +struct RenderClothVertexSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothFabricResource { + keen::uint32 numParticles; // Offset: 0 + keen::DsArray phaseIndices; // Offset: 8 + keen::DsArray sets; // Offset: 48 + keen::DsArray restValues; // Offset: 88 + keen::DsArray stiffnessValues; // Offset: 128 + keen::DsArray indices; // Offset: 168 + keen::DsArray anchors; // Offset: 208 + keen::DsArray tetherLengths; // Offset: 248 + keen::DsArray triangles; // Offset: 288 +}; + +struct RenderClothMeshResource { + keen::ds::RenderClothFabricResource fabric; // Offset: 0 + keen::DsArray simulationPositions; // Offset: 328 + keen::DsArray simulationInvMasses; // Offset: 368 + keen::DsArray simulationStiffnesses; // Offset: 408 + keen::DsArray simulationVertexWeights; // Offset: 448 + keen::DsArray simulationTriangles; // Offset: 488 + keen::DsArray simulationBlendshapeDeltas; // Offset: 528 + keen::DsArray simulationSkinningData; // Offset: 568 + keen::DsArray skinnedVertexIndices; // Offset: 608 + keen::DsArray renderPositions; // Offset: 648 + keen::DsArray renderUvs; // Offset: 688 + keen::DsArray renderTriangles; // Offset: 728 + keen::DsArray renderSimulationVertexIndices; // Offset: 768 +}; + +struct RenderClothMesh { + keen::ContentHash data; // Offset: 0 + keen::float32 gravity; // Offset: 16 + keen::float32 windStrength; // Offset: 20 + keen::float32 dragCoefficient; // Offset: 24 + keen::float32 liftCoefficient; // Offset: 28 + keen::float32 damping; // Offset: 32 + keen::float32 linearInertia; // Offset: 36 + keen::float32 angularInertia; // Offset: 40 + keen::float32 centrifugalInertia; // Offset: 44 + keen::float32 tetherStiffness; // Offset: 48 + keen::float32 phasesStiffness; // Offset: 52 + keen::float32 phasesCompressionLimit; // Offset: 56 + keen::float32 phasesStretchLimit; // Offset: 60 + keen::float32 motionConstraintsStiffness; // Offset: 64 + keen::float32 collisionFriction; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 76 + keen::float32 motionConstraintsMaxRadius; // Offset: 80 +}; + +struct RenderClothColliderSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothColliderSphere { + keen::float3 center; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::ds::RenderClothColliderSkinningData skinningData; // Offset: 16 +}; + +struct RenderClothColliderCapsule { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::ds::RenderClothColliderSkinningData skinningData; // Offset: 32 +}; + +struct RenderModelColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::DsArray spheres; // Offset: 8 + keen::DsArray capsules; // Offset: 48 +}; + +struct RenderModelColliderInstanceData { + keen::DsArray sphereIndices; // Offset: 0 + keen::DsArray capsuleIndices; // Offset: 40 +}; + +struct RenderModelClothData { + keen::bool hasSkinning; // Offset: 0 + keen::DsArray meshes; // Offset: 8 +}; + +struct RenderClothColliderResource { + keen::bool hasSkinning; // Offset: 0 + keen::uint32 maxJointIndex; // Offset: 4 + keen::DsArray spheres; // Offset: 8 + keen::DsArray capsules; // Offset: 48 +}; + +struct RenderModelChainConfig { + keen::bool propagateRotation; // Offset: 0 + keen::float32 gravity; // Offset: 4 + keen::float32 mass; // Offset: 8 + keen::float32 dragCoefficient; // Offset: 12 + keen::float32 liftCoefficient; // Offset: 16 + keen::float32 stiffnessFrequencey; // Offset: 20 + keen::float32 damping; // Offset: 24 + keen::float32 motionConstraintRadius; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 phasesStiffness; // Offset: 44 + keen::float32 phasesStiffnessMultiplier; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 collisionFriction; // Offset: 60 +}; + +struct RenderModelChain { + keen::Guid guid; // Offset: 0 + keen::uint16 jointBeginIndex; // Offset: 16 + keen::uint16 jointEndIndex; // Offset: 18 + keen::uint16 constraintBeginIndex; // Offset: 20 + keen::uint16 constraintEndIndex; // Offset: 22 + keen::uint8 configIndex; // Offset: 24 + keen::uint8 colliderIndex; // Offset: 25 +}; + +struct RenderModelChainData { + keen::DsArray chains; // Offset: 0 + keen::DsArray configs; // Offset: 40 + keen::DsArray chainColliders; // Offset: 80 + keen::DsArray anchorHierarchyJoints; // Offset: 120 + keen::DsArray anchorDefaultPose; // Offset: 160 + keen::DsArray anchorRestPosition; // Offset: 200 + keen::DsArray joints; // Offset: 240 + keen::DsArray modelMatrices; // Offset: 280 + keen::DsArray skinToJointMatrix; // Offset: 320 + keen::DsArray restPosition; // Offset: 360 + keen::DsArray constraintJoints; // Offset: 400 + keen::DsArray constraints; // Offset: 440 +}; + +struct RenderModelMaterialMeshData { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::ds::RenderEffectId renderEffectId; // Offset: 32 + keen::uint32 vertexCount; // Offset: 36 + keen::uint32 indexCount; // Offset: 40 + keen::ContentHash vertexData; // Offset: 44 + keen::ContentHash indexData; // Offset: 60 +}; + +struct RenderModelLodMeshData { + keen::DsArray meshes; // Offset: 0 +}; + +struct RenderModelMeshData { + keen::DsArray lods; // Offset: 0 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 40 +}; + +struct RenderModelLodInfo { + keen::uint32 vertexCount; // Offset: 0 + keen::uint32 indexCount; // Offset: 4 +}; + +struct RenderModelInfo { + keen::DsArray lods; // Offset: 0 + keen::ObjectReference modelHierarchy; // Offset: 40 +}; + +typedef keen::AnalyticFogShapeType AnalyticFogShapeType; + +struct AnalyticFogShape { + keen::ds::AnalyticFogShapeType type; // Offset: 0 + keen::float3 halfSize; // Offset: 4 + keen::float32 falloff; // Offset: 16 +}; + +struct RenderFogInjection { + keen::ds::AnalyticFogShape shape; // Offset: 0 + keen::float32 absorption; // Offset: 20 + keen::Color scattering; // Offset: 24 + keen::Color emission; // Offset: 28 + keen::float32 density; // Offset: 32 +}; + +struct RenderFogDissolve { + keen::ds::AnalyticFogShape shape; // Offset: 0 + keen::float32 strength; // Offset: 20 +}; + +struct RenderModelDrawData2 { + keen::float4 boundingSphere; // Offset: 0 + keen::uint flags; // Offset: 16 + keen::uint sizeFeedbackIndex; // Offset: 20 + keen::uint firstMesh; // Offset: 24 + keen::uint lodCount; // Offset: 28 + keen::StaticArray lodMeshOffsets; // Offset: 32 + keen::StaticArray lodMeshCounts; // Offset: 64 + keen::StaticArray lodPixelSizes; // Offset: 96 +}; + +struct RenderMeshDrawData2 { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint pipelineBits; // Offset: 28 + keen::uint indexOffset; // Offset: 32 + keen::uint indexCount; // Offset: 36 + keen::int vertexOffset; // Offset: 40 + keen::uint modelMaterialData; // Offset: 44 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 48 + keen::uint blendShapeVertexOffset; // Offset: 52 + keen::uint blendShapeMask; // Offset: 56 + keen::uint vertexCount; // Offset: 60 +}; + +struct RenderInstanceData { + keen::ds::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 32 + keen::uint32 tintColor; // Offset: 80 + keen::ds::BindlessTexture2D_float4 tintGradientMap; // Offset: 84 + keen::uint32 highlightColorPaletteIndexTransparency; // Offset: 88 + keen::uint32 flagsAndEmissiveFactor; // Offset: 92 + keen::float4 dissolveParameters; // Offset: 96 + keen::float32 dissolveEdgeBrightness; // Offset: 112 + keen::float32 alphaClip; // Offset: 116 + keen::uint32 activeBlendShapeMask; // Offset: 120 + keen::uint32 blendShapeWeights; // Offset: 124 + keen::StaticArray clothMeshDataOffsets; // Offset: 128 + keen::uint32 albedoTintColorIndices; // Offset: 144 + keen::uint32 skinMatrixOffset; // Offset: 148 + keen::uint32 decalLayerMask; // Offset: 152 + keen::uint32 dynamicWetnessOffset; // Offset: 156 + keen::uint32 modelIndex; // Offset: 160 + keen::uint32 groupMask; // Offset: 164 +}; + +struct DetailScatteringInstanceData { + keen::uint3 packedWorldPosition; // Offset: 0 + keen::uint scaleAndFadeout; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct HighlightColorPaletteSettings { + keen::float highlightAmount; // Offset: 0 + keen::float highlightIntensity; // Offset: 4 + keen::Color invalidHighlightColor; // Offset: 8 + keen::Color validHighlightColor; // Offset: 12 + keen::Color mutedHighlightColor; // Offset: 16 + keen::Color group1HighlightColor; // Offset: 20 + keen::Color group2HighlightColor; // Offset: 24 + keen::Color group3HighlightColor; // Offset: 28 + keen::Color group4HighlightColor; // Offset: 32 +}; + +struct WeatherSurfaceMaterialSettings { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float snowVertexNormalPower; // Offset: 8 + keen::float snowVertexNormalCutoff; // Offset: 12 + keen::float frostUVScale; // Offset: 16 + keen::float frostScale; // Offset: 20 + keen::float frostRoughness; // Offset: 24 + keen::float frostPorosityScale; // Offset: 28 + keen::Color frostAlbedo; // Offset: 32 + keen::Color frostPuddleAlbedo; // Offset: 36 +}; + +struct RenderSystemResource { + keen::ds::SpecularIblLutResource specularIblLut; // Offset: 0 + keen::ObjectReference blueNoiseMap; // Offset: 20 + keen::ds::RenderTexture blueNoiseRenderImage; // Offset: 40 + keen::ObjectReference globalSlopeDefinition; // Offset: 112 + keen::ds::HighlightColorPaletteSettings highlightColorPalette; // Offset: 128 + keen::ds::WeatherSurfaceMaterialSettings weatherSurfaceMaterialSettings; // Offset: 164 + keen::bool verifyDecoObjectMeshCountLimit; // Offset: 204 + keen::bool verifyDetailScatteringMeshCountLimit; // Offset: 205 + keen::ObjectReference atmosphere; // Offset: 208 + keen::ObjectReference zoneVisualizationSettings; // Offset: 224 + keen::ObjectReference frostBlendMask; // Offset: 240 + keen::ObjectReference snowRoughness; // Offset: 256 + keen::ObjectReference snowAlbedo; // Offset: 272 + keen::ObjectReference snowNormal; // Offset: 288 + keen::ds::RenderTexture frostBlendMaskRenderImage; // Offset: 304 + keen::ds::RenderTexture snowRoughnessRenderImage; // Offset: 376 + keen::ds::RenderTexture snowAlbedoRenderImage; // Offset: 448 + keen::ds::RenderTexture snowNormalRenderImage; // Offset: 520 +}; + +struct RenderModelChunkInstance { + keen::float3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::Quaternion orientation; // Offset: 16 + keen::uint16 modelIndex; // Offset: 32 + keen::bool canBeCulled; // Offset: 34 +}; + +struct RenderModelChunkModelData { + keen::WorldPosition origin; // Offset: 0 + keen::float3 extents; // Offset: 24 + keen::DsArray instances; // Offset: 40 + keen::DsArray entityIndexMap; // Offset: 80 + keen::DsArray modelGuids; // Offset: 120 +}; + +struct RenderModelChunkModelResource { + keen::ContentHash modelData; // Offset: 0 + keen::HashKey32 modelDataTypeSignatureHash; // Offset: 16 +}; + +struct RenderModelChunkGridResource { + keen::uint2 chunkCount; // Offset: 0 +}; + +struct GBufferTemporalFilterConstants { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float temporalWeight; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 96 +}; + +struct TransparentMergeStartConstants { + keen::uint instanceCounterByteOffset; // Offset: 0 + keen::uint maxInstanceCount; // Offset: 4 +}; + +struct TransparentMergePrepareConstants { + keen::uint maxTriangleCount; // Offset: 0 +}; + +struct VoxelChunklet { + keen::float4 sphere; // Offset: 0 + keen::float4 normal; // Offset: 16 +}; + +struct GiVoxelMaterial { + keen::float3 emissive; // Offset: 0 + keen::float3 albedo; // Offset: 12 + keen::float roughness; // Offset: 24 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct GiVoxelBuildingMaterial { + keen::ds::GiVoxelMaterial top; // Offset: 0 + keen::ds::GiVoxelMaterial side; // Offset: 36 + keen::ds::GiVoxelMaterial bottom; // Offset: 72 +}; + +struct GiVoxelBuildingMaterialResource { + keen::DsArray materials; // Offset: 0 +}; + +struct BakeWorldTriangleMaterialDataVertexShaderParameters { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 vertexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 +}; + +struct BakeWorldTriangleMaterialDataTriangleShaderParameters { + keen::uint32 triangleCount; // Offset: 0 + keen::uint32 vertexOffset; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 + keen::uint32 bakedTriangleMaterialDataOffset; // Offset: 32 + keen::uint32 feedbackDataOffset; // Offset: 36 + keen::uint4 debug; // Offset: 48 +}; + +struct PatchMeshVerticesParameters { + keen::float3 positionOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 12 + keen::float3 positionScale; // Offset: 16 + keen::uint vertexStride; // Offset: 28 + keen::uint vertexOffset; // Offset: 32 +}; + +struct RenderBlendShapeSlot { + keen::ObjectReference id; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +typedef keen::DetailScatteringPass DetailScatteringPass; + +typedef keen::DetailScatteringError DetailScatteringError; + +typedef keen::DetailScatteringDebugMode DetailScatteringDebugMode; + +struct ScatterModelData { + keen::ds::GpuModel model; // Offset: 0 +}; + +struct ScatteredObjectData { + keen::uint modelIndexAndLodIndex; // Offset: 0 + keen::float fadeout; // Offset: 4 +}; + +struct ScatterTriangleCullingShaderParameters { + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint triangleBinSize; // Offset: 64 + keen::ds::GpuCullingFrustum frustum; // Offset: 80 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::uint chunkletBinSize; // Offset: 244 + keen::float boundingSphereBias; // Offset: 248 + keen::float maxScatterDistance; // Offset: 252 +}; + +struct ScatterTriangleCullingPushConstants { + keen::uint chunkIndex; // Offset: 0 +}; + +struct ScatterChunkletCullingShaderParameters { + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint chunkletBinSize; // Offset: 64 + keen::ds::GpuCullingFrustum frustum; // Offset: 80 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::float boundingSphereBias; // Offset: 244 + keen::float maxScatterDistance; // Offset: 248 +}; + +struct ScatterChunkletCullingPushConstants { + keen::uint jobCount; // Offset: 0 +}; + +struct ScatterObjectPrepareShaderParameters { + keen::uint targetGroupSize; // Offset: 0 +}; + +struct DetailScatteringShaderData { + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::uint scatteredObjectCounterOffset; // Offset: 16 + keen::uint scatteredObjectCapacity; // Offset: 20 + keen::uint scatteredCandidateCounterOffset; // Offset: 24 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::GraphicsMatrix44 cameraCenteredViewProjection; // Offset: 80 + keen::float4 frustumPlane0; // Offset: 144 + keen::float4 frustumPlane1; // Offset: 160 + keen::float4 frustumPlane2; // Offset: 176 + keen::float4 frustumPlane3; // Offset: 192 + keen::float4 frustumPlane4; // Offset: 208 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::ds::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint dynamicHeightmapValid; // Offset: 272 + keen::uint debugMode; // Offset: 276 + keen::uint debugValue; // Offset: 280 + keen::float densityProbability; // Offset: 284 + keen::float modelSizeFeedbackPixelSize; // Offset: 288 + keen::float distanceCullingThreshold; // Offset: 292 + keen::float sizeCullingPixelSize; // Offset: 296 + keen::uint permutationBucketCount; // Offset: 300 + keen::float maxScatterDistance; // Offset: 304 + keen::float invMaxDistanceFadeLength; // Offset: 308 + keen::float displacementFadeoutStart; // Offset: 312 + keen::float displacementFadeoutEnd; // Offset: 316 + keen::float displacementStrength; // Offset: 320 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 336 + keen::uint occlusionCullingEnabled; // Offset: 400 + keen::uint triangleBinSize; // Offset: 404 +}; + +struct DetailScatteringChunkShaderData { + keen::float4 translationAndScale; // Offset: 0 + keen::uint indexOffset; // Offset: 16 + keen::uint vertexOffset; // Offset: 20 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 24 + keen::uint triangleCount; // Offset: 28 + keen::uint chunkletOffset; // Offset: 32 + keen::uint chunkletCount; // Offset: 36 +}; + +struct ScatterInstanceOffsetShaderData { + keen::uint scatterModelCount; // Offset: 0 + keen::uint instanceCounterOffset; // Offset: 4 + keen::ds::DetailScatteringDebugMode debugMode; // Offset: 8 + keen::uint debugValue; // Offset: 12 + keen::uint permutationBucketCount; // Offset: 16 +}; + +struct ScatterInstancesShaderData { + keen::uint scatteredObjectCounterOffset; // Offset: 0 + keen::ds::DetailScatteringDebugMode debugMode; // Offset: 4 + keen::uint debugValue; // Offset: 8 + keen::uint permutationBucketCount; // Offset: 12 +}; + +struct BiomeMap { + keen::ds::Biome baseBiome; // Offset: 0 +}; + +struct BiomeMapLayer { + keen::ds::Biome biome; // Offset: 0 +}; + +struct BiomeMapInfo { + keen::uint2 size; // Offset: 0 + keen::StaticArray data; // Offset: 8 +}; + +struct SdfCascadeData { + keen::GraphicsMatrix44 ndcToSdfMatrix; // Offset: 0 + keen::int3 origin; // Offset: 64 +}; + +struct SdfShaderData { + keen::uint32 sdfCascadeCount; // Offset: 0 + keen::uint32 sdfInstanceCount; // Offset: 4 + keen::uint32 sdfBaseDescriptorIndex; // Offset: 8 + keen::float32 sdfInvGridSize; // Offset: 12 +}; + +struct SdfDebugShaderParameters { + keen::ds::SdfShaderData sdf; // Offset: 0 + keen::float3 cameraPosition; // Offset: 16 + keen::uint32 visibleGroupMask; // Offset: 28 +}; + +struct SdfCaptureDebugShaderParameters { + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 +}; + +struct SdfVoxelRegion { + keen::int3 origin; // Offset: 0 + keen::uint32 bufferOffset; // Offset: 12 + keen::uint3 size; // Offset: 16 +}; + +struct SdfUpdateShaderParameters { + keen::ds::SdfVoxelRegion newVoxelRegion0; // Offset: 0 + keen::ds::SdfVoxelRegion newVoxelRegion1; // Offset: 32 + keen::ds::SdfVoxelRegion newVoxelRegion2; // Offset: 64 + keen::ds::SdfVoxelRegion dirtyVoxelRegion; // Offset: 96 + keen::int3 origin; // Offset: 128 + keen::uint32 size; // Offset: 140 +}; + +struct SdfBakingShaderParameters { + keen::int3 voxelOrigin; // Offset: 0 + keen::uint32 volumeSize; // Offset: 12 + keen::float32 voxelSizeInMeters; // Offset: 16 + keen::uint3 targetOffset; // Offset: 20 +}; + +struct SdfFloodShaderParameters { + keen::sint32 stepSize; // Offset: 0 +}; + +struct SdfCascadeUpdateShaderParameters { + keen::uint32 cascadeIndex; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 +}; + +struct WorldChunkVoxelMaterialCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 + keen::uint32 chunkIndex; // Offset: 8 + keen::uint2 chunkData; // Offset: 16 +}; + +struct SdfModelShaderData { + keen::uint32 partCount; // Offset: 0 + keen::uint32 partOffset; // Offset: 4 +}; + +struct SdfModelPartShaderData { + keen::uint32 descriptorIndex; // Offset: 0 +}; + +struct SdfInstanceShaderData { + keen::uint32 modelIndex; // Offset: 0 + keen::uint32 partCount; // Offset: 4 + keen::uint32 partOffset; // Offset: 8 +}; + +struct SdfInstancePartShaderData { + keen::GraphicsMatrix43 inverseTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::float3 aabbMax; // Offset: 108 +}; + +struct SdfImageMaterialShaderData { + keen::float3 albedo; // Offset: 0 + keen::float3 emissive; // Offset: 12 +}; + +struct SdfSystemUpdateShaderParameters { + keen::uint newModelCount; // Offset: 0 + keen::uint newModelPartCount; // Offset: 4 + keen::uint newMaterialCount; // Offset: 8 +}; + +struct SdfSceneUpdateShaderParameters { + keen::uint newInstanceCount; // Offset: 0 + keen::uint newInstancePartCount; // Offset: 4 +}; + +struct SdfSystemShaderData { + keen::uint activeInstanceCount; // Offset: 0 + keen::uint activeInstancePartCount; // Offset: 4 +}; + +struct SdfAoTraceShaderParameters { + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint32 frameId; // Offset: 64 + keen::float radius; // Offset: 68 +}; + +struct SdfAoFilterShaderParameters { + keen::float2 inverseTargetSize; // Offset: 0 + keen::uint32 frameId; // Offset: 8 + keen::uint32 isHistoryValid; // Offset: 12 +}; + +typedef keen::SdfBvhBuildMethod SdfBvhBuildMethod; + +struct SdfBvhCommonInstanceData { + keen::GraphicsMatrix43 worldToUvwMatrix; // Offset: 0 + keen::GraphicsMatrix43 uvwToWorldMatrix; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::uint descriptorIndex; // Offset: 108 + keen::float3 aabbMax; // Offset: 112 +}; + +struct SdfBvhNodeShaderData { + keen::float3 aabbMin; // Offset: 0 + keen::uint offset; // Offset: 12 + keen::float3 aabbMax; // Offset: 16 + keen::uint count; // Offset: 28 +}; + +struct SdfBvhDebugVisualizeIntersectionShaderParameters { + keen::float3 sunDirection; // Offset: 0 + keen::float3 cameraOrigin; // Offset: 16 + keen::float3 farPlaneOrigin; // Offset: 32 + keen::float3 farPlaneX; // Offset: 48 + keen::float3 farPlaneY; // Offset: 64 + keen::float2 inverseTargetSize; // Offset: 80 +}; + +struct SdfBvhDebugTraversalShaderParameters { + keen::float3 rayOrigin; // Offset: 0 + keen::float3 rayDirection; // Offset: 16 + keen::float rayLength; // Offset: 28 +}; + +typedef keen::SdfBvhDebugStepType SdfBvhDebugStepType; + +struct SdfBvhDebugStepLeafShaderData { + keen::ds::SdfBvhCommonInstanceData instance; // Offset: 0 + keen::float boxHitDistance; // Offset: 124 + keen::float sdfHitDistance; // Offset: 128 + keen::float hitDistance; // Offset: 132 +}; + +struct SdfBvhDebugStepInnerShaderData { + keen::float3 aabbMin0; // Offset: 0 + keen::float3 aabbMax0; // Offset: 12 + keen::float3 aabbMin1; // Offset: 24 + keen::float3 aabbMax1; // Offset: 36 + keen::float hitDistance0; // Offset: 48 + keen::float hitDistance1; // Offset: 52 +}; + +struct SdfBvhDebugStepShaderData { + keen::ds::SdfBvhDebugStepType type; // Offset: 0 + keen::ds::SdfBvhDebugStepLeafShaderData leaf; // Offset: 4 + keen::ds::SdfBvhDebugStepInnerShaderData inner; // Offset: 140 + keen::float closestHit; // Offset: 196 +}; + +struct RenderSdfShadowShaderParameters { + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::float3 sunDirection; // Offset: 64 + keen::float sunConeAngle; // Offset: 76 + keen::uint2 targetSize; // Offset: 80 + keen::uint frameId; // Offset: 88 + keen::float rayBias; // Offset: 92 + keen::uint32 isSdfCacheValid; // Offset: 96 + keen::uint32 pixelSize; // Offset: 100 +}; + +typedef keen::RasterShadowQuality RasterShadowQuality; + +struct RenderShadowAtlasMaskShaderParameters { + keen::ds::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 + keen::float texelSize; // Offset: 1160 + keen::float3 toLightDirection; // Offset: 1168 +}; + +struct RenderShadowAtlasDebugShaderParameters { + keen::ds::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 +}; + +struct VoxelWorldShadowDebugShaderParameters { + keen::ds::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 0 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 160 + keen::uint2 targetSize; // Offset: 224 +}; + +struct PrimeShadowMapConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 64 + keen::float3 cameraWorldPosition; // Offset: 128 + keen::uint32 depthPyramidMip; // Offset: 140 + keen::float2 depthPyramidAspectRatio; // Offset: 144 + keen::uint32 tileCountX; // Offset: 152 + keen::uint32 tileCountY; // Offset: 156 + keen::uint32 useCameraCenteredPosition; // Offset: 160 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 176 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 192 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 256 +}; + +typedef keen::RenderShadowMaskQuality RenderShadowMaskQuality; + +struct RenderShadowMaskFillShaderParameters { + keen::ds::SdfShaderData sdf; // Offset: 0 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 16 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 416 + keen::float2 linearDepthParameters; // Offset: 480 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 496 + keen::float2 tileRatio; // Offset: 560 + keen::uint32 pixelSize; // Offset: 568 + keen::uint32 frameId; // Offset: 572 + keen::float3 sunDirection; // Offset: 576 + keen::float32 sunConeAngle; // Offset: 588 + keen::float32 rayBias; // Offset: 592 + keen::uint32 visibleGroupMask; // Offset: 596 + keen::uint32 writeDebugOutput; // Offset: 600 + keen::uint32 enablePixelSdfCache; // Offset: 604 + keen::uint32 enableDebugTarget; // Offset: 608 +}; + +struct RenderShadowMaskFilterShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float32 historyWeight; // Offset: 8 +}; + +struct RenderShadowMaskUpsampleShaderParameters { + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::uint2 targetSize; // Offset: 1088 + keen::float2 linearDepthParameters; // Offset: 1096 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 1104 + keen::uint32 pixelSize; // Offset: 1168 +}; + +struct RenderContactShadowShaderParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 unjitteredProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix43 viewMatrix; // Offset: 128 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 176 + keen::float rcpNearPlaneDistance; // Offset: 240 + keen::float3 sunDirection; // Offset: 244 + keen::uint2 targetSize; // Offset: 256 + keen::uint32 frameId; // Offset: 264 + keen::uint32 discardContents; // Offset: 268 + keen::uint32 stepCount; // Offset: 272 + keen::float32 rayLength; // Offset: 276 + keen::float32 depthThickness; // Offset: 280 + keen::float32 hardness; // Offset: 284 + keen::uint32 combineWithDenoisedShadows; // Offset: 288 + keen::uint32 enableJitter; // Offset: 292 +}; + +struct RenderContactShadow2ShaderParameters { + keen::float4 lightCoordinate; // Offset: 0 + keen::float2 invDepthTextureSize; // Offset: 16 + keen::int2 waveOffset; // Offset: 24 + keen::float subSurfaceShadowStrength; // Offset: 32 +}; + +struct UnpackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct PackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct SharpnessParameters { + keen::float32 kDetectRatio; // Offset: 0 + keen::float32 kDetectThres; // Offset: 4 + keen::float32 kMinContrastRatio; // Offset: 8 + keen::float32 kRatioNorm; // Offset: 12 + keen::float32 kContrastBoost; // Offset: 16 + keen::float32 kEps; // Offset: 20 + keen::float32 kSharpStartY; // Offset: 24 + keen::float32 kSharpScaleY; // Offset: 28 + keen::float32 kSharpStrengthMin; // Offset: 32 + keen::float32 kSharpStrengthScale; // Offset: 36 + keen::float32 kSharpLimitMin; // Offset: 40 + keen::float32 kSharpLimitScale; // Offset: 44 + keen::float32 kScaleX; // Offset: 48 + keen::float32 kScaleY; // Offset: 52 + keen::float32 kDstNormX; // Offset: 56 + keen::float32 kDstNormY; // Offset: 60 + keen::float32 kSrcNormX; // Offset: 64 + keen::float32 kSrcNormY; // Offset: 68 + keen::uint32 kInputViewportOriginX; // Offset: 72 + keen::uint32 kInputViewportOriginY; // Offset: 76 + keen::uint32 kInputViewportWidth; // Offset: 80 + keen::uint32 kInputViewportHeight; // Offset: 84 + keen::uint32 kOutputViewportOriginX; // Offset: 88 + keen::uint32 kOutputViewportOriginY; // Offset: 92 + keen::uint32 kOutputViewportWidth; // Offset: 96 + keen::uint32 kOutputViewportHeight; // Offset: 100 +}; + +struct SimpleMaterial { + keen::bool enableTextureStreaming; // Offset: 0 + keen::bool receiveShadows; // Offset: 1 + keen::ObjectReference colorMap; // Offset: 4 + keen::ObjectReference normalMap; // Offset: 20 + keen::HdrColorRgb tintColor; // Offset: 36 +}; + +struct SimpleRfxRenderMaterial { + keen::ds::StreamedTexture2D_float4 colorMap; // Offset: 0 + keen::uint32 receiveShadows; // Offset: 4 + keen::float3 tintColor; // Offset: 8 +}; + +struct SimpleVoxelPbrMaterial { + keen::float3 albedo; // Offset: 0 + keen::float roughness; // Offset: 12 + keen::float3 emissive; // Offset: 16 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct SimpleWorldMaterialShaderLayerWeights { + keen::float sideWeight; // Offset: 0 + keen::float bottomWeight; // Offset: 4 + keen::float topWeight; // Offset: 8 + keen::float flatnessWeight; // Offset: 12 + keen::float map0Weight; // Offset: 16 + keen::float map1Weight; // Offset: 20 + keen::float2 flatness; // Offset: 24 + keen::float4 sideParameters; // Offset: 32 +}; + +struct SimpleWorldMaterialBlendMap { + keen::ds::StreamedTexture2D_float map; // Offset: 0 + keen::float tilingFactor; // Offset: 4 +}; + +struct SimpleVoxelLayerInfo { + keen::uint data; // Offset: 0 +}; + +struct SimpleWorldMaterialResource { + keen::ds::RenderParameterBlock layerInfosParameterBlock; // Offset: 0 + keen::ds::RenderParameterBlock layerWeightsParameterBlock; // Offset: 184 + keen::ds::RenderParameterBlock layerPbrMaterialsParameterBlock; // Offset: 368 + keen::ds::RenderParameterBlock blendMapsParameterBlock; // Offset: 552 +}; + +struct SimpleBuildingMaterialResource { +}; + +struct SkinnedTreeInstanceData { + keen::uint skinMatrixOffset; // Offset: 0 +}; + +struct SkinnedTreeModelSpringParameters { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct SkinnedTreeModelParameters { + keen::ds::SkinnedTreeModelSpringParameters trunk; // Offset: 0 + keen::ds::SkinnedTreeModelSpringParameters branch; // Offset: 16 +}; + +struct SkinnedTreeModelSpringData { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct CpuSkinVector3 { + keen::ds::vf32_data x; // Offset: 0 + keen::ds::vf32_data y; // Offset: 16 + keen::ds::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix33 { + keen::ds::vf32_data x; // Offset: 0 + keen::ds::vf32_data y; // Offset: 16 + keen::ds::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix43 { + keen::ds::CpuSkinMatrix33 rot; // Offset: 0 + keen::ds::vf32_data pos; // Offset: 48 +}; + +struct SkyTextureMaterial { + keen::ObjectReference texture; // Offset: 0 + keen::ds::RenderSamplerAddressMode textureAddressMode; // Offset: 16 +}; + +struct SkyTextureRfxRenderMaterial { + keen::ds::BindlessTexture2D_float4 texture; // Offset: 0 + keen::ds::BindlessSampler sampler; // Offset: 4 +}; + +struct SnowDisplacementUpdateParameters { + keen::uint worldPixelSize; // Offset: 0 + keen::uint worldTextureSize; // Offset: 4 + keen::uint2 worldTileTopLeft; // Offset: 8 + keen::uint2 worldPositionTopLeft; // Offset: 16 + keen::uint2 oldWorldTileTopLeft; // Offset: 24 + keen::uint2 oldWorldPositionTopLeft; // Offset: 32 + keen::uint worldHeightScale; // Offset: 40 + keen::float rcpHeightScale; // Offset: 44 + keen::uint fadeOutHeightFill; // Offset: 48 + keen::uint heightMin; // Offset: 52 + keen::uint heightMax; // Offset: 56 + keen::uint oldHeightMin; // Offset: 60 + keen::uint bodyCounterOffset; // Offset: 64 +}; + +struct SnowDisplacementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float rcpMinSoftness; // Offset: 12 + keen::float rcpMaxSoftness; // Offset: 16 + keen::float heightNoiseScale; // Offset: 20 +}; + +typedef keen::SsaoQuality SsaoQuality; + +struct SsaoData { + keen::ds::ViewSpacePositionReconstructionData viewspaceReconstructionData; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 64 + keen::uint2 _padding0; // Offset: 72 + keen::float32 ssaoIntensity; // Offset: 80 + keen::float32 ssaoBias; // Offset: 84 + keen::float32 ssaoScale; // Offset: 88 + keen::float32 ssaoSampleRadius; // Offset: 92 +}; + +struct StochasticScreenSpaceReflectionsConstantData { + keen::GraphicsMatrix44 g_inv_view_proj; // Offset: 0 + keen::GraphicsMatrix44 g_proj; // Offset: 64 + keen::GraphicsMatrix44 g_inv_proj; // Offset: 128 + keen::GraphicsMatrix43 g_view; // Offset: 192 + keen::GraphicsMatrix43 g_inv_view; // Offset: 240 + keen::GraphicsMatrix44 g_prev_view_proj; // Offset: 288 + keen::float3 g_camera_world_position; // Offset: 352 + keen::uint2 g_buffer_dimensions; // Offset: 368 + keen::float2 g_inv_buffer_dimensions; // Offset: 376 + keen::uint2 g_render_dimensions; // Offset: 384 + keen::float2 g_inv_render_dimensions; // Offset: 392 + keen::float g_temporal_stability_factor; // Offset: 400 + keen::float g_depth_buffer_thickness; // Offset: 404 + keen::float g_depth_buffer_thickness_far; // Offset: 408 + keen::float g_roughness_threshold; // Offset: 412 + keen::float g_temporal_variance_threshold; // Offset: 416 + keen::float g_sdf_ray_max_distance; // Offset: 420 + keen::float g_sdf_ray_start_offset; // Offset: 424 + keen::float g_sdf_hit_offset; // Offset: 428 + keen::uint g_frame_index; // Offset: 432 + keen::uint g_max_traversal_intersections; // Offset: 436 + keen::uint g_min_traversal_occupancy; // Offset: 440 + keen::uint g_most_detailed_mip; // Offset: 444 + keen::uint g_samples_per_quad; // Offset: 448 + keen::uint g_temporal_variance_guided_tracing_enabled; // Offset: 452 + keen::uint g_num_mips; // Offset: 456 + keen::uint g_resolution_downscale; // Offset: 460 + keen::float g_reflect_background; // Offset: 464 + keen::uint g_debug_reflection_rays; // Offset: 468 + keen::float g_edge_bleeding_max_distance; // Offset: 472 + keen::float g_edge_bleeding_offset; // Offset: 476 + keen::uint g_gi_enabled; // Offset: 480 + keen::float g_exposure; // Offset: 484 + keen::uint g_ground_truth_specular; // Offset: 488 +}; + +struct StochasticScreenSpaceReflectionsUpscaleData { + keen::uint2 outputSize; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 8 +}; + +struct DebugRootConstantData { + keen::uint debug_mode; // Offset: 0 +}; + +struct ApplyReflectionsConstants { + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 0 + keen::uint2 outputSize; // Offset: 64 + keen::float2 invOutputSize; // Offset: 72 + keen::float specularMax; // Offset: 80 + keen::uint enableHorizonBasedOcclusion; // Offset: 84 + keen::float giLightFactor; // Offset: 88 + keen::uint flags; // Offset: 92 + keen::float specularReflectionsFactor; // Offset: 96 + keen::uint groundTruthSpecular; // Offset: 100 + keen::uint writeToSceneBrightness; // Offset: 104 +}; + +struct SurfacePickerShaderParameters { + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::float3 focusPosition; // Offset: 496 + keen::uint chunkCount; // Offset: 508 + keen::uint seed; // Offset: 512 + keen::float pickingRange; // Offset: 516 + keen::uint debugDrawPicks; // Offset: 520 + keen::uint enableDisplacement; // Offset: 524 +}; + +struct SurfacePickerShaderData { + keen::StaticArray binSize; // Offset: 0 + keen::StaticArray binOffset; // Offset: 24 + keen::StaticArray binPickIndex; // Offset: 48 + keen::uint culledChunkCount; // Offset: 72 + keen::uint pointCount; // Offset: 76 +}; + +struct SurfacePickerPointShaderData { + keen::float3 position; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SurfacePickerBakedDisplacementShaderData { + keen::float displacement; // Offset: 0 + keen::float displacementTop; // Offset: 4 + keen::float displacementBottom; // Offset: 8 + keen::float displacementSide; // Offset: 12 +}; + +struct TerraformingCursorMaterial { + keen::ObjectReference noiseMap; // Offset: 0 + keen::float3 noiseUvScale; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::HdrColorRgb ringColor; // Offset: 32 + keen::HdrColorRgb fillColor; // Offset: 48 +}; + +struct TerraformingCursorRfxRenderMaterial { + keen::float3 noiseUvScale; // Offset: 0 + keen::ds::BindlessTexture3D_float noiseMap; // Offset: 12 + keen::float3 ringColor; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::float3 fillColor; // Offset: 32 +}; + +struct TextureInfo { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 +}; + +struct TextureSizeInfo { + keen::ds::TextureInfo info; // Offset: 0 + keen::DsArray sources; // Offset: 32 +}; + +struct TransparentMaterial { +}; + +typedef keen::TransparentInstanceFlag TransparentInstanceFlag; + +struct TransparentInstanceData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::ds::BindlessTexture2D_float4 image; // Offset: 20 + keen::ds::BindlessSampler imageSampler; // Offset: 24 + keen::ds::BindlessSampler uvDistortionMapSampler; // Offset: 28 + keen::float32 edgeFadeOutFactor; // Offset: 32 + keen::float3 position; // Offset: 36 + keen::float32 depthFadeDistance; // Offset: 48 + keen::float4 rotation; // Offset: 52 + keen::float3 scale; // Offset: 68 + keen::float3 color; // Offset: 80 + keen::float32 alpha; // Offset: 92 + keen::float2 uvOffset; // Offset: 96 + keen::float2 uvScale; // Offset: 104 + keen::float2 uvDistortionOffset; // Offset: 112 + keen::float2 uvDistortionScale; // Offset: 120 + keen::float32 uvDistortionStrength; // Offset: 128 + keen::ds::BindlessTexture2D_float4 uvDistortionMap; // Offset: 132 + keen::float32 alphaClipValue; // Offset: 136 + keen::float32 alphaClipHalfRange; // Offset: 140 + keen::uint32 flags; // Offset: 144 + keen::ds::BindlessTexture2D_float4 motionVectorImage; // Offset: 148 + keen::float32 motionVectorScale; // Offset: 152 + keen::float32 flipbookTime; // Offset: 156 + keen::uint32 encodedFlipbookSize; // Offset: 160 +}; + +struct TransparentRfxRenderMaterial { +}; + +typedef keen::BoolMask BoolMask; + +struct VfxSamplerParameters { + keen::ds::RenderSamplerAddressMode addressU; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressV; // Offset: 1 + keen::ds::RenderSamplerAddressMode addressW; // Offset: 2 +}; + +typedef keen::ShaderVariableComponentType ShaderVariableComponentType; + +struct ShaderVariable { + keen::ds::string name; // Offset: 0 + keen::ds::ShaderVariableComponentType componentType; // Offset: 40 + keen::uint8 componentCount; // Offset: 41 +}; + +typedef keen::VfxBufferMemberComponentType VfxBufferMemberComponentType; + +struct VfxBufferMember { + keen::ds::string name; // Offset: 0 + keen::uint32 componentCount; // Offset: 40 + keen::ds::VfxBufferMemberComponentType componentType; // Offset: 44 + keen::uint32 offsetInBytes; // Offset: 48 +}; + +struct VfxParticleStateBufferInfo { + keen::DsArray members; // Offset: 0 + keen::uint32 sizeInBytes; // Offset: 40 +}; + +typedef keen::VfxParameterType VfxParameterType; + +struct VfxMeshPatchPointData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::ContentHash vertexData; // Offset: 8 + keen::ContentHash indexData; // Offset: 24 + keen::float4 boundingSphere; // Offset: 40 +}; + +struct VfxModelPatchPointData { + keen::ObjectReference model; // Offset: 0 +}; + +struct VfxDecalPatchPointData { + keen::ObjectReference decal; // Offset: 0 +}; + +struct VfxImagePatchPointData { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::ds::VfxSamplerParameters sampler; // Offset: 6 + keen::uint8 levelCount; // Offset: 9 + keen::TextureType type; // Offset: 10 + keen::PixelFormat format; // Offset: 11 + keen::ContentHash content; // Offset: 12 + keen::ds::string debugName; // Offset: 32 +}; + +struct VfxEmitterPatchPointData { + keen::uint32 childIndex; // Offset: 0 +}; + +struct VfxCurvePatchPointData { + keen::ContentHash samples; // Offset: 0 + keen::float32 startTime; // Offset: 16 + keen::float32 totalTime; // Offset: 20 + keen::uint32 sampleCount; // Offset: 24 + keen::ds::string name; // Offset: 32 +}; + +typedef keen::VfxParticleParameterPatchPointType VfxParticleParameterPatchPointType; + +struct VfxParticleParameterPatchPoint { + keen::ds::VfxParticleParameterPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 dataIndex; // Offset: 12 +}; + +struct VfxParticleUniformData { + keen::ContentHash data; // Offset: 0 + keen::DsArray patchPoints; // Offset: 16 + keen::DsArray imageData; // Offset: 56 + keen::DsArray meshData; // Offset: 96 + keen::DsArray modelData; // Offset: 136 + keen::DsArray emitterData; // Offset: 176 + keen::DsArray curveData; // Offset: 216 + keen::DsArray decalData; // Offset: 256 +}; + +typedef keen::VfxParticleFeature VfxParticleFeature; + +typedef keen::VfxParticleFeatureMask VfxParticleFeatureMask; + +struct VfxParticleResource { + keen::ds::string name; // Offset: 0 + keen::uint32 parent; // Offset: 40 + keen::uint32 stateSize; // Offset: 44 + keen::uint32 maxCount; // Offset: 48 + keen::ContentHash code; // Offset: 52 + keen::ContentHash strippedCode; // Offset: 68 + keen::ds::VfxParticleUniformData uniformData; // Offset: 88 +}; + +struct VfxUserEffectParameterDescription { + keen::ds::string name; // Offset: 0 + keen::uint32 nameHash; // Offset: 40 + keen::uint32 offset; // Offset: 44 + keen::uint32 sizeInBytes; // Offset: 48 + keen::Guid inheritanceKey; // Offset: 52 +}; + +struct VfxResource { + keen::uint64 parameterHash; // Offset: 0 + keen::DsArray parameters; // Offset: 8 + keen::ds::VfxUserEffectParameterDataBlock defaultData; // Offset: 48 + keen::DsArray particles; // Offset: 112 + keen::DsArray stateInfos; // Offset: 152 + keen::float32 cullingDistanceMin; // Offset: 192 + keen::float32 cullingDistanceMax; // Offset: 196 + keen::uint32 killTimeInSeconds; // Offset: 200 + keen::ds::string debugName; // Offset: 208 +}; + +struct VfxNode { + keen::bool enabled; // Offset: 0 + keen::ObjectReference particle; // Offset: 4 + keen::uint32 maxCount; // Offset: 20 +}; + +struct VfxDefinition { + keen::float32 cullingDistanceMin; // Offset: 0 + keen::float32 cullingDistanceMax; // Offset: 4 + keen::uint32 killTimeInSeconds; // Offset: 8 +}; + +struct VfxParticleDefinition { +}; + +typedef keen::VfxParticleValueKind VfxParticleValueKind; + +struct VfxParameterDefinitionBase { + keen::ds::VfxParticleValueKind kind; // Offset: 0 + keen::ds::string expression; // Offset: 8 +}; + +struct VfxParameterDefinition_Float { + keen::float32 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Float2 { + keen::float2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Float3 { + keen::float3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Float4 { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int { + keen::sint32 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int2 { + keen::int2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int3 { + keen::int3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int4 { + keen::int4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt { + keen::uint32 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool { + keen::bool defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Color { + keen::Color defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Mesh { + keen::ObjectReference defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Model { + keen::ObjectReference defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Decal { + keen::ObjectReference defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Emitter { +}; + +struct VfxParameterDefinition_Image { + keen::ObjectReference defaultValue; // Offset: 48 + keen::ds::VfxSamplerParameters sampler; // Offset: 64 +}; + +struct VfxStateDefinitionBase { + keen::ds::VfxParticleValueKind kind; // Offset: 0 + keen::ds::string expression; // Offset: 8 +}; + +struct VfxStateDefinition_Float { + keen::float32 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Float2 { + keen::float2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Float3 { + keen::float3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Float4 { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int { + keen::sint32 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int2 { + keen::int2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int3 { + keen::int3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int4 { + keen::int4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt { + keen::uint32 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool { + keen::bool defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Color { + keen::Color defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxExpressionBase { +}; + +struct VfxExpressionValue_Float1 { + keen::float32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int1 { + keen::sint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt1 { + keen::uint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool { + keen::bool value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Color { + keen::Color value; // Offset: 0 +}; + +struct VfxExpressionValue_Quaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Particle { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Mesh { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Model { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Decal { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Image { + keen::ObjectReference value; // Offset: 0 +}; + +typedef keen::VfxExpressionType VfxExpressionType; + +struct VfxParameterExpression { + keen::ObjectReference parameter; // Offset: 0 + keen::ds::VfxExpressionType type; // Offset: 16 + keen::ds::string expression; // Offset: 24 + keen::DsVariant value; // Offset: 64 +}; + +struct VfxStateExpression { + keen::ObjectReference state; // Offset: 0 + keen::ds::VfxExpressionType type; // Offset: 16 + keen::ds::string expression; // Offset: 24 + keen::DsVariant value; // Offset: 64 +}; + +struct VfxEffectParameterBase { +}; + +struct VfxEffectParameterFloat { + keen::float32 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterBool { + keen::bool value; // Offset: 0 +}; + +struct VfxEffectParameterBool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxEffectParameterBool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxEffectParameterBool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxEffectParameterInt { + keen::sint32 value; // Offset: 0 +}; + +struct VfxEffectParameterInt2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxEffectParameterInt3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxEffectParameterInt4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxEffectParameterUint { + keen::uint32 value; // Offset: 0 +}; + +struct VfxEffectParameterUint2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxEffectParameterUint3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxEffectParameterUint4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxEffectParameterQuaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterColor { + keen::Color value; // Offset: 0 +}; + +struct VfxEffectParameterGroup { +}; + +struct VfxGlobalEffectParameterDirectory { +}; + +struct VfxGlobalEffectParameterInfo { + keen::Guid inheritanceKey; // Offset: 0 + keen::HashKey32 descriptionHash; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 20 +}; + +struct VfxGlobalEffectParameterRegistry { + keen::DsArray parameters; // Offset: 0 +}; + +struct VfxEffectParameterInfo { + keen::ds::VfxUserEffectParameterDescription description; // Offset: 0 + keen::DsVariant value; // Offset: 72 + keen::uint32 registerOffset; // Offset: 120 +}; + +struct VfxUserEffectParameterInfos { + keen::DsArray parameters; // Offset: 0 +}; + +struct VfxProfileEntry { + keen::Guid effectId; // Offset: 0 + keen::Time emitterGpuTime; // Offset: 16 + keen::Time particleGpuTime; // Offset: 24 + keen::uint32 instanceCount; // Offset: 32 + keen::uint32 chunkCount; // Offset: 36 + keen::uint32 dispatchCount; // Offset: 40 + keen::uint32 memoryUsage; // Offset: 44 +}; + +struct VfxProfileMessage { + keen::uint64 frameId; // Offset: 0 + keen::Time totalGpuTime; // Offset: 8 + keen::uint32 totalInstanceCount; // Offset: 16 + keen::uint32 totalMemoryUsage; // Offset: 20 + keen::uint32 totalDispatchCount; // Offset: 24 + keen::uint32 viewId; // Offset: 28 + keen::uint32 tickCount; // Offset: 32 + keen::DsArray entries; // Offset: 40 +}; + +struct vfx_converter.ParticleStateInfo { + keen::DsVariant definition; // Offset: 0 + keen::ds::string name; // Offset: 48 + keen::Guid id; // Offset: 88 + keen::float64 sortKey; // Offset: 104 +}; + +struct vfx_converter.ParticleParameterInfo { + keen::DsVariant definition; // Offset: 0 + keen::ds::string name; // Offset: 48 + keen::Guid id; // Offset: 88 + keen::float64 sortKey; // Offset: 104 + keen::DsArray spawnParameters; // Offset: 112 +}; + +struct vfx_converter.ParticleDefinitionInfo { + keen::DsArray states; // Offset: 0 + keen::DsArray parameters; // Offset: 40 + keen::bool isEmitter; // Offset: 80 +}; + +struct VfxConverterConfiguration { + keen::ds::VfxReference singleEffect; // Offset: 0 +}; + +struct VfxNodeInfo { + keen::Guid parentNodeId; // Offset: 0 + keen::Guid parentNodeDefinitionId; // Offset: 16 + keen::DsArray childNodeIds; // Offset: 32 + keen::bool isEnabled; // Offset: 72 +}; + +struct VfxBufferEntry { + keen::Guid id; // Offset: 0 + keen::ds::string name; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 56 + keen::uint32 registerOffset; // Offset: 60 + keen::uint32 sizeInRegisters; // Offset: 64 + keen::bool hasCurveExpression; // Offset: 68 + keen::ds::string hlslTypeName; // Offset: 72 + keen::ds::string componentTypeName; // Offset: 112 + keen::uint32 componentCount; // Offset: 152 +}; + +struct VfxBufferInfo { + keen::DsArray entries; // Offset: 0 + keen::uint32 sizeInRegisters; // Offset: 40 +}; + +struct VfxParticleDefinitionCurveExpression { + keen::Guid curveId; // Offset: 0 + keen::Guid referencedParameterId; // Offset: 16 +}; + +struct VfxParticleDefinitionCurveExpressions { + keen::DsArray curves; // Offset: 0 +}; + +struct VfxParameterTypeIndices { + keen::DsArray types; // Offset: 0 +}; + +struct VfxBaseEffectParameters { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::uint32 startTime; // Offset: 28 + keen::float3 scale; // Offset: 32 + keen::uint32 isActive; // Offset: 44 + keen::float cullingDistanceMin; // Offset: 48 + keen::float cullingDistanceMax; // Offset: 52 + keen::uint32 isHidden; // Offset: 56 + keen::uint32 age; // Offset: 60 +}; + +struct VfxCombinedEffectParameters { + keen::ds::VfxBaseEffectParameters base; // Offset: 0 + keen::ds::VfxUserEffectParameterDataBlock user; // Offset: 64 +}; + +struct VfxMeshInfo { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 + keen::uint32 packedPipelineIndices; // Offset: 40 +}; + +struct VfxModelInfo { + keen::float4 boundingSphere; // Offset: 0 + keen::uint32 modelSizeFeedbackIndex; // Offset: 16 + keen::uint32 firstMeshOffset; // Offset: 20 + keen::uint32 meshCount; // Offset: 24 +}; + +struct VfxModelInstanceTransform { + keen::float4 orientation; // Offset: 0 + keen::uint3 packedPosition; // Offset: 16 + keen::float scale; // Offset: 28 +}; + +struct VfxModelInstance { + keen::ds::VfxModelInstanceTransform transform; // Offset: 0 + keen::ds::VfxModelInstanceTransform previousTransform; // Offset: 32 + keen::float3 color; // Offset: 64 + keen::float alpha; // Offset: 76 + keen::float3 dissolveOffset; // Offset: 80 + keen::float dissolveRadius; // Offset: 92 + keen::float dissolveEdgeBrightness; // Offset: 96 + keen::float alphaClip; // Offset: 100 + keen::uint emissiveFactor; // Offset: 104 +}; + +struct VfxTerraformingCursorInstance { + keen::float3 boxSize; // Offset: 0 + keen::float sphereRadius; // Offset: 12 + keen::float3 position; // Offset: 16 + keen::uint isBox; // Offset: 28 + keen::float3 uvOffset; // Offset: 32 + keen::float ringAlpha; // Offset: 44 + keen::float ringAlphaClip; // Offset: 48 + keen::float ringAlphaClipHalfRange; // Offset: 52 + keen::float fillAlpha; // Offset: 56 + keen::float fillHardness; // Offset: 60 +}; + +struct VfxCullingInstance { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::float scale; // Offset: 28 + keen::uint modelIndex; // Offset: 32 + keen::uint instanceDataIndex; // Offset: 36 + keen::uint instanceDataTypeId; // Offset: 40 + keen::uint isDissolveActive; // Offset: 44 +}; + +struct VfxModelDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::float pad0; // Offset: 28 +}; + +struct VfxIntermediateDraw { + keen::uint meshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct VfxCullingSubView { + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 0 + keen::float minObjectSize; // Offset: 96 +}; + +struct VfxCullingPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 normalPipelineShift; // Offset: 4 + keen::uint32 dissolvePipelineShift; // Offset: 8 + keen::uint32 firstBatchIndex; // Offset: 12 +}; + +struct VfxCullInstancesConstants { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 1008 + keen::uint32 subViewCount; // Offset: 1168 + keen::uint32 passCount; // Offset: 1172 + keen::uint32 maxDrawCount; // Offset: 1176 + keen::uint32 maxMeshCount; // Offset: 1180 + keen::uint32 useOcclusionCulling; // Offset: 1184 + keen::float3 cameraWorldPosition; // Offset: 1188 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 1200 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 1248 + keen::float modelSizeFeedbackPixelSize; // Offset: 1312 +}; + +struct VfxWriteCulledDrawCommandsPushConstants { + keen::uint firstBatchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 + keen::uint pipelineCount; // Offset: 8 +}; + +struct PreloadVfxList { +}; + +struct PreloadVfxListResource { + keen::DsArray vfxIds; // Offset: 0 +}; + +struct VoxelMaterialVfxDataResource { + keen::DsArray materialType; // Offset: 0 +}; + +struct GpuImage2D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuImage3D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuCombinedImage2D { + keen::ds::GpuImage2D image; // Offset: 0 + keen::ds::GpuSampler sampler; // Offset: 4 +}; + +struct GpuCombinedImage3D { + keen::ds::GpuImage3D image; // Offset: 0 + keen::ds::GpuSampler sampler; // Offset: 4 +}; + +struct GpuMesh { + keen::uint32 vertexOffset; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexCount; // Offset: 12 + keen::float4 boundingSphere; // Offset: 16 +}; + +struct GpuMeshVertex { + keen::float3 position; // Offset: 0 + keen::float2 uv; // Offset: 12 + keen::float3 normal; // Offset: 20 + keen::float4 color; // Offset: 32 +}; + +struct GpuDecal { + keen::uint32 materialDataIndex; // Offset: 0 +}; + +struct GpuCurve { + keen::uint32 index; // Offset: 0 + keen::uint32 sampleCountMinusOne; // Offset: 4 + keen::float startTime; // Offset: 8 + keen::float inverseTotalTime; // Offset: 12 + keen::float inverseSampleDelta; // Offset: 16 +}; + +struct VfxBaseParticleState { + keen::uint myParentEmitterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint rngState; // Offset: 8 + keen::uint tickCount; // Offset: 12 +}; + +struct VfxEmitterState { + keen::uint particleCounterByteOffset; // Offset: 0 + keen::uint spawnCounterByteOffset; // Offset: 4 + keen::uint maxParticleCount; // Offset: 8 + keen::uint maxSpawnCount; // Offset: 12 + keen::uint particleChunkIndex; // Offset: 16 + keen::uint instanceIndex; // Offset: 20 + keen::uint particleTypeIndex; // Offset: 24 + keen::uint explicitPad0; // Offset: 28 +}; + +struct VfxChunkState { + keen::uint freeParticleCounterByteOffset; // Offset: 0 + keen::uint currentActiveParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct VfxUpdateBuffer { + keen::uint time; // Offset: 0 + keen::float fixedTimeStep; // Offset: 4 + keen::float realTimeStep; // Offset: 8 + keen::uint currentTickId; // Offset: 12 + keen::uint transparentInstanceBufferCapacity; // Offset: 16 + keen::uint transparentInstanceCounterByteOffset; // Offset: 20 + keen::uint injectInstanceBufferCapacity; // Offset: 24 + keen::uint injectInstanceCounterByteOffset; // Offset: 28 + keen::uint pointLightBufferCapacity; // Offset: 32 + keen::uint pointLightCounterByteOffset; // Offset: 36 + keen::uint decalBufferCapacity; // Offset: 40 + keen::uint decalCounterByteOffset; // Offset: 44 + keen::uint grassMovementBodyCounterByteOffset; // Offset: 48 + keen::uint grassMovementBodyListCapacity; // Offset: 52 + keen::float32 exposure; // Offset: 56 + keen::float32 exposureCorrection; // Offset: 60 + keen::float3 cameraPosition; // Offset: 64 + keen::float timeOfDay; // Offset: 76 + keen::uint3 cameraWorldPosition; // Offset: 80 + keen::float4 cameraOrientation; // Offset: 96 + keen::StaticArray frustumPlanes; // Offset: 112 + keen::float3 sunDirection; // Offset: 192 + keen::float32 sunDirectLightFadeFactor; // Offset: 204 + keen::float3 moonDirection; // Offset: 208 + keen::float32 moonDirectLightFadeFactor; // Offset: 220 + keen::uint skipInjectSort; // Offset: 224 + keen::uint worldChunkCount; // Offset: 228 + keen::uint useParallelRadixSort; // Offset: 232 + keen::ds::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint isDynamicHeightmapValid; // Offset: 272 + keen::uint sdfCascadeCount; // Offset: 276 + keen::uint firstSdfImageIndex; // Offset: 280 + keen::float32 sdfInvGridSize; // Offset: 284 + keen::uint isSdfBvhValid; // Offset: 288 + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 304 + keen::uint playerCount; // Offset: 800 + keen::StaticArray playerPositions; // Offset: 816 + keen::uint maxCullingInstanceCount; // Offset: 1072 + keen::uint maxModelInstanceCount; // Offset: 1076 + keen::uint maxTerraformingCursorInstanceCount; // Offset: 1080 + keen::uint hideSpiders; // Offset: 1084 + keen::uint snowDisplacementBodyCounterByteOffset; // Offset: 1088 + keen::uint snowDisplacementBodyListCapacity; // Offset: 1092 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 1104 +}; + +struct VfxPushConstants { + keen::uint data; // Offset: 0 +}; + +struct VfxPrepareBuffer { + keen::uint emitterCount; // Offset: 0 +}; + +struct VfxWorldChunk { + keen::uint vertexOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::uint indexCount; // Offset: 12 + keen::uint type; // Offset: 16 + keen::float4 translationAndScale; // Offset: 20 +}; + +struct GpuSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct GpuSortShaderData { + keen::uint elementCount; // Offset: 0 +}; + +struct GpuSortWritebackShaderData { + keen::uint elementCounterOffset; // Offset: 0 +}; + +struct VfxChunkUpdateBuffer2 { + keen::uint particleTypeParametersOffset; // Offset: 0 + keen::uint activeParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint freeParticleCounterByteOffset; // Offset: 12 + keen::uint particleStatesOffset; // Offset: 16 + keen::uint oldActiveParticleIndicesOffset; // Offset: 20 + keen::uint newActiveParticleIndicesOffset; // Offset: 24 + keen::uint freeParticleIndicesOffset; // Offset: 28 + keen::uint parentStatesOffset; // Offset: 32 + keen::uint oldActiveParentParticleIndicesOffset; // Offset: 36 + keen::uint childParticleStatesOffset; // Offset: 40 + keen::uint childParticleFreeListOffset; // Offset: 44 + keen::uint childActiveParticleIndicesOffset; // Offset: 48 + keen::uint chunkId; // Offset: 52 + keen::uint explicitPad0; // Offset: 56 + keen::uint explicitPad1; // Offset: 60 +}; + +struct ViewReprojectionData { + keen::GraphicsMatrix44 ndcToPreviousNdcMatrix; // Offset: 0 +}; + +struct Fog2DownsampleDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 +}; + +struct Fog2MinMaxDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 targetSize; // Offset: 16 + keen::uint32 tileSize; // Offset: 24 +}; + +struct Fog2SampleSkyParameters { + keen::float32 cloudLayerY; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 +}; + +struct Fog2CloudsErosionParameters { + keen::float3 scrollSpeed; // Offset: 0 + keen::float32 tilingFactor; // Offset: 12 + keen::float32 heightTilingFactor; // Offset: 16 + keen::uint32 noiseTextureIndex; // Offset: 20 + keen::float32 strength; // Offset: 24 +}; + +struct Fog2CloudsParameters { + keen::float32 yRange; // Offset: 0 + keen::float32 invYRange; // Offset: 4 + keen::float2 texcoordMapping; // Offset: 8 + keen::uint32 cloudTypes; // Offset: 16 + keen::ds::Fog2CloudsErosionParameters erosionPass0; // Offset: 32 + keen::ds::Fog2CloudsErosionParameters erosionPass1; // Offset: 64 + keen::ds::Fog2CloudsErosionParameters erosionPass2; // Offset: 96 + keen::float3 emission; // Offset: 128 + keen::float3 inScatteringDivExtinction; // Offset: 144 + keen::float32 extinctionLn2; // Offset: 156 +}; + +struct Fog2RenderSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::uint2 blueNoiseOffset; // Offset: 16 + keen::uint32 blueNoiseSizeMask; // Offset: 24 + keen::uint32 ditherPatternOffset; // Offset: 28 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::uint32 rayMarchSampleCount; // Offset: 160 + keen::float3 lightFactorSun; // Offset: 164 + keen::float32 exposure; // Offset: 176 + keen::float3 lightFactorSky; // Offset: 180 + keen::ds::ForwardDirectionalLightData cloudsLight; // Offset: 192 + keen::ds::ForwardDirectionalLightData skyLight0; // Offset: 224 + keen::ds::ForwardDirectionalLightData skyLight1; // Offset: 256 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 288 + keen::ds::Fog2CloudsParameters clouds; // Offset: 352 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 512 + keen::float32 time; // Offset: 528 +}; + +struct Fog2BlurSkyParameters { + keen::uint2 outputSize; // Offset: 0 +}; + +struct Fog2TfSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 20 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 160 +}; + +struct CloudsSampleConstants { + keen::float2 texcoordMappingScale; // Offset: 0 + keen::float2 texcoordMappingOffset; // Offset: 8 +}; + +struct Fog2SampleParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 80 + keen::uint32 enableWeather; // Offset: 112 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 128 + keen::ds::CloudsSampleConstants cloudsSampleConstants; // Offset: 256 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 272 + keen::ds::VolumetricShadowRuntimeData volumetricShadow; // Offset: 336 + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 576 + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 1664 + keen::ds::SdfShaderData fogGridSdf; // Offset: 2160 + keen::ds::GrassMovementData grassMovement; // Offset: 2176 + keen::float32 exposureCorrection; // Offset: 2208 + keen::float32 lightFactorEmissive; // Offset: 2212 + keen::float3 lightFactorSun; // Offset: 2224 + keen::float3 lightFactorSky; // Offset: 2240 + keen::float32 lightFactorPointLights; // Offset: 2252 + keen::ds::GiAmbientFroxelVolumeParameters giFroxelParameters; // Offset: 2256 + keen::float32 lightFactorGi; // Offset: 2320 + keen::float2 surfaceFadeFunction; // Offset: 2324 + keen::float32 surfaceWidthFactor; // Offset: 2332 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 2336 + keen::float32 surfaceNoiseScaleFactor; // Offset: 2340 + keen::uint32 surfaceNoiseDescriptorIndex; // Offset: 2344 + keen::ds::VolumetricFogGridMaterial surfaceMaterial; // Offset: 2352 + keen::ds::SdfShaderData worldSdf; // Offset: 2400 + keen::float worldHeightPositionMapping; // Offset: 2416 + keen::float2 groundFadeFunction; // Offset: 2420 + keen::float2 groundGradientFadeFunction; // Offset: 2432 + keen::float32 groundHeightFactor; // Offset: 2440 + keen::float32 groundNoiseScrollSpeed; // Offset: 2444 + keen::float32 groundNoiseScale; // Offset: 2448 + keen::uint32 groundNoiseDescriptorIndex; // Offset: 2452 + keen::ds::VolumetricFogGridMaterial groundMaterialAbove; // Offset: 2464 + keen::ds::VolumetricFogGridMaterial groundMaterialBelow; // Offset: 2512 + keen::float32 heightExponent; // Offset: 2560 + keen::float32 forestExponent; // Offset: 2564 + keen::float2 heightFadeFunction; // Offset: 2568 + keen::float2 forestFadeFunction; // Offset: 2576 + keen::ds::VolumetricFogGridMaterial heightMaterial; // Offset: 2592 + keen::ds::VolumetricFogGridMaterial forestMaterial; // Offset: 2640 + keen::ds::VolumetricFogGridMaterial rainMaterial; // Offset: 2688 + keen::ds::VolumetricFogGridMaterial snowMaterial; // Offset: 2736 + keen::ds::VolumetricFogGridMaterial blizzardMaterial; // Offset: 2784 + keen::float32 time; // Offset: 2832 + keen::ds::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 2848 + keen::uint32 isGiEnabled; // Offset: 3008 + keen::ds::GiAmbientProbesLookupData ambientProbesLookupData; // Offset: 3024 +}; + +struct Fog2RenderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float32 exposure; // Offset: 96 +}; + +struct Fog2RenderBlurResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 +}; + +struct Fog2TemporalBlendResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldDepthDifferenceWeight; // Offset: 20 + keen::float2 linearDepthParameters; // Offset: 24 + keen::float32 oldToNewExposure; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 +}; + +struct Fog2InitializeShadowVolumeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 12 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 +}; + +struct Fog2IntegrateShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::GraphicsMatrix43 worldToNextShadowCascadeMatrix; // Offset: 64 + keen::float32 dk; // Offset: 112 +}; + +struct Fog2IntegrateLastShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::float32 dk; // Offset: 64 + keen::ds::VolumetricShadowRuntimeData volumetricShadow; // Offset: 80 +}; + +struct Fog2WriteShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 +}; + +struct Fog2TfShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::ds::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2WriteScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 exposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 + keen::uint32 isShadowViewVolumeValid; // Offset: 128 +}; + +struct Fog2TfScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::ds::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2InitializeParticipatingMediaVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 124 +}; + +struct Fog2WriteViewVolumeSourceTermParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::float32 exposure; // Offset: 112 + keen::float32 exposureCorrection; // Offset: 116 + keen::uint2 blueNoiseOffset; // Offset: 120 + keen::uint32 blueNoiseSizeMask; // Offset: 128 + keen::uint32 manyLightsShadowsEnabled; // Offset: 132 + keen::uint32 isShadowViewVolumeValid; // Offset: 136 + keen::uint32 isScatteredLightVolumeValid; // Offset: 140 +}; + +struct Fog2TfViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::ds::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2IntegrateViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 +}; + +struct Fog2IntegrateViewVolume2Parameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 windTime; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 +}; + +struct Fog2RenderFogGridIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float3 fogGridMin; // Offset: 96 + keen::float3 fogGridMax; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 124 +}; + +struct Fog2RenderWeatherMapIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float2 weatherMapMin; // Offset: 96 + keen::float2 weatherMapMax; // Offset: 104 + keen::float2 weatherMapVoxelSize; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 120 + keen::uint32 enableWeather; // Offset: 124 +}; + +struct Fog2RenderRaymarchParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 80 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::float32 exposure; // Offset: 124 +}; + +struct Fog2CompositeViewVolumeDebugParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 80 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 144 + keen::GraphicsMatrix44 viewVolumeViewProjectionMatrix; // Offset: 160 + keen::GraphicsMatrix44 viewVolumeInvViewProjectionMatrix; // Offset: 224 + keen::float32 dk; // Offset: 288 +}; + +struct Fog2RenderUpscaleResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::uint2 blueNoiseOffset; // Offset: 8 + keen::uint32 blueNoiseSizeMask; // Offset: 16 + keen::float2 linearDepthParameters; // Offset: 20 +}; + +struct Fog2TestParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 +}; + +typedef keen::Fog2CompositeFlag Fog2CompositeFlag; + +typedef keen::Fog2CompositeFlags Fog2CompositeFlags; + +struct Fog2CompositeParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 invTargetSize; // Offset: 8 + keen::uint32 flags; // Offset: 16 + keen::ds::Fog2ViewVolumeSampleParameters sampleParameters; // Offset: 32 + keen::uint2 blueNoiseOffset; // Offset: 64 + keen::uint32 blueNoiseSizeMask; // Offset: 72 +}; + +struct Fog2DebugBlitParameters { + keen::uint2 blitOffset; // Offset: 0 + keen::uint2 blitSize; // Offset: 8 + keen::float32 scale; // Offset: 16 +}; + +struct VolumetricFog2ResourceData { + keen::ObjectReference initializationMaterial; // Offset: 0 + keen::ObjectReference atmosphere; // Offset: 16 + keen::ds::FogMaterialParameters surfaceMaterial; // Offset: 32 + keen::float32 surfaceWidth; // Offset: 60 + keen::ds::ImageReference surfaceNoise; // Offset: 64 + keen::float32 surfaceNoiseScale; // Offset: 80 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 84 + keen::FloatRange surfaceFadeRange; // Offset: 88 + keen::float32 groundHeightExponent; // Offset: 96 + keen::ds::FogMaterialParameters groundMaterialAbove; // Offset: 100 + keen::ds::FogMaterialParameters groundMaterialBelow; // Offset: 128 + keen::FloatRange groundFadeRange; // Offset: 156 + keen::FloatRange groundGradientFadeRange; // Offset: 164 + keen::ds::ImageReference groundNoise; // Offset: 172 + keen::float32 groundNoiseScale; // Offset: 188 + keen::float32 groundNoiseFlowSpeed; // Offset: 192 + keen::float32 heightExponent; // Offset: 196 + keen::ds::FogMaterialParameters heightMaterial; // Offset: 200 + keen::FloatRange heightFadeRange; // Offset: 228 + keen::float32 forestExponent; // Offset: 236 + keen::ds::FogMaterialParameters forestMaterial; // Offset: 240 + keen::FloatRange forestFadeRange; // Offset: 268 + keen::ds::FogMaterialParameters rainMaterial; // Offset: 276 + keen::ds::FogMaterialParameters snowMaterial; // Offset: 304 + keen::ds::FogMaterialParameters blizzardMaterial; // Offset: 332 +}; + +struct VolumetricFog2Resource { + keen::ds::Fog2SampleSkyParameters sampleSkyParameters; // Offset: 0 + keen::ds::Fog2CloudsParameters cloudParameters; // Offset: 16 + keen::ds::RenderTexture cloudTypes; // Offset: 176 + keen::ds::RenderTexture cloudErosionPass0; // Offset: 248 + keen::ds::RenderTexture cloudErosionPass1; // Offset: 320 + keen::ds::RenderTexture cloudErosionPass2; // Offset: 392 + keen::float2 surfaceFadeFunction; // Offset: 464 + keen::float32 surfaceWidth; // Offset: 472 + keen::ds::RenderTexture surfaceNoise; // Offset: 480 + keen::float32 surfaceNoiseScale; // Offset: 552 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 556 + keen::ds::FogMaterialParameters surfaceMaterial; // Offset: 560 + keen::float32 groundHeightFactor; // Offset: 588 + keen::ds::FogMaterialParameters groundMaterialAbove; // Offset: 592 + keen::ds::FogMaterialParameters groundMaterialBelow; // Offset: 620 + keen::float2 groundFadeFunction; // Offset: 648 + keen::float2 groundGradientFadeFunction; // Offset: 656 + keen::ds::RenderTexture groundNoise; // Offset: 664 + keen::float32 groundNoiseScale; // Offset: 736 + keen::float32 groundNoiseScrollSpeed; // Offset: 740 + keen::float32 heightExponent; // Offset: 744 + keen::ds::FogMaterialParameters heightMaterial; // Offset: 748 + keen::float2 heightFadeFunction; // Offset: 776 + keen::float32 forestExponent; // Offset: 784 + keen::ds::FogMaterialParameters forestMaterial; // Offset: 788 + keen::float2 forestFadeFunction; // Offset: 816 + keen::ds::FogMaterialParameters rainMaterial; // Offset: 824 + keen::ds::FogMaterialParameters snowMaterial; // Offset: 852 + keen::ds::FogMaterialParameters blizzardMaterial; // Offset: 880 +}; + +typedef keen::Fog2ShadowVolumeTransformMatrices Fog2ShadowVolumeTransformMatrices; + +struct VolumetricFogGridRenderParameters { + keen::ds::FogMaterialParameters noneMaterial; // Offset: 0 + keen::ds::FogMaterialParameters dangerousMaterial; // Offset: 28 + keen::ds::FogMaterialParameters deadlyMaterial; // Offset: 56 + keen::ds::FogMaterialParameters decorativeMaterial; // Offset: 84 +}; + +struct VolumetricFogGridUpdateShaderData { + keen::int3 origin; // Offset: 0 + keen::uint3 size; // Offset: 16 + keen::uint32 bufferOffset; // Offset: 28 +}; + +struct GroundFogParameters { + keen::float32 height; // Offset: 28 + keen::float32 angleFadeoutPosition; // Offset: 32 + keen::float32 angleFadeoutRange; // Offset: 36 + keen::float32 sdfGradientEpsilon; // Offset: 40 + keen::float32 flowSpeed; // Offset: 44 + keen::ObjectReference noise; // Offset: 48 + keen::float32 noiseTilingSize; // Offset: 64 +}; + +struct CloudErosionPass { + keen::float32 tilingSize; // Offset: 0 + keen::float32 heightTilingSize; // Offset: 4 + keen::float32 scrollSpeed; // Offset: 8 + keen::float32 strength; // Offset: 12 + keen::ObjectReference noise; // Offset: 16 +}; + +struct CloudParameters { + keen::float32 yMin; // Offset: 28 + keen::float32 yMax; // Offset: 32 + keen::ObjectReference cloudMap; // Offset: 36 + keen::ObjectReference cloudTypes; // Offset: 52 + keen::ds::CloudErosionPass erosionPass0; // Offset: 68 + keen::ds::CloudErosionPass erosionPass1; // Offset: 100 + keen::ds::CloudErosionPass erosionPass2; // Offset: 132 + keen::float32 shadowStrength; // Offset: 164 + keen::float32 shadowStrengthSlope; // Offset: 168 + keen::float32 shadowStrengthOffset; // Offset: 172 + keen::float32 fadeoutStart; // Offset: 176 + keen::float32 fadeoutRange; // Offset: 180 +}; + +struct VolumetricFogInitializationMaterial { + keen::ds::GroundFogParameters ground; // Offset: 0 + keen::ds::CloudParameters clouds; // Offset: 68 +}; + +struct CloudLayerShadowParameterBlockData { + keen::float32 yMin; // Offset: 0 + keen::float32 yMax; // Offset: 4 + keen::float32 invYRange; // Offset: 8 + keen::float32 shadowStrength; // Offset: 12 + keen::float2 shadowSampleMap; // Offset: 16 +}; + +struct AnalyticFogShadowParameterBlock { + keen::ds::CloudLayerShadowParameterBlockData clouds; // Offset: 0 +}; + +struct AnalyticFogResource { + keen::ds::RenderParameterBlock analyticFogShadowParameterBlock; // Offset: 0 + keen::ds::RenderTexture cloudMap; // Offset: 184 +}; + +typedef keen::VolumetricFogInjectionShape VolumetricFogInjectionShape; + +struct VolumetricFogInjectInstanceData { + keen::float3 position; // Offset: 0 + keen::uint32 shape; // Offset: 12 + keen::float4 rotation; // Offset: 16 + keen::float3 size; // Offset: 32 + keen::float32 density; // Offset: 44 + keen::ds::BindlessTexture3D_float densityTexture; // Offset: 48 + keen::ds::BindlessSampler densityTextureSampler; // Offset: 52 + keen::float32 falloff; // Offset: 56 + keen::float3 uvOffset; // Offset: 60 + keen::float3 uvScale; // Offset: 72 + keen::float3 emission; // Offset: 84 + keen::float32 extinction; // Offset: 96 + keen::float3 scattering; // Offset: 100 + keen::float32 g; // Offset: 112 +}; + +typedef keen::WeatherSampleFlag WeatherSampleFlag; + +struct VoxelMaterialList { + keen::ObjectReference defaultTerrainMaterial; // Offset: 0 +}; + +typedef keen::ObjectReference VoxelMaterialReference; + +struct TerrainMaterialLayer { + keen::ObjectReference material; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableSeparateTilingSizeY; // Offset: 20 + keen::float32 tilingSizeY; // Offset: 24 + keen::float32 parallaxDepth; // Offset: 28 + keen::uint32 parallaxMinLayerCount; // Offset: 32 + keen::uint32 parallaxMaxLayerCount; // Offset: 36 + keen::float32 parallaxFadeoutStart; // Offset: 40 + keen::float32 parallaxFadeoutLength; // Offset: 44 + keen::float32 parallaxMinAngle; // Offset: 48 + keen::float32 parallaxAngleFadeoutLength; // Offset: 52 + keen::ds::PbrTerrainMaterialDisplacementLayer displacement; // Offset: 56 +}; + +struct TerrainMaterialOverlayBlendLayer { + keen::float32 fadeInDistance; // Offset: 64 + keen::float32 fadeInRange; // Offset: 68 +}; + +struct TerrainMaterialDetailBlendLayer { + keen::float32 maxOpacity; // Offset: 72 + keen::float32 maxOpacityNormal; // Offset: 76 + keen::ds::PbrTerrainMaterialDetailNormalBlendMode mode; // Offset: 80 +}; + +struct TerrainMaterialColorVariation { + keen::ObjectReference map; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableMidPoint; // Offset: 20 + keen::Color start; // Offset: 24 + keen::Color mid; // Offset: 28 + keen::Color end; // Offset: 32 + keen::float32 midPosition; // Offset: 36 +}; + +typedef keen::WorldMaterialBlending2MappingDirection WorldMaterialBlending2MappingDirection; + +struct WorldMaterial2Layer { + keen::ds::WorldMaterialBlending2MappingDirection mappingDirection; // Offset: 0 + keen::float32 heightBias; // Offset: 4 + keen::ObjectReference edgeNoiseMap; // Offset: 8 + keen::float32 edgeNoiseMapTilingSize; // Offset: 24 + keen::float32 edgeNoiseStrength; // Offset: 28 + keen::ds::PbrTerrainMaterialCenterBlendingSmoothness frontRightBlendingSmoothness; // Offset: 32 + keen::bool enableSnowDisplacement; // Offset: 40 + keen::bool disableFrostShader; // Offset: 41 + keen::bool disableSnowShader; // Offset: 42 + keen::bool disableWetnessShader; // Offset: 43 + keen::bool enableFrostShaderGlitter; // Offset: 44 +}; + +typedef keen::WorldMaterial2Area WorldMaterial2Area; + +typedef keen::WorldMaterial2Side WorldMaterial2Side; + +typedef keen::WorldMaterial2BlendingValue WorldMaterial2BlendingValue; + +struct WorldMaterial2BlendingValueMapping { + keen::float32 position; // Offset: 0 + keen::float32 range; // Offset: 4 +}; + +struct WorldMaterial2Node { + keen::bool enable; // Offset: 0 +}; + +struct WorldMaterial2AreaNode { + keen::ds::WorldMaterial2Area area; // Offset: 1 +}; + +struct WorldMaterial2VoxelMaterialNode { + keen::ObjectReference voxelMaterial; // Offset: 4 +}; + +struct WorldMaterial2SideSelectorNode { + keen::ds::WorldMaterial2BlendingValueMapping topMapping; // Offset: 4 + keen::ds::WorldMaterial2BlendingValueMapping bottomMapping; // Offset: 12 +}; + +struct WorldMaterial2SideNode { + keen::ds::WorldMaterial2Side side; // Offset: 1 +}; + +struct WorldMaterial2BlendingValueNode { + keen::ds::WorldMaterial2BlendingValue value; // Offset: 1 + keen::ds::WorldMaterial2BlendingValueMapping mapping; // Offset: 4 + keen::bool invert; // Offset: 12 +}; + +struct WorldMaterial2MapNode { + keen::ObjectReference map; // Offset: 4 + keen::float32 mapTilingSize; // Offset: 20 +}; + +struct WorldMaterial2LayerNode { + keen::ObjectReference material; // Offset: 4 +}; + +struct WorldMaterial2 { +}; + +typedef keen::WorldMaterialBlending2BlendingMode WorldMaterialBlending2BlendingMode; + +typedef keen::WorldMaterialBlending2BakingBlendValueOperationType WorldMaterialBlending2BakingBlendValueOperationType; + +typedef keen::WorldMaterialBlending2BakingInputValue WorldMaterialBlending2BakingInputValue; + +struct WorldMaterialBlending2BakingBlendValueOperation { + keen::uint32 type; // Offset: 0 + keen::float32 param0; // Offset: 4 + keen::float32 param1; // Offset: 8 + keen::float32 param2; // Offset: 12 + keen::float32 param3; // Offset: 16 +}; + +struct WorldMaterialBlending2BakingLayerShaderData { + keen::StaticArray ops; // Offset: 0 + keen::uint32 opCount; // Offset: 160 +}; + +struct WorldMaterialBlending2MaterialBlendLayerShaderData { + keen::float2 weightFunction; // Offset: 0 +}; + +typedef keen::WorldMaterialBlending2MaterialLayerFlag WorldMaterialBlending2MaterialLayerFlag; + +struct WorldMaterialBlending2MaterialLayerRenderingShaderData { + keen::uint32 mappingDirection; // Offset: 0 + keen::uint32 baseLayerIndex; // Offset: 4 + keen::uint32 blendLayerCount; // Offset: 8 + keen::uint32 detailBlendingMode; // Offset: 12 + keen::float32 heightBlendingFactor; // Offset: 16 + keen::ds::StreamedTexture2D_float edgeNoise; // Offset: 20 + keen::float32 edgeNoiseTilingFactor; // Offset: 24 + keen::float32 edgeNoiseMappingFactor; // Offset: 28 + keen::float4 frontRightBlendSmoothness; // Offset: 32 + keen::float2 detailWeightFunction; // Offset: 48 + keen::float2 detailOpacityMapping; // Offset: 56 + keen::StaticArray blendLayerParameters; // Offset: 64 + keen::float3 colorVariationStart; // Offset: 96 + keen::ds::StreamedTexture2D_float4 colorVariationMap; // Offset: 108 + keen::float3 colorVariationMid; // Offset: 112 + keen::float32 colorVariationTilingFactor; // Offset: 124 + keen::float3 colorVariationEnd; // Offset: 128 + keen::uint32 flags; // Offset: 140 + keen::float3 colorVariationParams; // Offset: 144 +}; + +struct WorldMaterialBlending2MaterialLayerTextureShaderData { + keen::float2 tilingFactor; // Offset: 0 + keen::ds::StreamedTexture2D_float4 emissiveMap; // Offset: 8 + keen::float32 emissiveMapIntensity; // Offset: 12 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 16 + keen::ds::StreamedTexture2D_float4 albedoMap; // Offset: 20 + keen::ds::StreamedTexture2D_float roughnessMap; // Offset: 24 + keen::ds::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::ds::StreamedTexture2D_float heightMap; // Offset: 32 + keen::ds::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 displacementScale; // Offset: 40 + keen::float32 displacementOffset; // Offset: 44 + keen::float32 parallaxFactor; // Offset: 48 + keen::uint32 parallaxMinLayerCount; // Offset: 52 + keen::uint32 parallaxMaxLayerCount; // Offset: 56 + keen::float32 parallaxFadeoutStart; // Offset: 60 + keen::float32 parallaxInverseFadeoutLength; // Offset: 64 + keen::float32 parallaxMinAngleSin; // Offset: 68 + keen::float32 parallaxInverseAngleFadeoutLength; // Offset: 72 + keen::float32 emissiveGiFactor; // Offset: 76 + keen::float32 distortionMapScale; // Offset: 80 + keen::float32 distortionMapSpeed; // Offset: 84 + keen::float32 distortionMapIntensity; // Offset: 88 + keen::float32 lightningMapScrollSpeed; // Offset: 92 + keen::float32 lightningMapIntensity; // Offset: 96 + keen::ds::StreamedTexture2D_float4 distortionMap; // Offset: 100 + keen::ds::StreamedTexture2D_float4 lightningMap; // Offset: 104 + keen::ds::StreamedTexture2D_float4 gradientMap; // Offset: 108 +}; + +struct WorldMaterialBlending2MaterialLayerRange { + keen::uint32 firstLayer; // Offset: 0 + keen::uint32 layerCount; // Offset: 4 +}; + +struct WorldMaterialBlending2Resource { + keen::uint32 layerCount; // Offset: 0 + keen::ds::RenderParameterBlock bakingParameterBlock; // Offset: 8 + keen::ds::RenderParameterBlock renderingLayerParameterBlock; // Offset: 192 + keen::ds::RenderParameterBlock renderingTextureParameterBlock; // Offset: 376 + keen::ds::RenderParameterBlock voxelToLayerParameterBlock; // Offset: 560 + keen::DsArray renderingLayerImageSizeInfos; // Offset: 744 + keen::DsArray renderingLayerImageSizeInfoStartIndices; // Offset: 784 + keen::DsArray renderingTextureImageSizeInfos; // Offset: 824 + keen::DsArray renderingTextureImageSizeInfoStartIndices; // Offset: 864 + keen::DsArray renderingLayerUsesSnowDisplacement; // Offset: 904 +}; + +struct WorldMaterialBlending2DebugResource { + keen::DsArray layerGuids; // Offset: 0 + keen::DsArray layerNames; // Offset: 40 +}; + +struct ZoneVisualizationSdfBoundingSphere { + keen::float3 worldSpacePosition; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 +}; + +typedef keen::ZoneVisualizationSdfElementType ZoneVisualizationSdfElementType; + +struct ZoneVisualizationSdfElement { + keen::float3 halfSize; // Offset: 0 + keen::ds::ZoneVisualizationSdfElementType type; // Offset: 12 +}; + +struct ZoneVisualizationSdfShaderData { + keen::uint32 elementCount; // Offset: 0 + keen::float32 smoothingRadius; // Offset: 4 +}; + +struct ZoneVisualizationSdfShaderStorageData { + keen::StaticArray boundingSpheres; // Offset: 0 + keen::StaticArray elements; // Offset: 512 +}; + +struct ZoneVisualizationSdfRenderingShaderData { + keen::float32 borderInverseSize; // Offset: 0 + keen::float32 borderCurveMax; // Offset: 4 + keen::float32 noiseBorderTilingFactor; // Offset: 8 + keen::float32 noisePositionTilingFactor; // Offset: 12 + keen::float32 noiseOffset; // Offset: 16 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 20 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 32 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 40 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 48 + keen::float3 buildZoneBorderColor; // Offset: 64 + keen::float3 noBuildZoneBorderColor; // Offset: 80 + keen::uint32 drawBuildZoneBorder; // Offset: 92 + keen::ds::ZoneVisualizationSdfBoundingSphere previewBuildZoneBoundingSphere; // Offset: 96 + keen::ds::ZoneVisualizationSdfElement previewBuildZone; // Offset: 112 + keen::float3 previewBuildZoneBorderColor; // Offset: 128 +}; + +struct ZoneVisualizationRasterizationShaderData { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::float3 cameraPosition; // Offset: 112 + keen::float4 color; // Offset: 128 + keen::float2 distanceFarFadeFunction; // Offset: 144 + keen::float2 distanceNearFadeFunction; // Offset: 152 +}; + +struct ZoneVisualizationRasterizationPushConstants { + keen::float3 boxCenter; // Offset: 0 + keen::float3 boxHalfSize; // Offset: 12 +}; + +struct ZoneVisualizationSettings { + keen::float32 smoothingRadius; // Offset: 0 + keen::HdrColorRgb buildZoneBorderColor; // Offset: 4 + keen::HdrColorRgb noBuildZoneBorderColor; // Offset: 20 + keen::HdrColorRgb previewBuildZoneBorderColor; // Offset: 36 + keen::float32 borderSize; // Offset: 52 + keen::float32 borderCurveMax; // Offset: 56 + keen::ObjectReference noiseTexture; // Offset: 60 + keen::float32 noiseBorderTilingSize; // Offset: 76 + keen::float32 noisePositionTilingSize; // Offset: 80 + keen::float32 noiseScrollSpeed; // Offset: 84 + keen::FloatRange buildZoneDistanceFadeRange; // Offset: 88 + keen::FloatRange noBuildZoneDistanceFadeRange; // Offset: 96 + keen::FloatRange noBuildZoneBuildZoneDistanceFadeRange; // Offset: 104 + keen::FloatRange noBuildZonePreviewDistanceFadeRange; // Offset: 112 + keen::HdrColorRgb playableAreaColor; // Offset: 120 + keen::float32 playableAreaAlpha; // Offset: 136 + keen::FloatRange playableAreaDistanceFadeRange; // Offset: 140 + keen::FloatRange playableAreaNearFadeRange; // Offset: 148 + keen::ObjectReference playableAreaModel; // Offset: 156 +}; + +struct ZoneVisualizationResource { + keen::float32 smoothingRadius; // Offset: 0 + keen::float32 borderInverseSize; // Offset: 4 + keen::float32 borderCurveMax; // Offset: 8 + keen::ds::RenderTexture noiseTexture; // Offset: 16 + keen::float32 noiseBorderTilingFactor; // Offset: 88 + keen::float32 noisePositionTilingFactor; // Offset: 92 + keen::float32 noiseScrollSpeed; // Offset: 96 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 100 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 108 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 116 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 124 + keen::float3 buildZoneBorderColor; // Offset: 132 + keen::float3 noBuildZoneBorderColor; // Offset: 144 + keen::float3 previewBuildZoneBorderColor; // Offset: 156 + keen::float4 playableAreaColor; // Offset: 168 + keen::float2 playableAreaCameraDistanceFarFadeFunction; // Offset: 184 + keen::float2 playableAreaCameraDistanceNearFadeFunction; // Offset: 192 + keen::uint32 playableAreaMeshVertexCount; // Offset: 200 + keen::uint32 playableAreaMeshIndexCount; // Offset: 204 + keen::ContentHash playableAreaMeshData; // Offset: 208 +}; + +struct BlockOutMeshPointBrushScatteringSettings { + keen::bool disablePoint; // Offset: 0 + keen::bool disableLowerEdge; // Offset: 1 + keen::bool disableUpperEdge; // Offset: 2 + keen::bool disableWallTriangle0; // Offset: 3 + keen::bool disableWallTriangle1; // Offset: 4 +}; + +struct BlockOutMeshPoint { + keen::float3 position; // Offset: 0 + keen::float32 height; // Offset: 12 + keen::float2 offset; // Offset: 16 + keen::ds::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 24 +}; + +typedef keen::DistributionRule DistributionRule; + +typedef keen::DistributionNodeType DistributionNodeType; + +struct SceneEntitySpawnData { + keen::float3 velocity; // Offset: 0 + keen::Color tintColor; // Offset: 12 + keen::float32 triggerRange; // Offset: 16 + keen::float32 triggerRange2; // Offset: 20 + keen::float32 triggerRange3; // Offset: 24 + keen::ds::ecs::Offset triggerOffset; // Offset: 28 + keen::sint32 level; // Offset: 68 + keen::sint32 levelOffset; // Offset: 72 + keen::ds::ecs::EnemySettings enemySettings; // Offset: 76 + keen::ds::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 140 + keen::ds::ecs::EnemyTestFlags enemyTestFlags; // Offset: 144 + keen::ds::AmbientEnvironment ambience; // Offset: 148 + keen::ObjectReference enemyMarkerTag; // Offset: 152 + keen::ds::LocaTagReference teleporterId; // Offset: 168 + keen::ds::LocaTagReference teleportTargetId; // Offset: 184 + keen::float32 jumpDistance; // Offset: 200 + keen::float32 jumpHeight; // Offset: 204 + keen::Quaternion jumpLaunchOffset; // Offset: 208 + keen::ds::ecs::EntitySpawnValueMask mask; // Offset: 224 +}; + +struct DistributionNode { + keen::ds::DistributionNodeType type; // Offset: 0 + keen::ObjectReference voxelBrush; // Offset: 4 + keen::float32 voxelBrushScale; // Offset: 20 + keen::float32 voxelBrushScaleVariation; // Offset: 24 + keen::ObjectReference scene; // Offset: 28 + keen::sint32 spawnLevelOffset; // Offset: 44 + keen::ObjectReference spawnTemplate; // Offset: 48 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 64 + keen::bool alignRotationToRoad; // Offset: 292 + keen::ObjectReference map; // Offset: 296 + keen::ObjectReference compositeMap; // Offset: 312 + keen::ds::DistributionRule rule; // Offset: 328 + keen::float32 density; // Offset: 332 + keen::float32 radius; // Offset: 336 + keen::float32 maxHeightDifference; // Offset: 340 + keen::float32 minDistance; // Offset: 344 + keen::float32 minContentDistance; // Offset: 348 + keen::float32 maxRoadDistance; // Offset: 352 + keen::bool onlyAtCrossings; // Offset: 356 + keen::bool snapToRoad; // Offset: 357 + keen::FloatRange rotationRange; // Offset: 360 +}; + +struct DistributionNodeGroupEntry { + keen::ds::DistributionNodeType type; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::ObjectReference voxelBrush; // Offset: 20 + keen::float32 voxelBrushScale; // Offset: 36 + keen::float32 voxelBrushScaleVariation; // Offset: 40 + keen::ObjectReference scene; // Offset: 44 + keen::sint32 spawnLevelOffset; // Offset: 60 + keen::ObjectReference spawnTemplate; // Offset: 64 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 80 + keen::DsArray whiteboxTags; // Offset: 312 + keen::float32 probabilityWeight; // Offset: 352 + keen::bool alignRotationToRoad; // Offset: 356 + keen::FloatRange rotationRange; // Offset: 360 +}; + +struct RoadCrossingNode { + keen::ObjectReference scene; // Offset: 0 + keen::uint32 weight; // Offset: 16 + keen::bool keepPlainCrossing; // Offset: 20 +}; + +struct ConvertedDistributionNode { + keen::ObjectReference map; // Offset: 0 + keen::ds::DistributionRule rule; // Offset: 16 + keen::float32 density; // Offset: 20 + keen::float32 radius; // Offset: 24 + keen::float32 maxHeightDifference; // Offset: 28 + keen::float32 minDistance; // Offset: 32 + keen::float32 minContentDistance; // Offset: 36 + keen::float32 maxRoadDistance; // Offset: 40 + keen::bool onlyAtCrossings; // Offset: 44 + keen::bool snapToRoad; // Offset: 45 + keen::Guid objectId; // Offset: 48 + keen::DsArray groupEntries; // Offset: 64 +}; + +struct DistributionNodes { + keen::DsArray nodes; // Offset: 0 + keen::DsArray roadCrossings; // Offset: 40 +}; + +struct ScatterSetImageInfos { + keen::DsArray> images; // Offset: 0 +}; + +typedef keen::ScatterResolution ScatterResolution; + +struct ScatterNodeMap { + keen::ObjectReference image; // Offset: 0 + keen::uint2 position; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool wrap; // Offset: 32 +}; + +typedef keen::ScatterNodeFlag ScatterNodeFlag; + +typedef keen::ScatterNodeFlags ScatterNodeFlags; + +typedef keen::ScatterLocation ScatterLocation; + +typedef keen::ScatterSetVoxelMap ScatterSetVoxelMap; + +typedef keen::ScatterSetRule ScatterSetRule; + +typedef keen::ScatterSetFootprintMap ScatterSetFootprintMap; + +typedef keen::ScatterSetImageMap ScatterSetImageMap; + +struct ScatterScaleRange { + keen::float32 minValue; // Offset: 0 + keen::float32 maxValue; // Offset: 4 +}; + +struct ScatterYawRange { + keen::sint32 minValue; // Offset: 0 + keen::sint32 maxValue; // Offset: 4 +}; + +struct ScatterPitchRange { + keen::uint32 minValue; // Offset: 0 + keen::uint32 maxValue; // Offset: 4 +}; + +typedef keen::ScatterNodeImageType ScatterNodeImageType; + +struct ScatterNode { + keen::ds::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::ds::ScatterNodeMap map; // Offset: 36 + keen::ObjectReference model; // Offset: 72 + keen::ds::ecs::TemplateReference entity; // Offset: 88 + keen::ds::ScatterResolution resolution; // Offset: 104 + keen::ds::ScatterSetRule rule; // Offset: 105 + keen::ds::Biome biome; // Offset: 106 + keen::ds::ScatterLocation location; // Offset: 107 + keen::uint32 footprint; // Offset: 108 + keen::float32 probability; // Offset: 112 + keen::ds::ScatterScaleRange scale; // Offset: 116 + keen::ds::ScatterYawRange yaw; // Offset: 124 + keen::ds::ScatterPitchRange pitch; // Offset: 132 + keen::ds::ScatterNodeFlags flags; // Offset: 140 +}; + +struct ScatterSetMaps { + keen::ds::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference forest; // Offset: 4 + keen::ObjectReference forestScatterImage; // Offset: 20 + keen::ObjectReference forestCompositeScatterImage; // Offset: 36 +}; + +struct ScatterSet3 { + keen::ds::ScatterSetMaps maps; // Offset: 0 +}; + +struct ScatterSetObject { + keen::ObjectReference model; // Offset: 0 + keen::ds::ecs::TemplateResourceReference entity; // Offset: 16 + keen::ds::ScatterSetRule rule; // Offset: 32 + keen::uint32 mapIndex; // Offset: 36 + keen::uint32 footprint; // Offset: 40 + keen::float32 probability; // Offset: 44 + keen::FloatRange scale; // Offset: 48 + keen::FloatRange yaw; // Offset: 56 + keen::FloatRange pitch; // Offset: 64 + keen::ds::ScatterNodeFlags flags; // Offset: 72 + keen::ds::Biome biome; // Offset: 73 + keen::ds::ScatterLocation location; // Offset: 74 + keen::ds::ScatterResolution resolution; // Offset: 75 + keen::DsString name; // Offset: 80 +}; + +struct ScatterSetMapInfo { + keen::uint2 size; // Offset: 0 + keen::ContentHash hash; // Offset: 8 + keen::DsString name; // Offset: 24 + keen::DsString bauPath; // Offset: 64 +}; + +struct ScatterSetImageData { + keen::uint2 imageSize; // Offset: 0 + keen::uint2 position; // Offset: 8 + keen::uint2 size; // Offset: 16 + keen::bool wrap; // Offset: 24 + keen::ContentHash hash; // Offset: 28 + keen::DsString name; // Offset: 48 + keen::DsString bauPath; // Offset: 88 + keen::Guid scatterImage; // Offset: 128 +}; + +struct ScatterSetLocationObjects { + keen::DsArray objects; // Offset: 0 +}; + +struct ScatterSetResolutionObjects { + keen::StaticArray locations; // Offset: 0 +}; + +struct ScatterSet3Resource { + keen::DsArray maps; // Offset: 0 + keen::StaticArray resolutions; // Offset: 40 + keen::DsArray objects; // Offset: 640 +}; + +typedef keen::ObjectReference ScatterSet3ResourceReference; + +typedef keen::composite_scatter_image::CompositeOperation composite_scatter_image.CompositeOperation; + +typedef keen::composite_scatter_image::InputType composite_scatter_image.InputType; + +typedef keen::composite_scatter_image::InputOperation composite_scatter_image.InputOperation; + +struct composite_scatter_image.Input { + keen::ds::composite_scatter_image::InputType type; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::float32 value; // Offset: 36 + keen::ds::composite_scatter_image::InputOperation inputOperation; // Offset: 40 + keen::float32 inputToMaskMin; // Offset: 44 + keen::float32 inputToMaskMax; // Offset: 48 + keen::ds::composite_scatter_image::CompositeOperation operation; // Offset: 52 +}; + +struct CompositeScatterImage { + keen::uint32 upscaleFactor; // Offset: 0 + keen::StaticArray inputs; // Offset: 4 + keen::float32 remapSourceFrom; // Offset: 340 + keen::float32 remapSourceTo; // Offset: 344 + keen::float32 outputLevelsFrom; // Offset: 348 + keen::float32 outputLevelsTo; // Offset: 352 +}; + +struct TestCompositeScatterImage { + keen::ObjectReference testObjectReference; // Offset: 0 +}; + +struct DungeonTriggerConfiguration { +}; + +struct DungeonTriggerSetup { + keen::DsString identifier; // Offset: 0 + keen::Color color; // Offset: 40 +}; + +struct DungeonTriggerSlot { + keen::DsString identifier; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 40 +}; + +struct DungeonTriggerInput { +}; + +struct DungeonTriggerOutput { + keen::bool sendActivateEvent; // Offset: 48 + keen::bool sendDeactivateEvent; // Offset: 49 + keen::bool sendResultSignal; // Offset: 50 +}; + +struct DungeonTriggerInfo { + keen::Color color; // Offset: 0 + keen::DsArray inputs; // Offset: 8 + keen::DsArray outputs; // Offset: 48 +}; + +typedef keen::ds::DungeonTriggerInfo EntityTriggerInfo; + +struct DungeonTriggerGraph { +}; + +struct DungeonTriggerGraphNode { + keen::Vector2 position; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 8 +}; + +struct DungeonTriggerGraphNodeEndPoint { + keen::ObjectReference trigger; // Offset: 24 + keen::ObjectReference scene; // Offset: 40 + keen::ObjectReference room; // Offset: 56 +}; + +typedef keen::DungeonLogicOperator DungeonLogicOperator; + +struct DungeonTriggerSettingsNode { +}; + +struct DungeonTriggerGraphNodeDungeonLogic { +}; + +struct DungeonTriggerGraphNodeBool { + keen::bool value; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeAnd { + keen::ds::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeOr { + keen::ds::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeNot { + keen::ds::DungeonLogicOperator op; // Offset: 24 +}; + +typedef keen::DelayFlags DelayFlags; + +struct DungeonTriggerGraphNodeDelay { + keen::Time duration; // Offset: 24 + keen::ds::DelayMask filter; // Offset: 32 +}; + +struct DungeonTriggerGraphNodeSender { +}; + +struct DungeonTriggerGraphNodeReceiver { +}; + +struct DungeonTriggerGraphNodeWhitebox { +}; + +struct DungeonTriggerGraphLink { + keen::ObjectReference startNode; // Offset: 0 + keen::ObjectReference endNode; // Offset: 16 + keen::HashKey32 startSlot; // Offset: 32 + keen::HashKey32 endSlot; // Offset: 36 + keen::uint8 startIndex; // Offset: 40 + keen::uint8 endIndex; // Offset: 41 + keen::bool sendActivateEvent; // Offset: 42 + keen::bool sendDeactivateEvent; // Offset: 43 + keen::bool sendResultSignal; // Offset: 44 +}; + +struct PrefabTriggerInfo { + keen::Guid triggerEntityGuid; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 16 +}; + +struct PrefabContainmentSet { + keen::DsArray triggerTypes; // Offset: 0 +}; + +struct PrefabTriggerSlotType { + keen::HashKey32 slotTypeId; // Offset: 0 + keen::bool isInput; // Offset: 4 + keen::Color uiColor; // Offset: 8 + keen::ds::string identifier; // Offset: 16 + keen::bool sendActivateEvent; // Offset: 56 + keen::bool sendDeactivateEvent; // Offset: 57 + keen::bool sendResultSignal; // Offset: 58 +}; + +struct PrefabContainment { + keen::Guid prefabId; // Offset: 0 + keen::DsArray triggerGuids; // Offset: 16 + keen::DsArray slotDefinitions; // Offset: 56 + keen::DsArray containmentVariations; // Offset: 96 +}; + +struct WhiteboxContainment { + keen::DsArray slotDefinitions; // Offset: 0 + keen::DsArray containmentVariations; // Offset: 40 +}; + +typedef keen::WhiteboxTriggerFlags WhiteboxTriggerFlags; + +typedef keen::WhiteboxTriggerMask WhiteboxTriggerMask; + +struct WhiteboxTriggerSetup { + keen::ds::string triggerFormula; // Offset: 0 + keen::Time triggerDelay; // Offset: 40 + keen::ds::DelayMask triggerDelayMask; // Offset: 48 + keen::StaticArray triggerIds; // Offset: 52 + keen::HashKey32 triggerSlot; // Offset: 116 + keen::ds::WhiteboxTriggerMask triggerMask; // Offset: 120 + keen::uint8 triggerIndex; // Offset: 121 + keen::bool sendActivateEvent; // Offset: 122 + keen::bool sendDeactivateEvent; // Offset: 123 + keen::bool sendResultSignal; // Offset: 124 + keen::bool initialState; // Offset: 125 +}; + +struct WhiteboxTriggerInfo { + keen::Guid triggerObjectInstanceId; // Offset: 128 +}; + +struct DungeonTrigger { + keen::DsString identifier; // Offset: 0 + keen::WorldTransform transform; // Offset: 40 + keen::Guid roomSceneId; // Offset: 96 + keen::Guid roomInstanceId; // Offset: 112 + keen::Guid whiteboxInstanceId; // Offset: 128 + keen::DsArray containmentVariations; // Offset: 144 + keen::AxisAlignedBox boundingBox; // Offset: 192 +}; + +struct RoomTriggerList { + keen::Guid dungeonTriggerGraphId; // Offset: 0 + keen::DsArray slotDefinitions; // Offset: 16 + keen::DsArray trigger; // Offset: 56 +}; + +struct DungeonTriggerWhitebox { + keen::Guid id; // Offset: 0 + keen::DsArray setups; // Offset: 16 +}; + +struct DungeonTriggerRoom { + keen::Guid id; // Offset: 0 + keen::DsArray whiteboxes; // Offset: 16 +}; + +struct DungeonTriggers { + keen::DsArray rooms; // Offset: 0 +}; + +struct EntityAnimationPath { + keen::ds::AttachmentSlot slot; // Offset: 0 + keen::Time length; // Offset: 8 +}; + +struct EntityAnimationPathPoint { + keen::float3 offset; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::bool enableConstantRotationX; // Offset: 28 + keen::float constantRotationX; // Offset: 32 + keen::bool enableConstantRotationY; // Offset: 36 + keen::float constantRotationY; // Offset: 40 + keen::bool enableConstantRotationZ; // Offset: 44 + keen::float constantRotationZ; // Offset: 48 +}; + +struct SceneTemplate { +}; + +struct SceneWaterTemplate { +}; + +typedef keen::WorldDistributionTypeFlag WorldDistributionTypeFlag; + +struct VfxUserEffectParameterDataBlockIncludeDummy0 { + keen::ds::VfxUserEffectParameterDataBlock dummy; // Offset: 0 +}; + +struct SceneModel { + keen::ObjectReference model; // Offset: 64 + keen::ObjectReference clothCollider; // Offset: 80 + keen::Color color; // Offset: 96 +}; + +struct EntitySpawnDefinition { + keen::ds::ecs::TemplateReference templateReference; // Offset: 0 + keen::ObjectReference model; // Offset: 16 + keen::Color color; // Offset: 32 +}; + +struct TemplatePreviewSubEntity { + keen::Guid templateId; // Offset: 0 + keen::DsArray> models; // Offset: 16 + keen::ds::ecs::Offset offset; // Offset: 56 + keen::ds::AttachmentSlot slot; // Offset: 96 +}; + +struct TemplatePreviewVfx { + keen::ObjectReference vfx; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 16 + keen::ds::AttachmentSlot slot; // Offset: 56 + keen::DsOptional initParameters; // Offset: 64 +}; + +struct TemplatePreviewPart { + keen::ObjectReference model; // Offset: 0 + keen::ds::ColorCombination paletteColors; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::DsArray blendShapes; // Offset: 80 +}; + +struct TemplatePreview { + keen::DsArray parts; // Offset: 0 + keen::ObjectReference spawnedEntity; // Offset: 40 + keen::ds::TemplatePreviewVfx vfx; // Offset: 56 + keen::DsArray subEntities; // Offset: 136 + keen::ds::AttachmentSlotMask subEntityAttachmentMask; // Offset: 176 + keen::ObjectReference animationGraph; // Offset: 180 + keen::StaticArray slotJointIndexMapping; // Offset: 196 + keen::Guid hierarchyId; // Offset: 224 + keen::ds::ecs::ColliderDataArray allColliders; // Offset: 240 + keen::float scale; // Offset: 280 +}; + +struct TemplateInfo { + keen::DsString description; // Offset: 0 + keen::bool isPlayerSpawn; // Offset: 40 + keen::bool isMapMarker; // Offset: 41 + keen::bool isFakePlayerSpawner; // Offset: 42 + keen::bool isContainer; // Offset: 43 + keen::bool isActor; // Offset: 44 + keen::bool isAutomatedPlayer; // Offset: 45 + keen::bool isSkinned; // Offset: 46 + keen::bool doNotSave; // Offset: 47 + keen::bool questEntity; // Offset: 48 + keen::bool isNpc; // Offset: 49 + keen::bool isCraftingAssistant; // Offset: 50 + keen::ds::LocaTagId nameLocaId; // Offset: 52 + keen::ds::UiNpcRenderingOptions npcRenderingOptions; // Offset: 56 + keen::ds::WorkshopId workshopId; // Offset: 108 + keen::ds::LocaTagId workshopLabel; // Offset: 112 + keen::ds::CharacterPresetReference characterPresetReference; // Offset: 116 + keen::ds::ItemReference placementItem; // Offset: 132 + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 148 + keen::uint32 containerSlotCount; // Offset: 252 + keen::ObjectReference floorMaterial; // Offset: 256 + keen::float32 floorMaterialRadius; // Offset: 272 + keen::ds::FloorMaterialShape floorMaterialShape; // Offset: 276 + keen::float32 floorMaterialNoiseStrength; // Offset: 280 + keen::ObjectReference fallbackModel; // Offset: 284 +}; + +struct TemplateInfoCollection { + keen::DsArray templateGuids; // Offset: 0 + keen::DsArray templateInfos; // Offset: 40 + keen::DsArray templateBBoxes; // Offset: 80 +}; + +struct TemplateSubentityIds { + keen::DsArray subentityTemplateGuids; // Offset: 0 +}; + +struct SceneEntitySpawn { + keen::ObjectReference entitySpawnDefinition; // Offset: 64 + keen::ObjectReference templateReference; // Offset: 80 + keen::ContentHash templatePreviewContentHash; // Offset: 96 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 112 + keen::bool storeSceneId; // Offset: 340 + keen::bool snapToGround; // Offset: 341 + keen::bool enableFloorMaterial; // Offset: 342 +}; + +struct EntitySpawnInfo { + keen::ds::KnowledgeId unlockKnowledge; // Offset: 0 + keen::DsArray subEntityKnowledgeQueries; // Offset: 8 + keen::DsArray triggerKnowledgeIds; // Offset: 48 + keen::HashKey32 uiWorldEventId; // Offset: 88 + keen::Guid knowledgeQuery; // Offset: 92 + keen::ds::LootContainerId lootContainerId; // Offset: 108 + keen::ds::FogRemovalId fogRemovalId; // Offset: 112 + keen::ds::JointAnimationReference entityAnimation; // Offset: 116 + keen::ds::AttachmentSlotMask entityAnimationSlotMask; // Offset: 132 +}; + +struct SceneVoxelObject { + keen::ObjectReference voxelModel; // Offset: 64 + keen::bool isWeathered; // Offset: 80 + keen::Color color; // Offset: 84 +}; + +typedef keen::VoxelBlitFunction VoxelBlitFunction; + +struct SceneVoxelBrush { + keen::ObjectReference model; // Offset: 64 + keen::Color color; // Offset: 80 + keen::ds::VoxelMaterialReference material; // Offset: 84 + keen::bool disableDisplacement; // Offset: 100 + keen::bool resolveBiomePerVoxel; // Offset: 101 + keen::bool paintMaterialOnly; // Offset: 102 + keen::ds::VoxelBlitFunction blitFunction; // Offset: 103 + keen::bool allowNonManifold; // Offset: 104 + keen::ObjectReference removableFogId; // Offset: 108 + keen::bool addDestructionEdge; // Offset: 124 +}; + +struct SceneBlockOutBrushPoint { + keen::float32 height; // Offset: 64 + keen::float2 offset; // Offset: 68 + keen::ds::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 76 +}; + +struct SceneBlockOutBrush { + keen::ds::VoxelMaterialReference material; // Offset: 64 + keen::Color color; // Offset: 80 + keen::bool enableTopDisplacement; // Offset: 84 + keen::bool enableTopBrushScattering; // Offset: 85 + keen::bool negativeVoxels; // Offset: 86 + keen::bool ignoreDisplacementBlockers; // Offset: 87 + keen::bool resolveBiomePerVoxel; // Offset: 88 + keen::ObjectReference scattering; // Offset: 92 + keen::ObjectReference removableFogId; // Offset: 108 +}; + +struct BlockOutBrushScatteringDefinition { +}; + +struct BlockOutBrushScatteringPointModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::FloatRange heightRange; // Offset: 24 + keen::float32 randomYRotation; // Offset: 32 + keen::float32 nonUniformScaling; // Offset: 36 + keen::float32 shearFactor; // Offset: 40 +}; + +struct BlockOutBrushScatteringPoint { + keen::DsArray models; // Offset: 0 +}; + +struct BlockOutBrushScatteringLowerEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringLowEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringUpperEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringUpperEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringWallModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 maxOverhangY; // Offset: 24 + keen::float32 randomYRotation; // Offset: 28 +}; + +struct BlockOutBrushScatteringWall { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringTopModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange randomScale; // Offset: 28 +}; + +struct BlockOutBrushScatteringTop { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringDefinitionConverterData { + keen::Guid id; // Offset: 0 + keen::DsArray points; // Offset: 16 + keen::DsArray lowerEdges; // Offset: 56 + keen::DsArray upperEdges; // Offset: 96 + keen::DsArray walls; // Offset: 136 + keen::DsArray tops; // Offset: 176 +}; + +struct BlockOutBrushScatteringDefinitionConverterDependencies { + keen::Guid id; // Offset: 0 + keen::DsArray models; // Offset: 16 +}; + +struct SceneVoxelMultiBrush { + keen::DsArray brushes; // Offset: 64 +}; + +typedef keen::DestructionBubbleMode DestructionBubbleMode; + +struct SceneDestructionBubble { + keen::ObjectReference model; // Offset: 64 + keen::ds::DestructionBubbleMode mode; // Offset: 80 + keen::bool dontDestroyEntities; // Offset: 81 + keen::float32 density; // Offset: 84 +}; + +typedef keen::SceneSurfaceMaterialBubbleMode SceneSurfaceMaterialBubbleMode; + +struct SceneSurfaceMaterialBubble { + keen::ObjectReference model; // Offset: 64 + keen::ds::VoxelMaterialReference material; // Offset: 80 + keen::uint depth; // Offset: 96 + keen::uint height; // Offset: 100 + keen::bool shelteredByTerrain; // Offset: 104 + keen::ds::SceneSurfaceMaterialBubbleMode mode; // Offset: 105 +}; + +struct SceneCurvePoint { +}; + +struct SceneCurve { +}; + +struct SceneRoadPoint { + keen::float32 widthScale; // Offset: 64 +}; + +struct RoadDefinition { + keen::float32 width; // Offset: 0 + keen::bool snapToGround; // Offset: 4 + keen::float32 snapStepSize; // Offset: 8 + keen::float32 snapAllowedError; // Offset: 12 + keen::float32 snapMaxSlopeChange; // Offset: 16 + keen::ObjectReference roadShape; // Offset: 20 + keen::ds::VoxelMaterialReference surfaceMaterial; // Offset: 36 + keen::ds::VoxelMaterialReference groundMaterial; // Offset: 52 + keen::float32 distributionNoise; // Offset: 68 + keen::float32 edgeNoiseWidth; // Offset: 72 + keen::float32 edgeNoiseScale; // Offset: 76 + keen::float32 edgeNoisePersistance; // Offset: 80 +}; + +struct SceneRoad { + keen::ObjectReference definition; // Offset: 64 + keen::bool snapToOtherRoads; // Offset: 80 +}; + +typedef keen::CaveVoxelMode CaveVoxelMode; + +struct SceneDungeonCaveCurvePoint { +}; + +struct SceneDungeonCaveCurve { + keen::ds::CaveVoxelMode mode; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::ds::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneTunnelPoint { +}; + +struct SceneTunnel { + keen::float32 width; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::ds::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneScatterBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 +}; + +typedef keen::DisplacementBlockerMode DisplacementBlockerMode; + +struct SceneDisplacementBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 + keen::float32 innerDisplacementFactor; // Offset: 72 + keen::ds::DisplacementBlockerMode mode; // Offset: 76 + keen::bool affectFog; // Offset: 77 +}; + +struct SceneVfx { + keen::ObjectReference effect; // Offset: 64 + keen::HdrColorRgb color; // Offset: 80 + keen::float4 param0; // Offset: 96 + keen::float4 param1; // Offset: 112 + keen::float4 param2; // Offset: 128 + keen::float4 param3; // Offset: 144 + keen::float32 duration; // Offset: 160 + keen::float3 targetPosition; // Offset: 164 + keen::Time startTime; // Offset: 176 + keen::bool isActive; // Offset: 184 +}; + +struct SceneSound { + keen::ds::SoundContainerReference soundContainer; // Offset: 64 + keen::float32 activeRange; // Offset: 80 +}; + +struct SceneInstance { + keen::ObjectReference scene; // Offset: 64 + keen::bool connectToRoad; // Offset: 80 + keen::sint32 spawnLevelOffset; // Offset: 84 + keen::HashKey32 whiteboxSeed; // Offset: 88 +}; + +struct SceneGroup { + keen::bool isLocked; // Offset: 0 +}; + +struct SceneRoadAttachmentPoint { + keen::ObjectReference roadDefinition; // Offset: 64 +}; + +struct SceneScatterImage { + keen::ObjectReference scatterImage; // Offset: 64 +}; + +struct SceneScatterOrigin { + keen::float32 distributionRadius; // Offset: 64 +}; + +typedef keen::SceneAreaFlagMask SceneAreaFlagMask; + +struct ScenePlayableArea { + keen::float3 size; // Offset: 64 + keen::ds::SceneAreaFlagMask flags; // Offset: 76 + keen::ds::LocaTagReference mapMarkerId; // Offset: 80 +}; + +struct SceneCinematicTimelineEvent { +}; + +struct SceneCinematicCameraSmoothing { + keen::bool enableSmoothing; // Offset: 0 + keen::float lerpSpeed; // Offset: 4 +}; + +struct SceneCinematicTimeLineAnimationEvent { + keen::ds::AnimationReference animation; // Offset: 96 + keen::ObjectReference modelObject; // Offset: 112 +}; + +struct SceneCinematicTimeLineModelAnimationEvent { +}; + +struct SceneCinematicTimeLineCameraAnimationEvent { + keen::Angle fovY; // Offset: 128 +}; + +struct SceneCinematicTimeLineCameraEvent { + keen::ds::SceneCamera key; // Offset: 96 + keen::ds::SceneCamera nextKey; // Offset: 232 + keen::Guid id; // Offset: 368 + keen::ds::SceneCinematicCameraSmoothing smoothing; // Offset: 384 + keen::float lerpSpeed; // Offset: 392 + keen::float nextLerpSpeed; // Offset: 396 +}; + +struct SceneCinematicTimelineEventMaterializeVoxelObject { + keen::ObjectReference voxelObject; // Offset: 96 + keen::ds::SceneVoxelObject voxelData; // Offset: 112 +}; + +struct SequenceTrack { + keen::Time loopStart; // Offset: 0 + keen::Time loopEnd; // Offset: 8 + keen::bool loop; // Offset: 16 +}; + +struct SceneCinematicTimelineTrack { +}; + +struct SceneCinematicTimelineCameraTrack { +}; + +struct SceneCinematicTimeline { +}; + +struct SceneCinematic { + keen::ObjectReference timeline; // Offset: 4 +}; + +struct CinematicDynamicModelObject { + keen::Guid objectGuid; // Offset: 0 + keen::ds::SceneModel sceneModel; // Offset: 16 +}; + +struct CinematicSequenceResource { + keen::DsArray dynamicModelObjects; // Offset: 96 +}; + +struct SceneCinematicList { + keen::DsArray cinematics; // Offset: 0 +}; + +struct SceneModelTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneVoxelObjectTemplate { + keen::ObjectReference defaultVoxelModel; // Offset: 0 +}; + +struct SceneVoxelBrushTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneDestructionBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneSurfaceMaterialBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 + keen::ds::VoxelMaterialReference defaultMaterial; // Offset: 16 +}; + +struct SceneVoxelMultiBrushTemplate { +}; + +struct SceneEntitySpawnTemplate { + keen::ObjectReference defaultEntityTemplate; // Offset: 0 +}; + +struct SceneVfxTemplate { + keen::ObjectReference defaultEffect; // Offset: 0 +}; + +struct SceneWhiteboxTemplate { + keen::ObjectReference defaultWhitebox; // Offset: 0 +}; + +struct SceneRoadTemplate { +}; + +struct SceneScatterBlockerTemplate { +}; + +struct SceneDisplacementBlockerTemplate { +}; + +struct SceneSoundTemplate { +}; + +struct SceneCameraTemplate { +}; + +struct SceneInstanceTemplate { + keen::ObjectReference defaultScene; // Offset: 0 +}; + +struct DungeonInstanceTemplate { + keen::ObjectReference defaultDungeon; // Offset: 0 +}; + +struct DungeonRoomInstanceTemplate { + keen::ObjectReference defaultDungeonRoom; // Offset: 0 +}; + +struct SceneRoadAttachmentPointTemplate { +}; + +struct SceneScatterOriginTemplate { +}; + +struct ScenePlayableAreaTemplate { +}; + +struct SceneScatterEntity { + keen::WorldTransform transform; // Offset: 0 + keen::uint16 index; // Offset: 56 +}; + +struct SceneScatterChunkDataEntity { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneScatterChunkData { + keen::DsArray templateEntities; // Offset: 0 + keen::DsArray modelEntities; // Offset: 40 +}; + +struct SpawnTemplateModel { + keen::Guid templateGuid; // Offset: 0 + keen::DsArray modelsGuid; // Offset: 16 +}; + +struct SpawnTemplateModels { + keen::DsArray templateModels; // Offset: 0 + keen::uint32 templateCount; // Offset: 40 +}; + +struct SpawnTemplateGuids { + keen::DsArray templateGuids; // Offset: 0 + keen::uint32 templateCount; // Offset: 40 +}; + +struct SceneScatterResource { + keen::ds::ScatterSet3ResourceReference scatterSet; // Offset: 0 + keen::uint2 scatterStart; // Offset: 16 + keen::uint2 scatterSize; // Offset: 24 + keen::DsArray templates; // Offset: 32 + keen::DsArray models; // Offset: 72 + keen::DsArray templateGuids; // Offset: 112 + keen::DsArray modelGuids; // Offset: 152 + keen::DsArray templateNames; // Offset: 192 + keen::DsArray modelNames; // Offset: 232 + keen::ds::SpawnTemplateModels spawnTemplateModels; // Offset: 272 + keen::uint2 debugMapSize; // Offset: 320 + keen::DsArray debugMapNames; // Offset: 328 + keen::DsArray debugMaps; // Offset: 368 +}; + +typedef keen::ObjectReference SceneScatterResourceReference; + +struct SceneScatterChunkResource { + keen::DsArray templates; // Offset: 0 + keen::DsArray models; // Offset: 40 + keen::DsArray templateGuids; // Offset: 80 + keen::DsArray modelGuids; // Offset: 120 + keen::DsArray templateNames; // Offset: 160 + keen::DsArray modelNames; // Offset: 200 +}; + +typedef keen::SceneAreaFlag SceneAreaFlag; + +struct ScenePlayableAreaBox { + keen::WorldPosition areaMin; // Offset: 0 + keen::WorldPosition areaMax; // Offset: 24 + keen::ds::SceneAreaFlagMask flags; // Offset: 48 + keen::ds::LocaTagId mapMarkerId; // Offset: 52 +}; + +struct SceneProceduralLayer { + keen::ds::ContentPass contentPass; // Offset: 0 + keen::ObjectReference scatterSet; // Offset: 4 + keen::ds::WorldDistributionTypeFlags distributionTypeMask; // Offset: 20 + keen::ds::SourceDataReference content; // Offset: 24 + keen::ds::SourceDataReference contentTags; // Offset: 40 + keen::bool connectManualSubscenesToRoad; // Offset: 56 +}; + +typedef keen::SceneObjectType SceneObjectType; + +typedef keen::SceneObjectTypeMask SceneObjectTypeMask; + +struct SceneTreeNode { + keen::ds::SceneObjectType type; // Offset: 0 + keen::uint32 typeIndex; // Offset: 4 + keen::uint32 childStart; // Offset: 8 + keen::uint32 childCount; // Offset: 12 +}; + +struct SceneDistributionDebugData { + keen::Vector3 position; // Offset: 0 + keen::Guid objectId; // Offset: 16 + keen::float32 radius; // Offset: 32 + keen::float32 minDistance; // Offset: 36 +}; + +struct SceneDistributionTag { + keen::ds::WhiteboxTagInfo tagInfo; // Offset: 0 + keen::uint32 sceneIndex; // Offset: 48 +}; + +struct DistributionLootInfo { + keen::Guid scatterSetId; // Offset: 0 + keen::uint32 objectIndex; // Offset: 16 +}; + +struct SceneContent { + keen::DsArray models; // Offset: 0 + keen::DsArray pointLights; // Offset: 40 + keen::DsArray cameras; // Offset: 80 + keen::DsArray spawns; // Offset: 120 + keen::DsArray voxelObjects; // Offset: 160 + keen::DsArray voxelBrushes; // Offset: 200 + keen::DsArray destructionBubbles; // Offset: 240 + keen::DsArray surfaceMaterialBubbles; // Offset: 280 + keen::DsArray vfxs; // Offset: 320 + keen::DsArray sounds; // Offset: 360 + keen::DsArray roads; // Offset: 400 + keen::DsArray pendingRoads; // Offset: 440 + keen::DsArray caves; // Offset: 480 + keen::DsArray tunnels; // Offset: 520 + keen::DsArray blockOuts; // Offset: 560 + keen::DsArray scatterBlockers; // Offset: 600 + keen::DsArray displacementBlockers; // Offset: 640 + keen::DsArray instances; // Offset: 680 + keen::DsArray resolvedInstances; // Offset: 720 + keen::DsArray dungeonRoomInstances; // Offset: 760 + keen::DsArray playableAreas; // Offset: 800 + keen::DsArray proceduralLayers; // Offset: 840 + keen::DsArray distributionTags; // Offset: 880 + keen::DsArray spawnLootInfos; // Offset: 920 + keen::DsArray sceneLootInfos; // Offset: 960 + keen::DsArray distributionDebugData; // Offset: 1000 + keen::bool isDebugDataDirty; // Offset: 1040 +}; + +struct SceneContentPasses { + keen::DsArray passes; // Offset: 0 +}; + +struct SceneDestructionBubbles { + keen::DsArray bubbles; // Offset: 0 +}; + +struct SceneRuntimeContent { + keen::DsArray models; // Offset: 0 + keen::DsArray pointLights; // Offset: 40 + keen::DsArray cameras; // Offset: 80 + keen::DsArray spawns; // Offset: 120 + keen::DsArray vfxs; // Offset: 160 + keen::DsArray sounds; // Offset: 200 + keen::DsArray scatterBlockers; // Offset: 240 + keen::DsArray instances; // Offset: 280 + keen::DsArray playableAreas; // Offset: 320 + keen::DsArray proceduralLayers; // Offset: 360 +}; + +struct SceneVoxelContent { + keen::DsArray passes; // Offset: 0 + keen::DsArray destructionBubbles; // Offset: 40 + keen::DsArray surfaceMaterialBubbles; // Offset: 80 + keen::DsArray nonConnectingRoads; // Offset: 120 + keen::DsArray displacementBlockers; // Offset: 160 +}; + +struct SceneCombinedContent { + keen::ds::SceneRuntimeContent runtime; // Offset: 0 + keen::ds::SceneVoxelContent voxel; // Offset: 400 +}; + +struct ContentPassIndex { + keen::uint64 indexPath; // Offset: 0 + keen::uint32 depth; // Offset: 8 +}; + +struct SceneVoxelContentPass { + keen::ds::ContentPassIndex passIndex; // Offset: 0 + keen::DsArray blockOuts; // Offset: 16 + keen::DsArray voxelObjects; // Offset: 56 + keen::DsArray voxelBrushes; // Offset: 96 + keen::DsArray caves; // Offset: 136 + keen::DsArray tunnels; // Offset: 176 + keen::DsArray roads; // Offset: 216 + keen::DsArray instances; // Offset: 256 + keen::DsArray dungeonRoomInstances; // Offset: 296 + keen::DsArray proceduralLayers; // Offset: 336 +}; + +struct SceneContentRoads { + keen::DsArray roads; // Offset: 0 +}; + +struct SceneRoadAttachment { + keen::Vector3 position; // Offset: 0 + keen::Guid definitionGuid; // Offset: 16 + keen::ds::RoadDefinition definition; // Offset: 32 +}; + +struct SceneAttachments { + keen::DsArray roadAttachments; // Offset: 0 +}; + +struct SceneLightResource { + keen::WorldTransform transform; // Offset: 0 + keen::ds::RenderLight light; // Offset: 56 +}; + +struct SceneContentRoadPoint { + keen::WorldPosition position; // Offset: 0 + keen::float32 width; // Offset: 24 +}; + +struct SceneContentRoad { + keen::Guid definition; // Offset: 0 + keen::DsArray points; // Offset: 16 + keen::ds::ContentPass contentPass; // Offset: 56 + keen::bool snapToOtherRoads; // Offset: 57 +}; + +struct SceneContentBlockOut { + keen::Guid objectGuid; // Offset: 0 + keen::WorldTransform transform; // Offset: 16 + keen::DsArray points; // Offset: 72 + keen::ds::VoxelMaterialReference material; // Offset: 112 + keen::bool enableTopDisplacement; // Offset: 128 + keen::bool enableTopBrushScattering; // Offset: 129 + keen::bool negativeVoxels; // Offset: 130 + keen::bool ignoreDisplacementBlockers; // Offset: 131 + keen::bool resolveBiomePerVoxel; // Offset: 132 + keen::ObjectReference scattering; // Offset: 136 + keen::ObjectReference removableFogId; // Offset: 152 +}; + +struct SceneContentCaveCurvePoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentCaveCurve { + keen::WorldTransform transform; // Offset: 0 + keen::float32 height; // Offset: 56 + keen::ds::CaveVoxelMode mode; // Offset: 60 + keen::ds::VoxelMaterialReference material; // Offset: 64 + keen::DsArray points; // Offset: 80 +}; + +struct SceneContentTunnelPoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentTunnel { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::ds::VoxelMaterialReference material; // Offset: 8 + keen::DsArray points; // Offset: 24 +}; + +struct SceneEntitySpawnResource { + keen::WorldTransform transform; // Offset: 0 + keen::ds::ecs::TemplateReference templateReference; // Offset: 56 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 72 + keen::DsArray> components; // Offset: 304 + keen::bool snapToGround; // Offset: 344 + keen::bool enableFloorMaterial; // Offset: 345 +}; + +struct SceneContentInstance { + keen::WorldTransform transform; // Offset: 0 + keen::Guid instanceGuid; // Offset: 56 + keen::Guid sceneGuid; // Offset: 72 + keen::bool connectToRoad; // Offset: 88 + keen::sint32 spawnLevelOffset; // Offset: 92 +}; + +struct SceneNoBuildZone { + keen::WorldPosition worldBoxMin; // Offset: 0 + keen::WorldPosition worldBoxMax; // Offset: 24 + keen::ds::AmbientEnvironment ambience; // Offset: 48 +}; + +struct SceneQuestEntity { + keen::WorldTransform transform; // Offset: 0 + keen::Guid templateGuid; // Offset: 56 +}; + +struct SceneResource { + keen::ObjectReference ibl; // Offset: 0 + keen::float32 iblIntensity; // Offset: 16 + keen::DsOptional atmosphereParameters; // Offset: 24 + keen::DsArray nodes; // Offset: 40 + keen::DsArray models; // Offset: 80 + keen::DsArray lights; // Offset: 120 + keen::DsArray cameras; // Offset: 160 + keen::DsArray vfxs; // Offset: 200 + keen::DsArray sounds; // Offset: 240 + keen::DsArray noBuildZones; // Offset: 280 + keen::DsArray questEntities; // Offset: 320 + keen::uint2 entityChunkCount; // Offset: 360 + keen::uint32 moveVersion; // Offset: 368 + keen::ds::SceneScatterResourceReference scatterResource; // Offset: 372 + keen::ds::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 392 +}; + +struct SceneEntityChunkResource { + keen::DsArray templates; // Offset: 0 + keen::DsArray templatesDoNotSave; // Offset: 40 + keen::DsArray> models; // Offset: 80 + keen::DsArray entities; // Offset: 120 + keen::DsArray entityExtraData; // Offset: 160 +}; + +struct SceneEntityExtraData { + keen::ds::SceneEntitySpawnData spawnData; // Offset: 0 + keen::DsArray> components; // Offset: 232 + keen::bool enableFloorMaterial; // Offset: 272 +}; + +struct SceneEntityChunkSpawn { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneEntityChunkTemplateInfo { + keen::Guid templateId; // Offset: 0 + keen::DsOptional boundingBox; // Offset: 16 + keen::ObjectReference fallbackModel; // Offset: 32 + keen::ObjectReference floorMaterial; // Offset: 48 + keen::float32 floorMaterialRadius; // Offset: 64 + keen::float32 floorMaterialNoiseStrength; // Offset: 68 + keen::ds::FloorMaterialShape floorMaterialShape; // Offset: 72 + keen::bool doNotSave; // Offset: 73 + keen::bool isSkinned; // Offset: 74 +}; + +struct SceneEntityChunkTemplateInfos { + keen::DsArray infos; // Offset: 0 +}; + +struct SceneScatterBlockerChunk { + keen::DsArray scatterBlockers; // Offset: 0 +}; + +struct SceneFloorMaterialInstance { + keen::WorldPosition position; // Offset: 0 + keen::float32 radius; // Offset: 24 + keen::ObjectReference material; // Offset: 28 + keen::ds::FloorMaterialShape shape; // Offset: 44 + keen::float32 noiseStrength; // Offset: 48 +}; + +struct SceneFloorMaterialChunk { + keen::DsArray instances; // Offset: 0 +}; + +typedef keen::ObjectReference SceneResourceReference; + +struct SceneInfo { + keen::float3 pivot; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::ds::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 16 + keen::bool hasBuildingVoxels; // Offset: 17 +}; + +struct SceneBoundingBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 + keen::float3 pivot; // Offset: 24 +}; + +struct ScatterImageAlias { + keen::Guid target; // Offset: 0 + keen::Guid replacement; // Offset: 16 +}; + +struct ScatterImageAliases { + keen::DsArray aliases; // Offset: 0 +}; + +struct ScenePreview { + keen::DsArray modelIds; // Offset: 0 + keen::DsArray transforms; // Offset: 40 + keen::ds::SceneObjectTypeMask objectTypes; // Offset: 80 +}; + +struct SceneConverterConfig { + keen::bool validateNonTestScenes; // Offset: 0 +}; + +struct BenchmarkPointDebugContent { + keen::Guid guid; // Offset: 0 + keen::WorldTransform worldTransform; // Offset: 16 + keen::HashKey32 hash; // Offset: 72 +}; + +struct SceneResolvedDebugContent { + keen::DsArray benchmarkPoints; // Offset: 0 +}; + +struct SceneDebugContent { + keen::DsArray benchmarkPoints; // Offset: 0 +}; + +struct SceneLevelDistribution { + keen::ObjectReference levelDistributionSet; // Offset: 0 +}; + +struct SceneLevelDistributionSet { +}; + +struct SceneLevelMap { + keen::ObjectReference scatterImage; // Offset: 0 + keen::uint32 level; // Offset: 16 +}; + +struct SceneLevelMapConvertInfo { + keen::uint32 level; // Offset: 0 + keen::Guid imageId; // Offset: 4 + keen::ds::ScatterImageMetaData imageMetaData; // Offset: 20 +}; + +struct SceneLevelDistributionConvertParams { + keen::Guid sceneId; // Offset: 0 + keen::Guid levelDistributionSetObjectId; // Offset: 16 + keen::DsArray levelInfos; // Offset: 32 +}; + +struct SceneLevelDistributionSetInfo { + keen::uint2 mapSize; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 8 +}; + +typedef keen::WorldTransformFlag WorldTransformFlag; + +struct PrefabLibrary { + keen::ObjectReference collisions; // Offset: 0 + keen::ObjectReference connections; // Offset: 16 +}; + +struct PrefabLibrarySettings { + keen::ObjectReference collisions; // Offset: 0 +}; + +struct DungeonConnectionInfo { + keen::DsArray connectionPoints; // Offset: 0 +}; + +struct PrefabDirectory { +}; + +struct Prefab { + keen::float32 replacementWeight; // Offset: 96 +}; + +struct PrefabEntitySpawn { + keen::Guid objectId; // Offset: 352 + keen::ds::ContentPass contentPass; // Offset: 368 +}; + +typedef keen::TileContextFlags TileContextFlags; + +struct PrefabObjectContextInfo { + keen::ds::SceneObjectType objectType; // Offset: 0 + keen::ds::ContentPassIndex passIndex; // Offset: 8 + keen::ds::TileContextFlags type; // Offset: 24 + keen::uint32 index; // Offset: 28 + keen::bool forbidden; // Offset: 32 +}; + +struct WhiteboxTriggerScope { +}; + +struct PrefabLootEntity { + keen::uint32 spawnIndex; // Offset: 0 + keen::ds::LootContainerInfo entityLootInfo; // Offset: 8 +}; + +struct PrefabContent { + keen::DsArray spawns; // Offset: 0 + keen::DsArray models; // Offset: 40 + keen::DsArray destructionBubbles; // Offset: 80 + keen::DsArray pointLights; // Offset: 120 + keen::DsArray lootInfos; // Offset: 160 + keen::DsArray contextInfos; // Offset: 200 + keen::DsArray roads; // Offset: 240 + keen::DsArray displacementBlockers; // Offset: 280 + keen::DsArray passes; // Offset: 320 +}; + +struct PrefabContentPass { + keen::ds::ContentPassIndex passIndex; // Offset: 0 + keen::DsArray voxelObjects; // Offset: 16 + keen::DsArray voxelBrushes; // Offset: 56 + keen::DsArray tunnels; // Offset: 96 +}; + +struct PrefabEntityInfo { + keen::DsString description; // Offset: 0 + keen::ObjectReference prefab; // Offset: 40 + keen::ObjectReference templateReference; // Offset: 56 +}; + +struct PrefabVoxelWorldSceneContent { + keen::DsArray whiteboxes; // Offset: 0 + keen::DsArray voxelObjects; // Offset: 40 + keen::DsArray voxelBrushes; // Offset: 80 + keen::DsArray destructionBubbles; // Offset: 120 + keen::DsArray roads; // Offset: 160 + keen::DsArray tunnels; // Offset: 200 +}; + +struct PrefabWhiteboxResolveInfo { + keen::WorldTransform worldTransform; // Offset: 0 + keen::ds::ContentPass contentPass; // Offset: 56 +}; + +struct WhiteboxEntityList { + keen::DsArray singleEntityPrefabs; // Offset: 0 + keen::DsArray customPrefabs; // Offset: 40 +}; + +struct WhiteboxOptions { + keen::Guid whiteboxDefinitionId; // Offset: 0 + keen::bool reducePrefabProbability; // Offset: 16 + keen::DsArray prefabs; // Offset: 24 +}; + +struct PrefabInfo { + keen::ObjectReference prefab; // Offset: 0 + keen::float32 weight; // Offset: 16 + keen::DsArray tags; // Offset: 24 +}; + +typedef keen::WhiteboxTileType WhiteboxTileType; + +struct WhiteboxDefinitionModelVisibility { + keen::bool voxelMode; // Offset: 0 + keen::bool editMode; // Offset: 1 + keen::bool brushMode; // Offset: 2 +}; + +struct WhiteboxDefinition { + keen::ObjectReference model; // Offset: 0 + keen::ds::WhiteboxDefinitionModelVisibility modelVisibility; // Offset: 16 + keen::bool reducePrefabProbability; // Offset: 19 + keen::ds::WhiteboxTileType type; // Offset: 20 + keen::float2 gridSize; // Offset: 24 + keen::Color tintColor; // Offset: 32 + keen::float3 modelScale; // Offset: 36 +}; + +typedef keen::TileContextFlagMask TileContextFlagMask; + +struct WhiteboxTileContext { + keen::ds::TileContextFlagMask context; // Offset: 0 +}; + +struct SceneDungeonRoomWhitebox { + keen::DsString identifier; // Offset: 64 + keen::ObjectReference definition; // Offset: 104 + keen::float32 replacementProbability; // Offset: 120 + keen::float32 randomRotationOffsetX; // Offset: 124 + keen::float32 randomRotationOffsetY; // Offset: 128 + keen::float32 randomRotationOffsetZ; // Offset: 132 + keen::bool snapToGround; // Offset: 136 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 140 +}; + +struct DungeonRoomDirectory { +}; + +struct DungeonRoomScene { + keen::uint3 size; // Offset: 208 +}; + +struct DungeonRoomRayDedubg { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 + keen::bool hit; // Offset: 32 +}; + +struct DungeonRoomCollisionsDebugInfo { + keen::DsArray rayChecks; // Offset: 0 + keen::DsArray checkBoundingBoxes; // Offset: 40 +}; + +struct DungeonRoomShapes { + keen::DsArray boundingBoxes; // Offset: 0 +}; + +struct DungeonRoomSceneLayerGroup { +}; + +typedef keen::RoomConnectionPointType RoomConnectionPointType; + +struct DungeonRoomConnectionPoint { + keen::Guid objectId; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 16 + keen::Guid roomSceneId; // Offset: 32 + keen::Guid whiteboxDefinitionId; // Offset: 48 + keen::WorldTransform worldTransform; // Offset: 64 + keen::ds::RoomConnectionPointType type; // Offset: 120 + keen::AxisAlignedBox boundingBox; // Offset: 128 + keen::ds::string identifier; // Offset: 160 +}; + +struct DungeonRoomConnectionPoints { + keen::DsArray connections; // Offset: 0 +}; + +struct DungeonConnectionPointInfo { + keen::ds::DungeonRoomConnectionPoint pointA; // Offset: 0 + keen::ds::DungeonRoomConnectionPoint pointB; // Offset: 208 +}; + +struct DungeonConnectionPoints { + keen::DsArray connections; // Offset: 0 +}; + +struct DungeonWhiteboxReplacement { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid newWhiteboxDefinitionId; // Offset: 16 +}; + +struct DungeonWhiteboxReplacements { + keen::DsArray replacements; // Offset: 0 +}; + +struct DungeonEntranceInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::DsString identifier; // Offset: 16 + keen::WorldTransform transform; // Offset: 56 + keen::AxisAlignedBox boundingBox; // Offset: 112 +}; + +struct DungeonRoomEntranceList { + keen::DsArray entrances; // Offset: 0 +}; + +struct DungeonRoomEntranceConvertInfo { + keen::DsArray markedEntrances; // Offset: 0 +}; + +struct WhiteboxCollisionSetup { +}; + +struct WhiteboxCollisionGroup { +}; + +struct WhiteboxCollisionItem { + keen::ObjectReference definition; // Offset: 0 + keen::uint8 weight; // Offset: 16 + keen::float32 range; // Offset: 20 +}; + +struct WhiteboxCollisionGroupInfo { + keen::DsArray items; // Offset: 0 +}; + +struct WhiteboxCollisionInfo { + keen::DsArray groups; // Offset: 0 +}; + +struct WhiteboxContextSetup { + keen::ObjectReference groundTag; // Offset: 0 + keen::ObjectReference ceilingTag; // Offset: 16 +}; + +struct DungeonConnectionsConfig { +}; + +struct DungeonConnectionSetup { + keen::ObjectReference connectionWhitebox; // Offset: 0 + keen::ObjectReference replacementOtherConnection; // Offset: 16 + keen::ObjectReference replacementRoadPoint; // Offset: 32 + keen::ObjectReference replacementWithoutConnection; // Offset: 48 + keen::AxisAlignedBox connectionAABB; // Offset: 64 +}; + +typedef keen::WhiteboxNodeType WhiteboxNodeType; + +struct WhiteboxConvertInfo { + keen::HashKey32 id; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 + keen::ds::WhiteboxNodeType type; // Offset: 8 + keen::Guid replacementObjectId; // Offset: 12 + keen::Guid whiteboxInstanceId; // Offset: 28 + keen::Guid whiteboxDefinitionId; // Offset: 44 + keen::ds::ContentPassIndex passIndex; // Offset: 64 + keen::ds::WhiteboxTileContext roomTileContext; // Offset: 80 + keen::ds::WhiteboxTileContext requiredRoomTileContext; // Offset: 81 + keen::ds::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 82 + keen::DsArray requiredTriggers; // Offset: 88 + keen::DsArray triggerInfos; // Offset: 128 + keen::WorldTransform worldTransform; // Offset: 168 + keen::DsArray tags; // Offset: 224 + keen::float3 randomRotationOffset; // Offset: 264 + keen::float32 replacementProbability; // Offset: 276 + keen::ds::SceneEntitySpawnData entitySpawnData; // Offset: 280 + keen::Guid triggerGraphId; // Offset: 508 +}; + +struct WhiteboxReplacementPass { + keen::DsArray replacements; // Offset: 0 + keen::DsArray failedReplacements; // Offset: 40 +}; + +struct WhiteboxReplacementInfoPasses { + keen::DsArray passes; // Offset: 0 +}; + +struct WhiteboxReplacementInfoPass { + keen::ds::ContentPassIndex passIndex; // Offset: 0 + keen::DsArray replacements; // Offset: 16 +}; + +struct WhiteboxReplacementInfo { + keen::HashKey32 id; // Offset: 0 + keen::Guid sceneId; // Offset: 4 + keen::WorldTransform worldTransform; // Offset: 24 + keen::DsArray triggers; // Offset: 80 + keen::ds::WhiteboxTileContext roomTileContext; // Offset: 120 + keen::ds::SceneEntitySpawnData entitySpawnData; // Offset: 124 +}; + +struct SceneWhiteboxContentInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid whiteboxDefinitionId; // Offset: 16 + keen::uint32 passIndex; // Offset: 32 + keen::WorldTransform worldTransform; // Offset: 40 + keen::float3 randomRotationOffset; // Offset: 96 + keen::float32 replacementProbability; // Offset: 108 + keen::DsArray tags; // Offset: 112 + keen::ds::WhiteboxTileContext requiredRoomTileContext; // Offset: 152 + keen::ds::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 153 + keen::ds::SceneEntitySpawnData entitySpawnData; // Offset: 156 + keen::Guid triggerGraphId; // Offset: 384 +}; + +struct SceneWhiteboxInfo { + keen::DsArray whiteboxes; // Offset: 0 +}; + +struct SceneWhiteboxErrorInfo { + keen::uint32 failedReplacementCount; // Offset: 0 +}; + +struct WhiteboxTagList { + keen::DsArray tags; // Offset: 0 +}; + +struct SceneDungeonRoomInstance { + keen::DsString identifier; // Offset: 64 + keen::ObjectReference room; // Offset: 104 + keen::sint32 spawnLevelOffset; // Offset: 120 + keen::HashKey32 whiteboxSeed; // Offset: 124 +}; + +struct SceneDungeonRoomLayerGroupInstance { + keen::ObjectReference layerGroup; // Offset: 64 +}; + +struct DungeonEntranceDefinition { + keen::ObjectReference whitebox; // Offset: 0 +}; + +struct DungeonConnectionPriority { + keen::ObjectReference room; // Offset: 0 + keen::ObjectReference whitebox; // Offset: 16 +}; + +struct DungeonDirectory { +}; + +struct DungeonScene { +}; + +struct SceneDungeonInstance { + keen::ObjectReference dungeon; // Offset: 64 + keen::sint32 spawnLevelOffset; // Offset: 80 + keen::HashKey32 whiteboxSeed; // Offset: 84 +}; + +struct SceneWhiteboxPathParameters { + keen::WorldTransform transform; // Offset: 0 + keen::Guid rootSceneId; // Offset: 56 + keen::Guid sceneInstanceId; // Offset: 72 + keen::uint32 seed; // Offset: 88 +}; + +struct SceneWhiteboxPathList { + keen::ds::SceneWhiteboxPathParameters rootScene; // Offset: 0 + keen::DsArray subscenes; // Offset: 96 + keen::DsArray scatterScenes; // Offset: 136 +}; + +struct ContentLabelInfo { + keen::DsArray whiteboxLabels; // Offset: 0 + keen::ds::ObjectLootSettings lootSettings; // Offset: 40 +}; + +struct ecs.EntityTag { +}; + +struct ForbiddenEntityTags { +}; + +typedef keen::ObjectReference SequenceReference; + +typedef keen::SessionDebugAction SessionDebugAction; + +struct SessionDebugActionMessage { + keen::ds::SessionDebugAction action; // Offset: 0 +}; + +struct SessionDebugChannelInfo { + keen::ds::string name; // Offset: 0 +}; + +struct SessionDebugChannelsMessage { + keen::DsArray channels; // Offset: 0 +}; + +struct SessionDebugPacketChannel { + keen::uint16 messageSize; // Offset: 0 + keen::uint8 messageCount; // Offset: 2 +}; + +struct SessionDebugPacketsChannel { + keen::uint64 totalMessageSize; // Offset: 0 + keen::uint32 totalMessageCount; // Offset: 8 + keen::uint32 messageSize; // Offset: 12 + keen::uint16 messageCount; // Offset: 16 +}; + +typedef keen::SessionDebugPacketChannels SessionDebugPacketChannels; + +typedef keen::SessionDebugPacketsChannels SessionDebugPacketsChannels; + +struct SessionDebugPacket { + keen::Time time; // Offset: 0 + keen::Time oldestMessageTime; // Offset: 8 + keen::uint32 machineId; // Offset: 16 + keen::uint32 packetId; // Offset: 20 + keen::uint32 packetSize; // Offset: 24 + keen::uint8 machineIndex; // Offset: 28 + keen::ds::SessionDebugPacketChannels channels; // Offset: 30 +}; + +struct SessionDebugPacketMessage { + keen::Time time; // Offset: 0 + keen::uint32 machineId; // Offset: 8 + keen::ds::SessionDebugPacketsChannels packetsChannels; // Offset: 16 + keen::uint64 totalPacketsSize; // Offset: 784 + keen::uint32 packetsSize; // Offset: 792 +}; + +struct SessionDebugPacketSendMessage { + keen::DsArray packets; // Offset: 800 +}; + +struct SessionDebugPacketRecvMessage { + keen::DsArray packets; // Offset: 800 +}; + +struct SessionDebugMachineStats { + keen::uint32 machineIndex; // Offset: 0 + keen::uint32 lostPackets; // Offset: 4 + keen::Time roundTripTime; // Offset: 8 + keen::uint64 bandwidthLimitInBps; // Offset: 16 +}; + +struct SessionDebugStatsMessage { + keen::Time time; // Offset: 0 + keen::DsArray machineStats; // Offset: 8 +}; + +struct GameParameters { + keen::uint32 flameLevel; // Offset: 0 + keen::uint32 gameSettingsPreset; // Offset: 4 +}; + +typedef keen::SoundContentType SoundContentType; + +struct Sound { + keen::ds::SoundContentType contentType; // Offset: 0 +}; + +typedef keen::ObjectReference SoundReference; + +struct SoundContainer { +}; + +struct SoundContainerEntryShared { + keen::float32 chance; // Offset: 0 +}; + +struct SoundContainerEntry { +}; + +struct SoundContainerSoundEntry { + keen::ds::SoundReference sound; // Offset: 4 +}; + +struct SoundContainerContainerEntry { + keen::ds::SoundContainerReference container; // Offset: 4 +}; + +struct SoundContainerResource { + keen::DsArray> entries; // Offset: 64 +}; + +struct SoundContainerResourceEntry { +}; + +typedef keen::ObjectReference SoundResourceReference; + +struct SoundContainerResourceSoundEntry { + keen::ds::SoundResourceReference sound; // Offset: 4 +}; + +struct SoundContainerResourceContainerEntry { + keen::ds::SoundContainerResourceReference container; // Offset: 4 +}; + +struct SoundMusicPlaylist { + keen::DsArray tracks; // Offset: 0 + keen::bool shuffle; // Offset: 40 + keen::float32 fadeDuration; // Offset: 44 +}; + +typedef keen::ObjectReference SoundMusicPlaylistReference; + +typedef keen::SoundChannelConfiguration SoundChannelConfiguration; + +typedef keen::SoundDataFormat SoundDataFormat; + +struct SoundResource { + keen::ds::SoundChannelConfiguration channelConfiguration; // Offset: 0 + keen::ds::SoundDataFormat format; // Offset: 1 + keen::uint16 framesPerSecond; // Offset: 2 + keen::uint32 frameCount; // Offset: 4 + keen::Time duration; // Offset: 8 + keen::DsArray data; // Offset: 16 + keen::ContentHash dataHash; // Offset: 56 + keen::ds::string debugName; // Offset: 72 +}; + +struct GpuInformation { + keen::ds::string identifier; // Offset: 0 +}; + +struct SessionStarted { + keen::uint32 userId; // Offset: 0 + keen::uint32 sessionCount; // Offset: 4 + keen::ds::GpuInformation gpu; // Offset: 8 + keen::uint32 gameVersion; // Offset: 48 + keen::uint32 engineVersion; // Offset: 52 +}; + +struct CraftingAction { + keen::HashKey32 station; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct FoodBuffData { + keen::uint32 maxUsedSlots; // Offset: 0 + keen::uint32 activatedFoodBuffs; // Offset: 4 +}; + +struct SessionEnded { + keen::uint32 userId; // Offset: 0 + keen::uint32 maxPlayer; // Offset: 4 + keen::Time playTime; // Offset: 8 + keen::bool host; // Offset: 16 + keen::uint32 saveGameSize; // Offset: 20 + keen::ds::GpuInformation gpu; // Offset: 24 + keen::uint32 gameVersion; // Offset: 64 + keen::uint32 engineVersion; // Offset: 68 + keen::DsArray unlockedKnowledge; // Offset: 72 + keen::DsArray crafting; // Offset: 112 + keen::ds::FoodBuffData foodBuffData; // Offset: 152 + keen::bool didUsePersonelCrafting; // Offset: 160 + keen::ds::ecs::GameSettingsPreset preset; // Offset: 161 + keen::ds::ecs::GameSettings settings; // Offset: 168 +}; + +struct DedicatedSessionStarted { +}; + +struct DedicatedSessionEnded { + keen::Time playTime; // Offset: 0 +}; + +typedef keen::DeathCause DeathCause; + +struct PlayerDeath { + keen::ds::DeathCause cause; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::Guid causeGuid; // Offset: 16 + keen::bool wasDeadlyFog; // Offset: 32 +}; + +struct tracking.LevelUp { + keen::sint32 level; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::float3 position; // Offset: 16 +}; + +typedef keen::tracking::MinSpecError tracking.MinSpecError; + +typedef keen::tracking::MinSpecErrorMask tracking.MinSpecErrorMask; + +struct tracking.CrashInfo { + keen::uint32 userId; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::uint32 gameVersion; // Offset: 16 + keen::uint32 engineVersion; // Offset: 20 + keen::ds::tracking::MinSpecErrorMask minspecError; // Offset: 24 +}; + +struct TtfFontResource { + keen::ContentHash fontFileHash; // Offset: 0 +}; + +struct TtfFontInfo { + keen::Guid objectId; // Offset: 0 + keen::ContentHash fontFileHash; // Offset: 16 +}; + +struct TtfFont { +}; + +typedef keen::ObjectReference TtfFontReference; + +typedef keen::ObjectReference TtfFontResourceReference; + +typedef keen::UiHorizontalAlignment UiHorizontalAlignment; + +typedef keen::UiVerticalAlignment UiVerticalAlignment; + +struct UiTestStyles { + keen::ds::UiCharacterStyle test; // Offset: 0 +}; + +struct UiTestParagraphStyles { + keen::ds::UiParagraphStyle test; // Offset: 0 + keen::ds::UiParagraphStyle test2; // Offset: 64 +}; + +typedef keen::ObjectReference UiFontReference; + +struct UiBundleTest { + keen::ds::UiTexture test; // Offset: 120 + keen::ds::UiTestStyles namedStyles; // Offset: 168 + keen::ds::UiTestParagraphStyles namedParagraphStyles; // Offset: 288 + keen::ds::UiFontReference font; // Offset: 416 +}; + +struct UiFontRange { + keen::uint32 firstRune; // Offset: 0 + keen::uint32 lastRune; // Offset: 4 +}; + +struct UiGlyphSet { + keen::ds::TtfFontReference font; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::bool useForMetrics; // Offset: 20 + keen::bool bold; // Offset: 21 + keen::bool italic; // Offset: 22 +}; + +struct UiFont { +}; + +struct UiFontLanguage { + keen::bool En_Us; // Offset: 0 + keen::bool En_Gb; // Offset: 1 + keen::bool De_De; // Offset: 2 + keen::bool Nl_Nl; // Offset: 3 + keen::bool Fr_Fr; // Offset: 4 + keen::bool It_It; // Offset: 5 + keen::bool Es_Es; // Offset: 6 + keen::bool Es_Mx; // Offset: 7 + keen::bool Ru_Ru; // Offset: 8 + keen::bool Pl_Pl; // Offset: 9 + keen::bool Ja_Jp; // Offset: 10 + keen::bool Id_Id; // Offset: 11 + keen::bool Ko_Kr; // Offset: 12 + keen::bool Ms_My; // Offset: 13 + keen::bool Pt_Pt; // Offset: 14 + keen::bool Pt_Br; // Offset: 15 + keen::bool Th_Th; // Offset: 16 + keen::bool Tr_Tr; // Offset: 17 + keen::bool Vi_Vn; // Offset: 18 + keen::bool Zh_Cn; // Offset: 19 + keen::bool Zh_Tw; // Offset: 20 + keen::bool Fr_Ca; // Offset: 21 + keen::bool Es_419; // Offset: 22 + keen::bool Bg_Bg; // Offset: 23 + keen::bool Cs_Cz; // Offset: 24 + keen::bool Da_Dk; // Offset: 25 + keen::bool Fi_Fi; // Offset: 26 + keen::bool El_Gr; // Offset: 27 + keen::bool Hu_Hu; // Offset: 28 + keen::bool No_No; // Offset: 29 + keen::bool Nb_No; // Offset: 30 + keen::bool Ro_Ro; // Offset: 31 + keen::bool Sv_Se; // Offset: 32 + keen::bool Uk_Ua; // Offset: 33 + keen::bool Default; // Offset: 34 +}; + +typedef keen::UiFontLanguageMask UiFontLanguageMask; + +typedef keen::UiFontVariantFlag UiFontVariantFlag; + +typedef keen::UiFontVariantMask UiFontVariantMask; + +struct UiGlyphSetResource { + keen::uint32 fontIndex; // Offset: 0 + keen::float32 scale; // Offset: 4 + keen::DsArray ranges; // Offset: 8 + keen::ds::UiFontVariantMask fontVariantMask; // Offset: 48 +}; + +struct UiFontLanguageGroupResource { + keen::ds::UiFontLanguageMask groupLanguages; // Offset: 0 + keen::DsArray glyphSets; // Offset: 8 + keen::uint32 metricsIndex; // Offset: 48 + keen::bool isDefaultLanguageGroup; // Offset: 52 +}; + +struct UiFontResource { + keen::DsArray fonts; // Offset: 0 + keen::DsArray languageGroups; // Offset: 40 +}; + +struct UiFontPreviewLanguageGroupOutput { + keen::DsArray fonts; // Offset: 0 + keen::DsArray glyphSets; // Offset: 40 +}; + +typedef keen::ObjectReference UiFontResourceReference; + +typedef keen::UiObjectId UiObjectId; + +struct UiPassTreeFrameState { + keen::ds::UiObjectId stateId; // Offset: 0 + keen::uint32 size; // Offset: 8 +}; + +typedef keen::UiFrameFlags UiFrameFlags; + +struct UiFrameSizes { + keen::ds::UiPosition offset; // Offset: 0 + keen::ds::UiSize minSize; // Offset: 8 + keen::ds::UiSize prefSize; // Offset: 16 + keen::ds::UiSize maxSize; // Offset: 24 + keen::ds::UiSize stretch; // Offset: 32 +}; + +typedef keen::UiFrameLayoutType UiFrameLayoutType; + +struct UiFrameLayout { + keen::ds::UiFrameLayoutType type; // Offset: 0 + keen::bool horizontalScroll; // Offset: 4 + keen::bool verticalScroll; // Offset: 5 + keen::bool flow; // Offset: 6 + keen::bool splitter; // Offset: 7 + keen::ds::UiSize spacing; // Offset: 8 + keen::uint32 framesPerGridRow; // Offset: 16 +}; + +struct UiFrameBorder { + keen::UiBorder margin; // Offset: 0 + keen::UiBorder padding; // Offset: 16 +}; + +struct UiFrameScrollState { + keen::ds::UiPosition scrollOffset; // Offset: 0 + keen::ds::UiSize scrollAreaSize; // Offset: 8 +}; + +struct UiFrameLayoutState { + keen::ds::UiSize minSize; // Offset: 0 + keen::ds::UiSize prefSize; // Offset: 8 + keen::ds::UiSize maxSize; // Offset: 16 + keen::ds::UiSize stretch; // Offset: 24 + keen::bool flowChild; // Offset: 32 +}; + +struct UiPassTreeFrame { + keen::ds::UiObjectId frameId; // Offset: 0 + keen::ds::UiObjectId localFrameId; // Offset: 8 + keen::ds::UiObjectId highestChildUiFrameId; // Offset: 16 + keen::ds::UiFrameFlags flags; // Offset: 24 + keen::uint32 inputMask; // Offset: 28 + keen::ds::UiFrameSizes sizes; // Offset: 32 + keen::ds::UiFrameLayout layout; // Offset: 72 + keen::ds::UiFrameBorder border; // Offset: 92 + keen::UiAlignment alignment; // Offset: 124 + keen::UiAlignment childAlignment; // Offset: 126 + keen::DsString debugName; // Offset: 128 + keen::DsArray children; // Offset: 168 + keen::DsArray states; // Offset: 208 + keen::ds::UiFrameScrollState scrollState; // Offset: 248 + keen::ds::UiFrameLayoutState layoutState; // Offset: 264 + keen::UiRectangle oldRect; // Offset: 300 + keen::UiRectangle rect; // Offset: 316 + keen::ds::UiPosition offset; // Offset: 332 +}; + +typedef keen::DsOptional UiPassTreeFrameOpt; + +struct UiPassTreeWindow { + keen::ds::UiObjectId windowId; // Offset: 0 + keen::uint32 zOrder; // Offset: 8 + keen::uint32 inputMask; // Offset: 12 + keen::uint32 flags; // Offset: 16 + keen::ds::UiPosition offset; // Offset: 20 + keen::float32 scale; // Offset: 28 + keen::ds::UiPassTreeFrameOpt rootFrame; // Offset: 32 + keen::DsString debugName; // Offset: 48 +}; + +struct UiPassTreeScreen { + keen::ds::UiObjectId screenId; // Offset: 0 + keen::UiRectangle rect; // Offset: 8 + keen::DsArray windows; // Offset: 24 +}; + +struct UiPassTree { + keen::uint32 systemUpdateCounter; // Offset: 0 + keen::DsArray screens; // Offset: 8 +}; + +typedef keen::UiFrameFlag UiFrameFlag; + +struct UiSplitterSizes { + keen::ds::UiSize minSize; // Offset: 0 + keen::ds::UiSize prefSize; // Offset: 8 + keen::ds::UiSize maxSize; // Offset: 16 + keen::ds::UiSize stretch; // Offset: 24 +}; + +struct UiFrameSplitterData { + keen::ds::UiPosition position; // Offset: 0 + keen::ds::UiPosition positionClamped; // Offset: 8 + keen::ds::UiPosition dragSplitterPosition; // Offset: 16 + keen::ds::UiPosition dragMousePosition; // Offset: 24 + keen::ds::UiSplitterSizes sizes; // Offset: 32 +}; + +struct UiFrameSplitterState { + keen::StaticArray splitter; // Offset: 0 +}; + +struct VoxelTemperatureResource { + keen::int3 worldOrigin; // Offset: 0 + keen::uint3 worldSize; // Offset: 12 + keen::uint3 sizeInVoxels; // Offset: 24 + keen::DsArray voxelData; // Offset: 40 +}; + +typedef keen::ObjectReference VoxelTemperatureReference; + +typedef keen::VoxelWorldResourceType VoxelWorldResourceType; + +struct VoxelWorldResource { + keen::ds::VoxelWorldResourceType type; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::int3 origin; // Offset: 12 + keen::ContentHash lowLODData; // Offset: 24 + keen::uint32 lowLODMaxLevel; // Offset: 40 + keen::StaticArray materialGuids; // Offset: 44 + keen::uint8 defaultTerrainMaterial; // Offset: 4140 +}; + +struct VoxelWorldChunkResource { + keen::ContentHash highLODData; // Offset: 0 + keen::DsArray waterTileNotEmptyMask; // Offset: 16 +}; + +typedef keen::ObjectReference VoxelWorldReference; + +struct SolidVoxelMaterialWithId { + keen::Guid id; // Offset: 0 + keen::Guid stoneMaterialId; // Offset: 16 + keen::bool canReceiveFloorMaterial; // Offset: 32 +}; + +struct BiomeVoxelMaterialMapping { + keen::Guid id; // Offset: 0 + keen::StaticArray biomes; // Offset: 16 +}; + +struct VoxelMaterialResolvedList { + keen::DsArray solidMaterials; // Offset: 0 + keen::DsArray buildingMaterials; // Offset: 40 + keen::DsArray biomeMaterials; // Offset: 80 +}; + +struct VoxelMaterialSettings { + keen::uint8 defaultTerrainMaterial; // Offset: 0 +}; + +struct VoxelDisplacementMaterial { + keen::Guid id; // Offset: 0 + keen::ds::VoxelWorldDisplacement side; // Offset: 16 + keen::ds::VoxelWorldDisplacement top; // Offset: 44 +}; + +struct VoxelMaterialDisplacement { + keen::DsArray materials; // Offset: 0 +}; + +typedef keen::FogVoxelMaterialResolvedType FogVoxelMaterialResolvedType; + +struct FogVoxelMaterialResolved { + keen::Guid id; // Offset: 0 + keen::ds::FogVoxelMaterialResolvedType type; // Offset: 16 + keen::uint8 level; // Offset: 17 +}; + +struct FogVoxelMaterialResolvedList { + keen::DsArray fogMaterials; // Offset: 0 +}; + +struct WaterVoxelMaterialResolvedList { + keen::Guid waterMaterial; // Offset: 0 +}; + +struct TemperatureVoxelMaterialResolvedList { + keen::DsArray temperatureMaterials; // Offset: 0 +}; + +struct BuildingMaterialMappingResource { + keen::uint8 localId; // Offset: 0 + keen::Guid materialId; // Offset: 4 +}; + +struct BuildingMaterialPaletteResource { + keen::DsArray mappings; // Offset: 0 +}; + +typedef keen::ReservedMaterialId ReservedMaterialId; + +struct FogRemovalSetup { + keen::uint8 level; // Offset: 0 +}; + +struct FogRemovalDirectory { +}; + +struct FogRemovalLink { + keen::ObjectReference fogId; // Offset: 0 +}; + +typedef keen::FogVoxelMappingType FogVoxelMappingType; + +struct FogVoxelMapping { + keen::ds::FogVoxelMappingType type; // Offset: 0 + keen::uint8 level; // Offset: 1 + keen::ds::FogRemovalId removalId; // Offset: 4 + keen::AxisAlignedBox boundingBox; // Offset: 16 +}; + +struct FogVoxelMappingResource { + keen::DsArray mapping; // Offset: 0 +}; + +struct VoxelModelResource { + keen::uint3 size; // Offset: 0 + keen::DsArray data; // Offset: 16 + keen::bool isTerrain; // Offset: 56 +}; + +struct VoxelModelInfo { + keen::uint3 size; // Offset: 0 + keen::DsArray materialMap; // Offset: 16 + keen::bool isTerrain; // Offset: 56 +}; + +typedef keen::VoxelObjectPreviewMode VoxelObjectPreviewMode; + +struct VoxelObjectDefinition { + keen::ObjectReference materialPalette; // Offset: 0 + keen::ObjectReference material; // Offset: 16 + keen::bool invertEmptyConservative; // Offset: 32 + keen::ds::VoxelObjectPreviewMode previewMode; // Offset: 33 +}; + +struct TerrainVoxelObjectDefinition { + keen::ObjectReference model; // Offset: 0 +}; + +struct VoxelWorldObject { + keen::ds::ImageReference heightmap; // Offset: 0 + keen::ObjectReference compositeHeightmap; // Offset: 16 + keen::float32 heightScale; // Offset: 32 + keen::bool useCompositeScatterImage; // Offset: 36 + keen::bool displaceHeightmap; // Offset: 37 + keen::int3 origin; // Offset: 40 +}; + +struct VoxelWorldInfo { + keen::int2 minTile; // Offset: 0 + keen::int2 maxTile; // Offset: 8 + keen::sint32 yOffset; // Offset: 16 + keen::uint2 heightMapSize; // Offset: 20 + keen::float32 heightMapHeight; // Offset: 28 +}; + +struct VoxelWorldTerraAction { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::uint32 mode; // Offset: 16 +}; + +struct VoxelWorldTerraActions { + keen::DsArray actions; // Offset: 0 +}; + +struct VoxelRoadShapeDefinition { + keen::float32 roadWidth; // Offset: 0 +}; + +struct VoxelWorldAutomatedTest { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference referenceVoxelData; // Offset: 16 +}; + +typedef keen::DestructionVoxelBlockType DestructionVoxelBlockType; + +struct VoxelWorldConverterConfig { + keen::bool buildWaterVoxels; // Offset: 0 +}; + +struct WeatherPhenomenon { + keen::ObjectReference cloudMap; // Offset: 0 + keen::bool tiling; // Offset: 16 +}; + +struct WeatherSnowBorderConfiguration { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 + keen::uint32 maskResolutionDivisor; // Offset: 24 +}; + +struct WeatherSystemConfiguration { + keen::ObjectReference scene; // Offset: 0 + keen::ds::WeatherSnowBorderConfiguration snowBorder; // Offset: 16 + keen::uint32 layerMaskResolutionDivisor; // Offset: 44 +}; + +struct WeatherHeightMap { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 +}; + +struct WeatherPhenomenonProbability { + keen::float32 probability; // Offset: 0 + keen::TimeRange duration; // Offset: 8 +}; + +struct WeatherLayerConfiguration { + keen::bool useMaskResolutionDivisor; // Offset: 0 + keen::ObjectReference restrictMask; // Offset: 4 + keen::ObjectReference excludeMask; // Offset: 20 + keen::bool maskClouds; // Offset: 36 + keen::bool maskRain; // Offset: 37 + keen::ds::WeatherPhenomenonProbability nothingProbability; // Offset: 40 +}; + +typedef keen::WeatherPhenomenonEffect WeatherPhenomenonEffect; + +struct WeatherPhenomenonConfiguration { + keen::ds::WeatherPhenomenonProbability probability; // Offset: 0 + keen::ObjectReference phenomenon; // Offset: 24 + keen::FloatRange scale; // Offset: 40 + keen::FloatRange rotation; // Offset: 48 + keen::FloatRange moveSpeed; // Offset: 56 + keen::bool alignRotationToMoveSpeed; // Offset: 64 + keen::Time spawnFadeTime; // Offset: 72 + keen::Time despawnFadeTime; // Offset: 80 + keen::ds::WeatherPhenomenonEffect effect; // Offset: 88 + keen::float32 rainThreshold; // Offset: 92 +}; + +struct WeatherSystemMaskResource { + keen::float2 bboxMin; // Offset: 0 + keen::float2 bboxMax; // Offset: 8 + keen::float2 worldToRelative; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::DsArray data; // Offset: 32 +}; + +struct WeatherSystemResource { + keen::HashKey32 dataHash; // Offset: 0 + keen::uint2 worldSize; // Offset: 4 + keen::float2 snowBorderRangeMapping; // Offset: 12 + keen::ds::WeatherSystemMaskResource snowBorderMask; // Offset: 24 + keen::DsArray layers; // Offset: 96 + keen::DsArray layerMasks; // Offset: 136 + keen::DsArray phenomenons; // Offset: 176 + keen::DsArray rainMasks; // Offset: 216 +}; + +typedef keen::WeatherLayerMaskIndex WeatherLayerMaskIndex; + +typedef keen::WeatherSystemPhenomenonResourceFlags WeatherSystemPhenomenonResourceFlags; + +typedef keen::WeatherRainMaskIndex WeatherRainMaskIndex; + +struct WeatherSystemPhenomenonResource { + keen::Guid guid; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::ds::WeatherSystemPhenomenonResourceFlags flags; // Offset: 20 + keen::Time durationMin; // Offset: 24 + keen::Time durationMax; // Offset: 32 + keen::float32 radiusMin; // Offset: 40 + keen::float32 radiusMax; // Offset: 44 + keen::float32 moveSpeedMin; // Offset: 48 + keen::float32 moveSpeedMax; // Offset: 52 + keen::Time spawnFadeTime; // Offset: 56 + keen::Time despawnFadeTime; // Offset: 64 + keen::float32 rainThreshold; // Offset: 72 + keen::ds::WeatherRainMaskIndex rainMaskIndex; // Offset: 76 + keen::ObjectReference renderer; // Offset: 80 + keen::ds::WeatherPhenomenonEffect effect; // Offset: 96 +}; + +struct WeatherSystemLayerResource { + keen::Guid guid; // Offset: 0 + keen::ds::WeatherLayerMaskIndex restrictMaskIndex; // Offset: 16 + keen::ds::WeatherLayerMaskIndex excludeMaskIndex; // Offset: 17 + keen::DsArray phenomenonIndices; // Offset: 24 + keen::ds::WeatherSystemPhenomenonResource nothingPhenomenon; // Offset: 64 +}; + +struct WeatherSystemLayerMaskResource { + keen::ds::WeatherSystemMaskResource mask; // Offset: 0 + keen::ObjectReference renderer; // Offset: 72 +}; + +typedef keen::WeatherSystemPhenomenonResourceFlag WeatherSystemPhenomenonResourceFlag; + +struct WeatherSystemDebugState { + keen::Time currentTime; // Offset: 0 + keen::DsArray layers; // Offset: 8 + keen::DsArray instances; // Offset: 48 +}; + +struct WeatherSystemDebugLayerState { + keen::Guid guid; // Offset: 0 + keen::Time nextPhenomenonTime; // Offset: 16 + keen::uint32 currentInstanceHandle; // Offset: 24 + keen::uint32 previousInstanceHandle; // Offset: 28 +}; + +struct WeatherSystemDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::Guid guid; // Offset: 4 + keen::float2 position; // Offset: 20 + keen::float32 rotation; // Offset: 28 + keen::float32 radius; // Offset: 32 + keen::float32 moveSpeed; // Offset: 36 + keen::float32 fade; // Offset: 40 +}; + +struct WeatherSystemDebugSkipToNextPhenomenonMessage { + keen::uint32 layerIndex; // Offset: 0 +}; + +typedef keen::WeatherPhenomenonIndex WeatherPhenomenonIndex; + +struct weather.save_v0.WeatherSavedLayerInstance { + keen::ds::WeatherPhenomenonIndex phenomenonIndex; // Offset: 0 + keen::WorldPosition spawnPosition; // Offset: 8 + keen::Angle rotation; // Offset: 32 + keen::float32 radius; // Offset: 36 + keen::float32 moveSpeed; // Offset: 40 + keen::Time spawnTime; // Offset: 48 + keen::Time despawnTime; // Offset: 56 +}; + +struct weather.save_v0.WeatherSavedLayer { + keen::Time nextPhenomenon; // Offset: 0 + keen::ds::weather::save_v0::WeatherSavedLayerInstance currentInstance; // Offset: 8 + keen::ds::weather::save_v0::WeatherSavedLayerInstance previousInstance; // Offset: 72 +}; + +typedef keen::WeatherLayerIndex WeatherLayerIndex; + +struct WeatherSpawnParameters { + keen::float32 eventProbabilityModifier; // Offset: 0 +}; + +struct g38_options.SettingsHeader { + keen::uint32 version; // Offset: 0 +}; + +typedef keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode g38_options.pc.v5_dedicated_song_selection_binding.machine.WindowMode; + +typedef keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings g38_options.pc.v5_dedicated_song_selection_binding.machine.NvidiaReflexModeSettings; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.GraphicsSettings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode windowMode; // Offset: 0 + keen::int2 windowPosition; // Offset: 4 + keen::uint2 windowSize; // Offset: 12 + keen::uint2 forceBackbufferResolution; // Offset: 20 + keen::float32 renderScale; // Offset: 28 + keen::bool automaticRenderScale; // Offset: 32 + keen::bool vsync; // Offset: 33 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings nvidiaReflex; // Offset: 36 + keen::ds::RenderSettings render; // Offset: 40 + keen::bool useDefaultRenderSettings; // Offset: 120 + keen::bool sleepInBackground; // Offset: 121 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.SoundSettings { + keen::bool muteInBackground; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings graphics; // Offset: 4 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings sound; // Offset: 128 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GraphicsSettings { + keen::float32 fov; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.SoundSettings { + keen::float32 masterVolume; // Offset: 0 + keen::float32 musicVolume; // Offset: 4 + keen::float32 uiVolume; // Offset: 8 + keen::float32 gameVolume; // Offset: 12 + keen::float32 voiceVolume; // Offset: 16 + keen::bool dynamicReverb; // Offset: 20 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.MouseSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::ds::AttackDirectionInput attackDirection; // Offset: 10 + keen::bool enableSmoothing; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GamepadSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::ds::AttackDirectionInput attackDirection; // Offset: 10 + keen::ds::ControllerButtonStyle controllerButtonStyle; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.InputSettings { + keen::ds::input_mapping::PresetId selectedKeyboardMousePresetId; // Offset: 0 + keen::ds::input_mapping::PresetId selectedGamepadPresetId; // Offset: 1 + keen::ds::input_mapping::serialize::InputBindings customInputBindings; // Offset: 8 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings mouse; // Offset: 56 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings gamepad; // Offset: 68 +}; + +typedef keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting g38_options.pc.v5_dedicated_song_selection_binding.user.SpiderSetting; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GameplaySettings { + keen::float cameraZoomFactor; // Offset: 0 + keen::bool enableIdleCameraTransition; // Offset: 4 + keen::bool reduceDynamicCameraMovement; // Offset: 5 + keen::float screenShakeStrength; // Offset: 8 + keen::bool displayDamageNumbers; // Offset: 12 + keen::bool displayDamagePropertyTexts; // Offset: 13 + keen::bool keepTargetLockWhenSprinting; // Offset: 14 + keen::bool breakTargetLockOnKill; // Offset: 15 + keen::uint32 hudAspectRatioWidth; // Offset: 16 + keen::float textScale; // Offset: 20 + keen::bool useAdditionalSymbolsForItemRarity; // Offset: 24 + keen::bool hideHUD; // Offset: 25 + keen::bool hideHelmet; // Offset: 26 + keen::bool hideGloves; // Offset: 27 + keen::bool showCharacterName; // Offset: 28 + keen::ds::ItemRarity itemDeletionProtectionLevel; // Offset: 29 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting hideSpiders; // Offset: 30 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostUserGroup { + keen::bool enable; // Offset: 0 + keen::ds::string password; // Offset: 8 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostSettings { + keen::uint32 maxSlots; // Offset: 0 + keen::ds::string password; // Offset: 8 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup guests; // Offset: 48 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup friends; // Offset: 96 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup admins; // Offset: 144 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings graphics; // Offset: 4 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings sound; // Offset: 8 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings input; // Offset: 32 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings gameplay; // Offset: 112 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings hostSettings; // Offset: 144 + keen::uint32 playedSessions; // Offset: 336 +}; + +struct g38_options.pc.v4_dedicated_glider_binding.machine.Settings { +}; + +struct g38_options.pc.v4_dedicated_glider_binding.user.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct g38_options.pc.v3_early_access_release.machine.Settings { +}; + +struct g38_options.pc.v3_early_access_release.user.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct G38SupportedFeatures { + keen::ds::RenderSettingsFeatures renderFeatures; // Offset: 0 + keen::bool isNvReflexAvailable; // Offset: 8 +}; + +struct debug.CameraPathKeyframe { + keen::Matrix43 transform; // Offset: 0 + keen::Time time; // Offset: 64 +}; + +struct debug.CameraRecording { + keen::DsArray cameraPath; // Offset: 0 +}; + +} diff --git a/reflection/game_structures.h b/reflection/game_structures.h new file mode 100644 index 0000000..2e82383 --- /dev/null +++ b/reflection/game_structures.h @@ -0,0 +1,62643 @@ +#pragma once // Include guard to prevent multiple inclusions + +#include // Include standard integer types (uint32_t, etc.) + +namespace keen { // Assuming a 'keen' namespace, adjust as needed + +struct HashKey32 { + keen::uint32 value; // Offset: 0 +}; + +typedef keen::HashKey32 AchievementId; + +typedef keen::uint32 AchievementValue; + +typedef keen::ObjectReference LocaTagReference; + +typedef keen::LocaTagReference NameLocaTag; + +typedef keen::LocaTagReference DescriptionLocaTag; + +struct AchievementData { + keen::NameLocaTag name; // Offset: 0 + keen::DescriptionLocaTag description; // Offset: 16 + keen::bool hasUnlockValue; // Offset: 32 + keen::AchievementValue unlockValue; // Offset: 36 +}; + +typedef keen::ObjectReference AchievementDataReference; + +typedef keen::BlobString string; + +typedef keen::sint32 int; + +struct Achievement { + keen::AchievementId id; // Offset: 0 + keen::bool hasUnlockValue; // Offset: 4 + keen::AchievementValue unlockValue; // Offset: 8 + keen::uint32 dosId; // Offset: 12 + keen::string steamName; // Offset: 16 + keen::string steamStat; // Offset: 24 + keen::int npId; // Offset: 32 + keen::int xsapiId; // Offset: 36 + keen::Guid guid; // Offset: 40 + keen::string dbgName; // Offset: 56 +}; + +struct AchievementDefinitionResource { + keen::BlobArray achievements; // Offset: 0 +}; + +typedef keen::ObjectReference AchievementDefinitionReference; + +struct AchievementSubDirectory { +}; + +struct AchievementDirectory { +}; + +enum class AmbientSfxPlaybackType { + PlayAlways = 0, + PlayOnlyWhenInBattle = 1, + PlayOnlyWhenNotInBattle = 2, +}; + +enum class AmbientEitherOrBoth { + No = 0, + Yes = 1, + Any = 2, +}; + +typedef keen::ObjectReference SoundContainerReference; + +enum class AmbientTags { + ForestProp = 0, + BendableBush = 1, + VukahProp = 2, + AncientProp = 3, + PrisonProp = 4, + GraveProp = 5, + MineProp = 6, + CaveProp = 7, +}; + +typedef keen::Bitmask8 AmbientMask; + +enum class WeatherState { + Clear = 0, + Rain = 1, + Snow = 2, + Blizzard = 3, +}; + +struct AmbientSoundEffectEntry { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::SoundContainerReference soundContainer; // Offset: 8 + keen::ObjectReference ingameTimeSpan; // Offset: 24 + keen::AmbientSfxPlaybackType playbackType; // Offset: 40 + keen::AmbientMask additionalTagsInclude; // Offset: 41 + keen::Bitmask8 weather; // Offset: 42 +}; + +enum class AmbientEnvironment { + None = 0, + Grassland = 1, + Desert = 2, + Wetland = 3, + Steppes = 4, + Deepforest = 5, + ColdHeights = 6, + TallTrees = 7, + AncientRooftop = 8, + Volcano = 9, + FogWell = 10, + Capital = 11, + PrisonDungeon = 12, + GraveDungeon = 13, + BarracksDungeon = 14, + BoneDungeon = 15, + HollowDungeon = 16, + FortressCraterGarrison = 17, + Cave = 18, + NaturalCave = 19, + Mine = 20, + AncientStructure = 21, + AncientPuzzle = 22, + DesertTemple = 23, + PlayerStart = 24, +}; + +struct AmbientSoundEffect { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::bool inAllEnvironments; // Offset: 8 + keen::AmbientEitherOrBoth inFog; // Offset: 9 + keen::AmbientEitherOrBoth indoors; // Offset: 10 + keen::AmbientEnvironment environment; // Offset: 11 + keen::AmbientMask ambientTagsInclude; // Offset: 12 + keen::AmbientMask ambientTagsExclude; // Offset: 13 +}; + +typedef keen::float32 float; + +struct Time { + keen::sint64 value; // Offset: 0 +}; + +struct AmbientSoundEffectParameters { + keen::float sfxLifeTimeInSeconds; // Offset: 0 + keen::float chanceToPlaySound; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::uint32 daytimeFadeValuePlusMinusMinutes; // Offset: 64 + keen::float playerIsInFogThreshold; // Offset: 68 + keen::float startFogEffectsThreshold; // Offset: 72 + keen::float stopFogEffectsThreshold; // Offset: 76 + keen::float playerIsInEnvironmentThreshold; // Offset: 80 + keen::float startEnvironmentEffectsThreshold; // Offset: 84 + keen::float stopEnvironmentEffectsThreshold; // Offset: 88 + keen::float baseAmbienceThreshold; // Offset: 92 + keen::float smallEnvironmentMultiplier; // Offset: 96 + keen::float oneshotDistanceMultiplier; // Offset: 100 + keen::float temporalSmoothingSpeed; // Offset: 104 + keen::Time silenceAfterVictoryDuration; // Offset: 112 + keen::float fogMusicFogVolumeMod; // Offset: 120 + keen::float environmentMusicFogVolumeMod; // Offset: 124 + keen::float environmentMusicEnvVolumeMod; // Offset: 128 + keen::float fogLoopsFogVolumeMod; // Offset: 132 + keen::float environmentLoopsFogVolumeMod; // Offset: 136 + keen::float environmentLoopsEnvVolumeMod; // Offset: 140 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 144 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 152 +}; + +struct AmbientSfxSubDirectory { +}; + +struct AmbientSfxDirectory { +}; + +enum class SoundContainerMode { + Random = 0, +}; + +enum class SoundContainerScene { + Sfx = 0, + Music = 1, + Ui = 2, + Voice = 3, +}; + +struct SoundContainerShared { + keen::SoundContainerMode mode; // Offset: 0 + keen::SoundContainerScene scene; // Offset: 1 + keen::bool loop; // Offset: 2 + keen::bool loopSameChosenEntry; // Offset: 3 + keen::uint32 avoidRepeatingLastX; // Offset: 4 + keen::float32 volume; // Offset: 8 + keen::float32 volumeRandomness; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 pitchRandomness; // Offset: 20 + keen::Time sleep; // Offset: 24 + keen::Time sleepRandomness; // Offset: 32 + keen::bool hasPosition; // Offset: 40 + keen::float32 minDistance; // Offset: 44 + keen::float32 maxDistance; // Offset: 48 + keen::bool hasRandomPosition; // Offset: 52 + keen::float32 randomLeftRight; // Offset: 56 + keen::float32 randomFrontBack; // Offset: 60 +}; + +typedef keen::uint32 uint; + +struct AmbientSfxResource { + keen::bool inAllEnvironments; // Offset: 0 + keen::AmbientEitherOrBoth inFog; // Offset: 1 + keen::AmbientEitherOrBoth indoors; // Offset: 2 + keen::AmbientEnvironment environment; // Offset: 3 + keen::AmbientSfxPlaybackType playbackType; // Offset: 4 + keen::Bitmask8 weather; // Offset: 5 + keen::AmbientMask ambientTagsInclude; // Offset: 6 + keen::AmbientMask ambientTagsExclude; // Offset: 7 + keen::float32 volume; // Offset: 8 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::SoundContainerShared soundContainerShared; // Offset: 32 + keen::uint soundStart; // Offset: 96 + keen::uint soundCount; // Offset: 100 + keen::Guid id; // Offset: 104 + keen::BlobString debugNameEffect; // Offset: 120 + keen::BlobString debugNameEffectEntry; // Offset: 128 +}; + +struct AmbientSfxCollectionResource { + keen::BlobArray effects; // Offset: 0 + keen::BlobArray loops; // Offset: 8 + keen::BlobArray music; // Offset: 16 + keen::BlobArray sounds; // Offset: 24 +}; + +struct AmbientEventSounds { + keen::SoundContainerReference battleStartJingle; // Offset: 0 + keen::SoundContainerReference battleEndJingle; // Offset: 16 + keen::SoundContainerReference bossMusicScavenger; // Offset: 32 + keen::SoundContainerReference bossMusicMonstrosity; // Offset: 48 + keen::SoundContainerReference bossMusicFoggerHeavy; // Offset: 64 + keen::SoundContainerReference bossMusicFoggerMage; // Offset: 80 + keen::SoundContainerReference bossMusicVukahBigfoot; // Offset: 96 + keen::SoundContainerReference bossMusicLurchie; // Offset: 112 + keen::SoundContainerReference bossMusicHollow; // Offset: 128 + keen::SoundContainerReference bossMusicCyclops; // Offset: 144 + keen::SoundContainerReference bossMusicDragon; // Offset: 160 + keen::SoundContainerReference bushCollision; // Offset: 176 +}; + +typedef keen::ObjectReference SoundContainerResourceReference; + +struct AmbientEventSoundsResource { + keen::SoundContainerResourceReference battleStartJingle; // Offset: 0 + keen::SoundContainerResourceReference battleEndJingle; // Offset: 16 + keen::SoundContainerResourceReference bossMusicScavenger; // Offset: 32 + keen::SoundContainerResourceReference bossMusicMonstrosity; // Offset: 48 + keen::SoundContainerResourceReference bossMusicFoggerHeavy; // Offset: 64 + keen::SoundContainerResourceReference bossMusicFoggerMage; // Offset: 80 + keen::SoundContainerResourceReference bossMusicVukahBigfoot; // Offset: 96 + keen::SoundContainerResourceReference bossMusicLurchie; // Offset: 112 + keen::SoundContainerResourceReference bossMusicHollow; // Offset: 128 + keen::SoundContainerResourceReference bossMusicCyclops; // Offset: 144 + keen::SoundContainerResourceReference bossMusicDragon; // Offset: 160 + keen::SoundContainerResourceReference bushCollision; // Offset: 176 +}; + +struct AmbientParameterResource { + keen::uint16 chanceForSilence; // Offset: 0 + keen::float sfxLifeTimeInSeconds; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::float playerIsInFogThreshold; // Offset: 64 + keen::float startFogEffectsThreshold; // Offset: 68 + keen::float stopFogEffectsThreshold; // Offset: 72 + keen::float playerIsInEnvironmentThreshold; // Offset: 76 + keen::float startEnvironmentEffectsThreshold; // Offset: 80 + keen::float stopEnvironmentEffectsThreshold; // Offset: 84 + keen::float baseAmbienceThreshold; // Offset: 88 + keen::float smallEnvironmentMultiplier; // Offset: 92 + keen::float oneshotDistanceMultiplier; // Offset: 96 + keen::float temporalSmoothingSpeed; // Offset: 100 + keen::Time silenceAfterVictoryDuration; // Offset: 104 + keen::float fogMusicFogVolumeMod; // Offset: 112 + keen::float environmentMusicFogVolumeMod; // Offset: 116 + keen::float environmentMusicEnvVolumeMod; // Offset: 120 + keen::float fogLoopsFogVolumeMod; // Offset: 124 + keen::float environmentLoopsFogVolumeMod; // Offset: 128 + keen::float environmentLoopsEnvVolumeMod; // Offset: 132 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 136 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 144 +}; + +typedef keen::ObjectReference VfxReference; + +typedef keen::ObjectReference IngameTimeSpanReference; + +struct AmbientVisualEffectEntry { + keen::VfxReference vfx; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Bitmask8 weather; // Offset: 32 +}; + +struct AmbientVisualEffect { + keen::AmbientEnvironment environment; // Offset: 0 + keen::bool inAllEnvironments; // Offset: 1 + keen::AmbientEitherOrBoth inFog; // Offset: 2 +}; + +struct AmbientVfxSubDirectory { +}; + +struct AmbientVfxDirectory { +}; + +struct AmbientVfxResource { + keen::VfxReference vfx; // Offset: 0 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::AmbientEnvironment environment; // Offset: 32 + keen::bool inAllEnvironments; // Offset: 33 + keen::AmbientEitherOrBoth inFog; // Offset: 34 + keen::Bitmask8 weather; // Offset: 35 + keen::Guid id; // Offset: 36 +}; + +struct AmbientVfxCollectionResource { + keen::BlobArray effects; // Offset: 0 +}; + +struct AmbientEnvironmentMapResource { + keen::StaticArray voxelIdToAmbientEnvironmentMap; // Offset: 0 +}; + +struct AmbientPPPDawnDuskOffsets { + keen::Time nightAdaptationStartOffset; // Offset: 0 + keen::Time nightAdaptationEndOffset; // Offset: 8 + keen::Time dayAdaptationStartOffset; // Offset: 16 + keen::Time dayAdaptationEndOffset; // Offset: 24 +}; + +typedef keen::uint32 Color; + +struct AmbientPostProcessingParameters { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::AmbientPPPDawnDuskOffsets dawnDuskOffset; // Offset: 8 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientPostProcessingResource { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::Time nightAdaptationStartOffset; // Offset: 8 + keen::Time nightAdaptationEndOffset; // Offset: 16 + keen::Time dayAdaptationStartOffset; // Offset: 24 + keen::Time dayAdaptationEndOffset; // Offset: 32 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientCollectionResource { + keen::ObjectReference sfxCollection; // Offset: 0 + keen::ObjectReference vfxCollection; // Offset: 16 + keen::ObjectReference parameters; // Offset: 32 + keen::ObjectReference mapping; // Offset: 48 + keen::ObjectReference eventSounds; // Offset: 64 + keen::ObjectReference postProcessing; // Offset: 80 +}; + +enum class ambient.ReasonThisSoundDoesNotPlay { + Music = 0, + Loop = 1, + SFX = 2, + Environment = 3, + CombatSituation = 4, + TimeOfDay = 5, + TooMuchFog = 6, + TooLittleFog = 7, + WorldShape = 8, + TaggedProps = 9, + RandomChanceParameter = 10, + MusicQueued = 11, + Sleeping = 12, + SlotAlreadyFilled = 13, + Weather = 14, +}; + +typedef keen::Bitmask16 ambient.ReasonThisSoundDoesNotPlayMask; + +struct ambient.SoundExplanation { + keen::ambient::ReasonThisSoundDoesNotPlayMask reason; // Offset: 0 + keen::float volumeCurrent; // Offset: 4 + keen::float volumeTarget; // Offset: 8 + keen::Guid soundGuid; // Offset: 12 +}; + +struct ambient.EffectsSoundReasonsDebugMessage { + keen::Guid effectGuid; // Offset: 0 + keen::ambient::SoundExplanation explanation; // Offset: 16 + keen::uint cellIndex; // Offset: 44 +}; + +struct ambient.DebugMessageBundle { + keen::BlobArray data; // Offset: 0 +}; + +enum class BossMusicType { + None = 0, + Fogger = 1, + Mage = 2, + Scavenger = 3, + Vukah = 4, + Monstrosity = 5, + Lurchie = 6, + Hollow = 7, + Cyclops = 8, + Dragon = 9, +}; + +struct ecs.Component { +}; + +struct ecs.IsTame { +}; + +enum class AnimationLoopType { + Auto = 0, + Loop = 1, + NoLoop = 2, +}; + +struct AnimationJointQuality { + keen::string trackName; // Offset: 0 + keen::float32 quality; // Offset: 8 +}; + +enum class AttachmentSlot { + Root = 0, + Head = 1, + Chest = 2, + Pelvis = 3, + FootL = 4, + FootR = 5, + FootRL = 6, + FootRR = 7, + HandR = 8, + HandL = 9, + KneeR = 10, + KneeL = 11, + ArmL = 12, + Block = 13, + Count = 14, +}; + +typedef keen::Bitmask16 AttachmentSlotMask; + +enum class AnimationSpace { + Local = 0, + LocalAdd = 1, +}; + +struct ModelHintSetEntry { + keen::ObjectReference model; // Offset: 0 +}; + +struct ModelHintSet { +}; + +struct Animation { + keen::string animation_node; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 8 + keen::ObjectReference modelHint; // Offset: 24 + keen::ObjectReference modelHintSet; // Offset: 40 + keen::ObjectReference clothCollider; // Offset: 56 + keen::uint32 startFrame; // Offset: 72 + keen::uint32 endFrame; // Offset: 76 + keen::sint32 refFrame; // Offset: 80 + keen::AnimationSpace space; // Offset: 84 + keen::float32 xanimScale; // Offset: 88 + keen::float32 quality; // Offset: 92 + keen::BlobArray qualityOverrite; // Offset: 96 + keen::AnimationLoopType loopType; // Offset: 104 + keen::float32 autoLoopEpsilon; // Offset: 108 + keen::bool loopLve; // Offset: 112 + keen::bool exportJointAnimation; // Offset: 113 + keen::bool exportLveAnimation; // Offset: 114 + keen::bool exportSequenceData; // Offset: 115 + keen::bool exportDebugData; // Offset: 116 +}; + +typedef keen::ObjectReference AnimationReference; + +struct AnimationInfo { + keen::float32 length; // Offset: 0 + keen::uint32 jointCount; // Offset: 4 + keen::uint32 frameCount; // Offset: 8 + keen::ObjectReference modelHint; // Offset: 12 + keen::ObjectReference modelHintSet; // Offset: 28 + keen::ObjectReference hierarchy; // Offset: 44 + keen::bool hasLve; // Offset: 60 + keen::bool hasSequences; // Offset: 61 + keen::bool loops; // Offset: 62 + keen::AnimationSpace space; // Offset: 63 + keen::BlobString name; // Offset: 64 +}; + +struct AnimationConverterConfiguration { + keen::bool checkParentNames; // Offset: 0 + keen::bool checkMatrixDecomposition; // Offset: 1 +}; + +struct Sequence { + keen::Time length; // Offset: 0 + keen::bool loop; // Offset: 8 +}; + +struct AnimationEventSequence { + keen::ObjectReference hierarchyPreviewSettings; // Offset: 16 + keen::ObjectReference previewClothCollider; // Offset: 32 +}; + +typedef keen::ObjectReference AnimationEventSequenceReference; + +struct AnimationSequenceContainer { + keen::BlobArray sequences; // Offset: 0 +}; + +enum class Blend1DInterpolationCurve { + Linear = 0, + WalkRunCurve = 1, +}; + +struct animationgraph.StateId { +}; + +struct animationgraph.InputId { +}; + +struct animationgraph.FloatInputId { +}; + +struct animationgraph.BoolInputId { +}; + +struct animationgraph.IntInputId { +}; + +struct animationgraph.UintInputId { +}; + +struct animationgraph.IdInputId { +}; + +struct animationgraph.OverlayId { +}; + +struct animationgraph.OverlayContextId { +}; + +typedef keen::ObjectReference animationgraph.StateIdReference; + +typedef keen::ObjectReference animationgraph.InputIdReference; + +typedef keen::ObjectReference animationgraph.OverlayIdReference; + +typedef keen::ObjectReference animationgraph.OverlayContextIdReference; + +typedef keen::HashKey32 animationgraph.StateIdHash; + +typedef keen::HashKey32 animationgraph.InputIdHash; + +struct animationgraph.AnimationIdCollection { +}; + +struct animationgraph.StateIdCollection { +}; + +struct animationgraph.InputIdCollection { +}; + +struct animationgraph.OverlayIdCollection { +}; + +struct animationgraph.OverlayContextIdCollection { +}; + +struct animationgraph.AnimationDebugEntry { + keen::Guid guid; // Offset: 0 + keen::HashKey32 hash; // Offset: 16 + keen::BlobString debugName; // Offset: 20 +}; + +struct animationgraph.AnimationGraphDebugInfo { + keen::BlobArray entries; // Offset: 0 +}; + +enum class animationgraph.RootMotionFlag { + Pure = 0, + AlignToFloor = 1, + WarpToTarget = 2, + Ignore = 3, + IgnoreScale = 4, +}; + +typedef keen::Bitmask8 animationgraph.RootMotionMask; + +struct float2 { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 +}; + +struct Vector2 { +}; + +struct float3 { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 + keen::float32 z; // Offset: 8 +}; + +struct animationgraph.NodeBase { + keen::animationgraph::StateIdReference id; // Offset: 0 + keen::Vector2 position; // Offset: 16 + keen::float32 defaultBlendInDuration; // Offset: 24 + keen::float3 pivotOffset; // Offset: 28 + keen::bool isIncompatibleWithOverlays; // Offset: 40 + keen::bool restartOnRetrigger; // Offset: 41 +}; + +struct animationgraph.AnimationSpeedGradientController { + keen::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph.AnimationNode { + keen::AnimationReference animation; // Offset: 44 +}; + +struct animationgraph.AnimationSpeedGradientNode { + keen::animationgraph::AnimationSpeedGradientController speedController; // Offset: 60 +}; + +struct animationgraph.BlendData1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph.ChoiceData1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph.NoAnimationBlendData1D { +}; + +struct animationgraph.NoAnimationChoiceData1D { +}; + +struct animationgraph.AnimationBlendData1D { + keen::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationChoiceData1D { + keen::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationSpeedGradientBlendData1D { + keen::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.AnimationSpeedGradientChoiceData1D { + keen::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.HierarchyBlendData1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 + keen::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.BlendHierarchyDataChoice1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 + keen::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.ChoiceHierarchyDataBlend1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyDataChoice1D { + keen::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.GenderAnimationReference { + keen::AnimationReference maleAnimation; // Offset: 0 + keen::AnimationReference femaleAnimation; // Offset: 16 +}; + +struct animationgraph.PrimaryItemSpecificAnimationReference { + keen::AnimationReference unarmedAnimation; // Offset: 0 + keen::AnimationReference singleAndShieldAnimation; // Offset: 16 + keen::AnimationReference singleNoShieldAnimation; // Offset: 32 + keen::AnimationReference dualAnimation; // Offset: 48 + keen::AnimationReference twoHandedAnimation; // Offset: 64 + keen::AnimationReference bowPrimaryAnimation; // Offset: 80 + keen::AnimationReference staffPrimaryAnimation; // Offset: 96 + keen::AnimationReference wandPrimaryAnimation; // Offset: 112 +}; + +struct animationgraph.SecondaryItemSpecificAnimationReference { + keen::AnimationReference bowAnimation; // Offset: 0 + keen::AnimationReference staffSecondaryAnimation; // Offset: 16 + keen::AnimationReference wandSecondaryAnimation; // Offset: 32 +}; + +struct animationgraph.PrimaryItemSpecificAnimationNode { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.SecondaryItemSpecificAnimationNode { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.PrimaryItemSpecificBlend1D { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlend1D { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificChoice1D { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificChoice1D { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.VerySpecialBlockNode { +}; + +struct animationgraph.MaskedNode { + keen::BlobString delimiterJoint; // Offset: 44 + keen::animationgraph::InputIdReference delimiterInputName; // Offset: 52 + keen::Time lowerBodyBlendInTime; // Offset: 72 + keen::Time lowerBodyBlendOutTime; // Offset: 80 + keen::bool resetLowerBodyOnToggleOn; // Offset: 88 + keen::ObjectReference upperAnims; // Offset: 92 + keen::ObjectReference lowerAnims; // Offset: 108 +}; + +struct animationgraph.Blend1D { + keen::animationgraph::InputIdReference inputName; // Offset: 44 + keen::Blend1DInterpolationCurve curve; // Offset: 60 + keen::bool wrapInputAsAngle; // Offset: 61 +}; + +struct animationgraph.Choice1D { + keen::animationgraph::InputIdReference inputName; // Offset: 44 +}; + +struct animationgraph.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph.AnimationBlendLayer { + keen::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.HierarchyBlendLayer { + keen::animationgraph::HierarchyBlendData1D blendHierarchy; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyBlendLayer { + keen::animationgraph::ChoiceHierarchyDataBlend1D choiceHierarchy; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificBlendLayer { + keen::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlendLayer { + keen::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.BlendLayersNode { +}; + +typedef keen::ObjectReference animationgraph.NodeBaseReference; + +struct animationgraph.TransitionBase { + keen::animationgraph::NodeBaseReference startNode; // Offset: 0 + keen::animationgraph::NodeBaseReference endNode; // Offset: 16 + keen::float32 duration; // Offset: 32 +}; + +struct animationgraph.LinearTransition { + keen::bool sync; // Offset: 36 +}; + +struct animationgraph.AnimationTransition { + keen::AnimationReference animation; // Offset: 36 + keen::float32 blendIn; // Offset: 52 + keen::float32 blendOut; // Offset: 56 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 60 +}; + +struct animationgraph.OverlayBase { + keen::animationgraph::OverlayIdReference id; // Offset: 0 + keen::animationgraph::OverlayContextIdReference context; // Offset: 16 + keen::BlobArray abortUnlessInNodes; // Offset: 32 +}; + +struct animationgraph.AnimationOverlay { + keen::AnimationReference animation; // Offset: 40 +}; + +struct Group { +}; + +struct AnimationGraphDirectory { +}; + +struct AnimationGraph { + keen::float32 defaultTransitionTime; // Offset: 0 + keen::BlobArray genderLookupTable; // Offset: 4 + keen::ObjectReference clothColliderReference; // Offset: 12 +}; + +struct animation.NodeId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.TransitionBase { + keen::animation::NodeId endNodeIndex; // Offset: 0 + keen::Time duration; // Offset: 8 +}; + +struct animationgraph_resource.LinearTransition { + keen::bool sync; // Offset: 16 +}; + +struct animation.AnimationId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.GenderSpecificAnimationIndex { + keen::animation::AnimationId maleAnimation; // Offset: 0 + keen::animation::AnimationId femaleAnimation; // Offset: 4 +}; + +struct animationgraph_resource.ExitAnimation { + keen::animation::NodeId targetNodeIndex; // Offset: 0 + keen::Time blendIn; // Offset: 8 + keen::Time blendOut; // Offset: 16 + keen::animation::AnimationId animationIndex; // Offset: 24 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 28 +}; + +struct animationgraph_resource.AnimationSpeedGradientController { + keen::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph_resource.NodeBase { + keen::animationgraph::StateIdReference stateIdReference; // Offset: 0 + keen::animationgraph::StateIdHash stateId; // Offset: 16 + keen::BlobArray onExits; // Offset: 20 + keen::uint32 defaultInboundTransition; // Offset: 28 + keen::BlobArray outgoingTransitions; // Offset: 32 + keen::float3 pivotOffset; // Offset: 40 + keen::bool isIncompatibleWithOverlays; // Offset: 52 + keen::bool restartOnRetrigger; // Offset: 53 + keen::bool graphCanBePaused; // Offset: 54 +}; + +struct animationgraph_resource.AnimationNode { + keen::animation::AnimationId animationIndex; // Offset: 56 +}; + +struct animationgraph_resource.AnimationSpeedGradientNode { + keen::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 60 +}; + +struct animationgraph_resource.BlendDataFloat1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph_resource.BlendDataUint1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph_resource.NoAnimationBlendDataFloat1D { +}; + +struct animationgraph_resource.AnimationBlendDataFloat1D { + keen::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.NoAnimationBlendDataUint1D { +}; + +struct animationgraph_resource.AnimationBlendDataUint1D { + keen::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataFloat1D { + keen::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataUint1D { + keen::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.FloatHierarchy1D { + keen::animationgraph::InputIdReference floatInputName; // Offset: 0 + keen::bool wrapInputAsAngle; // Offset: 16 + keen::Blend1DInterpolationCurve curve; // Offset: 17 + keen::BlobArray> blendData; // Offset: 20 +}; + +struct animationgraph_resource.UintHierarchy1D { + keen::animationgraph::InputIdReference uintInputName; // Offset: 0 + keen::BlobArray> blendData; // Offset: 16 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataFloat1D { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataUint1D { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.UintHierarchyBlendDataFloat1D { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.UintHierarchyBlendDataUint1D { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.BlendFloat1DNode { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 56 +}; + +struct animationgraph_resource.BlendUint1DNode { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 56 +}; + +struct animationgraph_resource.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph_resource.AnimationBlendLayer { + keen::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.BlendHierarchyBlendLayer { + keen::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.ChoiceHierarchyBlendLayer { + keen::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 4 +}; + +struct animationgraph_resource.BlendLayersNode { + keen::BlobArray> blendLayers; // Offset: 56 +}; + +typedef keen::ObjectReference animationgraph_resource.NodeBaseReference; + +struct animationgraph_resource.VerySpecialBlockNode { + keen::string delimiterJoint; // Offset: 56 + keen::animationgraph_resource::UintHierarchy1D blockAnimData; // Offset: 64 + keen::animationgraph_resource::FloatHierarchy1D moveAnimData; // Offset: 88 +}; + +struct animationgraph_resource.MaskedNode { + keen::string delimiterJoint; // Offset: 56 + keen::animationgraph::InputIdReference delimiterInputName; // Offset: 64 + keen::Time lowerBodyBlendInTime; // Offset: 80 + keen::Time lowerBodyBlendOutTime; // Offset: 88 + keen::bool resetLowerBodyOnToggleOn; // Offset: 96 + keen::BlobArray> upperLayers; // Offset: 100 + keen::BlobArray> lowerLayers; // Offset: 108 +}; + +struct animationgraph_resource.AnimationListEntry { + keen::AnimationReference reference; // Offset: 0 + keen::Time duration; // Offset: 16 + keen::uint32 frameCount; // Offset: 24 + keen::bool hasLve; // Offset: 28 + keen::bool hasSequences; // Offset: 29 + keen::bool loops; // Offset: 30 + keen::AnimationSpace space; // Offset: 31 + keen::BlobString name; // Offset: 32 +}; + +struct animationgraph_resource.AnimationListResource { + keen::BlobArray animations; // Offset: 0 +}; + +struct animationgraph_resource.OverlayBase { + keen::animationgraph::StateIdHash stateId; // Offset: 0 + keen::animationgraph::OverlayIdReference name; // Offset: 4 + keen::animationgraph::OverlayContextIdReference context; // Offset: 20 + keen::BlobArray abortUnlessInNodes; // Offset: 36 + keen::BlobString dbgName; // Offset: 44 +}; + +struct animationgraph_resource.AnimationOverlay { + keen::animation::AnimationId maleAnimationIndex; // Offset: 52 + keen::animation::AnimationId femaleAnimationIndex; // Offset: 56 +}; + +typedef keen::uint16 AnimationJointIndex; + +struct AnimationGraphResource { + keen::uint32 jointCount; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 4 + keen::BlobArray> nodes; // Offset: 20 + keen::BlobArray animations; // Offset: 28 + keen::BlobArray> transitions; // Offset: 36 + keen::BlobArray> overlays; // Offset: 44 + keen::animationgraph_resource::UintHierarchy1D globalOverlay; // Offset: 52 + keen::StaticArray slotBoneIndexMapping; // Offset: 76 + keen::ObjectReference clothColliderReference; // Offset: 104 +}; + +typedef keen::ObjectReference AnimationGraphReference; + +struct AnimationGraphInputBase { + keen::animationgraph::InputIdHash hash; // Offset: 0 +}; + +struct AnimationGraphFloatInput { + keen::float32 value; // Offset: 4 +}; + +struct AnimationGraphUintInput { + keen::uint32 value; // Offset: 4 +}; + +struct AnimationGraphBoolInput { + keen::bool value; // Offset: 4 +}; + +struct AnimationGraphIntInput { + keen::sint32 value; // Offset: 4 +}; + +struct AnimationGraphIdInput { + keen::animationgraph::StateIdHash value; // Offset: 4 +}; + +struct WorldPosition { + keen::sint64 x; // Offset: 0 + keen::sint64 y; // Offset: 8 + keen::sint64 z; // Offset: 16 +}; + +struct Quaternion { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 + keen::float32 z; // Offset: 8 + keen::float32 w; // Offset: 12 +}; + +struct WorldTransform { + keen::WorldPosition position; // Offset: 0 + keen::Quaternion orientation; // Offset: 24 + keen::float3 scale; // Offset: 40 +}; + +struct WarpToTargetConfig { + keen::WorldTransform targetTransform; // Offset: 0 + keen::Time duration; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::float32 maxScale; // Offset: 72 + keen::bool isTargetSet; // Offset: 76 + keen::bool abortWarpAboveMaxScale; // Offset: 77 +}; + +struct RootMotionConfig { + keen::float32 movementMod; // Offset: 0 + keen::WarpToTargetConfig warpToTargetConfig; // Offset: 8 +}; + +enum class OverlayInputsEventType { + Invalid = 0, + Start = 1, + Abort = 2, +}; + +struct OverlayInputsEvent { + keen::animationgraph::StateIdHash animationStateId; // Offset: 0 + keen::uint32 jointId; // Offset: 4 + keen::OverlayInputsEventType type; // Offset: 8 + keen::uint8 changeCounter; // Offset: 9 +}; + +struct AnimationGraphInputs { + keen::StaticArray floatInputs; // Offset: 0 + keen::StaticArray uintInputs; // Offset: 64 + keen::StaticArray boolInputs; // Offset: 128 + keen::StaticArray intInputs; // Offset: 144 + keen::StaticArray idInputs; // Offset: 160 + keen::StaticArray overlayInputs; // Offset: 176 + keen::RootMotionConfig rootMotionConfig; // Offset: 240 + keen::WorldTransform currentTransform; // Offset: 328 +}; + +enum class AnimGraphPreviewEventType { + Node = 0, + Overlay = 1, +}; + +struct AnimGraphPreviewSeqenceEntry { + keen::AnimGraphPreviewEventType eventType; // Offset: 0 + keen::Time timeFromStart; // Offset: 8 + keen::uint32 selectedIndex; // Offset: 16 +}; + +struct AnimGraphPreviewSeqence { + keen::BlobArray entries; // Offset: 0 +}; + +struct AnimationGraphInfo { + keen::BlobArray nodes; // Offset: 0 + keen::BlobArray floatInputs; // Offset: 8 + keen::BlobArray uintInputs; // Offset: 16 + keen::BlobArray boolInputs; // Offset: 24 + keen::BlobArray overlays; // Offset: 32 + keen::ObjectReference modelHierarchy; // Offset: 40 +}; + +enum class anim_graph.LayerBlendMode { + Override = 0, + Additive = 1, +}; + +enum class anim_graph.AdditiveType { + None = 0, + Additive_LocalSpace = 1, +}; + +enum class anim_graph.TransitionRootMotionMode { + BlendRootMotions = 0, + UseRootMotionFromIncomingState = 1, + UseRootMotionFromDestinationState = 2, + UseRootMotionFromHighestWeight = 3, +}; + +struct anim_graph.LayerBlendOptions { + keen::anim_graph::LayerBlendMode blendMode; // Offset: 0 + keen::ObjectReference boneMask; // Offset: 4 +}; + +struct anim_graph.BoneMask { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntry { + keen::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 8 +}; + +struct anim_graph.BoneMaskResource { + keen::BlobArray entries; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntryResource { + keen::uint8 boneIndex; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct anim_graph.AnimationSpeedController { + keen::ObjectReference inputName; // Offset: 0 + keen::HashKey32 inputHash; // Offset: 16 + keen::float32 inputValueA; // Offset: 20 + keen::float32 inputValueB; // Offset: 24 + keen::float32 speedFactorA; // Offset: 28 + keen::float32 speedFactorB; // Offset: 32 +}; + +struct anim_graph.GenderMappingEntry { + keen::Guid maleAnimation; // Offset: 0 + keen::Guid femaleAnimation; // Offset: 16 +}; + +enum class anim_graph.tool_graph.DataType { + Pose = 0, + Float = 1, + Int = 2, + Bool = 3, + ID = 4, +}; + +struct anim_graph.tool_graph.GraphParameterBase { + keen::ObjectReference inputId; // Offset: 0 +}; + +struct anim_graph.tool_graph.FloatGraphParameter { +}; + +struct anim_graph.tool_graph.IntGraphParameter { +}; + +struct anim_graph.tool_graph.BoolGraphParameter { +}; + +struct anim_graph.tool_graph.IDGraphParameterValue { +}; + +struct anim_graph.tool_graph.IDGraphParameter { +}; + +struct anim_graph.tool_graph.GraphParameterSet { +}; + +struct anim_graph.tool_graph.PinBase { + keen::anim_graph::tool_graph::DataType dataType; // Offset: 0 +}; + +struct anim_graph.tool_graph.InputPin { +}; + +struct anim_graph.tool_graph.OutputPin { +}; + +struct anim_graph.tool_graph.Link { + keen::ObjectReference sourcePin; // Offset: 0 + keen::ObjectReference targetPin; // Offset: 16 +}; + +struct anim_graph.tool_graph.EditorNodeBase { + keen::Vector2 uiPosition; // Offset: 0 + keen::ObjectReference secondaryGraph; // Offset: 8 + keen::ObjectReference childGraph; // Offset: 24 +}; + +struct anim_graph.tool_graph.FloatParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.FloatConstant { + keen::float32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.FloatAdd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatSubtract { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatMultiply { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatGreaterThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatLessThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::float32 tolerance; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatGreaterThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatLessThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::float32 tolerance; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatDivide { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.SelectPoseBase { + keen::ObjectReference outputPose; // Offset: 40 + keen::float32 blendTime; // Offset: 56 +}; + +struct anim_graph.tool_graph.SelectPoseByBool { + keen::ObjectReference poseA; // Offset: 60 + keen::ObjectReference poseB; // Offset: 76 +}; + +struct anim_graph.tool_graph.SelectPoseByBoolParameters { + keen::ObjectReference selectA; // Offset: 40 +}; + +struct FloatRange { + keen::float32 minValue; // Offset: 0 + keen::float32 maxValue; // Offset: 4 +}; + +struct anim_graph.tool_graph.FloatRemap { + keen::FloatRange inputRange; // Offset: 40 + keen::FloatRange outputRange; // Offset: 48 + keen::ObjectReference inputValue; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDConstant { + keen::ObjectReference value; // Offset: 40 + keen::ObjectReference output; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameterEqualsConstant { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IDEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::ObjectReference value; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IntParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IntConstant { + keen::sint32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.IntEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IntEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::sint32 value; // Offset: 72 +}; + +struct anim_graph.tool_graph.IsOverlayActive { + keen::ObjectReference active; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolConstant { + keen::bool value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.BoolNegate { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolAnd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolOr { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.LayerBlend { + keen::anim_graph::LayerBlendOptions blendOptions; // Offset: 40 + keen::ObjectReference base; // Offset: 60 + keen::ObjectReference layer; // Offset: 76 + keen::ObjectReference outputPose; // Offset: 92 +}; + +struct anim_graph.tool_graph.SaveCachedPose { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.UseCachedPose { + keen::ObjectReference pose; // Offset: 40 + keen::ObjectReference cachedPose; // Offset: 56 +}; + +struct anim_graph.tool_graph.PoseResult { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachine { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachineState { + keen::bool restartOnRetrigger; // Offset: 40 + keen::bool startAtRandomTime; // Offset: 41 +}; + +struct anim_graph.tool_graph.TransitionAdvancedOptions { + keen::uint8 priority; // Offset: 0 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 1 +}; + +struct anim_graph.tool_graph.StateMachineTransition { + keen::ObjectReference fromState; // Offset: 40 + keen::ObjectReference toState; // Offset: 56 + keen::bool autoTransition; // Offset: 72 + keen::float32 duration; // Offset: 76 + keen::anim_graph::tool_graph::TransitionAdvancedOptions advancedOptions; // Offset: 80 + keen::bool isGlobalTransition; // Offset: 82 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitions { +}; + +struct anim_graph.tool_graph.StateInputPin { + keen::ObjectReference state; // Offset: 4 + keen::float32 duration; // Offset: 20 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 24 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitionParameters { +}; + +struct anim_graph.tool_graph.AdditiveAnimationParameters { + keen::bool useCurrentAnimationAsReference; // Offset: 0 + keen::uint16 additiveReferenceFrame; // Offset: 2 + keen::AnimationReference additiveReferenceAnimation; // Offset: 4 +}; + +struct anim_graph.tool_graph.AnimationClipSampler { + keen::AnimationReference animation; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::anim_graph::tool_graph::AdditiveAnimationParameters additiveParameters; // Offset: 76 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 96 +}; + +struct anim_graph.tool_graph.EmptyAdditivePose { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.BlendSpace_1DItem { + keen::float32 parameterValue; // Offset: 0 + keen::AnimationReference animation; // Offset: 4 +}; + +struct anim_graph.tool_graph.BlendSpace_1D { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::uint16 additiveReferenceFrame; // Offset: 74 + keen::AnimationReference additiveReferenceAnimation; // Offset: 76 + keen::bool interpolateInputValue; // Offset: 92 + keen::float interpolationSpeed; // Offset: 96 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 100 +}; + +struct anim_graph.tool_graph.TransitionParameters { + keen::ObjectReference condition; // Offset: 40 +}; + +struct anim_graph.tool_graph.EditorGraphBase { + keen::ObjectReference parentNode; // Offset: 0 + keen::ObjectReference mostSignificantNode; // Offset: 16 +}; + +struct anim_graph.tool_graph.FlowGraph { +}; + +struct anim_graph.tool_graph.StateMachineGraph { + keen::ObjectReference globalTransitions; // Offset: 32 +}; + +struct anim_graph.tool_graph.BlendTree { +}; + +struct anim_graph.tool_graph.ExpressionTree { +}; + +struct anim_graph.tool_graph.DefaultIdInputIdValue { + keen::ObjectReference key; // Offset: 0 + keen::ObjectReference defaultValue; // Offset: 16 +}; + +typedef keen::ObjectReference PreviewModelReference; + +typedef keen::StaticArray PreviewModelArray; + +struct anim_graph.tool_graph.AnimationGraph2_0 { + keen::ObjectReference rootGraph; // Offset: 0 + keen::ObjectReference clothColliderReference; // Offset: 16 + keen::PreviewModelArray previewModelOverride; // Offset: 32 + keen::string genderPrefix; // Offset: 288 + keen::BlobArray genderMapping; // Offset: 296 +}; + +enum class anim_graph.runtime_graph.AnimationNodeType { + Invalid = 0, + PoseResult = 1, + SampleAnimationClip = 2, + EmptyAdditivePose = 3, + BlendSpace_1D = 4, + FloatConstant = 5, + FloatParameter = 6, + IntConstant = 7, + IntParameter = 8, + BoolConstant = 9, + BoolParameter = 10, + IDConstant = 11, + IDParameter = 12, + StateMachine = 13, + StateMachineState = 14, + StateMachineTransition = 15, + BoolNegate = 16, + BoolAnd = 17, + BoolOr = 18, + BoolEquals = 19, + FloatRemap = 20, + FloatGreaterThan = 21, + FloatLessThan = 22, + FloatEquals = 23, + FloatGreaterThanConstant = 24, + FloatLessThanConstant = 25, + FloatEqualsConstant = 26, + SelectPoseByBool = 27, + IdEquals = 28, + IdEqualsConstant = 29, + IdParameterEqualsConstant = 30, + IntEquals = 31, + IntEqualsConstant = 32, + IsOverlayActive = 33, + LayerBlend = 34, + SaveCachedPose = 35, + UseCachedPose = 36, +}; + +struct anim_graph.runtime_graph.AnimationNodeDefinition { + keen::HashKey32 id; // Offset: 0 + keen::anim_graph::runtime_graph::AnimationNodeType type; // Offset: 4 +}; + +struct anim_graph.runtime_graph.PoseResultNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.SampleAnimationClipNodeDefinition { + keen::bool loop; // Offset: 8 + keen::float32 animationDuration; // Offset: 12 + keen::ObjectReference animation; // Offset: 16 + keen::ObjectReference animationGenderAlternative; // Offset: 32 + keen::ObjectReference rootMotionAnimation; // Offset: 48 + keen::ObjectReference rootMotionAnimationGenderAlternative; // Offset: 64 + keen::ObjectReference eventSequenceContainer; // Offset: 80 + keen::anim_graph::AdditiveType additiveType; // Offset: 96 + keen::ObjectReference additiveReferenceAnimation; // Offset: 100 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 116 + keen::uint16 additiveReferenceFrame; // Offset: 132 + keen::bool animationContentAdditive; // Offset: 134 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 136 +}; + +struct anim_graph.runtime_graph.EmptyAdditivePoseNodeDefinition { +}; + +struct anim_graph.runtime_graph.BlendSpace_1DItemRuntime { + keen::float32 parameterValue; // Offset: 0 + keen::float32 animationDuration; // Offset: 4 + keen::ObjectReference animation; // Offset: 8 + keen::ObjectReference animationGenderAlternative; // Offset: 24 + keen::ObjectReference eventSequenceContainer; // Offset: 40 +}; + +struct anim_graph.runtime_graph.BlendSpace_1DNodeDefinition { + keen::BlobArray items; // Offset: 8 + keen::ObjectReference parameter; // Offset: 16 + keen::anim_graph::AdditiveType additiveType; // Offset: 32 + keen::ObjectReference additiveReferenceAnimation; // Offset: 36 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 52 + keen::uint16 additiveReferenceFrame; // Offset: 68 + keen::anim_graph::AnimationSpeedController speedController; // Offset: 72 + keen::float interpolationSpeed; // Offset: 108 + keen::bool loop; // Offset: 112 + keen::bool animationContentAdditive; // Offset: 113 +}; + +struct anim_graph.runtime_graph.LayerBlendNodeDefinition { + keen::HashKey32 base; // Offset: 8 + keen::HashKey32 layer; // Offset: 12 + keen::anim_graph::LayerBlendOptions blendOptions; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SaveCachedPoseNodeDefinition { + keen::HashKey32 inputPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.UseCachedPoseNodeDefinition { + keen::HashKey32 cachedPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatConstantNodeDefinition { + keen::float32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.StateMachineGlobalTransitionInfo { + keen::HashKey32 toState; // Offset: 0 + keen::float32 duration; // Offset: 4 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 8 + keen::HashKey32 conditionNode; // Offset: 12 +}; + +struct anim_graph.runtime_graph.StateMachineNodeDefinition { + keen::BlobArray states; // Offset: 8 + keen::BlobArray transitions; // Offset: 16 + keen::HashKey32 entryState; // Offset: 24 + keen::StaticArray globalTransitions; // Offset: 28 + keen::uint8 numGlobalTransitions; // Offset: 540 + keen::HashKey32 globalTransitionNodeId; // Offset: 544 + keen::BlobString debugName; // Offset: 548 +}; + +struct anim_graph.runtime_graph.StateMachineStateNodeDefinition { + keen::HashKey32 poseResult; // Offset: 8 + keen::BlobString debugName; // Offset: 12 + keen::bool restartOnRetrigger; // Offset: 20 + keen::bool startAtRandomTime; // Offset: 21 +}; + +struct anim_graph.runtime_graph.StateMachineTransitionNodeDefinition { + keen::HashKey32 fromState; // Offset: 8 + keen::HashKey32 toState; // Offset: 12 + keen::float32 duration; // Offset: 16 + keen::uint8 priority; // Offset: 20 + keen::HashKey32 conditionNode; // Offset: 24 + keen::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 28 + keen::bool autoTransition; // Offset: 29 +}; + +struct anim_graph.runtime_graph.IntConstantNodeDefinition { + keen::sint32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IntParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolConstantNodeDefinition { + keen::bool value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDConstantNodeDefinition { + keen::HashKey32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolNegateNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolAndNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolOrNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.FloatRemapNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::FloatRange inputRange; // Offset: 12 + keen::FloatRange outputRange; // Offset: 20 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SelectPoseByBoolNodeDefinition { + keen::HashKey32 inputA; // Offset: 8 + keen::HashKey32 inputB; // Offset: 12 + keen::HashKey32 selectA; // Offset: 16 + keen::float32 blendTime; // Offset: 20 +}; + +struct anim_graph.runtime_graph.IdParameterEqualsConstantNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 + keen::HashKey32 value; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IdEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IdEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 comparatorValue; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IntEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IntEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::sint32 comparatorValue; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IsOverlayActiveNodeDefinition { + keen::HashKey32 overlay; // Offset: 8 +}; + +struct anim_graph.runtime_graph.ParameterList { + keen::BlobArray parameterIds; // Offset: 0 +}; + +struct anim_graph.runtime_graph.AnimationGraphResource2_0 { + keen::anim_graph::runtime_graph::ParameterList floatParameters; // Offset: 0 + keen::anim_graph::runtime_graph::ParameterList uintParameters; // Offset: 8 + keen::anim_graph::runtime_graph::ParameterList intParameters; // Offset: 16 + keen::anim_graph::runtime_graph::ParameterList boolParameters; // Offset: 24 + keen::anim_graph::runtime_graph::ParameterList idParameters; // Offset: 32 + keen::anim_graph::runtime_graph::ParameterList usedInputIds; // Offset: 40 + keen::ObjectReference hierarchy; // Offset: 48 + keen::StaticArray slotBoneIndexMapping; // Offset: 64 + keen::HashKey32 rootNode; // Offset: 92 + keen::BlobArray> nodeDefinitions; // Offset: 96 + keen::ObjectReference clothColliderReference; // Offset: 104 + keen::BlobArray genderMapping; // Offset: 120 +}; + +struct anim_graph.GameUpdateMessage { + keen::bool isPaused; // Offset: 0 +}; + +struct anim_graph.DebugEntityChangedMessage { + keen::uint32 selectedEntity; // Offset: 0 +}; + +struct anim_graph.debug.DebugMessageBase { + keen::Time timestamp; // Offset: 0 + keen::uint32 entityId; // Offset: 8 + keen::Guid rootGraphGuid; // Offset: 12 + keen::Guid templateId; // Offset: 28 +}; + +struct anim_graph.debug.NodeStateUpdateMessage { + keen::HashKey32 nodeId; // Offset: 48 + keen::bool isActive; // Offset: 52 + keen::bool isFrozen; // Offset: 53 + keen::float32 progress; // Offset: 56 + keen::float32 timeSpentInNode; // Offset: 60 + keen::HashKey32 fromState; // Offset: 64 + keen::HashKey32 toState; // Offset: 68 +}; + +struct anim_graph.debug.InputIdMessage { + keen::StaticArray floatInputIdHashes; // Offset: 48 + keen::StaticArray floatInputIdValues; // Offset: 80 + keen::StaticArray intInputIdHashes; // Offset: 112 + keen::StaticArray intInputIdValues; // Offset: 144 + keen::StaticArray boolInputIdHashes; // Offset: 176 + keen::StaticArray boolInputIdValues; // Offset: 208 + keen::StaticArray idInputIdHashes; // Offset: 216 + keen::StaticArray idInputIdValues; // Offset: 248 + keen::StaticArray overlayIdValues; // Offset: 280 +}; + +struct Vector3 { +}; + +struct AnimationJoint { + keen::Quaternion orientation; // Offset: 0 + keen::Vector3 position; // Offset: 16 + keen::Vector3 scale; // Offset: 32 +}; + +struct anim_graph.debug.EntityJointMessage { + keen::StaticArray animationJoints; // Offset: 48 + keen::uint8 numJoints; // Offset: 12336 +}; + +struct anim_graph.debug.AnimationGraphInstanceInfoMessage { + keen::uint32 retriggerCount; // Offset: 48 +}; + +struct anim_graph.debug.StateMachineMessage { + keen::uint32 stateMachineId; // Offset: 48 + keen::StaticArray fromState; // Offset: 52 + keen::StaticArray toState; // Offset: 84 + keen::StaticArray duration; // Offset: 116 + keen::StaticArray elapsed; // Offset: 148 + keen::StaticArray priority; // Offset: 180 + keen::StaticArray frozen; // Offset: 188 +}; + +typedef keen::ObjectReference AnimationGraphResourceReference; + +struct JointAnimationHeader { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 startTime; // Offset: 4 + keen::uint16 endTime; // Offset: 6 + keen::uint16 usedOrientationJoints; // Offset: 8 + keen::uint16 nonConstOrientationJoints; // Offset: 10 + keen::uint16 usedPositionJoints; // Offset: 12 + keen::uint16 nonConstPositionJoints; // Offset: 14 + keen::uint16 usedScaleJoints; // Offset: 16 + keen::uint16 nonConstScaleJoints; // Offset: 18 +}; + +struct ContentHash { + keen::uint32 size; // Offset: 0 + keen::uint32 hash0; // Offset: 4 + keen::uint32 hash1; // Offset: 8 + keen::uint32 hash2; // Offset: 12 +}; + +enum class ContentCategory { + None = 0, + Cloth = 1, + Texture = 2, + Mesh = 3, + Material = 4, + Render = 5, + ShaderCode = 6, + Vfx = 7, + Voxel = 8, + Scene = 9, + Font = 10, + Sound = 11, + UiTexture = 12, + Loca = 13, + Animation = 14, +}; + +struct JointAnimation { + keen::uint64 hierarchyHash; // Offset: 0 + keen::float32 positionFactor; // Offset: 8 + keen::float32 positionTangent; // Offset: 12 + keen::float32 scaleFactor; // Offset: 16 + keen::BlobArray headers; // Offset: 20 + keen::ContentHash data; // Offset: 28 + keen::uint16 fps; // Offset: 44 + keen::uint16 frameCount; // Offset: 46 + keen::uint16 jointCount; // Offset: 48 + keen::uint16 flags; // Offset: 50 +}; + +typedef keen::ObjectReference JointAnimationReference; + +struct float4 { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 + keen::float32 z; // Offset: 8 + keen::float32 w; // Offset: 12 +}; + +struct LveOrientationKey { + keen::uint32 time; // Offset: 0 + keen::float4 values; // Offset: 4 + keen::float4 controls; // Offset: 20 +}; + +struct LvePositionKey { + keen::uint32 time; // Offset: 0 + keen::float3 values; // Offset: 4 + keen::float3 controls; // Offset: 16 +}; + +typedef keen::uint32 crc32; + +struct LveAnimation { + keen::crc32 trackName; // Offset: 0 + keen::BlobArray orientationKeys; // Offset: 4 + keen::BlobArray positionKeys; // Offset: 12 + keen::float3 startToEnd; // Offset: 20 + keen::uint16 fps; // Offset: 32 + keen::uint16 frameCount; // Offset: 34 + keen::uint16 flags; // Offset: 36 +}; + +struct RootMotionAnimation { + keen::BlobArray orientations; // Offset: 0 + keen::BlobArray positions; // Offset: 8 + keen::float3 startToEnd; // Offset: 16 + keen::uint16 fps; // Offset: 28 + keen::uint16 frameCount; // Offset: 30 +}; + +typedef keen::string DsTypeName; + +struct ColorRgb { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 +}; + +struct HdrColorRgb { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 + keen::float32 intensity; // Offset: 12 +}; + +enum class LanguageId { + None = 0, + En_Us = 1, + En_Gb = 2, + De_De = 3, + Nl_Nl = 4, + Fr_Fr = 5, + It_It = 6, + Es_Es = 7, + Es_Mx = 8, + Ru_Ru = 9, + Pl_Pl = 10, + Ja_Jp = 11, + Id_Id = 12, + Ko_Kr = 13, + Ms_My = 14, + Pt_Pt = 15, + Pt_Br = 16, + Th_Th = 17, + Tr_Tr = 18, + Vi_Vn = 19, + Zh_Cn = 20, + Zh_Tw = 21, + Fr_Ca = 22, + Es_419 = 23, + Bg_Bg = 24, + Cs_Cz = 25, + Da_Dk = 26, + Fi_Fi = 27, + El_Gr = 28, + Hu_Hu = 29, + No_No = 30, + Nb_No = 31, + Ro_Ro = 32, + Sv_Se = 33, + Uk_Ua = 34, + Count = 35, +}; + +enum class TextureType { + Texture1D = 0, + Texture2D = 1, + Texture3D = 2, + Cube = 3, + Array1D = 4, + Array2D = 5, + ArrayCube = 6, +}; + +enum class PixelFormat { + None = 0, + R4G4_unorm_pack8 = 1, + R4G4B4A4_unorm_pack16 = 2, + B4G4R4A4_unorm_pack16 = 3, + R5G6B5_unorm_pack16 = 4, + B5G6R5_unorm_pack16 = 5, + R5G5B5A1_unorm_pack16 = 6, + B5G5R5A1_unorm_pack16 = 7, + A1R5G5B5_unorm_pack16 = 8, + R8_unorm = 9, + R8_snorm = 10, + R8_uscaled = 11, + R8_sscaled = 12, + R8_uint = 13, + R8_sint = 14, + R8_srgb = 15, + R8G8_unorm = 16, + R8G8_snorm = 17, + R8G8_uscaled = 18, + R8G8_sscaled = 19, + R8G8_uint = 20, + R8G8_sint = 21, + R8G8_srgb = 22, + R8G8B8_unorm = 23, + R8G8B8_snorm = 24, + R8G8B8_uscaled = 25, + R8G8B8_sscaled = 26, + R8G8B8_uint = 27, + R8G8B8_sint = 28, + R8G8B8_srgb = 29, + B8G8R8_unorm = 30, + B8G8R8_snorm = 31, + B8G8R8_uscaled = 32, + B8G8R8_sscaled = 33, + B8G8R8_uint = 34, + B8G8R8_sint = 35, + B8G8R8_srgb = 36, + R8G8B8A8_unorm = 37, + R8G8B8A8_snorm = 38, + R8G8B8A8_uscaled = 39, + R8G8B8A8_sscaled = 40, + R8G8B8A8_uint = 41, + R8G8B8A8_sint = 42, + R8G8B8A8_srgb = 43, + B8G8R8A8_unorm = 44, + B8G8R8A8_snorm = 45, + B8G8R8A8_uscaled = 46, + B8G8R8A8_sscaled = 47, + B8G8R8A8_uint = 48, + B8G8R8A8_sint = 49, + B8G8R8A8_srgb = 50, + A8B8G8R8_unorm_pack32 = 51, + A8B8G8R8_snorm_pack32 = 52, + A8B8G8R8_uscaled_pack32 = 53, + A8B8G8R8_sscaled_pack32 = 54, + A8B8G8R8_uint_pack32 = 55, + A8B8G8R8_sint_pack32 = 56, + A8B8G8R8_srgb_pack32 = 57, + A2R10G10B10_unorm_pack32 = 58, + A2R10G10B10_snorm_pack32 = 59, + A2R10G10B10_uscaled_pack32 = 60, + A2R10G10B10_sscaled_pack32 = 61, + A2R10G10B10_uint_pack32 = 62, + A2R10G10B10_sint_pack32 = 63, + A2B10G10R10_unorm_pack32 = 64, + A2B10G10R10_snorm_pack32 = 65, + A2B10G10R10_uscaled_pack32 = 66, + A2B10G10R10_sscaled_pack32 = 67, + A2B10G10R10_uint_pack32 = 68, + A2B10G10R10_sint_pack32 = 69, + R16_unorm = 70, + R16_snorm = 71, + R16_uscaled = 72, + R16_sscaled = 73, + R16_uint = 74, + R16_sint = 75, + R16_sfloat = 76, + R16G16_unorm = 77, + R16G16_snorm = 78, + R16G16_uscaled = 79, + R16G16_sscaled = 80, + R16G16_uint = 81, + R16G16_sint = 82, + R16G16_sfloat = 83, + R16G16B16_unorm = 84, + R16G16B16_snorm = 85, + R16G16B16_uscaled = 86, + R16G16B16_sscaled = 87, + R16G16B16_uint = 88, + R16G16B16_sint = 89, + R16G16B16_sfloat = 90, + R16G16B16A16_unorm = 91, + R16G16B16A16_snorm = 92, + R16G16B16A16_uscaled = 93, + R16G16B16A16_sscaled = 94, + R16G16B16A16_uint = 95, + R16G16B16A16_sint = 96, + R16G16B16A16_sfloat = 97, + R32_uint = 98, + R32_sint = 99, + R32_sfloat = 100, + R32G32_uint = 101, + R32G32_sint = 102, + R32G32_sfloat = 103, + R32G32B32_uint = 104, + R32G32B32_sint = 105, + R32G32B32_sfloat = 106, + R32G32B32A32_uint = 107, + R32G32B32A32_sint = 108, + R32G32B32A32_sfloat = 109, + R64_uint = 110, + R64_sint = 111, + R64_sfloat = 112, + R64G64_uint = 113, + R64G64_sint = 114, + R64G64_sfloat = 115, + R64G64B64_uint = 116, + R64G64B64_sint = 117, + R64G64B64_sfloat = 118, + R64G64B64A64_uint = 119, + R64G64B64A64_sint = 120, + R64G64B64A64_sfloat = 121, + B10G11R11_ufloat_pack32 = 122, + E5B9G9R9_ufloat_pack32 = 123, + D16_unorm = 124, + X8_D24_unorm_pack32 = 125, + D32_sfloat = 126, + S8_uint = 127, + D16_unorm_S8_uint = 128, + D24_unorm_S8_uint = 129, + D32_sfloat_S8_uint = 130, + BC1_RGB_unorm_block = 131, + BC1_RGB_srgb_block = 132, + BC1_RGBA_unorm_block = 133, + BC1_RGBA_srgb_block = 134, + BC2_unorm_block = 135, + BC2_srgb_block = 136, + BC3_unorm_block = 137, + BC3_srgb_block = 138, + BC4_unorm_block = 139, + BC4_snorm_block = 140, + BC5_unorm_block = 141, + BC5_snorm_block = 142, + BC6H_ufloat_block = 143, + BC6H_sfloat_block = 144, + BC7_unorm_block = 145, + BC7_srgb_block = 146, +}; + +struct vf32_data { + keen::StaticArray data; // Offset: 0 +}; + +struct StaticHashMapEntry { + keen::uint32 start; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct TimeRange { + keen::Time start; // Offset: 0 + keen::Time end; // Offset: 8 +}; + +typedef keen::uint32 fourcc; + +struct HashKey64 { + keen::uint64 value; // Offset: 0 +}; + +struct DsTypeId { + keen::uint32 value; // Offset: 0 +}; + +struct ResourceId { + keen::Guid guid; // Offset: 0 + keen::HashKey32 typeName; // Offset: 16 + keen::uint32 partIndex; // Offset: 20 + keen::uint32 reserved0; // Offset: 24 + keen::uint32 reserved1; // Offset: 28 +}; + +struct PosixTimeStamp { + keen::sint64 value; // Offset: 0 +}; + +struct CalendarTimeStamp { + keen::sint64 value; // Offset: 0 +}; + +struct float3x3 { + keen::float3 x; // Offset: 0 + keen::float3 y; // Offset: 12 + keen::float3 z; // Offset: 24 +}; + +struct float3x4 { + keen::float3 x; // Offset: 0 + keen::float3 y; // Offset: 12 + keen::float3 z; // Offset: 24 + keen::float3 w; // Offset: 36 +}; + +struct float4x4 { + keen::float4 x; // Offset: 0 + keen::float4 y; // Offset: 16 + keen::float4 z; // Offset: 32 + keen::float4 w; // Offset: 48 +}; + +struct int2 { + keen::sint32 x; // Offset: 0 + keen::sint32 y; // Offset: 4 +}; + +struct int3 { + keen::sint32 x; // Offset: 0 + keen::sint32 y; // Offset: 4 + keen::sint32 z; // Offset: 8 +}; + +struct int4 { + keen::sint32 x; // Offset: 0 + keen::sint32 y; // Offset: 4 + keen::sint32 z; // Offset: 8 + keen::sint32 w; // Offset: 12 +}; + +struct uint2 { + keen::uint32 x; // Offset: 0 + keen::uint32 y; // Offset: 4 +}; + +struct uint3 { + keen::uint32 x; // Offset: 0 + keen::uint32 y; // Offset: 4 + keen::uint32 z; // Offset: 8 +}; + +struct uint4 { + keen::uint32 x; // Offset: 0 + keen::uint32 y; // Offset: 4 + keen::uint32 z; // Offset: 8 + keen::uint32 w; // Offset: 12 +}; + +struct uint24 { + keen::uint8 lo; // Offset: 0 + keen::uint8 mi; // Offset: 1 + keen::uint8 hi; // Offset: 2 +}; + +enum class ErrorId { + Ok = 0, + Temporary_TimeOut = 1, + Temporary_OutOfMemory = 2, + Temporary_StillRunning = 3, + AlreadyExists = 4, + BufferTooSmall = 5, + Canceled = 6, + CapacityExceeded = 7, + CompressionError = 8, + CorruptData = 9, + DecompressionError = 10, + EofReached = 11, + FileNotFound = 12, + DirectoryNotEmpty = 13, + Generic = 14, + IncompatibleData = 15, + InitializationFailed = 16, + Internal = 17, + InvalidArgument = 18, + InvalidCharacter = 19, + InvalidPosition = 20, + InvalidState = 21, + InvalidValue = 22, + KeyNotFound = 23, + NoConnection = 24, + ConnectionRefused = 25, + NetworkDown = 26, + NetworkUnreachable = 27, + NoFactoryFound = 28, + NoMatch = 29, + NoPermission = 30, + NotFound = 31, + NotImplemented = 32, + NotSupported = 33, + NumberEncoding = 34, + NumberOverflow = 35, + NumberUnderflow = 36, + OutOfFileHandles = 37, + OutOfHandles = 38, + OutOfMemory = 39, + ParseError = 40, + ReadError = 41, + ResourceNotFound = 42, + StringEncoding = 43, + TypeMismatch = 44, + WriteError = 45, + WrongEndianness = 46, + WrongVersion = 47, + DiskFull = 48, + BrokenPipe = 49, + PathTooLong = 50, + DeviceLost = 51, + MemoryMapFailed = 52, + AlreadyConnected = 53, + ConnectionClosed = 54, + NotSubscribedToApp = 55, + SharingViolation = 56, + OutOfDate = 57, + InUse = 58, + AlreadyInProgress = 59, + UserNotSignedIn = 60, + UserHasNoOnlineAccount = 61, + KickedFromGame = 62, + JoinFailed = 63, + JoinFailedNotFound = 64, + JoinFailedFull = 65, + QueueEmpty = 66, + QueueFull = 67, + SecureConnectionFailed = 68, + AddressInUse = 69, + AddressNotAvailable = 70, + OutOfRange = 71, + HashCollision = 72, + TooManyLinks = 73, + UnknownHostName = 74, + RequestTimeOut = 75, + InvalidAlignment = 76, + Count = 77, +}; + +enum class PlatformId { + Invalid = 0, + Ngc = 1, + Wii = 2, + WiiU = 3, + Nds = 4, + Ctr = 5, + Ps2 = 6, + Ps3 = 7, + Ps4 = 8, + Psp = 9, + PsVita = 10, + Xb360 = 11, + Xb1 = 12, + Win32_x86 = 13, + Win32_x64 = 14, + Linux_x86 = 15, + Linux_x64 = 16, + Osx_x86 = 17, + Osx_x64 = 18, + Ios_arm32 = 19, + Ios_arm64 = 20, + Android_arm32 = 21, + Android_arm64 = 22, + Uwp_x86 = 23, + Uwp_x64 = 24, + Uwp_arm32 = 25, + Uwp_arm64 = 26, + Nx = 27, + Nx_Win32 = 28, + Ps5 = 29, + Count = 30, +}; + +enum class VertexColorChannel { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +struct ClothMaterial { + keen::VertexColorChannel simulationWeightVertexColorChannel; // Offset: 0 + keen::bool useMass; // Offset: 1 + keen::float32 mass; // Offset: 4 + keen::bool usePerVertexStiffness; // Offset: 8 + keen::VertexColorChannel perVertexStiffnessVertexColorChannel; // Offset: 9 + keen::float32 gravity; // Offset: 12 + keen::float32 windStrength; // Offset: 16 + keen::float32 dragCoefficient; // Offset: 20 + keen::float32 liftCoefficient; // Offset: 24 + keen::float32 damping; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 tetherStiffness; // Offset: 44 + keen::float32 phasesStiffness; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 motionConstraintsMaxRadius; // Offset: 60 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 64 + keen::float32 motionConstraintsStiffness; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 collisionFriction; // Offset: 76 +}; + +struct BvhTreeNodeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::sint32 value; // Offset: 32 +}; + +struct BvhTreeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::BlobArray nodes; // Offset: 32 +}; + +enum class CollisionSegmentDirection { + XPositive = 0, + XNegative = 1, + ZPositive = 2, + ZNegative = 3, +}; + +struct NavEdge { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 +}; + +struct NavPortal { + keen::StaticArray cellIndices; // Offset: 32 +}; + +struct CollisionShapeId { + keen::uint32 shapeId; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 +}; + +struct NavCell { + keen::uint16 index; // Offset: 0 + keen::float32 minY; // Offset: 4 + keen::float32 maxY; // Offset: 8 + keen::BlobArray edgeIndices; // Offset: 12 + keen::BlobArray portalIndices; // Offset: 20 + keen::BlobArray collisionShapeIds; // Offset: 28 + keen::uint16 extensionPortalIndex; // Offset: 36 + keen::Vector3 centroid; // Offset: 48 +}; + +struct ColliderShape { +}; + +struct SphereColliderShape { + keen::float32 radius; // Offset: 0 +}; + +struct SpheroidColliderShape { + keen::float32 horizontalRadius; // Offset: 0 + keen::float32 verticalRadius; // Offset: 4 +}; + +struct CapsuleColliderShape { + keen::float32 radius; // Offset: 0 + keen::float32 length; // Offset: 4 +}; + +struct BoxColliderShape { + keen::float3 halfSize; // Offset: 0 +}; + +struct SegmentColliderShape { + keen::float3 direction; // Offset: 0 + keen::float32 length; // Offset: 12 +}; + +struct CollisionFace { + keen::StaticArray vertices; // Offset: 0 + keen::StaticArray neighborFaces; // Offset: 6 + keen::uint8 neighborEdgeIndices; // Offset: 12 + keen::uint8 material; // Offset: 13 + keen::uint16 flags; // Offset: 14 +}; + +struct CollisionObject { + keen::uint32 id; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 + keen::BlobArray shapeVertices; // Offset: 8 + keen::BlobArray navCellIndices; // Offset: 16 + keen::float32 health; // Offset: 24 + keen::float32 y; // Offset: 28 +}; + +struct CollisionGridCell { + keen::uint16 start; // Offset: 0 + keen::uint16 count; // Offset: 2 +}; + +struct CollisionGrid { + keen::BlobArray gridCells; // Offset: 0 + keen::BlobArray gridIndicies; // Offset: 8 + keen::BlobArray collShapesPerGrid; // Offset: 16 + keen::BlobArray collShapesPerGridIndicies; // Offset: 24 + keen::uint16 cellsX; // Offset: 32 + keen::Vector2 origin; // Offset: 36 + keen::Vector2 cellSize; // Offset: 44 +}; + +struct CollisionMeshData { + keen::BlobArray m_vertices; // Offset: 0 + keen::BlobArray m_faces; // Offset: 8 + keen::CollisionGrid m_grid; // Offset: 16 + keen::BlobArray m_objects; // Offset: 68 + keen::BlobArray m_navCells; // Offset: 76 + keen::BlobArray m_navEdges; // Offset: 84 + keen::BlobArray m_navPortals; // Offset: 92 +}; + +struct WorldCollisionBatch { + keen::uint32 triangleIndex; // Offset: 0 + keen::uint32 triangleCount; // Offset: 4 +}; + +struct WorldCollision { + keen::BlobArray triangleBatches; // Offset: 0 + keen::BlobArray vertexPositions; // Offset: 8 + keen::BlobArray materialIds; // Offset: 16 + keen::BvhTreeData bvhTreeData; // Offset: 32 +}; + +struct PaletteColor { + keen::HdrColorRgb color; // Offset: 0 +}; + +typedef keen::ObjectReference PaletteColorReference; + +struct ColorPalette { +}; + +struct ColorPaletteCollection { +}; + +typedef keen::HashKey32 PaletteColorId; + +struct PaletteColorResource { + keen::PaletteColorId paletteColorId; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct ColorPaletteCollectionResource { + keen::BlobArray colors; // Offset: 0 +}; + +typedef keen::HashKey32 CommerceProductId; + +struct CommerceProduct { + keen::CommerceProductId id; // Offset: 0 + keen::uint32 platformIdSteam; // Offset: 4 +}; + +typedef keen::ObjectReference CommerceProductReference; + +struct CommerceProductSubDirectory { +}; + +struct CommerceProductDirectory { +}; + +struct CommerceProductResource { + keen::BlobArray products; // Offset: 0 +}; + +typedef keen::ObjectReference CommerceResourceReference; + +struct ecs.SpawnComponent { +}; + +struct ecs.LastTransform { + keen::WorldTransform transform; // Offset: 0 + keen::float3 velocity; // Offset: 56 +}; + +struct ecs.PlayerFocus { + keen::WorldPosition position; // Offset: 0 +}; + +struct ecs.StaticTransform { +}; + +struct ecs.StaticTransformDynamic { +}; + +struct ecs.DoNotSave { +}; + +struct ecs.ForceSave { +}; + +struct ecs.PlayerInRange { +}; + +struct ecs.CheckPlayerInRange { + keen::uint8 distanceInMeter; // Offset: 0 +}; + +struct ecs.ServerProgress { +}; + +struct ecs.StoredSceneId { + keen::Guid sceneGuid; // Offset: 0 +}; + +struct ecs.EnemyMarkerSettings { + keen::ObjectReference tag; // Offset: 0 +}; + +struct ecs.TeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool isWaitingForTeleport; // Offset: 1 +}; + +struct ecs.RenderTeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool wasTeleported; // Offset: 1 +}; + +struct ecs.ScaleComponent { + keen::float32 uniformScale; // Offset: 0 +}; + +struct ecs.Velocity { + keen::float3 velocity; // Offset: 0 +}; + +enum class ecs.ImpulseType { + S_Curve = 0, + FadeOut = 1, +}; + +struct ecs.ImpulseData { + keen::float3 impulse; // Offset: 0 + keen::ecs::ImpulseType type; // Offset: 12 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 +}; + +struct ecs.Impulse { + keen::float3 impulse; // Offset: 0 + keen::StaticArray impulses; // Offset: 16 +}; + +struct ecs.OscillateTransform { + keen::float3 center; // Offset: 0 + keen::float3 amplitudeAxis; // Offset: 12 + keen::float32 duration; // Offset: 24 + keen::float32 phase; // Offset: 28 +}; + +struct ecs.EntityId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.OwnerRelationship { + keen::ecs::EntityId ownerEntityId; // Offset: 0 +}; + +struct ecs.SpawnTime { + keen::Time spawnTime; // Offset: 0 +}; + +struct ecs.LifeTime { + keen::Time lifeTime; // Offset: 0 + keen::Time endOfLife; // Offset: 8 + keen::bool enforceDestroy; // Offset: 16 + keen::bool triggeredDestroy; // Offset: 17 +}; + +struct ecs.Aging { + keen::float32 speed; // Offset: 0 +}; + +struct ecs.TintColor { + keen::Color color; // Offset: 0 +}; + +struct ecs.ColorCombinationComponent { + keen::StaticArray colorIds; // Offset: 0 +}; + +enum class HighlightColorIndex { + NoHighlight = 0, + InvalidState = 1, + ValidState = 2, + MutedState = 3, + Group1 = 4, + Group2 = 5, + Group3 = 6, + Group4 = 7, +}; + +struct ecs.HighlightColor { + keen::HighlightColorIndex colorIndex; // Offset: 0 +}; + +struct ecs.Transparency { + keen::float32 transparency; // Offset: 0 +}; + +struct ecs.Ao { + keen::uint8 value; // Offset: 0 +}; + +struct ecs.Hide { + keen::bool isHidden; // Offset: 0 + keen::bool isLocalyHidden; // Offset: 1 +}; + +struct ecs.ModelComponent { + keen::uint32 modelHandle; // Offset: 0 +}; + +enum class ecs.ToggleModifierFlags { + IgnoreToggle = 0, + InvertToggle = 1, + IgnoreToggleOn = 2, + IgnoreToggleOff = 3, +}; + +typedef keen::Bitmask8 ecs.ToggleModifier; + +struct ecs.ModelRenderHint { + keen::bool canReceiveDecals; // Offset: 0 + keen::ecs::ToggleModifier toggleModifier; // Offset: 1 +}; + +struct ecs.ModelDynamic { + keen::ObjectReference lastModel; // Offset: 0 +}; + +struct ecs.ModelResource { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.ModelResourceDynamic { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.VoxelModel { + keen::uint32 renderNode; // Offset: 0 +}; + +struct ecs.VoxelModelVolatile { + keen::uint32 pendingRenderNode; // Offset: 4 + keen::ObjectReference lastModel; // Offset: 8 + keen::uint8 lastMaterialOverride; // Offset: 24 + keen::bool isVoxelModelChangePending; // Offset: 25 +}; + +struct ecs.VoxelModelResourceComponent { + keen::ObjectReference model; // Offset: 0 + keen::uint8 materialOverride; // Offset: 16 +}; + +struct ecs.SnowDisplacementComponent { + keen::uint32 bodyHandle; // Offset: 0 + keen::float3 localOffset; // Offset: 4 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 + keen::float32 heightNoiseScale; // Offset: 24 +}; + +struct ecs.DungeonTriggerTypeComponent { + keen::ObjectReference triggerSetup; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent2 { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.VfxComponentResource { + keen::VfxReference vfx; // Offset: 0 +}; + +struct ecs.VfxResourceDynamic { + keen::VfxReference vfx; // Offset: 0 +}; + +struct VfxUserEffectParameterDataBlock { + keen::StaticArray data; // Offset: 0 +}; + +struct ecs.VfxParametersTemplateComponent { + keen::VfxUserEffectParameterDataBlock parameters; // Offset: 0 +}; + +struct ecs.VfxParametersOverwriteComponent { + keen::bool useVfxDefaultParameters; // Offset: 0 + keen::VfxUserEffectParameterDataBlock parameters; // Offset: 4 +}; + +struct ecs.OverrideLevel { + keen::uint32 newLevel; // Offset: 0 +}; + +struct ecs.ToggleTimer { + keen::Time timer; // Offset: 0 + keen::ecs::ToggleModifier toggleModifier; // Offset: 8 + keen::bool timerRunning; // Offset: 9 + keen::Time lastToggleChange; // Offset: 16 +}; + +struct ecs.DestroyOnState { + keen::bool wasInOppositeState; // Offset: 0 + keen::bool targetState; // Offset: 1 + keen::bool triggered; // Offset: 2 +}; + +struct ecs.FxComponent { + keen::uint32 fxHandle; // Offset: 0 + keen::ecs::ToggleModifier toggleModifier; // Offset: 4 +}; + +struct ecs.VfxAnimationIdParameter { +}; + +struct ecs.Offset { + keen::float3 localOffset; // Offset: 0 + keen::float3 worldOffset; // Offset: 12 + keen::Quaternion orientationOffset; // Offset: 24 +}; + +struct ecs.VfxComponent { + keen::ecs::Offset attachmentOffset; // Offset: 8 + keen::AttachmentSlot slot; // Offset: 48 + keen::bool attachToParent; // Offset: 49 +}; + +enum class ecs.TargetType { + Combat = 0, + Teleport = 1, + Interaction = 2, + ItemInteraction = 3, + Dismantle = 4, + DismantleFallback = 5, + Hook = 6, + HookFallback = 7, + HookAttached = 8, + SpawnPoint = 9, + Picking = 10, + LastVisitedBase = 11, + ViceralAttack = 12, + HardLockCandidate = 13, + GuardingEnemy = 14, + NpcAssignment = 15, + Count = 16, +}; + +struct ecs.VfxTargetedComponent { + keen::ecs::TargetType targetType; // Offset: 52 + keen::float3 targetPosition; // Offset: 56 + keen::bool updateTargetPosition; // Offset: 68 +}; + +struct ecs.TargetEntity { + keen::ecs::EntityId targetId; // Offset: 0 +}; + +struct ecs.TargetPosition { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.VfxTargetParameter { + keen::AttachmentSlot targetSlot; // Offset: 0 + keen::ecs::Offset targetAttachmentOffset; // Offset: 4 + keen::bool attachToTarget; // Offset: 44 + keen::bool updateSourcePosition; // Offset: 45 +}; + +struct ecs.VfxComponentVolatile { + keen::VfxReference lastVfx; // Offset: 52 +}; + +typedef keen::ObjectReference NotifierReference; + +struct ecs.VfxOnResourceDrop { + keen::NotifierReference notifier; // Offset: 0 + keen::SoundContainerReference sfx; // Offset: 16 + keen::VfxReference vfx; // Offset: 32 +}; + +struct ecs.ToggleDelay { + keen::Time delay; // Offset: 0 +}; + +struct ecs.ToggleState { + keen::bool state; // Offset: 0 + keen::Time lastChange; // Offset: 8 +}; + +struct ecs.ServerToggleState { +}; + +struct ecs.NetworkToggleState { +}; + +struct ecs.ClientToggleState { +}; + +struct ecs.ToggleNotifier { + keen::Time lastEvent; // Offset: 0 + keen::ecs::ToggleModifier flags; // Offset: 8 + keen::NotifierReference notifier; // Offset: 12 + keen::Time duration; // Offset: 32 + keen::AttachmentSlot sourceSlot; // Offset: 40 + keen::ecs::Offset sourceAttachmentOffset; // Offset: 44 + keen::bool attachToSource; // Offset: 84 + keen::AttachmentSlot targetSlot; // Offset: 85 + keen::ecs::Offset targetAttachmentOffset; // Offset: 88 + keen::bool attachToTarget; // Offset: 128 + keen::SoundContainerReference sfx; // Offset: 132 + keen::VfxReference vfx; // Offset: 148 +}; + +struct ecs.BaseAnimationGraphInput { + keen::animationgraph::StateIdReference initialAnimationStateIdReference; // Offset: 0 + keen::AnimationGraphInputs animationInputs; // Offset: 16 + keen::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 400 + keen::animationgraph::StateIdHash animationStateId; // Offset: 404 + keen::uint32 retriggerCount; // Offset: 408 +}; + +struct ecs.ServerAnimationGraphInput { + keen::AnimationGraphInputs previousAnimationInputs; // Offset: 416 + keen::uint8 overlayRingbufferIndex; // Offset: 800 +}; + +struct ecs.NetworkAnimationGraphInput { +}; + +struct ecs.ClientAnimationGraphInputLerp { + keen::AnimationGraphInputs source; // Offset: 0 + keen::AnimationGraphInputs target; // Offset: 384 + keen::uint32 tick; // Offset: 768 + keen::bool isSet; // Offset: 772 +}; + +struct ecs.ClientAnimationGraphInput { +}; + +struct ecs.AnimationGraphHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.RenderPoseHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphBaseComponent { + keen::ecs::AnimationGraphHandleValue animationGraphHandle; // Offset: 0 + keen::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 +}; + +struct ecs.AnimationGraphComponent { + keen::ObjectReference usedClothCollider; // Offset: 8 +}; + +struct ecs.AnimationGraphSlotComponent { + keen::bool slotsInitialized; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct ecs.ServerAnimationGraphComponent { +}; + +struct ecs.ServerAnimationGraphSlotComponent { +}; + +struct ecs.AnimationGraphHandleValue2 { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphComponent2 { + keen::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 + keen::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 + keen::Guid clothCollider; // Offset: 8 +}; + +struct ecs.ServerAnimationGraphComponent2 { + keen::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 +}; + +struct ecs.CopyParentAnimationGraphState { +}; + +struct ecs.AnimatedCamera { + keen::AttachmentSlot cameraSlot; // Offset: 0 +}; + +struct ecs.RngState { + keen::uint32 w; // Offset: 0 + keen::uint32 z; // Offset: 4 +}; + +typedef keen::uint8 VoxelMaterialId; + +struct ecs.WorldCollisionResults { + keen::bool hasSpheroidCollision; // Offset: 0 + keen::float3 spheroidNormal; // Offset: 4 + keen::bool hasGroundCollision; // Offset: 16 + keen::bool isGroundWalkable; // Offset: 17 + keen::float3 groundNormal; // Offset: 20 + keen::float3 areaGroundNormal; // Offset: 32 + keen::float32 groundDistance; // Offset: 44 + keen::VoxelMaterialId groundVoxelMaterialId; // Offset: 48 + keen::bool preventFallDamage; // Offset: 49 +}; + +struct ecs.OptionalWorldCollisionResults { + keen::ecs::WorldCollisionResults m_value; // Offset: 0 + keen::bool m_isSet; // Offset: 52 +}; + +struct ecs.WorldCollider { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::float32 maxStepHeightVoxels; // Offset: 8 + keen::float32 maxStepHeightProps; // Offset: 12 + keen::bool onlyCheckPathCollidersWithBundleCheck; // Offset: 16 + keen::float32 yOffset; // Offset: 20 + keen::bool isWorldColliderReady; // Offset: 24 + keen::bool snapToGround; // Offset: 25 + keen::bool hasDetectedSafePositionBelow; // Offset: 26 + keen::ecs::OptionalWorldCollisionResults results; // Offset: 28 +}; + +struct ecs.Gravity { + keen::float3 direction; // Offset: 0 + keen::float32 value; // Offset: 12 + keen::bool isActive; // Offset: 16 +}; + +struct ecs.StaticGravityModifier { + keen::float32 modifier; // Offset: 0 +}; + +struct ecs.Debug { +}; + +typedef keen::ObjectReference ecs.ColliderResponseResourceReference; + +struct ecs.ColliderResponseComponent { + keen::ecs::ColliderResponseResourceReference colliderResponse; // Offset: 0 +}; + +enum class ecs.ColliderResponseFlag { + OrientToNormal = 0, + ApplyLocally = 1, + AttachToSlot = 2, +}; + +typedef keen::Bitmask8 ecs.ColliderResponseFlags; + +enum class ecs.CollisionType { + Hit = 0, + CriticalHit = 1, + Block = 2, + BrokenBlock = 3, + Ineffective = 4, + Immune = 5, + PileUp = 6, + Flattening = 7, + Count = 8, +}; + +struct ecs.ColliderResponseResourceEntry { + keen::SoundContainerReference sfx; // Offset: 0 + keen::VfxReference vfx; // Offset: 16 + keen::string sfxDescription; // Offset: 32 + keen::string vfxDescription; // Offset: 40 + keen::string description; // Offset: 48 + keen::float3 eulerOffset; // Offset: 56 + keen::float3 offset; // Offset: 68 + keen::ecs::CollisionType collisionType; // Offset: 80 + keen::AttachmentSlot slot; // Offset: 81 + keen::ecs::ColliderResponseFlags flags; // Offset: 82 +}; + +struct ecs.ColliderResponseResource { + keen::BlobArray responseEntries; // Offset: 0 + keen::Guid templateId; // Offset: 8 + keen::string templateDescription; // Offset: 24 +}; + +struct ecs.ColliderResponse { + keen::ecs::CollisionType collisionType; // Offset: 0 + keen::SoundContainerReference sfx; // Offset: 4 + keen::VfxReference vfx; // Offset: 20 + keen::float3 eulerOffset; // Offset: 36 + keen::float3 offset; // Offset: 48 + keen::bool applyLocally; // Offset: 60 + keen::bool orientToNormal; // Offset: 61 + keen::bool overrideSlot; // Offset: 62 + keen::AttachmentSlot slot; // Offset: 63 + keen::bool attach; // Offset: 64 +}; + +struct ecs.ColliderResourceComponent { + keen::BlobArray colliders; // Offset: 0 +}; + +typedef keen::ObjectReference CollisionFeedbackMaterialReference; + +typedef keen::HashKey32 ItemId; + +typedef keen::ObjectReference ItemReference; + +enum class PropDamageSusceptibility { + None = 0, + Wood = 1, + Stone = 2, + Metal = 3, +}; + +struct ecs.CollisionFeedbackMaterialComponent { + keen::CollisionFeedbackMaterialReference material; // Offset: 0 + keen::ItemId itemId; // Offset: 16 + keen::ItemReference itemRef; // Offset: 20 + keen::PropDamageSusceptibility propDamageSusceptibility; // Offset: 36 +}; + +struct ecs.ColliderId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.AbstractCollider { + keen::ecs::ToggleModifier toggleModifier; // Offset: 0 + keen::ecs::ColliderId colliderId; // Offset: 8 +}; + +struct ecs.StaticCollider { +}; + +struct ecs.StaticClientCollider { +}; + +enum class ecs.ColliderFlags { + World = 0, + Solid = 1, + Fluid = 2, + Walkable = 3, + WalkablePlatform = 4, + NoNpcMovement = 5, + ClimbingWall = 6, + Combat = 7, + Force = 8, + Steering = 9, + HookShotTarget = 10, + PlacementBlocker = 11, + Interaction = 12, + PathGridInteraction = 13, + Sight = 14, + BlockCameraLoS = 15, + SoundOccluder = 16, +}; + +typedef keen::Bitmask32 ecs.ColliderMask; + +enum class ecs.ColliderMode { + Default = 0, + Sitting = 1, + Lying = 2, + Evading = 3, + ClimbingWall = 4, + Death = 5, + Invisible = 6, +}; + +struct ecs.Collider { + keen::bool isPathBlocker; // Offset: 16 + keen::ecs::ColliderMask disabledCollisions; // Offset: 20 + keen::ecs::ColliderMode activeColliderSetup; // Offset: 24 +}; + +struct ecs.ClientCollider { +}; + +enum class ecs.PlayerSpawnType { + StartLocation = 0, + SavePoint = 1, + Base = 2, +}; + +struct ecs.PlayerSpawnPoint { + keen::ecs::PlayerSpawnType target; // Offset: 0 + keen::StaticArray landingPads; // Offset: 4 +}; + +struct ecs.QueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.IsPlayerInSight { + keen::bool isInSight; // Offset: 0 + keen::ecs::QueryId queryId; // Offset: 4 + keen::Time nextQueryUpdate; // Offset: 8 + keen::ecs::Offset sourceOffset; // Offset: 16 + keen::ecs::Offset targetOffset; // Offset: 56 +}; + +typedef keen::uint8 ecs.LocalPlayerMask; + +struct ecs.IsLocalPlayerInRange { + keen::float32 rangeMargin; // Offset: 0 + keen::ecs::LocalPlayerMask arePlayersInRangeMask; // Offset: 4 +}; + +enum class ecs.TriggerShapeType { + Range = 0, + Box = 1, +}; + +struct ecs.TriggerShape { + keen::ecs::TriggerShapeType shape; // Offset: 0 + keen::float32 rangeX; // Offset: 4 + keen::float32 rangeY; // Offset: 8 + keen::float32 rangeZ; // Offset: 12 + keen::ecs::Offset offset; // Offset: 16 +}; + +enum class FloorMaterialShape { + None = 0, + HalfRadiusClump = 1, + HalfRadiusClumpPeekOut = 2, +}; + +struct ecs.FloorMaterial { + keen::ObjectReference material; // Offset: 0 + keen::float32 radius; // Offset: 16 + keen::FloorMaterialShape shape; // Offset: 20 + keen::float32 noiseStrength; // Offset: 24 +}; + +struct ecs.TriggerShapes { + keen::BlobArray shapes; // Offset: 0 +}; + +struct ecs.FogResistanceState { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.AudioResourceComponent { + keen::SoundContainerReference soundContainer; // Offset: 0 +}; + +struct ecs.AudioComponent { + keen::AttachmentSlot slot; // Offset: 8 + keen::ecs::Offset offset; // Offset: 12 + keen::bool stopOnDestroy; // Offset: 52 + keen::bool attach; // Offset: 53 + keen::bool attachToParent; // Offset: 54 +}; + +struct ecs.AudioComponentVolatile { + keen::SoundContainerReference lastSoundContainer; // Offset: 56 +}; + +struct ecs.AmbientQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.AmbientSystemQuery { + keen::ecs::AmbientQueryId queryId; // Offset: 0 +}; + +typedef keen::HashKey32 LocaTagId; + +struct ecs.UiInteractable { + keen::uint32 handle; // Offset: 0 + keen::LocaTagId verbId; // Offset: 4 + keen::float32 hintRange; // Offset: 8 +}; + +struct ecs.QueryTest { + keen::Time queryTime; // Offset: 0 + keen::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.DespawnLink { + keen::ecs::EntityId parentEntityId; // Offset: 0 + keen::bool despawnOnDeath; // Offset: 4 +}; + +struct ecs.Transform { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 +}; + +struct ecs.CurrentTransform { + keen::WorldTransform transform; // Offset: 0 +}; + +struct ecs.RenderTransform { + keen::WorldTransform transform; // Offset: 0 + keen::WorldTransform interpolationSource; // Offset: 56 + keen::WorldTransform interpolationTarget; // Offset: 112 + keen::uint32 interpolationNewestTick; // Offset: 168 +}; + +struct ecs.SetDataBreakPointMessage { + keen::uint32 entityId; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 4 + keen::uint16 offset; // Offset: 8 + keen::uint8 size; // Offset: 10 + keen::bool write; // Offset: 11 +}; + +struct ecs.ComponentMessageEntry { + keen::BlobString name; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 8 + keen::HashKey32 templateType; // Offset: 12 + keen::uint8 affinity; // Offset: 16 + keen::uint8 queryAffinity; // Offset: 17 +}; + +struct ecs.ComponentMessage { + keen::BlobArray components; // Offset: 0 +}; + +struct ecs.EcsComponentsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.EcsSystemsMask { + keen::uint64 mask; // Offset: 0 +}; + +struct ecs.EcsEventsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.TemplateMessageEntry { + keen::Guid guid; // Offset: 0 + keen::BlobString name; // Offset: 16 + keen::ecs::EcsComponentsMask componentsMask; // Offset: 24 +}; + +struct ecs.TemplateMessage { + keen::BlobArray templates; // Offset: 0 +}; + +struct ecs.EntityMessageEntry { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint32 templateIndex; // Offset: 4 +}; + +struct ecs.TotalEntityMessage { + keen::BlobArray entities; // Offset: 0 +}; + +struct ecs.ChangeEntityMessage { + keen::BlobArray createdEntities; // Offset: 0 + keen::BlobArray destroyedEntities; // Offset: 8 +}; + +struct ecs.TickMessage { + keen::uint32 tick; // Offset: 0 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 entitiesAdded; // Offset: 8 + keen::uint32 entitiesRemoved; // Offset: 12 + keen::uint32 eventCount; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 +}; + +struct ecs.ProgramInfoComponentDependencies { + keen::ecs::EcsComponentsMask required; // Offset: 0 + keen::ecs::EcsComponentsMask optional; // Offset: 72 +}; + +struct ecs.ProgramInfoDependencies { + keen::ecs::ProgramInfoComponentDependencies components; // Offset: 0 + keen::ecs::ProgramInfoComponentDependencies templateComponents; // Offset: 144 + keen::ecs::EcsSystemsMask externalSystems; // Offset: 288 + keen::ecs::EcsComponentsMask entityComponents; // Offset: 296 + keen::ecs::EcsComponentsMask entityTemplates; // Offset: 368 + keen::ecs::EcsEventsMask events; // Offset: 440 + keen::bool isThreadSafe; // Offset: 456 +}; + +struct ecs.ProgramInfoReadWriteDependency { + keen::ecs::ProgramInfoDependencies read; // Offset: 0 + keen::ecs::ProgramInfoDependencies write; // Offset: 464 + keen::ecs::EcsComponentsMask forbiddenComponents; // Offset: 928 + keen::ecs::EcsComponentsMask requiredComponents; // Offset: 1000 +}; + +struct ecs.ProgramId { + keen::uint16 id; // Offset: 0 +}; + +struct ecs.ProgramInfo { + keen::ecs::ProgramId programId; // Offset: 0 + keen::BlobString programName; // Offset: 4 + keen::bool isPresentation; // Offset: 12 + keen::bool isDisabled; // Offset: 13 + keen::bool isSystem; // Offset: 14 + keen::bool isInit; // Offset: 15 + keen::bool noPrediction; // Offset: 16 + keen::bool isDeactivated; // Offset: 17 + keen::bool isDeactivatedPrediction; // Offset: 18 + keen::ecs::ProgramInfoReadWriteDependency dependencies; // Offset: 24 +}; + +struct ecs.ProgramsMessage { + keen::BlobArray programs; // Offset: 0 +}; + +struct ecs.EventTypesMessageEntry { + keen::string name; // Offset: 0 + keen::uint16 size; // Offset: 8 + keen::bool serverRead; // Offset: 10 + keen::bool serverWrite; // Offset: 11 + keen::bool clientRead; // Offset: 12 + keen::bool clientWrite; // Offset: 13 +}; + +struct ecs.EventTypesMessage { + keen::BlobArray events; // Offset: 0 +}; + +struct ecs.ExternalSystemsMessageEntry { + keen::string name; // Offset: 0 + keen::bool readThreadSafe; // Offset: 8 + keen::bool writeThreadSafe; // Offset: 9 + keen::bool serverRead; // Offset: 10 + keen::bool serverWrite; // Offset: 11 + keen::bool clientRead; // Offset: 12 + keen::bool clientWrite; // Offset: 13 +}; + +struct ecs.ExternalSystemsMessage { + keen::BlobArray systems; // Offset: 0 +}; + +struct ecs.TaskSlotsMessageProgram { + keen::uint16 index; // Offset: 0 + keen::uint16 storageCount; // Offset: 2 + keen::uint16 chunkCount; // Offset: 4 + keen::uint32 entityCount; // Offset: 8 +}; + +struct ecs.TaskSlotsMessageEntry { + keen::ecs::EcsComponentsMask componentsRead; // Offset: 0 + keen::ecs::EcsComponentsMask componentsWrite; // Offset: 72 + keen::ecs::EcsSystemsMask systemsRead; // Offset: 144 + keen::ecs::EcsSystemsMask systemsWrite; // Offset: 152 + keen::ecs::EcsComponentsMask entitiesRead; // Offset: 160 + keen::ecs::EcsComponentsMask entitiesWrite; // Offset: 232 + keen::bool isThreadSafe; // Offset: 304 + keen::BlobArray programs; // Offset: 308 +}; + +struct ecs.TaskSlotsMessage { + keen::uint32 tick; // Offset: 0 + keen::BlobArray entries; // Offset: 4 +}; + +struct ecs.SendTaskSlotsMessage { + keen::uint8 dummy; // Offset: 0 +}; + +struct ecs.StartEntityUpdateMessage { + keen::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.StopEntityUpdateMessage { + keen::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.EntityComponentEntry { + keen::uint16 index; // Offset: 0 + keen::uint16 offset; // Offset: 2 + keen::uint16 size; // Offset: 4 +}; + +struct ecs.EntityComponentMessage { + keen::ecs::EntityId entityId; // Offset: 0 + keen::BlobArray components; // Offset: 4 + keen::BlobArray buffer; // Offset: 12 +}; + +struct ecs.EntityTemplateMessage { + keen::Guid templateGuid; // Offset: 0 + keen::BlobArray templateData; // Offset: 16 +}; + +struct ecs.StartTimelineMessage { + keen::BlobArray entityIds; // Offset: 0 +}; + +struct ecs.StopTimelineMessage { + keen::uint8 dummy; // Offset: 0 +}; + +enum class ecs.AdjustTick { + None = 0, + Reset = 1, + Inc = 2, + Dec = 3, +}; + +struct ecs.TimelineFrameMessage { + keen::Time time; // Offset: 0 + keen::Time systemTime; // Offset: 8 + keen::Time lastSystemTime; // Offset: 16 + keen::uint32 tickCount; // Offset: 24 + keen::uint32 currentTick; // Offset: 28 + keen::uint32 lastTick; // Offset: 32 + keen::Time frameDuration; // Offset: 40 + keen::Time frameTime; // Offset: 48 + keen::Time nextTickTime; // Offset: 56 + keen::float32 tickInterpolationFactor; // Offset: 64 + keen::ecs::AdjustTick adjustTick; // Offset: 68 +}; + +struct ecs.UpdateGameTimeMessage { + keen::Time time; // Offset: 0 +}; + +struct ecs.DebugQueryMessage { + keen::ecs::QueryId queryId; // Offset: 0 +}; + +struct ecs.EntityStateComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 size; // Offset: 2 + keen::uint16 offset0; // Offset: 4 + keen::uint16 offset1; // Offset: 6 +}; + +struct ecs.TimelineEntityStateData { + keen::ecs::EntityId entityId; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 + keen::uint32 gridCellId; // Offset: 64 + keen::uint32 dirtyValue; // Offset: 68 + keen::uint32 dataTick; // Offset: 72 + keen::uint16 isCulled; // Offset: 76 + keen::uint16 isCulledPrediction; // Offset: 78 + keen::uint16 playerMask; // Offset: 80 +}; + +struct ecs.TimelineEntityState { + keen::ecs::TimelineEntityStateData entity0; // Offset: 0 + keen::ecs::TimelineEntityStateData entity1; // Offset: 88 + keen::BlobArray components; // Offset: 176 + keen::BlobArray buffer; // Offset: 184 +}; + +struct ecs.TimelineSystemCounts { + keen::uint32 entities; // Offset: 0 + keen::uint32 sceneEntities; // Offset: 4 + keen::uint32 activeSceneChunks; // Offset: 8 +}; + +struct ecs.TimelineCamera { + keen::WorldTransform transform0; // Offset: 0 + keen::WorldTransform transform1; // Offset: 56 +}; + +struct ecs.TimelineSystemUpdateMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::Time frameTime; // Offset: 16 + keen::Time frameDuration; // Offset: 24 + keen::uint32 tick; // Offset: 32 + keen::uint32 lastTick; // Offset: 36 + keen::float32 tickFactor; // Offset: 40 + keen::ecs::TimelineSystemCounts startCounts; // Offset: 44 + keen::ecs::TimelineSystemCounts endCounts; // Offset: 56 + keen::BlobArray createdEntities; // Offset: 68 + keen::BlobArray destroyedEntities; // Offset: 76 + keen::BlobArray entities; // Offset: 84 + keen::ecs::TimelineCamera camera; // Offset: 96 +}; + +struct ecs.TimelineReplicationPriorityEntry { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint16 priority; // Offset: 4 +}; + +struct ecs.TimelineReplicationPriorityMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::BlobArray clientEntries; // Offset: 16 + keen::BlobArray predictionEntries; // Offset: 24 +}; + +enum class ecs.TimelineEntitySkipReason { + NothingChanged = 0, + TooBig = 1, +}; + +struct ecs.TimelineEntitySkipMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::ecs::EntityId entityId; // Offset: 16 + keen::ecs::TimelineEntitySkipReason reason; // Offset: 20 +}; + +struct ecs.TimelineEntitySendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::bool create; // Offset: 14 + keen::ecs::EntityId entityId; // Offset: 16 + keen::BlobArray messageData; // Offset: 20 +}; + +struct ecs.TimelineEntityRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineEntityProcessMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineInputSendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineInputRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineReplicationComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 count; // Offset: 2 + keen::uint16 deltaSize; // Offset: 4 +}; + +struct ecs.TimelineReplicationTemplate { + keen::string name; // Offset: 0 + keen::uint32 checkedEntityCount; // Offset: 8 + keen::uint32 updatedEntityCount; // Offset: 12 + keen::BlobArray components; // Offset: 16 +}; + +struct ecs.TimelineReplicationEvent { + keen::string name; // Offset: 0 + keen::uint32 size; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct ecs.TimelineReplicationStatisticsData { + keen::uint32 prioQueueSize; // Offset: 0 + keen::uint32 dirtyEntities; // Offset: 4 + keen::uint32 changedEntities; // Offset: 8 + keen::uint32 createdEntities; // Offset: 12 + keen::uint32 destroyedEntities; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 + keen::uint32 messageSize; // Offset: 24 + keen::uint32 totalEventCount; // Offset: 28 + keen::uint32 totalEventSize; // Offset: 32 + keen::BlobArray templates; // Offset: 36 + keen::BlobArray events; // Offset: 44 +}; + +struct ecs.TimelineReplicationStatisticsMessage { + keen::Time time; // Offset: 0 + keen::uint32 playerIndex; // Offset: 8 + keen::ecs::TimelineReplicationStatisticsData client; // Offset: 12 + keen::ecs::TimelineReplicationStatisticsData prediction; // Offset: 64 +}; + +struct ecs.TimelinePredictionEntityState { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint32 dataTick; // Offset: 4 + keen::bool isDirty; // Offset: 8 + keen::bool isDestroyed; // Offset: 9 + keen::BlobArray components; // Offset: 12 + keen::BlobArray buffer; // Offset: 20 +}; + +struct ecs.TimelinePredictionUpdateMessage { + keen::Time time; // Offset: 0 + keen::uint32 startTick; // Offset: 8 + keen::uint32 clientTick; // Offset: 12 + keen::uint32 lastTick; // Offset: 16 + keen::uint32 sourceTick; // Offset: 20 + keen::BlobArray entities; // Offset: 24 +}; + +struct ecs.TimelinePredictionTickMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::uint32 tick; // Offset: 16 + keen::BlobArray entities; // Offset: 20 +}; + +struct ecs.SceneCellEntity { + keen::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::uint16 templateIndex; // Offset: 16 + keen::uint16 clientCulledMask; // Offset: 18 + keen::uint16 predictionCulledMask; // Offset: 20 + keen::bool isUncullable; // Offset: 22 + keen::bool hasPosition; // Offset: 23 + keen::bool isDynamic; // Offset: 24 +}; + +struct ecs.SceneCellMessage { + keen::uint2 cellPosition; // Offset: 0 + keen::uint32 cellIndex; // Offset: 8 + keen::BlobArray entities; // Offset: 12 + keen::uint32 sceneEntityCount; // Offset: 20 +}; + +enum class ecs.SceneChunkState { + Unloaded = 0, + Load = 1, + Loaded = 2, + Unload = 3, +}; + +struct ecs.SceneChunkEntry { + keen::ecs::SceneChunkState state; // Offset: 0 + keen::bool isActive; // Offset: 1 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 destroyedEntityCount; // Offset: 8 + keen::Time unloadAge; // Offset: 16 +}; + +struct ecs.SceneChunksMessage { + keen::BlobArray chunks; // Offset: 0 +}; + +struct ecs.SceneZoneBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +struct ecs.SceneBuildZonesMessage { + keen::BlobArray allowedZones; // Offset: 0 + keen::BlobArray forbiddenZones; // Offset: 8 + keen::BlobArray activeZones; // Offset: 16 + keen::BlobArray playableZones; // Offset: 24 +}; + +struct ecs.SceneMessage { + keen::Guid sceneGuid; // Offset: 0 + keen::uint2 sceneChunkSize; // Offset: 16 + keen::uint2 entityGridSize; // Offset: 24 + keen::float32 entityGridCellSize; // Offset: 32 +}; + +enum class ecs.SceneControlMessageType { + Start = 0, + Stop = 1, +}; + +struct ecs.SceneControlMessage { + keen::ecs::SceneControlMessageType type; // Offset: 0 +}; + +struct ecs.SceneHotPointsMessage { + keen::BlobArray hotPoints; // Offset: 0 +}; + +struct ecs.SceneHotPointsFile { + keen::BlobArray hotPoints; // Offset: 0 +}; + +struct ecs.ScenePlayerCamera { + keen::float3 position; // Offset: 0 + keen::float yRotation; // Offset: 12 +}; + +struct ecs.ScenePlayerCamerasMessage { + keen::StaticArray cameras; // Offset: 0 +}; + +struct ecs.SceneChunkResetMessage { + keen::uint32 chunkIndex; // Offset: 0 +}; + +enum class ecs.QueryFlag { + OnlyPlayer = 0, + NoPlayers = 1, + SortByDistance = 2, + CheckLineOfSight = 3, + PreferHullIntersection = 4, + KeepResults = 5, + OnlyPathBlockers = 6, + NoPathBlockers = 7, + AbortAfterFirstMatch = 8, + DrawDebug = 9, +}; + +typedef keen::Bitmask16 ecs.QueryFlags; + +struct AxisAlignedBox { + keen::Vector3 min; // Offset: 0 + keen::Vector3 max; // Offset: 16 +}; + +struct ecs.SceneColliderQueryEntry { + keen::ecs::QueryId queryId; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 4 + keen::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::ecs::QueryFlags flags; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::AxisAlignedBox colliderAabb; // Offset: 32 + keen::string debugName; // Offset: 64 + keen::uint32 resultCount; // Offset: 72 + keen::bool checkWorldTriangles; // Offset: 76 +}; + +struct ecs.RangeQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.SceneRangeQueryEntry { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 4 + keen::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::uint16 componentId; // Offset: 16 + keen::AxisAlignedBox aabb; // Offset: 32 + keen::float32 range; // Offset: 64 + keen::string debugName; // Offset: 68 + keen::uint32 resultCount; // Offset: 76 +}; + +struct ecs.SceneQueriesMessage { + keen::uint32 triangleQueryCount; // Offset: 0 + keen::BlobArray colliderQueries; // Offset: 4 + keen::BlobArray rangeQueries; // Offset: 12 +}; + +struct ecs.TimeControlMessage { + keen::sint16 tickDelta; // Offset: 0 + keen::Time sleep; // Offset: 8 + keen::Time sleepOnce; // Offset: 16 +}; + +struct ecs.DestroyEntityMessage { + keen::ecs::EntityId entityId; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateReference; + +struct HolisticMapFilterTemplateEntry { + keen::ecs::TemplateReference templateReference; // Offset: 0 + keen::bool showChildTemplates; // Offset: 16 +}; + +enum class ecs.TestState { + Destroyed = 0, + Create = 1, + Created = 2, + Destroy = 3, +}; + +struct ecs.TestA { + keen::Time time; // Offset: 0 + keen::uint32 state; // Offset: 8 + keen::ecs::TestState stateB; // Offset: 12 + keen::ecs::TestState stateC; // Offset: 13 + keen::ecs::TestState stateD; // Offset: 14 +}; + +struct ecs.TestB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestC { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestD { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestTemplateA { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateA { + keen::uint32 defValue; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct ecs.TestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTypeTestTemplate { + keen::BlobArray values; // Offset: 0 +}; + +struct ecs.TestBase { + keen::BlobString name; // Offset: 0 +}; + +struct ecs.DynamicTestBase { + keen::uint32 value; // Offset: 0 + keen::uint32 notSave; // Offset: 4 + keen::ecs::EntityId mainEntity; // Offset: 8 + keen::Time start; // Offset: 16 + keen::Time duration; // Offset: 24 +}; + +struct ecs.TestBaseEntry { + keen::uint32 value; // Offset: 0 + keen::ecs::EntityId spouseId; // Offset: 4 + keen::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.TestBaseEntryServer { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryTemplateClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntrySpawnClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryAddClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.Event { +}; + +struct ecs.TestEvent1 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEvent2 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEventCreate { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.GridId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.PathQueryId { + keen::uint32 id; // Offset: 0 +}; + +enum class ecs.QueryResultFlag { + Hit = 0, + QueryNew = 1, + UpdateNew = 2, + OutOfSight = 3, + User2 = 4, + User3 = 5, + User4 = 6, + User5 = 7, +}; + +typedef keen::Bitmask8 ecs.QueryResultFlags; + +enum class ecs.CollisionCheckFlag { + PreferHullIntersection = 0, + Moved = 1, +}; + +typedef keen::Bitmask8 ecs.CollisionCheckFlags; + +struct ecs.Template { + keen::bool predictEntity; // Offset: 0 + keen::bool farCulling; // Offset: 1 + keen::bool questEntity; // Offset: 2 +}; + +struct ecs.TemplateResource { + keen::string name; // Offset: 0 + keen::bool predictEntity; // Offset: 8 + keen::bool farCulling; // Offset: 9 + keen::BlobArray> components; // Offset: 12 +}; + +typedef keen::ObjectReference ecs.TemplateResourceReference; + +struct ecs.TemplateSubDirectory { +}; + +struct ecs.TemplateDirectory { +}; + +struct ecs.TemplateCollectionResource { + keen::BlobArray templates; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateCollectionReference; + +struct ecs.ServerInfo { + keen::Time minDuration; // Offset: 0 + keen::Time avgDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 + keen::uint32 sceneEntityCount; // Offset: 24 + keen::uint32 dynamicEntityCount; // Offset: 28 + keen::uint32 sceneChunkCount; // Offset: 32 + keen::uint32 bandwidth; // Offset: 36 +}; + +struct ecs.ColliderFlagData { + keen::ecs::ColliderMask isA; // Offset: 0 + keen::ecs::ColliderMask checkAgainst; // Offset: 4 +}; + +struct ecs.ColliderModeSetup { + keen::bool defaultMode; // Offset: 0 + keen::bool sitting; // Offset: 1 + keen::bool lying; // Offset: 2 + keen::bool evading; // Offset: 3 + keen::bool climbingWall; // Offset: 4 + keen::bool death; // Offset: 5 + keen::bool invisible; // Offset: 6 +}; + +struct ecs.ColliderData { + keen::bool enabled; // Offset: 0 + keen::ecs::ColliderFlagData flags; // Offset: 4 + keen::float3 offset; // Offset: 12 + keen::Quaternion orientation; // Offset: 24 + keen::float32 stickyness; // Offset: 40 + keen::ecs::ColliderModeSetup colliderModeSetup; // Offset: 44 + keen::bool preventFallDamage; // Offset: 51 + keen::bool isSnappingBox; // Offset: 52 +}; + +struct ecs.SphereColliderData { + keen::SphereColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 60 +}; + +struct ecs.SpheroidColliderData { + keen::SpheroidColliderShape shape; // Offset: 56 +}; + +struct ecs.CapsuleColliderData { + keen::CapsuleColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 64 +}; + +struct ecs.SegmentColliderData { + keen::SegmentColliderShape shape; // Offset: 56 +}; + +struct ecs.MovingSphereColliderData { + keen::SphereColliderShape sphereShape; // Offset: 56 + keen::SegmentColliderShape segmentShape; // Offset: 60 +}; + +struct ecs.BoxColliderData { + keen::BoxColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 68 +}; + +struct ecs.LineSegment { + keen::Vector3 p0; // Offset: 0 + keen::Vector3 p1; // Offset: 16 +}; + +struct ecs.SegmentBundleColliderData { + keen::StaticArray segments; // Offset: 64 +}; + +typedef keen::BlobArray> ecs.ColliderDataArray; + +enum class ecs.ColliderResolveFlag { + Continuous = 0, +}; + +typedef keen::Bitmask8 ecs.ColliderResolveMask; + +struct ecs.ColliderResourceData { + keen::ecs::ColliderDataArray dataArray; // Offset: 0 + keen::ecs::ColliderFlagData combinedFlags; // Offset: 8 + keen::ecs::ColliderResolveMask resolveMask; // Offset: 16 +}; + +struct ecs.CollisionEvent { + keen::ecs::EntityId entityA; // Offset: 0 + keen::ecs::EntityId entityB; // Offset: 4 + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::float32 sqrDistance; // Offset: 32 + keen::float32 overlap; // Offset: 36 + keen::ecs::ColliderMask colliderFlagsA; // Offset: 40 + keen::ecs::ColliderMask colliderFlagsB; // Offset: 44 + keen::uint8 voxelMaterialId; // Offset: 48 +}; + +enum class ecs.EntitySpawnValue { + Velocity = 0, + TintColor = 1, + TriggerRange = 2, + TriggerRange2 = 3, + TriggerRange3 = 4, + TriggerId_Unused = 5, + ItemId = 6, + EnemySettings = 7, + RandomSpawnerSetting_AllowUpScaling = 8, + RandomSpawnerSetting_AllowDownScaling = 9, + RandomSpawnerSetting_MinSpawnerAmount = 10, + EnemyTestFlags = 11, + Level = 12, + EnemyMarkerTag = 13, + TeleporterId = 14, + TeleportTargetId = 15, + JumpParameters = 16, +}; + +typedef keen::Bitmask32 ecs.EntitySpawnValueMask; + +enum class ecs.EnemyFeature { + UseTaunt = 0, + UseThreatSystem = 1, + UseBlocking = 2, + Move = 3, + Prowl = 4, + Rotate = 5, + RotateWhileStanding = 6, + Patrol = 7, + Roaming = 8, + ShowSpawnSequence = 9, + ReturnHome = 10, + FleeHome = 11, + Combat = 12, + Interact = 13, + TriggerAlarm = 14, + CallForHelp = 15, + Run = 16, + IdleTurn = 17, + BlockProjectiles = 18, + SearchForCover = 19, + MoveToMarker = 20, + Sleep = 21, + RunAround = 22, + Circling = 23, +}; + +typedef keen::Bitmask32 ecs.EnemyFeatureMask; + +struct ecs.EnemyMarkerTag { +}; + +typedef keen::ObjectReference actor.ActorSequenceReference; + +struct ecs.EnemySettings { + keen::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::ecs::EnemyFeatureMask enabledFeatures; // Offset: 16 + keen::ecs::EnemyFeatureMask disabledFeatures; // Offset: 20 + keen::float32 checkDistance; // Offset: 24 + keen::ObjectReference requiredMarkerTag; // Offset: 28 + keen::actor::ActorSequenceReference spawnSequence; // Offset: 44 + keen::float32 maxTargetDistanceToHomeZone; // Offset: 60 +}; + +enum class ecs.RandomSpawnerSetting { + AllowUpScaling = 0, + AllowDownScaling = 1, + MinSpawnerAmount = 2, +}; + +typedef keen::Bitmask8 ecs.RandomSpawnerSettingMask; + +enum class ecs.RandomSpawnerAmount { + Few = 0, + Normal = 1, + Many = 2, + Extreme = 3, +}; + +struct ecs.RandomSpawnerSettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 + keen::ecs::RandomSpawnerSettingMask changedSettings; // Offset: 3 +}; + +struct ecs.RandomSpawnerEntitySettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 +}; + +struct ecs.EntitySpawnData { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::ecs::EntityId parentEntityId; // Offset: 28 + keen::Time spawnTime; // Offset: 32 + keen::uint64 randomSeed; // Offset: 40 + keen::float3 velocity; // Offset: 48 + keen::Color tintColor; // Offset: 60 + keen::float32 triggerRange; // Offset: 64 + keen::float32 triggerRange2; // Offset: 68 + keen::float32 triggerRange3; // Offset: 72 + keen::HashKey32 itemId; // Offset: 76 + keen::ecs::EnemySettings enemySettings; // Offset: 80 + keen::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 144 + keen::sint32 level; // Offset: 148 + keen::ecs::EntitySpawnValueMask mask; // Offset: 152 +}; + +enum class ecs.PathGridType { + Default = 0, + Flying = 1, +}; + +enum class ecs.PathNodeType { + None = 0, + Tar = 1, + Mud = 2, + Road = 3, + Fog = 4, + DeadlyFog = 5, + Lava = 6, + Building = 7, + Collider = 8, + WalkablePlatform = 9, + NoNpcMovementCollider = 10, + NoNpcMovementTerrain = 11, + NoNpcMovementBuilding = 12, + NpcAvoid = 13, + ClosedDoor = 14, +}; + +struct ecs.PathNodeCostFactors { + keen::float32 none; // Offset: 0 + keen::float32 building; // Offset: 4 + keen::float32 collider; // Offset: 8 + keen::float32 walkablePlatform; // Offset: 12 + keen::float32 tar; // Offset: 16 + keen::float32 mud; // Offset: 20 + keen::float32 road; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 deadlyFog; // Offset: 32 + keen::float32 lava; // Offset: 36 + keen::float32 noNpcMovement; // Offset: 40 + keen::float32 npcAvoid; // Offset: 44 + keen::float32 closedDoor; // Offset: 48 +}; + +typedef keen::Bitmask16 ecs.PathNodeTypeMask; + +struct ecs.PathGridMaterialSettings { + keen::ecs::PathNodeType pathNodeType; // Offset: 0 +}; + +typedef keen::StaticArray ecs.PathGridMaterialSettingsArray; + +struct ecs.PathNodeRequirements { + keen::ecs::PathNodeTypeMask requiredTypes; // Offset: 0 + keen::ecs::PathNodeTypeMask forbiddenTypes; // Offset: 2 +}; + +enum class ecs.PathQueryTargetType { + Default = 0, + PreferClosestTargetNode = 1, + UseClosestTargetNodeAsFallback = 2, +}; + +enum class ecs.PathMoveType { + Move = 0, + JumpUp = 1, + JumpDown = 2, + OpenDoor = 3, +}; + +typedef keen::Bitmask8 ecs.PathMoveTypeMask; + +enum class ecs.PathQueryCheck { + None = 0, + EnsureFreePath = 1, + EnsureOccupiedPath = 2, +}; + +struct ecs.PathGridDistance { + keen::uint32 halfMeters; // Offset: 0 +}; + +enum class ecs.PathGridInteractionType { + None = 0, + OpenedDoor = 1, + ClosedDoor = 2, + MovingObject = 3, +}; + +struct ecs.PathfindingHeightDifferenceSettings { + keen::float terrain; // Offset: 0 + keen::float building; // Offset: 4 + keen::float collider; // Offset: 8 +}; + +struct ecs.PathfindingSettings { + keen::ecs::PathfindingHeightDifferenceSettings maxHeightDifferenceSettings; // Offset: 0 +}; + +enum class ecs.LerpTransformTarget { + ClimbingTransformStart = 0, + ClimbingTransformIntermediate = 1, + ClimbingTransformEnd = 2, +}; + +struct ecs.AlignedBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +enum class enemy01.CombatState { + None = 0, + Move = 1, + Attack = 2, + AttackExecution = 3, + Block = 4, + Prowl = 5, + TurnBeforeTaunt = 6, + Taunt = 7, + TurnBeforeCallForHelp = 8, + CallForHelp = 9, + Turn = 10, + TriggerAlarm = 11, + CustomBehavior = 12, + TargetNotReachable = 13, + TargetOutsideLeash = 14, + ContinuousMovement = 15, + SearchForCover = 16, + RunAround = 17, +}; + +typedef keen::Bitmask32 enemy01.CombatStateMask; + +enum class enemy01.State { + Invalid = 0, + Start = 1, + Idle = 2, + Dead = 3, + Spawning = 4, + Combat = 5, + ReturnHome = 6, + FleeHome = 7, + WaitAtHome = 8, + ReactToNoise = 9, + Patrol = 10, + TurnAfterPatrol = 11, + WaitAfterPatrol = 12, + ControlledByAttack = 13, + Roaming = 14, + Flee = 15, + WaitAfterFlee = 16, + Falling = 17, + Hit = 18, + Guard = 19, + Interact = 20, + Landing = 21, + BlockProjectile = 22, + MoveToMarker = 23, + Sleep = 24, + Circling = 25, +}; + +enum class enemy01.EnemyClass { + Melee = 0, + Ranger = 1, + Mage = 2, +}; + +typedef keen::Bitmask32 enemy01.StateMask; + +enum class enemy01.StateUpdateType { + OnEnter = 0, + OnExecute = 1, + OnExit = 2, +}; + +enum class enemy01.StateCondition { + Death = 0, + TargetSelected = 1, + TargetLost = 2, + IsFinished = 3, + TargetUnreachable = 4, + NoiseHeard = 5, + ProjectileHeard = 6, + IsReadyToPatrol = 7, + IsReadyToInteract = 8, + IsReadyToTriggerAlarm = 9, + IsControlledByAttack = 10, + IsReadyForRoaming = 11, + IsReadyForCircling = 12, + WantsToFlee = 13, + HasBeenHit = 14, + IsFalling = 15, + HitReaction = 16, + NeedsToGuard = 17, + WantsToLand = 18, + NeedsToTurn = 19, + CanMoveToMarker = 20, + WantsToSleep = 21, +}; + +struct enemy01.EnemyVariable { +}; + +typedef keen::ObjectReference enemy01.EnemyVariableReference; + +struct enemy01.AbilityConstrain { + keen::bool negated; // Offset: 0 +}; + +struct enemy01.DistanceConstrain { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct enemy01.VerticalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.HorizontalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.ClearPathConstrain { + keen::bool checkSolidColliders; // Offset: 1 + keen::bool checkSteeringColliders; // Offset: 2 +}; + +struct enemy01.CooldownConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.StateConstrain { + keen::enemy01::StateMask states; // Offset: 4 +}; + +struct enemy01.CombatStateConstrain { + keen::enemy01::CombatStateMask combatStates; // Offset: 4 +}; + +struct enemy01.StateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.CurrentCombatStateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.IsRetaliateAllowedConstrain { + keen::bool isAllowed; // Offset: 1 +}; + +struct enemy01.IsTargetOfMyTargetConstrain { + keen::bool isTargetOfMyTarget; // Offset: 1 +}; + +struct enemy01.LastHitReceivedConstrain { + keen::Time minDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 +}; + +struct enemy01.ThreatConstrain { + keen::float32 minThreat; // Offset: 4 +}; + +struct enemy01.AngleToTargetConstrain { + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.AngleFromSlotToTargetConstraint { + keen::AttachmentSlot slot; // Offset: 1 + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.IsInAttackRangeConstrain { +}; + +struct enemy01.IsInPhaseConstrain { + keen::ObjectReference phase; // Offset: 4 + keen::Time minDuration; // Offset: 24 +}; + +struct enemy01.IsLastPhaseConstraint { + keen::ObjectReference phase; // Offset: 4 +}; + +enum class ecs.HitEventFlags { + WasBlocked = 0, + WasParried = 1, + WasBlockBroken = 2, + WasCrit = 3, + WasVisceral = 4, + WasBackstab = 5, + WasWeakspot = 6, + WasSkillShot = 7, + WasResistance = 8, + WasImmune = 9, + WasIneffective = 10, + HideIneffective = 11, + HideEffective = 12, + WasKillingBlow = 13, + WasHealing = 14, + WasTerrain = 15, + WasBuilding = 16, + WasPileUp = 17, + WasFlattening = 18, + UseHitDirectionForPushBack = 19, +}; + +typedef keen::Bitmask32 ecs.HitEventFlagMask; + +struct enemy01.HasBeenHitInCurrentPhaseConstrain { + keen::ecs::HitEventFlagMask requiredHitEventFlags; // Offset: 4 +}; + +enum class actor.StateFlag { + Grounded = 0, + Jumping = 1, + Blocking = 2, + Dodging = 3, + ParryOportunity = 4, + BlockOpportunity = 5, + Exhausted = 6, + Dead = 7, + Sheltered = 8, + Sitting = 9, + PlayingInstrument = 10, + Sleeping = 11, + Spawning = 12, + InFog = 13, + Warm = 14, + Wet = 15, + Cold = 16, + Freezing = 17, + InSneakMode = 18, + Unhappy = 19, + HasAggro = 20, + InCombat = 21, + InRangeCombat = 22, + InRangeCombatPreparing = 23, + InRangeCombatShooting = 24, + InRangeCombatKeepTarget = 25, + InSnappingLerp = 26, + Cooking = 27, + Falling = 28, + Climbing = 29, + ClimbingTransition = 30, + Attached = 31, + HangGliding = 32, + AttachedToHook = 33, + Flying = 34, + TurnSequence = 35, + CanPayUsageCosts = 36, + Invisible = 37, + EnemyPrepareAttack = 38, + IsAnythingAbove = 39, + IsReadyForGameplay = 40, + IsActionOpportunityTriggered = 41, + WantsToMove = 42, + HandsFree = 43, + IsWorking = 44, + Petting = 45, +}; + +typedef keen::Bitmask64 actor.StateMask; + +struct enemy01.CombatTargetStateFlagsConstrain { + keen::actor::StateMask flags; // Offset: 8 +}; + +struct enemy01.IsAttackSelectedConstrain { + keen::actor::ActorSequenceReference attackSequence; // Offset: 4 +}; + +struct enemy01.IsAnyAttackSelectedConstraint { +}; + +struct enemy01.EnemyHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.CurrentTargetHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.IsPlayerTargetConstrain { + keen::bool isPlayer; // Offset: 1 +}; + +struct enemy01.TargetActorStatesConstrain { + keen::actor::StateMask requiredStates; // Offset: 8 + keen::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.ActorStatesConstrain { + keen::actor::StateMask requiredStates; // Offset: 8 + keen::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.HasCombatTargetConstrain { +}; + +struct enemy01.NeedsToFlee { +}; + +struct enemy01.RandomChanceConstrain { + keen::float32 chance; // Offset: 4 +}; + +struct enemy01.IsGroupLeaderConstrain { +}; + +struct enemy01.IsGroupMemberConstrain { +}; + +struct enemy01.IsGuardingPlayerConstraint { +}; + +struct enemy01.IsTargetInHomeZoneConstraint { +}; + +struct enemy01.TargetDistanceToHomeZoneConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.IsTargetReachableConstraint { +}; + +struct enemy01.IsVariableSetConstraint { + keen::enemy01::EnemyVariableReference variable; // Offset: 4 +}; + +struct enemy01.Ability { + keen::actor::ActorSequenceReference actionSequence; // Offset: 0 +}; + +struct enemy01.AbilitySelectionContrains { +}; + +struct enemy01.AbilityExecutionContrains { +}; + +struct enemy01.AbilityAbortConstraints { +}; + +typedef keen::BlobArray> enemy01.AbilityConstrains; + +enum class enemy01.AttackStyle { + Normal = 0, + Retaliate = 1, + Special = 2, + Initiate = 3, + InitiateFollowUp = 4, + Teleport = 5, + Dash = 6, + Jump = 7, + IgnoreThreat = 8, +}; + +typedef keen::Bitmask16 enemy01.AttackStyleMask; + +enum class enemy01.AttackFlag { + StartAnimationDirectly = 0, + AbortOnWallCollision = 1, + NeedsTurn = 2, + NoPauseAfterAttack = 3, + ContinueMovement = 4, + EnsureFreePath = 5, + CheckDynamicPathBlockers = 6, + DisableLeaning = 7, + EnforceLeaning = 8, + DisableRotation = 9, +}; + +typedef keen::Bitmask16 enemy01.AttackFlagMask; + +enum class enemy01.CombatTargetChangeMode { + KeepCurrentCombatTarget = 0, + SelectRandomCombatTarget = 1, + SelectClosestCombatTarget = 2, + SelectFurthestCombatTarget = 3, +}; + +enum class enemy01.BlockRotationDuration { + None = 0, + Short = 1, + Medium = 2, + Long = 3, +}; + +struct enemy01.Action { +}; + +typedef keen::BlobVariant enemy01.ActionVariant; + +typedef keen::BlobArray enemy01.ActionVariants; + +struct enemy01.AttackActions { +}; + +struct enemy01.AttackConstraints { +}; + +enum class enemy01.AttackCommandMode { + RunInParallel = 0, + PauseDefaultExecution = 1, +}; + +struct enemy01.AttackCommandData { + keen::enemy01::AttackCommandMode mode; // Offset: 0 +}; + +struct enemy01.AttackCommandDescription { +}; + +struct enemy01.AttackCommand { + keen::enemy01::AbilityConstrains constraints; // Offset: 4 + keen::enemy01::ActionVariants actions; // Offset: 12 +}; + +typedef keen::BlobArray enemy01.AttackCommandArray; + +struct enemy01.AttackCommandContainerDescription { +}; + +struct enemy01.AttackData { +}; + +struct enemy01.JumpAttackData { + keen::float32 distanceFactor; // Offset: 0 + keen::float32 minForce; // Offset: 4 + keen::float32 maxForce; // Offset: 8 + keen::float32 height; // Offset: 12 + keen::float32 forwardMomentum; // Offset: 16 +}; + +struct enemy01.DashAttackData { + keen::float32 overshootDistance; // Offset: 0 + keen::float32 lookAheadLength; // Offset: 4 + keen::float32 collisionAvoidanceLength; // Offset: 8 + keen::float32 collisionOffset; // Offset: 12 + keen::float32 decelerateDistance; // Offset: 16 + keen::float32 decelerateEnforceDistance; // Offset: 20 +}; + +struct enemy01.TeleportAttackData { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::uint32 verticalSearchDistance; // Offset: 8 + keen::bool checkLineOfSight; // Offset: 12 + keen::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 14 + keen::float32 minHorizontalSpace; // Offset: 20 + keen::float32 minVerticalSpace; // Offset: 24 +}; + +typedef keen::BlobVariant enemy01.AttackDataVariant; + +struct enemy01.AttackDataDescription { +}; + +struct enemy01.AttackDesscription { + keen::enemy01::AttackStyleMask attackStyle; // Offset: 16 + keen::float32 selectionChance; // Offset: 20 + keen::enemy01::AttackFlagMask flags; // Offset: 24 + keen::float32 threat; // Offset: 28 + keen::float32 minRange; // Offset: 32 + keen::float32 maxRange; // Offset: 36 + keen::float32 maxVerticalRange; // Offset: 40 + keen::ObjectReference cooldownGroupID; // Offset: 44 + keen::float32 speed; // Offset: 60 + keen::float32 acceleration; // Offset: 64 + keen::actor::ActorSequenceReference executionAttackSequence; // Offset: 68 + keen::enemy01::BlockRotationDuration blockRotationDuration; // Offset: 84 + keen::enemy01::CombatTargetChangeMode combatTargetChangeMode; // Offset: 85 +}; + +struct enemy01.AttackDesscriptionResource { + keen::enemy01::AttackDesscription description; // Offset: 0 + keen::enemy01::AbilityConstrains selectionConstrain; // Offset: 88 + keen::enemy01::AbilityConstrains executionConstrain; // Offset: 96 + keen::enemy01::AbilityConstrains abortConstraints; // Offset: 104 + keen::enemy01::AttackCommandArray commands; // Offset: 112 + keen::enemy01::AttackDataVariant data; // Offset: 120 +}; + +enum class enemy01.BehaviorMode { + OnUpdate = 0, + OnEnter = 1, + OnExit = 2, + OnStartAttack = 3, + OnEndAttack = 4, + OnEnterState = 5, + OnExitState = 6, +}; + +struct enemy01.BehaviorExecutionContrains { +}; + +struct enemy01.BehaviorAbortConstraints { +}; + +struct enemy01.BehaviorActions { +}; + +struct enemy01.BehaviorSettings { + keen::Time checkIntervalMin; // Offset: 0 + keen::Time checkIntervalMax; // Offset: 8 + keen::Time cooldownMin; // Offset: 16 + keen::Time cooldownMax; // Offset: 24 + keen::float32 chance; // Offset: 32 +}; + +struct enemy01.BehaviorDesscription { + keen::enemy01::BehaviorMode mode; // Offset: 0 + keen::enemy01::BehaviorSettings settings; // Offset: 8 +}; + +struct enemy01.BehaviorDesscriptionResource { + keen::enemy01::AbilityConstrains executionConstrain; // Offset: 48 + keen::enemy01::AbilityConstrains abortConstraints; // Offset: 56 + keen::enemy01::ActionVariants actions; // Offset: 64 +}; + +typedef keen::ObjectReference enemy01.BehaviorDescriptionReference; + +struct enemy01.BehaviorReferenceDescription { + keen::enemy01::BehaviorDescriptionReference behavior; // Offset: 0 +}; + +struct enemy01.AttackCooldownGroupId { +}; + +struct enemy01.AttackCooldownGroup { + keen::ObjectReference id; // Offset: 0 + keen::Time cooldown; // Offset: 16 +}; + +struct enemy01.BlockRotationSettings { + keen::Time shortBlockRotationDuration; // Offset: 0 + keen::Time mediumBlockRotationDuration; // Offset: 8 + keen::Time longBlockRotationDuration; // Offset: 16 +}; + +struct enemy01.CombatTurnConditions { + keen::float32 minSpeed; // Offset: 0 + keen::Time minWalkDuration; // Offset: 8 +}; + +struct enemy01.LeaningSettings { + keen::enemy01::CombatStateMask combatStates; // Offset: 0 + keen::AttachmentSlot slot; // Offset: 4 +}; + +struct enemy01.CombatJumpMoveSettings { + keen::bool useJumpMoveIfTargetIsNotReachable; // Offset: 0 + keen::Time minJumpMoveDuration; // Offset: 8 + keen::Time maxJumpMoveDuration; // Offset: 16 + keen::uint8 maxJumpUpHeight; // Offset: 24 + keen::uint8 maxJumpDownHeight; // Offset: 25 +}; + +struct enemy01.AttackMoveSettings { + keen::bool alwaysLookAtCombatTarget; // Offset: 0 +}; + +struct enemy01.SleepDaytimeSetting { + keen::float chance; // Offset: 0 + keen::Time minSleepDuration; // Offset: 8 + keen::Time maxSleepDuration; // Offset: 16 +}; + +struct enemy01.SleepSetup { + keen::enemy01::SleepDaytimeSetting daySettings; // Offset: 0 + keen::enemy01::SleepDaytimeSetting nightSettings; // Offset: 24 + keen::Time minInitialCheckDelay; // Offset: 48 + keen::Time maxInitialCheckDelay; // Offset: 56 + keen::Time minCheckInterval; // Offset: 64 + keen::Time maxCheckInterval; // Offset: 72 + keen::animationgraph::StateIdReference sleepAnimation; // Offset: 80 +}; + +struct enemy01.CombatSetup { + keen::float32 preferedDistance; // Offset: 0 + keen::float32 preferedDistanceVariation; // Offset: 4 + keen::float32 preferedDistanceEngaged; // Offset: 8 + keen::float32 preferedDistanceEngagedVariation; // Offset: 12 + keen::float32 maxVerticalDistance; // Offset: 16 + keen::float32 maxPlayerTargetDistance; // Offset: 20 + keen::float32 maxNonPlayerTargetDistance; // Offset: 24 + keen::uint8 retaliateCount; // Offset: 28 + keen::BlobArray cooldownGroups; // Offset: 32 + keen::float32 walkStartDistance; // Offset: 40 + keen::float32 runStartDistance; // Offset: 44 + keen::float32 runEndDistance; // Offset: 48 + keen::float32 combatRotationSpeedFactor; // Offset: 52 + keen::animationgraph::StateIdReference combatIdleAnimation; // Offset: 56 + keen::enemy01::BlockRotationSettings blockRotationSettings; // Offset: 72 + keen::Time minAttackDuration; // Offset: 96 + keen::Time maxAttackDuration; // Offset: 104 + keen::enemy01::CombatTurnConditions turnConditions; // Offset: 112 + keen::enemy01::LeaningSettings leaningSettings; // Offset: 128 + keen::enemy01::CombatJumpMoveSettings jumpMoveSettings; // Offset: 136 + keen::enemy01::AttackMoveSettings attackMoveSettings; // Offset: 168 +}; + +struct enemy01.BlockingSetup { + keen::actor::ActorSequenceReference blockSequence; // Offset: 0 + keen::Time minBlockDuration; // Offset: 16 + keen::Time maxBlockDuration; // Offset: 24 + keen::Time maxTotalBlockDuration; // Offset: 32 + keen::Time minBlockHitExtendDuration; // Offset: 40 + keen::Time maxBlockHitExtendDuration; // Offset: 48 + keen::float32 blockAfterHitChance; // Offset: 56 + keen::bool activateBlockAtStart; // Offset: 60 + keen::bool autoToggleBlock; // Offset: 61 + keen::float32 autoToggleBlockMaxDistance; // Offset: 64 + keen::bool useBlockWalk; // Offset: 68 + keen::animationgraph::StateIdReference blockWalkAnimation; // Offset: 72 + keen::float32 minBlockProjectileDistance; // Offset: 88 + keen::float32 maxBlockProjectileDistance; // Offset: 92 +}; + +struct enemy01.HomeZoneSetup { + keen::float32 radius; // Offset: 0 +}; + +struct enemy01.AggroPoolSetup { + keen::float32 maxValue; // Offset: 0 +}; + +struct enemy01.AggroPools { + keen::enemy01::AggroPoolSetup senses; // Offset: 0 + keen::enemy01::AggroPoolSetup friends; // Offset: 4 + keen::enemy01::AggroPoolSetup enemies; // Offset: 8 +}; + +struct enemy01.AggroSetup { + keen::float32 viewRange; // Offset: 0 + keen::float32 nightViewRangeFactor; // Offset: 4 + keen::float32 viewConeHalfAngle; // Offset: 8 + keen::float32 aggroFromAttack; // Offset: 12 + keen::float32 aggroInRange; // Offset: 16 + keen::float32 aggroLossOutOfSight; // Offset: 20 + keen::float32 aggroLossUnreachable; // Offset: 24 + keen::float32 aggroDiminishSpeed; // Offset: 28 + keen::float32 noticedAggro; // Offset: 32 + keen::float32 initialAggro; // Offset: 36 + keen::float32 alarmedAggroThreshold; // Offset: 40 + keen::float32 aggroRange; // Offset: 44 + keen::float32 aggroRangeWhileMoving; // Offset: 48 + keen::bool checkPathToTarget; // Offset: 52 + keen::bool checkLineOfSight; // Offset: 53 + keen::enemy01::AggroPools pools; // Offset: 56 + keen::bool preferCloserTargets; // Offset: 68 + keen::float32 preferCloserTargetsDistanceThreshold; // Offset: 72 + keen::bool preferShortestPath; // Offset: 76 + keen::float32 preferShortestPathDistanceThreshold; // Offset: 80 + keen::bool preferTargetsWithLessAttackers; // Offset: 84 +}; + +struct enemy01.CallForHelpSetup { + keen::float32 chance; // Offset: 0 + keen::float32 minRange; // Offset: 4 + keen::float32 radius; // Offset: 8 +}; + +struct enemy01.RoamingSetup { + keen::Time minInitialStartDuration; // Offset: 0 + keen::Time maxInitialStartDuration; // Offset: 8 + keen::Time minStartDuration; // Offset: 16 + keen::Time maxStartDuration; // Offset: 24 + keen::float32 minRadius; // Offset: 32 + keen::float32 maxRadius; // Offset: 36 + keen::float32 maxAngle; // Offset: 40 + keen::float32 maxHomeZoneDistance; // Offset: 44 + keen::bool loop; // Offset: 48 + keen::float32 minLoopUpdateDistance; // Offset: 52 + keen::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 56 +}; + +struct enemy01.FleeSetup { + keen::float32 minFleeRadius; // Offset: 0 + keen::float32 maxFleeRadius; // Offset: 4 + keen::animationgraph::StateIdReference fleeAnimation; // Offset: 8 + keen::Time maxFleeDuration; // Offset: 24 +}; + +struct enemy01.NoiseListenerSetup { + keen::actor::ActorSequenceReference reactToNoiseSequence; // Offset: 0 + keen::float32 listenRangeFactor; // Offset: 16 + keen::float32 listenRangeFactorWhileSleeping; // Offset: 20 +}; + +struct enemy01.SteeringSetup { + keen::float32 defaultSteeringWeight; // Offset: 0 + keen::float32 roamingSteeringWeight; // Offset: 4 + keen::float32 closeCombatSteeringWeight; // Offset: 8 + keen::float32 farCombatSteeringWeight; // Offset: 12 +}; + +struct enemy01.ProwlSetup { + keen::float32 minProwlDistance; // Offset: 0 + keen::float32 maxProwlDistance; // Offset: 4 + keen::float32 maxHeightDifference; // Offset: 8 + keen::Time minProwlDuration; // Offset: 16 + keen::Time maxProwlDuration; // Offset: 24 + keen::Time minProwlCooldown; // Offset: 32 + keen::Time maxProwlCooldown; // Offset: 40 + keen::bool checkClearPath; // Offset: 48 +}; + +struct enemy01.ParrySetup { + keen::actor::ActorSequenceReference parriedSequence; // Offset: 0 + keen::actor::ActorSequenceReference parriedStunSequence; // Offset: 16 + keen::actor::ActorSequenceReference parriedStunLongDurationSequence; // Offset: 32 + keen::float32 addedThreatAfterParry; // Offset: 48 +}; + +enum class ecs.LocomotionSpeedSelector { + Zero = 0, + Sneak = 1, + Walk = 2, + Run = 3, + Sprint = 4, + Combat = 5, + Patrol = 6, + Flee = 7, + Custom = 8, +}; + +struct enemy01.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleProwl; // Offset: 4 + keen::float32 maxMovementAngleCombat; // Offset: 8 + keen::float32 maxMovementAngleCombatWithoutRoation; // Offset: 12 + keen::float32 maxMovementAngleRoaming; // Offset: 16 + keen::ecs::LocomotionSpeedSelector returnHomeSpeed; // Offset: 20 +}; + +struct enemy01.GuardSetup { + keen::float32 startDistance; // Offset: 0 + keen::float32 targetDistance; // Offset: 4 + keen::bool guardParent; // Offset: 8 + keen::bool canGuardPlayer; // Offset: 9 +}; + +struct enemy01.PatrolSetup { + keen::Time initialStartTimeMin; // Offset: 0 + keen::Time initialStartTimeMax; // Offset: 8 + keen::Time patrolStartMin; // Offset: 16 + keen::Time patrolStartMax; // Offset: 24 + keen::Time patrolPauseMin; // Offset: 32 + keen::Time patrolPauseMax; // Offset: 40 + keen::float startTurnDistamce; // Offset: 48 + keen::animationgraph::StateIdReference patrolAnimation; // Offset: 52 +}; + +struct enemy01.InteractionSetup { + keen::Time interactionPauseMin; // Offset: 0 + keen::Time interactionPauseMax; // Offset: 8 +}; + +struct enemy01.TauntSetup { + keen::actor::ActorSequenceReference tauntSequence; // Offset: 0 + keen::float32 tauntChance; // Offset: 16 + keen::Time cooldown; // Offset: 24 +}; + +struct actor.TurnSetup { + keen::actor::ActorSequenceReference turnLeftSmallSequence; // Offset: 0 + keen::actor::ActorSequenceReference turnLeftBigSequence; // Offset: 16 + keen::actor::ActorSequenceReference turnRightSmallSequence; // Offset: 32 + keen::actor::ActorSequenceReference turnRightBigSequence; // Offset: 48 + keen::float32 minSmallTurnAngle; // Offset: 64 + keen::float32 minBigTurnAngle; // Offset: 68 +}; + +struct enemy01.TurnSetup { + keen::float32 minIdleTurnAngle; // Offset: 72 + keen::Time minIdleTurnCooldown; // Offset: 80 + keen::Time maxIdleTurnCooldown; // Offset: 88 + keen::float32 minDistance; // Offset: 96 + keen::AttachmentSlot slot; // Offset: 100 +}; + +struct enemy01.SearchForCoverSetup { + keen::uint8 minCoverDistance; // Offset: 0 + keen::uint8 maxCoverDistance; // Offset: 1 + keen::Time minCoverDuration; // Offset: 8 + keen::Time maxCoverDuration; // Offset: 16 + keen::Time minCoverCooldown; // Offset: 24 + keen::Time maxCoverCooldown; // Offset: 32 +}; + +struct enemy01.RunAroundSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 +}; + +struct enemy01.PathNodeSetup { + keen::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +enum class enemy01.CirclingDirection { + Left = 0, + Right = 1, +}; + +struct enemy01.CirclingSetup { + keen::float initialRadius; // Offset: 0 + keen::float initialHeightOffset; // Offset: 4 + keen::bool useOuterCircleAsCombatPosition; // Offset: 8 + keen::enemy01::CirclingDirection initialDirection; // Offset: 9 + keen::bool changeDirection; // Offset: 10 + keen::Time minDirectionChangeDuration; // Offset: 16 + keen::Time maxDirectionChangeDuration; // Offset: 24 +}; + +typedef keen::ObjectReference enemy01.CombatSetupReference; + +enum class enemy01.LookAtMovementTargetState { + None = 0, + LookAtCombatTarget = 1, + LookAtMovementTarget = 2, +}; + +enum class enemy01.UnreachableJumpMoveState { + Inactive = 0, + Active = 1, + Finished = 2, +}; + +struct enemy01.EnemyVariableStateEntry { + keen::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.EnemyVariableStates { + keen::StaticArray states; // Offset: 0 +}; + +enum class impact.HitReactionType { + None = 0, + Light = 1, + Heavy = 2, + Boss = 3, + LongStun = 4, + TrapStun = 5, + ShortStun_BeGoneSkill = 6, + ThrowIntoAir = 7, + ThrowIntoAir_OnlyWhenGrounded = 8, +}; + +struct enemy01.CombatData { + keen::uint8 selectedAttackIndex; // Offset: 0 + keen::uint8 lastAttackIndex; // Offset: 1 + keen::float3 toTarget; // Offset: 4 + keen::float2 horizontalKeepDistanceDirection; // Offset: 16 + keen::HashKey32 threatPoolId; // Offset: 24 + keen::Time lastChangeEvaluation; // Offset: 32 + keen::Time stateChangeTime; // Offset: 40 + keen::Time stateMinTime; // Offset: 48 + keen::Time stateMaxTime; // Offset: 56 + keen::Time lastAttackTime; // Offset: 64 + keen::Time lastHitReceived; // Offset: 72 + keen::impact::HitReactionType lastHitReactionType; // Offset: 80 + keen::ecs::HitEventFlagMask lastHitEventFlags; // Offset: 84 + keen::Time targetEnteredPrivateSpace; // Offset: 88 + keen::Time prowlAngleChange; // Offset: 96 + keen::float32 selectedPreferedDistance; // Offset: 104 + keen::float32 preferedDistanceMin; // Offset: 108 + keen::float32 preferedDistanceMax; // Offset: 112 + keen::float32 prowlAngle; // Offset: 116 + keen::float32 distanceToTarget; // Offset: 120 + keen::enemy01::CombatState state; // Offset: 124 + keen::bool targetOfMyTarget; // Offset: 125 + keen::uint8 hitsReceivedWhileBlocking; // Offset: 126 + keen::Time lastBlockChanceEvaluationTime; // Offset: 128 + keen::bool shouldBlockLastHit; // Offset: 136 + keen::StaticArray attackExecutionCount; // Offset: 137 + keen::StaticArray nextAllowedAttackGroupTime; // Offset: 160 + keen::float3 closestReachableTargetPosition; // Offset: 224 + keen::Time nextReachablePositionUpdateTime; // Offset: 240 + keen::bool isTargetReachable; // Offset: 248 + keen::bool isTargetInsideLeash; // Offset: 249 + keen::ecs::EntityId lastTargetId; // Offset: 252 + keen::uint8 commandIndex; // Offset: 256 + keen::uint8 actionIndex; // Offset: 257 + keen::Time lastActionStartTime; // Offset: 264 + keen::Time lastAttackAbortCheckTime; // Offset: 272 + keen::Time nextAllowedProwlTime; // Offset: 280 + keen::Time nextAllowedSearchForCoverTime; // Offset: 288 + keen::Time nextSearchForCoverChangeDistanceTime; // Offset: 296 + keen::uint8 currentSearchForCoverDistance; // Offset: 304 + keen::enemy01::LookAtMovementTargetState lookAtMovementTargetState; // Offset: 305 + keen::Time unreachableJumpMoveStartTime; // Offset: 312 + keen::Time unreachableJumpMoveEndTime; // Offset: 320 + keen::enemy01::UnreachableJumpMoveState unreachableJumpMoveState; // Offset: 328 +}; + +enum class enemy01.CirclingState { + MoveIntoRange = 0, + MoveToTargetAngle = 1, + MoveContinuously = 2, +}; + +typedef keen::float32 Angle; + +struct enemy01.CirclingData { + keen::enemy01::CirclingState state; // Offset: 0 + keen::Angle targetAngle; // Offset: 4 + keen::WorldPosition centerPosition; // Offset: 8 + keen::float radius; // Offset: 32 + keen::enemy01::CirclingDirection direction; // Offset: 36 + keen::Time nextDirectionChangeTime; // Offset: 40 + keen::float centerHeightOffset; // Offset: 48 +}; + +enum class enemy01.EnemyMarkerType { + PatrolPoint = 0, + Interaction = 1, + Alarm = 2, + MoveTarget = 3, +}; + +typedef keen::Bitmask8 enemy01.EnemyMarkerTypeMask; + +struct enemy01.SetCombatStateAction { + keen::enemy01::CombatState state; // Offset: 0 + keen::Time minTime; // Offset: 8 + keen::Time maxTime; // Offset: 16 +}; + +struct enemy01.SetPhaseAction { + keen::ObjectReference newPhase; // Offset: 0 +}; + +struct enemy01.SwitchToLastPhaseAction { +}; + +struct enemy01.SelectAttackAction { + keen::enemy01::AttackStyle attackStyle; // Offset: 0 +}; + +struct enemy01.GetStunnedAction { +}; + +struct enemy01.SetImmuneAction { + keen::bool immune; // Offset: 0 +}; + +typedef keen::ObjectReference SignalReference; + +struct enemy01.SendToggleEventAction { + keen::SignalReference triggerId; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.TriggerStateConditionAction { + keen::enemy01::StateCondition condition; // Offset: 0 +}; + +struct enemy01.RunAwayAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 +}; + +struct enemy01.MoveForwardAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::ecs::LocomotionSpeedSelector speed; // Offset: 8 +}; + +struct enemy01.PauseAction { + keen::float32 minDuration; // Offset: 0 + keen::float32 maxDuration; // Offset: 4 + keen::bool lookAtCombatTarget; // Offset: 8 +}; + +struct enemy01.SetIdleAnimationAction { + keen::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetWalkAnimationAction { + keen::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetMovementSpeedAction { + keen::ecs::LocomotionSpeedSelector movementType; // Offset: 0 + keen::float32 speed; // Offset: 4 +}; + +struct enemy01.PlayActionSequenceAction { + keen::actor::ActorSequenceReference sequence; // Offset: 0 + keen::bool waitUntilFinished; // Offset: 16 +}; + +struct enemy01.ChangeSlopeAlignmentAction { + keen::float32 longitudinalFactor; // Offset: 0 + keen::float32 lateralFactor; // Offset: 4 +}; + +struct enemy01.StartFlyingAction { +}; + +struct enemy01.EnterFlyingStateAction { +}; + +struct enemy01.StopFlyingAction { +}; + +struct enemy01.ToggleAllowFallDownAction { + keen::bool allowFallDown; // Offset: 0 +}; + +struct enemy01.GuardParentAction { +}; + +struct enemy01.GuardGroupLeaderAction { +}; + +struct enemy01.StopGuardAction { +}; + +struct enemy01.EnableFeatureAction { + keen::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.DisableFeatureAction { + keen::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.SetFleeRadiusAction { + keen::float32 fleeRadius; // Offset: 0 +}; + +struct enemy01.SelectFriendAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.SelectEnemyAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.MoveToTargetAction { + keen::float32 targetDistance; // Offset: 0 + keen::ecs::TargetType targetType; // Offset: 4 + keen::ecs::LocomotionSpeedSelector speed; // Offset: 5 +}; + +struct enemy01.WaitUntilActorStateIsFinished { + keen::actor::StateFlag state; // Offset: 0 +}; + +struct enemy01.WaitUntilSequenceIsFinished { +}; + +struct enemy01.SetWorldColliderYOffsetAction { + keen::float32 yOffset; // Offset: 0 +}; + +struct enemy01.ToggleBlockAction { + keen::bool shouldBlock; // Offset: 0 +}; + +struct enemy01.ToggleVerticalLeaningAction { + keen::bool shouldUseVerticalLeaning; // Offset: 0 +}; + +struct enemy01.SetVariableAction { + keen::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.ClearVariableAction { + keen::enemy01::EnemyVariableReference variable; // Offset: 0 +}; + +struct enemy01.SetCirclingRadiusAction { + keen::float radius; // Offset: 0 +}; + +struct enemy01.SetCirclingHeightOffsetAction { + keen::float heightOffset; // Offset: 0 +}; + +struct enemy01.MoveToCirclingTargetAction { + keen::ecs::LocomotionSpeedSelector speed; // Offset: 0 + keen::float32 maxArriveDistance; // Offset: 4 + keen::bool keepCurrentDirection; // Offset: 8 +}; + +struct enemy01.TurnToCirclingTargetAction { +}; + +struct enemy01.StoreCurrentCirclingTargetAngleAction { +}; + +struct enemy01.StoreCirclingPositionAsTargetAction { + keen::ecs::TargetType target; // Offset: 0 + keen::float radius; // Offset: 4 + keen::Angle angleOffset; // Offset: 8 +}; + +typedef keen::ObjectReference ecs.AttackReference; + +typedef keen::ObjectReference ecs.AttackDescriptionReference; + +struct ecs.AttackReferenceDescription { + keen::ecs::AttackDescriptionReference attack; // Offset: 0 +}; + +struct ecs.EnemyArsenal { +}; + +typedef keen::Bitmask16 ecs.HitReactionTypeMask; + +struct ecs.Enemy01BehaviorState { + keen::enemy01::CombatSetup combatSetup; // Offset: 0 + keen::enemy01::HomeZoneSetup homeZoneSetup; // Offset: 176 + keen::enemy01::AggroSetup aggroSetup; // Offset: 180 + keen::enemy01::CallForHelpSetup callForHelpSetup; // Offset: 268 + keen::enemy01::RoamingSetup roamingSetup; // Offset: 280 + keen::enemy01::FleeSetup fleeSetup; // Offset: 344 + keen::enemy01::BlockingSetup blockingSetup; // Offset: 376 + keen::enemy01::NoiseListenerSetup noiseListenerSetup; // Offset: 472 + keen::enemy01::SteeringSetup steeringSetup; // Offset: 496 + keen::enemy01::ProwlSetup prowlSetup; // Offset: 512 + keen::enemy01::ParrySetup parrySetup; // Offset: 568 + keen::enemy01::MovementSetup movementSetup; // Offset: 620 + keen::enemy01::GuardSetup guardSetup; // Offset: 644 + keen::enemy01::InteractionSetup interactionSetup; // Offset: 656 + keen::enemy01::PatrolSetup patrolSetup; // Offset: 672 + keen::enemy01::TauntSetup tauntSetup; // Offset: 744 + keen::enemy01::TurnSetup turnSetup; // Offset: 776 + keen::enemy01::SearchForCoverSetup searchForCoverSetup; // Offset: 880 + keen::enemy01::SleepSetup sleepSetup; // Offset: 920 + keen::enemy01::RunAroundSetup runAroundSetup; // Offset: 1016 + keen::enemy01::PathNodeSetup pathNodeSetup; // Offset: 1040 + keen::enemy01::CirclingSetup circlingSetup; // Offset: 1144 + keen::actor::ActorSequenceReference callForHelpSequence; // Offset: 1176 + keen::actor::ActorSequenceReference spawnSequence; // Offset: 1192 + keen::enemy01::EnemyClass enemyClass; // Offset: 1208 + keen::ecs::EnemyFeatureMask enabledFeatures; // Offset: 1212 + keen::float32 threatFactor; // Offset: 1216 + keen::SignalReference deathSignal; // Offset: 1220 + keen::float32 pushBackScale; // Offset: 1236 + keen::ecs::HitReactionTypeMask disabledHitReactions; // Offset: 1240 + keen::float32 maxHeightDiff; // Offset: 1244 +}; + +struct ecs.FlyingEnemy { + keen::float32 minRoamingHeight; // Offset: 0 + keen::float32 maxRoamingHeight; // Offset: 4 + keen::float32 minFlyHeight; // Offset: 8 + keen::float32 maxFlyHeight; // Offset: 12 + keen::float32 landingHeight; // Offset: 16 + keen::float32 attackHeightOffset; // Offset: 20 + keen::float32 combatIdleHeightOffset; // Offset: 24 + keen::float32 defaultArriveDistance; // Offset: 28 + keen::float32 attackArriveDistance; // Offset: 32 + keen::bool attackWhileGrounded; // Offset: 36 + keen::animationgraph::StateIdReference idleAnimation; // Offset: 40 +}; + +struct ecs.DynamicEnemy01BehaviorState { + keen::enemy01::State state; // Offset: 0 + keen::Time stateChangeTime; // Offset: 8 + keen::float3 homeZonePosition; // Offset: 16 + keen::bool movementTargetIsValid; // Offset: 28 + keen::float3 movementTarget; // Offset: 32 + keen::float3 movementStartPosition; // Offset: 44 + keen::Time movementStartTime; // Offset: 56 + keen::enemy01::CombatData combatData; // Offset: 64 + keen::enemy01::CirclingData circlingData; // Offset: 400 + keen::enemy01::EnemyVariableStates variableStates; // Offset: 456 + keen::Time nextAllowedRoamingTime; // Offset: 536 + keen::uint16 targetCounter; // Offset: 544 + keen::Time lastBehaviorCheckTime; // Offset: 552 + keen::Time lastBehaviorExecutionTime; // Offset: 560 + keen::StaticArray nextBehaviorCheckTime; // Offset: 568 + keen::uint8 currentBehaviorIndex; // Offset: 824 + keen::uint8 currentBehaviorActionIndex; // Offset: 825 + keen::ecs::QueryId callForHelpQueryId; // Offset: 828 + keen::ecs::EntityId callForHelpTargetEntityId; // Offset: 832 + keen::Time lastHelpTime; // Offset: 840 + keen::Time returnHomeStartTime; // Offset: 848 + keen::enemy01::StateMask executedStates; // Offset: 856 + keen::ecs::QueryId dashQueryId; // Offset: 860 + keen::ecs::EntityId noiseEntityId; // Offset: 864 + keen::ecs::EntityId projectileEntityId; // Offset: 868 + keen::uint8 controlledByAttacks; // Offset: 872 + keen::Time nextAllowedCombatIdleRotationTime; // Offset: 880 + keen::bool teleportPositionFound; // Offset: 888 + keen::animationgraph::StateIdHash currentIdleAnimation; // Offset: 892 + keen::animationgraph::StateIdHash currentWalkAnimation; // Offset: 896 + keen::float32 currentLongitudinalSlopeAlignmentFactor; // Offset: 900 + keen::float32 currentLateralSlopeAlignmentFactor; // Offset: 904 + keen::ecs::EntityId guardEntityId; // Offset: 908 + keen::float32 currentGuardTargetDistance; // Offset: 912 + keen::ecs::EntityId currentMarkerId; // Offset: 916 + keen::Time nextAllowedInteractionTime; // Offset: 920 + keen::Time nextAllowedPatrolTime; // Offset: 928 + keen::Time nextCheckGuardTime; // Offset: 936 + keen::Time nextCheckTauntTime; // Offset: 944 + keen::Time nextAllowedCombatIdleTurnTime; // Offset: 952 + keen::bool enabled; // Offset: 960 + keen::float3 lastNoisePosition; // Offset: 964 + keen::bool shouldBlock; // Offset: 976 + keen::bool isWalkBlockActive; // Offset: 977 + keen::bool isAttackMove; // Offset: 978 + keen::bool isVerticalLeaningActive; // Offset: 979 + keen::ecs::EnemyFeatureMask enabledFeatures; // Offset: 980 + keen::ecs::EnemyFeatureMask disabledFeatures; // Offset: 984 + keen::Time nextSleepCheckTime; // Offset: 992 + keen::Time sleepEndTime; // Offset: 1000 + keen::ecs::EntityId parriedByEntity; // Offset: 1008 +}; + +enum class ecs.UnitMode { + Wildlife = 0, + Enemy = 1, +}; + +struct ecs.UnitTransformer { + keen::ecs::UnitMode mode; // Offset: 0 +}; + +struct ecs.PlayerCountScaling { + keen::bool scaleHealth; // Offset: 0 + keen::bool scaleDamage; // Offset: 1 + keen::bool scaleStamina; // Offset: 2 + keen::float32 healthScaling; // Offset: 4 + keen::float32 damageScaling; // Offset: 8 + keen::float32 staminaScaling; // Offset: 12 + keen::bool allowDownScaling; // Offset: 16 + keen::uint8 minPlayerCount; // Offset: 17 +}; + +struct ecs.EnemyLevelScaling { + keen::float32 healthScaleFactor; // Offset: 0 + keen::float32 staminaScaleFactor; // Offset: 4 +}; + +struct ecs.EnemyScaling { + keen::Time updateInterval; // Offset: 0 + keen::ecs::PlayerCountScaling playerCountScaling; // Offset: 8 + keen::ecs::EnemyLevelScaling enemyLevelScaling; // Offset: 28 +}; + +struct ecs.DynamicEnemyScaling { + keen::Time nextUpdateTime; // Offset: 0 + keen::uint32 lastTargets; // Offset: 8 + keen::uint32 lastLevel; // Offset: 12 + keen::float32 lastDamageMultiplier; // Offset: 16 + keen::sint32 initialBaseMaxHealth; // Offset: 20 + keen::sint32 initialBaseStrength; // Offset: 24 + keen::sint32 initialBaseDexterity; // Offset: 28 + keen::sint32 initialBaseIntelligence; // Offset: 32 +}; + +struct ecs.EnemyMarkerEntry { + keen::float3 position; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 12 + keen::enemy01::EnemyMarkerType markerType; // Offset: 16 +}; + +struct ecs.EnemyMarkerCheck { + keen::float32 checkDistance; // Offset: 0 + keen::ecs::RangeQueryId queryId; // Offset: 4 + keen::Time nextCheckTime; // Offset: 8 + keen::StaticArray markers; // Offset: 16 +}; + +struct ecs.EnemyMarker { + keen::enemy01::EnemyMarkerType markerType; // Offset: 0 + keen::actor::ActorSequenceReference defaultInteractSequence; // Offset: 4 + keen::bool useTargetOffset; // Offset: 20 + keen::ecs::Offset targetOffset; // Offset: 24 + keen::float32 arriveDistance; // Offset: 64 + keen::float32 alarmRange; // Offset: 68 + keen::bool usePatrolPointDirection; // Offset: 72 + keen::bool attackTargets; // Offset: 73 + keen::uint8 maxUsers; // Offset: 74 + keen::uint8 minHorizontalSpace; // Offset: 75 + keen::uint8 minTargetHorizontalSpace; // Offset: 76 +}; + +struct ecs.LastEnemyValue { + keen::float32 lastEnemyValue; // Offset: 0 +}; + +struct ecs.DynamicEnemyMarker { + keen::uint8 users; // Offset: 0 +}; + +struct ecs.EnemyArsenalReference { + keen::ObjectReference arsenal; // Offset: 0 +}; + +struct ecs.EnemyAttackAttachment { + keen::actor::ActorSequenceReference initialSequence; // Offset: 0 +}; + +enum class ecs.EnemyAttackAttachmentState { + None = 0, + Active = 1, + Inactive = 2, +}; + +struct ecs.DynamicEnemyAttackAttachment { + keen::ecs::EnemyAttackAttachmentState state; // Offset: 0 +}; + +struct enemy.EnemyArsenal { + keen::BlobArray attacks; // Offset: 0 + keen::BlobArray behaviors; // Offset: 8 +}; + +struct enemy.EnemyArsenalResource { + keen::Guid guid; // Offset: 0 + keen::BlobArray attacks; // Offset: 16 + keen::BlobArray behaviors; // Offset: 24 +}; + +struct enemy.EnemyArsenalSubDirectory { +}; + +struct enemy.EnemyArsenalDirectory { +}; + +struct enemy.EnemyArsenalRegistryResource { + keen::BlobArray arsenals; // Offset: 0 +}; + +struct enemy01_debug.KillEnemyMessage { + keen::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.EnforceEnemyAttackMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 +}; + +struct enemy01_debug.ToggleDisableEnemyAttackMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 + keen::bool disabled; // Offset: 5 +}; + +struct enemy01_debug.SetTameStateMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::bool tamed; // Offset: 4 +}; + +struct enemy01_debug.SetFrozenStateMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::bool frozen; // Offset: 4 +}; + +struct enemy01_debug.DebugAnimationGraphMessage { + keen::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.SetStateMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::enemy01::State state; // Offset: 4 +}; + +struct enemy01_debug.EnforcePhaseMessage { + keen::ecs::EntityId enemyId; // Offset: 0 + keen::Guid phaseId; // Offset: 4 +}; + +struct enemy01.DebugAttackState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 +}; + +struct enemy01.DebugBehaviorState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 + keen::uint32 executionCount; // Offset: 12 +}; + +struct enemy01.StateEntry { + keen::enemy01::State state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct enemy01.CombatStateEntry { + keen::enemy01::CombatState state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct ecs.EnemyDebug { + keen::uint8 enforcedAttackIndex; // Offset: 0 + keen::StaticArray disabledAttacks; // Offset: 8 + keen::bool tamed; // Offset: 16 + keen::bool frozen; // Offset: 17 + keen::StaticArray attackStates; // Offset: 18 + keen::StaticArray behaviorStates; // Offset: 164 + keen::StaticArray stateHistory; // Offset: 680 + keen::StaticArray combatStateHistory; // Offset: 808 + keen::enemy01::State nextState; // Offset: 936 + keen::Guid enforcedPhase; // Offset: 940 +}; + +enum class ecs.EnemyTest { + StayOnGround = 0, + Patrol = 1, + EnemyVsEnemyFight = 2, + ReactToNoise = 3, + Steering = 4, + AggroBigAngleLongDistance = 5, + AggroSmallAngleShortDistance = 6, +}; + +typedef keen::Bitmask32 ecs.EnemyTestFlags; + +struct ecs.EnemyPatrolTest { + keen::bool hasReachedPatrolPoint0; // Offset: 0 + keen::bool hasReachedPatrolPoint1; // Offset: 1 +}; + +struct ecs.EnemyTestToggle { + keen::ecs::EnemyTestFlags tests; // Offset: 0 +}; + +struct ecs.UnitGroup { + keen::StaticArray members; // Offset: 0 + keen::Time nextUpdateTime; // Offset: 96 +}; + +struct ecs.UnitGroupMember { + keen::ecs::EntityId groupId; // Offset: 0 + keen::ecs::EntityId groupLeaderId; // Offset: 4 + keen::uint8 memberIndex; // Offset: 8 +}; + +enum class wildlife.State { + Invalid = 0, + Start = 1, + Spawning = 2, + Idle = 3, + Alert = 4, + Flee = 5, + Roaming = 6, + RunAway = 7, + Hit = 8, + Landing = 9, + FlyToLandingPosition = 10, + Gliding = 11, + Dead = 12, + ReturnToSpawnPosition = 13, + FoodBaitPursue = 14, + FoodBaitEat = 15, +}; + +enum class wildlife.StateCondition { + IsFinished = 0, + Alert = 1, + NeedsToFlee = 2, + IsInDanger = 3, + Hit = 4, + IsStuck = 5, + Death = 6, + TooFarAwayFromSpawnPosition = 7, + HasSensedFoodBait = 8, + Aborted = 9, +}; + +enum class wildlife.Feature { + Roaming = 0, + Flee = 1, + ShowSpawnSequence = 2, + Tameable = 3, +}; + +typedef keen::Bitmask16 wildlife.FeatureMask; + +struct wildlife.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleFlee; // Offset: 4 + keen::float32 maxMovementAngleRoaming; // Offset: 8 + keen::float32 maxMovementAngleLanding; // Offset: 12 +}; + +struct wildlife.GlidingSetup { + keen::float32 minGlidingDistance; // Offset: 0 + keen::float32 maxGlidingDistance; // Offset: 4 +}; + +struct wildlife.PathNodeSetup { + keen::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct wildlife.TamingSetup { + keen::ecs::TemplateReference favoriteFood; // Offset: 0 + keen::uint8 necessaryTamingSteps; // Offset: 16 + keen::float32 foodBaitSensorRange; // Offset: 20 + keen::float32 foodBaitAngleCheckMinDistance; // Offset: 24 + keen::Time foodBaitEatMaxDuration; // Offset: 32 + keen::Time alertDurationHigh; // Offset: 40 + keen::Time alertDurationMediumFoodEat; // Offset: 48 + keen::float32 foodBaitEatAdaptFleeRadiusDistance; // Offset: 56 + keen::float32 tamingApproachFinishedFleeRadius; // Offset: 60 + keen::float32 foodBaitEatSnoutPivotDistance; // Offset: 64 +}; + +struct ecs.WildlifeTurnSetup { + keen::bool useTurnSequences; // Offset: 72 +}; + +struct ecs.Wildlife { + keen::actor::ActorSequenceReference spawnSequence; // Offset: 0 + keen::animationgraph::StateIdReference idleAnimation; // Offset: 16 + keen::Time minIdleDuration; // Offset: 32 + keen::Time maxIdleDuration; // Offset: 40 + keen::float32 minRoamingRadius; // Offset: 48 + keen::float32 maxRoamingRadius; // Offset: 52 + keen::float32 minFleeRadius; // Offset: 56 + keen::float32 maxFleeRadius; // Offset: 60 + keen::float32 fallbackFleeRadius; // Offset: 64 + keen::float32 maxMovementRadius; // Offset: 68 + keen::animationgraph::StateIdReference secureIdleAnimation; // Offset: 72 + keen::Time minFeelSecureDuration; // Offset: 88 + keen::Time maxFeelSecureDuration; // Offset: 96 + keen::float32 callForHelpChance; // Offset: 104 + keen::actor::ActorSequenceReference callForHelpSequence; // Offset: 108 + keen::float32 listenRangeFactor; // Offset: 124 + keen::wildlife::FeatureMask enabledFeatures; // Offset: 128 + keen::wildlife::MovementSetup movementSetup; // Offset: 132 + keen::wildlife::GlidingSetup glidingSetup; // Offset: 148 + keen::ecs::WildlifeTurnSetup turnSetup; // Offset: 156 + keen::wildlife::PathNodeSetup pathNodeSetup; // Offset: 232 + keen::wildlife::TamingSetup tamingSetup; // Offset: 336 + keen::actor::ActorSequenceReference tamingPetInteractionSequence; // Offset: 408 + keen::LocaTagReference tamingPetInteractionVerbLoca; // Offset: 424 +}; + +enum class ecs.AlertState { + Low_Relaxed = 0, + Medium_Alert = 1, + High_Danger = 2, +}; + +struct ecs.DynamicWildlife { + keen::wildlife::State state; // Offset: 0 + keen::wildlife::State lastState; // Offset: 1 + keen::Time feelSecureDuration; // Offset: 8 + keen::Time lastFleeTime; // Offset: 16 + keen::float3 spawnPosition; // Offset: 24 + keen::Time idleEndTime; // Offset: 40 + keen::Time lastStateChangeTime; // Offset: 48 + keen::float3 dangerOrigin; // Offset: 56 + keen::float32 runAwayDistance; // Offset: 68 + keen::float3 currentTargetPosition; // Offset: 72 + keen::Time keepRoamingTargetUntilTime; // Offset: 88 + keen::Time foodBaitEatTimer; // Offset: 96 + keen::ecs::AlertState previousAlertState; // Offset: 104 + keen::Time alertTimeStamp; // Offset: 112 + keen::Time foodBaitNeedinessTimeStamp; // Offset: 120 + keen::Time foodBaitReactionTimeStamp; // Offset: 128 + keen::Time tamingShrinkRadiusTimerStart; // Offset: 136 + keen::ecs::EntityId foodBaitEntityId; // Offset: 144 + keen::uint8 tamingProgress; // Offset: 148 +}; + +struct ecs.NetworkWildlife { + keen::ecs::AlertState alertState; // Offset: 0 + keen::Time alertTimeStamp; // Offset: 8 + keen::uint8 tamingProgress; // Offset: 16 + keen::bool isEatingFoodBait; // Offset: 17 +}; + +struct ecs.WildlifeTransformer { + keen::Time timeWithoutHit; // Offset: 0 + keen::Time minDurationWithoutHit; // Offset: 8 +}; + +enum class AmbientEffectPlaybackType { + PlayAlways = 0, + PlayOnlyWhenInBattle = 1, + PlayOnlyWhenNotInBattle = 2, +}; + +struct AmbientEffectEntry { + keen::SoundContainerReference soundContainer; // Offset: 0 + keen::ObjectReference ingameTimeSpan; // Offset: 16 + keen::bool mute; // Offset: 32 + keen::AmbientEffectPlaybackType playbackType; // Offset: 33 + keen::float32 volume; // Offset: 36 +}; + +enum class Biome { + Default = 0, + Grassland = 1, + Desert = 2, + Wetland = 3, + Steppes = 4, + Deepforest = 5, + ColdHeights = 6, +}; + +struct AmbientEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::Biome biome; // Offset: 1 + keen::bool mute; // Offset: 2 + keen::bool whenInFog; // Offset: 3 +}; + +struct AmbientSoundEffectEntryResource { + keen::SoundContainerReference soundContainer; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::float32 volume; // Offset: 32 + keen::Guid id; // Offset: 36 + keen::Time startTime; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::string description; // Offset: 72 + keen::string soundContainerDescription; // Offset: 80 + keen::string ingameTimeSpanDescription; // Offset: 88 + keen::AmbientEffectPlaybackType playbackType; // Offset: 96 +}; + +struct AmbientSoundEffectResource { + keen::bool inAllBiomes; // Offset: 0 + keen::bool whenInFog; // Offset: 1 + keen::Biome biome; // Offset: 2 + keen::BlobArray effectEntries; // Offset: 4 + keen::Guid id; // Offset: 12 + keen::string description; // Offset: 28 +}; + +struct AmbientVfxEffectEntry { + keen::VfxReference vfx; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 +}; + +struct AmbientVfxEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::Biome biome; // Offset: 1 + keen::bool whenInFog; // Offset: 2 +}; + +struct AmbientVfxEffectEntryResource { + keen::VfxReference vfx; // Offset: 0 + keen::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Time startTime; // Offset: 32 + keen::Time endTime; // Offset: 40 + keen::Guid id; // Offset: 48 + keen::string description; // Offset: 64 + keen::string vfxDescription; // Offset: 72 + keen::string ingameTimeSpanDescription; // Offset: 80 +}; + +struct AmbientVfxEffectResource { + keen::BlobArray effectEntries; // Offset: 0 + keen::Biome biome; // Offset: 8 + keen::Guid id; // Offset: 12 + keen::string description; // Offset: 28 + keen::bool whenInFog; // Offset: 36 + keen::bool inAllBiomes; // Offset: 37 +}; + +struct CollisionFeedbackEffect2 { + keen::bool enabled; // Offset: 0 + keen::SoundContainerReference sfx; // Offset: 4 + keen::VfxReference vfx; // Offset: 20 + keen::ecs::Offset ecsOffset; // Offset: 36 + keen::bool orientToNormal; // Offset: 76 + keen::bool overrideSlot; // Offset: 77 + keen::AttachmentSlot slot; // Offset: 78 + keen::bool attach; // Offset: 79 + keen::bool playOnlyLocalSFX; // Offset: 80 + keen::bool useRootPosition; // Offset: 81 +}; + +struct CollisionFeedbackEffectCollection2 { + keen::CollisionFeedbackEffect2 onHit; // Offset: 0 + keen::CollisionFeedbackEffect2 onCriticalHit; // Offset: 84 + keen::CollisionFeedbackEffect2 onBlock; // Offset: 168 + keen::CollisionFeedbackEffect2 onBrokenBlock; // Offset: 252 + keen::CollisionFeedbackEffect2 onIneffective; // Offset: 336 + keen::CollisionFeedbackEffect2 onImmune; // Offset: 420 + keen::CollisionFeedbackEffect2 onFlattening; // Offset: 504 + keen::CollisionFeedbackEffect2 onPileUp; // Offset: 588 +}; + +typedef keen::ObjectReference CollisionFeedbackEffectCollectionReference; + +enum class MaterialFeedbackEventType { + OnPlace = 0, + OnPickup = 1, + OnTearDown = 2, + OnDestruction = 3, + OnFlatten = 4, + OnPileUp = 5, + Count = 6, +}; + +typedef keen::Bitmask8 MaterialFeedbackEventMask; + +enum class MaterialFeedbackEffectSize { + Tiny = 0, + Small = 1, + Medium = 2, + Large = 3, + Count = 4, +}; + +struct FoleyEffectCollection { + keen::ecs::Offset offset; // Offset: 0 + keen::SoundContainerReference evade; // Offset: 40 + keen::SoundContainerReference jump; // Offset: 56 + keen::SoundContainerReference run; // Offset: 72 + keen::SoundContainerReference sprint; // Offset: 88 + keen::SoundContainerReference walk; // Offset: 104 +}; + +struct EnvironmentEffectBase { + keen::SoundContainerReference sfx; // Offset: 0 + keen::ecs::Offset offset; // Offset: 16 + keen::bool orientToNormal; // Offset: 56 + keen::VfxReference vfx; // Offset: 60 +}; + +enum class EnvironmentEffectType { + PlayerDodgerollStart = 0, + PlayerDodgerollEnd = 1, + PlayerFallDamage = 2, + PlayerJump = 3, + PlayerJumpLandSoft = 4, + PlayerJumpLandHard = 5, + PlayerRun = 6, + PlayerSprint = 7, + PlayerWalk = 8, + PlayerSlide = 9, + FlyCrashDown = 10, + FlyLiftOff = 11, + FlyTouchDown = 12, + FlyHoverFlap = 13, + NPCWalk = 14, + Count = 15, +}; + +struct EnvironmentEffectPlayerDodgerollStart { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerDodgerollEnd { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerFallDamage { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJump { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLand { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLandSmall { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerRun { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSprint { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerWalk { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSlide { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureCrashDown { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyLiftOff { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyTouchDown { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureHoverFlap { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectNPCWalk { + keen::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct MaterialFeedbackEventBase { + keen::SoundContainerReference sfxTiny; // Offset: 0 + keen::SoundContainerReference sfxSmall; // Offset: 16 + keen::SoundContainerReference sfxMedium; // Offset: 32 + keen::SoundContainerReference sfxLarge; // Offset: 48 + keen::ecs::Offset ecsOffset; // Offset: 64 + keen::bool orientToNormal; // Offset: 104 + keen::bool useRootPosition; // Offset: 105 + keen::VfxReference vfx; // Offset: 108 +}; + +struct MaterialFeedbackEventOnPlace { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPickup { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnTearDown { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnDestruction { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnFlatten { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPileUp { + keen::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct CollisionFeedbackMaterial { + keen::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::ItemReference materialItem; // Offset: 16 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 32 + keen::bool hasFoleyEffects; // Offset: 33 + keen::uint32 foleyEffectImportance; // Offset: 36 + keen::FoleyEffectCollection foleyEffects; // Offset: 40 +}; + +struct WeatherLayerMaterial { + keen::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::WeatherState weather; // Offset: 16 +}; + +struct CollisionFeedbackRule { + keen::CollisionFeedbackMaterialReference materialA; // Offset: 0 + keen::CollisionFeedbackMaterialReference materialB; // Offset: 16 + keen::CollisionFeedbackEffectCollectionReference effectCollection; // Offset: 32 +}; + +struct CollisionFeedback { +}; + +enum class ColliderFeedbackEffectFlag { + OrientToNormal = 0, + ApplyLocally = 1, + AttachToSlot = 2, + UseRootPosition = 3, + SFX_OnlyLocalPlayer = 4, +}; + +typedef keen::Bitmask8 ColliderFeedbackEffectFlags; + +struct MaterialFeedbackEffect { + keen::string description; // Offset: 0 + keen::ecs::Offset ecsOffset; // Offset: 8 + keen::SoundContainerReference sfx; // Offset: 48 + keen::VfxReference vfx; // Offset: 64 + keen::BlobOptional vfxParameters; // Offset: 80 + keen::AttachmentSlot slot; // Offset: 84 + keen::ColliderFeedbackEffectFlags flags; // Offset: 85 +}; + +typedef keen::HashKey32 MaterialFeedbackId; + +struct MaterialFeedback { + keen::MaterialFeedbackId id; // Offset: 0 + keen::MaterialFeedbackEventMask eventTypeMask; // Offset: 4 + keen::StaticArray eventEffectsTiny; // Offset: 8 + keen::StaticArray eventEffectsSmall; // Offset: 536 + keen::StaticArray eventEffectsMedium; // Offset: 1064 + keen::StaticArray eventEffectsLarge; // Offset: 1592 + keen::bool hasFoleyEffects; // Offset: 2120 + keen::uint32 foleyEffectImportance; // Offset: 2124 + keen::StaticArray foleyMaterialFeedbackEffects; // Offset: 2128 + keen::bool hasEnvironmentEffects; // Offset: 2568 + keen::StaticArray environmentMaterialFeedbackEffects; // Offset: 2572 + keen::Bitmask16 collisionTypeMask; // Offset: 3892 + keen::StaticArray collisionTypeEffects; // Offset: 3896 +}; + +typedef keen::ObjectReference MaterialFeedbackReference; + +struct CollisionFeedbackMatrixEntry { + keen::uint64 materialPairId; // Offset: 0 + keen::StaticArray effects; // Offset: 8 + keen::Bitmask16 effectMask; // Offset: 712 +}; + +struct MaterialFeedbackSubDirectory { +}; + +struct MaterialFeedbackDirectory { +}; + +struct MaterialFeedbackCollectionResource { + keen::Guid id; // Offset: 0 + keen::string description; // Offset: 16 + keen::BlobArray collisionEffectMatrixEntry; // Offset: 24 + keen::BlobArray materials; // Offset: 32 + keen::MaterialFeedbackReference rainMaterialLayeredEffects; // Offset: 40 + keen::MaterialFeedbackReference snowMaterialLayeredEffects; // Offset: 56 + keen::MaterialFeedbackReference blizzardMaterialLayeredEffects; // Offset: 72 +}; + +enum class DebugEnvironmentEffectType { + DebugHitEffect = 0, + DebugEnvironmentOrFootdownEffect = 1, + DebugFoleyEffect = 2, + DebugPropEffect = 3, + Count = 4, +}; + +enum class FoleyType { + Evade = 0, + Jump = 1, + Run = 2, + Sprint = 3, + Walk = 4, + Count = 5, +}; + +struct DebugEnvironmentEffect { + keen::DebugEnvironmentEffectType type; // Offset: 0 + keen::FoleyType foleyType; // Offset: 1 + keen::EnvironmentEffectType environmentEffectType; // Offset: 2 + keen::ecs::CollisionType collisionType; // Offset: 3 + keen::MaterialFeedbackEventType eventType; // Offset: 4 + keen::MaterialFeedbackEffectSize effectSize; // Offset: 5 + keen::WeatherState weatherState; // Offset: 6 + keen::bool collisionRuleFound; // Offset: 7 + keen::MaterialFeedbackId materialA; // Offset: 8 + keen::MaterialFeedbackId materialB; // Offset: 12 + keen::Guid eventGuid; // Offset: 16 + keen::Guid sfx; // Offset: 32 + keen::Guid vfx; // Offset: 48 + keen::float eventSendTime; // Offset: 64 + keen::float eventReceiveTime; // Offset: 68 + keen::float entityFootWorldHeight; // Offset: 72 + keen::float effectWorldHeight; // Offset: 76 +}; + +enum class impact.MajorDirection { + Invalid = 0, + SourceTarget = 1, + RightToLeft = 2, + LeftToRight = 3, + UpToDown = 4, + DownToUp = 5, + BackToFront = 6, +}; + +struct actor.ActorSequence { + keen::impact::MajorDirection majorDirection; // Offset: 16 +}; + +typedef keen::BlobArray> SequenceEvents; + +struct SequenceResource { + keen::SequenceEvents events; // Offset: 0 + keen::Time length; // Offset: 8 + keen::bool loop; // Offset: 16 + keen::BlobString name; // Offset: 20 +}; + +struct actor.ActorSequenceResource { + keen::Guid resourceId; // Offset: 32 + keen::impact::MajorDirection majorDirection; // Offset: 48 +}; + +typedef keen::ObjectReference ecs.EntityTagReference; + +struct ecs.EntityTagReferenceEntry { + keen::ecs::EntityTagReference tag; // Offset: 0 +}; + +struct SequenceEvent { + keen::Time time; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::ecs::EntityTagReference requiredEntityTag; // Offset: 16 + keen::StaticArray forbiddenTags; // Offset: 32 +}; + +struct actor.SetAnimationEvent { + keen::animationgraph::StateIdReference animationName; // Offset: 96 + keen::bool usePureLveLocomotion; // Offset: 112 + keen::bool alignLveLocomotionToFloor; // Offset: 113 + keen::bool scaleLveWithMovementInput; // Offset: 114 + keen::bool retriggerAnimation; // Offset: 115 +}; + +struct actor.RootMotionWarpEvent { + keen::float32 minDistanceToTarget; // Offset: 96 + keen::float32 maxScale; // Offset: 100 + keen::bool abortWarpAboveMaxScale; // Offset: 104 +}; + +struct actor.PreserveVelocity { +}; + +struct actor.ImpulseEvent { + keen::float3 worldDistance; // Offset: 96 + keen::float3 localDistance; // Offset: 108 + keen::ecs::ImpulseType impulseType; // Offset: 120 + keen::bool applyOnlyHorizontally; // Offset: 121 +}; + +struct actor.ApplyImpulseEvent { + keen::float3 worldImpulse; // Offset: 96 + keen::float3 localImpulse; // Offset: 108 +}; + +struct actor.SetAnimationOverlayEvent { + keen::animationgraph::OverlayIdReference overlayName; // Offset: 96 + keen::BlobString jointMaskStart; // Offset: 112 +}; + +struct actor.KeepAliveEvent { + keen::actor::StateMask keepAliveMask; // Offset: 96 + keen::actor::StateMask abortMask; // Offset: 104 +}; + +struct actor.LoopEvent { + keen::actor::StateMask keepAliveMask; // Offset: 96 + keen::actor::StateMask abortMask; // Offset: 104 + keen::bool jumpToLoopEndOnAbort; // Offset: 112 +}; + +enum class actor.ScopeEndBehavior { + LoopScope = 0, + ExitScope = 1, +}; + +struct actor.ScopeEvent { + keen::actor::ScopeEndBehavior scopeEndBehavior; // Offset: 120 +}; + +struct actor.ChangeColliderSetup { + keen::ecs::ColliderMode mode; // Offset: 96 +}; + +struct actor.ToggleInteractionActionEvent { +}; + +struct actor.LootInteractionActionEvent { + keen::bool lootAll; // Offset: 96 + keen::bool forAllPlayers; // Offset: 97 +}; + +struct actor.ResetFallAltitudeOnApexEvent { +}; + +enum class actor.SnapType { + Stick = 0, + Target = 1, + TargetOrStick = 2, + TargetOrSetting = 3, + TargetOrCursor = 4, + Cursor = 5, +}; + +enum class actor.InterpolationMode { + LinearAxisRotation = 0, + ExponentialLerp = 1, + LerpWithConstantSpeed = 2, + LerpSmooth = 3, + LerpSmoother = 4, + RotateLeft = 5, + RotateRight = 6, +}; + +struct actor.SnapEvent { + keen::actor::SnapType type; // Offset: 96 + keen::ecs::TargetType targetType; // Offset: 97 + keen::actor::InterpolationMode rotationInterpolationMode; // Offset: 98 +}; + +struct actor.SetAbortByMovement { + keen::bool value; // Offset: 96 +}; + +struct actor.PushEvent { + keen::float32 force; // Offset: 96 +}; + +enum class actor.JumpType { + Invalid = 0, + Default = 1, + DoubleDefault = 2, + DoubleSprint = 3, + Sprint = 4, + DefaultSubmerged = 5, + StruggleSubmerged = 6, + Glider = 7, + HookSwingEnter = 8, + HookSwingDefaultExit = 9, + HookSwingSprintExit = 10, + LadderClimbing = 11, + FreeClimbing = 12, + Slide = 13, + Attack = 14, + Airwolf = 15, + NpcMovement = 16, + JumpPad = 17, +}; + +struct actor.JumpEvent { +}; + +struct actor.HookEvent { +}; + +struct actor.SelfDestructEvent { +}; + +enum class CameraId { + EntityCamera = 0, + PlayerCameraCustomizationBody = 1, + PlayerCameraCustomizationFace = 2, + PlayerCameraSpawning = 3, + PlayerCameraSpawningDolly = 4, + PlayerCameraRespawning = 5, + PlayerCameraDefault = 6, + PlayerCameraDefaultTarget = 7, + PlayerCameraSprinting = 8, + PlayerCameraRangedBowDefault = 9, + PlayerCameraRangedBowDefaultTarget = 10, + PlayerCameraRangedBowSneaking = 11, + PlayerCameraRangedBowSneakingTarget = 12, + PlayerCameraRangedStaffDefault = 13, + PlayerCameraRangedStaffDefaultTarget = 14, + PlayerCameraRangedStaffSneaking = 15, + PlayerCameraRangedStaffSneakingTarget = 16, + PlayerCameraHipfire = 17, + PlayerCameraExecute = 18, + PlayerCameraIdle = 19, + PlayerCameraSneaking = 20, + PlayerCameraSitting = 21, + PlayerCameraCooking = 22, + PlayerCameraClimbing = 23, + PlayerCameraHookShot = 24, + PlayerCameraGlider = 25, + PlayerCameraDialogue = 26, + PlayerCameraAltar = 27, + PlayerCameraBuilding = 28, + PlayerCameraBuildingModeOrbit = 29, + PlayerCameraBuildingModeFree = 30, +}; + +struct actor.LockCameraIdEvent { + keen::CameraId cameraId; // Offset: 96 +}; + +struct actor.UnlockCameraIdEvent { +}; + +enum class CameraOverride { + None = 0, + BlinkLerpSpeed = 1, + CameraTransitionLerpSpeed = 2, +}; + +struct actor.SetCameraOverrideEvent { + keen::CameraOverride cameraOverride; // Offset: 96 +}; + +struct actor.CameraShakeEvent { + keen::float32 trauma; // Offset: 96 +}; + +struct actor.CameraShakeImpulseEvent { + keen::float3 impulse; // Offset: 96 + keen::float32 additionalTrauma; // Offset: 108 +}; + +enum class HudScreenType { + Invalid = 0, + InGame = 1, + SystemMenu = 2, + SettingsMenu = 3, + InGameMenu = 4, + Map = 5, + Journal = 6, + Character = 7, + PlayerCrafting = 8, + Backpack = 9, + SkillTree = 10, + FlameAltar = 11, + AltarUpgrade = 12, + FlameUpgrade = 13, + AltarDeactivate = 14, + SkillRespec = 15, + LoreReading = 16, + Signpost = 17, + ReadOnlyLootChest = 18, + StorageChest = 19, + Collection = 20, + FeedingStation = 21, + StationBasedCrafting = 22, + NpcDialog = 23, + NpcCrafting = 24, + FactoryCrafting = 25, + BlueprintSideMenu = 26, + TerraformingSideMenu = 27, + NpcSummonerSideMenu = 28, + UserFeedback = 29, + TwitchDrops = 30, + NoUi = 31, + TechGallery = 32, + FelixPlayground = 33, + LukasPlayground = 34, + NicPlayground = 35, + YcPlayground = 36, +}; + +struct actor.OpenUi { + keen::HudScreenType hudScreen; // Offset: 96 +}; + +struct actor.NegativeFeedbackEvent { + keen::LocaTagReference messageLocaTag; // Offset: 96 +}; + +enum class ecs.EnemyEventType { + CallForHelp = 0, + LaunchProjectiles = 1, + DestroyProjectiles = 2, + CalcDashMovement = 3, + RemoveAttackAttachment = 4, +}; + +struct actor.EnemyCommandEvent { + keen::ecs::EnemyEventType eventType; // Offset: 96 +}; + +struct actor.TriggerNoiseEvent { + keen::float32 range; // Offset: 96 +}; + +enum class ecs.SyncedAttackType { + Execute = 0, + SneakExecute = 1, +}; + +struct actor.SyncAttackEvent { + keen::ecs::SyncedAttackType type; // Offset: 96 +}; + +struct actor.SyncedSequenceEvent { + keen::actor::ActorSequenceReference sequence; // Offset: 96 +}; + +struct actor.TriggerKnowledge { + keen::bool unlockForGroup; // Offset: 96 +}; + +enum class actor.AbilityFlag { + CanTriggerPrimary = 0, + CanTriggerSecondary = 1, + CanRangedCombatShoot = 2, + CanUseTool = 3, + CanEvade = 4, + CanBlock = 5, + CanUseLongerStunParry = 6, + CanJump = 7, + CanTriggerGlider = 8, + CanInteract = 9, + CanSprint = 10, + CanSneak = 11, + CanSit = 12, + CanClimb = 13, + CanExternallyAbortSequence = 14, + CanAbortSequenceByDeath = 15, + CanShowHitReaction = 16, + CanChangeCombatTargetOrHardLockCandidate = 17, + CanChangeVisceralTarget = 18, + CanChangeInteractionTarget = 19, + CanChangeBuildingCursor = 20, + CanRecharge = 21, + CanMove = 22, + CanRotate = 23, + CanCancel = 24, +}; + +typedef keen::Bitmask32 actor.AbilityMask; + +struct actor.MovementFactors { + keen::float32 forward; // Offset: 0 + keen::float32 backward; // Offset: 4 + keen::float32 lateral; // Offset: 8 +}; + +typedef keen::ObjectReference skilltree_nodes.NodeReference; + +struct actor.DisableAbilityEvent { + keen::actor::AbilityMask mask; // Offset: 96 + keen::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.EnableAbilityEvent { + keen::actor::AbilityMask mask; // Offset: 96 + keen::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.SetStateEvent { + keen::actor::StateMask mask; // Offset: 96 +}; + +struct actor.ClearStateEvent { + keen::actor::StateMask mask; // Offset: 96 +}; + +struct actor.RequestUiCover { +}; + +struct actor.SetGravityEvent { + keen::float32 gravityModifier; // Offset: 96 +}; + +struct actor.ResetGravityEvent { +}; + +struct actor.LerpMovementFactorEvent { + keen::actor::MovementFactors desiredMovementFactors; // Offset: 96 + keen::Time lerpDuration; // Offset: 112 +}; + +struct actor.LerpRotationFactorEvent { + keen::float32 desiredRotationSpeedFactor; // Offset: 96 +}; + +struct actor.LerpTransformEvent { + keen::ecs::LerpTransformTarget lerpTarget; // Offset: 96 + keen::bool lerpPosition; // Offset: 97 + keen::bool lerpOrientation; // Offset: 98 +}; + +struct actor.LerpSubmergeDepthEvent { + keen::float submergeDelta; // Offset: 96 +}; + +struct actor.StartClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.StopClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.PlayInstrumentEvent { +}; + +struct actor.TeleportToTargetEvent { + keen::ecs::TargetType targetType; // Offset: 96 +}; + +struct actor.PetAnimalEvent { +}; + +struct actor.UpgradeAnimalEvent { +}; + +enum class actor.ActionSequenceTrigger { + Invalid = 0, + Primary = 1, + Secondary = 2, + Tool = 3, + Evade = 4, + Block = 5, + Parry = 6, + Jump = 7, + Glider = 8, + Interact = 9, + InteractHold = 10, + Sneak = 11, + Sit = 12, + Climb = 13, + HitReaction = 14, + Respawn = 15, + ExternalTrigger = 16, + Parried = 17, + ExternalAbortAndOverride = 18, + Death = 19, + ParriedOverride = 20, + ClearAll = 65535, +}; + +struct actor.SetOpportunity { + keen::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 + keen::skilltree_nodes::NodeReference requiredSkill; // Offset: 100 + keen::Time followUpTime; // Offset: 120 + keen::Guid eventGuid; // Offset: 128 + keen::bool override; // Offset: 144 +}; + +typedef keen::ObjectReference ImpactProgramReference; + +typedef keen::BlobArray> impact.Configurations; + +struct actor.SetActionOportunity { + keen::actor::ActorSequenceReference followUp; // Offset: 152 + keen::ImpactProgramReference costImpact; // Offset: 168 + keen::impact::Configurations impactValues; // Offset: 184 +}; + +struct actor.ClearActionOportunity { + keen::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 +}; + +enum class actor.SpawnEntityTransform { + Spawner = 0, + Cursor = 1, + Crosshair = 2, + RangedCrosshairOrTowardsCombatTarget = 3, + Teleport = 4, + CombatTarget = 5, + InteractionTarget = 6, + SafePlayerPosition = 7, + Unit = 8, + BetweenCombatTargetAndSpawner = 9, +}; + +struct actor.RadiusRange { + keen::float32 minRadius; // Offset: 0 + keen::float32 maxRadius; // Offset: 4 +}; + +struct actor.RandomOrientationOffset { + keen::Angle minX; // Offset: 0 + keen::Angle maxX; // Offset: 4 + keen::Angle minY; // Offset: 8 + keen::Angle maxY; // Offset: 12 + keen::Angle minZ; // Offset: 16 + keen::Angle maxZ; // Offset: 20 +}; + +struct actor.SpawnEntityBaseEvent { + keen::skilltree_nodes::NodeReference requiredSkill; // Offset: 96 + keen::ecs::TemplateReference templateReference; // Offset: 112 + keen::actor::SpawnEntityTransform spawnTransform; // Offset: 128 + keen::AttachmentSlot attachmentSlot; // Offset: 129 + keen::AttachmentSlot spawnSlot; // Offset: 130 + keen::ecs::Offset spawnOffset; // Offset: 132 + keen::impact::MajorDirection vfxDirection; // Offset: 172 + keen::ecs::TargetType providedTarget; // Offset: 173 + keen::bool consume; // Offset: 174 + keen::ItemReference onConsumeExchange; // Offset: 176 + keen::bool addWeaponReference; // Offset: 192 + keen::bool despawnAfterSequence; // Offset: 193 + keen::bool endSequenceOnDespawn; // Offset: 194 + keen::bool transferUsedItem; // Offset: 195 + keen::bool copyCustomString; // Offset: 196 + keen::actor::RadiusRange randomSpawnRadius; // Offset: 200 + keen::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 208 + keen::float32 minSpawnRatio; // Offset: 232 + keen::float32 maxSpawnRatio; // Offset: 236 + keen::uint8 minSpawnCount; // Offset: 240 + keen::uint8 maxSpawnCount; // Offset: 241 + keen::bool breakImpactHierarchy; // Offset: 242 + keen::bool ignoreSpawnVelocity; // Offset: 243 + keen::float3 spawnVelocity; // Offset: 244 + keen::bool applyRandomLoot; // Offset: 256 + keen::bool copyCombatAttributes; // Offset: 257 + keen::float32 chance; // Offset: 260 +}; + +struct actor.RefillBurner { +}; + +struct actor.SpawnEntityEvent { + keen::bool isProjectile; // Offset: 264 + keen::bool clearProjectiles; // Offset: 265 +}; + +struct actor.TriggerMartyrSkills { +}; + +struct actor.SpawnEntityPerAggroTargetEvent { + keen::actor::StateMask excludedTargetStates; // Offset: 264 + keen::bool isProjectile; // Offset: 272 + keen::bool clearProjectiles; // Offset: 273 + keen::bool onlyPlayerTargets; // Offset: 274 + keen::actor::RadiusRange randomPerTargetSpawnRadius; // Offset: 276 + keen::uint8 maxTargets; // Offset: 284 +}; + +struct impact.DamageDistribution { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::uint32 woodDamage; // Offset: 36 + keen::uint32 stoneDamage; // Offset: 40 + keen::uint32 metalDamage; // Offset: 44 + keen::uint32 explosionDamage; // Offset: 48 +}; + +struct actor.SpawnImpact { + keen::ImpactProgramReference impact; // Offset: 264 + keen::Guid eventGuid; // Offset: 280 + keen::impact::DamageDistribution damageDistribution; // Offset: 296 + keen::ecs::ColliderResourceData colliderData; // Offset: 348 + keen::impact::Configurations impactValues; // Offset: 368 + keen::bool damageDistributionIsSet; // Offset: 376 +}; + +typedef keen::ObjectReference BuffTypeReference; + +struct actor.ApplyBuffEvent { + keen::BuffTypeReference buffTypeOverride; // Offset: 96 + keen::bool consume; // Offset: 112 + keen::impact::Configurations impactValues; // Offset: 116 + keen::impact::DamageDistribution damageDistribution; // Offset: 124 + keen::bool damageDistributionIsSet; // Offset: 176 +}; + +struct actor.PlaceVoxelObjectEvent { + keen::bool subtract; // Offset: 96 + keen::bool consume; // Offset: 97 +}; + +struct Matrix33 { + keen::Vector3 x; // Offset: 0 + keen::Vector3 y; // Offset: 16 + keen::Vector3 z; // Offset: 32 +}; + +struct Matrix43 { + keen::Matrix33 rot; // Offset: 0 + keen::Vector3 pos; // Offset: 48 +}; + +struct actor.DetachEntityEvent { + keen::Vector3 force; // Offset: 96 + keen::Vector3 randomAngleByAxis; // Offset: 112 + keen::Matrix43 launchTransform; // Offset: 128 + keen::bool addGravity; // Offset: 192 +}; + +struct actor.DetachProjectileEntityEvent { +}; + +struct actor.SetTriggerStateEvent { + keen::SignalReference trigger; // Offset: 96 + keen::bool state; // Offset: 112 +}; + +struct actor.ShowAmmunition { +}; + +struct actor.SetVisualAmmunition { +}; + +struct actor.ResetVisualAmmunition { +}; + +struct actor.StartCookEvent { +}; + +struct actor.SpawnCookEntitesEvent { +}; + +struct actor.ActivateCombatStanceEvent { +}; + +typedef keen::ObjectReference ecs.DefaultInventoryReference; + +struct actor.TransformToLootEvent { + keen::ecs::DefaultInventoryReference defaultInventory; // Offset: 96 + keen::bool keepDefaultInventory; // Offset: 112 + keen::uint8 genericSlotCount; // Offset: 113 + keen::uint8 availableSlotCount; // Offset: 114 + keen::actor::ActorSequenceReference defaultAction; // Offset: 116 + keen::LocaTagReference verbLoca; // Offset: 132 + keen::ecs::Offset vfxOnSpawnOffset; // Offset: 148 + keen::VfxReference vfxOnSpawn; // Offset: 188 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 204 + keen::uint32 lootHealth; // Offset: 268 +}; + +struct actor.AcceptInteractionEvent { +}; + +enum class actor.VoxelChangeType { + Invalid = 0, + Add = 1, + Flatten = 2, + HorizontalFlatten = 3, + Undo = 4, +}; + +struct actor.ChangeVoxel { + keen::actor::VoxelChangeType changeType; // Offset: 96 +}; + +struct actor.Dismantle { +}; + +typedef keen::HashKey32 NpcId; + +struct actor.AssignNpc { + keen::NpcId npcId; // Offset: 96 +}; + +struct actor.TameWildlifeEvent { +}; + +struct actor.RotationInterpolation { + keen::Quaternion startOrientation; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 16 + keen::float3 linearRotationAxis; // Offset: 32 + keen::float32 speed; // Offset: 44 + keen::actor::InterpolationMode interpolationMode; // Offset: 48 +}; + +struct actor.RotationData { + keen::Time startTime; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 8 + keen::Time snapDuration; // Offset: 24 +}; + +typedef keen::HashKey32 actor.SequenceResourceId; + +struct actor.SequenceRuntimeId { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::ecs::EntityId actorEntityId; // Offset: 16 + keen::uint8 callIndex; // Offset: 20 +}; + +typedef keen::uint8 InventorySlotIndex; + +struct InventorySlotId { + keen::ecs::EntityId entityId; // Offset: 0 + keen::InventorySlotIndex slotIndex; // Offset: 4 +}; + +enum class ItemStateFlag { + Broken = 0, + DurabilityInitialized = 1, + ContinuousDurabilityLoss = 2, + IsEquipped = 3, + HasLevel = 4, + HasDamage = 5, + IsNew = 6, + HasContinuousDurability = 7, +}; + +typedef keen::Bitmask8 ItemStateMask; + +struct ItemInstanceInfo { + keen::InventorySlotId slotId; // Offset: 0 + keen::ItemId itemId; // Offset: 8 + keen::ecs::EntityId pide; // Offset: 12 + keen::ItemStateMask stateMask; // Offset: 16 +}; + +typedef keen::HashKey32 SongId; + +typedef keen::HashKey32 KnowledgeId; + +struct actor.ActionSequenceTriggerContext { + keen::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::actor::ActionSequenceTrigger triggerType; // Offset: 24 + keen::ItemInstanceInfo costItem; // Offset: 28 + keen::ItemInstanceInfo usedItem; // Offset: 48 + keen::ItemInstanceInfo usedAmmunition; // Offset: 68 + keen::actor::JumpType jumpType; // Offset: 88 + keen::float3 directionOverride; // Offset: 92 + keen::SongId songId; // Offset: 104 + keen::Time startTime; // Offset: 112 + keen::ecs::EntityId interactionHostId; // Offset: 120 + keen::uint32 interactionOfferId; // Offset: 124 + keen::StaticArray unlockKnowledgeIds; // Offset: 128 + keen::StaticArray entityTags; // Offset: 160 +}; + +typedef keen::HashKey32 SkillNodeId; + +struct actor.FollowUp { + keen::actor::ActionSequenceTriggerContext context; // Offset: 0 + keen::actor::SequenceResourceId originalEventSequence; // Offset: 224 + keen::Guid eventGuid; // Offset: 228 + keen::Time localExecutionTime; // Offset: 248 + keen::SkillNodeId requiredSkill; // Offset: 256 + keen::ImpactProgramReference costImpact; // Offset: 260 + keen::bool wasTriggered; // Offset: 276 +}; + +enum class actor.ActionSequenceFlags { + IsActive = 0, + IsInScope = 1, + IsInScopeLoop = 2, + RetriggerAnimation = 3, + AbortViaMovement = 4, + SelfDestruct = 5, +}; + +typedef keen::Bitmask8 actor.ActionSequenceState; + +struct actor.ActionSequenceSpan { + keen::Time startTime; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ColliderModeData { + keen::ecs::ColliderMode mode; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ActionSequencePlaybackContext { + keen::Time playedTime; // Offset: 0 + keen::Time currentTime; // Offset: 8 + keen::Time sequenceLength; // Offset: 16 + keen::Time scopeStartTime; // Offset: 24 + keen::Time scopeEndTime; // Offset: 32 + keen::actor::StateMask scopeAbortMask; // Offset: 40 + keen::actor::StateMask scopeKeepAliveMask; // Offset: 48 + keen::bool scopeJumpToScopeEndOnAbort; // Offset: 56 + keen::actor::ActionSequenceState state; // Offset: 57 + keen::StaticArray playbackSpan; // Offset: 64 + keen::StaticArray followUps; // Offset: 96 + keen::actor::AbilityMask abilityMask; // Offset: 1776 + keen::actor::StateMask setStateMask; // Offset: 1784 + keen::actor::StateMask unsetStateMask; // Offset: 1792 + keen::actor::StateMask sequenceAbortMask; // Offset: 1800 + keen::actor::StateMask sequenceKeepAliveMask; // Offset: 1808 + keen::bool wrapedAround; // Offset: 1816 +}; + +struct actor.SignalStates { + keen::StaticArray activeSignals; // Offset: 0 +}; + +struct actor.ActionSequence { + keen::actor::ActionSequenceTriggerContext triggerContext; // Offset: 0 + keen::actor::ActionSequencePlaybackContext playbackContext; // Offset: 224 +}; + +struct actor.PlaceItemEvent { +}; + +struct actor.SetAttackChainVariationEvent { + keen::ecs::EntityTagReference followUpSequenceTag; // Offset: 96 +}; + +struct PreviewAnimGraph2 { + keen::ObjectReference animGraphId; // Offset: 0 + keen::bool useFemaleAnimation; // Offset: 16 +}; + +struct ActorActionContainer { + keen::ObjectReference previewAnimationGraph; // Offset: 0 + keen::PreviewAnimGraph2 previewAnimationGraph2Info; // Offset: 16 +}; + +struct ActorActionContainerRoot { +}; + +typedef keen::ObjectReference ActorSequenceResourceReference; + +struct ActorSequenceCollectionResource { + keen::BlobArray sequences; // Offset: 0 +}; + +enum class AmmunitionType { + Invalid = 0, + Arrow = 1, + Spell = 2, + Count = 2, +}; + +enum class animal.Needs { + Shelter = 0, + Sleep = 1, + Food = 2, +}; + +typedef keen::Bitmask8 animal.NeedsMask; + +enum class animal.InteractionState { + IsTurning = 0, + IsCloseToPlayer = 1, + IsPlayingPetSequence = 2, +}; + +typedef keen::Bitmask8 animal.InteractionStates; + +enum class animal.TargetSearchState { + TargetReached = 0, + NotTryingThisState = 1, +}; + +typedef keen::Bitmask8 animal.TargetSearchStates; + +enum class animal.State { + Invalid = 0, + Init = 1, + Start = 2, + Idle = 3, + Roam = 4, + Sitting = 5, + Sleep = 6, + Eating = 7, + Interested = 8, + GreetPlayer = 9, + FinishTask = 10, +}; + +enum class animal.StateCondition { + IsFinished = 0, + HasFailed = 1, + WantsToRoam = 2, + WantsToSit = 3, + WantsToEat = 4, + WantsToSleep = 5, + WantsToGreet = 6, + WantsToIdle = 7, + IsInterested = 8, +}; + +enum class animal.Type { + None = 0, + FarmAnimal = 1, + Bunny = 2, + Catdeer = 3, + Goat = 4, + SandDigger = 5, + Turkey = 6, + Yak = 7, + Pet = 8, + Cat = 9, + Dog = 10, +}; + +typedef keen::Bitmask16 animal.TypeMask; + +struct animal.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +struct animal.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float greetWeight; // Offset: 12 + keen::float roamWeight; // Offset: 16 +}; + +struct animal.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 sequenceChance; // Offset: 16 +}; + +struct animal.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct animal.TargetSetup { + keen::bool isBed; // Offset: 0 + keen::bool isFood; // Offset: 1 + keen::bool isInteresting; // Offset: 2 +}; + +struct animal.HungerSetup { + keen::Time timeUntilHungerMinDuration; // Offset: 0 + keen::Time timeUntilHungerMaxDuration; // Offset: 8 + keen::Time foodConsumptionRate; // Offset: 16 +}; + +struct animal.ReproductionSetup { + keen::float32 maxReproductionDistance; // Offset: 0 + keen::float32 baseReproductionChance; // Offset: 4 + keen::Time reproductionRate; // Offset: 8 +}; + +enum class animal.AnimalQueryStatus { + Idle = 0, + Requested = 1, + WaitForResult = 2, + Canceled = 3, +}; + +struct animal.RangeQueryInfo { + keen::animal::AnimalQueryStatus status; // Offset: 0 + keen::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct animal.PathQueryInfo { + keen::animal::AnimalQueryStatus status; // Offset: 0 + keen::ecs::PathQueryId queryId; // Offset: 4 +}; + +enum class animal.ReproductionQueryState { + Idle = 0, + RangeQueries = 1, + PathQueries = 2, + Canceled = 3, +}; + +struct animal.ReproductionState { + keen::bool requirementsFulfilled; // Offset: 0 + keen::animal::ReproductionQueryState queryState; // Offset: 1 + keen::ecs::EntityId closestFreeBedId; // Offset: 4 + keen::ecs::EntityId closestOtherAnimalId; // Offset: 8 + keen::animal::RangeQueryInfo animalQuery; // Offset: 12 + keen::animal::RangeQueryInfo bedQuery; // Offset: 20 + keen::animal::PathQueryInfo animalPathQuery; // Offset: 28 + keen::animal::PathQueryInfo bedPathQuery; // Offset: 36 +}; + +struct animal.HungerState { + keen::StaticArray foodTargets; // Offset: 0 + keen::animal::RangeQueryInfo foodSourceQueryInfo; // Offset: 32 + keen::animal::PathQueryInfo pathfindingQuery; // Offset: 40 + keen::uint8 currentPathfindingIndex; // Offset: 48 +}; + +struct active_npc.RoamingSetup { + keen::float32 minDistanceToCurrentPosition; // Offset: 0 + keen::float32 maxRadiusFromSpawn; // Offset: 4 + keen::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 8 +}; + +struct active_npc.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleRoaming; // Offset: 4 +}; + +struct active_npc.SleepSetup { + keen::FloatRange sleepTime; // Offset: 0 + keen::FloatRange wakeUpTime; // Offset: 8 +}; + +struct active_npc.PathNodeSetup { + keen::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct ecs.Animal { + keen::actor::TurnSetup turnSetup; // Offset: 0 + keen::actor::ActorSequenceReference sitSequence; // Offset: 72 + keen::actor::ActorSequenceReference sleepSequence; // Offset: 88 + keen::actor::ActorSequenceReference inspectSequence; // Offset: 104 + keen::actor::ActorSequenceReference beingPetSequence; // Offset: 120 + keen::actor::ActorSequenceReference eatingSequence; // Offset: 136 + keen::actor::ActorSequenceReference sadIdleSequence; // Offset: 152 + keen::actor::ActorSequenceReference greetSequence; // Offset: 168 + keen::float32 minDistanceToPlayer; // Offset: 184 + keen::animal::Type type; // Offset: 188 + keen::animal::DecisionSetup decisionSetup; // Offset: 192 + keen::animal::IdleSetup idleSetup; // Offset: 216 + keen::active_npc::RoamingSetup roamingSetup; // Offset: 240 + keen::active_npc::MovementSetup movementSetup; // Offset: 252 + keen::active_npc::SleepSetup sleepSetup; // Offset: 260 + keen::animal::SearchTargetSetup searchTargetSetup; // Offset: 276 + keen::active_npc::PathNodeSetup pathNodeSetup; // Offset: 284 + keen::animal::HungerSetup hungerSetup; // Offset: 392 + keen::animal::ReproductionSetup reproductionSetup; // Offset: 416 + keen::ecs::TemplateReference babyAnimalVersion; // Offset: 432 + keen::actor::ActorSequenceReference defaultInteractionSequence; // Offset: 448 + keen::LocaTagReference defaultInteractionVerbLoca; // Offset: 464 +}; + +struct ecs.DynamicAnimal { + keen::animal::State state; // Offset: 0 + keen::animal::State previousState; // Offset: 1 + keen::Time standingNextToPlayerTimer; // Offset: 8 + keen::animal::TargetSearchStates targetSearchStates; // Offset: 16 + keen::ecs::EntityId beingPetByPlayerId; // Offset: 20 + keen::ecs::RangeQueryId queryId; // Offset: 24 + keen::animal::ReproductionState reproductionState; // Offset: 28 + keen::Time timeUntilHungry; // Offset: 72 + keen::Time eatingCooldown; // Offset: 80 + keen::animal::HungerState hungerState; // Offset: 88 + keen::bool bedSearched; // Offset: 140 +}; + +struct ecs.NetworkAnimal { + keen::animal::NeedsMask needs; // Offset: 0 +}; + +struct ecs.AnimalSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::Time lastFoodConsumptionTime; // Offset: 16 + keen::Time lastValidReproduction; // Offset: 24 + keen::bool willConsumeFood; // Offset: 32 + keen::Time nextReproductionCheck; // Offset: 40 + keen::animal::NeedsMask needs; // Offset: 48 +}; + +struct ecs.AnimalTarget { + keen::animal::TargetSetup setup; // Offset: 0 + keen::animal::TypeMask types; // Offset: 4 + keen::ecs::Offset targetOffset; // Offset: 8 +}; + +struct ecs.DynamicAnimalTarget { + keen::ecs::EntityId associatedAnimal; // Offset: 0 +}; + +struct ecs.BabyAnimal { + keen::Time growTime; // Offset: 0 + keen::ecs::TemplateReference grownUpEntity; // Offset: 8 + keen::Time growUpTimer; // Offset: 24 + keen::bool canGrowUp; // Offset: 32 +}; + +enum class ecs.AttributeFlags { + Initialized = 0, + Break_OnWrite = 1, +}; + +struct ecs.AttributeComponent { + keen::HashKey32 rootId; // Offset: 0 + keen::HashKey32 signature; // Offset: 4 + keen::uint32 storageOffset; // Offset: 8 + keen::uint32 storageSize; // Offset: 12 + keen::Bitmask16 flags; // Offset: 16 +}; + +struct ecs.FloatAttribute { +}; + +struct ecs.UInt32Attribute { +}; + +struct ecs.SInt32Attribute { +}; + +struct ecs.BoolAttribute { +}; + +struct ecs.DurabilityLoad { + keen::float32 percentage; // Offset: 0 +}; + +struct ecs.DurabilityBurndown { + keen::Time lastUpdate; // Offset: 0 +}; + +enum class impact.AttributeType { + Invalid = 0, + Bool = 1, + Sint32 = 2, + Uint32 = 3, + Float32 = 4, +}; + +struct impact.AttributeDeclerationBase { + keen::BlobString formula; // Offset: 0 +}; + +struct impact.AttributeDecleration { + keen::impact::AttributeType type; // Offset: 8 +}; + +typedef keen::uint16 impact.AttributeIndex; + +struct AttributeContainer { +}; + +typedef keen::uint32 AttributeCommand; + +enum class AttributeOps { + Invalid = 0, + Load0 = 1, + Load = 2, + LoadRef = 3, + Store = 4, + Push = 5, + Add = 6, + Substract = 7, + Multiply = 8, + Divide = 9, + Pow = 10, + MulPercentage = 11, + Clamp = 12, + ScaleToNewMax = 13, + Min = 14, + Max = 15, + And = 16, + Or = 17, + Not = 18, + NAnd = 19, + Halt = 20, +}; + +struct AttributeStructure { + keen::impact::AttributeIndex parentIndex; // Offset: 0 + keen::impact::AttributeIndex childIndex; // Offset: 2 + keen::impact::AttributeIndex siblingIndex; // Offset: 4 + keen::BlobArray calculation; // Offset: 8 +}; + +struct BaseAttributeResource { + keen::HashKey32 type; // Offset: 0 + keen::BlobArray ids; // Offset: 4 + keen::BlobArray structure; // Offset: 12 + keen::BlobArray debugNames; // Offset: 20 +}; + +struct AttributeContainerResource { + keen::BlobArray attributes; // Offset: 0 +}; + +typedef keen::ObjectReference AttributeRootReference; + +typedef keen::ObjectReference AttributeReference; + +struct AttributeValueBase { + keen::AttributeReference id; // Offset: 0 +}; + +struct FloatAttributeValue { + keen::float32 value; // Offset: 16 +}; + +struct SInt32AttributeValue { + keen::sint32 value; // Offset: 16 +}; + +struct UInt32AttributeValue { + keen::uint32 value; // Offset: 16 +}; + +struct BoolAttributeValue { + keen::bool value; // Offset: 16 +}; + +struct BalancingAltarCount { + keen::uint8 flameLevel; // Offset: 0 + keen::uint8 altarCount; // Offset: 1 +}; + +struct BalancingBuildzoneSize { + keen::uint8 altarLevel; // Offset: 0 + keen::float3 buildzoneSize; // Offset: 4 +}; + +enum class ExperienceSourceType { + None = 0, + Exploration = 1, + Lore = 2, + Quest = 3, + Combat = 4, + Mining = 5, +}; + +struct ExperienceBalancing { + keen::ExperienceSourceType source; // Offset: 0 +}; + +struct ExperienceBalanceValue { + keen::ExperienceSourceType source; // Offset: 0 + keen::HashKey32 experienceValueId; // Offset: 4 + keen::uint32 experienceGain; // Offset: 8 +}; + +struct RandomSpawnerBalancing { + keen::float32 fewAmountFactor; // Offset: 0 + keen::float32 manyAmountFactor; // Offset: 4 + keen::float32 extremeAmountFactor; // Offset: 8 +}; + +struct AggroPoolThresholdBalancing { + keen::uint32 twoPoolsThreshold; // Offset: 0 + keen::uint32 threePoolsThreshold; // Offset: 4 + keen::uint32 maxPoolsThreshold; // Offset: 8 +}; + +struct AggroPoolBalancing { + keen::AggroPoolThresholdBalancing fewThresholds; // Offset: 0 + keen::AggroPoolThresholdBalancing normalThresholds; // Offset: 12 + keen::AggroPoolThresholdBalancing manyThresholds; // Offset: 24 + keen::AggroPoolThresholdBalancing extremeThresholds; // Offset: 36 +}; + +struct BalancingTable { + keen::uint32 genericWeaponSeed; // Offset: 0 + keen::uint32 flameLevelMax; // Offset: 4 + keen::uint32 altarLevelMax; // Offset: 8 + keen::uint32 playerLevelMax; // Offset: 12 + keen::uint32 playerLevelCap; // Offset: 16 + keen::uint32 itemLevelCap; // Offset: 20 + keen::float32 damageBoostFlame; // Offset: 24 + keen::uint32 apPerFlameLevel; // Offset: 28 + keen::float32 critBonus; // Offset: 32 + keen::float32 baseCritChance; // Offset: 36 + keen::float32 powerCreepWeapon; // Offset: 40 + keen::uint32 htkStartPve; // Offset: 44 + keen::uint32 htkEndPve; // Offset: 48 + keen::float32 damageMod2Handed; // Offset: 52 + keen::uint32 playerBaseHealth; // Offset: 56 + keen::uint32 playerHealthPerAP; // Offset: 60 + keen::uint32 playerBaseMana; // Offset: 64 + keen::uint32 playerManaPerAP; // Offset: 68 + keen::uint32 playerBaseStamina; // Offset: 72 + keen::uint32 playerStaminaPerAP; // Offset: 76 + keen::uint32 playerBaseBodyHeat; // Offset: 80 + keen::float32 freezeDurationFactor; // Offset: 84 + keen::float32 freezeDurationOffset; // Offset: 88 + keen::uint32 disableFreezingBaseLevel; // Offset: 92 + keen::uint32 playerBaseFogResistance; // Offset: 96 + keen::uint32 playerFogResistancePerFlameLevel; // Offset: 100 + keen::uint32 htkStartEvp; // Offset: 104 + keen::uint32 htkEndEvp; // Offset: 108 + keen::uint32 killToLevelUPStart; // Offset: 112 + keen::uint32 killToLevelUPEnd; // Offset: 116 + keen::float32 epicWeaponBonus; // Offset: 120 + keen::uint32 xpNeededFromKnowledge; // Offset: 124 + keen::float32 parryToDepletion; // Offset: 128 + keen::uint32 shotsToDepletion; // Offset: 132 + keen::uint32 avarageCharacterMod; // Offset: 136 + keen::ObjectReference knowledgeDirectory; // Offset: 140 + keen::float32 levelDifferenceXpDamper; // Offset: 156 + keen::float32 levelDifferenceXpModMin; // Offset: 160 + keen::float32 levelDifferenceXpModMax; // Offset: 164 + keen::float32 groupSizeXpDamper; // Offset: 168 + keen::float32 groupSizeXpDamperModMin; // Offset: 172 + keen::uint32 skillPointsPerLevel; // Offset: 176 + keen::uint32 maximumTotalMusicComfortBuff; // Offset: 180 + keen::uint32 maximumInstrumentsCountedForComfort; // Offset: 184 + keen::Time timePerInstrumentUntilMaxBuff; // Offset: 192 + keen::float32 defaultArmorBlowthrough; // Offset: 200 + keen::float32 damageScalePerAttributePoint; // Offset: 204 + keen::uint32 xpSeedEnemy; // Offset: 208 + keen::float32 xpSharedOther; // Offset: 212 + keen::float32 perkPower; // Offset: 216 + keen::uint32 perkUpgradeCostSeed; // Offset: 220 + keen::float32 perkCostCreep; // Offset: 224 + keen::uint32 trashStart; // Offset: 228 + keen::uint32 trashEnd; // Offset: 232 + keen::float noiseRainFactor; // Offset: 236 + keen::float buffReapplyPercentage; // Offset: 240 + keen::RandomSpawnerBalancing randomSpawnerBalancing; // Offset: 244 + keen::AggroPoolBalancing aggroPoolBalancing; // Offset: 256 + keen::uint32 maximumAnimalsInWorld; // Offset: 304 + keen::float hookShotCostLevelFactor; // Offset: 308 + keen::uint32 hookShotCostBase; // Offset: 312 + keen::BlobArray altarsPerFlameLevel; // Offset: 316 + keen::BlobArray buildzoneSizesPerAltarLevel; // Offset: 324 + keen::BlobArray experienceValues; // Offset: 332 +}; + +enum class BalancingLocaIds { + HealthPerAP = 0, + ManaPerAP = 1, + StaminaPerAP = 2, +}; + +enum class BuffSlotType { + Food = 0, + Buff = 1, + Debuff = 2, + Rested = 3, + TerrainDebuff = 4, +}; + +enum class BuffApplyType { + Invalid = 0, + ResetTime = 1, + ReplaceAtEnd = 2, + Replace = 3, +}; + +struct OnCreateHelper { + keen::AttachmentSlot slot; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 + keen::bool attach; // Offset: 44 + keen::SoundContainerReference sfx; // Offset: 48 + keen::VfxReference vfx; // Offset: 64 + keen::bool onlyPlayer; // Offset: 80 + keen::NotifierReference notifier; // Offset: 84 +}; + +struct WhileAppliedHelper { + keen::AttachmentSlot slot; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 + keen::SoundContainerReference sfx; // Offset: 44 + keen::VfxReference vfx; // Offset: 60 + keen::VfxUserEffectParameterDataBlock parameters; // Offset: 76 +}; + +typedef keen::HashKey32 BuffTypeId; + +struct UiTextureResource { + keen::PixelFormat format; // Offset: 0 + keen::uint2 size; // Offset: 4 + keen::uint8 levelCount; // Offset: 12 + keen::ContentHash data; // Offset: 16 +}; + +typedef keen::ObjectReference ImageReference; + +struct UiTexture { + keen::UiTextureResource texture; // Offset: 0 + keen::ImageReference image; // Offset: 32 +}; + +enum class FactionType { + Environment = 0, + HitAll = 1, + Fogger = 2, + Vukah = 3, + Scavenger = 4, + Wildlife = 5, + WildBeast = 6, + Player = 7, + AutomatedPlayer = 8, + HitOthers = 9, + Skeleton = 10, + PlayerAlly = 11, + FarmAnimal = 12, + Cyclops = 13, +}; + +typedef keen::Bitmask16 FactionMask; + +struct BuffType { + keen::BuffTypeId buffTypeId; // Offset: 0 + keen::BuffSlotType slot; // Offset: 4 + keen::BuffApplyType applyType; // Offset: 5 + keen::Time defaultLifeTime; // Offset: 8 + keen::NameLocaTag name; // Offset: 16 + keen::DescriptionLocaTag description; // Offset: 32 + keen::bool hideInUi; // Offset: 48 + keen::UiTexture icon; // Offset: 52 + keen::bool hideDurationInUi; // Offset: 100 + keen::bool despawnOnDeath; // Offset: 101 + keen::ImpactProgramReference impact; // Offset: 104 + keen::FactionMask factionExcludeMask; // Offset: 120 + keen::impact::Configurations impactValues; // Offset: 124 + keen::BlobArray uiValues; // Offset: 132 + keen::OnCreateHelper onCreate; // Offset: 140 + keen::WhileAppliedHelper whileApplied; // Offset: 240 +}; + +struct BuffTypeSubDirectory { +}; + +struct BuffTypDirectory { +}; + +struct ecs.BuffInstance { + keen::ecs::EntityId buffEntityId; // Offset: 0 + keen::BuffTypeId typeId; // Offset: 4 + keen::bool cleansed; // Offset: 8 +}; + +struct ecs.BuffContainer { + keen::StaticArray foodBuffs; // Offset: 0 + keen::StaticArray genericBuffs; // Offset: 48 + keen::StaticArray genericDebuffs; // Offset: 240 + keen::StaticArray restedBuff; // Offset: 432 + keen::StaticArray terrainDebuff; // Offset: 444 + keen::Time hungerStartTime; // Offset: 456 + keen::bool extendedFoodBuffSlots; // Offset: 464 +}; + +struct impact.DamageSetup { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::sint32 woodDamage; // Offset: 36 + keen::sint32 stoneDamage; // Offset: 40 + keen::sint32 metalDamage; // Offset: 44 + keen::sint32 explosionDamage; // Offset: 48 +}; + +struct ecs.BuffComponent { + keen::BuffTypeId buffTypeId; // Offset: 0 + keen::impact::DamageSetup damageSetup; // Offset: 4 + keen::bool isDamageSetupSet; // Offset: 56 +}; + +struct ecs.BuffNetworkData { + keen::Time restDuration; // Offset: 0 + keen::BuffTypeId buffTypeId; // Offset: 8 + keen::float32 durationPercentage; // Offset: 12 +}; + +struct UiTexturePreload { + keen::BlobArray textures; // Offset: 0 +}; + +struct BuffTypeCollectionResource { + keen::BlobArray buffs; // Offset: 0 + keen::UiTexturePreload uiTextures; // Offset: 8 +}; + +enum class InhibitBuildingCheck { + None = 0, + Lenient = 1, + Strict = 2, +}; + +enum class InhibitBuildType { + Lenient = 0, + Strict = 1, +}; + +typedef keen::Bitmask8 InhibitBuildMask; + +enum class Gender { + Female = 0, + Male = 1, +}; + +typedef keen::ObjectReference VoicePackReference; + +typedef keen::ObjectReference ColorPresetReference; + +struct CharacterPreset { + keen::Gender gender; // Offset: 0 + keen::VoicePackReference voicePackId; // Offset: 4 + keen::ColorPresetReference hairGradient; // Offset: 20 + keen::ColorPresetReference beardGradient; // Offset: 36 + keen::PaletteColorReference skinColor; // Offset: 52 + keen::PaletteColorReference eyeBrowColor; // Offset: 68 + keen::PaletteColorReference eyeColor; // Offset: 84 + keen::ItemReference head; // Offset: 100 + keen::ItemReference hair; // Offset: 116 + keen::ItemReference beard; // Offset: 132 + keen::ItemReference neck; // Offset: 148 + keen::ItemReference collar; // Offset: 164 + keen::ItemReference chest; // Offset: 180 + keen::ItemReference waist; // Offset: 196 + keen::ItemReference crotch; // Offset: 212 + keen::ItemReference upperArms; // Offset: 228 + keen::ItemReference lowerArms; // Offset: 244 + keen::ItemReference hands; // Offset: 260 + keen::ItemReference upperLegs; // Offset: 276 + keen::ItemReference lowerLegs; // Offset: 292 + keen::ItemReference feet; // Offset: 308 + keen::ItemReference armourHead; // Offset: 324 + keen::ItemReference armourUpperBody; // Offset: 340 + keen::ItemReference armourArms; // Offset: 356 + keen::ItemReference armourLowerBody; // Offset: 372 + keen::ItemReference armourFeet; // Offset: 388 +}; + +typedef keen::ObjectReference ColorGradientReference; + +struct ColorPreset { + keen::ColorGradientReference colorGradient; // Offset: 0 +}; + +typedef keen::HashKey32 ColorPresetId; + +struct ColorPresetResource { + keen::ColorPresetId presetId; // Offset: 0 + keen::ObjectReference colorGradient; // Offset: 4 +}; + +struct CharacterPresetSubDirectory { +}; + +struct CharacterPresetDirectory { +}; + +typedef keen::ObjectReference CharacterPresetCollectionReference; + +typedef keen::HashKey32 CharacterPresetId; + +typedef keen::HashKey32 VoicePackId; + +struct CharacterPresetResource { + keen::CharacterPreset references; // Offset: 0 + keen::CharacterPresetId presetId; // Offset: 404 + keen::Gender gender; // Offset: 408 + keen::VoicePackId voicePackId; // Offset: 412 + keen::ColorPresetId hairColorId; // Offset: 416 + keen::ColorPresetId beardColorId; // Offset: 420 + keen::PaletteColorId skinColor; // Offset: 424 + keen::PaletteColorId eyeBrowColor; // Offset: 428 + keen::PaletteColorId eyeColor; // Offset: 432 + keen::ItemId head; // Offset: 436 + keen::ItemId hair; // Offset: 440 + keen::ItemId beard; // Offset: 444 + keen::ItemId neck; // Offset: 448 + keen::ItemId collar; // Offset: 452 + keen::ItemId chest; // Offset: 456 + keen::ItemId waist; // Offset: 460 + keen::ItemId crotch; // Offset: 464 + keen::ItemId upperArms; // Offset: 468 + keen::ItemId lowerArms; // Offset: 472 + keen::ItemId hands; // Offset: 476 + keen::ItemId upperLegs; // Offset: 480 + keen::ItemId lowerLegs; // Offset: 484 + keen::ItemId feet; // Offset: 488 + keen::ItemId armourHead; // Offset: 492 + keen::ItemId armourUpperBody; // Offset: 496 + keen::ItemId armourArms; // Offset: 500 + keen::ItemId armourLowerBody; // Offset: 504 + keen::ItemId armourFeet; // Offset: 508 +}; + +struct ColorCombination { + keen::PaletteColorReference color0; // Offset: 0 + keen::PaletteColorReference color1; // Offset: 16 + keen::PaletteColorReference color2; // Offset: 32 +}; + +struct CharacterPresetPreviewModelInfo { + keen::ObjectReference model; // Offset: 0 + keen::ColorCombination colorCombination; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::BlobArray blendShapes; // Offset: 80 +}; + +typedef keen::ObjectReference CharacterPresetReference; + +enum class BlendShapeFlags { + Female = 0, + Hat = 1, + Hood = 2, + Jaw01 = 3, + Jaw02 = 4, + Jaw03 = 5, + Jaw04 = 6, + Jaw05 = 7, + Jaw06 = 8, + Jaw07 = 9, + Jaw08 = 10, + NoArmor = 11, + Shield = 12, + Tight = 13, + ArmsTight01 = 14, + LegsBeltTight = 15, + LegsFeetTight = 16, + LegsFeetTight01 = 17, +}; + +typedef keen::Bitmask32 BlendShapeMask; + +struct CharacterPresetPreview { + keen::CharacterPresetReference preset; // Offset: 0 + keen::BlobArray models; // Offset: 16 + keen::BlendShapeMask activeBlendShapes; // Offset: 24 +}; + +typedef keen::ObjectReference CharacterPresetObjectReference; + +struct CharacterPresetCollection { + keen::BlobArray presets; // Offset: 0 + keen::BlobArray colorGradients; // Offset: 8 +}; + +typedef keen::HashKey32 ColorCombinationId; + +typedef keen::ObjectReference ColorCombinationReference; + +typedef keen::StaticArray ColorCombinationResource; + +struct ColorCombinationSubDirectory { +}; + +struct ColorCombinationDirectory { +}; + +struct ecs.ComfortQuery { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::Time nextQuery; // Offset: 8 + keen::bool nearWarmth; // Offset: 16 + keen::ecs::EntityId warmthEntityId; // Offset: 20 +}; + +enum class ecs.ComfortCategory { + Hearth = 0, + Bed = 1, + Chair = 2, + Table = 3, + Bench = 4, + Throne = 5, + Bathtub = 6, + Sink = 7, + Toilet = 8, + Shower = 9, + Carpet = 10, + Illumination = 11, + Flame = 12, + Trophy = 13, + Stool = 14, + Kitchen = 15, + Wellness = 16, +}; + +struct ecs.ComfortProvider { + keen::sint32 comfort; // Offset: 0 + keen::ecs::ComfortCategory category; // Offset: 4 + keen::float32 range; // Offset: 8 + keen::uint32 freezingResistance; // Offset: 12 +}; + +struct ecs.NetworkComfort { + keen::ecs::EntityId hearthEntityId; // Offset: 0 + keen::uint16 level; // Offset: 4 +}; + +enum class ecs.ShelterQueryState { + Waiting = 0, + Startup = 1, + WaitForResults = 2, + Finished = 3, +}; + +struct ecs.Shelter { + keen::float32 checkRange; // Offset: 0 + keen::float32 requiredShelterPercentage; // Offset: 4 +}; + +enum class ecs.ShelterRay { + Ray00 = 0, + Ray01 = 1, + Ray02 = 2, + Ray03 = 3, + Ray04 = 4, + Ray05 = 5, + Ray06 = 6, + Ray07 = 7, + Ray08 = 8, + Ray09 = 9, + Ray10 = 10, + Ray11 = 11, + Ray12 = 12, + Ray13 = 13, + Ray14 = 14, + Ray15 = 15, +}; + +typedef keen::Bitmask16 ecs.RayHitMask; + +struct ecs.DynamicShelter { + keen::uint32 nextQueryTick; // Offset: 0 + keen::float32 shelterPercentage; // Offset: 4 + keen::ecs::RayHitMask queryHits; // Offset: 8 + keen::ecs::ShelterQueryState queryState; // Offset: 10 + keen::bool sheltered; // Offset: 11 + keen::bool shelterStateSet; // Offset: 12 +}; + +struct ecs.Resting { + keen::Time waitTime0; // Offset: 0 + keen::Time waitTime1; // Offset: 8 + keen::Time waitTime2; // Offset: 16 + keen::Time waitTime3; // Offset: 24 + keen::Time waitTime4; // Offset: 32 +}; + +struct CraftingWorkshopDirectory { +}; + +struct CraftingWorkshopSubDirectory { +}; + +struct UiWorkshopRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +enum class KnowledgeRequirementType { + World = 0, + Player = 1, + PredefinedKnowledge = 2, + Item = 3, + Dialog = 4, + Query = 5, +}; + +enum class PredefinedKnowledgeTypes { + SkillpointsSpent = 0, + FastTravelWorld = 1, + FastTravelHomeBase = 2, + AnyBaseVisited = 3, + ItemTrashed = 4, + PerkUnlocked = 5, + BuildingHammerUsed = 6, +}; + +enum class ItemKnowledgeTrigger { + Pickup = 0, + Use = 1, + Inspect = 2, +}; + +struct GameKnowledgeRequirementBase { + keen::KnowledgeRequirementType queryType; // Offset: 0 + keen::ObjectReference knowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::PredefinedKnowledgeTypes predefinedKnowledge; // Offset: 36 + keen::ItemKnowledgeTrigger itemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 + keen::ObjectReference dialogOption; // Offset: 56 + keen::ObjectReference query; // Offset: 72 + keen::ObjectReference triggerUiEvent; // Offset: 88 +}; + +struct GameKnowledgeRequirement { +}; + +struct WorkshopDefinition { + keen::LocaTagReference name; // Offset: 0 + keen::ItemReference item; // Offset: 16 + keen::bool isNpc; // Offset: 32 + keen::bool ignoreInJournalUi; // Offset: 33 + keen::GameKnowledgeRequirement unlockRequirement; // Offset: 36 +}; + +typedef keen::ObjectReference WorkshopReference; + +struct CraftingPropDefinition { + keen::LocaTagReference name; // Offset: 0 + keen::ItemReference item; // Offset: 16 +}; + +typedef keen::HashKey32 WorkshopId; + +struct WorkshopResource { + keen::bool isNpc; // Offset: 0 + keen::bool ignoreInJournalUi; // Offset: 1 + keen::Guid workshopGuid; // Offset: 4 + keen::WorkshopId workshopId; // Offset: 20 + keen::LocaTagId name; // Offset: 24 + keen::ItemId item; // Offset: 28 + keen::ItemReference itemRef; // Offset: 32 +}; + +typedef keen::uint64 CraftingPropMask; + +typedef keen::HashKey32 CraftingPropId; + +struct CraftingPropResource { + keen::Guid craftingPropGuid; // Offset: 0 + keen::CraftingPropId craftingPropId; // Offset: 16 + keen::uint8 craftingPropIndex; // Offset: 20 + keen::LocaTagId name; // Offset: 24 + keen::ItemId item; // Offset: 28 + keen::ItemReference itemRef; // Offset: 32 +}; + +struct WorkshopRegistryResource { + keen::BlobArray npcs; // Offset: 0 + keen::BlobArray workshops; // Offset: 8 + keen::BlobArray craftingProps; // Offset: 16 +}; + +typedef keen::HashKey64 CustomStringId; + +struct debug.EnemySpawnEntry { + keen::BlobString displayName; // Offset: 0 + keen::ecs::TemplateReference entity; // Offset: 8 + keen::uint8 sortPriority; // Offset: 24 +}; + +struct debug.EnemyDebugMenuFilterEntry { + keen::BlobString displayName; // Offset: 0 + keen::BlobString filter; // Offset: 8 +}; + +struct debug.EnemyDebugMenu { + keen::BlobArray entries; // Offset: 0 + keen::BlobArray filters; // Offset: 8 + keen::sint32 maxLevel; // Offset: 16 +}; + +typedef keen::HashKey32 DialogOptionId; + +struct NpcDialogDirectory { +}; + +struct NpcDialogDefinition { + keen::actor::ActorSequenceReference defaultSequence; // Offset: 0 + keen::actor::ActorSequenceReference missingRequirementSequence; // Offset: 16 + keen::LocaTagReference headline; // Offset: 32 + keen::LocaTagReference craftingOption; // Offset: 48 + keen::LocaTagReference itemUpgradeOption; // Offset: 64 + keen::LocaTagReference itemRecyclingOption; // Offset: 80 + keen::LocaTagReference sendBackToFlameOption; // Offset: 96 +}; + +struct NpcDialogGroup { +}; + +struct NpcDialogOptionBase { + keen::bool overrideSequence; // Offset: 0 + keen::actor::ActorSequenceReference sequence; // Offset: 4 +}; + +struct NpcDialogInitLine { + keen::bool isWakeup; // Offset: 20 +}; + +struct NpcDialogFarewellLine { +}; + +struct NpcDialogTransitionLine { +}; + +struct NpcDialogOption { + keen::LocaTagReference name; // Offset: 20 +}; + +struct NpcDialogResponseBase { +}; + +struct NpcDialogText { + keen::LocaTagReference body; // Offset: 0 +}; + +struct NpcDialogOptionResourceBase { + keen::DialogOptionId optionId; // Offset: 0 + keen::bool overrideSequence; // Offset: 4 + keen::actor::ActorSequenceReference sequence; // Offset: 8 + keen::KnowledgeId unlockKnowledge; // Offset: 24 + keen::KnowledgeId knowledgeRequirement; // Offset: 28 + keen::BlobArray bodyTexts; // Offset: 32 +}; + +struct NpcDialogInitLineResource { + keen::bool isWakeup; // Offset: 40 +}; + +struct NpcDialogTransitionLineResource { +}; + +struct NpcDialogFarewellResource { +}; + +struct NpcDialogOptionResource { + keen::LocaTagId optionText; // Offset: 40 +}; + +struct NpcDialogResource { + keen::LocaTagId headline; // Offset: 0 + keen::LocaTagId crafting; // Offset: 4 + keen::LocaTagId itemUpgrade; // Offset: 8 + keen::LocaTagId itemRecycling; // Offset: 12 + keen::LocaTagId sendBackToFlame; // Offset: 16 + keen::actor::ActorSequenceReference defaultSequence; // Offset: 20 + keen::actor::ActorSequenceReference missingRequirementSequence; // Offset: 36 + keen::BlobArray initLines; // Offset: 52 + keen::BlobArray transitionLines; // Offset: 60 + keen::BlobArray farewellLines; // Offset: 68 + keen::BlobArray dialogOptions; // Offset: 76 +}; + +enum class EquipmentSlotType { + Invalid = 0, + MeleeWeapon = 1, + Tool = 2, + BuildTool = 3, + MidRangeWeapon = 4, + RangeWeapon = 5, + Arrow = 6, + Spell = 7, + TerrainMaterial = 8, + BlueprintMaterial_Default = 9, + BlueprintMaterial_Roof = 10, + Armour_Head = 11, + Armour_UpperBody = 12, + Armour_Arms = 13, + Armour_LowerBody = 14, + Armour_Feet = 15, + Shield = 16, + BodyPart_Head = 17, + BodyPart_Hair = 18, + BodyPart_EyeBrow = 19, + BodyPart_Beard = 20, + BodyPart_Neck = 21, + BodyPart_Collar = 22, + BodyPart_Chest = 23, + BodyPart_Waist = 24, + BodyPart_Crotch = 25, + BodyPart_UpperArms = 26, + BodyPart_LowerArms = 27, + BodyPart_Hands = 28, + BodyPart_UpperLegs = 29, + BodyPart_LowerLegs = 30, + BodyPart_Feet = 31, + HookShot = 32, + Glider = 33, + ClimbWall = 34, + Consumable = 35, + Armour_Accessory = 36, + Armour_Ring = 37, + Backpack = 38, +}; + +enum class EquipmentSlot { + Vanity_Head = 0, + Vanity_UpperBody = 1, + Vanity_Arms = 2, + Vanity_LowerBody = 3, + Vanity_Feet = 4, + Armour_Head = 5, + Armour_UpperBody = 6, + Armour_Arms = 7, + Armour_LowerBody = 8, + Armour_Feet = 9, + BodyPart_Head = 10, + BodyPart_Hair = 11, + BodyPart_EyeBrow = 12, + BodyPart_Beard = 13, + BodyPart_Neck = 14, + BodyPart_Collar = 15, + BodyPart_Chest = 16, + BodyPart_Waist = 17, + BodyPart_Crotch = 18, + BodyPart_UpperArms = 19, + BodyPart_LowerArms = 20, + BodyPart_Hands = 21, + BodyPart_UpperLegs = 22, + BodyPart_LowerLegs = 23, + BodyPart_Feet = 24, + Ring0 = 25, + Ring1 = 26, + Accessory0 = 27, + Accessory1 = 28, + RangedWeapon = 29, + Shield = 30, + Arrow = 31, + Spell = 32, + TerrainMaterial = 33, + BlueprintMaterial_Default = 34, + BlueprintMaterial_Roof = 35, + HookShot = 36, + Glider = 37, + ClimbWall = 38, + Backpack = 39, + Count = 40, + Invalid = 40, + MainHand = 41, +}; + +enum class VisualEquippedItems { + BodyPart_Head = 0, + BodyPart_Hair = 1, + BodyPart_EyeBrow = 2, + BodyPart_Beard = 3, + BodyPart_Neck = 4, + BodyPart_Collar = 5, + BodyPart_Chest = 6, + BodyPart_Waist = 7, + BodyPart_Crotch = 8, + BodyPart_UpperArms = 9, + BodyPart_LowerArms = 10, + BodyPart_Hands = 11, + BodyPart_UpperLegs = 12, + BodyPart_LowerLegs = 13, + BodyPart_Feet = 14, + Armour_Head = 15, + Armour_UpperBody = 16, + Armour_Arms = 17, + Armour_LowerBody = 18, + Armour_Feet = 19, + Ring0 = 20, + Ring1 = 21, + Shield = 22, + MainHand = 23, + Count = 24, +}; + +typedef keen::Bitmask32 VisualEquipmentMask; + +enum class ImpactEquippedItems { + MainHand = 0, + Shield = 1, + Armour_Head = 2, + Armour_UpperBody = 3, + Armour_Arms = 4, + Armour_LowerBody = 5, + Armour_Feet = 6, + Ring0 = 7, + Ring1 = 8, + Accessory0 = 9, + Accessory1 = 10, + Count = 11, +}; + +typedef keen::Bitmask32 ImpactEquipmentMask; + +typedef keen::HashKey32 PerkId; + +struct ecs.ItemImpact { + keen::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 20 + keen::StaticArray perkEntities; // Offset: 24 + keen::StaticArray perkIds; // Offset: 44 +}; + +struct ecs.ItemVisual { + keen::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 20 +}; + +struct ecs.EquipmentSlotData { + keen::InventorySlotId vanityHead; // Offset: 0 + keen::InventorySlotId vanityUpperBody; // Offset: 8 + keen::InventorySlotId vanityArms; // Offset: 16 + keen::InventorySlotId vanityLowerBody; // Offset: 24 + keen::InventorySlotId vanityFeet; // Offset: 32 + keen::InventorySlotId armourHead; // Offset: 40 + keen::InventorySlotId armourUpperBody; // Offset: 48 + keen::InventorySlotId armourArms; // Offset: 56 + keen::InventorySlotId armourLowerBody; // Offset: 64 + keen::InventorySlotId armourFeet; // Offset: 72 + keen::InventorySlotId bodyPartHead; // Offset: 80 + keen::InventorySlotId bodyPartHair; // Offset: 88 + keen::InventorySlotId bodyPartEyeBrow; // Offset: 96 + keen::InventorySlotId bodyPartBeard; // Offset: 104 + keen::InventorySlotId bodyPartNeck; // Offset: 112 + keen::InventorySlotId bodyPartCollar; // Offset: 120 + keen::InventorySlotId bodyPartChest; // Offset: 128 + keen::InventorySlotId bodyPartWaist; // Offset: 136 + keen::InventorySlotId bodyPartCrotch; // Offset: 144 + keen::InventorySlotId bodyPartUpperArms; // Offset: 152 + keen::InventorySlotId bodyPartLowerArms; // Offset: 160 + keen::InventorySlotId bodyPartHands; // Offset: 168 + keen::InventorySlotId bodyPartUpperLegs; // Offset: 176 + keen::InventorySlotId bodyPartLowerLegs; // Offset: 184 + keen::InventorySlotId bodyPartFeet; // Offset: 192 + keen::InventorySlotId ring0; // Offset: 200 + keen::InventorySlotId ring1; // Offset: 208 + keen::InventorySlotId accessory0; // Offset: 216 + keen::InventorySlotId accessory1; // Offset: 224 + keen::InventorySlotId rangedWeapon; // Offset: 232 + keen::InventorySlotId shield; // Offset: 240 + keen::InventorySlotId arrow; // Offset: 248 + keen::InventorySlotId spell; // Offset: 256 + keen::InventorySlotId terrainMaterial; // Offset: 264 + keen::InventorySlotId blueprintMaterialDefault; // Offset: 272 + keen::InventorySlotId blueprintMaterialRoof; // Offset: 280 + keen::InventorySlotId hookShot; // Offset: 288 + keen::InventorySlotId glider; // Offset: 296 + keen::InventorySlotId climbWall; // Offset: 304 + keen::InventorySlotId backpack; // Offset: 312 +}; + +enum class ecs.CspItemIsBroken { + ActionbarSlot0 = 0, + ActionbarSlot1 = 1, + ActionbarSlot2 = 2, + ActionbarSlot3 = 3, + ActionbarSlot4 = 4, + ActionbarSlot5 = 5, + ActionbarSlot6 = 6, + ActionbarSlot7 = 7, + ActionbarSlot8 = 8, + ActionbarSlot9 = 9, + ActionbarSlot10 = 10, + ActionbarSlot11 = 11, + ActionbarSlot12 = 12, + ActionbarSlot13 = 13, + ActionbarSlot14 = 14, + ActionbarSlot15 = 15, + ShieldItem = 16, + RangedWeapon = 17, +}; + +typedef keen::Bitmask32 ecs.CspItemIsBrokenMask; + +struct ActionbarSlotSelection { + keen::InventorySlotIndex index; // Offset: 0 +}; + +struct ecs.SlotSelection { + keen::ecs::EquipmentSlotData equipment; // Offset: 0 + keen::StaticArray actionbarEntityIds; // Offset: 320 + keen::ItemInstanceInfo actionItem; // Offset: 328 + keen::ImpactEquipmentMask disabledEquipment; // Offset: 348 + keen::ActionbarSlotSelection actionbarSlotSelection; // Offset: 352 + keen::ecs::CspItemIsBrokenMask cspItemIsBrokenHelper; // Offset: 356 +}; + +struct ecs.FinishedActionbarInit { +}; + +struct ecs.PackedEquipmentSlotEntityIds { + keen::ecs::EntityId vanityHead; // Offset: 0 + keen::ecs::EntityId vanityUpperBody; // Offset: 4 + keen::ecs::EntityId vanityArms; // Offset: 8 + keen::ecs::EntityId vanityLowerBody; // Offset: 12 + keen::ecs::EntityId vanityFeet; // Offset: 16 + keen::ecs::EntityId armourHead; // Offset: 20 + keen::ecs::EntityId armourUpperBody; // Offset: 24 + keen::ecs::EntityId armourArms; // Offset: 28 + keen::ecs::EntityId armourLowerBody; // Offset: 32 + keen::ecs::EntityId armourFeet; // Offset: 36 + keen::ecs::EntityId bodyPartHead; // Offset: 40 + keen::ecs::EntityId bodyPartHair; // Offset: 44 + keen::ecs::EntityId bodyPartEyeBrow; // Offset: 48 + keen::ecs::EntityId bodyPartBeard; // Offset: 52 + keen::ecs::EntityId bodyPartNeck; // Offset: 56 + keen::ecs::EntityId bodyPartCollar; // Offset: 60 + keen::ecs::EntityId bodyPartChest; // Offset: 64 + keen::ecs::EntityId bodyPartWaist; // Offset: 68 + keen::ecs::EntityId bodyPartCrotch; // Offset: 72 + keen::ecs::EntityId bodyPartUpperArms; // Offset: 76 + keen::ecs::EntityId bodyPartLowerArms; // Offset: 80 + keen::ecs::EntityId bodyPartHands; // Offset: 84 + keen::ecs::EntityId bodyPartUpperLegs; // Offset: 88 + keen::ecs::EntityId bodyPartLowerLegs; // Offset: 92 + keen::ecs::EntityId bodyPartFeet; // Offset: 96 + keen::ecs::EntityId ring0; // Offset: 100 + keen::ecs::EntityId ring1; // Offset: 104 + keen::ecs::EntityId accessory0; // Offset: 108 + keen::ecs::EntityId accessory1; // Offset: 112 + keen::ecs::EntityId rangedWeapon; // Offset: 116 + keen::ecs::EntityId shield; // Offset: 120 + keen::ecs::EntityId arrow; // Offset: 124 + keen::ecs::EntityId spell; // Offset: 128 + keen::ecs::EntityId terrainMaterial; // Offset: 132 + keen::ecs::EntityId blueprintMaterialDefault; // Offset: 136 + keen::ecs::EntityId blueprintMaterialRoof; // Offset: 140 + keen::ecs::EntityId hookShot; // Offset: 144 + keen::ecs::EntityId glider; // Offset: 148 + keen::ecs::EntityId climbWall; // Offset: 152 + keen::ecs::EntityId backpack; // Offset: 156 +}; + +struct ecs.PackedEquipmentSlotIndices { + keen::InventorySlotIndex vanityHead; // Offset: 0 + keen::InventorySlotIndex vanityUpperBody; // Offset: 1 + keen::InventorySlotIndex vanityArms; // Offset: 2 + keen::InventorySlotIndex vanityLowerBody; // Offset: 3 + keen::InventorySlotIndex vanityFeet; // Offset: 4 + keen::InventorySlotIndex armourHead; // Offset: 5 + keen::InventorySlotIndex armourUpperBody; // Offset: 6 + keen::InventorySlotIndex armourArms; // Offset: 7 + keen::InventorySlotIndex armourLowerBody; // Offset: 8 + keen::InventorySlotIndex armourFeet; // Offset: 9 + keen::InventorySlotIndex bodyPartHead; // Offset: 10 + keen::InventorySlotIndex bodyPartHair; // Offset: 11 + keen::InventorySlotIndex bodyPartEyeBrow; // Offset: 12 + keen::InventorySlotIndex bodyPartBeard; // Offset: 13 + keen::InventorySlotIndex bodyPartNeck; // Offset: 14 + keen::InventorySlotIndex bodyPartCollar; // Offset: 15 + keen::InventorySlotIndex bodyPartChest; // Offset: 16 + keen::InventorySlotIndex bodyPartWaist; // Offset: 17 + keen::InventorySlotIndex bodyPartCrotch; // Offset: 18 + keen::InventorySlotIndex bodyPartUpperArms; // Offset: 19 + keen::InventorySlotIndex bodyPartLowerArms; // Offset: 20 + keen::InventorySlotIndex bodyPartHands; // Offset: 21 + keen::InventorySlotIndex bodyPartUpperLegs; // Offset: 22 + keen::InventorySlotIndex bodyPartLowerLegs; // Offset: 23 + keen::InventorySlotIndex bodyPartFeet; // Offset: 24 + keen::InventorySlotIndex ring0; // Offset: 25 + keen::InventorySlotIndex ring1; // Offset: 26 + keen::InventorySlotIndex accessory0; // Offset: 27 + keen::InventorySlotIndex accessory1; // Offset: 28 + keen::InventorySlotIndex rangedWeapon; // Offset: 29 + keen::InventorySlotIndex shield; // Offset: 30 + keen::InventorySlotIndex arrow; // Offset: 31 + keen::InventorySlotIndex spell; // Offset: 32 + keen::InventorySlotIndex terrainMaterial; // Offset: 33 + keen::InventorySlotIndex blueprintMaterialDefault; // Offset: 34 + keen::InventorySlotIndex blueprintMaterialRoof; // Offset: 35 + keen::InventorySlotIndex hookShot; // Offset: 36 + keen::InventorySlotIndex glider; // Offset: 37 + keen::InventorySlotIndex climbWall; // Offset: 38 + keen::InventorySlotIndex backpack; // Offset: 39 +}; + +struct ecs.PackedSlotSelection { + keen::ecs::PackedEquipmentSlotEntityIds equipmentEntityIds; // Offset: 0 + keen::ecs::PackedEquipmentSlotIndices equipmentIndices; // Offset: 160 + keen::StaticArray actionbarEntityIds; // Offset: 200 + keen::ItemInstanceInfo actionItem; // Offset: 208 + keen::ImpactEquipmentMask disabledEquipment; // Offset: 228 + keen::ActionbarSlotSelection actionbarSlotSelection; // Offset: 232 + keen::uint32 cspItemIsBrokenHelper; // Offset: 236 +}; + +struct ecs.CspHackInventoryStockSelection { + keen::StaticArray versions; // Offset: 0 +}; + +struct ecs.Equipment { + keen::VisualEquipmentMask visualMask; // Offset: 0 + keen::ImpactEquipmentMask impactMask; // Offset: 4 + keen::StaticArray equipmentImpacts; // Offset: 8 + keen::StaticArray equipmentVisuals; // Offset: 712 + keen::CollisionFeedbackMaterialReference blockMaterial; // Offset: 1288 + keen::CollisionFeedbackMaterialReference bodyMaterial; // Offset: 1304 +}; + +struct ecs.RenderEquipment { + keen::StaticArray modelHandles; // Offset: 0 + keen::StaticArray,24> lastModels; // Offset: 96 + keen::StaticArray colors; // Offset: 480 + keen::VisualEquipmentMask hideMask; // Offset: 768 + keen::MaterialFeedbackId foleyMaterialId; // Offset: 772 + keen::BlendShapeMask blendShapeMask; // Offset: 776 +}; + +enum class PrimaryAnimationSet { + None = 0, + SingleAndShield = 1, + SingleNoShield = 2, + DualWield = 3, + TwoHanded = 4, + Bow = 5, + Staff = 6, + Wand = 7, +}; + +enum class SecondaryAnimationSet { + None = 0, + Bow = 1, + StaffCast = 2, + WandCast = 3, +}; + +struct ecs.EquipmentAnimationSets { + keen::PrimaryAnimationSet primaryAnimationSet; // Offset: 0 + keen::SecondaryAnimationSet secondaryAnimationSet; // Offset: 1 +}; + +struct Game38RootObjects { + keen::ObjectReference renderSettingsGpuPresets; // Offset: 0 + keen::ObjectReference scene; // Offset: 16 + keen::ObjectReference itemDirectory; // Offset: 32 + keen::ObjectReference gameKnowledgeDirectory; // Offset: 48 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 64 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 80 + keen::ObjectReference lootLabelCollection; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference buffTypeCollection; // Offset: 160 + keen::ObjectReference midiSongCollection; // Offset: 176 + keen::ObjectReference impactRegistry; // Offset: 192 + keen::ObjectReference attributeContainer; // Offset: 208 + keen::ObjectReference actorSequenceCollection; // Offset: 224 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 240 + keen::ObjectReference voxelBlueprintConfig; // Offset: 256 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 272 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 288 + keen::ObjectReference enemyArsenalRegistry; // Offset: 304 + keen::ObjectReference perkCollection; // Offset: 320 + keen::ObjectReference ingameTimeConfig; // Offset: 336 + keen::ObjectReference skillTree; // Offset: 352 + keen::ObjectReference templateCollection; // Offset: 368 + keen::ObjectReference fbUiBundle; // Offset: 384 + keen::ObjectReference journalRegistry; // Offset: 400 + keen::ObjectReference mapMarkerRegistry; // Offset: 416 + keen::ObjectReference materialFeedbackCollection; // Offset: 432 + keen::ObjectReference locaTagCollection; // Offset: 448 + keen::ObjectReference voicePacks; // Offset: 464 + keen::ObjectReference ambientCollection; // Offset: 480 + keen::ObjectReference fbUiMapResource; // Offset: 496 + keen::ObjectReference uiFontDefault; // Offset: 512 + keen::ObjectReference uiFontFancy; // Offset: 528 + keen::ObjectReference grassVfx; // Offset: 544 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 560 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 576 + keen::ObjectReference maleClothCollider; // Offset: 592 + keen::ObjectReference femaleClothCollider; // Offset: 608 + keen::ObjectReference staminaDrainNotifier; // Offset: 624 + keen::ObjectReference exhaustedNotifier; // Offset: 640 + keen::ObjectReference pickupLootNotifier; // Offset: 656 + keen::ObjectReference itemBrokenNotifier; // Offset: 672 + keen::ObjectReference renderSystem; // Offset: 688 + keen::ObjectReference gpcResourceList; // Offset: 704 + keen::ObjectReference analyticFog; // Offset: 720 + keen::ObjectReference buildingMaterialBlending; // Offset: 736 + keen::ObjectReference worldMaterial2; // Offset: 752 + keen::ObjectReference volumetricFog2; // Offset: 768 + keen::ObjectReference volumetricFogGridParameters; // Offset: 784 + keen::ObjectReference pregameMusic; // Offset: 800 + keen::ObjectReference loreIntroMusic; // Offset: 816 + keen::ObjectReference spellChargeFullSfx; // Offset: 832 + keen::ObjectReference enemyDebugMenu; // Offset: 848 + keen::ObjectReference characterPresetCollection; // Offset: 864 + keen::ObjectReference twitchDropCollection; // Offset: 880 + keen::ObjectReference characterScenePlayer; // Offset: 896 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 912 + keen::ObjectReference characterScenePlayerPregame; // Offset: 928 + keen::ObjectReference characterSceneNpc; // Offset: 944 + keen::ObjectReference commerceProducts; // Offset: 960 + keen::ObjectReference achievements; // Offset: 976 + keen::ObjectReference preloadVfxList; // Offset: 992 + keen::ObjectReference colorPaletteCollection; // Offset: 1008 + keen::ObjectReference weatherSystemResource; // Offset: 1024 +}; + +struct Game38SharedResources { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference gameKnowledge; // Offset: 16 + keen::ObjectReference gameKnowledgeResource; // Offset: 32 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 48 + keen::ObjectReference itemRegistry; // Offset: 64 + keen::ObjectReference journalRegistry; // Offset: 80 + keen::ObjectReference devItemRegistry; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference npcCollection; // Offset: 160 + keen::ObjectReference lootLabelCollection; // Offset: 176 + keen::ObjectReference lootableItems; // Offset: 192 + keen::ObjectReference lootDistribution; // Offset: 208 + keen::ObjectReference buffTypeCollection; // Offset: 224 + keen::ObjectReference midiSongCollection; // Offset: 240 + keen::ObjectReference impactRegistry; // Offset: 256 + keen::ObjectReference attributeContainer; // Offset: 272 + keen::ObjectReference actorSequenceCollection; // Offset: 288 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 304 + keen::ObjectReference voxelBlueprintConfig; // Offset: 320 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 336 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 352 + keen::ObjectReference enemyArsenalRegistry; // Offset: 368 + keen::ObjectReference perkCollection; // Offset: 384 + keen::ObjectReference ingameTimeConfig; // Offset: 400 + keen::ObjectReference skillTree; // Offset: 416 + keen::ObjectReference templateCollection; // Offset: 432 + keen::ObjectReference twitchDropCollection; // Offset: 448 + keen::ObjectReference staminaDrainNotifier; // Offset: 464 + keen::ObjectReference exhaustedNotifier; // Offset: 480 + keen::ObjectReference pickupLootNotifier; // Offset: 496 + keen::ObjectReference itemBrokenNotifier; // Offset: 512 + keen::ObjectReference characterPresetCollection; // Offset: 528 + keen::ObjectReference animationGraphDebugInfo; // Offset: 544 + keen::ObjectReference commerceProducts; // Offset: 560 + keen::ObjectReference colorPaletteCollection; // Offset: 576 + keen::ObjectReference gameSettingPresets; // Offset: 592 + keen::ObjectReference weatherSystemResource; // Offset: 608 +}; + +struct Game38ClientResources { + keen::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference renderSettingsGpuPresets; // Offset: 624 + keen::ObjectReference fbUiBundle; // Offset: 640 + keen::ObjectReference mapMarkerRegistry; // Offset: 656 + keen::ObjectReference itemKnowledge; // Offset: 672 + keen::ObjectReference voicePacks; // Offset: 688 + keen::ObjectReference materialFeedbackCollection; // Offset: 704 + keen::ObjectReference locaTagCollection; // Offset: 720 + keen::ObjectReference colorGradingFogRegular; // Offset: 736 + keen::ObjectReference colorGradingFogDangerous; // Offset: 752 + keen::ObjectReference colorGradingLowHealth; // Offset: 768 + keen::ObjectReference maleClothCollider; // Offset: 784 + keen::ObjectReference femaleClothCollider; // Offset: 800 + keen::ObjectReference fbUiMapResource; // Offset: 816 + keen::ObjectReference uiFontDefault; // Offset: 832 + keen::ObjectReference uiFontFancy; // Offset: 848 + keen::ObjectReference grassVfx; // Offset: 864 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 880 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 896 + keen::ObjectReference pregameMusic; // Offset: 912 + keen::ObjectReference loreIntroMusic; // Offset: 928 + keen::ObjectReference spellChargeFullSfx; // Offset: 944 + keen::ObjectReference ambientCollection; // Offset: 960 + keen::ObjectReference enemyDebugMenu; // Offset: 976 + keen::ObjectReference characterScenePlayer; // Offset: 992 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 1008 + keen::ObjectReference characterScenePlayerPregame; // Offset: 1024 + keen::ObjectReference characterSceneNpc; // Offset: 1040 + keen::ObjectReference achievements; // Offset: 1056 + keen::ObjectReference preloadVfxList; // Offset: 1072 +}; + +struct Game38ServerResources { + keen::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 624 +}; + +typedef keen::ObjectReference MidiReference; + +enum class MidiInstrumentType { + None = 0, + Lute = 1, + Flute = 2, + Harp = 3, + DounDoun = 4, +}; + +struct MidiSong { + keen::NameLocaTag name; // Offset: 0 + keen::MidiReference midiSong; // Offset: 16 + keen::MidiInstrumentType defaultForInstrument; // Offset: 32 +}; + +struct MidiSongSubDirectory { +}; + +struct MidiSongDirectory { +}; + +struct MidiSongResource { + keen::LocaTagReference name; // Offset: 0 + keen::MidiReference midiSong; // Offset: 16 + keen::KnowledgeId unlockKnowledge; // Offset: 32 + keen::MidiInstrumentType defaultForInstrument; // Offset: 36 +}; + +struct InstrumentSampleCollectionResource { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct MidiSongCollection { + keen::BlobArray> songCollection; // Offset: 0 + keen::InstrumentSampleCollectionResource sampleCollection; // Offset: 8 +}; + +enum class ecs.G38TestSuite { + Fail = 0, + CookingTests = 1, + FallDamage = 2, + Sliding = 3, + ClimbLadder = 4, + ClimbWall = 5, + HookShotSwing = 6, + HookShotPull = 7, + Glider = 8, + InventoryTest = 9, + EnemyTests = 10, + DungeonTriggerTests = 11, + KnowledgeTests = 12, +}; + +enum class ecs.FailTest { + Init = 0, + Setup = 1, + Exit = 2, +}; + +enum class ecs.InventoryTest { + InvalidInventory = 0, + TransferHalfToFullStack = 1, + TransferFullToHalfStack = 2, + TransferHalfToHalfStack = 3, + TransferOneFromFullToHalfStack = 4, + TransferStack = 5, + EquipmentSlotTransferAmmunition = 6, + FillStack = 7, + ExpandInventory = 8, + AbortExpand = 9, + ExpandInventoryAgain = 10, + ShrinkInventory = 11, + ExpandAndTransferItems = 12, + ShrinkAndTransferItems = 13, + ShrinkNotEnoughFreeSpace = 14, +}; + +enum class ecs.DungeonTriggerTest { + PressurePlate = 0, + BasicButton = 1, + AndConnection = 2, + OrConnection = 3, +}; + +enum class ecs.KnowledgeTest { + Queries = 0, +}; + +enum class ecs.CookingTest { + CreateCookingTestComponent = 0, + CreateCookingItems = 1, + PlaceCampfire = 2, + SitAtCampfire = 3, + CookFood = 4, + CleanupCookingTest = 5, +}; + +enum class ecs.FallDamageTestId { + NoFallDamage = 0, + MediumFallDamage = 1, + LethalFallDamageAbortsTeleport = 2, + TeleportWithoutLethalFallDamage = 3, + LethalFallDamage = 4, + LethalSwipeAgainstSlopes = 5, + NoFallDamageSwipeAgainstSlidingMaterialSlopes = 6, +}; + +enum class ecs.SlidingTestId { + WalkUpShallowSlope = 0, + WalkDownShallowSlope = 1, + DontWalkUpSteepSlope = 2, + SlideDownSteepSlope = 3, + DontWalkUpShallowSlidingMaterialSlope = 4, + SlideDownShallowSlidingMaterialSlope = 5, +}; + +enum class ecs.ClimbLadderTestId { + ClimbUpFlawless = 0, + ClimbDownFlawless = 1, + ClimbUpTiltedLadder = 2, + ClimbDownTiltedLadder = 3, + ClimbUpSubsequentStaggeredLadders = 4, + ClimbDownSubsequentStaggeredLadders = 5, + ClimbUpSubsequentAlignedLadders = 6, + ClimbDownSubsequentAlignedLadders = 7, + ClimbNonStop = 8, + ClimbUpExitBlocked = 9, + ClimbUpStepBlocked = 10, + ClimbDownStepBlocked = 11, + LadderInsideFloorCollisionA = 12, + LadderInsideFloorCollisionB = 13, + LadderInsideFloorCollisionC = 14, + WalkAgainstLadderBack = 15, + InterruptByJump = 16, + InterruptByHitEvent = 17, +}; + +enum class ecs.ClimbWallTestId { + ClimbUpFlawless = 0, + ClimbDownFlawless = 1, + ClimbUpSubsequentAlignedWalls = 2, + ClimbDownSubsequentAlignedWalls = 3, + InterruptByJump = 4, + InterruptByHitEvent = 5, +}; + +enum class ecs.HookShotSwingTestId { + SwingGeneral = 0, + SwingEnterManualJump = 1, + SwingEnterAutoJump = 2, + SwingExitAutoRelease = 3, + DoubleSwingChain = 4, + InterruptByHitEvent = 5, +}; + +enum class ecs.HookShotPullTestId { + PullGeneral = 0, + PullEnterManualJump = 1, + PullEnterNoJump = 2, + PullUp = 3, + PullFlat = 4, + PullDown = 5, + InterruptByHitEvent = 6, +}; + +enum class ecs.GliderTestId { + GliderGeneral = 0, + GliderEnterManualJump = 1, + GliderEnterNoJump = 2, + GliderExitFloorCollision = 3, + GliderAccelerate = 4, + GliderDecelerate = 5, + GliderTurn = 6, + InterruptByHitEvent = 7, +}; + +struct ecs.CookingTestComponent { + keen::ecs::EntityId campfireEntityId; // Offset: 0 + keen::Time cookTime; // Offset: 8 + keen::Time postCookWaitTime; // Offset: 16 + keen::Time sitWaitTime; // Offset: 24 + keen::Time standWaitTime; // Offset: 32 + keen::uint8 campfireEntityDeletionTryCount; // Offset: 40 + keen::uint8 cookingTestComponentDeletionTryCount; // Offset: 41 + keen::bool sitToggled; // Offset: 42 + keen::bool standToggled; // Offset: 43 + keen::bool cookingToggled; // Offset: 44 +}; + +struct ecs.TestValueMemory { + keen::float3 vectorValue; // Offset: 0 + keen::float32 floatValue; // Offset: 12 +}; + +struct ecs.FakePlayerSpawner { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +enum class VoxelMaterialType { + Terrain = 0, + Building = 1, +}; + +struct BaseVoxelMaterial { +}; + +struct BiomeVoxelMaterial { + keen::ObjectReference grassland; // Offset: 0 + keen::ObjectReference desert; // Offset: 16 + keen::ObjectReference wetland; // Offset: 32 + keen::ObjectReference steppes; // Offset: 48 + keen::ObjectReference deepforest; // Offset: 64 + keen::ObjectReference coldheights; // Offset: 80 +}; + +enum class HardnessCategory { + Soft = 0, + SlightlyHard = 1, + ModeratelyHard = 2, + Hard = 3, + VeryHard = 4, + Unbreakable = 5, +}; + +struct VoxelWorldDisplacement { + keen::ImageReference map; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::float32 origin; // Offset: 20 + keen::float32 uvScale; // Offset: 24 +}; + +enum class VfxMaterialType { + None = 0, + Mud = 1, + Tar = 2, + Lava = 3, + Ice = 4, + Snow = 5, +}; + +struct SolidVoxelMaterial { + keen::VoxelMaterialType type; // Offset: 0 + keen::ItemReference materialItem; // Offset: 4 + keen::HardnessCategory hardness; // Offset: 20 + keen::sint32 healthPoints; // Offset: 24 + keen::ObjectReference blockCraftingRecipe; // Offset: 28 + keen::uint32 voxelsPerLootItemExchangeRate; // Offset: 44 + keen::ObjectReference experienceGain; // Offset: 48 + keen::bool canBeFlattened; // Offset: 64 + keen::bool isSlidingMaterial; // Offset: 65 + keen::VoxelWorldDisplacement sideDisplacement; // Offset: 68 + keen::VoxelWorldDisplacement topDisplacement; // Offset: 96 + keen::ObjectReference stoneMaterial; // Offset: 124 + keen::bool canReceiveFloorMaterial; // Offset: 140 + keen::ObjectReference pbrBuildingMaterial; // Offset: 144 + keen::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 160 + keen::AmbientEnvironment ambientEnvironment; // Offset: 176 + keen::BuffTypeReference buffType; // Offset: 180 + keen::ObjectReference previewVoxelObject; // Offset: 196 + keen::bool isDangerous; // Offset: 212 + keen::float frictionFactor; // Offset: 216 + keen::float maxSubmergeDepth; // Offset: 220 + keen::float minSubmergePercentage; // Offset: 224 + keen::float maxSubmergePercentage; // Offset: 228 + keen::VfxMaterialType vfxMaterialType; // Offset: 232 + keen::ecs::EntityTagReference entityTag; // Offset: 236 + keen::ecs::PathNodeType pathNodeType; // Offset: 252 +}; + +struct BaseFogVoxelMaterial { + keen::VoxelWorldDisplacement sideDisplacement; // Offset: 0 + keen::VoxelWorldDisplacement topDisplacement; // Offset: 28 +}; + +struct FogVoxelMaterial { + keen::uint8 level; // Offset: 56 +}; + +struct DecorativeFogVoxelMaterial { +}; + +struct WaterVoxelMaterial { +}; + +enum class TemperatureVoxelType { + Normal = 0, + Freezing = 1, +}; + +struct TemperatureVoxelMaterial { + keen::TemperatureVoxelType temperature; // Offset: 0 +}; + +struct VoxelMaterialTerraformingInfo { + keen::SolidVoxelMaterial solidVoxelMaterial; // Offset: 0 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 256 +}; + +struct VoxelMaterialScatteringNoise { + keen::float32 scale; // Offset: 0 + keen::float32 persistence; // Offset: 4 + keen::float32 outMin; // Offset: 8 + keen::float32 outMax; // Offset: 12 +}; + +struct VoxelMaterialScattering { + keen::ObjectReference densityMap; // Offset: 0 + keen::float32 density; // Offset: 16 + keen::VoxelMaterialScatteringNoise densityNoise; // Offset: 20 + keen::VoxelMaterialScatteringNoise depthNoise; // Offset: 36 + keen::float32 maxWidth; // Offset: 52 + keen::VoxelMaterialScatteringNoise detailNoise; // Offset: 56 + keen::VoxelMaterialScatteringNoise dirtDetailNoise; // Offset: 72 +}; + +enum class VoxelMaterialScatteringShape { + None = 0, + NoiseBlob = 1, + Shaft = 2, + EmissiveSphere = 3, + Geodes = 4, +}; + +struct VoxelMaterialScatterTargetMaterial { + keen::ObjectReference material; // Offset: 0 + keen::bool enableScattering; // Offset: 16 + keen::VoxelMaterialScatteringShape shape; // Offset: 17 + keen::float32 modulationInputScale; // Offset: 20 + keen::float32 shapeNoiseScale; // Offset: 24 + keen::float32 structureScale; // Offset: 28 + keen::float32 structureFadeSize; // Offset: 32 + keen::float32 outerRadius; // Offset: 36 + keen::float32 geodesScattterRadius; // Offset: 40 + keen::uint32 geodesCount; // Offset: 44 + keen::float2 geodesRadiusRange; // Offset: 48 + keen::float32 geodesShellWidth; // Offset: 56 +}; + +struct VoxelMaterialScatterTargetMaterialList { + keen::BlobArray materials; // Offset: 0 +}; + +struct VoxelMaterialScatteringList { + keen::BlobArray materialGuids; // Offset: 0 + keen::BlobArray settings; // Offset: 8 + keen::BlobArray targetMaterials; // Offset: 16 +}; + +struct ecs.Health { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Stamina { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDepletionMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Mana { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Revive { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Durability { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Movement { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedCombat { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FogResistance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Level { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Experience { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Threat { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ThreatBonus { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ToolDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModBackstab { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSkillShot { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSneak { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModMerciless { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModAgainst { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealingMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageSusceptibility { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritChance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Strength { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Intelligence { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Dexterity { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Endurance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Constitution { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Spirit { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Armor { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ArmorPoints { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Block { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ParryProficiency { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Comfort { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Rested { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MeleeDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MagicDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.AllyAggroMultiplier { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaRechargeMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealthRechargeMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ManaRechargeMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.WeaponCategoryDamageMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeatMaxMod { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeat { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FreezingResistance { + keen::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +typedef keen::HashKey32 ItemCollectionId; + +typedef keen::HashKey32 SignalId; + +typedef keen::HashKey32 LootContainerId; + +typedef keen::HashKey32 JournalEntryId; + +struct Signal { +}; + +typedef keen::LocaTagReference CaptionLocaTag; + +typedef keen::LocaTagReference LoreLocaTag; + +enum class ItemKnowledgeFlag { + Name = 0, + Description = 1, + Lore = 2, + Recipes = 3, + Inspected = 4, +}; + +typedef keen::Bitmask8 ItemKnowledgeMask; + +struct RecipeItemStackResource { + keen::ItemReference itemRef; // Offset: 0 + keen::ItemId item; // Offset: 16 + keen::uint32 count; // Offset: 20 +}; + +enum class InventoryActionType { + One = 0, + Half = 1, + All = 2, + CustomAmount = 3, + Destroy = 4, +}; + +struct VersionedData { + keen::uint16 changeCount; // Offset: 0 +}; + +enum class UiState { + None = 0, + Preload = 1, + PreGame = 2, + Load = 3, + LoreIntro = 4, + Play = 5, +}; + +enum class WheelMenuType { + None = 0, + WeaponWheel = 1, + ToolWheel = 2, +}; + +enum class InputMode { + KeyboardMouse = 0, + Gamepad = 1, +}; + +enum class AttackDirectionInput { + UseCamera = 0, + UseMovement = 1, +}; + +enum class ControllerButtonStyle { + Xbox = 0, + Playstation = 1, + NintendoSwitch = 2, +}; + +enum class UiInputId { + Confirm = 0, + ConfirmExcludingKeyboard = 1, + Back = 2, + Close = 3, + CloseKeyboardEscapeOnly = 4, + SecondaryAction = 5, + TertiaryAction = 6, + ScreenButtonTrigger = 7, + NavigationDirections = 8, + Left = 9, + Right = 10, + Up = 11, + Down = 12, + LeftHold = 13, + RightHold = 14, + UpHold = 15, + DownHold = 16, + NextTab = 17, + PreviousTab = 18, + NextSubTab = 19, + PreviousSubTab = 20, + PageContentScrollBackward = 21, + PageContentScrollForward = 22, + PreviousServerPage = 23, + NextServerPage = 24, + ZoomIn = 25, + ZoomOut = 26, + MapWaypointQuickAction = 27, + MapSnapToWaypoint = 28, + MapSnapToPlayerPos = 29, + MapSnapToHomeBase = 30, + MapWorldSidebar = 31, + MapFilterSidebar = 32, + MapFilterFocusType = 33, + ClearMapFilter = 34, + MapPlayersSidebar = 35, + MapActionsMenu = 36, + FastTravel = 37, + GoToJournalEntry = 38, + ShowOnMap = 39, + GoToReferencedJournalPage = 40, + ToggleWaypoint = 41, + CreateCustomMarker = 42, + RemoveCustomMarker = 43, + Ping = 44, + ItemUseFromBackpack = 45, + ItemDeleteInBackpack = 46, + ItemActionsMenu = 47, + ItemViewerVisibilityToggle = 48, + SplitStack = 49, + CharacterDelete = 50, + SalvageItem = 51, + LootTakeAll = 52, + GrabItemEntireStack = 53, + GrabItemPartialStackBegin = 54, + GrabItemPartialStackEnd = 55, + DropItemStackIntoSlot = 56, + ItemQuickMoveOtherInventory = 57, + ItemQuickMoveActionbarBackpack = 58, + ItemQuickMoveContextSensitive = 59, + RefillStacks = 60, + SplitStackAdjustMin = 61, + SplitStackAdjustDecrement = 62, + SplitStackAdjustHalf = 63, + SplitStackAdjustIncrement = 64, + SplitStackAdjustMax = 65, + BeginStorageStacksActions = 66, + EndStorageStacksActions = 67, + BeginStorageAllActions = 68, + EndStorageAllActions = 69, + StorageDepositStacks = 70, + StorageDepositAll = 71, + StorageRefillStacks = 72, + StorageTakeAll = 73, + SortInventory = 74, + SortStorage = 75, + EquipAtTargetSlot = 76, + UnequipAtTargetSlot = 77, + EquipFromBackpack = 78, + EquipVanityFromBackpack = 79, + UnequipFromBackpack = 80, + Craft = 81, + CraftFail = 82, + CraftMultiple = 83, + CraftMultipleFail = 84, + Pin = 85, + Unpin = 86, + ToggleContentViewerPage = 87, + Gift = 88, + ShowTutorial = 89, + CharacterRename = 90, + HidePassword = 91, + TogglePersonalProgressionMode = 92, + IncreaseSettingsValue = 93, + DecreaseSettingsValue = 94, + IncreaseSettingsValueGamepadAlternative = 95, + DecreaseSettingsValueGamepadAlternative = 96, + ResetSettings = 97, + KickPlayer = 98, + ConfigureHostSettings = 99, + RenameAltar = 100, + Count = 101, +}; + +enum class CharacterState { + NewlyCreated = 0, + MarkedForDelete = 1, + DontUploadToCloud = 2, +}; + +typedef keen::Bitmask8 CharacterStateMask; + +typedef keen::Guid CharacterId; + +typedef keen::uint8 SaveGameSlotIndex; + +typedef keen::Guid PlayerId; + +typedef keen::Guid BaseId; + +struct EnemyPhase { +}; + +struct JumpToObject { + keen::Guid objectId; // Offset: 0 +}; + +enum class ecs.SpecialInteraction { + Invalid = 0, + Enemy_Execution = 1, + Sneak_Attack = 2, + StartGuarding = 3, + StopGuarding = 4, +}; + +enum class PlayerLoginState { + Invalid = 0, + SendLoginResponseData = 1, + WaitingForMachineReady = 2, + LoginOk = 3, + LogoutPending = 4, + Logout = 5, + Failed = 6, +}; + +enum class GameClientInitState { + NotInitialized = 0, + Init = 1, + Login = 2, + LoadScene = 3, + LoadVoxelWorld = 4, + SyncCharacterSaveGame = 5, + TitleScreen = 6, + Ready = 7, +}; + +enum class PlayerPermissions { + CanKickBan = 0, + CanAccessInventories = 1, + CanEditBase = 2, + CanExtendBase = 3, +}; + +typedef keen::Bitmask8 PlayerPermissionsMask; + +enum class VoxelConstraint { + HasSubmergeDepth = 0, + IsDangerous = 1, +}; + +typedef keen::Bitmask8 VoxelConstraintMask; + +struct VoxelRequirements { + keen::VoxelConstraintMask required; // Offset: 0 + keen::VoxelConstraintMask forbidden; // Offset: 1 +}; + +struct ecs.ServerProgressSystem { + keen::ecs::EntityId progressEntity; // Offset: 0 + keen::uint32 progressLevel; // Offset: 4 + keen::uint32 currentAltarCount; // Offset: 8 + keen::uint32 currentHighestAltarLevel; // Offset: 12 +}; + +struct ecs.BaseIdComponent { + keen::BaseId baseId; // Offset: 0 + keen::float3 buildZoneSize; // Offset: 16 + keen::Time endOfTimeout; // Offset: 32 + keen::bool wasAbandoned; // Offset: 40 +}; + +struct ecs.ClientBaseIdComponent { + keen::Time endOfTimeout; // Offset: 0 + keen::bool wasAbandoned; // Offset: 8 + keen::uint16 farmingAnimalCount; // Offset: 10 + keen::uint16 hungryFarmingAnimalCount; // Offset: 12 + keen::uint16 animalsWithoutBedCount; // Offset: 14 + keen::uint16 npcBedCount; // Offset: 16 + keen::uint16 farmingAnimalBedCount; // Offset: 18 + keen::uint16 occupiedFarmingAnimalBedCount; // Offset: 20 +}; + +struct ecs.NoBuildZone { +}; + +struct ecs.UnlockedJournalEntries { + keen::uint16 knowledgeChangeCounter; // Offset: 0 + keen::uint16 journalChangeCounter; // Offset: 2 +}; + +struct ecs.HealthBar { + keen::Time lastChange; // Offset: 0 +}; + +struct ecs.EnergyProvider { + keen::uint32 energyPerSecond; // Offset: 0 +}; + +struct ecs.EnergyQuery { + keen::ecs::EntityId entityId; // Offset: 0 + keen::uint32 energyPerSecond; // Offset: 4 + keen::float32 entityDistanceSquared; // Offset: 8 +}; + +enum class ecs.CookingState { + CookingRequirementsNotMet = 0, + NotCooking = 1, + CurrentlyCooking = 2, + StartedCooking = 3, + StoppedCooking = 4, + SwitchToFoodBurnedEntity = 5, + WaitForFoodEntityDestruction = 6, + WaitForEvents = 7, +}; + +enum class ecs.CookingFlags { + ReceivedSpawnCookEvent = 0, + ReceivedStartCookEvent = 1, + IsCooking = 2, + CanCook = 3, +}; + +typedef keen::Bitmask8 ecs.CookingMask; + +struct ecs.CookingData { + keen::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ecs::EntityId skewerEntityId; // Offset: 4 + keen::ecs::EntityId burnedFoodEntityId; // Offset: 8 + keen::ecs::EntityId cookFoodEntityId; // Offset: 12 + keen::ItemId baseItemId; // Offset: 16 + keen::ItemId cookingItemId; // Offset: 20 + keen::ItemId nextCookingItemId; // Offset: 24 + keen::KnowledgeId nextKnowledgeTriggerId; // Offset: 28 + keen::KnowledgeId cookingKnowledgeTriggerId; // Offset: 32 + keen::uint32 cookingEnergy; // Offset: 36 + keen::uint32 requiredEnergy; // Offset: 40 + keen::ecs::CookingMask mask; // Offset: 44 + keen::ecs::CookingState state; // Offset: 45 +}; + +struct ecs.NetworkCookingData { + keen::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ecs::CookingMask mask; // Offset: 4 +}; + +struct ecs.CookingNotifier { + keen::NotifierReference onFoodStateChange; // Offset: 0 + keen::NotifierReference onFoodBurned; // Offset: 16 +}; + +struct ecs.AttributeRegeneration { + keen::Time lastNegativeChange; // Offset: 0 + keen::float32 accumulatedValue; // Offset: 8 + keen::sint32 lastValue; // Offset: 12 +}; + +struct ecs.HealthRecharge { +}; + +struct ecs.StaminaRecharge { +}; + +struct ecs.ManaRegeneration { +}; + +struct ecs.BodyHeatRecharge { +}; + +struct ecs.StaminaDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.BodyHeatDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.MovementVector { + keen::float3 velocity; // Offset: 0 + keen::float3 movement; // Offset: 12 +}; + +struct ecs.Projectile { +}; + +struct ecs.ParriableProjectile { + keen::ecs::TemplateReference parriedProjectileTemplate; // Offset: 0 + keen::Angle launchPitchAngleOffset; // Offset: 16 + keen::float32 launchSpeedFactor; // Offset: 20 +}; + +struct ecs.ParriedProjectile { + keen::FactionType originalFaction; // Offset: 0 + keen::ecs::EntityId originalSpawnerId; // Offset: 4 +}; + +enum class ecs.ProjectileMode { + Direct = 0, + Ballistic = 1, +}; + +struct ecs.CirclingTargetSettings { + keen::Angle angleOffset; // Offset: 0 + keen::float radius; // Offset: 4 + keen::float heightOffset; // Offset: 8 +}; + +struct ecs.EnemyProjectile { + keen::ecs::ProjectileMode mode; // Offset: 0 + keen::float32 targetOffsetY; // Offset: 4 + keen::uint8 maxTries; // Offset: 8 + keen::float32 force; // Offset: 12 + keen::bool addGravity; // Offset: 16 + keen::bool useLowAngle; // Offset: 17 + keen::bool lockTargetPosition; // Offset: 18 + keen::BlobArray hitAngles; // Offset: 20 + keen::Angle minPitch; // Offset: 28 + keen::Angle maxPitch; // Offset: 32 + keen::Angle maxHorizontalAngle; // Offset: 36 + keen::bool useFixedTargetOffset; // Offset: 40 + keen::ecs::Offset targetOffset; // Offset: 44 + keen::bool useCirclingTarget; // Offset: 84 + keen::ecs::CirclingTargetSettings circlingTargetSettings; // Offset: 88 +}; + +struct ecs.StaticUsedItem { + keen::ItemReference itemReference; // Offset: 0 +}; + +struct ecs.UsedItem { + keen::ItemId itemId; // Offset: 0 +}; + +struct ecs.PerkContainer { + keen::StaticArray perkIds; // Offset: 0 + keen::StaticArray perkIsUnlocked; // Offset: 20 +}; + +enum class ecs.DismantleVolumeClass { + Tiny = 0, + Small = 1, + Medium = 2, + Large = 3, +}; + +enum class ecs.DismantleMethod { + None = 0, + PickUp = 1, + TearDown = 2, +}; + +struct ecs.DismantleOverride { + keen::bool overrideMethod; // Offset: 0 + keen::ecs::DismantleMethod method; // Offset: 1 + keen::bool overrideVolumeClass; // Offset: 2 + keen::ecs::DismantleVolumeClass volumeClass; // Offset: 3 + keen::bool ignoreBuildZoneChecks; // Offset: 4 + keen::bool preventDismantlingWithFilledInventory; // Offset: 5 +}; + +struct ecs.ClientDismantleOverride { + keen::bool forceImmediateDismantlePrompt; // Offset: 0 +}; + +struct ecs.SubEntitySpawnInfo { + keen::ecs::TemplateReference templateRef; // Offset: 0 + keen::ecs::Offset offset; // Offset: 16 + keen::AttachmentSlot slot; // Offset: 56 + keen::bool hasKnowledgeRequirement; // Offset: 57 + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 60 + keen::KnowledgeId knowledgeRequirementId; // Offset: 164 + keen::bool attach; // Offset: 168 + keen::bool despawnOnDeath; // Offset: 169 + keen::bool addDespawnLink; // Offset: 170 + keen::bool addOwnerRelationship; // Offset: 171 + keen::bool doNotSave; // Offset: 172 + keen::bool copyConditionalDespawn; // Offset: 173 + keen::bool copyLevel; // Offset: 174 + keen::bool addImpactHierarchy; // Offset: 175 +}; + +struct ecs.SubEntities { + keen::BlobArray subEntities; // Offset: 0 + keen::bool hasSavedChildren; // Offset: 8 +}; + +struct ecs.DynamicSubEntities { + keen::StaticArray subEntities; // Offset: 0 +}; + +struct ecs.SubEntitiesStop { +}; + +struct ecs.ToggleSubEntities { + keen::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.DynamicToggleSubEntities { + keen::bool dontSpawn; // Offset: 0 +}; + +struct ecs.SubEntityAttachmentMask { + keen::AttachmentSlotMask mask; // Offset: 0 +}; + +struct ecs.EntityAnimation { + keen::JointAnimationReference animation; // Offset: 0 + keen::uint32 animationHandle; // Offset: 16 + keen::Time sampleTime; // Offset: 24 +}; + +struct ecs.DespawnAfterSequence { + keen::actor::SequenceRuntimeId sequenceId; // Offset: 0 +}; + +struct ecs.WeaponReference { + keen::ecs::EntityId weaponEntityId; // Offset: 0 + keen::ecs::EntityId weaponOwnerEntityId; // Offset: 4 +}; + +struct ecs.HitReactionConfig { + keen::animationgraph::OverlayIdReference hitReactionOverlay; // Offset: 0 + keen::actor::ActorSequenceReference hitSequence; // Offset: 16 +}; + +struct ecs.HitReactionBehavior { + keen::ecs::HitReactionConfig hitReactionBlockLightAttack; // Offset: 0 + keen::ecs::HitReactionConfig hitReactionLight; // Offset: 32 + keen::ecs::HitReactionConfig hitReactionHeavy; // Offset: 64 + keen::ecs::HitReactionConfig hitReactionBoss; // Offset: 96 + keen::ecs::HitReactionConfig hitReactionLongStun; // Offset: 128 + keen::ecs::HitReactionConfig hitReactionTrapStun; // Offset: 160 + keen::ecs::HitReactionConfig hitReactionShortStunBeGoneSkill; // Offset: 192 + keen::ecs::HitReactionConfig hitReactionThrowIntoAir; // Offset: 224 + keen::ecs::HitReactionConfig hitReactionWhileFlying; // Offset: 256 +}; + +enum class ecs.EntityReferenceType { + Self = 0, + Parent = 1, + Weapon = 2, +}; + +struct ecs.LerpRenderTransform { + keen::bool isInitialized; // Offset: 0 + keen::ecs::EntityReferenceType entityReferenceType; // Offset: 1 + keen::AttachmentSlot attachmentSlot; // Offset: 2 + keen::Time lerpDuration; // Offset: 8 + keen::float32 lerpValueStart; // Offset: 16 + keen::float32 lerpValueEnd; // Offset: 20 + keen::Time lerpTimeStart; // Offset: 24 + keen::float3 translateDelta; // Offset: 32 +}; + +struct ecs.HomeToTarget { + keen::float3 targetLocalOffset; // Offset: 0 + keen::float32 turnSpeed; // Offset: 12 + keen::float32 turnSpeedMinDistanceFactor; // Offset: 16 + keen::float32 turnSpeedMaxDistanceFactor; // Offset: 20 + keen::float32 turnSpeedMinDistance; // Offset: 24 + keen::float32 turnSpeedMaxDistance; // Offset: 28 + keen::float32 acceleration; // Offset: 32 + keen::float32 maxSpeed; // Offset: 36 + keen::bool homeToCollisionTarget; // Offset: 40 + keen::float32 rayLength; // Offset: 44 + keen::bool accelerateDependsOnAngle; // Offset: 48 +}; + +struct ecs.DynamicHomeToTarget { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.Boomerang { + keen::Time returnToSpawnerDelay; // Offset: 0 + keen::float32 destroyOnApproachSpawnerDistance; // Offset: 8 +}; + +enum class ecs.AggroTargetState { + Unknown = 0, + Aborted = 1, + Noticed = 2, + Alarmed = 3, +}; + +enum class ecs.AggroPool { + Senses = 0, + Friends = 1, + Enemies = 2, + Count = 3, +}; + +struct ecs.AggroPoolData { + keen::float32 value; // Offset: 0 + keen::Time lastGain; // Offset: 8 +}; + +enum class ecs.LineOfSightState { + None = 0, + InSight = 1, + OutOfSight = 2, + Count = 3, +}; + +enum class ecs.TargetReachableState { + Unknown = 0, + Reachable = 1, + NotReachable = 2, +}; + +struct ecs.AggroTarget { + keen::StaticArray aggroPools; // Offset: 0 + keen::ecs::AggroTargetState state; // Offset: 48 + keen::ecs::EntityId entityId; // Offset: 52 + keen::float32 value; // Offset: 56 + keen::Time lastLineOfSightQueryTime; // Offset: 64 + keen::ecs::LineOfSightState lineOfSightState; // Offset: 72 + keen::Time lastStateChangeTime; // Offset: 80 + keen::FactionType faction; // Offset: 88 + keen::float pathLength; // Offset: 92 + keen::ecs::TargetReachableState reachableState; // Offset: 96 + keen::float distanceToTarget; // Offset: 100 + keen::float enemyValue; // Offset: 104 +}; + +struct ecs.AggroTargetPathQuery { + keen::ecs::PathQueryId queryId; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::float3 lastStart; // Offset: 16 + keen::float3 lastTarget; // Offset: 28 +}; + +struct ecs.Aggro { + keen::StaticArray targets; // Offset: 0 + keen::StaticArray pathQueries; // Offset: 672 + keen::Time nextAllowedTargetChangeTime; // Offset: 912 + keen::ecs::QueryId queryId; // Offset: 920 + keen::bool applyEnemyValue; // Offset: 924 + keen::bool allowTargetSwitches; // Offset: 925 +}; + +struct ecs.TriggerNoise { + keen::float32 range; // Offset: 0 + keen::Time nextTriggerTime; // Offset: 8 + keen::Time triggerInterval; // Offset: 16 +}; + +struct ecs.TriggerWalkingNoise { + keen::float32 sneakRange; // Offset: 0 + keen::float32 walkRange; // Offset: 4 + keen::float32 runRange; // Offset: 8 + keen::float32 sprintRange; // Offset: 12 + keen::Time nextTriggerTime; // Offset: 16 + keen::Time triggerInterval; // Offset: 24 +}; + +struct ecs.EnemyPhases { + keen::StaticArray,8> phases; // Offset: 0 +}; + +struct ecs.DynamicEnemyPhases { + keen::Guid lastPhase; // Offset: 0 + keen::Guid currentPhase; // Offset: 16 + keen::Time currentPhaseStartTime; // Offset: 32 +}; + +struct ecs.EnemyAiming { + keen::BlobArray hitPattern; // Offset: 0 + keen::float32 minDistanceToMissTarget; // Offset: 8 +}; + +struct ecs.DynamicEnemyAiming { + keen::uint8 hitIndex; // Offset: 0 + keen::uint8 hitAngleIndex; // Offset: 1 + keen::StaticArray projectiles; // Offset: 4 +}; + +enum class ecs.ContextualVector2Context { + PositionDelta = 0, + Velocity = 1, +}; + +struct ecs.ContextualVector2 { + keen::ecs::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.ExecutionTarget { + keen::float32 executionRange; // Offset: 0 + keen::bool enableSneackAttackExecution; // Offset: 4 + keen::bool enableMercilessAttackExecution; // Offset: 5 + keen::float32 minMercilessAttackHealthPercentage; // Offset: 8 + keen::bool allowMercilessAttackRetrigger; // Offset: 12 + keen::bool canMercilessAttackBeExecuted; // Offset: 13 + keen::bool waitForHealthAboveThreshold; // Offset: 14 + keen::bool waitForStaminaRecharge; // Offset: 15 +}; + +enum class ecs.TransferItemToInventoryFlag { + Gifting = 0, + RefillStacks = 1, + MoveAllStacks = 2, + ToActionbar = 3, + ToBackpack = 4, +}; + +typedef keen::Bitmask8 ecs.TransferItemToInventoryFlags; + +struct ecs.InventoryTransferAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId sourceEntityId; // Offset: 4 + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::InventorySlotId sourceSlotId; // Offset: 12 + keen::InventorySlotId targetSlotId; // Offset: 20 + keen::InventoryActionType type; // Offset: 28 + keen::ecs::TransferItemToInventoryFlags flags; // Offset: 29 + keen::uint16 amount; // Offset: 30 +}; + +struct ecs.SelectSongAction { + keen::VersionedData versionData; // Offset: 0 + keen::HashKey32 songId; // Offset: 4 +}; + +struct ecs.SortInventoryAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetInventoryId; // Offset: 4 +}; + +struct ecs.CreateBuildingItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::ActionbarSlotSelection selectedIndex; // Offset: 2 + keen::ItemId itemId; // Offset: 4 +}; + +struct ecs.CreateNpcItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::ItemId itemId; // Offset: 4 +}; + +struct ecs.ActionbarSelectionAction { + keen::VersionedData versionData; // Offset: 0 + keen::ActionbarSlotSelection selectedIndex; // Offset: 2 +}; + +struct ecs.InventoryStockCycleAction { + keen::VersionedData versionData; // Offset: 0 + keen::ItemId selectedItemId; // Offset: 4 +}; + +struct ecs.ParryAction { + keen::VersionedData versionData; // Offset: 0 + keen::StaticArray targetEntityIds; // Offset: 4 +}; + +struct ecs.KickPlayerAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 4 +}; + +struct ecs.TwitchDropRewardAction { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 4 + keen::ItemId itemId; // Offset: 8 +}; + +enum class ecs.TombstoneMode { + AddBackpackMaterials = 0, + Everything = 1, + NoTombstone = 2, +}; + +enum class ecs.WeatherFrequency { + Disabled = 0, + Rare = 1, + Normal = 2, + Often = 3, +}; + +enum class ecs.AggroPoolAmount { + Few = 0, + Normal = 1, + Many = 2, + Extreme = 3, +}; + +enum class ecs.TamingStartleRepercussion { + KeepProgress = 0, + LoseSomeProgress = 1, + LoseAllProgress = 2, +}; + +struct ecs.GameSettings { + keen::float playerHealthFactor; // Offset: 0 + keen::float playerManaFactor; // Offset: 4 + keen::float playerStaminaFactor; // Offset: 8 + keen::float playerBodyHeatFactor; // Offset: 12 + keen::bool enableDurability; // Offset: 16 + keen::bool enableStarvingDebuff; // Offset: 17 + keen::float foodBuffDurationFactor; // Offset: 20 + keen::Time fromHungerToStarving; // Offset: 24 + keen::float shroudTimeFactor; // Offset: 32 + keen::ecs::TombstoneMode tombstoneMode; // Offset: 36 + keen::bool enableGliderTurbulences; // Offset: 37 + keen::ecs::WeatherFrequency weatherFrequency; // Offset: 38 + keen::float miningDamageFactor; // Offset: 40 + keen::float plantGrowthSpeedFactor; // Offset: 44 + keen::float resourceDropStackAmountFactor; // Offset: 48 + keen::float factoryProductionSpeedFactor; // Offset: 52 + keen::float perkUpgradeRecyclingFactor; // Offset: 56 + keen::float perkCostFactor; // Offset: 60 + keen::float experienceCombatFactor; // Offset: 64 + keen::float experienceMiningFactor; // Offset: 68 + keen::float experienceExplorationQuestsFactor; // Offset: 72 + keen::ecs::RandomSpawnerAmount randomSpawnerAmount; // Offset: 76 + keen::ecs::AggroPoolAmount aggroPoolAmount; // Offset: 77 + keen::float enemyDamageFactor; // Offset: 80 + keen::float enemyHealthFactor; // Offset: 84 + keen::float enemyStaminaFactor; // Offset: 88 + keen::float enemyPerceptionRangeFactor; // Offset: 92 + keen::float bossDamageFactor; // Offset: 96 + keen::float bossHealthFactor; // Offset: 100 + keen::float threatBonus; // Offset: 104 + keen::bool pacifyAllEnemies; // Offset: 108 + keen::ecs::TamingStartleRepercussion tamingStartleRepercussion; // Offset: 109 + keen::Time dayTimeDuration; // Offset: 112 + keen::Time nightTimeDuration; // Offset: 120 +}; + +struct ecs.AdminChangeGameSettingsAction { + keen::ecs::GameSettings gameSettings; // Offset: 0 + keen::VersionedData versionData; // Offset: 128 +}; + +struct ecs.AdminApplyInventoryCommand { + keen::VersionedData versionData; // Offset: 0 + keen::Guid inventoryGuid; // Offset: 4 + keen::bool clearInventories; // Offset: 20 +}; + +struct ecs.AdminSpawnCommand { + keen::VersionedData versionData; // Offset: 0 + keen::uint16 level; // Offset: 2 + keen::Guid templateGuid; // Offset: 4 + keen::uint8 optionalDistance; // Offset: 20 + keen::uint8 count; // Offset: 21 + keen::bool useRoaming; // Offset: 22 + keen::bool showSpawnSequence; // Offset: 23 + keen::bool spawnAsGroup; // Offset: 24 + keen::bool spawnAsFakePlayer; // Offset: 25 + keen::bool followPlayer; // Offset: 26 + keen::uint8 autoDestroyTicks; // Offset: 27 +}; + +struct ecs.AdminKillFactionCommand { + keen::VersionedData versionData; // Offset: 0 + keen::FactionMask factionMask; // Offset: 2 + keen::uint32 playerMask; // Offset: 4 +}; + +enum class ItemRarity { + Common = 0, + Uncommon = 1, + Rare = 2, + Epic = 3, + Legendary = 4, + Count = 5, +}; + +struct ecs.AdminInventoryCreateAction { + keen::ItemId itemId; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 + keen::uint16 count; // Offset: 6 + keen::ItemRarity rarity; // Offset: 8 + keen::uint8 level; // Offset: 9 + keen::bool createForAllPlayers; // Offset: 10 + keen::bool createFullStack; // Offset: 11 + keen::bool fillEmptyStacks; // Offset: 12 + keen::bool maximizeCharacter; // Offset: 13 + keen::bool cleanupInventory; // Offset: 14 + keen::bool flameLevelUpgrade; // Offset: 15 +}; + +struct ecs.AdminTeleportAction { + keen::ecs::Transform transform; // Offset: 0 + keen::VersionedData versionData; // Offset: 28 +}; + +struct ecs.AdminSetDayTimeAction { + keen::Time syncDaytime; // Offset: 0 + keen::Time syncDaytimeTick; // Offset: 8 + keen::VersionedData versionData; // Offset: 16 +}; + +struct ecs.AdminDestroyItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.AdminSetFlameLevel { + keen::VersionedData versionData; // Offset: 0 + keen::uint8 flameLevel; // Offset: 2 +}; + +struct ecs.AdminSetCharacterLevel { + keen::VersionedData versionData; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 4 + keen::uint8 level; // Offset: 8 +}; + +struct ecs.AdminPerkAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 + keen::bool state; // Offset: 12 +}; + +struct ecs.AdminDebugCameraDisplayAction { + keen::VersionedData versionData; // Offset: 0 + keen::bool enable; // Offset: 2 +}; + +struct ecs.ChangeCustomizationAction { + keen::InventorySlotId targetSlotId; // Offset: 0 + keen::ItemId itemId; // Offset: 8 + keen::VersionedData versionData; // Offset: 12 +}; + +enum class ecs.FlameAltarActionType { + Abandon = 0, + Reclaim = 1, +}; + +struct ecs.FlameAltarAction { + keen::ecs::EntityId baseEntityId; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 + keen::ecs::FlameAltarActionType type; // Offset: 6 +}; + +struct ecs.TeleportAction { + keen::ecs::EntityId target; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 +}; + +struct ecs.UnlockSkillAction { + keen::SkillNodeId skillId; // Offset: 0 + keen::bool resetSkills; // Offset: 4 + keen::VersionedData versionData; // Offset: 6 +}; + +struct ecs.AdminUnlearnSkillAction { + keen::SkillNodeId skillId; // Offset: 0 + keen::VersionedData versionData; // Offset: 4 +}; + +struct ecs.TriggerKnowledgeAction { + keen::LocaTagId dialogOptionId; // Offset: 0 + keen::KnowledgeId knowledgeId; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.SetPersonalProgressionAction { + keen::bool enable; // Offset: 0 + keen::VersionedData versionData; // Offset: 2 +}; + +struct ecs.AmbientHelper { + keen::AmbientMask ambientMask; // Offset: 0 +}; + +struct ecs.WaypointAction { + keen::WorldPosition position; // Offset: 0 + keen::bool enable; // Offset: 24 + keen::bool isPing; // Offset: 25 + keen::VersionedData versionData; // Offset: 26 +}; + +struct ecs.SelectDialogOptionAction { + keen::LocaTagId dialogOptionId; // Offset: 0 + keen::ecs::EntityId targetNpc; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.NpcInputAction { + keen::NpcId targetNpc; // Offset: 0 + keen::float roamingRange; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +typedef keen::HashKey32 RecipeId; + +struct ecs.CraftRecipeAction { + keen::ecs::EntityId craftingStationId; // Offset: 0 + keen::RecipeId recipeId; // Offset: 4 + keen::uint16 recipeAmount; // Offset: 8 + keen::VersionedData versionData; // Offset: 10 +}; + +struct ecs.AutomaticTransferAction { + keen::ecs::EntityId craftingStationId; // Offset: 0 + keen::RecipeId recipeId; // Offset: 4 + keen::ItemId itemId; // Offset: 8 + keen::uint16 amount; // Offset: 12 + keen::VersionedData versionData; // Offset: 14 +}; + +struct ecs.SelectCraftingStationRecipeAction { + keen::ecs::EntityId craftingStationId; // Offset: 0 + keen::RecipeId recipeId; // Offset: 4 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.PerkUnlockAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.TrashItemAction { + keen::VersionedData versionData; // Offset: 0 + keen::InventorySlotId inventorySlotId; // Offset: 4 +}; + +enum class ecs.ChangeEquipment { + Equip = 0, + Unequip = 1, +}; + +struct ecs.ChangeEquipmentAction { + keen::InventorySlotId inventorySlotId; // Offset: 0 + keen::VersionedData versionData; // Offset: 8 + keen::EquipmentSlot equipmentSlot; // Offset: 10 + keen::ecs::ChangeEquipment type; // Offset: 11 +}; + +enum class ecs.SwapEquipmentTarget { + ActiveEquipment = 0, + Vanity = 1, +}; + +struct ecs.SwapEquipmentSetAction { + keen::ecs::EntityId targetInventoryId; // Offset: 0 + keen::ecs::SwapEquipmentTarget target; // Offset: 4 + keen::VersionedData versionData; // Offset: 6 +}; + +struct ecs.ConsumeItemAction { + keen::InventorySlotId inventorySlotId; // Offset: 0 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.InspectItemAction { + keen::InventorySlotId inventorySlotId; // Offset: 0 + keen::VersionedData versionData; // Offset: 8 +}; + +struct ecs.RepairAllItemsAction { + keen::VersionedData versionData; // Offset: 0 +}; + +struct ecs.RequiredCraftingProp { + keen::ObjectReference type; // Offset: 0 + keen::CraftingPropId craftingPropId; // Offset: 16 +}; + +enum class ecs.FactoryStationState { + NoRecipe = 0, + MissingMaterials = 1, + Running = 2, + MissingOutputSpace = 3, +}; + +struct ecs.FactoryStation { + keen::ecs::FactoryStationState state; // Offset: 0 + keen::RecipeId runningRecipe; // Offset: 4 + keen::RecipeId nextRecipe; // Offset: 8 + keen::Time recipeStart; // Offset: 16 +}; + +struct ecs.FactoryStationClient { + keen::SoundContainerReference soundLoopRunning; // Offset: 0 + keen::uint32 soundLoopRunningHandle; // Offset: 16 +}; + +struct ecs.UiBlueprintShapeSelection { + keen::uint8 selectionIndex; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ecs.UiPlayerInput { + keen::sint8 lootSelectionDelta; // Offset: 0 + keen::sint8 blueprintPageSelectionDelta; // Offset: 1 + keen::sint8 blueprintShapeSelectionDelta; // Offset: 2 + keen::ecs::UiBlueprintShapeSelection blueprintShapeSelection; // Offset: 3 + keen::float32 dismantleHoldProgress; // Offset: 8 + keen::bool canCycleInventoryStock; // Offset: 12 + keen::bool isInventoryStockCyclingDisabled; // Offset: 13 + keen::bool isBlueprintPageSelectionModifierActive; // Offset: 14 + keen::bool isTertiaryActionAllowed; // Offset: 15 + keen::bool showTutorial; // Offset: 16 + keen::bool showInventoryStock; // Offset: 17 + keen::bool showActionbarWheel; // Offset: 18 + keen::bool showQuickEquipWheel; // Offset: 19 + keen::bool jumpToNotification; // Offset: 20 +}; + +struct ecs.ClientOnlyPlayerInput { + keen::sint8 actionbarSelectionDelta; // Offset: 0 + keen::sint8 inventoryStockCycleDelta; // Offset: 1 + keen::sint8 songSelectionDelta; // Offset: 2 + keen::sint8 zoomInputDelta; // Offset: 3 +}; + +struct ecs.ClientCamera { + keen::WorldPosition position; // Offset: 0 + keen::Quaternion orientation; // Offset: 24 + keen::float32 distance; // Offset: 40 + keen::float32 fovY; // Offset: 44 + keen::float32 aspectRatio; // Offset: 48 + keen::float32 nearPlane; // Offset: 52 + keen::float32 farPlane; // Offset: 56 +}; + +enum class ecs.ClientPlayerState { + IsInBlueprintMenu = 0, + IsInLootingMenu = 1, + IsInFreeCam = 2, +}; + +typedef keen::Bitmask8 ecs.ClientPlayerStateMask; + +enum class ecs.PlayerInputType { + MainhandAction = 0, + MainhandAction_Release = 1, + ContextualAction = 2, + ContextualAction_Tap = 3, + ContextualAction_Hold = 4, + CancelAction = 5, + QuickUse0 = 6, + QuickUse1 = 7, + QuickUse2 = 8, + QuickUse3 = 9, + QuickUse4 = 10, + QuickUse5 = 11, + QuickUse6 = 12, + QuickUse7 = 13, + QuickUse0_Release = 14, + QuickUse1_Release = 15, + QuickUse2_Release = 16, + QuickUse3_Release = 17, + QuickUse4_Release = 18, + QuickUse5_Release = 19, + QuickUse6_Release = 20, + QuickUse7_Release = 21, + Block = 22, + Evade = 23, + Jump = 24, + Jump_Hold = 25, + Glider = 26, + Respawn = 27, + BuildingUndo = 28, + BuildingBlueprintSnapping = 29, + BuildingVoxelGridSnapping = 30, + LockCombatTarget = 31, + CombatTargetSelectPrevious = 32, + CombatTargetSelectNext = 33, + RangedCombatArm = 34, + RangedCombatShoot = 35, + Sprint = 36, + Sneak = 37, + Sit = 38, + Count = 39, +}; + +typedef keen::Bitmask64 ecs.PlayerDigitalInput; + +struct ecs.ClientPlayerInputData { + keen::ecs::InventoryTransferAction inventoryTransferAction; // Offset: 0 + keen::ecs::ClientCamera camera; // Offset: 32 + keen::ecs::ActionbarSelectionAction actionbarSelectionAction; // Offset: 96 + keen::ecs::SortInventoryAction sortInventoryAction; // Offset: 100 + keen::ecs::SelectSongAction selectSongAction; // Offset: 108 + keen::ecs::InventoryStockCycleAction inventoryStockCycleAction; // Offset: 116 + keen::ecs::CraftRecipeAction craftRecipeAction; // Offset: 124 + keen::ecs::AutomaticTransferAction automaticTransferAction; // Offset: 136 + keen::ecs::SelectCraftingStationRecipeAction selectCraftingStationRecipeAction; // Offset: 152 + keen::ecs::ChangeCustomizationAction changeCustomizationAction; // Offset: 164 + keen::ecs::TeleportAction teleportAction; // Offset: 180 + keen::ecs::UnlockSkillAction unlockSkillAction; // Offset: 188 + keen::ecs::TriggerKnowledgeAction triggerKnowledgeAction; // Offset: 196 + keen::ecs::SetPersonalProgressionAction setPersonalProgressionAction; // Offset: 208 + keen::ecs::SelectDialogOptionAction selectDialogOptionAction; // Offset: 212 + keen::ecs::NpcInputAction npcInputAction; // Offset: 224 + keen::ecs::ChangeEquipmentAction changeEquipmentAction; // Offset: 236 + keen::ecs::SwapEquipmentSetAction swapEquipmentSetAction; // Offset: 248 + keen::ecs::ConsumeItemAction consumeItemAction; // Offset: 256 + keen::ecs::InspectItemAction inspectItemAction; // Offset: 268 + keen::ecs::RepairAllItemsAction repairAllItemsAction; // Offset: 280 + keen::ecs::CreateBuildingItemAction createBuildingItemAction; // Offset: 284 + keen::ecs::CreateNpcItemAction createNpcItemAction; // Offset: 292 + keen::ecs::PerkUnlockAction perkUnlockAction; // Offset: 300 + keen::ecs::TrashItemAction trashItemAction; // Offset: 312 + keen::ecs::FlameAltarAction flameAltarAction; // Offset: 324 + keen::ecs::WaypointAction waypointAction; // Offset: 336 + keen::ecs::ParryAction parryAction; // Offset: 368 + keen::ecs::KickPlayerAction kickPlayerAction; // Offset: 388 + keen::ecs::TwitchDropRewardAction twitchDropRewardAction; // Offset: 396 + keen::Vector2 movementStick; // Offset: 408 + keen::ecs::ContextualVector2 cameraRotationInput; // Offset: 416 + keen::sint16 buildingRotation; // Offset: 428 + keen::uint8 buildingDistance; // Offset: 430 + keen::ecs::ClientPlayerStateMask mask; // Offset: 431 + keen::ecs::PlayerDigitalInput digitalInput; // Offset: 432 + keen::Time respawnActionHoldDuration; // Offset: 440 + keen::Time debugEventTime; // Offset: 448 + keen::Time debugUpdateTime; // Offset: 456 +}; + +struct ecs.AdminClientPlayerInputData { + keen::ecs::AdminInventoryCreateAction adminInventoryCreateAction; // Offset: 0 + keen::ecs::AdminSpawnCommand adminSpawnCommand; // Offset: 16 + keen::ecs::AdminKillFactionCommand adminKillFaction; // Offset: 44 + keen::ecs::AdminTeleportAction adminTeleport; // Offset: 52 + keen::ecs::AdminApplyInventoryCommand adminApplyInventory; // Offset: 84 + keen::ecs::AdminSetDayTimeAction adminSetDaytime; // Offset: 112 + keen::ecs::AdminDestroyItemAction adminDestroyItemAction; // Offset: 136 + keen::ecs::AdminSetFlameLevel adminSetFlameLevel; // Offset: 148 + keen::ecs::AdminSetCharacterLevel adminSetCharacterLevel; // Offset: 152 + keen::ecs::AdminPerkAction adminPerkAction; // Offset: 164 + keen::ecs::AdminDebugCameraDisplayAction adminDebugCameraDisplayAction; // Offset: 180 + keen::ecs::AdminUnlearnSkillAction adminUnlearnSkillAction; // Offset: 184 + keen::ecs::AdminChangeGameSettingsAction adminChangeGameSettingsAction; // Offset: 192 +}; + +enum class ecs.DoubleInputBindings { + SprintAndSneak = 0, + BlockAndEvade = 1, + UndoAndEvade = 2, + JumpAndGlider = 3, + BuildingSnappingAndSitting = 4, + BuildingMenuAndLockTarget = 5, + BuildingMenuAndSitting = 6, +}; + +typedef keen::Bitmask8 ecs.DoubleInputBindingsMask; + +struct ecs.ClientPlayerInputHistoryEntry { + keen::uint32 frameTick; // Offset: 0 + keen::ecs::ClientPlayerInputData data; // Offset: 8 +}; + +enum class ecs.PlayerSettingFlags { + KeepTargetLockWhenSprinting = 0, + KeepTargetLockWhenInvalid = 1, + HideHelmet = 2, + HideGloves = 3, +}; + +typedef keen::Bitmask8 ecs.PlayerSettingMask; + +struct ecs.ClientPlayerSettings { + keen::AttackDirectionInput attackDirectionInput; // Offset: 0 + keen::ecs::PlayerSettingMask flags; // Offset: 1 +}; + +struct ecs.ClientPlayerInputToggleConfig { + keen::ecs::PlayerDigitalInput configuredAsToggle; // Offset: 0 +}; + +struct ecs.ClientPlayerInput { + keen::ecs::ClientPlayerInputData data; // Offset: 0 + keen::ecs::AdminClientPlayerInputData adminCommands; // Offset: 464 + keen::ecs::ClientPlayerInputToggleConfig toggleConfig; // Offset: 792 + keen::ecs::DoubleInputBindingsMask doubleInputBindings; // Offset: 800 + keen::InputMode inputMode; // Offset: 801 + keen::ecs::ClientOnlyPlayerInput clientOnlyPlayerInput; // Offset: 802 + keen::ecs::UiPlayerInput uiPlayerInput; // Offset: 808 +}; + +struct ecs.PlayerInput { + keen::Time serverTime; // Offset: 0 + keen::ecs::ClientPlayerInputData fromClient; // Offset: 8 + keen::ecs::AdminClientPlayerInputData fromAdminClient; // Offset: 472 + keen::ecs::ClientPlayerInputToggleConfig fromClientToggleConfig; // Offset: 800 + keen::ecs::DoubleInputBindingsMask fromClientDoubleInputBindings; // Offset: 808 + keen::InputMode fromClientInputMode; // Offset: 809 + keen::ecs::ClientPlayerSettings fromClientSettings; // Offset: 810 + keen::bool fromClientIsReadyForGameplay; // Offset: 812 +}; + +struct ecs.ServerInputConsumer { + keen::ecs::PlayerDigitalInput consumedInputs; // Offset: 0 + keen::ecs::PlayerDigitalInput logicalStates; // Offset: 8 + keen::ecs::PlayerDigitalInput totalPreviousInputs; // Offset: 16 +}; + +struct ecs.ServerConsumedPlayerInput { + keen::ecs::ServerInputConsumer inputConsumer; // Offset: 0 + keen::VersionedData consumedInventoryTransferAction; // Offset: 24 + keen::VersionedData consumedSortInventoryAction; // Offset: 26 + keen::VersionedData consumedSelectSongAction; // Offset: 28 + keen::VersionedData consumedCreateBuildingItemAction; // Offset: 30 + keen::VersionedData consumedCreateNpcItemAction; // Offset: 32 + keen::VersionedData consumedActionbarSelectionAction; // Offset: 34 + keen::VersionedData consumedInventoryStockCycleAction; // Offset: 36 + keen::VersionedData consumedCraftRecipeAction; // Offset: 38 + keen::VersionedData consumedAutomaticTransferAction; // Offset: 40 + keen::VersionedData consumedSelectCraftingStationRecipeAction; // Offset: 42 + keen::VersionedData consumedChangeCustomizationAction; // Offset: 44 + keen::VersionedData consumedTeleportAction; // Offset: 46 + keen::VersionedData consumedUnlockSkillAction; // Offset: 48 + keen::VersionedData consumedTriggerKnowledgeAction; // Offset: 50 + keen::VersionedData consumedSetPersonalProgressionAction; // Offset: 52 + keen::VersionedData consumedWaypointAction; // Offset: 54 + keen::VersionedData consumedSelectDialogOptionAction; // Offset: 56 + keen::VersionedData consumedNpcInputAction; // Offset: 58 + keen::VersionedData consumedChangeEquipmentAction; // Offset: 60 + keen::VersionedData consumedSwapEquipmentSetAction; // Offset: 62 + keen::VersionedData consumedConsumeItemAction; // Offset: 64 + keen::VersionedData consumedInspectItemAction; // Offset: 66 + keen::VersionedData consumedRepairAllItemsActionn; // Offset: 68 + keen::VersionedData consumedPerkUnlockAction; // Offset: 70 + keen::VersionedData consumedTrashItemAction; // Offset: 72 + keen::VersionedData consumedFlameAltarAction; // Offset: 74 + keen::VersionedData consumedParryAction; // Offset: 76 + keen::VersionedData consumedKickPlayerAction; // Offset: 78 + keen::VersionedData consumedtwitchDropAction; // Offset: 80 + keen::VersionedData consumedAdminInventoryCreateAction; // Offset: 82 + keen::VersionedData consumedAdminSpawnAction; // Offset: 84 + keen::VersionedData consumedAdminKillFactionAction; // Offset: 86 + keen::VersionedData consumedAdminTeleport; // Offset: 88 + keen::VersionedData consumedAdminApplyInventory; // Offset: 90 + keen::VersionedData consumedAdminSetDaytime; // Offset: 92 + keen::VersionedData consumedAdminDestroyItemAction; // Offset: 94 + keen::VersionedData consumedAdminSetFlameLevel; // Offset: 96 + keen::VersionedData consumedAdminSetCharacterLevel; // Offset: 98 + keen::VersionedData consumedAdminPerkAction; // Offset: 100 + keen::VersionedData consumedAdminDebugCameraDisplayAction; // Offset: 102 + keen::VersionedData consumedAdminUnlearnSkillAction; // Offset: 104 + keen::VersionedData consumedAdminChangeGameSettingsAction; // Offset: 106 +}; + +struct ecs.InputRepeater { + keen::bool isAfterFirstRepetition; // Offset: 0 + keen::Time nextRepeatTime; // Offset: 8 +}; + +typedef keen::StaticArray ecs.ClientOnlyPlayerInputRepeater; + +enum class ecs.ClientOnlyPlayerInputType { + ActionbarSwapPage = 0, + ActionbarPreviousSlot = 1, + ActionbarNextSlot = 2, + AmmunitionSelectPrevious = 3, + AmmunitionSelectNext = 4, + ShowTutorial = 5, + BlueprintDistanceIncrease = 6, + BlueprintDistanceDecrease = 7, + BlueprintMaterialSelectPrevious = 8, + BlueprintMaterialSelectNext = 9, + BlueprintPageSelectPrevious = 10, + BlueprintPageSelectNext = 11, + BlueprintShapeSelectPrevious = 12, + BlueprintShapeSelectNext = 13, + BlueprintShapeSelect0 = 14, + BlueprintShapeSelect1 = 15, + BlueprintShapeSelect2 = 16, + BlueprintShapeSelect3 = 17, + BlueprintShapeSelect4 = 18, + BlueprintShapeSelect5 = 19, + BlueprintShapeSelect6 = 20, + BlueprintShapeSelect7 = 21, + BlueprintShapeSelect8 = 22, + BlueprintShapeSelect9 = 23, + BuildingRotateLittleClockwise = 24, + BuildingRotateLittleCounterClockwise = 25, + BuildingRotateFarClockwise = 26, + BuildingRotateFarCounterClockwise = 27, + LootSelectPrevious = 28, + LootSelectNext = 29, + SongSelectOpen = 30, + SongSelectPrevious = 31, + SongSelectNext = 32, + CameraZoomIn = 33, + CameraZoomOut = 34, + UiSystemMenu = 35, + UiInGameMenu = 36, + UiBackpack = 37, + UiBuildingMenu = 38, + UiCharacter = 39, + UiCrafting = 40, + UiJournal = 41, + UiJumpToNotification = 42, + UiMap = 43, + UiSkills = 44, + UiUserFeedback = 45, + Parry = 46, + Count = 47, +}; + +typedef keen::Bitmask64 ecs.ClientOnlyPlayerDigitalInput; + +struct ecs.ClientInputConsumer { + keen::ecs::ClientOnlyPlayerDigitalInput consumedInputs; // Offset: 0 + keen::ecs::ClientOnlyPlayerDigitalInput logicalStates; // Offset: 8 + keen::ecs::ClientOnlyPlayerInputRepeater inputRepeaters; // Offset: 16 +}; + +struct ecs.PlayerTestInput { + keen::ecs::PlayerDigitalInput digitalInput; // Offset: 0 + keen::Vector2 movementStick; // Offset: 8 + keen::float3 cameraDirection; // Offset: 16 +}; + +enum class ranged_weapon.State { + Holster = 0, + Aim = 1, + AimAndCharge = 2, + Fire = 3, + FireEaseOut = 4, +}; + +struct ranged_weapon.Input { + keen::bool aim; // Offset: 0 + keen::bool charge; // Offset: 1 + keen::bool fire; // Offset: 2 +}; + +struct ranged_weapon.WeaponParameters { + keen::Time chargeDuration; // Offset: 0 + keen::Time fireDuration; // Offset: 8 + keen::bool isChanneling; // Offset: 16 + keen::bool doesNeedAmmunition; // Offset: 17 + keen::bool canQueueFireBeforeFullyCharged; // Offset: 18 + keen::bool restartChargeOnAmmunitionSwitch; // Offset: 19 +}; + +struct ranged_weapon.StateMachine { + keen::ranged_weapon::State currentState; // Offset: 0 + keen::Time stateStartTime; // Offset: 8 + keen::ranged_weapon::Input previousInput; // Offset: 16 + keen::ranged_weapon::WeaponParameters weaponParameters; // Offset: 24 + keen::bool isInitialUpdate; // Offset: 48 + keen::bool isFireQueued; // Offset: 49 +}; + +enum class ResourceTypes { + Health = 0, + Mana = 1, + Stamina = 2, + FogResistance = 3, + Ammunition = 4, + FoodBuff = 5, + GenericBuff = 6, + Debuff = 7, + RestedBuff = 8, +}; + +typedef keen::Bitmask16 ResourceTypesMask; + +struct ecs.RangedWeapon { + keen::ranged_weapon::StateMachine stateMachine; // Offset: 0 + keen::ecs::PlayerInputType originalTrigger; // Offset: 56 + keen::ecs::PlayerInputType currentTrigger; // Offset: 57 + keen::ItemInstanceInfo triggerWeaponInstance; // Offset: 60 + keen::ItemInstanceInfo triggerAmmunitionInstance; // Offset: 80 + keen::ResourceTypesMask missingResourceMask; // Offset: 100 + keen::Time lastMissingResourceEvent; // Offset: 104 + keen::ItemId lastVisualAmmoItemId; // Offset: 112 + keen::ItemId visualAmmoItemId; // Offset: 116 + keen::ecs::EntityId visualAmmoEntityId; // Offset: 120 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 124 + keen::bool previousSneakState; // Offset: 125 +}; + +struct ecs.NetworkRangedWeapon { + keen::ranged_weapon::State currentState; // Offset: 0 + keen::ranged_weapon::WeaponParameters weaponParameters; // Offset: 8 + keen::Time stateStartTime; // Offset: 32 + keen::ItemInstanceInfo weaponInstance; // Offset: 40 + keen::ItemId ammunitionItemId; // Offset: 60 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 64 +}; + +struct ecs.ClientRangedWeapon { + keen::ranged_weapon::State previousState; // Offset: 0 + keen::bool isInitialUpdate; // Offset: 1 +}; + +struct ecs.RangedWeaponRender { +}; + +struct ecs.SpellChargeSfx { + keen::SoundContainerReference buildUpChargeSfx; // Offset: 0 + keen::SoundContainerReference sustainChargeSfx; // Offset: 16 + keen::bool hasHandledFullyCharged; // Offset: 32 +}; + +enum class ecs.PlayerFlags { + IsSpawned = 0, + InFullScreenUi = 1, + UiCoverRequest = 2, + CanTriggerHookShot = 3, + CanTriggerGlider = 4, + InBlueprintSnappingMode = 5, + InVoxelGridSnappingMode = 6, + WantsToSprint = 7, + IsSprinting = 8, + InTargetLockCombatMode = 9, + QueueFireRangedShot = 10, + HasRangedWeaponFeedbackBeenSent = 11, + IsOutsideSafeZone = 12, + IsInBigDungeon = 13, + HideHelmet = 14, + HideGloves = 15, +}; + +typedef keen::Bitmask16 ecs.PlayerStateMask; + +struct ecs.ParryProjectile { + keen::ecs::EntityId projectileEntityId; // Offset: 0 + keen::actor::SequenceResourceId anticipationSequenceResourceId; // Offset: 4 +}; + +struct ecs.PlayerState { + keen::actor::StateMask previousActorState; // Offset: 0 + keen::Time lastSprintEndTime; // Offset: 8 + keen::Time lastBlockEndTime; // Offset: 16 + keen::Time noMovementInputDuration; // Offset: 24 + keen::Time outsideSafeZoneCountdown; // Offset: 32 + keen::float32 sprintTurnSpeedFactor; // Offset: 40 + keen::ecs::PlayerStateMask playerStateMask; // Offset: 44 + keen::LocaTagId dungeonZoneMapMarkerId; // Offset: 48 + keen::ecs::PlayerInputType rangedWeaponArmedViaInput; // Offset: 52 + keen::ecs::ParryProjectile parryProjectile; // Offset: 56 +}; + +struct ecs.PlayerTracking { + keen::Time levelUpDuration; // Offset: 0 + keen::Time playtimeDuration; // Offset: 8 +}; + +struct ecs.PlayerDebugServer { + keen::Time debugEventTime; // Offset: 0 + keen::Time clientUpdateTime; // Offset: 8 + keen::Time serverRecvTime; // Offset: 16 + keen::Time serverUpdateTime; // Offset: 24 +}; + +struct ecs.PlayerDebugClient { + keen::Time debugEventTime; // Offset: 0 + keen::Time debugEventDelta; // Offset: 8 + keen::Time debugEventMappingDelta; // Offset: 16 +}; + +struct ecs.ClientPlayerStaminaHints { + keen::Time firstSprintUtteranceDelay; // Offset: 0 + keen::Time sprintUtteranceInterval; // Offset: 8 + keen::Time nextUtterance; // Offset: 16 +}; + +struct ecs.PlayerQuestProgressionMode { + keen::bool isInPersonalProgressionMode; // Offset: 0 + keen::uint32 changeCounter; // Offset: 4 +}; + +struct ecs.PlayerPinnedRecipes { + keen::RecipeId pinnedRecipe; // Offset: 0 + keen::HashKey32 questEntryId; // Offset: 4 +}; + +struct ecs.PlayerWaypoint { + keen::bool enabled; // Offset: 0 + keen::WorldPosition waypointPosition; // Offset: 8 +}; + +struct ecs.SkillState { + keen::ecs::EntityId impcatEntity; // Offset: 0 + keen::bool isUnlocked; // Offset: 4 +}; + +typedef keen::uint64 ecs.SkillUnlockMask; + +typedef keen::StaticArray ecs.UnlockedSkillsMask; + +struct ecs.UnlockedSkillNodes { + keen::StaticArray nodes; // Offset: 0 + keen::StaticArray activeSkillImpacts; // Offset: 1024 + keen::uint32 version; // Offset: 2048 +}; + +struct ecs.PlayerSkillsUi { + keen::ecs::UnlockedSkillsMask skillUnlockMasks; // Offset: 0 +}; + +struct ecs.PlayerGroupMember { + keen::Time lastUpdateTime; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct ecs.ServerPlayerGroupMembers { + keen::StaticArray groupMembers; // Offset: 0 +}; + +struct ecs.PickingTarget { + keen::ecs::QueryId rayQueryId; // Offset: 0 + keen::Time nextUpdate; // Offset: 8 +}; + +enum class ecs.CursorFlag { + InvalidCursorTransform = 0, + CursorOutsideBuildingZone = 1, + CursorInsideFogZone = 2, + CursorTooFarAway = 3, + CursorInsideLenientBuildInhibitorZone = 4, + CursorInsideStrictBuildInhibitorZone = 5, + MaxAltarCountReached = 6, + AreaOccupied = 7, + EnemiesNearby = 8, + InvalidSurfaceNormal = 9, + InvalidCursorVoxelMaterial = 10, + MissingMaterials = 11, + ItemNotUnlocked = 12, + NoPermission = 13, + MaxTameAnimalCountReached = 14, +}; + +typedef keen::Bitmask16 ecs.CursorFlags; + +struct ecs.ServerCursor { + keen::ecs::QueryId rayQueryId; // Offset: 0 + keen::ecs::QueryId placementBlockerQueryId; // Offset: 4 + keen::StaticArray solidCollisionsQueryIds; // Offset: 8 + keen::ecs::RangeQueryId enemiesQueryId; // Offset: 16 + keen::float3 pointerInfoPosition; // Offset: 20 + keen::VoxelMaterialId hoveredVoxelMaterialId; // Offset: 32 + keen::WorldTransform secondaryActionTransform; // Offset: 40 + keen::float randomYawAngleOffset; // Offset: 96 + keen::Time snapToPlaneDelay; // Offset: 104 + keen::ecs::EntityId hoverVoxelBlueprintOverlayEntityId; // Offset: 112 +}; + +struct ecs.ClientServerCursor { + keen::WorldTransform transform; // Offset: 0 + keen::ecs::EntityId cursorEntityId; // Offset: 56 + keen::ecs::EntityId hoveredEntityId; // Offset: 60 + keen::ecs::EntityId selectedEntityId; // Offset: 64 + keen::ecs::DismantleMethod selectedEntityDismantleMethod; // Offset: 68 + keen::bool isBlueprintSelected; // Offset: 69 + keen::bool isDismantleAllowed; // Offset: 70 + keen::float3 hoverPosition; // Offset: 72 + keen::float3 hoverNormal; // Offset: 84 + keen::ItemInstanceInfo currentBuildingItemInstance; // Offset: 96 + keen::ItemId previousBuildingItemId; // Offset: 116 + keen::float effectivePlacementVolume; // Offset: 120 + keen::float maxPlacementVolume; // Offset: 124 + keen::ecs::CursorFlags cursorFlagsPrimary; // Offset: 128 + keen::ecs::CursorFlags cursorFlagsSecondary; // Offset: 130 + keen::bool wasLastActionSecondary; // Offset: 132 + keen::bool isSnappingToBoxes; // Offset: 133 + keen::bool isNearBuildingZone; // Offset: 134 + keen::bool canUndoBuildingAction; // Offset: 135 +}; + +struct ecs.ClientCursorVfx { + keen::uint3 position; // Offset: 0 + keen::uint32 fxHandle; // Offset: 12 +}; + +struct ecs.ClientCursor { + keen::Time hoveredEntityHightlightPhase; // Offset: 0 + keen::ecs::EntityId previousSelectedEntityId; // Offset: 8 + keen::Color previousSelectedEntityTintColor; // Offset: 12 + keen::ItemId previousBuildingItemId; // Offset: 16 + keen::HighlightColorIndex highlightColorValid; // Offset: 20 + keen::HighlightColorIndex highlightColorInvalid; // Offset: 21 + keen::HighlightColorIndex highlightColorMuted; // Offset: 22 + keen::StaticArray blueprintHoverVfx; // Offset: 24 +}; + +struct ecs.Terraforming { + keen::ecs::RangeQueryId snappingQueryId; // Offset: 0 + keen::ecs::RangeQueryId temporaryMiningQueryId; // Offset: 4 +}; + +struct ecs.VfxZone { +}; + +struct ecs.Destructible { +}; + +struct ecs.CameraShakeParams { + keen::float32 trauma; // Offset: 0 +}; + +struct ecs.NotifierComponent { + keen::ecs::Offset notifierOffset; // Offset: 0 + keen::NotifierReference notifier; // Offset: 40 + keen::ecs::CameraShakeParams cameraShake; // Offset: 56 + keen::SoundContainerReference sfx; // Offset: 60 + keen::VfxReference vfx; // Offset: 76 +}; + +struct ecs.OnCreate { + keen::AttachmentSlot slot; // Offset: 92 + keen::bool attach; // Offset: 93 +}; + +struct ecs.OnDestroy { + keen::float32 noiseRange; // Offset: 92 + keen::float3 hitDirection; // Offset: 96 +}; + +struct ecs.SpawnEntityOnDestroy { + keen::ecs::TemplateReference spawnEntity; // Offset: 0 + keen::bool keepDespawnLink; // Offset: 16 + keen::bool triggered; // Offset: 17 +}; + +struct ecs.DestroyEntityOnParentRespawn { + keen::bool checkParent; // Offset: 0 +}; + +typedef keen::HashKey32 FogRemovalId; + +struct ecs.FogRemovalIdComponent { + keen::FogRemovalId fogRemovalId; // Offset: 0 +}; + +struct ecs.RemoveFog { +}; + +enum class ecs.EasingType { + Linear = 0, + QuadraticIn = 1, + CubicIn = 2, + QuadraticOut = 3, + CubicOut = 4, + Count = 5, +}; + +struct ecs.Dissolve { + keen::float3 rotationOriginOffset; // Offset: 0 + keen::float32 yOffset; // Offset: 12 + keen::Time duration; // Offset: 16 + keen::float32 rotationAngle; // Offset: 24 + keen::bool calculateOffsets; // Offset: 28 + keen::ecs::EasingType dissolveEasing; // Offset: 29 + keen::ecs::EasingType translationEasing; // Offset: 30 + keen::ecs::EasingType rotationEasing; // Offset: 31 +}; + +struct ecs.DynamicDissolve { + keen::Time startTime; // Offset: 0 + keen::ecs::EntityId alignmentTarget; // Offset: 8 + keen::bool started; // Offset: 12 +}; + +struct ecs.ClientDissolve { + keen::uint32 renderModelUpdateCounter; // Offset: 0 + keen::float32 modelCenter; // Offset: 4 + keen::float32 boundingBoxHeight; // Offset: 8 + keen::float32 dissolveEdgeBrightness; // Offset: 12 +}; + +enum class ecs.FadeState { + Visible = 0, + FadeIn = 1, + FadeOut = 2, + Invisible = 3, +}; + +struct ecs.Fade { + keen::Time duration; // Offset: 0 + keen::float3 dissolveMaskOffset; // Offset: 8 + keen::float32 dissolveMaskRadius; // Offset: 20 + keen::float32 dissolveEdgeBrightness; // Offset: 24 + keen::ecs::FadeState initialState; // Offset: 28 +}; + +struct ecs.DynamicFade { + keen::Time startTime; // Offset: 0 + keen::ecs::FadeState state; // Offset: 8 +}; + +struct ecs.ActorInput { + keen::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 0 + keen::actor::ActionSequenceTriggerContext triggerContext; // Offset: 8 + keen::uint8 triggerCallCounter; // Offset: 232 + keen::uint32 sequenceTriggerId; // Offset: 236 + keen::float3 desiredLocalMoveInput; // Offset: 240 + keen::float3 desiredWorldMoveInput; // Offset: 252 + keen::float3 desiredWorldLookDirection; // Offset: 264 + keen::ecs::LocomotionSpeedSelector locomotionSpeed; // Offset: 276 + keen::ecs::LocomotionSpeedSelector lastLocomotionSpeed; // Offset: 277 +}; + +struct ecs.FlapSetup { + keen::Time minFlapDuration; // Offset: 0 + keen::Time maxFlapDuration; // Offset: 8 + keen::Time minFlapPauseDuration; // Offset: 16 + keen::Time maxFlapPauseDuration; // Offset: 24 +}; + +struct ecs.Flying { + keen::float32 maxAcceleration; // Offset: 0 + keen::actor::ActorSequenceReference startFlyingSequence; // Offset: 4 + keen::actor::ActorSequenceReference stopFlyingSequence; // Offset: 20 + keen::actor::ActorSequenceReference flyingSequence; // Offset: 36 + keen::actor::ActorSequenceReference hoverSequence; // Offset: 52 + keen::actor::ActorSequenceReference flappingSequence; // Offset: 68 + keen::actor::ActorSequenceReference hitInAirSequence; // Offset: 84 + keen::actor::ActorSequenceReference stuckOnGroundSequence; // Offset: 100 + keen::ecs::FlapSetup flapSetup; // Offset: 120 + keen::bool useFlyAnimationHandling; // Offset: 152 + keen::bool fallOnHit; // Offset: 153 + keen::bool fallOnParryStun; // Offset: 154 + keen::bool flyAfterSpawn; // Offset: 155 +}; + +enum class ecs.FlyingState { + None = 0, + NotFlying = 1, + Flying = 2, + Flapping = 3, + Hovering = 4, + StartFlying = 5, + StopFlying = 6, + Fall = 7, + StuckOnGround = 8, +}; + +struct ecs.DynamicFlying { + keen::ecs::FlyingState state; // Offset: 0 + keen::Time nextCheckFlappingTime; // Offset: 8 + keen::bool isSequenceHandlingPaused; // Offset: 16 + keen::bool wasSequenceHandlingPaused; // Offset: 17 + keen::bool isFlappingAllowed; // Offset: 18 + keen::bool fallOnDeath; // Offset: 19 +}; + +struct ecs.CSPDummy { +}; + +struct ecs.SlotAttachmentBase { + keen::ecs::Offset offset; // Offset: 0 + keen::AttachmentSlot attachmentSlot; // Offset: 40 + keen::ecs::EntityId attachedToEntityId; // Offset: 44 +}; + +struct ecs.ServerSlotAttachment { +}; + +struct ecs.SlotAttachment { +}; + +struct ecs.Friction { + keen::bool isSliding; // Offset: 0 + keen::float32 frictionFactor; // Offset: 4 +}; + +struct ecs.RotationSpeedEntry { + keen::float32 rotationSpeed; // Offset: 0 + keen::actor::InterpolationMode interpolationMode; // Offset: 4 +}; + +struct ecs.ActorRotation { + keen::ecs::RotationSpeedEntry standingRotationSpeed; // Offset: 0 + keen::ecs::RotationSpeedEntry movingRotationSpeed; // Offset: 8 + keen::ecs::RotationSpeedEntry runningRotationSpeed; // Offset: 16 + keen::ecs::RotationSpeedEntry slidingRotationSpeed; // Offset: 24 + keen::ecs::RotationSpeedEntry inAirRotationSpeed; // Offset: 32 + keen::ecs::RotationSpeedEntry dodgingAroundTargetRotationSpeed; // Offset: 40 + keen::ecs::RotationSpeedEntry hookPullingRotationSpeed; // Offset: 48 + keen::ecs::RotationSpeedEntry hookSwingingRotationSpeed; // Offset: 56 + keen::ecs::RotationSpeedEntry climbingRotationSpeed; // Offset: 64 + keen::ecs::RotationSpeedEntry gliderRotationSpeed; // Offset: 72 + keen::float32 minLinearAxisRotationAngle; // Offset: 80 +}; + +enum class ecs.LocomotionState { + Walking = 0, + Sliding = 1, + Falling = 2, + Flying = 3, + HangGliding = 4, + HookPulling = 5, + HookSwinging = 6, + ClimbingWall = 7, + ClimbingLadder = 8, +}; + +enum class ecs.LocomotionFlags { + LveRunning = 0, + Sprinting = 1, + OffBalance = 2, + MovingTowardsHole = 3, + AirwolfActive = 4, + IsUpdraftDepleted = 5, + WantsToMove = 6, +}; + +typedef keen::Bitmask8 ecs.LocomotionMask; + +struct ecs.LocomotionAccelerationConfig { + keen::float32 minTurnAngle; // Offset: 0 + keen::float32 maxWalkAcceleration; // Offset: 4 + keen::float32 maxRunAcceleration; // Offset: 8 + keen::float32 maxSprintAcceleration; // Offset: 12 + keen::float32 groundFrictionSusceptibility; // Offset: 16 +}; + +struct ecs.LocomotionSlideConfig { + keen::float32 downhillAccelerationFactor; // Offset: 0 + keen::float32 downhillAcceleration; // Offset: 4 + keen::float32 lateralAcceleration; // Offset: 8 + keen::float32 uphillAcceleration; // Offset: 12 + keen::float32 maxUphillSpeed; // Offset: 16 +}; + +struct ecs.LocomotionTurnConfig { + keen::bool useTurnSequences; // Offset: 0 + keen::Angle minTurnAngle; // Offset: 4 + keen::float32 minVelocity; // Offset: 8 + keen::Time minRequiredVelocityDuration; // Offset: 16 + keen::Time minTimeSinceRequiredVelocityWasReached; // Offset: 24 + keen::actor::ActorSequenceReference leftTurnSequence; // Offset: 32 + keen::actor::ActorSequenceReference rightTurnSequence; // Offset: 48 +}; + +struct ecs.LocomotionAvoidHolesConfig { + keen::bool avoidHoles; // Offset: 0 + keen::float32 checkLength; // Offset: 4 + keen::float32 minHoleDepth; // Offset: 8 +}; + +struct ecs.Locomotion { + keen::ecs::LocomotionAccelerationConfig accelerationConfig; // Offset: 0 + keen::ecs::LocomotionSlideConfig slideConfig; // Offset: 20 + keen::ecs::LocomotionTurnConfig turnConfig; // Offset: 40 + keen::ecs::LocomotionAvoidHolesConfig avoidHolesConfig; // Offset: 104 +}; + +enum class ecs.JumpRuntimeType { + Default = 0, + Double = 1, + Sprint = 2, + Glider = 3, + HookSwingDefaultExit = 4, + HookSwingSprintExit = 5, + LadderClimbing = 6, + FreeClimbing = 7, + Slide = 8, + Attack = 9, +}; + +struct ecs.GliderTurbulence { + keen::float3 direction; // Offset: 0 + keen::float32 intensity; // Offset: 12 + keen::Time remainingDuration; // Offset: 16 +}; + +struct ecs.DynamicLocomotion { + keen::float3 inputVelocity; // Offset: 0 + keen::float3 floorNormal; // Offset: 12 + keen::float3 slopeNormal; // Offset: 24 + keen::actor::MovementFactors movementFactors; // Offset: 36 + keen::float3 rootMotion; // Offset: 48 + keen::animationgraph::RootMotionMask rootMotionMode; // Offset: 60 + keen::ecs::LocomotionState state; // Offset: 61 + keen::Time lastStateSwitchTime; // Offset: 64 + keen::Time slideDetected; // Offset: 72 + keen::Time takeOffTime; // Offset: 80 + keen::Time spheroidCollisionDuration; // Offset: 88 + keen::float32 rotationSpeedFactor; // Offset: 96 + keen::bool isGliderForwardInputDeliberate; // Offset: 100 + keen::bool isNearGround; // Offset: 101 + keen::bool wasTurning; // Offset: 102 + keen::Time sprintJumpRunUpTimer; // Offset: 104 + keen::Time airwolfTimer; // Offset: 112 + keen::ecs::LocomotionMask flags; // Offset: 120 + keen::bool isFastEnoughForTurn; // Offset: 121 + keen::Time speedForTurnSequenceReachedStartTime; // Offset: 128 + keen::Time speedForTurnSequenceReachedEndTime; // Offset: 136 + keen::float slideJumpAirControlSpeed; // Offset: 144 + keen::actor::JumpType jumpType; // Offset: 148 + keen::uint8 jumpCount; // Offset: 149 + keen::WorldPosition previousJumpTakeOffPosition; // Offset: 152 + keen::float airControlMinVelocity; // Offset: 176 + keen::float airControlMaxVelocity; // Offset: 180 + keen::float frictionFactor; // Offset: 184 + keen::float effectiveMovementMod; // Offset: 188 + keen::float gliderUpstreamFactor; // Offset: 192 + keen::ecs::GliderTurbulence gliderTurbulence; // Offset: 200 +}; + +struct ecs.NetworkLocomotion { + keen::bool hasSlideAnimations; // Offset: 0 + keen::bool hasJumpAnimations; // Offset: 1 + keen::bool hasWalkAnimations; // Offset: 2 + keen::bool hasMoveAnimation; // Offset: 3 + keen::bool leanTowardsMoveDirection; // Offset: 4 + keen::float leanFactor; // Offset: 8 + keen::float maxLeanYawAngle; // Offset: 12 + keen::float maxLeanPitchAngle; // Offset: 16 + keen::float leanFadeOutSpeedFactor; // Offset: 20 + keen::float minLeanYawInterpolationSpeed; // Offset: 24 + keen::float maxLeanYawInterpolationSpeed; // Offset: 28 + keen::float leanYawSpeedInterpolationStartAngle; // Offset: 32 + keen::float leanYawSpeedInterpolationEndAngle; // Offset: 36 + keen::float leanPitchInterpolationSpeed; // Offset: 40 + keen::float leanYawStartAngle; // Offset: 44 + keen::Angle pitchAngleOffset; // Offset: 48 +}; + +struct ecs.DynamicNetworkLocomotion { + keen::float3 floorNormal; // Offset: 0 + keen::float3 desiredWorldLookDirection; // Offset: 12 + keen::float3 desiredLeanDirection; // Offset: 24 + keen::ecs::LocomotionState state; // Offset: 36 + keen::ecs::LocomotionMask flags; // Offset: 37 + keen::animationgraph::StateIdHash currentIdleAnimation; // Offset: 40 + keen::animationgraph::StateIdHash currentWalkAnimation; // Offset: 44 + keen::float32 gliderTurbulenceScreenShakeIntensity; // Offset: 48 +}; + +struct ecs.ClientLocomotion { + keen::float32 runSpeed; // Offset: 0 + keen::float32 sprintSpeed; // Offset: 4 + keen::float32 currentLocalRollAngle; // Offset: 8 + keen::float32 currentLocalPitchAngle; // Offset: 12 + keen::float32 currentLocalYawAngle; // Offset: 16 + keen::float32 currentLeanYawAngle; // Offset: 20 + keen::float32 currentLeanPitchAngle; // Offset: 24 + keen::float32 lastAnimationInputSpeed; // Offset: 28 +}; + +struct ecs.GliderUpstreamZone { +}; + +struct ecs.JumpParameters { + keen::float32 jumpDistance; // Offset: 0 + keen::float32 jumpHeight; // Offset: 4 + keen::Quaternion launchOffset; // Offset: 8 +}; + +struct ecs.SlopeAlignment { + keen::float32 defaultLongitudinalFactor; // Offset: 0 + keen::float32 defaultLateralFactor; // Offset: 4 + keen::float32 currentLongitudinalFactor; // Offset: 8 + keen::float32 currentLateralFactor; // Offset: 12 +}; + +struct ecs.BaseActor { + keen::actor::ActionSequence currentAction; // Offset: 0 + keen::actor::StateMask currentState; // Offset: 2048 + keen::actor::AbilityMask currentAbilityMask; // Offset: 2056 + keen::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 2064 +}; + +struct ecs.ServerActionSequenceData { + keen::actor::SequenceRuntimeId sequenceId; // Offset: 0 + keen::actor::SignalStates signalStates; // Offset: 24 + keen::actor::ColliderModeData colliderModeOverride; // Offset: 152 + keen::actor::RotationInterpolation rotationInterpolation; // Offset: 168 + keen::Time rotationInterpolationStartTime; // Offset: 224 + keen::Time rotationInterpolationEndTime; // Offset: 232 + keen::animationgraph::StateIdHash animationStateId; // Offset: 240 + keen::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 244 + keen::ecs::EntityId lastSpawnedEntityId; // Offset: 248 + keen::ecs::EntityId stopEntityId; // Offset: 252 + keen::float3 positionLerpEnd; // Offset: 256 + keen::Time positionLerpDuration; // Offset: 272 + keen::Time positionLerpTime; // Offset: 280 + keen::Quaternion orientationLerpEnd; // Offset: 288 + keen::Time orientationLerpDuration; // Offset: 304 + keen::Time orientationLerpTime; // Offset: 312 + keen::actor::MovementFactors movementFactors; // Offset: 320 + keen::actor::MovementFactors movementFactorsLerpStart; // Offset: 332 + keen::actor::MovementFactors movementFactorsLerpEnd; // Offset: 344 + keen::Time movementFactorsLerpDuration; // Offset: 360 + keen::Time movementFactorsLerpTime; // Offset: 368 + keen::float32 rotationSpeedFactor; // Offset: 376 + keen::float32 rotationFactorLerpStart; // Offset: 380 + keen::float32 rotationFactorLerpEnd; // Offset: 384 + keen::Time rotationFactorLerpDuration; // Offset: 392 + keen::Time rotationFactorLerpTime; // Offset: 400 + keen::float32 gravityModifier; // Offset: 408 + keen::bool isGravityModified; // Offset: 412 +}; + +struct ecs.Actor { + keen::ecs::ServerActionSequenceData currentServerAction; // Offset: 2088 + keen::actor::ActorSequenceReference deathSequence; // Offset: 2504 + keen::bool deathSequenceWaitsForGroundedState; // Offset: 2520 + keen::bool defaultVisibleState; // Offset: 2521 + keen::bool sendDeathEvent; // Offset: 2522 + keen::actor::SequenceResourceId deathSequenceId; // Offset: 2524 + keen::ecs::ColliderMode currentColliderMode; // Offset: 2528 + keen::actor::RotationInterpolation rotationInterpolation; // Offset: 2532 +}; + +struct ecs.DisableColliderModeChanges { +}; + +struct ecs.NetworkActor { + keen::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::actor::AbilityMask currentAbilityMask; // Offset: 24 + keen::actor::StateMask currentState; // Offset: 32 + keen::ecs::EntityId interactionHostId; // Offset: 40 + keen::StaticArray currentActionEntityTags; // Offset: 44 + keen::ItemId usedItemId; // Offset: 108 + keen::actor::ActionSequenceState currentActionState; // Offset: 112 +}; + +struct ecs.ClientActor { + keen::actor::SequenceRuntimeId lastReceivedSequenceRuntimeId; // Offset: 2088 +}; + +struct ecs.SimpleActorInput { + keen::actor::ActorSequenceReference sequence; // Offset: 0 + keen::ItemReference usedItem; // Offset: 16 + keen::bool loop; // Offset: 32 +}; + +struct ecs.SimpleToggleActor { + keen::ecs::SimpleActorInput on; // Offset: 0 + keen::ecs::SimpleActorInput off; // Offset: 36 +}; + +struct ecs.DynamicSimpleToggleActor { + keen::Time triggerTime; // Offset: 0 +}; + +enum class ecs.TrapState { + Armed = 0, + Disarmed = 1, + Triggered = 2, +}; + +enum class impact.AttackCategory { + Melee = 0, + Ranged = 1, + Magic = 2, + Tool = 3, + Other = 4, + AoE = 5, + SkillShot = 6, +}; + +typedef keen::Bitmask8 impact.AttackCategoryMask; + +struct ecs.SimpleTrapActor { + keen::ecs::SimpleActorInput onTriggerEnter; // Offset: 0 + keen::ecs::SimpleActorInput onTriggerLeave; // Offset: 36 + keen::ecs::SimpleActorInput onArm; // Offset: 72 + keen::ecs::SimpleActorInput onDisarm; // Offset: 108 + keen::Time triggerCooldownTime; // Offset: 144 + keen::bool triggerOnHit; // Offset: 152 + keen::impact::AttackCategoryMask disabledDamageTypes; // Offset: 153 + keen::animationgraph::StateIdReference idleArmedAnimation; // Offset: 156 + keen::animationgraph::StateIdReference idleDisarmedAnimation; // Offset: 172 +}; + +struct ecs.DynamicSimpleTrapActor { + keen::Time lastArmedTime; // Offset: 0 + keen::ecs::TrapState state; // Offset: 8 +}; + +struct ecs.TeleportZone { + keen::ecs::EntityTagReference zoneTag; // Offset: 0 +}; + +struct ecs.TeleportZoneConnection { + keen::LocaTagId teleporterId; // Offset: 0 + keen::LocaTagId targetTeleporterId; // Offset: 4 +}; + +struct ecs.Teleport { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ecs::EntityId targetEntityId; // Offset: 56 + keen::bool applied; // Offset: 60 + keen::bool searchBestSpawnPosition; // Offset: 61 +}; + +struct ecs.FallDamage { + keen::float32 fallDamageStartDistance; // Offset: 0 + keen::float32 fallDamageLethalDistance; // Offset: 4 + keen::actor::ActorSequenceReference fallDamageSequence; // Offset: 8 +}; + +struct ecs.DynamicFallDamage { + keen::bool wasFalling; // Offset: 0 + keen::bool resetFallAltitudeOnApex; // Offset: 1 + keen::float32 fallStartAltitude; // Offset: 4 + keen::float32 detectedFallDistance; // Offset: 8 + keen::float32 detectedFallDamagePercentage; // Offset: 12 +}; + +struct ecs.ServerCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::CameraId lockedCameraId; // Offset: 1 + keen::Time unlockTime; // Offset: 8 + keen::CameraOverride cameraOverride; // Offset: 16 + keen::Time overrideEndTime; // Offset: 24 +}; + +struct ecs.NetworkCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::CameraId lockedCameraId; // Offset: 1 + keen::CameraOverride cameraOverride; // Offset: 2 +}; + +struct ecs.ClientCameraControl { + keen::CameraId activeCameraId; // Offset: 0 + keen::float32 idleCameraTriggerDelay; // Offset: 4 + keen::float32 buildingCameraSwitchDelay; // Offset: 8 + keen::float32 hipfireCameraSwitchDelay; // Offset: 12 + keen::WorldPosition entityCameraPosition; // Offset: 16 + keen::Quaternion entityCameraOrientation; // Offset: 40 +}; + +enum class ecs.LockedTargetFlags { + Static = 0, + Updated = 1, + VelocityUpdated = 2, + SupportsHardLock = 3, + WasHit = 4, +}; + +struct ecs.TargetSelector { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 range; // Offset: 4 + keen::Time time; // Offset: 8 +}; + +enum class ecs.TargetImportance { + None = 0, + VeryLow = 1, + Low = 2, + Normal = 3, + High = 4, + VeryHigh = 5, +}; + +struct ecs.TargetInfo { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ecs::Offset targetingOffset; // Offset: 56 + keen::ecs::EntityId targetId; // Offset: 96 + keen::ecs::TargetImportance targetImportance; // Offset: 100 + keen::ecs::ColliderId colliderId; // Offset: 104 + keen::uint16 changeCounter; // Offset: 112 + keen::Bitmask8 flags; // Offset: 114 +}; + +struct ecs.SelectedTargets { + keen::StaticArray targets; // Offset: 0 + keen::actor::SequenceResourceId interactionSequencePredictionHelper; // Offset: 1920 +}; + +struct ecs.NetworkSelectedTargets { + keen::StaticArray targetIds; // Offset: 0 + keen::bool combatTargetSupportsHardLock; // Offset: 64 +}; + +struct ecs.ParentTargets { +}; + +struct ecs.ServerTarget { + keen::bool hardLockTarget; // Offset: 0 + keen::ecs::TargetImportance targetImportance; // Offset: 1 +}; + +struct ecs.HardLockTarget { +}; + +struct ecs.ClearPathToTarget { + keen::float32 yOffset; // Offset: 0 + keen::ecs::QueryId queryId; // Offset: 4 + keen::bool hasHitSolidCollider; // Offset: 8 + keen::bool hasHitSteeringCollider; // Offset: 9 +}; + +struct ecs.Loot { + keen::ItemId itemId; // Offset: 0 + keen::bool awaitingDestroy; // Offset: 4 +}; + +struct ecs.Orb { + keen::NotifierReference pickupNotifier; // Offset: 0 + keen::ecs::TemplateReference pickupTemplate; // Offset: 16 + keen::ImpactProgramReference program; // Offset: 32 + keen::bool awaitingDestroy; // Offset: 48 + keen::SoundContainerReference sfx; // Offset: 52 + keen::VfxReference vfx; // Offset: 68 +}; + +struct ecs.SceneLootNodeId { + keen::LootContainerId id; // Offset: 0 +}; + +struct ecs.RandomLoot { + keen::ObjectReference defaultLabels; // Offset: 0 +}; + +struct ecs.RandomLootProbability { + keen::float32 spawnProbability; // Offset: 0 +}; + +struct ecs.RandomLootSlotCount { + keen::uint8 slotsMin; // Offset: 0 + keen::uint8 slotsMax; // Offset: 1 +}; + +struct ecs.RandomLootContainer { + keen::uint32 spawnedLootVersion; // Offset: 0 + keen::LootContainerId parentNodeId; // Offset: 4 + keen::LootContainerId defaultLabelsId; // Offset: 8 +}; + +struct ecs.RandomLootPlayerScale { + keen::uint8 playerCount; // Offset: 0 +}; + +struct ecs.RandomLootLock { +}; + +struct ecs.PickupLootSlot { + keen::ecs::TemplateReference genericPickupItem; // Offset: 0 + keen::ecs::EntityId spawnedPickupEntity; // Offset: 16 +}; + +struct ecs.RandomLootInventory { +}; + +struct ecs.RandomLootOnDestroy { + keen::bool triggered; // Offset: 0 +}; + +struct ecs.DisableRandomLootOnDestroy { +}; + +struct ecs.RandomLootEntitySpawner { + keen::ecs::TemplateReference lootEntity; // Offset: 0 + keen::ecs::EntityId spawnedEntityId; // Offset: 16 +}; + +struct ecs.LocaTagComponent { + keen::LocaTagReference locaTag; // Offset: 0 +}; + +struct LocaTag { + keen::string keenglish; // Offset: 0 + keen::string description; // Offset: 8 +}; + +typedef keen::LocaTag ecs.MapMarkerLocaTag; + +typedef keen::ObjectReference MapMarkerTypeReference; + +struct ecs.MapMarker { + keen::LocaTagReference markerId; // Offset: 0 + keen::MapMarkerTypeReference markerType; // Offset: 16 + keen::float rangeScale; // Offset: 32 +}; + +enum class ecs.MapMarkerVisibilityType { + Hidden = 0, + Hint = 1, + Visible = 2, + Completed = 3, +}; + +typedef keen::Bitmask8 ecs.MapMarkerVisibilityStateMask; + +struct ecs.MapMarkerVisibilityState { + keen::ecs::MapMarkerVisibilityType visibility; // Offset: 0 + keen::Time lastChange; // Offset: 8 + keen::uint16 knowledgeChangeCounter; // Offset: 16 +}; + +struct ecs.MapMarkerToggleState { + keen::ecs::MapMarkerVisibilityStateMask visibilityMap; // Offset: 0 +}; + +struct ecs.Location { + keen::ecs::LocalPlayerMask isInLocation; // Offset: 0 +}; + +struct ecs.IsPlayerInRange { + keen::bool onlyPlayer; // Offset: 0 + keen::actor::StateMask ignoreStates; // Offset: 8 + keen::Time updateDelay; // Offset: 16 + keen::float32 deactivateRange; // Offset: 24 + keen::float32 minRange; // Offset: 28 +}; + +struct ecs.DynamicIsPlayerInRange { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::ecs::EntityId closestActorId; // Offset: 4 + keen::Time startTime; // Offset: 8 +}; + +enum class ecs.ToggleType { + On = 0, + Off = 1, +}; + +typedef keen::Bitmask8 ecs.ToggleMask; + +struct ecs.ToggleInShape { + keen::ecs::ToggleMask ignoreState; // Offset: 0 +}; + +struct ecs.InertialFrame { + keen::float3 velocity; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SlopeDefinition { + keen::Angle steepFloorAngle; // Offset: 0 + keen::Angle slidingAngle; // Offset: 4 + keen::Angle fallDamageAngle; // Offset: 8 + keen::Angle slidingMaterialMinAngle; // Offset: 12 +}; + +struct ecs.SlopeConfig { + keen::SlopeDefinition slopeDefinition; // Offset: 0 + keen::ObjectReference slopeDefinitionObject; // Offset: 16 +}; + +enum class ecs.HookShotType { + None = 0, + PullTarget = 1, + PullSelf = 2, + SwingSelf = 3, + Count = 4, + Auto = 4, +}; + +struct ecs.PlayerFx { + keen::ecs::EntityId fxEntityId; // Offset: 0 + keen::ecs::EntityId attachEntityId; // Offset: 4 +}; + +struct ecs.PlayerFxSpawner { + keen::ecs::PlayerFx hookShotTargetFx; // Offset: 0 + keen::ecs::PlayerFx hookShotRopeFx; // Offset: 8 + keen::ecs::PlayerFx gliderUpstreamFx; // Offset: 16 +}; + +enum class ecs.HookShotState { + Invalid = 0, + Enter = 1, + Update = 2, + Exit = 3, +}; + +struct ecs.HookShot { + keen::ecs::EntityId triggerAnchorEntityId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::actor::ActionSequenceTrigger sequenceTrigger; // Offset: 16 + keen::ItemInstanceInfo triggerItemInstance; // Offset: 20 + keen::ecs::HookShotType hookShotType; // Offset: 40 + keen::ecs::HookShotState hookShotState; // Offset: 41 + keen::actor::SequenceResourceId sequenceResourceId; // Offset: 44 + keen::actor::SequenceRuntimeId sequenceId; // Offset: 48 + keen::ecs::EntityId anchorEntityId; // Offset: 72 + keen::WorldPosition anchorPosition; // Offset: 80 + keen::float3 hookPullActorTargetOffset; // Offset: 104 + keen::float3 hookPullAnchorNormal; // Offset: 116 + keen::float3 hookPullOriginalVelocity; // Offset: 128 + keen::float3 hookSwingOriginalHorizontalDirection; // Offset: 140 + keen::Time hookSwingEndTime; // Offset: 152 + keen::float32 hookSwingRopeLength; // Offset: 160 + keen::bool isEnemyHookAnchor; // Offset: 164 + keen::bool useHookShotCamera; // Offset: 165 + keen::bool hasTouchedGroundAfterHook; // Offset: 166 +}; + +struct ecs.ClientHookShot { + keen::Time triggerTime; // Offset: 0 + keen::WorldPosition anchorPosition; // Offset: 8 + keen::bool useHookShotCamera; // Offset: 32 + keen::ecs::HookShotType hookShotType; // Offset: 33 +}; + +struct ecs.HookShotDiscoverMemory { + keen::StaticArray entityIds; // Offset: 0 + keen::uint16 discoveredMask; // Offset: 64 +}; + +struct ecs.HookShotInteractionOffer { + keen::WorldTransform targetTransform; // Offset: 0 + keen::float3 actorTargetOffset; // Offset: 56 + keen::uint32 anchorEntityLevel; // Offset: 68 + keen::ecs::HookShotType hookShotType; // Offset: 72 + keen::uint8 index; // Offset: 73 + keen::bool hasPriority; // Offset: 74 +}; + +struct ecs.HookShotTargeting { + keen::ecs::HookShotInteractionOffer bestInteractionOffer; // Offset: 0 + keen::ecs::HookShotDiscoverMemory discoverMemory; // Offset: 80 +}; + +struct ecs.HookShotAnchor { + keen::ecs::HookShotType hookShotType; // Offset: 0 + keen::float3 targetOffset; // Offset: 4 +}; + +struct ecs.HookShotAnchorSubEntity { + keen::ecs::TemplateReference anchorEntityTemplate; // Offset: 0 + keen::ecs::Offset attachmentOffset; // Offset: 16 +}; + +struct ecs.HookPullImpulse { + keen::ecs::ImpulseData impulseData; // Offset: 0 + keen::ecs::EntityId pullingEntityId; // Offset: 32 +}; + +enum class ecs.ClimbType { + Invalid = 0, + Wall = 1, + Ladder = 2, +}; + +enum class ecs.ClimbState { + Invalid = 0, + Enter = 1, + Climb = 2, + Exit = 3, +}; + +enum class ecs.LadderQueryType { + StepUp = 0, + StepDown = 1, + ExitTop = 2, + Count = 3, +}; + +struct ecs.LadderQuery { + keen::ecs::QueryId queryId; // Offset: 0 + keen::bool isValid; // Offset: 4 + keen::bool enable; // Offset: 5 +}; + +struct ecs.Climb { + keen::ecs::ClimbType climbType; // Offset: 0 + keen::ecs::ClimbState climbState; // Offset: 1 + keen::float3 climbNormal; // Offset: 4 + keen::Time climbBlockingTimeEnd; // Offset: 16 + keen::StaticArray ladderCollisionQueries; // Offset: 24 + keen::ecs::EntityId ladderEntityId; // Offset: 48 + keen::ecs::RangeQueryId laddersQueryId; // Offset: 52 + keen::bool ladderStepPhase; // Offset: 56 +}; + +struct ecs.Ladder { + keen::float3 topOffset; // Offset: 0 + keen::float3 bottomOffset; // Offset: 12 + keen::float3 normal; // Offset: 24 +}; + +struct ecs.LerpTransformData { + keen::ecs::LerpTransformTarget target; // Offset: 0 + keen::Time localTime; // Offset: 8 + keen::Time duration; // Offset: 16 +}; + +struct ecs.LerpTransform { + keen::StaticArray targetTransforms; // Offset: 0 + keen::ecs::LerpTransformData positionLerpData; // Offset: 168 + keen::ecs::LerpTransformData orientationLerpData; // Offset: 192 +}; + +struct ecs.BasicSpawnerComponent { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct ecs.TriggerSpawner { + keen::bool isTriggered; // Offset: 16 + keen::ecs::EntityId spawnedEntityId; // Offset: 20 + keen::Time spawnTimeout; // Offset: 24 + keen::Time nextAllowedSpawnTime; // Offset: 32 +}; + +struct ecs.TriggerBoxMultiSpawner { + keen::bool linkDestroyToEventSender; // Offset: 16 + keen::bool randomizeOrientation; // Offset: 17 + keen::Time lastTriggerTime; // Offset: 24 + keen::float32 minDistanceToEventSender; // Offset: 32 +}; + +enum class ecs.SpawnTarget { + SpawnerCenter = 0, + Player = 1, +}; + +enum class ecs.SpawnMode { + Random = 0, + Grouped = 1, +}; + +enum class ecs.SpawnOrientationMode { + LookAtTarget = 0, + LookAwayFromTarget = 1, + LookAtPlayer = 2, +}; + +enum class ecs.SpawnCondition { + IsDay = 0, + IsNight = 1, +}; + +typedef keen::Bitmask8 ecs.SpawnConditionFlags; + +struct ecs.SpawnGroupId { +}; + +struct ecs.SpawnGroup { + keen::ObjectReference spawnGroupId; // Offset: 0 + keen::uint8 minSpawnAmount; // Offset: 16 + keen::uint8 maxSpawnAmount; // Offset: 17 + keen::float weight; // Offset: 20 +}; + +struct ecs.SpawnerEntry { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 + keen::ObjectReference spawnGroupId; // Offset: 16 + keen::ecs::SpawnConditionFlags spawnConditions; // Offset: 32 + keen::float weight; // Offset: 36 +}; + +struct ecs.SpawnPositionSettings { + keen::float horizontalSearchDistance; // Offset: 0 + keen::float verticalSearchDistance; // Offset: 4 + keen::float minHorizontalSpace; // Offset: 8 + keen::float minVerticalSpace; // Offset: 12 + keen::ecs::PathNodeRequirements nodeRequirements; // Offset: 16 + keen::ecs::PathGridType pathGridType; // Offset: 20 +}; + +struct ecs.RandomSpawner { + keen::BlobArray spawnEntries; // Offset: 0 + keen::BlobArray spawnGroups; // Offset: 8 + keen::float32 minSpawnRange; // Offset: 16 + keen::float32 maxSpawnRange; // Offset: 20 + keen::Time initialSpawnTimeout; // Offset: 24 + keen::Time minSpawnTimeout; // Offset: 32 + keen::Time maxSpawnTimeout; // Offset: 40 + keen::uint8 minSpawnAmount; // Offset: 48 + keen::uint8 maxSpawnAmount; // Offset: 49 + keen::Time minSpawnDelay; // Offset: 56 + keen::Time maxSpawnDelay; // Offset: 64 + keen::uint8 maxTotalSpawnCount; // Offset: 72 + keen::bool destroyOnSpawnFinished; // Offset: 73 + keen::ecs::SpawnMode spawnMode; // Offset: 74 + keen::ecs::SpawnTarget spawnTarget; // Offset: 75 + keen::ecs::SpawnOrientationMode spawnOrientationMode; // Offset: 76 + keen::float32 minEntityDistance; // Offset: 80 + keen::float32 maxEntityDistance; // Offset: 84 + keen::float32 maxSpawnAngle; // Offset: 88 + keen::bool waitUntilEntitiesAreDestroyed; // Offset: 92 + keen::bool allowRespawn; // Offset: 93 + keen::bool useKeepAliveConditions; // Offset: 94 + keen::bool searchForGroundPosition; // Offset: 95 + keen::ecs::SpawnPositionSettings spawnPositionSettings; // Offset: 96 + keen::bool spawnAsUnitGroup; // Offset: 120 + keen::bool despawnEntities; // Offset: 121 + keen::bool checkDeathState; // Offset: 122 + keen::float32 conditionalDespawnMinRange; // Offset: 124 + keen::float32 defaultDespawnMinRange; // Offset: 128 + keen::bool useUpScaling; // Offset: 132 + keen::bool useDownScaling; // Offset: 133 + keen::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 134 +}; + +struct ecs.RandomSpawnerCommand { + keen::Time spawnTime; // Offset: 0 + keen::ecs::Transform transform; // Offset: 8 + keen::uint8 spawnEntryIndex; // Offset: 36 + keen::bool isAdditionalScalingCommand; // Offset: 37 +}; + +struct ecs.DynamicRandomSpawner { + keen::Time nextSpawnTime; // Offset: 0 + keen::ecs::EntityId currentGroupId; // Offset: 8 + keen::StaticArray spawnedEntities; // Offset: 12 + keen::StaticArray spawnCommands; // Offset: 48 + keen::bool wasSpawnedEntityAlive; // Offset: 528 + keen::bool wasAnySpawnedEntityKilled; // Offset: 529 + keen::uint8 totalSpawnCount; // Offset: 530 + keen::uint8 spawnCommandCount; // Offset: 531 + keen::Time trySpawnDuration; // Offset: 536 +}; + +struct ecs.ConditionalDespawn { + keen::float32 conditionalDespawnMinRange; // Offset: 0 + keen::float32 defaultDespawnMinRange; // Offset: 4 + keen::ecs::SpawnConditionFlags keepAliveConditions; // Offset: 8 + keen::Time nextQueryUpdateTime; // Offset: 16 +}; + +struct ecs.ClientToggleFromActorState { + keen::ecs::EntityReferenceType entityReferenceType; // Offset: 0 + keen::actor::StateMask setIf; // Offset: 8 + keen::actor::StateMask setIfNot; // Offset: 16 +}; + +struct ecs.NetworkHealth { + keen::uint32 health; // Offset: 0 + keen::uint32 healthMax; // Offset: 4 +}; + +struct ecs.NetworkStamina { + keen::uint16 stamina; // Offset: 0 + keen::uint16 staminaMax; // Offset: 2 +}; + +struct ecs.NetworkLevel { + keen::uint16 level; // Offset: 0 +}; + +struct ecs.NetworkServerProgress { + keen::uint16 level; // Offset: 0 + keen::uint16 currentAltarCount; // Offset: 2 + keen::uint16 currentHighestAltarLevel; // Offset: 4 +}; + +struct ecs.BaseAttributesData { + keen::uint8 strength; // Offset: 0 + keen::uint8 strengthFromSkill; // Offset: 1 + keen::uint8 dexterity; // Offset: 2 + keen::uint8 dexterityFromSkill; // Offset: 3 + keen::uint8 intelligence; // Offset: 4 + keen::uint8 intelligenceFromSkill; // Offset: 5 + keen::uint8 constitution; // Offset: 6 + keen::uint8 constitutionFromSkill; // Offset: 7 + keen::uint8 endurance; // Offset: 8 + keen::uint8 enduranceFromSkill; // Offset: 9 + keen::uint8 spirit; // Offset: 10 + keen::uint8 spiritFromSkill; // Offset: 11 +}; + +struct ecs.ArmorAttributes { + keen::float32 physicalBlowthrough; // Offset: 0 + keen::float32 magicalBlowthrough; // Offset: 4 + keen::uint16 physicalArmor; // Offset: 8 + keen::uint16 cutArmor; // Offset: 10 + keen::uint16 bluntArmor; // Offset: 12 + keen::uint16 pierceArmor; // Offset: 14 + keen::uint16 magicalArmor; // Offset: 16 + keen::uint16 fireArmor; // Offset: 18 + keen::uint16 iceArmor; // Offset: 20 + keen::uint16 fogArmor; // Offset: 22 + keen::uint16 lightningArmor; // Offset: 24 +}; + +enum class ecs.ReviveState { + Invalid = 0, + Reviving = 1, + GettingRevived = 2, +}; + +struct ecs.NetworkReviveData { + keen::ecs::ReviveState state; // Offset: 0 + keen::float duration; // Offset: 4 + keen::float left; // Offset: 8 +}; + +struct ecs.NetworkPlayerAttributes { + keen::ecs::ArmorAttributes armorAttributes; // Offset: 0 + keen::ecs::BaseAttributesData baseAttributes; // Offset: 28 + keen::ecs::NetworkReviveData revivieData; // Offset: 40 + keen::float32 movementNormal; // Offset: 52 + keen::float32 movementSprint; // Offset: 56 + keen::float32 movementSneak; // Offset: 60 + keen::float32 reviveDuration; // Offset: 64 + keen::float32 reviveHealth; // Offset: 68 + keen::float32 critChance; // Offset: 72 + keen::float32 critChanceMagic; // Offset: 76 + keen::float32 critChanceMelee; // Offset: 80 + keen::float32 critChanceRanged; // Offset: 84 + keen::uint16 critDamageMod; // Offset: 88 + keen::uint16 damageMod; // Offset: 90 + keen::uint16 meleeDamageMod; // Offset: 92 + keen::uint16 rangedDamageMod; // Offset: 94 + keen::uint16 magicDamageMod; // Offset: 96 + keen::uint16 damageModSneak; // Offset: 98 + keen::uint16 damageModMerciless; // Offset: 100 + keen::uint16 damageModBackstab; // Offset: 102 + keen::uint16 damageModSkillshot; // Offset: 104 + keen::uint16 poisonSusceptibility; // Offset: 106 + keen::uint16 health; // Offset: 108 + keen::uint16 healthMax; // Offset: 110 + keen::uint16 healthReg; // Offset: 112 + keen::uint16 healthRegDelay; // Offset: 114 + keen::uint16 stamina; // Offset: 116 + keen::uint16 staminaMax; // Offset: 118 + keen::uint16 staminaReg; // Offset: 120 + keen::uint16 staminaRegDelay; // Offset: 122 + keen::uint16 mana; // Offset: 124 + keen::uint16 manaMax; // Offset: 126 + keen::uint16 manaReg; // Offset: 128 + keen::uint16 manaRegDelay; // Offset: 130 + keen::uint16 bodyHeat; // Offset: 132 + keen::uint16 bodyHeatMax; // Offset: 134 + keen::uint16 bodyHeatReg; // Offset: 136 + keen::uint16 bodyHeatRegDelay; // Offset: 138 + keen::uint16 experience; // Offset: 140 + keen::uint16 experienceRequired; // Offset: 142 + keen::uint16 fogResistance; // Offset: 144 + keen::uint16 fogResistanceMax; // Offset: 146 + keen::uint16 level; // Offset: 148 + keen::uint16 staffDamage; // Offset: 150 + keen::uint16 wandDamage; // Offset: 152 + keen::uint16 oneHandedDamage; // Offset: 154 + keen::uint16 twoHandedDamage; // Offset: 156 + keen::uint16 bowDamage; // Offset: 158 + keen::uint16 daggerDamage; // Offset: 160 + keen::uint16 throwableDamage; // Offset: 162 + keen::uint16 unarmedDamage; // Offset: 164 + keen::uint16 magicalFoeDamage; // Offset: 166 + keen::uint16 meleeFoeDamage; // Offset: 168 + keen::uint16 rangedFoeDamage; // Offset: 170 + keen::uint16 flyingFoeDamage; // Offset: 172 + keen::uint16 skeletonFoeDamage; // Offset: 174 + keen::uint16 healing; // Offset: 176 + keen::uint16 freezingResistance; // Offset: 178 + keen::uint8 comfortLevel; // Offset: 180 +}; + +enum class ecs.GatherResourceType { + Wood = 0, + Stone = 1, +}; + +struct ecs.MiningNode { + keen::ecs::GatherResourceType resourceType; // Offset: 0 + keen::NotifierReference onResourceDepletion; // Offset: 4 + keen::ecs::Offset offset; // Offset: 20 + keen::SoundContainerReference sfx; // Offset: 60 + keen::VfxReference vfx; // Offset: 76 + keen::uint8 aliveDropCount; // Offset: 92 + keen::uint8 numberOfDrops; // Offset: 93 +}; + +struct ecs.DynamicMiningNode { + keen::bool isInitialized; // Offset: 0 + keen::bool canBeDestroyed; // Offset: 1 + keen::uint8 remainingDropCount; // Offset: 2 +}; + +struct ecs.WiggleComponent { + keen::Time startTime; // Offset: 0 + keen::float3 rotationAxis; // Offset: 8 + keen::Time duration; // Offset: 24 + keen::float32 intensity; // Offset: 32 + keen::float32 bounciness; // Offset: 36 +}; + +struct ecs.HealthBasedScale { + keen::float32 minSize; // Offset: 0 + keen::uint8 percentage; // Offset: 4 +}; + +struct ecs.InventoryEmptyState { + keen::bool toggleVFX; // Offset: 0 + keen::bool isEmpty; // Offset: 1 +}; + +struct ecs.CopyInventoryEmptyStateFromParent { +}; + +struct ecs.TransformHistoryEntry { + keen::uint32 tick; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct ecs.TransformationHistory { + keen::StaticArray history; // Offset: 0 + keen::Time lastSampleTime; // Offset: 3840 + keen::uint32 lastIndex; // Offset: 3848 + keen::uint32 maxIndex; // Offset: 3852 +}; + +struct ecs.ServerTransformationHistory { +}; + +struct ecs.ClientTransformationHistory { +}; + +struct ecs.GameEvent { + keen::Time timeStamp; // Offset: 0 +}; + +struct ecs.BaseHitEvent { + keen::WorldTransform targetTransform; // Offset: 8 + keen::float3 volumeMin; // Offset: 64 + keen::float3 volumeMax; // Offset: 76 + keen::bool hasVolume; // Offset: 88 + keen::float32 miningDamagedVolume; // Offset: 92 + keen::float32 miningRemovedVolume; // Offset: 96 + keen::bool hasMiningVolume; // Offset: 100 + keen::CollisionFeedbackMaterialReference materialA; // Offset: 104 + keen::CollisionFeedbackMaterialReference materialB; // Offset: 120 + keen::float3 position; // Offset: 136 + keen::float3 normal; // Offset: 148 + keen::float3 hitDirection; // Offset: 160 + keen::ecs::EntityId rootSourceId; // Offset: 172 + keen::ecs::EntityId targetId; // Offset: 176 + keen::ecs::HitEventFlagMask flags; // Offset: 180 +}; + +struct impact.ImpactId { + keen::uint32 id; // Offset: 0 +}; + +enum class impact.PushBackForce { + None = 0, + Small = 1, + Normal = 2, + Big = 3, + VeryBig = 4, + VerySmall = 5, +}; + +typedef keen::HashKey32 WeaponCategoryId; + +struct ecs.HitEvent { + keen::ecs::EntityId rootTargetId; // Offset: 184 + keen::ecs::EntityId sourceId; // Offset: 188 + keen::ecs::EntityId permissionSourceId; // Offset: 192 + keen::ecs::EntityId weaponPideId; // Offset: 196 + keen::ecs::EntityId armorPideId; // Offset: 200 + keen::float32 hitAngle; // Offset: 204 + keen::float32 range; // Offset: 208 + keen::sint32 healthChange; // Offset: 212 + keen::sint32 staminaChange; // Offset: 216 + keen::float32 aggro; // Offset: 220 + keen::float32 noiseRange; // Offset: 224 + keen::impact::ImpactId impactId; // Offset: 228 + keen::impact::PushBackForce pushBackForce; // Offset: 232 + keen::impact::HitReactionType hitReaction; // Offset: 234 + keen::impact::MajorDirection hitDirectionConfig; // Offset: 236 + keen::impact::AttackCategoryMask attackCategory; // Offset: 237 + keen::WeaponCategoryId weaponCategory; // Offset: 240 + keen::FactionType targetFaction; // Offset: 244 +}; + +struct ecs.HitHistory { + keen::StaticArray history; // Offset: 0 + keen::StaticArray targetTransform; // Offset: 2480 + keen::uint32 lastIndex; // Offset: 3040 + keen::uint32 maxIndex; // Offset: 3044 +}; + +struct ecs.ExperienceSource { + keen::ecs::EntityId lastHitPlayerId; // Offset: 0 + keen::float xpMod; // Offset: 4 +}; + +struct ecs.FogOfWarDiscovery { + keen::float32 discoveryRange; // Offset: 0 +}; + +enum class FogType { + None = 0, + NoneTemporary = 1, + Dangerous = 2, + Death = 3, +}; + +struct ecs.EnvironmentSensor { + keen::FogType fogType; // Offset: 0 + keen::TemperatureVoxelType temperature; // Offset: 1 +}; + +struct ecs.ToggleAnimation { + keen::animationgraph::StateIdReference animationStateOn; // Offset: 0 + keen::animationgraph::StateIdReference animationStateOff; // Offset: 16 +}; + +struct ecs.ToggleOnHit { + keen::impact::AttackCategoryMask disabledDamageTypes; // Offset: 0 + keen::bool canToggleOn; // Offset: 1 + keen::bool canToggleOff; // Offset: 2 +}; + +struct ecs.LinkToggleStateToSignalState { + keen::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentSignalState { + keen::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.LinkClientToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.SendToggleStateToParentToggleState { +}; + +struct ecs.LinkToggleStateToEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.SignalTransmitter { + keen::SignalReference signal; // Offset: 0 + keen::SignalId signalId; // Offset: 16 + keen::bool state; // Offset: 20 + keen::bool sendActivatedEvent; // Offset: 21 + keen::bool sendDeactivatedEvent; // Offset: 22 + keen::bool sendResultSignal; // Offset: 23 +}; + +struct ecs.SignalReceiver { + keen::SignalId signalId; // Offset: 0 + keen::ecs::EntityId lastSenderId; // Offset: 4 + keen::SignalReference signal; // Offset: 8 +}; + +enum class DelayFlags { + On = 0, + Off = 1, +}; + +typedef keen::Bitmask8 DelayMask; + +struct ecs.SignalDelay { + keen::Time duration; // Offset: 0 + keen::DelayMask filterMask; // Offset: 8 + keen::Time toggleTime; // Offset: 16 + keen::bool nextState; // Offset: 24 + keen::bool initialized; // Offset: 25 +}; + +struct ecs.MagicalBarrier { +}; + +struct ecs.MagicalBarrierConnection { + keen::bool initialized; // Offset: 0 + keen::ecs::EntityId barrierEntityId; // Offset: 4 + keen::ecs::EntityId spawnedSubentityId; // Offset: 8 + keen::ObjectReference spawnEntity; // Offset: 12 +}; + +struct ecs.LocalSignalReceiver { + keen::SignalReference signal; // Offset: 0 +}; + +struct ecs.MultiSignalReceiver { + keen::bool evaluate; // Offset: 0 + keen::StaticArray calculation; // Offset: 4 + keen::StaticArray signalIds; // Offset: 132 + keen::StaticArray signalStates; // Offset: 196 + keen::bool receiveActivatedEvent; // Offset: 212 + keen::bool receiveDeactivatedEvent; // Offset: 213 + keen::bool hasEvaluatedToTrueOnce; // Offset: 214 +}; + +struct ecs.MultiSignalReceiverCounter { + keen::uint8 activeCount; // Offset: 0 + keen::uint8 requiredCount; // Offset: 1 +}; + +struct ecs.LoreReading { + keen::LocaTagReference description; // Offset: 0 + keen::ItemId displayedItemId; // Offset: 16 + keen::LocaTagReference entryName; // Offset: 20 + keen::LocaTagReference unlockMapMarker; // Offset: 36 + keen::ItemReference displayedItem; // Offset: 52 +}; + +struct ecs.NonModalHint { + keen::bool hasCloseRangeActivation; // Offset: 0 + keen::float fullTextActivation; // Offset: 4 + keen::LocaTagReference description; // Offset: 8 + keen::bool hasKnowledeRequirement; // Offset: 24 + keen::bool useSceneKnowledgeRequirement; // Offset: 25 + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 28 + keen::KnowledgeId queryId; // Offset: 132 +}; + +struct ecs.DynamicNonModalHint { + keen::bool isActive; // Offset: 0 + keen::bool isInCloseRange; // Offset: 1 + keen::float squaredPlayerDistance; // Offset: 4 +}; + +struct ecs.TargetingTransform { + keen::AttachmentSlot attachmentSlot; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 +}; + +struct ecs.UiOffsets { + keen::ecs::Offset healthBarOffset; // Offset: 0 + keen::ecs::Offset interactionPromptOffset; // Offset: 40 +}; + +struct ecs.Boss { +}; + +struct ecs.BossHealthBar { + keen::LocaTagReference displayName; // Offset: 0 + keen::float32 maxPlayerDistance; // Offset: 16 +}; + +struct ecs.BossDisplay { + keen::ecs::RangeQueryId rangeQueryId; // Offset: 0 + keen::ecs::EntityId bossEntityId; // Offset: 4 + keen::bool displayHealthBar; // Offset: 8 + keen::bool isEngagedWithPlayer; // Offset: 9 + keen::LocaTagId displayName; // Offset: 12 +}; + +struct ecs.BossMusicTag { + keen::BossMusicType bossMusic; // Offset: 0 +}; + +struct ecs.Faction { + keen::FactionType faction; // Offset: 0 +}; + +struct ecs.ControlCombatTarget { + keen::ecs::EntityId targetId; // Offset: 0 + keen::actor::SequenceRuntimeId attackSequenceId; // Offset: 8 +}; + +struct ecs.ItemState { + keen::InventorySlotId containedInSlotId; // Offset: 0 + keen::ItemId itemId; // Offset: 8 + keen::uint16 baseDamageUi; // Offset: 12 + keen::ItemStateMask itemState; // Offset: 14 + keen::ItemRarity itemRarityUi; // Offset: 15 + keen::uint8 itemLevelUi; // Offset: 16 + keen::uint8 durabilityRatioUi; // Offset: 17 +}; + +enum class ecs.CreateItemLootState { + Start = 0, + WaitForInventorySetup = 1, + WaitForPlayerRevive = 2, + LootCreated = 3, +}; + +struct ecs.CreateItemLoot { + keen::ecs::CreateItemLootState lootCreationState; // Offset: 0 +}; + +struct ecs.ItemEquippedLifetime { +}; + +struct ecs.SpawnedCollectionItem { + keen::ItemId itemId; // Offset: 0 + keen::uint32 modelHandle; // Offset: 4 +}; + +struct ecs.ItemCollectionComponent { + keen::LocaTagReference uiMenuName; // Offset: 0 + keen::LocaTagReference uiSlottingVerb; // Offset: 16 + keen::bool spawnCollectionModels; // Offset: 32 + keen::ObjectReference collection; // Offset: 36 + keen::ObjectReference hierarchy; // Offset: 52 + keen::ObjectReference pose; // Offset: 68 + keen::ObjectReference clothColliderReference; // Offset: 84 + keen::BlobArray slots; // Offset: 100 + keen::HashKey32 poseId; // Offset: 108 +}; + +struct ecs.DynamicItemCollectionComponent { + keen::StaticArray spawnedCollectionItems; // Offset: 0 +}; + +struct ecs.TriggerCollectionCompletionKnowledge { + keen::KnowledgeId completionKnowledgeId; // Offset: 0 +}; + +struct ecs.MovementSensor { + keen::ecs::RangeQueryId queryId; // Offset: 0 +}; + +struct ecs.FleeSensor { + keen::float32 viewConeHalfAngle; // Offset: 0 + keen::float32 alertZoneMediumWidth; // Offset: 4 + keen::float32 originalFleeRadius; // Offset: 8 + keen::float32 fleeRadius; // Offset: 12 + keen::bool checkViewCone; // Offset: 16 + keen::bool checkBackCone; // Offset: 17 + keen::Time ignoreCalmEnemiesUntilTime; // Offset: 24 + keen::ecs::AlertState alertState; // Offset: 32 + keen::ecs::EntityId highestDangerEntityId; // Offset: 36 + keen::WorldPosition highestDangerPosition; // Offset: 40 + keen::bool forceUpdate; // Offset: 64 +}; + +struct ecs.FriendSensor { + keen::float32 checkRadius; // Offset: 0 + keen::StaticArray friendsInRange; // Offset: 4 +}; + +struct ecs.EnemySensor { + keen::float32 checkRadius; // Offset: 0 + keen::uint8 enemiesInRange; // Offset: 4 +}; + +struct ecs.CheckLineAboveSensor { + keen::float32 lineCheckHeightAbove; // Offset: 0 +}; + +struct ecs.SafePlayerPosition { + keen::Time minSafeDuration; // Offset: 0 + keen::float32 minFallHeight; // Offset: 8 +}; + +struct ecs.DynamicSafePlayerPosition { + keen::WorldTransform transform; // Offset: 0 + keen::Time currentSafeDuration; // Offset: 56 +}; + +struct ecs.Crafting { + keen::ObjectReference workshop; // Offset: 0 + keen::WorkshopId workshopId; // Offset: 16 +}; + +struct ecs.LevelBasedModel { + keen::sint32 level; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +struct ecs.LevelBasedBuildingRange { + keen::sint32 level; // Offset: 0 + keen::float3 box; // Offset: 4 +}; + +struct ecs.UpgradableBuildingRange { +}; + +struct ecs.UpgradeData { + keen::ecs::TemplateReference upgradeEntity; // Offset: 0 + keen::sint32 level; // Offset: 16 +}; + +struct ecs.Upgrade { + keen::BlobArray levels; // Offset: 0 +}; + +struct ecs.DynamicUpgrade { + keen::ecs::EntityId entityId; // Offset: 0 + keen::sint32 spawnedLevel; // Offset: 4 +}; + +struct ecs.StoreAttributes { + keen::float32 health; // Offset: 0 + keen::float32 stamina; // Offset: 4 + keen::float32 mana; // Offset: 8 + keen::float32 bodyHeat; // Offset: 12 + keen::bool restoreAttributes; // Offset: 16 +}; + +struct ecs.GrassEffector { +}; + +struct ecs.SnappingBoxWorld { + keen::ecs::AlignedBox worldBox; // Offset: 0 + keen::ecs::AlignedBox snappingBox; // Offset: 24 + keen::ItemId containedItemId; // Offset: 48 + keen::uint8 version; // Offset: 52 +}; + +struct ecs.SnappingBoxLocal { + keen::ecs::AlignedBox localBox; // Offset: 0 + keen::ItemId containedItemId; // Offset: 24 +}; + +struct ecs.TemporaryMining { + keen::int3 voxelPosition; // Offset: 0 + keen::float32 relativeHealth; // Offset: 12 +}; + +struct ecs.ClientCycleInventoryStock { + keen::uint8 inventoryStockType; // Offset: 0 + keen::bool canCycle; // Offset: 1 + keen::bool isCyclingDisabled; // Offset: 2 + keen::bool showStock; // Offset: 3 +}; + +struct ecs.ClientLineOfSightState { + keen::ecs::LineOfSightState lineOfSightState; // Offset: 0 +}; + +struct UiNpcRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +struct ecs.NpcSetup { + keen::LocaTagReference name; // Offset: 0 + keen::bool includeInNpcRegistry; // Offset: 16 + keen::bool isCraftingAssistant; // Offset: 17 + keen::LocaTagReference workshopLabel; // Offset: 20 + keen::CharacterPresetReference preset; // Offset: 36 + keen::GameKnowledgeRequirement unlockRequirement; // Offset: 52 + keen::ItemReference placementItem; // Offset: 156 + keen::UiNpcRenderingOptions uiRendering; // Offset: 172 +}; + +struct ecs.CharacterSetup { + keen::Gender gender; // Offset: 0 + keen::VoicePackId voicePackId; // Offset: 4 + keen::CharacterPresetId presetId; // Offset: 8 + keen::ItemId hair; // Offset: 12 + keen::ItemId beard; // Offset: 16 + keen::ColorPresetId hairColorId; // Offset: 20 + keen::ColorPresetId beardColorId; // Offset: 24 + keen::PaletteColorId skinColor; // Offset: 28 + keen::PaletteColorId eyeBrowColor; // Offset: 32 + keen::PaletteColorId eyeColor; // Offset: 36 + keen::HashKey32 versionHash; // Offset: 40 +}; + +struct ecs.NewCharacterSetup { +}; + +struct ecs.EquipmentCheck { +}; + +struct ecs.PlayerLowHealth { + keen::Time blendOutDuration; // Offset: 0 + keen::Time lastTriggerTime; // Offset: 8 +}; + +struct ecs.GroundCheck { + keen::bool groundPositionFound; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::Time nextCheckTime; // Offset: 32 +}; + +struct ecs.ProcShuffleBag { + keen::uint8 procEarlyCount; // Offset: 0 + keen::uint8 procOnTimeCount; // Offset: 1 + keen::uint8 procLateCount; // Offset: 2 + keen::sint8 nextHitCountOffset; // Offset: 3 +}; + +struct ecs.TerrainLootMemory { + keen::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::float32 restVolumeAfterPayout; // Offset: 8 +}; + +struct ecs.BuildingLootMemory { + keen::uint32 volume; // Offset: 0 +}; + +struct ecs.MinerSkillMemory { + keen::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 payoutCounter; // Offset: 4 +}; + +struct ecs.TerraformingLootMemory { + keen::StaticArray terrainMemory; // Offset: 0 + keen::StaticArray buildingMemory; // Offset: 1536 + keen::ecs::MinerSkillMemory minerSkillMemory; // Offset: 2048 +}; + +struct ecs.TransformToLoot { + keen::ecs::Offset vfxOnSpawnOffset; // Offset: 0 + keen::ecs::DefaultInventoryReference defaultInventory; // Offset: 40 + keen::actor::ActorSequenceReference defaultAction; // Offset: 56 + keen::LocaTagReference verbLoca; // Offset: 72 + keen::VfxReference vfxOnSpawn; // Offset: 88 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::uint8 genericSlotCount; // Offset: 168 + keen::uint8 availableSlotCount; // Offset: 169 + keen::bool keepDefaultInventory; // Offset: 170 + keen::uint32 lootHealth; // Offset: 172 +}; + +struct ecs.PlayerStateIndicatorComponent { + keen::SoundContainerReference soundContainerLowHealth; // Offset: 0 + keen::SoundContainerReference soundContainerLowFogPower; // Offset: 16 + keen::uint32 sfxLowHealthHandle; // Offset: 32 + keen::uint32 sfxLowFogPowerHandle; // Offset: 36 +}; + +struct ecs.Pacify { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::FactionMask pacifyFactions; // Offset: 4 +}; + +struct ecs.PacifiedState { + keen::bool canBePacified; // Offset: 0 + keen::bool isPacified; // Offset: 1 + keen::bool wasPacifyAborted; // Offset: 2 + keen::ecs::EntityId pacifiedBy; // Offset: 4 + keen::Time pacifyEndTime; // Offset: 8 +}; + +struct ecs.CallFactionsForHelp { + keen::float32 callForHelpRange; // Offset: 0 + keen::FactionMask callForHelpFactions; // Offset: 4 + keen::ecs::EntityId currentGuardingEntityId; // Offset: 8 +}; + +struct ecs.DebugCameraDisplay { + keen::float3x4 transform; // Offset: 0 +}; + +struct ecs.CombatFlags { + keen::bool immune; // Offset: 0 + keen::bool propagateHits; // Offset: 1 + keen::bool handleHits; // Offset: 2 + keen::bool canBlock; // Offset: 3 + keen::bool ignoreMagic; // Offset: 4 + keen::bool ignoreMelee; // Offset: 5 + keen::bool ignoreRanged; // Offset: 6 + keen::bool ignoreTool; // Offset: 7 + keen::bool ignoreOther; // Offset: 8 + keen::bool ignoreAoE; // Offset: 9 + keen::bool canBeBackstabbed; // Offset: 10 +}; + +struct ecs.ToggleImmunity { + keen::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.RandomOrientation { + keen::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 0 + keen::bool needsTargetEntity; // Offset: 24 + keen::bool adjustVelocity; // Offset: 25 +}; + +struct ecs.RandomDurationScale { + keen::float min; // Offset: 0 + keen::float max; // Offset: 4 +}; + +struct ecs.Growth { + keen::Time minDuration; // Offset: 0 + keen::ecs::RandomDurationScale randomDurationScale; // Offset: 8 + keen::BlobArray allowedSoil; // Offset: 16 +}; + +struct ecs.GrowthHint { +}; + +struct ecs.DynamicGrowth { + keen::Time nextLevelTime; // Offset: 0 +}; + +struct ecs.EntityTagContainer { + keen::BlobArray tags; // Offset: 0 +}; + +struct ecs.CombatStance { + keen::Time combatStanceDuration; // Offset: 0 + keen::Time combatStanceEndTime; // Offset: 8 +}; + +struct ecs.BenchmarkPoint { +}; + +struct ecs.CopyParentDamageSusceptibility { + keen::bool keepSkillShotAttribute; // Offset: 0 +}; + +enum class ecs.DetachAction { + None = 0, + Destroy = 1, + AddGravity = 2, +}; + +enum class ecs.AttachmentDirection { + Down = 0, + Up = 1, + Left = 2, + Right = 3, + Forward = 4, + Backward = 5, +}; + +struct ecs.AttachToSurface { + keen::ecs::DetachAction detachAction; // Offset: 0 + keen::ecs::DetachAction detachActionInBase; // Offset: 1 + keen::ecs::AttachmentDirection attachDirection; // Offset: 2 + keen::float searchLength; // Offset: 4 + keen::ecs::ColliderMask colliderMask; // Offset: 8 + keen::float yOffset; // Offset: 12 + keen::bool spawnFalling; // Offset: 16 +}; + +struct ecs.DynamicAttachToSurface { + keen::Time searchStartTime; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::ecs::EntityId attachmentContainerId; // Offset: 16 + keen::bool hasFoundContainer; // Offset: 20 + keen::bool shouldDestroy; // Offset: 21 + keen::bool hasAddedGravity; // Offset: 22 +}; + +struct ecs.DangerousArea { + keen::float32 range; // Offset: 0 +}; + +struct ecs.DangerSensor { + keen::float32 checkRadius; // Offset: 0 +}; + +struct ecs.DynamicDangerSensor { + keen::bool hasFoundDangerousEntity; // Offset: 0 + keen::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct ecs.CopyParentLevel { +}; + +struct ecs.ServerSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float maxMaterialSubmergeDepth; // Offset: 4 + keen::float lerpStartValue; // Offset: 8 + keen::float lerpEndValue; // Offset: 12 + keen::Time lerpDuration; // Offset: 16 + keen::Time lerpTime; // Offset: 24 +}; + +struct ecs.NetworkSubmerge { + keen::float submergeDepth; // Offset: 0 +}; + +struct ecs.ClientSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float interpolationSource; // Offset: 4 + keen::float interpolationTarget; // Offset: 8 + keen::uint32 interpolationNewestTick; // Offset: 12 +}; + +struct ecs.SongState { + keen::Time joinTime; // Offset: 0 + keen::Time songStartTime; // Offset: 8 + keen::SongId songId; // Offset: 16 + keen::uint16 songClusterId; // Offset: 20 +}; + +struct ecs.CustomPlayerString { + keen::CustomStringId stringId; // Offset: 0 +}; + +struct ecs.SongSelection { + keen::SongId selectedSongId; // Offset: 0 +}; + +struct ecs.Extinguish { + keen::SoundContainerReference extinguishSfx; // Offset: 0 +}; + +struct ecs.DynamicExtinguish { + keen::Time extinguishDetectionTime; // Offset: 0 + keen::Time lastToggle; // Offset: 8 + keen::float32 extinguishValue; // Offset: 16 + keen::bool switchedToggleOff; // Offset: 20 +}; + +struct ecs.ClientExtinguish { + keen::Time lastNotifyTime; // Offset: 0 + keen::float32 visualizedExtinguishValue; // Offset: 8 +}; + +struct ecs.PackedExtinguish { + keen::Time lastToggleTime; // Offset: 0 + keen::float32 extinguishValue; // Offset: 8 + keen::bool switchedToggleOff; // Offset: 12 +}; + +struct ecs.FoodBait { +}; + +struct ecs.RayCastSpawner { + keen::ecs::TemplateReference spawnTemplate; // Offset: 0 + keen::ecs::Offset rayOffset; // Offset: 16 + keen::float requiredDistanceToSpawnEntity; // Offset: 56 + keen::Time minLifeTime; // Offset: 64 + keen::Time maxLifeTime; // Offset: 72 +}; + +struct ecs.DynamicRayCastSpawner { + keen::WorldPosition lastSpawnPosition; // Offset: 0 +}; + +struct ecs.WaterSurfaceFX { + keen::VfxReference standingVfx; // Offset: 0 + keen::VfxReference movingVfx; // Offset: 16 + keen::SoundContainerReference waterSfx; // Offset: 32 + keen::uint32 vfxHandle; // Offset: 48 + keen::uint32 sfxHandle; // Offset: 52 + keen::float3 previousPlayerPosition; // Offset: 56 + keen::bool playerWasMoving; // Offset: 68 +}; + +struct ecs.MoveColliderWithRay { + keen::float targetLength; // Offset: 0 + keen::Time increaseLengthDuration; // Offset: 8 +}; + +struct ecs.DynamicMoveColliderWithRay { + keen::Time startTime; // Offset: 0 +}; + +struct ecs.WaterDispenser { + keen::bool visualOnly; // Offset: 0 +}; + +struct ecs.WaterDrain { +}; + +enum class GameMessageChannelId { + Login = 0, + ServerInfo = 1, + VoxelWorld = 2, + EcsClient = 3, + EcsPrediction = 4, + Input = 5, + SaveGame = 6, + Knowledge = 7, + Debug = 8, + EcsReset = 9, + VoiceChat = 10, + CustomPlayerStrings = 11, + Water = 12, + TwitchDrop = 13, + Weather = 14, +}; + +enum class GameMessageLoginType { + Login = 0, + SystemsReady = 1, + GameplayReady = 2, + Logout = 3, +}; + +enum class GameMessageLoginErrors { + Authentication = 0, + Version = 1, + Full = 2, + Shutdown = 3, + SaveDataIssue = 4, + Generic = 5, +}; + +enum class GameMessageLoginResult { + Ok = 0, + Failed = 1, +}; + +struct DaytimeSync { + keen::Time ecsTime; // Offset: 0 + keen::Time gameTime; // Offset: 8 + keen::float32 gameTimeScale; // Offset: 16 +}; + +struct DebugMessage { + keen::float3 cameraTarget; // Offset: 0 +}; + +struct KnownUserData { + keen::CharacterId characterId; // Offset: 0 + keen::BaseId baseId; // Offset: 16 +}; + +struct KnownUsers { + keen::uint32 version; // Offset: 0 + keen::BlobArray users; // Offset: 4 +}; + +enum class BaseState { + Default = 0, + Abandoned = 1, +}; + +struct EntitySaveData { + keen::WorldTransform transform; // Offset: 0 + keen::bool forcedSave; // Offset: 56 + keen::BlobArray entityData; // Offset: 60 +}; + +struct BaseSaveData { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::BlobArray voxel; // Offset: 48 + keen::BlobArray water; // Offset: 56 +}; + +struct ServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::BlobArray bases; // Offset: 4 + keen::BlobArray entities; // Offset: 12 + keen::BlobArray progressEntity; // Offset: 20 + keen::BlobArray entitySerializationContext; // Offset: 28 + keen::Time playTime; // Offset: 40 +}; + +enum class ServerSaveGameVersion { + V_0 = 0, + V_1 = 1, + V_2 = 2, + V_3_FirstWorldOffset = 3, + V_4_DeduplicateEntitiesOnLoad = 4, + V_5_UnlockWorldDialogKnowledge = 5, + V_6_KnowledgeRename = 6, + V_7_Water = 7, +}; + +struct ExtendedServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::uint32 sceneOffsetChangeCounter; // Offset: 4 + keen::Time dayTime; // Offset: 8 +}; + +enum class ExtendedServerSaveGameVersion { + V_0 = 0, + V_1_DayTime = 1, +}; + +enum class ecs.GameSettingsPreset { + Default = 0, + Relaxed = 1, + Hard = 2, + Survival = 3, + Custom = 4, +}; + +struct ServerSaveGameMeta { + keen::uint32 version; // Offset: 0 + keen::CalendarTimeStamp lastPlayTime; // Offset: 8 + keen::uint32 progressLevel; // Offset: 16 + keen::string name; // Offset: 20 + keen::Time playTime; // Offset: 32 + keen::ecs::GameSettingsPreset gameSettingsPreset; // Offset: 40 +}; + +struct UnlockedItemKnowledgeSave { + keen::uint32 version; // Offset: 0 + keen::ItemId itemId; // Offset: 4 + keen::ItemKnowledgeMask knowledge; // Offset: 8 +}; + +struct CustomMapMarkerArray { + keen::BlobArray mapMarkers; // Offset: 0 +}; + +struct CharacterSaveGameEntry { + keen::string name; // Offset: 0 + keen::CharacterId id; // Offset: 8 + keen::CharacterId cloudId; // Offset: 24 + keen::CalendarTimeStamp lastPlayTime; // Offset: 40 + keen::uint32 version; // Offset: 48 + keen::uint32 level; // Offset: 52 + keen::CharacterStateMask stateMask; // Offset: 56 + keen::CustomMapMarkerArray customMapMarker; // Offset: 60 + keen::BlobArray data; // Offset: 68 +}; + +struct ItemColorSetupInternal { + keen::ColorCombinationResource colorIds; // Offset: 0 + keen::bool isSet; // Offset: 12 +}; + +struct OutfitItemData { + keen::ItemId itemId; // Offset: 0 + keen::ItemColorSetupInternal colors; // Offset: 4 +}; + +struct OutfitArray { + keen::StaticArray data; // Offset: 0 +}; + +struct CharacterOutfit { + keen::uint32 version; // Offset: 0 + keen::OutfitArray items; // Offset: 4 + keen::ecs::CharacterSetup setup; // Offset: 484 +}; + +struct old_saves.v6.BaseSaveDataV6 { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::WorldTransform DEPRECATEDtransform; // Offset: 48 + keen::BlobArray voxel; // Offset: 104 +}; + +struct old_saves.v6.ServerSaveGameV6 { + keen::uint32 version; // Offset: 0 + keen::BlobArray bases; // Offset: 4 + keen::BlobArray entities; // Offset: 12 + keen::BlobArray progressEntity; // Offset: 20 + keen::BlobArray entitySerializationContext; // Offset: 28 + keen::Time playTime; // Offset: 40 +}; + +struct ecs.CameraShake { + keen::float32 trauma; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::ecs::EntityId triggerId; // Offset: 24 +}; + +struct ecs.CameraShakeImpulse { + keen::float3 impulse; // Offset: 8 + keen::float additionalTrauma; // Offset: 20 + keen::Time duration; // Offset: 24 + keen::ecs::EntityId triggerId; // Offset: 32 +}; + +struct ecs.UiCurrentLocationEvent { + keen::LocaTagId location; // Offset: 8 +}; + +struct ecs.UiNegativeFeedbackEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::LocaTagReference messageLocaTag; // Offset: 12 +}; + +struct ecs.UiInsufficientResourcesEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId itemSlotId; // Offset: 12 + keen::ResourceTypesMask flags; // Offset: 20 +}; + +struct ecs.UiResourcesFullEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId buffEntityId; // Offset: 12 + keen::InventorySlotId itemSlotId; // Offset: 16 + keen::ResourceTypesMask flags; // Offset: 24 +}; + +struct ecs.AppliedBuffEvent { + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::BuffSlotType slotType; // Offset: 12 + keen::uint32 slotTypeCount; // Offset: 16 +}; + +struct ecs.UiInventoryStockCycleEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool selectionResult; // Offset: 12 +}; + +struct ecs.UiBuildingEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool isUndoAction; // Offset: 12 + keen::bool isSuccessful; // Offset: 13 +}; + +struct ecs.UiItemTriggerFailedEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId itemSlotId; // Offset: 12 + keen::EquipmentSlotType equipmentSlotType; // Offset: 20 +}; + +struct ecs.UnlockSkillEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlearnSkillEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlockPerkEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.TrashItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.SelectDialogOptionEvent { + keen::ecs::EntityId interactingEntityId; // Offset: 8 + keen::LocaTagId selectedOptionId; // Offset: 12 + keen::KnowledgeId knowledgeId; // Offset: 16 +}; + +struct ecs.NpcInputEvent { + keen::NpcId npcId; // Offset: 8 + keen::float roamingRange; // Offset: 12 +}; + +struct ecs.TriggerKnowledgeUiEvent { + keen::KnowledgeId knowledgeId; // Offset: 8 +}; + +struct ecs.SetPersonalQuestProgressionEvent { + keen::bool enable; // Offset: 8 +}; + +struct ecs.ServerSelectDialogOptionEvent { + keen::ecs::EntityId npcEntity; // Offset: 8 + keen::ecs::EntityId playerEntity; // Offset: 12 + keen::LocaTagId selectedOptionId; // Offset: 16 +}; + +struct ecs.BuildingPlaceEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::CollisionFeedbackMaterialReference material; // Offset: 60 + keen::ItemId trackingItemId; // Offset: 76 +}; + +struct ecs.BuildingPickUpEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +struct ecs.BuildingTearDownEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +struct ecs.ProhibitedHit { + keen::CollisionFeedbackMaterialReference materialA; // Offset: 8 + keen::CollisionFeedbackMaterialReference materialB; // Offset: 24 + keen::float3 position; // Offset: 40 + keen::float3 normal; // Offset: 52 + keen::ecs::EntityId rootSourceId; // Offset: 64 + keen::ecs::EntityId targetId; // Offset: 68 +}; + +struct ecs.TerraformingHitEvent { + keen::float32 range; // Offset: 184 +}; + +enum class ecs.HitCandidateType { + Entity = 0, + Terrain = 1, + Building = 2, +}; + +struct ecs.HitCandidate { + keen::float3 sourceVelocity; // Offset: 248 + keen::WorldTransform sourceTransform; // Offset: 264 + keen::sint32 sourceManaCost; // Offset: 320 + keen::ecs::HitCandidateType candidateType; // Offset: 324 + keen::bool propagate; // Offset: 325 + keen::bool sendHitEvent; // Offset: 326 + keen::bool ignoreConsecutiveHits; // Offset: 327 +}; + +struct ecs.ResourceCandidate { + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::HashKey32 attributeId; // Offset: 12 + keen::sint32 change; // Offset: 16 +}; + +struct ecs.ResourceChange { + keen::uint32 gain; // Offset: 0 + keen::uint32 loss; // Offset: 4 +}; + +struct ecs.ResourceChangeEvent { + keen::ecs::EntityId targetEntityId; // Offset: 8 + keen::ecs::ResourceChange healthChange; // Offset: 12 + keen::ecs::ResourceChange manaChange; // Offset: 20 + keen::ecs::ResourceChange staminaChange; // Offset: 28 +}; + +struct ecs.EnemyAttackStartedEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.CallForHelpEvent { + keen::ecs::EntityId noticingEntityId; // Offset: 8 + keen::float3 noticingEntityPosition; // Offset: 12 + keen::ecs::EntityId noticedEntityId; // Offset: 24 + keen::float3 noticedEntityPosition; // Offset: 28 + keen::float32 radius; // Offset: 40 + keen::bool checkSight; // Offset: 44 + keen::FactionMask factions; // Offset: 46 +}; + +struct ecs.EnemyIsHelpingEvent { + keen::ecs::EntityId helpingEntityId; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 12 +}; + +struct ecs.GenericEnemyEvent { + keen::ecs::EntityId enemyEntityId; // Offset: 8 + keen::ecs::EnemyEventType eventType; // Offset: 12 +}; + +struct ecs.NoiseEvent { + keen::ecs::EntityId senderId; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::float32 range; // Offset: 24 +}; + +struct ecs.ChildDestroyed { + keen::ecs::EntityId childId; // Offset: 8 + keen::ecs::EntityId parentId; // Offset: 12 +}; + +struct ecs.PickupEvent { + keen::float3 position; // Offset: 8 + keen::ItemId itemId; // Offset: 20 + keen::uint32 itemCount; // Offset: 24 + keen::ecs::EntityId pickedUpByEntityId; // Offset: 28 + keen::ecs::EntityId pickedUpFromEntityId; // Offset: 32 + keen::InventorySlotId targetSlotId; // Offset: 36 +}; + +enum class InventoryCategory { + Invalid = 0, + Customization = 1, + Equipment = 2, + Currency = 3, + Generic = 4, + Virtual = 5, +}; + +typedef keen::Bitmask8 InventoryCategoryMask; + +struct ecs.InventoryFull { + keen::ecs::EntityId pickedUpById; // Offset: 8 + keen::ecs::EntityId pickedUpFromId; // Offset: 12 + keen::InventoryCategoryMask mask; // Offset: 16 +}; + +struct ecs.XPGainedEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint32 amount; // Offset: 12 + keen::ExperienceSourceType source; // Offset: 16 +}; + +struct ecs.PuzzleCompletedEvent { + keen::StaticArray clusterPlayerEntityIds; // Offset: 8 +}; + +struct ecs.LevelUpEvent { + keen::WorldPosition position; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 32 + keen::Time duration; // Offset: 40 + keen::sint32 level; // Offset: 48 +}; + +struct ecs.AcceptOfferedInteractionEvent { + keen::ecs::EntityId guestEntityId; // Offset: 8 + keen::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.InteractionAcceptedEvent { + keen::ecs::EntityId guestEntityId; // Offset: 8 + keen::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.SetToggleStateEvent { + keen::ecs::EntityId senderId; // Offset: 8 + keen::SignalId signalId; // Offset: 12 + keen::bool newState; // Offset: 16 +}; + +struct ecs.ToggleInteractionEvent { + keen::ecs::EntityId guestId; // Offset: 8 + keen::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.ActionbarSelectionEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ActionbarSlotSelection selectedIndex; // Offset: 12 +}; + +struct ecs.InventoryStockSelectionEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint8 inventoryStockType; // Offset: 12 + keen::ItemId selectedItemId; // Offset: 16 +}; + +struct ecs.ChangeEquipmentEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId inventorySlotId; // Offset: 12 + keen::EquipmentSlot equipmentSlot; // Offset: 20 + keen::ecs::ChangeEquipment type; // Offset: 21 +}; + +struct ecs.SwapEquipmentSetEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId targetInventoryId; // Offset: 12 + keen::ecs::SwapEquipmentTarget type; // Offset: 16 +}; + +struct ecs.HandleEquipmentSlotChangedEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::EquipmentSlot equipmentSlot; // Offset: 12 +}; + +struct ecs.ConsumeItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId inventorySlotId; // Offset: 12 +}; + +struct ecs.InspectItemEvent { + keen::InventorySlotId inventorySlotId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 16 +}; + +struct ecs.UiCreateBuildingItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ActionbarSlotSelection selectedIndex; // Offset: 12 + keen::ItemId itemId; // Offset: 16 +}; + +struct ecs.UiCreateNpcItemEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ItemId itemId; // Offset: 12 +}; + +struct ecs.TeleportPlayerEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 12 + keen::float3 targetWorldPosition; // Offset: 16 +}; + +struct ecs.TransferItemToInventoryEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId targetInventoryId; // Offset: 12 + keen::InventorySlotId targetSlotId; // Offset: 16 + keen::ecs::EntityId sourceInventoryId; // Offset: 24 + keen::InventorySlotId sourceSlotId; // Offset: 28 + keen::InventoryActionType type; // Offset: 36 + keen::ecs::TransferItemToInventoryFlags flags; // Offset: 37 + keen::uint16 amount; // Offset: 38 +}; + +struct ecs.SortInventoryEvent { + keen::ecs::EntityId targetInventoryId; // Offset: 8 +}; + +struct ecs.LootInteractionEvent { + keen::ecs::EntityId guestId; // Offset: 8 + keen::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 + keen::bool lootAll; // Offset: 20 + keen::bool forAllPlayers; // Offset: 21 + keen::StaticArray knowledgeIds; // Offset: 24 +}; + +struct ecs.UiCraftRecipeEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.UiAutomaticTransferEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 + keen::ItemId itemId; // Offset: 20 + keen::uint16 amount; // Offset: 24 +}; + +struct ecs.UiSelectCraftingStationRecipeEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 +}; + +struct ecs.CraftRecipeEvent { + keen::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ecs::EntityId craftingStationId; // Offset: 12 + keen::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.CraftRecipeSuccessEvent { + keen::WorkshopId workshopId; // Offset: 8 + keen::RecipeId recipeId; // Offset: 12 +}; + +struct ecs.UiPinRecipeEvent { + keen::RecipeId recipeId; // Offset: 8 + keen::bool pinRecipe; // Offset: 12 +}; + +struct ecs.UiWaypointEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 + keen::bool enable; // Offset: 40 +}; + +struct ecs.UiPingEvent { + keen::ecs::EntityId senderEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 +}; + +struct ecs.UiPingInputEvent { +}; + +typedef keen::HashKey32 MapMarkerTypeId; + +struct ecs.UiAddMapMarkerEvent { + keen::WorldPosition position; // Offset: 8 + keen::uint8 colorScheme; // Offset: 32 + keen::MapMarkerTypeId type; // Offset: 36 +}; + +struct ecs.UiRemoveMapMarkerEvent { + keen::uint32 handle; // Offset: 8 +}; + +struct ecs.ChangeCustomizationEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::InventorySlotId targetSlotId; // Offset: 12 + keen::ItemId itemId; // Offset: 20 +}; + +struct ecs.OpenHudScreenEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId interactionHostId; // Offset: 12 + keen::HudScreenType screen; // Offset: 16 +}; + +struct ecs.KillFaction { + keen::FactionMask factionMask; // Offset: 8 + keen::uint32 playerMask; // Offset: 12 +}; + +struct ecs.StartFlyingEvent { + keen::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.StopFlyingEvent { + keen::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.EnterFlyingStateEvent { + keen::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.SyncedAttackEvent { + keen::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 12 + keen::Time resolveTime; // Offset: 16 + keen::ecs::SyncedAttackType type; // Offset: 24 +}; + +struct ecs.SyncedSequenceEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::ecs::EntityId triggeringEntityId; // Offset: 12 + keen::actor::ActorSequenceReference sequence; // Offset: 16 +}; + +struct ecs.VisceralAttackExecutedEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.OnDestroyNotifyEvent { + keen::WorldTransform transform; // Offset: 8 + keen::Guid type; // Offset: 64 + keen::float3 hitDirection; // Offset: 80 +}; + +enum class ecs.NotifyEventType { + Normal = 0, + Sfx = 1, + Vfx = 2, +}; + +struct ecs.NotifyEvent { + keen::ecs::Offset offset; // Offset: 8 + keen::WorldTransform transform; // Offset: 48 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::ecs::EntityId sourceEntityId; // Offset: 168 + keen::actor::SequenceRuntimeId sequenceId; // Offset: 176 + keen::uint32 slot; // Offset: 200 + keen::Guid typeGuid; // Offset: 204 + keen::ecs::NotifyEventType type; // Offset: 220 + keen::bool attach; // Offset: 221 + keen::bool canBeCanceled; // Offset: 222 +}; + +struct ecs.NotifyEnvFxEvent { + keen::Guid eventGuid; // Offset: 8 + keen::EnvironmentEffectType environmentEffectType; // Offset: 24 + keen::ecs::EntityId sourceEntityId; // Offset: 28 + keen::AttachmentSlot slot; // Offset: 32 + keen::ecs::Offset offset; // Offset: 36 + keen::bool attach; // Offset: 76 + keen::float32 rayOffsetY; // Offset: 80 + keen::float32 rayLength; // Offset: 84 +}; + +struct ecs.FootDown { + keen::EnvironmentEffectType environmentEffectType; // Offset: 8 + keen::ecs::EntityId sourceEntityId; // Offset: 12 + keen::AttachmentSlot slot; // Offset: 16 + keen::ecs::Offset offset; // Offset: 20 +}; + +struct ecs.FoleyEnvEvent { + keen::Guid eventGuid; // Offset: 8 + keen::FoleyType foleyFxType; // Offset: 24 + keen::ecs::EntityId sourceEntityId; // Offset: 28 +}; + +struct ecs.RegisterControlledCombatTargetEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.UnregisterControlledCombatTargetEvent { + keen::ecs::EntityId attackerId; // Offset: 8 + keen::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.LoreRead { + keen::LocaTagId locaTag; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.ItemUsed { + keen::ItemId itemId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.StartPlaySongEvent { + keen::ecs::EntityId playerId; // Offset: 8 + keen::SongId songId; // Offset: 12 +}; + +enum class ecs.SequenceTerminationReason { + Finished = 0, + AbortedDefault = 1, + AbortedDeath = 2, + AbortedMovement = 3, + AbortedInteract = 4, + AbortedFollowUp = 5, + AbortedExternalOverride = 6, + AbortedStopEntity = 7, +}; + +struct ecs.ItemKnowledgeGained { + keen::ItemId itemId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 + keen::ItemKnowledgeMask gainedKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeTriggerEvent { + keen::KnowledgeId knowledgeId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 + keen::bool removeKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeUnlockedEvent { + keen::KnowledgeId knowledgeId; // Offset: 8 + keen::ecs::EntityId playerEntityId; // Offset: 12 +}; + +enum class ecs.KnowledgeType { + None = 0, + Dialog = 1, + JournalEntry = 2, + JournalCompletion = 3, + Recipe = 4, + MapMarker = 5, + NpcUnlock = 6, +}; + +struct ecs.KnowledgeGained { + keen::ecs::KnowledgeType targetType; // Offset: 8 + keen::WorkshopId workshopId; // Offset: 12 + keen::NpcId npcId; // Offset: 16 + keen::RecipeId recipeId; // Offset: 20 + keen::JournalEntryId journalId; // Offset: 24 + keen::ecs::EntityId mapMarkerEntityId; // Offset: 28 +}; + +struct ecs.ParryEvent { + keen::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ecs::EntityId blockerEntityId; // Offset: 12 + keen::sint32 staminaDrain; // Offset: 16 +}; + +struct ecs.CookingEvent { + keen::ecs::Offset attachmentOffset; // Offset: 8 + keen::ecs::EntityId cookedEntityId; // Offset: 48 + keen::ItemId itemId; // Offset: 52 + keen::AttachmentSlot attachmentSlot; // Offset: 56 + keen::bool burned; // Offset: 57 +}; + +struct ecs.PlayerBaseChangeEvent { + keen::CharacterId playerCharacterId; // Offset: 8 + keen::BaseId baseId; // Offset: 24 +}; + +struct ecs.KickPlayerEvent { + keen::ecs::EntityId playerToKick; // Offset: 8 +}; + +struct ecs.FlameAltarEvent { + keen::ecs::EntityId playerEntityId; // Offset: 8 + keen::ecs::EntityId baseEntityId; // Offset: 12 + keen::ecs::FlameAltarActionType type; // Offset: 16 +}; + +struct ecs.EntityDiedEvent { + keen::ecs::EntityId deadEntityId; // Offset: 8 +}; + +struct ecs.ActivateFactionPacifyEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::FactionType faction; // Offset: 12 +}; + +struct ecs.ActivateFactionCallForHelpEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::FactionType faction; // Offset: 12 +}; + +struct ecs.StartGuardingEvent { + keen::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.StopGuardingEvent { + keen::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.DestroyedWithoutSurfaceEvent { + keen::WorldTransform transform; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 64 + keen::CollisionFeedbackMaterialReference material; // Offset: 68 +}; + +struct ecs.TransformedToLootEvent { + keen::ecs::EntityId entityId; // Offset: 8 + keen::VfxUserEffectParameterDataBlock overwriteVfxParameters; // Offset: 12 + keen::bool useVfxDefaultParameters; // Offset: 76 +}; + +struct ecs.GameSettingsChangedEvent { + keen::ecs::GameSettings newSettings; // Offset: 8 +}; + +struct ecs.SetEnemyVariableEvent { + keen::ecs::EntityId enemyId; // Offset: 8 + keen::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ecs.UiWorldEvent { + keen::HashKey32 worldEventId; // Offset: 8 +}; + +struct ecs.DebugHitRequest { + keen::ecs::EntityId targetEntityId; // Offset: 0 + keen::WorldTransform sourceTransform; // Offset: 8 + keen::impact::MajorDirection majorHitDirection; // Offset: 64 +}; + +struct ecs.DebugHitResult { + keen::float3 hitPosition; // Offset: 0 + keen::float3 hitNormal; // Offset: 12 + keen::float3 hitDirection; // Offset: 24 + keen::float32 hitAngle; // Offset: 36 + keen::bool hit; // Offset: 40 +}; + +struct GuidRegistryResource { + keen::BlobArray guids; // Offset: 0 +}; + +enum class impact.ImpactFilter { + Player = 0, + Enemy = 1, +}; + +enum class impact.AttackFlags { + CanBeBlocked = 0, +}; + +struct impact.DamageData { +}; + +struct impact.DamageConfig { +}; + +struct impact.SphereColliderConfig { +}; + +struct impact.ImpactQueryResult { + keen::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::ecs::QueryResultFlags flags; // Offset: 28 +}; + +enum class impact.Flags { + Initialized = 0, + Executed = 1, + CleanupDone = 2, + Halt = 3, + Error = 4, + Result_DestroyEntity = 5, +}; + +struct impact.DebugServerImpactMessage { + keen::impact::ImpactId id; // Offset: 0 +}; + +struct impact.DebugImpactRequestMessage { + keen::Guid impactGuid; // Offset: 0 +}; + +struct impact.DebugImpcatState { + keen::uint16 rPC; // Offset: 0 + keen::uint16 rSP; // Offset: 2 + keen::uint16 rFP; // Offset: 4 + keen::Bitmask8 flags; // Offset: 6 + keen::BlobArray stack; // Offset: 8 + keen::BlobArray data; // Offset: 16 +}; + +struct impact.DebugImpactFunctionCall { + keen::uint16 pc; // Offset: 0 + keen::impact::DebugImpcatState beforeUpdate; // Offset: 4 + keen::impact::DebugImpcatState afterUpdate; // Offset: 28 +}; + +struct impact.DebugImpactData { + keen::ecs::EntityId rootId; // Offset: 0 + keen::impact::DebugImpcatState beforeUpdate; // Offset: 4 + keen::impact::DebugImpcatState afterUpdate; // Offset: 28 + keen::BlobArray calls; // Offset: 52 + keen::BlobArray programCounter; // Offset: 60 + keen::BlobArray appliedConfigurations; // Offset: 68 +}; + +struct impact.DebugImpact { + keen::Guid impactId; // Offset: 0 + keen::uint32 tick; // Offset: 16 + keen::ecs::EntityId impactEntityId; // Offset: 20 + keen::impact::DebugImpactData data; // Offset: 24 +}; + +enum class ImpactOps { + INVALID = 0, + IADD = 1, + ISUB = 2, + IMUL = 3, + IDIV = 4, + ILT = 5, + IEQ = 6, + ILEQ = 7, + BR = 8, + BRT = 9, + BRF = 10, + ICONST = 11, + ICONST0 = 12, + ICONST1 = 13, + INC = 14, + DEC = 15, + COPY = 16, + DUP = 17, + CALL = 18, + ECALL = 19, + RET = 20, + LOAD = 21, + GLOAD = 22, + STORE = 23, + GSTORE = 24, + LTIME = 25, + TIMEFF = 26, + POP = 27, + RVM = 28, + DSELF = 29, + HALT = 30, +}; + +enum class impact.ImpcatValueNumberFormat { + Normal = 0, + Percentage = 1, + Duration = 2, + Numberless = 3, +}; + +typedef keen::ObjectReference impact.ConfigIdReference; + +struct impact.ImpactConfig { + keen::LocaTagReference locaTag; // Offset: 0 + keen::bool isSigned; // Offset: 16 + keen::impact::ImpcatValueNumberFormat valueFormat; // Offset: 17 + keen::impact::ConfigIdReference id; // Offset: 20 + keen::HashKey32 configId; // Offset: 36 + keen::HashKey32 type; // Offset: 40 + keen::Guid configGuid; // Offset: 44 + keen::Guid objectId; // Offset: 60 +}; + +struct impact.BuffImpactConfig { + keen::BuffTypeReference value; // Offset: 76 +}; + +struct impact.EnemyVariableImpactConfig { + keen::enemy01::EnemyVariableReference value; // Offset: 76 +}; + +struct impact_nodes.ImpactNode { + keen::Vector2 uiPosition; // Offset: 0 +}; + +struct impact_nodes.ImpactValueNode { + keen::impact::ConfigIdReference id; // Offset: 8 + keen::LocaTagReference locaTag; // Offset: 24 + keen::bool isSigned; // Offset: 40 + keen::impact::ImpcatValueNumberFormat valueFormat; // Offset: 41 + keen::Guid objectId; // Offset: 44 +}; + +struct impact_nodes.BuffValueNode { + keen::BuffTypeReference value; // Offset: 60 +}; + +struct impact_nodes.ImpactExecutableNode { +}; + +struct impact_nodes.ApplyBuff { + keen::BuffTypeReference buffInput; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 24 + keen::impact::DamageSetup damageSetup; // Offset: 28 + keen::Time durationInput; // Offset: 80 +}; + +struct impact_nodes.ImpactBranchNode { +}; + +struct impact_nodes.ImpactNodeExecutionBranch { +}; + +struct impact_nodes.IfBranchNode { + keen::bool negate; // Offset: 8 + keen::impact_nodes::ImpactNodeExecutionBranch ifBranch; // Offset: 9 + keen::impact_nodes::ImpactNodeExecutionBranch elseBranch; // Offset: 10 +}; + +struct impact_nodes.HasBuffNode { + keen::BuffTypeReference buffInput; // Offset: 12 + keen::ecs::EntityId targetEntityId; // Offset: 28 +}; + +struct impact_nodes.RemoveBuff { + keen::BuffTypeReference buffInput; // Offset: 8 + keen::ecs::EntityId targetEntityId; // Offset: 24 + keen::bool wasRemoved; // Offset: 28 +}; + +struct ecs.ImpactHierarchy { + keen::ecs::EntityId parentImpactId; // Offset: 0 + keen::ecs::EntityId rootImpactId; // Offset: 4 + keen::ecs::EntityId weaponPideId; // Offset: 8 + keen::ecs::EntityId permissionCheckId; // Offset: 12 +}; + +struct ecs.ImpactItemConfig { + keen::ItemInstanceInfo usedItem; // Offset: 0 + keen::ItemInstanceInfo ammunitionItem; // Offset: 20 + keen::PerkId usedPerkId; // Offset: 40 +}; + +struct ecs.SequenceEventCollider { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.SequenceEventImpactConfig { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.ImpactConfiguration { + keen::impact::Configurations configValues; // Offset: 0 + keen::impact::DamageDistribution damageDistribution; // Offset: 8 + keen::bool damageDistributionIsSet; // Offset: 60 +}; + +struct ecs.ImpactDirection { + keen::impact::MajorDirection direction; // Offset: 0 +}; + +struct ecs.Impact { + keen::ImpactProgramReference program; // Offset: 0 + keen::impact::ImpactId impactId; // Offset: 16 +}; + +struct ecs.ImpactHalted { +}; + +typedef keen::uint32 ImpactCommand; + +enum class TerraformingType { + Remove = 0, + Add = 1, + Flatten = 2, + FlattenHorizontal = 3, +}; + +enum class WeaponCategoryType { + OneHandAxe = 0, + OneHandClub = 1, + OneHandSword = 2, + RangedBow = 3, + RangedStaff = 4, + RangedWand = 5, + TwoHandAxe = 6, + TwoHandClub = 7, + TwoHandHammer = 8, + UnarmedFists = 9, + Throwable = 10, + Dagger = 11, +}; + +typedef keen::Bitmask16 WeaponCategoryTypeMask; + +enum class VisceralAttackType { + Invalid = 0, + Sneak = 1, + Merciless = 2, +}; + +typedef keen::HashKey32 impact.ProgramId; + +typedef keen::HashKey32 impact.VariableTypeId; + +struct impact.ConfigId { +}; + +typedef keen::HashKey32 impact.ConfigIdHash; + +struct impact.ConfigIdCollection { +}; + +struct impact.ConfigValueId { + keen::uint32 value; // Offset: 0 +}; + +struct impact.TypedValue32 { +}; + +struct impact.FloatImpactConfig { + keen::float32 value; // Offset: 76 +}; + +struct impact.Uint32ImpactConfig { + keen::uint32 value; // Offset: 76 +}; + +struct impact.Sint32ImpactConfig { + keen::sint32 value; // Offset: 76 +}; + +struct impact.BoolImpactConfig { + keen::bool value; // Offset: 76 +}; + +struct impact.Float2ImpactConfig { + keen::float2 value; // Offset: 76 +}; + +struct impact.Float3ImpactConfig { + keen::float3 value; // Offset: 76 +}; + +struct impact.Float4ImpactConfig { + keen::float4 value; // Offset: 76 +}; + +struct impact.TemplateImpactConfig { + keen::ecs::TemplateReference value; // Offset: 76 +}; + +struct impact.EntityTagImpactConfig { + keen::ecs::EntityTagReference value; // Offset: 76 +}; + +struct impact.MaterialImpactConfig { + keen::CollisionFeedbackMaterialReference value; // Offset: 76 +}; + +struct impact.TimeImpactConfig { + keen::Time value; // Offset: 80 +}; + +struct impact.FactionImpactConfig { + keen::FactionType value; // Offset: 76 +}; + +struct impact.AttributeReferenceConfig { + keen::AttributeReference value; // Offset: 76 +}; + +struct impact.VisceralAttackTypeConfig { + keen::VisceralAttackType value; // Offset: 76 +}; + +struct impact.DamageTerraformingSetup { + keen::sint32 softDamage; // Offset: 0 + keen::sint32 slightlyHardDamage; // Offset: 4 + keen::sint32 moderatelyHardDamage; // Offset: 8 + keen::sint32 hardDamage; // Offset: 12 + keen::sint32 veryHardDamage; // Offset: 16 +}; + +struct impact.DamageTerraformingRuntimeSetup { + keen::float32 woodDamageMod; // Offset: 20 + keen::float32 stoneDamageMod; // Offset: 24 + keen::float32 metalDamageMod; // Offset: 28 +}; + +struct impact.DamageTerraformingSetupConfig { + keen::impact::DamageTerraformingSetup value; // Offset: 76 +}; + +struct impact.ArmorDistribution { + keen::float32 physical; // Offset: 0 + keen::float32 blunt; // Offset: 4 + keen::float32 pierce; // Offset: 8 + keen::float32 cut; // Offset: 12 + keen::float32 magical; // Offset: 16 + keen::float32 fire; // Offset: 20 + keen::float32 ice; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 lightning; // Offset: 32 +}; + +struct impact.TerraformingTypeConfig { + keen::TerraformingType value; // Offset: 76 +}; + +enum class impact.DamageTypeNew { + Physical_Cut = 0, + Physical_Pierce = 1, + Physical_Blunt = 2, + Magical_Fire = 3, + Magical_Ice = 4, + Magical_Fog = 5, + Magical_Lightning = 6, + Healing = 7, + Poison = 8, + Wood = 9, + Stone = 10, + Metal = 11, + Explosion = 12, +}; + +struct impact.AttackCategoryMaskConfig { + keen::impact::AttackCategoryMask value; // Offset: 76 +}; + +typedef keen::ObjectReference WeaponCategoryReference; + +struct impact.WeaponCategoryConfig { + keen::WeaponCategoryReference value; // Offset: 76 +}; + +struct impact.MajorDirectionConfig { + keen::impact::MajorDirection value; // Offset: 76 +}; + +struct impact.HitReactionTypeConfig { + keen::impact::HitReactionType value; // Offset: 76 +}; + +struct impact.PushBackForceConfig { + keen::impact::PushBackForce value; // Offset: 76 +}; + +enum class impact.EventStream { + OnCollision = 0, + OnHit = 1, + OnParry = 2, + OnFootDown = 3, +}; + +typedef keen::Bitmask8 impact.EventStreamMask; + +struct ImpactUiValue { + keen::LocaTagId locaId; // Offset: 0 + keen::bool isSigned; // Offset: 4 + keen::impact::ImpcatValueNumberFormat valueFormat; // Offset: 5 + keen::sint32 value; // Offset: 8 +}; + +typedef keen::ObjectReference impact_nodes.NodeReference; + +struct impact_nodes.ResetPoint { +}; + +struct impact_nodes.TerraformingTypeValueNode { + keen::TerraformingType value; // Offset: 60 +}; + +struct impact_nodes.ExecutionLink { + keen::impact_nodes::NodeReference startNode; // Offset: 0 + keen::BlobString startElementName; // Offset: 16 + keen::impact_nodes::NodeReference endNode; // Offset: 24 +}; + +struct impact_nodes.DataLink { + keen::impact_nodes::NodeReference ownerNodeId; // Offset: 0 + keen::BlobString ownerMemberName; // Offset: 16 + keen::impact_nodes::NodeReference accessorNodeId; // Offset: 24 + keen::BlobString accessorMemberName; // Offset: 40 +}; + +struct impact_nodes.FloatValueNode { + keen::float32 value; // Offset: 60 +}; + +struct impact_nodes.Uint32ValueNode { + keen::uint32 value; // Offset: 60 +}; + +struct impact_nodes.Sint32ValueNode { + keen::sint32 value; // Offset: 60 +}; + +struct impact_nodes.BoolValueNode { + keen::bool value; // Offset: 60 +}; + +struct impact_nodes.Float2ValueNode { + keen::float2 value; // Offset: 60 +}; + +struct impact_nodes.Float3ValueNode { + keen::float3 value; // Offset: 60 +}; + +struct impact_nodes.Float4ValueNode { + keen::float4 value; // Offset: 60 +}; + +struct impact_nodes.TemplateValueNode { + keen::ecs::TemplateReference value; // Offset: 60 +}; + +struct impact_nodes.EntityTagValueNode { + keen::ecs::EntityTagReference value; // Offset: 60 +}; + +struct impact_nodes.MaterialValueNode { + keen::CollisionFeedbackMaterialReference value; // Offset: 60 +}; + +struct impact_nodes.TimeValueNode { + keen::Time value; // Offset: 64 +}; + +struct impact_nodes.FactionValueNode { + keen::FactionType value; // Offset: 60 +}; + +struct impact_nodes.AttributeReferenceValueNode { + keen::AttributeReference value; // Offset: 60 +}; + +struct impact_nodes.DamageSetupValueNode { + keen::impact::DamageSetup value; // Offset: 60 +}; + +struct impact_nodes.DamageTerraformingSetupValueNode { + keen::impact::DamageTerraformingSetup value; // Offset: 60 +}; + +struct impact_nodes.AttackCategoryMaskValueNode { + keen::impact::AttackCategoryMask value; // Offset: 60 +}; + +struct impact_nodes.WeaponCategoryValueNode { + keen::WeaponCategoryReference value; // Offset: 60 +}; + +struct impact_nodes.MajorDirectionValueNode { + keen::impact::MajorDirection value; // Offset: 60 +}; + +struct impact_nodes.HitReactionTypeValueNode { + keen::impact::HitReactionType value; // Offset: 60 +}; + +struct impact_nodes.PushBackForceValueNode { + keen::impact::PushBackForce value; // Offset: 60 +}; + +struct impact_nodes.VisceralAttackTypeValueNode { + keen::VisceralAttackType value; // Offset: 60 +}; + +struct impact_nodes.HaltNode { +}; + +struct impact_nodes.DestroySelfNode { +}; + +struct impact_nodes.ResetNode { +}; + +struct impact_nodes.RVM { +}; + +struct impact_nodes.GetParent { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetRoot { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetEntityParent { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetHitTarget { + keen::ecs::EntityId entityId; // Offset: 8 + keen::ecs::EntityId hitEntityId; // Offset: 12 +}; + +struct impact_nodes.GetLockedTarget { + keen::ecs::TargetType type; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::ecs::EntityId targetId; // Offset: 16 +}; + +struct impact_nodes.GetSelf { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetTransform { + keen::ecs::EntityId entityId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.GetSlotTransform { + keen::AttachmentSlot slot; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 12 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.ConsumeItem { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.ApplyOffset { + keen::WorldTransform transform; // Offset: 8 + keen::float3 localOffset; // Offset: 64 + keen::float3 worldOffset; // Offset: 76 + keen::float4 orientationOffset; // Offset: 88 + keen::WorldTransform result; // Offset: 104 +}; + +struct impact_nodes.StartQuery { + keen::WorldTransform transform; // Offset: 8 + keen::float32 range; // Offset: 64 + keen::float3 offset; // Offset: 68 + keen::ecs::QueryId queryId; // Offset: 80 + keen::ecs::ColliderFlags colliderFlag; // Offset: 84 + keen::bool sortByDistance; // Offset: 86 +}; + +struct impact_nodes.StopQuery { + keen::ecs::QueryId queryId; // Offset: 8 +}; + +struct impact_nodes.FetchAttribute { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::impact::TypedValue32 value; // Offset: 28 +}; + +struct impact_nodes.SetAttribute { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::impact::TypedValue32 value; // Offset: 28 +}; + +enum class impact_nodes.ValuesMathOperator { + Add = 0, + Sub = 1, + Mul = 2, + Div = 3, +}; + +struct impact_nodes.ApplyChange { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::AttributeReference attributeRefInput; // Offset: 28 + keen::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::impact::TypedValue32 valueStorage; // Offset: 45 + keen::bool valueStorageSign; // Offset: 46 + keen::impact::TypedValue32 value; // Offset: 47 +}; + +struct impact_nodes.ChangeAttribute { + keen::AttributeReference attributeRef; // Offset: 8 + keen::ecs::EntityId entityId; // Offset: 24 + keen::AttributeReference attributeRefInput; // Offset: 28 + keen::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::impact::TypedValue32 valueStorage; // Offset: 45 + keen::impact::TypedValue32 value; // Offset: 46 +}; + +struct impact_nodes.AddValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.SubValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.MulValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.DivValues { + keen::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::impact::TypedValue32 valueA; // Offset: 9 + keen::impact::TypedValue32 valueB; // Offset: 10 + keen::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.Normalize { + keen::float3 input; // Offset: 8 + keen::float3 result; // Offset: 20 +}; + +struct impact_nodes.SetLength { + keen::float3 input; // Offset: 8 + keen::float32 length; // Offset: 20 + keen::float3 result; // Offset: 24 +}; + +struct impact_nodes.GetLength { + keen::float3 input; // Offset: 8 + keen::float32 result; // Offset: 20 +}; + +struct impact_nodes.SpawnEntity { + keen::bool breakImpactHierarchy; // Offset: 8 + keen::ecs::TemplateReference templateInput; // Offset: 12 + keen::WorldTransform transform; // Offset: 32 + keen::float3 position; // Offset: 88 + keen::float3 velocity; // Offset: 100 + keen::ecs::EntityId targetEntityId; // Offset: 112 + keen::ecs::EntityId parentEntityId; // Offset: 116 + keen::uint32 levelOverride; // Offset: 120 + keen::FactionType factionOverride; // Offset: 124 + keen::ecs::EntityId entityId; // Offset: 128 +}; + +struct impact_nodes.CreateDamageSetup { + keen::sint32 physicalCutDamage; // Offset: 8 + keen::sint32 physicalPierceDamage; // Offset: 12 + keen::sint32 physicalBluntDamage; // Offset: 16 + keen::sint32 magicalFireDamage; // Offset: 20 + keen::sint32 magicalIceDamage; // Offset: 24 + keen::sint32 magicalFogDamage; // Offset: 28 + keen::sint32 magicalFogLightning; // Offset: 32 + keen::sint32 healing; // Offset: 36 + keen::sint32 poisonDamage; // Offset: 40 + keen::sint32 woodDamage; // Offset: 44 + keen::sint32 stoneDamage; // Offset: 48 + keen::sint32 metalDamage; // Offset: 52 + keen::sint32 explosionDamage; // Offset: 56 + keen::impact::DamageSetup damageSetup; // Offset: 60 +}; + +struct impact_nodes.ApplyDamage { + keen::ecs::EntityId sourceId; // Offset: 12 + keen::ecs::EntityId targetId; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::impact::MajorDirection hitDirection; // Offset: 44 + keen::float32 attackMod; // Offset: 48 + keen::float32 attackStaminaMod; // Offset: 52 + keen::float32 noiseRange; // Offset: 56 + keen::sint32 manaCost; // Offset: 60 + keen::AttributeRootReference damageScaleAttribute; // Offset: 64 + keen::impact::PushBackForce pushBack; // Offset: 80 + keen::impact::HitReactionType hitReaction; // Offset: 82 + keen::impact::DamageSetup damageSetup; // Offset: 84 + keen::impact::AttackCategoryMask attackCategory; // Offset: 136 + keen::WeaponCategoryReference weaponCategory; // Offset: 140 + keen::CollisionFeedbackMaterialReference materialId; // Offset: 156 + keen::bool canBeBlocked; // Offset: 172 + keen::bool canCrit; // Offset: 173 + keen::VisceralAttackType visceralAttackType; // Offset: 174 + keen::bool ignoreConsecutiveHits; // Offset: 175 + keen::bool pusbackDirectionOverride; // Offset: 176 + keen::bool wasBlocked; // Offset: 177 +}; + +struct impact_nodes.GetConsecutiveHitCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.IsConsecutiveHit { + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsSkillUnlocked { + keen::ecs::EntityId entityId; // Offset: 12 + keen::skilltree_nodes::NodeReference skill; // Offset: 16 +}; + +struct impact_nodes.ClearConsecutiveHits { + keen::Time clearInterval; // Offset: 8 +}; + +struct impact_nodes.GetCursorTransform { + keen::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 +}; + +struct impact_nodes.Terraforming { + keen::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::TerraformingType terraformingType; // Offset: 72 + keen::impact::DamageTerraformingSetup damageTerraformingSetup; // Offset: 76 + keen::CollisionFeedbackMaterialReference materialId; // Offset: 96 + keen::float32 rangeDefault; // Offset: 112 + keen::float32 rangeAdd; // Offset: 116 + keen::float32 rangeFlatten; // Offset: 120 +}; + +struct impact_nodes.GetQueryResultCount { + keen::ecs::QueryId queryId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FetchQueryResult { + keen::ecs::QueryId queryId; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::bool hit; // Offset: 44 + keen::bool queryNew; // Offset: 45 + keen::bool updateNew; // Offset: 46 +}; + +struct impact_nodes.SetTransform { + keen::WorldTransform transform; // Offset: 8 +}; + +struct impact_nodes.GetOnCollisionEventCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.Wait { + keen::Time durationInput; // Offset: 8 +}; + +struct impact_nodes.FetchOnCollisionEvent { + keen::uint32 index; // Offset: 12 + keen::bool ignoreSameRoot; // Offset: 16 + keen::bool ignoreWeakspots; // Offset: 17 + keen::ecs::EntityId otherEntity; // Offset: 20 + keen::ecs::EntityId otherEntityRoot; // Offset: 24 + keen::bool combatCollider; // Offset: 28 + keen::float3 position; // Offset: 32 + keen::float3 normal; // Offset: 44 + keen::bool isWeakSpot; // Offset: 56 +}; + +struct impact_nodes.TriggerNoise { + keen::float3 position; // Offset: 8 + keen::float32 range; // Offset: 20 +}; + +struct impact_nodes.PacifyFaction { + keen::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.CallFactionForHelp { + keen::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.RandomBranchNode { + keen::float32 chance; // Offset: 12 +}; + +struct impact_nodes.RandomValueNode { + keen::float32 value; // Offset: 8 +}; + +struct impact_nodes.ForEach { + keen::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::uint32 count; // Offset: 16 +}; + +struct impact_nodes.WhileLoopBranchNode { + keen::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 +}; + +struct impact_nodes.OnEvent { + keen::impact::EventStream eventType; // Offset: 8 + keen::impact::EventStream eventStream; // Offset: 9 +}; + +struct impact_nodes.FilterRandom { + keen::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FilterFriends { + keen::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterSameRoot { + keen::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterRootEntity { + keen::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterFaction { + keen::impact::EventStream eventStream; // Offset: 8 + keen::FactionMask faction; // Offset: 10 +}; + +struct impact_nodes.FilterConsecutiveHits { + keen::impact::EventStream eventStream; // Offset: 8 +}; + +struct impact_nodes.FilterEntityTag { + keen::impact::EventStream eventStream; // Offset: 8 + keen::ecs::EntityTagReference entityTag; // Offset: 12 + keen::bool invert; // Offset: 28 +}; + +struct impact_nodes.ForEachCollisionInStream { + keen::impact::EventStream eventStream; // Offset: 16 + keen::ecs::EntityId otherEntity; // Offset: 20 + keen::ecs::EntityId otherRootEntity; // Offset: 24 + keen::float3 position; // Offset: 28 + keen::float3 normal; // Offset: 40 + keen::WorldTransform transform; // Offset: 56 + keen::uint32 voxelMaterial; // Offset: 112 + keen::bool isCombatTarget; // Offset: 116 + keen::bool isWeakSpot; // Offset: 117 +}; + +struct impact_nodes.ForEachFootDownInStream { + keen::impact::EventStream eventStream; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.IsStreamEmpty { + keen::impact::EventStream eventStream; // Offset: 12 +}; + +struct impact_nodes.GetStreamEventCount { + keen::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.ForEachCollision { + keen::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.ForEachHitEvent { + keen::bool wasParried; // Offset: 16 + keen::bool wasBlocked; // Offset: 17 + keen::bool wasBlockBroken; // Offset: 18 + keen::bool wasBackstab; // Offset: 19 + keen::bool wasCrit; // Offset: 20 + keen::bool wasImmune; // Offset: 21 + keen::bool wasKillingBlow; // Offset: 22 + keen::bool wasVisceral; // Offset: 23 + keen::bool wasWeakspot; // Offset: 24 + keen::bool wasSkillShot; // Offset: 25 + keen::FactionType targetFaction; // Offset: 26 + keen::impact::AttackCategoryMask attackCategory; // Offset: 27 + keen::WeaponCategoryReference weaponCategory; // Offset: 28 + keen::ecs::EntityId rootEntity; // Offset: 44 + keen::ecs::EntityId sourceEntity; // Offset: 48 + keen::ecs::EntityId targetRootEntity; // Offset: 52 + keen::ecs::EntityId targetEntity; // Offset: 56 + keen::ecs::EntityId weaponEntity; // Offset: 60 + keen::float3 position; // Offset: 64 + keen::float3 normal; // Offset: 76 + keen::sint32 healthChange; // Offset: 88 + keen::sint32 staminaChange; // Offset: 92 +}; + +struct impact_nodes.SendBaseHitEvent { + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::CollisionFeedbackMaterialReference impactMaterial; // Offset: 32 + keen::uint32 voxelMaterial; // Offset: 48 + keen::ecs::EntityId targetId; // Offset: 52 +}; + +struct impact_nodes.ForEachParryEvent { + keen::ecs::EntityId blockerId; // Offset: 16 + keen::ecs::EntityId attackerId; // Offset: 20 + keen::sint32 staminaDrain; // Offset: 24 +}; + +struct impact_nodes.ForEachItemInBackpack { + keen::ecs::EntityId ownerId; // Offset: 16 + keen::ecs::EntityId pideId; // Offset: 20 +}; + +struct impact_nodes.BoolIfBranchNode { + keen::bool value; // Offset: 12 +}; + +enum class impact_nodes.ValuesCompareOperator { + Equal = 0, + Less = 1, +}; + +struct impact_nodes.IsEqual { + keen::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::impact::TypedValue32 valueA; // Offset: 13 + keen::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsLess { + keen::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::impact::TypedValue32 valueA; // Offset: 13 + keen::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsInState { + keen::ecs::EntityId entityId; // Offset: 12 + keen::actor::StateFlag state; // Offset: 16 +}; + +struct impact_nodes.HasFaction { + keen::ecs::EntityId entityId; // Offset: 12 + keen::FactionMask faction; // Offset: 16 +}; + +struct impact_nodes.HasEntityTag { + keen::ecs::EntityId entityId; // Offset: 12 + keen::ecs::EntityTagReference entityTag; // Offset: 16 +}; + +struct impact_nodes.IsValidEntity { + keen::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsInsideBox { + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 + keen::float3 box; // Offset: 84 + keen::float3 boxOffset; // Offset: 96 +}; + +struct impact_nodes.HasAttackCategory { + keen::impact::AttackCategoryMask categoryMask; // Offset: 12 + keen::impact::AttackCategoryMask contains; // Offset: 13 + keen::bool matchAll; // Offset: 14 +}; + +struct impact_nodes.HasWeaponCategory { + keen::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::WeaponCategoryReference requiredCategory; // Offset: 28 +}; + +struct impact_nodes.HasWeaponCategoryType { + keen::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::WeaponCategoryTypeMask allowedCategories; // Offset: 28 +}; + +struct impact_nodes.GetWeaponVisualEntityId { + keen::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.IsSameEntity { + keen::ecs::EntityId entityAId; // Offset: 12 + keen::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsEnemy { + keen::ecs::EntityId entityAId; // Offset: 12 + keen::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsFriend { + keen::ecs::EntityId entityAId; // Offset: 12 + keen::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.GetEnemyCountInRange { + keen::ecs::EntityId entityId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.SetEnemyVariable { + keen::ecs::EntityId entityId; // Offset: 8 + keen::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ImpactDefinition { +}; + +struct ImpactVariable { + keen::HashKey32 name; // Offset: 0 + keen::HashKey32 configId; // Offset: 4 + keen::HashKey32 type; // Offset: 8 + keen::uint16 size; // Offset: 12 + keen::uint16 offsetInBytes; // Offset: 14 + keen::BlobString dbgName; // Offset: 16 +}; + +struct ImpactProgram { + keen::impact::ProgramId id; // Offset: 0 + keen::Guid programGuid; // Offset: 4 + keen::uint16 stackSize; // Offset: 20 + keen::impact::EventStreamMask usedStreams; // Offset: 22 + keen::BlobArray code; // Offset: 24 + keen::BlobArray codeShutdown; // Offset: 32 + keen::BlobArray dataLayout; // Offset: 40 + keen::BlobArray data; // Offset: 48 +}; + +struct ImpactConfigInfoEntry { + keen::string nodeName; // Offset: 0 + keen::HashKey32 name; // Offset: 8 + keen::HashKey32 configId; // Offset: 12 + keen::HashKey32 type; // Offset: 16 +}; + +struct ExecutionInfo { + keen::Guid nodeId; // Offset: 0 + keen::BlobArray branch; // Offset: 16 +}; + +struct ImpactFunctionCallDebugInfo { + keen::string nodeName; // Offset: 0 + keen::Guid nodeId; // Offset: 8 + keen::uint16 pc; // Offset: 24 +}; + +struct ImpactInfo { + keen::Guid programGuid; // Offset: 0 + keen::uint32 cmdCount; // Offset: 16 + keen::BlobArray configs; // Offset: 20 + keen::BlobArray programFlow; // Offset: 28 + keen::BlobArray dataLayout; // Offset: 36 + keen::BlobArray debugInfo; // Offset: 44 + keen::BlobArray shutdownlDebugInfo; // Offset: 52 +}; + +struct ImpactConfigData { + keen::impact::Configurations configValues; // Offset: 0 +}; + +struct ImpactSubDirectory { +}; + +struct ImpactDirectory { +}; + +struct ImpactRegistryResource { + keen::BlobArray programs; // Offset: 0 +}; + +enum class CelestialBodyDirection { + Clockwise = 0, + Counterclockwise = 1, +}; + +struct CelestialBodySetup { + keen::float32 riseAngle; // Offset: 0 + keen::float32 setAngle; // Offset: 4 + keen::float32 zenithAngle; // Offset: 8 + keen::CelestialBodyDirection direction; // Offset: 12 +}; + +struct IngameTimeConfig { + keen::Time dayStart; // Offset: 0 + keen::Time dayEnd; // Offset: 8 + keen::CelestialBodySetup sunSetup; // Offset: 16 + keen::CelestialBodySetup moonSetup; // Offset: 32 +}; + +struct IngameTimeSpan { + keen::Time start; // Offset: 0 + keen::Time end; // Offset: 8 +}; + +enum class input_mapping.PresetId { + Custom = 0, + PresetA = 1, + PresetB = 2, + Default = 1, + MaxKeyboardMousePreset = 1, + MaxGamepadPreset = 2, +}; + +enum class input_mapping.ControlOperationType { + Invalid = 0, + Key = 1, + MouseButton = 2, + MouseWheel = 3, + MouseMove = 4, + GamepadButton = 5, + Axis = 6, + AnalogStick = 7, +}; + +enum class input_mapping.InputModality { + Press = 0, + Tap = 1, + Hold = 2, + Release = 3, +}; + +enum class input_mapping.AxisDirection { + Invalid = 0, + PositiveX = 1, + NegativeX = 2, + PositiveY = 3, + NegativeY = 4, +}; + +enum class input_mapping.runtime.GameplayAction { + MovementLeft = 0, + MovementRight = 1, + MovementUp = 2, + MovementDown = 3, + CameraLeft = 4, + CameraRight = 5, + CameraUp = 6, + CameraDown = 7, + CameraZoomIn = 8, + CameraZoomOut = 9, + MainhandAction = 10, + MainhandAction_Release = 11, + ContextualAction = 12, + ContextualAction_Tap = 13, + ContextualAction_Hold = 14, + CancelAction = 15, + AmmunitionSelectPrevious = 16, + AmmunitionSelectNext = 17, + ShowTutorial = 18, + BlueprintDistanceIncrease = 19, + BlueprintDistanceDecrease = 20, + BlueprintMaterialSelectPrevious = 21, + BlueprintMaterialSelectNext = 22, + BlueprintPageSelectPrevious = 23, + BlueprintPageSelectNext = 24, + BlueprintShapeSelectPrevious = 25, + BlueprintShapeSelectNext = 26, + BlueprintShapeSelect0 = 27, + BlueprintShapeSelect1 = 28, + BlueprintShapeSelect2 = 29, + BlueprintShapeSelect3 = 30, + BlueprintShapeSelect4 = 31, + BlueprintShapeSelect5 = 32, + BlueprintShapeSelect6 = 33, + BlueprintShapeSelect7 = 34, + BlueprintShapeSelect8 = 35, + BlueprintShapeSelect9 = 36, + QuickUse0 = 37, + QuickUse1 = 38, + QuickUse2 = 39, + QuickUse3 = 40, + QuickUse4 = 41, + QuickUse5 = 42, + QuickUse6 = 43, + QuickUse7 = 44, + QuickUse0_Release = 45, + QuickUse1_Release = 46, + QuickUse2_Release = 47, + QuickUse3_Release = 48, + QuickUse4_Release = 49, + QuickUse5_Release = 50, + QuickUse6_Release = 51, + QuickUse7_Release = 52, + Block = 53, + Evade = 54, + Jump = 55, + Jump_Hold = 56, + Glider = 57, + Respawn = 58, + ShowActionbarWheel = 59, + ActionbarSwapPage = 60, + ActionbarPreviousSlot = 61, + ActionbarNextSlot = 62, + LootSelectPrevious = 63, + LootSelectNext = 64, + SongSelectOpen = 65, + SongSelectPrevious = 66, + SongSelectNext = 67, + BuildingRotateLittleClockwise = 68, + BuildingRotateLittleCounterClockwise = 69, + BuildingRotateFarClockwise = 70, + BuildingRotateFarCounterClockwise = 71, + BuildingUndo = 72, + BuildingBlueprintSnapping = 73, + BuildingVoxelGridSnapping = 74, + LockCombatTarget = 75, + CombatTargetSelectPrevious = 76, + CombatTargetSelectNext = 77, + RangedCombatArm = 78, + RangedCombatShoot = 79, + Sprint = 80, + Sneak = 81, + Sit = 82, + UiSystemMenu = 83, + UiInGameMenu = 84, + UiBackpack = 85, + UiBuildingMenu = 86, + UiCharacter = 87, + UiCrafting = 88, + UiJournal = 89, + UiJumpToNotification = 90, + UiMap = 91, + UiSkills = 92, + UiUserFeedback = 93, + Count = 94, +}; + +enum class input_mapping.config.GameplayAction { + MovementLeft = 0, + MovementRight = 1, + MovementUp = 2, + MovementDown = 3, + CameraLeft = 4, + CameraRight = 5, + CameraUp = 6, + CameraDown = 7, + CameraZoomIn = 8, + CameraZoomOut = 9, + MainhandAction = 10, + ContextualAction = 11, + CancelAction = 12, + AmmunitionSelectPrevious = 13, + AmmunitionSelectNext = 14, + ShowTutorial = 15, + BlueprintDistanceIncrease = 16, + BlueprintDistanceDecrease = 17, + BlueprintMaterialSelectPrevious = 18, + BlueprintMaterialSelectNext = 19, + BlueprintPageSelectPrevious = 20, + BlueprintPageSelectNext = 21, + BlueprintShapeSelectPrevious = 22, + BlueprintShapeSelectNext = 23, + BlueprintShapeSelect0 = 24, + BlueprintShapeSelect1 = 25, + BlueprintShapeSelect2 = 26, + BlueprintShapeSelect3 = 27, + BlueprintShapeSelect4 = 28, + BlueprintShapeSelect5 = 29, + BlueprintShapeSelect6 = 30, + BlueprintShapeSelect7 = 31, + BlueprintShapeSelect8 = 32, + BlueprintShapeSelect9 = 33, + QuickUse0 = 34, + QuickUse1 = 35, + QuickUse2 = 36, + QuickUse3 = 37, + QuickUse4 = 38, + QuickUse5 = 39, + QuickUse6 = 40, + QuickUse7 = 41, + Block = 42, + Evade = 43, + Jump = 44, + Glider = 45, + Respawn = 46, + ShowActionbarWheel = 47, + ActionbarSwapPage = 48, + ActionbarPreviousSlot = 49, + ActionbarNextSlot = 50, + SongSelectOpen = 51, + SongSelectPrevious = 52, + SongSelectNext = 53, + BuildingRotateLittleClockwise = 54, + BuildingRotateLittleCounterClockwise = 55, + BuildingRotateFarClockwise = 56, + BuildingRotateFarCounterClockwise = 57, + BuildingUndo = 58, + BuildingSnapping = 59, + LockCombatTarget = 60, + CombatTargetSelectPrevious = 61, + CombatTargetSelectNext = 62, + RangedCombatArm = 63, + RangedCombatShoot = 64, + Sprint = 65, + Sneak = 66, + Sit = 67, + UiSystemMenu = 68, + UiInGameMenu = 69, + UiBackpack = 70, + UiBuildingMenu = 71, + UiCharacter = 72, + UiCrafting = 73, + UiJournal = 74, + UiJumpToNotification = 75, + UiMap = 76, + UiSkills = 77, + UiUserFeedback = 78, + Count = 79, +}; + +struct input_mapping.serialize.ControlOperation { + keen::input_mapping::ControlOperationType type; // Offset: 0 + keen::string id; // Offset: 4 + keen::input_mapping::AxisDirection axis; // Offset: 12 +}; + +struct input_mapping.serialize.ControlOperationCombo { + keen::input_mapping::serialize::ControlOperation operation; // Offset: 0 + keen::BlobArray modifiers; // Offset: 16 +}; + +struct input_mapping.serialize.KeyboardMouseAction { + keen::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 24 + keen::input_mapping::InputModality modality; // Offset: 48 + keen::bool toggle; // Offset: 49 +}; + +struct input_mapping.serialize.GamepadAction { + keen::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 24 + keen::input_mapping::InputModality modality; // Offset: 48 + keen::bool toggle; // Offset: 49 +}; + +struct input_mapping.serialize.ActionInputBinding { + keen::BlobString gameplay; // Offset: 0 + keen::input_mapping::serialize::KeyboardMouseAction keyboardMouse; // Offset: 8 + keen::input_mapping::serialize::GamepadAction gamepad; // Offset: 60 +}; + +struct input_mapping.serialize.InputBindings { + keen::input_mapping::PresetId customKeyboardMouseBasePresetId; // Offset: 0 + keen::input_mapping::PresetId customGamepadBasePresetId; // Offset: 1 + keen::BlobArray bindings; // Offset: 4 +}; + +enum class input_mapping.runtime.ContextualVector2Context { + PositionDelta = 0, + Velocity = 1, +}; + +struct input_mapping.runtime.ContextualVector2 { + keen::input_mapping::runtime::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.InteractionQuery { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 queryRadius; // Offset: 4 + keen::float3 queryOffset; // Offset: 8 +}; + +struct ecs.ClientInteractionQuery { + keen::uint32 nearestOfferedInteractionOfferId; // Offset: 0 + keen::ecs::SpecialInteraction specialInteraction; // Offset: 4 +}; + +struct ecs.InteractionAcceptData { + keen::ecs::EntityId guestId; // Offset: 0 + keen::InventorySlotId usedItem; // Offset: 4 + keen::uint32 offerId; // Offset: 12 +}; + +struct ecs.InteractionOffer { + keen::actor::ActorSequenceReference defaultAction; // Offset: 0 + keen::LocaTagReference verbLoca; // Offset: 16 + keen::LocaTagReference lastVerbLoca; // Offset: 32 + keen::LocaTagReference overrideVerbLoca; // Offset: 48 + keen::actor::SequenceResourceId overrideSequence; // Offset: 64 + keen::ecs::InteractionAcceptData lastAttemptData; // Offset: 68 + keen::ecs::InteractionAcceptData lastAcceptData; // Offset: 84 + keen::Time lastAcceptTime; // Offset: 104 + keen::uint32 offerId; // Offset: 112 + keen::LocaTagId verbId; // Offset: 116 + keen::bool isColliderDirty; // Offset: 120 + keen::bool isOffered; // Offset: 121 + keen::bool reduceInteractionWeight; // Offset: 122 +}; + +struct ecs.ClientInteractionOffer { + keen::LocaTagId verbId; // Offset: 0 + keen::ecs::EntityId lastAcceptionId; // Offset: 4 + keen::bool isOffered; // Offset: 8 +}; + +enum class ecs.InteractionLockFlag { + Consume = 0, + DestroyLock = 1, +}; + +typedef keen::Bitmask8 ecs.InteractionLockMask; + +struct ecs.InteractionLock { + keen::ItemReference requiredItemRef; // Offset: 0 + keen::ItemId requiredItem; // Offset: 16 + keen::PlayerPermissionsMask requiredPermission; // Offset: 20 + keen::ecs::InteractionLockMask lockMask; // Offset: 21 + keen::actor::ActorSequenceReference successfulAttempt; // Offset: 24 + keen::actor::ActorSequenceReference failedAttempt; // Offset: 40 + keen::bool destroy; // Offset: 56 +}; + +struct ecs.LootRefill { + keen::ItemReference lootableItemRef; // Offset: 0 + keen::uint32 refillCount; // Offset: 16 + keen::uint32 maxCount; // Offset: 20 +}; + +struct ecs.InteractionLootRefill { + keen::Time waitTime; // Offset: 0 + keen::LocaTagReference verbLoca; // Offset: 8 + keen::actor::ActorSequenceReference defaultSequence; // Offset: 24 + keen::BlobArray items; // Offset: 40 +}; + +struct ecs.DynamicInteractionLootRefill { + keen::Time nextRefill; // Offset: 0 +}; + +struct ecs.ClientInteractionLock { + keen::Guid failedAttempt; // Offset: 0 + keen::Guid successfulAttempt; // Offset: 16 + keen::ItemId requiredItem; // Offset: 32 + keen::uint32 offerId; // Offset: 36 + keen::PlayerPermissionsMask requiredPermission; // Offset: 40 +}; + +struct ecs.InteractionKnowledgeLock { + keen::ecs::ToggleModifier modifier; // Offset: 0 + keen::bool useSpawnKnowledgeRequirement; // Offset: 1 + keen::GameKnowledgeRequirement unlockRequiement; // Offset: 4 + keen::KnowledgeId queryId; // Offset: 108 +}; + +struct ecs.ClientInteractionToState { +}; + +struct ecs.InteractionPause { + keen::Time timeout; // Offset: 0 +}; + +struct ecs.RemoveInteractionOnEmptyInventory { +}; + +enum class ecs.DirectionalState { + Idle = 0, + Front = 1, + Back = 2, +}; + +struct ecs.DirectionalInteractionSetup { + keen::bool backToIdle; // Offset: 0 + keen::LocaTagReference verb; // Offset: 4 + keen::actor::ActorSequenceReference sequence; // Offset: 20 + keen::animationgraph::StateIdReference animationState; // Offset: 36 +}; + +struct ecs.DirectionalInteraction { + keen::ecs::DirectionalState state; // Offset: 0 + keen::ecs::DirectionalInteractionSetup idleState; // Offset: 4 + keen::ecs::DirectionalInteractionSetup frontInteraction; // Offset: 56 + keen::ecs::DirectionalInteractionSetup backInteraction; // Offset: 108 +}; + +struct ecs.InteractionToggle { + keen::LocaTagReference offToOnVerb; // Offset: 0 + keen::actor::ActorSequenceReference offToOnSequence; // Offset: 16 + keen::LocaTagReference onToOffVerb; // Offset: 32 + keen::actor::ActorSequenceReference onToOffSequence; // Offset: 48 +}; + +struct ecs.CraftingInteraction { + keen::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::ObjectReference workshop; // Offset: 12 + keen::WorkshopId workshopId; // Offset: 28 +}; + +struct ecs.ClientCraftingInteraction { + keen::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::WorkshopId workshopId; // Offset: 12 +}; + +struct ecs.InteractionAttachment { + keen::ecs::Offset guestOffset; // Offset: 0 + keen::Time lastAttachTime; // Offset: 40 +}; + +struct ecs.InteractionAttachmentGuest { + keen::ecs::EntityId lastHostEntityId; // Offset: 0 +}; + +struct ItemData { + keen::uint32 count; // Offset: 0 + keen::ecs::EntityId pide; // Offset: 4 +}; + +struct ItemStack { + keen::ItemId id; // Offset: 0 + keen::ItemData data; // Offset: 4 +}; + +struct ecs.DefaultInventoryDirectory { +}; + +struct ecs.DefaultInventoryEntry { + keen::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct ecs.RandomDefaultInventoryEntry { + keen::ItemReference item; // Offset: 0 + keen::uint32 countMin; // Offset: 16 + keen::uint32 countMax; // Offset: 20 + keen::float spawnProbability; // Offset: 24 +}; + +struct ecs.WeightedDefaultInventoryEntry { + keen::float weight; // Offset: 28 +}; + +struct ecs.RandomDefaultInventoryEntrySelector { +}; + +struct ecs.DefaultInventorySetup { +}; + +struct ecs.ItemStackInfoResource { + keen::ItemReference itemRef; // Offset: 0 + keen::ItemId item; // Offset: 16 + keen::uint32 countMin; // Offset: 20 + keen::uint32 countMax; // Offset: 24 + keen::float spawnProbability; // Offset: 28 +}; + +struct ecs.ItemStackInfoResourceWeighted { + keen::float weight; // Offset: 32 +}; + +struct ecs.DefaultInventoryEntrySelectorResource { + keen::BlobArray selectionCandidates; // Offset: 0 +}; + +struct ecs.DefaultInventoryResource { + keen::BlobArray stacks; // Offset: 0 + keen::BlobArray stackSelectors; // Offset: 8 +}; + +struct ecs.DefaultInventory { + keen::ecs::DefaultInventoryReference defaultInventory; // Offset: 0 + keen::bool keepOnRandomLoot; // Offset: 16 + keen::bool applied; // Offset: 17 +}; + +struct ecs.DefaultInventoryOverrides { + keen::ecs::DefaultInventoryReference slot1; // Offset: 0 + keen::ecs::DefaultInventoryReference slot2; // Offset: 16 + keen::ecs::DefaultInventoryReference slot3; // Offset: 32 +}; + +struct ecs.AffectedByIncreasedPickupSkill { +}; + +struct ecs.AdditionalMaterialLoot { + keen::ItemId additionalItemId; // Offset: 0 +}; + +struct ecs.InventoryLink { + keen::ecs::EntityId entityId; // Offset: 0 + keen::InventoryCategory category; // Offset: 4 +}; + +enum class ecs.InventoryFlags { + IsPlayer = 0, + IsNpc = 1, + ShowContentPreview = 2, +}; + +typedef keen::Bitmask8 ecs.InventorySetupMask; + +struct ecs.InventorySetup { + keen::StaticArray linksEntities; // Offset: 0 + keen::StaticArray linksCategories; // Offset: 64 + keen::ecs::InventorySetupMask inventoryFlags; // Offset: 80 + keen::uint8 genericSlotCount; // Offset: 81 + keen::uint8 availableSlotCount; // Offset: 82 + keen::bool isInitialized; // Offset: 83 +}; + +struct ecs.InventorySetupInit { +}; + +struct ecs.Inventory { + keen::StaticArray slots; // Offset: 0 +}; + +struct ecs.InventoryCraftingStock { +}; + +struct ecs.ResourceNodeDropInfo { + keen::ecs::TemplateReference entity; // Offset: 0 + keen::ItemReference item; // Offset: 16 + keen::uint8 stackAmount; // Offset: 32 + keen::float32 weight; // Offset: 36 +}; + +struct ecs.ResourceNodePickupDrops { + keen::ecs::TemplateReference pickupItemReference; // Offset: 0 + keen::BlobArray drops; // Offset: 16 + keen::uint8 numberOfDrops; // Offset: 24 + keen::float32 dropWhileAlivePercentage; // Offset: 28 + keen::bool dropInWorld; // Offset: 32 + keen::float32 yOffsetMin; // Offset: 36 + keen::float32 yOffsetMax; // Offset: 40 + keen::float32 dropRadiusMin; // Offset: 44 + keen::float32 dropRadiusMax; // Offset: 48 + keen::float32 velocityMin; // Offset: 52 + keen::float32 velocityMax; // Offset: 56 +}; + +struct ecs.MiningNodeKnowledge { + keen::bool useSpawnTriggerKnowledge; // Offset: 0 + keen::ObjectReference knowledgeNode; // Offset: 4 + keen::bool unlockForGroup; // Offset: 20 +}; + +struct ecs.PickupItem { + keen::ItemId itemId; // Offset: 0 + keen::ItemReference item; // Offset: 4 + keen::uint32 level; // Offset: 20 + keen::ItemRarity rarity; // Offset: 24 + keen::uint16 pickupAmount; // Offset: 26 +}; + +struct ecs.PickupItemModelSetup { +}; + +struct ecs.DestroyOnLoot { + keen::Time despawnTime; // Offset: 0 + keen::NotifierReference vfxOnDestroy; // Offset: 8 + keen::ecs::Offset offset; // Offset: 24 + keen::bool isActive; // Offset: 64 + keen::bool shouldDestroy; // Offset: 65 + keen::SoundContainerReference sfx; // Offset: 68 + keen::VfxReference vfx; // Offset: 84 +}; + +struct ecs.DestroyOnLootActivated { +}; + +struct ecs.AddDestructibleOnLoot { + keen::uint32 health; // Offset: 0 +}; + +enum class ItemCategory { + Customization = 0, + Equipment = 1, + Weapons = 2, + Tools = 3, + Instrument = 4, + BuildTools = 5, + Consumables = 6, + Ammunition = 7, + Materials = 8, + Blueprints = 9, + Currency = 10, + Collectibles = 11, + AnimalFood = 12, + PetFood = 13, +}; + +typedef keen::Bitmask16 ItemCategoryMask; + +enum class CrosshairType { + None = 0, + Bow = 1, + Wand = 2, + Staff_Directional = 3, + Staff_Area = 4, + Building = 5, + Terraforming = 6, +}; + +typedef keen::Bitmask8 ItemRarityMask; + +enum class ItemFlag { + HasKnowledgeUnlocks = 0, + HasPIDE = 1, + IsContainer = 2, + IsBlueprint = 3, + IsTerraformer = 4, + IsNpc = 5, + IsCookable = 6, + IsAnimal = 7, + IsAnimalBait = 8, + CanTriggerCooking = 9, + TwitchDrop = 10, + CommerceItem = 11, +}; + +typedef keen::Bitmask16 ItemFlags; + +struct ItemTag { + keen::LocaTagReference label; // Offset: 0 +}; + +typedef keen::ObjectReference ItemTagReference; + +struct ItemTagWeight { + keen::ItemTagReference tag; // Offset: 0 + keen::uint32 nominator; // Offset: 16 + keen::uint32 denominator; // Offset: 20 +}; + +struct ItemTagInfo { + keen::Guid tagGuid; // Offset: 0 + keen::LocaTagId labelId; // Offset: 16 +}; + +struct ItemTagInfoList { + keen::BlobArray itemTags; // Offset: 0 +}; + +enum class SnappingToggleMode { + Disabled = 0, + VoxelGrid = 1, + SnappingBoxes = 2, +}; + +struct ChangeVoxelData { + keen::bool isBuildingVoxel; // Offset: 0 + keen::ObjectReference placeVoxelMaterial; // Offset: 4 + keen::uint8 placeVoxelMaterialId; // Offset: 20 +}; + +enum class CameraDistance { + Near = 0, + Medium = 1, + Far = 2, +}; + +struct CameraDistanceOverride { + keen::CameraDistance distance; // Offset: 0 + keen::bool override; // Offset: 1 +}; + +enum class BuildingCameraMode { + Orbit = 0, + Free = 1, + FreeHorizontalWhileUsing = 2, +}; + +struct CursorFxConfig { + keen::SoundContainerReference loopedSfx; // Offset: 0 + keen::SoundContainerReference oneShotSfx; // Offset: 16 + keen::VfxReference oneShotVfx; // Offset: 32 + keen::ecs::Offset oneShotVfxOffset; // Offset: 48 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 88 + keen::sint32 vfxParameterOffset_boundingBoxMin; // Offset: 152 + keen::sint32 vfxParameterOffset_boundingBoxMax; // Offset: 156 +}; + +struct GliderConfig { + keen::float32 accelerationForward; // Offset: 0 + keen::float32 airResistanceLongitudinal; // Offset: 4 + keen::float32 airResistanceLateral; // Offset: 8 + keen::float32 airResistanceVertical; // Offset: 12 + keen::float32 yawAngleSpeed; // Offset: 16 + keen::float32 pitchAngleSpeed; // Offset: 20 + keen::float32 rollAngleSpeed; // Offset: 24 +}; + +enum class InventoryStockType { + Arrow = 0, + Spell = 1, + TerrainMaterial = 2, + BlueprintMaterial_Default = 3, + BlueprintMaterial_Roof = 4, + Count = 5, +}; + +enum class AttachDirection { + Floor = 0, + Wall = 1, + Ceiling = 2, +}; + +enum class AttachAngleRange { + Disabled = 0, + Narrow = 1, + Wide = 2, +}; + +struct AttachAngleConfig { + keen::AttachAngleRange ceilingAngle; // Offset: 0 + keen::AttachAngleRange wallAngle; // Offset: 1 + keen::AttachAngleRange floorAngle; // Offset: 2 + keen::AttachDirection defaultAttachDirection; // Offset: 3 + keen::AttachDirection secondaryAttachDirection; // Offset: 4 + keen::bool hasSecondaryAttachDirection; // Offset: 5 + keen::bool forceUprightNormal; // Offset: 6 +}; + +struct VoxelRequirement { + keen::ObjectReference soil; // Offset: 0 + keen::VoxelMaterialId soilMaterialId; // Offset: 16 + keen::float factor; // Offset: 20 +}; + +struct VoxelRequirementInfo { + keen::BlobArray requirements; // Offset: 0 +}; + +struct CursorActionConfig { + keen::bool snapPositionToAddableVoxel; // Offset: 0 + keen::bool snapPositionToRemovableVoxel; // Offset: 1 +}; + +struct CursorConfig { + keen::ecs::TemplateReference customCursorEntity; // Offset: 0 + keen::bool autoCenterPivot; // Offset: 16 + keen::float3 pivotOffset; // Offset: 20 + keen::bool allowSnapToSnappingBoxes; // Offset: 32 + keen::bool forceSnapPositionToVoxelGrid; // Offset: 33 + keen::bool snapOrientationToVoxelGrid; // Offset: 34 + keen::bool snapToCenterWhenSmallerThanVoxel; // Offset: 35 + keen::bool smoothOutTerrainNormal; // Offset: 36 + keen::bool alwaysFacePlayer; // Offset: 37 + keen::bool addRandomYawAngleOffset; // Offset: 38 + keen::CursorActionConfig primaryActionConfig; // Offset: 39 + keen::AttachAngleConfig attachAngleConfig; // Offset: 41 + keen::bool checkRequiredMaterialsOnPrimaryAction; // Offset: 48 + keen::CursorActionConfig secondaryActionConfig; // Offset: 49 + keen::AttachAngleConfig attachAngleConfigSecondary; // Offset: 51 + keen::bool checkRequiredMaterialsOnSecondaryAction; // Offset: 58 + keen::bool useSphereCast; // Offset: 59 + keen::bool keepSnappedToPlane; // Offset: 60 + keen::bool checkBuildZoneEnemies; // Offset: 61 + keen::bool checkSurfaceTopology; // Offset: 62 + keen::BlobArray allowedVoxels; // Offset: 64 + keen::bool highlightHoveredEntity; // Offset: 72 + keen::bool showVoxelBlock; // Offset: 73 + keen::CursorFxConfig addFxConfig; // Offset: 76 + keen::CursorFxConfig subFxConfig; // Offset: 236 + keen::ObjectReference defaultCursorStaticModel; // Offset: 396 + keen::ObjectReference defaultCursorSkinnedModel; // Offset: 412 + keen::ObjectReference defaultCursorVfx; // Offset: 428 +}; + +struct VoxelSnappingConfigOld { + keen::uint3 snapBoxOffsetMin; // Offset: 0 + keen::uint3 snapBoxOffsetMax; // Offset: 12 + keen::uint8 basementHeight; // Offset: 24 +}; + +struct EquipmentModel { + keen::BlendShapeMask mask; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +enum class SequenceRequirments { + Combat_Target = 0, + Combat_Target_Static = 1, + Combat_Target_Not_Static = 2, + IsAboveTarget = 3, + IsEvading = 4, + IsAirborne = 5, + HasNpcTarget = 6, +}; + +typedef keen::Bitmask16 SequenceRequirmentMask; + +enum class KnowledgeTriggerType { + World = 0, + Player = 1, + Item = 2, +}; + +struct GameKnowledgeTrigger { + keen::KnowledgeTriggerType triggerType; // Offset: 0 + keen::ObjectReference unlockKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::ItemKnowledgeTrigger itemKnowledge; // Offset: 36 + keen::bool useWorldItemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 +}; + +struct ItemSequence { + keen::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::actor::ActorSequenceReference sequence; // Offset: 4 + keen::actor::ActionSequenceTrigger triggeredBy; // Offset: 20 + keen::SequenceRequirmentMask requirements; // Offset: 22 + keen::skilltree_nodes::NodeReference requiredSkill; // Offset: 24 + keen::ecs::SpecialInteraction specialInteractionType; // Offset: 40 + keen::ItemReference costOverride; // Offset: 44 + keen::bool triggerKnowledge; // Offset: 60 + keen::GameKnowledgeTrigger knowledgeTrigger; // Offset: 64 + keen::HashKey32 triggerKnowledgeId; // Offset: 120 + keen::ecs::EntityTagReference sequenceEntityTag; // Offset: 124 + keen::BlobArray combinedEntityTags; // Offset: 140 +}; + +struct UiActionHints { + keen::LocaTagReference primaryAction; // Offset: 0 + keen::LocaTagReference secondaryAction; // Offset: 16 + keen::LocaTagReference tertiaryAction; // Offset: 32 + keen::input_mapping::runtime::GameplayAction tertiaryGameplayAction; // Offset: 48 + keen::bool alwaysShow; // Offset: 49 +}; + +struct EquipmentSetup { + keen::EquipmentSlotType slot; // Offset: 0 + keen::bool repeatActionWhenPressed; // Offset: 1 + keen::ecs::EntityTagReference itemSequencesEntityTag; // Offset: 4 + keen::BlendShapeMask blendShapeMask; // Offset: 20 + keen::VisualEquipmentMask hideMask; // Offset: 24 + keen::ImpactEquipmentMask disableMask; // Offset: 28 + keen::ecs::TemplateReference impactEntity; // Offset: 32 + keen::ImpactProgramReference program; // Offset: 48 + keen::ecs::TemplateReference visualEntity; // Offset: 64 + keen::ObjectReference visualModel; // Offset: 80 + keen::PrimaryAnimationSet primaryAnimationSet; // Offset: 96 + keen::SecondaryAnimationSet secondaryAnimationSet; // Offset: 97 + keen::CrosshairType crosshairType; // Offset: 98 + keen::CursorConfig cursorConfig; // Offset: 100 + keen::ObjectReference cursorModel; // Offset: 544 + keen::ObjectReference cursorSkinnedModel; // Offset: 560 + keen::ObjectReference cursorVfx; // Offset: 576 + keen::CameraDistanceOverride cameraDistanceOverride; // Offset: 592 + keen::BuildingCameraMode buildingCameraMode; // Offset: 594 + keen::float32 defaultVerticalPlacementOffset; // Offset: 596 + keen::float32 maxTiltAngle; // Offset: 600 + keen::float32 maxDistance; // Offset: 604 + keen::ecs::TemplateReference placedEntity; // Offset: 608 + keen::float3 placementAABBmin; // Offset: 624 + keen::float3 placementAABBmax; // Offset: 636 + keen::float3 snappingAABBmin; // Offset: 648 + keen::float3 snappingAABBmax; // Offset: 660 + keen::BlobArray placementColliders; // Offset: 672 + keen::ecs::TriggerShapes placementNoBuildZones; // Offset: 680 + keen::BuffTypeReference appliedBuff; // Offset: 688 + keen::BuffTypeReference appliedDebuff; // Offset: 704 + keen::bool allowPlacementBelowFog; // Offset: 720 + keen::InhibitBuildingCheck checkInhibitBuild; // Offset: 721 + keen::bool buildZoneRequired; // Offset: 722 + keen::bool requiresAltarSlot; // Offset: 723 + keen::BlobArray requiredCraftingIngredients; // Offset: 724 + keen::float3 placedEntityLocalSpawnVelocity; // Offset: 732 + keen::ChangeVoxelData voxelData; // Offset: 744 + keen::ObjectReference voxelObject; // Offset: 768 + keen::ObjectReference terrainVoxelObject; // Offset: 784 + keen::VoxelSnappingConfigOld voxelSnappingConfig; // Offset: 800 + keen::ObjectReference voxelBlueprintConfig; // Offset: 828 + keen::ObjectReference voxelBlueprintMaterialPool; // Offset: 844 + keen::sint8 voxelObjectMaterialOverride; // Offset: 860 + keen::BlobArray visualModels; // Offset: 864 + keen::GliderConfig gliderConfig; // Offset: 872 + keen::TerraformingType terraformingType; // Offset: 900 +}; + +typedef keen::Bitmask8 ItemKnowledgeTriggerMask; + +struct ItemKnowledgeBase { + keen::ItemKnowledgeTriggerMask trigger; // Offset: 0 + keen::LocaTagReference triggerTag; // Offset: 4 +}; + +struct ItemKnowledgeName { + keen::NameLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeDescription { + keen::DescriptionLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeLore { + keen::LoreLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeRecipe { + keen::bool unused; // Offset: 20 +}; + +struct ItemLevelRange { + keen::uint32 minLevel; // Offset: 0 + keen::uint32 maxLevel; // Offset: 4 +}; + +struct StackSizeRange { + keen::uint16 minStackSize; // Offset: 0 + keen::uint16 maxStackSize; // Offset: 2 +}; + +struct ItemCommerceLink { + keen::CommerceProductReference product; // Offset: 0 + keen::CommerceProductId id; // Offset: 16 + keen::bool isSet; // Offset: 20 +}; + +struct ItemDamageSetup { + keen::float32 speedMod; // Offset: 0 + keen::float32 dmgMod; // Offset: 4 + keen::impact::DamageDistribution distribution; // Offset: 8 + keen::bool isSet; // Offset: 60 +}; + +struct ItemPermissionSetup { + keen::PlayerPermissionsMask permissions; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ItemArmorSetup { + keen::impact::ArmorDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 36 +}; + +struct ItemBlockSetup { + keen::float quality; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemScaledCostSetup { + keen::float staminaMod; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemFuelData { + keen::Time burnTime; // Offset: 0 + keen::uint32 energyOutput; // Offset: 8 + keen::bool isSet; // Offset: 12 +}; + +struct ItemColorCombination { + keen::ColorCombinationReference combination; // Offset: 0 +}; + +struct ItemComfortSetup { + keen::uint32 comfortAmount; // Offset: 0 +}; + +struct ItemInfoExposure { + keen::bool enable; // Offset: 0 + keen::float exposure; // Offset: 4 +}; + +enum class ItemClassAlignmentType { + None = 0, + Warrior = 1, + Mage = 2, + Ranger = 3, +}; + +typedef keen::ObjectReference PerkReference; + +struct ItemCollectionInfo { + keen::bool isOverrideModelSet; // Offset: 0 + keen::ObjectReference overrideModel; // Offset: 4 + keen::ecs::Offset overrideModelOffset; // Offset: 20 + keen::BlobArray categories; // Offset: 60 +}; + +struct ItemInfo { + keen::ItemId itemId; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::uint16 maxStackSize; // Offset: 20 + keen::bool generateRarity; // Offset: 22 + keen::ItemRarity rarity; // Offset: 23 + keen::ItemRarityMask disableRarityGeneration; // Offset: 24 + keen::StackSizeRange randomLootStackRange; // Offset: 26 + keen::BlobArray overridePickupModels; // Offset: 32 + keen::ecs::TemplateReference overridePickupEntity; // Offset: 40 + keen::NotifierReference pickupFx; // Offset: 56 + keen::NameLocaTag name; // Offset: 72 + keen::CaptionLocaTag caption; // Offset: 88 + keen::DescriptionLocaTag description; // Offset: 104 + keen::LoreLocaTag lore; // Offset: 120 + keen::UiActionHints uiActionHints; // Offset: 136 + keen::ItemCategory category; // Offset: 188 + keen::AmmunitionType ammunitionType; // Offset: 189 + keen::WeaponCategoryReference weaponCategoryReference; // Offset: 192 + keen::ItemClassAlignmentType itemClassAlignment; // Offset: 208 + keen::MidiInstrumentType midiInstrumentType; // Offset: 209 + keen::EquipmentSetup equipment; // Offset: 212 + keen::BlobArray sequences; // Offset: 1116 + keen::ecs::TemplateReference pidEntity; // Offset: 1124 + keen::ObjectReference exchangeOnBroken; // Offset: 1140 + keen::ImageReference iconImage; // Offset: 1156 + keen::ObjectReference iconModel; // Offset: 1172 + keen::ObjectReference iconScene; // Offset: 1188 + keen::ecs::Offset iconRenderOffset; // Offset: 1204 + keen::float32 iconRenderCookingScale; // Offset: 1244 + keen::float32 iconRenderGlobalScale; // Offset: 1248 + keen::ItemInfoExposure overrideSceneExposure; // Offset: 1252 + keen::bool fitToItemModelBoundingBox; // Offset: 1260 + keen::ItemFlags flags; // Offset: 1262 + keen::bool overrideKnowledgeGeneration; // Offset: 1264 + keen::Bitmask16 generateKnowledge; // Offset: 1266 + keen::BlobArray tags; // Offset: 1268 + keen::BlobArray uiValues; // Offset: 1276 + keen::BlobArray uiBuffValues; // Offset: 1284 + keen::impact::Configurations impactValues; // Offset: 1292 + keen::StaticArray perkReferences; // Offset: 1300 + keen::ItemLevelRange itemLevelRange; // Offset: 1380 + keen::ItemDamageSetup damageSetup; // Offset: 1388 + keen::ItemArmorSetup armorSetup; // Offset: 1452 + keen::ItemFuelData fuelSetup; // Offset: 1496 + keen::ItemBlockSetup blockSetup; // Offset: 1512 + keen::ItemScaledCostSetup scaledCostSetup; // Offset: 1520 + keen::ItemCommerceLink commerceLink; // Offset: 1528 + keen::ItemPermissionSetup permissionSetup; // Offset: 1552 + keen::ItemColorSetupInternal itemPaletteColorSetup; // Offset: 1556 + keen::ItemCollectionInfo collectionInfo; // Offset: 1572 + keen::ItemComfortSetup comfortSetup; // Offset: 1640 + keen::BlobString debugName; // Offset: 1644 +}; + +struct ItemConvertInfo { + keen::BlobString name; // Offset: 0 + keen::Guid id; // Offset: 8 + keen::BlobArray> knowledge; // Offset: 24 + keen::Guid visualModelGuid; // Offset: 32 + keen::BlobArray visualModels; // Offset: 48 + keen::VisualEquipmentMask hideMask; // Offset: 56 + keen::BlendShapeMask allowedBlendShapeMask; // Offset: 60 + keen::BlendShapeMask setBlendShapeMask; // Offset: 64 + keen::ColorCombination colorCombination; // Offset: 68 + keen::Guid voxelMaterialGuid; // Offset: 116 + keen::bool isDevItem; // Offset: 132 +}; + +struct GameKnowledgeGenerationScope { + keen::Bitmask16 knowledgeTypes; // Offset: 0 +}; + +struct ItemSubDirectory { +}; + +struct ItemRarityDropSettings { + keen::float32 common; // Offset: 0 + keen::float32 uncommon; // Offset: 4 + keen::float32 rare; // Offset: 8 + keen::float32 legendary; // Offset: 12 +}; + +struct WeaponCategory { + keen::LocaTagReference locaTag; // Offset: 0 + keen::AttributeReference damageMod; // Offset: 16 + keen::WeaponCategoryType categoryType; // Offset: 32 + keen::ItemClassAlignmentType classType; // Offset: 33 + keen::float32 cameraTraumaVerySmall; // Offset: 36 + keen::float32 cameraTraumaSmall; // Offset: 40 + keen::float32 cameraTraumaNormal; // Offset: 44 + keen::float32 cameraTraumaBig; // Offset: 48 + keen::float32 cameraTraumaVeryBig; // Offset: 52 + keen::float32 cameraImpulseStrength; // Offset: 56 + keen::Time cameraImpulseDuration; // Offset: 64 +}; + +struct WeaponCategoryResource { + keen::Guid guid; // Offset: 0 + keen::WeaponCategory weaponCategory; // Offset: 16 +}; + +struct WeaponCategoryDirectory { +}; + +struct ItemDirectory { + keen::ObjectReference defaultIconScene; // Offset: 0 + keen::ItemRarityDropSettings rarityDropWeights; // Offset: 16 + keen::float weaponArmorRatio; // Offset: 32 + keen::ObjectReference weaponCategoryDirectory; // Offset: 36 +}; + +struct WeaponCategoryDirectoryResource { + keen::BlobArray weaponCategories; // Offset: 0 +}; + +struct ItemRegistryResource { + keen::BlobArray itemRefs; // Offset: 0 + keen::BlobArray itemTags; // Offset: 8 + keen::BlobArray weaponCategories; // Offset: 16 + keen::BlobArray dbgNames; // Offset: 24 +}; + +struct ItemIconRegistryEntryResource { + keen::Guid guid; // Offset: 0 + keen::UiTextureResource uiTexture; // Offset: 16 +}; + +struct ItemIconRegistryResource { + keen::BlobArray icons; // Offset: 0 +}; + +struct DevItemRegistryResource { +}; + +struct ItemKnowledgeLock { + keen::LocaTagId unlockedLocaId; // Offset: 0 + keen::LocaTagId keyLocaId; // Offset: 4 + keen::ItemKnowledgeTriggerMask unlockTrigger; // Offset: 8 +}; + +struct ItemKnowledge { + keen::ItemId itemId; // Offset: 0 + keen::ItemKnowledgeMask lockedKnowledgeMask; // Offset: 4 + keen::ItemKnowledgeLock nameLock; // Offset: 8 + keen::ItemKnowledgeLock descriptionLock; // Offset: 20 + keen::ItemKnowledgeLock loreLock; // Offset: 32 + keen::ItemKnowledgeLock recipeLock; // Offset: 44 +}; + +struct ItemKnowledgeResource { + keen::BlobArray knowledgeArray; // Offset: 0 +}; + +struct PickupFxConfig { + keen::SoundContainerReference sfx; // Offset: 0 + keen::VfxReference vfx; // Offset: 16 +}; + +struct PickupModelOverride { + keen::ObjectReference model; // Offset: 0 +}; + +struct PickupEntityOverride { + keen::ecs::TemplateReference entity; // Offset: 0 +}; + +struct ItemCollectionOptionBase { +}; + +struct ItemCollectionCategoryReference { + keen::ObjectReference category; // Offset: 0 +}; + +struct ItemCollectionModelOverride { + keen::ObjectReference model; // Offset: 0 + keen::ecs::Offset modelOffset; // Offset: 16 +}; + +struct VoxelBlueprintItem { + keen::ItemId itemId; // Offset: 0 + keen::uint3 size; // Offset: 4 + keen::BlobArray data; // Offset: 16 + keen::bool isDataCompressed; // Offset: 24 +}; + +struct VoxelBlueprintItemRegistryResource { + keen::BlobArray blueprintItems; // Offset: 0 +}; + +struct ItemPropsForPropTestResource { + keen::BlobArray propItems; // Offset: 0 +}; + +struct ItemCollectionDirectory { +}; + +struct ItemCollectionSubDirectory { +}; + +struct ItemCollectionSetup { + keen::ObjectReference hierarchy; // Offset: 0 + keen::ObjectReference completionKnowledge; // Offset: 16 +}; + +struct ItemCollectionSlot { + keen::string jointName; // Offset: 0 + keen::ecs::Offset offset; // Offset: 8 +}; + +struct ItemCollectionSlotId { + keen::ObjectReference itemId; // Offset: 48 +}; + +struct ItemCollectionSlotCategory { + keen::ObjectReference category; // Offset: 48 +}; + +struct ItemCollectionSlotEquipment { + keen::EquipmentSlot equipmentSlot; // Offset: 48 +}; + +struct ItemCollectionResource { + keen::BlobArray slots; // Offset: 0 + keen::KnowledgeId completionKnowledgeId; // Offset: 8 +}; + +struct ItemCollectionSlotResource { + keen::ItemCollectionId collectionId; // Offset: 0 + keen::ecs::Offset offset; // Offset: 4 + keen::ItemId itemId; // Offset: 44 + keen::ItemCollectionId collectionCategoryId; // Offset: 48 + keen::EquipmentSlot equipmentSlot; // Offset: 52 +}; + +struct ItemCollectionCategoryDirectory { +}; + +struct ItemCollectionCategory { +}; + +struct SceneScatterData { + keen::ObjectReference scatterSet; // Offset: 0 + keen::uint2 start; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool disable; // Offset: 32 + keen::bool writeDebug; // Offset: 33 +}; + +enum class WorldDistributionTypeFlag { + Flubber = 0, + Blub = 1, + Perry = 2, +}; + +typedef keen::Bitmask8 WorldDistributionTypeFlags; + +struct SceneResetPlayersOutOfBounds { + keen::float32 marginHorizontal; // Offset: 0 + keen::float32 marginVertical; // Offset: 4 + keen::BlobArray playableAreas; // Offset: 8 +}; + +struct Scene { + keen::ObjectReference voxelWorld; // Offset: 0 + keen::uint2 worldSize; // Offset: 16 + keen::int3 worldOrigin; // Offset: 24 + keen::ObjectReference ibl; // Offset: 36 + keen::float32 iblIntensity; // Offset: 52 + keen::ObjectReference atmosphere; // Offset: 56 + keen::Biome biome; // Offset: 72 + keen::ObjectReference biomeMap; // Offset: 76 + keen::SceneScatterData scatterData; // Offset: 92 + keen::bool limitMacroScattering; // Offset: 128 + keen::uint2 macroScatterStart; // Offset: 132 + keen::uint2 macroScatterSize; // Offset: 140 + keen::bool disableVoxelBrushDisplacement; // Offset: 148 + keen::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 149 + keen::bool isTestScene; // Offset: 150 + keen::float32 distantObjectSize; // Offset: 152 + keen::uint32 moveVersion; // Offset: 156 + keen::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 160 +}; + +struct ItemIconScene { + keen::float32 fixedExposure; // Offset: 176 +}; + +enum class WorldTransformFlag { + Translation = 0, + Orientation = 1, + UniformScale = 2, + NonUniformScale = 3, +}; + +typedef keen::Bitmask8 WorldTransformFlags; + +enum class ContentPass { + ManualPois = 0, + LargeStamps = 1, + PrioPois = 2, + FillPois = 3, + DecoStamps = 4, + Enemies = 5, +}; + +struct SceneObject { + keen::WorldTransform worldTransform; // Offset: 0 + keen::WorldTransformFlags worldTransformFlags; // Offset: 56 + keen::ContentPass contentPass; // Offset: 57 +}; + +struct SceneCamera { + keen::BlobString name; // Offset: 64 + keen::Guid guid; // Offset: 72 + keen::float32 nearClip; // Offset: 88 + keen::float32 farClip; // Offset: 92 + keen::float32 fovY; // Offset: 96 +}; + +struct ItemIconSceneCamera { +}; + +struct ItemIconSceneSun { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct SceneBaseLight { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct ScenePointLight { + keen::float32 radius; // Offset: 80 + keen::bool castShadows; // Offset: 84 +}; + +struct ItemIconScenePointLight { +}; + +struct CameraData { + keen::float32 nearClip; // Offset: 0 + keen::float32 farClip; // Offset: 4 + keen::float32 fovY; // Offset: 8 +}; + +struct render.AtmosphereParameters { + keen::float32 planetRadius; // Offset: 0 + keen::ColorRgb rayleighScattering; // Offset: 4 + keen::float32 rayleighDensity; // Offset: 16 + keen::ColorRgb ozoneExtinction; // Offset: 20 + keen::float32 ozoneDensity; // Offset: 32 + keen::float32 rayleightDistribution; // Offset: 36 + keen::float32 mieScattering; // Offset: 40 + keen::float32 mieExtinction; // Offset: 44 + keen::float32 mieDensity; // Offset: 48 + keen::float32 mieDistribution; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::FloatRange yRange; // Offset: 60 +}; + +struct ItemIconSceneInfo { + keen::CameraData camera; // Offset: 0 + keen::WorldTransform cameraTransform; // Offset: 16 + keen::ObjectReference ibl; // Offset: 72 + keen::render::AtmosphereParameters atmosphereParameters; // Offset: 88 + keen::float32 fixedExposure; // Offset: 156 + keen::float32 iblIntensity; // Offset: 160 + keen::float32 sunAzimuth; // Offset: 164 + keen::float32 sunElevation; // Offset: 168 + keen::float3 sunColor; // Offset: 172 + keen::BlobArray lights; // Offset: 184 + keen::BlobArray lightsTransform; // Offset: 192 +}; + +struct JournalDirectory { +}; + +struct JournalSubDirectory { +}; + +struct JournalLoreCategory { + keen::LocaTagReference categoryName; // Offset: 0 +}; + +struct JournalCollectionBase { + keen::LocaTagReference name; // Offset: 0 + keen::LocaTagReference referencedDocumentName; // Offset: 16 + keen::uint32 priority; // Offset: 32 +}; + +struct JournalCollection { +}; + +enum class QuestSourceType { + None = 0, + Flame = 1, + Blacksmith = 2, + Alchemist = 3, + Huntress = 4, + Farmer = 5, + Carpenter = 6, + CryptKeeper = 7, + Bard = 8, +}; + +enum class QuestType { + Auto = 0, + WorldQuest = 1, + PlayerQuest = 2, +}; + +struct JournalQuestReward { +}; + +struct JournalItemReward { + keen::ItemReference item; // Offset: 0 +}; + +struct JournalExperienceReward { + keen::ObjectReference experience; // Offset: 0 +}; + +struct CompletableJournalCollection { + keen::QuestSourceType questSource; // Offset: 36 + keen::QuestType type; // Offset: 37 +}; + +struct TutorialJournalCollection { +}; + +struct JournalEntryBase { + keen::LocaTagReference name; // Offset: 0 + keen::LocaTagReference text; // Offset: 16 + keen::LocaTagReference mapMarkerReference; // Offset: 32 + keen::ObjectReference itemIcon; // Offset: 48 +}; + +struct JournalEntry { +}; + +struct CompletableJournalEntry { +}; + +struct TutorialJournalEntry { +}; + +struct JournalCompletionRequirement { +}; + +struct JournalEntryResource { + keen::JournalEntryId entryId; // Offset: 0 + keen::LocaTagId name; // Offset: 4 + keen::LocaTagId text; // Offset: 8 + keen::LocaTagId mapMarkerReference; // Offset: 12 + keen::ItemId itemIconId; // Offset: 16 + keen::KnowledgeId knowledgeRequirement; // Offset: 20 + keen::KnowledgeId completionRequirement; // Offset: 24 +}; + +struct JournalCollectionResource { + keen::JournalEntryId entryId; // Offset: 0 + keen::LocaTagId loreCategory; // Offset: 4 + keen::LocaTagId name; // Offset: 8 + keen::LocaTagId referencedDocumentName; // Offset: 12 + keen::uint32 priority; // Offset: 16 + keen::bool isTutorial; // Offset: 20 + keen::BlobArray entries; // Offset: 24 +}; + +struct QuestRewardResource { + keen::ItemReference itemRef; // Offset: 0 + keen::ItemId itemId; // Offset: 16 + keen::HashKey32 experienceValueId; // Offset: 20 +}; + +struct JournalQuestResource { + keen::QuestSourceType source; // Offset: 32 + keen::QuestType type; // Offset: 33 + keen::bool unlockForAllPlayers; // Offset: 34 + keen::BlobArray rewards; // Offset: 36 +}; + +struct JournalRegistryResource { + keen::BlobArray quests; // Offset: 0 + keen::BlobArray collections; // Offset: 8 +}; + +struct ecs.KnowledgeTrigger { + keen::StaticArray knowledgeIds; // Offset: 0 + keen::bool canActivate; // Offset: 32 + keen::bool canDeactivate; // Offset: 33 +}; + +struct SubEntityKnowledgeQuery { + keen::KnowledgeId knowledgeQueryId; // Offset: 0 + keen::Guid subEntityTemplate; // Offset: 4 + keen::HashKey32 uiWorldEventId; // Offset: 20 +}; + +struct ecs.KnowledgeQuery { + keen::HashKey32 knowledgeId; // Offset: 0 + keen::HashKey32 uiWorldEventId; // Offset: 4 + keen::bool wasEventTriggered; // Offset: 8 + keen::StaticArray subEntityQueries; // Offset: 12 +}; + +struct ecs.MapMarkerUnlockRequirements { + keen::GameKnowledgeRequirement hintState; // Offset: 0 + keen::GameKnowledgeRequirement visibleState; // Offset: 104 + keen::bool hasCompletedState; // Offset: 208 + keen::GameKnowledgeRequirement completedState; // Offset: 212 + keen::KnowledgeId hintStateQueryId; // Offset: 316 + keen::KnowledgeId visibleStateQueryId; // Offset: 320 + keen::KnowledgeId completedStateQueryId; // Offset: 324 +}; + +struct ecs.KnowledgeTriggerToggle { +}; + +struct ecs.KnowledgeTriggerRange { +}; + +struct ecs.KnowledgeTriggerOnKill { + keen::bool useSceneKnowledgeTrigger; // Offset: 0 + keen::bool unlockForGroup; // Offset: 1 + keen::GameKnowledgeTrigger triggerKnowledge; // Offset: 4 + keen::KnowledgeId triggerKnowledgeId; // Offset: 60 +}; + +struct ecs.KnowledgeUiWorldEvent { + keen::ObjectReference triggerEvent; // Offset: 0 +}; + +struct LootTreeNodeIntermediate { + keen::Guid objectId; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 16 + keen::HashKey32 parentId; // Offset: 20 + keen::uint32 potentialSlots; // Offset: 24 + keen::uint32 potentialChildSlots; // Offset: 28 +}; + +struct LootTreeIntermediate { + keen::BlobArray nodes; // Offset: 0 +}; + +struct LootNodeResource { + keen::HashKey32 nodeId; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 +}; + +struct LootContainerResource { + keen::uint32 lootSettingsIndex; // Offset: 8 +}; + +enum class LootModifierMode { + Set = 0, + Add = 1, + Multiply = 2, + None = 3, +}; + +struct LootModifierValue { + keen::LootModifierMode mode; // Offset: 0 + keen::float32 value; // Offset: 4 +}; + +struct LootModifierInfo { + keen::LootModifierValue level; // Offset: 0 + keen::LootModifierValue levelOffset; // Offset: 8 + keen::float32 levelOffsetRangeMin; // Offset: 16 + keen::float32 levelOffsetRangeMax; // Offset: 20 + keen::StaticArray rarities; // Offset: 24 +}; + +struct LootSettingsResource { + keen::LootModifierInfo modifier; // Offset: 0 + keen::BlobArray tags; // Offset: 64 +}; + +struct SceneRandomLootResource { + keen::BlobArray lootSettings; // Offset: 0 + keen::BlobArray specialItems; // Offset: 8 + keen::BlobArray lootNodes; // Offset: 16 + keen::BlobArray lootContainer; // Offset: 24 +}; + +struct LootDistributionBaseNode { + keen::Guid objectId; // Offset: 0 + keen::BlobArray tags; // Offset: 16 + keen::LootModifierInfo modifier; // Offset: 24 + keen::uint32 potentialSlots; // Offset: 88 + keen::uint32 potentialChildSlots; // Offset: 92 +}; + +struct LootDistributionTreeNode { + keen::HashKey32 nodeId; // Offset: 96 + keen::HashKey32 parentId; // Offset: 100 + keen::BlobArray childNodes; // Offset: 104 +}; + +struct LootContainerInfo { + keen::LootContainerId id; // Offset: 96 + keen::LootContainerId parentId; // Offset: 100 +}; + +struct SpecialItemInfo { + keen::HashKey32 nodeId; // Offset: 0 + keen::ItemId itemId; // Offset: 4 + keen::bool checkItemLabels; // Offset: 8 + keen::uint8 amount; // Offset: 9 +}; + +struct LootDistributionTreeResource { + keen::BlobArray specialItems; // Offset: 112 +}; + +struct EntityRandomLootInfo { + keen::bool isLootEntity; // Offset: 0 + keen::uint32 potentialSlotCount; // Offset: 4 +}; + +struct SceneWhiteboxLootInfo { + keen::HashKey32 lootNodeId; // Offset: 0 + keen::LootContainerInfo lootContainer; // Offset: 4 +}; + +struct SceneWhiteboxLootInfos { + keen::BlobArray lootContainer; // Offset: 0 +}; + +struct LootSlotInfo { + keen::ItemId itemId; // Offset: 0 + keen::uint16 stackSize; // Offset: 4 + keen::ItemRarity rarity; // Offset: 6 + keen::uint32 level; // Offset: 8 +}; + +struct LootContainerFillInfo { + keen::uint8 version; // Offset: 0 + keen::uint8 filledSlots; // Offset: 1 + keen::StaticArray slots; // Offset: 4 +}; + +struct ImportantLootSlotInfo { + keen::uint32 importantItemIndex; // Offset: 0 + keen::ItemId itemId; // Offset: 4 +}; + +struct ImportantLootContainerFillInfo { + keen::uint8 filledSlots; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct LootModifierBase { + keen::LootModifierMode mode; // Offset: 0 +}; + +struct LootModifierAmount { + keen::float32 amount; // Offset: 4 +}; + +struct LootModifierRarity { + keen::ItemRarity rarity; // Offset: 1 + keen::float32 weight; // Offset: 4 +}; + +struct LootModifierItemValue { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct LootModifierLevelOffset { + keen::float32 value; // Offset: 4 +}; + +struct LootModifierLevelOffsetRange { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct RandomLootItem { + keen::ItemReference item; // Offset: 0 + keen::uint8 amount; // Offset: 16 + keen::bool checkItemLabels; // Offset: 17 +}; + +struct RandomLootItemInfo { + keen::ItemId itemId; // Offset: 0 + keen::ItemReference itemRef; // Offset: 4 + keen::uint8 amount; // Offset: 20 + keen::bool checkItemLabels; // Offset: 21 +}; + +struct LootTagInfo { + keen::HashKey32 tagId; // Offset: 0 + keen::float32 weight; // Offset: 4 + keen::Guid guid; // Offset: 8 +}; + +struct ObjectLootSettings { + keen::LootModifierInfo modifier; // Offset: 0 + keen::BlobArray tags; // Offset: 64 + keen::BlobArray specialItems; // Offset: 72 +}; + +enum class ShufflebagItemType { + None = 0, + Weapon = 1, + Armor = 2, +}; + +struct ItemLabelGroupResource { + keen::BlobArray labels; // Offset: 0 + keen::BlobArray childGroups; // Offset: 8 +}; + +struct LootableItemInfo { + keen::ItemId itemId; // Offset: 0 + keen::ItemRarityMask rarities; // Offset: 4 + keen::bool useUiRarity; // Offset: 5 + keen::ItemRarity uiRarity; // Offset: 6 + keen::ItemLabelGroupResource labelGroups; // Offset: 8 + keen::uint16 stackSizeMin; // Offset: 24 + keen::uint16 stackSizeMax; // Offset: 26 + keen::uint16 stackSizeMaxScaled; // Offset: 28 + keen::bool stackSizeScalable; // Offset: 30 + keen::ShufflebagItemType shufflebagType; // Offset: 31 + keen::bool hasWeaponCategory; // Offset: 32 + keen::WeaponCategoryType weaponCategoryType; // Offset: 33 + keen::EquipmentSlotType armorCategoryType; // Offset: 34 + keen::ItemClassAlignmentType classAlignmentType; // Offset: 35 +}; + +struct LootableItemsResource { + keen::StaticArray globalRarityDropRates; // Offset: 0 + keen::float32 weaponArmorRatio; // Offset: 20 + keen::BlobArray items; // Offset: 24 + keen::uint64 itemClassCategoryMask; // Offset: 32 + keen::uint64 weaponCategoryMask; // Offset: 40 + keen::uint64 armorCategoryMask; // Offset: 48 +}; + +struct DefaultLootLabelCollectionResource { + keen::BlobArray lootSettings; // Offset: 0 +}; + +struct DefaultLootSettingsResource { + keen::LootContainerId id; // Offset: 72 +}; + +struct DistributionLootSceneInput { + keen::Guid scatterSetId; // Offset: 0 + keen::LootModifierInfo modifier; // Offset: 16 + keen::BlobArray tags; // Offset: 80 + keen::BlobString lootIdsInput; // Offset: 88 + keen::BlobString lootTreeInput; // Offset: 96 +}; + +struct DistributionLootConverterParameters { + keen::BlobArray lootSceneInputs; // Offset: 0 +}; + +struct DebugItemDropInfo { + keen::ItemId itemId; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct DebugLootSceneInfoMessage { + keen::Guid sceneId; // Offset: 0 +}; + +struct DebugLootContainerInfoMessage { + keen::HashKey32 nodeId; // Offset: 0 + keen::BlobArray droppedItems; // Offset: 4 + keen::float32 weightSum; // Offset: 12 + keen::LootModifierInfo modifierInfo; // Offset: 16 + keen::BlobArray tags; // Offset: 80 + keen::BlobArray possibleItems; // Offset: 88 +}; + +struct RegisteredLootContainerParams { + keen::LootContainerId containerId; // Offset: 0 + keen::LootContainerId parentNodeId; // Offset: 4 + keen::HashKey32 labelDefinitionsId; // Offset: 8 + keen::float baseProbability; // Offset: 12 + keen::uint8 slotsMin; // Offset: 16 + keen::uint8 slotsMax; // Offset: 17 + keen::BlobOptional level; // Offset: 20 +}; + +struct DebugRegisteredLootContainerMessage { + keen::BlobArray registeredContainer; // Offset: 0 +}; + +struct DebugTrackLootContainerMessage { + keen::bool isLootContainer; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 4 +}; + +struct DebugRefreshLootMessage { + keen::HashKey32 nodeId; // Offset: 0 +}; + +struct GroupedItemLabels { +}; + +typedef keen::uint64 LabelMask; + +enum class MarkerTypeSorting { + None = 0, + FlameRelated = 1, + Dungeons = 2, + Locations = 3, + CustomMarker = 4, +}; + +struct MapMarkerType { + keen::MapMarkerTypeId markerId; // Offset: 0 + keen::UiTexture icon; // Offset: 4 + keen::float32 iconDisplaySize; // Offset: 52 + keen::bool isHighlightable; // Offset: 56 + keen::bool isFastTravelDestination; // Offset: 57 + keen::bool showAboveFogOfWar; // Offset: 58 + keen::bool showLabel; // Offset: 59 + keen::bool showRange; // Offset: 60 + keen::bool isCustomMarkerType; // Offset: 61 + keen::bool canBeFiltered; // Offset: 62 + keen::MarkerTypeSorting sortingCategory; // Offset: 63 + keen::uint8 minimizeAboveZoomStep; // Offset: 64 + keen::uint8 hideAboveZoomStep; // Offset: 65 + keen::Color minimizedColor; // Offset: 68 + keen::bool scaleWithZoom; // Offset: 72 +}; + +struct MapMarkerRegistryTool { +}; + +struct MapMarkerRegistryResource { + keen::BlobArray mapMarkers; // Offset: 0 + keen::UiTexturePreload texturePreload; // Offset: 8 +}; + +struct CustomMapMarker { + keen::WorldPosition position; // Offset: 0 + keen::uint8 colorScheme; // Offset: 24 + keen::MapMarkerTypeId type; // Offset: 28 +}; + +enum class npc.HappinessRequirement { + Sheltered = 0, + Bed = 1, + Food = 2, +}; + +typedef keen::Bitmask8 npc.HapinessMask; + +struct npc.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +typedef keen::uint8 player_bases.BaseIndex; + +struct npc.PlacedNpcInfo { + keen::player_bases::BaseIndex baseIndex; // Offset: 0 + keen::ecs::EntityId entityId; // Offset: 4 + keen::npc::HapinessMask happiness; // Offset: 8 +}; + +enum class active_npc.State { + Invalid = 0, + Start = 1, + FindBed = 2, + Idle = 3, + DecideTask = 4, + FindTarget = 5, + GoToTarget = 6, + Work = 7, + Roam = 8, + Sleep = 9, + Sitting = 10, + Inspecting = 11, + Eating = 12, + FinishTask = 13, +}; + +enum class active_npc.StateCondition { + IsFinished = 0, + HasFailed = 1, +}; + +enum class active_npc.Decision { + None = 0, + WantsToWork = 1, + WantsToRoam = 2, + WantsToSitDown = 3, + WantsToInspect = 4, + WantsToSleep = 5, + WantsToEat = 6, + WantsToIdle = 7, +}; + +enum class active_npc.NpcType { + None = 0, + TownFolk = 1, + Alchemist = 2, + Bard = 3, + Blacksmith = 4, + Carpenter = 5, + CryptKeeper = 6, + Hunter = 7, + Farmer = 8, +}; + +struct active_npc.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float roamWeight; // Offset: 12 + keen::float workWeight; // Offset: 16 +}; + +struct active_npc.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct active_npc.WorkSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.TargetSetup { + keen::bool isFarmland; // Offset: 0 + keen::bool isBed; // Offset: 1 + keen::bool isCraftingStation; // Offset: 2 + keen::bool isSeating; // Offset: 3 + keen::bool isFood; // Offset: 4 + keen::bool isInteresting; // Offset: 5 +}; + +struct ecs.NpcDialog { + keen::bool isFlame; // Offset: 0 + keen::ObjectReference dialog; // Offset: 4 + keen::NpcDialogResource dialogResource; // Offset: 20 + keen::LocaTagReference interactionVerbLoca; // Offset: 104 +}; + +struct ecs.DynamicNpcDialog { + keen::uint16 syncedKnowledgeQueryCounter; // Offset: 0 +}; + +struct ecs.NpcDialogPartner { + keen::bool isInGreetingRange; // Offset: 0 + keen::Time lastGreetingTime; // Offset: 8 +}; + +struct ecs.NpcState { + keen::actor::ActorSequenceReference defaultGreetingSequence; // Offset: 0 + keen::actor::ActorSequenceReference attentionGreetingSequence; // Offset: 16 + keen::actor::TurnSetup turnSetup; // Offset: 32 + keen::npc::IdleSequenceSetup idleSetup; // Offset: 104 + keen::npc::HapinessMask hapinessMask; // Offset: 120 + keen::float32 minDistanceToPlayer; // Offset: 124 +}; + +typedef keen::uint64 ecs.PlayerMask; + +enum class ecs.NpcInteractionState { + IsTurning = 0, + IsGreeting = 1, + IsCloseToPlayer = 2, + IsPlayingSequence = 3, +}; + +typedef keen::Bitmask8 ecs.NpcInteractionStates; + +struct ecs.DynamicNpcState { + keen::LocaTagId lastSelectedDialogId; // Offset: 0 + keen::ecs::EntityId lastInteractingEntityId; // Offset: 4 + keen::bool dialogSequenceActive; // Offset: 8 + keen::Time nextGreetingTime; // Offset: 16 + keen::Time lastLookAtPlayerTime; // Offset: 24 + keen::Time nextLookAtPlayerTime; // Offset: 32 + keen::Time remainingNextSequenceTime; // Offset: 40 + keen::StaticArray queryIds; // Offset: 48 + keen::ecs::PlayerMask playersInSight; // Offset: 112 + keen::ecs::PlayerMask greetedPlayers; // Offset: 120 + keen::bool isInitialized; // Offset: 128 + keen::bool isSpawning; // Offset: 129 + keen::Quaternion revertToRotation; // Offset: 132 +}; + +struct ecs.ActiveNpcState { + keen::NpcId npcId; // Offset: 0 + keen::actor::ActorSequenceReference sitSequence; // Offset: 4 + keen::actor::ActorSequenceReference sleepSequence; // Offset: 20 + keen::actor::ActorSequenceReference inspectSequence; // Offset: 36 + keen::active_npc::NpcType npcType; // Offset: 52 + keen::active_npc::DecisionSetup decisionSetup; // Offset: 56 + keen::active_npc::IdleSetup idleSetup; // Offset: 80 + keen::active_npc::RoamingSetup roamingSetup; // Offset: 96 + keen::active_npc::MovementSetup movementSetup; // Offset: 108 + keen::active_npc::WorkSetup workSetup; // Offset: 120 + keen::active_npc::SleepSetup sleepSetup; // Offset: 136 + keen::active_npc::SearchTargetSetup searchTargetSetup; // Offset: 152 + keen::active_npc::PathNodeSetup pathNodeSetup; // Offset: 160 +}; + +struct ecs.DynamicActiveNpcState { + keen::active_npc::State state; // Offset: 0 + keen::active_npc::State previousState; // Offset: 1 + keen::active_npc::Decision decision; // Offset: 2 + keen::npc::HapinessMask happiness; // Offset: 3 + keen::bool wasPaused; // Offset: 4 +}; + +struct ecs.NPCMovement { + keen::Time duration; // Offset: 0 + keen::float3 movement; // Offset: 8 +}; + +struct ecs.NpcCommon { + keen::ecs::NpcInteractionStates interactionStates; // Offset: 0 + keen::Time stateTimer; // Offset: 8 + keen::Time currentStateDuration; // Offset: 16 + keen::Time stuckTime; // Offset: 24 + keen::Time stuckTimeOut; // Offset: 32 + keen::ecs::RangeQueryId queryId; // Offset: 40 + keen::ecs::EntityId closestPlayerId; // Offset: 44 + keen::ecs::EntityId currentTargetId; // Offset: 48 + keen::ecs::EntityId bedId; // Offset: 52 + keen::ecs::EntityId previousTargetId; // Offset: 56 + keen::float sleepTime; // Offset: 60 + keen::float wakeUpTime; // Offset: 64 + keen::float closestPlayerDistance; // Offset: 68 + keen::float squaredDistanceToTarget; // Offset: 72 + keen::float3 currentTargetPosition; // Offset: 76 + keen::StaticArray history; // Offset: 88 + keen::uint8 historyIndex; // Offset: 1528 + keen::Guid currentSequenceId; // Offset: 1532 + keen::bool useReducedRoamingSpace; // Offset: 1548 + keen::bool shouldBeMoving; // Offset: 1549 + keen::uint8 unstuckTries; // Offset: 1550 + keen::uint8 stateFailures; // Offset: 1551 +}; + +struct ecs.ActiveNpcStateSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::bool overrideRoamingRange; // Offset: 12 + keen::float roamingRange; // Offset: 16 + keen::WorldPosition teleportPositionAfterFinishing; // Offset: 24 +}; + +struct ecs.ClientActiveNpcState { + keen::ecs::EntityId bedId; // Offset: 0 + keen::npc::HapinessMask happiness; // Offset: 4 + keen::float roamingRange; // Offset: 8 +}; + +struct ecs.StoreAssociatedNpcIds { + keen::bool initialized; // Offset: 0 + keen::StaticArray npcIds; // Offset: 4 +}; + +struct ecs.ActiveNpcTarget { + keen::active_npc::TargetSetup setup; // Offset: 0 + keen::active_npc::NpcType npcType; // Offset: 6 + keen::NpcId associatedNpc; // Offset: 8 + keen::ecs::Offset targetOffset; // Offset: 12 +}; + +struct ecs.ClientActiveNpcTarget { + keen::NpcId associatedNpc; // Offset: 0 + keen::bool isBed; // Offset: 4 +}; + +struct ecs.NpcSequenceEntry { + keen::actor::ActorSequenceReference sequence; // Offset: 0 +}; + +struct ecs.BaseNpcSequences { + keen::BlobArray sequences; // Offset: 0 +}; + +struct ecs.NpcIdleSequences { +}; + +struct ecs.NpcWorkSequences { +}; + +struct ecs.NpcActionSequences { + keen::ecs::NpcIdleSequences idleSequences; // Offset: 0 + keen::ecs::NpcWorkSequences workSequences; // Offset: 8 +}; + +struct NpcResource { + keen::NpcId id; // Offset: 0 + keen::LocaTagId name; // Offset: 4 + keen::bool isCraftingAssistant; // Offset: 8 + keen::KnowledgeId unlockRequirement; // Offset: 12 + keen::WorkshopId workshopId; // Offset: 16 + keen::LocaTagId workshopLabel; // Offset: 20 + keen::ItemId itemId; // Offset: 24 + keen::ItemReference itemRef; // Offset: 28 + keen::CharacterPresetReference characterPresetReference; // Offset: 44 + keen::CharacterPresetId characterPresetId; // Offset: 60 + keen::UiNpcRenderingOptions uiRendering; // Offset: 64 + keen::BlobString debugName; // Offset: 116 +}; + +struct NpcCollection { + keen::BlobArray npcs; // Offset: 0 +}; + +struct ecs.PathFinder { + keen::ecs::PathGridDistance horizontalStartSearchRadius; // Offset: 0 + keen::ecs::PathGridDistance verticalStartSearchRadius; // Offset: 4 + keen::ecs::PathfindingSettings settings; // Offset: 8 +}; + +struct ecs.DynamicPathFinder { + keen::Time lastQueryTime; // Offset: 0 + keen::float3 targetPosition; // Offset: 8 + keen::float3 lastStartPosition; // Offset: 20 + keen::float3 lastTargetPosition; // Offset: 32 + keen::uint32 lastKeepDistance; // Offset: 44 + keen::HashKey32 lastParametersHash; // Offset: 48 + keen::float32 lastMaxTargetNodeDistance; // Offset: 52 + keen::ecs::PathQueryId queryId; // Offset: 56 + keen::uint32 keepDistance; // Offset: 60 + keen::ecs::PathGridDistance horizontalSearchRadius; // Offset: 64 + keen::ecs::PathGridDistance verticalSearchRadius; // Offset: 68 + keen::ecs::PathGridType gridType; // Offset: 72 + keen::bool keepLastResults; // Offset: 73 + keen::ecs::PathQueryCheck pathQueryCheck; // Offset: 74 + keen::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 76 + keen::ecs::PathGridDistance minHorizontalSpace; // Offset: 80 + keen::ecs::PathGridDistance minVerticalSpace; // Offset: 84 + keen::float32 maxTargetNodeDistance; // Offset: 88 + keen::uint32 maxWalkDistance; // Offset: 92 + keen::ecs::PathQueryTargetType targetType; // Offset: 96 + keen::uint32 maxIterations; // Offset: 100 + keen::float2 horizontalKeepDistanceDirection; // Offset: 104 + keen::float3 freePathCheckPosition; // Offset: 112 + keen::bool enableAdditionalSpaceSearch; // Offset: 124 + keen::bool enableJumpUp; // Offset: 125 + keen::bool enableJumpDown; // Offset: 126 + keen::bool canOpenDoors; // Offset: 127 + keen::uint8 maxJumpUpHeight; // Offset: 128 + keen::uint8 maxJumpDownHeight; // Offset: 129 + keen::bool enforceUpdate; // Offset: 130 + keen::bool ignoreWalkableColliders; // Offset: 131 + keen::bool ignoreMovingObjects; // Offset: 132 + keen::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 136 + keen::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 140 + keen::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 144 + keen::float32 horizontalDistanceCostFactor; // Offset: 196 + keen::bool checkFreePathToTarget; // Offset: 200 + keen::bool ignoreNodesCloseToHole; // Offset: 201 +}; + +enum class ecs.PathWalkerState { + Idle = 0, + WaitingForQuery = 1, + Walking = 2, + TurnBeforeJump = 3, + WalkToJumpPoint = 4, + JumpUp = 5, + JumpDown = 6, + TargetReached = 7, + TargetNotReachable = 8, + Stuck = 9, + Turn = 10, + Teleporting = 11, + WalkToDoor = 12, + OpenDoor = 13, +}; + +struct ecs.PathWalkerTurnSettings { + keen::float turnToNextWayPointMinDistanceWalk; // Offset: 0 + keen::float turnToNextWayPointMinDistanceRun; // Offset: 4 +}; + +struct ecs.PathWalker { + keen::actor::ActorSequenceReference jumpSequence; // Offset: 0 + keen::actor::ActorSequenceReference openDoorSequence; // Offset: 16 + keen::bool usePathFinding; // Offset: 32 + keen::actor::ActorSequenceReference teleportSequence; // Offset: 36 + keen::float32 jumpMoveSpeed; // Offset: 52 + keen::float32 horizontalRadius; // Offset: 56 + keen::float32 verticalRadius; // Offset: 60 + keen::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 64 + keen::ecs::PathWalkerTurnSettings turnSettings; // Offset: 68 +}; + +struct ecs.DynamicPathWalker { + keen::float3 targetPosition; // Offset: 0 + keen::uint32 upateCounter; // Offset: 12 + keen::uint32 pathIndex; // Offset: 16 + keen::ecs::PathWalkerState state; // Offset: 20 + keen::float3 lookAtTarget; // Offset: 24 + keen::bool lookAtMovementTarget; // Offset: 36 + keen::bool setDesiredWorldLookDirection; // Offset: 37 + keen::uint32 keepDistance; // Offset: 40 + keen::ecs::PathGridDistance horizontalSearchRadius; // Offset: 44 + keen::ecs::PathGridDistance verticalSearchRadius; // Offset: 48 + keen::float32 maxArriveWaypointDistance; // Offset: 52 + keen::float32 maxArriveTargetDistance; // Offset: 56 + keen::bool shouldOverrideMinArriveDistance; // Offset: 60 + keen::float32 overrideMinArriveDistance; // Offset: 64 + keen::bool shouldOverrideMinTurnDistance; // Offset: 68 + keen::float32 overrideMinTurnDistance; // Offset: 72 + keen::Time stuckTime; // Offset: 80 + keen::bool keepLastResults; // Offset: 88 + keen::ecs::PathQueryCheck pathQueryCheck; // Offset: 89 + keen::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 92 + keen::ecs::PathGridDistance minHorizontalSpace; // Offset: 96 + keen::ecs::PathGridDistance minVerticalSpace; // Offset: 100 + keen::Time standingDuration; // Offset: 104 + keen::Time walkingDuration; // Offset: 112 + keen::float32 maxTargetNodeDistance; // Offset: 120 + keen::uint32 maxWalkDistance; // Offset: 124 + keen::ecs::PathQueryTargetType targetType; // Offset: 128 + keen::float32 closestWaypointSquareDistance; // Offset: 132 + keen::uint32 maxIterations; // Offset: 136 + keen::float32 currentPathLengthToTarget; // Offset: 140 + keen::float2 horizontalKeepDistanceDirection; // Offset: 144 + keen::float3 freePathCheckPosition; // Offset: 152 + keen::float3 lastReachedTarget; // Offset: 164 + keen::bool isWalkingActive; // Offset: 176 + keen::bool enableAdditionalSpaceSearch; // Offset: 177 + keen::bool enableJumpUp; // Offset: 178 + keen::bool enableJumpDown; // Offset: 179 + keen::bool canOpenDoors; // Offset: 180 + keen::uint8 maxJumpUpHeight; // Offset: 181 + keen::uint8 maxJumpDownHeight; // Offset: 182 + keen::Time lastEnforceUpdateTime; // Offset: 184 + keen::bool useTurnSequences; // Offset: 192 + keen::actor::SequenceRuntimeId turnSequenceId; // Offset: 200 + keen::actor::SequenceRuntimeId teleportSequenceId; // Offset: 224 + keen::actor::SequenceRuntimeId openDoorSequenceId; // Offset: 248 + keen::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 272 + keen::bool enableTeleportMovement; // Offset: 276 + keen::bool ignoreWalkableColliders; // Offset: 277 + keen::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 280 + keen::float32 horizontalDistanceCostFactor; // Offset: 332 + keen::bool checkFreePathToTarget; // Offset: 336 + keen::ecs::PathNodeRequirements pathNodeRequirementsOverride; // Offset: 338 + keen::bool useNodeRequirementsOverride; // Offset: 342 + keen::bool ignoreMovingObjects; // Offset: 343 + keen::bool tryToReachTargetAsCloseAsPossible; // Offset: 344 + keen::bool ignoreNodesCloseToHole; // Offset: 345 +}; + +enum class ecs.PathGridInteractionObjectType { + Door = 0, + MovingObject = 1, +}; + +struct ecs.PathGridInteraction { + keen::ecs::PathGridInteractionObjectType interactionObjectType; // Offset: 0 +}; + +struct ecs.DynamicPathGridInteraction { + keen::bool isRegistered; // Offset: 0 +}; + +struct ecs.PathFinderTester { +}; + +enum class ecs.PathFindingMarkerType { + Start = 0, + Target = 1, +}; + +enum class ecs.PathFindingMarkerTestMode { + PathFound = 0, + NoPathFound = 1, +}; + +enum class ecs.PathFindingMarkerTestState { + NotStarted = 0, + Running = 1, + Finished = 2, + Failed = 3, +}; + +struct ecs.PathFindingTestMarker { + keen::ecs::PathFindingMarkerType type; // Offset: 0 + keen::ecs::PathFindingMarkerTestMode testMode; // Offset: 1 + keen::ecs::PathFindingMarkerTestState state; // Offset: 2 + keen::ecs::PathQueryId queryId; // Offset: 4 +}; + +struct PerkDamageModifier { + keen::impact::DamageDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 52 +}; + +enum class PerkConfig { + MaxPerksPerItem = 5, +}; + +struct Perk { + keen::NameLocaTag name; // Offset: 0 + keen::DescriptionLocaTag description; // Offset: 16 + keen::UiTexture icon; // Offset: 32 + keen::ImpactProgramReference impact; // Offset: 80 + keen::bool simpleAttributeBuff; // Offset: 96 + keen::BlobArray uiValues; // Offset: 100 + keen::impact::Configurations impactValues; // Offset: 108 + keen::PerkDamageModifier damageModifier; // Offset: 116 + keen::ItemArmorSetup perkArmorSetup; // Offset: 172 + keen::string debugName; // Offset: 212 +}; + +struct PerkSubDirectory { +}; + +struct PerkDirectory { +}; + +struct PerkCollectionResource { + keen::BlobArray perks; // Offset: 0 +}; + +enum class RecipeLevelRequirement { + None = 0, + LevelEqual = 1, + LevelGreaterOrEqual = 2, +}; + +struct RecipeItemStack { + keen::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct RecipeInputList { +}; + +struct RecipeOutputList { +}; + +struct RequiredProp { + keen::ObjectReference craftingProp; // Offset: 0 +}; + +struct Recipe { + keen::NameLocaTag name; // Offset: 0 + keen::DescriptionLocaTag description; // Offset: 16 + keen::LoreLocaTag lore; // Offset: 32 + keen::bool showIsNewLabel; // Offset: 48 + keen::bool useCustomCompletionRequirement; // Offset: 49 + keen::GameKnowledgeRequirement completionRequirement; // Offset: 52 + keen::bool requiresSheltered; // Offset: 156 + keen::ObjectReference workshopReference; // Offset: 160 + keen::RecipeLevelRequirement levelRequirement; // Offset: 176 + keen::uint32 level; // Offset: 180 + keen::RecipeLevelRequirement comfortLevelRequirement; // Offset: 184 + keen::uint32 comfortLevel; // Offset: 188 + keen::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 192 + keen::uint32 serverProgressLevel; // Offset: 196 + keen::uint32 requiredHappyNpcCount; // Offset: 200 + keen::uint32 requiredEnergy; // Offset: 204 + keen::Time craftingDuration; // Offset: 208 + keen::bool isUpgrade; // Offset: 216 +}; + +struct RecipeList { + keen::ObjectReference workshopDirectory; // Offset: 0 +}; + +struct RecipeInfo { + keen::RecipeId recipeId; // Offset: 0 + keen::WorkshopId workshopId; // Offset: 4 + keen::BlobArray input; // Offset: 8 + keen::BlobArray output; // Offset: 16 + keen::bool requiresSheltered; // Offset: 24 + keen::bool showIsImportantLabel; // Offset: 25 + keen::RecipeLevelRequirement levelRequirement; // Offset: 26 + keen::uint32 level; // Offset: 28 + keen::RecipeLevelRequirement comfortLevelRequirement; // Offset: 32 + keen::uint32 comfortLevel; // Offset: 36 + keen::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 40 + keen::uint32 serverProgressLevel; // Offset: 44 + keen::uint32 requiredHappyNpcCount; // Offset: 48 + keen::uint32 requiredEnergy; // Offset: 52 + keen::Time craftingDuration; // Offset: 56 + keen::bool isCookingRecipe; // Offset: 64 + keen::bool isUpgrade; // Offset: 65 + keen::BlobArray requiredProps; // Offset: 68 + keen::CraftingPropMask requiredPropsMask; // Offset: 80 + keen::KnowledgeId knowledgeRequirement; // Offset: 88 + keen::KnowledgeId recipeInspectedKnowledgeId; // Offset: 92 + keen::KnowledgeId recipeCraftedKnowledgeId; // Offset: 96 + keen::KnowledgeId completionRequirementId; // Offset: 100 + keen::NameLocaTag recipeName; // Offset: 104 + keen::BlobString debugName; // Offset: 120 +}; + +struct RecipeRegistryResource { + keen::BlobArray recipes; // Offset: 0 +}; + +typedef keen::HashKey32 SkillNodeLinkId; + +struct ecs.SkillIdComponent { + keen::SkillNodeId skillId; // Offset: 0 +}; + +enum class SkillNodeType { + Root = 0, + Attribute = 1, + ActiveSkill = 2, + PassiveSkill = 3, + MartyrSkill = 4, +}; + +enum class ClassType { + Warrior = 0, + Mage = 1, + Ranger = 2, + Neutral = 3, +}; + +struct SkillTreeNodeLink { + keen::SkillNodeLinkId id; // Offset: 0 + keen::SkillNodeId sourceNode; // Offset: 4 + keen::SkillNodeId targetNode; // Offset: 8 + keen::bool isBidirectional; // Offset: 12 +}; + +struct SkillTreeNode { + keen::SkillNodeId id; // Offset: 0 + keen::SkillNodeType type; // Offset: 4 + keen::float2 uiPosition; // Offset: 8 + keen::uint16 costs; // Offset: 16 + keen::LocaTagId name; // Offset: 20 + keen::LocaTagId description; // Offset: 24 + keen::ClassType classAlignment; // Offset: 28 + keen::ItemReference activeSkillUnlockRef; // Offset: 32 + keen::ItemId activeSkillUnlock; // Offset: 48 + keen::UiTexture iconInactive; // Offset: 52 + keen::UiTexture iconActive; // Offset: 100 + keen::ImpactProgramReference impactReference; // Offset: 148 + keen::BlobArray uiValues; // Offset: 164 + keen::impact::Configurations configValues; // Offset: 172 + keen::bool isDeactivatedForEarlyAccess; // Offset: 180 + keen::BlobArray incomingLinks; // Offset: 184 + keen::BlobArray outgoingLinks; // Offset: 192 +}; + +typedef keen::ObjectReference SkillTreeNodeReference; + +struct SkillTreeResource { + keen::BlobArray nodes; // Offset: 0 + keen::BlobArray links; // Offset: 8 +}; + +struct SkillTreeDefinition { +}; + +struct skilltree_nodes.Node { + keen::Vector2 uiPosition; // Offset: 0 + keen::NameLocaTag name; // Offset: 8 + keen::DescriptionLocaTag description; // Offset: 24 + keen::ImageReference iconInactive; // Offset: 40 + keen::ImageReference iconActive; // Offset: 56 + keen::uint16 costs; // Offset: 72 + keen::ClassType classAlignment; // Offset: 74 + keen::bool isDeactivatedForEarlyAccess; // Offset: 75 +}; + +struct skilltree_nodes.StartingNode { +}; + +struct skilltree_nodes.AbilityNode { + keen::ItemReference abilityItem; // Offset: 76 + keen::ImpactProgramReference impactReference; // Offset: 92 + keen::impact::Configurations configValues; // Offset: 108 +}; + +struct skilltree_nodes.AttributeNode { + keen::ImpactProgramReference impactReference; // Offset: 76 + keen::impact::Configurations configValues; // Offset: 92 +}; + +struct skilltree_nodes.PassiveNode { + keen::ImpactProgramReference impactReference; // Offset: 76 + keen::impact::Configurations configValues; // Offset: 92 +}; + +struct skilltree_nodes.MartyrNode { + keen::ImpactProgramReference impactReference; // Offset: 76 + keen::impact::Configurations configValues; // Offset: 92 +}; + +struct skilltree_nodes.SkillTreeLink { + keen::skilltree_nodes::NodeReference startNode; // Offset: 0 + keen::BlobString startElementName; // Offset: 16 + keen::skilltree_nodes::NodeReference endNode; // Offset: 24 +}; + +struct ecs.SteeringLocomotion { + keen::bool setRotationFlag; // Offset: 0 + keen::bool clearVelocity; // Offset: 1 + keen::bool slowDownIfMovementAngleIsTooBig; // Offset: 2 + keen::float32 maxRunAngle; // Offset: 4 + keen::float32 maxMovementAngle; // Offset: 8 + keen::bool isCloseToHole; // Offset: 12 + keen::Time lastHookedTime; // Offset: 16 +}; + +struct ecs.SteeringAgent { + keen::ecs::RangeQueryId queryId; // Offset: 0 + keen::bool active; // Offset: 4 + keen::float3 desiredVelocity; // Offset: 8 + keen::float32 currentVelocityWeight; // Offset: 20 + keen::float32 desiredVelocityWeight; // Offset: 24 + keen::float3 velocity; // Offset: 28 + keen::float32 maxSpeed; // Offset: 40 + keen::float32 maxForce; // Offset: 44 + keen::float32 maxAcceleration; // Offset: 48 + keen::float32 mass; // Offset: 52 + keen::float32 separationRange; // Offset: 56 + keen::uint8 priority; // Offset: 60 + keen::ecs::EntityId ignoredEntity; // Offset: 64 +}; + +struct ecs.SteeringBehavior { + keen::float3 steeringForce; // Offset: 0 +}; + +struct ecs.SteeringBehavior_Seek { +}; + +struct ecs.SteeringBehavior_Flee { + keen::float32 viewConeHalfAngle; // Offset: 12 + keen::float32 fleeRadius; // Offset: 16 + keen::bool checkViewCone; // Offset: 20 +}; + +struct ecs.SteeringBehavior_Separation { + keen::bool enabled; // Offset: 12 + keen::Time forceActiveDuration; // Offset: 16 +}; + +struct ecs.SteeringBehavior_LookAhead { + keen::Time lastQueryTime; // Offset: 16 + keen::Angle lookAheadAngle; // Offset: 24 + keen::float lookAheadDistance; // Offset: 28 +}; + +struct ecs.SteeringBehavior_ObstacleAvoidance { + keen::ecs::QueryId queryId; // Offset: 12 + keen::Time lastCheckTime; // Offset: 16 + keen::float32 minHeightDiff; // Offset: 24 +}; + +struct ecs.SteeringBehavior_Cohesion { +}; + +struct ecs.SteeringBehavior_Alignment { +}; + +struct ecs.SteeringAnimator { + keen::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::animationgraph::StateIdReference walkAnimation; // Offset: 16 +}; + +struct ToolTerraformingEfficiency { + keen::ItemReference toolItem; // Offset: 0 + keen::float32 efficiency; // Offset: 16 +}; + +struct ConditionalVoxelMaterialBuffType { + keen::float minSubmergePercentage; // Offset: 0 + keen::BuffTypeReference buffType; // Offset: 4 +}; + +typedef keen::uint8 TerrainMaterialType; + +struct TerrainMaterialId { + keen::TerrainMaterialType value; // Offset: 0 +}; + +struct TerrainTerraformingConfig { + keen::TerrainMaterialId terrainMaterial; // Offset: 0 + keen::ItemReference terrainItem; // Offset: 4 + keen::HardnessCategory hardness; // Offset: 20 + keen::uint32 terrainPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::bool canBeFlattened; // Offset: 32 + keen::bool isSlidingMaterial; // Offset: 33 + keen::Guid experienceGainGuid; // Offset: 36 + keen::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::BuffTypeReference buffReference; // Offset: 72 + keen::BlobArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 96 + keen::float frictionFactor; // Offset: 100 + keen::float maxSubmergeDepth; // Offset: 104 + keen::float minSubmergePercentage; // Offset: 108 + keen::float maxSubmergePercentage; // Offset: 112 + keen::Guid entityTag; // Offset: 116 + keen::ecs::PathNodeType pathNodeType; // Offset: 132 +}; + +typedef keen::uint8 BuildingMaterialType; + +struct BuildingMaterialId { + keen::BuildingMaterialType value; // Offset: 0 +}; + +struct BuildingTerraformingConfig { + keen::BuildingMaterialId buildingMaterial; // Offset: 0 + keen::ItemReference materialItem; // Offset: 4 + keen::HardnessCategory hardness; // Offset: 20 + keen::uint32 blocksPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::KnowledgeId knowledgeId; // Offset: 32 + keen::Guid experienceGainGuid; // Offset: 36 + keen::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::BuffTypeReference buffReference; // Offset: 72 + keen::BlobArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 96 + keen::float frictionFactor; // Offset: 100 + keen::float maxSubmergeDepth; // Offset: 104 + keen::float minSubmergePercentage; // Offset: 108 + keen::float maxSubmergePercentage; // Offset: 112 + keen::Guid entityTag; // Offset: 116 + keen::ecs::PathNodeType pathNodeType; // Offset: 132 +}; + +struct TerraformingEfficiencyRegistryResource { + keen::BlobArray terrainConfigs; // Offset: 0 + keen::BlobArray buildingConfigs; // Offset: 8 +}; + +typedef keen::HashKey32 TwitchDropId; + +struct TwitchDropItem { + keen::ItemReference item; // Offset: 0 +}; + +struct TwitchDrop { +}; + +struct TwitchDropSubDirectory { +}; + +struct TwitchDropDirectory { +}; + +struct TwitchDropResource { + keen::TwitchDropId dropId; // Offset: 0 + keen::BlobArray items; // Offset: 4 + keen::BlobArray itemRefs; // Offset: 12 + keen::string debugName; // Offset: 20 + keen::Guid debugId; // Offset: 28 +}; + +struct TwitchDropCollection { + keen::BlobArray drops; // Offset: 0 +}; + +typedef keen::HashKey32 VoxelBlueprintId; + +typedef keen::HashKey32 VoxelBlueprintMaterialPoolId; + +struct VoxelSnappingRule { + keen::BlobArray> snappingTargets; // Offset: 0 + keen::BlobArray> excludeSnappingTargets; // Offset: 8 + keen::uint8 maxHorizontalDistance; // Offset: 16 + keen::uint8 maxVerticalDistance; // Offset: 17 + keen::bool snapHorizontally; // Offset: 18 + keen::bool snapVertically; // Offset: 19 + keen::bool aboveAdjacent; // Offset: 20 + keen::bool aboveEnclosing; // Offset: 21 + keen::bool belowAdjacent; // Offset: 22 + keen::bool belowEnclosing; // Offset: 23 + keen::bool directionalHorizontalSnapping; // Offset: 24 + keen::bool sideAdjacent; // Offset: 25 + keen::bool sideEnclosing; // Offset: 26 + keen::bool lenghtwiseAdjacent; // Offset: 27 + keen::bool lenghtwiseEnclosing; // Offset: 28 + keen::bool crosswiseAdjacent; // Offset: 29 + keen::bool crosswiseEnclosing; // Offset: 30 + keen::BlobString debugName; // Offset: 32 +}; + +struct VoxelBlueprintMaterial { + keen::ObjectReference materialItem; // Offset: 0 +}; + +struct VoxelBlueprintConfigSnapping { + keen::BlobArray rules; // Offset: 0 +}; + +struct VoxelBlueprintMaterialPool { + keen::EquipmentSlot equipmentSlot; // Offset: 0 + keen::VoxelBlueprintMaterialPoolId poolId; // Offset: 4 + keen::BlobArray materials; // Offset: 8 + keen::BlobString debugName; // Offset: 16 +}; + +struct VoxelBlueprintConfig { + keen::VoxelBlueprintConfigSnapping snappingConfig; // Offset: 0 + keen::BlobString debugName; // Offset: 8 +}; + +struct VoxelBlueprintRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryResource { + keen::BlobArray materialPools; // Offset: 0 +}; + +enum class VoxelScatterImageMode { + HigherThan = 0, + SurfaceMaterial = 1, + AboveFog = 2, +}; + +enum class VoxelScatterImageContentPass { + ManualPois = 0, + LargeStamps = 1, + PrioPois = 2, + FillPois = 3, + DecoStamps = 4, + Enemies = 5, + Final = 6, +}; + +struct AbstractScatterImage { +}; + +struct VoxelScatterImage { + keen::ObjectReference scene; // Offset: 0 + keen::VoxelScatterImageContentPass contentPass; // Offset: 16 + keen::uint32 upscaleFactor; // Offset: 20 + keen::VoxelScatterImageMode mode; // Offset: 24 + keen::float32 referenceHeight; // Offset: 28 + keen::ObjectReference referenceMaterial; // Offset: 32 +}; + +enum class ecs.GameSettingsVersion { + V_0 = 0, + V_1 = 1, + V_2 = 2, + V_3 = 3, + V_4_HungerDuration = 4, + V_5_EnumStrings = 5, + V_6_PlayerBodyHeat = 6, + V_7_GliderTurbulences = 7, + V_8_WeatherFrequency = 8, + V_9_TamingStartleRepercussion = 9, +}; + +struct ecs.GameSettingsPresetConfig { + keen::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::ecs::GameSettings settings; // Offset: 8 +}; + +struct GameSettingsPresetsResource { + keen::ecs::GameSettings minValues; // Offset: 0 + keen::ecs::GameSettings maxValues; // Offset: 128 + keen::BlobArray presets; // Offset: 256 +}; + +enum class G38TestState { + Invalid = 0, + Setup = 1, + Running = 2, + Cleanup = 3, + Finished = 4, +}; + +struct G38TestResult { + keen::string name; // Offset: 0 + keen::string program; // Offset: 8 + keen::Time duration; // Offset: 16 + keen::ErrorId error; // Offset: 24 +}; + +struct G38TestSummary { + keen::uint32 count; // Offset: 0 + keen::uint32 failed; // Offset: 4 +}; + +struct G38TestReport { + keen::CalendarTimeStamp date; // Offset: 0 + keen::G38TestSummary summary; // Offset: 8 + keen::BlobArray testResults; // Offset: 16 +}; + +typedef keen::LocaTagReference UiLocaTagReference; + +struct FbUiLocaCraftingWorkshops { + keen::UiLocaTagReference player; // Offset: 0 + keen::UiLocaTagReference alchemist; // Offset: 16 + keen::UiLocaTagReference blacksmith; // Offset: 32 + keen::UiLocaTagReference carpenter; // Offset: 48 + keen::UiLocaTagReference workbench; // Offset: 64 + keen::UiLocaTagReference grindingWheel; // Offset: 80 + keen::UiLocaTagReference oven; // Offset: 96 + keen::UiLocaTagReference campfireBarbecue; // Offset: 112 + keen::UiLocaTagReference anvil; // Offset: 128 + keen::UiLocaTagReference distillery; // Offset: 144 + keen::UiLocaTagReference furnace; // Offset: 160 + keen::UiLocaTagReference mortar; // Offset: 176 + keen::UiLocaTagReference sketches; // Offset: 192 + keen::UiLocaTagReference flameAltar; // Offset: 208 +}; + +struct FbUiLocaCraftingCategories { + keen::UiLocaTagReference untaggedRecipeSet; // Offset: 0 + keen::UiLocaTagReference customization; // Offset: 16 + keen::UiLocaTagReference equipment; // Offset: 32 + keen::UiLocaTagReference weapons; // Offset: 48 + keen::UiLocaTagReference tools; // Offset: 64 + keen::UiLocaTagReference buildTools; // Offset: 80 + keen::UiLocaTagReference consumables; // Offset: 96 + keen::UiLocaTagReference ammunition; // Offset: 112 + keen::UiLocaTagReference materials; // Offset: 128 + keen::UiLocaTagReference blueprints; // Offset: 144 + keen::UiLocaTagReference currency; // Offset: 160 + keen::UiLocaTagReference collectible; // Offset: 176 + keen::UiLocaTagReference genericItem; // Offset: 192 +}; + +struct FbUiLocaCrafting { + keen::FbUiLocaCraftingWorkshops workshops; // Offset: 0 + keen::FbUiLocaCraftingCategories categories; // Offset: 224 + keen::UiLocaTagReference browserPinned; // Offset: 432 + keen::UiLocaTagReference toggleDirectoryFilter; // Offset: 448 + keen::UiLocaTagReference itemViewerNoRecipeHint; // Offset: 464 + keen::UiLocaTagReference requirementHeader; // Offset: 480 + keen::UiLocaTagReference ingredientsHeader; // Offset: 496 + keen::UiLocaTagReference emptyMenuHintShort; // Offset: 512 + keen::UiLocaTagReference emptyMenuHintLong; // Offset: 528 + keen::UiLocaTagReference automatedCraftingStatusWaiting; // Offset: 544 + keen::UiLocaTagReference automatedCraftingStatusRunning; // Offset: 560 + keen::UiLocaTagReference automatedCraftingStatusPaused; // Offset: 576 + keen::UiLocaTagReference automatedCraftingInsufficientMaterials; // Offset: 592 + keen::UiLocaTagReference automatedCraftingAmountCraftableStacks; // Offset: 608 + keen::UiLocaTagReference automatedCraftingStart; // Offset: 624 + keen::UiLocaTagReference automatedCraftingResume; // Offset: 640 + keen::UiLocaTagReference automatedCraftingStop; // Offset: 656 + keen::UiLocaTagReference automatedCraftingStopUnavailable; // Offset: 672 + keen::UiLocaTagReference automatedCraftingPaused; // Offset: 688 + keen::UiLocaTagReference automatedCraftingIdle; // Offset: 704 + keen::UiLocaTagReference automatedCraftingWorking; // Offset: 720 + keen::UiLocaTagReference automatedCraftingStorageFull; // Offset: 736 + keen::UiLocaTagReference automatedCraftingQueued; // Offset: 752 + keen::UiLocaTagReference automatedCraftingInsufficientMaterialsHint; // Offset: 768 + keen::UiLocaTagReference automatedCraftingStorageFullHint; // Offset: 784 + keen::UiLocaTagReference automatedCraftingSourceMaterials; // Offset: 800 + keen::UiLocaTagReference changeRecipeHint; // Offset: 816 + keen::UiLocaTagReference factoryNoRecipesAvailable; // Offset: 832 + keen::UiLocaTagReference factoryMagicChestNoRecipesAvailable; // Offset: 848 + keen::UiLocaTagReference factoryShowCurrentProduction; // Offset: 864 + keen::UiLocaTagReference craftingItemInInventory; // Offset: 880 + keen::UiLocaTagReference noUpgradableItems; // Offset: 896 + keen::UiLocaTagReference noIngredientMissing; // Offset: 912 + keen::UiLocaTagReference ingredientsMissing; // Offset: 928 + keen::UiLocaTagReference ingredientsNeeds; // Offset: 944 + keen::UiLocaTagReference availableOutputs; // Offset: 960 + keen::UiLocaTagReference selected; // Offset: 976 + keen::UiLocaTagReference recipeViewerTabIngredients; // Offset: 992 + keen::UiLocaTagReference recipeViewerTabRecipe; // Offset: 1008 + keen::UiLocaTagReference recipeViewerTabItem; // Offset: 1024 +}; + +struct FbUiLocaItemEquipmentSlots { + keen::UiLocaTagReference armourHead; // Offset: 0 + keen::UiLocaTagReference armourUpperBody; // Offset: 16 + keen::UiLocaTagReference armourArms; // Offset: 32 + keen::UiLocaTagReference armourLowerBody; // Offset: 48 + keen::UiLocaTagReference armourFeet; // Offset: 64 + keen::UiLocaTagReference armourAccessory; // Offset: 80 + keen::UiLocaTagReference armourRing; // Offset: 96 + keen::UiLocaTagReference armourShield; // Offset: 112 + keen::UiLocaTagReference vanityHead; // Offset: 128 + keen::UiLocaTagReference vanityUpperBody; // Offset: 144 + keen::UiLocaTagReference vanityArms; // Offset: 160 + keen::UiLocaTagReference vanityLowerBody; // Offset: 176 + keen::UiLocaTagReference vanityFeet; // Offset: 192 + keen::UiLocaTagReference hookshot; // Offset: 208 + keen::UiLocaTagReference glider; // Offset: 224 + keen::UiLocaTagReference meleeWeapon; // Offset: 240 + keen::UiLocaTagReference midRangeWeapon; // Offset: 256 + keen::UiLocaTagReference rangedWeapon; // Offset: 272 + keen::UiLocaTagReference arrow; // Offset: 288 + keen::UiLocaTagReference spell; // Offset: 304 + keen::UiLocaTagReference backpackExtender; // Offset: 320 +}; + +struct FbUiLocaPunctuations { + keen::LocaTag plusSign; // Offset: 0 + keen::LocaTag minusSign; // Offset: 16 + keen::LocaTag multiplySign; // Offset: 32 + keen::UiLocaTagReference decimalSeparator; // Offset: 48 + keen::UiLocaTagReference thousandsSeparator; // Offset: 64 + keen::LocaTag exclamationMark; // Offset: 80 + keen::LocaTag questionMark; // Offset: 96 + keen::LocaTag questionMarkTriple; // Offset: 112 + keen::LocaTag bulletDot; // Offset: 128 + keen::LocaTag emDash; // Offset: 144 + keen::UiLocaTagReference action1AndAction2; // Offset: 160 +}; + +struct FbUiLocaGeneric { + keen::UiLocaTagReference timeUnitsAbbreviations; // Offset: 0 + keen::UiLocaTagReference milliseconds; // Offset: 16 + keen::UiLocaTagReference inactiveState; // Offset: 32 +}; + +struct FbUiLocaInput { + keen::UiLocaTagReference unassigned; // Offset: 0 + keen::UiLocaTagReference invalidStick; // Offset: 16 + keen::UiLocaTagReference leftMouseButton; // Offset: 32 + keen::UiLocaTagReference rightMouseButton; // Offset: 48 + keen::UiLocaTagReference middleMouseButton; // Offset: 64 + keen::UiLocaTagReference mouse4; // Offset: 80 + keen::UiLocaTagReference mouse5; // Offset: 96 + keen::UiLocaTagReference mouseWheelLeft; // Offset: 112 + keen::UiLocaTagReference mouseWheelRight; // Offset: 128 + keen::UiLocaTagReference mouseWheelUp; // Offset: 144 + keen::UiLocaTagReference mouseWheelDown; // Offset: 160 + keen::UiLocaTagReference mouseMoveLeft; // Offset: 176 + keen::UiLocaTagReference mouseMoveRight; // Offset: 192 + keen::UiLocaTagReference mouseMoveUp; // Offset: 208 + keen::UiLocaTagReference mouseMoveDown; // Offset: 224 +}; + +struct FbUiLocaAttributeInfo { + keen::UiLocaTagReference label; // Offset: 0 + keen::UiLocaTagReference alternativeLabel; // Offset: 16 + keen::UiLocaTagReference tooltip; // Offset: 32 + keen::float32 impliedBaseMultiplier; // Offset: 48 + keen::float32 relativeToValue; // Offset: 52 +}; + +struct FbUiLocaAttributes { + keen::UiLocaTagReference attributeMenuHeader; // Offset: 0 + keen::UiLocaTagReference subTabBasics; // Offset: 16 + keen::UiLocaTagReference groupFoundation; // Offset: 32 + keen::UiLocaTagReference groupPrimary; // Offset: 48 + keen::UiLocaTagReference groupSecondary; // Offset: 64 + keen::UiLocaTagReference groupVital; // Offset: 80 + keen::UiLocaTagReference groupCombat; // Offset: 96 + keen::UiLocaTagReference groupFogSurvival; // Offset: 112 + keen::UiLocaTagReference groupMain; // Offset: 128 + keen::UiLocaTagReference groupRegeneration; // Offset: 144 + keen::UiLocaTagReference groupProtection; // Offset: 160 + keen::UiLocaTagReference groupMovement; // Offset: 176 + keen::UiLocaTagReference groupDamage; // Offset: 192 + keen::UiLocaTagReference groupWeaponDamage; // Offset: 208 + keen::UiLocaTagReference groupEnemyDamage; // Offset: 224 + keen::UiLocaTagReference groupMisc; // Offset: 240 + keen::UiLocaTagReference valueExplainer; // Offset: 256 + keen::UiLocaTagReference valueExplainerWithBuff; // Offset: 272 + keen::FbUiLocaAttributeInfo health; // Offset: 288 + keen::FbUiLocaAttributeInfo mana; // Offset: 344 + keen::FbUiLocaAttributeInfo stamina; // Offset: 400 + keen::FbUiLocaAttributeInfo fogResistance; // Offset: 456 + keen::FbUiLocaAttributeInfo fogResistanceDuration; // Offset: 512 + keen::FbUiLocaAttributeInfo fogResistanceDurationMax; // Offset: 568 + keen::FbUiLocaAttributeInfo freezeResistance; // Offset: 624 + keen::FbUiLocaAttributeInfo bodyHeat; // Offset: 680 + keen::FbUiLocaAttributeInfo strength; // Offset: 736 + keen::FbUiLocaAttributeInfo dexterity; // Offset: 792 + keen::FbUiLocaAttributeInfo intelligence; // Offset: 848 + keen::FbUiLocaAttributeInfo constitution; // Offset: 904 + keen::FbUiLocaAttributeInfo endurance; // Offset: 960 + keen::FbUiLocaAttributeInfo spirit; // Offset: 1016 + keen::FbUiLocaAttributeInfo healthRegeneration; // Offset: 1072 + keen::FbUiLocaAttributeInfo healthRegenerationDelay; // Offset: 1128 + keen::FbUiLocaAttributeInfo manaRegeneration; // Offset: 1184 + keen::FbUiLocaAttributeInfo manaRegenerationDelay; // Offset: 1240 + keen::FbUiLocaAttributeInfo staminaRegeneration; // Offset: 1296 + keen::FbUiLocaAttributeInfo staminaRegenerationDelay; // Offset: 1352 + keen::FbUiLocaAttributeInfo bodyHeatRegeneration; // Offset: 1408 + keen::FbUiLocaAttributeInfo bodyHeatRegenerationDelay; // Offset: 1464 + keen::FbUiLocaAttributeInfo baseMovementSpeed; // Offset: 1520 + keen::FbUiLocaAttributeInfo sprintMovementSpeed; // Offset: 1576 + keen::FbUiLocaAttributeInfo sneakMovementSpeed; // Offset: 1632 + keen::FbUiLocaAttributeInfo critChanceMelee; // Offset: 1688 + keen::FbUiLocaAttributeInfo critChanceMagical; // Offset: 1744 + keen::FbUiLocaAttributeInfo critChanceRanged; // Offset: 1800 + keen::FbUiLocaAttributeInfo skillShotDamage; // Offset: 1856 + keen::FbUiLocaAttributeInfo staffDamage; // Offset: 1912 + keen::FbUiLocaAttributeInfo wandDamage; // Offset: 1968 + keen::FbUiLocaAttributeInfo oneHandDamage; // Offset: 2024 + keen::FbUiLocaAttributeInfo daggerDamage; // Offset: 2080 + keen::FbUiLocaAttributeInfo twoHandDamage; // Offset: 2136 + keen::FbUiLocaAttributeInfo bowDamage; // Offset: 2192 + keen::FbUiLocaAttributeInfo throwableDamage; // Offset: 2248 + keen::FbUiLocaAttributeInfo unarmedDamage; // Offset: 2304 + keen::FbUiLocaAttributeInfo foeMagicalDamage; // Offset: 2360 + keen::FbUiLocaAttributeInfo foeMeleeDamage; // Offset: 2416 + keen::FbUiLocaAttributeInfo foeRangedDamage; // Offset: 2472 + keen::FbUiLocaAttributeInfo foeFlyingDamage; // Offset: 2528 + keen::FbUiLocaAttributeInfo foeSkeletonDamage; // Offset: 2584 + keen::FbUiLocaAttributeInfo healing; // Offset: 2640 + keen::FbUiLocaAttributeInfo reviveDuration; // Offset: 2696 + keen::FbUiLocaAttributeInfo reviveHealth; // Offset: 2752 + keen::FbUiLocaAttributeInfo lifeSteal; // Offset: 2808 + keen::FbUiLocaAttributeInfo restedDurationBonus; // Offset: 2864 + keen::FbUiLocaAttributeInfo offenseBackstab; // Offset: 2920 + keen::FbUiLocaAttributeInfo offenseCritical; // Offset: 2976 + keen::FbUiLocaAttributeInfo offenseCritChance; // Offset: 3032 + keen::FbUiLocaAttributeInfo damageMelee; // Offset: 3088 + keen::FbUiLocaAttributeInfo damageSpell; // Offset: 3144 + keen::FbUiLocaAttributeInfo damageRanged; // Offset: 3200 + keen::FbUiLocaAttributeInfo blockAttribute; // Offset: 3256 + keen::FbUiLocaAttributeInfo parryAttribute; // Offset: 3312 + keen::FbUiLocaAttributeInfo resistancePhysical; // Offset: 3368 + keen::FbUiLocaAttributeInfo resistancePhysicalCut; // Offset: 3424 + keen::FbUiLocaAttributeInfo resistancePhysicalPierce; // Offset: 3480 + keen::FbUiLocaAttributeInfo resistancePhysicalBlunt; // Offset: 3536 + keen::FbUiLocaAttributeInfo resistanceMagical; // Offset: 3592 + keen::FbUiLocaAttributeInfo resistanceMagicalFire; // Offset: 3648 + keen::FbUiLocaAttributeInfo resistanceMagicalIce; // Offset: 3704 + keen::FbUiLocaAttributeInfo resistanceMagicalFog; // Offset: 3760 + keen::FbUiLocaAttributeInfo resistanceMagicalLightning; // Offset: 3816 + keen::FbUiLocaAttributeInfo poisonSusceptibility; // Offset: 3872 + keen::FbUiLocaAttributeInfo sneakAttack; // Offset: 3928 + keen::FbUiLocaAttributeInfo mercilessAttack; // Offset: 3984 + keen::FbUiLocaAttributeInfo ambushAttack; // Offset: 4040 + keen::UiLocaTagReference numberExplanation; // Offset: 4096 +}; + +struct FbUiLocaPerkAttributes { + keen::UiLocaTagReference damagePhysicalCut; // Offset: 0 + keen::UiLocaTagReference damagePhysicalPierce; // Offset: 16 + keen::UiLocaTagReference damagePhysicalBlunt; // Offset: 32 + keen::UiLocaTagReference damagePoison; // Offset: 48 + keen::UiLocaTagReference damageMagicalFire; // Offset: 64 + keen::UiLocaTagReference damageMagicalIce; // Offset: 80 + keen::UiLocaTagReference damageMagicalFog; // Offset: 96 + keen::UiLocaTagReference damageMagicalLightning; // Offset: 112 + keen::UiLocaTagReference resistancePhysicalCut; // Offset: 128 + keen::UiLocaTagReference resistancePhysicalPierce; // Offset: 144 + keen::UiLocaTagReference resistancePhysicalBlunt; // Offset: 160 + keen::UiLocaTagReference resistanceMagicalFire; // Offset: 176 + keen::UiLocaTagReference resistanceMagicalIce; // Offset: 192 + keen::UiLocaTagReference resistanceMagicalFog; // Offset: 208 + keen::UiLocaTagReference resistanceMagicalLightning; // Offset: 224 +}; + +struct FbUiNpcNames { + keen::UiLocaTagReference flame; // Offset: 0 + keen::UiLocaTagReference alchemist; // Offset: 16 + keen::UiLocaTagReference blacksmith; // Offset: 32 + keen::UiLocaTagReference hunter; // Offset: 48 + keen::UiLocaTagReference farmer; // Offset: 64 + keen::UiLocaTagReference carpenter; // Offset: 80 + keen::UiLocaTagReference cryptKeeper; // Offset: 96 + keen::UiLocaTagReference bard; // Offset: 112 +}; + +struct FbUiLocaRpgTerms { + keen::FbUiNpcNames npcNames; // Offset: 0 + keen::UiLocaTagReference entityLevel; // Offset: 128 + keen::UiLocaTagReference genericLevelWithArgument; // Offset: 144 + keen::UiLocaTagReference characterLevel; // Offset: 160 + keen::UiLocaTagReference experiencePoints; // Offset: 176 + keen::UiLocaTagReference experiencePointsShort; // Offset: 192 + keen::UiLocaTagReference experiencePointsRequired; // Offset: 208 + keen::FbUiLocaAttributes attributes; // Offset: 224 + keen::FbUiLocaPerkAttributes perkAttributes; // Offset: 4336 + keen::UiLocaTagReference durabilityGeneric; // Offset: 4576 + keen::UiLocaTagReference damagePhysicalCut; // Offset: 4592 + keen::UiLocaTagReference damagePhysicalPierce; // Offset: 4608 + keen::UiLocaTagReference damagePhysicalBlunt; // Offset: 4624 + keen::UiLocaTagReference damageMagicalFire; // Offset: 4640 + keen::UiLocaTagReference damageMagicalIce; // Offset: 4656 + keen::UiLocaTagReference damageMagicalFog; // Offset: 4672 + keen::UiLocaTagReference damageMagicalLightning; // Offset: 4688 + keen::UiLocaTagReference damageHealing; // Offset: 4704 + keen::UiLocaTagReference damagePoison; // Offset: 4720 + keen::UiLocaTagReference bowDamageBase; // Offset: 4736 + keen::UiLocaTagReference bowDamageNoBonus; // Offset: 4752 + keen::UiLocaTagReference bowDamagePhysicalCut; // Offset: 4768 + keen::UiLocaTagReference bowDamagePhysicalPierce; // Offset: 4784 + keen::UiLocaTagReference bowDamagePhysicalBlunt; // Offset: 4800 + keen::UiLocaTagReference bowDamageMagicalFire; // Offset: 4816 + keen::UiLocaTagReference bowDamageMagicalIce; // Offset: 4832 + keen::UiLocaTagReference bowDamageMagicalFog; // Offset: 4848 + keen::UiLocaTagReference bowDamageMagicalLightning; // Offset: 4864 + keen::UiLocaTagReference bowDamageHealing; // Offset: 4880 + keen::UiLocaTagReference bowDamagePoison; // Offset: 4896 + keen::UiLocaTagReference armorResistanceCutShort; // Offset: 4912 + keen::UiLocaTagReference armorResistancePierceShort; // Offset: 4928 + keen::UiLocaTagReference armorResistanceBluntShort; // Offset: 4944 + keen::UiLocaTagReference armorResistanceFireShort; // Offset: 4960 + keen::UiLocaTagReference armorResistanceIceShort; // Offset: 4976 + keen::UiLocaTagReference armorResistanceFogShort; // Offset: 4992 + keen::UiLocaTagReference armorResistanceLightningShort; // Offset: 5008 + keen::UiLocaTagReference rarityUndefined; // Offset: 5024 + keen::UiLocaTagReference rarityCommon; // Offset: 5040 + keen::UiLocaTagReference rarityUncommon; // Offset: 5056 + keen::UiLocaTagReference rarityRare; // Offset: 5072 + keen::UiLocaTagReference rarityEpic; // Offset: 5088 + keen::UiLocaTagReference rarityLegendary; // Offset: 5104 + keen::UiLocaTagReference rarityVanity; // Offset: 5120 + keen::UiLocaTagReference restedBuffNone; // Offset: 5136 + keen::UiLocaTagReference restedBuffCharging; // Offset: 5152 + keen::UiLocaTagReference restedBuffActive; // Offset: 5168 + keen::UiLocaTagReference restedBuffGenericDescription; // Offset: 5184 + keen::UiLocaTagReference comfortLevel; // Offset: 5200 + keen::UiLocaTagReference comfort; // Offset: 5216 + keen::UiLocaTagReference statusSitting; // Offset: 5232 + keen::UiLocaTagReference statusSheltered; // Offset: 5248 + keen::UiLocaTagReference statusSleeping; // Offset: 5264 + keen::UiLocaTagReference statusInCombat; // Offset: 5280 + keen::UiLocaTagReference statusWarmth; // Offset: 5296 + keen::UiLocaTagReference statusShelteredBed; // Offset: 5312 + keen::UiLocaTagReference statusSittingDesc; // Offset: 5328 + keen::UiLocaTagReference statusShelteredDesc; // Offset: 5344 + keen::UiLocaTagReference statusSleepingDesc; // Offset: 5360 + keen::UiLocaTagReference statusWarmthDesc; // Offset: 5376 + keen::UiLocaTagReference statusSittingNot; // Offset: 5392 + keen::UiLocaTagReference statusShelteredNot; // Offset: 5408 + keen::UiLocaTagReference statusInCombatNot; // Offset: 5424 + keen::UiLocaTagReference statusWarmthNot; // Offset: 5440 + keen::UiLocaTagReference foodTypeAlreadyActive; // Offset: 5456 + keen::UiLocaTagReference foodSlotsAllOccupied; // Offset: 5472 + keen::UiLocaTagReference npcProps; // Offset: 5488 + keen::UiLocaTagReference npcUndiscoveredName; // Offset: 5504 + keen::UiLocaTagReference npcUndiscoveredDescription; // Offset: 5520 +}; + +struct FbUiLocaHudBuildFeedback { + keen::UiLocaTagReference cursorOutsideBuildZone; // Offset: 0 + keen::UiLocaTagReference cursorInsideFogZone; // Offset: 16 + keen::UiLocaTagReference cursorTooFarAway; // Offset: 32 + keen::UiLocaTagReference cursorInsideLenientBuildInhibitor; // Offset: 48 + keen::UiLocaTagReference cursorInsideStrictBuildInhibitor; // Offset: 64 + keen::UiLocaTagReference maxAltarCountReached; // Offset: 80 + keen::UiLocaTagReference maxAltarCountUpgradeHint; // Offset: 96 + keen::UiLocaTagReference maxAltarCountLimitHint; // Offset: 112 + keen::UiLocaTagReference maxTameAnimalCountReached; // Offset: 128 + keen::UiLocaTagReference enemiesNearby; // Offset: 144 + keen::UiLocaTagReference areaOccupied; // Offset: 160 + keen::UiLocaTagReference invalidSurfaceNormal; // Offset: 176 + keen::UiLocaTagReference invalidCursorVoxelMaterial; // Offset: 192 + keen::UiLocaTagReference missingMaterials; // Offset: 208 + keen::UiLocaTagReference noPermission; // Offset: 224 + keen::UiLocaTagReference assignNpcToBed; // Offset: 240 + keen::UiLocaTagReference hintNpcNotPlaced; // Offset: 256 + keen::UiLocaTagReference bedUnoccupied; // Offset: 272 + keen::UiLocaTagReference bedOccupiedBy; // Offset: 288 + keen::UiLocaTagReference bedTooFarAway; // Offset: 304 + keen::UiLocaTagReference useStaffToAssignBed; // Offset: 320 +}; + +struct FbUiLocaHudItemUseMessages { + keen::UiLocaTagReference hookshotUseFail; // Offset: 0 + keen::UiLocaTagReference doorOpenFail; // Offset: 16 + keen::UiLocaTagReference gliderUseFail; // Offset: 32 + keen::UiLocaTagReference gliderUseHint; // Offset: 48 + keen::UiLocaTagReference itemMovedToEquipmentSlotByUsing; // Offset: 64 + keen::UiLocaTagReference itemFailedInsufficientStamina; // Offset: 80 +}; + +struct FbUiLocaHitEventLabels { + keen::UiLocaTagReference crit; // Offset: 0 + keen::UiLocaTagReference backstab; // Offset: 16 + keen::UiLocaTagReference weakspot; // Offset: 32 + keen::UiLocaTagReference immune; // Offset: 48 + keen::UiLocaTagReference ineffective; // Offset: 64 + keen::UiLocaTagReference resist; // Offset: 80 +}; + +struct FbUiLocaTutorialHints { + keen::UiLocaTagReference quickbuilderMaterialHint; // Offset: 0 + keen::UiLocaTagReference quickbuilderShapeHint; // Offset: 16 + keen::UiLocaTagReference quickbuilderTabsHint; // Offset: 32 + keen::UiLocaTagReference quickbuilderShapeSelectionHint; // Offset: 48 + keen::UiLocaTagReference cookingTutorialHint; // Offset: 64 + keen::UiLocaTagReference craftingRecipeList; // Offset: 80 + keen::UiLocaTagReference craftingRecipeCategories; // Offset: 96 + keen::UiLocaTagReference craftingRecipeSeries; // Offset: 112 + keen::UiLocaTagReference craftingIngredients; // Offset: 128 + keen::UiLocaTagReference craftingPinRecipe; // Offset: 144 + keen::UiLocaTagReference craftingTabs; // Offset: 160 + keen::UiLocaTagReference npcCraftingTabs; // Offset: 176 + keen::UiLocaTagReference enhancingItemList; // Offset: 192 + keen::UiLocaTagReference enhancingPerks; // Offset: 208 + keen::UiLocaTagReference enhancingCurrency; // Offset: 224 + keen::UiLocaTagReference factoryInventory; // Offset: 240 + keen::UiLocaTagReference factoryRecipes; // Offset: 256 + keen::UiLocaTagReference factoryFillIngredients; // Offset: 272 + keen::UiLocaTagReference factoryInputHints; // Offset: 288 + keen::UiLocaTagReference factoryStart; // Offset: 304 + keen::UiLocaTagReference actionbarTutorial1; // Offset: 320 + keen::UiLocaTagReference actionbarTutorial2; // Offset: 336 + keen::UiLocaTagReference summoningStaffTutorialNpcTypes; // Offset: 352 + keen::UiLocaTagReference summoningStaffTutorialPlacing; // Offset: 368 + keen::UiLocaTagReference summoningStaffRoamingRange; // Offset: 384 + keen::UiLocaTagReference flameUpgradeHappyNpc; // Offset: 400 + keen::UiLocaTagReference nextHint; // Offset: 416 +}; + +struct FbUiLocaHudXpSources { + keen::UiLocaTagReference xpSourceQuest; // Offset: 0 + keen::UiLocaTagReference xpSourceCombat; // Offset: 16 + keen::UiLocaTagReference xpSourceLore; // Offset: 32 + keen::UiLocaTagReference xpSourceExploration; // Offset: 48 + keen::UiLocaTagReference xpSourceMining; // Offset: 64 +}; + +struct FbUiLocaHudHappinessDialog { + keen::UiLocaTagReference missingBedDialogText; // Offset: 0 + keen::UiLocaTagReference missingBedDialogLabel; // Offset: 16 + keen::UiLocaTagReference missingShelterDialogText; // Offset: 32 + keen::UiLocaTagReference missingShelterDialogLabel; // Offset: 48 + keen::UiLocaTagReference missingFoodDialogText; // Offset: 64 + keen::UiLocaTagReference missingFoodDialogLabel; // Offset: 80 +}; + +struct FbUiLocaHudTemperature { + keen::UiLocaTagReference resistanceBuffLabel; // Offset: 0 + keen::UiLocaTagReference resistanceLowWarning; // Offset: 16 + keen::UiLocaTagReference deadlyDebuffLabel; // Offset: 32 + keen::UiLocaTagReference deadlyDebuffWarning; // Offset: 48 +}; + +struct FbUiLocaHud { + keen::FbUiLocaHudBuildFeedback buildFeedback; // Offset: 0 + keen::FbUiLocaHudItemUseMessages itemUseMessages; // Offset: 336 + keen::FbUiLocaHitEventLabels hitEventLabels; // Offset: 432 + keen::FbUiLocaTutorialHints tutorialHints; // Offset: 528 + keen::FbUiLocaHudXpSources xpSources; // Offset: 960 + keen::FbUiLocaHudHappinessDialog missingHappinessDialogOptions; // Offset: 1040 + keen::UiLocaTagReference nightSpeed; // Offset: 1136 + keen::FbUiLocaHudTemperature freezing; // Offset: 1152 + keen::FbUiLocaHudTemperature extremeHeat; // Offset: 1216 + keen::UiLocaTagReference gameProgressSummaryTitle; // Offset: 1280 + keen::UiLocaTagReference ammoLabelNoneEquipped; // Offset: 1296 + keen::UiLocaTagReference quickBuilderPreUseHint; // Offset: 1312 + keen::UiLocaTagReference buildTooltipQuickBuilderInit; // Offset: 1328 + keen::UiLocaTagReference buildTooltipChangeBlueprint; // Offset: 1344 + keen::UiLocaTagReference buildTooltipChangeShovelAction; // Offset: 1360 + keen::UiLocaTagReference buildTooltipChangeNpc; // Offset: 1376 + keen::UiLocaTagReference buildTooltipChangeMaterial; // Offset: 1392 + keen::UiLocaTagReference buildTooltipRotate90; // Offset: 1408 + keen::UiLocaTagReference buildTooltipRotate; // Offset: 1424 + keen::UiLocaTagReference buildTooltipAreaActions; // Offset: 1440 + keen::UiLocaTagReference buildTooltipUseSnapping; // Offset: 1456 + keen::UiLocaTagReference cursorHintSnappingActive; // Offset: 1472 + keen::UiLocaTagReference cursorHintSnappingReady; // Offset: 1488 + keen::UiLocaTagReference cursorHintSnappingOff; // Offset: 1504 + keen::UiLocaTagReference buildTooltipMultiToolMaterialHeader; // Offset: 1520 + keen::UiLocaTagReference buildTooltipMultiToolMaterialActionLabel; // Offset: 1536 + keen::UiLocaTagReference leaveNpcConversation; // Offset: 1552 + keen::UiLocaTagReference messageFastTravelUnlock; // Offset: 1568 + keen::UiLocaTagReference messageNpcFound; // Offset: 1584 + keen::UiLocaTagReference messageSpecialLootAcquired; // Offset: 1600 + keen::UiLocaTagReference messageLevelUp; // Offset: 1616 + keen::UiLocaTagReference messageFlameLevelUp; // Offset: 1632 + keen::UiLocaTagReference messageAllItemsRepaired; // Offset: 1648 + keen::UiLocaTagReference messagePinnedRecipeReady; // Offset: 1664 + keen::UiLocaTagReference messageMagicBarrierUnlocked; // Offset: 1680 + keen::UiLocaTagReference messageDoorUnlocked; // Offset: 1696 + keen::UiLocaTagReference messageSecretDoorUnlocked; // Offset: 1712 + keen::UiLocaTagReference messageNewTwitchDropUnlocked; // Offset: 1728 + keen::UiLocaTagReference knowledgeNotificationGeneral; // Offset: 1744 + keen::UiLocaTagReference knowledgeNotificationMap; // Offset: 1760 + keen::UiLocaTagReference knowledgeNotificationJournal; // Offset: 1776 + keen::UiLocaTagReference knowledgeNotificationNewTutorial; // Offset: 1792 + keen::UiLocaTagReference knowledgeNotificationNewLoreDocument; // Offset: 1808 + keen::UiLocaTagReference knowledgeNotificationNewLorePage; // Offset: 1824 + keen::UiLocaTagReference knowledgeNotificationNewQuest; // Offset: 1840 + keen::UiLocaTagReference knowledgeNotificationUpdatedQuest; // Offset: 1856 + keen::UiLocaTagReference knowledgeNotificationJournalCompleted; // Offset: 1872 + keen::UiLocaTagReference knowledgeNotificationCrafting; // Offset: 1888 + keen::UiLocaTagReference knowledgeNotificationIngredientKnowledge; // Offset: 1904 + keen::UiLocaTagReference knowledgeNotificationNpcDialog; // Offset: 1920 + keen::UiLocaTagReference priorityJournalEntryPrompt; // Offset: 1936 + keen::UiLocaTagReference priorityJournalEntryPromptNoBinding; // Offset: 1952 + keen::UiLocaTagReference priorityJournalLocationReached; // Offset: 1968 + keen::UiLocaTagReference interactionItemRequirementHeader; // Offset: 1984 + keen::UiLocaTagReference backpackFullMessage; // Offset: 2000 + keen::UiLocaTagReference storageFullMessage; // Offset: 2016 + keen::UiLocaTagReference compassWaypointReached; // Offset: 2032 + keen::UiLocaTagReference compassWaypointReachedAbove; // Offset: 2048 + keen::UiLocaTagReference compassWaypointReachedBelow; // Offset: 2064 + keen::UiLocaTagReference compassInFog; // Offset: 2080 + keen::UiLocaTagReference compassInDeadlyFog; // Offset: 2096 + keen::UiLocaTagReference compassEarlyFogWarning; // Offset: 2112 + keen::UiLocaTagReference compassFogWarning; // Offset: 2128 + keen::UiLocaTagReference staminaMax; // Offset: 2144 + keen::UiLocaTagReference restedBuffConditionHeader; // Offset: 2160 + keen::UiLocaTagReference markersAdded; // Offset: 2176 + keen::UiLocaTagReference entriesLogged; // Offset: 2192 + keen::UiLocaTagReference entriesCompleted; // Offset: 2208 + keen::UiLocaTagReference oneRecipeLearned; // Offset: 2224 + keen::UiLocaTagReference recipesLearned; // Offset: 2240 + keen::UiLocaTagReference recipesLearnedPersonal; // Offset: 2256 + keen::UiLocaTagReference readyToCraft; // Offset: 2272 + keen::UiLocaTagReference readyToCraftPinned; // Offset: 2288 + keen::UiLocaTagReference loading; // Offset: 2304 + keen::UiLocaTagReference reviving; // Offset: 2320 + keen::UiLocaTagReference beingRevived; // Offset: 2336 + keen::UiLocaTagReference canBeRevived; // Offset: 2352 + keen::UiLocaTagReference craftableAmount; // Offset: 2368 + keen::UiLocaTagReference emptyHint; // Offset: 2384 + keen::UiLocaTagReference inventoryCount; // Offset: 2400 + keen::UiLocaTagReference serverPerformanceBad; // Offset: 2416 + keen::UiLocaTagReference serverPerformanceBadHost; // Offset: 2432 + keen::UiLocaTagReference serverPerformanceBadDesc; // Offset: 2448 + keen::UiLocaTagReference serverPerformanceBadDescHost; // Offset: 2464 + keen::UiLocaTagReference serverPerformanceCritical; // Offset: 2480 + keen::UiLocaTagReference serverPerformanceCriticalHost; // Offset: 2496 + keen::UiLocaTagReference serverPerformanceCriticalDesc; // Offset: 2512 + keen::UiLocaTagReference serverPerformanceCriticalDescHost; // Offset: 2528 + keen::UiLocaTagReference currentServerPerformance; // Offset: 2544 + keen::UiLocaTagReference currentServerPerformanceHost; // Offset: 2560 + keen::UiLocaTagReference flameUpgradeBaseLabel; // Offset: 2576 + keen::UiLocaTagReference personalProgressionModeHint; // Offset: 2592 + keen::UiLocaTagReference allMissedWorldQuestsCompletedMessage; // Offset: 2608 + keen::UiLocaTagReference interactionNoPermission; // Offset: 2624 + keen::UiLocaTagReference itemUseNoPermission; // Offset: 2640 + keen::UiLocaTagReference currentSongPlayingHint; // Offset: 2656 + keen::UiLocaTagReference tamingTutorialTitle; // Offset: 2672 + keen::UiLocaTagReference tamingTutorialStep1; // Offset: 2688 + keen::UiLocaTagReference tamingTutorialStep2; // Offset: 2704 + keen::UiLocaTagReference tamingTutorialStep3; // Offset: 2720 + keen::UiLocaTagReference tamingTutorialStep4; // Offset: 2736 +}; + +struct FbUiLocaMenuFlameAltar { + keen::UiLocaTagReference menuHeader; // Offset: 0 + keen::UiLocaTagReference altarLevelLabel; // Offset: 16 + keen::UiLocaTagReference altarRangeLabel; // Offset: 32 + keen::UiLocaTagReference motherflameLevelLabel; // Offset: 48 + keen::UiLocaTagReference lastPlayed; // Offset: 64 + keen::UiLocaTagReference altarRange; // Offset: 80 + keen::UiLocaTagReference flameUpgradeMaxAltarCountLabel; // Offset: 96 + keen::UiLocaTagReference flameUpgradeAttributeBonusLabel; // Offset: 112 + keen::UiLocaTagReference flameUpgradeFogResistanceLabel; // Offset: 128 + keen::UiLocaTagReference flameUpgradeFogResistanceLevel; // Offset: 144 + keen::UiLocaTagReference flameUpgradeFogResistanceDuration; // Offset: 160 + keen::UiLocaTagReference flameCodexDesc; // Offset: 176 + keen::UiLocaTagReference flameCodexUpgradeHeader; // Offset: 192 + keen::UiLocaTagReference tileAltarUpgradeMainText; // Offset: 208 + keen::UiLocaTagReference tileAltarUpgradeSecondaryText; // Offset: 224 + keen::UiLocaTagReference tileMotherflameUpgradeMainText; // Offset: 240 + keen::UiLocaTagReference tileMotherflameUpgradeSecondaryText; // Offset: 256 + keen::UiLocaTagReference tileReviveNpcMainText; // Offset: 272 + keen::UiLocaTagReference tileReviveNpcSecondaryText; // Offset: 288 + keen::UiLocaTagReference tileRespecMainText; // Offset: 304 + keen::UiLocaTagReference tileRespecSecondaryText; // Offset: 320 + keen::UiLocaTagReference respecDescription; // Offset: 336 + keen::UiLocaTagReference actionRespecSkills; // Offset: 352 + keen::UiLocaTagReference actionDeactivate; // Offset: 368 + keen::UiLocaTagReference actionDeactivateSecondaryText; // Offset: 384 + keen::UiLocaTagReference actionReactivate; // Offset: 400 + keen::UiLocaTagReference deactivateAltarDesc; // Offset: 416 + keen::UiLocaTagReference inactiveStateDesc; // Offset: 432 + keen::UiLocaTagReference reactivationProhibited; // Offset: 448 + keen::UiLocaTagReference altarUpgradeRecipeHeader; // Offset: 464 + keen::UiLocaTagReference motherflameUpgradeRecipeHeader; // Offset: 480 + keen::UiLocaTagReference actionAltarUpgrade; // Offset: 496 + keen::UiLocaTagReference actionMotherflameUpgrade; // Offset: 512 + keen::UiLocaTagReference npcReviveSubheader; // Offset: 528 + keen::UiLocaTagReference deactivationExplanation; // Offset: 544 + keen::UiLocaTagReference noPermissionHintGeneral; // Offset: 560 + keen::UiLocaTagReference noAltarUpgradePermission; // Offset: 576 + keen::UiLocaTagReference noFlameUpgradePermission; // Offset: 592 + keen::UiLocaTagReference noExtinguishAltarPermission; // Offset: 608 + keen::UiLocaTagReference shelteredBedsRequirement; // Offset: 624 +}; + +struct FbUiLocaMenuPregame { + keen::UiLocaTagReference mainMenuPlay; // Offset: 0 + keen::UiLocaTagReference mainMenuJoinSessionHeader; // Offset: 16 + keen::UiLocaTagReference mainMenuInviteHeader; // Offset: 32 + keen::UiLocaTagReference mainMenuInviteAccept; // Offset: 48 + keen::UiLocaTagReference mainMenuInviteDecline; // Offset: 64 + keen::UiLocaTagReference mainMenuJoinSessionFallbackName; // Offset: 80 + keen::UiLocaTagReference mainMenuCredits; // Offset: 96 + keen::UiLocaTagReference mainMenuQuit; // Offset: 112 + keen::UiLocaTagReference mainMenuGPUDriverWarning; // Offset: 128 + keen::UiLocaTagReference thankYouClosedBeta; // Offset: 144 + keen::UiLocaTagReference steamCallToAction; // Offset: 160 + keen::UiLocaTagReference discordCallToAction; // Offset: 176 + keen::UiLocaTagReference characterSelectionEnterVerb; // Offset: 192 + keen::UiLocaTagReference characterSelectionHeaderCreate; // Offset: 208 + keen::UiLocaTagReference characterSelectionHeaderSelect; // Offset: 224 + keen::UiLocaTagReference characterSelectionEmptySlotHint; // Offset: 240 + keen::UiLocaTagReference characterDeletionConfirmHeader; // Offset: 256 + keen::UiLocaTagReference characterBackupRestoreDialogHeader; // Offset: 272 + keen::UiLocaTagReference characterBackupRestoreDataLabel; // Offset: 288 + keen::UiLocaTagReference characterBackupRestoreButtonLabel; // Offset: 304 + keen::UiLocaTagReference playSelectionHeader; // Offset: 320 + keen::UiLocaTagReference playSelectionRecent; // Offset: 336 + keen::UiLocaTagReference playSelectionJoin; // Offset: 352 + keen::UiLocaTagReference playSelectionJoinDescription; // Offset: 368 + keen::UiLocaTagReference playSelectionJoinHeader; // Offset: 384 + keen::UiLocaTagReference playSelectionHostPublic; // Offset: 400 + keen::UiLocaTagReference playSelectionHostPublicDescription; // Offset: 416 + keen::UiLocaTagReference playSelectionHostPublicHeader; // Offset: 432 + keen::UiLocaTagReference playSelectionPrivate; // Offset: 448 + keen::UiLocaTagReference playSelectionPrivateDescription; // Offset: 464 + keen::UiLocaTagReference playSelectionPrivateHeader; // Offset: 480 + keen::UiLocaTagReference party; // Offset: 496 + keen::UiLocaTagReference filterFriends; // Offset: 512 + keen::UiLocaTagReference filterDedicatedServer; // Offset: 528 + keen::UiLocaTagReference filterEmpty; // Offset: 544 + keen::UiLocaTagReference filterName; // Offset: 560 + keen::UiLocaTagReference filterPassword; // Offset: 576 + keen::UiLocaTagReference filterFreeSlots; // Offset: 592 + keen::UiLocaTagReference filterNameHeader; // Offset: 608 + keen::UiLocaTagReference sessionSearchEmptyResult; // Offset: 624 + keen::UiLocaTagReference sessionSearchOngoing; // Offset: 640 + keen::UiLocaTagReference errorServerNotFound; // Offset: 656 + keen::UiLocaTagReference errorServerNotFoundDesc; // Offset: 672 + keen::UiLocaTagReference serverFound; // Offset: 688 + keen::UiLocaTagReference noSessionsMatchingFilter; // Offset: 704 + keen::UiLocaTagReference enterGridSelection; // Offset: 720 + keen::UiLocaTagReference playVoiceSample; // Offset: 736 + keen::UiLocaTagReference customizationOptionNone; // Offset: 752 + keen::UiLocaTagReference customizationBodyType; // Offset: 768 + keen::UiLocaTagReference customizationPreset; // Offset: 784 + keen::UiLocaTagReference customizationSkinColor; // Offset: 800 + keen::UiLocaTagReference customizationEyeColor; // Offset: 816 + keen::UiLocaTagReference customizationEyeBrowColor; // Offset: 832 + keen::UiLocaTagReference customizationHair; // Offset: 848 + keen::UiLocaTagReference customizationHairColor; // Offset: 864 + keen::UiLocaTagReference customizationBeard; // Offset: 880 + keen::UiLocaTagReference customizationBeardColor; // Offset: 896 + keen::UiLocaTagReference customizationVoice; // Offset: 912 + keen::UiLocaTagReference customizationName; // Offset: 928 + keen::UiLocaTagReference customizationCharacter; // Offset: 944 + keen::UiLocaTagReference customizationNameAndFinish; // Offset: 960 + keen::UiLocaTagReference customizationResetPreset; // Offset: 976 + keen::UiLocaTagReference customizationFinish; // Offset: 992 + keen::UiLocaTagReference refresh; // Offset: 1008 + keen::UiLocaTagReference newGame; // Offset: 1024 + keen::UiLocaTagReference unnamed; // Offset: 1040 + keen::UiLocaTagReference create; // Offset: 1056 + keen::UiLocaTagReference edit; // Offset: 1072 + keen::UiLocaTagReference configure; // Offset: 1088 + keen::UiLocaTagReference myWorld; // Offset: 1104 + keen::UiLocaTagReference editWorldSave; // Offset: 1120 + keen::UiLocaTagReference configureWorldSave; // Offset: 1136 + keen::UiLocaTagReference deleteWorld; // Offset: 1152 + keen::UiLocaTagReference deleteWorldDesc; // Offset: 1168 + keen::UiLocaTagReference maxWorldCountReached; // Offset: 1184 + keen::UiLocaTagReference worldSaveNameTitle; // Offset: 1200 + keen::UiLocaTagReference gameSettings; // Offset: 1216 + keen::UiLocaTagReference sessionVisibility; // Offset: 1232 + keen::UiLocaTagReference joinGame; // Offset: 1248 + keen::UiLocaTagReference publicGame; // Offset: 1264 + keen::UiLocaTagReference privateGame; // Offset: 1280 + keen::UiLocaTagReference sessionVisibiltyFriends; // Offset: 1296 + keen::UiLocaTagReference sessionVisibiltyPublic; // Offset: 1312 + keen::UiLocaTagReference hidePasswordInput; // Offset: 1328 + keen::UiLocaTagReference setPasswordProtection; // Offset: 1344 + keen::UiLocaTagReference hostHintHasNoPassword; // Offset: 1360 + keen::UiLocaTagReference hostSettings; // Offset: 1376 + keen::UiLocaTagReference hostStartDialogHeader; // Offset: 1392 + keen::UiLocaTagReference hostStartButton; // Offset: 1408 + keen::UiLocaTagReference worldNameEmptyProhibited; // Offset: 1424 + keen::UiLocaTagReference noPassword; // Offset: 1440 + keen::UiLocaTagReference sessionPassword; // Offset: 1456 + keen::UiLocaTagReference rolePassword; // Offset: 1472 + keen::UiLocaTagReference setPassword; // Offset: 1488 + keen::UiLocaTagReference removePassword; // Offset: 1504 + keen::UiLocaTagReference enterPasswordHeader; // Offset: 1520 + keen::UiLocaTagReference sessionSize; // Offset: 1536 + keen::UiLocaTagReference maxPlayerCount; // Offset: 1552 + keen::UiLocaTagReference serverFilter; // Offset: 1568 + keen::UiLocaTagReference availableServer; // Offset: 1584 + keen::UiLocaTagReference serverName; // Offset: 1600 + keen::UiLocaTagReference hostedBy; // Offset: 1616 + keen::UiLocaTagReference currentSessionSize; // Offset: 1632 + keen::UiLocaTagReference sessionSizeWarning; // Offset: 1648 + keen::UiLocaTagReference enterPassword; // Offset: 1664 + keen::UiLocaTagReference searchIPv4; // Offset: 1680 + keen::UiLocaTagReference addToFavourite; // Offset: 1696 + keen::UiLocaTagReference renameCharacter; // Offset: 1712 + keen::UiLocaTagReference legalLine; // Offset: 1728 + keen::UiLocaTagReference gportalLogoDesc; // Offset: 1744 + keen::UiLocaTagReference gportalLink; // Offset: 1760 + keen::UiLocaTagReference versionText; // Offset: 1776 + keen::UiLocaTagReference preload; // Offset: 1792 + keen::UiLocaTagReference compilingShaders; // Offset: 1808 + keen::UiLocaTagReference addServerCaption; // Offset: 1824 + keen::UiLocaTagReference serverDidNotResponde; // Offset: 1840 + keen::UiLocaTagReference serverDidResponde; // Offset: 1856 + keen::UiLocaTagReference inviteBuildVersionWarningLocalOld; // Offset: 1872 + keen::UiLocaTagReference inviteBuildVersionWarningInviteOld; // Offset: 1888 + keen::UiLocaTagReference serverSettingsRolesHeader; // Offset: 1904 + keen::UiLocaTagReference serverSettingsRolesExplanation; // Offset: 1920 + keen::UiLocaTagReference serverSettingsSelectedSavegameHeader; // Offset: 1936 + keen::UiLocaTagReference serverSettingsRoleDisabled; // Offset: 1952 + keen::UiLocaTagReference serverSettingsRolePublic; // Offset: 1968 + keen::UiLocaTagReference serverSettingsAllRolesDisabledWarning; // Offset: 1984 + keen::UiLocaTagReference serverRolePermissionsHeader; // Offset: 2000 + keen::UiLocaTagReference serverRoleSupressed; // Offset: 2016 + keen::UiLocaTagReference serverRolesInvalidHint; // Offset: 2032 + keen::UiLocaTagReference warningHostSettingsNotConfigured; // Offset: 2048 + keen::UiLocaTagReference warningServerRoleSupressed; // Offset: 2064 + keen::UiLocaTagReference warningServerRoleSamePassword; // Offset: 2080 + keen::UiLocaTagReference warningPublicServerRole; // Offset: 2096 + keen::UiLocaTagReference warningAdminPasswordRequired; // Offset: 2112 + keen::UiLocaTagReference warningFriendPasswordRequired; // Offset: 2128 + keen::UiLocaTagReference warningNoPasswordPublic; // Offset: 2144 + keen::UiLocaTagReference forceAllowPublicFriendRole; // Offset: 2160 + keen::UiLocaTagReference rolePasswordHeader; // Offset: 2176 + keen::UiLocaTagReference changePassword; // Offset: 2192 + keen::UiLocaTagReference publicRole; // Offset: 2208 + keen::UiLocaTagReference protectedRole; // Offset: 2224 + keen::UiLocaTagReference disabled; // Offset: 2240 + keen::UiLocaTagReference joinWithoutPw; // Offset: 2256 + keen::UiLocaTagReference optionalPwHint; // Offset: 2272 +}; + +struct FbUiLocaMenuSystem { + keen::UiLocaTagReference returnToGame; // Offset: 0 + keen::UiLocaTagReference returnToPregame; // Offset: 16 + keen::UiLocaTagReference showServerRole; // Offset: 32 + keen::UiLocaTagReference quitToDesktop; // Offset: 48 + keen::UiLocaTagReference networkQuality; // Offset: 64 + keen::UiLocaTagReference latencyValue; // Offset: 80 + keen::UiLocaTagReference shaderCompileProgress; // Offset: 96 + keen::UiLocaTagReference feedbackPopupHint; // Offset: 112 + keen::UiLocaTagReference feedbackIssue; // Offset: 128 + keen::UiLocaTagReference feedbackIssueLink; // Offset: 144 + keen::UiLocaTagReference bugReport; // Offset: 160 + keen::UiLocaTagReference bugReportLink; // Offset: 176 + keen::UiLocaTagReference discordServer; // Offset: 192 + keen::UiLocaTagReference discordServerLink; // Offset: 208 + keen::UiLocaTagReference connectTwitch; // Offset: 224 + keen::UiLocaTagReference connectTwitchLink; // Offset: 240 + keen::UiLocaTagReference steamWishlist; // Offset: 256 + keen::UiLocaTagReference steamWishlistLink; // Offset: 272 + keen::UiLocaTagReference watermarkLabel; // Offset: 288 + keen::UiLocaTagReference watermarkBetaLabel; // Offset: 304 + keen::UiLocaTagReference watermarkSecondLine; // Offset: 320 + keen::UiLocaTagReference watermarkF1Hint; // Offset: 336 + keen::UiLocaTagReference hours; // Offset: 352 + keen::UiLocaTagReference minutes; // Offset: 368 + keen::UiLocaTagReference gamePaused; // Offset: 384 +}; + +struct FbUiLocaMenuBindingsReset { + keen::UiLocaTagReference resetHeader; // Offset: 0 + keen::UiLocaTagReference resetDescription; // Offset: 16 + keen::UiLocaTagReference presetChangeHeader; // Offset: 32 + keen::UiLocaTagReference presetChangeDescription; // Offset: 48 + keen::UiLocaTagReference presetChangeConfirmButton; // Offset: 64 +}; + +struct FbUiLongDocParagraph { + keen::UiLocaTagReference locaTag; // Offset: 0 + keen::UiLocaTagReference hyperLink; // Offset: 16 +}; + +struct FbUiLocaTagDifficultySettings { + keen::UiLocaTagReference presetDefault; // Offset: 0 + keen::UiLocaTagReference presetDefaultDesc; // Offset: 16 + keen::UiLocaTagReference presetSurvivalist; // Offset: 32 + keen::UiLocaTagReference presetSurvivalistDesc; // Offset: 48 + keen::UiLocaTagReference presetBuilders; // Offset: 64 + keen::UiLocaTagReference presetBuildersDesc; // Offset: 80 + keen::UiLocaTagReference presetCombatChallenge; // Offset: 96 + keen::UiLocaTagReference presetCombatChallengeDesc; // Offset: 112 + keen::UiLocaTagReference presetCustom; // Offset: 128 + keen::UiLocaTagReference presetCustomDesc; // Offset: 144 + keen::UiLocaTagReference enemySettingsHeader; // Offset: 160 + keen::UiLocaTagReference enemyDamage; // Offset: 176 + keen::UiLocaTagReference enemyDamageDesc; // Offset: 192 + keen::UiLocaTagReference enemyHealth; // Offset: 208 + keen::UiLocaTagReference enemyHealthDesc; // Offset: 224 + keen::UiLocaTagReference enemyStamina; // Offset: 240 + keen::UiLocaTagReference enemyStaminaDesc; // Offset: 256 + keen::UiLocaTagReference enemyPerceptionRange; // Offset: 272 + keen::UiLocaTagReference enemyPerceptionRangeDesc; // Offset: 288 + keen::UiLocaTagReference enemyAttackSimultaneous; // Offset: 304 + keen::UiLocaTagReference enemyAttackSimultaneousDesc; // Offset: 320 + keen::UiLocaTagReference enemyAttackFrequency; // Offset: 336 + keen::UiLocaTagReference enemyAttackFrequencyDesc; // Offset: 352 + keen::UiLocaTagReference pacifyEnemies; // Offset: 368 + keen::UiLocaTagReference pacifyEnemiesDesc; // Offset: 384 + keen::UiLocaTagReference enemySpawnerAmount; // Offset: 400 + keen::UiLocaTagReference enemySpawnerAmountDesc; // Offset: 416 + keen::UiLocaTagReference enemySpawnerAmountFew; // Offset: 432 + keen::UiLocaTagReference enemySpawnerAmountNormal; // Offset: 448 + keen::UiLocaTagReference enemySpawnerAmountMore; // Offset: 464 + keen::UiLocaTagReference enemySpawnerAmountMany; // Offset: 480 + keen::UiLocaTagReference bossHealth; // Offset: 496 + keen::UiLocaTagReference bossHealthDesc; // Offset: 512 + keen::UiLocaTagReference bossDamage; // Offset: 528 + keen::UiLocaTagReference bossDamageDesc; // Offset: 544 + keen::UiLocaTagReference playerHealth; // Offset: 560 + keen::UiLocaTagReference playerHealthDesc; // Offset: 576 + keen::UiLocaTagReference playerMana; // Offset: 592 + keen::UiLocaTagReference playerManaDesc; // Offset: 608 + keen::UiLocaTagReference playerStamina; // Offset: 624 + keen::UiLocaTagReference playerStaminaDesc; // Offset: 640 + keen::UiLocaTagReference otherSettingsHeader; // Offset: 656 + keen::UiLocaTagReference xpGainMining; // Offset: 672 + keen::UiLocaTagReference xpGainMiningDesc; // Offset: 688 + keen::UiLocaTagReference xpGainQuests; // Offset: 704 + keen::UiLocaTagReference xpGainQuestsDesc; // Offset: 720 + keen::UiLocaTagReference xpGainCombat; // Offset: 736 + keen::UiLocaTagReference xpGainCombatDesc; // Offset: 752 + keen::UiLocaTagReference shroudTime; // Offset: 768 + keen::UiLocaTagReference shroudTimeDesc; // Offset: 784 + keen::UiLocaTagReference productionSpeed; // Offset: 800 + keen::UiLocaTagReference productionSpeedDesc; // Offset: 816 + keen::UiLocaTagReference plantGrowSpeed; // Offset: 832 + keen::UiLocaTagReference plantGrowSpeedDesc; // Offset: 848 + keen::UiLocaTagReference weaponUpgradeCosts; // Offset: 864 + keen::UiLocaTagReference weaponUpgradeCostsDesc; // Offset: 880 + keen::UiLocaTagReference perkUpgradeRecyclingFactor; // Offset: 896 + keen::UiLocaTagReference perkUpgradeRecyclingFactorDesc; // Offset: 912 + keen::UiLocaTagReference backpackDeathBehaviour; // Offset: 928 + keen::UiLocaTagReference backpackDeathBehaviourDesc; // Offset: 944 + keen::UiLocaTagReference backpackDeathBehaviourKeepAll; // Offset: 960 + keen::UiLocaTagReference backpackDeathBehaviourDefault; // Offset: 976 + keen::UiLocaTagReference backpackDeathBehaviourLoseAll; // Offset: 992 + keen::UiLocaTagReference durabilityEnabled; // Offset: 1008 + keen::UiLocaTagReference durabilityEnabledDesc; // Offset: 1024 + keen::UiLocaTagReference durabilityScaling; // Offset: 1040 + keen::UiLocaTagReference durabilityScalingDesc; // Offset: 1056 + keen::UiLocaTagReference worldRefreshTime; // Offset: 1072 + keen::UiLocaTagReference worldRefreshTimeDesc; // Offset: 1088 + keen::UiLocaTagReference dayDuration; // Offset: 1104 + keen::UiLocaTagReference dayDurationDesc; // Offset: 1120 + keen::UiLocaTagReference nightDuration; // Offset: 1136 + keen::UiLocaTagReference nightDurationDesc; // Offset: 1152 + keen::UiLocaTagReference foodDuration; // Offset: 1168 + keen::UiLocaTagReference foodDurationDesc; // Offset: 1184 + keen::UiLocaTagReference foodSurvival; // Offset: 1200 + keen::UiLocaTagReference foodSurvivalDesc; // Offset: 1216 + keen::UiLocaTagReference starvingTime; // Offset: 1232 + keen::UiLocaTagReference starvingTimeDesc; // Offset: 1248 + keen::UiLocaTagReference weatherFrequency; // Offset: 1264 + keen::UiLocaTagReference weatherFrequencyDesc; // Offset: 1280 + keen::UiLocaTagReference enableGliderTurbulences; // Offset: 1296 + keen::UiLocaTagReference enableGliderTurbulencesDesc; // Offset: 1312 + keen::UiLocaTagReference tamingStartleRepercussion; // Offset: 1328 + keen::UiLocaTagReference tamingStartleRepercussionDesc; // Offset: 1344 + keen::UiLocaTagReference bodyHeat; // Offset: 1360 + keen::UiLocaTagReference bodyHeatDesc; // Offset: 1376 + keen::UiLocaTagReference miningDamage; // Offset: 1392 + keen::UiLocaTagReference miningDamageDesc; // Offset: 1408 + keen::UiLocaTagReference lootAmount; // Offset: 1424 + keen::UiLocaTagReference lootAmountDesc; // Offset: 1440 + keen::UiLocaTagReference resourcesHeader; // Offset: 1456 + keen::UiLocaTagReference xpModsHeader; // Offset: 1472 + keen::UiLocaTagReference survivalHeader; // Offset: 1488 + keen::UiLocaTagReference playerHeader; // Offset: 1504 + keen::UiLocaTagReference selectedLabel; // Offset: 1520 +}; + +struct FbUiLocaMenuSettings { + keen::UiLocaTagReference tabGame; // Offset: 0 + keen::UiLocaTagReference tabDisplay; // Offset: 16 + keen::UiLocaTagReference tabSound; // Offset: 32 + keen::UiLocaTagReference tabAccessibility; // Offset: 48 + keen::UiLocaTagReference tabControls; // Offset: 64 + keen::UiLocaTagReference tabLegal; // Offset: 80 + keen::BlobArray privacyPolicyParagraphs; // Offset: 96 + keen::UiLocaTagReference settingAuto; // Offset: 104 + keen::UiLocaTagReference settingOff; // Offset: 120 + keen::UiLocaTagReference settingOn; // Offset: 136 + keen::UiLocaTagReference settingBoost; // Offset: 152 + keen::UiLocaTagReference settingLowest; // Offset: 168 + keen::UiLocaTagReference settingLow; // Offset: 184 + keen::UiLocaTagReference settingMedium; // Offset: 200 + keen::UiLocaTagReference settingHigh; // Offset: 216 + keen::UiLocaTagReference settingUltra; // Offset: 232 + keen::UiLocaTagReference settingPerformance; // Offset: 248 + keen::UiLocaTagReference settingBalance; // Offset: 264 + keen::UiLocaTagReference settingQuality; // Offset: 280 + keen::UiLocaTagReference settingUltraQuality; // Offset: 296 + keen::UiLocaTagReference settingUltraPerformance; // Offset: 312 + keen::UiLocaTagReference settingNative; // Offset: 328 + keen::UiLocaTagReference settingRare; // Offset: 344 + keen::UiLocaTagReference settingNormal; // Offset: 360 + keen::UiLocaTagReference settingOften; // Offset: 376 + keen::UiLocaTagReference settingKeepProgress; // Offset: 392 + keen::UiLocaTagReference settingLoseSomeProgress; // Offset: 408 + keen::UiLocaTagReference settingLoseAllProgress; // Offset: 424 + keen::UiLocaTagReference difficultyLabel; // Offset: 440 + keen::UiLocaTagReference difficultyEasy; // Offset: 456 + keen::UiLocaTagReference difficultyDefault; // Offset: 472 + keen::UiLocaTagReference difficultyHard; // Offset: 488 + keen::UiLocaTagReference difficultyVeryHard; // Offset: 504 + keen::UiLocaTagReference difficultyCustom; // Offset: 520 + keen::UiLocaTagReference controlsSectionKeyboardMouse; // Offset: 536 + keen::UiLocaTagReference controlsSectionGamepad; // Offset: 552 + keen::UiLocaTagReference mouseCameraSmoothing; // Offset: 568 + keen::UiLocaTagReference cameraSensitivity; // Offset: 584 + keen::UiLocaTagReference aimingSensitivity; // Offset: 600 + keen::UiLocaTagReference cameraInversion; // Offset: 616 + keen::UiLocaTagReference cameraInversionValueNone; // Offset: 632 + keen::UiLocaTagReference cameraInversionValueX; // Offset: 648 + keen::UiLocaTagReference cameraInversionValueY; // Offset: 664 + keen::UiLocaTagReference cameraInversionValueXY; // Offset: 680 + keen::UiLocaTagReference actionDirection; // Offset: 696 + keen::UiLocaTagReference actionDirectionDesc; // Offset: 712 + keen::UiLocaTagReference cameraDirection; // Offset: 728 + keen::UiLocaTagReference characterDirection; // Offset: 744 + keen::UiLocaTagReference controlsKeyboardMouseBindingsButton; // Offset: 760 + keen::UiLocaTagReference controlsGamepadBindingsButton; // Offset: 776 + keen::UiLocaTagReference controlScheme; // Offset: 792 + keen::UiLocaTagReference controlSchemePresetA; // Offset: 808 + keen::UiLocaTagReference controlSchemePresetB; // Offset: 824 + keen::UiLocaTagReference controlSchemeCustom; // Offset: 840 + keen::UiLocaTagReference controlSchemeEdit; // Offset: 856 + keen::UiLocaTagReference controlSchemeCreate; // Offset: 872 + keen::UiLocaTagReference controlSchemeCreateDescription; // Offset: 888 + keen::UiLocaTagReference controlSchemeResetButton; // Offset: 904 + keen::FbUiLocaMenuBindingsReset controlSchemeResetDialog; // Offset: 920 + keen::UiLocaTagReference bindingEntryChange; // Offset: 1000 + keen::UiLocaTagReference bindingEntryUndo; // Offset: 1016 + keen::UiLocaTagReference bindingEntryReset; // Offset: 1032 + keen::UiLocaTagReference bindingEntryDelete; // Offset: 1048 + keen::UiLocaTagReference bindingEntryCustomize; // Offset: 1064 + keen::UiLocaTagReference bindingEntryRemapPrompt; // Offset: 1080 + keen::UiLocaTagReference warningHeader; // Offset: 1096 + keen::UiLocaTagReference warningCriticalDescription; // Offset: 1112 + keen::UiLocaTagReference warningRecommendedDescription; // Offset: 1128 + keen::UiLocaTagReference warningContinueEdit; // Offset: 1144 + keen::UiLocaTagReference warningUsePreset; // Offset: 1160 + keen::UiLocaTagReference warningUseIncompleteBindings; // Offset: 1176 + keen::UiLocaTagReference bindingCategoryMovements; // Offset: 1192 + keen::UiLocaTagReference bindingCategoryBasicActions; // Offset: 1208 + keen::UiLocaTagReference bindingCategoryCamera; // Offset: 1224 + keen::UiLocaTagReference bindingCategoryActionBar; // Offset: 1240 + keen::UiLocaTagReference bindingCategoryCombat; // Offset: 1256 + keen::UiLocaTagReference bindingCategoryShortcuts; // Offset: 1272 + keen::UiLocaTagReference bindingCategoryBuildings; // Offset: 1288 + keen::UiLocaTagReference bindingCategoryUserInterface; // Offset: 1304 + keen::UiLocaTagReference invalidBindingInput; // Offset: 1320 + keen::UiLocaTagReference useAnalogStickHint; // Offset: 1336 + keen::UiLocaTagReference searchKey; // Offset: 1352 + keen::UiLocaTagReference pressKey; // Offset: 1368 + keen::UiLocaTagReference inputKeyToSearch; // Offset: 1384 + keen::UiLocaTagReference clearSearch; // Offset: 1400 + keen::UiLocaTagReference volumeMaster; // Offset: 1416 + keen::UiLocaTagReference volumeMusic; // Offset: 1432 + keen::UiLocaTagReference volumeUi; // Offset: 1448 + keen::UiLocaTagReference volumeGame; // Offset: 1464 + keen::UiLocaTagReference volumeVoices; // Offset: 1480 + keen::UiLocaTagReference audioReverb; // Offset: 1496 + keen::UiLocaTagReference muteInBackground; // Offset: 1512 + keen::UiLocaTagReference monitor; // Offset: 1528 + keen::UiLocaTagReference displayMode; // Offset: 1544 + keen::UiLocaTagReference windowed; // Offset: 1560 + keen::UiLocaTagReference fullscreen; // Offset: 1576 + keen::UiLocaTagReference resolution; // Offset: 1592 + keen::UiLocaTagReference renderScale; // Offset: 1608 + keen::UiLocaTagReference vsync; // Offset: 1624 + keen::UiLocaTagReference sleepInBackground; // Offset: 1640 + keen::UiLocaTagReference pointLightShadows; // Offset: 1656 + keen::UiLocaTagReference fov; // Offset: 1672 + keen::UiLocaTagReference brightness; // Offset: 1688 + keen::UiLocaTagReference gamma; // Offset: 1704 + keen::UiLocaTagReference contrast; // Offset: 1720 + keen::UiLocaTagReference sharpness; // Offset: 1736 + keen::UiLocaTagReference quality; // Offset: 1752 + keen::UiLocaTagReference qualityPreset; // Offset: 1768 + keen::UiLocaTagReference custom; // Offset: 1784 + keen::UiLocaTagReference antialiasing; // Offset: 1800 + keen::UiLocaTagReference shadowQuality; // Offset: 1816 + keen::UiLocaTagReference contactShadows; // Offset: 1832 + keen::UiLocaTagReference fsr2Quality; // Offset: 1848 + keen::UiLocaTagReference fsr3Quality; // Offset: 1864 + keen::UiLocaTagReference dlssQuality; // Offset: 1880 + keen::UiLocaTagReference nvReflexQuality; // Offset: 1896 + keen::UiLocaTagReference reflections; // Offset: 1912 + keen::UiLocaTagReference fogQuality; // Offset: 1928 + keen::UiLocaTagReference volumetricShadowQuality; // Offset: 1944 + keen::UiLocaTagReference textureResolution; // Offset: 1960 + keen::UiLocaTagReference textureFiltering; // Offset: 1976 + keen::UiLocaTagReference ssao; // Offset: 1992 + keen::UiLocaTagReference distantObjects; // Offset: 2008 + keen::UiLocaTagReference decoObjects; // Offset: 2024 + keen::UiLocaTagReference detailScattering; // Offset: 2040 + keen::UiLocaTagReference voxelMeshing; // Offset: 2056 + keen::UiLocaTagReference tessellation; // Offset: 2072 + keen::UiLocaTagReference indirectLighting; // Offset: 2088 + keen::UiLocaTagReference antialiasingFxaa; // Offset: 2104 + keen::UiLocaTagReference antialiasingFsr2; // Offset: 2120 + keen::UiLocaTagReference antialiasingFsr3; // Offset: 2136 + keen::UiLocaTagReference antialiasingDlss; // Offset: 2152 + keen::UiLocaTagReference antialiasingDlaa; // Offset: 2168 + keen::UiLocaTagReference language; // Offset: 2184 + keen::UiLocaTagReference resolutionValue; // Offset: 2200 + keen::UiLocaTagReference nativeResolutionValue; // Offset: 2216 + keen::UiLocaTagReference vsyncIntervalValue; // Offset: 2232 + keen::UiLocaTagReference renderScaleDescription; // Offset: 2248 + keen::UiLocaTagReference antialiasingDescription; // Offset: 2264 + keen::UiLocaTagReference fsr2Description; // Offset: 2280 + keen::UiLocaTagReference fsr3Description; // Offset: 2296 + keen::UiLocaTagReference dlssDescription; // Offset: 2312 + keen::UiLocaTagReference nvReflexDescription; // Offset: 2328 + keen::UiLocaTagReference shadowsDescription; // Offset: 2344 + keen::UiLocaTagReference contactShadowsDescription; // Offset: 2360 + keen::UiLocaTagReference reflectionsDescription; // Offset: 2376 + keen::UiLocaTagReference fogQualityDescription; // Offset: 2392 + keen::UiLocaTagReference volShadowDescription; // Offset: 2408 + keen::UiLocaTagReference ssaoDescription; // Offset: 2424 + keen::UiLocaTagReference indirectLightingDescription; // Offset: 2440 + keen::UiLocaTagReference useCharacterNameDescription; // Offset: 2456 + keen::UiLocaTagReference gameplaySectionCamera; // Offset: 2472 + keen::UiLocaTagReference gameplaySectionCombat; // Offset: 2488 + keen::UiLocaTagReference gameplaySectionUI; // Offset: 2504 + keen::UiLocaTagReference cameraDistance; // Offset: 2520 + keen::UiLocaTagReference idleCameraMovement; // Offset: 2536 + keen::UiLocaTagReference idleCameraMovementDescription; // Offset: 2552 + keen::UiLocaTagReference reduceDynamicCameraMovement; // Offset: 2568 + keen::UiLocaTagReference reduceDynamicCameraMovementDescription; // Offset: 2584 + keen::UiLocaTagReference dynamicCameraGlider; // Offset: 2600 + keen::UiLocaTagReference dynamicCameraCombat; // Offset: 2616 + keen::UiLocaTagReference dynamicCameraGrapplingHook; // Offset: 2632 + keen::UiLocaTagReference dynamicCameraCampfire; // Offset: 2648 + keen::UiLocaTagReference screenShake; // Offset: 2664 + keen::UiLocaTagReference screenShakeStrength; // Offset: 2680 + keen::UiLocaTagReference displayDamageNumbers; // Offset: 2696 + keen::UiLocaTagReference displayDamagePropertyTexts; // Offset: 2712 + keen::UiLocaTagReference keepTargetLockWhenSprinting; // Offset: 2728 + keen::UiLocaTagReference autoChangeTargetLockOnKill; // Offset: 2744 + keen::UiLocaTagReference textScale; // Offset: 2760 + keen::UiLocaTagReference hudAspectRatioLimit; // Offset: 2776 + keen::UiLocaTagReference hudAspectRatioLimitNone; // Offset: 2792 + keen::UiLocaTagReference hideHUD; // Offset: 2808 + keen::UiLocaTagReference showHUD; // Offset: 2824 + keen::UiLocaTagReference hideHelmet; // Offset: 2840 + keen::UiLocaTagReference hideGloves; // Offset: 2856 + keen::UiLocaTagReference showRarityIcons; // Offset: 2872 + keen::UiLocaTagReference useCharacterName; // Offset: 2888 + keen::UiLocaTagReference confirmDeletionByRarity; // Offset: 2904 + keen::UiLocaTagReference confirmDeletionByRarityDescription; // Offset: 2920 + keen::UiLocaTagReference rarityAndAbove; // Offset: 2936 + keen::UiLocaTagReference hideSmallSpiders; // Offset: 2952 + keen::UiLocaTagReference controllerButtonStyle; // Offset: 2968 + keen::UiLocaTagReference controllerDiagramPageGeneral; // Offset: 2984 + keen::UiLocaTagReference controllerDiagramPageBuilding; // Offset: 3000 + keen::FbUiLocaTagDifficultySettings difficulty; // Offset: 3016 +}; + +struct FbUiUserPermissions { + keen::UiLocaTagReference kickBanPermissionDesc; // Offset: 0 + keen::UiLocaTagReference accessInventoriesPermissionDesc; // Offset: 16 + keen::UiLocaTagReference editBasePermissionDesc; // Offset: 32 + keen::UiLocaTagReference extendBasePermissionDesc; // Offset: 48 +}; + +struct FbUiLocaMenuJournal { + keen::UiLocaTagReference emptyMenuHintShort; // Offset: 0 + keen::UiLocaTagReference emptyMenuHintLong; // Offset: 16 +}; + +struct FbUiLocaMenus { + keen::FbUiLocaMenuPregame pregame; // Offset: 0 + keen::FbUiLocaMenuSystem system; // Offset: 2288 + keen::FbUiLocaMenuSettings settings; // Offset: 2688 + keen::FbUiUserPermissions userPermissions; // Offset: 7240 + keen::FbUiLocaMenuFlameAltar flameAltar; // Offset: 7304 + keen::FbUiLocaMenuJournal journal; // Offset: 7944 + keen::UiLocaTagReference menuHeaderFallbackCollection; // Offset: 7976 + keen::UiLocaTagReference menuHeaderFallbackFoodStorage; // Offset: 7992 + keen::UiLocaTagReference menuHeaderSkillTree; // Offset: 8008 + keen::UiLocaTagReference menuHeaderCharacterCustomization; // Offset: 8024 + keen::UiLocaTagReference menuHeaderCharacterCreation; // Offset: 8040 + keen::UiLocaTagReference menuHeaderStorageChest; // Offset: 8056 + keen::UiLocaTagReference menuHeaderLootEntity; // Offset: 8072 + keen::UiLocaTagReference menuHeaderSystem; // Offset: 8088 + keen::UiLocaTagReference bpMenuGettingReady; // Offset: 8104 + keen::UiLocaTagReference bpMenuSectionActiveBlueprint; // Offset: 8120 + keen::UiLocaTagReference bpMenuSectionAvailableBlueprints; // Offset: 8136 + keen::UiLocaTagReference bpMenuSectionMaterials; // Offset: 8152 + keen::UiLocaTagReference bpMenuShapeBarExpansionHint; // Offset: 8168 + keen::UiLocaTagReference bpMenuSubCategorySingleBlock; // Offset: 8184 + keen::UiLocaTagReference bpMenuSubCategoryNonRoof; // Offset: 8200 + keen::UiLocaTagReference bpMenuSubCategoryNonRoof_4m; // Offset: 8216 + keen::UiLocaTagReference bpMenuSubCategoryRoof; // Offset: 8232 + keen::UiLocaTagReference bpMenuSubCategoryRoof_4m; // Offset: 8248 + keen::UiLocaTagReference bpMenuSubCategoryTerrain; // Offset: 8264 + keen::UiLocaTagReference terraformerMenuSectionActiveTool; // Offset: 8280 + keen::UiLocaTagReference terraformerMenuSectionAvailableTool; // Offset: 8296 + keen::UiLocaTagReference npcSideMenuSectionActiveTool; // Offset: 8312 + keen::UiLocaTagReference npcSideMenuSectionAvailableTool; // Offset: 8328 + keen::UiLocaTagReference npcSideMenuNoAvailableNpcs; // Offset: 8344 + keen::UiLocaTagReference npcSideMenuRoamingRange; // Offset: 8360 + keen::UiLocaTagReference npcSideMenuRoamingRangeLabel; // Offset: 8376 + keen::UiLocaTagReference dialogNoChatterHint; // Offset: 8392 + keen::UiLocaTagReference repairNotAvailableHint; // Offset: 8408 + keen::UiLocaTagReference craftingTabManual; // Offset: 8424 + keen::UiLocaTagReference craftingTabRepair; // Offset: 8440 + keen::UiLocaTagReference craftingTabRecycling; // Offset: 8456 + keen::UiLocaTagReference craftingTabUpgrade; // Offset: 8472 + keen::UiLocaTagReference playerEntryFallback; // Offset: 8488 + keen::UiLocaTagReference itemPerksHeader; // Offset: 8504 + keen::UiLocaTagReference itemPerksAttributeGeneric; // Offset: 8520 + keen::UiLocaTagReference flame; // Offset: 8536 + keen::UiLocaTagReference theFlame; // Offset: 8552 + keen::UiLocaTagReference activeAltars; // Offset: 8568 + keen::UiLocaTagReference mapNpcUnplacedHint; // Offset: 8584 + keen::UiLocaTagReference attributeValueExplainShort; // Offset: 8600 + keen::UiLocaTagReference attributeValueExplainLong; // Offset: 8616 + keen::UiLocaTagReference resistanceAttributeBonusTooltip; // Offset: 8632 + keen::UiLocaTagReference susceptibilityAttributeTooltip; // Offset: 8648 + keen::UiLocaTagReference page; // Offset: 8664 + keen::UiLocaTagReference pageNavigation; // Offset: 8680 + keen::UiLocaTagReference pagesUnlocked; // Offset: 8696 + keen::UiLocaTagReference rewards; // Offset: 8712 + keen::UiLocaTagReference activeQuest; // Offset: 8728 + keen::UiLocaTagReference fastTravelDisabled; // Offset: 8744 + keen::UiLocaTagReference fastTravelDisabledFalling; // Offset: 8760 + keen::UiLocaTagReference objective; // Offset: 8776 + keen::UiLocaTagReference location; // Offset: 8792 + keen::UiLocaTagReference completed; // Offset: 8808 + keen::UiLocaTagReference documentItem; // Offset: 8824 + keen::UiLocaTagReference loreCategoryUnsorted; // Offset: 8840 + keen::UiLocaTagReference loreCategoryUndiscovered; // Offset: 8856 + keen::UiLocaTagReference noUncompletedQuestsHint; // Offset: 8872 + keen::UiLocaTagReference noCompletedQuestsHint; // Offset: 8888 + keen::UiLocaTagReference customMapMarkerLabel; // Offset: 8904 + keen::UiLocaTagReference tombstoneLabel; // Offset: 8920 + keen::UiLocaTagReference missedWorldQuestsMapHint; // Offset: 8936 + keen::UiLocaTagReference questCategoryActive; // Offset: 8952 + keen::UiLocaTagReference questCategoryInactive; // Offset: 8968 + keen::UiLocaTagReference nextQuestHintDocName; // Offset: 8984 + keen::UiLocaTagReference nextQuestHintPageName; // Offset: 9000 + keen::UiLocaTagReference nextQuestHintText; // Offset: 9016 + keen::UiLocaTagReference kickPlayerPopupHeader; // Offset: 9032 + keen::UiLocaTagReference kickPlayerPopupContent; // Offset: 9048 + keen::UiLocaTagReference currentPlayerPermissionHeader; // Offset: 9064 + keen::UiLocaTagReference nextQuestHintTheFlame; // Offset: 9080 + keen::UiLocaTagReference songSelectionHeader; // Offset: 9096 + keen::UiLocaTagReference showDetailedDiffucultySettings; // Offset: 9112 + keen::UiLocaTagReference difficultySettingsReadOnlyExplanation; // Offset: 9128 + keen::UiLocaTagReference difficultySettingsReadOnlyExplanationDedicatedServer; // Offset: 9144 + keen::UiLocaTagReference twitchDropsHeader; // Offset: 9160 + keen::UiLocaTagReference twitchDropsNoUnlocks; // Offset: 9176 + keen::UiLocaTagReference npcStatusBed; // Offset: 9192 + keen::UiLocaTagReference npcStatusFood; // Offset: 9208 + keen::UiLocaTagReference collectionDisplayedHeader; // Offset: 9224 + keen::UiLocaTagReference collectionAvailableItemsHeader; // Offset: 9240 + keen::UiLocaTagReference collectionAvailableItemsSubHeader; // Offset: 9256 + keen::UiLocaTagReference collectionNoAvailableItemsHint; // Offset: 9272 + keen::UiLocaTagReference npcCraftingLabel; // Offset: 9288 + keen::UiLocaTagReference npcAssistantLabel; // Offset: 9304 + keen::UiLocaTagReference npcTownsfolkLabel; // Offset: 9320 + keen::UiLocaTagReference basesInfoAnimalsHungry; // Offset: 9336 + keen::UiLocaTagReference basesInfoAnimalsBeds; // Offset: 9352 + keen::UiLocaTagReference basesInfoAnimalsBedsObstructed; // Offset: 9368 + keen::UiLocaTagReference basesGenericLabel; // Offset: 9384 + keen::UiLocaTagReference altarGenericLabel; // Offset: 9400 +}; + +struct FbUiLocaEquipmentMenu { + keen::UiLocaTagReference mainHand; // Offset: 0 + keen::UiLocaTagReference shield; // Offset: 16 + keen::UiLocaTagReference rangedWeapon; // Offset: 32 + keen::UiLocaTagReference arrow; // Offset: 48 + keen::UiLocaTagReference spell; // Offset: 64 + keen::UiLocaTagReference backpackExtender; // Offset: 80 + keen::UiLocaTagReference climbTool; // Offset: 96 + keen::UiLocaTagReference hookshot; // Offset: 112 + keen::UiLocaTagReference glider; // Offset: 128 + keen::UiLocaTagReference accessory0; // Offset: 144 + keen::UiLocaTagReference accessory1; // Offset: 160 + keen::UiLocaTagReference ring0; // Offset: 176 + keen::UiLocaTagReference ring1; // Offset: 192 + keen::UiLocaTagReference head; // Offset: 208 + keen::UiLocaTagReference upperBody; // Offset: 224 + keen::UiLocaTagReference arms; // Offset: 240 + keen::UiLocaTagReference lowerBody; // Offset: 256 + keen::UiLocaTagReference boots; // Offset: 272 + keen::UiLocaTagReference attributes; // Offset: 288 + keen::UiLocaTagReference status; // Offset: 304 + keen::UiLocaTagReference attributeTileMainhandDamage; // Offset: 320 + keen::UiLocaTagReference attributeTileRangedEquipmentDamage; // Offset: 336 + keen::UiLocaTagReference attributeTileShieldDefense; // Offset: 352 + keen::UiLocaTagReference attributeTileBackpackExtender; // Offset: 368 + keen::UiLocaTagReference attributeTilePrompt; // Offset: 384 + keen::UiLocaTagReference statusTilePrompt; // Offset: 400 + keen::UiLocaTagReference attributeSectionMain; // Offset: 416 + keen::UiLocaTagReference attributeSectionOffense; // Offset: 432 + keen::UiLocaTagReference attributeSectionDefense; // Offset: 448 + keen::UiLocaTagReference attributeBonusHint; // Offset: 464 + keen::UiLocaTagReference attributeTooltipHint; // Offset: 480 + keen::UiLocaTagReference statusNothingHintCondensed; // Offset: 496 + keen::UiLocaTagReference statusNothingHint; // Offset: 512 + keen::UiLocaTagReference statusSectionFood; // Offset: 528 + keen::UiLocaTagReference statusSectionRest; // Offset: 544 + keen::UiLocaTagReference statusFoodEmptyHint; // Offset: 560 + keen::UiLocaTagReference statusRestConditionHeader; // Offset: 576 + keen::UiLocaTagReference statusRestConditionSitOrShelter; // Offset: 592 + keen::UiLocaTagReference statusRestComfortHeader; // Offset: 608 + keen::UiLocaTagReference statusRestComfortLevel; // Offset: 624 + keen::UiLocaTagReference statusRestComfortLevelNumbered; // Offset: 640 + keen::UiLocaTagReference statusRestComfortCondition; // Offset: 656 + keen::UiLocaTagReference statusBuffs; // Offset: 672 + keen::UiLocaTagReference statusDebuffs; // Offset: 688 + keen::UiLocaTagReference statusPlayerState; // Offset: 704 + keen::UiLocaTagReference noDebuffActive; // Offset: 720 + keen::UiLocaTagReference noBuffActive; // Offset: 736 + keen::UiLocaTagReference noPlayerStateActive; // Offset: 752 + keen::UiLocaTagReference equipped; // Offset: 768 + keen::UiLocaTagReference available; // Offset: 784 + keen::UiLocaTagReference slotContentNone; // Offset: 800 + keen::UiLocaTagReference vanityModePrompt; // Offset: 816 + keen::UiLocaTagReference vanityModeGearSection; // Offset: 832 + keen::UiLocaTagReference vanityModeVisualSection; // Offset: 848 + keen::UiLocaTagReference vanityModeHideSlotAction; // Offset: 864 + keen::UiLocaTagReference equipmentUsedAsVanityHint; // Offset: 880 +}; + +struct FbUiLocaInventory { + keen::UiLocaTagReference actionBar; // Offset: 0 + keen::UiLocaTagReference actionBarCurrent; // Offset: 16 + keen::UiLocaTagReference mainTabBackpack; // Offset: 32 + keen::UiLocaTagReference mainTabEquipment; // Offset: 48 + keen::UiLocaTagReference mainTabCrafting; // Offset: 64 + keen::UiLocaTagReference mainTabJournal; // Offset: 80 + keen::UiLocaTagReference mainTabMap; // Offset: 96 + keen::UiLocaTagReference mainTabSkillTree; // Offset: 112 + keen::UiLocaTagReference mainTabSettings; // Offset: 128 + keen::UiLocaTagReference mainTabStore; // Offset: 144 + keen::UiLocaTagReference giftingMenuTitle; // Offset: 160 + keen::UiLocaTagReference giftingLimitationHint; // Offset: 176 + keen::UiLocaTagReference giftingActionHeader; // Offset: 192 + keen::UiLocaTagReference giftingAmountOne; // Offset: 208 + keen::UiLocaTagReference giftingAmountHalf; // Offset: 224 + keen::UiLocaTagReference giftingAmountAll; // Offset: 240 + keen::UiLocaTagReference giftingAmountAdjust; // Offset: 256 + keen::UiLocaTagReference giftingTargetStatusCanReceive; // Offset: 272 + keen::UiLocaTagReference giftingTargetStatusDead; // Offset: 288 + keen::UiLocaTagReference giftingTargetStatusOutOfRange; // Offset: 304 + keen::UiLocaTagReference giftingTargetStatusBackpackFull; // Offset: 320 + keen::UiLocaTagReference giftingTarget; // Offset: 336 + keen::UiLocaTagReference giftingTargetMissingHint; // Offset: 352 + keen::UiLocaTagReference giftingActionConfirm; // Offset: 368 + keen::UiLocaTagReference giftingStackNew; // Offset: 384 + keen::UiLocaTagReference giftingStackOriginal; // Offset: 400 + keen::UiLocaTagReference giftedLootLogEntryHint; // Offset: 416 + keen::UiLocaTagReference splitStackNew; // Offset: 432 + keen::UiLocaTagReference splitStackOriginal; // Offset: 448 + keen::UiLocaTagReference deletionConfirmMessage; // Offset: 464 + keen::UiLocaTagReference deletionConfirmSuppression; // Offset: 480 + keen::UiLocaTagReference deletionConfirmSettingHint; // Offset: 496 + keen::UiLocaTagReference salvagingConfirmMessage; // Offset: 512 + keen::UiLocaTagReference highlightIsCurrentItemHint; // Offset: 528 + keen::UiLocaTagReference codexTileClues; // Offset: 544 + keen::UiLocaTagReference codexTileLore; // Offset: 560 + keen::UiLocaTagReference codexTilePinnedRecipe; // Offset: 576 + keen::UiLocaTagReference codexTileRecipeBook; // Offset: 592 + keen::UiLocaTagReference codexTileTutorials; // Offset: 608 + keen::UiLocaTagReference codexPageNotDiscovered; // Offset: 624 + keen::UiLocaTagReference journalCompletedSectionLabel; // Offset: 640 + keen::UiLocaTagReference journalWorldQuestSectionLabel; // Offset: 656 + keen::UiLocaTagReference journalMissedWorldQuestSectionLabel; // Offset: 672 + keen::UiLocaTagReference journalPersonalQuestSectionLabel; // Offset: 688 + keen::UiLocaTagReference journalCompletedSectionDesc; // Offset: 704 + keen::UiLocaTagReference journalWorldQuestSectionDesc; // Offset: 720 + keen::UiLocaTagReference journalMissedWorldQuestSectionDesc; // Offset: 736 + keen::UiLocaTagReference journalPersonalQuestSectionDesc; // Offset: 752 + keen::UiLocaTagReference codexTileMotherflame; // Offset: 768 + keen::UiLocaTagReference codexTileNpcs; // Offset: 784 + keen::UiLocaTagReference codexTileSurvivors; // Offset: 800 + keen::UiLocaTagReference codexTileTownfolk; // Offset: 816 + keen::UiLocaTagReference codexTileBases; // Offset: 832 + keen::UiLocaTagReference codexTileGroupPersonal; // Offset: 848 + keen::UiLocaTagReference codexTileGroupWorld; // Offset: 864 + keen::UiLocaTagReference freeWaypointLabel; // Offset: 880 + keen::UiLocaTagReference mapNodeIsWaypointHint; // Offset: 896 + keen::UiLocaTagReference noItemSelectedHint; // Offset: 912 + keen::UiLocaTagReference noSlotInBackpackHint; // Offset: 928 + keen::UiLocaTagReference skillpointLabelAvailable; // Offset: 944 + keen::UiLocaTagReference skillpointLabelInUse; // Offset: 960 + keen::UiLocaTagReference skillpointLabelRefund; // Offset: 976 + keen::UiLocaTagReference skilltreeNodeUnlocked; // Offset: 992 + keen::UiLocaTagReference skilltreeNodeOutOfRange; // Offset: 1008 + keen::UiLocaTagReference skilltreeNodeFutureContent; // Offset: 1024 + keen::UiLocaTagReference skilltreeNodeActivated; // Offset: 1040 + keen::UiLocaTagReference cookingHintRelease; // Offset: 1056 + keen::UiLocaTagReference cookingHintHold; // Offset: 1072 + keen::UiLocaTagReference sortStacksFromInventory; // Offset: 1088 + keen::UiLocaTagReference sortStacksToInventory; // Offset: 1104 + keen::UiLocaTagReference takeStacks; // Offset: 1120 + keen::UiLocaTagReference depositStacks; // Offset: 1136 + keen::UiLocaTagReference takeAll; // Offset: 1152 + keen::UiLocaTagReference depositAll; // Offset: 1168 + keen::UiLocaTagReference sortInventory; // Offset: 1184 + keen::UiLocaTagReference sortStorage; // Offset: 1200 + keen::UiLocaTagReference magicChestTab; // Offset: 1216 + keen::UiLocaTagReference magicChestAddOne; // Offset: 1232 + keen::UiLocaTagReference magicChestAddStack; // Offset: 1248 + keen::UiLocaTagReference magicChestAddAll; // Offset: 1264 + keen::UiLocaTagReference feedingStationStackAdditionMaxPossible; // Offset: 1280 + keen::UiLocaTagReference factoryAddIngredientsOne; // Offset: 1296 + keen::UiLocaTagReference factoryAddIngredientsMultiple; // Offset: 1312 + keen::UiLocaTagReference itemNoTwitchPermission; // Offset: 1328 + keen::UiLocaTagReference twitchItemLabel; // Offset: 1344 + keen::FbUiLocaEquipmentMenu equipmentMenu; // Offset: 1360 +}; + +struct FbUiLocaBuildVerbs { + keen::UiLocaTagReference genericAction; // Offset: 0 + keen::UiLocaTagReference blockAction; // Offset: 16 + keen::UiLocaTagReference blueprintAction; // Offset: 32 + keen::UiLocaTagReference propAction; // Offset: 48 + keen::UiLocaTagReference terraformAddAction; // Offset: 64 + keen::UiLocaTagReference terraformFlattenAction; // Offset: 80 + keen::UiLocaTagReference terraformRemoveAction; // Offset: 96 +}; + +struct FbUiLocaGameplayActionLabels { + keen::UiLocaTagReference locomotionMoveLeft; // Offset: 0 + keen::UiLocaTagReference locomotionMoveRight; // Offset: 16 + keen::UiLocaTagReference locomotionMoveForward; // Offset: 32 + keen::UiLocaTagReference locomotionMoveBackward; // Offset: 48 + keen::UiLocaTagReference locomotionMove; // Offset: 64 + keen::UiLocaTagReference cameraRotateLeft; // Offset: 80 + keen::UiLocaTagReference cameraRotateRight; // Offset: 96 + keen::UiLocaTagReference cameraRotateUp; // Offset: 112 + keen::UiLocaTagReference cameraRotateDown; // Offset: 128 + keen::UiLocaTagReference cameraRotate; // Offset: 144 + keen::UiLocaTagReference cameraZoomIn; // Offset: 160 + keen::UiLocaTagReference cameraZoomOut; // Offset: 176 + keen::UiLocaTagReference mainHandAction; // Offset: 192 + keen::UiLocaTagReference contextualAction; // Offset: 208 + keen::UiLocaTagReference cancelAction; // Offset: 224 + keen::UiLocaTagReference ammunitionSelectPrevious; // Offset: 240 + keen::UiLocaTagReference ammunitionSelectNext; // Offset: 256 + keen::UiLocaTagReference blueprintDistanceIncrease; // Offset: 272 + keen::UiLocaTagReference blueprintDistanceDecrease; // Offset: 288 + keen::UiLocaTagReference blueprintMaterialSelectPrevious; // Offset: 304 + keen::UiLocaTagReference blueprintMaterialSelectNext; // Offset: 320 + keen::UiLocaTagReference blueprintPageSelectPrevious; // Offset: 336 + keen::UiLocaTagReference blueprintPageSelectNext; // Offset: 352 + keen::UiLocaTagReference blueprintShapeSelectPrevious; // Offset: 368 + keen::UiLocaTagReference blueprintShapeSelectNext; // Offset: 384 + keen::UiLocaTagReference actionBarSlot1; // Offset: 400 + keen::UiLocaTagReference actionBarSlot2; // Offset: 416 + keen::UiLocaTagReference actionBarSlot3; // Offset: 432 + keen::UiLocaTagReference actionBarSlot4; // Offset: 448 + keen::UiLocaTagReference actionBarSlot5; // Offset: 464 + keen::UiLocaTagReference actionBarSlot6; // Offset: 480 + keen::UiLocaTagReference actionBarSlot7; // Offset: 496 + keen::UiLocaTagReference actionBarSlot8; // Offset: 512 + keen::UiLocaTagReference actionBarSlot9; // Offset: 528 + keen::UiLocaTagReference actionBarSlot10; // Offset: 544 + keen::UiLocaTagReference actionBarWheel; // Offset: 560 + keen::UiLocaTagReference actionBarSwapPage; // Offset: 576 + keen::UiLocaTagReference actionBarSwapPageVerbOnly; // Offset: 592 + keen::UiLocaTagReference actionBarSlotPrevious; // Offset: 608 + keen::UiLocaTagReference actionBarSlotNext; // Offset: 624 + keen::UiLocaTagReference guardAndParry; // Offset: 640 + keen::UiLocaTagReference guard; // Offset: 656 + keen::UiLocaTagReference parry; // Offset: 672 + keen::UiLocaTagReference locomotionSprint; // Offset: 688 + keen::UiLocaTagReference locomotionEvade; // Offset: 704 + keen::UiLocaTagReference locomotionJump; // Offset: 720 + keen::UiLocaTagReference locomotionSneak; // Offset: 736 + keen::UiLocaTagReference locomotionSit; // Offset: 752 + keen::UiLocaTagReference locomotionGlide; // Offset: 768 + keen::UiLocaTagReference locomotionHookshot; // Offset: 784 + keen::UiLocaTagReference respawn; // Offset: 800 + keen::UiLocaTagReference buildingUndo; // Offset: 816 + keen::UiLocaTagReference buildingDismantle; // Offset: 832 + keen::UiLocaTagReference buildingDismantlePickup; // Offset: 848 + keen::UiLocaTagReference buildingDismantleNotPossible; // Offset: 864 + keen::UiLocaTagReference animalPickupNotPossible; // Offset: 880 + keen::UiLocaTagReference buildingSnapping; // Offset: 896 + keen::UiLocaTagReference transformRotateClockwiseSmall; // Offset: 912 + keen::UiLocaTagReference transformRotateClockwiseBig; // Offset: 928 + keen::UiLocaTagReference transformRotateCounterClockwiseSmall; // Offset: 944 + keen::UiLocaTagReference transformRotateCounterClockwiseBig; // Offset: 960 + keen::UiLocaTagReference transformChangeAngleClockwise; // Offset: 976 + keen::UiLocaTagReference transformChangeAngleCounterClockwise; // Offset: 992 + keen::UiLocaTagReference combatTargetLock; // Offset: 1008 + keen::UiLocaTagReference combatTargetLeft; // Offset: 1024 + keen::UiLocaTagReference combatTargetRight; // Offset: 1040 + keen::UiLocaTagReference rangedCombatReady; // Offset: 1056 + keen::UiLocaTagReference rangedCombatShoot; // Offset: 1072 + keen::UiLocaTagReference songSelectOpen; // Offset: 1088 + keen::UiLocaTagReference songSelectPrevious; // Offset: 1104 + keen::UiLocaTagReference songSelectNext; // Offset: 1120 + keen::UiLocaTagReference systemMenuOpen; // Offset: 1136 + keen::UiLocaTagReference playerMenuOpen; // Offset: 1152 + keen::UiLocaTagReference playerMenuBackpack; // Offset: 1168 + keen::UiLocaTagReference playerMenuEquipmentAndStats; // Offset: 1184 + keen::UiLocaTagReference playerMenuWorld; // Offset: 1200 + keen::UiLocaTagReference playerMenuJournal; // Offset: 1216 + keen::UiLocaTagReference playerMenuCrafting; // Offset: 1232 + keen::UiLocaTagReference playerMenuSkills; // Offset: 1248 + keen::UiLocaTagReference goToCurrentNotificationTab; // Offset: 1264 + keen::UiLocaTagReference hudMenuBlueprints; // Offset: 1280 + keen::UiLocaTagReference inputModalityTap; // Offset: 1296 + keen::UiLocaTagReference inputModalityHold; // Offset: 1312 + keen::UiLocaTagReference inputModalityRelease; // Offset: 1328 + keen::UiLocaTagReference inputModalityToggle; // Offset: 1344 + keen::UiLocaTagReference assignBedHint; // Offset: 1360 + keen::FbUiLocaBuildVerbs buildVerbs; // Offset: 1376 +}; + +struct FbUiLocaUiActionLabels { + keen::UiLocaTagReference recipeUpgrade; // Offset: 0 + keen::UiLocaTagReference repairItem; // Offset: 16 + keen::UiLocaTagReference confirm; // Offset: 32 + keen::UiLocaTagReference finish; // Offset: 48 + keen::UiLocaTagReference cancel; // Offset: 64 + keen::UiLocaTagReference back; // Offset: 80 + keen::UiLocaTagReference openHint; // Offset: 96 + keen::UiLocaTagReference close; // Offset: 112 + keen::UiLocaTagReference leave; // Offset: 128 + keen::UiLocaTagReference join; // Offset: 144 + keen::UiLocaTagReference changeGeneric; // Offset: 160 + keen::UiLocaTagReference secondaryAction; // Offset: 176 + keen::UiLocaTagReference tertiaryAction; // Offset: 192 + keen::UiLocaTagReference moveObject; // Offset: 208 + keen::UiLocaTagReference changeTab; // Offset: 224 + keen::UiLocaTagReference navigationMove; // Offset: 240 + keen::UiLocaTagReference navigationScroll; // Offset: 256 + keen::UiLocaTagReference previousPage; // Offset: 272 + keen::UiLocaTagReference nextPage; // Offset: 288 + keen::UiLocaTagReference mapZoom; // Offset: 304 + keen::UiLocaTagReference mapFastTravel; // Offset: 320 + keen::UiLocaTagReference mapSnapToWaypoint; // Offset: 336 + keen::UiLocaTagReference mapSnapToPlayerPos; // Offset: 352 + keen::UiLocaTagReference mapSnapToHomeBase; // Offset: 368 + keen::UiLocaTagReference mapLocateGeneric; // Offset: 384 + keen::UiLocaTagReference mapWorldSidebar; // Offset: 400 + keen::UiLocaTagReference mapPlayersSidebar; // Offset: 416 + keen::UiLocaTagReference mapFilterSidebar; // Offset: 432 + keen::UiLocaTagReference mapFilterFocusType; // Offset: 448 + keen::UiLocaTagReference clearMapFilter; // Offset: 464 + keen::UiLocaTagReference mapGotoJournal; // Offset: 480 + keen::UiLocaTagReference gotoReferencedJournalPage; // Offset: 496 + keen::UiLocaTagReference gotoReferencedLorePage; // Offset: 512 + keen::UiLocaTagReference gotoReferencedQuestPage; // Offset: 528 + keen::UiLocaTagReference mapActions; // Offset: 544 + keen::UiLocaTagReference mapSetWaypoint; // Offset: 560 + keen::UiLocaTagReference mapSetAsWaypoint; // Offset: 576 + keen::UiLocaTagReference mapRemoveWaypoint; // Offset: 592 + keen::UiLocaTagReference mapSendPing; // Offset: 608 + keen::UiLocaTagReference codexShowOnMap; // Offset: 624 + keen::UiLocaTagReference placeNpcInWorld; // Offset: 640 + keen::UiLocaTagReference itemViewerVisibilityToggle; // Offset: 656 + keen::UiLocaTagReference backpackUseItem; // Offset: 672 + keen::UiLocaTagReference backpackActions; // Offset: 688 + keen::UiLocaTagReference backpackSplitStack; // Offset: 704 + keen::UiLocaTagReference backpackDeleteItem; // Offset: 720 + keen::UiLocaTagReference backpackSalvageItem; // Offset: 736 + keen::UiLocaTagReference splitStackAdjustMin; // Offset: 752 + keen::UiLocaTagReference splitStackAdjustDecrement; // Offset: 768 + keen::UiLocaTagReference splitStackAdjustHalf; // Offset: 784 + keen::UiLocaTagReference splitStackAdjustIncrement; // Offset: 800 + keen::UiLocaTagReference splitStackAdjustMax; // Offset: 816 + keen::UiLocaTagReference backpackGrabItemForMoving; // Offset: 832 + keen::UiLocaTagReference backpackGrabItemForMovingPartial; // Offset: 848 + keen::UiLocaTagReference backpackGrabItemForMovingHoldable; // Offset: 864 + keen::UiLocaTagReference backpackDropItemIntoSlot; // Offset: 880 + keen::UiLocaTagReference quickMoveItem; // Offset: 896 + keen::UiLocaTagReference quickMoveItemActionbar; // Offset: 912 + keen::UiLocaTagReference quickMoveItemStorage; // Offset: 928 + keen::UiLocaTagReference quickMoveTargetFull; // Offset: 944 + keen::UiLocaTagReference refillStacks; // Offset: 960 + keen::UiLocaTagReference backpackEquip; // Offset: 976 + keen::UiLocaTagReference backpackUnequip; // Offset: 992 + keen::UiLocaTagReference backpackReplaceItem; // Offset: 1008 + keen::UiLocaTagReference backpackGiftItem; // Offset: 1024 + keen::UiLocaTagReference showTutorial; // Offset: 1040 + keen::UiLocaTagReference changeBlueprint; // Offset: 1056 + keen::UiLocaTagReference lootTakeSingle; // Offset: 1072 + keen::UiLocaTagReference lootTakeAll; // Offset: 1088 + keen::UiLocaTagReference craftActionSingle; // Offset: 1104 + keen::UiLocaTagReference craftActionMultiple; // Offset: 1120 + keen::UiLocaTagReference stopAutomatedCraftingNext; // Offset: 1136 + keen::UiLocaTagReference changeAutomatedCraftingOuput; // Offset: 1152 + keen::UiLocaTagReference recipePin; // Offset: 1168 + keen::UiLocaTagReference recipeUnpin; // Offset: 1184 + keen::UiLocaTagReference showItemViewerTextArea; // Offset: 1200 + keen::UiLocaTagReference showItemViewerRecipeArea; // Offset: 1216 + keen::UiLocaTagReference toggleItemViewerRecipeView; // Offset: 1232 + keen::UiLocaTagReference activate; // Offset: 1248 + keen::UiLocaTagReference unlock; // Offset: 1264 + keen::UiLocaTagReference unlockNextPerk; // Offset: 1280 + keen::UiLocaTagReference rename; // Offset: 1296 + keen::UiLocaTagReference done; // Offset: 1312 + keen::UiLocaTagReference refillToInventory; // Offset: 1328 + keen::UiLocaTagReference refillFromInventory; // Offset: 1344 + keen::UiLocaTagReference increase; // Offset: 1360 + keen::UiLocaTagReference decrease; // Offset: 1376 + keen::UiLocaTagReference clear; // Offset: 1392 + keen::UiLocaTagReference selectSessionSettings; // Offset: 1408 + keen::UiLocaTagReference selectSavegame; // Offset: 1424 + keen::UiLocaTagReference selectServerFilter; // Offset: 1440 + keen::UiLocaTagReference selectServer; // Offset: 1456 + keen::UiLocaTagReference skip; // Offset: 1472 + keen::UiLocaTagReference select; // Offset: 1488 + keen::UiLocaTagReference next; // Offset: 1504 + keen::UiLocaTagReference create; // Offset: 1520 + keen::UiLocaTagReference continueAction; // Offset: 1536 + keen::UiLocaTagReference setActiveQuest; // Offset: 1552 + keen::UiLocaTagReference hidePassword; // Offset: 1568 + keen::UiLocaTagReference toggleFavourite; // Offset: 1584 + keen::UiLocaTagReference hideIPAddressInput; // Offset: 1600 + keen::UiLocaTagReference createMarker; // Offset: 1616 + keen::UiLocaTagReference removeMarker; // Offset: 1632 + keen::UiLocaTagReference togglePersonalProgression; // Offset: 1648 + keen::UiLocaTagReference activatePersonalProgression; // Offset: 1664 + keen::UiLocaTagReference deactivatePersonalProgression; // Offset: 1680 + keen::UiLocaTagReference search; // Offset: 1696 + keen::UiLocaTagReference expandToggle; // Offset: 1712 + keen::UiLocaTagReference toggleTooltip; // Offset: 1728 + keen::UiLocaTagReference toggleVisibility; // Offset: 1744 + keen::UiLocaTagReference change; // Offset: 1760 + keen::UiLocaTagReference kickPlayer; // Offset: 1776 + keen::UiLocaTagReference toggle; // Offset: 1792 + keen::UiLocaTagReference renameAltar; // Offset: 1808 + keen::UiLocaTagReference enable; // Offset: 1824 + keen::UiLocaTagReference disable; // Offset: 1840 + keen::UiLocaTagReference instrumentActionTuneIn; // Offset: 1856 + keen::UiLocaTagReference confirmPassword; // Offset: 1872 + keen::UiLocaTagReference resetToDefault; // Offset: 1888 + keen::UiLocaTagReference claimTwitchItem; // Offset: 1904 + keen::UiLocaTagReference swapArmor; // Offset: 1920 + keen::UiLocaTagReference swapVanity; // Offset: 1936 + keen::UiLocaTagReference equipCollection; // Offset: 1952 + keen::UiLocaTagReference unequipCollection; // Offset: 1968 + keen::UiLocaTagReference equipAsArmor; // Offset: 1984 + keen::UiLocaTagReference equipAsVanity; // Offset: 2000 +}; + +struct FbUiLocaLinks { + keen::UiLocaTagReference styleTest; // Offset: 0 + keen::UiLocaTagReference invalidUiString; // Offset: 16 + keen::UiLocaTagReference closedBetaHint; // Offset: 32 + keen::UiLocaTagReference demoSettingsHint; // Offset: 48 + keen::FbUiLocaRpgTerms rpgTerms; // Offset: 64 + keen::FbUiLocaGeneric genericStrings; // Offset: 5600 + keen::FbUiLocaPunctuations punctuations; // Offset: 5648 + keen::FbUiLocaUiActionLabels uiActions; // Offset: 5824 + keen::FbUiLocaGameplayActionLabels gameplayActions; // Offset: 7840 + keen::FbUiLocaInput inputStrings; // Offset: 9328 + keen::FbUiLocaHud hudStrings; // Offset: 9568 + keen::FbUiLocaInventory inventory; // Offset: 12320 + keen::FbUiLocaMenus menuStrings; // Offset: 14576 + keen::FbUiLocaCrafting crafting; // Offset: 23992 + keen::FbUiLocaItemEquipmentSlots itemEquipmentSlots; // Offset: 25032 +}; + +struct FbUiCharacterView { + keen::float3 lookAt; // Offset: 0 + keen::float32 distance; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 yaw; // Offset: 20 + keen::float32 fov; // Offset: 24 +}; + +enum class FbUiGamepadButtonImageTagId { + None = 0, + Dpad = 1, + DpadLeft = 2, + DpadRight = 3, + DpadUp = 4, + DpadDown = 5, + DpadVertical = 6, + DpadHorizontal = 7, + LeftStick = 8, + RightStick = 9, + LeftStickPress = 10, + RightStickPress = 11, + LeftStickUp = 12, + LeftStickDown = 13, + LeftStickLeft = 14, + LeftStickRight = 15, + LeftStickHorizontal = 16, + LeftStickVertical = 17, + RightStickUp = 18, + RightStickDown = 19, + RightStickLeft = 20, + RightStickRight = 21, + RightStickHorizontal = 22, + RightStickVertical = 23, + FaceTop = 24, + FaceBottom = 25, + FaceLeft = 26, + FaceRight = 27, + ShoulderLeftUpper = 28, + ShoulderLeftLower = 29, + ShoulderRightUpper = 30, + ShoulderRightLower = 31, + SystemLeft = 32, + SystemRight = 33, +}; + +struct FbUiGamepadButtonSet { + keen::UiTexture dpad; // Offset: 0 + keen::UiTexture dpadLeft; // Offset: 48 + keen::UiTexture dpadRight; // Offset: 96 + keen::UiTexture dpadUp; // Offset: 144 + keen::UiTexture dpadDown; // Offset: 192 + keen::UiTexture dpadVertical; // Offset: 240 + keen::UiTexture dpadHorizontal; // Offset: 288 + keen::UiTexture leftStick; // Offset: 336 + keen::UiTexture rightStick; // Offset: 384 + keen::UiTexture leftStickPress; // Offset: 432 + keen::UiTexture rightStickPress; // Offset: 480 + keen::UiTexture leftStickUp; // Offset: 528 + keen::UiTexture leftStickDown; // Offset: 576 + keen::UiTexture leftStickLeft; // Offset: 624 + keen::UiTexture leftStickRight; // Offset: 672 + keen::UiTexture leftStickDirectionalHorizontal; // Offset: 720 + keen::UiTexture leftStickDirectionalVertical; // Offset: 768 + keen::UiTexture rightStickUp; // Offset: 816 + keen::UiTexture rightStickDown; // Offset: 864 + keen::UiTexture rightStickLeft; // Offset: 912 + keen::UiTexture rightStickRight; // Offset: 960 + keen::UiTexture rightStickDirectionalHorizontal; // Offset: 1008 + keen::UiTexture rightStickDirectionalVertical; // Offset: 1056 + keen::UiTexture faceTop; // Offset: 1104 + keen::UiTexture faceBottom; // Offset: 1152 + keen::UiTexture faceLeft; // Offset: 1200 + keen::UiTexture faceRight; // Offset: 1248 + keen::UiTexture shoulderLeftUpper; // Offset: 1296 + keen::UiTexture shoulderLeftLower; // Offset: 1344 + keen::UiTexture shoulderRightUpper; // Offset: 1392 + keen::UiTexture shoulderRightLower; // Offset: 1440 + keen::UiTexture systemLeft; // Offset: 1488 + keen::UiTexture systemRight; // Offset: 1536 +}; + +struct UiColor { + keen::Color value; // Offset: 0 + keen::float32 intensity; // Offset: 4 +}; + +struct FbUiGamepadButtonSets { + keen::UiTexture controllerShape; // Offset: 0 + keen::UiTexture genericController; // Offset: 48 + keen::UiTexture controllerPlaystation; // Offset: 96 + keen::UiTexture controllerNintendoSwitch; // Offset: 144 + keen::UiTexture genericButtonsForms; // Offset: 192 + keen::UiTexture genericButtonsXABY; // Offset: 240 + keen::UiTexture genericButtonsYBAX; // Offset: 288 + keen::UiColor diagramKeyColor; // Offset: 336 + keen::FbUiGamepadButtonSet xbox; // Offset: 344 + keen::FbUiGamepadButtonSet playstation; // Offset: 1928 + keen::FbUiGamepadButtonSet nintendoSwitch; // Offset: 3512 + keen::UiTexture twoHeadedArrowHorizontal; // Offset: 5096 + keen::UiTexture twoHeadedArrowVertical; // Offset: 5144 +}; + +struct UiBorder { + keen::float32 left; // Offset: 0 + keen::float32 top; // Offset: 4 + keen::float32 right; // Offset: 8 + keen::float32 bottom; // Offset: 12 +}; + +struct UiNineSliceTexture { + keen::UiBorder border; // Offset: 48 +}; + +struct FbUiKeyboardKeys { + keen::UiTexture standardKey; // Offset: 0 + keen::UiNineSliceTexture nineSlicedKey; // Offset: 48 +}; + +struct FbUiKeyboardKeyLegends { + keen::UiTexture up; // Offset: 0 + keen::UiTexture down; // Offset: 48 + keen::UiTexture left; // Offset: 96 + keen::UiTexture right; // Offset: 144 +}; + +struct FbUiMouseHints { + keen::UiTexture left; // Offset: 0 + keen::UiTexture right; // Offset: 48 + keen::UiTexture middle; // Offset: 96 + keen::UiTexture button4; // Offset: 144 + keen::UiTexture button5; // Offset: 192 + keen::UiTexture wheel; // Offset: 240 + keen::UiTexture wheelUp; // Offset: 288 + keen::UiTexture wheelDown; // Offset: 336 + keen::UiTexture directionalContext; // Offset: 384 + keen::UiTexture move; // Offset: 432 + keen::UiTexture moveUp; // Offset: 480 + keen::UiTexture moveDown; // Offset: 528 + keen::UiTexture moveLeft; // Offset: 576 + keen::UiTexture moveRight; // Offset: 624 +}; + +struct FbUiGradients { + keen::UiTexture whiteToBlackTest; // Offset: 0 + keen::UiTexture alphaToRight; // Offset: 48 + keen::UiTexture alphaToBottom; // Offset: 96 + keen::UiTexture alphaToBottomRight; // Offset: 144 + keen::UiTexture alphaToTopBottom; // Offset: 192 + keen::UiTexture alphaToLeftRight; // Offset: 240 + keen::UiNineSliceTexture alphaToLeftRightSliced; // Offset: 288 +}; + +struct FbUiPrimitives { + keen::UiTexture circle; // Offset: 0 + keen::UiTexture circleOutline; // Offset: 48 + keen::UiTexture circleSoftGlow; // Offset: 96 + keen::UiTexture ringSoftGlow; // Offset: 144 + keen::UiTexture diamond; // Offset: 192 + keen::UiTexture triangle; // Offset: 240 + keen::UiTexture separatorLineHorizontal; // Offset: 288 + keen::UiTexture separatorLineHorizontalLeftHeavy; // Offset: 336 + keen::UiTexture separatorLineVertical; // Offset: 384 + keen::FbUiGradients gradients; // Offset: 432 + keen::UiNineSliceTexture boxInnerGlow; // Offset: 784 + keen::UiNineSliceTexture glowBoxSmall; // Offset: 848 + keen::UiNineSliceTexture glowBoxLarge; // Offset: 912 + keen::UiNineSliceTexture roundedBoxSmall; // Offset: 976 + keen::UiNineSliceTexture roundedBoxSmallOutline; // Offset: 1040 + keen::UiNineSliceTexture roundedBoxSmallOutlineThin; // Offset: 1104 + keen::UiNineSliceTexture roundedBoxOutlineBuildingZone; // Offset: 1168 +}; + +struct FbUiSocialLogos { + keen::UiTexture steam; // Offset: 0 + keen::UiTexture discord; // Offset: 48 + keen::UiTexture qq; // Offset: 96 + keen::UiTexture yooreka; // Offset: 144 + keen::UiTexture twitchText; // Offset: 192 + keen::UiTexture twitchIcon; // Offset: 240 +}; + +struct FbUiLoadingSymbol { + keen::float32 logoHeight; // Offset: 0 + keen::UiColor dotFadeColor; // Offset: 4 +}; + +struct FbUiStatusIcons { + keen::UiTexture happy; // Offset: 0 + keen::UiTexture sheltered; // Offset: 48 + keen::UiTexture bed; // Offset: 96 + keen::UiTexture food; // Offset: 144 + keen::UiTexture warmth; // Offset: 192 + keen::UiTexture location; // Offset: 240 + keen::UiTexture bedStandlone; // Offset: 288 + keen::UiTexture shelteredStandlone; // Offset: 336 + keen::UiTexture fullfilledNpcNeeds; // Offset: 384 +}; + +struct FbUiGenericIcons { + keen::UiTexture attention; // Offset: 0 + keen::UiTexture checkmark; // Offset: 48 + keen::UiTexture fulfilled; // Offset: 96 + keen::UiTexture unfulfilled; // Offset: 144 + keen::UiTexture missing; // Offset: 192 + keen::UiTexture weight; // Offset: 240 + keen::UiTexture pin; // Offset: 288 + keen::UiTexture menuAttentionMarker; // Offset: 336 + keen::UiTexture speechBubble; // Offset: 384 + keen::UiTexture speechBubbleImportant; // Offset: 432 + keen::UiTexture speechBubbleDotDotDot; // Offset: 480 + keen::UiTexture hudMarkerFill; // Offset: 528 + keen::UiTexture hudMarkerOutline; // Offset: 576 + keen::UiTexture hudMarkerQuestionMark; // Offset: 624 + keen::UiTexture warningTriangle; // Offset: 672 + keen::UiTexture forbidden; // Offset: 720 + keen::UiTexture store; // Offset: 768 + keen::UiTexture settings; // Offset: 816 + keen::UiTexture arrowRight; // Offset: 864 + keen::UiTexture arrowLeftRight; // Offset: 912 + keen::UiTexture locked; // Offset: 960 + keen::UiTexture star4; // Offset: 1008 + keen::UiTexture star5; // Offset: 1056 + keen::UiTexture itemRarity; // Offset: 1104 + keen::UiTexture privateGame; // Offset: 1152 + keen::UiTexture publicGame; // Offset: 1200 + keen::UiTexture joinGame; // Offset: 1248 + keen::UiTexture networkGood; // Offset: 1296 + keen::UiTexture networkAcceptable; // Offset: 1344 + keen::UiTexture networkBad; // Offset: 1392 + keen::UiTexture infinitySymbol; // Offset: 1440 + keen::UiTexture craftingCogwheel; // Offset: 1488 + keen::UiTexture craftingInactiveLayer; // Offset: 1536 + keen::UiTexture loadingIcon; // Offset: 1584 + keen::UiTexture friendServer; // Offset: 1632 + keen::UiTexture dedicatedServer; // Offset: 1680 + keen::UiTexture nonDedicatedServer; // Offset: 1728 + keen::UiTexture favouriteServerSet; // Offset: 1776 + keen::UiTexture favouriteServerUnset; // Offset: 1824 + keen::UiTexture hide; // Offset: 1872 + keen::UiTexture visible; // Offset: 1920 + keen::UiTexture hide_selected; // Offset: 1968 + keen::UiTexture visible_selected; // Offset: 2016 + keen::UiTexture externalLink; // Offset: 2064 + keen::UiTexture sort; // Offset: 2112 + keen::UiTexture moveStacks; // Offset: 2160 + keen::UiTexture moveAll; // Offset: 2208 + keen::UiTexture serverSettingProhibited; // Offset: 2256 + keen::UiTexture permissionKick; // Offset: 2304 + keen::UiTexture permissionEditBase; // Offset: 2352 + keen::UiTexture permissionUpgradeBase; // Offset: 2400 + keen::UiTexture permissionAccessStorage; // Offset: 2448 + keen::UiTexture pwOptional; // Offset: 2496 + keen::FbUiStatusIcons statusIcons; // Offset: 2544 +}; + +enum class FbUiCoverStyle { + None = 0, + NoneButKeepMenu = 1, + ImmediateBlack = 2, + LoadedToGame = 3, + RespawnToGame = 4, + TeleportToGame = 5, + GameToTeleport = 6, + DeathToRespawn = 7, + GameToDeath = 8, + ToTitleScreen = 9, +}; + +struct FbUiCoverTransition { + keen::FbUiCoverStyle coverStyle; // Offset: 0 + keen::uint32 changeCount; // Offset: 4 +}; + +struct FbUiCursors { + keen::UiColor lockonColor; // Offset: 0 + keen::UiTexture lockon; // Offset: 8 + keen::UiTexture bow; // Offset: 56 + keen::UiTexture bowFalloff; // Offset: 104 + keen::UiTexture spell; // Offset: 152 + keen::UiTexture spellArea; // Offset: 200 + keen::UiColor crosshairWarningColor; // Offset: 248 + keen::UiColor snappingReadyColor; // Offset: 256 + keen::UiColor snappingActiveColor; // Offset: 264 +}; + +struct UiSkillTreeNode { + keen::float2 pos; // Offset: 0 + keen::string name; // Offset: 8 + keen::uint32 i; // Offset: 16 + keen::bool isA; // Offset: 20 + keen::bool isL; // Offset: 21 +}; + +struct UiSkillTreeConnection { + keen::uint32 a; // Offset: 0 + keen::uint32 b; // Offset: 4 +}; + +struct UiSkillTree { + keen::BlobArray sList; // Offset: 0 + keen::BlobArray sConList; // Offset: 8 +}; + +struct FbUiInline3SkillDescriptions { + keen::string jumpAttack; // Offset: 0 + keen::string evadeAttack; // Offset: 8 + keen::string doubleJump; // Offset: 16 + keen::string attributeStrength; // Offset: 24 + keen::string attributeDexterity; // Offset: 32 + keen::string attributeIntelligence; // Offset: 40 +}; + +struct FbUiSkillTreeFallbackTexts { + keen::string activeSkillName; // Offset: 0 + keen::string activeSkillDesc; // Offset: 8 + keen::string attributeName; // Offset: 16 + keen::string attributeDesc; // Offset: 24 + keen::string passiveSkillName; // Offset: 32 + keen::string passiveSkillDesc; // Offset: 40 +}; + +struct FbUiSkillNode { + keen::float32 textureRadius; // Offset: 0 + keen::float32 glowScale; // Offset: 4 + keen::float32 contentRadius; // Offset: 8 + keen::float32 focusRadiusGrowth; // Offset: 12 + keen::UiTexture mutedForEA; // Offset: 16 + keen::UiTexture outOfReach; // Offset: 64 + keen::UiTexture inReach; // Offset: 112 + keen::UiTexture activated; // Offset: 160 + keen::UiTexture glow; // Offset: 208 +}; + +struct FbUiSkillNodes { + keen::UiTexture starter; // Offset: 0 + keen::float32 starterRadius; // Offset: 48 + keen::float32 skillIconScale; // Offset: 52 + keen::float32 skillIconSubjectTextureReferenceHeight; // Offset: 56 + keen::FbUiSkillNode attributes; // Offset: 60 + keen::FbUiSkillNode passiveSkill; // Offset: 316 + keen::FbUiSkillNode activeSkill; // Offset: 572 +}; + +struct FbUiSkillTreeLinkColors { + keen::UiColor activatedCore; // Offset: 0 + keen::UiColor activatedGlow; // Offset: 8 + keen::UiColor adjacent; // Offset: 16 + keen::UiColor adjacentHover; // Offset: 24 + keen::UiColor inactive; // Offset: 32 + keen::UiColor muted; // Offset: 40 +}; + +struct FbUiCanvasParallaxLayer { + keen::UiTexture texture; // Offset: 0 + keen::float2 sizeOnCanvas; // Offset: 48 + keen::float32 parallaxDistance; // Offset: 56 + keen::UiColor renderTint; // Offset: 60 +}; + +struct FbUiSkillGlowColor { + keen::UiColor idle; // Offset: 0 + keen::UiColor activated; // Offset: 8 +}; + +struct FbUiSkillGlowColors { + keen::FbUiSkillGlowColor mage; // Offset: 0 + keen::FbUiSkillGlowColor warrior; // Offset: 16 + keen::FbUiSkillGlowColor ranger; // Offset: 32 + keen::FbUiSkillGlowColor neutral; // Offset: 48 +}; + +struct UiSkillTreeClassHint { + keen::UiLocaTagReference label; // Offset: 0 + keen::bool isPrimary; // Offset: 16 + keen::UiColor color; // Offset: 20 + keen::sint32 directionDegrees; // Offset: 28 + keen::float32 distanceFromRing; // Offset: 32 +}; + +struct FbUiSkillTree { + keen::BlobArray zoomSteps; // Offset: 0 + keen::BlobArray bgLayers; // Offset: 8 + keen::FbUiCanvasParallaxLayer skillLayoutHelper; // Offset: 16 + keen::UiColor backgroundColor; // Offset: 84 + keen::FbUiSkillTreeLinkColors linkColors; // Offset: 92 + keen::UiTexture connectionDirectionalPulse; // Offset: 140 + keen::UiTexture connectionCore; // Offset: 188 + keen::UiTexture connectionCoreInactive; // Offset: 236 + keen::UiTexture connectionCoreOneWayStretch; // Offset: 284 + keen::UiTexture connectionCoreOneWayEnd; // Offset: 332 + keen::UiTexture connectionGlow; // Offset: 380 + keen::UiColor connectionPulseColorGeneric; // Offset: 428 + keen::UiTexture nodeHighlight; // Offset: 436 + keen::UiTexture cursorHighlight; // Offset: 484 + keen::FbUiSkillGlowColors glowColors; // Offset: 532 + keen::BlobArray classHints; // Offset: 596 + keen::UiColor mageKeyColor; // Offset: 604 + keen::UiColor warriorKeyColor; // Offset: 612 + keen::UiColor rangerKeyColor; // Offset: 620 + keen::UiColor neutralClassKeyColor; // Offset: 628 + keen::UiColor mutedOverlayColor; // Offset: 636 + keen::FbUiSkillNodes nodes; // Offset: 644 + keen::UiTexture centerRing; // Offset: 1472 + keen::float32 centerRingRadius; // Offset: 1520 + keen::FbUiSkillTreeFallbackTexts fallbackTexts; // Offset: 1524 +}; + +struct FbUiMapMarkerIcons { + keen::UiTexture waypoint; // Offset: 0 + keen::UiTexture playerCorpse; // Offset: 48 + keen::UiTexture playerCorpseInDungeon; // Offset: 96 + keen::UiTexture markerFrame; // Offset: 144 + keen::UiTexture markerSelector; // Offset: 192 + keen::UiTexture investigation; // Offset: 240 + keen::UiTexture investigationOpaque; // Offset: 288 + keen::UiTexture completed; // Offset: 336 + keen::UiTexture playerPing; // Offset: 384 + keen::UiTexture playerMarkerPing; // Offset: 432 + keen::UiColor playerPingColor; // Offset: 480 +}; + +enum class CustomMapMarkerColorScheme { + White = 0, + Red = 1, + Green = 2, + Blue = 3, + Yellow = 4, + Purple = 5, + Turquoise = 6, + Black = 7, + Count = 8, +}; + +struct FbUiCustomMarkerColorScheme { + keen::CustomMapMarkerColorScheme colorSchemeType; // Offset: 0 + keen::UiColor baseColor; // Offset: 4 + keen::UiColor iconColor; // Offset: 12 +}; + +struct FbUiCustomMapMarker { + keen::StaticArray colors; // Offset: 0 + keen::UiTexture markerBase; // Offset: 160 + keen::UiTexture customMarkerSelector; // Offset: 208 + keen::UiTexture customMarkerWaypoint; // Offset: 256 + keen::UiTexture customMarkerHighlight; // Offset: 304 +}; + +struct FbUiMapIsolineConfig { + keen::float32 thickness; // Offset: 0 + keen::float32 alpha; // Offset: 4 +}; + +struct FbUiMapZoomConfig { + keen::float32 zoomScale; // Offset: 0 + keen::StaticArray isolineConfigs; // Offset: 4 +}; + +struct FbUiMapInvestigationArea { + keen::UiTexture pattern; // Offset: 0 + keen::float32 tileSize; // Offset: 48 + keen::UiTexture mask; // Offset: 52 + keen::UiColor patternColor; // Offset: 100 + keen::UiColor bgColor; // Offset: 108 + keen::float2 alphaRange; // Offset: 116 + keen::float32 pulseCycleInSeconds; // Offset: 124 +}; + +struct FbUiAdventureMap { + keen::UiTexture playerPosition; // Offset: 0 + keen::UiColor currentPlayerColor; // Offset: 48 + keen::UiColor otherPlayerColor; // Offset: 56 + keen::float2 fogZoneAlphaRange; // Offset: 64 + keen::Time fogZonePulseLength; // Offset: 72 + keen::float32 outerCornerNominalSize; // Offset: 80 + keen::UiNineSliceTexture outerFrame; // Offset: 84 + keen::float32 frameInnerGradientNominalSize; // Offset: 148 + keen::UiNineSliceTexture frameInnerGradient; // Offset: 152 + keen::UiTexture cursorPiece; // Offset: 216 + keen::UiTexture offscreenIconBubble; // Offset: 264 + keen::UiTexture circularArea; // Offset: 312 + keen::UiTexture markerRipple; // Offset: 360 + keen::FbUiMapInvestigationArea investigation; // Offset: 408 + keen::FbUiMapMarkerIcons markerIcons; // Offset: 536 + keen::BlobArray zoomConfigs; // Offset: 1024 + keen::FbUiCustomMapMarker customMarkers; // Offset: 1032 +}; + +struct FbUiRecipeCategoryIcons { + keen::UiTexture swords; // Offset: 0 + keen::UiTexture ammo; // Offset: 48 + keen::UiTexture potion; // Offset: 96 + keen::UiTexture misc; // Offset: 144 + keen::UiTexture armor; // Offset: 192 + keen::UiTexture magical; // Offset: 240 +}; + +struct FbUiRecipeGroupDefinition { + keen::UiTexture icon; // Offset: 0 + keen::ItemTagReference tagRef; // Offset: 48 + keen::ItemCategory itemCategoryFallback; // Offset: 64 +}; + +struct FbUiCrafting { + keen::FbUiRecipeCategoryIcons categoryIcons; // Offset: 0 + keen::UiColor ingredientBgColorDefault; // Offset: 288 + keen::UiColor sufficientIngredientColor; // Offset: 296 + keen::UiColor insufficientIngredientColor; // Offset: 304 + keen::UiColor successFlashColor; // Offset: 312 + keen::UiTexture pinnedRecipeIcon; // Offset: 320 + keen::BlobArray groupDefinitions; // Offset: 368 + keen::BlobArray recipeSets; // Offset: 376 +}; + +struct FbUiRecipeSetFolder { +}; + +struct FbUiRecipeSet { +}; + +struct FbUiWorldEvents { +}; + +struct FbUiWorldEvent { + keen::HashKey32 eventId; // Offset: 0 + keen::UiTexture mainTexture; // Offset: 4 + keen::UiTexture ornament; // Offset: 52 + keen::UiColor initialColor; // Offset: 100 + keen::UiColor secondaryColor; // Offset: 108 + keen::UiColor rippleColor; // Offset: 116 + keen::float imageSize; // Offset: 124 + keen::SoundContainerReference sfx; // Offset: 128 + keen::UiLocaTagReference text; // Offset: 144 +}; + +enum class UiParagraphAlignment { + Left = 0, + Center = 1, + Right = 2, +}; + +struct UiParagraphStyle { + keen::string identifier; // Offset: 0 + keen::float32 leading; // Offset: 8 + keen::bool enableAlignment; // Offset: 12 + keen::UiParagraphAlignment alignment; // Offset: 13 + keen::float32 indentLeft; // Offset: 16 + keen::float32 indentRight; // Offset: 20 + keen::float32 lineSpacing; // Offset: 24 +}; + +struct FbUiMenuParagraphStyles { + keen::UiParagraphStyle loreReaderBody; // Offset: 0 +}; + +struct FbUiEquipmentBodyPartViews { + keen::FbUiCharacterView full; // Offset: 0 + keen::FbUiCharacterView head; // Offset: 28 + keen::FbUiCharacterView chest; // Offset: 56 + keen::FbUiCharacterView arm; // Offset: 84 + keen::FbUiCharacterView legs; // Offset: 112 + keen::FbUiCharacterView feet; // Offset: 140 + keen::FbUiCharacterView ring; // Offset: 168 +}; + +struct FbUiHudMenuMetrics { + keen::float32 lootingMenuWidth; // Offset: 0 + keen::float32 centerMessageBottomY; // Offset: 4 + keen::Time epicLootLeaveCenterDelay; // Offset: 8 + keen::FbUiEquipmentBodyPartViews equipmentBodyPartViews; // Offset: 16 +}; + +struct FbUiCustomizationViews { + keen::FbUiCharacterView fullBody; // Offset: 0 + keen::FbUiCharacterView head; // Offset: 28 + keen::FbUiCharacterView presetView; // Offset: 56 + keen::FbUiCharacterView hairView; // Offset: 84 + keen::FbUiCharacterView beardView; // Offset: 112 + keen::FbUiCharacterView hairColorView; // Offset: 140 +}; + +struct CharacterPresetObject { + keen::CharacterPresetObjectReference presetObject; // Offset: 0 + keen::UiTexture previewImage; // Offset: 16 +}; + +struct CharacterItemReferences { + keen::ItemReference itemReference; // Offset: 0 + keen::UiTexture previewImage; // Offset: 16 +}; + +struct FbUiCustomization { + keen::FbUiCustomizationViews characterViews; // Offset: 0 + keen::BlobArray presetObjects; // Offset: 168 + keen::BlobArray hairColors; // Offset: 176 + keen::BlobArray beardColors; // Offset: 184 + keen::BlobArray hairItems; // Offset: 192 + keen::BlobArray beardItems; // Offset: 200 + keen::BlobArray> eyeColors; // Offset: 208 + keen::BlobArray> eyeBrowColors; // Offset: 216 + keen::BlobArray> skinColors; // Offset: 224 + keen::BlobArray> voiceItems; // Offset: 232 +}; + +struct FbUiTileArtConfig { + keen::float2 pivot; // Offset: 0 + keen::float32 scaleTweak; // Offset: 8 + keen::UiTexture texture; // Offset: 12 +}; + +struct FbUiMenuTiles { + keen::float32 idleAlphaScale; // Offset: 0 + keen::float32 emptyContentAlphaScale; // Offset: 4 + keen::FbUiTileArtConfig lockedContent; // Offset: 8 + keen::FbUiTileArtConfig quests; // Offset: 68 + keen::FbUiTileArtConfig flame; // Offset: 128 + keen::FbUiTileArtConfig craftspeople; // Offset: 188 + keen::FbUiTileArtConfig townsfolk; // Offset: 248 + keen::FbUiTileArtConfig bases; // Offset: 308 + keen::FbUiTileArtConfig workshops; // Offset: 368 + keen::FbUiTileArtConfig lore; // Offset: 428 + keen::FbUiTileArtConfig tutorials; // Offset: 488 + keen::FbUiTileArtConfig altarUpgradeGeneric; // Offset: 548 + keen::BlobArray altarLevels; // Offset: 608 + keen::FbUiTileArtConfig flameUpgrade; // Offset: 616 + keen::FbUiTileArtConfig skilltree; // Offset: 676 +}; + +struct FbUiMenuButtonTextures { + keen::UiNineSliceTexture background; // Offset: 0 + keen::UiNineSliceTexture backgroundDestructive; // Offset: 64 + keen::UiNineSliceTexture backGlow; // Offset: 128 + keen::UiNineSliceTexture ornament; // Offset: 192 +}; + +struct UiCharacterStyleActivePropertyFlags { + keen::bool font; // Offset: 0 + keen::bool size; // Offset: 1 + keen::bool tracking; // Offset: 2 + keen::bool variant; // Offset: 3 + keen::bool uppercase; // Offset: 4 + keen::bool color; // Offset: 5 + keen::bool outline; // Offset: 6 + keen::bool dropShadow; // Offset: 7 +}; + +struct UiCharacterStyle { + keen::string identifier; // Offset: 0 + keen::UiCharacterStyleActivePropertyFlags activeProperties; // Offset: 8 + keen::ObjectReference font; // Offset: 16 + keen::float32 fontSize; // Offset: 32 + keen::float32 spacing; // Offset: 36 + keen::bool bold; // Offset: 40 + keen::bool italic; // Offset: 41 + keen::bool uppercase; // Offset: 42 + keen::UiColor color; // Offset: 44 + keen::bool outline; // Offset: 52 + keen::UiColor outlineColor; // Offset: 56 + keen::float32 outlineSize; // Offset: 64 + keen::bool dropShadow; // Offset: 68 + keen::UiColor dropShadowColor; // Offset: 72 + keen::float2 dropShadowOffset; // Offset: 80 +}; + +struct FbUiMenuButton { + keen::FbUiMenuButtonTextures standalone; // Offset: 0 + keen::FbUiMenuButtonTextures inGroupLeft; // Offset: 256 + keen::FbUiMenuButtonTextures inGroupMiddle; // Offset: 512 + keen::FbUiMenuButtonTextures inGroupRight; // Offset: 768 + keen::FbUiMenuButtonTextures standaloneSmall; // Offset: 1024 + keen::UiTexture sliderKnob; // Offset: 1280 + keen::UiCharacterStyle labelStyle; // Offset: 1328 + keen::UiColor ornamentTint; // Offset: 1416 + keen::UiColor destructiveTint; // Offset: 1424 + keen::UiColor textColorDestructive; // Offset: 1432 +}; + +struct FbUiMenuToggle { + keen::UiTexture toggleOn; // Offset: 0 + keen::UiTexture toggleOff; // Offset: 48 + keen::UiTexture backGlow; // Offset: 96 +}; + +struct FbUiMenuScrollbar { + keen::UiNineSliceTexture slider; // Offset: 0 + keen::UiNineSliceTexture range; // Offset: 64 + keen::UiColor rangeTint; // Offset: 128 +}; + +struct FbUiCharacterInventory { + keen::UiTexture levelBadgeBackground; // Offset: 0 + keen::float2 xpBarLevelBadgeSize; // Offset: 48 +}; + +struct FbUiMultiToolMenu { + keen::UiLocaTagReference materialHeader; // Offset: 0 + keen::UiLocaTagReference tooltipMaterialHint; // Offset: 16 + keen::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 32 + keen::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 48 + keen::UiLocaTagReference itemSubInfo; // Offset: 64 + keen::UiLocaTagReference preUseHint_QuickBuilder; // Offset: 80 + keen::UiLocaTagReference preUseHint_Terraformer; // Offset: 96 + keen::UiLocaTagReference preUseHint_NpcSummoner; // Offset: 112 + keen::UiLocaTagReference preUseHintHud_QuickBuilder; // Offset: 128 + keen::UiLocaTagReference preUseHintHud_Terraformer; // Offset: 144 + keen::UiLocaTagReference preUseHintHud_NpcSummoner; // Offset: 160 + keen::UiLocaTagReference noAltarBuild; // Offset: 176 + keen::UiLocaTagReference craftBlocksHint; // Offset: 192 + keen::UiLocaTagReference craftRoofBlocksHint; // Offset: 208 + keen::UiLocaTagReference collectMaterialsHint; // Offset: 224 + keen::UiLocaTagReference noMaterialsAvailable; // Offset: 240 + keen::UiLocaTagReference needsFlameAltarHint; // Offset: 256 + keen::UiColor antiTofuTint_Temp; // Offset: 272 +}; + +struct FbUiEquipmentSlotIcons { + keen::UiTexture mainHand; // Offset: 0 + keen::UiTexture shield; // Offset: 48 + keen::UiTexture backpackExtender; // Offset: 96 + keen::UiTexture rangedWeapon; // Offset: 144 + keen::UiTexture arrow; // Offset: 192 + keen::UiTexture spell; // Offset: 240 + keen::UiTexture wallClimber; // Offset: 288 + keen::UiTexture hookshot; // Offset: 336 + keen::UiTexture glider; // Offset: 384 + keen::UiTexture accessory; // Offset: 432 + keen::UiTexture ring; // Offset: 480 + keen::UiTexture head; // Offset: 528 + keen::UiTexture upperBody; // Offset: 576 + keen::UiTexture arms; // Offset: 624 + keen::UiTexture lowerBody; // Offset: 672 + keen::UiTexture boots; // Offset: 720 + keen::UiTexture vanity; // Offset: 768 +}; + +struct FbUiPerkIcons { + keen::UiTexture nodeOutline; // Offset: 0 + keen::UiTexture genericAttributeNode; // Offset: 48 +}; + +struct FbUiFancyBox { + keen::float32 cornerSize; // Offset: 0 + keen::UiNineSliceTexture frame; // Offset: 4 + keen::UiNineSliceTexture frameSimple; // Offset: 68 + keen::UiColor frameColor; // Offset: 132 + keen::UiNineSliceTexture backgroundShape; // Offset: 140 + keen::UiNineSliceTexture backgroundShapeHalved; // Offset: 204 + keen::UiNineSliceTexture backgroundShapeGlassMask; // Offset: 268 + keen::UiNineSliceTexture backgroundShapeHalvedGlassMask; // Offset: 332 + keen::UiColor backgroundColor; // Offset: 396 + keen::UiColor backgroundColorDark; // Offset: 404 + keen::UiTexture backgroundPattern; // Offset: 412 + keen::UiColor backgroundPatternColor; // Offset: 460 + keen::float32 patternSize; // Offset: 468 + keen::UiNineSliceTexture frameFull; // Offset: 472 + keen::UiNineSliceTexture backgroundShapeFrameFull; // Offset: 536 + keen::UiNineSliceTexture backgroundShapeGradientToLeft; // Offset: 600 + keen::UiNineSliceTexture backgroundShapeGradientToTop; // Offset: 664 + keen::UiNineSliceTexture frameFullSimple; // Offset: 728 + keen::UiNineSliceTexture backgroundShapeFrameFullSimple; // Offset: 792 + keen::UiNineSliceTexture frameTopMinimal; // Offset: 856 + keen::UiNineSliceTexture backgroundShapeTopMinimal; // Offset: 920 + keen::UiNineSliceTexture frameFullDetailed; // Offset: 984 + keen::UiNineSliceTexture backgroundShapeFrameFullDetailed; // Offset: 1048 +}; + +struct FbUiFancyLoadingBar { + keen::UiNineSliceTexture background; // Offset: 0 + keen::UiNineSliceTexture bar; // Offset: 64 + keen::UiNineSliceTexture glow; // Offset: 128 + keen::UiColor sectionCompletedColor; // Offset: 192 +}; + +struct UiVector { + keen::float32 x; // Offset: 0 + keen::float32 y; // Offset: 4 +}; + +typedef keen::UiVector UiSize; + +struct FbUiMenuExplainer { + keen::UiColor darkenerColor; // Offset: 0 + keen::float32 areaFeatherSize; // Offset: 8 + keen::UiSize areaContentPadding; // Offset: 12 + keen::float32 textMaxWidth; // Offset: 20 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiJournalBaseInfo { + keen::UiTexture iconFlameAltar; // Offset: 0 + keen::UiTexture iconNpc; // Offset: 48 + keen::UiTexture iconNpcBed; // Offset: 96 + keen::UiTexture iconAnimal; // Offset: 144 +}; + +struct FbUiCodexAssets { + keen::UiTexture questSourceIconBG; // Offset: 0 + keen::UiTexture repeatedQuestSourceIconBG; // Offset: 48 + keen::UiTexture questIconFlame; // Offset: 96 + keen::UiTexture questIconBlacksmith; // Offset: 144 + keen::UiTexture questIconAlchemist; // Offset: 192 + keen::UiTexture questIconHunter; // Offset: 240 + keen::UiTexture questIconCarpenter; // Offset: 288 + keen::UiTexture questIconFarmer; // Offset: 336 + keen::UiTexture questIconCryptKeeper; // Offset: 384 + keen::UiTexture questIconBard; // Offset: 432 + keen::UiTexture questIconMisc; // Offset: 480 + keen::UiTexture questIconTexture; // Offset: 528 + keen::UiTexture questProgressEmpty; // Offset: 576 + keen::UiTexture questProgressFilled; // Offset: 624 + keen::UiTexture questCheckmark; // Offset: 672 + keen::UiTexture lorePageFound; // Offset: 720 + keen::UiTexture lorePageLocked; // Offset: 768 + keen::UiTexture activeQuestIndicator; // Offset: 816 + keen::UiTexture lockedLoreTileImage; // Offset: 864 + keen::UiColor completedQuestsColor; // Offset: 912 + keen::UiColor flameQuestEntryColor; // Offset: 920 + keen::UiColor npcQuestEntryColor; // Offset: 928 + keen::UiColor miscQuestEntryColor; // Offset: 936 + keen::UiColor repeatedQuestEntryColor; // Offset: 944 + keen::FbUiJournalBaseInfo baseInfo; // Offset: 952 +}; + +struct FbUiLoreCategory { + keen::UiLocaTagReference categoryName; // Offset: 0 + keen::FbUiTileArtConfig artConfig; // Offset: 16 +}; + +struct FbUiMenuAttributeTabs { + keen::UiTexture basicsTab; // Offset: 0 + keen::UiTexture damageTab; // Offset: 48 + keen::UiTexture resistanceTab; // Offset: 96 +}; + +struct FbUiCollectionCategoryInfo { + keen::ObjectReference category; // Offset: 0 + keen::UiLocaTagReference label; // Offset: 16 + keen::UiTexture icon; // Offset: 32 +}; + +struct FbUiDifficultyOptionValue { + keen::bool isAvailable; // Offset: 0 + keen::BlobArray steps; // Offset: 4 +}; + +struct FbUiDifficultyOptionValues { + keen::FbUiDifficultyOptionValue enemyDamage; // Offset: 0 + keen::FbUiDifficultyOptionValue enemyHealth; // Offset: 12 + keen::FbUiDifficultyOptionValue enemyStamina; // Offset: 24 + keen::FbUiDifficultyOptionValue enemyPerceptionRange; // Offset: 36 + keen::FbUiDifficultyOptionValue enemyAttackFrequency; // Offset: 48 + keen::FbUiDifficultyOptionValue bossHealth; // Offset: 60 + keen::FbUiDifficultyOptionValue bossDamage; // Offset: 72 + keen::FbUiDifficultyOptionValue miningXp; // Offset: 84 + keen::FbUiDifficultyOptionValue questXp; // Offset: 96 + keen::FbUiDifficultyOptionValue combatXp; // Offset: 108 + keen::FbUiDifficultyOptionValue playerHealth; // Offset: 120 + keen::FbUiDifficultyOptionValue playerStamina; // Offset: 132 + keen::FbUiDifficultyOptionValue playerMana; // Offset: 144 + keen::FbUiDifficultyOptionValue shroudTime; // Offset: 156 + keen::FbUiDifficultyOptionValue durability; // Offset: 168 + keen::FbUiDifficultyOptionValue dayTime; // Offset: 180 + keen::FbUiDifficultyOptionValue nightTime; // Offset: 192 + keen::FbUiDifficultyOptionValue foodDuration; // Offset: 204 + keen::FbUiDifficultyOptionValue productionTime; // Offset: 216 + keen::FbUiDifficultyOptionValue plantGrowTime; // Offset: 228 + keen::FbUiDifficultyOptionValue weaponUpgradeCost; // Offset: 240 + keen::FbUiDifficultyOptionValue perkUpgradeRecyclingFactor; // Offset: 252 + keen::FbUiDifficultyOptionValue worldRefreshTime; // Offset: 264 + keen::FbUiDifficultyOptionValue miningDamage; // Offset: 276 + keen::FbUiDifficultyOptionValue dropAmount; // Offset: 288 + keen::FbUiDifficultyOptionValue starvingTime; // Offset: 300 + keen::FbUiDifficultyOptionValue bodyHeat; // Offset: 312 + keen::bool tombstoneMode; // Offset: 324 + keen::bool randomSpawnerAmount; // Offset: 325 + keen::bool aggroPoolAmount; // Offset: 326 + keen::bool enableDurability; // Offset: 327 + keen::bool enableStarvingDebuff; // Offset: 328 + keen::bool pacifyAllEnemies; // Offset: 329 + keen::bool weatherFrequency; // Offset: 330 + keen::bool enableGliderTurbulences; // Offset: 331 + keen::bool tamingStartleRepercussion; // Offset: 332 +}; + +struct FbUiDifficultyPreset { + keen::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::UiLocaTagReference label; // Offset: 4 + keen::UiLocaTagReference desc; // Offset: 20 + keen::UiTexture iconSelected; // Offset: 36 + keen::UiTexture iconUnelected; // Offset: 84 + keen::UiTexture iconSmall; // Offset: 132 + keen::ecs::GameSettings settings; // Offset: 184 +}; + +struct FbUiDifficultySettings { + keen::FbUiDifficultyOptionValues settingValues; // Offset: 0 + keen::FbUiDifficultyPreset presetDefault; // Offset: 336 + keen::FbUiDifficultyPreset presetBuilder; // Offset: 648 + keen::FbUiDifficultyPreset presetSurvivalist; // Offset: 960 + keen::FbUiDifficultyPreset presetCombatChallenge; // Offset: 1272 + keen::FbUiDifficultyPreset custom; // Offset: 1584 + keen::UiTexture presetIconHighlight; // Offset: 1896 +}; + +struct FbUiMenu { + keen::FbUiHudMenuMetrics metrics; // Offset: 0 + keen::FbUiMenuParagraphStyles paragraphStyles; // Offset: 216 + keen::FbUiCharacterInventory characterInventory; // Offset: 244 + keen::FbUiSkillTree skilltree; // Offset: 300 + keen::FbUiAdventureMap map; // Offset: 1872 + keen::FbUiCrafting crafting; // Offset: 3256 + keen::BlobArray collectionCategories; // Offset: 3640 + keen::FbUiMultiToolMenu multiTool; // Offset: 3648 + keen::FbUiEquipmentSlotIcons equipmentSlots; // Offset: 3928 + keen::FbUiPerkIcons itemPerkIcons; // Offset: 4744 + keen::FbUiMenuAttributeTabs attributeTabs; // Offset: 4840 + keen::FbUiMenuTiles menuTiles; // Offset: 4984 + keen::UiTexture codexMotherflameIllustration; // Offset: 5720 + keen::FbUiCodexAssets codexAssets; // Offset: 5768 + keen::BlobArray loreCategories; // Offset: 6912 + keen::FbUiMenuButton button; // Offset: 6920 + keen::FbUiMenuToggle toggle; // Offset: 8360 + keen::FbUiMenuScrollbar scrollbar; // Offset: 8504 + keen::FbUiFancyLoadingBar loadingBar; // Offset: 8640 + keen::UiColor frostedGlassDefaultTint; // Offset: 8840 + keen::UiColor backgroundDarkenerColor; // Offset: 8848 + keen::UiNineSliceTexture topTabBackground; // Offset: 8856 + keen::UiColor tabLabelIdleColor; // Offset: 8920 + keen::UiColor tabLabelHighlightColor; // Offset: 8928 + keen::UiColor tabHighlightColor; // Offset: 8936 + keen::UiNineSliceTexture tabHighlight; // Offset: 8944 + keen::UiColor basicWidgetColor; // Offset: 9008 + keen::UiColor basicWidgetColorHighlighted; // Offset: 9016 + keen::UiColor tileBackgroundColor; // Offset: 9024 + keen::UiColor tileHighlightOutlineColor; // Offset: 9032 + keen::UiNineSliceTexture basicWidgetMinimizedShape; // Offset: 9040 + keen::UiNineSliceTexture basicWidgetBackground; // Offset: 9104 + keen::UiNineSliceTexture basicWidgetBackgroundWide; // Offset: 9168 + keen::UiNineSliceTexture basicWidgetBackgroundLarge; // Offset: 9232 + keen::UiNineSliceTexture basicWidgetBackgroundFaded; // Offset: 9296 + keen::UiNineSliceTexture basicWidgetHeader; // Offset: 9360 + keen::UiNineSliceTexture basicWidgetRarityStripe; // Offset: 9424 + keen::UiNineSliceTexture basicWidgetHighlightOutline; // Offset: 9488 + keen::FbUiFancyBox fancyBox; // Offset: 9552 + keen::UiNineSliceTexture pillWidgetBackground; // Offset: 10664 + keen::UiTexture flameIcon; // Offset: 10728 + keen::UiTexture moveStacksLeftIcon; // Offset: 10776 + keen::UiTexture moveStacksRightIcon; // Offset: 10824 + keen::UiTexture iconPlayerInventory; // Offset: 10872 + keen::UiTexture iconStorageInventory; // Offset: 10920 + keen::UiTexture iconOpenInventoryTransactions; // Offset: 10968 + keen::UiTexture spatialFactoryInfoBg; // Offset: 11016 + keen::UiTexture actionbarTutorialKeyImage; // Offset: 11064 + keen::UiTexture fancyToggleSmallOff; // Offset: 11112 + keen::UiTexture fancyToggleSmallOn; // Offset: 11160 + keen::FbUiMenuExplainer explainer; // Offset: 11208 +}; + +struct FbUiItemSlotFrame { + keen::UiTexture shapeBase; // Offset: 0 + keen::UiTexture shapeSubtle; // Offset: 48 + keen::UiTexture outline; // Offset: 96 +}; + +struct FbUiItemSlotMinimal { + keen::UiTexture cookable; // Offset: 0 + keen::UiTexture uncookable; // Offset: 48 + keen::UiTexture empty; // Offset: 96 +}; + +struct FbUiItemEquipIndicator { + keen::UiLocaTagReference label; // Offset: 0 + keen::UiTexture texture; // Offset: 16 + keen::UiColor color; // Offset: 64 + keen::bool useFrame; // Offset: 72 +}; + +struct FbUiItemStackProperties { + keen::UiTexture isNew; // Offset: 0 + keen::UiTexture equippableFrame; // Offset: 48 + keen::UiTexture equipMissingHint; // Offset: 96 + keen::UiLocaTagReference initialEquipActionMessage; // Offset: 144 + keen::UiLocaTagReference labelEquipped; // Offset: 160 + keen::UiLocaTagReference labelUnequipped; // Offset: 176 + keen::FbUiItemEquipIndicator actionBarHighlight; // Offset: 192 + keen::FbUiItemEquipIndicator instaUse; // Offset: 268 + keen::FbUiItemEquipIndicator armor; // Offset: 344 + keen::FbUiItemEquipIndicator vanityArmor; // Offset: 420 + keen::FbUiItemEquipIndicator rangedWeapon; // Offset: 496 + keen::FbUiItemEquipIndicator arrow; // Offset: 572 + keen::FbUiItemEquipIndicator spell; // Offset: 648 + keen::FbUiItemEquipIndicator blueprintDefaultShape; // Offset: 724 + keen::FbUiItemEquipIndicator blueprintDefaultMaterial; // Offset: 800 + keen::FbUiItemEquipIndicator blueprintRoofShape; // Offset: 876 + keen::FbUiItemEquipIndicator blueprintRoofMaterial; // Offset: 952 + keen::FbUiItemEquipIndicator blueprintTerrainShape; // Offset: 1028 + keen::FbUiItemEquipIndicator blueprintTerrainMaterial; // Offset: 1104 + keen::FbUiItemEquipIndicator missingTwitchPermission; // Offset: 1180 + keen::UiColor durabilityColorDefault; // Offset: 1256 + keen::UiColor durabilityColorLow; // Offset: 1264 + keen::UiColor durabilityColorDraining; // Offset: 1272 + keen::UiColor durabilityColorDrainingLow; // Offset: 1280 +}; + +struct FbUiItemSlot { + keen::FbUiItemStackProperties properties; // Offset: 0 + keen::FbUiItemSlotFrame backpack; // Offset: 1288 + keen::FbUiItemSlotMinimal minimal; // Offset: 1432 + keen::UiCharacterStyle countNumberStyle; // Offset: 1576 + keen::UiColor grabAmountColor; // Offset: 1664 + keen::UiColor backgroundColor; // Offset: 1672 + keen::UiColor backgroundColorBright; // Offset: 1680 + keen::UiTexture actionbarPageInactive; // Offset: 1688 + keen::UiTexture actionbarPageActive; // Offset: 1736 + keen::UiTexture pageHint; // Offset: 1784 + keen::UiTexture blueprintBackground; // Offset: 1832 + keen::UiTexture blueprintTypeIconMini; // Offset: 1880 + keen::UiTexture blueprintIntroItemIcon; // Offset: 1928 +}; + +struct FbUiBlueprint { + keen::UiLocaTagReference introRecipeName; // Offset: 0 + keen::UiLocaTagReference introRecipeDescription1; // Offset: 16 + keen::UiLocaTagReference introRecipeDescription2; // Offset: 32 + keen::UiLocaTagReference introItemSubinfo; // Offset: 48 + keen::UiLocaTagReference introItemEmptyHint; // Offset: 64 + keen::UiLocaTagReference introItemUsageHint; // Offset: 80 + keen::UiLocaTagReference materialHeader; // Offset: 96 + keen::UiLocaTagReference tooltipMaterialHint; // Offset: 112 + keen::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 128 + keen::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 144 + keen::UiColor antiTofuTint_Temp; // Offset: 160 +}; + +struct FbUiBuffIcons { + keen::UiTexture circularBarMask; // Offset: 0 + keen::UiColor frameColor; // Offset: 48 + keen::UiColor pieFillColor; // Offset: 56 + keen::UiColor pieFillColorHungry; // Offset: 64 + keen::UiColor pieFillColorStarving; // Offset: 72 + keen::UiColor pieLineColor; // Offset: 80 + keen::UiTexture extremeCold; // Offset: 88 + keen::UiTexture extremeHeat; // Offset: 136 + keen::UiTexture restedConditionsBracket; // Offset: 184 +}; + +struct FbUiAnimatedHealthBarColors { + keen::UiColor frameColor; // Offset: 0 + keen::UiColor rangeColor; // Offset: 8 + keen::UiColor fillColor; // Offset: 16 + keen::UiColor fillEndColor; // Offset: 24 + keen::UiColor damageColor; // Offset: 32 + keen::UiColor healColor; // Offset: 40 +}; + +struct FbUiHudBuffDisplay { + keen::float2 textEntriesOffset; // Offset: 0 + keen::float32 offsetY; // Offset: 8 + keen::float32 iconColumnsDistance; // Offset: 12 + keen::float32 restedAnchorSize; // Offset: 16 + keen::float2 restedBarPieceSize; // Offset: 20 +}; + +struct FbUiHudPlayerStatus { + keen::float2 widgetBaseOffset; // Offset: 0 + keen::float4 flameWarningThresholds; // Offset: 8 + keen::FbUiHudBuffDisplay buffDisplay; // Offset: 24 + keen::UiNineSliceTexture barBackground; // Offset: 52 + keen::float4 barBorderThickness; // Offset: 116 + keen::float2 barGroupOffset; // Offset: 132 + keen::float2 xpBarSize; // Offset: 140 + keen::float2 xpBarOffset; // Offset: 148 + keen::float32 xpBarDisplayTime; // Offset: 156 + keen::float2 healthBarSize; // Offset: 160 + keen::float2 manaBarSize; // Offset: 168 + keen::UiTexture staminaCircleMain; // Offset: 176 + keen::UiTexture staminaCircleBuff; // Offset: 224 + keen::UiTexture staminaCircleInner; // Offset: 272 + keen::BlobArray staminaCirlceSizesInner; // Offset: 320 + keen::BlobArray staminaCirlceSizesOuter; // Offset: 328 + keen::FbUiAnimatedHealthBarColors xpColors; // Offset: 336 + keen::FbUiAnimatedHealthBarColors healthColors; // Offset: 384 + keen::FbUiAnimatedHealthBarColors staminaColors; // Offset: 432 + keen::FbUiAnimatedHealthBarColors manaColors; // Offset: 480 +}; + +struct FbUiAltarAttentionMarkerAnim { + keen::Time altarAttentionMarkerFadeIn; // Offset: 0 + keen::Time altarAttentionMarkerFadeOut; // Offset: 8 + keen::Time altarAttentionMarkerSecondPingDelay; // Offset: 16 + keen::Time altarAttentionMarkerAnimDelay; // Offset: 24 + keen::float32 altarAttentionMarkerGrow; // Offset: 32 + keen::float32 altarAttentionMarkerPingSize; // Offset: 36 + keen::float32 altarAttentionMarkerMinAlpha; // Offset: 40 + keen::float32 altarAttentionMarkerPingStartAlpha; // Offset: 44 + keen::float32 altarAttentionMarkerPingEndAlpha; // Offset: 48 +}; + +struct FbUiHUDSpatial { + keen::UiTexture lockonBackground; // Offset: 0 + keen::UiTexture lockonArrow; // Offset: 48 + keen::float32 lockonArrowSize; // Offset: 96 + keen::UiNineSliceTexture healthBar; // Offset: 100 + keen::UiTexture critIndicator; // Offset: 164 + keen::float2 critIndcatorOffset; // Offset: 212 + keen::float32 bonusIndicatorUnitHeight; // Offset: 220 + keen::UiTexture bonusIndicator; // Offset: 224 + keen::UiTexture malusIndicator; // Offset: 272 + keen::float2 bonusGroupOffset; // Offset: 320 + keen::float2 malusGroupOffset; // Offset: 328 + keen::float2 symbolOffset; // Offset: 336 + keen::float2 enemyHealthBarSize; // Offset: 344 + keen::float2 enemyStaminaBarSize; // Offset: 352 + keen::float2 enemyBarGroupBorder; // Offset: 360 + keen::UiColor damageTextBonusFill; // Offset: 368 + keen::UiColor damageTextBonusOutlineFrom; // Offset: 376 + keen::UiColor damageTextBonusOutlineTo; // Offset: 384 + keen::UiColor damageTextMalusFill; // Offset: 392 + keen::UiColor damageTextMalusOutlineFrom; // Offset: 400 + keen::UiColor damageTextMalusOutlineTo; // Offset: 408 + keen::UiColor attentionMarkerQuestionFill; // Offset: 416 + keen::UiColor attentionMarkerFlameInfoFill; // Offset: 424 + keen::FbUiAnimatedHealthBarColors coPlayerHealthColors; // Offset: 432 + keen::UiColor coPlayerLevelBadgeFill; // Offset: 480 + keen::UiColor coPlayerLevelBadgeOutline; // Offset: 488 + keen::UiColor enemyLevelBadgeFill; // Offset: 496 + keen::UiColor enemyLevelBadgeOutline; // Offset: 504 + keen::FbUiAnimatedHealthBarColors enemyHealthColors; // Offset: 512 + keen::FbUiAnimatedHealthBarColors enemyStaminaColors; // Offset: 560 + keen::UiColor enemyHigherLevelBadgeFill; // Offset: 608 + keen::UiColor enemyHigherLevelBadgeOutline; // Offset: 616 + keen::FbUiAnimatedHealthBarColors enemyHigherLevelHealthColors; // Offset: 624 + keen::FbUiAnimatedHealthBarColors neutralHealthColors; // Offset: 672 + keen::UiColor neutralLevelBadgeFill; // Offset: 720 + keen::UiColor neutralLevelBadgeOutline; // Offset: 728 + keen::FbUiAltarAttentionMarkerAnim altarAttentionMarkerAnim; // Offset: 736 + keen::UiTexture hookshotPullTargetIcon; // Offset: 792 + keen::UiTexture hookshotPullTargetIconLockIn; // Offset: 840 +}; + +struct FbUiHudBuildModeHint { + keen::UiTexture slotArc; // Offset: 0 + keen::UiTexture flashGradient; // Offset: 48 + keen::UiTexture flashMask; // Offset: 96 + keen::UiColor flashColor; // Offset: 144 +}; + +struct FbUiHudTopNotification { + keen::UiColor bgTintColor; // Offset: 0 + keen::UiColor accentColor; // Offset: 8 + keen::float32 barMinWidth; // Offset: 16 + keen::float32 featherWidth; // Offset: 20 + keen::float32 fadeWaveWidth; // Offset: 24 + keen::float32 fadeInFromX; // Offset: 28 + keen::float32 offsetY; // Offset: 32 + keen::float32 offsetYinPlayerMenu; // Offset: 36 +}; + +struct FbUiHudLowHealth { + keen::UiTexture vignette; // Offset: 0 + keen::UiColor vignetteColor; // Offset: 48 + keen::UiColor enterLowHealthFlashColor; // Offset: 56 +}; + +struct FbUiHudFreezing { + keen::UiTexture frostBorderCorner; // Offset: 0 + keen::float32 frostBorderCornerHeightTop; // Offset: 48 + keen::float32 frostBorderCornerHeightBottom; // Offset: 52 + keen::UiTexture frostBorderTop; // Offset: 56 + keen::UiTexture creepInGradientTop; // Offset: 104 + keen::float32 frostBorderHeightTop; // Offset: 152 + keen::UiTexture frostBorderLeft; // Offset: 156 + keen::UiTexture creepInGradientLeft; // Offset: 204 + keen::float32 frostBorderHeightBottom; // Offset: 252 + keen::float32 frostBorderWidthLeftRight; // Offset: 256 + keen::UiColor frostBorderTint; // Offset: 260 + keen::float32 bgBlurCenterYratio; // Offset: 268 + keen::UiTexture bgBlurVignetteTopLeft; // Offset: 272 + keen::UiTexture bgBlurVignetteTop; // Offset: 320 + keen::UiTexture bgBlurVignetteLeft; // Offset: 368 + keen::float32 bgBlurCornerWidth; // Offset: 416 + keen::float32 bgBlurCornerHeightTop; // Offset: 420 + keen::float32 bgBlurCornerHeightBottom; // Offset: 424 + keen::UiColor bgBlurTint; // Offset: 428 + keen::float32 idleAlpha; // Offset: 436 + keen::float2 criticalAlpha; // Offset: 440 +}; + +struct FbUiControlScheme { + keen::UiTexture game; // Offset: 0 + keen::UiTexture build; // Offset: 48 +}; + +struct FbUiHudBarrierUnlock { + keen::float32 backgroundSize; // Offset: 0 + keen::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::UiTexture backgroundOrnament; // Offset: 52 + keen::UiTexture ornamentHighlight; // Offset: 100 + keen::UiColor backgroundColor; // Offset: 148 + keen::UiColor highlightColor; // Offset: 156 + keen::UiColor glowRippleColor; // Offset: 164 + keen::Time lootDelay; // Offset: 176 +}; + +struct FbUiHudMessage { + keen::float32 backgroundSize; // Offset: 0 + keen::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::UiTexture backgroundOrnament; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 100 + keen::float32 badgeSize; // Offset: 108 + keen::UiColor badgeColor; // Offset: 112 + keen::UiColor glowRippleColor; // Offset: 120 + keen::Time messageDelay; // Offset: 128 + keen::Time lootDelay; // Offset: 136 +}; + +struct FbUiHudPartyHealth { + keen::float32 widgetGroupOffsetY; // Offset: 0 + keen::UiColor barFillColor; // Offset: 4 + keen::UiColor barBgColor; // Offset: 12 + keen::float2 barSize; // Offset: 20 + keen::float32 barSpacing; // Offset: 28 +}; + +struct FbUiHudServerPerformance { + keen::Time badPerformanceHintDuration; // Offset: 0 + keen::Time badPerformanceHintInterval; // Offset: 8 + keen::Time criticalPerformanceHintDuration; // Offset: 16 + keen::Time criticalPerformanceHintInterval; // Offset: 24 + keen::UiColor badPerformanceBgColor; // Offset: 32 + keen::UiColor badPerformanceTextColor; // Offset: 40 + keen::UiColor criticalPerformanceBgColor; // Offset: 48 + keen::UiColor criticalPerformanceTextColor; // Offset: 56 +}; + +struct FbUiHudOutOfBound { + keen::UiColor coverColor; // Offset: 0 + keen::UiLocaTagReference messageString; // Offset: 8 + keen::UiCharacterStyle messageStyle; // Offset: 24 + keen::UiCharacterStyle countdownStyle; // Offset: 112 +}; + +struct FbUiHudNightSpeed { + keen::UiColor bgColor; // Offset: 0 + keen::UiColor iconColor; // Offset: 8 + keen::UiTexture sleeper; // Offset: 16 + keen::UiTexture partyMember; // Offset: 64 + keen::UiTexture nightSpeed; // Offset: 112 +}; + +struct FbUiHudGameProgressSummary { + keen::Time visibleDuration; // Offset: 0 + keen::UiColor bgColor; // Offset: 8 + keen::UiColor accentColor; // Offset: 16 + keen::float32 featherWidth; // Offset: 24 + keen::float32 widgetWidth; // Offset: 28 + keen::UiColor contentTintFlame; // Offset: 32 + keen::UiColor contentTintCrafting; // Offset: 40 + keen::UiTexture illustrationFlame; // Offset: 48 + keen::UiTexture illustrationCrafting; // Offset: 96 +}; + +struct FbUiHudMusicBuff { + keen::UiTexture musicIcon; // Offset: 0 + keen::UiColor barBgColor; // Offset: 48 + keen::UiColor barFillColor; // Offset: 56 + keen::UiColor barFillEndColor; // Offset: 64 +}; + +struct FbUiHudAnimalTaming { + keen::UiTexture tamingIconEmpty; // Offset: 0 + keen::UiTexture tamingIconPending; // Offset: 48 + keen::UiTexture tamingIconFull; // Offset: 96 + keen::UiTexture tamingAttention; // Offset: 144 + keen::UiTexture tamingAlert; // Offset: 192 + keen::UiTexture tamingAlertOutline; // Offset: 240 + keen::UiColor tamingIconColor; // Offset: 288 +}; + +struct FbUiItemWheel { + keen::UiColor slotColor_idle; // Offset: 0 + keen::UiColor slotColor_selected; // Offset: 8 + keen::UiColor previewCenterColor; // Offset: 16 + keen::UiTexture background; // Offset: 24 + keen::UiTexture direction; // Offset: 72 + keen::UiTexture dot_selected; // Offset: 120 + keen::UiTexture dot_unselected; // Offset: 168 + keen::UiTexture wheelRing_complete; // Offset: 216 + keen::UiTexture wheelRing_highlight; // Offset: 264 + keen::UiTexture blurredBackgroundMask; // Offset: 312 + keen::UiColor highlightColor; // Offset: 360 + keen::UiColor stickOutOfRangeColor; // Offset: 368 +}; + +struct FbUiCompass { + keen::UiSize baseSize; // Offset: 0 + keen::UiTexture background; // Offset: 8 + keen::UiTexture northBackground; // Offset: 56 + keen::UiTexture north; // Offset: 104 + keen::UiTexture east; // Offset: 152 + keen::UiTexture south; // Offset: 200 + keen::UiTexture west; // Offset: 248 + keen::UiTexture mark; // Offset: 296 + keen::UiTexture player; // Offset: 344 + keen::UiTexture priorityMarker; // Offset: 392 + keen::UiNineSliceTexture fogTimerShape; // Offset: 440 + keen::UiColor fogMeterFill; // Offset: 504 + keen::UiColor fogMeterRange; // Offset: 512 + keen::UiColor fogMeterDrain; // Offset: 520 +}; + +struct FbUiDialog { + keen::UiColor dialogMarkerColor; // Offset: 0 + keen::UiColor floatingBubbleTint; // Offset: 8 + keen::UiColor frostedGlassTint; // Offset: 16 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiHUD { + keen::UiBorder screenPosClampingBorderDefault; // Offset: 0 + keen::UiColor widgetBackgroundColor; // Offset: 16 + keen::FbUiCursors cursors; // Offset: 24 + keen::FbUiHudPlayerStatus playerStatus; // Offset: 296 + keen::FbUiItemWheel itemWheel; // Offset: 824 + keen::FbUiHudMessage levelUp; // Offset: 1200 + keen::FbUiHudBarrierUnlock barrierUnlocked; // Offset: 1344 + keen::FbUiHudMessage doorUnlocked; // Offset: 1528 + keen::FbUiHudMessage secretUnlocked; // Offset: 1672 + keen::UiTexture quickItemBackground; // Offset: 1816 + keen::UiTexture equippedItemBackground; // Offset: 1864 + keen::FbUiHudBuildModeHint buildModeHint; // Offset: 1912 + keen::UiColor buildingZoneTooltipOutline; // Offset: 2064 + keen::FbUiHudNightSpeed nightSpeedHint; // Offset: 2072 + keen::FbUiCompass compass; // Offset: 2232 + keen::FbUiAnimatedHealthBarColors bossHealthColors; // Offset: 2760 + keen::FbUiAnimatedHealthBarColors bossStaminaColors; // Offset: 2808 + keen::UiBorder bossBarBorderThickness; // Offset: 2856 + keen::FbUiDialog dialog; // Offset: 2872 + keen::FbUiHUDSpatial spatial; // Offset: 2904 + keen::FbUiHudTopNotification notification; // Offset: 3792 + keen::FbUiHudGameProgressSummary gameProgressSummary; // Offset: 3832 + keen::FbUiHudLowHealth lowHealthVignette; // Offset: 3976 + keen::UiTexture blurVignette; // Offset: 4040 + keen::FbUiHudFreezing freezingVignette; // Offset: 4088 + keen::BlobArray freezingWarningTimes; // Offset: 4536 + keen::FbUiHudPartyHealth partyHealth; // Offset: 4544 + keen::FbUiHudOutOfBound outOfBound; // Offset: 4576 + keen::FbUiHudServerPerformance serverPerforamceHint; // Offset: 4776 + keen::FbUiHudMusicBuff musicBuff; // Offset: 4840 + keen::FbUiHudAnimalTaming animalTaming; // Offset: 4912 +}; + +struct FbUiHeadline { + keen::UiNineSliceTexture background; // Offset: 0 + keen::UiColor criticalWarningTextColor; // Offset: 64 +}; + +struct FbUiItemWheelDummy { + keen::UiTexture texture; // Offset: 0 + keen::UiTexture glow; // Offset: 48 +}; + +struct FbUiScreenDeath { + keen::UiColor backgroundColor; // Offset: 0 + keen::UiLocaTagReference normalDeathHeadline; // Offset: 8 + keen::UiLocaTagReference fogDeathHeadline; // Offset: 24 + keen::UiLocaTagReference fogDeathHint; // Offset: 40 + keen::UiLocaTagReference inventoryLossHint; // Offset: 56 + keen::UiLocaTagReference inventoryLostAllHint; // Offset: 72 +}; + +struct FbUiScreen { + keen::UiTexture titleScreenKeyArt; // Offset: 0 + keen::FbUiScreenDeath death; // Offset: 48 + keen::FbUiControlScheme controlScheme; // Offset: 136 +}; + +struct FbUiSoundsMenuGeneric { + keen::SoundContainerReference flameAltarOpen; // Offset: 0 + keen::SoundContainerReference skillTreeOpen; // Offset: 16 + keen::SoundContainerReference loreOpen; // Offset: 32 + keen::SoundContainerReference loreClose; // Offset: 48 + keen::SoundContainerReference signpostOpen; // Offset: 64 + keen::SoundContainerReference signpostClose; // Offset: 80 + keen::SoundContainerReference systemMenuOpen; // Offset: 96 + keen::SoundContainerReference open; // Offset: 112 + keen::SoundContainerReference close; // Offset: 128 + keen::SoundContainerReference back; // Offset: 144 + keen::SoundContainerReference clickNeutral; // Offset: 160 + keen::SoundContainerReference tabChange; // Offset: 176 + keen::SoundContainerReference highlightChange; // Offset: 192 + keen::SoundContainerReference entryTrigger; // Offset: 208 + keen::SoundContainerReference entryCancel; // Offset: 224 + keen::SoundContainerReference entryTriggerFailed; // Offset: 240 + keen::SoundContainerReference sideMenuFadeIn; // Offset: 256 + keen::SoundContainerReference sideMenuFadeOut; // Offset: 272 + keen::SoundContainerReference equip; // Offset: 288 + keen::SoundContainerReference unequip; // Offset: 304 + keen::SoundContainerReference columnChange; // Offset: 320 + keen::SoundContainerReference leftOpen; // Offset: 336 + keen::SoundContainerReference leftClose; // Offset: 352 + keen::SoundContainerReference rightOpen; // Offset: 368 + keen::SoundContainerReference rightClose; // Offset: 384 + keen::SoundContainerReference settingWidgetToggle; // Offset: 400 + keen::SoundContainerReference settingMenuEnter; // Offset: 416 + keen::SoundContainerReference settingMenuExit; // Offset: 432 + keen::SoundContainerReference repairItems; // Offset: 448 + keen::SoundContainerReference textEnter; // Offset: 464 + keen::SoundContainerReference textDelete; // Offset: 480 + keen::SoundContainerReference mouseClickGeneric; // Offset: 496 + keen::SoundContainerReference mouseHover; // Offset: 512 + keen::SoundContainerReference activatePersonalProgression; // Offset: 528 + keen::SoundContainerReference deactivatePersonalProgression; // Offset: 544 + keen::SoundContainerReference sliderValueChange; // Offset: 560 + keen::SoundContainerReference selectDifficulty; // Offset: 576 + keen::Time mouseHoverTimeout; // Offset: 592 +}; + +struct FbUiSoundsMenuCrafting { + keen::SoundContainerReference recipeMoveWithinEntry; // Offset: 0 + keen::SoundContainerReference highlightChange; // Offset: 16 + keen::SoundContainerReference entryTrigger; // Offset: 32 + keen::SoundContainerReference craftingSuccessful; // Offset: 48 + keen::SoundContainerReference craftingFailed; // Offset: 64 + keen::SoundContainerReference pin; // Offset: 80 + keen::SoundContainerReference unpin; // Offset: 96 + keen::SoundContainerReference pinnedRecipeCraftable; // Offset: 112 + keen::SoundContainerReference pinnedRecipeIngredientCompleted; // Offset: 128 + keen::SoundContainerReference perkUnlocked; // Offset: 144 +}; + +struct FbUiSoundsMenuJournal { + keen::SoundContainerReference openTile; // Offset: 0 +}; + +struct FbUiSoundsMenuAltar { + keen::SoundContainerReference highlightChange; // Offset: 0 + keen::SoundContainerReference entryTrigger; // Offset: 16 + keen::SoundContainerReference leave; // Offset: 32 +}; + +struct FbUiSoundsLootAquisition { + keen::SoundContainerReference common; // Offset: 0 + keen::SoundContainerReference uncommon; // Offset: 16 + keen::SoundContainerReference rare; // Offset: 32 + keen::SoundContainerReference epic; // Offset: 48 + keen::SoundContainerReference legendary; // Offset: 64 + keen::SoundContainerReference keyItem; // Offset: 80 + keen::SoundContainerReference specialLoot; // Offset: 96 + keen::SoundContainerReference npc; // Offset: 112 + keen::SoundContainerReference pinnedRecipeHint; // Offset: 128 + keen::SoundContainerReference twitchReward; // Offset: 144 +}; + +struct FbUiSoundsSkillTree { + keen::SoundContainerReference attributeIncrease; // Offset: 0 + keen::SoundContainerReference skillUnlock; // Offset: 16 + keen::SoundContainerReference skillModUnlock; // Offset: 32 + keen::SoundContainerReference passivePerkUnlock; // Offset: 48 + keen::SoundContainerReference reactivePerkUnlock; // Offset: 64 + keen::SoundContainerReference nodeFocus; // Offset: 80 + keen::SoundContainerReference zoomIn; // Offset: 96 + keen::SoundContainerReference zoomOut; // Offset: 112 +}; + +struct FbUiSoundsEventMessages { + keen::SoundContainerReference menuUpdateNotification; // Offset: 0 + keen::SoundContainerReference locationDiscovery; // Offset: 16 + keen::SoundContainerReference npcRevived; // Offset: 32 + keen::SoundContainerReference amuletUpgraded; // Offset: 48 + keen::SoundContainerReference giftingSend; // Offset: 64 + keen::SoundContainerReference giftingReceive; // Offset: 80 + keen::SoundContainerReference clueCompleted; // Offset: 96 + keen::SoundContainerReference playerLevelup; // Offset: 112 + keen::SoundContainerReference flameLevelUp; // Offset: 128 + keen::SoundContainerReference magicBarrierUnlocked; // Offset: 144 + keen::SoundContainerReference doorUnlocked; // Offset: 160 + keen::SoundContainerReference secretDoorUnlocked; // Offset: 176 + keen::SoundContainerReference allMissedQuestsCompleted; // Offset: 192 + keen::SoundContainerReference newTwitchDropUnlocked; // Offset: 208 +}; + +struct FbUiSoundsAdventureMap { + keen::SoundContainerReference waypointSet; // Offset: 0 + keen::SoundContainerReference waypointClear; // Offset: 16 + keen::SoundContainerReference waypointLocate; // Offset: 32 + keen::SoundContainerReference zoomIn; // Offset: 48 + keen::SoundContainerReference zoomOut; // Offset: 64 + keen::SoundContainerReference fastTravelTriggered; // Offset: 80 + keen::SoundContainerReference showOnMap; // Offset: 96 + keen::SoundContainerReference goToHomeBase; // Offset: 112 + keen::SoundContainerReference recenter; // Offset: 128 + keen::SoundContainerReference playerPing; // Offset: 144 +}; + +struct FbUiSoundsDialog { + keen::SoundContainerReference startDialog; // Offset: 0 + keen::SoundContainerReference changeEntry; // Offset: 16 + keen::SoundContainerReference confirmEntry; // Offset: 32 + keen::SoundContainerReference cancelEntry; // Offset: 48 + keen::SoundContainerReference revealDialogLine; // Offset: 64 +}; + +struct FbUiSoundsActionbar { + keen::SoundContainerReference cantUse; // Offset: 0 + keen::SoundContainerReference moveHighlight; // Offset: 16 + keen::SoundContainerReference cycleActionbar; // Offset: 32 +}; + +struct FbUiSoundsBackpack { + keen::SoundContainerReference inventoryFull; // Offset: 0 + keen::SoundContainerReference deleteItem; // Offset: 16 + keen::SoundContainerReference dropItemIntoSlot; // Offset: 32 + keen::SoundContainerReference dropItemIntoActionBar; // Offset: 48 + keen::SoundContainerReference grabItem; // Offset: 64 + keen::SoundContainerReference swapItems; // Offset: 80 + keen::SoundContainerReference splitStack; // Offset: 96 + keen::SoundContainerReference salvageItem; // Offset: 112 + keen::SoundContainerReference sortInventory; // Offset: 128 +}; + +struct FbUiSoundsItemWheel { + keen::SoundContainerReference open; // Offset: 0 + keen::SoundContainerReference close; // Offset: 16 + keen::SoundContainerReference changeHighlight; // Offset: 32 +}; + +struct FbUiSoundsHud { + keen::SoundContainerReference lowHealthLoop; // Offset: 0 + keen::SoundContainerReference enterFog; // Offset: 16 + keen::Time enterFogTimeout; // Offset: 32 + keen::SoundContainerReference enterDangerousFog; // Offset: 40 + keen::SoundContainerReference enterFreeze; // Offset: 56 + keen::SoundContainerReference freezeWarning; // Offset: 72 + keen::SoundContainerReference freezeResistanceDepleted; // Offset: 88 + keen::SoundContainerReference flameReminder; // Offset: 104 + keen::SoundContainerReference flameLow; // Offset: 120 + keen::SoundContainerReference flameVeryLow; // Offset: 136 + keen::SoundContainerReference flameDepleted; // Offset: 152 + keen::SoundContainerReference flameLowLoop; // Offset: 168 + keen::SoundContainerReference manaInsufficient; // Offset: 184 + keen::Time manaInsufficientTimeout; // Offset: 200 + keen::SoundContainerReference staminaInsufficient; // Offset: 208 + keen::Time staminaInsufficientTimeout; // Offset: 224 + keen::SoundContainerReference ammoChanged; // Offset: 232 + keen::SoundContainerReference buildActionFailed; // Offset: 248 + keen::Time buildActionFailedTimeout; // Offset: 264 + keen::SoundContainerReference buildUndoSuccessful; // Offset: 272 + keen::SoundContainerReference buildInvMaximize; // Offset: 288 + keen::SoundContainerReference buildInvMinimize; // Offset: 304 + keen::SoundContainerReference buildModeEnter; // Offset: 320 + keen::SoundContainerReference buildModeExit; // Offset: 336 + keen::SoundContainerReference musicBuffProgressed; // Offset: 352 +}; + +struct FbUiSoundsTitleScreen { + keen::SoundContainerReference backgroundMusic; // Offset: 0 + keen::SoundContainerReference startTrigger; // Offset: 16 +}; + +struct FbUiSounds { + keen::SoundContainerReference test; // Offset: 0 + keen::FbUiSoundsTitleScreen titleScreen; // Offset: 16 + keen::FbUiSoundsEventMessages events; // Offset: 48 + keen::FbUiSoundsMenuGeneric menu; // Offset: 272 + keen::FbUiSoundsMenuCrafting crafting; // Offset: 872 + keen::FbUiSoundsMenuJournal journal; // Offset: 1032 + keen::FbUiSoundsMenuAltar altar; // Offset: 1048 + keen::FbUiSoundsSkillTree skilltree; // Offset: 1096 + keen::FbUiSoundsLootAquisition lootGet; // Offset: 1224 + keen::FbUiSoundsAdventureMap map; // Offset: 1384 + keen::FbUiSoundsDialog dialog; // Offset: 1544 + keen::FbUiSoundsItemWheel itemWheel; // Offset: 1624 + keen::FbUiSoundsHud hud; // Offset: 1672 + keen::FbUiSoundsActionbar actionbar; // Offset: 2040 + keen::FbUiSoundsBackpack backpack; // Offset: 2088 +}; + +struct FbUiHudCharacterStyles { + keen::UiCharacterStyle celebrationMain; // Offset: 0 + keen::UiCharacterStyle celebrationLevelNumber; // Offset: 88 + keen::UiCharacterStyle specialLootMain; // Offset: 176 + keen::UiCharacterStyle specialLootSecondary; // Offset: 264 + keen::UiCharacterStyle enemyDamagePoint; // Offset: 352 + keen::UiCharacterStyle enemyDamageBonusText; // Offset: 440 + keen::UiCharacterStyle healingDamagePoint; // Offset: 528 + keen::UiCharacterStyle playerDamagePoint; // Offset: 616 + keen::UiCharacterStyle immuneDamagePoint; // Offset: 704 + keen::UiCharacterStyle restoreManaPoint; // Offset: 792 + keen::UiCharacterStyle playerName; // Offset: 880 + keen::UiCharacterStyle enemyName; // Offset: 968 + keen::UiCharacterStyle bossName; // Offset: 1056 + keen::UiCharacterStyle ammoListEntry; // Offset: 1144 + keen::UiCharacterStyle staminaInfo; // Offset: 1232 + keen::UiCharacterStyle compassMarkerDistance; // Offset: 1320 + keen::UiCharacterStyle compassWayointMessage; // Offset: 1408 + keen::UiCharacterStyle compassFogTimer; // Offset: 1496 + keen::UiCharacterStyle compassFogTypeLabel; // Offset: 1584 + keen::UiCharacterStyle compassLeaveFogWarning; // Offset: 1672 + keen::UiCharacterStyle nightSpeedHint; // Offset: 1760 +}; + +struct FbUiMenuCharacterStyles { + keen::UiCharacterStyle topTab; // Offset: 0 + keen::UiCharacterStyle header1; // Offset: 88 + keen::UiCharacterStyle header2; // Offset: 176 + keen::UiCharacterStyle header3; // Offset: 264 + keen::UiCharacterStyle buttonHint; // Offset: 352 + keen::UiCharacterStyle textfieldEmptyHint; // Offset: 440 +}; + +struct FbUiMapCharacterStyles { + keen::UiCharacterStyle playerName; // Offset: 0 + keen::UiCharacterStyle locationName; // Offset: 88 + keen::UiCharacterStyle clusterSizeNumber; // Offset: 176 + keen::UiCharacterStyle markerLabel; // Offset: 264 + keen::UiCharacterStyle tooltip; // Offset: 352 +}; + +struct FbUiFontSizes { + keen::BlobArray textScaleSteps; // Offset: 0 + keen::float32 xsmall; // Offset: 8 + keen::float32 small; // Offset: 12 + keen::float32 medium; // Offset: 16 + keen::float32 large; // Offset: 20 + keen::float32 xlarge; // Offset: 24 + keen::float32 caps_small; // Offset: 28 + keen::float32 caps_medium; // Offset: 32 + keen::float32 caps_large; // Offset: 36 + keen::float32 caps_xlarge; // Offset: 40 +}; + +struct FbUiCharacterStyles { + keen::UiCharacterStyle defaultStyle; // Offset: 0 + keen::UiCharacterStyle defaultStyleOutline; // Offset: 88 + keen::UiCharacterStyle secondaryText; // Offset: 176 + keen::UiCharacterStyle mutedItalic; // Offset: 264 + keen::UiCharacterStyle redText; // Offset: 352 + keen::UiCharacterStyle greenText; // Offset: 440 + keen::UiCharacterStyle h1; // Offset: 528 + keen::UiCharacterStyle h2; // Offset: 616 + keen::UiCharacterStyle h3; // Offset: 704 + keen::UiCharacterStyle legalText; // Offset: 792 + keen::UiCharacterStyle warning; // Offset: 880 + keen::UiCharacterStyle hyperlink; // Offset: 968 + keen::UiCharacterStyle location; // Offset: 1056 + keen::UiCharacterStyle npc; // Offset: 1144 + keen::UiCharacterStyle craftingstation; // Offset: 1232 + keen::UiCharacterStyle keyitem; // Offset: 1320 + keen::UiCharacterStyle lorename; // Offset: 1408 + keen::UiCharacterStyle impactAttribute; // Offset: 1496 + keen::UiCharacterStyle textChatSpeakerNameSelf; // Offset: 1584 + keen::UiCharacterStyle textChatSpeakerNameOther; // Offset: 1672 + keen::UiCharacterStyle textChatMessage; // Offset: 1760 + keen::FbUiHudCharacterStyles hud; // Offset: 1848 + keen::FbUiMenuCharacterStyles menu; // Offset: 3696 + keen::FbUiMapCharacterStyles map; // Offset: 4224 + keen::UiCharacterStyle keyboardLegend; // Offset: 4664 + keen::UiCharacterStyle versionWatermark; // Offset: 4752 + keen::UiCharacterStyle versionWatermarkSecondLine; // Offset: 4840 +}; + +struct FbUiParagraphStyles { + keen::UiParagraphStyle hudDefault; // Offset: 0 + keen::UiParagraphStyle test; // Offset: 28 +}; + +struct FbUiScrollingLayouts { +}; + +struct Curve { + keen::uint32 sampleCount; // Offset: 0 +}; + +typedef keen::UiVector UiPosition; + +struct UiTestTypes { + keen::string type_string; // Offset: 0 + keen::float2 type_float2; // Offset: 8 + keen::float3 type_float3; // Offset: 16 + keen::uint32 type_uint32; // Offset: 28 + keen::bool type_bool; // Offset: 32 + keen::Color type_Color; // Offset: 36 + keen::SoundContainerReference type_SoundContainerReference; // Offset: 40 + keen::Curve type_Curve; // Offset: 56 + keen::UiTexture type_UiTexture; // Offset: 60 + keen::UiPosition type_UiPosition; // Offset: 108 + keen::UiSize type_UiSize; // Offset: 116 + keen::UiColor type_UiColor; // Offset: 124 +}; + +enum class UiHorizontalAlignment { + None = 0, + Left = 1, + Center = 2, + Right = 3, +}; + +enum class UiVerticalAlignment { + None = 0, + Top = 1, + Center = 2, + Bottom = 3, +}; + +struct UiAlignment { + keen::UiHorizontalAlignment horizontal; // Offset: 0 + keen::UiVerticalAlignment vertical; // Offset: 1 +}; + +enum class GameUiTextLayoutStyle { + Floating = 0, + Wrap = 1, + Wrap_ScaleFontSizeToFit = 2, + Scroll = 3, + Scroll_FixedPixelPerSecond = 4, +}; + +struct GameUiTextParameterData { + keen::string characterStyle; // Offset: 0 + keen::string paragraphStyle; // Offset: 8 + keen::float2 offset; // Offset: 16 + keen::float2 stretch; // Offset: 24 + keen::UiAlignment alignment; // Offset: 32 + keen::UiBorder margin; // Offset: 36 + keen::UiBorder padding; // Offset: 52 + keen::Time revealTime; // Offset: 72 + keen::GameUiTextLayoutStyle textLayoutStyle; // Offset: 80 + keen::bool allowLineBreak; // Offset: 81 +}; + +enum class GameUiImageSizing { + Stretched = 0, + Fit = 1, + Cropped = 2, +}; + +struct GameUiImageParameterData { + keen::GameUiImageSizing sizing; // Offset: 0 + keen::float32 alpha; // Offset: 4 + keen::UiColor color; // Offset: 8 + keen::float2 offset; // Offset: 16 + keen::float2 stretch; // Offset: 24 + keen::UiBorder margin; // Offset: 32 + keen::UiBorder padding; // Offset: 48 +}; + +struct FbUiTestParameters { + keen::UiTestTypes _types; // Offset: 0 + keen::FbUiScrollingLayouts scrollingLayouts; // Offset: 132 + keen::GameUiTextParameterData testTextParameter; // Offset: 136 + keen::GameUiImageParameterData testImageParameter; // Offset: 224 + keen::UiNineSliceTexture testNineSliceTexture; // Offset: 288 + keen::UiBorder testNineSliceScreenBorder; // Offset: 352 + keen::Time durationTextTestTime; // Offset: 368 + keen::bool durationTextShowOnlyBiggestTimeUnit; // Offset: 376 + keen::bool durationTextUseLocalizedUnits; // Offset: 377 + keen::bool durationTextUseThirdNumber; // Offset: 378 + keen::uint8 durationTextSubSecondDigits; // Offset: 379 +}; + +struct FbUiRarityColors { + keen::UiColor undefined; // Offset: 0 + keen::UiColor common; // Offset: 8 + keen::UiColor uncommon; // Offset: 16 + keen::UiColor rare; // Offset: 24 + keen::UiColor epic; // Offset: 32 + keen::UiColor legendary; // Offset: 40 + keen::UiColor vanity; // Offset: 48 + keen::UiColor collectible; // Offset: 56 + keen::float32 vanityTextColorIntensity; // Offset: 64 +}; + +struct FbUiNetworkQualityColors { + keen::UiColor good; // Offset: 0 + keen::UiColor acceptable; // Offset: 8 + keen::UiColor bad; // Offset: 16 +}; + +struct FbUiGlobalColors { + keen::FbUiRarityColors rarity; // Offset: 0 + keen::UiColor priorityColor; // Offset: 68 + keen::UiColor priorityBgColor; // Offset: 76 + keen::UiColor attentionColor; // Offset: 84 + keen::UiColor checkmarkGreen; // Offset: 92 + keen::UiColor warningColor; // Offset: 100 + keen::UiColor warningColorBackground; // Offset: 108 + keen::UiColor warningColorFrostedGlassTint; // Offset: 116 + keen::UiColor attributeBetterColor; // Offset: 124 + keen::UiColor attributeWorseColor; // Offset: 132 + keen::FbUiNetworkQualityColors networkQuality; // Offset: 140 +}; + +struct FbUiFrostedGlassParameters { + keen::uint32 downsampleSteps; // Offset: 0 + keen::float32 sigma; // Offset: 4 + keen::ObjectReference colorGradingMap; // Offset: 8 + keen::bool colorGradeBeforeBlur; // Offset: 24 +}; + +struct FbUiStartUpLogo { + keen::UiTexture image; // Offset: 0 + keen::float32 height; // Offset: 48 + keen::SoundContainerReference sound; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 68 +}; + +struct FbUiStartUpLogoSequence { + keen::Time logoFadeDuration; // Offset: 0 + keen::Time logoIdleDuration; // Offset: 8 + keen::FbUiStartUpLogo keenLogo; // Offset: 16 + keen::FbUiStartUpLogo bmwiLogo; // Offset: 92 + keen::Time postLogoDelay; // Offset: 168 + keen::Time mainMenuFadeInDuration; // Offset: 176 +}; + +struct FbUiPreGameCharacterViews { + keen::FbUiCharacterView mainMenu; // Offset: 0 + keen::FbUiCharacterView postMainMenu; // Offset: 28 + keen::FbUiCharacterView savePortrait; // Offset: 56 +}; + +struct FbUiCustomizationHairColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationSkinColors { + keen::UiColor african_1; // Offset: 0 + keen::UiColor african_2; // Offset: 8 + keen::UiColor asian_1; // Offset: 16 + keen::UiColor caucasian_1; // Offset: 24 + keen::UiColor caucasian_2; // Offset: 32 + keen::UiColor caucasian_3; // Offset: 40 + keen::UiColor mixed_1; // Offset: 48 + keen::UiColor mixed_2; // Offset: 56 +}; + +struct FbUiCustomizationEyeColors { + keen::UiColor blue; // Offset: 0 + keen::UiColor brightBrown; // Offset: 8 + keen::UiColor brown; // Offset: 16 + keen::UiColor green; // Offset: 24 + keen::UiColor grey; // Offset: 32 +}; + +struct FbUiCustomizationEyeBrowColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationTabIcons { + keen::UiTexture iconBodytype; // Offset: 0 + keen::UiTexture iconHair; // Offset: 48 + keen::UiTexture iconBeard; // Offset: 96 + keen::UiTexture iconVoice; // Offset: 144 + keen::UiTexture iconName; // Offset: 192 + keen::UiTexture iconPlay; // Offset: 240 + keen::UiTexture iconHairColor; // Offset: 288 + keen::UiTexture iconBeardColor; // Offset: 336 + keen::UiTexture iconEyeColor; // Offset: 384 + keen::UiTexture iconEyeBrowColor; // Offset: 432 + keen::UiTexture iconSkinColor; // Offset: 480 +}; + +struct FbUiCharacterCustomization { + keen::FbUiCustomizationHairColors hairColors; // Offset: 0 + keen::FbUiCustomizationSkinColors skinColors; // Offset: 64 + keen::FbUiCustomizationEyeColors eyeColors; // Offset: 128 + keen::FbUiCustomizationEyeBrowColors eyeBrowColors; // Offset: 168 + keen::FbUiCustomizationTabIcons tabIcons; // Offset: 232 + keen::UiTexture widgetSelector; // Offset: 760 + keen::UiTexture voicePreview1; // Offset: 808 + keen::UiTexture voicePreview2; // Offset: 856 +}; + +struct FbUiPreGame { + keen::FbUiStartUpLogoSequence startUpSequence; // Offset: 0 + keen::Time startGameFadeOutDuration; // Offset: 184 + keen::UiTexture titleScreenKeyArt; // Offset: 192 + keen::UiTexture mainMenuLogo; // Offset: 240 + keen::UiBorder mainMenuPadding; // Offset: 288 + keen::float32 logoHeight; // Offset: 304 + keen::float32 backgroundScale; // Offset: 308 + keen::float32 backgroundNormalizedOffsetX; // Offset: 312 + keen::float32 backgroundNormalizedOffsetY; // Offset: 316 + keen::UiTexture mainMenuEntryHighlightBackground; // Offset: 320 + keen::UiTexture joinTileBg; // Offset: 368 + keen::UiTexture hostPublicTileBg; // Offset: 416 + keen::UiTexture privateTileBg; // Offset: 464 + keen::FbUiPreGameCharacterViews characterViews; // Offset: 512 + keen::FbUiCharacterCustomization characterCustomization; // Offset: 596 + keen::UiTexture menuEntryHighlightBackground; // Offset: 1500 + keen::UiTexture logoGPortal; // Offset: 1548 + keen::UiColor dedicatedServerColor; // Offset: 1596 + keen::UiColor friendServerColor; // Offset: 1604 +}; + +enum class FbUiCreditsItemType { + None = 0, + Title = 1, + Heading = 2, + SubHeading = 3, + Text = 4, + Image = 5, +}; + +struct FbUiCreditItemImage { + keen::BlobString identifier; // Offset: 0 + keen::UiTexture texture; // Offset: 8 + keen::UiColor color; // Offset: 56 + keen::UiSize imageSize; // Offset: 64 +}; + +struct FbUiCreditImageRepository { +}; + +struct FbUiCreditsItem { + keen::FbUiCreditsItemType itemType; // Offset: 0 + keen::string text; // Offset: 4 + keen::FbUiCreditItemImage image; // Offset: 12 +}; + +struct FbUiCreditStyle { + keen::UiCharacterStyle style; // Offset: 0 + keen::float32 fontSize; // Offset: 88 + keen::float32 topSpacer; // Offset: 92 +}; + +struct FbUiCreditStyles { + keen::FbUiCreditStyle h1; // Offset: 0 + keen::FbUiCreditStyle h2; // Offset: 96 + keen::FbUiCreditStyle h3; // Offset: 192 + keen::FbUiCreditStyle text; // Offset: 288 +}; + +struct FbUiCredits { + keen::BlobArray items; // Offset: 0 + keen::UiLocaTagReference text; // Offset: 8 + keen::UiLocaTagReference creditEndText; // Offset: 24 + keen::FbUiCreditStyles creditStyles; // Offset: 40 + keen::float32 scrollSpeed; // Offset: 424 + keen::float32 gamepadScrollSpeed; // Offset: 428 +}; + +struct FbUiKnowledgeRequirement { + keen::GameKnowledgeTrigger trigger; // Offset: 0 + keen::KnowledgeId triggerId; // Offset: 56 +}; + +struct FbUiTutorialKnowledge { + keen::FbUiKnowledgeRequirement quickbuilder; // Offset: 0 + keen::FbUiKnowledgeRequirement summoningStaff; // Offset: 60 + keen::FbUiKnowledgeRequirement crafting; // Offset: 120 + keen::FbUiKnowledgeRequirement factory; // Offset: 180 + keen::FbUiKnowledgeRequirement enhancing; // Offset: 240 + keen::FbUiKnowledgeRequirement cooking; // Offset: 300 + keen::FbUiKnowledgeRequirement actionbar; // Offset: 360 + keen::FbUiKnowledgeRequirement storage; // Offset: 420 + keen::FbUiKnowledgeRequirement taming; // Offset: 480 + keen::FbUiKnowledgeRequirement happyNpcRequirement; // Offset: 540 +}; + +struct FbUiKnowledge { + keen::FbUiTutorialKnowledge tutorial; // Offset: 0 +}; + +struct SystemErrorMessages { + keen::UiLocaTagReference waitingForProcess; // Offset: 0 + keen::UiLocaTagReference noInputDevice; // Offset: 16 + keen::UiLocaTagReference connectFailed; // Offset: 32 + keen::UiLocaTagReference connectionLost; // Offset: 48 + keen::UiLocaTagReference newVersionRequired; // Offset: 64 + keen::UiLocaTagReference playerNotSignedIn; // Offset: 80 + keen::UiLocaTagReference playerNoPrivileges; // Offset: 96 + keen::UiLocaTagReference playerNoMultiplayerEntitlement; // Offset: 112 + keen::UiLocaTagReference createGameFailed; // Offset: 128 + keen::UiLocaTagReference joinGameFailed; // Offset: 144 + keen::UiLocaTagReference joinGameFailed_NotFound; // Offset: 160 + keen::UiLocaTagReference joinGameFailed_Full; // Offset: 176 + keen::UiLocaTagReference joinGameFailed_Reserved; // Offset: 192 + keen::UiLocaTagReference joinGameFailed_WrongPassword; // Offset: 208 + keen::UiLocaTagReference joinGameFailed_WrongPasswordCooldown; // Offset: 224 + keen::UiLocaTagReference sessionFailed; // Offset: 240 + keen::UiLocaTagReference joinPlayerFailed; // Offset: 256 + keen::UiLocaTagReference kicked; // Offset: 272 + keen::UiLocaTagReference saveGameCorrupt; // Offset: 288 + keen::UiLocaTagReference settingsCorrupt; // Offset: 304 + keen::UiLocaTagReference eraseFailed; // Offset: 320 + keen::UiLocaTagReference notEnoughSpace; // Offset: 336 + keen::UiLocaTagReference createFailed; // Offset: 352 + keen::UiLocaTagReference readError; // Offset: 368 + keen::UiLocaTagReference writeError; // Offset: 384 +}; + +struct SystemErrorResponses { + keen::UiLocaTagReference retry; // Offset: 0 + keen::UiLocaTagReference disable; // Offset: 16 + keen::UiLocaTagReference erase; // Offset: 32 + keen::UiLocaTagReference reset; // Offset: 48 + keen::UiLocaTagReference deviceSelection; // Offset: 64 + keen::UiLocaTagReference overwrite; // Offset: 80 + keen::UiLocaTagReference cancel; // Offset: 96 + keen::UiLocaTagReference ok; // Offset: 112 +}; + +struct SystemErrorLoca { + keen::SystemErrorMessages errors; // Offset: 0 + keen::SystemErrorResponses responses; // Offset: 400 + keen::UiLocaTagReference errorTitleWarning; // Offset: 528 +}; + +enum class DefaultServerRoleType { + Guest = 0, + Friend = 1, + Admin = 2, +}; + +struct FbUiServerRoleSettings { + keen::BlobArray defaultServerRoles; // Offset: 0 + keen::BlobArray serverRoleIcons; // Offset: 8 +}; + +struct FbUiServerRole { + keen::DefaultServerRoleType type; // Offset: 0 + keen::UiLocaTagReference roleName; // Offset: 4 + keen::PlayerPermissionsMask permissions; // Offset: 20 +}; + +struct FbUiLoreSlide { + keen::UiTexture slideImage; // Offset: 0 + keen::UiLocaTagReference slideText; // Offset: 48 + keen::bool useTextBackground; // Offset: 64 + keen::UiVector startOffset; // Offset: 68 + keen::UiVector endOffset; // Offset: 76 + keen::float32 startScale; // Offset: 84 + keen::float32 endScale; // Offset: 88 + keen::float32 slideDuration; // Offset: 92 + keen::float32 textStartDelay; // Offset: 96 + keen::float32 textAnimDuration; // Offset: 100 + keen::float32 fadeInDuration; // Offset: 104 + keen::float32 fadeOutDuration; // Offset: 108 + keen::UiColor fadeInColor; // Offset: 112 + keen::UiColor fadeOutColor; // Offset: 120 +}; + +struct FbUiLogos { + keen::BlobArray creditsLogos; // Offset: 0 + keen::UiTexture enshrouded_TraditionalChinese; // Offset: 8 + keen::UiTexture enshrouded_SimplifiedChinese; // Offset: 56 + keen::UiTexture enshrouded_Japanese; // Offset: 104 + keen::UiTexture enshrouded_Korean; // Offset: 152 +}; + +struct FbUiLoreIntro { + keen::BlobArray allSlides; // Offset: 0 + keen::UiCharacterStyle textStyle; // Offset: 8 + keen::UiNineSliceTexture slideBorder; // Offset: 96 +}; + +struct UiBundle { + keen::UiTexturePreload texturePreload; // Offset: 0 + keen::BlobArray characterStyles; // Offset: 8 + keen::BlobArray paragraphStyles; // Offset: 16 +}; + +struct FbUiBundle { + keen::FbUiLocaLinks locatags; // Offset: 24 + keen::FbUiSocialLogos socialLogos; // Offset: 25392 + keen::FbUiLogos logos; // Offset: 25680 + keen::FbUiGenericIcons genericIcons; // Offset: 25880 + keen::FbUiGamepadButtonSets gamepadButtons; // Offset: 28856 + keen::FbUiKeyboardKeys keyboardKeys; // Offset: 34048 + keen::FbUiKeyboardKeyLegends keyboardKeyLegends; // Offset: 34160 + keen::FbUiMouseHints mouseHints; // Offset: 34352 + keen::FbUiPrimitives primitives; // Offset: 35024 + keen::FbUiLoadingSymbol loading; // Offset: 36256 + keen::FbUiGlobalColors globalColors; // Offset: 36268 + keen::FbUiPreGame preGame; // Offset: 36432 + keen::FbUiHUD hud; // Offset: 38048 + keen::FbUiMenu menu; // Offset: 43256 + keen::FbUiCustomization customization; // Offset: 54496 + keen::FbUiKnowledge knowledge; // Offset: 54736 + keen::FbUiItemSlot itemSlot; // Offset: 55336 + keen::FbUiBuffIcons buffIcons; // Offset: 57312 + keen::FbUiScreen screen; // Offset: 57544 + keen::FbUiHeadline headline; // Offset: 57776 + keen::FbUiFontSizes fontSizes; // Offset: 57848 + keen::FbUiCharacterStyles namedStyles; // Offset: 57892 + keen::FbUiParagraphStyles namedParagraphStyles; // Offset: 62820 + keen::FbUiSounds sounds; // Offset: 62880 + keen::FbUiTestParameters testParameters; // Offset: 65112 + keen::FbUiFrostedGlassParameters frostedGlass; // Offset: 65496 + keen::SystemErrorLoca systemErrors; // Offset: 65524 + keen::FbUiServerRoleSettings serverRoleSettings; // Offset: 66068 + keen::FbUiDifficultySettings difficultySettings; // Offset: 66088 + keen::UiTexture noRtxWarning; // Offset: 68032 + keen::FbUiCredits credits; // Offset: 68080 + keen::FbUiLoreIntro loreIntro; // Offset: 68512 + keen::BlobArray worldEvents; // Offset: 68672 +}; + +struct FbUiMap { + keen::ObjectReference scene; // Offset: 0 + keen::float32 isolineSpacing; // Offset: 16 + keen::ObjectReference baseGradient; // Offset: 20 + keen::ObjectReference isolineGradient; // Offset: 36 + keen::ObjectReference fogNoise; // Offset: 52 + keen::uint8 fogZoneBorderSdfDistance; // Offset: 68 + keen::ObjectReference fogZoneBorderGradient; // Offset: 72 + keen::ObjectReference fogZoneTextureNormal; // Offset: 88 + keen::ObjectReference fogZoneTextureDangerous; // Offset: 104 +}; + +struct FbUiTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint8 levelCount; // Offset: 4 + keen::PixelFormat format; // Offset: 5 + keen::TextureType type; // Offset: 6 + keen::ContentHash data; // Offset: 8 + keen::string debugName; // Offset: 24 +}; + +struct FbUiMapResource { + keen::float32 tileSize; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::float2 normalizedTileSize; // Offset: 12 + keen::FbUiTexture baseGradientTexture; // Offset: 20 + keen::FbUiTexture isolineGradientTexture; // Offset: 52 + keen::FbUiTexture fogZoneBorderGradientTexture; // Offset: 84 + keen::FbUiTexture fogNoiseTexture; // Offset: 116 + keen::FbUiTexture fogZoneTextureNormal; // Offset: 148 + keen::FbUiTexture fogZoneTextureDangerous; // Offset: 180 +}; + +struct FbUiMapTileResource { + keen::FbUiTexture mapTexture; // Offset: 0 +}; + +enum class FatalErrorId { + Ok = 0, + Generic = 1, + Graphics_InitializationFailed = 2, + Graphics_DriverTooOld = 3, + Graphics_NoCompatibleDeviceFound = 4, + Graphics_NotEnoughDeviceMemory = 5, + MemorySystem_InitializationFailed = 6, + MemorySystem_NotEnoughMemory = 7, + SaveData_InitalizationFailed = 8, + Online_InitializationFailed = 9, + Steam_CoreResourcePackageNotFound = 10, + Steam_NotSubscribed = 11, +}; + +struct GameBenchmarkSampleZone { + keen::string name; // Offset: 0 + keen::string valueName; // Offset: 8 + keen::Time minDuration; // Offset: 16 + keen::Time maxDuration; // Offset: 24 + keen::Time averageDuration; // Offset: 32 + keen::uint64 minValue; // Offset: 40 + keen::uint64 maxValue; // Offset: 48 + keen::uint64 averageValue; // Offset: 56 + keen::uint32 sampleCount; // Offset: 64 +}; + +struct GameBenchmarkSample { + keen::uint16 frameCount; // Offset: 0 + keen::Time sampleTime; // Offset: 8 + keen::BlobArray zones; // Offset: 16 +}; + +struct GameBenchmarkPlace { + keen::float3 position; // Offset: 0 + keen::HashKey32 instanceHash; // Offset: 12 + keen::BlobArray samples; // Offset: 16 + keen::Guid guid; // Offset: 24 +}; + +struct GameBenchmarkResource { + keen::string description; // Offset: 0 + keen::string bauPath; // Offset: 8 + keen::ContentHash hash; // Offset: 16 +}; + +struct GameBenchmarkResult { + keen::string name; // Offset: 0 + keen::string author; // Offset: 8 + keen::string machine; // Offset: 16 + keen::string engineVersion; // Offset: 24 + keen::CalendarTimeStamp date; // Offset: 32 + keen::BlobArray resources; // Offset: 40 + keen::BlobArray places; // Offset: 48 +}; + +enum class GameFrameworkWindowType { + Fixed = 0, + Resizable = 1, + Fullscreen = 2, +}; + +struct GameFrameworkGraphicsConfig { + keen::StaticArray apiName; // Offset: 0 + keen::GameFrameworkWindowType windowType; // Offset: 128 + keen::sint32 windowPosX; // Offset: 132 + keen::sint32 windowPosY; // Offset: 136 + keen::uint32 windowSizeX; // Offset: 140 + keen::uint32 windowSizeY; // Offset: 144 + keen::uint32 presentationInterval; // Offset: 148 +}; + +struct GameFrameworkConfig { + keen::GameFrameworkGraphicsConfig graphics; // Offset: 0 +}; + +enum class GameUiAxis { + Horizontal = 0, + Vertical = 1, +}; + +enum class GameUiFrameLayout { + Horizontal = 0, + Vertical = 1, + Grid = 2, +}; + +enum class GameUiScrollingSliderStyle { + Solid = 0, + Textured = 1, +}; + +enum class GameUiScrollingHotkeyFlag { + MouseWheel = 0, + Dpad = 1, + LeftStick = 2, + RightStick = 3, + PageKeys = 4, + ArrowKeys = 5, +}; + +enum class GameUiMouseDragInputFlag { + MouseLeft = 0, + MouseRight = 1, + MouseMiddle = 2, +}; + +typedef keen::Bitmask8 GameUiMouseDragInputMask; + +typedef keen::Bitmask8 GameUiScrollingKeyMask; + +struct GameUiScrollbarParameterData { + keen::GameUiAxis direction; // Offset: 0 + keen::UiColor rangeRectColor; // Offset: 4 + keen::UiColor sliderIdleColor; // Offset: 12 + keen::UiColor sliderHoverColor; // Offset: 20 + keen::UiColor sliderOutlineColor; // Offset: 28 + keen::UiNineSliceTexture rangeTexture; // Offset: 36 + keen::UiNineSliceTexture sliderTexture; // Offset: 100 + keen::UiTexture sliderGripTexture; // Offset: 164 + keen::GameUiScrollingSliderStyle sliderStyle; // Offset: 212 + keen::float32 sliderIdleWidth; // Offset: 216 + keen::float32 sliderHoverWidth; // Offset: 220 + keen::float32 baseWidth; // Offset: 224 + keen::float32 rangeTextureWidth; // Offset: 228 + keen::bool useInverseRangeRect; // Offset: 232 + keen::bool useGlobalFocus; // Offset: 233 + keen::bool enableDrag; // Offset: 234 + keen::bool enableTouchDrag; // Offset: 235 + keen::bool forceScrollbar; // Offset: 236 + keen::UiPosition offset; // Offset: 240 + keen::UiBorder padding; // Offset: 248 + keen::UiBorder sliderMargin; // Offset: 264 +}; + +struct GameUiScrollingLayoutParameterData { + keen::UiColor borderColor; // Offset: 0 + keen::UiTexture scrollHintTexture; // Offset: 8 + keen::UiBorder padding; // Offset: 56 + keen::UiAlignment scrollbarAlignment; // Offset: 72 + keen::bool showScrollHint; // Offset: 74 + keen::bool enableScrollbar; // Offset: 75 + keen::bool useNavigation; // Offset: 76 + keen::bool stealCapture; // Offset: 77 + keen::bool doScissorWhenScrolling; // Offset: 78 + keen::bool centerChildren; // Offset: 79 + keen::bool enableDrag; // Offset: 80 + keen::bool forceScrollbar; // Offset: 81 + keen::bool useGlobalFocus; // Offset: 82 + keen::bool useFillerSeperatorLineDistance; // Offset: 83 + keen::bool consumeInput; // Offset: 84 + keen::bool useAutoScrolling; // Offset: 85 + keen::float32 fillerSeperatorLineDistance; // Offset: 88 + keen::float32 spacing; // Offset: 92 + keen::GameUiScrollingKeyMask scrollingHotKeyMask; // Offset: 96 + keen::GameUiMouseDragInputMask mouseDragInputMask; // Offset: 97 + keen::GameUiScrollbarParameterData scrollBar; // Offset: 100 +}; + +struct SlotJointMapping { + keen::string head; // Offset: 0 + keen::string chest; // Offset: 8 + keen::string pelvis; // Offset: 16 + keen::string footL; // Offset: 24 + keen::string footR; // Offset: 32 + keen::string footRL; // Offset: 40 + keen::string footRR; // Offset: 48 + keen::string handR; // Offset: 56 + keen::string handL; // Offset: 64 + keen::string kneeR; // Offset: 72 + keen::string kneeL; // Offset: 80 + keen::string armL; // Offset: 88 + keen::string block; // Offset: 96 +}; + +struct ModelBase { +}; + +struct ModelHierarchy { + keen::string exportNode; // Offset: 0 + keen::float32 scale; // Offset: 8 + keen::float32 xanimScale; // Offset: 12 + keen::bool rotateY; // Offset: 16 + keen::SlotJointMapping slotJointMapping; // Offset: 20 + keen::PreviewModelArray previewModels; // Offset: 124 +}; + +struct ModelHierarchyJointData { + keen::uint32 index; // Offset: 0 + keen::string name; // Offset: 4 + keen::uint32 parentIndex; // Offset: 12 + keen::uint32 tag; // Offset: 16 + keen::Matrix43 defaultPose; // Offset: 32 + keen::bool fixPosition; // Offset: 96 +}; + +struct ModelHierarchyData { + keen::BlobArray joints; // Offset: 0 + keen::uint64 defaultPoseHash; // Offset: 8 + keen::SlotJointMapping slotJointMapping; // Offset: 16 + keen::PreviewModelArray previewModels; // Offset: 120 +}; + +struct ModelPose { + keen::BlobArray data; // Offset: 0 + keen::uint32 alignedJointCount; // Offset: 8 +}; + +struct ModelHierarchyJointDescription { + keen::BlobArray jointDescriptions; // Offset: 0 +}; + +struct ModelHierarchyResource { + keen::Guid hierarchyId; // Offset: 0 + keen::BlobArray jointNames; // Offset: 16 + keen::BlobArray joinParentIndices; // Offset: 24 + keen::BlobArray skinToJointMatrices; // Offset: 32 + keen::uint32 jointCount; // Offset: 40 + keen::ModelPose defaultPose; // Offset: 44 + keen::BlobArray defaultPoseJoints; // Offset: 56 +}; + +struct VertexAttribute { + keen::uint8 id; // Offset: 0 + keen::uint8 format; // Offset: 1 +}; + +enum class GpcVariantFlag { + Debug = 0, + Float16 = 1, +}; + +struct GpcShaderVariant { + keen::Bitmask8 mask; // Offset: 0 + keen::ContentHash code; // Offset: 4 + keen::ContentHash strippedCode; // Offset: 20 +}; + +struct GpcShaderResource { + keen::BlobArray variants; // Offset: 0 + keen::string entryPoint; // Offset: 8 +}; + +enum class GpcPrimitiveType { + TriangleList = 0, + TriangleStrip = 1, + LineList = 2, + PatchList = 3, +}; + +enum class GpcCullMode { + None = 0, + Front = 1, + Back = 2, +}; + +enum class GpcFillMode { + Solid = 0, + Wireframe = 1, +}; + +enum class GpcWindingOrder { + Ccw = 0, + Cw = 1, +}; + +enum class GpcBlendOp { + None = 0, + Add = 1, + Subtract = 2, + RevSubtract = 3, + Min = 4, + Max = 5, +}; + +enum class GpcBlendFactor { + Zero = 0, + One = 1, + SrcColor = 2, + InvSrcColor = 3, + SrcAlpha = 4, + InvSrcAlpha = 5, + DestAlpha = 6, + InvDestAlpha = 7, + DestColor = 8, + InvDestColor = 9, + SrcAlphaSat = 10, +}; + +enum class GpcComparisonFunction { + Never = 0, + Less = 1, + Equal = 2, + LessEqual = 3, + Greater = 4, + NotEqual = 5, + GreaterEqual = 6, + Always = 7, +}; + +struct GpcRasterPipelineResource { + keen::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 8 + keen::BlobArray colorTargetFormats; // Offset: 12 + keen::PixelFormat depthStencilTargetFormat; // Offset: 20 + keen::uint8 sampleCount; // Offset: 21 + keen::GpcPrimitiveType primitiveType; // Offset: 22 + keen::uint8 patchSize; // Offset: 23 + keen::GpcCullMode cullMode; // Offset: 24 + keen::GpcFillMode fillMode; // Offset: 25 + keen::GpcWindingOrder windingOrder; // Offset: 26 + keen::GpcBlendOp blendOp; // Offset: 27 + keen::GpcBlendFactor blendSourceFactor; // Offset: 28 + keen::GpcBlendFactor blendDestFactor; // Offset: 29 + keen::bool sampleShading; // Offset: 30 + keen::bool alphaToCoverage; // Offset: 31 + keen::GpcComparisonFunction depthComparisonFunction; // Offset: 32 + keen::bool depthWriteEnable; // Offset: 33 + keen::float32 constDepthBias; // Offset: 36 + keen::float32 slopeDepthBias; // Offset: 40 + keen::GpcShaderResource vsShaderCode; // Offset: 44 + keen::GpcShaderResource tcShaderCode; // Offset: 60 + keen::GpcShaderResource teShaderCode; // Offset: 76 + keen::GpcShaderResource fsShaderCode; // Offset: 92 +}; + +struct GpcComputePipelineResource { + keen::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 8 + keen::uint3 groupSize; // Offset: 12 + keen::GpcShaderResource computeShader; // Offset: 24 +}; + +struct GpcResource { + keen::HashKey32 signatureHash; // Offset: 0 + keen::BlobArray rasterPipelines; // Offset: 4 + keen::BlobArray computePipelines; // Offset: 12 +}; + +struct GpcResourceList { + keen::string path; // Offset: 0 +}; + +typedef keen::uint32 gpu.u32; + +typedef keen::sint32 gpu.s32; + +typedef keen::float32 gpu.f32; + +typedef keen::uint32 gpu.u32_1; + +typedef keen::uint2 gpu.u32_2; + +typedef keen::uint3 gpu.u32_3; + +typedef keen::uint4 gpu.u32_4; + +typedef keen::sint32 gpu.s32_1; + +typedef keen::int2 gpu.s32_2; + +typedef keen::int3 gpu.s32_3; + +typedef keen::int4 gpu.s32_4; + +typedef keen::float32 gpu.f32_1; + +typedef keen::float2 gpu.f32_2; + +typedef keen::float3 gpu.f32_3; + +typedef keen::float4 gpu.f32_4; + +struct GraphicsMatrix43 { + keen::float4 row0; // Offset: 0 + keen::float4 row1; // Offset: 16 + keen::float4 row2; // Offset: 32 +}; + +typedef keen::GraphicsMatrix43 gpu.f32_3x4; + +struct GraphicsMatrix44 { + keen::float4 row0; // Offset: 0 + keen::float4 row1; // Offset: 16 + keen::float4 row2; // Offset: 32 + keen::float4 row3; // Offset: 48 +}; + +typedef keen::GraphicsMatrix44 gpu.f32_4x4; + +struct GraphicsDrawIndirectParameter { + keen::uint32 vertexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 vertexOffset; // Offset: 8 + keen::uint32 instanceOffset; // Offset: 12 +}; + +typedef keen::GraphicsDrawIndirectParameter gpu.DrawIndirectParameter; + +struct GraphicsDrawIndexedIndirectParameter { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 +}; + +typedef keen::GraphicsDrawIndexedIndirectParameter gpu.DrawIndexedIndirectParameter; + +struct GraphicsDispatchIndirectParameter { + keen::uint32 groupCountX; // Offset: 0 + keen::uint32 groupCountY; // Offset: 4 + keen::uint32 groupCountZ; // Offset: 8 +}; + +typedef keen::GraphicsDispatchIndirectParameter gpu.DispatchIndirectParameter; + +struct BindlessTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_uint { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSystemInformation { + keen::StaticArray description; // Offset: 0 + keen::StaticArray model; // Offset: 64 + keen::uint64 videoMemorySize; // Offset: 128 + keen::uint64 sharedMemorySize; // Offset: 136 + keen::bool hasDirectX9; // Offset: 144 + keen::bool hasDirectX11; // Offset: 145 + keen::bool hasGl1; // Offset: 146 + keen::bool hasGl2; // Offset: 147 + keen::bool hasGl3; // Offset: 148 + keen::bool hasGl4; // Offset: 149 + keen::bool hasGles2; // Offset: 150 + keen::bool hasGles3; // Offset: 151 + keen::bool hasMetal; // Offset: 152 + keen::bool hasVulkan; // Offset: 153 +}; + +struct DisplaySystemInformation { + keen::StaticArray description; // Offset: 0 + keen::uint32 gpuIndex; // Offset: 64 + keen::uint32 pixelWidth; // Offset: 68 + keen::uint32 pixelHeight; // Offset: 72 + keen::float32 aspectRatio; // Offset: 76 + keen::uint32 dpi; // Offset: 80 +}; + +struct GraphicsSystemInformation { + keen::uint32 totalPixelWidth; // Offset: 0 + keen::uint32 totalPixelHeight; // Offset: 4 + keen::uint32 gpuCount; // Offset: 8 + keen::uint32 displayCount; // Offset: 12 + keen::StaticArray gpus; // Offset: 16 + keen::StaticArray displays; // Offset: 656 +}; + +enum class GraphicsBlendOperation { + None = 0, + Add = 1, + Subtract = 2, + RevSubtract = 3, + Min = 4, + Max = 5, +}; + +enum class GraphicsBlendFactor { + Zero = 0, + One = 1, + SrcColor = 2, + InvSrcColor = 3, + SrcAlpha = 4, + InvSrcAlpha = 5, + DestAlpha = 6, + InvDestAlpha = 7, + DestColor = 8, + InvDestColor = 9, + SrcAlphaSat = 10, +}; + +enum class GraphicsFillMode { + Wireframe = 0, + Solid = 1, +}; + +enum class GraphicsCullMode { + None = 0, + Front = 1, + Back = 2, +}; + +enum class GraphicsWindingOrder { + Ccw = 0, + Cw = 1, +}; + +enum class GraphicsSamplerFilterMode { + Nearest = 0, + Linear = 1, +}; + +enum class GraphicsSamplerAddressMode { + Wrap = 0, + Mirror = 1, + Clamp = 2, +}; + +enum class GraphicsComparisonFunction { + Never = 0, + Less = 1, + Equal = 2, + LessEqual = 3, + Greater = 4, + NotEqual = 5, + GreaterEqual = 6, + Always = 7, +}; + +enum class GraphicsStencilOperation { + Keep = 0, + Zero = 1, + Replace = 2, + Increment = 3, + Decrement = 4, + IncrementWrap = 5, + DecrementWrap = 6, + Invert = 7, +}; + +enum class GraphicsColorWriteFlag { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +enum class GraphicsDeviceMemoryPriority { + Lowest = 0, + Low = 1, + Normal = 2, + High = 3, + Highest = 4, +}; + +enum class DlssQualityPreset { + MaxPerf = 0, + Balanced = 1, + MaxQuality = 2, + UltraPerformance = 3, + UltraQuality = 4, + Dlaa = 5, +}; + +struct HistogramData { + keen::BlobString id; // Offset: 0 + keen::BlobArray slots; // Offset: 8 + keen::uint32 valueCount; // Offset: 16 + keen::sint64 valueSum; // Offset: 24 + keen::sint64 minValue; // Offset: 32 + keen::sint64 maxValue; // Offset: 40 + keen::sint64 rangeStart; // Offset: 48 + keen::sint64 rangeEnd; // Offset: 56 + keen::bool isLinear; // Offset: 64 + keen::bool isTime; // Offset: 65 +}; + +struct HolisticEngineVersion { + keen::string gitHash; // Offset: 0 +}; + +enum class HolisticSceneRenderFlag { + Sdf = 0, + SdfBvh = 1, + NeutralAlbedo = 2, + OrientationCoordinateFrame = 3, + Triggers = 4, + Grid = 5, + ScatterRadii = 6, + OnlyLocalVoxels = 7, + VisualizeIbl = 8, + SolidColliders = 9, + TintSubEntities = 10, + WhiteboxModelOverlay = 11, + Cloth = 12, + ModelChunks = 13, + DisableCardClusterShadows = 14, +}; + +typedef keen::Bitmask32 HolisticSceneRenderFlags; + +enum class SceneCameraSpeed { + VerySlow = 0, + Slow = 1, + Medium = 2, + Fast = 3, + VeryFast = 4, +}; + +enum class SceneCameraSpeedBoostFactor { + X4 = 0, + X8 = 1, + X16 = 2, +}; + +struct HolisticSceneCameraSettings { + keen::SceneCameraSpeed cameraSpeed; // Offset: 0 + keen::SceneCameraSpeedBoostFactor cameraSpeedBoost; // Offset: 1 + keen::float farClip; // Offset: 4 + keen::float fovY; // Offset: 8 +}; + +struct HolisticSceneEditorLighting { + keen::float4 sunColor; // Offset: 0 + keen::float iblIntensity; // Offset: 16 + keen::float editorFixedExposure; // Offset: 20 + keen::bool forceEditorLighting; // Offset: 24 +}; + +enum class HolisticSnappingFlag { + Grid = 0, + Ground = 1, +}; + +typedef keen::Bitmask32 HolisticSnappingFlags; + +enum class HolisticSceneViewOverlay { + Camera = 0, + Environment = 1, + RenderGraph = 2, + RenderFeatures = 3, + Shading = 4, + Time = 5, + Disolve = 6, + Wind = 7, + Snapping = 8, + NonSelectableTypes = 9, + BlendShape = 10, + ColorGradient = 11, + AlbedoTintColors = 12, +}; + +typedef keen::Bitmask32 HolisticSceneViewOverlays; + +struct HolisticSceneSnappingSettings { + keen::uint32 gridSize; // Offset: 0 + keen::float32 angleStep; // Offset: 4 + keen::HolisticSnappingFlags lockedSnappingFlags; // Offset: 8 +}; + +struct HolisticOverlaySettings { + keen::HolisticSceneViewOverlays overlays; // Offset: 0 + keen::bool showOverlays; // Offset: 4 + keen::bool isNonSelectableOverlayExpanded; // Offset: 5 + keen::bool isCustomLightOverlayExpanded; // Offset: 6 + keen::StaticArray isAlbedoTintLayerOverlayExpanded; // Offset: 7 +}; + +struct HolisticSceneToolboxSettings { + keen::bool randomRotateY; // Offset: 0 + keen::bool alignToNormal; // Offset: 1 +}; + +struct HolisticPersistentSceneSettings { + keen::HolisticSceneCameraSettings camera; // Offset: 0 + keen::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::HolisticSceneSnappingSettings snapping; // Offset: 40 + keen::HolisticOverlaySettings overlaySettings; // Offset: 52 + keen::HolisticSceneToolboxSettings toolbox; // Offset: 64 +}; + +struct HolisticPersistentPreviewSettings { + keen::HolisticSceneCameraSettings camera; // Offset: 0 + keen::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::HolisticOverlaySettings overlaySettings; // Offset: 40 +}; + +struct HolisticPersistentUserSettings { + keen::HolisticPersistentSceneSettings scene; // Offset: 0 + keen::HolisticPersistentPreviewSettings preview; // Offset: 68 +}; + +struct HolisticVfxTestParameters { + keen::WorldTransform worldTransform; // Offset: 0 + keen::float3 targetPosition; // Offset: 56 +}; + +struct HolisticMapFilterCollection { +}; + +struct HolisticMapFilterDirectory { +}; + +struct HolisticMapFilter { + keen::float markerSize; // Offset: 0 + keen::Color color; // Offset: 4 + keen::bool isVisible; // Offset: 8 +}; + +struct Folder { +}; + +struct ImporterModelConfig { + keen::BlobArray parentNamePatters; // Offset: 0 + keen::BlobArray nameIncludePatters; // Offset: 8 + keen::BlobArray nameExcludePatters; // Offset: 16 +}; + +struct ImporterTemplate { +}; + +struct ImporterTemplateObject { + keen::string descriptionFormat; // Offset: 0 + keen::string type; // Offset: 8 + keen::string initialState; // Offset: 16 + keen::uint32 sortIndex; // Offset: 24 + keen::Guid containerId; // Offset: 28 +}; + +enum class ImporterAction { + Nothing = 0, +}; + +typedef keen::string SourceFileHash; + +struct ImporterFileTemplate { + keen::string extension; // Offset: 0 + keen::ImporterAction action; // Offset: 8 + keen::SourceFileHash contentHash; // Offset: 12 +}; + +struct TagCollection { +}; + +struct ObjectTagGroup { + keen::Color color; // Offset: 0 +}; + +struct ObjectTag { +}; + +typedef keen::ObjectReference TagReference; + +struct TagDirectoryContent { + keen::BlobArray tags; // Offset: 0 + keen::BlobArray groups; // Offset: 8 +}; + +enum class HolisticImporterObjectType { + Invalid = 0, + Unknown = 1, + SourceData = 2, + Image = 3, + Model = 4, + ModelHierarchy = 5, + Animation = 6, + Substance = 7, + ChunkedImage = 8, + VfxShader = 9, + VoxelObject = 10, + VoxelRoadShape = 11, + Midi = 12, + Sound = 13, + InstrumentSample = 14, + Text = 15, +}; + +struct SourceFile { + keen::SourceFileHash fileHash; // Offset: 0 + keen::HolisticImporterObjectType targetType; // Offset: 8 +}; + +typedef keen::ObjectReference SourceFileReference; + +struct SourceData { + keen::SourceFileHash dataHash; // Offset: 0 +}; + +typedef keen::ObjectReference SourceDataReference; + +struct WhiteboxTagDirectory { +}; + +struct WhiteboxTagGroup { + keen::Color color; // Offset: 0 +}; + +struct WhiteboxTag { +}; + +struct LootTagGroup { + keen::Color color; // Offset: 0 +}; + +struct LootTag { +}; + +struct DefaultLootLabelCollectionRootDirectory { +}; + +struct DefaultLootLabelCollectionDirectory { +}; + +struct DefaultLootLabelCollection { +}; + +struct DungeonRoomContextTag { + keen::bool invert; // Offset: 0 +}; + +struct DungeonRoomGroundContextTag { +}; + +struct DungeonRoomCeilingContextTag { +}; + +typedef keen::ObjectReference WhiteboxTagReference; + +typedef keen::ObjectReference WhiteboxTagGroupReference; + +struct WhiteboxTagInstance { + keen::WhiteboxTagReference tag; // Offset: 0 +}; + +typedef keen::ObjectReference LootTagReference; + +struct LootTagInstance { + keen::LootTagReference tag; // Offset: 0 + keen::float32 itemLootWeight; // Offset: 16 +}; + +struct WhiteboxTagInfo { + keen::Guid instance; // Offset: 0 + keen::WhiteboxTagReference tag; // Offset: 16 + keen::WhiteboxTagGroupReference group; // Offset: 32 +}; + +struct WhiteboxTagInheritanceInfo { + keen::Guid parentId; // Offset: 0 + keen::Guid tagGuid; // Offset: 16 +}; + +struct WhiteboxTagInheritanceList { + keen::BlobArray inheritedTags; // Offset: 0 +}; + +enum class ImageType { + _1d = 0, + _2d = 1, + _3d = 2, +}; + +enum class ImageColorSpace { + Linear = 0, + sRGB = 1, +}; + +enum class ImageContentType { + Unknown = 0, + Albedo = 1, + Normal = 2, + Opacity = 3, + Height = 4, + Roughness = 5, + Metallic = 6, + Reflectance = 7, + AmbientOcclusion = 8, + Emissive = 9, + UvDistortion = 10, +}; + +struct Image { + keen::ImageType type; // Offset: 0 + keen::BlobString slice; // Offset: 4 + keen::BlobString alphaChannel; // Offset: 12 + keen::ImageColorSpace colorSpace; // Offset: 20 + keen::ImageContentType contentType; // Offset: 24 + keen::uint32 sizeDivider; // Offset: 28 + keen::uint32 slices; // Offset: 32 + keen::uint32 sliceRows; // Offset: 36 +}; + +struct ImageInfo { + keen::uint32 width; // Offset: 0 + keen::uint32 height; // Offset: 4 + keen::uint32 depth; // Offset: 8 + keen::BlobString name; // Offset: 12 +}; + +struct ChunkedImage { + keen::uint2 tileSize; // Offset: 0 + keen::uint2 numTiles; // Offset: 8 + keen::uint2 dimension; // Offset: 16 +}; + +struct ImageColorRange { + keen::float4 averageColor; // Offset: 0 + keen::float4 minColor; // Offset: 16 + keen::float4 maxColor; // Offset: 32 +}; + +enum class ScatterImageType { + Default = 0, + Heightmap = 1, +}; + +struct ScatterImage { + keen::ScatterImageType type; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 4 +}; + +struct ScatterImageMetaData { + keen::ChunkedImage chunkedImage; // Offset: 8 +}; + +struct ScatterImageAreaMetaData { + keen::uint2 tileRangeX; // Offset: 32 + keen::uint2 tileRangeY; // Offset: 40 +}; + +struct ScatterImageLoadParameters { + keen::Guid imageGuid; // Offset: 48 + keen::uint32 channel; // Offset: 64 +}; + +struct GameKnowledgeDirectory { + keen::ObjectReference itemDirectory; // Offset: 0 + keen::ObjectReference dialogDirectory; // Offset: 16 + keen::ObjectReference recipeDirectory; // Offset: 32 + keen::ObjectReference journalDirectory; // Offset: 48 +}; + +struct GameKnowledgeSubDirectory { +}; + +struct GameKnowledgeObjectBase { + keen::bool sendToAnalytics; // Offset: 0 +}; + +struct WorldKnowledgeObject { + keen::bool generateAdditionalPlayerKnowledge; // Offset: 1 +}; + +struct PlayerKnowledgeObject { + keen::bool unlocksSkillPoints; // Offset: 1 + keen::uint8 unlockedSkillPoints; // Offset: 2 + keen::ObjectReference experienceGain; // Offset: 4 + keen::AchievementDataReference unlockAchievement; // Offset: 20 +}; + +struct SceneKnowledgeRequirement { + keen::ecs::TemplateReference targetSubentity; // Offset: 104 +}; + +struct KnowledgeObjectInfo { + keen::KnowledgeId id; // Offset: 0 + keen::string name; // Offset: 4 + keen::bool isPlayerKnowledge; // Offset: 12 + keen::bool generateAdditionalPlayerKnowledge; // Offset: 13 + keen::bool sendToAnalytics; // Offset: 14 + keen::uint8 unlockedSkillPoints; // Offset: 15 + keen::HashKey32 experienceGainId; // Offset: 16 + keen::AchievementId achievementId; // Offset: 20 +}; + +struct KnowledgeExperienceCountInfo { + keen::BlobArray experienceObjects; // Offset: 0 +}; + +struct KnowledgeExperienceCount { + keen::HashKey32 experienceObjectId; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct KnowledgeObjectResource { + keen::KnowledgeId id; // Offset: 0 + keen::bool sendToAnalytics; // Offset: 4 +}; + +struct WorldKnowledgeObjectResource { + keen::bool hasOptionalPlayerProgression; // Offset: 8 +}; + +struct PlayerKnowledgeObjectResource { + keen::uint8 unlockedSkillPoints; // Offset: 8 + keen::HashKey32 experienceGainId; // Offset: 12 + keen::AchievementId achievementId; // Offset: 16 +}; + +struct GameKnowledgeResource { + keen::BlobArray worldKnowledge; // Offset: 0 + keen::BlobArray playerKnowledge; // Offset: 8 + keen::BlobArray dialogKnowledgeIds; // Offset: 16 + keen::BlobArray itemKnowledgeIds; // Offset: 24 +}; + +struct GameKnowledgeDbInfo { + keen::BlobArray worldKnowledgeObjects; // Offset: 0 + keen::BlobArray playerKnowledgeObjects; // Offset: 8 +}; + +struct KnowledgeQueryDirectory { + keen::ObjectReference knowledgeDirectory; // Offset: 0 + keen::ObjectReference demoKnowledge; // Offset: 16 +}; + +struct KnowledgeQuerySubDirectory { +}; + +enum class KnowledgeQueryOperator { + AND = 0, + OR = 1, + XOR = 2, +}; + +struct GameKnowledgeQuery { + keen::KnowledgeQueryOperator type; // Offset: 0 + keen::bool invert; // Offset: 1 +}; + +struct BaseKnowledgeQueryAction { + keen::bool invert; // Offset: 0 +}; + +struct KnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::ObjectReference worldKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 +}; + +struct ItemKnowledgeQueryAction { + keen::ItemKnowledgeTrigger itemKnowledge; // Offset: 1 + keen::bool worldItemKnowledge; // Offset: 2 + keen::ObjectReference item; // Offset: 4 +}; + +struct DialogKnowledgeQueryAction { + keen::ObjectReference dialogOption; // Offset: 4 +}; + +enum class NpcQueryActionType { + IsSpawned = 0, + CraftingPropPlaced = 1, + IsSheltered = 2, + SufficientComfortLevel = 3, +}; + +struct NpcQueryAction { + keen::NpcQueryActionType type; // Offset: 1 + keen::ObjectReference npc; // Offset: 4 + keen::ecs::TemplateReference npcEntity; // Offset: 20 + keen::ObjectReference requiredCraftingProp; // Offset: 36 +}; + +struct CraftingQueryAction { + keen::ObjectReference recipe; // Offset: 4 +}; + +struct PredefinedKnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::PredefinedKnowledgeTypes knowledge; // Offset: 2 +}; + +enum class CompareOperator { + GreaterThan = 0, + LessThan = 1, + Equals = 2, +}; + +struct FlameAltarCountQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct FlameAltarLevelQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct MotherFlameLevelQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct PlayerLevelQueryAction { + keen::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct OtherQueryAction { + keen::ObjectReference query; // Offset: 4 +}; + +struct InventoryQueryAction { + keen::ObjectReference item; // Offset: 4 +}; + +enum class KnowledgeQueryActionType { + Knowledge = 0, + Query = 1, + Inventory = 2, + Npc = 3, + FlameAltarCount = 4, + FlameAltarLevel = 5, + MotherFlameLevel = 6, + PlayerLevel = 7, +}; + +struct KnowledgeQueryActionInfo { + keen::KnowledgeQueryActionType type; // Offset: 0 + keen::string name; // Offset: 4 + keen::KnowledgeId queryId; // Offset: 12 + keen::uint32 queryIndex; // Offset: 16 + keen::uint32 playerProgressionQueryIndex; // Offset: 20 + keen::bool invertResult; // Offset: 24 + keen::bool isPlayerAction; // Offset: 25 +}; + +enum class KnowledgeQueryType { + SimpleQuery = 0, + ANDQuery = 1, + ORQuery = 2, + XORQuery = 3, + InventoryQuery = 4, + NpcQuery = 5, + FlameAltarCountQuery = 6, + FlameAltarLevelQuery = 7, + MotherFlameLevelQuery = 8, + PlayerLevelQuery = 9, +}; + +struct GameKnowledgeQueryResourceBase { + keen::string name; // Offset: 0 + keen::KnowledgeId queryId; // Offset: 8 + keen::uint32 queryIndex; // Offset: 12 + keen::KnowledgeQueryType type; // Offset: 16 + keen::bool isPlayerQuery; // Offset: 17 + keen::bool invertResult; // Offset: 18 +}; + +struct GameKnowledgeQueryResource { + keen::bool hasOptionalPlayerProgression; // Offset: 20 + keen::BlobArray actions; // Offset: 24 +}; + +struct GameRuntimeQueryResource { + keen::ItemReference itemRef; // Offset: 20 + keen::ItemId itemId; // Offset: 36 + keen::NpcQueryActionType npcActionType; // Offset: 40 + keen::NpcId npcId; // Offset: 44 + keen::CraftingPropId craftingProp; // Offset: 48 + keen::CompareOperator compareOperation; // Offset: 52 + keen::uint16 compareValue; // Offset: 54 +}; + +struct GameKnowledgeQueryResourceDb { + keen::KnowledgeId demoKnowledgeId; // Offset: 0 + keen::uint32 playerQueryStartIndex; // Offset: 4 + keen::uint32 runtimePlayerQueryStartIndex; // Offset: 8 + keen::BlobArray queries; // Offset: 12 + keen::BlobArray runtimeQueries; // Offset: 20 +}; + +enum class RecipeKnowledgeType { + Inspect = 0, + Craft = 1, +}; + +struct GameKnowledgeQueryTriggerSubDirectory { +}; + +struct GameKnowledgeQueryTriggerDirectory { + keen::ObjectReference knowledgeQueries; // Offset: 0 +}; + +struct GameKnowledgeQueryTrigger { + keen::bool canUnlockKnowledge; // Offset: 0 + keen::bool canRemoveKnowledge; // Offset: 1 + keen::GameKnowledgeRequirement requirement; // Offset: 4 + keen::KnowledgeId queryId; // Offset: 108 + keen::BlobArray unlockKnowledge; // Offset: 112 +}; + +struct GameKnowledgeQueryTriggerResource { + keen::BlobArray worldQueries; // Offset: 0 + keen::BlobArray playerQueries; // Offset: 8 +}; + +enum class DebugKnowledgeQuerySource { + Server = 0, + Client = 1, +}; + +struct DebugServerKnowledgeMessage { + keen::uint16 changeCounter; // Offset: 0 + keen::uint16 playerIndex; // Offset: 2 + keen::bool isPlayerKnowledge; // Offset: 4 + keen::BlobArray unlockedKnowledge; // Offset: 8 +}; + +struct DebugResetKnowledgeMessage { + keen::bool isPlayerKnowledge; // Offset: 0 +}; + +struct DebugUnlockFullKnowledgeMessage { + keen::bool unlockPlayerKnowledge; // Offset: 0 +}; + +struct DebugToggleKnowledgeMessage { + keen::KnowledgeId knowledgeId; // Offset: 0 + keen::bool resultState; // Offset: 4 + keen::bool isPlayerKnowledge; // Offset: 5 + keen::uint16 playerIndex; // Offset: 6 +}; + +enum class DebugKnowledgeQueryResultType { + World = 0, + Player = 1, + RuntimeWorld = 2, + RuntimePlayer = 3, +}; + +struct DebugKnowledgeQueryResult { + keen::DebugKnowledgeQueryResultType type; // Offset: 0 + keen::uint32 queryIndex; // Offset: 4 + keen::bool isPending; // Offset: 8 + keen::bool isPendingPersonal; // Offset: 9 + keen::bool result; // Offset: 10 + keen::bool resultPersonal; // Offset: 11 +}; + +struct SceneKnowledgeOverride { + keen::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct SceneKnowledgeTriggerOverride { + keen::GameKnowledgeTrigger knowledgeTrigger; // Offset: 16 +}; + +struct SceneKnowledgeRequirementOverride { + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 16 +}; + +struct SceneKnowledgeMapMarkerOverride { + keen::GameKnowledgeRequirement hintState; // Offset: 16 + keen::GameKnowledgeRequirement visibleState; // Offset: 120 + keen::bool hasCompletedState; // Offset: 224 + keen::GameKnowledgeRequirement completedState; // Offset: 228 +}; + +enum class SceneKnowledgeOverrideType { + KnowledgeTrigger = 0, + KnowledgeQuery = 1, + MapMarker = 2, +}; + +struct SceneKnowledgeOverrideInfo { + keen::Guid entityTemplateGuid; // Offset: 0 + keen::SceneKnowledgeOverrideType type; // Offset: 16 + keen::KnowledgeId knowledgeId; // Offset: 20 + keen::KnowledgeId knowledgeId2; // Offset: 24 + keen::KnowledgeId knowledgeId3; // Offset: 28 +}; + +struct SceneKnowledgeOverrides { + keen::BlobArray knowledgeOverrides; // Offset: 0 +}; + +struct DebugKnowledgeQueryResults { + keen::BlobArray results; // Offset: 0 + keen::uint8 playerIndex; // Offset: 8 +}; + +struct LocaTagGroup { +}; + +typedef keen::Bitmask64 LocaLanguages; + +typedef keen::ObjectReference LocaCrowdinProjectReference; + +struct LocaCrowdinProject { + keen::LanguageId inputLanguage; // Offset: 0 + keen::LocaCrowdinProjectReference inputProject; // Offset: 4 + keen::LocaLanguages outputLanguages; // Offset: 24 + keen::uint64 projectId; // Offset: 32 + keen::uint64 fileId; // Offset: 40 + keen::bool onlyApproved; // Offset: 48 + keen::SourceFileReference crowdinCSV; // Offset: 52 +}; + +struct LocaTagCollection { + keen::LocaCrowdinProjectReference crowdinWritingProject; // Offset: 0 + keen::LocaCrowdinProjectReference crowdinTranslationProject; // Offset: 16 +}; + +struct LocaTagCollectionResourceLanguage { + keen::LanguageId language; // Offset: 0 + keen::ContentHash dataHash; // Offset: 4 +}; + +struct LocaTagCollectionResource { + keen::ContentHash keenglishDataHash; // Offset: 0 + keen::BlobArray languages; // Offset: 16 +}; + +enum class LocaArgumentType { + Generic = 0, + Input = 1, + Config = 2, + Balancing = 3, +}; + +struct LocaTagArgument { + keen::uint32 id; // Offset: 0 + keen::LocaArgumentType type; // Offset: 4 +}; + +struct LocaTagResource { + keen::LocaTagId id; // Offset: 0 + keen::string text; // Offset: 4 + keen::BlobArray arguments; // Offset: 12 + keen::uint32 genericArguments; // Offset: 20 +}; + +struct LocaTagCollectionResourceData { + keen::BlobArray tags; // Offset: 0 +}; + +enum class AxisAlignedDirection { + AxisAlignedDirection_NegX = 0, + AxisAlignedDirection_PosX = 1, + AxisAlignedDirection_NegY = 2, + AxisAlignedDirection_PosY = 3, + AxisAlignedDirection_NegZ = 4, + AxisAlignedDirection_PosZ = 5, + AxisAlignedDirection_Count = 6, +}; + +struct BSpline { + keen::BlobArray controlPoints; // Offset: 0 + keen::bool closed; // Offset: 8 +}; + +struct Vector4 { +}; + +struct Matrix44 { + keen::Vector4 x; // Offset: 0 + keen::Vector4 y; // Offset: 16 + keen::Vector4 z; // Offset: 32 + keen::Vector4 w; // Offset: 48 +}; + +struct Sphere { + keen::float3 center; // Offset: 0 + keen::float32 radius; // Offset: 12 +}; + +struct MemorySystemInformationBlock { + keen::StaticArray name; // Offset: 0 + keen::uint32 size; // Offset: 32 + keen::uint16 type; // Offset: 36 +}; + +struct MemorySystemInformation { + keen::uint64 totalSize; // Offset: 0 + keen::uint64 allocatedSize; // Offset: 8 + keen::uint64 freeSize; // Offset: 16 + keen::StaticArray memoryBlocks; // Offset: 24 + keen::uint32 memoryBlockCount; // Offset: 1304 +}; + +struct Midi { +}; + +enum class MidiInstrumentSampleType { + Lute = 0, + LuteChord = 1, + Flute = 2, + Harp = 3, + DounDoun = 4, + Tambourin = 5, +}; + +struct InstrumentSampleCollection { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct InstrumentSample { + keen::bool isPitched; // Offset: 0 + keen::uint8 baseNote; // Offset: 1 + keen::float32 fineTune; // Offset: 4 + keen::float32 volume; // Offset: 8 +}; + +struct SamplerInstrument { + keen::float32 volume; // Offset: 0 + keen::uint32 releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::MidiInstrumentSampleType instrument; // Offset: 9 +}; + +struct SamplerInstrumentLayer { + keen::ObjectReference sample; // Offset: 0 + keen::uint8 minNote; // Offset: 16 + keen::uint8 maxNote; // Offset: 17 + keen::uint8 minVelocity; // Offset: 18 + keen::uint8 maxVelocity; // Offset: 19 +}; + +struct InstrumentSampleData { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::BlobArray samples; // Offset: 8 +}; + +struct SamplerInstrumentResourceSample { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::uint8 minNote; // Offset: 8 + keen::uint8 maxNote; // Offset: 9 + keen::uint8 minVelocity; // Offset: 10 + keen::uint8 maxVelocity; // Offset: 11 + keen::uint32 sampleOffset; // Offset: 12 + keen::uint32 sampleLength; // Offset: 16 +}; + +struct SamplerInstrumentResource { + keen::float volume; // Offset: 0 + keen::float releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::BlobArray samples; // Offset: 12 + keen::ContentHash sampleData; // Offset: 20 + keen::MidiInstrumentSampleType instrument; // Offset: 36 +}; + +struct MidiEvent { + keen::uint32 timestamp; // Offset: 0 + keen::uint8 eventType; // Offset: 4 + keen::uint8 subType; // Offset: 5 + keen::uint8 param1; // Offset: 6 + keen::uint8 param2; // Offset: 7 +}; + +enum class MidiTrackRole { + Lead = 0, + Chord = 1, + Back = 2, +}; + +struct MidiTrack { + keen::string name; // Offset: 0 + keen::string instrumentName; // Offset: 8 + keen::MidiInstrumentSampleType instrument; // Offset: 16 + keen::MidiTrackRole role; // Offset: 17 + keen::BlobArray events; // Offset: 20 +}; + +struct MidiTimeSignature { + keen::uint8 numerator; // Offset: 0 + keen::uint8 denominator; // Offset: 1 + keen::uint8 amountOf32NotesInQN; // Offset: 2 + keen::uint8 metronomeTicksPQN; // Offset: 3 +}; + +struct MidiResource { + keen::MidiTimeSignature timeSignature; // Offset: 0 + keen::uint16 pulsesPQN; // Offset: 4 + keen::bool isSMPTE; // Offset: 6 + keen::BlobArray tracks; // Offset: 8 + keen::uint32 songDurationMS; // Offset: 16 + keen::string debugName; // Offset: 20 +}; + +typedef keen::ObjectReference MidiResourceReference; + +struct NotifierContainer { +}; + +enum class CharacterUtterance { + Invalid = 0, + Attack_Long = 1, + Attack_Short = 2, + Attack_Finisher = 3, + Attack_Chain_Finisher = 4, + Attack_Roll_Finisher = 5, + Die = 6, + Hit = 7, + Jump = 8, + Exhausted = 9, + StaminaDrain = 10, + Customization = 11, + Count = 11, +}; + +struct VoicePack { + keen::SoundContainerReference attackShort; // Offset: 0 + keen::SoundContainerReference attackLong; // Offset: 16 + keen::SoundContainerReference attackFinisher; // Offset: 32 + keen::SoundContainerReference attackChainFinisherLong; // Offset: 48 + keen::SoundContainerReference attackRollFinisher; // Offset: 64 + keen::SoundContainerReference die; // Offset: 80 + keen::SoundContainerReference hit; // Offset: 96 + keen::SoundContainerReference jump; // Offset: 112 + keen::SoundContainerReference exhausted; // Offset: 128 + keen::SoundContainerReference staminaDrain; // Offset: 144 + keen::SoundContainerReference customization; // Offset: 160 +}; + +struct VoicePackResource { + keen::StaticArray sound; // Offset: 0 +}; + +typedef keen::ObjectReference VoicePackResourceReference; + +struct VoicePackSubDirectory { +}; + +struct VoicePackDirectory { +}; + +struct VoicePackDirectoryResource { + keen::BlobArray voicePacks; // Offset: 0 +}; + +struct Notifier { + keen::VfxReference defaultVfx; // Offset: 0 + keen::SoundContainerReference defaultSound; // Offset: 16 + keen::CharacterUtterance playerVoice; // Offset: 32 +}; + +struct NotifierResource { + keen::ObjectReference defaultVfx; // Offset: 0 + keen::VfxUserEffectParameterDataBlock defaultVfxInitParameters; // Offset: 16 + keen::SoundContainerReference defaultSound; // Offset: 80 + keen::CharacterUtterance playerVoice; // Offset: 96 +}; + +struct NotifierEventBase { + keen::AttachmentSlot slot; // Offset: 96 + keen::ecs::Offset notifierOffset; // Offset: 100 + keen::bool attach; // Offset: 140 + keen::bool cancelFromActorSequence; // Offset: 141 +}; + +enum class FootId { + Left = 0, + Right = 1, +}; + +struct FootPassingEvent { + keen::FootId foot; // Offset: 96 +}; + +struct NotifierEvent { + keen::NotifierReference notifier; // Offset: 144 +}; + +struct VfxNotifierEvent { + keen::VfxReference vfx; // Offset: 144 + keen::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 160 +}; + +struct SfxNotifierEvent { + keen::SoundContainerReference sound; // Offset: 144 + keen::float32 noiseRange; // Offset: 160 +}; + +struct EnvironmentEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::EnvironmentEffectType environmentEffectType; // Offset: 160 + keen::float32 rayOffsetY; // Offset: 164 + keen::float32 rayLength; // Offset: 168 +}; + +struct FoleyEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::FoleyType foleyType; // Offset: 160 +}; + +struct ClothSimulationEventModel { + keen::ObjectReference model; // Offset: 0 +}; + +struct ClothSimulationEvent { + keen::ObjectReference model; // Offset: 96 + keen::float32 damping; // Offset: 112 + keen::float32 linearInertia; // Offset: 116 + keen::float32 angularInertia; // Offset: 120 + keen::float32 centrifugalInertia; // Offset: 124 + keen::float32 solverFrequency; // Offset: 128 + keen::float32 collisionFriction; // Offset: 132 + keen::float32 motionConstraintsMaxRadius; // Offset: 136 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 140 + keen::float32 gravity; // Offset: 144 + keen::BlobArray models; // Offset: 148 +}; + +struct ClothSimulationResetVelocityEvent { +}; + +struct ChainSimulationEvent { + keen::float32 damping; // Offset: 96 + keen::float32 linearInertia; // Offset: 100 + keen::float32 angularInertia; // Offset: 104 + keen::float32 centrifugalInertia; // Offset: 108 + keen::float32 collisionFriction; // Offset: 112 + keen::float32 motionConstraintRadius; // Offset: 116 + keen::float32 gravity; // Offset: 120 + keen::BlobArray models; // Offset: 124 +}; + +enum class CpuArchitecure { + Unknown = 0, + X86 = 1, + X64 = 2, + Arm7 = 3, + Count = 4, +}; + +struct CpuSystemInformation { + keen::CpuArchitecure architecture; // Offset: 0 + keen::uint32 bitCount; // Offset: 4 + keen::uint32 cpuCount; // Offset: 8 + keen::uint32 threadCount; // Offset: 12 + keen::StaticArray vendorId; // Offset: 16 + keen::StaticArray brand; // Offset: 32 + keen::bool hasSSE2; // Offset: 96 + keen::bool hasSSE42; // Offset: 97 + keen::bool hasAVX; // Offset: 98 + keen::bool hasAVX2; // Offset: 99 + keen::bool hasNeon; // Offset: 100 +}; + +enum class DeviceId { + Unknown = 0, + iPhone_1G = 1, + iPhone_3G = 2, + iPhone_3GS = 3, + iPhone_4 = 4, + iPhone_4S = 5, + iPhone_5 = 6, + iPhone_5C = 7, + iPhone_5S = 8, + iPhone_6 = 9, + iPhone_6_Plus = 10, + iPhone_6S = 11, + iPhone_6S_Plus = 12, + iPhone_SE = 13, + iPhone_7 = 14, + iPhone_7_Plus = 15, + iPhone_8 = 16, + iPhone_8_Plus = 17, + iPhone_X = 18, + iPhone_XR = 19, + iPhone_XS = 20, + iPhone_XS_Max = 21, + iPod_Touch_1G = 22, + iPod_Touch_2G = 23, + iPod_Touch_3G = 24, + iPod_Touch_4G = 25, + iPod_Touch_5G = 26, + iPod_Touch_6G = 27, + iPad = 28, + iPad_2 = 29, + iPad_3 = 30, + iPad_4 = 31, + iPad_Air = 32, + iPad_Air_2 = 33, + iPad_Mini = 34, + iPad_Mini_2G = 35, + iPad_Mini_3 = 36, + iPad_Mini_4 = 37, + iPad_Pro = 38, + iPad_Pro_LTE = 39, + iPad_Pro_9_7 = 40, + iPad_Pro_9_7_LTE = 41, + iPad_5thGen = 42, + iPad_5thGen_LTE = 43, + iPad_6thGen = 44, + iPad_6thGen_LTE = 45, + iPad_Pro_12_9_2ndGen = 46, + iPad_Pro_12_9_2ndGen_LTE = 47, + iPad_Pro_10_5 = 48, + iPad_Pro_10_5_LTE = 49, + iPad_Pro_11_0 = 50, + iPad_Pro_12_9_3rdGen = 51, + Apple_TV_2G = 52, + Apple_TV_3 = 53, + Apple_TV_4 = 54, + Apple_TV_4k = 55, + Simulator = 56, + Count = 57, +}; + +struct DeviceSystemInformation { + keen::DeviceId id; // Offset: 0 + keen::StaticArray model; // Offset: 4 + keen::StaticArray name; // Offset: 68 + keen::StaticArray macAddress; // Offset: 132 + keen::bool isRooted; // Offset: 150 +}; + +enum class OperatingSystemType { + Unknown = 0, + Windows = 1, + Linux = 2, + Android = 3, + Ios = 4, + Playstation4 = 5, + XboxOne = 6, + Count = 7, +}; + +struct OsSystemInformation { + keen::OperatingSystemType type; // Offset: 0 + keen::uint32 majorVersion; // Offset: 4 + keen::uint32 minorVersion; // Offset: 8 + keen::uint32 build; // Offset: 12 + keen::StaticArray versionString; // Offset: 16 + keen::StaticArray distribution; // Offset: 48 + keen::uint32 bitCount; // Offset: 80 +}; + +struct ProcessId { + keen::uint32 pid; // Offset: 0 +}; + +struct AtmosphereShaderData { + keen::uint32 isValid; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 + keen::float2 yToNormalizedHeight; // Offset: 8 + keen::float3 rayleighScattering; // Offset: 16 + keen::float32 invRayleighDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float32 pad3; // Offset: 44 + keen::float32 mieScattering; // Offset: 48 + keen::float32 mieExtinction; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::float32 invMieDistribution; // Offset: 60 +}; + +struct PreintegrateAtmosphereTransmittanceShaderData { + keen::float2 invTextureSize; // Offset: 0 + keen::float2 pixelToHeight; // Offset: 8 + keen::float planetRadius; // Offset: 16 + keen::float cutoffRadius; // Offset: 20 + keen::float mieExtinction; // Offset: 24 + keen::float invMieDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float invRayleighDistribution; // Offset: 44 +}; + +struct ComputeAtmosphereScatteringLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float2 texcoordToHeight; // Offset: 16 + keen::float2 pad1; // Offset: 24 + keen::float2 yToNormalizedHeight; // Offset: 32 + keen::float planetRadius; // Offset: 40 + keen::float cutoffRadius; // Offset: 44 + keen::float3 rayleighExtinction; // Offset: 48 + keen::float invRayleighDistribution; // Offset: 60 + keen::float3 rayleighScattering; // Offset: 64 + keen::float pad2; // Offset: 76 + keen::float mieExtinction; // Offset: 80 + keen::float invMieDistribution; // Offset: 84 + keen::float mieScattering; // Offset: 88 + keen::float mieG; // Offset: 92 +}; + +struct ComputeAtmosphereAmbientIlluminationLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 +}; + +struct Material { +}; + +struct BillboardMaterial { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference opacityMap; // Offset: 16 + keen::ObjectReference roughnessMap; // Offset: 32 + keen::ObjectReference reflectanceMap; // Offset: 48 + keen::ObjectReference metallicMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference translucencyMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 +}; + +enum class BillboardRfxTexture { + Opacity = 0, + Albedo = 1, + MaterialParams = 2, + Normal = 3, + Count = 4, +}; + +struct StreamedTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct StreamedTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BillboardRfxRenderMaterial { + keen::StreamedTexture2D_float opacityMap; // Offset: 0 + keen::StreamedTexture2D_float4 albedoMap; // Offset: 4 + keen::StreamedTexture2D_float4 materialParamsMap; // Offset: 8 + keen::StreamedTexture2D_float4 normalMap; // Offset: 12 +}; + +struct BrickVisibilityPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::uint32 frameId; // Offset: 76 +}; + +struct BrickDebugShadingConstants { + keen::float3 directionalLightDirection; // Offset: 0 + keen::float3 directionalLightColor; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 +}; + +struct VolumetricFogGridMaterial { + keen::float3 absorption; // Offset: 0 + keen::float3 scattering; // Offset: 16 + keen::float3 emission; // Offset: 32 +}; + +struct VolumetricFogGridCascadeShaderData { + keen::float3 origin; // Offset: 0 + keen::float32 size; // Offset: 12 + keen::int3 pixelOffset; // Offset: 16 + keen::uint32 explicitPad0; // Offset: 28 +}; + +struct VolumetricFogGridShaderData { + keen::uint32 flags; // Offset: 0 + keen::float3 origin; // Offset: 4 + keen::float3 size; // Offset: 16 + keen::uint3 topLevelMaxVoxel; // Offset: 32 + keen::VolumetricFogGridMaterial none; // Offset: 48 + keen::VolumetricFogGridMaterial dangerous; // Offset: 96 + keen::VolumetricFogGridMaterial deadly; // Offset: 144 + keen::VolumetricFogGridMaterial decorative; // Offset: 192 + keen::StaticArray cascades; // Offset: 240 +}; + +struct BrickFillGBufferConstants { + keen::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint32 layerCount; // Offset: 496 + keen::uint32 showLayerWeight; // Offset: 500 + keen::uint32 debugLayerIndex; // Offset: 504 + keen::uint2 outputSize; // Offset: 512 + keen::float2 invOutputSize; // Offset: 520 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::uint32 isMaterialDataValid; // Offset: 592 + keen::float3 cameraWorldPosition; // Offset: 596 + keen::float exposureCorrection; // Offset: 608 + keen::float time; // Offset: 612 +}; + +struct GpuCullingFrustum { + keen::float4 plane0; // Offset: 0 + keen::float4 plane1; // Offset: 16 + keen::float4 plane2; // Offset: 32 + keen::float4 plane3; // Offset: 48 + keen::float4 plane4; // Offset: 64 + keen::float4 plane5; // Offset: 80 +}; + +struct GpuOcclusionCullingShaderData { + keen::float2 depthPyramidResolution; // Offset: 0 + keen::float2 screenToDepthPyramidUvScale; // Offset: 8 + keen::float P00; // Offset: 16 + keen::float P11; // Offset: 20 + keen::float P03; // Offset: 24 + keen::float P13; // Offset: 28 + keen::float P22; // Offset: 32 + keen::float P23; // Offset: 36 + keen::float zNear; // Offset: 40 + keen::float zFar; // Offset: 44 + keen::uint orthoProjection; // Offset: 48 +}; + +struct BrickCullingShaderParameters { + keen::uint32 instanceCount; // Offset: 0 + keen::GpuCullingFrustum frustum; // Offset: 16 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 112 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 160 +}; + +struct BrickDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 firstIndex; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 firstInstance; // Offset: 16 +}; + +struct BrickSdfBakingShaderParameters { + keen::uint3 textureOffset; // Offset: 0 + keen::uint32 resolution; // Offset: 12 +}; + +struct BrickVoxelCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 brickIndex; // Offset: 4 + keen::uint2 brickData; // Offset: 8 +}; + +struct BrickVoxelDilateShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 +}; + +struct NewBrickCommandData { + keen::uint2 data; // Offset: 0 + keen::uint32 index; // Offset: 8 +}; + +struct BrickUploadShaderParameters { + keen::uint32 newBrickCount; // Offset: 0 +}; + +enum class BuildingMappingType { + Default = 0, + Wood = 1, + Roof = 2, +}; + +struct BuildingMaterialParameters { + keen::BuildingMappingType mapping; // Offset: 0 + keen::bool edgeOnlySide; // Offset: 1 + keen::BlobArray decoObjectRules; // Offset: 4 +}; + +struct BuildingMaterialParametersResource { + keen::BlobArray materials; // Offset: 0 +}; + +struct BuildingMaterials { + keen::BlobArray> materials; // Offset: 0 +}; + +struct RenderTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 + keen::string debugName; // Offset: 28 +}; + +struct BuildingMaterialLayerImages { + keen::RenderTexture emissiveMap; // Offset: 0 + keen::RenderTexture albedoMap; // Offset: 36 + keen::RenderTexture metallicMap; // Offset: 72 + keen::RenderTexture roughnessMap; // Offset: 108 + keen::RenderTexture reflectanceMap; // Offset: 144 + keen::RenderTexture normalMap; // Offset: 180 + keen::RenderTexture heightMap; // Offset: 216 + keen::RenderTexture aoMap; // Offset: 252 +}; + +struct BuildingMaterialImages { + keen::BuildingMaterialLayerImages baseSide; // Offset: 0 + keen::BuildingMaterialLayerImages baseTop; // Offset: 288 + keen::BuildingMaterialLayerImages baseBottom; // Offset: 576 + keen::BuildingMaterialLayerImages edge; // Offset: 864 + keen::BuildingMaterialLayerImages noise; // Offset: 1152 +}; + +struct BuildingMaterialBlendingMaterialLayerTextureShaderData { + keen::StreamedTexture2D_float4 emissiveMap; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 4 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 8 + keen::StreamedTexture2D_float4 albedoMap; // Offset: 12 + keen::StreamedTexture2D_float metallicMap; // Offset: 16 + keen::StreamedTexture2D_float roughnessMap; // Offset: 20 + keen::StreamedTexture2D_float reflectanceMap; // Offset: 24 + keen::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::StreamedTexture2D_float heightMap; // Offset: 32 + keen::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 tilingFactor; // Offset: 40 + keen::float32 displacementScale; // Offset: 44 + keen::float32 displacementOffset; // Offset: 48 + keen::float32 emissiveGiFactor; // Offset: 52 +}; + +struct BuildingMaterialBlendingMaterialLayerShaderData { + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData baseSideTexture; // Offset: 0 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData baseTopTexture; // Offset: 56 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData baseBottomTexture; // Offset: 112 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTexture; // Offset: 168 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTopTexture; // Offset: 224 + keen::BuildingMaterialBlendingMaterialLayerTextureShaderData noiseTexture; // Offset: 280 + keen::float32 heightBlendingRange; // Offset: 336 + keen::float32 heightBlendingRangeNoise; // Offset: 340 + keen::float32 edgeBlendingCurve; // Offset: 344 + keen::uint32 edgeOnlySide; // Offset: 348 + keen::float2 noiseBlendRange; // Offset: 352 + keen::float32 bevelRadius; // Offset: 360 + keen::uint32 isRoof; // Offset: 364 +}; + +struct RenderParameterBlock { + keen::HashKey32 typeSignatureHash; // Offset: 0 + keen::ContentHash data; // Offset: 4 + keen::BlobArray patchPoints; // Offset: 20 + keen::BlobArray textures; // Offset: 28 + keen::BlobArray samplers; // Offset: 36 + keen::string debugName; // Offset: 44 +}; + +struct BuildingMaterialBlendingResource { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 layerSizeInBytes; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::RenderParameterBlock renderingParameterBlock; // Offset: 16 + keen::BlobArray renderingImageSizeInfos; // Offset: 68 + keen::BlobArray renderingLayerImageSizeInfoStartIndices; // Offset: 76 +}; + +struct BuildingMaterialMapping { + keen::ObjectReference voxelMaterial; // Offset: 0 + keen::uint8 id; // Offset: 16 +}; + +struct BuildingMaterialPalette { +}; + +struct BuildingMaterialPalettesFolder { +}; + +typedef keen::ObjectReference BuildingMaterialPaletteId; + +enum class DecoObjectRuleType { + RoofTop = 0, + RoofTopSmall = 1, + RoofSideLeft = 2, + RoofSideRight = 3, + RoofBottom = 4, + RoofBrokenSideLeft = 5, + RoofBrokenSideRight = 6, + RoofBrokenTop = 7, + SupportBeams = 8, + MaterialEdgeTop = 9, + MaterialEdgeTopCornerOuter = 10, + MaterialEdgeBottom = 11, + MaterialEdgeBottomCornerOuter = 12, + MaterialEdgeLeft = 13, + MaterialEdgeRight = 14, + MaterialEdgeSideBoth = 15, + WallCornerOuter = 16, + WallCornerOuterSmall = 17, + WallCeilingCorner = 18, + WallCeilingCornerSmall = 19, + WallCeilingCornerOuter = 20, + WallCeilingCornerOuterSmall = 21, + WallFloorCorner = 22, + WallFloorCornerOuter = 23, + WallEndSide = 24, + VoxelEdgeSide = 25, + VoxelEdgeTop = 26, + VoxelEdgeBottom = 27, + Stairs = 28, + HangingCeilingEdge = 29, +}; + +enum class DecoObjectPartMode { + MiddleOnly = 0, + StartEndAdd = 1, + StartEndReplace = 2, +}; + +enum class DecoObjectPart { + Start = 0, + Middle = 1, + End = 2, +}; + +struct DecoObjectInstance { + keen::ObjectReference model; // Offset: 0 + keen::DecoObjectPart part; // Offset: 16 + keen::sint32 fixedOrderKey; // Offset: 20 +}; + +struct DecoObjectRule { + keen::DecoObjectRuleType rule; // Offset: 0 + keen::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::float32 density; // Offset: 48 +}; + +struct DecoObjectRuleSet { + keen::DecoObjectRuleType rule; // Offset: 0 + keen::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::float32 density; // Offset: 8 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::bool fixedOrder; // Offset: 48 + keen::BlobArray> startModels; // Offset: 52 + keen::BlobArray> middleModels; // Offset: 60 + keen::BlobArray> endModels; // Offset: 68 +}; + +struct DecoObjectRules { + keen::BlobArray rules; // Offset: 0 +}; + +struct BuildingMaterialListEntry { + keen::Guid guid; // Offset: 0 + keen::ObjectReference pbrBuildingMaterial; // Offset: 16 +}; + +struct BuildingMaterialList { + keen::BlobArray entries; // Offset: 0 +}; + +struct FFX_CACAO_Constants { + keen::float2 DepthUnpackConsts; // Offset: 0 + keen::float2 CameraTanHalfFOV; // Offset: 8 + keen::float2 NDCToViewMul; // Offset: 16 + keen::float2 NDCToViewAdd; // Offset: 24 + keen::float2 DepthBufferUVToViewMul; // Offset: 32 + keen::float2 DepthBufferUVToViewAdd; // Offset: 40 + keen::float32 EffectRadius; // Offset: 48 + keen::float32 EffectShadowStrength; // Offset: 52 + keen::float32 EffectShadowPow; // Offset: 56 + keen::float32 EffectShadowClamp; // Offset: 60 + keen::float32 EffectFadeOutMul; // Offset: 64 + keen::float32 EffectFadeOutAdd; // Offset: 68 + keen::float32 EffectHorizonAngleThreshold; // Offset: 72 + keen::float32 EffectSamplingRadiusNearLimitRec; // Offset: 76 + keen::float32 DepthPrecisionOffsetMod; // Offset: 80 + keen::float32 NegRecEffectRadius; // Offset: 84 + keen::float32 LoadCounterAvgDiv; // Offset: 88 + keen::float32 AdaptiveSampleCountLimit; // Offset: 92 + keen::float32 InvSharpness; // Offset: 96 + keen::sint32 PassIndex; // Offset: 100 + keen::float32 BilateralSigmaSquared; // Offset: 104 + keen::float32 BilateralSimilarityDistanceSigma; // Offset: 108 + keen::StaticArray PatternRotScaleMatrices; // Offset: 112 + keen::float32 DetailAOStrength; // Offset: 192 + keen::float32 Dummy0; // Offset: 196 + keen::float32 Dummy1; // Offset: 200 + keen::float32 Dummy2; // Offset: 204 + keen::float2 SSAOBufferDimensions; // Offset: 208 + keen::float2 SSAOBufferInverseDimensions; // Offset: 216 + keen::float2 DepthBufferDimensions; // Offset: 224 + keen::float2 DepthBufferInverseDimensions; // Offset: 232 + keen::int2 DepthBufferOffset; // Offset: 240 + keen::float2 PerPassFullResUVOffset; // Offset: 248 + keen::float2 OutputBufferDimensions; // Offset: 256 + keen::float2 OutputBufferInverseDimensions; // Offset: 264 + keen::float2 ImportanceMapDimensions; // Offset: 272 + keen::float2 ImportanceMapInverseDimensions; // Offset: 280 + keen::float2 DeinterleavedDepthBufferDimensions; // Offset: 288 + keen::float2 DeinterleavedDepthBufferInverseDimensions; // Offset: 296 + keen::float2 DeinterleavedDepthBufferOffset; // Offset: 304 + keen::float2 DeinterleavedDepthBufferNormalisedOffset; // Offset: 312 + keen::GraphicsMatrix44 NormalsWorldToViewspaceMatrix; // Offset: 320 +}; + +enum class VoxelChunkPassType { + DepthPrepass = 0, + GBuffer = 1, + Shadow = 2, +}; + +struct PackedShaderWorldTransform { + keen::uint3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct PackedShaderWorldPositionUniform { + keen::uint3 position; // Offset: 0 +}; + +struct VoxelChunkShaderData { + keen::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::PackedShaderWorldPositionUniform worldPosition; // Offset: 32 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float4 boundingSphere; // Offset: 96 + keen::float scale; // Offset: 112 + keen::uint triangleIndexOffset; // Offset: 116 + keen::uint triangleIndexCount; // Offset: 120 + keen::uint quadIndexOffset; // Offset: 124 + keen::uint quadIndexCount; // Offset: 128 + keen::uint vertexOffset; // Offset: 132 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 136 + keen::uint chunkletOffset; // Offset: 140 + keen::uint chunkletCount; // Offset: 144 + keen::uint chunkletVisibilityOffset; // Offset: 148 + keen::uint highlightColorPaletteIndexTransparency; // Offset: 152 + keen::uint sizeFeedbackIndex; // Offset: 156 + keen::StaticArray pipelineIndices; // Offset: 160 + keen::uint flags; // Offset: 172 +}; + +struct ShaderChunkletCullingSubView { + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 + keen::uint32 flags; // Offset: 16 + keen::float3 exclusionCircle; // Offset: 20 + keen::float3 viewDirection; // Offset: 32 + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 48 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 144 + keen::GpuOcclusionCullingShaderData occlusionData; // Offset: 192 +}; + +struct ShaderChunkletCullingPass { + keen::uint32 flags; // Offset: 0 + keen::uint32 subViewIndex; // Offset: 4 + keen::uint32 passType; // Offset: 8 +}; + +struct RenderChunkletCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2432 + keen::uint32 passCount; // Offset: 2436 + keen::uint32 jobCount; // Offset: 2440 + keen::uint32 stageIndex; // Offset: 2444 +}; + +struct CulledChunklet { + keen::uint data0; // Offset: 0 + keen::uint visibility; // Offset: 4 +}; + +struct ChunkletPrefixSumShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint stageIndex; // Offset: 4 +}; + +struct VoxelChunkArgumentsPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct RenderChunkletDrawPrepareShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint batchOffset; // Offset: 4 +}; + +struct ChunkletPipelineInfoShaderData { + keen::uint flags; // Offset: 0 +}; + +struct ChunkletDrawCommand { + keen::uint vertexCount; // Offset: 0 + keen::uint instanceCount; // Offset: 4 + keen::uint vertexOffset; // Offset: 8 + keen::uint instanceOffset; // Offset: 12 +}; + +struct ChunkletPushConstants { + keen::uint drawIndex; // Offset: 0 +}; + +struct VoxelChunkSizeFeedbackShaderParameters { + keen::float3 viewPosition; // Offset: 0 + keen::float pixelSize; // Offset: 12 + keen::uint chunkCount; // Offset: 16 +}; + +struct RenderChunklet { + keen::uint data0; // Offset: 0 +}; + +struct ChunkletCullingDebugCounters { + keen::uint culledByOrientation; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledByVisibility; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct ClusterCullingCellData { + keen::uint2 lightListCountAndOffset; // Offset: 0 + keen::uint2 decalListCountAndOffset; // Offset: 8 +}; + +struct ClusterCullingShaderData { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint3 clusterSize; // Offset: 112 + keen::uint cellLightListOffsetCounterOffset; // Offset: 124 + keen::uint cellDecalListOffsetCounterOffset; // Offset: 128 + keen::float2 linearDepthParameters; // Offset: 132 + keen::float2 tileRatio; // Offset: 144 + keen::uint pointLightCounterOffset; // Offset: 152 + keen::uint maxPointLightCount; // Offset: 156 + keen::uint decalCounterOffset; // Offset: 160 + keen::uint maxDecalCount; // Offset: 164 +}; + +struct ClusterCullingDebugPushConstants { + keen::uint2 debugImageSize; // Offset: 0 +}; + +enum class GpuCulling2StageId { + Early = 0, + Late = 1, +}; + +enum class GpuCulling2PassType { + DepthPrePass = 0, + GBuffer = 1, + Shadow = 2, + Debug = 3, + Transparent = 4, +}; + +enum class GpuCulling2PassId { + Main_DepthPrepass = 0, + Main_GBuffer = 1, + Main_Transparent = 2, + Main_Debug = 3, + Shadow_Cascade0 = 4, + Shadow_Cascade1 = 5, + Shadow_Cascade2 = 6, + Shadow_Cascade3 = 7, + Shadow_Cascade4 = 8, + Shadow_Cascade5 = 9, + Shadow_Cascade6 = 10, + Shadow_Cascade7 = 11, +}; + +struct GpuCulling2SubViewConstants { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 80 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 +}; + +struct GpuCulling2PassConstants { + keen::uint flags; // Offset: 0 + keen::uint subViewIndex; // Offset: 4 + keen::uint passType; // Offset: 8 +}; + +struct GpuCulling2ShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2640 + keen::uint subViewCount; // Offset: 2832 + keen::uint passCount; // Offset: 2836 + keen::uint visibleGroupMask; // Offset: 2840 + keen::uint isLateStage; // Offset: 2844 + keen::uint flags; // Offset: 2848 + keen::uint instanceCount; // Offset: 2852 + keen::uint batchCount; // Offset: 2856 + keen::float pixelSizeCullingBias; // Offset: 2860 + keen::uint meshCount; // Offset: 2864 + keen::uint maxCulledInstanceCount; // Offset: 2868 + keen::uint scanShaderGroupSize; // Offset: 2872 + keen::uint fixupShaderGroupSize; // Offset: 2876 + keen::PackedShaderWorldPositionUniform mainViewCameraPosition; // Offset: 2880 + keen::float mainViewPixelSize; // Offset: 2896 +}; + +struct GpuCulling2SubViewDebugCounters { + keen::uint notCulled; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledBySize; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct GpuCulling2PassDebugCounters { + keen::uint notCulled; // Offset: 0 +}; + +struct GpuCulling2Counters { + keen::uint culledInstanceCount; // Offset: 0 + keen::uint leftoverInstances; // Offset: 4 + keen::uint firstInstanceCount; // Offset: 8 +}; + +enum class GpuCulling2DispatchCommandId { + ScanInstances = 0, + FixupInstances = 1, +}; + +struct GpuCulling2DebugCounters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 220 + keen::uint culledByGroupMask; // Offset: 268 + keen::uint culledByPixelSize; // Offset: 272 +}; + +struct GpuCulling2CulledInstanceData { + keen::uint meshIndexAndBatchIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct GpuCulling2PixelQuery { + keen::uint2 position; // Offset: 0 +}; + +struct GpuCulling2PixelQueryResult { + keen::uint stageId; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint instanceDataIndex; // Offset: 8 + keen::uint meshIndexAndBatchIndex; // Offset: 12 +}; + +enum class GpuCulling2HighlightType { + None = 0, + Mesh = 1, + Model = 2, + Batch = 3, +}; + +struct GpuCulling2RenderData { + keen::GpuCulling2PixelQuery pixelQuery; // Offset: 0 + keen::GpuCulling2PixelQueryResult pixelQueryResult; // Offset: 8 + keen::GpuCulling2HighlightType highlightType; // Offset: 24 + keen::uint highlightValue; // Offset: 28 + keen::uint highlightValue2; // Offset: 32 +}; + +struct RenderMaterialMeshShaderData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint modelMaterialData; // Offset: 28 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 32 + keen::uint blendShapeVertexOffset; // Offset: 36 + keen::uint blendShapeMask; // Offset: 40 + keen::uint vertexCount; // Offset: 44 +}; + +struct RenderDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::uint32 materialMeshIndexAndLodIndex; // Offset: 20 +}; + +struct RenderDrawData { + keen::uint modelIndex; // Offset: 0 + keen::uint instanceDataIndex; // Offset: 4 + keen::uint groupMask; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct RenderModelDrawData { + keen::float4 boundingSphere; // Offset: 0 + keen::uint modelLodStartIndex; // Offset: 16 + keen::uint modelLodCount; // Offset: 20 + keen::uint hasCardClusterLod; // Offset: 24 + keen::uint sizeFeedbackIndex; // Offset: 28 + keen::StaticArray lodPixelSizes; // Offset: 32 +}; + +struct RenderModelLodDrawData { + keen::uint materialMeshStartIndex; // Offset: 0 + keen::uint materialMeshCount; // Offset: 4 + keen::uint _pad0; // Offset: 8 + keen::uint _pad1; // Offset: 12 +}; + +struct RenderMaterialMeshDrawData { + keen::uint pipelineIndex; // Offset: 0 + keen::uint indexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::int vertexOffset; // Offset: 12 +}; + +struct GpuCullingDrawCounter { + keen::uint32 offset; // Offset: 0 + keen::uint32 maxCount; // Offset: 4 +}; + +struct GpuCullingDebugCounters { + keen::uint32 notCulled; // Offset: 0 + keen::uint32 culledByVisibility; // Offset: 4 + keen::uint32 culledBySize; // Offset: 8 + keen::uint32 culledByFrustum; // Offset: 12 + keen::uint32 culledByOcclusion; // Offset: 16 + keen::uint32 culledByExclusion; // Offset: 20 +}; + +struct CullingShaderData { + keen::float3 viewPosition; // Offset: 0 + keen::int fixedLod; // Offset: 12 + keen::uint viewVisibilityMask; // Offset: 16 + keen::float pixelSize; // Offset: 20 + keen::float pixelSizeCullingBias; // Offset: 24 + keen::uint visibleGroupMask; // Offset: 28 + keen::GpuCullingFrustum frustum; // Offset: 32 + keen::float3 exclusionCircle; // Offset: 128 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 144 + keen::GraphicsMatrix44 projectionMatrix; // Offset: 192 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 256 + keen::uint drawCounterOffset; // Offset: 320 + keen::uint occlusionCullingEnabled; // Offset: 324 + keen::uint exclusionCullingEnabled; // Offset: 328 + keen::uint useLastFrameVisibility; // Offset: 332 + keen::uint cpuDrawCount; // Offset: 336 + keen::uint cullSmallObjects; // Offset: 340 + keen::float smallObjectRadius; // Offset: 344 + keen::uint forceCardClusterLod; // Offset: 348 + keen::uint useCameraCenteredSpace; // Offset: 352 + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 368 +}; + +struct UploadRenderInstancesShaderData { + keen::uint32 uploadInstanceCount; // Offset: 0 +}; + +struct DebugOcclusionCullingShaderParameters { + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::float4 viewSpaceSphere; // Offset: 64 +}; + +struct DebugOcclusionCullingResultShaderData { + keen::uint isValid; // Offset: 0 + keen::uint level; // Offset: 4 + keen::float2 rectMin; // Offset: 8 + keen::float2 rectMax; // Offset: 16 + keen::float2 uv; // Offset: 24 +}; + +enum class CurvePointTangent { + Free = 0, + Weighted = 1, + Linear = 2, +}; + +enum class CurveTangent { + Smooth = 0, + Broken = 1, +}; + +struct CurvePoint { + keen::CurveTangent tangent; // Offset: 8 + keen::CurvePointTangent pointTangent; // Offset: 9 +}; + +struct ImageDiffShaderParameters { + keen::float32 threshold; // Offset: 0 +}; + +struct DebugMagnifierShaderParameters { + keen::uint imageWidth; // Offset: 0 + keen::uint imageHeight; // Offset: 4 + keen::uint2 mousePos; // Offset: 8 + keen::float4 borderColor; // Offset: 16 + keen::float magnificationAmount; // Offset: 32 + keen::float magnifierScreenRadius; // Offset: 36 + keen::int magnifierOffsetX; // Offset: 40 + keen::int magnifierOffsetY; // Offset: 44 + keen::float brightness; // Offset: 48 + keen::float contrast; // Offset: 52 +}; + +enum class VisualizeTextureOp { + One = 0, + Zero = 1, + Copy = 2, + IntegerHashR = 3, + IntegerHashG = 4, + IntegerHashB = 5, +}; + +enum class VisualizeTextureChannel { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +struct VisualizeTextureCommandShaderData { + keen::VisualizeTextureOp op; // Offset: 0 + keen::VisualizeTextureChannel channel; // Offset: 4 + keen::uint32 scale; // Offset: 8 + keen::float power; // Offset: 12 +}; + +struct VisualizeTextureShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::StaticArray commands; // Offset: 16 +}; + +struct VisualizeOverdrawShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float scale; // Offset: 8 +}; + +struct IblVisualizationData { + keen::GraphicsMatrix44 ndcToWorldMatrix; // Offset: 0 + keen::float iblIntensity; // Offset: 64 + keen::float exposure; // Offset: 68 +}; + +enum class DecalNormalBlendMode { + Linear = 0, + DetailOriented = 1, +}; + +enum class DecalRoughnessBlendMode { + Multiply = 0, + Replace = 1, +}; + +struct Decal { + keen::bool affectShading; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 4 + keen::ObjectReference opacityMap; // Offset: 20 + keen::ObjectReference normalMap; // Offset: 36 + keen::DecalNormalBlendMode normalBlendMode; // Offset: 52 + keen::ObjectReference roughnessMap; // Offset: 56 + keen::DecalRoughnessBlendMode roughnessBlendMode; // Offset: 72 + keen::ObjectReference emissiveMap; // Offset: 76 + keen::ObjectReference emissiveAlphaMap; // Offset: 92 + keen::ObjectReference metallicMap; // Offset: 108 + keen::ObjectReference aoMap; // Offset: 124 + keen::bool affectTerrainVoxelMesh; // Offset: 140 + keen::bool affectBuildingVoxelMesh; // Offset: 141 + keen::bool affectRoofVoxelMesh; // Offset: 142 + keen::bool affectModels; // Offset: 143 + keen::bool affectSkinnedModels; // Offset: 144 + keen::bool affectBuildingDecoModels; // Offset: 145 + keen::bool affectScatterDetailModels; // Offset: 146 + keen::bool affectScattering; // Offset: 147 + keen::ObjectReference scatterScaleMap; // Offset: 148 + keen::float scatterScaleFactor; // Offset: 164 +}; + +enum class DecalLayer { + TerrainVoxelMesh = 0, + BuildingVoxelMesh = 1, + RoofVoxelMesh = 2, + StaticModel = 3, + SkinnedModel = 4, + BuildingDecoModel = 5, + ScatterDecoModel = 6, + VfxModel = 7, +}; + +typedef keen::Bitmask32 DecalLayerMask; + +struct DecalMaterialData { + keen::BindlessTexture2D_float4 albedoMap; // Offset: 0 + keen::BindlessTexture2D_float4 normalMap; // Offset: 4 + keen::BindlessTexture2D_float roughnessMap; // Offset: 8 + keen::BindlessTexture2D_float metallicMap; // Offset: 12 + keen::BindlessTexture2D_float4 emissiveMap; // Offset: 16 + keen::BindlessTexture2D_float aoMap; // Offset: 20 + keen::BindlessTexture2D_float scatterScaleMap; // Offset: 24 + keen::uint32 decalLayerMask; // Offset: 28 + keen::float scatterScaleFactor; // Offset: 32 +}; + +struct RenderDecal { + keen::RenderParameterBlock parameterBlock; // Offset: 0 +}; + +struct WeatherSurfaceMaterialData { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float frostUVScale; // Offset: 8 + keen::float frostScale; // Offset: 12 + keen::float3 frostAlbedo; // Offset: 16 + keen::float frostRoughness; // Offset: 28 + keen::float3 frostPuddleAlbedo; // Offset: 32 + keen::float frostPorosityScale; // Offset: 44 + keen::float snowVertexNormalPower; // Offset: 48 + keen::float snowVertexNormalCutoff; // Offset: 52 +}; + +struct GrassMovementData { + keen::PackedShaderWorldPositionUniform origin; // Offset: 0 + keen::float2 reciprocalSize; // Offset: 16 + keen::uint32 validData; // Offset: 24 +}; + +struct TessellatedMaterialConstants { + keen::float2 levelMapping; // Offset: 0 + keen::float32 maxLevel; // Offset: 8 +}; + +enum class RenderShaderDebugMode { + None = 0, + DiffuseColor = 1, + SpecularColor = 2, + Emissive = 3, + DiffuseResult = 4, + SpecularResult = 5, + IndirectSpecularResult = 6, + IndirectDiffuseResult = 7, + Normal = 8, + Albedo = 9, + Reflectance = 10, + Metallic = 11, + Roughness = 12, + Ao = 13, + SunVisibility = 14, + VertexColorRed = 15, + VertexColorGreen = 16, + VertexColorBlue = 17, + VertexColorAlpha = 18, + VertexColorRgb = 19, + CodeDebug = 20, + WorldSpaceTextureDebug = 21, + WorldSpaceWhiteTextureDebug = 22, + DissolveMask = 23, + TerrainMaterialLayer = 24, + Illuminance = 25, + Bloom = 26, + MipLevelMin = 27, + MipLevelMax = 28, + Displacement = 29, + DisplacementSide = 30, + DisplacementTop = 31, + DisplacementBottom = 32, + LodIndex = 33, + WorldSpaceScatteringTexture = 34, + SlopeAngle = 35, + Translucency = 36, + ObjectSpaceNormal = 37, + RawReflectance = 38, + FlagAnisotropicSpecular = 39, + FlagGiWrapShading = 40, + FlagGiAdjustNormals = 41, + FlagAoForDirectLighting = 42, + DetailScatteringFadeout = 43, + Freezing = 44, +}; + +struct RenderDebugConstants { + keen::RenderShaderDebugMode debugMode; // Offset: 0 + keen::uint32 debugNeutralAlbedo; // Offset: 4 + keen::uint32 debugTextureIndex; // Offset: 8 + keen::float32 debugTextureAlpha; // Offset: 12 + keen::float4 debugValue; // Offset: 16 +}; + +struct DynamicHeightmapSamplingShaderData { + keen::uint size; // Offset: 0 + keen::float inverseSize; // Offset: 4 + keen::int2 origin; // Offset: 8 + keen::float scale; // Offset: 16 + keen::float2 distanceFade; // Offset: 20 + keen::uint explicitPad0; // Offset: 28 +}; + +struct WeatherSampleConstants { + keen::uint flags; // Offset: 0 + keen::float2 texcoordMappingScale; // Offset: 4 + keen::float2 texcoordMappingOffset; // Offset: 16 + keen::float2 snowBorderMapping; // Offset: 24 + keen::float32 cameraPositionY; // Offset: 32 + keen::DynamicHeightmapSamplingShaderData heightMap; // Offset: 48 + keen::float3 heightMapCameraPosition; // Offset: 80 + keen::float3 frostVoxelTexcoordMappingScale; // Offset: 96 + keen::float3 frostVoxelTexcoordMappingOffset; // Offset: 112 +}; + +struct RenderLightFactors { + keen::float32 sun; // Offset: 0 + keen::float32 skyGeometrySun; // Offset: 4 + keen::float32 pointLights; // Offset: 8 + keen::float32 gi; // Offset: 12 + keen::float32 emissive; // Offset: 16 + keen::float32 exposure; // Offset: 20 + keen::float32 exposureCorrection; // Offset: 24 +}; + +struct SnowDisplacementData { + keen::PackedShaderWorldPositionUniform tileOrigin; // Offset: 0 + keen::float reciprocalSize; // Offset: 16 + keen::float rcpNormalScale; // Offset: 20 + keen::float halfWorldSize; // Offset: 24 + keen::float heightScale; // Offset: 28 + keen::uint32 validData; // Offset: 32 +}; + +struct RenderGBufferConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::float32 prevTime; // Offset: 192 + keen::GrassMovementData grassMovement; // Offset: 208 + keen::GrassMovementData grassMovementPrevious; // Offset: 240 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 272 + keen::TessellatedMaterialConstants buildingTessellation; // Offset: 288 + keen::RenderDebugConstants debugData; // Offset: 304 + keen::uint32 enableCloth; // Offset: 336 + keen::uint32 enableLavaShader; // Offset: 340 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 344 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 348 + keen::WeatherSurfaceMaterialData weatherSurfaceMaterialData; // Offset: 352 + keen::WeatherSampleConstants weather; // Offset: 416 + keen::RenderLightFactors lightFactors; // Offset: 544 + keen::uint32 blueNoiseSizeMask; // Offset: 576 + keen::uint2 blueNoiseOffset; // Offset: 580 + keen::uint32 isVoxelMaterialDataValid; // Offset: 588 + keen::float highlightAmount; // Offset: 592 + keen::float highlightIntensity; // Offset: 596 + keen::StaticArray highlightColorPaletteArray; // Offset: 608 + keen::float mipBias; // Offset: 736 + keen::uint32 useStochasticMaterialSampling; // Offset: 740 + keen::float2 cancelJitter; // Offset: 744 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 752 + keen::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 768 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 784 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 848 + keen::SnowDisplacementData snowDisplacement; // Offset: 912 +}; + +struct CascadeShadowShaderData { + keen::GraphicsMatrix43 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 48 + keen::float4 fadeParameters0; // Offset: 96 + keen::float4 fadeParameters1; // Offset: 112 +}; + +struct RenderShadowAtlasShaderData { + keen::float4 viewMatrixRowZ; // Offset: 0 + keen::float4 atlasSize; // Offset: 16 + keen::float4 cascadeCount; // Offset: 32 + keen::float4 firstCascadeDistanceFadeParameters; // Offset: 48 + keen::StaticArray cascades; // Offset: 64 +}; + +struct ForwardDirectionalLightData { + keen::float3 direction; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float pad1; // Offset: 28 +}; + +struct ForwardIblData { + keen::float4 azimuthRotationXZ; // Offset: 0 + keen::float32 specularMipLevelCount; // Offset: 16 + keen::float32 intensity; // Offset: 20 + keen::uint32 isValid; // Offset: 24 +}; + +struct Fog2ShadowVolumeTransform { + keen::StaticArray worldToCascadeMatrices; // Offset: 0 +}; + +struct Fog2ShadowVolumeSampleParameters { + keen::Fog2ShadowVolumeTransform transform; // Offset: 0 + keen::uint32 cascadeCount; // Offset: 192 + keen::float32 invCascadeCount; // Offset: 196 + keen::float32 halfPixelWidth; // Offset: 200 +}; + +struct VolumetricShadowRuntimeData { + keen::Fog2ShadowVolumeSampleParameters fog2ShadowVolumeSampleParameters; // Offset: 0 + keen::float3 directionalLightDirection; // Offset: 208 + keen::uint32 flags; // Offset: 220 + keen::float2 cloudMapTexcoordMapping; // Offset: 224 + keen::float32 pad0; // Offset: 232 + keen::float32 pad1; // Offset: 236 +}; + +struct DeferredLightingConstants { + keen::RenderLightFactors lightFactors; // Offset: 0 + keen::uint2 outputSize; // Offset: 32 + keen::float2 invOutputSize; // Offset: 40 + keen::float32 time; // Offset: 48 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 176 + keen::float3 cameraWorldPosition; // Offset: 240 + keen::float3 playerWorldPosition; // Offset: 256 + keen::float4 clearColor; // Offset: 272 + keen::RenderShadowAtlasShaderData atlasData; // Offset: 288 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 1376 + keen::AtmosphereShaderData atmosphere; // Offset: 1408 + keen::ForwardIblData iblData; // Offset: 1472 + keen::uint32 fogDisabled; // Offset: 1500 + keen::uint32 ssaoEnabled; // Offset: 1504 + keen::uint32 useAoMin; // Offset: 1508 + keen::uint32 useAoMaps; // Offset: 1512 + keen::uint32 giEnabled; // Offset: 1516 + keen::uint32 pointLightsEnabled; // Offset: 1520 + keen::uint32 useHorizonBasedSpecularOcclusion; // Offset: 1524 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1536 + keen::RenderDebugConstants debugData; // Offset: 1776 + keen::uint32 accumulateSceneBrightness; // Offset: 1808 +}; + +struct VisibilityMaterialParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 16 + keen::uint32 drawCommandBufferOffsetEarly; // Offset: 80 + keen::uint32 drawCommandBufferOffsetEarlyTessellated; // Offset: 84 + keen::uint32 drawCommandBufferOffsetLate; // Offset: 88 + keen::uint32 drawCommandBufferOffsetLateTessellated; // Offset: 92 +}; + +struct DepthOfFieldConstants { + keen::float focalLength; // Offset: 0 + keen::float focalDistance; // Offset: 4 + keen::float cocScale; // Offset: 8 + keen::float2 linearDepthParameters; // Offset: 16 + keen::float2 kernelScale; // Offset: 24 + keen::float2 sceneImagePixelSize; // Offset: 32 + keen::float2 jitterOffset; // Offset: 40 + keen::GraphicsMatrix44 invProjectionMatrix; // Offset: 48 + keen::StaticArray samplesHigh; // Offset: 112 + keen::StaticArray samplesLow; // Offset: 880 +}; + +struct DepthPyramidShaderParameters { + keen::float2 inverseOutputResolution; // Offset: 0 + keen::uint2 inputResolution; // Offset: 8 +}; + +enum class DetailScatterModelAlignmentAxis { + PlusX = 0, + PlusY = 1, +}; + +struct DetailScatterModel { + keen::DetailScatterModelAlignmentAxis alignmentAxis; // Offset: 0 + keen::bool spawnInside; // Offset: 1 + keen::bool spawnOutside; // Offset: 2 + keen::float32 alignWithNormalStrength; // Offset: 4 + keen::float32 randomRotationXStrength; // Offset: 8 + keen::float32 randomRotationYStrength; // Offset: 12 + keen::float32 randomRotationZStrength; // Offset: 16 + keen::float32 minFadeoutDistance; // Offset: 20 + keen::float32 maxFadeoutDistance; // Offset: 24 + keen::float32 minScale; // Offset: 28 + keen::float32 maxScale; // Offset: 32 + keen::float32 mapScaleStrength; // Offset: 36 + keen::float32 materialWeightScaleStrength; // Offset: 40 +}; + +struct DetailScatterInstance { + keen::ObjectReference model; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::bool onlyOnWeathered; // Offset: 20 +}; + +enum class TextureChannel { + Red = 0, + Green = 1, + Blue = 2, + Alpha = 3, +}; + +struct DetailScatterGroup { + keen::TextureChannel mapChannel; // Offset: 0 +}; + +struct DetailScatterLayer { + keen::ObjectReference map; // Offset: 0 + keen::float32 mapTilingSize; // Offset: 16 +}; + +struct DetailScatterLayerShaderData { + keen::BindlessTexture2D_float4 map; // Offset: 0 + keen::float32 mapTilingFactor; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::BindlessTexture2D_float edgeNoiseMap; // Offset: 16 + keen::float32 edgeNoiseTilingFactor; // Offset: 20 + keen::float32 edgeNoiseMappingFactor; // Offset: 24 + keen::uint32 pad2; // Offset: 28 + keen::uint4 modelOffset; // Offset: 32 + keen::uint4 modelCount; // Offset: 48 +}; + +struct DetailScatterModelProbabilityCutoffShaderData { + keen::float32 value; // Offset: 0 +}; + +struct DetailScatterModelShaderData { + keen::float32 minFadeoutDistance; // Offset: 0 + keen::float32 maxFadeoutDistance; // Offset: 4 + keen::float32 minScale; // Offset: 8 + keen::float32 maxScale; // Offset: 12 + keen::float32 alignWithNormalStrength; // Offset: 16 + keen::uint32 params0; // Offset: 20 + keen::uint32 params1; // Offset: 24 + keen::float32 lodDistance; // Offset: 28 +}; + +struct DetailScatterShaderData { + keen::BindlessSampler scatterMapSampler; // Offset: 0 + keen::uint32 pad0; // Offset: 4 + keen::uint32 pad1; // Offset: 8 + keen::uint32 pad2; // Offset: 12 +}; + +struct DetailScatterResource { + keen::RenderParameterBlock shaderDataParameterBlock; // Offset: 0 + keen::RenderParameterBlock layersShaderDataParameterBlock; // Offset: 52 + keen::RenderParameterBlock modelsShaderDataParameterBlock; // Offset: 104 + keen::RenderParameterBlock modelProbabilityCutoffsShaderDataParameterBlock; // Offset: 156 + keen::BlobArray> models; // Offset: 208 + keen::float largestModelRadius; // Offset: 216 +}; + +struct DissolveMaterialParameters { + keen::bool enable; // Offset: 0 + keen::float32 noiseTiling; // Offset: 4 + keen::float32 noiseFadeRange; // Offset: 8 + keen::ObjectReference noiseMap; // Offset: 12 + keen::bool enableEdgeGlow; // Offset: 28 + keen::float32 edgeWidth; // Offset: 32 + keen::Color edgeColor; // Offset: 36 +}; + +struct DynamicHeightmapFillShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 + keen::uint2 ditherPos; // Offset: 16 + keen::int2 origin; // Offset: 24 + keen::float scale; // Offset: 32 + keen::float worldTop; // Offset: 36 +}; + +struct DynamicHeightmapRasterizeTreesShaderParameters { + keen::float32 scale; // Offset: 0 +}; + +struct CollectGpuCullingTreesShaderParameters { + keen::uint drawCountBufferOffset; // Offset: 0 + keen::uint drawCommandBufferOffset; // Offset: 4 +}; + +struct FfxShadowDenoiserShaderParameters { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 reprojectionMatrix; // Offset: 128 + keen::GraphicsMatrix43 viewMatrix; // Offset: 192 + keen::float3 cameraPosition; // Offset: 240 + keen::uint2 packedSize; // Offset: 256 + keen::uint2 targetSize; // Offset: 264 + keen::float2 inverseTargetSize; // Offset: 272 + keen::uint32 isFirstFrame; // Offset: 280 + keen::uint32 pixelSize; // Offset: 284 + keen::float32 depthSigma; // Offset: 288 +}; + +struct FfxShadowDenoiserPushConstants { + keen::uint32 stepSize; // Offset: 0 +}; + +struct FogMaterialParameters { + keen::float32 absorption; // Offset: 0 + keen::Color scattering; // Offset: 4 + keen::HdrColorRgb emission; // Offset: 8 + keen::float32 density; // Offset: 24 +}; + +struct FoliageAnimationAdvancedParameters { + keen::float32 branchPhaseOffset; // Offset: 0 + keen::float32 detailFrequency; // Offset: 4 + keen::float32 edgeAmplitude; // Offset: 8 + keen::float32 branchAmplitude; // Offset: 12 +}; + +struct FoliageAnimationModelParameters { + keen::float32 assetHeightFactor; // Offset: 0 + keen::float32 globalStiffnessFactor; // Offset: 4 + keen::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 8 +}; + +struct GrassPushbackModelParameters { + keen::float32 bounceTime; // Offset: 0 + keen::uint32 bounceCount; // Offset: 4 + keen::float32 bounceDamping; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct GrassPushbackShaderParameters { + keen::float32 bounceDamping; // Offset: 0 + keen::float32 bounceFrequency; // Offset: 4 + keen::float32 oneOverBounceTime; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct FoliageAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 precomputedBendScale; // Offset: 4 + keen::float32 globalStiffnessFactor; // Offset: 8 + keen::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 12 + keen::GrassPushbackShaderParameters pushBack; // Offset: 28 +}; + +struct GrassAnimationModelParameters { + keen::float32 largeDisplacementWeight; // Offset: 0 + keen::float32 smallDisplacementWeight; // Offset: 4 +}; + +struct GrassAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 largeDisplacementWeight; // Offset: 4 + keen::float32 smallDisplacementWeight; // Offset: 8 + keen::float32 oneOverModelHeight; // Offset: 12 + keen::GrassPushbackShaderParameters pushBack; // Offset: 16 +}; + +struct ForestFogFootprintMaterial { +}; + +struct ForestFogFootprintRenderMaterial { +}; + +struct RenderPushConstants2 { + keen::uint32 drawCommandBufferOffset; // Offset: 0 + keen::uint32 isLateCullingPass; // Offset: 4 + keen::uint32 drawIndex; // Offset: 8 + keen::uint32 isRunningOnSteamDeck; // Offset: 12 +}; + +struct VfxDrawPushConstants { + keen::uint32 baseDrawIndex; // Offset: 0 +}; + +struct RenderShadowPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::GrassMovementData grassMovement; // Offset: 80 + keen::SnowDisplacementData snowDisplacement; // Offset: 112 + keen::uint32 enableCloth; // Offset: 160 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 176 + keen::TessellatedMaterialConstants buildingTessellation; // Offset: 192 + keen::uint32 blueNoiseSizeMask; // Offset: 208 + keen::uint2 blueNoiseOffset; // Offset: 212 + keen::uint32 useStochasticMaterialSampling; // Offset: 220 + keen::uint32 isVoxelMaterialDataValid; // Offset: 224 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 256 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 320 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 324 +}; + +struct RenderDepthConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::float32 prevTime; // Offset: 80 + keen::GrassMovementData grassMovement; // Offset: 96 + keen::GrassMovementData grassMovementPrevious; // Offset: 128 + keen::SnowDisplacementData snowDisplacement; // Offset: 160 + keen::uint32 enableCloth; // Offset: 208 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::TessellatedMaterialConstants buildingTessellation; // Offset: 240 + keen::float mipBias; // Offset: 256 + keen::uint32 blueNoiseSizeMask; // Offset: 260 + keen::uint2 blueNoiseOffset; // Offset: 264 + keen::uint32 useStochasticMaterialSampling; // Offset: 272 + keen::uint32 isVoxelMaterialDataValid; // Offset: 276 + keen::float2 cancelJitter; // Offset: 280 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 288 + keen::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 304 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 320 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 384 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 448 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 452 +}; + +struct RenderForwardConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 176 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::float3 cameraWorldPosition; // Offset: 256 + keen::float32 time; // Offset: 268 + keen::RenderDebugConstants debugData; // Offset: 272 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 304 + keen::RenderLightFactors lightFactors; // Offset: 336 +}; + +struct VoxelWorldShadowCascadeShaderData { + keen::GraphicsMatrix44 worldToShadowMatrix; // Offset: 0 +}; + +struct VoxelWorldShadowMapShaderData { + keen::StaticArray cascades; // Offset: 0 + keen::float2 shadowMapSize; // Offset: 128 + keen::float2 inverseShadowMapSize; // Offset: 136 + keen::uint32 isValid; // Offset: 144 +}; + +struct RenderTransparentConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::RenderDebugConstants debugData; // Offset: 192 + keen::uint32 fogDisabled; // Offset: 224 + keen::uint32 shadowsDisabled; // Offset: 228 + keen::uint32 manyLightsShadowsEnabled; // Offset: 232 + keen::uint32 measureOverdraw; // Offset: 236 + keen::uint32 isFsrEnabled; // Offset: 240 + keen::RenderShadowAtlasShaderData atlasData; // Offset: 256 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 1344 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1376 + keen::AtmosphereShaderData atmosphere; // Offset: 1616 + keen::RenderLightFactors lightFactors; // Offset: 1680 + keen::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 1712 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 1872 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 1888 +}; + +struct RenderDebugPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 64 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 96 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 336 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 352 +}; + +struct ViewSpacePositionReconstructionData { + keen::GraphicsMatrix44 screenToTargetSpaceTransform; // Offset: 0 +}; + +struct Fog2ViewVolumeTransform { + keen::float32 depthRemap; // Offset: 0 + keen::float32 invDepthRemap; // Offset: 4 +}; + +struct Fog2ViewVolumeSampleParameters { + keen::Fog2ViewVolumeTransform transform; // Offset: 0 + keen::float3 viewVolumeSize; // Offset: 16 +}; + +struct RenderForwardTransparentConstants { + keen::ViewSpacePositionReconstructionData viewSpacePositionReconstructionData; // Offset: 0 + keen::Fog2ViewVolumeSampleParameters viewVolumeSampleParameters; // Offset: 64 + keen::float2 linearDepthParameters; // Offset: 96 + keen::uint32 fogFlags; // Offset: 104 +}; + +enum class RenderModelMaterialDataType { + Invalid = 0, + GrassAnimation = 1, + FoliageAnimation = 2, +}; + +struct Fsr3UpscalerConstants { + keen::int2 iRenderSize; // Offset: 0 + keen::int2 iMaxRenderSize; // Offset: 8 + keen::int2 iDisplaySize; // Offset: 16 + keen::int2 iInputColorResourceDimensions; // Offset: 24 + keen::int2 iLumaMipDimensions; // Offset: 32 + keen::int iLumaMipLevelToUse; // Offset: 40 + keen::int iFrameIndex; // Offset: 44 + keen::float4 fDeviceToViewDepth; // Offset: 48 + keen::float2 fJitter; // Offset: 64 + keen::float2 fMotionVectorScale; // Offset: 72 + keen::float2 fDownscaleFactor; // Offset: 80 + keen::float2 fMotionVectorJitterCancellation; // Offset: 88 + keen::float fExposure; // Offset: 96 + keen::float fPreExposure; // Offset: 100 + keen::float fPreviousFramePreExposure; // Offset: 104 + keen::float fTanHalfFOV; // Offset: 108 + keen::float fJitterSequenceLength; // Offset: 112 + keen::float fDeltaTime; // Offset: 116 + keen::float fDynamicResChangeFactor; // Offset: 120 + keen::float fViewSpaceToMetersFactor; // Offset: 124 +}; + +struct Fsr3UpscalerSpdConstants { + keen::uint mips; // Offset: 0 + keen::uint numWorkGroups; // Offset: 4 + keen::uint2 workGroupOffset; // Offset: 8 + keen::uint2 renderSize; // Offset: 16 +}; + +struct Fsr3UpscalerRcasConstants { + keen::uint4 rcasConfig; // Offset: 0 +}; + +enum class GiQuality { + Performance = 0, + Balance = 1, + High = 2, + Ultra = 3, + GroundTruth = 4, +}; + +enum class GiProbeSize { + PixelCount_8 = 0, + PixelCount_16 = 1, + PixelCount_32 = 2, +}; + +enum class GiIrradianceProbeSize { + PixelCount_8 = 0, + PixelCount_12 = 1, + PixelCount_16 = 2, +}; + +enum class GiDispatchSize { + Dispatch_3x3x3 = 0, + Dispatch_7x7x7 = 1, +}; + +enum class SdfBvhVariant { + VoxelWorld = 0, + VoxelWorldAndModels = 1, +}; + +struct GiQualitySettings { + keen::GiProbeSize radianceAndDistancePixelCount; // Offset: 0 + keen::GiIrradianceProbeSize irradiancePixelCount; // Offset: 4 + keen::uint atlasSizeX; // Offset: 8 + keen::uint atlasSizeY; // Offset: 12 + keen::uint globalRayBudget; // Offset: 16 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 20 + keen::uint frustumMinRaysPerProbe; // Offset: 24 + keen::uint frustumIncreasedMinRaysPerProbe; // Offset: 28 + keen::uint frustumMaxProbeRayCount; // Offset: 32 + keen::uint frustumRayBatchSize; // Offset: 36 + keen::uint worldCacheRayBatchSize; // Offset: 40 + keen::uint worldCacheMinRaysPerProbe; // Offset: 44 + keen::uint worldCacheMaxProbeRayCount; // Offset: 48 + keen::uint ambientRayBatchSize; // Offset: 52 + keen::uint ambientMinRaysPerProbe; // Offset: 56 + keen::uint ambientMaxProbeRayCount; // Offset: 60 + keen::uint ambientFroxelDepthSliceCount; // Offset: 64 + keen::float frustumLightCacheStartDiameter; // Offset: 68 + keen::float worldCacheLightCacheStartDiameter; // Offset: 72 + keen::uint maxNeighboursSharingHistory; // Offset: 76 + keen::uint maxNeighboursSharingRays; // Offset: 80 + keen::GiDispatchSize neighbourCandidateDispatchSize; // Offset: 84 + keen::float fillAmbientProbeRayCountScale; // Offset: 88 + keen::bool fillAmbientProbesIteratively; // Offset: 92 + keen::uint minimumFilledRaysToAmbientProbes; // Offset: 96 + keen::uint prefilterRadianceLevelCount; // Offset: 100 + keen::float prefilterAngleScale; // Offset: 104 + keen::uint rayBinCascadeStartOffset; // Offset: 108 + keen::uint worldCacheRayBinCascadeStartOffset; // Offset: 112 + keen::SdfBvhVariant sdfBvhVariant; // Offset: 116 +}; + +struct GiSunLightShaderData { + keen::float3 direction0; // Offset: 0 + keen::float3 directLight0; // Offset: 16 + keen::float3 indirectLight0; // Offset: 32 + keen::float3 direction1; // Offset: 48 + keen::float3 indirectLight1; // Offset: 64 +}; + +struct GiShadowShaderData { + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1088 + keen::uint32 flags; // Offset: 1328 +}; + +struct GiProbe { + keen::float3 pushedOutPosition; // Offset: 0 + keen::float size; // Offset: 12 + keen::float probeDataQuality; // Offset: 16 + keen::uint32 probeRadianceSum; // Offset: 20 + keen::uint32 rayListStartIndexAndProbeState; // Offset: 24 + keen::uint32 rayListRayCountAndRequestedRayCount; // Offset: 28 +}; + +struct GiMovingAverageEstimatorData { + keen::float3 shortMean; // Offset: 0 + keen::float vbbr; // Offset: 12 + keen::float3 variance; // Offset: 16 + keen::float inconsistency; // Offset: 28 +}; + +struct GiMovingAverageEstimatorDataEncoded { + keen::uint4 data; // Offset: 0 +}; + +enum class GiProbeType { + FrustumProbe = 0, + WorldCacheProbe = 1, + AmbientProbe = 2, + Invalid = 3, +}; + +enum class GiRayHitType { + Terrain = 0, + Building = 1, + Sky = 2, + Invalid = 3, +}; + +struct GiRayHit { + keen::float2 octahedralNormal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 8 + keen::uint materialIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevelAndHitTypeAndRayIndex; // Offset: 28 +}; + +struct GiRayHitDecoded { + keen::float3 normal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevel; // Offset: 28 + keen::GiRayHitType hitType; // Offset: 32 + keen::uint rayIndex; // Offset: 36 + keen::uint materialIndex; // Offset: 40 +}; + +struct GiRayHitCounters { + keen::uint terrainRayCount; // Offset: 0 + keen::uint buildingRayCount; // Offset: 4 + keen::uint skyRayCount; // Offset: 8 +}; + +struct GiRayEncoded { + keen::uint4 data; // Offset: 0 +}; + +struct GiRayDecoded { + keen::float3 direction; // Offset: 0 + keen::float hitDistance; // Offset: 12 + keen::float3 radiance; // Offset: 16 +}; + +struct GiRayListData { + keen::float3 origin; // Offset: 0 + keen::uint probeIndexAndRayCount; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint rayStorageIndex; // Offset: 28 +}; + +struct GiPrepareVisualisationParameters { + keen::float3 cameraOrigin; // Offset: 0 + keen::float3 farPlaneOrigin; // Offset: 16 + keen::float3 farPlaneX; // Offset: 32 + keen::float3 farPlaneY; // Offset: 48 + keen::uint2 outputSize; // Offset: 64 +}; + +struct VoxelMaterialBlendingConstants { + keen::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint hasBakingData; // Offset: 496 + keen::uint hasSimpleWorldData; // Offset: 500 + keen::uint buildingMaterialCount; // Offset: 504 + keen::float exposureCorrection; // Offset: 508 +}; + +struct LightCacheCascadeShaderData { + keen::int3 origin; // Offset: 0 + keen::int3 scrollDelta; // Offset: 16 +}; + +struct LightCacheLookupShaderData { + keen::float3 gridOrigin; // Offset: 0 + keen::float cascadeCellStartDiameter; // Offset: 12 + keen::StaticArray cascades; // Offset: 16 +}; + +struct GiVisualisationParameters { + keen::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::AtmosphereShaderData atmosphere; // Offset: 512 + keen::GiShadowShaderData shadow; // Offset: 576 + keen::LightCacheLookupShaderData primaryLightCache; // Offset: 1920 + keen::LightCacheLookupShaderData worldCachelightCache; // Offset: 2320 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 2720 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 2848 + keen::uint2 screenSize; // Offset: 2912 + keen::float2 invScreenSize; // Offset: 2920 + keen::float3 cameraOrigin; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunDirection; // Offset: 2944 + keen::float exposure; // Offset: 2956 + keen::float exposureCorrection; // Offset: 2960 + keen::float3 farPlaneOrigin; // Offset: 2964 + keen::uint32 forceNeutralAlbedo; // Offset: 2976 + keen::float3 farPlaneX; // Offset: 2980 + keen::uint32 useWorldCache; // Offset: 2992 + keen::float3 farPlaneY; // Offset: 2996 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3008 + keen::float3 lightFactorSun; // Offset: 3012 + keen::float lightFactorEmissive; // Offset: 3024 + keen::float3 lightFactorSky; // Offset: 3028 + keen::float lightFactorGi; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 +}; + +struct GiCreateProbeDrawCommandPushConstants { + keen::uint32 vertexCount; // Offset: 0 +}; + +struct GiProbePrefilterLevels { + keen::uint probeSize; // Offset: 0 +}; + +struct GiProbeVisualisationParameters { + keen::StaticArray radianceMapProbeLevels; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 128 + keen::uint sphereBandPower; // Offset: 192 + keen::float exposure; // Offset: 196 + keen::uint32 drawPixelCage; // Offset: 200 + keen::uint32 hoverProbeIndex; // Offset: 204 + keen::uint32 selectedProbeIndex; // Offset: 208 + keen::uint32 pushOutByDistance; // Offset: 212 + keen::uint32 drawIrradiance; // Offset: 216 + keen::uint32 visibleRadianceSpecularMip; // Offset: 220 + keen::uint32 atlasSizeX; // Offset: 224 + keen::uint32 atlasSizeY; // Offset: 228 + keen::uint32 debugWorldCache; // Offset: 232 + keen::float probeSizeScale; // Offset: 236 + keen::uint32 drawMovingAverageEstimatorShortMean; // Offset: 240 + keen::uint32 drawMovingAverageEstimatorVbbr; // Offset: 244 + keen::uint32 drawMovingAverageEstimatorVariance; // Offset: 248 + keen::uint32 drawMovingAverageEstimatorInconsistency; // Offset: 252 +}; + +struct GiShootShadowRaysParameters { + keen::float3 sunDirection; // Offset: 0 + keen::uint32 maxRayCount; // Offset: 12 + keen::uint32 drawSunShadowRayProbeIndex; // Offset: 16 +}; + +struct GiProbeUpdateParameters { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint3 minMaxRayCount; // Offset: 400 + keen::uint32 maxDeleteListCount; // Offset: 412 + keen::uint32 debugEnabled; // Offset: 416 + keen::uint32 drawPushOut; // Offset: 420 + keen::uint32 framesTillProbeInactive; // Offset: 424 + keen::uint32 maxProbeCount; // Offset: 428 + keen::float probeRecycleAgeScale; // Offset: 432 + keen::float invFramesTillProbeInactive; // Offset: 436 + keen::float invFramesTillProbeQualityReached; // Offset: 440 + keen::uint32 useDirectionToOffsetProbes; // Offset: 444 +}; + +struct LightCacheFreeEntriesConstants { + keen::uint32 maxDeleteListCount; // Offset: 0 +}; + +struct GiProbeShootRaysParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 400 + keen::float2 debugScreenSizeInv; // Offset: 464 + keen::uint32 frameId; // Offset: 472 + keen::uint32 rotateRays; // Offset: 476 + keen::uint32 maxRayCount; // Offset: 480 + keen::uint32 writeOutDirection; // Offset: 484 + keen::uint32 traceBvhSdfInstances; // Offset: 488 + keen::uint32 useSortedBins; // Offset: 492 + keen::uint32 showRayBins; // Offset: 496 + keen::uint32 debugSelectedProbeIndex; // Offset: 500 + keen::uint2 debugMouseScreenPosition; // Offset: 504 + keen::uint2 rayBinDirectionIndexRange; // Offset: 512 + keen::uint rayBinCascadeStartOffset; // Offset: 520 +}; + +struct GiProbeSortHitsParameters { + keen::uint32 maxRayCount; // Offset: 0 +}; + +struct GiProbeShadeHitsParameters { + keen::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::LightCacheLookupShaderData primaryLightCache; // Offset: 512 + keen::LightCacheLookupShaderData worldCachelightCache; // Offset: 912 + keen::AtmosphereShaderData atmosphere; // Offset: 1312 + keen::GiShadowShaderData shadow; // Offset: 1376 + keen::GiSunLightShaderData sun; // Offset: 2720 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 2800 + keen::float3 sunDirection; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunColor; // Offset: 2944 + keen::uint32 maxHitCount; // Offset: 2956 + keen::float3 lightFactorSky; // Offset: 2960 + keen::float lightFactorEmissive; // Offset: 2972 + keen::uint2 debugRaysRange; // Offset: 2976 + keen::float lightFactorGi; // Offset: 2984 + keen::uint32 enablePointLights; // Offset: 2988 + keen::uint32 enablePointLightShadows; // Offset: 2992 + keen::float pointLightInfluenceScale; // Offset: 2996 + keen::uint32 traceBvhSdfInstances; // Offset: 3000 + keen::uint32 forceNeutralAlbedo; // Offset: 3004 + keen::uint32 isFogEnabled; // Offset: 3008 + keen::uint32 maxRayCount; // Offset: 3012 + keen::uint32 useWorldCache; // Offset: 3016 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3020 + keen::float exposure; // Offset: 3024 + keen::float primaryCacheExposureCorrection; // Offset: 3028 + keen::float worldCacheExposureCorrection; // Offset: 3032 + keen::uint32 drawRaysInRange; // Offset: 3036 + keen::uint32 drawRaysProbeIndex; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 + keen::uint32 applyWetness; // Offset: 3052 + keen::float3 cameraWorldPosition; // Offset: 3056 + keen::uint32 applySnow; // Offset: 3068 + keen::uint32 applyCloudMap; // Offset: 3072 +}; + +struct GiRasterizeIrradianceParameters { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::StaticArray radianceMapProbeLevels; // Offset: 400 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 592 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 656 + keen::GraphicsMatrix44 previousCameraCenteredToClipSpaceMatrix; // Offset: 720 + keen::float3 cameraWorldPosition; // Offset: 784 + keen::uint32 radianceMipsCount; // Offset: 796 + keen::float3 previousCameraWorldPosition; // Offset: 800 + keen::uint32 useStochasticSampling; // Offset: 812 + keen::uint2 screenSize; // Offset: 816 + keen::float2 invScreenSize; // Offset: 824 + keen::uint2 blueNoiseOffset; // Offset: 832 + keen::float previousExposureCorrection; // Offset: 840 + keen::float exposureCorrection; // Offset: 844 + keen::float2 linearDepthParameters; // Offset: 848 + keen::float exposure; // Offset: 856 + keen::uint32 useStochasticReflectedRadiance; // Offset: 860 + keen::uint32 useStochasticReflectedIrradiance; // Offset: 864 + keen::uint32 stochasticFrameId; // Offset: 868 + keen::uint32 useHistory; // Offset: 872 + keen::uint32 atlasSizeX; // Offset: 876 + keen::uint32 atlasSizeY; // Offset: 880 + keen::uint32 colorCodeReprojection; // Offset: 884 + keen::uint2 mousePos; // Offset: 888 + keen::uint32 drawPixelCage; // Offset: 896 + keen::uint32 groundTruthSpecular; // Offset: 900 + keen::uint32 writeToSceneBrightness; // Offset: 904 +}; + +struct GiVisualizeIrradianceParameters { + keen::uint2 screenSize; // Offset: 0 + keen::float giLightFactor; // Offset: 8 + keen::float exposure; // Offset: 12 +}; + +struct GiProbeBlendRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float previousExposureInverse; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::float maxRayRadiance; // Offset: 12 + keen::float warmupProbeQualityBorderline; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 + keen::uint32 debugProbeIndex; // Offset: 28 + keen::float varianceGuidedRayCountThreshold; // Offset: 32 +}; + +struct GiProbeBlendWorldCacheRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float maxRayRadiance; // Offset: 4 + keen::uint32 debugProbeIndex; // Offset: 8 + keen::float previousExposureInverse; // Offset: 12 + keen::float exposure; // Offset: 16 +}; + +struct GiBlendNeighbourRadianceProbesParameters { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::float exposure; // Offset: 400 + keen::float exposureCorrectionFactor; // Offset: 404 + keen::uint32 blendIterations; // Offset: 408 + keen::uint32 blendRaysIterations; // Offset: 412 + keen::uint32 maxProbeCount; // Offset: 416 + keen::uint32 drawNeighbourBlendProbeIndex; // Offset: 420 + keen::uint32 showBlendPixels; // Offset: 424 + keen::uint32 onlyShowDebugInfo; // Offset: 428 + keen::uint32 atlasSizeX; // Offset: 432 + keen::uint32 atlasSizeY; // Offset: 436 + keen::float allowOccludedPixelsAfterDistance; // Offset: 440 + keen::float occludedPixelsDepthBias; // Offset: 444 + keen::uint32 debugNeighbourPixelProjection; // Offset: 448 + keen::float2 debugPixelProjectionParameters; // Offset: 452 +}; + +struct GiBlendNeighbourRadianceProbesRootConstantData { + keen::uint randomSeed; // Offset: 0 + keen::float doNotShareProbesBelowQuality; // Offset: 4 + keen::uint blendIterations; // Offset: 8 +}; + +struct GiProbeShadeHitsPipelineRootConstantData { + keen::uint rayHitType; // Offset: 0 + keen::uint probeType; // Offset: 4 +}; + +struct GiProbePrepareShadeIndirectDispatchesParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint shadowDispatchSize; // Offset: 4 + keen::uint prepareShadowRays; // Offset: 8 +}; + +struct GiProbePrefilterRadianceParameters { + keen::uint2 lowResolutionSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 sourceSize; // Offset: 16 + keen::float invProbeSize; // Offset: 24 + keen::float invSourceProbeSize; // Offset: 28 + keen::float sampleScale; // Offset: 32 + keen::float linearEnergyScale; // Offset: 36 + keen::float cosAngleScale; // Offset: 40 + keen::uint maxProbeCount; // Offset: 44 + keen::uint atlasSizeX; // Offset: 48 + keen::uint atlasSizeY; // Offset: 52 +}; + +struct GiProbeBlendIrradianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float updateFromPreviousExposure; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::uint32 debugProbeIndex; // Offset: 12 + keen::uint32 highlightNewProbes; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 +}; + +struct GiProbeBlendDistanceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::uint32 atlasSizeX; // Offset: 4 + keen::uint32 atlasSizeY; // Offset: 8 + keen::uint32 frameId; // Offset: 12 + keen::uint32 debugProbeIndex; // Offset: 16 + keen::float exposure; // Offset: 20 +}; + +struct GiProbeDebugData { + keen::uint isCoveringPixel; // Offset: 0 +}; + +struct GiDebugProbeInfo { + keen::float3 pushedOutPosition; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint3 cellCoordinate; // Offset: 16 + keen::uint cascadeIndex; // Offset: 28 + keen::uint requestedRayCount; // Offset: 32 + keen::uint rayCount; // Offset: 36 + keen::float probeQuality; // Offset: 40 + keen::uint isNew; // Offset: 44 +}; + +struct ShSpectralCoeffs { + keen::float4 r; // Offset: 0 + keen::float4 g; // Offset: 16 + keen::float4 b; // Offset: 32 +}; + +struct GiPopulateRayListPrepareIndirectParameters { + keen::uint dispatchSize; // Offset: 0 +}; + +struct GiPopulateRayListParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint useUniformSamplingAfterFrames; // Offset: 424 + keen::uint validRadianceMaps; // Offset: 428 + keen::float minLuminanceSumForRayGuiding; // Offset: 432 + keen::uint sortRaysIntoBins; // Offset: 436 + keen::uint rayBinCascadeStartOffset; // Offset: 440 + keen::uint atlasSizeX; // Offset: 444 + keen::uint atlasSizeY; // Offset: 448 +}; + +struct GiPopulateWorldCacheRayListParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 + keen::uint atlasSizeX; // Offset: 432 + keen::uint atlasSizeY; // Offset: 436 +}; + +struct GiCullRequestedRaysWithRayBudgetParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRaysPerProbe; // Offset: 400 + keen::uint maxRayCount; // Offset: 404 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 408 + keen::uint rayBatchSize; // Offset: 412 + keen::uint maxProbeCount; // Offset: 416 + keen::uint debugEnabled; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 +}; + +struct GiPrepareRayBinsParameters { + keen::uint maxProbeCount; // Offset: 0 +}; + +struct GiCalculateBinDirectionOffsetParameters { + keen::uint maxRayCount; // Offset: 0 +}; + +struct GiSortRaysIntoBinsParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint debugSorting; // Offset: 8 +}; + +struct GiCullRequestedAmbientRaysWithRayBudgetParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint rayBatchSize; // Offset: 8 + keen::uint debugEnabled; // Offset: 12 +}; + +struct GiWorldCacheBlendSphericalHarmonicsIrradianceParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint debugEnabled; // Offset: 4 +}; + +struct GiCleanupCacheParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint atlasSizeX; // Offset: 4 + keen::uint atlasSizeY; // Offset: 8 +}; + +struct GiFillAmbientProbesParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::float3 referencePosition; // Offset: 256 + keen::float exposureCorrection; // Offset: 268 + keen::uint32 maxHitCount; // Offset: 272 + keen::float maxRayCountScale; // Offset: 276 + keen::uint32 minFillRayCount; // Offset: 280 + keen::uint32 useReverseRayReprojection; // Offset: 284 + keen::uint32 debugSelectedProbeIndex; // Offset: 288 + keen::uint32 debugEnabled; // Offset: 292 + keen::uint32 atlasSizeX; // Offset: 296 + keen::uint32 atlasSizeY; // Offset: 300 +}; + +struct GiAmbientConvergeParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::uint32 shouldUseHistory; // Offset: 256 + keen::float hysteresis; // Offset: 260 + keen::uint minRaysPerProbe; // Offset: 264 + keen::uint maxRaysPerProbe; // Offset: 268 + keen::uint32 atlasSizeX; // Offset: 272 + keen::uint32 atlasSizeY; // Offset: 276 + keen::float previousExposureCorrection; // Offset: 280 + keen::float exposure; // Offset: 284 + keen::uint32 debugProbeHighlightEnabled; // Offset: 288 + keen::uint32 debugSelectedProbeId; // Offset: 292 + keen::uint32 debugEnabled; // Offset: 296 + keen::uint32 debugStarvingProbes; // Offset: 300 +}; + +struct GiCalculateAmbientProbesVisibilityParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GpuCullingFrustum frustum; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 160 + keen::StaticArray lastCascadeGridSpaceOffset; // Offset: 288 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 416 + keen::float3 cameraPosition; // Offset: 544 + keen::uint32 shouldUpdateCameraVisibility; // Offset: 556 + keen::float2 linearDepthParameters; // Offset: 560 + keen::uint32 debugShowVisibilityRays; // Offset: 568 + keen::uint32 debugActiveCascade; // Offset: 572 +}; + +struct GiAmbientProbeVisualisationParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 192 + keen::uint sphereBandPower; // Offset: 320 + keen::float exposure; // Offset: 324 + keen::uint cascadeIndex; // Offset: 328 + keen::uint debugSelectedProbeIndex; // Offset: 332 + keen::uint showVisibilityMask; // Offset: 336 + keen::uint renderConvergedTexture; // Offset: 340 + keen::uint useGridCoordinatesWithoutOffset; // Offset: 344 + keen::uint showWarmupProbes; // Offset: 348 +}; + +struct GiAmbientDebugProbeInfo { + keen::uint3 cellCoordinate; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint cascadeIndex; // Offset: 16 + keen::uint rayIntersectedProbeCount; // Offset: 20 +}; + +struct GiPopulateAmbientRayListParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint frameId; // Offset: 4 + keen::uint rotateRays; // Offset: 8 + keen::float randomDirectionScale; // Offset: 12 + keen::uint rayBatchSize; // Offset: 16 + keen::uint atlasSizeX; // Offset: 20 + keen::uint atlasSizeY; // Offset: 24 +}; + +struct GiAmbientRayListData { + keen::float3 origin; // Offset: 0 + keen::uint rayListStartIndex; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint probeRayCount; // Offset: 28 +}; + +struct GiAmbientProbesLookupData { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::StaticArray gridSpaceReferencePosition; // Offset: 256 + keen::float3 referencePosition; // Offset: 384 +}; + +struct GiAmbientFroxelVolumeParameters { + keen::float3 depthRemap; // Offset: 0 + keen::uint tileSize; // Offset: 12 + keen::uint3 froxelVolumeSize; // Offset: 16 + keen::float near; // Offset: 28 + keen::float3 invFroxelVolumeSize; // Offset: 32 + keen::float far; // Offset: 44 + keen::float2 linearDepthParameters; // Offset: 48 + keen::uint2 screenSize; // Offset: 56 +}; + +struct GiFillAmbientFroxelVolumeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 previousViewProjectionMatrix; // Offset: 128 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 192 + keen::GiAmbientProbesLookupData ambientProbeLookup; // Offset: 256 + keen::GiAmbientFroxelVolumeParameters froxelData; // Offset: 656 + keen::float3 cameraPosition; // Offset: 720 + keen::float exposure; // Offset: 732 + keen::uint2 blueNoiseOffset; // Offset: 736 + keen::float2 invScreenSize; // Offset: 744 + keen::float3 previousCameraPosition; // Offset: 752 + keen::uint historyValid; // Offset: 764 + keen::float previousToCurrentExposure; // Offset: 768 + keen::uint debugShowFroxels; // Offset: 772 + keen::uint debugDrawFroxelZIndex; // Offset: 776 + keen::uint debugColorCodeReprojection; // Offset: 780 +}; + +struct GiProbePrepareFillRaysIndirectDispatchParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint minimumAllowedRays; // Offset: 4 + keen::float rayCountScale; // Offset: 8 +}; + +struct GiFillAmbientProbesWithAmbientRaysRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiCalculateAmbientProbesVisibilityRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiAmbientConvergeRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +enum class GiDebugStep { + UpdateFrustumProbes = 0, + PopulateCullAndShootFrustumRays = 1, + UpdateWorldCacheProbes = 2, + PopulateCullAndShootWorldCacheRays = 3, + UpdateAmbientProbes = 4, + PopulateCullAndShootAmbientRays = 5, + ShootPrimaryShadowRays = 6, + ShootWorldCacheAndAmbientShadowRays = 7, + ShadeWorldCacheRayHits = 8, + BlendWorldCacheRadiance = 9, + BlendWorldCacheSphericalHarmonics = 10, + ShadePrimaryAndAmbientRayHits = 11, + BlendFrustumRadianceAndDistance = 12, + BlendFrustumNeighbourProbeRays = 13, + BlendFrustumNeighbourProbes = 14, + PrefilterFrustumRadiance = 15, + BlendFrustumIrradiance = 16, + RasterizeIrradianceAndReflectedRadiance = 17, + AmbientProbeVisibility = 18, + FillAmbientProbesWithFrustumRays = 19, + FillAmbientProbesWithWorldCacheRays = 20, + FillAmbientProbesWithAmbientRays = 21, + ConvergeAmbientProbes = 22, + GiDebugStepNone = 23, +}; + +enum class GiDebugProbeType { + PrimaryProbe = 0, + WorldCacheProbe = 1, + AmbientProbe = 2, +}; + +struct GizmoMaterial { +}; + +struct GizmoRfxRenderMaterial { + keen::float4 dummy; // Offset: 0 +}; + +struct GpuCounterFillCommand { + keen::uint32 byteOffset; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct FillBufferParameters { + keen::uint32 commandCount; // Offset: 0 +}; + +enum class GpuDataCacheImageStreamingState { + Idle = 0, + Working = 1, + Flushing = 2, +}; + +struct GpuDataCacheImageStreamingMemoryBlockInfo { + keen::uint64 sizeInBytes; // Offset: 0 +}; + +struct GpuDataCacheMemoryRangeInfo { + keen::uint8 blockIndex; // Offset: 0 + keen::uint64 offset; // Offset: 8 + keen::uint64 size; // Offset: 16 +}; + +enum class GpuImageStreamingDataLoadingState { + Idle = 0, + Scheduled = 1, + CreateHighResTexture = 2, + AllocateUploadMemory = 3, + StartContentLoad = 4, + WaitForContentLoad = 5, + StartUploadMemoryTransfer = 6, + WaitForUploadMemoryTransfer = 7, + WriteDescriptorSet = 8, + WaitForPendingFrames = 9, +}; + +struct GpuDataCacheImageStreamingImageInfo { + keen::uint32 handle; // Offset: 0 + keen::string name; // Offset: 4 + keen::TextureType type; // Offset: 12 + keen::PixelFormat format; // Offset: 13 + keen::ContentHash content; // Offset: 16 + keen::uint3 originalSize; // Offset: 32 + keen::uint8 mipTailStartLevel; // Offset: 44 + keen::float32 requiredLevel; // Offset: 48 + keen::uint8 currentLevel; // Offset: 52 + keen::uint32 sampledLevelsMask; // Offset: 56 + keen::GpuImageStreamingDataLoadingState state; // Offset: 60 + keen::GpuDataCacheMemoryRangeInfo memoryRange; // Offset: 64 + keen::GpuDataCacheMemoryRangeInfo loadingMemoryRange; // Offset: 88 + keen::uint64 estimatedRequiredMemorySize; // Offset: 112 + keen::uint64 actualRequiredMemorySize; // Offset: 120 +}; + +enum class ImageStreamingAlgorithm { + ForceUnload = 0, + ForceFullResolution = 1, + ForceIdealSolution = 2, + BudgetAware = 3, +}; + +struct GpuDataCacheImageStreamingStateMessage { + keen::GpuDataCacheImageStreamingState state; // Offset: 0 + keen::bool isSamplerFeedbackResetEnabled; // Offset: 1 + keen::uint64 currentUploadBudget; // Offset: 8 + keen::uint64 uploadBudget; // Offset: 16 + keen::ImageStreamingAlgorithm algorithm; // Offset: 24 + keen::BlobArray memoryBlocks; // Offset: 28 + keen::uint64 totalMemorySize; // Offset: 40 + keen::uint64 allocatedMemorySize; // Offset: 48 + keen::uint64 loadingMemorySize; // Offset: 56 + keen::BlobArray images; // Offset: 64 + keen::uint64 estimatedWorkingSetSize; // Offset: 72 + keen::uint64 actualWorkingSetSize; // Offset: 80 +}; + +struct GpuDataCacheSetSamplerFeedbackResetMessage { + keen::bool enableReset; // Offset: 0 +}; + +struct GpuDataCacheSetImageStreamingAlgorithmMessage { + keen::ImageStreamingAlgorithm algorithm; // Offset: 0 +}; + +struct GpuDataCacheFlushImageStreamingMemoryMessage { +}; + +struct GpuDebugRendererVertex { + keen::float3 position; // Offset: 0 + keen::uint32 color; // Offset: 12 +}; + +enum class GpuDebugRendererContextCounter { + Lines = 0, +}; + +struct GpuDebugRendererContextState { + keen::uint32 lineCounterOffset; // Offset: 0 + keen::uint32 maxLineCount; // Offset: 4 +}; + +struct GpuDebugRendererDrawParameters { + keen::GraphicsMatrix44 mvp; // Offset: 0 +}; + +struct GpuModel { + keen::uint32 nodeModelIndex0; // Offset: 0 + keen::uint32 nodeModelIndex1; // Offset: 4 + keen::uint32 nodeModelIndex2; // Offset: 8 + keen::uint32 nodeModelIndex3; // Offset: 12 + keen::uint32 nodeModelIndex4; // Offset: 16 + keen::uint32 nodeModelIndex5; // Offset: 20 +}; + +struct GrassMovementUpdateParameters { + keen::uint2 textureSize; // Offset: 0 + keen::uint lastTextureId; // Offset: 8 + keen::uint bodyCounterOffset; // Offset: 12 + keen::float2 size; // Offset: 16 + keen::float2 oneOverSize; // Offset: 24 + keen::PackedShaderWorldPositionUniform currentOrigin; // Offset: 32 + keen::float historyStrength; // Offset: 48 + keen::PackedShaderWorldPositionUniform lastOrigin; // Offset: 64 + keen::float deltaTime; // Offset: 80 + keen::float2 oneOverTextureSize; // Offset: 84 +}; + +struct GrassMovementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float outerRadius; // Offset: 12 + keen::float innerRadius; // Offset: 16 + keen::float strength; // Offset: 20 +}; + +struct GridMaterial { + keen::float32 lineSize; // Offset: 0 + keen::float32 axisSize; // Offset: 4 + keen::Color color0; // Offset: 8 + keen::Color color1; // Offset: 12 +}; + +struct GridRfxRenderMaterial { + keen::float32 axisSize; // Offset: 0 + keen::float32 lineSize; // Offset: 4 + keen::float4 color0; // Offset: 8 + keen::float4 color1; // Offset: 24 +}; + +struct VfxGridMaterial { + keen::float32 cellSize; // Offset: 0 + keen::Color color; // Offset: 4 +}; + +struct VfxGridRfxRenderMaterial { + keen::float3 color; // Offset: 0 + keen::float32 invCellSize; // Offset: 12 +}; + +enum class IblSourceType { + LatLong = 0, + Cubemap = 1, +}; + +struct Ibl { + keen::IblSourceType sourceType; // Offset: 0 + keen::uint16 diffuseOutputSize; // Offset: 2 + keen::uint16 diffuseSampleCount; // Offset: 4 + keen::uint16 specularSampleCount; // Offset: 6 +}; + +struct IblResource { + keen::uint16 diffuseSize; // Offset: 0 + keen::ContentHash diffuseData; // Offset: 4 + keen::uint16 specularSize; // Offset: 20 + keen::uint8 specularLevelCount; // Offset: 22 + keen::ContentHash specularData; // Offset: 24 +}; + +struct SpecularIblLutResource { + keen::uint16 size; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::ContentHash content; // Offset: 4 +}; + +struct CreateDispatchArgsShaderData { + keen::uint targetThreadGroupSize; // Offset: 0 + keen::uint targetBufferOffset; // Offset: 4 + keen::uint threadCountOffsetX; // Offset: 8 + keen::uint threadCountPerSourceCount; // Offset: 12 +}; + +struct LightCacheFrustumTestShaderParameters { + keen::float3 cellCenter; // Offset: 0 + keen::float32 cellSize; // Offset: 12 + keen::float3 sunDirection; // Offset: 16 +}; + +struct LightCacheFrustumTestShaderResult { + keen::StaticArray planes; // Offset: 0 + keen::uint32 hits; // Offset: 144 +}; + +struct LightCacheCounters { + keen::uint32 allocationCount; // Offset: 0 + keen::uint32 maxAllocationCount; // Offset: 4 + keen::uint32 freeListIndex; // Offset: 8 + keen::uint32 visibleCount; // Offset: 12 + keen::uint32 deleteCount; // Offset: 16 +}; + +struct LightCacheAllocateGiProbeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::float3 cameraPosition; // Offset: 480 + keen::uint32 frameId; // Offset: 492 + keen::uint2 blueNoiseOffset; // Offset: 496 + keen::uint32 allocateDownsample; // Offset: 504 + keen::uint cascadeCellCount; // Offset: 508 + keen::uint2 mousePosition; // Offset: 512 + keen::uint showCascadeTransitions; // Offset: 520 +}; + +struct LightCachePrepareAllocateParameters { + keen::uint32 maxEntryCount; // Offset: 0 +}; + +struct LightCachePrepareEntriesParameters { + keen::uint32 entryCount; // Offset: 0 +}; + +struct LightCacheRecycleEntriesParameters { + keen::uint32 maxEntryCount; // Offset: 0 + keen::float entryRecycleAgeScale; // Offset: 4 +}; + +struct LightCacheAllocateEntriesParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::uint32 allocateDownsample; // Offset: 480 + keen::uint32 frameId; // Offset: 484 + keen::uint32 cascadeCellCount; // Offset: 488 +}; + +struct LightCacheAllocateEntriesAtPositionsParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::LightCacheLookupShaderData primaryLightCache; // Offset: 400 + keen::float maxRange; // Offset: 800 + keen::uint32 useDirectionBuffer; // Offset: 804 + keen::uint32 usePrimaryCache; // Offset: 808 + keen::uint32 maxEntryCount; // Offset: 812 + keen::float3 cameraPosition; // Offset: 816 + keen::uint32 minCascade; // Offset: 828 +}; + +struct LightCacheScrollCascadesParameters { + keen::LightCacheLookupShaderData lightCache; // Offset: 0 +}; + +struct LightCacheDebugParameters { + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint2 screenSize; // Offset: 64 + keen::LightCacheLookupShaderData lightCache; // Offset: 80 + keen::uint32 totalCellCount; // Offset: 480 + keen::uint32 frameId; // Offset: 484 +}; + +struct LightCacheLightCullingIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 + keen::uint lightCacheLightListOffset; // Offset: 8 + keen::uint lightCacheEntryCount; // Offset: 12 +}; + +struct LightCacheLightCullingUniformBuffer { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCountOffset; // Offset: 400 + keen::uint maxLightCount; // Offset: 404 + keen::uint maxLightCacheEntries; // Offset: 408 + keen::uint lightCacheEntries; // Offset: 412 +}; + +struct LightCacheLightCullingResultUniformBuffer { + keen::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCacheDataEntryCount; // Offset: 400 +}; + +struct LightCacheLightCullingDebugParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::uint2 targetSize; // Offset: 64 + keen::float2 invTargetSize; // Offset: 72 + keen::LightCacheLookupShaderData lightCache; // Offset: 80 +}; + +enum class ManyLightsShadowsQuality { + UltraPerformance = 0, + Performance = 1, + High = 2, + Ultra = 3, +}; + +struct ManyLightsShadowsQualitySettings { + keen::uint atlasSizeX; // Offset: 0 + keen::uint atlasSizeY; // Offset: 4 + keen::uint shadowAtlasTextureSize; // Offset: 8 + keen::float shadowMapBias; // Offset: 12 + keen::float shadowMapNormalBias; // Offset: 16 + keen::float gaussianScale; // Offset: 20 + keen::float exponentialShadowConstantX; // Offset: 24 + keen::float exponentialShadowConstantY; // Offset: 28 + keen::SdfBvhVariant sdfBvhVariant; // Offset: 32 +}; + +struct ManyLightsShadowsIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 +}; + +struct ManyLightsShadowsIndirectArgument { + keen::uint3 updateShadowAtlas; // Offset: 0 + keen::uint3 updateLightCache; // Offset: 12 + keen::uint3 activeLight32; // Offset: 24 + keen::uint3 atlasBorders; // Offset: 36 +}; + +struct ManyLightsPackedSdfShaderData { + keen::float4 sphere; // Offset: 0 + keen::uint modelPartIndex; // Offset: 16 + keen::uint instancePartIndex; // Offset: 20 +}; + +struct ManyLightsShadowsAtlasParameters { + keen::uint2 atlasSize; // Offset: 0 + keen::uint atlasMaxEntries; // Offset: 8 + keen::uint atlasHashMapSize; // Offset: 12 + keen::uint atlasElementSize; // Offset: 16 + keen::uint atlasElementTexelCount; // Offset: 20 + keen::uint atlasElementBorder; // Offset: 24 + keen::float2 atlasExponentialShadowConstant; // Offset: 32 + keen::float2 atlasExponentialShadowChebyshevConstants; // Offset: 40 + keen::float atlasNormalBias; // Offset: 48 + keen::float atlasShadowMapBias; // Offset: 52 +}; + +struct ManyLightsShadowsUniformBuffer { + keen::GraphicsMatrix44 invViewProj; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint2 bufferDimensions; // Offset: 112 + keen::float2 invBufferDimensions; // Offset: 120 + keen::uint frameId; // Offset: 128 + keen::uint lightCount; // Offset: 132 + keen::uint maxLightCount; // Offset: 136 + keen::float gaussianBlurScale; // Offset: 140 + keen::uint enableOcclusionCulling; // Offset: 144 + keen::GpuOcclusionCullingShaderData occlusionCulling; // Offset: 160 + keen::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 224 + keen::uint2 mousePosition; // Offset: 288 + keen::uint outputUseNDotL; // Offset: 296 + keen::uint outputDrawCellBoxes; // Offset: 300 + keen::uint outputShowLightPosition; // Offset: 304 + keen::uint showLighWithRealSize; // Offset: 308 + keen::float sizeOfDebugSphere; // Offset: 312 +}; + +struct ManyLightsShadowsResultUniformBuffer { + keen::uint enabled; // Offset: 0 + keen::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 16 + keen::uint showLightInfluence; // Offset: 80 + keen::uint useAtlasSampler; // Offset: 84 + keen::uint useAtlasBias; // Offset: 88 +}; + +struct ManyLightsGatherSdfShaderParameters { + keen::uint sdfInstanceCount; // Offset: 0 +}; + +struct GaussianRootConstantData { + keen::uint2 blurVector; // Offset: 0 +}; + +typedef keen::ObjectReference MaterialReference; + +enum class ModelType { + Static = 0, + Skinned = 1, +}; + +enum class ModelTangentSpaceType { + Keen = 0, + Unity3D = 1, + Mikk = 2, +}; + +struct ModelMaterialMapEntry { + keen::string name; // Offset: 0 + keen::MaterialReference material; // Offset: 8 +}; + +typedef keen::ObjectReference ModelBlendShapeIdReference; + +struct ModelBlendShapeIdDirectory { +}; + +struct ModelBlendShapeMapEntry { + keen::string name; // Offset: 0 + keen::ModelBlendShapeIdReference id; // Offset: 8 +}; + +struct ModelConverterBlendShapeNames { + keen::BlobArray names; // Offset: 0 + keen::BlobArray selection; // Offset: 8 + keen::BlobArray ids; // Offset: 16 +}; + +struct ModelLodGenerationParameters { + keen::uint32 maxLod; // Offset: 0 + keen::float32 triangleReductionPerStep; // Offset: 4 + keen::float32 maxErrorPerStep; // Offset: 8 +}; + +struct ModelDisplacementOverrides { + keen::float32 displacementScale; // Offset: 0 + keen::float32 displacementOffset; // Offset: 4 +}; + +struct ModelClothColliderSphere { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 +}; + +struct ModelClothColliderSphereInstance { + keen::uint32 instanceIndex; // Offset: 16 +}; + +struct ModelClothColliderCapsule { + keen::ModelClothColliderSphere sphere0; // Offset: 0 + keen::ModelClothColliderSphere sphere1; // Offset: 16 +}; + +struct ModelClothColliderCapsuleInstance { + keen::uint32 instanceIndex; // Offset: 32 +}; + +struct ClothCollider { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct ModelClothSleeveCapsuleCollider { + keen::string upperBoneName; // Offset: 32 + keen::string lowerBoneName; // Offset: 40 + keen::uint32 instanceIndex; // Offset: 48 +}; + +struct ModelChain { + keen::string rootBoneName; // Offset: 0 + keen::bool propagateRotation; // Offset: 8 + keen::float32 gravity; // Offset: 12 + keen::float32 mass; // Offset: 16 + keen::float32 dragCoefficient; // Offset: 20 + keen::float32 liftCoefficient; // Offset: 24 + keen::float32 stiffnessFrequencey; // Offset: 28 + keen::float32 damping; // Offset: 32 + keen::float32 motionConstraintRadius; // Offset: 36 + keen::float32 linearInertia; // Offset: 40 + keen::float32 angularInertia; // Offset: 44 + keen::float32 centrifugalInertia; // Offset: 48 + keen::float32 phasesStiffness; // Offset: 52 + keen::float32 phasesStiffnessMultiplier; // Offset: 56 + keen::float32 phasesCompressionLimit; // Offset: 60 + keen::float32 phasesStretchLimit; // Offset: 64 + keen::float32 collisionFriction; // Offset: 68 +}; + +struct ModelChainBundle { +}; + +enum class ModelModelChainBoneConstraintAxis { + XAxis = 0, + YAxis = 1, + ZAxis = 2, +}; + +struct ModelChainBoneConstraint { + keen::string boneName; // Offset: 0 + keen::ModelModelChainBoneConstraintAxis axis; // Offset: 8 + keen::float32 minAngle; // Offset: 12 + keen::float32 maxAngle; // Offset: 16 +}; + +struct ModelClothColliderBoneAttachment { + keen::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 8 +}; + +struct ModelMaterial { + keen::string name; // Offset: 0 + keen::MaterialReference material; // Offset: 8 +}; + +struct ModelBlendshape { + keen::string name; // Offset: 0 + keen::ModelBlendShapeIdReference id; // Offset: 8 +}; + +struct ModelClothColliderContainer { +}; + +struct Model { + keen::ObjectReference hierarchy; // Offset: 0 + keen::string export_node; // Offset: 16 + keen::float32 scale; // Offset: 24 + keen::float32 k3dScale; // Offset: 28 + keen::bool create_backfaces; // Offset: 32 + keen::bool support_raytracing; // Offset: 33 + keen::string raytrace_node_name; // Offset: 36 + keen::bool rotateY; // Offset: 44 + keen::float32 lodValue; // Offset: 48 + keen::ModelLodGenerationParameters generatedLods; // Offset: 52 + keen::bool ignoreClothCollider; // Offset: 64 + keen::bool enableCardClusterLod; // Offset: 65 + keen::uint64 cardClusterVersion; // Offset: 72 + keen::bool enableGrassAnimation; // Offset: 80 + keen::GrassAnimationModelParameters grassAnimation; // Offset: 84 + keen::bool enableGrassPushback; // Offset: 92 + keen::GrassPushbackModelParameters grassPushback; // Offset: 96 + keen::bool enableSdf; // Offset: 112 +}; + +struct CardClusterInfo { + keen::bool isValid; // Offset: 0 + keen::RenderTexture albedoMap; // Offset: 4 + keen::RenderTexture materialParamsMap; // Offset: 40 + keen::RenderTexture normalMap; // Offset: 76 + keen::RenderTexture opacityMap; // Offset: 112 + keen::float32 texCoord0Delta; // Offset: 148 + keen::uint32 vertexCount; // Offset: 152 + keen::uint32 indexCount; // Offset: 156 + keen::ContentHash vertexBufferHash; // Offset: 160 + keen::ContentHash indexBufferHash; // Offset: 176 + keen::AxisAlignedBox aabb; // Offset: 192 + keen::Sphere boundingSphere; // Offset: 224 +}; + +struct ColorGradient { + keen::ObjectReference image; // Offset: 0 +}; + +struct ShaderModelChunkMesh { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 +}; + +struct ShaderModelChunkPipelineIndex { + keen::uint32 index; // Offset: 0 +}; + +struct ShaderModelChunkModelMesh { + keen::uint32 meshIndex; // Offset: 0 + keen::StaticArray pipelineIndices; // Offset: 4 +}; + +struct ShaderModelChunkModel { + keen::float4 boundingSphere; // Offset: 0 + keen::StaticArray meshes; // Offset: 16 + keen::uint32 meshCount; // Offset: 48 + keen::uint32 modelSizeFeedbackIndex; // Offset: 52 +}; + +struct ShaderModelChunkSubView { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 32 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 48 + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 96 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 192 +}; + +struct ShaderModelChunkPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 passType; // Offset: 4 +}; + +struct ShaderModelChunkInstanceCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2464 + keen::uint32 passCount; // Offset: 2468 + keen::uint32 maxDrawCount; // Offset: 2472 + keen::uint32 maxMeshCount; // Offset: 2476 + keen::float distanceCullingThreshold; // Offset: 2480 + keen::float distanceCullingJitterFactor; // Offset: 2484 + keen::float modelSizeFeedbackPixelSize; // Offset: 2488 + keen::uint smallObjectCulling; // Offset: 2492 + keen::uint writeForestFogFootprints; // Offset: 2496 +}; + +enum class ModelChunkType { + Deco = 0, + Distant = 1, + EditorModels = 2, +}; + +struct ShaderModelChunk { + keen::float4 boundingSphere; // Offset: 0 + keen::PackedShaderWorldPositionUniform worldOrigin; // Offset: 16 + keen::float3 extents; // Offset: 32 + keen::float scale; // Offset: 44 + keen::float4 orientation; // Offset: 48 + keen::PackedShaderWorldTransform transform; // Offset: 64 + keen::uint32 instanceOffset; // Offset: 96 + keen::uint32 instanceCount; // Offset: 100 + keen::ModelChunkType type; // Offset: 104 +}; + +struct ShaderModelChunkInstance { + keen::uint32 packedPosition; // Offset: 0 + keen::uint32 packedOrientation; // Offset: 4 + keen::uint32 packedScaleModelIndex; // Offset: 8 +}; + +struct ShaderModelChunkCandidate { + keen::uint32 chunkIndex; // Offset: 0 + keen::uint32 visibilityMask; // Offset: 4 +}; + +struct ShaderModelChunkCullingShaderParameters { + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 64 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 80 + keen::uint candidateCount; // Offset: 128 +}; + +struct ShaderModelChunkInstanceCullingPushConstants { + keen::uint chunkCandidateIndex; // Offset: 0 +}; + +struct ShaderModelChunkDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 +}; + +struct ShaderModelChunkDraw { + keen::uint packedChunkIndexAndMeshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct ShaderModelChunkRenderInstance { + keen::float3 cameraRelativePosition; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct ShaderModelChunkPushConstant { + keen::uint baseDrawIndex; // Offset: 0 + keen::uint isRunningOnSteamDeck; // Offset: 4 +}; + +struct ShaderModelChunkWriteDrawCommandsPushConstants { + keen::uint batchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 +}; + +struct ShaderModelChunkWriteInstanceDataConstants { + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 +}; + +struct ShaderModelChunkBatchPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct MotionVectorsShaderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float2 cancelJitter; // Offset: 16 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 +}; + +struct MotionVectorsDebugShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 +}; + +struct FFX_ParallelSortCB { + keen::uint NumKeys; // Offset: 0 + keen::int NumBlocksPerThreadGroup; // Offset: 4 + keen::uint NumThreadGroups; // Offset: 8 + keen::uint NumThreadGroupsWithAdditionalBlocks; // Offset: 12 + keen::uint NumReduceThreadgroupPerBin; // Offset: 16 + keen::uint NumScanValues; // Offset: 20 + keen::uint _pad0; // Offset: 24 + keen::uint _pad1; // Offset: 28 +}; + +struct KEEN_VFX_ParallelSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct FFX_SetupIndirectCB { + keen::uint NumKeysCounterByteOffset; // Offset: 0 + keen::uint MaxNumKeys; // Offset: 4 + keen::uint MaxThreadGroups; // Offset: 8 +}; + +struct FFX_RootConstantData { + keen::uint CShiftBit; // Offset: 0 +}; + +struct PbrMaterialScalarValue { + keen::float32 value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialColorValue { + keen::Color value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialParameters { + keen::PbrMaterialColorValue emissive; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 20 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 24 + keen::float32 emissiveGiFactor; // Offset: 28 + keen::PbrMaterialColorValue albedo; // Offset: 32 + keen::PbrMaterialScalarValue metallic; // Offset: 52 + keen::PbrMaterialScalarValue roughness; // Offset: 72 + keen::PbrMaterialScalarValue reflectance; // Offset: 92 + keen::ObjectReference normal; // Offset: 112 + keen::ObjectReference height; // Offset: 128 + keen::ObjectReference ao; // Offset: 144 + keen::bool enableLavaShader; // Offset: 160 + keen::ObjectReference distortionMap; // Offset: 164 + keen::ObjectReference lightningMap; // Offset: 180 + keen::ObjectReference gradientMap; // Offset: 196 + keen::float32 distortionMapScale; // Offset: 212 + keen::float32 distortionMapSpeed; // Offset: 216 + keen::float32 distortionMapIntensity; // Offset: 220 + keen::float32 lightningMapScrollSpeed; // Offset: 224 + keen::float32 lightningMapIntensity; // Offset: 228 +}; + +enum class VertexColorChannelRgb { + RGB = 0, + Red = 1, + Green = 2, + Blue = 3, + Alpha = 4, +}; + +struct PbrMaterialTintLayer { + keen::bool enable; // Offset: 0 + keen::ObjectReference maskMap; // Offset: 4 +}; + +enum class RenderSamplerAddressMode { + Wrap = 0, + Mirror = 1, + Clamp = 2, + ClampToZero = 3, +}; + +struct PbrMaterialLayer { + keen::ObjectReference emissiveMap; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 16 + keen::ObjectReference metallicMap; // Offset: 32 + keen::ObjectReference roughnessMap; // Offset: 48 + keen::ObjectReference reflectanceMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference heightMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 + keen::ObjectReference opacityMap; // Offset: 128 + keen::StaticArray albedoTint; // Offset: 144 + keen::uint8 uvSet; // Offset: 204 + keen::float32 uvScaling; // Offset: 208 + keen::bool uvScalingYEnable; // Offset: 212 + keen::float32 uvScalingY; // Offset: 216 + keen::RenderSamplerAddressMode addressModeU; // Offset: 220 + keen::RenderSamplerAddressMode addressModeV; // Offset: 221 + keen::float32 heightBias; // Offset: 224 + keen::bool enableAnisotropy; // Offset: 228 + keen::ObjectReference anisotropicDirectionMap; // Offset: 232 + keen::float32 anisotropy; // Offset: 248 + keen::bool maskAnisotropy; // Offset: 252 + keen::float32 emissiveMapIntensity; // Offset: 256 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 260 + keen::float32 emissiveGiFactor; // Offset: 264 +}; + +enum class PbrMaterialBlendMode { + None = 0, + VertexValue = 1, + LocalBlendMap = 2, +}; + +struct PbrMaterialBlendVertexValue { + keen::VertexColorChannel blendLayer1Channel; // Offset: 0 +}; + +struct PbrMaterialBlendMap { + keen::ObjectReference map; // Offset: 0 + keen::RenderSamplerAddressMode addressModeU; // Offset: 16 + keen::RenderSamplerAddressMode addressModeV; // Offset: 17 + keen::uint8 uvSet; // Offset: 18 + keen::float32 uvScaling; // Offset: 20 + keen::bool uvScalingYEnable; // Offset: 24 + keen::float32 uvScalingY; // Offset: 28 +}; + +struct PbrMaterialOverlayNormalMap { + keen::ObjectReference normalMap; // Offset: 0 + keen::ObjectReference aoMap; // Offset: 16 + keen::RenderSamplerAddressMode addressModeU; // Offset: 32 + keen::RenderSamplerAddressMode addressModeV; // Offset: 33 + keen::uint8 uvSet; // Offset: 34 + keen::float32 uvScaling; // Offset: 36 + keen::bool uvScalingYEnable; // Offset: 40 + keen::float32 uvScalingY; // Offset: 44 + keen::bool useVertexColorChannelWeight; // Offset: 48 + keen::VertexColorChannel vertexColorChannel; // Offset: 49 +}; + +struct PbrTranslucency { + keen::float32 strength; // Offset: 0 + keen::ObjectReference thicknessMap; // Offset: 4 + keen::Color color; // Offset: 20 + keen::float viewDependency; // Offset: 24 + keen::float wrapShadingStrength; // Offset: 28 +}; + +struct PbrMaterial { + keen::BlobArray blendLayers; // Offset: 0 + keen::PbrMaterialBlendMode blendMode; // Offset: 8 + keen::PbrMaterialBlendVertexValue blendVertexVertexValue; // Offset: 9 + keen::PbrMaterialBlendMap blendMap; // Offset: 12 + keen::PbrMaterialOverlayNormalMap overlayNormalLayer; // Offset: 44 + keen::bool multiplyEmissiveByVertexColor; // Offset: 96 + keen::VertexColorChannelRgb multiplyEmissiveVertexColorChannel; // Offset: 97 + keen::bool multiplyAlbedoByVertexColor; // Offset: 98 + keen::VertexColorChannelRgb multiplyAlbedoVertexColorChannel; // Offset: 99 + keen::bool multiplyAoByVertexColorChannel; // Offset: 100 + keen::VertexColorChannel multiplyAoVertexColorChannel; // Offset: 101 + keen::bool multiplyAlphaByVertexAlpha; // Offset: 102 + keen::PbrTranslucency translucency; // Offset: 104 + keen::bool enableGiWrapShading; // Offset: 136 + keen::bool adjustGiNormals; // Offset: 137 + keen::bool enableGiSpecular; // Offset: 138 + keen::bool enableBackfaceCulling; // Offset: 139 + keen::bool useFlippedBackfaceNormals; // Offset: 140 + keen::bool enableAlphaBlending; // Offset: 141 + keen::bool enableAlphaTest; // Offset: 142 + keen::bool enableShadowAlphaTest; // Offset: 143 + keen::bool enableHashedAlphaTest; // Offset: 144 + keen::bool disableFrostShader; // Offset: 145 + keen::bool disableSnowShader; // Offset: 146 + keen::bool disableWetnessShader; // Offset: 147 + keen::bool enableFrostShaderGlitter; // Offset: 148 + keen::bool enableGradientMapSupport; // Offset: 149 + keen::bool enableTessellation; // Offset: 150 + keen::float32 tessellationStartDistance; // Offset: 152 + keen::float32 tessellationSubdivisions; // Offset: 156 + keen::float32 displacementScale; // Offset: 160 + keen::float32 displacementOffset; // Offset: 164 + keen::bool enableShadows; // Offset: 168 + keen::bool enableContactShadows; // Offset: 169 + keen::DissolveMaterialParameters dissolve; // Offset: 172 +}; + +struct PbrMaterialEmissiveMapShaderData { + keen::float32 intensity; // Offset: 0 + keen::float32 exposureCorrectionFactor; // Offset: 4 +}; + +struct PbrMaterialTintShaderData { + keen::uint32 enableLayerBitMask; // Offset: 0 + keen::StaticArray maskMaps; // Offset: 4 +}; + +struct PbrMaterialDisplacementSettings { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrTerrainMaterialLayer { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference roughnessMap; // Offset: 16 + keen::ObjectReference normalMap; // Offset: 32 + keen::ObjectReference heightMap; // Offset: 48 + keen::ObjectReference aoMap; // Offset: 64 + keen::float32 tilingSize; // Offset: 80 +}; + +struct PbrTerrainMaterialBlendingSmoothness { + keen::float32 position; // Offset: 0 + keen::float32 smoothness; // Offset: 4 + keen::float32 heightBias; // Offset: 8 +}; + +struct PbrTerrainMaterialCenterBlendingSmoothness { + keen::float32 smoothness; // Offset: 0 + keen::float32 heightBias; // Offset: 4 +}; + +enum class PbrTerrainMaterialDetailNormalBlendMode { + Alpha = 0, + Overlay = 1, +}; + +struct PbrTerrainMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 origin; // Offset: 4 +}; + +struct PbrBuildingNoiseBlendRange { + keen::float32 min; // Offset: 0 + keen::float32 max; // Offset: 4 +}; + +struct PbrBuildingMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrBuildingMaterial { + keen::PbrMaterialLayer baseMaterialSide; // Offset: 0 + keen::PbrBuildingMaterialDisplacementLayer baseMaterialSideDisplacement; // Offset: 268 + keen::PbrMaterialLayer baseMaterialTop; // Offset: 276 + keen::PbrBuildingMaterialDisplacementLayer baseMaterialTopDisplacement; // Offset: 544 + keen::PbrMaterialLayer baseMaterialBottom; // Offset: 552 + keen::PbrBuildingMaterialDisplacementLayer baseMaterialBottomDisplacement; // Offset: 820 + keen::PbrMaterialLayer edgeMaterial; // Offset: 828 + keen::PbrBuildingMaterialDisplacementLayer edgeMaterialDisplacement; // Offset: 1096 + keen::PbrBuildingMaterialDisplacementLayer edgeMaterialTopDisplacement; // Offset: 1104 + keen::PbrMaterialLayer noiseMaterial; // Offset: 1112 + keen::PbrBuildingMaterialDisplacementLayer noiseMaterialDisplacement; // Offset: 1380 + keen::float32 edgeBlendingCurve; // Offset: 1388 + keen::PbrBuildingNoiseBlendRange noiseBlendRange; // Offset: 1392 + keen::bool edgeOnlySide; // Offset: 1400 + keen::float32 bevelRadius; // Offset: 1404 + keen::BuildingMappingType mapping; // Offset: 1408 +}; + +struct PbrBuildingDetailScatterLayerTop { +}; + +struct PbrBuildingDetailScatterLayerSide { +}; + +struct PbrBuildingDetailScatterLayerBottom { +}; + +struct PbrBuildingDetailScatterLayerNoise { +}; + +enum class PbrRfxRenderMaterialFlag { + EnableGiWrapShading = 0, + AdjustGiNormals = 1, + EnableDissolve = 2, + EnableHashedAlpha = 3, + EnableGradientMap = 4, + SampleAo = 5, + SampleOpacity = 6, + EnableContactShadows = 7, + EnableAnisotropicSpecular = 8, + FlipBackfaceNormals = 9, + MultiplyAlphaByVertexAlpha = 10, + DisableFrostShader = 11, + DisableSnowShader = 12, + DisableWetnessShader = 13, + EnableFrostShaderGlitter = 14, +}; + +typedef keen::Bitmask32 PbrRfxRenderMaterialFlagMask; + +struct RfxSampler { + keen::uint32 id; // Offset: 0 +}; + +struct PbrRfxRenderMaterial { + keen::uint32 layerParameters; // Offset: 0 + keen::StreamedTexture2D_float blendMap; // Offset: 4 + keen::float2 blendMapTexcoordScaling; // Offset: 8 + keen::StaticArray albedoMap; // Offset: 16 + keen::StaticArray normalMap; // Offset: 24 + keen::StaticArray emissiveMap; // Offset: 32 + keen::StaticArray materialParamsMap; // Offset: 40 + keen::StaticArray heightMap; // Offset: 48 + keen::StaticArray layerSampler; // Offset: 56 + keen::StaticArray texCoordScaling; // Offset: 64 + keen::StaticArray anisotropyDirectionMap; // Offset: 80 + keen::StaticArray anisotropyStrength; // Offset: 88 + keen::StaticArray constantReflectance; // Offset: 96 + keen::StaticArray albedoTintShaderData; // Offset: 104 + keen::StaticArray heightBlendingRange; // Offset: 136 + keen::uint32 multiplyEmissiveVertexColorChannelSwizzle; // Offset: 144 + keen::uint32 multiplyAlbedoVertexColorChannelSwizzle; // Offset: 148 + keen::uint32 multiplyAoVertexColorChannelSwizzle; // Offset: 152 + keen::RfxSampler blendMapSampler; // Offset: 156 + keen::float translucencyStrength; // Offset: 160 + keen::StreamedTexture2D_float translucencyMap; // Offset: 164 + keen::StaticArray emissiveMapShaderData; // Offset: 168 + keen::StreamedTexture2D_float4 overlayNormalMap; // Offset: 184 + keen::StreamedTexture2D_float overlayAoMap; // Offset: 188 + keen::RfxSampler overlayNormalMapSampler; // Offset: 192 + keen::uint32 overlayNormalMapVertexColorChannelSwizzle; // Offset: 196 + keen::float2 overlayNormalMapTexCoordScaling; // Offset: 200 + keen::float3 dissolveEdgeGlowColor; // Offset: 208 + keen::float32 dissolveEdgeGlowWidthInv; // Offset: 220 + keen::float32 dissolveEdgeGlowParam; // Offset: 224 + keen::BindlessTexture3D_float dissolveNoiseMap; // Offset: 228 + keen::float32 dissolveNoiseTiling; // Offset: 232 + keen::float32 dissolveNoiseFadeRange; // Offset: 236 + keen::uint32 flags; // Offset: 240 +}; + +struct post_processing.NightAdaptation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.WhiteBalance { + keen::bool enable; // Offset: 0 + keen::float temperature; // Offset: 4 + keen::float tint; // Offset: 8 +}; + +struct post_processing.ChannelMixer { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb r; // Offset: 4 + keen::HdrColorRgb g; // Offset: 20 + keen::HdrColorRgb b; // Offset: 36 +}; + +struct post_processing.WeightedColor { + keen::HdrColorRgb color; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +struct post_processing.TonalColors { + keen::bool enable; // Offset: 0 + keen::post_processing::WeightedColor shadows; // Offset: 4 + keen::post_processing::WeightedColor midtones; // Offset: 24 + keen::post_processing::WeightedColor highlights; // Offset: 44 + keen::float shadowStart; // Offset: 64 + keen::float midStart; // Offset: 68 + keen::float midEnd; // Offset: 72 + keen::float highlightEnd; // Offset: 76 +}; + +struct post_processing.ColorChannelWeights { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 +}; + +struct post_processing.SlopeOffsetColor { + keen::bool enable; // Offset: 0 + keen::post_processing::ColorChannelWeights slope; // Offset: 4 + keen::post_processing::ColorChannelWeights offset; // Offset: 16 + keen::post_processing::ColorChannelWeights power; // Offset: 28 +}; + +struct post_processing.Contrast { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Vibrance { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Saturation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Curves { + keen::bool enable; // Offset: 0 + keen::post_processing::ColorChannelWeights shadowGamma; // Offset: 4 + keen::post_processing::ColorChannelWeights midpoint; // Offset: 16 + keen::post_processing::ColorChannelWeights highlightScale; // Offset: 28 +}; + +struct post_processing.ColorFilter { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct post_processing.ColorGrading { + keen::post_processing::NightAdaptation nightAdaptation; // Offset: 0 + keen::post_processing::WhiteBalance whiteBalance; // Offset: 8 + keen::post_processing::ChannelMixer channelMixer; // Offset: 20 + keen::post_processing::TonalColors tonalColors; // Offset: 72 + keen::post_processing::SlopeOffsetColor slopeOffsetColor; // Offset: 152 + keen::post_processing::Contrast contrast; // Offset: 192 + keen::post_processing::Vibrance vibrance; // Offset: 200 + keen::post_processing::Saturation saturation; // Offset: 208 + keen::post_processing::Curves curves; // Offset: 216 +}; + +struct PostProcessingParameters { + keen::post_processing::ColorFilter colorFilter; // Offset: 0 + keen::post_processing::ColorGrading colorGrading; // Offset: 20 +}; + +struct TonemappingConstants { + keen::float4 curve; // Offset: 0 + keen::float3 crosstalkPreSaturation; // Offset: 16 + keen::float hdrMax; // Offset: 28 + keen::float3 crosstalk; // Offset: 32 + keen::float3 crosstalkPostSaturation; // Offset: 48 +}; + +enum class PostProcessingCompositeFlag { + EnableBilateralGrid = 0, + EnableColorGrading = 1, + OverlayDebugColor = 2, + EnableDithering = 3, + SkipConversionToSrgb = 4, + EnableToneMapping = 5, + OutputFinalHistogram = 6, + ResetAlphaPreUpscale = 7, +}; + +typedef keen::Bitmask32 PostProcessingCompositeFlags; + +struct PostProcessingCompositeConstants { + keen::uint32 flags; // Offset: 0 + keen::float3 colorFilter; // Offset: 4 + keen::float32 bloomStrength; // Offset: 16 + keen::float32 temporalNoise; // Offset: 20 + keen::float3 lutOffset; // Offset: 32 + keen::float3 lutScale; // Offset: 48 + keen::float4 vignetteColor; // Offset: 64 + keen::float4 flashColor; // Offset: 80 + keen::TonemappingConstants toneMapping; // Offset: 96 +}; + +struct PostProcessingHistogramConstants { + keen::uint2 targetSize; // Offset: 0 + keen::float32 exposure; // Offset: 8 + keen::float32 inverseExposure; // Offset: 12 + keen::uint32 useSceneBrightness; // Offset: 16 +}; + +struct PostProcessingHistogramResult { + keen::StaticArray pixelCount; // Offset: 0 +}; + +struct SceneHistogramShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct BloomConstants { + keen::float2 halfPixelSize; // Offset: 0 + keen::uint applyBilateralGrid; // Offset: 8 + keen::float bilateralGridDetail; // Offset: 12 + keen::float thresholdLow; // Offset: 16 + keen::float thresholdHigh; // Offset: 20 + keen::float fogContribution; // Offset: 24 + keen::float compression; // Offset: 28 + keen::float scale; // Offset: 32 +}; + +struct ClearBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct FillBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::uint2 sourceSize; // Offset: 16 + keen::float2 oneOverSourceSize; // Offset: 24 + keen::float32 inverseExposure; // Offset: 32 +}; + +struct CopyResultBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct BlurBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::float3 oneOverGridSize; // Offset: 16 +}; + +struct ApplyBilateralGridConstants { + keen::float3 oneOverGridSize; // Offset: 0 + keen::float inverseExposure; // Offset: 12 + keen::float midPointLogLuminance; // Offset: 16 + keen::float highlightContrastFactor; // Offset: 20 + keen::float shadowContrastFactor; // Offset: 24 + keen::float detailFactor; // Offset: 28 +}; + +struct PrefixSumPrepareConstants { + keen::uint32 maxElementCount; // Offset: 0 + keen::uint32 counterIndex; // Offset: 4 +}; + +struct SmallPrefixSumShaderParameters { + keen::uint32 elementCount; // Offset: 0 +}; + +struct RenderShaderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 +}; + +enum class RenderVertexFormat { + P = 0, + PC = 1, + PT = 2, + PCT = 3, + PNCT = 4, + PNTT = 5, + PNTCT = 6, + Vfx = 7, +}; + +enum class TextureAlphaMode { + None = 0, + ExplicitChannel = 1, + Stencil = 2, + Smooth = 3, +}; + +enum class TextureContentType { + RgbColors = 0, + TangentSpaceNormals = 1, + RgbWithAlphaCoverage = 2, + AlphaCoverage = 3, + ObjectSpaceNormal = 4, +}; + +enum class TextureConverterFlag { + DontCreateMipMapChain = 0, + DisableSRGBToLinearConversionAtRuntime = 1, +}; + +typedef keen::Bitmask32 TextureConverterFlags; + +struct RenderTextureChannelData { + keen::ObjectReference image; // Offset: 0 + keen::TextureChannel sourceChannel; // Offset: 16 + keen::ObjectReference roughnessNormalMapImage; // Offset: 20 + keen::bool clampRoughnessNormalU; // Offset: 36 + keen::bool clampRoughnessNormalV; // Offset: 37 + keen::TextureChannel targetChannel; // Offset: 38 +}; + +struct RenderMaterialTextureSamplingInfo { + keen::uint8 vertexAttributeId; // Offset: 0 + keen::float32 scaling; // Offset: 4 +}; + +struct RenderMaterialTextureElement { + keen::BlobArray textureChannels; // Offset: 0 + keen::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 8 +}; + +struct RenderMaterialTextureData { + keen::uint32 offset; // Offset: 0 + keen::TextureType textureType; // Offset: 4 + keen::PixelFormat pixelFormat; // Offset: 5 + keen::TextureAlphaMode alphaMode; // Offset: 6 + keen::BlobArray textureElements; // Offset: 8 + keen::TextureContentType contentType; // Offset: 16 + keen::TextureConverterFlags convertFlags; // Offset: 20 + keen::string name; // Offset: 24 +}; + +enum class RenderSamplerFilterMode { + Nearest = 0, + Linear = 1, +}; + +enum class RenderComparisonFunction { + Never = 0, + Less = 1, + Equal = 2, + LessEqual = 3, + Greater = 4, + NotEqual = 5, + GreaterEqual = 6, + Always = 7, +}; + +struct RenderMaterialSamplerData { + keen::uint32 offset; // Offset: 0 + keen::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::RenderComparisonFunction comparisonFunction; // Offset: 10 +}; + +enum class RenderEffectId { + Simple = 0, + Billboard = 1, + Pbr = 2, + PbrTerrain = 3, + PbrBuilding = 4, + PbrRoof = 5, + Gizmo = 6, + Grid = 7, + VfxGrid = 8, + Transparent = 9, + TerraformingCursor = 10, + SkyTexture = 11, + ForestFogFootprint = 12, +}; + +enum class RenderMaterialFlag { + Tessellated = 0, + AlphaTested = 1, + DoubleSided = 2, + DisableShadows = 3, + CanDissolve = 4, +}; + +typedef keen::Bitmask8 RenderMaterialFlagMask; + +struct RenderMaterialConverterData { + keen::Guid objectId; // Offset: 0 + keen::string description; // Offset: 16 + keen::RenderEffectId effectId; // Offset: 24 + keen::RenderMaterialFlagMask flags; // Offset: 25 + keen::BlobArray data; // Offset: 28 + keen::HashKey32 dataTypeSignature; // Offset: 36 + keen::BlobArray textures; // Offset: 40 + keen::BlobArray samplers; // Offset: 48 + keen::RenderVertexFormat vertexFormat; // Offset: 56 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 60 +}; + +enum class RenderMemoryAllocatorObjectType { + Buffer = 0, + Texture = 1, +}; + +struct RenderMemoryAllocatorObjectState { + keen::RenderMemoryAllocatorObjectType type; // Offset: 0 + keen::string name; // Offset: 4 + keen::uint32 allocationRegionHandle; // Offset: 12 + keen::uint32 allocationMemoryType; // Offset: 16 + keen::uint64 allocationBlockHandle; // Offset: 24 + keen::uint64 allocationOffset; // Offset: 32 + keen::uint64 allocationSize; // Offset: 40 +}; + +struct RenderMemoryAllocatorAllocationState { + keen::uint32 handle; // Offset: 0 + keen::string name; // Offset: 4 + keen::BlobArray objects; // Offset: 12 +}; + +struct RenderMemoryAllocatorBlockState { + keen::uint64 handle; // Offset: 0 + keen::uint64 sizeInBytes; // Offset: 8 + keen::uint32 refCount; // Offset: 16 +}; + +struct RenderMemoryAllocatorRegionMemoryTypeState { + keen::uint32 memoryType; // Offset: 0 + keen::uint8 graphicsDeviceMemoryTypeIndex; // Offset: 4 + keen::bool isMapped; // Offset: 5 + keen::BlobArray blocks; // Offset: 8 +}; + +struct RenderMemoryAllocatorRegionState { + keen::uint32 handle; // Offset: 0 + keen::string name; // Offset: 4 + keen::GraphicsDeviceMemoryPriority priority; // Offset: 12 + keen::uint64 chunkSize; // Offset: 16 + keen::BlobArray memoryTypes; // Offset: 24 +}; + +struct RenderMemoryAllocatorState { + keen::BlobArray allocations; // Offset: 0 + keen::BlobArray regions; // Offset: 8 +}; + +struct RenderResources { + keen::ObjectReference renderSystem; // Offset: 0 + keen::ObjectReference worldMaterialBlending2; // Offset: 16 + keen::ObjectReference buildingMaterialBlending; // Offset: 32 + keen::ObjectReference giVoxelBuildingMaterial; // Offset: 48 + keen::ObjectReference worldDetailScatter; // Offset: 64 + keen::ObjectReference buildingDetailScatter; // Offset: 80 + keen::ObjectReference analyticFog; // Offset: 96 + keen::ObjectReference volumetricFog2; // Offset: 112 + keen::ObjectReference volumetricFogGridParameters; // Offset: 128 + keen::BlobArray> gpcResources; // Offset: 144 + keen::ObjectReference colorPaletteCollection; // Offset: 152 +}; + +struct RenderSceneCaptureModel { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference modelResource; // Offset: 56 +}; + +enum class RenderLightType { + Point = 0, +}; + +struct RenderLight { + keen::RenderLightType type; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 + keen::bool castShadows; // Offset: 20 + keen::float32 radius; // Offset: 24 +}; + +struct RenderSceneCaptureLight { + keen::WorldTransform transform; // Offset: 0 + keen::RenderLight light; // Offset: 56 +}; + +struct RenderSceneCaptureVfxInstance { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference vfxResource; // Offset: 56 + keen::float4 color; // Offset: 72 + keen::float4 param0; // Offset: 88 + keen::float4 param1; // Offset: 104 + keen::float4 param2; // Offset: 120 + keen::float4 param3; // Offset: 136 + keen::Time startTime; // Offset: 152 + keen::bool isActive; // Offset: 160 + keen::bool killWhenCulled; // Offset: 161 +}; + +struct RenderSceneCaptureChunk { + keen::WorldTransform transform; // Offset: 0 + keen::ContentHash voxelData; // Offset: 56 +}; + +struct RenderSceneCapture { + keen::WorldTransform captureViewTransform; // Offset: 0 + keen::BlobArray models; // Offset: 56 + keen::BlobArray lights; // Offset: 64 + keen::BlobArray vfxInstances; // Offset: 72 +}; + +enum class RenderAntiAliasingSetting { + None = 0, + FXAA = 1, + Fsr2 = 2, + Fsr3 = 3, + Dlss = 4, + Dlaa = 5, +}; + +typedef keen::Bitmask32 RenderAntiAliasingSettingsValidMask; + +enum class RenderTextureQualitySetting { + Low = 0, + Medium = 1, + High = 2, + Ultra = 3, +}; + +typedef keen::Bitmask32 RenderTextureQualitySettingsValidMask; + +struct RenderSettingsFeatures { + keen::RenderAntiAliasingSettingsValidMask antialiasingValidMask; // Offset: 0 + keen::RenderTextureQualitySettingsValidMask textureQualityValidMask; // Offset: 4 +}; + +enum class RenderSettingsPreset { + Lowest = 0, + Low = 1, + Medium = 2, + High = 3, + Ultra = 4, + Custom = 5, +}; + +enum class RenderFsr2PresetSetting { + Performance = 0, + Balance = 1, + Quality = 2, + UltraQuality = 3, +}; + +enum class RenderFsr3PresetSetting { + UltraPerformance = 0, + Performance = 1, + Balance = 2, + Quality = 3, + Native = 4, +}; + +enum class RenderDlssPresetSetting { + Auto = 0, + Quality = 1, + Balanced = 2, + Performance = 3, + UltraPerformance = 4, +}; + +enum class RenderShadowQualitySetting { + Low = 0, + Medium = 1, + High = 2, + Ultra = 3, +}; + +enum class RenderContactShadowsSetting { + Disabled = 0, + Enabled = 1, +}; + +enum class RenderGiSetting { + Performance = 0, + Balance = 1, + High = 2, + Ultra = 3, +}; + +enum class RenderReflectionsSetting { + Balance = 0, + High = 1, + Ultra = 2, +}; + +enum class RenderFogQualitySetting { + Low = 0, + High = 1, +}; + +enum class RenderFogVolumetricShadowQualitySetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderSsaoSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderDistantObjectsSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderDecoObjectsSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderDetailScatteringSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderVoxelMeshQualitySetting { + Low = 0, + High = 1, +}; + +enum class RenderTessellationSetting { + Disabled = 0, + Low = 1, + Medium = 2, + High = 3, +}; + +enum class RenderPointLightShadowsSetting { + Disabled = 0, + Lowest = 1, + Low = 2, + High = 3, + Ultra = 4, +}; + +struct RenderSettings { + keen::RenderSettingsPreset preset; // Offset: 0 + keen::RenderAntiAliasingSetting antiAliasing; // Offset: 4 + keen::RenderFsr2PresetSetting fsr2; // Offset: 8 + keen::RenderFsr3PresetSetting fsr3; // Offset: 12 + keen::RenderDlssPresetSetting dlss; // Offset: 16 + keen::RenderTextureQualitySetting textures; // Offset: 20 + keen::RenderShadowQualitySetting shadows; // Offset: 24 + keen::RenderContactShadowsSetting contactShadows; // Offset: 28 + keen::RenderGiSetting dynamicGi; // Offset: 32 + keen::RenderReflectionsSetting reflections; // Offset: 36 + keen::RenderFogQualitySetting fog; // Offset: 40 + keen::RenderFogVolumetricShadowQualitySetting volumetricShadow; // Offset: 44 + keen::RenderSsaoSetting ssao; // Offset: 48 + keen::RenderDistantObjectsSetting distantObjects; // Offset: 52 + keen::RenderDecoObjectsSetting decoObjects; // Offset: 56 + keen::RenderDetailScatteringSetting detailScattering; // Offset: 60 + keen::RenderVoxelMeshQualitySetting voxelMeshQuality; // Offset: 64 + keen::RenderTessellationSetting tessellation; // Offset: 68 + keen::RenderPointLightShadowsSetting pointLightShadows; // Offset: 72 + keen::float32 sharpness; // Offset: 76 +}; + +struct RenderSettingsGpuPresets { +}; + +enum class RenderSettingsGpuTargetResolution { + Target720p = 0, + Target1080p = 1, + Target1440p = 2, + TargetSteamDeck = 3, +}; + +enum class RenderSettingsGpuTargetFps { + Target30Fps = 0, + Target60Fps = 1, +}; + +struct RenderSettingsGpuMapping { + keen::RenderSettingsGpuTargetResolution targetResolution; // Offset: 0 + keen::RenderSettingsGpuTargetFps targetFps; // Offset: 4 + keen::RenderSettings settings; // Offset: 8 +}; + +struct RenderSettingsGpuMatch { + keen::string name; // Offset: 0 +}; + +struct RenderSettingsGpuPresetsResource { + keen::BlobArray gpus; // Offset: 0 + keen::BlobArray presets; // Offset: 8 +}; + +struct RenderSettingsGpuPresetsResourceGpu { + keen::HashKey32 nameHash; // Offset: 0 + keen::uint32 presetIndex; // Offset: 4 +}; + +struct RenderSettingsGpuPresetResource { + keen::RenderSettings settings; // Offset: 0 + keen::uint32 targetPixelCount; // Offset: 80 + keen::uint32 targetFps; // Offset: 84 +}; + +struct ForwardPointLightData { + keen::float3 position; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float falloffWeight; // Offset: 28 + keen::uint32 uniqueId; // Offset: 32 + keen::uint32 enableShadows; // Offset: 36 + keen::float radius; // Offset: 40 + keen::uint32 pad2; // Offset: 44 +}; + +struct ForwardDecalData { + keen::GraphicsMatrix43 decalTransform; // Offset: 0 + keen::float4 worldBoundingSphere; // Offset: 48 + keen::float4 color; // Offset: 64 + keen::float4 emissiveTintAndAlpha; // Offset: 80 + keen::uint32 materialDataIndex; // Offset: 96 + keen::float32 normalFade; // Offset: 100 + keen::uint layerMask; // Offset: 104 + keen::uint enableTransparencyCompositionMask; // Offset: 108 +}; + +struct ClusterCullingInfo { + keen::uint3 clusterSize; // Offset: 0 + keen::uint32 enableOverdraw; // Offset: 12 + keen::float2 inverseViewportSize; // Offset: 16 + keen::float32 zNear; // Offset: 24 + keen::float32 zFar; // Offset: 28 +}; + +struct RenderWeatherMaskResource { + keen::RenderTexture mask; // Offset: 0 +}; + +struct RenderWeatherResource { + keen::float2 snowBorderRangeMapping; // Offset: 0 + keen::RenderWeatherMaskResource snowBorderMask; // Offset: 8 +}; + +struct RenderWeatherPhenomenonResource { + keen::RenderTexture cloudMap; // Offset: 0 +}; + +struct RenderWeatherRasterCouldsParameters { + keen::float32 invRenderTargetSize; // Offset: 0 +}; + +struct RenderWeatherRasterCloudsInstanceData { + keen::float4 transformM; // Offset: 0 + keen::float2 transformT; // Offset: 16 + keen::uint32 data; // Offset: 24 + keen::BindlessTexture2D_float4 cloudMap; // Offset: 28 + keen::BindlessTexture2D_float restrictMask; // Offset: 32 + keen::BindlessTexture2D_float excludeMask; // Offset: 36 +}; + +struct RenderWeatherWeatherMapSubtractParameters { + keen::float32 wetnessValue; // Offset: 0 + keen::float32 puddleValue; // Offset: 4 +}; + +struct RenderWeatherWeatherMapAddParameters { + keen::float32 rainWetnessValue; // Offset: 0 + keen::float32 rainPuddleValue; // Offset: 4 +}; + +struct RenderWeatherDynamicWetnessSampleUpload { + keen::uint32 pointIndex; // Offset: 0 + keen::sint32 instanceIndex; // Offset: 4 + keen::sint32 boneIndex; // Offset: 8 + keen::float3 localPosition; // Offset: 12 +}; + +struct RenderWeatherDynamicWetnessSample { + keen::sint32 instanceIndex; // Offset: 0 + keen::sint32 boneIndex; // Offset: 4 + keen::float3 localPosition; // Offset: 8 +}; + +struct RenderWeatherDynamicWetnessUpdateConstants { + keen::uint32 uploadCount; // Offset: 0 + keen::float dryWetnessValue; // Offset: 4 + keen::float addRainWetnessValue; // Offset: 8 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 16 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 32 +}; + +struct RenderWeatherFilterDynamicHeightmapConstants { + keen::float2 rcpTextureSize; // Offset: 0 +}; + +enum class RenderWeatherInstanceFlag { + Tiling = 0, + MaskStrength = 1, + MaskRainStrength = 2, + Blizzard = 3, +}; + +typedef keen::Bitmask32 RenderWeatherInstanceFlags; + +struct RenderWeatherInstanceParameters { + keen::float2 positionXZ; // Offset: 0 + keen::Angle orientation; // Offset: 8 + keen::float2 scaleXZ; // Offset: 12 + keen::float32 strength; // Offset: 20 + keen::float32 rainThreshold; // Offset: 24 + keen::RenderWeatherInstanceFlags flags; // Offset: 28 +}; + +struct RenderWeatherDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +struct RenderWeatherDebugState { + keen::bool debugDrawInstances; // Offset: 0 + keen::BlobArray instances; // Offset: 4 +}; + +struct RenderWeatherDebugUpdateDebugDrawInstances { + keen::bool debugDrawInstances; // Offset: 0 +}; + +struct RenderWeatherDebugAddInstance { + keen::ObjectReference phenomenon; // Offset: 0 + keen::RenderWeatherInstanceParameters parameters; // Offset: 16 +}; + +struct RenderWeatherDebugRemoveInstance { + keen::uint32 handle; // Offset: 0 +}; + +struct RenderWeatherDebugSetInstanceParameters { + keen::uint32 handle; // Offset: 0 + keen::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +enum class RenderWeatherDebugMode { + None = 0, + Rain = 1, + Snow = 2, + Frost = 3, +}; + +enum class Fsr3QualityPreset { + UltraPerformance = 0, + Performance = 1, + Balance = 2, + Quality = 3, + Native = 4, +}; + +enum class RenderUpscaleTechnique { + None = 0, + Fsr3 = 1, + Dlss = 2, +}; + +enum class RenderFeatureFlag { + Shadows = 0, + VolumetricShadows = 1, + Vfx = 2, + VolumetricFogGrid = 3, + Fog = 4, + AnalyticFog = 5, + Bloom = 6, + Sdf = 7, + DetailScattering = 8, + RayTracing = 9, + Gi = 10, + GrassMovement = 11, + Ssao = 12, + DynamicHeightmap = 13, + SdfShadows = 14, + ContactShadows = 15, + ContactShadows2 = 16, + Fxaa = 17, + Fsr3 = 18, + BrickRenderer = 19, + StochasticScreenSpaceReflections = 20, + SdfAo = 21, + ManyLightsShadows = 22, + Dlss = 23, + SdfBvh = 24, + SnowDisplacement = 25, +}; + +typedef keen::Bitmask32 RenderFeatureFlags; + +struct BlendShapeId { +}; + +enum class BeaufortWindForce { + Calm = 0, + LightAir = 1, + LightBreeze = 2, + GentleBreeze = 3, + ModerateBreeze = 4, + FreshBreeze = 5, + StrongBreeze = 6, + HighWind = 7, + FreshGale = 8, + StrongGale = 9, + Storm = 10, + ViolentStorm = 11, + Hurricane = 12, +}; + +struct ShaderDataPrimitiveTypes { + keen::sint32 f0; // Offset: 0 + keen::float32 f1; // Offset: 4 + keen::sint64 f2; // Offset: 8 + keen::float4 f3; // Offset: 16 + keen::float3 f4; // Offset: 32 + keen::float2 f5; // Offset: 44 + keen::uint3 f6; // Offset: 52 + keen::uint4 f7; // Offset: 64 +}; + +struct RenderColorGradingMap { + keen::ObjectReference image; // Offset: 0 +}; + +struct RenderColorGradingMapResource { + keen::ContentHash content; // Offset: 0 + keen::string debugName; // Offset: 16 +}; + +typedef keen::ObjectReference RenderColorGradingMapReference; + +enum class RenderViewDebugDrawMode { + None = 0, + Sdf = 1, + SdfVoxels = 2, + Ibl = 3, + MotionVectors = 4, + LightCache = 5, + LightCacheLightCulling = 6, + Bricks = 7, + Gi = 8, + SdfBvh = 9, + GiIrradianceBuffer = 10, + ShadowCascades = 11, + ShadowMask = 12, + ShadowCascadesWithOcclusion = 13, + VoxelWorldShadowMap = 14, + TransparentOverdraw = 15, + Ssao = 16, + ReactiveMask = 17, + TransparencyMask = 18, + ClusteredDecalOverdraw = 19, + ClusterCullingDecalBinning = 20, + SceneBrightness = 21, +}; + +enum class RenderDescriptorSetId { + Global = 0, + RenderNode = 1, + Material = 2, +}; + +enum class RenderSubpassIndex { + Default = 0, + ExtendedAttributes = 1, +}; + +enum class RenderPipelineStage { + Vertex = 0, + TessellationControl = 1, + TessellationEvaluation = 2, + Fragment = 3, + Compute = 4, + RayTrace = 5, +}; + +enum class ShaderCompileSourceLanguage { + Hlsl_2021 = 0, + Hlsl_2018 = 1, + Glsl = 2, + Pssl = 3, +}; + +enum class RenderPrimitiveType { + TriangleList = 0, + TriangleStrip = 1, + LineList = 2, + PatchList = 3, +}; + +struct RenderSampler { + keen::RenderSamplerAddressMode addressModeU; // Offset: 0 + keen::RenderSamplerAddressMode addressModeV; // Offset: 1 + keen::RenderSamplerAddressMode addressModeW; // Offset: 2 + keen::RenderSamplerFilterMode minFilter; // Offset: 3 + keen::RenderSamplerFilterMode magFilter; // Offset: 4 + keen::RenderSamplerFilterMode mipFilter; // Offset: 5 + keen::RenderComparisonFunction comparisonFunction; // Offset: 6 + keen::bool anisotropyEnable; // Offset: 7 +}; + +enum class RenderParameterBlockPatchPointType { + Texture = 0, + StreamedTexture = 1, + Sampler = 2, +}; + +struct RenderParameterBlockPatchPoint { + keen::RenderParameterBlockPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 parameterIndex; // Offset: 12 +}; + +struct RenderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 + keen::uint8 stream; // Offset: 2 +}; + +enum class ComputeGroupCountAlgorithm { + Target2D = 0, + Target2DHalf = 1, + Target2DArray = 2, + Target2DWidthOnly = 3, + Target3D = 4, + Target3DArray = 5, +}; + +struct RenderModelImageSizeInfo { + keen::float32 texelsPerMeter; // Offset: 0 +}; + +struct RenderMaterialImage { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 width; // Offset: 4 + keen::uint16 height; // Offset: 6 + keen::uint16 depth; // Offset: 8 + keen::uint16 arraySize; // Offset: 10 + keen::uint8 levelCount; // Offset: 12 + keen::TextureType type; // Offset: 13 + keen::PixelFormat format; // Offset: 14 + keen::ContentHash data; // Offset: 16 + keen::bool enableStreaming; // Offset: 32 + keen::string debugName; // Offset: 36 +}; + +struct RenderMaterialSampler { + keen::uint32 dataOffset; // Offset: 0 + keen::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::RenderComparisonFunction comparisonFunction; // Offset: 10 + keen::bool anisotropyEnable; // Offset: 11 +}; + +enum class RfxSamplerId { + Wrap = 0, + Clamp = 1, + ClampToZero = 2, + Mirror = 3, +}; + +struct RenderMaterialResource { + keen::RenderEffectId effectId; // Offset: 0 + keen::RenderMaterialFlagMask flags; // Offset: 1 + keen::BlobArray data; // Offset: 4 + keen::HashKey32 dataTypeSignature; // Offset: 12 + keen::BlobArray images; // Offset: 16 + keen::BlobArray samplers; // Offset: 24 + keen::string debugName; // Offset: 32 +}; + +typedef keen::ObjectReference RenderMaterialResourceReference; + +struct RenderMaterialTextureInfo { + keen::uint3 size; // Offset: 0 + keen::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 12 +}; + +struct RenderMaterialInfo { + keen::RenderEffectId effectId; // Offset: 0 + keen::RenderMaterialFlagMask flags; // Offset: 1 + keen::HashKey32 dataTypeSignature; // Offset: 4 + keen::bool hasStreamedTextures; // Offset: 8 + keen::BlobArray textures; // Offset: 12 +}; + +struct RenderBlendResourceData { + keen::ObjectReference id; // Offset: 0 +}; + +struct RenderMaterialMesh { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::Sphere boundingSphere; // Offset: 32 + keen::RenderEffectId renderEffectId; // Offset: 48 + keen::uint8 clothMeshIndex; // Offset: 49 + keen::RenderMaterialResourceReference material; // Offset: 52 + keen::RenderMaterialFlagMask materialFlags; // Offset: 68 + keen::BlobArray materialImageSizeInfos; // Offset: 72 + keen::ContentHash materialModelData; // Offset: 80 + keen::HashKey32 materialModelDataTypeSignatureHash; // Offset: 96 + keen::float3 positionScale; // Offset: 100 + keen::float3 positionOffset; // Offset: 112 + keen::uint32 vertexCount; // Offset: 124 + keen::uint32 indexCount; // Offset: 128 + keen::ContentHash vertexData; // Offset: 132 + keen::ContentHash indexData; // Offset: 148 + keen::ContentHash skinningData; // Offset: 164 + keen::ContentHash blendShapeVertexData; // Offset: 180 + keen::uint32 blendShapeMask; // Offset: 196 + keen::string debugName; // Offset: 200 +}; + +struct RenderModelLod { + keen::uint32 firstMeshIndex; // Offset: 0 + keen::uint32 meshCount; // Offset: 4 + keen::float32 pixelSize; // Offset: 8 +}; + +enum class RenderRayTraceVertexFormat { + Pos3f_Normal3f_Color4ub = 0, +}; + +struct RenderRayTraceMeshPart { + keen::uint32 jointIndex; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexOffset; // Offset: 12 + keen::uint32 vertexCount; // Offset: 16 +}; + +struct RenderRayTraceMesh { + keen::RenderRayTraceVertexFormat vertexFormat; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::ContentHash vertexData; // Offset: 12 + keen::ContentHash indexData; // Offset: 28 + keen::BlobArray parts; // Offset: 44 +}; + +struct RenderModelClothSleeve { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::uint32 upperJointIndex; // Offset: 32 + keen::uint32 lowerJointIndex; // Offset: 36 + keen::uint32 instanceIndex; // Offset: 40 + keen::ContentHash planes; // Offset: 44 + keen::ContentHash particleIndicies; // Offset: 60 +}; + +struct RenderModelSdfMaterial { + keen::float3 albedo; // Offset: 0 + keen::uint dummy; // Offset: 12 + keen::float3 emissive; // Offset: 16 +}; + +struct RenderModelSdfPart { + keen::uint3 resolution; // Offset: 0 + keen::uint32 jointIndex; // Offset: 12 + keen::uint8 mipLevelCount; // Offset: 16 + keen::float3 origin; // Offset: 20 + keen::float3 totalSize; // Offset: 32 + keen::ContentHash pixels; // Offset: 44 + keen::RenderModelSdfMaterial material; // Offset: 60 +}; + +struct RenderModelSdfData { + keen::BlobArray parts; // Offset: 0 +}; + +struct RenderGradientMapResource { + keen::uint16 width; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::PixelFormat format; // Offset: 3 + keen::ContentHash data; // Offset: 4 + keen::string debugName; // Offset: 20 +}; + +struct RenderModelClothColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::bool ignoreClothCollider; // Offset: 1 + keen::BlobArray spheres; // Offset: 4 + keen::BlobArray capsules; // Offset: 12 + keen::BlobArray instances; // Offset: 20 +}; + +struct SkinnedTreeModelData { + keen::BlobArray jointMatrix; // Offset: 0 + keen::BlobArray jointParent; // Offset: 8 + keen::BlobArray jointSpringData; // Offset: 16 + keen::BlobArray leafJoints; // Offset: 24 + keen::BlobArray inverseTransformTree; // Offset: 32 +}; + +struct RenderModel { + keen::string debugName; // Offset: 0 + keen::BlobArray meshes; // Offset: 8 + keen::BlobArray lods; // Offset: 16 + keen::AxisAlignedBox aabb; // Offset: 32 + keen::RenderRayTraceMesh rayTraceMesh; // Offset: 64 + keen::ObjectReference hierarchy; // Offset: 116 + keen::uint16 hierarchyJointCount; // Offset: 132 + keen::BlobArray skinningMap; // Offset: 136 + keen::BlobOptional cloth; // Offset: 144 + keen::BlobOptional chain; // Offset: 148 + keen::RenderModelClothColliderData collider; // Offset: 152 + keen::BlobArray sleeves; // Offset: 180 + keen::BlobArray blendShapes; // Offset: 188 + keen::uint32 jointCount; // Offset: 196 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 200 + keen::bool hasCardClusterLod; // Offset: 204 + keen::RenderModelSdfData sdf; // Offset: 208 + keen::SkinnedTreeModelData skinnedTree; // Offset: 216 +}; + +struct RenderClothVertexSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothFabricResource { + keen::uint32 numParticles; // Offset: 0 + keen::BlobArray phaseIndices; // Offset: 4 + keen::BlobArray sets; // Offset: 12 + keen::BlobArray restValues; // Offset: 20 + keen::BlobArray stiffnessValues; // Offset: 28 + keen::BlobArray indices; // Offset: 36 + keen::BlobArray anchors; // Offset: 44 + keen::BlobArray tetherLengths; // Offset: 52 + keen::BlobArray triangles; // Offset: 60 +}; + +struct RenderClothMeshResource { + keen::RenderClothFabricResource fabric; // Offset: 0 + keen::BlobArray simulationPositions; // Offset: 68 + keen::BlobArray simulationInvMasses; // Offset: 76 + keen::BlobArray simulationStiffnesses; // Offset: 84 + keen::BlobArray simulationVertexWeights; // Offset: 92 + keen::BlobArray simulationTriangles; // Offset: 100 + keen::BlobArray simulationBlendshapeDeltas; // Offset: 108 + keen::BlobArray simulationSkinningData; // Offset: 116 + keen::BlobArray skinnedVertexIndices; // Offset: 124 + keen::BlobArray renderPositions; // Offset: 132 + keen::BlobArray renderUvs; // Offset: 140 + keen::BlobArray renderTriangles; // Offset: 148 + keen::BlobArray renderSimulationVertexIndices; // Offset: 156 +}; + +struct RenderClothMesh { + keen::ContentHash data; // Offset: 0 + keen::float32 gravity; // Offset: 16 + keen::float32 windStrength; // Offset: 20 + keen::float32 dragCoefficient; // Offset: 24 + keen::float32 liftCoefficient; // Offset: 28 + keen::float32 damping; // Offset: 32 + keen::float32 linearInertia; // Offset: 36 + keen::float32 angularInertia; // Offset: 40 + keen::float32 centrifugalInertia; // Offset: 44 + keen::float32 tetherStiffness; // Offset: 48 + keen::float32 phasesStiffness; // Offset: 52 + keen::float32 phasesCompressionLimit; // Offset: 56 + keen::float32 phasesStretchLimit; // Offset: 60 + keen::float32 motionConstraintsStiffness; // Offset: 64 + keen::float32 collisionFriction; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 76 + keen::float32 motionConstraintsMaxRadius; // Offset: 80 +}; + +struct RenderClothColliderSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothColliderSphere { + keen::float3 center; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::RenderClothColliderSkinningData skinningData; // Offset: 16 +}; + +struct RenderClothColliderCapsule { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::RenderClothColliderSkinningData skinningData; // Offset: 32 +}; + +struct RenderModelColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::BlobArray spheres; // Offset: 4 + keen::BlobArray capsules; // Offset: 12 +}; + +struct RenderModelColliderInstanceData { + keen::BlobArray sphereIndices; // Offset: 0 + keen::BlobArray capsuleIndices; // Offset: 8 +}; + +struct RenderModelClothData { + keen::bool hasSkinning; // Offset: 0 + keen::BlobArray meshes; // Offset: 4 +}; + +struct RenderClothColliderResource { + keen::bool hasSkinning; // Offset: 0 + keen::uint32 maxJointIndex; // Offset: 4 + keen::BlobArray spheres; // Offset: 8 + keen::BlobArray capsules; // Offset: 16 +}; + +struct RenderModelChainConfig { + keen::bool propagateRotation; // Offset: 0 + keen::float32 gravity; // Offset: 4 + keen::float32 mass; // Offset: 8 + keen::float32 dragCoefficient; // Offset: 12 + keen::float32 liftCoefficient; // Offset: 16 + keen::float32 stiffnessFrequencey; // Offset: 20 + keen::float32 damping; // Offset: 24 + keen::float32 motionConstraintRadius; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 phasesStiffness; // Offset: 44 + keen::float32 phasesStiffnessMultiplier; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 collisionFriction; // Offset: 60 +}; + +struct RenderModelChain { + keen::Guid guid; // Offset: 0 + keen::uint16 jointBeginIndex; // Offset: 16 + keen::uint16 jointEndIndex; // Offset: 18 + keen::uint16 constraintBeginIndex; // Offset: 20 + keen::uint16 constraintEndIndex; // Offset: 22 + keen::uint8 configIndex; // Offset: 24 + keen::uint8 colliderIndex; // Offset: 25 +}; + +struct RenderModelChainData { + keen::BlobArray chains; // Offset: 0 + keen::BlobArray configs; // Offset: 8 + keen::BlobArray chainColliders; // Offset: 16 + keen::BlobArray anchorHierarchyJoints; // Offset: 24 + keen::BlobArray anchorDefaultPose; // Offset: 32 + keen::BlobArray anchorRestPosition; // Offset: 40 + keen::BlobArray joints; // Offset: 48 + keen::BlobArray modelMatrices; // Offset: 56 + keen::BlobArray skinToJointMatrix; // Offset: 64 + keen::BlobArray restPosition; // Offset: 72 + keen::BlobArray constraintJoints; // Offset: 80 + keen::BlobArray constraints; // Offset: 88 +}; + +struct RenderModelMaterialMeshData { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::RenderEffectId renderEffectId; // Offset: 32 + keen::uint32 vertexCount; // Offset: 36 + keen::uint32 indexCount; // Offset: 40 + keen::ContentHash vertexData; // Offset: 44 + keen::ContentHash indexData; // Offset: 60 +}; + +struct RenderModelLodMeshData { + keen::BlobArray meshes; // Offset: 0 +}; + +struct RenderModelMeshData { + keen::BlobArray lods; // Offset: 0 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 8 +}; + +struct RenderModelLodInfo { + keen::uint32 vertexCount; // Offset: 0 + keen::uint32 indexCount; // Offset: 4 +}; + +struct RenderModelInfo { + keen::BlobArray lods; // Offset: 0 + keen::ObjectReference modelHierarchy; // Offset: 8 +}; + +enum class AnalyticFogShapeType { + Sphere = 0, + Box = 1, +}; + +struct AnalyticFogShape { + keen::AnalyticFogShapeType type; // Offset: 0 + keen::float3 halfSize; // Offset: 4 + keen::float32 falloff; // Offset: 16 +}; + +struct RenderFogInjection { + keen::AnalyticFogShape shape; // Offset: 0 + keen::float32 absorption; // Offset: 20 + keen::Color scattering; // Offset: 24 + keen::Color emission; // Offset: 28 + keen::float32 density; // Offset: 32 +}; + +struct RenderFogDissolve { + keen::AnalyticFogShape shape; // Offset: 0 + keen::float32 strength; // Offset: 20 +}; + +struct RenderModelDrawData2 { + keen::float4 boundingSphere; // Offset: 0 + keen::uint flags; // Offset: 16 + keen::uint sizeFeedbackIndex; // Offset: 20 + keen::uint firstMesh; // Offset: 24 + keen::uint lodCount; // Offset: 28 + keen::StaticArray lodMeshOffsets; // Offset: 32 + keen::StaticArray lodMeshCounts; // Offset: 64 + keen::StaticArray lodPixelSizes; // Offset: 96 +}; + +struct RenderMeshDrawData2 { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint pipelineBits; // Offset: 28 + keen::uint indexOffset; // Offset: 32 + keen::uint indexCount; // Offset: 36 + keen::int vertexOffset; // Offset: 40 + keen::uint modelMaterialData; // Offset: 44 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 48 + keen::uint blendShapeVertexOffset; // Offset: 52 + keen::uint blendShapeMask; // Offset: 56 + keen::uint vertexCount; // Offset: 60 +}; + +struct RenderInstanceData { + keen::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 32 + keen::uint32 tintColor; // Offset: 80 + keen::BindlessTexture2D_float4 tintGradientMap; // Offset: 84 + keen::uint32 highlightColorPaletteIndexTransparency; // Offset: 88 + keen::uint32 flagsAndEmissiveFactor; // Offset: 92 + keen::float4 dissolveParameters; // Offset: 96 + keen::float32 dissolveEdgeBrightness; // Offset: 112 + keen::float32 alphaClip; // Offset: 116 + keen::uint32 activeBlendShapeMask; // Offset: 120 + keen::uint32 blendShapeWeights; // Offset: 124 + keen::StaticArray clothMeshDataOffsets; // Offset: 128 + keen::uint32 albedoTintColorIndices; // Offset: 144 + keen::uint32 skinMatrixOffset; // Offset: 148 + keen::uint32 decalLayerMask; // Offset: 152 + keen::uint32 dynamicWetnessOffset; // Offset: 156 + keen::uint32 modelIndex; // Offset: 160 + keen::uint32 groupMask; // Offset: 164 +}; + +struct DetailScatteringInstanceData { + keen::uint3 packedWorldPosition; // Offset: 0 + keen::uint scaleAndFadeout; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct HighlightColorPaletteSettings { + keen::float highlightAmount; // Offset: 0 + keen::float highlightIntensity; // Offset: 4 + keen::Color invalidHighlightColor; // Offset: 8 + keen::Color validHighlightColor; // Offset: 12 + keen::Color mutedHighlightColor; // Offset: 16 + keen::Color group1HighlightColor; // Offset: 20 + keen::Color group2HighlightColor; // Offset: 24 + keen::Color group3HighlightColor; // Offset: 28 + keen::Color group4HighlightColor; // Offset: 32 +}; + +struct WeatherSurfaceMaterialSettings { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float snowVertexNormalPower; // Offset: 8 + keen::float snowVertexNormalCutoff; // Offset: 12 + keen::float frostUVScale; // Offset: 16 + keen::float frostScale; // Offset: 20 + keen::float frostRoughness; // Offset: 24 + keen::float frostPorosityScale; // Offset: 28 + keen::Color frostAlbedo; // Offset: 32 + keen::Color frostPuddleAlbedo; // Offset: 36 +}; + +struct RenderSystemResource { + keen::SpecularIblLutResource specularIblLut; // Offset: 0 + keen::ObjectReference blueNoiseMap; // Offset: 20 + keen::RenderTexture blueNoiseRenderImage; // Offset: 36 + keen::ObjectReference globalSlopeDefinition; // Offset: 72 + keen::HighlightColorPaletteSettings highlightColorPalette; // Offset: 88 + keen::WeatherSurfaceMaterialSettings weatherSurfaceMaterialSettings; // Offset: 124 + keen::bool verifyDecoObjectMeshCountLimit; // Offset: 164 + keen::bool verifyDetailScatteringMeshCountLimit; // Offset: 165 + keen::ObjectReference atmosphere; // Offset: 168 + keen::ObjectReference zoneVisualizationSettings; // Offset: 184 + keen::ObjectReference frostBlendMask; // Offset: 200 + keen::ObjectReference snowRoughness; // Offset: 216 + keen::ObjectReference snowAlbedo; // Offset: 232 + keen::ObjectReference snowNormal; // Offset: 248 + keen::RenderTexture frostBlendMaskRenderImage; // Offset: 264 + keen::RenderTexture snowRoughnessRenderImage; // Offset: 300 + keen::RenderTexture snowAlbedoRenderImage; // Offset: 336 + keen::RenderTexture snowNormalRenderImage; // Offset: 372 +}; + +struct RenderModelChunkInstance { + keen::float3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::Quaternion orientation; // Offset: 16 + keen::uint16 modelIndex; // Offset: 32 + keen::bool canBeCulled; // Offset: 34 +}; + +struct RenderModelChunkModelData { + keen::WorldPosition origin; // Offset: 0 + keen::float3 extents; // Offset: 24 + keen::BlobArray instances; // Offset: 36 + keen::BlobArray entityIndexMap; // Offset: 44 + keen::BlobArray modelGuids; // Offset: 52 +}; + +struct RenderModelChunkModelResource { + keen::ContentHash modelData; // Offset: 0 + keen::HashKey32 modelDataTypeSignatureHash; // Offset: 16 +}; + +struct RenderModelChunkGridResource { + keen::uint2 chunkCount; // Offset: 0 +}; + +struct GBufferTemporalFilterConstants { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float temporalWeight; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 96 +}; + +struct TransparentMergeStartConstants { + keen::uint instanceCounterByteOffset; // Offset: 0 + keen::uint maxInstanceCount; // Offset: 4 +}; + +struct TransparentMergePrepareConstants { + keen::uint maxTriangleCount; // Offset: 0 +}; + +struct VoxelChunklet { + keen::float4 sphere; // Offset: 0 + keen::float4 normal; // Offset: 16 +}; + +struct GiVoxelMaterial { + keen::float3 emissive; // Offset: 0 + keen::float3 albedo; // Offset: 12 + keen::float roughness; // Offset: 24 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct GiVoxelBuildingMaterial { + keen::GiVoxelMaterial top; // Offset: 0 + keen::GiVoxelMaterial side; // Offset: 36 + keen::GiVoxelMaterial bottom; // Offset: 72 +}; + +struct GiVoxelBuildingMaterialResource { + keen::BlobArray materials; // Offset: 0 +}; + +struct BakeWorldTriangleMaterialDataVertexShaderParameters { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 vertexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 +}; + +struct BakeWorldTriangleMaterialDataTriangleShaderParameters { + keen::uint32 triangleCount; // Offset: 0 + keen::uint32 vertexOffset; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 + keen::uint32 bakedTriangleMaterialDataOffset; // Offset: 32 + keen::uint32 feedbackDataOffset; // Offset: 36 + keen::uint4 debug; // Offset: 48 +}; + +struct PatchMeshVerticesParameters { + keen::float3 positionOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 12 + keen::float3 positionScale; // Offset: 16 + keen::uint vertexStride; // Offset: 28 + keen::uint vertexOffset; // Offset: 32 +}; + +struct RenderBlendShapeSlot { + keen::ObjectReference id; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +enum class DetailScatteringPass { + DepthPrePass = 0, + Geometry = 1, +}; + +enum class DetailScatteringError { + OutOfDraws = 1, + OutOfObjects = 2, +}; + +enum class DetailScatteringDebugMode { + DetailScatteringDebugMode_None = 0, + DetailScatteringDebugMode_SingleModel = 1, + DetailScatteringDebugMode_SingleMaterial = 2, +}; + +struct ScatterModelData { + keen::GpuModel model; // Offset: 0 +}; + +struct ScatteredObjectData { + keen::uint modelIndexAndLodIndex; // Offset: 0 + keen::float fadeout; // Offset: 4 +}; + +struct ScatterTriangleCullingShaderParameters { + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint triangleBinSize; // Offset: 64 + keen::GpuCullingFrustum frustum; // Offset: 80 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::uint chunkletBinSize; // Offset: 244 + keen::float boundingSphereBias; // Offset: 248 + keen::float maxScatterDistance; // Offset: 252 +}; + +struct ScatterTriangleCullingPushConstants { + keen::uint chunkIndex; // Offset: 0 +}; + +struct ScatterChunkletCullingShaderParameters { + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint chunkletBinSize; // Offset: 64 + keen::GpuCullingFrustum frustum; // Offset: 80 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::float boundingSphereBias; // Offset: 244 + keen::float maxScatterDistance; // Offset: 248 +}; + +struct ScatterChunkletCullingPushConstants { + keen::uint jobCount; // Offset: 0 +}; + +struct ScatterObjectPrepareShaderParameters { + keen::uint targetGroupSize; // Offset: 0 +}; + +struct DetailScatteringShaderData { + keen::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::uint scatteredObjectCounterOffset; // Offset: 16 + keen::uint scatteredObjectCapacity; // Offset: 20 + keen::uint scatteredCandidateCounterOffset; // Offset: 24 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::GraphicsMatrix44 cameraCenteredViewProjection; // Offset: 80 + keen::float4 frustumPlane0; // Offset: 144 + keen::float4 frustumPlane1; // Offset: 160 + keen::float4 frustumPlane2; // Offset: 176 + keen::float4 frustumPlane3; // Offset: 192 + keen::float4 frustumPlane4; // Offset: 208 + keen::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint dynamicHeightmapValid; // Offset: 272 + keen::uint debugMode; // Offset: 276 + keen::uint debugValue; // Offset: 280 + keen::float densityProbability; // Offset: 284 + keen::float modelSizeFeedbackPixelSize; // Offset: 288 + keen::float distanceCullingThreshold; // Offset: 292 + keen::float sizeCullingPixelSize; // Offset: 296 + keen::uint permutationBucketCount; // Offset: 300 + keen::float maxScatterDistance; // Offset: 304 + keen::float invMaxDistanceFadeLength; // Offset: 308 + keen::float displacementFadeoutStart; // Offset: 312 + keen::float displacementFadeoutEnd; // Offset: 316 + keen::float displacementStrength; // Offset: 320 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 336 + keen::uint occlusionCullingEnabled; // Offset: 400 + keen::uint triangleBinSize; // Offset: 404 +}; + +struct DetailScatteringChunkShaderData { + keen::float4 translationAndScale; // Offset: 0 + keen::uint indexOffset; // Offset: 16 + keen::uint vertexOffset; // Offset: 20 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 24 + keen::uint triangleCount; // Offset: 28 + keen::uint chunkletOffset; // Offset: 32 + keen::uint chunkletCount; // Offset: 36 +}; + +struct ScatterInstanceOffsetShaderData { + keen::uint scatterModelCount; // Offset: 0 + keen::uint instanceCounterOffset; // Offset: 4 + keen::DetailScatteringDebugMode debugMode; // Offset: 8 + keen::uint debugValue; // Offset: 12 + keen::uint permutationBucketCount; // Offset: 16 +}; + +struct ScatterInstancesShaderData { + keen::uint scatteredObjectCounterOffset; // Offset: 0 + keen::DetailScatteringDebugMode debugMode; // Offset: 4 + keen::uint debugValue; // Offset: 8 + keen::uint permutationBucketCount; // Offset: 12 +}; + +struct BiomeMap { + keen::Biome baseBiome; // Offset: 0 +}; + +struct BiomeMapLayer { + keen::Biome biome; // Offset: 0 +}; + +struct BiomeMapInfo { + keen::uint2 size; // Offset: 0 + keen::StaticArray data; // Offset: 8 +}; + +struct SdfCascadeData { + keen::GraphicsMatrix44 ndcToSdfMatrix; // Offset: 0 + keen::int3 origin; // Offset: 64 +}; + +struct SdfShaderData { + keen::uint32 sdfCascadeCount; // Offset: 0 + keen::uint32 sdfInstanceCount; // Offset: 4 + keen::uint32 sdfBaseDescriptorIndex; // Offset: 8 + keen::float32 sdfInvGridSize; // Offset: 12 +}; + +struct SdfDebugShaderParameters { + keen::SdfShaderData sdf; // Offset: 0 + keen::float3 cameraPosition; // Offset: 16 + keen::uint32 visibleGroupMask; // Offset: 28 +}; + +struct SdfCaptureDebugShaderParameters { + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 +}; + +struct SdfVoxelRegion { + keen::int3 origin; // Offset: 0 + keen::uint32 bufferOffset; // Offset: 12 + keen::uint3 size; // Offset: 16 +}; + +struct SdfUpdateShaderParameters { + keen::SdfVoxelRegion newVoxelRegion0; // Offset: 0 + keen::SdfVoxelRegion newVoxelRegion1; // Offset: 32 + keen::SdfVoxelRegion newVoxelRegion2; // Offset: 64 + keen::SdfVoxelRegion dirtyVoxelRegion; // Offset: 96 + keen::int3 origin; // Offset: 128 + keen::uint32 size; // Offset: 140 +}; + +struct SdfBakingShaderParameters { + keen::int3 voxelOrigin; // Offset: 0 + keen::uint32 volumeSize; // Offset: 12 + keen::float32 voxelSizeInMeters; // Offset: 16 + keen::uint3 targetOffset; // Offset: 20 +}; + +struct SdfFloodShaderParameters { + keen::sint32 stepSize; // Offset: 0 +}; + +struct SdfCascadeUpdateShaderParameters { + keen::uint32 cascadeIndex; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 +}; + +struct WorldChunkVoxelMaterialCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 + keen::uint32 chunkIndex; // Offset: 8 + keen::uint2 chunkData; // Offset: 16 +}; + +struct SdfModelShaderData { + keen::uint32 partCount; // Offset: 0 + keen::uint32 partOffset; // Offset: 4 +}; + +struct SdfModelPartShaderData { + keen::uint32 descriptorIndex; // Offset: 0 +}; + +struct SdfInstanceShaderData { + keen::uint32 modelIndex; // Offset: 0 + keen::uint32 partCount; // Offset: 4 + keen::uint32 partOffset; // Offset: 8 +}; + +struct SdfInstancePartShaderData { + keen::GraphicsMatrix43 inverseTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::float3 aabbMax; // Offset: 108 +}; + +struct SdfImageMaterialShaderData { + keen::float3 albedo; // Offset: 0 + keen::float3 emissive; // Offset: 12 +}; + +struct SdfSystemUpdateShaderParameters { + keen::uint newModelCount; // Offset: 0 + keen::uint newModelPartCount; // Offset: 4 + keen::uint newMaterialCount; // Offset: 8 +}; + +struct SdfSceneUpdateShaderParameters { + keen::uint newInstanceCount; // Offset: 0 + keen::uint newInstancePartCount; // Offset: 4 +}; + +struct SdfSystemShaderData { + keen::uint activeInstanceCount; // Offset: 0 + keen::uint activeInstancePartCount; // Offset: 4 +}; + +struct SdfAoTraceShaderParameters { + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint32 frameId; // Offset: 64 + keen::float radius; // Offset: 68 +}; + +struct SdfAoFilterShaderParameters { + keen::float2 inverseTargetSize; // Offset: 0 + keen::uint32 frameId; // Offset: 8 + keen::uint32 isHistoryValid; // Offset: 12 +}; + +enum class SdfBvhBuildMethod { + LBVH = 0, + LOC = 1, +}; + +struct SdfBvhCommonInstanceData { + keen::GraphicsMatrix43 worldToUvwMatrix; // Offset: 0 + keen::GraphicsMatrix43 uvwToWorldMatrix; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::uint descriptorIndex; // Offset: 108 + keen::float3 aabbMax; // Offset: 112 +}; + +struct SdfBvhNodeShaderData { + keen::float3 aabbMin; // Offset: 0 + keen::uint offset; // Offset: 12 + keen::float3 aabbMax; // Offset: 16 + keen::uint count; // Offset: 28 +}; + +struct SdfBvhDebugVisualizeIntersectionShaderParameters { + keen::float3 sunDirection; // Offset: 0 + keen::float3 cameraOrigin; // Offset: 16 + keen::float3 farPlaneOrigin; // Offset: 32 + keen::float3 farPlaneX; // Offset: 48 + keen::float3 farPlaneY; // Offset: 64 + keen::float2 inverseTargetSize; // Offset: 80 +}; + +struct SdfBvhDebugTraversalShaderParameters { + keen::float3 rayOrigin; // Offset: 0 + keen::float3 rayDirection; // Offset: 16 + keen::float rayLength; // Offset: 28 +}; + +enum class SdfBvhDebugStepType { + None = 0, + Leaf = 1, + Inner = 2, +}; + +struct SdfBvhDebugStepLeafShaderData { + keen::SdfBvhCommonInstanceData instance; // Offset: 0 + keen::float boxHitDistance; // Offset: 124 + keen::float sdfHitDistance; // Offset: 128 + keen::float hitDistance; // Offset: 132 +}; + +struct SdfBvhDebugStepInnerShaderData { + keen::float3 aabbMin0; // Offset: 0 + keen::float3 aabbMax0; // Offset: 12 + keen::float3 aabbMin1; // Offset: 24 + keen::float3 aabbMax1; // Offset: 36 + keen::float hitDistance0; // Offset: 48 + keen::float hitDistance1; // Offset: 52 +}; + +struct SdfBvhDebugStepShaderData { + keen::SdfBvhDebugStepType type; // Offset: 0 + keen::SdfBvhDebugStepLeafShaderData leaf; // Offset: 4 + keen::SdfBvhDebugStepInnerShaderData inner; // Offset: 140 + keen::float closestHit; // Offset: 196 +}; + +struct RenderSdfShadowShaderParameters { + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::float3 sunDirection; // Offset: 64 + keen::float sunConeAngle; // Offset: 76 + keen::uint2 targetSize; // Offset: 80 + keen::uint frameId; // Offset: 88 + keen::float rayBias; // Offset: 92 + keen::uint32 isSdfCacheValid; // Offset: 96 + keen::uint32 pixelSize; // Offset: 100 +}; + +enum class RasterShadowQuality { + Low = 0, + Medium = 1, + High = 2, + Ultra = 3, +}; + +struct RenderShadowAtlasMaskShaderParameters { + keen::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 + keen::float texelSize; // Offset: 1160 + keen::float3 toLightDirection; // Offset: 1168 +}; + +struct RenderShadowAtlasDebugShaderParameters { + keen::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 +}; + +struct VoxelWorldShadowDebugShaderParameters { + keen::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 0 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 160 + keen::uint2 targetSize; // Offset: 224 +}; + +struct PrimeShadowMapConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 64 + keen::float3 cameraWorldPosition; // Offset: 128 + keen::uint32 depthPyramidMip; // Offset: 140 + keen::float2 depthPyramidAspectRatio; // Offset: 144 + keen::uint32 tileCountX; // Offset: 152 + keen::uint32 tileCountY; // Offset: 156 + keen::uint32 useCameraCenteredPosition; // Offset: 160 + keen::PackedShaderWorldPositionUniform cameraPosition; // Offset: 176 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 192 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 256 +}; + +enum class RenderShadowMaskQuality { + Low = 0, + Medium = 1, + High = 2, +}; + +struct RenderShadowMaskFillShaderParameters { + keen::SdfShaderData sdf; // Offset: 0 + keen::LightCacheLookupShaderData lightCache; // Offset: 16 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 416 + keen::float2 linearDepthParameters; // Offset: 480 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 496 + keen::float2 tileRatio; // Offset: 560 + keen::uint32 pixelSize; // Offset: 568 + keen::uint32 frameId; // Offset: 572 + keen::float3 sunDirection; // Offset: 576 + keen::float32 sunConeAngle; // Offset: 588 + keen::float32 rayBias; // Offset: 592 + keen::uint32 visibleGroupMask; // Offset: 596 + keen::uint32 writeDebugOutput; // Offset: 600 + keen::uint32 enablePixelSdfCache; // Offset: 604 + keen::uint32 enableDebugTarget; // Offset: 608 +}; + +struct RenderShadowMaskFilterShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float32 historyWeight; // Offset: 8 +}; + +struct RenderShadowMaskUpsampleShaderParameters { + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::uint2 targetSize; // Offset: 1088 + keen::float2 linearDepthParameters; // Offset: 1096 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 1104 + keen::uint32 pixelSize; // Offset: 1168 +}; + +struct RenderContactShadowShaderParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 unjitteredProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix43 viewMatrix; // Offset: 128 + keen::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 176 + keen::float rcpNearPlaneDistance; // Offset: 240 + keen::float3 sunDirection; // Offset: 244 + keen::uint2 targetSize; // Offset: 256 + keen::uint32 frameId; // Offset: 264 + keen::uint32 discardContents; // Offset: 268 + keen::uint32 stepCount; // Offset: 272 + keen::float32 rayLength; // Offset: 276 + keen::float32 depthThickness; // Offset: 280 + keen::float32 hardness; // Offset: 284 + keen::uint32 combineWithDenoisedShadows; // Offset: 288 + keen::uint32 enableJitter; // Offset: 292 +}; + +struct RenderContactShadow2ShaderParameters { + keen::float4 lightCoordinate; // Offset: 0 + keen::float2 invDepthTextureSize; // Offset: 16 + keen::int2 waveOffset; // Offset: 24 + keen::float subSurfaceShadowStrength; // Offset: 32 +}; + +struct UnpackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct PackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct SharpnessParameters { + keen::float32 kDetectRatio; // Offset: 0 + keen::float32 kDetectThres; // Offset: 4 + keen::float32 kMinContrastRatio; // Offset: 8 + keen::float32 kRatioNorm; // Offset: 12 + keen::float32 kContrastBoost; // Offset: 16 + keen::float32 kEps; // Offset: 20 + keen::float32 kSharpStartY; // Offset: 24 + keen::float32 kSharpScaleY; // Offset: 28 + keen::float32 kSharpStrengthMin; // Offset: 32 + keen::float32 kSharpStrengthScale; // Offset: 36 + keen::float32 kSharpLimitMin; // Offset: 40 + keen::float32 kSharpLimitScale; // Offset: 44 + keen::float32 kScaleX; // Offset: 48 + keen::float32 kScaleY; // Offset: 52 + keen::float32 kDstNormX; // Offset: 56 + keen::float32 kDstNormY; // Offset: 60 + keen::float32 kSrcNormX; // Offset: 64 + keen::float32 kSrcNormY; // Offset: 68 + keen::uint32 kInputViewportOriginX; // Offset: 72 + keen::uint32 kInputViewportOriginY; // Offset: 76 + keen::uint32 kInputViewportWidth; // Offset: 80 + keen::uint32 kInputViewportHeight; // Offset: 84 + keen::uint32 kOutputViewportOriginX; // Offset: 88 + keen::uint32 kOutputViewportOriginY; // Offset: 92 + keen::uint32 kOutputViewportWidth; // Offset: 96 + keen::uint32 kOutputViewportHeight; // Offset: 100 +}; + +struct SimpleMaterial { + keen::bool enableTextureStreaming; // Offset: 0 + keen::bool receiveShadows; // Offset: 1 + keen::ObjectReference colorMap; // Offset: 4 + keen::ObjectReference normalMap; // Offset: 20 + keen::HdrColorRgb tintColor; // Offset: 36 +}; + +struct SimpleRfxRenderMaterial { + keen::StreamedTexture2D_float4 colorMap; // Offset: 0 + keen::uint32 receiveShadows; // Offset: 4 + keen::float3 tintColor; // Offset: 8 +}; + +struct SimpleVoxelPbrMaterial { + keen::float3 albedo; // Offset: 0 + keen::float roughness; // Offset: 12 + keen::float3 emissive; // Offset: 16 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct SimpleWorldMaterialShaderLayerWeights { + keen::float sideWeight; // Offset: 0 + keen::float bottomWeight; // Offset: 4 + keen::float topWeight; // Offset: 8 + keen::float flatnessWeight; // Offset: 12 + keen::float map0Weight; // Offset: 16 + keen::float map1Weight; // Offset: 20 + keen::float2 flatness; // Offset: 24 + keen::float4 sideParameters; // Offset: 32 +}; + +struct SimpleWorldMaterialBlendMap { + keen::StreamedTexture2D_float map; // Offset: 0 + keen::float tilingFactor; // Offset: 4 +}; + +struct SimpleVoxelLayerInfo { + keen::uint data; // Offset: 0 +}; + +struct SimpleWorldMaterialResource { + keen::RenderParameterBlock layerInfosParameterBlock; // Offset: 0 + keen::RenderParameterBlock layerWeightsParameterBlock; // Offset: 52 + keen::RenderParameterBlock layerPbrMaterialsParameterBlock; // Offset: 104 + keen::RenderParameterBlock blendMapsParameterBlock; // Offset: 156 +}; + +struct SimpleBuildingMaterialResource { +}; + +struct SkinnedTreeInstanceData { + keen::uint skinMatrixOffset; // Offset: 0 +}; + +struct SkinnedTreeModelSpringParameters { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct SkinnedTreeModelParameters { + keen::SkinnedTreeModelSpringParameters trunk; // Offset: 0 + keen::SkinnedTreeModelSpringParameters branch; // Offset: 16 +}; + +struct SkinnedTreeModelSpringData { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct CpuSkinVector3 { + keen::vf32_data x; // Offset: 0 + keen::vf32_data y; // Offset: 16 + keen::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix33 { + keen::vf32_data x; // Offset: 0 + keen::vf32_data y; // Offset: 16 + keen::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix43 { + keen::CpuSkinMatrix33 rot; // Offset: 0 + keen::vf32_data pos; // Offset: 48 +}; + +struct SkyTextureMaterial { + keen::ObjectReference texture; // Offset: 0 + keen::RenderSamplerAddressMode textureAddressMode; // Offset: 16 +}; + +struct SkyTextureRfxRenderMaterial { + keen::BindlessTexture2D_float4 texture; // Offset: 0 + keen::BindlessSampler sampler; // Offset: 4 +}; + +struct SnowDisplacementUpdateParameters { + keen::uint worldPixelSize; // Offset: 0 + keen::uint worldTextureSize; // Offset: 4 + keen::uint2 worldTileTopLeft; // Offset: 8 + keen::uint2 worldPositionTopLeft; // Offset: 16 + keen::uint2 oldWorldTileTopLeft; // Offset: 24 + keen::uint2 oldWorldPositionTopLeft; // Offset: 32 + keen::uint worldHeightScale; // Offset: 40 + keen::float rcpHeightScale; // Offset: 44 + keen::uint fadeOutHeightFill; // Offset: 48 + keen::uint heightMin; // Offset: 52 + keen::uint heightMax; // Offset: 56 + keen::uint oldHeightMin; // Offset: 60 + keen::uint bodyCounterOffset; // Offset: 64 +}; + +struct SnowDisplacementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float rcpMinSoftness; // Offset: 12 + keen::float rcpMaxSoftness; // Offset: 16 + keen::float heightNoiseScale; // Offset: 20 +}; + +enum class SsaoQuality { + Low = 0, + Medium = 1, + High = 2, +}; + +struct SsaoData { + keen::ViewSpacePositionReconstructionData viewspaceReconstructionData; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 64 + keen::uint2 _padding0; // Offset: 72 + keen::float32 ssaoIntensity; // Offset: 80 + keen::float32 ssaoBias; // Offset: 84 + keen::float32 ssaoScale; // Offset: 88 + keen::float32 ssaoSampleRadius; // Offset: 92 +}; + +struct StochasticScreenSpaceReflectionsConstantData { + keen::GraphicsMatrix44 g_inv_view_proj; // Offset: 0 + keen::GraphicsMatrix44 g_proj; // Offset: 64 + keen::GraphicsMatrix44 g_inv_proj; // Offset: 128 + keen::GraphicsMatrix43 g_view; // Offset: 192 + keen::GraphicsMatrix43 g_inv_view; // Offset: 240 + keen::GraphicsMatrix44 g_prev_view_proj; // Offset: 288 + keen::float3 g_camera_world_position; // Offset: 352 + keen::uint2 g_buffer_dimensions; // Offset: 368 + keen::float2 g_inv_buffer_dimensions; // Offset: 376 + keen::uint2 g_render_dimensions; // Offset: 384 + keen::float2 g_inv_render_dimensions; // Offset: 392 + keen::float g_temporal_stability_factor; // Offset: 400 + keen::float g_depth_buffer_thickness; // Offset: 404 + keen::float g_depth_buffer_thickness_far; // Offset: 408 + keen::float g_roughness_threshold; // Offset: 412 + keen::float g_temporal_variance_threshold; // Offset: 416 + keen::float g_sdf_ray_max_distance; // Offset: 420 + keen::float g_sdf_ray_start_offset; // Offset: 424 + keen::float g_sdf_hit_offset; // Offset: 428 + keen::uint g_frame_index; // Offset: 432 + keen::uint g_max_traversal_intersections; // Offset: 436 + keen::uint g_min_traversal_occupancy; // Offset: 440 + keen::uint g_most_detailed_mip; // Offset: 444 + keen::uint g_samples_per_quad; // Offset: 448 + keen::uint g_temporal_variance_guided_tracing_enabled; // Offset: 452 + keen::uint g_num_mips; // Offset: 456 + keen::uint g_resolution_downscale; // Offset: 460 + keen::float g_reflect_background; // Offset: 464 + keen::uint g_debug_reflection_rays; // Offset: 468 + keen::float g_edge_bleeding_max_distance; // Offset: 472 + keen::float g_edge_bleeding_offset; // Offset: 476 + keen::uint g_gi_enabled; // Offset: 480 + keen::float g_exposure; // Offset: 484 + keen::uint g_ground_truth_specular; // Offset: 488 +}; + +struct StochasticScreenSpaceReflectionsUpscaleData { + keen::uint2 outputSize; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 8 +}; + +struct DebugRootConstantData { + keen::uint debug_mode; // Offset: 0 +}; + +struct ApplyReflectionsConstants { + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 0 + keen::uint2 outputSize; // Offset: 64 + keen::float2 invOutputSize; // Offset: 72 + keen::float specularMax; // Offset: 80 + keen::uint enableHorizonBasedOcclusion; // Offset: 84 + keen::float giLightFactor; // Offset: 88 + keen::uint flags; // Offset: 92 + keen::float specularReflectionsFactor; // Offset: 96 + keen::uint groundTruthSpecular; // Offset: 100 + keen::uint writeToSceneBrightness; // Offset: 104 +}; + +struct SurfacePickerShaderParameters { + keen::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::float3 focusPosition; // Offset: 496 + keen::uint chunkCount; // Offset: 508 + keen::uint seed; // Offset: 512 + keen::float pickingRange; // Offset: 516 + keen::uint debugDrawPicks; // Offset: 520 + keen::uint enableDisplacement; // Offset: 524 +}; + +struct SurfacePickerShaderData { + keen::StaticArray binSize; // Offset: 0 + keen::StaticArray binOffset; // Offset: 24 + keen::StaticArray binPickIndex; // Offset: 48 + keen::uint culledChunkCount; // Offset: 72 + keen::uint pointCount; // Offset: 76 +}; + +struct SurfacePickerPointShaderData { + keen::float3 position; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SurfacePickerBakedDisplacementShaderData { + keen::float displacement; // Offset: 0 + keen::float displacementTop; // Offset: 4 + keen::float displacementBottom; // Offset: 8 + keen::float displacementSide; // Offset: 12 +}; + +struct TerraformingCursorMaterial { + keen::ObjectReference noiseMap; // Offset: 0 + keen::float3 noiseUvScale; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::HdrColorRgb ringColor; // Offset: 32 + keen::HdrColorRgb fillColor; // Offset: 48 +}; + +struct TerraformingCursorRfxRenderMaterial { + keen::float3 noiseUvScale; // Offset: 0 + keen::BindlessTexture3D_float noiseMap; // Offset: 12 + keen::float3 ringColor; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::float3 fillColor; // Offset: 32 +}; + +struct TextureInfo { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 +}; + +struct TextureSizeInfo { + keen::TextureInfo info; // Offset: 0 + keen::BlobArray sources; // Offset: 28 +}; + +struct TransparentMaterial { +}; + +enum class TransparentInstanceFlag { + IsAdditive = 0, + EnableLighting = 1, + EnableAlphaClip = 2, + UseVertexAlphaForAlphaClip = 3, +}; + +struct TransparentInstanceData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::BindlessTexture2D_float4 image; // Offset: 20 + keen::BindlessSampler imageSampler; // Offset: 24 + keen::BindlessSampler uvDistortionMapSampler; // Offset: 28 + keen::float32 edgeFadeOutFactor; // Offset: 32 + keen::float3 position; // Offset: 36 + keen::float32 depthFadeDistance; // Offset: 48 + keen::float4 rotation; // Offset: 52 + keen::float3 scale; // Offset: 68 + keen::float3 color; // Offset: 80 + keen::float32 alpha; // Offset: 92 + keen::float2 uvOffset; // Offset: 96 + keen::float2 uvScale; // Offset: 104 + keen::float2 uvDistortionOffset; // Offset: 112 + keen::float2 uvDistortionScale; // Offset: 120 + keen::float32 uvDistortionStrength; // Offset: 128 + keen::BindlessTexture2D_float4 uvDistortionMap; // Offset: 132 + keen::float32 alphaClipValue; // Offset: 136 + keen::float32 alphaClipHalfRange; // Offset: 140 + keen::uint32 flags; // Offset: 144 + keen::BindlessTexture2D_float4 motionVectorImage; // Offset: 148 + keen::float32 motionVectorScale; // Offset: 152 + keen::float32 flipbookTime; // Offset: 156 + keen::uint32 encodedFlipbookSize; // Offset: 160 +}; + +struct TransparentRfxRenderMaterial { +}; + +struct bool2 { + keen::bool x; // Offset: 0 + keen::bool y; // Offset: 1 +}; + +struct bool3 { + keen::bool x; // Offset: 0 + keen::bool y; // Offset: 1 + keen::bool z; // Offset: 2 +}; + +struct bool4 { + keen::bool x; // Offset: 0 + keen::bool y; // Offset: 1 + keen::bool z; // Offset: 2 + keen::bool w; // Offset: 3 +}; + +typedef keen::uint32 BoolMask; + +struct VfxSamplerParameters { + keen::RenderSamplerAddressMode addressU; // Offset: 0 + keen::RenderSamplerAddressMode addressV; // Offset: 1 + keen::RenderSamplerAddressMode addressW; // Offset: 2 +}; + +enum class ShaderVariableComponentType { + Float = 0, + Int = 1, + Uint = 2, + Bool = 3, + Quaternion = 4, +}; + +struct ShaderVariable { + keen::string name; // Offset: 0 + keen::ShaderVariableComponentType componentType; // Offset: 8 + keen::uint8 componentCount; // Offset: 9 +}; + +enum class VfxBufferMemberComponentType { + Float = 0, + SignedInt = 1, + UnsignedInt = 2, + BoolMask = 3, +}; + +struct VfxBufferMember { + keen::string name; // Offset: 0 + keen::uint32 componentCount; // Offset: 8 + keen::VfxBufferMemberComponentType componentType; // Offset: 12 + keen::uint32 offsetInBytes; // Offset: 16 +}; + +struct VfxParticleStateBufferInfo { + keen::BlobArray members; // Offset: 0 + keen::uint32 sizeInBytes; // Offset: 8 +}; + +enum class VfxParameterType { + Float = 0, + Float2 = 1, + Float3 = 2, + Float4 = 3, + Int = 4, + Int2 = 5, + Int3 = 6, + Int4 = 7, + Color = 8, + Quaternion = 9, +}; + +struct VfxMeshPatchPointData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::ContentHash vertexData; // Offset: 8 + keen::ContentHash indexData; // Offset: 24 + keen::float4 boundingSphere; // Offset: 40 +}; + +struct VfxModelPatchPointData { + keen::ObjectReference model; // Offset: 0 +}; + +struct VfxDecalPatchPointData { + keen::ObjectReference decal; // Offset: 0 +}; + +struct VfxImagePatchPointData { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::VfxSamplerParameters sampler; // Offset: 6 + keen::uint8 levelCount; // Offset: 9 + keen::TextureType type; // Offset: 10 + keen::PixelFormat format; // Offset: 11 + keen::ContentHash content; // Offset: 12 + keen::string debugName; // Offset: 28 +}; + +struct VfxEmitterPatchPointData { + keen::uint32 childIndex; // Offset: 0 +}; + +struct VfxCurvePatchPointData { + keen::ContentHash samples; // Offset: 0 + keen::float32 startTime; // Offset: 16 + keen::float32 totalTime; // Offset: 20 + keen::uint32 sampleCount; // Offset: 24 + keen::string name; // Offset: 28 +}; + +enum class VfxParticleParameterPatchPointType { + Image = 0, + Mesh = 1, + Model = 2, + Curve = 3, + Decal = 4, +}; + +struct VfxParticleParameterPatchPoint { + keen::VfxParticleParameterPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 dataIndex; // Offset: 12 +}; + +struct VfxParticleUniformData { + keen::ContentHash data; // Offset: 0 + keen::BlobArray patchPoints; // Offset: 16 + keen::BlobArray imageData; // Offset: 24 + keen::BlobArray meshData; // Offset: 32 + keen::BlobArray modelData; // Offset: 40 + keen::BlobArray emitterData; // Offset: 48 + keen::BlobArray curveData; // Offset: 56 + keen::BlobArray decalData; // Offset: 64 +}; + +enum class VfxParticleFeature { + Emit = 0, +}; + +typedef keen::Bitmask8 VfxParticleFeatureMask; + +struct VfxParticleResource { + keen::string name; // Offset: 0 + keen::uint32 parent; // Offset: 8 + keen::uint32 stateSize; // Offset: 12 + keen::uint32 maxCount; // Offset: 16 + keen::ContentHash code; // Offset: 20 + keen::ContentHash strippedCode; // Offset: 36 + keen::VfxParticleUniformData uniformData; // Offset: 52 +}; + +struct VfxUserEffectParameterDescription { + keen::string name; // Offset: 0 + keen::uint32 nameHash; // Offset: 8 + keen::uint32 offset; // Offset: 12 + keen::uint32 sizeInBytes; // Offset: 16 + keen::Guid inheritanceKey; // Offset: 20 +}; + +struct VfxResource { + keen::uint64 parameterHash; // Offset: 0 + keen::BlobArray parameters; // Offset: 8 + keen::VfxUserEffectParameterDataBlock defaultData; // Offset: 16 + keen::BlobArray particles; // Offset: 80 + keen::BlobArray stateInfos; // Offset: 88 + keen::float32 cullingDistanceMin; // Offset: 96 + keen::float32 cullingDistanceMax; // Offset: 100 + keen::uint32 killTimeInSeconds; // Offset: 104 + keen::string debugName; // Offset: 108 +}; + +struct VfxNode { + keen::bool enabled; // Offset: 0 + keen::ObjectReference particle; // Offset: 4 + keen::uint32 maxCount; // Offset: 20 +}; + +struct VfxDefinition { + keen::float32 cullingDistanceMin; // Offset: 0 + keen::float32 cullingDistanceMax; // Offset: 4 + keen::uint32 killTimeInSeconds; // Offset: 8 +}; + +struct VfxParticleDefinition { +}; + +enum class VfxParticleValueKind { + Value = 0, + Expression = 1, +}; + +struct VfxParameterDefinitionBase { + keen::VfxParticleValueKind kind; // Offset: 0 + keen::string expression; // Offset: 4 +}; + +struct VfxParameterDefinition_Float { + keen::float32 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Float2 { + keen::float2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Float3 { + keen::float3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Float4 { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int { + keen::sint32 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int2 { + keen::int2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int3 { + keen::int3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Int4 { + keen::int4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt { + keen::uint32 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool { + keen::bool defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Color { + keen::Color defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Mesh { + keen::ObjectReference defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Model { + keen::ObjectReference defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Decal { + keen::ObjectReference defaultValue; // Offset: 12 +}; + +struct VfxParameterDefinition_Emitter { +}; + +struct VfxParameterDefinition_Image { + keen::ObjectReference defaultValue; // Offset: 12 + keen::VfxSamplerParameters sampler; // Offset: 28 +}; + +struct VfxStateDefinitionBase { + keen::VfxParticleValueKind kind; // Offset: 0 + keen::string expression; // Offset: 4 +}; + +struct VfxStateDefinition_Float { + keen::float32 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Float2 { + keen::float2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Float3 { + keen::float3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Float4 { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int { + keen::sint32 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int2 { + keen::int2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int3 { + keen::int3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Int4 { + keen::int4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt { + keen::uint32 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool { + keen::bool defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Color { + keen::Color defaultValue; // Offset: 12 +}; + +struct VfxStateDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 12 +}; + +struct VfxExpressionBase { +}; + +struct VfxExpressionValue_Float1 { + keen::float32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int1 { + keen::sint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt1 { + keen::uint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool { + keen::bool value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Color { + keen::Color value; // Offset: 0 +}; + +struct VfxExpressionValue_Quaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Particle { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Mesh { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Model { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Decal { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Image { + keen::ObjectReference value; // Offset: 0 +}; + +enum class VfxExpressionType { + Expression = 0, + Value = 1, +}; + +struct VfxParameterExpression { + keen::ObjectReference parameter; // Offset: 0 + keen::VfxExpressionType type; // Offset: 16 + keen::string expression; // Offset: 20 + keen::BlobVariant value; // Offset: 28 +}; + +struct VfxStateExpression { + keen::ObjectReference state; // Offset: 0 + keen::VfxExpressionType type; // Offset: 16 + keen::string expression; // Offset: 20 + keen::BlobVariant value; // Offset: 28 +}; + +struct VfxEffectParameterBase { +}; + +struct VfxEffectParameterFloat { + keen::float32 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterBool { + keen::bool value; // Offset: 0 +}; + +struct VfxEffectParameterBool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxEffectParameterBool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxEffectParameterBool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxEffectParameterInt { + keen::sint32 value; // Offset: 0 +}; + +struct VfxEffectParameterInt2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxEffectParameterInt3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxEffectParameterInt4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxEffectParameterUint { + keen::uint32 value; // Offset: 0 +}; + +struct VfxEffectParameterUint2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxEffectParameterUint3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxEffectParameterUint4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxEffectParameterQuaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterColor { + keen::Color value; // Offset: 0 +}; + +struct VfxEffectParameterGroup { +}; + +struct VfxGlobalEffectParameterDirectory { +}; + +struct VfxGlobalEffectParameterInfo { + keen::Guid inheritanceKey; // Offset: 0 + keen::HashKey32 descriptionHash; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 20 +}; + +struct VfxGlobalEffectParameterRegistry { + keen::BlobArray parameters; // Offset: 0 +}; + +struct VfxEffectParameterInfo { + keen::VfxUserEffectParameterDescription description; // Offset: 0 + keen::BlobVariant value; // Offset: 36 + keen::uint32 registerOffset; // Offset: 48 +}; + +struct VfxUserEffectParameterInfos { + keen::BlobArray parameters; // Offset: 0 +}; + +struct VfxProfileEntry { + keen::Guid effectId; // Offset: 0 + keen::Time emitterGpuTime; // Offset: 16 + keen::Time particleGpuTime; // Offset: 24 + keen::uint32 instanceCount; // Offset: 32 + keen::uint32 chunkCount; // Offset: 36 + keen::uint32 dispatchCount; // Offset: 40 + keen::uint32 memoryUsage; // Offset: 44 +}; + +struct VfxProfileMessage { + keen::uint64 frameId; // Offset: 0 + keen::Time totalGpuTime; // Offset: 8 + keen::uint32 totalInstanceCount; // Offset: 16 + keen::uint32 totalMemoryUsage; // Offset: 20 + keen::uint32 totalDispatchCount; // Offset: 24 + keen::uint32 viewId; // Offset: 28 + keen::uint32 tickCount; // Offset: 32 + keen::BlobArray entries; // Offset: 36 +}; + +struct vfx_converter.ParticleStateInfo { + keen::BlobVariant definition; // Offset: 0 + keen::string name; // Offset: 12 + keen::Guid id; // Offset: 20 + keen::float64 sortKey; // Offset: 40 +}; + +struct vfx_converter.ParticleParameterInfo { + keen::BlobVariant definition; // Offset: 0 + keen::string name; // Offset: 12 + keen::Guid id; // Offset: 20 + keen::float64 sortKey; // Offset: 40 + keen::BlobArray spawnParameters; // Offset: 48 +}; + +struct vfx_converter.ParticleDefinitionInfo { + keen::BlobArray states; // Offset: 0 + keen::BlobArray parameters; // Offset: 8 + keen::bool isEmitter; // Offset: 16 +}; + +struct VfxConverterConfiguration { + keen::VfxReference singleEffect; // Offset: 0 +}; + +struct VfxNodeInfo { + keen::Guid parentNodeId; // Offset: 0 + keen::Guid parentNodeDefinitionId; // Offset: 16 + keen::BlobArray childNodeIds; // Offset: 32 + keen::bool isEnabled; // Offset: 40 +}; + +struct VfxBufferEntry { + keen::Guid id; // Offset: 0 + keen::string name; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 24 + keen::uint32 registerOffset; // Offset: 28 + keen::uint32 sizeInRegisters; // Offset: 32 + keen::bool hasCurveExpression; // Offset: 36 + keen::string hlslTypeName; // Offset: 40 + keen::string componentTypeName; // Offset: 48 + keen::uint32 componentCount; // Offset: 56 +}; + +struct VfxBufferInfo { + keen::BlobArray entries; // Offset: 0 + keen::uint32 sizeInRegisters; // Offset: 8 +}; + +struct VfxParticleDefinitionCurveExpression { + keen::Guid curveId; // Offset: 0 + keen::Guid referencedParameterId; // Offset: 16 +}; + +struct VfxParticleDefinitionCurveExpressions { + keen::BlobArray curves; // Offset: 0 +}; + +struct VfxParameterTypeIndices { + keen::BlobArray types; // Offset: 0 +}; + +struct VfxBaseEffectParameters { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::uint32 startTime; // Offset: 28 + keen::float3 scale; // Offset: 32 + keen::uint32 isActive; // Offset: 44 + keen::float cullingDistanceMin; // Offset: 48 + keen::float cullingDistanceMax; // Offset: 52 + keen::uint32 isHidden; // Offset: 56 + keen::uint32 age; // Offset: 60 +}; + +struct VfxCombinedEffectParameters { + keen::VfxBaseEffectParameters base; // Offset: 0 + keen::VfxUserEffectParameterDataBlock user; // Offset: 64 +}; + +struct VfxMeshInfo { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 + keen::uint32 packedPipelineIndices; // Offset: 40 +}; + +struct VfxModelInfo { + keen::float4 boundingSphere; // Offset: 0 + keen::uint32 modelSizeFeedbackIndex; // Offset: 16 + keen::uint32 firstMeshOffset; // Offset: 20 + keen::uint32 meshCount; // Offset: 24 +}; + +struct VfxModelInstanceTransform { + keen::float4 orientation; // Offset: 0 + keen::uint3 packedPosition; // Offset: 16 + keen::float scale; // Offset: 28 +}; + +struct VfxModelInstance { + keen::VfxModelInstanceTransform transform; // Offset: 0 + keen::VfxModelInstanceTransform previousTransform; // Offset: 32 + keen::float3 color; // Offset: 64 + keen::float alpha; // Offset: 76 + keen::float3 dissolveOffset; // Offset: 80 + keen::float dissolveRadius; // Offset: 92 + keen::float dissolveEdgeBrightness; // Offset: 96 + keen::float alphaClip; // Offset: 100 + keen::uint emissiveFactor; // Offset: 104 +}; + +struct VfxTerraformingCursorInstance { + keen::float3 boxSize; // Offset: 0 + keen::float sphereRadius; // Offset: 12 + keen::float3 position; // Offset: 16 + keen::uint isBox; // Offset: 28 + keen::float3 uvOffset; // Offset: 32 + keen::float ringAlpha; // Offset: 44 + keen::float ringAlphaClip; // Offset: 48 + keen::float ringAlphaClipHalfRange; // Offset: 52 + keen::float fillAlpha; // Offset: 56 + keen::float fillHardness; // Offset: 60 +}; + +struct VfxCullingInstance { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::float scale; // Offset: 28 + keen::uint modelIndex; // Offset: 32 + keen::uint instanceDataIndex; // Offset: 36 + keen::uint instanceDataTypeId; // Offset: 40 + keen::uint isDissolveActive; // Offset: 44 +}; + +struct VfxModelDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::float pad0; // Offset: 28 +}; + +struct VfxIntermediateDraw { + keen::uint meshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct VfxCullingSubView { + keen::GpuCullingFrustum cameraCenteredFrustum; // Offset: 0 + keen::float minObjectSize; // Offset: 96 +}; + +struct VfxCullingPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 normalPipelineShift; // Offset: 4 + keen::uint32 dissolvePipelineShift; // Offset: 8 + keen::uint32 firstBatchIndex; // Offset: 12 +}; + +struct VfxCullInstancesConstants { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 1008 + keen::uint32 subViewCount; // Offset: 1168 + keen::uint32 passCount; // Offset: 1172 + keen::uint32 maxDrawCount; // Offset: 1176 + keen::uint32 maxMeshCount; // Offset: 1180 + keen::uint32 useOcclusionCulling; // Offset: 1184 + keen::float3 cameraWorldPosition; // Offset: 1188 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 1200 + keen::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 1248 + keen::float modelSizeFeedbackPixelSize; // Offset: 1312 +}; + +struct VfxWriteCulledDrawCommandsPushConstants { + keen::uint firstBatchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 + keen::uint pipelineCount; // Offset: 8 +}; + +struct PreloadVfxList { +}; + +struct PreloadVfxListResource { + keen::BlobArray vfxIds; // Offset: 0 +}; + +struct VoxelMaterialVfxDataResource { + keen::BlobArray materialType; // Offset: 0 +}; + +struct GpuImage2D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuImage3D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuCombinedImage2D { + keen::GpuImage2D image; // Offset: 0 + keen::GpuSampler sampler; // Offset: 4 +}; + +struct GpuCombinedImage3D { + keen::GpuImage3D image; // Offset: 0 + keen::GpuSampler sampler; // Offset: 4 +}; + +struct GpuMesh { + keen::uint32 vertexOffset; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexCount; // Offset: 12 + keen::float4 boundingSphere; // Offset: 16 +}; + +struct GpuMeshVertex { + keen::float3 position; // Offset: 0 + keen::float2 uv; // Offset: 12 + keen::float3 normal; // Offset: 20 + keen::float4 color; // Offset: 32 +}; + +struct GpuDecal { + keen::uint32 materialDataIndex; // Offset: 0 +}; + +struct GpuCurve { + keen::uint32 index; // Offset: 0 + keen::uint32 sampleCountMinusOne; // Offset: 4 + keen::float startTime; // Offset: 8 + keen::float inverseTotalTime; // Offset: 12 + keen::float inverseSampleDelta; // Offset: 16 +}; + +struct VfxBaseParticleState { + keen::uint myParentEmitterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint rngState; // Offset: 8 + keen::uint tickCount; // Offset: 12 +}; + +struct VfxEmitterState { + keen::uint particleCounterByteOffset; // Offset: 0 + keen::uint spawnCounterByteOffset; // Offset: 4 + keen::uint maxParticleCount; // Offset: 8 + keen::uint maxSpawnCount; // Offset: 12 + keen::uint particleChunkIndex; // Offset: 16 + keen::uint instanceIndex; // Offset: 20 + keen::uint particleTypeIndex; // Offset: 24 + keen::uint explicitPad0; // Offset: 28 +}; + +struct VfxChunkState { + keen::uint freeParticleCounterByteOffset; // Offset: 0 + keen::uint currentActiveParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct VfxUpdateBuffer { + keen::uint time; // Offset: 0 + keen::float fixedTimeStep; // Offset: 4 + keen::float realTimeStep; // Offset: 8 + keen::uint currentTickId; // Offset: 12 + keen::uint transparentInstanceBufferCapacity; // Offset: 16 + keen::uint transparentInstanceCounterByteOffset; // Offset: 20 + keen::uint injectInstanceBufferCapacity; // Offset: 24 + keen::uint injectInstanceCounterByteOffset; // Offset: 28 + keen::uint pointLightBufferCapacity; // Offset: 32 + keen::uint pointLightCounterByteOffset; // Offset: 36 + keen::uint decalBufferCapacity; // Offset: 40 + keen::uint decalCounterByteOffset; // Offset: 44 + keen::uint grassMovementBodyCounterByteOffset; // Offset: 48 + keen::uint grassMovementBodyListCapacity; // Offset: 52 + keen::float32 exposure; // Offset: 56 + keen::float32 exposureCorrection; // Offset: 60 + keen::float3 cameraPosition; // Offset: 64 + keen::float timeOfDay; // Offset: 76 + keen::uint3 cameraWorldPosition; // Offset: 80 + keen::float4 cameraOrientation; // Offset: 96 + keen::StaticArray frustumPlanes; // Offset: 112 + keen::float3 sunDirection; // Offset: 192 + keen::float32 sunDirectLightFadeFactor; // Offset: 204 + keen::float3 moonDirection; // Offset: 208 + keen::float32 moonDirectLightFadeFactor; // Offset: 220 + keen::uint skipInjectSort; // Offset: 224 + keen::uint worldChunkCount; // Offset: 228 + keen::uint useParallelRadixSort; // Offset: 232 + keen::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint isDynamicHeightmapValid; // Offset: 272 + keen::uint sdfCascadeCount; // Offset: 276 + keen::uint firstSdfImageIndex; // Offset: 280 + keen::float32 sdfInvGridSize; // Offset: 284 + keen::uint isSdfBvhValid; // Offset: 288 + keen::VolumetricFogGridShaderData fogGrid; // Offset: 304 + keen::uint playerCount; // Offset: 800 + keen::StaticArray playerPositions; // Offset: 816 + keen::uint maxCullingInstanceCount; // Offset: 1072 + keen::uint maxModelInstanceCount; // Offset: 1076 + keen::uint maxTerraformingCursorInstanceCount; // Offset: 1080 + keen::uint hideSpiders; // Offset: 1084 + keen::uint snowDisplacementBodyCounterByteOffset; // Offset: 1088 + keen::uint snowDisplacementBodyListCapacity; // Offset: 1092 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 1104 +}; + +struct VfxPushConstants { + keen::uint data; // Offset: 0 +}; + +struct VfxPrepareBuffer { + keen::uint emitterCount; // Offset: 0 +}; + +struct VfxWorldChunk { + keen::uint vertexOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::uint indexCount; // Offset: 12 + keen::uint type; // Offset: 16 + keen::float4 translationAndScale; // Offset: 20 +}; + +struct GpuSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct GpuSortShaderData { + keen::uint elementCount; // Offset: 0 +}; + +struct GpuSortWritebackShaderData { + keen::uint elementCounterOffset; // Offset: 0 +}; + +struct VfxChunkUpdateBuffer2 { + keen::uint particleTypeParametersOffset; // Offset: 0 + keen::uint activeParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint freeParticleCounterByteOffset; // Offset: 12 + keen::uint particleStatesOffset; // Offset: 16 + keen::uint oldActiveParticleIndicesOffset; // Offset: 20 + keen::uint newActiveParticleIndicesOffset; // Offset: 24 + keen::uint freeParticleIndicesOffset; // Offset: 28 + keen::uint parentStatesOffset; // Offset: 32 + keen::uint oldActiveParentParticleIndicesOffset; // Offset: 36 + keen::uint childParticleStatesOffset; // Offset: 40 + keen::uint childParticleFreeListOffset; // Offset: 44 + keen::uint childActiveParticleIndicesOffset; // Offset: 48 + keen::uint chunkId; // Offset: 52 + keen::uint explicitPad0; // Offset: 56 + keen::uint explicitPad1; // Offset: 60 +}; + +struct ViewReprojectionData { + keen::GraphicsMatrix44 ndcToPreviousNdcMatrix; // Offset: 0 +}; + +struct Fog2DownsampleDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 +}; + +struct Fog2MinMaxDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 targetSize; // Offset: 16 + keen::uint32 tileSize; // Offset: 24 +}; + +struct Fog2SampleSkyParameters { + keen::float32 cloudLayerY; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 +}; + +struct Fog2CloudsErosionParameters { + keen::float3 scrollSpeed; // Offset: 0 + keen::float32 tilingFactor; // Offset: 12 + keen::float32 heightTilingFactor; // Offset: 16 + keen::uint32 noiseTextureIndex; // Offset: 20 + keen::float32 strength; // Offset: 24 +}; + +struct Fog2CloudsParameters { + keen::float32 yRange; // Offset: 0 + keen::float32 invYRange; // Offset: 4 + keen::float2 texcoordMapping; // Offset: 8 + keen::uint32 cloudTypes; // Offset: 16 + keen::Fog2CloudsErosionParameters erosionPass0; // Offset: 32 + keen::Fog2CloudsErosionParameters erosionPass1; // Offset: 64 + keen::Fog2CloudsErosionParameters erosionPass2; // Offset: 96 + keen::float3 emission; // Offset: 128 + keen::float3 inScatteringDivExtinction; // Offset: 144 + keen::float32 extinctionLn2; // Offset: 156 +}; + +struct Fog2RenderSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::uint2 blueNoiseOffset; // Offset: 16 + keen::uint32 blueNoiseSizeMask; // Offset: 24 + keen::uint32 ditherPatternOffset; // Offset: 28 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::uint32 rayMarchSampleCount; // Offset: 160 + keen::float3 lightFactorSun; // Offset: 164 + keen::float32 exposure; // Offset: 176 + keen::float3 lightFactorSky; // Offset: 180 + keen::ForwardDirectionalLightData cloudsLight; // Offset: 192 + keen::ForwardDirectionalLightData skyLight0; // Offset: 224 + keen::ForwardDirectionalLightData skyLight1; // Offset: 256 + keen::AtmosphereShaderData atmosphere; // Offset: 288 + keen::Fog2CloudsParameters clouds; // Offset: 352 + keen::Fog2SampleSkyParameters sky; // Offset: 512 + keen::float32 time; // Offset: 528 +}; + +struct Fog2BlurSkyParameters { + keen::uint2 outputSize; // Offset: 0 +}; + +struct Fog2TfSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 20 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::Fog2SampleSkyParameters sky; // Offset: 160 +}; + +struct CloudsSampleConstants { + keen::float2 texcoordMappingScale; // Offset: 0 + keen::float2 texcoordMappingOffset; // Offset: 8 +}; + +struct Fog2SampleParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 + keen::ForwardDirectionalLightData directionalLightData0; // Offset: 80 + keen::uint32 enableWeather; // Offset: 112 + keen::WeatherSampleConstants weatherSampleConstants; // Offset: 128 + keen::CloudsSampleConstants cloudsSampleConstants; // Offset: 256 + keen::AtmosphereShaderData atmosphere; // Offset: 272 + keen::VolumetricShadowRuntimeData volumetricShadow; // Offset: 336 + keen::RenderShadowAtlasShaderData shadowAtlas; // Offset: 576 + keen::VolumetricFogGridShaderData fogGrid; // Offset: 1664 + keen::SdfShaderData fogGridSdf; // Offset: 2160 + keen::GrassMovementData grassMovement; // Offset: 2176 + keen::float32 exposureCorrection; // Offset: 2208 + keen::float32 lightFactorEmissive; // Offset: 2212 + keen::float3 lightFactorSun; // Offset: 2224 + keen::float3 lightFactorSky; // Offset: 2240 + keen::float32 lightFactorPointLights; // Offset: 2252 + keen::GiAmbientFroxelVolumeParameters giFroxelParameters; // Offset: 2256 + keen::float32 lightFactorGi; // Offset: 2320 + keen::float2 surfaceFadeFunction; // Offset: 2324 + keen::float32 surfaceWidthFactor; // Offset: 2332 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 2336 + keen::float32 surfaceNoiseScaleFactor; // Offset: 2340 + keen::uint32 surfaceNoiseDescriptorIndex; // Offset: 2344 + keen::VolumetricFogGridMaterial surfaceMaterial; // Offset: 2352 + keen::SdfShaderData worldSdf; // Offset: 2400 + keen::float worldHeightPositionMapping; // Offset: 2416 + keen::float2 groundFadeFunction; // Offset: 2420 + keen::float2 groundGradientFadeFunction; // Offset: 2432 + keen::float32 groundHeightFactor; // Offset: 2440 + keen::float32 groundNoiseScrollSpeed; // Offset: 2444 + keen::float32 groundNoiseScale; // Offset: 2448 + keen::uint32 groundNoiseDescriptorIndex; // Offset: 2452 + keen::VolumetricFogGridMaterial groundMaterialAbove; // Offset: 2464 + keen::VolumetricFogGridMaterial groundMaterialBelow; // Offset: 2512 + keen::float32 heightExponent; // Offset: 2560 + keen::float32 forestExponent; // Offset: 2564 + keen::float2 heightFadeFunction; // Offset: 2568 + keen::float2 forestFadeFunction; // Offset: 2576 + keen::VolumetricFogGridMaterial heightMaterial; // Offset: 2592 + keen::VolumetricFogGridMaterial forestMaterial; // Offset: 2640 + keen::VolumetricFogGridMaterial rainMaterial; // Offset: 2688 + keen::VolumetricFogGridMaterial snowMaterial; // Offset: 2736 + keen::VolumetricFogGridMaterial blizzardMaterial; // Offset: 2784 + keen::float32 time; // Offset: 2832 + keen::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 2848 + keen::uint32 isGiEnabled; // Offset: 3008 + keen::GiAmbientProbesLookupData ambientProbesLookupData; // Offset: 3024 +}; + +struct Fog2RenderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float32 exposure; // Offset: 96 +}; + +struct Fog2RenderBlurResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 +}; + +struct Fog2TemporalBlendResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldDepthDifferenceWeight; // Offset: 20 + keen::float2 linearDepthParameters; // Offset: 24 + keen::float32 oldToNewExposure; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 +}; + +struct Fog2InitializeShadowVolumeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 12 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 +}; + +struct Fog2IntegrateShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::GraphicsMatrix43 worldToNextShadowCascadeMatrix; // Offset: 64 + keen::float32 dk; // Offset: 112 +}; + +struct Fog2IntegrateLastShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::float32 dk; // Offset: 64 + keen::VolumetricShadowRuntimeData volumetricShadow; // Offset: 80 +}; + +struct Fog2WriteShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 +}; + +struct Fog2TfShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2WriteScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 exposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 + keen::uint32 isShadowViewVolumeValid; // Offset: 128 +}; + +struct Fog2TfScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2InitializeParticipatingMediaVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 124 +}; + +struct Fog2WriteViewVolumeSourceTermParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::float32 exposure; // Offset: 112 + keen::float32 exposureCorrection; // Offset: 116 + keen::uint2 blueNoiseOffset; // Offset: 120 + keen::uint32 blueNoiseSizeMask; // Offset: 128 + keen::uint32 manyLightsShadowsEnabled; // Offset: 132 + keen::uint32 isShadowViewVolumeValid; // Offset: 136 + keen::uint32 isScatteredLightVolumeValid; // Offset: 140 +}; + +struct Fog2TfViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2IntegrateViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 +}; + +struct Fog2IntegrateViewVolume2Parameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 windTime; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 +}; + +struct Fog2RenderFogGridIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float3 fogGridMin; // Offset: 96 + keen::float3 fogGridMax; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 124 +}; + +struct Fog2RenderWeatherMapIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float2 weatherMapMin; // Offset: 96 + keen::float2 weatherMapMax; // Offset: 104 + keen::float2 weatherMapVoxelSize; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 120 + keen::uint32 enableWeather; // Offset: 124 +}; + +struct Fog2RenderRaymarchParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 80 + keen::Fog2SampleSkyParameters sky; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::float32 exposure; // Offset: 124 +}; + +struct Fog2CompositeViewVolumeDebugParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 80 + keen::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 144 + keen::GraphicsMatrix44 viewVolumeViewProjectionMatrix; // Offset: 160 + keen::GraphicsMatrix44 viewVolumeInvViewProjectionMatrix; // Offset: 224 + keen::float32 dk; // Offset: 288 +}; + +struct Fog2RenderUpscaleResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::uint2 blueNoiseOffset; // Offset: 8 + keen::uint32 blueNoiseSizeMask; // Offset: 16 + keen::float2 linearDepthParameters; // Offset: 20 +}; + +struct Fog2TestParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 +}; + +enum class Fog2CompositeFlag { + Sky = 0, + Result = 1, + ViewVolume = 2, + ViewVolumeDither = 3, +}; + +typedef keen::Bitmask32 Fog2CompositeFlags; + +struct Fog2CompositeParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 invTargetSize; // Offset: 8 + keen::uint32 flags; // Offset: 16 + keen::Fog2ViewVolumeSampleParameters sampleParameters; // Offset: 32 + keen::uint2 blueNoiseOffset; // Offset: 64 + keen::uint32 blueNoiseSizeMask; // Offset: 72 +}; + +struct Fog2DebugBlitParameters { + keen::uint2 blitOffset; // Offset: 0 + keen::uint2 blitSize; // Offset: 8 + keen::float32 scale; // Offset: 16 +}; + +struct VolumetricFog2ResourceData { + keen::ObjectReference initializationMaterial; // Offset: 0 + keen::ObjectReference atmosphere; // Offset: 16 + keen::FogMaterialParameters surfaceMaterial; // Offset: 32 + keen::float32 surfaceWidth; // Offset: 60 + keen::ImageReference surfaceNoise; // Offset: 64 + keen::float32 surfaceNoiseScale; // Offset: 80 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 84 + keen::FloatRange surfaceFadeRange; // Offset: 88 + keen::float32 groundHeightExponent; // Offset: 96 + keen::FogMaterialParameters groundMaterialAbove; // Offset: 100 + keen::FogMaterialParameters groundMaterialBelow; // Offset: 128 + keen::FloatRange groundFadeRange; // Offset: 156 + keen::FloatRange groundGradientFadeRange; // Offset: 164 + keen::ImageReference groundNoise; // Offset: 172 + keen::float32 groundNoiseScale; // Offset: 188 + keen::float32 groundNoiseFlowSpeed; // Offset: 192 + keen::float32 heightExponent; // Offset: 196 + keen::FogMaterialParameters heightMaterial; // Offset: 200 + keen::FloatRange heightFadeRange; // Offset: 228 + keen::float32 forestExponent; // Offset: 236 + keen::FogMaterialParameters forestMaterial; // Offset: 240 + keen::FloatRange forestFadeRange; // Offset: 268 + keen::FogMaterialParameters rainMaterial; // Offset: 276 + keen::FogMaterialParameters snowMaterial; // Offset: 304 + keen::FogMaterialParameters blizzardMaterial; // Offset: 332 +}; + +struct VolumetricFog2Resource { + keen::Fog2SampleSkyParameters sampleSkyParameters; // Offset: 0 + keen::Fog2CloudsParameters cloudParameters; // Offset: 16 + keen::RenderTexture cloudTypes; // Offset: 176 + keen::RenderTexture cloudErosionPass0; // Offset: 212 + keen::RenderTexture cloudErosionPass1; // Offset: 248 + keen::RenderTexture cloudErosionPass2; // Offset: 284 + keen::float2 surfaceFadeFunction; // Offset: 320 + keen::float32 surfaceWidth; // Offset: 328 + keen::RenderTexture surfaceNoise; // Offset: 332 + keen::float32 surfaceNoiseScale; // Offset: 368 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 372 + keen::FogMaterialParameters surfaceMaterial; // Offset: 376 + keen::float32 groundHeightFactor; // Offset: 404 + keen::FogMaterialParameters groundMaterialAbove; // Offset: 408 + keen::FogMaterialParameters groundMaterialBelow; // Offset: 436 + keen::float2 groundFadeFunction; // Offset: 464 + keen::float2 groundGradientFadeFunction; // Offset: 472 + keen::RenderTexture groundNoise; // Offset: 480 + keen::float32 groundNoiseScale; // Offset: 516 + keen::float32 groundNoiseScrollSpeed; // Offset: 520 + keen::float32 heightExponent; // Offset: 524 + keen::FogMaterialParameters heightMaterial; // Offset: 528 + keen::float2 heightFadeFunction; // Offset: 556 + keen::float32 forestExponent; // Offset: 564 + keen::FogMaterialParameters forestMaterial; // Offset: 568 + keen::float2 forestFadeFunction; // Offset: 596 + keen::FogMaterialParameters rainMaterial; // Offset: 604 + keen::FogMaterialParameters snowMaterial; // Offset: 632 + keen::FogMaterialParameters blizzardMaterial; // Offset: 660 +}; + +typedef keen::StaticArray Fog2ShadowVolumeTransformMatrices; + +struct VolumetricFogGridRenderParameters { + keen::FogMaterialParameters noneMaterial; // Offset: 0 + keen::FogMaterialParameters dangerousMaterial; // Offset: 28 + keen::FogMaterialParameters deadlyMaterial; // Offset: 56 + keen::FogMaterialParameters decorativeMaterial; // Offset: 84 +}; + +struct VolumetricFogGridUpdateShaderData { + keen::int3 origin; // Offset: 0 + keen::uint3 size; // Offset: 16 + keen::uint32 bufferOffset; // Offset: 28 +}; + +struct GroundFogParameters { + keen::float32 height; // Offset: 28 + keen::float32 angleFadeoutPosition; // Offset: 32 + keen::float32 angleFadeoutRange; // Offset: 36 + keen::float32 sdfGradientEpsilon; // Offset: 40 + keen::float32 flowSpeed; // Offset: 44 + keen::ObjectReference noise; // Offset: 48 + keen::float32 noiseTilingSize; // Offset: 64 +}; + +struct CloudErosionPass { + keen::float32 tilingSize; // Offset: 0 + keen::float32 heightTilingSize; // Offset: 4 + keen::float32 scrollSpeed; // Offset: 8 + keen::float32 strength; // Offset: 12 + keen::ObjectReference noise; // Offset: 16 +}; + +struct CloudParameters { + keen::float32 yMin; // Offset: 28 + keen::float32 yMax; // Offset: 32 + keen::ObjectReference cloudMap; // Offset: 36 + keen::ObjectReference cloudTypes; // Offset: 52 + keen::CloudErosionPass erosionPass0; // Offset: 68 + keen::CloudErosionPass erosionPass1; // Offset: 100 + keen::CloudErosionPass erosionPass2; // Offset: 132 + keen::float32 shadowStrength; // Offset: 164 + keen::float32 shadowStrengthSlope; // Offset: 168 + keen::float32 shadowStrengthOffset; // Offset: 172 + keen::float32 fadeoutStart; // Offset: 176 + keen::float32 fadeoutRange; // Offset: 180 +}; + +struct VolumetricFogInitializationMaterial { + keen::GroundFogParameters ground; // Offset: 0 + keen::CloudParameters clouds; // Offset: 68 +}; + +struct CloudLayerShadowParameterBlockData { + keen::float32 yMin; // Offset: 0 + keen::float32 yMax; // Offset: 4 + keen::float32 invYRange; // Offset: 8 + keen::float32 shadowStrength; // Offset: 12 + keen::float2 shadowSampleMap; // Offset: 16 +}; + +struct AnalyticFogShadowParameterBlock { + keen::CloudLayerShadowParameterBlockData clouds; // Offset: 0 +}; + +struct AnalyticFogResource { + keen::RenderParameterBlock analyticFogShadowParameterBlock; // Offset: 0 + keen::RenderTexture cloudMap; // Offset: 52 +}; + +enum class VolumetricFogInjectionShape { + Box = 0, + Sphere = 1, +}; + +struct VolumetricFogInjectInstanceData { + keen::float3 position; // Offset: 0 + keen::uint32 shape; // Offset: 12 + keen::float4 rotation; // Offset: 16 + keen::float3 size; // Offset: 32 + keen::float32 density; // Offset: 44 + keen::BindlessTexture3D_float densityTexture; // Offset: 48 + keen::BindlessSampler densityTextureSampler; // Offset: 52 + keen::float32 falloff; // Offset: 56 + keen::float3 uvOffset; // Offset: 60 + keen::float3 uvScale; // Offset: 72 + keen::float3 emission; // Offset: 84 + keen::float32 extinction; // Offset: 96 + keen::float3 scattering; // Offset: 100 + keen::float32 g; // Offset: 112 +}; + +enum class WeatherSampleFlag { + EnableDynamicWetness = 1, + ApplyWeather = 2, +}; + +struct VoxelMaterialList { + keen::ObjectReference defaultTerrainMaterial; // Offset: 0 +}; + +typedef keen::ObjectReference VoxelMaterialReference; + +struct TerrainMaterialLayer { + keen::ObjectReference material; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableSeparateTilingSizeY; // Offset: 20 + keen::float32 tilingSizeY; // Offset: 24 + keen::float32 parallaxDepth; // Offset: 28 + keen::uint32 parallaxMinLayerCount; // Offset: 32 + keen::uint32 parallaxMaxLayerCount; // Offset: 36 + keen::float32 parallaxFadeoutStart; // Offset: 40 + keen::float32 parallaxFadeoutLength; // Offset: 44 + keen::float32 parallaxMinAngle; // Offset: 48 + keen::float32 parallaxAngleFadeoutLength; // Offset: 52 + keen::PbrTerrainMaterialDisplacementLayer displacement; // Offset: 56 +}; + +struct TerrainMaterialOverlayBlendLayer { + keen::float32 fadeInDistance; // Offset: 64 + keen::float32 fadeInRange; // Offset: 68 +}; + +struct TerrainMaterialDetailBlendLayer { + keen::float32 maxOpacity; // Offset: 72 + keen::float32 maxOpacityNormal; // Offset: 76 + keen::PbrTerrainMaterialDetailNormalBlendMode mode; // Offset: 80 +}; + +struct TerrainMaterialColorVariation { + keen::ObjectReference map; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableMidPoint; // Offset: 20 + keen::Color start; // Offset: 24 + keen::Color mid; // Offset: 28 + keen::Color end; // Offset: 32 + keen::float32 midPosition; // Offset: 36 +}; + +enum class WorldMaterialBlending2MappingDirection { + Side = 1, + Top = 2, + Bottom = 4, + All = 7, +}; + +struct WorldMaterial2Layer { + keen::WorldMaterialBlending2MappingDirection mappingDirection; // Offset: 0 + keen::float32 heightBias; // Offset: 4 + keen::ObjectReference edgeNoiseMap; // Offset: 8 + keen::float32 edgeNoiseMapTilingSize; // Offset: 24 + keen::float32 edgeNoiseStrength; // Offset: 28 + keen::PbrTerrainMaterialCenterBlendingSmoothness frontRightBlendingSmoothness; // Offset: 32 + keen::bool enableSnowDisplacement; // Offset: 40 + keen::bool disableFrostShader; // Offset: 41 + keen::bool disableSnowShader; // Offset: 42 + keen::bool disableWetnessShader; // Offset: 43 + keen::bool enableFrostShaderGlitter; // Offset: 44 +}; + +enum class WorldMaterial2Area { + Surface = 0, + Underworld = 1, +}; + +enum class WorldMaterial2Side { + Top = 0, + Side = 1, + Bottom = 2, +}; + +enum class WorldMaterial2BlendingValue { + Flatness = 0, +}; + +struct WorldMaterial2BlendingValueMapping { + keen::float32 position; // Offset: 0 + keen::float32 range; // Offset: 4 +}; + +struct WorldMaterial2Node { + keen::bool enable; // Offset: 0 +}; + +struct WorldMaterial2AreaNode { + keen::WorldMaterial2Area area; // Offset: 1 +}; + +struct WorldMaterial2VoxelMaterialNode { + keen::ObjectReference voxelMaterial; // Offset: 4 +}; + +struct WorldMaterial2SideSelectorNode { + keen::WorldMaterial2BlendingValueMapping topMapping; // Offset: 4 + keen::WorldMaterial2BlendingValueMapping bottomMapping; // Offset: 12 +}; + +struct WorldMaterial2SideNode { + keen::WorldMaterial2Side side; // Offset: 1 +}; + +struct WorldMaterial2BlendingValueNode { + keen::WorldMaterial2BlendingValue value; // Offset: 1 + keen::WorldMaterial2BlendingValueMapping mapping; // Offset: 4 + keen::bool invert; // Offset: 12 +}; + +struct WorldMaterial2MapNode { + keen::ObjectReference map; // Offset: 4 + keen::float32 mapTilingSize; // Offset: 20 +}; + +struct WorldMaterial2LayerNode { + keen::ObjectReference material; // Offset: 4 +}; + +struct WorldMaterial2 { +}; + +enum class WorldMaterialBlending2BlendingMode { + Blend = 0, + OverlayNormal = 1, +}; + +enum class WorldMaterialBlending2BakingBlendValueOperationType { + Area = 1, + VoxelMaterial = 2, + InputValue = 3, + Map = 4, + Top = 10, + Bottom = 11, + Side = 12, +}; + +enum class WorldMaterialBlending2BakingInputValue { + TopSide = 0, + BottomSide = 1, + Flatness = 2, +}; + +struct WorldMaterialBlending2BakingBlendValueOperation { + keen::uint32 type; // Offset: 0 + keen::float32 param0; // Offset: 4 + keen::float32 param1; // Offset: 8 + keen::float32 param2; // Offset: 12 + keen::float32 param3; // Offset: 16 +}; + +struct WorldMaterialBlending2BakingLayerShaderData { + keen::StaticArray ops; // Offset: 0 + keen::uint32 opCount; // Offset: 160 +}; + +struct WorldMaterialBlending2MaterialBlendLayerShaderData { + keen::float2 weightFunction; // Offset: 0 +}; + +enum class WorldMaterialBlending2MaterialLayerFlag { + UsesDetailScattering = 1, + UsesSnowDisplacement = 2, + DisableFrostShader = 4, + DisableSnowShader = 8, + DisableWetnessShader = 16, + UsesFrostShaderGlitter = 32, +}; + +struct WorldMaterialBlending2MaterialLayerRenderingShaderData { + keen::uint32 mappingDirection; // Offset: 0 + keen::uint32 baseLayerIndex; // Offset: 4 + keen::uint32 blendLayerCount; // Offset: 8 + keen::uint32 detailBlendingMode; // Offset: 12 + keen::float32 heightBlendingFactor; // Offset: 16 + keen::StreamedTexture2D_float edgeNoise; // Offset: 20 + keen::float32 edgeNoiseTilingFactor; // Offset: 24 + keen::float32 edgeNoiseMappingFactor; // Offset: 28 + keen::float4 frontRightBlendSmoothness; // Offset: 32 + keen::float2 detailWeightFunction; // Offset: 48 + keen::float2 detailOpacityMapping; // Offset: 56 + keen::StaticArray blendLayerParameters; // Offset: 64 + keen::float3 colorVariationStart; // Offset: 96 + keen::StreamedTexture2D_float4 colorVariationMap; // Offset: 108 + keen::float3 colorVariationMid; // Offset: 112 + keen::float32 colorVariationTilingFactor; // Offset: 124 + keen::float3 colorVariationEnd; // Offset: 128 + keen::uint32 flags; // Offset: 140 + keen::float3 colorVariationParams; // Offset: 144 +}; + +struct WorldMaterialBlending2MaterialLayerTextureShaderData { + keen::float2 tilingFactor; // Offset: 0 + keen::StreamedTexture2D_float4 emissiveMap; // Offset: 8 + keen::float32 emissiveMapIntensity; // Offset: 12 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 16 + keen::StreamedTexture2D_float4 albedoMap; // Offset: 20 + keen::StreamedTexture2D_float roughnessMap; // Offset: 24 + keen::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::StreamedTexture2D_float heightMap; // Offset: 32 + keen::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 displacementScale; // Offset: 40 + keen::float32 displacementOffset; // Offset: 44 + keen::float32 parallaxFactor; // Offset: 48 + keen::uint32 parallaxMinLayerCount; // Offset: 52 + keen::uint32 parallaxMaxLayerCount; // Offset: 56 + keen::float32 parallaxFadeoutStart; // Offset: 60 + keen::float32 parallaxInverseFadeoutLength; // Offset: 64 + keen::float32 parallaxMinAngleSin; // Offset: 68 + keen::float32 parallaxInverseAngleFadeoutLength; // Offset: 72 + keen::float32 emissiveGiFactor; // Offset: 76 + keen::float32 distortionMapScale; // Offset: 80 + keen::float32 distortionMapSpeed; // Offset: 84 + keen::float32 distortionMapIntensity; // Offset: 88 + keen::float32 lightningMapScrollSpeed; // Offset: 92 + keen::float32 lightningMapIntensity; // Offset: 96 + keen::StreamedTexture2D_float4 distortionMap; // Offset: 100 + keen::StreamedTexture2D_float4 lightningMap; // Offset: 104 + keen::StreamedTexture2D_float4 gradientMap; // Offset: 108 +}; + +struct WorldMaterialBlending2MaterialLayerRange { + keen::uint32 firstLayer; // Offset: 0 + keen::uint32 layerCount; // Offset: 4 +}; + +struct WorldMaterialBlending2Resource { + keen::uint32 layerCount; // Offset: 0 + keen::RenderParameterBlock bakingParameterBlock; // Offset: 4 + keen::RenderParameterBlock renderingLayerParameterBlock; // Offset: 56 + keen::RenderParameterBlock renderingTextureParameterBlock; // Offset: 108 + keen::RenderParameterBlock voxelToLayerParameterBlock; // Offset: 160 + keen::BlobArray renderingLayerImageSizeInfos; // Offset: 212 + keen::BlobArray renderingLayerImageSizeInfoStartIndices; // Offset: 220 + keen::BlobArray renderingTextureImageSizeInfos; // Offset: 228 + keen::BlobArray renderingTextureImageSizeInfoStartIndices; // Offset: 236 + keen::BlobArray renderingLayerUsesSnowDisplacement; // Offset: 244 +}; + +struct WorldMaterialBlending2DebugResource { + keen::BlobArray layerGuids; // Offset: 0 + keen::BlobArray layerNames; // Offset: 8 +}; + +struct ZoneVisualizationSdfBoundingSphere { + keen::float3 worldSpacePosition; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 +}; + +enum class ZoneVisualizationSdfElementType { + BuildZone = 0, + NoBuildZone = 1, +}; + +struct ZoneVisualizationSdfElement { + keen::float3 halfSize; // Offset: 0 + keen::ZoneVisualizationSdfElementType type; // Offset: 12 +}; + +struct ZoneVisualizationSdfShaderData { + keen::uint32 elementCount; // Offset: 0 + keen::float32 smoothingRadius; // Offset: 4 +}; + +struct ZoneVisualizationSdfShaderStorageData { + keen::StaticArray boundingSpheres; // Offset: 0 + keen::StaticArray elements; // Offset: 512 +}; + +struct ZoneVisualizationSdfRenderingShaderData { + keen::float32 borderInverseSize; // Offset: 0 + keen::float32 borderCurveMax; // Offset: 4 + keen::float32 noiseBorderTilingFactor; // Offset: 8 + keen::float32 noisePositionTilingFactor; // Offset: 12 + keen::float32 noiseOffset; // Offset: 16 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 20 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 32 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 40 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 48 + keen::float3 buildZoneBorderColor; // Offset: 64 + keen::float3 noBuildZoneBorderColor; // Offset: 80 + keen::uint32 drawBuildZoneBorder; // Offset: 92 + keen::ZoneVisualizationSdfBoundingSphere previewBuildZoneBoundingSphere; // Offset: 96 + keen::ZoneVisualizationSdfElement previewBuildZone; // Offset: 112 + keen::float3 previewBuildZoneBorderColor; // Offset: 128 +}; + +struct ZoneVisualizationRasterizationShaderData { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::float3 cameraPosition; // Offset: 112 + keen::float4 color; // Offset: 128 + keen::float2 distanceFarFadeFunction; // Offset: 144 + keen::float2 distanceNearFadeFunction; // Offset: 152 +}; + +struct ZoneVisualizationRasterizationPushConstants { + keen::float3 boxCenter; // Offset: 0 + keen::float3 boxHalfSize; // Offset: 12 +}; + +struct ZoneVisualizationSettings { + keen::float32 smoothingRadius; // Offset: 0 + keen::HdrColorRgb buildZoneBorderColor; // Offset: 4 + keen::HdrColorRgb noBuildZoneBorderColor; // Offset: 20 + keen::HdrColorRgb previewBuildZoneBorderColor; // Offset: 36 + keen::float32 borderSize; // Offset: 52 + keen::float32 borderCurveMax; // Offset: 56 + keen::ObjectReference noiseTexture; // Offset: 60 + keen::float32 noiseBorderTilingSize; // Offset: 76 + keen::float32 noisePositionTilingSize; // Offset: 80 + keen::float32 noiseScrollSpeed; // Offset: 84 + keen::FloatRange buildZoneDistanceFadeRange; // Offset: 88 + keen::FloatRange noBuildZoneDistanceFadeRange; // Offset: 96 + keen::FloatRange noBuildZoneBuildZoneDistanceFadeRange; // Offset: 104 + keen::FloatRange noBuildZonePreviewDistanceFadeRange; // Offset: 112 + keen::HdrColorRgb playableAreaColor; // Offset: 120 + keen::float32 playableAreaAlpha; // Offset: 136 + keen::FloatRange playableAreaDistanceFadeRange; // Offset: 140 + keen::FloatRange playableAreaNearFadeRange; // Offset: 148 + keen::ObjectReference playableAreaModel; // Offset: 156 +}; + +struct ZoneVisualizationResource { + keen::float32 smoothingRadius; // Offset: 0 + keen::float32 borderInverseSize; // Offset: 4 + keen::float32 borderCurveMax; // Offset: 8 + keen::RenderTexture noiseTexture; // Offset: 12 + keen::float32 noiseBorderTilingFactor; // Offset: 48 + keen::float32 noisePositionTilingFactor; // Offset: 52 + keen::float32 noiseScrollSpeed; // Offset: 56 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 60 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 68 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 76 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 84 + keen::float3 buildZoneBorderColor; // Offset: 92 + keen::float3 noBuildZoneBorderColor; // Offset: 104 + keen::float3 previewBuildZoneBorderColor; // Offset: 116 + keen::float4 playableAreaColor; // Offset: 128 + keen::float2 playableAreaCameraDistanceFarFadeFunction; // Offset: 144 + keen::float2 playableAreaCameraDistanceNearFadeFunction; // Offset: 152 + keen::uint32 playableAreaMeshVertexCount; // Offset: 160 + keen::uint32 playableAreaMeshIndexCount; // Offset: 164 + keen::ContentHash playableAreaMeshData; // Offset: 168 +}; + +struct BlockOutMeshPointBrushScatteringSettings { + keen::bool disablePoint; // Offset: 0 + keen::bool disableLowerEdge; // Offset: 1 + keen::bool disableUpperEdge; // Offset: 2 + keen::bool disableWallTriangle0; // Offset: 3 + keen::bool disableWallTriangle1; // Offset: 4 +}; + +struct BlockOutMeshPoint { + keen::float3 position; // Offset: 0 + keen::float32 height; // Offset: 12 + keen::float2 offset; // Offset: 16 + keen::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 24 +}; + +enum class DistributionRule { + Everywhere = 0, + AboveFog = 1, + BelowFog = 2, +}; + +enum class DistributionNodeType { + None = 0, + VoxelBrush = 1, + Scene = 2, + Spawn = 3, +}; + +struct SceneEntitySpawnData { + keen::float3 velocity; // Offset: 0 + keen::Color tintColor; // Offset: 12 + keen::float32 triggerRange; // Offset: 16 + keen::float32 triggerRange2; // Offset: 20 + keen::float32 triggerRange3; // Offset: 24 + keen::ecs::Offset triggerOffset; // Offset: 28 + keen::sint32 level; // Offset: 68 + keen::sint32 levelOffset; // Offset: 72 + keen::ecs::EnemySettings enemySettings; // Offset: 76 + keen::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 140 + keen::ecs::EnemyTestFlags enemyTestFlags; // Offset: 144 + keen::AmbientEnvironment ambience; // Offset: 148 + keen::ObjectReference enemyMarkerTag; // Offset: 152 + keen::LocaTagReference teleporterId; // Offset: 168 + keen::LocaTagReference teleportTargetId; // Offset: 184 + keen::float32 jumpDistance; // Offset: 200 + keen::float32 jumpHeight; // Offset: 204 + keen::Quaternion jumpLaunchOffset; // Offset: 208 + keen::ecs::EntitySpawnValueMask mask; // Offset: 224 +}; + +struct DistributionNode { + keen::DistributionNodeType type; // Offset: 0 + keen::ObjectReference voxelBrush; // Offset: 4 + keen::float32 voxelBrushScale; // Offset: 20 + keen::float32 voxelBrushScaleVariation; // Offset: 24 + keen::ObjectReference scene; // Offset: 28 + keen::sint32 spawnLevelOffset; // Offset: 44 + keen::ObjectReference spawnTemplate; // Offset: 48 + keen::SceneEntitySpawnData spawnData; // Offset: 64 + keen::bool alignRotationToRoad; // Offset: 292 + keen::ObjectReference map; // Offset: 296 + keen::ObjectReference compositeMap; // Offset: 312 + keen::DistributionRule rule; // Offset: 328 + keen::float32 density; // Offset: 332 + keen::float32 radius; // Offset: 336 + keen::float32 maxHeightDifference; // Offset: 340 + keen::float32 minDistance; // Offset: 344 + keen::float32 minContentDistance; // Offset: 348 + keen::float32 maxRoadDistance; // Offset: 352 + keen::bool onlyAtCrossings; // Offset: 356 + keen::bool snapToRoad; // Offset: 357 + keen::FloatRange rotationRange; // Offset: 360 +}; + +struct DistributionNodeGroupEntry { + keen::DistributionNodeType type; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::ObjectReference voxelBrush; // Offset: 20 + keen::float32 voxelBrushScale; // Offset: 36 + keen::float32 voxelBrushScaleVariation; // Offset: 40 + keen::ObjectReference scene; // Offset: 44 + keen::sint32 spawnLevelOffset; // Offset: 60 + keen::ObjectReference spawnTemplate; // Offset: 64 + keen::SceneEntitySpawnData spawnData; // Offset: 80 + keen::BlobArray whiteboxTags; // Offset: 308 + keen::float32 probabilityWeight; // Offset: 316 + keen::bool alignRotationToRoad; // Offset: 320 + keen::FloatRange rotationRange; // Offset: 324 +}; + +struct RoadCrossingNode { + keen::ObjectReference scene; // Offset: 0 + keen::uint32 weight; // Offset: 16 + keen::bool keepPlainCrossing; // Offset: 20 +}; + +struct ConvertedDistributionNode { + keen::ObjectReference map; // Offset: 0 + keen::DistributionRule rule; // Offset: 16 + keen::float32 density; // Offset: 20 + keen::float32 radius; // Offset: 24 + keen::float32 maxHeightDifference; // Offset: 28 + keen::float32 minDistance; // Offset: 32 + keen::float32 minContentDistance; // Offset: 36 + keen::float32 maxRoadDistance; // Offset: 40 + keen::bool onlyAtCrossings; // Offset: 44 + keen::bool snapToRoad; // Offset: 45 + keen::Guid objectId; // Offset: 48 + keen::BlobArray groupEntries; // Offset: 64 +}; + +struct DistributionNodes { + keen::BlobArray nodes; // Offset: 0 + keen::BlobArray roadCrossings; // Offset: 8 +}; + +struct ScatterSetImageInfos { + keen::BlobArray> images; // Offset: 0 +}; + +enum class ScatterResolution { + One = 0, + Two = 1, + Four = 2, + Eight = 3, + Sixteen = 4, +}; + +struct ScatterNodeMap { + keen::ObjectReference image; // Offset: 0 + keen::uint2 position; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool wrap; // Offset: 32 +}; + +enum class ScatterNodeFlag { + UseNormal = 0, +}; + +typedef keen::Bitmask8 ScatterNodeFlags; + +enum class ScatterLocation { + Surface = 0, + Cave = 1, + Ceiling = 2, +}; + +enum class ScatterSetVoxelMap { + FloorHeight = 0, + CeilHeight = 1, + CaveHeight = 2, + FloorPitch = 3, + CavePitch = 4, + FloorBuilding = 5, + FloorFog = 6, + CaveFog = 7, + RoadDistance = 8, + Blockers = 9, +}; + +enum class ScatterSetRule { + Nowhere = 0, + Everywhere = 1, + Flat = 2, + AboveFog = 3, + BelowFog = 4, + InCave = 5, + ForestCore = 6, + ForestBorder = 7, + Road = 8, + RoadBorder = 9, + Water = 10, +}; + +enum class ScatterSetFootprintMap { + Two = 0, + Four = 1, + Eight = 2, + Sixteen = 3, +}; + +enum class ScatterSetImageMap { + Forest = 0, +}; + +struct ScatterScaleRange { + keen::float32 minValue; // Offset: 0 + keen::float32 maxValue; // Offset: 4 +}; + +struct ScatterYawRange { + keen::sint32 minValue; // Offset: 0 + keen::sint32 maxValue; // Offset: 4 +}; + +struct ScatterPitchRange { + keen::uint32 minValue; // Offset: 0 + keen::uint32 maxValue; // Offset: 4 +}; + +enum class ScatterNodeImageType { + ScatterNodeMap = 0, + ScatterImage = 1, + CompositeScatterImage = 2, +}; + +struct ScatterNode { + keen::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::ScatterNodeMap map; // Offset: 36 + keen::ObjectReference model; // Offset: 72 + keen::ecs::TemplateReference entity; // Offset: 88 + keen::ScatterResolution resolution; // Offset: 104 + keen::ScatterSetRule rule; // Offset: 105 + keen::Biome biome; // Offset: 106 + keen::ScatterLocation location; // Offset: 107 + keen::uint32 footprint; // Offset: 108 + keen::float32 probability; // Offset: 112 + keen::ScatterScaleRange scale; // Offset: 116 + keen::ScatterYawRange yaw; // Offset: 124 + keen::ScatterPitchRange pitch; // Offset: 132 + keen::ScatterNodeFlags flags; // Offset: 140 +}; + +struct ScatterSetMaps { + keen::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference forest; // Offset: 4 + keen::ObjectReference forestScatterImage; // Offset: 20 + keen::ObjectReference forestCompositeScatterImage; // Offset: 36 +}; + +struct ScatterSet3 { + keen::ScatterSetMaps maps; // Offset: 0 +}; + +struct ScatterSetObject { + keen::ObjectReference model; // Offset: 0 + keen::ecs::TemplateResourceReference entity; // Offset: 16 + keen::ScatterSetRule rule; // Offset: 32 + keen::uint32 mapIndex; // Offset: 36 + keen::uint32 footprint; // Offset: 40 + keen::float32 probability; // Offset: 44 + keen::FloatRange scale; // Offset: 48 + keen::FloatRange yaw; // Offset: 56 + keen::FloatRange pitch; // Offset: 64 + keen::ScatterNodeFlags flags; // Offset: 72 + keen::Biome biome; // Offset: 73 + keen::ScatterLocation location; // Offset: 74 + keen::ScatterResolution resolution; // Offset: 75 + keen::BlobString name; // Offset: 76 +}; + +struct ScatterSetMapInfo { + keen::uint2 size; // Offset: 0 + keen::ContentHash hash; // Offset: 8 + keen::BlobString name; // Offset: 24 + keen::BlobString bauPath; // Offset: 32 +}; + +struct ScatterSetImageData { + keen::uint2 imageSize; // Offset: 0 + keen::uint2 position; // Offset: 8 + keen::uint2 size; // Offset: 16 + keen::bool wrap; // Offset: 24 + keen::ContentHash hash; // Offset: 28 + keen::BlobString name; // Offset: 44 + keen::BlobString bauPath; // Offset: 52 + keen::Guid scatterImage; // Offset: 60 +}; + +struct ScatterSetLocationObjects { + keen::BlobArray objects; // Offset: 0 +}; + +struct ScatterSetResolutionObjects { + keen::StaticArray locations; // Offset: 0 +}; + +struct ScatterSet3Resource { + keen::BlobArray maps; // Offset: 0 + keen::StaticArray resolutions; // Offset: 8 + keen::BlobArray objects; // Offset: 128 +}; + +typedef keen::ObjectReference ScatterSet3ResourceReference; + +enum class composite_scatter_image.CompositeOperation { + Multiply = 0, + InverseMultiply = 1, + Min = 2, + Max = 3, + Add = 4, + Sub = 5, +}; + +enum class composite_scatter_image.InputType { + ScatterImage = 0, + CompositeScatterImage = 1, + Value = 2, +}; + +enum class composite_scatter_image.InputOperation { + None = 0, + Invert = 1, + RangeToMask = 2, +}; + +struct composite_scatter_image.Input { + keen::composite_scatter_image::InputType type; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::float32 value; // Offset: 36 + keen::composite_scatter_image::InputOperation inputOperation; // Offset: 40 + keen::float32 inputToMaskMin; // Offset: 44 + keen::float32 inputToMaskMax; // Offset: 48 + keen::composite_scatter_image::CompositeOperation operation; // Offset: 52 +}; + +struct CompositeScatterImage { + keen::uint32 upscaleFactor; // Offset: 0 + keen::StaticArray inputs; // Offset: 4 + keen::float32 remapSourceFrom; // Offset: 340 + keen::float32 remapSourceTo; // Offset: 344 + keen::float32 outputLevelsFrom; // Offset: 348 + keen::float32 outputLevelsTo; // Offset: 352 +}; + +struct TestCompositeScatterImage { + keen::ObjectReference testObjectReference; // Offset: 0 +}; + +struct DungeonTriggerConfiguration { +}; + +struct DungeonTriggerSetup { + keen::BlobString identifier; // Offset: 0 + keen::Color color; // Offset: 8 +}; + +struct DungeonTriggerSlot { + keen::BlobString identifier; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 8 +}; + +struct DungeonTriggerInput { +}; + +struct DungeonTriggerOutput { + keen::bool sendActivateEvent; // Offset: 12 + keen::bool sendDeactivateEvent; // Offset: 13 + keen::bool sendResultSignal; // Offset: 14 +}; + +struct DungeonTriggerInfo { + keen::Color color; // Offset: 0 + keen::BlobArray inputs; // Offset: 4 + keen::BlobArray outputs; // Offset: 12 +}; + +typedef keen::DungeonTriggerInfo EntityTriggerInfo; + +struct DungeonTriggerGraph { +}; + +struct DungeonTriggerGraphNode { + keen::Vector2 position; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 8 +}; + +struct DungeonTriggerGraphNodeEndPoint { + keen::ObjectReference trigger; // Offset: 24 + keen::ObjectReference scene; // Offset: 40 + keen::ObjectReference room; // Offset: 56 +}; + +enum class DungeonLogicOperator { + Invalid = 0, + And = 1, + Or = 2, + Not = 3, +}; + +struct DungeonTriggerSettingsNode { +}; + +struct DungeonTriggerGraphNodeDungeonLogic { +}; + +struct DungeonTriggerGraphNodeBool { + keen::bool value; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeAnd { + keen::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeOr { + keen::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeNot { + keen::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeDelay { + keen::Time duration; // Offset: 24 + keen::DelayMask filter; // Offset: 32 +}; + +struct DungeonTriggerGraphNodeSender { +}; + +struct DungeonTriggerGraphNodeReceiver { +}; + +struct DungeonTriggerGraphNodeWhitebox { +}; + +struct DungeonTriggerGraphLink { + keen::ObjectReference startNode; // Offset: 0 + keen::ObjectReference endNode; // Offset: 16 + keen::HashKey32 startSlot; // Offset: 32 + keen::HashKey32 endSlot; // Offset: 36 + keen::uint8 startIndex; // Offset: 40 + keen::uint8 endIndex; // Offset: 41 + keen::bool sendActivateEvent; // Offset: 42 + keen::bool sendDeactivateEvent; // Offset: 43 + keen::bool sendResultSignal; // Offset: 44 +}; + +struct PrefabTriggerInfo { + keen::Guid triggerEntityGuid; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 16 +}; + +struct PrefabContainmentSet { + keen::BlobArray triggerTypes; // Offset: 0 +}; + +struct PrefabTriggerSlotType { + keen::HashKey32 slotTypeId; // Offset: 0 + keen::bool isInput; // Offset: 4 + keen::Color uiColor; // Offset: 8 + keen::string identifier; // Offset: 12 + keen::bool sendActivateEvent; // Offset: 20 + keen::bool sendDeactivateEvent; // Offset: 21 + keen::bool sendResultSignal; // Offset: 22 +}; + +struct PrefabContainment { + keen::Guid prefabId; // Offset: 0 + keen::BlobArray triggerGuids; // Offset: 16 + keen::BlobArray slotDefinitions; // Offset: 24 + keen::BlobArray containmentVariations; // Offset: 32 +}; + +struct WhiteboxContainment { + keen::BlobArray slotDefinitions; // Offset: 0 + keen::BlobArray containmentVariations; // Offset: 8 +}; + +enum class WhiteboxTriggerFlags { + Invalid = 0, + Settings = 1, + Sender = 2, + Receiver = 3, +}; + +typedef keen::Bitmask8 WhiteboxTriggerMask; + +struct WhiteboxTriggerSetup { + keen::string triggerFormula; // Offset: 0 + keen::Time triggerDelay; // Offset: 8 + keen::DelayMask triggerDelayMask; // Offset: 16 + keen::StaticArray triggerIds; // Offset: 20 + keen::HashKey32 triggerSlot; // Offset: 84 + keen::WhiteboxTriggerMask triggerMask; // Offset: 88 + keen::uint8 triggerIndex; // Offset: 89 + keen::bool sendActivateEvent; // Offset: 90 + keen::bool sendDeactivateEvent; // Offset: 91 + keen::bool sendResultSignal; // Offset: 92 + keen::bool initialState; // Offset: 93 +}; + +struct WhiteboxTriggerInfo { + keen::Guid triggerObjectInstanceId; // Offset: 96 +}; + +struct DungeonTrigger { + keen::BlobString identifier; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 + keen::Guid roomSceneId; // Offset: 64 + keen::Guid roomInstanceId; // Offset: 80 + keen::Guid whiteboxInstanceId; // Offset: 96 + keen::BlobArray containmentVariations; // Offset: 112 + keen::AxisAlignedBox boundingBox; // Offset: 128 +}; + +struct RoomTriggerList { + keen::Guid dungeonTriggerGraphId; // Offset: 0 + keen::BlobArray slotDefinitions; // Offset: 16 + keen::BlobArray trigger; // Offset: 24 +}; + +struct DungeonTriggerWhitebox { + keen::Guid id; // Offset: 0 + keen::BlobArray setups; // Offset: 16 +}; + +struct DungeonTriggerRoom { + keen::Guid id; // Offset: 0 + keen::BlobArray whiteboxes; // Offset: 16 +}; + +struct DungeonTriggers { + keen::BlobArray rooms; // Offset: 0 +}; + +struct EntityAnimationPath { + keen::AttachmentSlot slot; // Offset: 0 + keen::Time length; // Offset: 8 +}; + +struct EntityAnimationPathPoint { + keen::float3 offset; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::bool enableConstantRotationX; // Offset: 28 + keen::float constantRotationX; // Offset: 32 + keen::bool enableConstantRotationY; // Offset: 36 + keen::float constantRotationY; // Offset: 40 + keen::bool enableConstantRotationZ; // Offset: 44 + keen::float constantRotationZ; // Offset: 48 +}; + +struct SceneTemplate { +}; + +struct SceneWaterTemplate { +}; + +struct VfxUserEffectParameterDataBlockIncludeDummy0 { + keen::VfxUserEffectParameterDataBlock dummy; // Offset: 0 +}; + +struct SceneModel { + keen::ObjectReference model; // Offset: 64 + keen::ObjectReference clothCollider; // Offset: 80 + keen::Color color; // Offset: 96 +}; + +struct EntitySpawnDefinition { + keen::ecs::TemplateReference templateReference; // Offset: 0 + keen::ObjectReference model; // Offset: 16 + keen::Color color; // Offset: 32 +}; + +struct TemplatePreviewSubEntity { + keen::Guid templateId; // Offset: 0 + keen::BlobArray> models; // Offset: 16 + keen::ecs::Offset offset; // Offset: 24 + keen::AttachmentSlot slot; // Offset: 64 +}; + +struct TemplatePreviewVfx { + keen::ObjectReference vfx; // Offset: 0 + keen::ecs::Offset offset; // Offset: 16 + keen::AttachmentSlot slot; // Offset: 56 + keen::BlobOptional initParameters; // Offset: 60 +}; + +struct TemplatePreviewPart { + keen::ObjectReference model; // Offset: 0 + keen::ColorCombination paletteColors; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::BlobArray blendShapes; // Offset: 80 +}; + +struct TemplatePreview { + keen::BlobArray parts; // Offset: 0 + keen::ObjectReference spawnedEntity; // Offset: 8 + keen::TemplatePreviewVfx vfx; // Offset: 24 + keen::BlobArray subEntities; // Offset: 88 + keen::AttachmentSlotMask subEntityAttachmentMask; // Offset: 96 + keen::ObjectReference animationGraph; // Offset: 100 + keen::StaticArray slotJointIndexMapping; // Offset: 116 + keen::Guid hierarchyId; // Offset: 144 + keen::ecs::ColliderDataArray allColliders; // Offset: 160 + keen::float scale; // Offset: 168 +}; + +struct TemplateInfo { + keen::BlobString description; // Offset: 0 + keen::bool isPlayerSpawn; // Offset: 8 + keen::bool isMapMarker; // Offset: 9 + keen::bool isFakePlayerSpawner; // Offset: 10 + keen::bool isContainer; // Offset: 11 + keen::bool isActor; // Offset: 12 + keen::bool isAutomatedPlayer; // Offset: 13 + keen::bool isSkinned; // Offset: 14 + keen::bool doNotSave; // Offset: 15 + keen::bool questEntity; // Offset: 16 + keen::bool isNpc; // Offset: 17 + keen::bool isCraftingAssistant; // Offset: 18 + keen::LocaTagId nameLocaId; // Offset: 20 + keen::UiNpcRenderingOptions npcRenderingOptions; // Offset: 24 + keen::WorkshopId workshopId; // Offset: 76 + keen::LocaTagId workshopLabel; // Offset: 80 + keen::CharacterPresetReference characterPresetReference; // Offset: 84 + keen::ItemReference placementItem; // Offset: 100 + keen::GameKnowledgeRequirement knowledgeRequirement; // Offset: 116 + keen::uint32 containerSlotCount; // Offset: 220 + keen::ObjectReference floorMaterial; // Offset: 224 + keen::float32 floorMaterialRadius; // Offset: 240 + keen::FloorMaterialShape floorMaterialShape; // Offset: 244 + keen::float32 floorMaterialNoiseStrength; // Offset: 248 + keen::ObjectReference fallbackModel; // Offset: 252 +}; + +struct TemplateInfoCollection { + keen::BlobArray templateGuids; // Offset: 0 + keen::BlobArray templateInfos; // Offset: 8 + keen::BlobArray templateBBoxes; // Offset: 16 +}; + +struct TemplateSubentityIds { + keen::BlobArray subentityTemplateGuids; // Offset: 0 +}; + +struct SceneEntitySpawn { + keen::ObjectReference entitySpawnDefinition; // Offset: 64 + keen::ObjectReference templateReference; // Offset: 80 + keen::ContentHash templatePreviewContentHash; // Offset: 96 + keen::SceneEntitySpawnData spawnData; // Offset: 112 + keen::bool storeSceneId; // Offset: 340 + keen::bool snapToGround; // Offset: 341 + keen::bool enableFloorMaterial; // Offset: 342 +}; + +struct EntitySpawnInfo { + keen::KnowledgeId unlockKnowledge; // Offset: 0 + keen::BlobArray subEntityKnowledgeQueries; // Offset: 4 + keen::BlobArray triggerKnowledgeIds; // Offset: 12 + keen::HashKey32 uiWorldEventId; // Offset: 20 + keen::Guid knowledgeQuery; // Offset: 24 + keen::LootContainerId lootContainerId; // Offset: 40 + keen::FogRemovalId fogRemovalId; // Offset: 44 + keen::JointAnimationReference entityAnimation; // Offset: 48 + keen::AttachmentSlotMask entityAnimationSlotMask; // Offset: 64 +}; + +struct SceneVoxelObject { + keen::ObjectReference voxelModel; // Offset: 64 + keen::bool isWeathered; // Offset: 80 + keen::Color color; // Offset: 84 +}; + +enum class VoxelBlitFunction { + Default = 0, + KeepBuildings = 1, + Water = 2, + DestructionVoxels = 3, +}; + +struct SceneVoxelBrush { + keen::ObjectReference model; // Offset: 64 + keen::Color color; // Offset: 80 + keen::VoxelMaterialReference material; // Offset: 84 + keen::bool disableDisplacement; // Offset: 100 + keen::bool resolveBiomePerVoxel; // Offset: 101 + keen::bool paintMaterialOnly; // Offset: 102 + keen::VoxelBlitFunction blitFunction; // Offset: 103 + keen::bool allowNonManifold; // Offset: 104 + keen::ObjectReference removableFogId; // Offset: 108 + keen::bool addDestructionEdge; // Offset: 124 +}; + +struct SceneBlockOutBrushPoint { + keen::float32 height; // Offset: 64 + keen::float2 offset; // Offset: 68 + keen::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 76 +}; + +struct SceneBlockOutBrush { + keen::VoxelMaterialReference material; // Offset: 64 + keen::Color color; // Offset: 80 + keen::bool enableTopDisplacement; // Offset: 84 + keen::bool enableTopBrushScattering; // Offset: 85 + keen::bool negativeVoxels; // Offset: 86 + keen::bool ignoreDisplacementBlockers; // Offset: 87 + keen::bool resolveBiomePerVoxel; // Offset: 88 + keen::ObjectReference scattering; // Offset: 92 + keen::ObjectReference removableFogId; // Offset: 108 +}; + +struct BlockOutBrushScatteringDefinition { +}; + +struct BlockOutBrushScatteringPointModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::FloatRange heightRange; // Offset: 24 + keen::float32 randomYRotation; // Offset: 32 + keen::float32 nonUniformScaling; // Offset: 36 + keen::float32 shearFactor; // Offset: 40 +}; + +struct BlockOutBrushScatteringPoint { + keen::BlobArray models; // Offset: 0 +}; + +struct BlockOutBrushScatteringLowerEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringLowEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringUpperEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringUpperEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringWallModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 maxOverhangY; // Offset: 24 + keen::float32 randomYRotation; // Offset: 28 +}; + +struct BlockOutBrushScatteringWall { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringTopModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange randomScale; // Offset: 28 +}; + +struct BlockOutBrushScatteringTop { + keen::float32 modelsPerMeter; // Offset: 0 + keen::BlobArray models; // Offset: 4 +}; + +struct BlockOutBrushScatteringDefinitionConverterData { + keen::Guid id; // Offset: 0 + keen::BlobArray points; // Offset: 16 + keen::BlobArray lowerEdges; // Offset: 24 + keen::BlobArray upperEdges; // Offset: 32 + keen::BlobArray walls; // Offset: 40 + keen::BlobArray tops; // Offset: 48 +}; + +struct BlockOutBrushScatteringDefinitionConverterDependencies { + keen::Guid id; // Offset: 0 + keen::BlobArray models; // Offset: 16 +}; + +struct SceneVoxelMultiBrush { + keen::BlobArray brushes; // Offset: 64 +}; + +enum class DestructionBubbleMode { + SetWeatheredFlag = 0, + ClearWeatheredFlag = 1, + Destruction = 2, + DestructionNoEntities = 3, +}; + +struct SceneDestructionBubble { + keen::ObjectReference model; // Offset: 64 + keen::DestructionBubbleMode mode; // Offset: 80 + keen::bool dontDestroyEntities; // Offset: 81 + keen::float32 density; // Offset: 84 +}; + +enum class SceneSurfaceMaterialBubbleMode { + UnderRoads = 0, + CoverRoads = 1, +}; + +struct SceneSurfaceMaterialBubble { + keen::ObjectReference model; // Offset: 64 + keen::VoxelMaterialReference material; // Offset: 80 + keen::uint depth; // Offset: 96 + keen::uint height; // Offset: 100 + keen::bool shelteredByTerrain; // Offset: 104 + keen::SceneSurfaceMaterialBubbleMode mode; // Offset: 105 +}; + +struct SceneCurvePoint { +}; + +struct SceneCurve { +}; + +struct SceneRoadPoint { + keen::float32 widthScale; // Offset: 64 +}; + +struct RoadDefinition { + keen::float32 width; // Offset: 0 + keen::bool snapToGround; // Offset: 4 + keen::float32 snapStepSize; // Offset: 8 + keen::float32 snapAllowedError; // Offset: 12 + keen::float32 snapMaxSlopeChange; // Offset: 16 + keen::ObjectReference roadShape; // Offset: 20 + keen::VoxelMaterialReference surfaceMaterial; // Offset: 36 + keen::VoxelMaterialReference groundMaterial; // Offset: 52 + keen::float32 distributionNoise; // Offset: 68 + keen::float32 edgeNoiseWidth; // Offset: 72 + keen::float32 edgeNoiseScale; // Offset: 76 + keen::float32 edgeNoisePersistance; // Offset: 80 +}; + +struct SceneRoad { + keen::ObjectReference definition; // Offset: 64 + keen::bool snapToOtherRoads; // Offset: 80 +}; + +enum class CaveVoxelMode { + NegativeWithShell = 0, + NegativeOnly = 1, + Lake = 2, + NegativeWithMaterialOverride = 3, + LakeWithMaterialOverride = 4, +}; + +struct SceneDungeonCaveCurvePoint { +}; + +struct SceneDungeonCaveCurve { + keen::CaveVoxelMode mode; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneTunnelPoint { +}; + +struct SceneTunnel { + keen::float32 width; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneScatterBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 +}; + +enum class DisplacementBlockerMode { + SetToZero = 0, + SetToBlockerHeight = 1, +}; + +struct SceneDisplacementBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 + keen::float32 innerDisplacementFactor; // Offset: 72 + keen::DisplacementBlockerMode mode; // Offset: 76 + keen::bool affectFog; // Offset: 77 +}; + +struct SceneVfx { + keen::ObjectReference effect; // Offset: 64 + keen::HdrColorRgb color; // Offset: 80 + keen::float4 param0; // Offset: 96 + keen::float4 param1; // Offset: 112 + keen::float4 param2; // Offset: 128 + keen::float4 param3; // Offset: 144 + keen::float32 duration; // Offset: 160 + keen::float3 targetPosition; // Offset: 164 + keen::Time startTime; // Offset: 176 + keen::bool isActive; // Offset: 184 +}; + +struct SceneSound { + keen::SoundContainerReference soundContainer; // Offset: 64 + keen::float32 activeRange; // Offset: 80 +}; + +struct SceneInstance { + keen::ObjectReference scene; // Offset: 64 + keen::bool connectToRoad; // Offset: 80 + keen::sint32 spawnLevelOffset; // Offset: 84 + keen::HashKey32 whiteboxSeed; // Offset: 88 +}; + +struct SceneGroup { + keen::bool isLocked; // Offset: 0 +}; + +struct SceneRoadAttachmentPoint { + keen::ObjectReference roadDefinition; // Offset: 64 +}; + +struct SceneScatterImage { + keen::ObjectReference scatterImage; // Offset: 64 +}; + +struct SceneScatterOrigin { + keen::float32 distributionRadius; // Offset: 64 +}; + +enum class SceneAreaFlag { + BigDungeon = 0, +}; + +typedef keen::Bitmask8 SceneAreaFlagMask; + +struct ScenePlayableArea { + keen::float3 size; // Offset: 64 + keen::SceneAreaFlagMask flags; // Offset: 76 + keen::LocaTagReference mapMarkerId; // Offset: 80 +}; + +struct SceneCinematicTimelineEvent { +}; + +struct SceneCinematicCameraSmoothing { + keen::bool enableSmoothing; // Offset: 0 + keen::float lerpSpeed; // Offset: 4 +}; + +struct SceneCinematicTimeLineAnimationEvent { + keen::AnimationReference animation; // Offset: 96 + keen::ObjectReference modelObject; // Offset: 112 +}; + +struct SceneCinematicTimeLineModelAnimationEvent { +}; + +struct SceneCinematicTimeLineCameraAnimationEvent { + keen::Angle fovY; // Offset: 128 +}; + +struct SceneCinematicTimeLineCameraEvent { + keen::SceneCamera key; // Offset: 96 + keen::SceneCamera nextKey; // Offset: 200 + keen::Guid id; // Offset: 304 + keen::SceneCinematicCameraSmoothing smoothing; // Offset: 320 + keen::float lerpSpeed; // Offset: 328 + keen::float nextLerpSpeed; // Offset: 332 +}; + +struct SceneCinematicTimelineEventMaterializeVoxelObject { + keen::ObjectReference voxelObject; // Offset: 96 + keen::SceneVoxelObject voxelData; // Offset: 112 +}; + +struct SequenceTrack { + keen::Time loopStart; // Offset: 0 + keen::Time loopEnd; // Offset: 8 + keen::bool loop; // Offset: 16 +}; + +struct SceneCinematicTimelineTrack { +}; + +struct SceneCinematicTimelineCameraTrack { +}; + +struct SceneCinematicTimeline { +}; + +struct SceneCinematic { + keen::ObjectReference timeline; // Offset: 4 +}; + +struct CinematicDynamicModelObject { + keen::Guid objectGuid; // Offset: 0 + keen::SceneModel sceneModel; // Offset: 16 +}; + +struct CinematicSequenceResource { + keen::BlobArray dynamicModelObjects; // Offset: 32 +}; + +struct SceneCinematicList { + keen::BlobArray cinematics; // Offset: 0 +}; + +struct SceneModelTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneVoxelObjectTemplate { + keen::ObjectReference defaultVoxelModel; // Offset: 0 +}; + +struct SceneVoxelBrushTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneDestructionBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneSurfaceMaterialBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 + keen::VoxelMaterialReference defaultMaterial; // Offset: 16 +}; + +struct SceneVoxelMultiBrushTemplate { +}; + +struct SceneEntitySpawnTemplate { + keen::ObjectReference defaultEntityTemplate; // Offset: 0 +}; + +struct SceneVfxTemplate { + keen::ObjectReference defaultEffect; // Offset: 0 +}; + +struct SceneWhiteboxTemplate { + keen::ObjectReference defaultWhitebox; // Offset: 0 +}; + +struct SceneRoadTemplate { +}; + +struct SceneScatterBlockerTemplate { +}; + +struct SceneDisplacementBlockerTemplate { +}; + +struct SceneSoundTemplate { +}; + +struct SceneCameraTemplate { +}; + +struct SceneInstanceTemplate { + keen::ObjectReference defaultScene; // Offset: 0 +}; + +struct DungeonInstanceTemplate { + keen::ObjectReference defaultDungeon; // Offset: 0 +}; + +struct DungeonRoomInstanceTemplate { + keen::ObjectReference defaultDungeonRoom; // Offset: 0 +}; + +struct SceneRoadAttachmentPointTemplate { +}; + +struct SceneScatterOriginTemplate { +}; + +struct ScenePlayableAreaTemplate { +}; + +struct SceneScatterEntity { + keen::WorldTransform transform; // Offset: 0 + keen::uint16 index; // Offset: 56 +}; + +struct SceneScatterChunkDataEntity { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneScatterChunkData { + keen::BlobArray templateEntities; // Offset: 0 + keen::BlobArray modelEntities; // Offset: 8 +}; + +struct SpawnTemplateModel { + keen::Guid templateGuid; // Offset: 0 + keen::BlobArray modelsGuid; // Offset: 16 +}; + +struct SpawnTemplateModels { + keen::BlobArray templateModels; // Offset: 0 + keen::uint32 templateCount; // Offset: 8 +}; + +struct SpawnTemplateGuids { + keen::BlobArray templateGuids; // Offset: 0 + keen::uint32 templateCount; // Offset: 8 +}; + +struct SceneScatterResource { + keen::ScatterSet3ResourceReference scatterSet; // Offset: 0 + keen::uint2 scatterStart; // Offset: 16 + keen::uint2 scatterSize; // Offset: 24 + keen::BlobArray templates; // Offset: 32 + keen::BlobArray models; // Offset: 40 + keen::BlobArray templateGuids; // Offset: 48 + keen::BlobArray modelGuids; // Offset: 56 + keen::BlobArray templateNames; // Offset: 64 + keen::BlobArray modelNames; // Offset: 72 + keen::SpawnTemplateModels spawnTemplateModels; // Offset: 80 + keen::uint2 debugMapSize; // Offset: 92 + keen::BlobArray debugMapNames; // Offset: 100 + keen::BlobArray debugMaps; // Offset: 108 +}; + +typedef keen::ObjectReference SceneScatterResourceReference; + +struct SceneScatterChunkResource { + keen::BlobArray templates; // Offset: 0 + keen::BlobArray models; // Offset: 8 + keen::BlobArray templateGuids; // Offset: 16 + keen::BlobArray modelGuids; // Offset: 24 + keen::BlobArray templateNames; // Offset: 32 + keen::BlobArray modelNames; // Offset: 40 +}; + +struct ScenePlayableAreaBox { + keen::WorldPosition areaMin; // Offset: 0 + keen::WorldPosition areaMax; // Offset: 24 + keen::SceneAreaFlagMask flags; // Offset: 48 + keen::LocaTagId mapMarkerId; // Offset: 52 +}; + +struct SceneProceduralLayer { + keen::ContentPass contentPass; // Offset: 0 + keen::ObjectReference scatterSet; // Offset: 4 + keen::WorldDistributionTypeFlags distributionTypeMask; // Offset: 20 + keen::SourceDataReference content; // Offset: 24 + keen::SourceDataReference contentTags; // Offset: 40 + keen::bool connectManualSubscenesToRoad; // Offset: 56 +}; + +enum class SceneObjectType { + Model = 0, + PointLight = 1, + Camera = 2, + EntitySpawn = 3, + VoxelObject = 4, + VoxelBrush = 5, + VoxelMultiBrush = 6, + Vfx = 7, + Sound = 8, + Road = 9, + RoadPoint = 10, + ScatterBlocker = 11, + DisplacementBlocker = 12, + SceneInstance = 13, + ProceduralLayer = 14, + RoadAttachmentPoint = 15, + ScatterOrigin = 16, + PlayableArea = 17, + Group = 18, + Whitebox = 19, + CaveCurve = 20, + CaveCurvePoint = 21, + DestructionBubble = 22, + SurfaceMaterialBubble = 23, + Tunnel = 24, + TunnelPoint = 25, + BlockOutBrush = 26, + Sun = 27, +}; + +typedef keen::Bitmask32 SceneObjectTypeMask; + +struct SceneTreeNode { + keen::SceneObjectType type; // Offset: 0 + keen::uint32 typeIndex; // Offset: 4 + keen::uint32 childStart; // Offset: 8 + keen::uint32 childCount; // Offset: 12 +}; + +struct SceneDistributionDebugData { + keen::Vector3 position; // Offset: 0 + keen::Guid objectId; // Offset: 16 + keen::float32 radius; // Offset: 32 + keen::float32 minDistance; // Offset: 36 +}; + +struct SceneDistributionTag { + keen::WhiteboxTagInfo tagInfo; // Offset: 0 + keen::uint32 sceneIndex; // Offset: 48 +}; + +struct DistributionLootInfo { + keen::Guid scatterSetId; // Offset: 0 + keen::uint32 objectIndex; // Offset: 16 +}; + +struct SceneContent { + keen::BlobArray models; // Offset: 0 + keen::BlobArray pointLights; // Offset: 8 + keen::BlobArray cameras; // Offset: 16 + keen::BlobArray spawns; // Offset: 24 + keen::BlobArray voxelObjects; // Offset: 32 + keen::BlobArray voxelBrushes; // Offset: 40 + keen::BlobArray destructionBubbles; // Offset: 48 + keen::BlobArray surfaceMaterialBubbles; // Offset: 56 + keen::BlobArray vfxs; // Offset: 64 + keen::BlobArray sounds; // Offset: 72 + keen::BlobArray roads; // Offset: 80 + keen::BlobArray pendingRoads; // Offset: 88 + keen::BlobArray caves; // Offset: 96 + keen::BlobArray tunnels; // Offset: 104 + keen::BlobArray blockOuts; // Offset: 112 + keen::BlobArray scatterBlockers; // Offset: 120 + keen::BlobArray displacementBlockers; // Offset: 128 + keen::BlobArray instances; // Offset: 136 + keen::BlobArray resolvedInstances; // Offset: 144 + keen::BlobArray dungeonRoomInstances; // Offset: 152 + keen::BlobArray playableAreas; // Offset: 160 + keen::BlobArray proceduralLayers; // Offset: 168 + keen::BlobArray distributionTags; // Offset: 176 + keen::BlobArray spawnLootInfos; // Offset: 184 + keen::BlobArray sceneLootInfos; // Offset: 192 + keen::BlobArray distributionDebugData; // Offset: 200 + keen::bool isDebugDataDirty; // Offset: 208 +}; + +struct SceneContentPasses { + keen::BlobArray passes; // Offset: 0 +}; + +struct SceneDestructionBubbles { + keen::BlobArray bubbles; // Offset: 0 +}; + +struct SceneRuntimeContent { + keen::BlobArray models; // Offset: 0 + keen::BlobArray pointLights; // Offset: 8 + keen::BlobArray cameras; // Offset: 16 + keen::BlobArray spawns; // Offset: 24 + keen::BlobArray vfxs; // Offset: 32 + keen::BlobArray sounds; // Offset: 40 + keen::BlobArray scatterBlockers; // Offset: 48 + keen::BlobArray instances; // Offset: 56 + keen::BlobArray playableAreas; // Offset: 64 + keen::BlobArray proceduralLayers; // Offset: 72 +}; + +struct SceneVoxelContent { + keen::BlobArray passes; // Offset: 0 + keen::BlobArray destructionBubbles; // Offset: 8 + keen::BlobArray surfaceMaterialBubbles; // Offset: 16 + keen::BlobArray nonConnectingRoads; // Offset: 24 + keen::BlobArray displacementBlockers; // Offset: 32 +}; + +struct SceneCombinedContent { + keen::SceneRuntimeContent runtime; // Offset: 0 + keen::SceneVoxelContent voxel; // Offset: 80 +}; + +struct ContentPassIndex { + keen::uint64 indexPath; // Offset: 0 + keen::uint32 depth; // Offset: 8 +}; + +struct SceneVoxelContentPass { + keen::ContentPassIndex passIndex; // Offset: 0 + keen::BlobArray blockOuts; // Offset: 16 + keen::BlobArray voxelObjects; // Offset: 24 + keen::BlobArray voxelBrushes; // Offset: 32 + keen::BlobArray caves; // Offset: 40 + keen::BlobArray tunnels; // Offset: 48 + keen::BlobArray roads; // Offset: 56 + keen::BlobArray instances; // Offset: 64 + keen::BlobArray dungeonRoomInstances; // Offset: 72 + keen::BlobArray proceduralLayers; // Offset: 80 +}; + +struct SceneContentRoads { + keen::BlobArray roads; // Offset: 0 +}; + +struct SceneRoadAttachment { + keen::Vector3 position; // Offset: 0 + keen::Guid definitionGuid; // Offset: 16 + keen::RoadDefinition definition; // Offset: 32 +}; + +struct SceneAttachments { + keen::BlobArray roadAttachments; // Offset: 0 +}; + +struct SceneLightResource { + keen::WorldTransform transform; // Offset: 0 + keen::RenderLight light; // Offset: 56 +}; + +struct SceneContentRoadPoint { + keen::WorldPosition position; // Offset: 0 + keen::float32 width; // Offset: 24 +}; + +struct SceneContentRoad { + keen::Guid definition; // Offset: 0 + keen::BlobArray points; // Offset: 16 + keen::ContentPass contentPass; // Offset: 24 + keen::bool snapToOtherRoads; // Offset: 25 +}; + +struct SceneContentBlockOut { + keen::Guid objectGuid; // Offset: 0 + keen::WorldTransform transform; // Offset: 16 + keen::BlobArray points; // Offset: 72 + keen::VoxelMaterialReference material; // Offset: 80 + keen::bool enableTopDisplacement; // Offset: 96 + keen::bool enableTopBrushScattering; // Offset: 97 + keen::bool negativeVoxels; // Offset: 98 + keen::bool ignoreDisplacementBlockers; // Offset: 99 + keen::bool resolveBiomePerVoxel; // Offset: 100 + keen::ObjectReference scattering; // Offset: 104 + keen::ObjectReference removableFogId; // Offset: 120 +}; + +struct SceneContentCaveCurvePoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentCaveCurve { + keen::WorldTransform transform; // Offset: 0 + keen::float32 height; // Offset: 56 + keen::CaveVoxelMode mode; // Offset: 60 + keen::VoxelMaterialReference material; // Offset: 64 + keen::BlobArray points; // Offset: 80 +}; + +struct SceneContentTunnelPoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentTunnel { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::VoxelMaterialReference material; // Offset: 8 + keen::BlobArray points; // Offset: 24 +}; + +struct SceneEntitySpawnResource { + keen::WorldTransform transform; // Offset: 0 + keen::ecs::TemplateReference templateReference; // Offset: 56 + keen::SceneEntitySpawnData spawnData; // Offset: 72 + keen::BlobArray> components; // Offset: 300 + keen::bool snapToGround; // Offset: 308 + keen::bool enableFloorMaterial; // Offset: 309 +}; + +struct SceneContentInstance { + keen::WorldTransform transform; // Offset: 0 + keen::Guid instanceGuid; // Offset: 56 + keen::Guid sceneGuid; // Offset: 72 + keen::bool connectToRoad; // Offset: 88 + keen::sint32 spawnLevelOffset; // Offset: 92 +}; + +struct SceneNoBuildZone { + keen::WorldPosition worldBoxMin; // Offset: 0 + keen::WorldPosition worldBoxMax; // Offset: 24 + keen::AmbientEnvironment ambience; // Offset: 48 +}; + +struct SceneQuestEntity { + keen::WorldTransform transform; // Offset: 0 + keen::Guid templateGuid; // Offset: 56 +}; + +struct SceneResource { + keen::ObjectReference ibl; // Offset: 0 + keen::float32 iblIntensity; // Offset: 16 + keen::BlobOptional atmosphereParameters; // Offset: 20 + keen::BlobArray nodes; // Offset: 24 + keen::BlobArray models; // Offset: 32 + keen::BlobArray lights; // Offset: 40 + keen::BlobArray cameras; // Offset: 48 + keen::BlobArray vfxs; // Offset: 56 + keen::BlobArray sounds; // Offset: 64 + keen::BlobArray noBuildZones; // Offset: 72 + keen::BlobArray questEntities; // Offset: 80 + keen::uint2 entityChunkCount; // Offset: 88 + keen::uint32 moveVersion; // Offset: 96 + keen::SceneScatterResourceReference scatterResource; // Offset: 100 + keen::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 116 +}; + +struct SceneEntityChunkResource { + keen::BlobArray templates; // Offset: 0 + keen::BlobArray templatesDoNotSave; // Offset: 8 + keen::BlobArray> models; // Offset: 16 + keen::BlobArray entities; // Offset: 24 + keen::BlobArray entityExtraData; // Offset: 32 +}; + +struct SceneEntityExtraData { + keen::SceneEntitySpawnData spawnData; // Offset: 0 + keen::BlobArray> components; // Offset: 228 + keen::bool enableFloorMaterial; // Offset: 236 +}; + +struct SceneEntityChunkSpawn { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneEntityChunkTemplateInfo { + keen::Guid templateId; // Offset: 0 + keen::BlobOptional boundingBox; // Offset: 16 + keen::ObjectReference fallbackModel; // Offset: 20 + keen::ObjectReference floorMaterial; // Offset: 36 + keen::float32 floorMaterialRadius; // Offset: 52 + keen::float32 floorMaterialNoiseStrength; // Offset: 56 + keen::FloorMaterialShape floorMaterialShape; // Offset: 60 + keen::bool doNotSave; // Offset: 61 + keen::bool isSkinned; // Offset: 62 +}; + +struct SceneEntityChunkTemplateInfos { + keen::BlobArray infos; // Offset: 0 +}; + +struct SceneScatterBlockerChunk { + keen::BlobArray scatterBlockers; // Offset: 0 +}; + +struct SceneFloorMaterialInstance { + keen::WorldPosition position; // Offset: 0 + keen::float32 radius; // Offset: 24 + keen::ObjectReference material; // Offset: 28 + keen::FloorMaterialShape shape; // Offset: 44 + keen::float32 noiseStrength; // Offset: 48 +}; + +struct SceneFloorMaterialChunk { + keen::BlobArray instances; // Offset: 0 +}; + +typedef keen::ObjectReference SceneResourceReference; + +struct SceneInfo { + keen::float3 pivot; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 16 + keen::bool hasBuildingVoxels; // Offset: 17 +}; + +struct SceneBoundingBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 + keen::float3 pivot; // Offset: 24 +}; + +struct ScatterImageAlias { + keen::Guid target; // Offset: 0 + keen::Guid replacement; // Offset: 16 +}; + +struct ScatterImageAliases { + keen::BlobArray aliases; // Offset: 0 +}; + +struct ScenePreview { + keen::BlobArray modelIds; // Offset: 0 + keen::BlobArray transforms; // Offset: 8 + keen::SceneObjectTypeMask objectTypes; // Offset: 16 +}; + +struct SceneConverterConfig { + keen::bool validateNonTestScenes; // Offset: 0 +}; + +struct BenchmarkPointDebugContent { + keen::Guid guid; // Offset: 0 + keen::WorldTransform worldTransform; // Offset: 16 + keen::HashKey32 hash; // Offset: 72 +}; + +struct SceneResolvedDebugContent { + keen::BlobArray benchmarkPoints; // Offset: 0 +}; + +struct SceneDebugContent { + keen::BlobArray benchmarkPoints; // Offset: 0 +}; + +struct SceneLevelDistribution { + keen::ObjectReference levelDistributionSet; // Offset: 0 +}; + +struct SceneLevelDistributionSet { +}; + +struct SceneLevelMap { + keen::ObjectReference scatterImage; // Offset: 0 + keen::uint32 level; // Offset: 16 +}; + +struct SceneLevelMapConvertInfo { + keen::uint32 level; // Offset: 0 + keen::Guid imageId; // Offset: 4 + keen::ScatterImageMetaData imageMetaData; // Offset: 20 +}; + +struct SceneLevelDistributionConvertParams { + keen::Guid sceneId; // Offset: 0 + keen::Guid levelDistributionSetObjectId; // Offset: 16 + keen::BlobArray levelInfos; // Offset: 32 +}; + +struct SceneLevelDistributionSetInfo { + keen::uint2 mapSize; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 8 +}; + +struct PrefabLibrary { + keen::ObjectReference collisions; // Offset: 0 + keen::ObjectReference connections; // Offset: 16 +}; + +struct PrefabLibrarySettings { + keen::ObjectReference collisions; // Offset: 0 +}; + +struct DungeonConnectionInfo { + keen::BlobArray connectionPoints; // Offset: 0 +}; + +struct PrefabDirectory { +}; + +struct Prefab { + keen::float32 replacementWeight; // Offset: 96 +}; + +struct PrefabEntitySpawn { + keen::Guid objectId; // Offset: 312 + keen::ContentPass contentPass; // Offset: 328 +}; + +enum class TileContextFlags { + Ground = 0, + Wall = 1, + Ceiling = 2, + Stairs = 3, + CornerLeft = 4, + CornerRight = 5, + Corridor = 6, + Column = 7, +}; + +struct PrefabObjectContextInfo { + keen::SceneObjectType objectType; // Offset: 0 + keen::ContentPassIndex passIndex; // Offset: 8 + keen::TileContextFlags type; // Offset: 24 + keen::uint32 index; // Offset: 28 + keen::bool forbidden; // Offset: 32 +}; + +struct WhiteboxTriggerScope { +}; + +struct PrefabLootEntity { + keen::uint32 spawnIndex; // Offset: 0 + keen::LootContainerInfo entityLootInfo; // Offset: 4 +}; + +struct PrefabContent { + keen::BlobArray spawns; // Offset: 0 + keen::BlobArray models; // Offset: 8 + keen::BlobArray destructionBubbles; // Offset: 16 + keen::BlobArray pointLights; // Offset: 24 + keen::BlobArray lootInfos; // Offset: 32 + keen::BlobArray contextInfos; // Offset: 40 + keen::BlobArray roads; // Offset: 48 + keen::BlobArray displacementBlockers; // Offset: 56 + keen::BlobArray passes; // Offset: 64 +}; + +struct PrefabContentPass { + keen::ContentPassIndex passIndex; // Offset: 0 + keen::BlobArray voxelObjects; // Offset: 16 + keen::BlobArray voxelBrushes; // Offset: 24 + keen::BlobArray tunnels; // Offset: 32 +}; + +struct PrefabEntityInfo { + keen::BlobString description; // Offset: 0 + keen::ObjectReference prefab; // Offset: 8 + keen::ObjectReference templateReference; // Offset: 24 +}; + +struct PrefabVoxelWorldSceneContent { + keen::BlobArray whiteboxes; // Offset: 0 + keen::BlobArray voxelObjects; // Offset: 8 + keen::BlobArray voxelBrushes; // Offset: 16 + keen::BlobArray destructionBubbles; // Offset: 24 + keen::BlobArray roads; // Offset: 32 + keen::BlobArray tunnels; // Offset: 40 +}; + +struct PrefabWhiteboxResolveInfo { + keen::WorldTransform worldTransform; // Offset: 0 + keen::ContentPass contentPass; // Offset: 56 +}; + +struct WhiteboxEntityList { + keen::BlobArray singleEntityPrefabs; // Offset: 0 + keen::BlobArray customPrefabs; // Offset: 8 +}; + +struct WhiteboxOptions { + keen::Guid whiteboxDefinitionId; // Offset: 0 + keen::bool reducePrefabProbability; // Offset: 16 + keen::BlobArray prefabs; // Offset: 20 +}; + +struct PrefabInfo { + keen::ObjectReference prefab; // Offset: 0 + keen::float32 weight; // Offset: 16 + keen::BlobArray tags; // Offset: 20 +}; + +enum class WhiteboxTileType { + None = 0, + Ground = 1, + Wall = 2, + Ceiling = 3, + Stairs = 4, + Column = 5, +}; + +struct WhiteboxDefinitionModelVisibility { + keen::bool voxelMode; // Offset: 0 + keen::bool editMode; // Offset: 1 + keen::bool brushMode; // Offset: 2 +}; + +struct WhiteboxDefinition { + keen::ObjectReference model; // Offset: 0 + keen::WhiteboxDefinitionModelVisibility modelVisibility; // Offset: 16 + keen::bool reducePrefabProbability; // Offset: 19 + keen::WhiteboxTileType type; // Offset: 20 + keen::float2 gridSize; // Offset: 24 + keen::Color tintColor; // Offset: 32 + keen::float3 modelScale; // Offset: 36 +}; + +typedef keen::Bitmask8 TileContextFlagMask; + +struct WhiteboxTileContext { + keen::TileContextFlagMask context; // Offset: 0 +}; + +struct SceneDungeonRoomWhitebox { + keen::BlobString identifier; // Offset: 64 + keen::ObjectReference definition; // Offset: 72 + keen::float32 replacementProbability; // Offset: 88 + keen::float32 randomRotationOffsetX; // Offset: 92 + keen::float32 randomRotationOffsetY; // Offset: 96 + keen::float32 randomRotationOffsetZ; // Offset: 100 + keen::bool snapToGround; // Offset: 104 + keen::SceneEntitySpawnData spawnData; // Offset: 108 +}; + +struct DungeonRoomDirectory { +}; + +struct DungeonRoomScene { + keen::uint3 size; // Offset: 176 +}; + +struct DungeonRoomRayDedubg { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 + keen::bool hit; // Offset: 32 +}; + +struct DungeonRoomCollisionsDebugInfo { + keen::BlobArray rayChecks; // Offset: 0 + keen::BlobArray checkBoundingBoxes; // Offset: 8 +}; + +struct DungeonRoomShapes { + keen::BlobArray boundingBoxes; // Offset: 0 +}; + +struct DungeonRoomSceneLayerGroup { +}; + +enum class RoomConnectionPointType { + Door = 0, + RoadPoint = 1, +}; + +struct DungeonRoomConnectionPoint { + keen::Guid objectId; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 16 + keen::Guid roomSceneId; // Offset: 32 + keen::Guid whiteboxDefinitionId; // Offset: 48 + keen::WorldTransform worldTransform; // Offset: 64 + keen::RoomConnectionPointType type; // Offset: 120 + keen::AxisAlignedBox boundingBox; // Offset: 128 + keen::string identifier; // Offset: 160 +}; + +struct DungeonRoomConnectionPoints { + keen::BlobArray connections; // Offset: 0 +}; + +struct DungeonConnectionPointInfo { + keen::DungeonRoomConnectionPoint pointA; // Offset: 0 + keen::DungeonRoomConnectionPoint pointB; // Offset: 176 +}; + +struct DungeonConnectionPoints { + keen::BlobArray connections; // Offset: 0 +}; + +struct DungeonWhiteboxReplacement { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid newWhiteboxDefinitionId; // Offset: 16 +}; + +struct DungeonWhiteboxReplacements { + keen::BlobArray replacements; // Offset: 0 +}; + +struct DungeonEntranceInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::BlobString identifier; // Offset: 16 + keen::WorldTransform transform; // Offset: 24 + keen::AxisAlignedBox boundingBox; // Offset: 80 +}; + +struct DungeonRoomEntranceList { + keen::BlobArray entrances; // Offset: 0 +}; + +struct DungeonRoomEntranceConvertInfo { + keen::BlobArray markedEntrances; // Offset: 0 +}; + +struct WhiteboxCollisionSetup { +}; + +struct WhiteboxCollisionGroup { +}; + +struct WhiteboxCollisionItem { + keen::ObjectReference definition; // Offset: 0 + keen::uint8 weight; // Offset: 16 + keen::float32 range; // Offset: 20 +}; + +struct WhiteboxCollisionGroupInfo { + keen::BlobArray items; // Offset: 0 +}; + +struct WhiteboxCollisionInfo { + keen::BlobArray groups; // Offset: 0 +}; + +struct WhiteboxContextSetup { + keen::ObjectReference groundTag; // Offset: 0 + keen::ObjectReference ceilingTag; // Offset: 16 +}; + +struct DungeonConnectionsConfig { +}; + +struct DungeonConnectionSetup { + keen::ObjectReference connectionWhitebox; // Offset: 0 + keen::ObjectReference replacementOtherConnection; // Offset: 16 + keen::ObjectReference replacementRoadPoint; // Offset: 32 + keen::ObjectReference replacementWithoutConnection; // Offset: 48 + keen::AxisAlignedBox connectionAABB; // Offset: 64 +}; + +enum class WhiteboxNodeType { + SceneInstance = 0, + Whitebox = 1, +}; + +struct WhiteboxConvertInfo { + keen::HashKey32 id; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 + keen::WhiteboxNodeType type; // Offset: 8 + keen::Guid replacementObjectId; // Offset: 12 + keen::Guid whiteboxInstanceId; // Offset: 28 + keen::Guid whiteboxDefinitionId; // Offset: 44 + keen::ContentPassIndex passIndex; // Offset: 64 + keen::WhiteboxTileContext roomTileContext; // Offset: 80 + keen::WhiteboxTileContext requiredRoomTileContext; // Offset: 81 + keen::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 82 + keen::BlobArray requiredTriggers; // Offset: 84 + keen::BlobArray triggerInfos; // Offset: 92 + keen::WorldTransform worldTransform; // Offset: 104 + keen::BlobArray tags; // Offset: 160 + keen::float3 randomRotationOffset; // Offset: 168 + keen::float32 replacementProbability; // Offset: 180 + keen::SceneEntitySpawnData entitySpawnData; // Offset: 184 + keen::Guid triggerGraphId; // Offset: 412 +}; + +struct WhiteboxReplacementPass { + keen::BlobArray replacements; // Offset: 0 + keen::BlobArray failedReplacements; // Offset: 8 +}; + +struct WhiteboxReplacementInfoPasses { + keen::BlobArray passes; // Offset: 0 +}; + +struct WhiteboxReplacementInfoPass { + keen::ContentPassIndex passIndex; // Offset: 0 + keen::BlobArray replacements; // Offset: 16 +}; + +struct WhiteboxReplacementInfo { + keen::HashKey32 id; // Offset: 0 + keen::Guid sceneId; // Offset: 4 + keen::WorldTransform worldTransform; // Offset: 24 + keen::BlobArray triggers; // Offset: 80 + keen::WhiteboxTileContext roomTileContext; // Offset: 88 + keen::SceneEntitySpawnData entitySpawnData; // Offset: 92 +}; + +struct SceneWhiteboxContentInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid whiteboxDefinitionId; // Offset: 16 + keen::uint32 passIndex; // Offset: 32 + keen::WorldTransform worldTransform; // Offset: 40 + keen::float3 randomRotationOffset; // Offset: 96 + keen::float32 replacementProbability; // Offset: 108 + keen::BlobArray tags; // Offset: 112 + keen::WhiteboxTileContext requiredRoomTileContext; // Offset: 120 + keen::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 121 + keen::SceneEntitySpawnData entitySpawnData; // Offset: 124 + keen::Guid triggerGraphId; // Offset: 352 +}; + +struct SceneWhiteboxInfo { + keen::BlobArray whiteboxes; // Offset: 0 +}; + +struct SceneWhiteboxErrorInfo { + keen::uint32 failedReplacementCount; // Offset: 0 +}; + +struct WhiteboxTagList { + keen::BlobArray tags; // Offset: 0 +}; + +struct SceneDungeonRoomInstance { + keen::BlobString identifier; // Offset: 64 + keen::ObjectReference room; // Offset: 72 + keen::sint32 spawnLevelOffset; // Offset: 88 + keen::HashKey32 whiteboxSeed; // Offset: 92 +}; + +struct SceneDungeonRoomLayerGroupInstance { + keen::ObjectReference layerGroup; // Offset: 64 +}; + +struct DungeonEntranceDefinition { + keen::ObjectReference whitebox; // Offset: 0 +}; + +struct DungeonConnectionPriority { + keen::ObjectReference room; // Offset: 0 + keen::ObjectReference whitebox; // Offset: 16 +}; + +struct DungeonDirectory { +}; + +struct DungeonScene { +}; + +struct SceneDungeonInstance { + keen::ObjectReference dungeon; // Offset: 64 + keen::sint32 spawnLevelOffset; // Offset: 80 + keen::HashKey32 whiteboxSeed; // Offset: 84 +}; + +struct SceneWhiteboxPathParameters { + keen::WorldTransform transform; // Offset: 0 + keen::Guid rootSceneId; // Offset: 56 + keen::Guid sceneInstanceId; // Offset: 72 + keen::uint32 seed; // Offset: 88 +}; + +struct SceneWhiteboxPathList { + keen::SceneWhiteboxPathParameters rootScene; // Offset: 0 + keen::BlobArray subscenes; // Offset: 96 + keen::BlobArray scatterScenes; // Offset: 104 +}; + +struct ContentLabelInfo { + keen::BlobArray whiteboxLabels; // Offset: 0 + keen::ObjectLootSettings lootSettings; // Offset: 8 +}; + +struct ecs.EntityTag { +}; + +struct ForbiddenEntityTags { +}; + +typedef keen::ObjectReference SequenceReference; + +enum class SessionDebugAction { + Start = 0, + Stop = 1, +}; + +struct SessionDebugActionMessage { + keen::SessionDebugAction action; // Offset: 0 +}; + +struct SessionDebugChannelInfo { + keen::string name; // Offset: 0 +}; + +struct SessionDebugChannelsMessage { + keen::BlobArray channels; // Offset: 0 +}; + +struct SessionDebugPacketChannel { + keen::uint16 messageSize; // Offset: 0 + keen::uint8 messageCount; // Offset: 2 +}; + +struct SessionDebugPacketsChannel { + keen::uint64 totalMessageSize; // Offset: 0 + keen::uint32 totalMessageCount; // Offset: 8 + keen::uint32 messageSize; // Offset: 12 + keen::uint16 messageCount; // Offset: 16 +}; + +typedef keen::StaticArray SessionDebugPacketChannels; + +typedef keen::StaticArray SessionDebugPacketsChannels; + +struct SessionDebugPacket { + keen::Time time; // Offset: 0 + keen::Time oldestMessageTime; // Offset: 8 + keen::uint32 machineId; // Offset: 16 + keen::uint32 packetId; // Offset: 20 + keen::uint32 packetSize; // Offset: 24 + keen::uint8 machineIndex; // Offset: 28 + keen::SessionDebugPacketChannels channels; // Offset: 30 +}; + +struct SessionDebugPacketMessage { + keen::Time time; // Offset: 0 + keen::uint32 machineId; // Offset: 8 + keen::SessionDebugPacketsChannels packetsChannels; // Offset: 16 + keen::uint64 totalPacketsSize; // Offset: 784 + keen::uint32 packetsSize; // Offset: 792 +}; + +struct SessionDebugPacketSendMessage { + keen::BlobArray packets; // Offset: 800 +}; + +struct SessionDebugPacketRecvMessage { + keen::BlobArray packets; // Offset: 800 +}; + +struct SessionDebugMachineStats { + keen::uint32 machineIndex; // Offset: 0 + keen::uint32 lostPackets; // Offset: 4 + keen::Time roundTripTime; // Offset: 8 + keen::uint64 bandwidthLimitInBps; // Offset: 16 +}; + +struct SessionDebugStatsMessage { + keen::Time time; // Offset: 0 + keen::BlobArray machineStats; // Offset: 8 +}; + +struct GameParameters { + keen::uint32 flameLevel; // Offset: 0 + keen::uint32 gameSettingsPreset; // Offset: 4 +}; + +enum class SoundContentType { + Unknown = 0, + Effect = 1, + Ambience = 2, + Music = 3, +}; + +struct Sound { + keen::SoundContentType contentType; // Offset: 0 +}; + +typedef keen::ObjectReference SoundReference; + +struct SoundContainer { +}; + +struct SoundContainerEntryShared { + keen::float32 chance; // Offset: 0 +}; + +struct SoundContainerEntry { +}; + +struct SoundContainerSoundEntry { + keen::SoundReference sound; // Offset: 4 +}; + +struct SoundContainerContainerEntry { + keen::SoundContainerReference container; // Offset: 4 +}; + +struct SoundContainerResource { + keen::BlobArray> entries; // Offset: 64 +}; + +struct SoundContainerResourceEntry { +}; + +typedef keen::ObjectReference SoundResourceReference; + +struct SoundContainerResourceSoundEntry { + keen::SoundResourceReference sound; // Offset: 4 +}; + +struct SoundContainerResourceContainerEntry { + keen::SoundContainerResourceReference container; // Offset: 4 +}; + +struct SoundMusicPlaylist { + keen::BlobArray tracks; // Offset: 0 + keen::bool shuffle; // Offset: 8 + keen::float32 fadeDuration; // Offset: 12 +}; + +typedef keen::ObjectReference SoundMusicPlaylistReference; + +enum class SoundChannelConfiguration { + Mono = 0, + Stereo = 1, + Quadrophonic = 2, + FiveDotOne = 3, + SevenDotOne = 4, +}; + +enum class SoundDataFormat { + Uncompressed = 0, + FramelessQOA = 1, +}; + +struct SoundResource { + keen::SoundChannelConfiguration channelConfiguration; // Offset: 0 + keen::SoundDataFormat format; // Offset: 1 + keen::uint16 framesPerSecond; // Offset: 2 + keen::uint32 frameCount; // Offset: 4 + keen::Time duration; // Offset: 8 + keen::BlobArray data; // Offset: 16 + keen::ContentHash dataHash; // Offset: 24 + keen::string debugName; // Offset: 40 +}; + +struct GpuInformation { + keen::string identifier; // Offset: 0 +}; + +struct SessionStarted { + keen::uint32 userId; // Offset: 0 + keen::uint32 sessionCount; // Offset: 4 + keen::GpuInformation gpu; // Offset: 8 + keen::uint32 gameVersion; // Offset: 16 + keen::uint32 engineVersion; // Offset: 20 +}; + +struct CraftingAction { + keen::HashKey32 station; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct FoodBuffData { + keen::uint32 maxUsedSlots; // Offset: 0 + keen::uint32 activatedFoodBuffs; // Offset: 4 +}; + +struct SessionEnded { + keen::uint32 userId; // Offset: 0 + keen::uint32 maxPlayer; // Offset: 4 + keen::Time playTime; // Offset: 8 + keen::bool host; // Offset: 16 + keen::uint32 saveGameSize; // Offset: 20 + keen::GpuInformation gpu; // Offset: 24 + keen::uint32 gameVersion; // Offset: 32 + keen::uint32 engineVersion; // Offset: 36 + keen::BlobArray unlockedKnowledge; // Offset: 40 + keen::BlobArray crafting; // Offset: 48 + keen::FoodBuffData foodBuffData; // Offset: 56 + keen::bool didUsePersonelCrafting; // Offset: 64 + keen::ecs::GameSettingsPreset preset; // Offset: 65 + keen::ecs::GameSettings settings; // Offset: 72 +}; + +struct DedicatedSessionStarted { +}; + +struct DedicatedSessionEnded { + keen::Time playTime; // Offset: 0 +}; + +enum class DeathCause { + Impact = 0, + FallDamage = 1, + Fog = 2, +}; + +struct PlayerDeath { + keen::DeathCause cause; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::Guid causeGuid; // Offset: 16 + keen::bool wasDeadlyFog; // Offset: 32 +}; + +struct tracking.LevelUp { + keen::sint32 level; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::float3 position; // Offset: 16 +}; + +enum class tracking.MinSpecError { + Ram = 0, + VRam = 1, +}; + +typedef keen::Bitmask8 tracking.MinSpecErrorMask; + +struct tracking.CrashInfo { + keen::uint32 userId; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::uint32 gameVersion; // Offset: 16 + keen::uint32 engineVersion; // Offset: 20 + keen::tracking::MinSpecErrorMask minspecError; // Offset: 24 +}; + +struct TtfFontResource { + keen::ContentHash fontFileHash; // Offset: 0 +}; + +struct TtfFontInfo { + keen::Guid objectId; // Offset: 0 + keen::ContentHash fontFileHash; // Offset: 16 +}; + +struct TtfFont { +}; + +typedef keen::ObjectReference TtfFontReference; + +typedef keen::ObjectReference TtfFontResourceReference; + +struct UiTestStyles { + keen::UiCharacterStyle test; // Offset: 0 +}; + +struct UiTestParagraphStyles { + keen::UiParagraphStyle test; // Offset: 0 + keen::UiParagraphStyle test2; // Offset: 28 +}; + +typedef keen::ObjectReference UiFontReference; + +struct UiBundleTest { + keen::UiTexture test; // Offset: 24 + keen::UiTestStyles namedStyles; // Offset: 72 + keen::UiTestParagraphStyles namedParagraphStyles; // Offset: 160 + keen::UiFontReference font; // Offset: 216 +}; + +struct UiFontRange { + keen::uint32 firstRune; // Offset: 0 + keen::uint32 lastRune; // Offset: 4 +}; + +struct UiGlyphSet { + keen::TtfFontReference font; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::bool useForMetrics; // Offset: 20 + keen::bool bold; // Offset: 21 + keen::bool italic; // Offset: 22 +}; + +struct UiFont { +}; + +struct UiFontLanguage { + keen::bool En_Us; // Offset: 0 + keen::bool En_Gb; // Offset: 1 + keen::bool De_De; // Offset: 2 + keen::bool Nl_Nl; // Offset: 3 + keen::bool Fr_Fr; // Offset: 4 + keen::bool It_It; // Offset: 5 + keen::bool Es_Es; // Offset: 6 + keen::bool Es_Mx; // Offset: 7 + keen::bool Ru_Ru; // Offset: 8 + keen::bool Pl_Pl; // Offset: 9 + keen::bool Ja_Jp; // Offset: 10 + keen::bool Id_Id; // Offset: 11 + keen::bool Ko_Kr; // Offset: 12 + keen::bool Ms_My; // Offset: 13 + keen::bool Pt_Pt; // Offset: 14 + keen::bool Pt_Br; // Offset: 15 + keen::bool Th_Th; // Offset: 16 + keen::bool Tr_Tr; // Offset: 17 + keen::bool Vi_Vn; // Offset: 18 + keen::bool Zh_Cn; // Offset: 19 + keen::bool Zh_Tw; // Offset: 20 + keen::bool Fr_Ca; // Offset: 21 + keen::bool Es_419; // Offset: 22 + keen::bool Bg_Bg; // Offset: 23 + keen::bool Cs_Cz; // Offset: 24 + keen::bool Da_Dk; // Offset: 25 + keen::bool Fi_Fi; // Offset: 26 + keen::bool El_Gr; // Offset: 27 + keen::bool Hu_Hu; // Offset: 28 + keen::bool No_No; // Offset: 29 + keen::bool Nb_No; // Offset: 30 + keen::bool Ro_Ro; // Offset: 31 + keen::bool Sv_Se; // Offset: 32 + keen::bool Uk_Ua; // Offset: 33 + keen::bool Default; // Offset: 34 +}; + +typedef keen::Bitmask64 UiFontLanguageMask; + +enum class UiFontVariantFlag { + Normal = 0, + Bold = 1, + Italic = 2, +}; + +typedef keen::Bitmask8 UiFontVariantMask; + +struct UiGlyphSetResource { + keen::uint32 fontIndex; // Offset: 0 + keen::float32 scale; // Offset: 4 + keen::BlobArray ranges; // Offset: 8 + keen::UiFontVariantMask fontVariantMask; // Offset: 16 +}; + +struct UiFontLanguageGroupResource { + keen::UiFontLanguageMask groupLanguages; // Offset: 0 + keen::BlobArray glyphSets; // Offset: 8 + keen::uint32 metricsIndex; // Offset: 16 + keen::bool isDefaultLanguageGroup; // Offset: 20 +}; + +struct UiFontResource { + keen::BlobArray fonts; // Offset: 0 + keen::BlobArray languageGroups; // Offset: 8 +}; + +struct UiFontPreviewLanguageGroupOutput { + keen::BlobArray fonts; // Offset: 0 + keen::BlobArray glyphSets; // Offset: 8 +}; + +typedef keen::ObjectReference UiFontResourceReference; + +struct UiRectangle { + keen::UiPosition position; // Offset: 0 + keen::UiSize size; // Offset: 8 +}; + +struct UiTime { + keen::uint64 m_timeStamp; // Offset: 0 +}; + +typedef keen::uint64 UiObjectId; + +struct UiPassTreeFrameState { + keen::UiObjectId stateId; // Offset: 0 + keen::uint32 size; // Offset: 8 +}; + +enum class UiFrameFlag { + ClampOnXAxisAtParentBorder = 0, + ClampOnYAxisAtParentBorder = 1, + EqualStretchInXAxis = 2, + EqualStretchInYAxis = 3, + WidthIgnoredForStretch = 4, + HeightIgnoredForStretch = 5, +}; + +typedef keen::Bitmask8 UiFrameFlags; + +struct UiFrameSizes { + keen::UiPosition offset; // Offset: 0 + keen::UiSize minSize; // Offset: 8 + keen::UiSize prefSize; // Offset: 16 + keen::UiSize maxSize; // Offset: 24 + keen::UiSize stretch; // Offset: 32 +}; + +enum class UiFrameLayoutType { + None = 0, + Horizontal = 1, + Vertical = 2, + Grid = 3, + Count = 4, +}; + +struct UiFrameLayout { + keen::UiFrameLayoutType type; // Offset: 0 + keen::bool horizontalScroll; // Offset: 4 + keen::bool verticalScroll; // Offset: 5 + keen::bool flow; // Offset: 6 + keen::bool splitter; // Offset: 7 + keen::UiSize spacing; // Offset: 8 + keen::uint32 framesPerGridRow; // Offset: 16 +}; + +struct UiFrameBorder { + keen::UiBorder margin; // Offset: 0 + keen::UiBorder padding; // Offset: 16 +}; + +struct UiFrameScrollState { + keen::UiPosition scrollOffset; // Offset: 0 + keen::UiSize scrollAreaSize; // Offset: 8 +}; + +struct UiFrameLayoutState { + keen::UiSize minSize; // Offset: 0 + keen::UiSize prefSize; // Offset: 8 + keen::UiSize maxSize; // Offset: 16 + keen::UiSize stretch; // Offset: 24 + keen::bool flowChild; // Offset: 32 +}; + +struct UiPassTreeFrame { + keen::UiObjectId frameId; // Offset: 0 + keen::UiObjectId localFrameId; // Offset: 8 + keen::UiObjectId highestChildUiFrameId; // Offset: 16 + keen::UiFrameFlags flags; // Offset: 24 + keen::uint32 inputMask; // Offset: 28 + keen::UiFrameSizes sizes; // Offset: 32 + keen::UiFrameLayout layout; // Offset: 72 + keen::UiFrameBorder border; // Offset: 92 + keen::UiAlignment alignment; // Offset: 124 + keen::UiAlignment childAlignment; // Offset: 126 + keen::BlobString debugName; // Offset: 128 + keen::BlobArray children; // Offset: 136 + keen::BlobArray states; // Offset: 144 + keen::UiFrameScrollState scrollState; // Offset: 152 + keen::UiFrameLayoutState layoutState; // Offset: 168 + keen::UiRectangle oldRect; // Offset: 204 + keen::UiRectangle rect; // Offset: 220 + keen::UiPosition offset; // Offset: 236 +}; + +typedef keen::BlobOptional UiPassTreeFrameOpt; + +struct UiPassTreeWindow { + keen::UiObjectId windowId; // Offset: 0 + keen::uint32 zOrder; // Offset: 8 + keen::uint32 inputMask; // Offset: 12 + keen::uint32 flags; // Offset: 16 + keen::UiPosition offset; // Offset: 20 + keen::float32 scale; // Offset: 28 + keen::UiPassTreeFrameOpt rootFrame; // Offset: 32 + keen::BlobString debugName; // Offset: 36 +}; + +struct UiPassTreeScreen { + keen::UiObjectId screenId; // Offset: 0 + keen::UiRectangle rect; // Offset: 8 + keen::BlobArray windows; // Offset: 24 +}; + +struct UiPassTree { + keen::uint32 systemUpdateCounter; // Offset: 0 + keen::BlobArray screens; // Offset: 4 +}; + +struct UiSplitterSizes { + keen::UiSize minSize; // Offset: 0 + keen::UiSize prefSize; // Offset: 8 + keen::UiSize maxSize; // Offset: 16 + keen::UiSize stretch; // Offset: 24 +}; + +struct UiFrameSplitterData { + keen::UiPosition position; // Offset: 0 + keen::UiPosition positionClamped; // Offset: 8 + keen::UiPosition dragSplitterPosition; // Offset: 16 + keen::UiPosition dragMousePosition; // Offset: 24 + keen::UiSplitterSizes sizes; // Offset: 32 +}; + +struct UiFrameSplitterState { + keen::StaticArray splitter; // Offset: 0 +}; + +struct VoxelTemperatureResource { + keen::int3 worldOrigin; // Offset: 0 + keen::uint3 worldSize; // Offset: 12 + keen::uint3 sizeInVoxels; // Offset: 24 + keen::BlobArray voxelData; // Offset: 36 +}; + +typedef keen::ObjectReference VoxelTemperatureReference; + +enum class VoxelWorldResourceType { + Solid = 0, + Fog = 1, + Water = 2, + Temperature = 3, +}; + +struct VoxelWorldResource { + keen::VoxelWorldResourceType type; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::int3 origin; // Offset: 12 + keen::ContentHash lowLODData; // Offset: 24 + keen::uint32 lowLODMaxLevel; // Offset: 40 + keen::StaticArray materialGuids; // Offset: 44 + keen::uint8 defaultTerrainMaterial; // Offset: 4140 +}; + +struct VoxelWorldChunkResource { + keen::ContentHash highLODData; // Offset: 0 + keen::BlobArray waterTileNotEmptyMask; // Offset: 16 +}; + +typedef keen::ObjectReference VoxelWorldReference; + +struct SolidVoxelMaterialWithId { + keen::Guid id; // Offset: 0 + keen::Guid stoneMaterialId; // Offset: 16 + keen::bool canReceiveFloorMaterial; // Offset: 32 +}; + +struct BiomeVoxelMaterialMapping { + keen::Guid id; // Offset: 0 + keen::StaticArray biomes; // Offset: 16 +}; + +struct VoxelMaterialResolvedList { + keen::BlobArray solidMaterials; // Offset: 0 + keen::BlobArray buildingMaterials; // Offset: 8 + keen::BlobArray biomeMaterials; // Offset: 16 +}; + +struct VoxelMaterialSettings { + keen::uint8 defaultTerrainMaterial; // Offset: 0 +}; + +struct VoxelDisplacementMaterial { + keen::Guid id; // Offset: 0 + keen::VoxelWorldDisplacement side; // Offset: 16 + keen::VoxelWorldDisplacement top; // Offset: 44 +}; + +struct VoxelMaterialDisplacement { + keen::BlobArray materials; // Offset: 0 +}; + +enum class FogVoxelMaterialResolvedType { + Gameplay = 0, + Decorative = 1, +}; + +struct FogVoxelMaterialResolved { + keen::Guid id; // Offset: 0 + keen::FogVoxelMaterialResolvedType type; // Offset: 16 + keen::uint8 level; // Offset: 17 +}; + +struct FogVoxelMaterialResolvedList { + keen::BlobArray fogMaterials; // Offset: 0 +}; + +struct WaterVoxelMaterialResolvedList { + keen::Guid waterMaterial; // Offset: 0 +}; + +struct TemperatureVoxelMaterialResolvedList { + keen::BlobArray temperatureMaterials; // Offset: 0 +}; + +struct BuildingMaterialMappingResource { + keen::uint8 localId; // Offset: 0 + keen::Guid materialId; // Offset: 4 +}; + +struct BuildingMaterialPaletteResource { + keen::BlobArray mappings; // Offset: 0 +}; + +enum class ReservedMaterialId { + Empty = 0, + Conservative = 1, + Dirt = 2, + Count = 3, +}; + +struct FogRemovalSetup { + keen::uint8 level; // Offset: 0 +}; + +struct FogRemovalDirectory { +}; + +struct FogRemovalLink { + keen::ObjectReference fogId; // Offset: 0 +}; + +enum class FogVoxelMappingType { + Gameplay = 0, + Decorative = 1, +}; + +struct FogVoxelMapping { + keen::FogVoxelMappingType type; // Offset: 0 + keen::uint8 level; // Offset: 1 + keen::FogRemovalId removalId; // Offset: 4 + keen::AxisAlignedBox boundingBox; // Offset: 16 +}; + +struct FogVoxelMappingResource { + keen::BlobArray mapping; // Offset: 0 +}; + +struct VoxelModelResource { + keen::uint3 size; // Offset: 0 + keen::BlobArray data; // Offset: 12 + keen::bool isTerrain; // Offset: 20 +}; + +struct VoxelModelInfo { + keen::uint3 size; // Offset: 0 + keen::BlobArray materialMap; // Offset: 12 + keen::bool isTerrain; // Offset: 20 +}; + +enum class VoxelObjectPreviewMode { + OnlyBuildingVoxels = 0, + BuildingAndDirt = 1, + AllVoxels = 2, +}; + +struct VoxelObjectDefinition { + keen::ObjectReference materialPalette; // Offset: 0 + keen::ObjectReference material; // Offset: 16 + keen::bool invertEmptyConservative; // Offset: 32 + keen::VoxelObjectPreviewMode previewMode; // Offset: 33 +}; + +struct TerrainVoxelObjectDefinition { + keen::ObjectReference model; // Offset: 0 +}; + +struct VoxelWorldObject { + keen::ImageReference heightmap; // Offset: 0 + keen::ObjectReference compositeHeightmap; // Offset: 16 + keen::float32 heightScale; // Offset: 32 + keen::bool useCompositeScatterImage; // Offset: 36 + keen::bool displaceHeightmap; // Offset: 37 + keen::int3 origin; // Offset: 40 +}; + +struct VoxelWorldInfo { + keen::int2 minTile; // Offset: 0 + keen::int2 maxTile; // Offset: 8 + keen::sint32 yOffset; // Offset: 16 + keen::uint2 heightMapSize; // Offset: 20 + keen::float32 heightMapHeight; // Offset: 28 +}; + +struct VoxelWorldTerraAction { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::uint32 mode; // Offset: 16 +}; + +struct VoxelWorldTerraActions { + keen::BlobArray actions; // Offset: 0 +}; + +struct VoxelRoadShapeDefinition { + keen::float32 roadWidth; // Offset: 0 +}; + +struct VoxelWorldAutomatedTest { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference referenceVoxelData; // Offset: 16 +}; + +enum class DestructionVoxelBlockType { + Empty = 0, + DestructionEdge = 1, + ModeStart = 2, +}; + +struct VoxelWorldConverterConfig { + keen::bool buildWaterVoxels; // Offset: 0 +}; + +struct WeatherPhenomenon { + keen::ObjectReference cloudMap; // Offset: 0 + keen::bool tiling; // Offset: 16 +}; + +struct WeatherSnowBorderConfiguration { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 + keen::uint32 maskResolutionDivisor; // Offset: 24 +}; + +struct WeatherSystemConfiguration { + keen::ObjectReference scene; // Offset: 0 + keen::WeatherSnowBorderConfiguration snowBorder; // Offset: 16 + keen::uint32 layerMaskResolutionDivisor; // Offset: 44 +}; + +struct WeatherHeightMap { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 +}; + +struct WeatherPhenomenonProbability { + keen::float32 probability; // Offset: 0 + keen::TimeRange duration; // Offset: 8 +}; + +struct WeatherLayerConfiguration { + keen::bool useMaskResolutionDivisor; // Offset: 0 + keen::ObjectReference restrictMask; // Offset: 4 + keen::ObjectReference excludeMask; // Offset: 20 + keen::bool maskClouds; // Offset: 36 + keen::bool maskRain; // Offset: 37 + keen::WeatherPhenomenonProbability nothingProbability; // Offset: 40 +}; + +enum class WeatherPhenomenonEffect { + None = 0, + Rain = 1, + Blizzard = 2, +}; + +struct WeatherPhenomenonConfiguration { + keen::WeatherPhenomenonProbability probability; // Offset: 0 + keen::ObjectReference phenomenon; // Offset: 24 + keen::FloatRange scale; // Offset: 40 + keen::FloatRange rotation; // Offset: 48 + keen::FloatRange moveSpeed; // Offset: 56 + keen::bool alignRotationToMoveSpeed; // Offset: 64 + keen::Time spawnFadeTime; // Offset: 72 + keen::Time despawnFadeTime; // Offset: 80 + keen::WeatherPhenomenonEffect effect; // Offset: 88 + keen::float32 rainThreshold; // Offset: 92 +}; + +struct WeatherSystemMaskResource { + keen::float2 bboxMin; // Offset: 0 + keen::float2 bboxMax; // Offset: 8 + keen::float2 worldToRelative; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::BlobArray data; // Offset: 32 +}; + +struct WeatherSystemResource { + keen::HashKey32 dataHash; // Offset: 0 + keen::uint2 worldSize; // Offset: 4 + keen::float2 snowBorderRangeMapping; // Offset: 12 + keen::WeatherSystemMaskResource snowBorderMask; // Offset: 20 + keen::BlobArray layers; // Offset: 60 + keen::BlobArray layerMasks; // Offset: 68 + keen::BlobArray phenomenons; // Offset: 76 + keen::BlobArray rainMasks; // Offset: 84 +}; + +typedef keen::uint8 WeatherLayerMaskIndex; + +enum class WeatherSystemPhenomenonResourceFlag { + Tiling = 0, + MaskCloudMap = 1, + MaskRain = 2, +}; + +typedef keen::Bitmask32 WeatherSystemPhenomenonResourceFlags; + +typedef keen::uint8 WeatherRainMaskIndex; + +struct WeatherSystemPhenomenonResource { + keen::Guid guid; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::WeatherSystemPhenomenonResourceFlags flags; // Offset: 20 + keen::Time durationMin; // Offset: 24 + keen::Time durationMax; // Offset: 32 + keen::float32 radiusMin; // Offset: 40 + keen::float32 radiusMax; // Offset: 44 + keen::float32 moveSpeedMin; // Offset: 48 + keen::float32 moveSpeedMax; // Offset: 52 + keen::Time spawnFadeTime; // Offset: 56 + keen::Time despawnFadeTime; // Offset: 64 + keen::float32 rainThreshold; // Offset: 72 + keen::WeatherRainMaskIndex rainMaskIndex; // Offset: 76 + keen::ObjectReference renderer; // Offset: 80 + keen::WeatherPhenomenonEffect effect; // Offset: 96 +}; + +struct WeatherSystemLayerResource { + keen::Guid guid; // Offset: 0 + keen::WeatherLayerMaskIndex restrictMaskIndex; // Offset: 16 + keen::WeatherLayerMaskIndex excludeMaskIndex; // Offset: 17 + keen::BlobArray phenomenonIndices; // Offset: 20 + keen::WeatherSystemPhenomenonResource nothingPhenomenon; // Offset: 32 +}; + +struct WeatherSystemLayerMaskResource { + keen::WeatherSystemMaskResource mask; // Offset: 0 + keen::ObjectReference renderer; // Offset: 40 +}; + +struct WeatherSystemDebugState { + keen::Time currentTime; // Offset: 0 + keen::BlobArray layers; // Offset: 8 + keen::BlobArray instances; // Offset: 16 +}; + +struct WeatherSystemDebugLayerState { + keen::Guid guid; // Offset: 0 + keen::Time nextPhenomenonTime; // Offset: 16 + keen::uint32 currentInstanceHandle; // Offset: 24 + keen::uint32 previousInstanceHandle; // Offset: 28 +}; + +struct WeatherSystemDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::Guid guid; // Offset: 4 + keen::float2 position; // Offset: 20 + keen::float32 rotation; // Offset: 28 + keen::float32 radius; // Offset: 32 + keen::float32 moveSpeed; // Offset: 36 + keen::float32 fade; // Offset: 40 +}; + +struct WeatherSystemDebugSkipToNextPhenomenonMessage { + keen::uint32 layerIndex; // Offset: 0 +}; + +typedef keen::uint8 WeatherPhenomenonIndex; + +struct weather.save_v0.WeatherSavedLayerInstance { + keen::WeatherPhenomenonIndex phenomenonIndex; // Offset: 0 + keen::WorldPosition spawnPosition; // Offset: 8 + keen::Angle rotation; // Offset: 32 + keen::float32 radius; // Offset: 36 + keen::float32 moveSpeed; // Offset: 40 + keen::Time spawnTime; // Offset: 48 + keen::Time despawnTime; // Offset: 56 +}; + +struct weather.save_v0.WeatherSavedLayer { + keen::Time nextPhenomenon; // Offset: 0 + keen::weather::save_v0::WeatherSavedLayerInstance currentInstance; // Offset: 8 + keen::weather::save_v0::WeatherSavedLayerInstance previousInstance; // Offset: 72 +}; + +typedef keen::uint8 WeatherLayerIndex; + +struct WeatherSpawnParameters { + keen::float32 eventProbabilityModifier; // Offset: 0 +}; + +struct g38_options.SettingsHeader { + keen::uint32 version; // Offset: 0 +}; + +enum class g38_options.pc.v5_dedicated_song_selection_binding.machine.WindowMode { + Windowed = 0, + Fullscreen = 1, +}; + +enum class g38_options.pc.v5_dedicated_song_selection_binding.machine.NvidiaReflexModeSettings { + Off = 0, + On = 1, + Boost = 2, +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.GraphicsSettings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode windowMode; // Offset: 0 + keen::int2 windowPosition; // Offset: 4 + keen::uint2 windowSize; // Offset: 12 + keen::uint2 forceBackbufferResolution; // Offset: 20 + keen::float32 renderScale; // Offset: 28 + keen::bool automaticRenderScale; // Offset: 32 + keen::bool vsync; // Offset: 33 + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings nvidiaReflex; // Offset: 36 + keen::RenderSettings render; // Offset: 40 + keen::bool useDefaultRenderSettings; // Offset: 120 + keen::bool sleepInBackground; // Offset: 121 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.SoundSettings { + keen::bool muteInBackground; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings graphics; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings sound; // Offset: 128 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GraphicsSettings { + keen::float32 fov; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.SoundSettings { + keen::float32 masterVolume; // Offset: 0 + keen::float32 musicVolume; // Offset: 4 + keen::float32 uiVolume; // Offset: 8 + keen::float32 gameVolume; // Offset: 12 + keen::float32 voiceVolume; // Offset: 16 + keen::bool dynamicReverb; // Offset: 20 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.MouseSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::AttackDirectionInput attackDirection; // Offset: 10 + keen::bool enableSmoothing; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GamepadSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::AttackDirectionInput attackDirection; // Offset: 10 + keen::ControllerButtonStyle controllerButtonStyle; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.InputSettings { + keen::input_mapping::PresetId selectedKeyboardMousePresetId; // Offset: 0 + keen::input_mapping::PresetId selectedGamepadPresetId; // Offset: 1 + keen::input_mapping::serialize::InputBindings customInputBindings; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings mouse; // Offset: 16 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings gamepad; // Offset: 28 +}; + +enum class g38_options.pc.v5_dedicated_song_selection_binding.user.SpiderSetting { + Show = 0, + HideSmall = 1, +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GameplaySettings { + keen::float cameraZoomFactor; // Offset: 0 + keen::bool enableIdleCameraTransition; // Offset: 4 + keen::bool reduceDynamicCameraMovement; // Offset: 5 + keen::float screenShakeStrength; // Offset: 8 + keen::bool displayDamageNumbers; // Offset: 12 + keen::bool displayDamagePropertyTexts; // Offset: 13 + keen::bool keepTargetLockWhenSprinting; // Offset: 14 + keen::bool breakTargetLockOnKill; // Offset: 15 + keen::uint32 hudAspectRatioWidth; // Offset: 16 + keen::float textScale; // Offset: 20 + keen::bool useAdditionalSymbolsForItemRarity; // Offset: 24 + keen::bool hideHUD; // Offset: 25 + keen::bool hideHelmet; // Offset: 26 + keen::bool hideGloves; // Offset: 27 + keen::bool showCharacterName; // Offset: 28 + keen::ItemRarity itemDeletionProtectionLevel; // Offset: 29 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting hideSpiders; // Offset: 30 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostUserGroup { + keen::bool enable; // Offset: 0 + keen::string password; // Offset: 4 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostSettings { + keen::uint32 maxSlots; // Offset: 0 + keen::string password; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup guests; // Offset: 12 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup friends; // Offset: 24 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup admins; // Offset: 36 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings graphics; // Offset: 4 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings sound; // Offset: 8 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings input; // Offset: 32 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings gameplay; // Offset: 72 + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings hostSettings; // Offset: 104 + keen::uint32 playedSessions; // Offset: 152 +}; + +struct g38_options.pc.v4_dedicated_glider_binding.machine.Settings { +}; + +struct g38_options.pc.v4_dedicated_glider_binding.user.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct g38_options.pc.v3_early_access_release.machine.Settings { +}; + +struct g38_options.pc.v3_early_access_release.user.Settings { + keen::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct G38SupportedFeatures { + keen::RenderSettingsFeatures renderFeatures; // Offset: 0 + keen::bool isNvReflexAvailable; // Offset: 8 +}; + +struct debug.CameraPathKeyframe { + keen::Matrix43 transform; // Offset: 0 + keen::Time time; // Offset: 64 +}; + +struct debug.CameraRecording { + keen::BlobArray cameraPath; // Offset: 0 +}; + +typedef keen::AchievementId AchievementId; + +typedef keen::AchievementValue AchievementValue; + +typedef keen::ObjectReference LocaTagReference; + +typedef keen::ds::LocaTagReference NameLocaTag; + +typedef keen::ds::LocaTagReference DescriptionLocaTag; + +struct AchievementData { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::DescriptionLocaTag description; // Offset: 16 + keen::bool hasUnlockValue; // Offset: 32 + keen::ds::AchievementValue unlockValue; // Offset: 36 +}; + +typedef keen::ObjectReference AchievementDataReference; + +typedef keen::DsString string; + +struct Achievement { + keen::ds::AchievementId id; // Offset: 0 + keen::bool hasUnlockValue; // Offset: 4 + keen::ds::AchievementValue unlockValue; // Offset: 8 + keen::uint32 dosId; // Offset: 12 + keen::ds::string steamName; // Offset: 16 + keen::ds::string steamStat; // Offset: 56 + keen::int npId; // Offset: 96 + keen::int xsapiId; // Offset: 100 + keen::Guid guid; // Offset: 104 + keen::ds::string dbgName; // Offset: 120 +}; + +struct AchievementDefinitionResource { + keen::DsArray achievements; // Offset: 0 +}; + +typedef keen::ObjectReference AchievementDefinitionReference; + +struct AchievementSubDirectory { +}; + +struct AchievementDirectory { +}; + +typedef keen::AmbientSfxPlaybackType AmbientSfxPlaybackType; + +typedef keen::AmbientEitherOrBoth AmbientEitherOrBoth; + +typedef keen::ObjectReference SoundContainerReference; + +typedef keen::AmbientMask AmbientMask; + +struct AmbientSoundEffectEntry { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::ds::SoundContainerReference soundContainer; // Offset: 8 + keen::ObjectReference ingameTimeSpan; // Offset: 24 + keen::ds::AmbientSfxPlaybackType playbackType; // Offset: 40 + keen::ds::AmbientMask additionalTagsInclude; // Offset: 41 + keen::Bitmask8 weather; // Offset: 42 +}; + +typedef keen::AmbientEnvironment AmbientEnvironment; + +struct AmbientSoundEffect { + keen::bool mute; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::bool inAllEnvironments; // Offset: 8 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 9 + keen::ds::AmbientEitherOrBoth indoors; // Offset: 10 + keen::ds::AmbientEnvironment environment; // Offset: 11 + keen::ds::AmbientMask ambientTagsInclude; // Offset: 12 + keen::ds::AmbientMask ambientTagsExclude; // Offset: 13 +}; + +struct AmbientSoundEffectParameters { + keen::float sfxLifeTimeInSeconds; // Offset: 0 + keen::float chanceToPlaySound; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::uint32 daytimeFadeValuePlusMinusMinutes; // Offset: 64 + keen::float playerIsInFogThreshold; // Offset: 68 + keen::float startFogEffectsThreshold; // Offset: 72 + keen::float stopFogEffectsThreshold; // Offset: 76 + keen::float playerIsInEnvironmentThreshold; // Offset: 80 + keen::float startEnvironmentEffectsThreshold; // Offset: 84 + keen::float stopEnvironmentEffectsThreshold; // Offset: 88 + keen::float baseAmbienceThreshold; // Offset: 92 + keen::float smallEnvironmentMultiplier; // Offset: 96 + keen::float oneshotDistanceMultiplier; // Offset: 100 + keen::float temporalSmoothingSpeed; // Offset: 104 + keen::Time silenceAfterVictoryDuration; // Offset: 112 + keen::float fogMusicFogVolumeMod; // Offset: 120 + keen::float environmentMusicFogVolumeMod; // Offset: 124 + keen::float environmentMusicEnvVolumeMod; // Offset: 128 + keen::float fogLoopsFogVolumeMod; // Offset: 132 + keen::float environmentLoopsFogVolumeMod; // Offset: 136 + keen::float environmentLoopsEnvVolumeMod; // Offset: 140 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 144 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 152 +}; + +struct AmbientSfxSubDirectory { +}; + +struct AmbientSfxDirectory { +}; + +typedef keen::SoundContainerMode SoundContainerMode; + +typedef keen::SoundContainerScene SoundContainerScene; + +struct SoundContainerShared { + keen::ds::SoundContainerMode mode; // Offset: 0 + keen::ds::SoundContainerScene scene; // Offset: 1 + keen::bool loop; // Offset: 2 + keen::bool loopSameChosenEntry; // Offset: 3 + keen::uint32 avoidRepeatingLastX; // Offset: 4 + keen::float32 volume; // Offset: 8 + keen::float32 volumeRandomness; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 pitchRandomness; // Offset: 20 + keen::Time sleep; // Offset: 24 + keen::Time sleepRandomness; // Offset: 32 + keen::bool hasPosition; // Offset: 40 + keen::float32 minDistance; // Offset: 44 + keen::float32 maxDistance; // Offset: 48 + keen::bool hasRandomPosition; // Offset: 52 + keen::float32 randomLeftRight; // Offset: 56 + keen::float32 randomFrontBack; // Offset: 60 +}; + +struct AmbientSfxResource { + keen::bool inAllEnvironments; // Offset: 0 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 1 + keen::ds::AmbientEitherOrBoth indoors; // Offset: 2 + keen::ds::AmbientEnvironment environment; // Offset: 3 + keen::ds::AmbientSfxPlaybackType playbackType; // Offset: 4 + keen::Bitmask8 weather; // Offset: 5 + keen::ds::AmbientMask ambientTagsInclude; // Offset: 6 + keen::ds::AmbientMask ambientTagsExclude; // Offset: 7 + keen::float32 volume; // Offset: 8 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::ds::SoundContainerShared soundContainerShared; // Offset: 32 + keen::uint soundStart; // Offset: 96 + keen::uint soundCount; // Offset: 100 + keen::Guid id; // Offset: 104 + keen::DsString debugNameEffect; // Offset: 120 + keen::DsString debugNameEffectEntry; // Offset: 160 +}; + +struct AmbientSfxCollectionResource { + keen::DsArray effects; // Offset: 0 + keen::DsArray loops; // Offset: 40 + keen::DsArray music; // Offset: 80 + keen::DsArray sounds; // Offset: 120 +}; + +struct AmbientEventSounds { + keen::ds::SoundContainerReference battleStartJingle; // Offset: 0 + keen::ds::SoundContainerReference battleEndJingle; // Offset: 16 + keen::ds::SoundContainerReference bossMusicScavenger; // Offset: 32 + keen::ds::SoundContainerReference bossMusicMonstrosity; // Offset: 48 + keen::ds::SoundContainerReference bossMusicFoggerHeavy; // Offset: 64 + keen::ds::SoundContainerReference bossMusicFoggerMage; // Offset: 80 + keen::ds::SoundContainerReference bossMusicVukahBigfoot; // Offset: 96 + keen::ds::SoundContainerReference bossMusicLurchie; // Offset: 112 + keen::ds::SoundContainerReference bossMusicHollow; // Offset: 128 + keen::ds::SoundContainerReference bossMusicCyclops; // Offset: 144 + keen::ds::SoundContainerReference bossMusicDragon; // Offset: 160 + keen::ds::SoundContainerReference bushCollision; // Offset: 176 +}; + +typedef keen::ObjectReference SoundContainerResourceReference; + +struct AmbientEventSoundsResource { + keen::ds::SoundContainerResourceReference battleStartJingle; // Offset: 0 + keen::ds::SoundContainerResourceReference battleEndJingle; // Offset: 16 + keen::ds::SoundContainerResourceReference bossMusicScavenger; // Offset: 32 + keen::ds::SoundContainerResourceReference bossMusicMonstrosity; // Offset: 48 + keen::ds::SoundContainerResourceReference bossMusicFoggerHeavy; // Offset: 64 + keen::ds::SoundContainerResourceReference bossMusicFoggerMage; // Offset: 80 + keen::ds::SoundContainerResourceReference bossMusicVukahBigfoot; // Offset: 96 + keen::ds::SoundContainerResourceReference bossMusicLurchie; // Offset: 112 + keen::ds::SoundContainerResourceReference bossMusicHollow; // Offset: 128 + keen::ds::SoundContainerResourceReference bossMusicCyclops; // Offset: 144 + keen::ds::SoundContainerResourceReference bossMusicDragon; // Offset: 160 + keen::ds::SoundContainerResourceReference bushCollision; // Offset: 176 +}; + +struct AmbientParameterResource { + keen::uint16 chanceForSilence; // Offset: 0 + keen::float sfxLifeTimeInSeconds; // Offset: 4 + keen::float environmentMusicFadeValuePerSecond; // Offset: 8 + keen::float loopFadeValuePerSecond; // Offset: 12 + keen::float musicFadeOutToBattleValuePerSecond; // Offset: 16 + keen::float musicFadeOutToBossValuePerSecond; // Offset: 20 + keen::float bossMusicFadeInValuePerSecond; // Offset: 24 + keen::float bossMusicFadeOutValuePerSecond; // Offset: 28 + keen::float combatMusicFadeInValuePerSecond; // Offset: 32 + keen::float combatMusicFadeOutValuePerSecond; // Offset: 36 + keen::float caveLoopsFadeInPerSeconds; // Offset: 40 + keen::float caveLoopsFadeOutPerSeconds; // Offset: 44 + keen::Time caveMusicDelay; // Offset: 48 + keen::float rainIndoorFade; // Offset: 56 + keen::float rainIndoorLoweredVolume; // Offset: 60 + keen::float playerIsInFogThreshold; // Offset: 64 + keen::float startFogEffectsThreshold; // Offset: 68 + keen::float stopFogEffectsThreshold; // Offset: 72 + keen::float playerIsInEnvironmentThreshold; // Offset: 76 + keen::float startEnvironmentEffectsThreshold; // Offset: 80 + keen::float stopEnvironmentEffectsThreshold; // Offset: 84 + keen::float baseAmbienceThreshold; // Offset: 88 + keen::float smallEnvironmentMultiplier; // Offset: 92 + keen::float oneshotDistanceMultiplier; // Offset: 96 + keen::float temporalSmoothingSpeed; // Offset: 100 + keen::Time silenceAfterVictoryDuration; // Offset: 104 + keen::float fogMusicFogVolumeMod; // Offset: 112 + keen::float environmentMusicFogVolumeMod; // Offset: 116 + keen::float environmentMusicEnvVolumeMod; // Offset: 120 + keen::float fogLoopsFogVolumeMod; // Offset: 124 + keen::float environmentLoopsFogVolumeMod; // Offset: 128 + keen::float environmentLoopsEnvVolumeMod; // Offset: 132 + keen::uint32 propsNeededToEnableAmbientTag; // Offset: 136 + keen::Time pauseBetweenBushCollisionSounds; // Offset: 144 +}; + +typedef keen::ObjectReference VfxReference; + +typedef keen::ObjectReference IngameTimeSpanReference; + +struct AmbientVisualEffectEntry { + keen::ds::VfxReference vfx; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Bitmask8 weather; // Offset: 32 +}; + +struct AmbientVisualEffect { + keen::ds::AmbientEnvironment environment; // Offset: 0 + keen::bool inAllEnvironments; // Offset: 1 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 2 +}; + +struct AmbientVfxSubDirectory { +}; + +struct AmbientVfxDirectory { +}; + +struct AmbientVfxResource { + keen::ds::VfxReference vfx; // Offset: 0 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 + keen::ds::AmbientEnvironment environment; // Offset: 32 + keen::bool inAllEnvironments; // Offset: 33 + keen::ds::AmbientEitherOrBoth inFog; // Offset: 34 + keen::Bitmask8 weather; // Offset: 35 + keen::Guid id; // Offset: 36 +}; + +struct AmbientVfxCollectionResource { + keen::DsArray effects; // Offset: 0 +}; + +struct AmbientEnvironmentMapResource { + keen::StaticArray voxelIdToAmbientEnvironmentMap; // Offset: 0 +}; + +struct AmbientPPPDawnDuskOffsets { + keen::Time nightAdaptationStartOffset; // Offset: 0 + keen::Time nightAdaptationEndOffset; // Offset: 8 + keen::Time dayAdaptationStartOffset; // Offset: 16 + keen::Time dayAdaptationEndOffset; // Offset: 24 +}; + +struct AmbientPostProcessingParameters { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::ds::AmbientPPPDawnDuskOffsets dawnDuskOffset; // Offset: 8 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientPostProcessingResource { + keen::float rainWeatherSaturation; // Offset: 0 + keen::float nightAdaptationStrength; // Offset: 4 + keen::Time nightAdaptationStartOffset; // Offset: 8 + keen::Time nightAdaptationEndOffset; // Offset: 16 + keen::Time dayAdaptationStartOffset; // Offset: 24 + keen::Time dayAdaptationEndOffset; // Offset: 32 + keen::bool deathOnlyDesaturates; // Offset: 40 + keen::float deathScreenSaturation; // Offset: 44 + keen::Color color; // Offset: 48 + keen::float defaultSaturation; // Offset: 52 +}; + +struct AmbientCollectionResource { + keen::ObjectReference sfxCollection; // Offset: 0 + keen::ObjectReference vfxCollection; // Offset: 16 + keen::ObjectReference parameters; // Offset: 32 + keen::ObjectReference mapping; // Offset: 48 + keen::ObjectReference eventSounds; // Offset: 64 + keen::ObjectReference postProcessing; // Offset: 80 +}; + +typedef keen::ambient::ReasonThisSoundDoesNotPlay ambient.ReasonThisSoundDoesNotPlay; + +typedef keen::ambient::ReasonThisSoundDoesNotPlayMask ambient.ReasonThisSoundDoesNotPlayMask; + +struct ambient.SoundExplanation { + keen::ds::ambient::ReasonThisSoundDoesNotPlayMask reason; // Offset: 0 + keen::float volumeCurrent; // Offset: 4 + keen::float volumeTarget; // Offset: 8 + keen::Guid soundGuid; // Offset: 12 +}; + +struct ambient.EffectsSoundReasonsDebugMessage { + keen::Guid effectGuid; // Offset: 0 + keen::ds::ambient::SoundExplanation explanation; // Offset: 16 + keen::uint cellIndex; // Offset: 44 +}; + +struct ambient.DebugMessageBundle { + keen::DsArray data; // Offset: 0 +}; + +typedef keen::BossMusicType BossMusicType; + +struct ecs.Component { +}; + +struct ecs.IsTame { +}; + +typedef keen::AnimationLoopType AnimationLoopType; + +struct AnimationJointQuality { + keen::ds::string trackName; // Offset: 0 + keen::float32 quality; // Offset: 40 +}; + +typedef keen::AttachmentSlot AttachmentSlot; + +typedef keen::AttachmentSlotMask AttachmentSlotMask; + +typedef keen::AnimationSpace AnimationSpace; + +struct ModelHintSetEntry { + keen::ObjectReference model; // Offset: 0 +}; + +struct ModelHintSet { +}; + +struct Animation { + keen::ds::string animation_node; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 40 + keen::ObjectReference modelHint; // Offset: 56 + keen::ObjectReference modelHintSet; // Offset: 72 + keen::ObjectReference clothCollider; // Offset: 88 + keen::uint32 startFrame; // Offset: 104 + keen::uint32 endFrame; // Offset: 108 + keen::sint32 refFrame; // Offset: 112 + keen::ds::AnimationSpace space; // Offset: 116 + keen::float32 xanimScale; // Offset: 120 + keen::float32 quality; // Offset: 124 + keen::DsArray qualityOverrite; // Offset: 128 + keen::ds::AnimationLoopType loopType; // Offset: 168 + keen::float32 autoLoopEpsilon; // Offset: 172 + keen::bool loopLve; // Offset: 176 + keen::bool exportJointAnimation; // Offset: 177 + keen::bool exportLveAnimation; // Offset: 178 + keen::bool exportSequenceData; // Offset: 179 + keen::bool exportDebugData; // Offset: 180 +}; + +typedef keen::ObjectReference AnimationReference; + +struct AnimationInfo { + keen::float32 length; // Offset: 0 + keen::uint32 jointCount; // Offset: 4 + keen::uint32 frameCount; // Offset: 8 + keen::ObjectReference modelHint; // Offset: 12 + keen::ObjectReference modelHintSet; // Offset: 28 + keen::ObjectReference hierarchy; // Offset: 44 + keen::bool hasLve; // Offset: 60 + keen::bool hasSequences; // Offset: 61 + keen::bool loops; // Offset: 62 + keen::ds::AnimationSpace space; // Offset: 63 + keen::DsString name; // Offset: 64 +}; + +struct AnimationConverterConfiguration { + keen::bool checkParentNames; // Offset: 0 + keen::bool checkMatrixDecomposition; // Offset: 1 +}; + +struct Sequence { + keen::Time length; // Offset: 0 + keen::bool loop; // Offset: 8 +}; + +struct AnimationEventSequence { + keen::ObjectReference hierarchyPreviewSettings; // Offset: 16 + keen::ObjectReference previewClothCollider; // Offset: 32 +}; + +typedef keen::ObjectReference AnimationEventSequenceReference; + +struct AnimationSequenceContainer { + keen::DsArray sequences; // Offset: 0 +}; + +typedef keen::Blend1DInterpolationCurve Blend1DInterpolationCurve; + +struct animationgraph.StateId { +}; + +struct animationgraph.InputId { +}; + +struct animationgraph.FloatInputId { +}; + +struct animationgraph.BoolInputId { +}; + +struct animationgraph.IntInputId { +}; + +struct animationgraph.UintInputId { +}; + +struct animationgraph.IdInputId { +}; + +struct animationgraph.OverlayId { +}; + +struct animationgraph.OverlayContextId { +}; + +typedef keen::ObjectReference animationgraph.StateIdReference; + +typedef keen::ObjectReference animationgraph.InputIdReference; + +typedef keen::ObjectReference animationgraph.OverlayIdReference; + +typedef keen::ObjectReference animationgraph.OverlayContextIdReference; + +typedef keen::animationgraph::StateIdHash animationgraph.StateIdHash; + +typedef keen::animationgraph::InputIdHash animationgraph.InputIdHash; + +struct animationgraph.AnimationIdCollection { +}; + +struct animationgraph.StateIdCollection { +}; + +struct animationgraph.InputIdCollection { +}; + +struct animationgraph.OverlayIdCollection { +}; + +struct animationgraph.OverlayContextIdCollection { +}; + +struct animationgraph.AnimationDebugEntry { + keen::Guid guid; // Offset: 0 + keen::HashKey32 hash; // Offset: 16 + keen::DsString debugName; // Offset: 24 +}; + +struct animationgraph.AnimationGraphDebugInfo { + keen::DsArray entries; // Offset: 0 +}; + +typedef keen::animationgraph::RootMotionFlag animationgraph.RootMotionFlag; + +typedef keen::animationgraph::RootMotionMask animationgraph.RootMotionMask; + +struct animationgraph.NodeBase { + keen::ds::animationgraph::StateIdReference id; // Offset: 0 + keen::Vector2 position; // Offset: 16 + keen::float32 defaultBlendInDuration; // Offset: 24 + keen::float3 pivotOffset; // Offset: 28 + keen::bool isIncompatibleWithOverlays; // Offset: 40 + keen::bool restartOnRetrigger; // Offset: 41 +}; + +struct animationgraph.AnimationSpeedGradientController { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph.AnimationNode { + keen::ds::AnimationReference animation; // Offset: 44 +}; + +struct animationgraph.AnimationSpeedGradientNode { + keen::ds::animationgraph::AnimationSpeedGradientController speedController; // Offset: 60 +}; + +struct animationgraph.BlendData1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph.ChoiceData1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph.NoAnimationBlendData1D { +}; + +struct animationgraph.NoAnimationChoiceData1D { +}; + +struct animationgraph.AnimationBlendData1D { + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationChoiceData1D { + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.AnimationSpeedGradientBlendData1D { + keen::ds::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.AnimationSpeedGradientChoiceData1D { + keen::ds::animationgraph::AnimationSpeedGradientController speedController; // Offset: 20 +}; + +struct animationgraph.HierarchyBlendData1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.BlendHierarchyDataChoice1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 20 + keen::bool wrapInputAsAngle; // Offset: 21 +}; + +struct animationgraph.ChoiceHierarchyDataBlend1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyDataChoice1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 4 +}; + +struct animationgraph.GenderAnimationReference { + keen::ds::AnimationReference maleAnimation; // Offset: 0 + keen::ds::AnimationReference femaleAnimation; // Offset: 16 +}; + +struct animationgraph.PrimaryItemSpecificAnimationReference { + keen::ds::AnimationReference unarmedAnimation; // Offset: 0 + keen::ds::AnimationReference singleAndShieldAnimation; // Offset: 16 + keen::ds::AnimationReference singleNoShieldAnimation; // Offset: 32 + keen::ds::AnimationReference dualAnimation; // Offset: 48 + keen::ds::AnimationReference twoHandedAnimation; // Offset: 64 + keen::ds::AnimationReference bowPrimaryAnimation; // Offset: 80 + keen::ds::AnimationReference staffPrimaryAnimation; // Offset: 96 + keen::ds::AnimationReference wandPrimaryAnimation; // Offset: 112 +}; + +struct animationgraph.SecondaryItemSpecificAnimationReference { + keen::ds::AnimationReference bowAnimation; // Offset: 0 + keen::ds::AnimationReference staffSecondaryAnimation; // Offset: 16 + keen::ds::AnimationReference wandSecondaryAnimation; // Offset: 32 +}; + +struct animationgraph.PrimaryItemSpecificAnimationNode { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.SecondaryItemSpecificAnimationNode { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 44 +}; + +struct animationgraph.PrimaryItemSpecificBlend1D { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlend1D { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificChoice1D { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificChoice1D { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.VerySpecialBlockNode { +}; + +struct animationgraph.MaskedNode { + keen::DsString delimiterJoint; // Offset: 48 + keen::ds::animationgraph::InputIdReference delimiterInputName; // Offset: 88 + keen::Time lowerBodyBlendInTime; // Offset: 104 + keen::Time lowerBodyBlendOutTime; // Offset: 112 + keen::bool resetLowerBodyOnToggleOn; // Offset: 120 + keen::ObjectReference upperAnims; // Offset: 124 + keen::ObjectReference lowerAnims; // Offset: 140 +}; + +struct animationgraph.Blend1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 44 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 60 + keen::bool wrapInputAsAngle; // Offset: 61 +}; + +struct animationgraph.Choice1D { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 44 +}; + +struct animationgraph.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph.AnimationBlendLayer { + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct animationgraph.HierarchyBlendLayer { + keen::ds::animationgraph::HierarchyBlendData1D blendHierarchy; // Offset: 4 +}; + +struct animationgraph.ChoiceHierarchyBlendLayer { + keen::ds::animationgraph::ChoiceHierarchyDataBlend1D choiceHierarchy; // Offset: 4 +}; + +struct animationgraph.PrimaryItemSpecificBlendLayer { + keen::ds::animationgraph::PrimaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.SecondaryItemSpecificBlendLayer { + keen::ds::animationgraph::SecondaryItemSpecificAnimationReference animations; // Offset: 4 +}; + +struct animationgraph.BlendLayersNode { +}; + +typedef keen::ObjectReference animationgraph.NodeBaseReference; + +struct animationgraph.TransitionBase { + keen::ds::animationgraph::NodeBaseReference startNode; // Offset: 0 + keen::ds::animationgraph::NodeBaseReference endNode; // Offset: 16 + keen::float32 duration; // Offset: 32 +}; + +struct animationgraph.LinearTransition { + keen::bool sync; // Offset: 36 +}; + +struct animationgraph.AnimationTransition { + keen::ds::AnimationReference animation; // Offset: 36 + keen::float32 blendIn; // Offset: 52 + keen::float32 blendOut; // Offset: 56 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 60 +}; + +struct animationgraph.OverlayBase { + keen::ds::animationgraph::OverlayIdReference id; // Offset: 0 + keen::ds::animationgraph::OverlayContextIdReference context; // Offset: 16 + keen::DsArray abortUnlessInNodes; // Offset: 32 +}; + +struct animationgraph.AnimationOverlay { + keen::ds::AnimationReference animation; // Offset: 72 +}; + +struct Group { +}; + +struct AnimationGraphDirectory { +}; + +struct AnimationGraph { + keen::float32 defaultTransitionTime; // Offset: 0 + keen::DsArray genderLookupTable; // Offset: 8 + keen::ObjectReference clothColliderReference; // Offset: 48 +}; + +struct animation.NodeId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.TransitionBase { + keen::ds::animation::NodeId endNodeIndex; // Offset: 0 + keen::Time duration; // Offset: 8 +}; + +struct animationgraph_resource.LinearTransition { + keen::bool sync; // Offset: 16 +}; + +struct animation.AnimationId { + keen::uint32 id; // Offset: 0 +}; + +struct animationgraph_resource.GenderSpecificAnimationIndex { + keen::ds::animation::AnimationId maleAnimation; // Offset: 0 + keen::ds::animation::AnimationId femaleAnimation; // Offset: 4 +}; + +struct animationgraph_resource.ExitAnimation { + keen::ds::animation::NodeId targetNodeIndex; // Offset: 0 + keen::Time blendIn; // Offset: 8 + keen::Time blendOut; // Offset: 16 + keen::ds::animation::AnimationId animationIndex; // Offset: 24 + keen::bool simultaneouslyPlayTargetAnimation; // Offset: 28 +}; + +struct animationgraph_resource.AnimationSpeedGradientController { + keen::ds::animationgraph::InputIdReference inputName; // Offset: 0 + keen::float32 inputValueA; // Offset: 16 + keen::float32 inputValueB; // Offset: 20 + keen::float32 speedFactorA; // Offset: 24 + keen::float32 speedFactorB; // Offset: 28 +}; + +struct animationgraph_resource.NodeBase { + keen::ds::animationgraph::StateIdReference stateIdReference; // Offset: 0 + keen::ds::animationgraph::StateIdHash stateId; // Offset: 16 + keen::DsArray onExits; // Offset: 24 + keen::uint32 defaultInboundTransition; // Offset: 64 + keen::DsArray outgoingTransitions; // Offset: 72 + keen::float3 pivotOffset; // Offset: 112 + keen::bool isIncompatibleWithOverlays; // Offset: 124 + keen::bool restartOnRetrigger; // Offset: 125 + keen::bool graphCanBePaused; // Offset: 126 +}; + +struct animationgraph_resource.AnimationNode { + keen::ds::animation::AnimationId animationIndex; // Offset: 128 +}; + +struct animationgraph_resource.AnimationSpeedGradientNode { + keen::ds::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 136 +}; + +struct animationgraph_resource.BlendDataFloat1DBase { + keen::float32 position; // Offset: 0 +}; + +struct animationgraph_resource.BlendDataUint1DBase { + keen::uint32 choice; // Offset: 0 +}; + +struct animationgraph_resource.NoAnimationBlendDataFloat1D { +}; + +struct animationgraph_resource.AnimationBlendDataFloat1D { + keen::ds::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.NoAnimationBlendDataUint1D { +}; + +struct animationgraph_resource.AnimationBlendDataUint1D { + keen::ds::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataFloat1D { + keen::ds::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.AnimationSpeedGradientBlendDataUint1D { + keen::ds::animationgraph_resource::AnimationSpeedGradientController speedController; // Offset: 8 +}; + +struct animationgraph_resource.FloatHierarchy1D { + keen::ds::animationgraph::InputIdReference floatInputName; // Offset: 0 + keen::bool wrapInputAsAngle; // Offset: 16 + keen::ds::Blend1DInterpolationCurve curve; // Offset: 17 + keen::DsArray> blendData; // Offset: 24 +}; + +struct animationgraph_resource.UintHierarchy1D { + keen::ds::animationgraph::InputIdReference uintInputName; // Offset: 0 + keen::DsArray> blendData; // Offset: 16 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataFloat1D { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.FloatHierarchyBlendDataUint1D { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.UintHierarchyBlendDataFloat1D { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.UintHierarchyBlendDataUint1D { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.BlendFloat1DNode { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 128 +}; + +struct animationgraph_resource.BlendUint1DNode { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 128 +}; + +struct animationgraph_resource.BlendLayerBase { + keen::float32 weight; // Offset: 0 +}; + +struct animationgraph_resource.AnimationBlendLayer { + keen::ds::animation::AnimationId animationIndex; // Offset: 4 +}; + +struct animationgraph_resource.BlendHierarchyBlendLayer { + keen::ds::animationgraph_resource::FloatHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.ChoiceHierarchyBlendLayer { + keen::ds::animationgraph_resource::UintHierarchy1D hierarchy; // Offset: 8 +}; + +struct animationgraph_resource.BlendLayersNode { + keen::DsArray> blendLayers; // Offset: 128 +}; + +typedef keen::ObjectReference animationgraph_resource.NodeBaseReference; + +struct animationgraph_resource.VerySpecialBlockNode { + keen::ds::string delimiterJoint; // Offset: 128 + keen::ds::animationgraph_resource::UintHierarchy1D blockAnimData; // Offset: 168 + keen::ds::animationgraph_resource::FloatHierarchy1D moveAnimData; // Offset: 224 +}; + +struct animationgraph_resource.MaskedNode { + keen::ds::string delimiterJoint; // Offset: 128 + keen::ds::animationgraph::InputIdReference delimiterInputName; // Offset: 168 + keen::Time lowerBodyBlendInTime; // Offset: 184 + keen::Time lowerBodyBlendOutTime; // Offset: 192 + keen::bool resetLowerBodyOnToggleOn; // Offset: 200 + keen::DsArray> upperLayers; // Offset: 208 + keen::DsArray> lowerLayers; // Offset: 248 +}; + +struct animationgraph_resource.AnimationListEntry { + keen::ds::AnimationReference reference; // Offset: 0 + keen::Time duration; // Offset: 16 + keen::uint32 frameCount; // Offset: 24 + keen::bool hasLve; // Offset: 28 + keen::bool hasSequences; // Offset: 29 + keen::bool loops; // Offset: 30 + keen::ds::AnimationSpace space; // Offset: 31 + keen::DsString name; // Offset: 32 +}; + +struct animationgraph_resource.AnimationListResource { + keen::DsArray animations; // Offset: 0 +}; + +struct animationgraph_resource.OverlayBase { + keen::ds::animationgraph::StateIdHash stateId; // Offset: 0 + keen::ds::animationgraph::OverlayIdReference name; // Offset: 4 + keen::ds::animationgraph::OverlayContextIdReference context; // Offset: 20 + keen::DsArray abortUnlessInNodes; // Offset: 40 + keen::DsString dbgName; // Offset: 80 +}; + +struct animationgraph_resource.AnimationOverlay { + keen::ds::animation::AnimationId maleAnimationIndex; // Offset: 120 + keen::ds::animation::AnimationId femaleAnimationIndex; // Offset: 124 +}; + +typedef keen::AnimationJointIndex AnimationJointIndex; + +struct AnimationGraphResource { + keen::uint32 jointCount; // Offset: 0 + keen::ObjectReference hierarchy; // Offset: 4 + keen::DsArray> nodes; // Offset: 24 + keen::DsArray animations; // Offset: 64 + keen::DsArray> transitions; // Offset: 104 + keen::DsArray> overlays; // Offset: 144 + keen::ds::animationgraph_resource::UintHierarchy1D globalOverlay; // Offset: 184 + keen::StaticArray slotBoneIndexMapping; // Offset: 240 + keen::ObjectReference clothColliderReference; // Offset: 268 +}; + +typedef keen::ObjectReference AnimationGraphReference; + +struct AnimationGraphInputBase { + keen::ds::animationgraph::InputIdHash hash; // Offset: 0 +}; + +struct AnimationGraphFloatInput { + keen::float32 value; // Offset: 4 +}; + +struct AnimationGraphUintInput { + keen::uint32 value; // Offset: 4 +}; + +struct AnimationGraphBoolInput { + keen::bool value; // Offset: 4 +}; + +struct AnimationGraphIntInput { + keen::sint32 value; // Offset: 4 +}; + +struct AnimationGraphIdInput { + keen::ds::animationgraph::StateIdHash value; // Offset: 4 +}; + +struct WarpToTargetConfig { + keen::WorldTransform targetTransform; // Offset: 0 + keen::Time duration; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::float32 maxScale; // Offset: 72 + keen::bool isTargetSet; // Offset: 76 + keen::bool abortWarpAboveMaxScale; // Offset: 77 +}; + +struct RootMotionConfig { + keen::float32 movementMod; // Offset: 0 + keen::ds::WarpToTargetConfig warpToTargetConfig; // Offset: 8 +}; + +typedef keen::OverlayInputsEventType OverlayInputsEventType; + +struct OverlayInputsEvent { + keen::ds::animationgraph::StateIdHash animationStateId; // Offset: 0 + keen::uint32 jointId; // Offset: 4 + keen::ds::OverlayInputsEventType type; // Offset: 8 + keen::uint8 changeCounter; // Offset: 9 +}; + +struct AnimationGraphInputs { + keen::StaticArray floatInputs; // Offset: 0 + keen::StaticArray uintInputs; // Offset: 64 + keen::StaticArray boolInputs; // Offset: 128 + keen::StaticArray intInputs; // Offset: 144 + keen::StaticArray idInputs; // Offset: 160 + keen::StaticArray overlayInputs; // Offset: 176 + keen::ds::RootMotionConfig rootMotionConfig; // Offset: 240 + keen::WorldTransform currentTransform; // Offset: 328 +}; + +typedef keen::AnimGraphPreviewEventType AnimGraphPreviewEventType; + +struct AnimGraphPreviewSeqenceEntry { + keen::ds::AnimGraphPreviewEventType eventType; // Offset: 0 + keen::Time timeFromStart; // Offset: 8 + keen::uint32 selectedIndex; // Offset: 16 +}; + +struct AnimGraphPreviewSeqence { + keen::DsArray entries; // Offset: 0 +}; + +struct AnimationGraphInfo { + keen::DsArray nodes; // Offset: 0 + keen::DsArray floatInputs; // Offset: 40 + keen::DsArray uintInputs; // Offset: 80 + keen::DsArray boolInputs; // Offset: 120 + keen::DsArray overlays; // Offset: 160 + keen::ObjectReference modelHierarchy; // Offset: 200 +}; + +typedef keen::anim_graph::LayerBlendMode anim_graph.LayerBlendMode; + +typedef keen::anim_graph::AdditiveType anim_graph.AdditiveType; + +typedef keen::anim_graph::TransitionRootMotionMode anim_graph.TransitionRootMotionMode; + +struct anim_graph.LayerBlendOptions { + keen::ds::anim_graph::LayerBlendMode blendMode; // Offset: 0 + keen::ObjectReference boneMask; // Offset: 4 +}; + +struct anim_graph.BoneMask { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntry { + keen::ds::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 40 +}; + +struct anim_graph.BoneMaskResource { + keen::DsArray entries; // Offset: 0 +}; + +struct anim_graph.BoneMaskEntryResource { + keen::uint8 boneIndex; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct anim_graph.AnimationSpeedController { + keen::ObjectReference inputName; // Offset: 0 + keen::HashKey32 inputHash; // Offset: 16 + keen::float32 inputValueA; // Offset: 20 + keen::float32 inputValueB; // Offset: 24 + keen::float32 speedFactorA; // Offset: 28 + keen::float32 speedFactorB; // Offset: 32 +}; + +struct anim_graph.GenderMappingEntry { + keen::Guid maleAnimation; // Offset: 0 + keen::Guid femaleAnimation; // Offset: 16 +}; + +typedef keen::anim_graph::tool_graph::DataType anim_graph.tool_graph.DataType; + +struct anim_graph.tool_graph.GraphParameterBase { + keen::ObjectReference inputId; // Offset: 0 +}; + +struct anim_graph.tool_graph.FloatGraphParameter { +}; + +struct anim_graph.tool_graph.IntGraphParameter { +}; + +struct anim_graph.tool_graph.BoolGraphParameter { +}; + +struct anim_graph.tool_graph.IDGraphParameterValue { +}; + +struct anim_graph.tool_graph.IDGraphParameter { +}; + +struct anim_graph.tool_graph.GraphParameterSet { +}; + +struct anim_graph.tool_graph.PinBase { + keen::ds::anim_graph::tool_graph::DataType dataType; // Offset: 0 +}; + +struct anim_graph.tool_graph.InputPin { +}; + +struct anim_graph.tool_graph.OutputPin { +}; + +struct anim_graph.tool_graph.Link { + keen::ObjectReference sourcePin; // Offset: 0 + keen::ObjectReference targetPin; // Offset: 16 +}; + +struct anim_graph.tool_graph.EditorNodeBase { + keen::Vector2 uiPosition; // Offset: 0 + keen::ObjectReference secondaryGraph; // Offset: 8 + keen::ObjectReference childGraph; // Offset: 24 +}; + +struct anim_graph.tool_graph.FloatParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.FloatConstant { + keen::float32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.FloatAdd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatSubtract { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatMultiply { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.FloatGreaterThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatLessThan { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool orEqual; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::float32 tolerance; // Offset: 88 +}; + +struct anim_graph.tool_graph.FloatGreaterThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatLessThanConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::bool orEqual; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::float32 value; // Offset: 56 + keen::ObjectReference result; // Offset: 60 + keen::float32 tolerance; // Offset: 76 +}; + +struct anim_graph.tool_graph.FloatDivide { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.SelectPoseBase { + keen::ObjectReference outputPose; // Offset: 40 + keen::float32 blendTime; // Offset: 56 +}; + +struct anim_graph.tool_graph.SelectPoseByBool { + keen::ObjectReference poseA; // Offset: 60 + keen::ObjectReference poseB; // Offset: 76 +}; + +struct anim_graph.tool_graph.SelectPoseByBoolParameters { + keen::ObjectReference selectA; // Offset: 40 +}; + +struct anim_graph.tool_graph.FloatRemap { + keen::FloatRange inputRange; // Offset: 40 + keen::FloatRange outputRange; // Offset: 48 + keen::ObjectReference inputValue; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDConstant { + keen::ObjectReference value; // Offset: 40 + keen::ObjectReference output; // Offset: 56 +}; + +struct anim_graph.tool_graph.IDEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IDParameterEqualsConstant { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 + keen::ObjectReference result; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IDEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::ObjectReference value; // Offset: 72 + keen::bool ignoreForAnimationSequences; // Offset: 88 +}; + +struct anim_graph.tool_graph.IntParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.IntConstant { + keen::sint32 value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.IntEquals { + keen::ObjectReference a; // Offset: 40 + keen::ObjectReference b; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.IntEqualsConstant { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 + keen::sint32 value; // Offset: 72 +}; + +struct anim_graph.tool_graph.IsOverlayActive { + keen::ObjectReference active; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolParameter { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference value; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolConstant { + keen::bool value; // Offset: 40 + keen::ObjectReference output; // Offset: 44 +}; + +struct anim_graph.tool_graph.BoolNegate { + keen::ObjectReference input; // Offset: 40 + keen::ObjectReference result; // Offset: 56 +}; + +struct anim_graph.tool_graph.BoolAnd { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolOr { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.BoolEquals { + keen::ObjectReference lhs; // Offset: 40 + keen::ObjectReference rhs; // Offset: 56 + keen::ObjectReference result; // Offset: 72 +}; + +struct anim_graph.tool_graph.LayerBlend { + keen::ds::anim_graph::LayerBlendOptions blendOptions; // Offset: 40 + keen::ObjectReference base; // Offset: 60 + keen::ObjectReference layer; // Offset: 76 + keen::ObjectReference outputPose; // Offset: 92 +}; + +struct anim_graph.tool_graph.SaveCachedPose { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.UseCachedPose { + keen::ObjectReference pose; // Offset: 40 + keen::ObjectReference cachedPose; // Offset: 56 +}; + +struct anim_graph.tool_graph.PoseResult { + keen::ObjectReference inputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachine { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.StateMachineState { + keen::bool restartOnRetrigger; // Offset: 40 + keen::bool startAtRandomTime; // Offset: 41 +}; + +struct anim_graph.tool_graph.TransitionAdvancedOptions { + keen::uint8 priority; // Offset: 0 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 1 +}; + +struct anim_graph.tool_graph.StateMachineTransition { + keen::ObjectReference fromState; // Offset: 40 + keen::ObjectReference toState; // Offset: 56 + keen::bool autoTransition; // Offset: 72 + keen::float32 duration; // Offset: 76 + keen::ds::anim_graph::tool_graph::TransitionAdvancedOptions advancedOptions; // Offset: 80 + keen::bool isGlobalTransition; // Offset: 82 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitions { +}; + +struct anim_graph.tool_graph.StateInputPin { + keen::ObjectReference state; // Offset: 4 + keen::float32 duration; // Offset: 20 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 24 +}; + +struct anim_graph.tool_graph.StateMachineGlobalTransitionParameters { +}; + +struct anim_graph.tool_graph.AdditiveAnimationParameters { + keen::bool useCurrentAnimationAsReference; // Offset: 0 + keen::uint16 additiveReferenceFrame; // Offset: 2 + keen::ds::AnimationReference additiveReferenceAnimation; // Offset: 4 +}; + +struct anim_graph.tool_graph.AnimationClipSampler { + keen::ds::AnimationReference animation; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::ds::anim_graph::tool_graph::AdditiveAnimationParameters additiveParameters; // Offset: 76 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 96 +}; + +struct anim_graph.tool_graph.EmptyAdditivePose { + keen::ObjectReference outputPose; // Offset: 40 +}; + +struct anim_graph.tool_graph.BlendSpace_1DItem { + keen::float32 parameterValue; // Offset: 0 + keen::ds::AnimationReference animation; // Offset: 4 +}; + +struct anim_graph.tool_graph.BlendSpace_1D { + keen::ObjectReference parameter; // Offset: 40 + keen::ObjectReference outputPose; // Offset: 56 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 72 + keen::uint16 additiveReferenceFrame; // Offset: 74 + keen::ds::AnimationReference additiveReferenceAnimation; // Offset: 76 + keen::bool interpolateInputValue; // Offset: 92 + keen::float interpolationSpeed; // Offset: 96 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 100 +}; + +struct anim_graph.tool_graph.TransitionParameters { + keen::ObjectReference condition; // Offset: 40 +}; + +struct anim_graph.tool_graph.EditorGraphBase { + keen::ObjectReference parentNode; // Offset: 0 + keen::ObjectReference mostSignificantNode; // Offset: 16 +}; + +struct anim_graph.tool_graph.FlowGraph { +}; + +struct anim_graph.tool_graph.StateMachineGraph { + keen::ObjectReference globalTransitions; // Offset: 32 +}; + +struct anim_graph.tool_graph.BlendTree { +}; + +struct anim_graph.tool_graph.ExpressionTree { +}; + +struct anim_graph.tool_graph.DefaultIdInputIdValue { + keen::ObjectReference key; // Offset: 0 + keen::ObjectReference defaultValue; // Offset: 16 +}; + +typedef keen::ObjectReference PreviewModelReference; + +typedef keen::StaticArray PreviewModelArray; + +struct anim_graph.tool_graph.AnimationGraph2_0 { + keen::ObjectReference rootGraph; // Offset: 0 + keen::ObjectReference clothColliderReference; // Offset: 16 + keen::ds::PreviewModelArray previewModelOverride; // Offset: 32 + keen::ds::string genderPrefix; // Offset: 288 + keen::DsArray genderMapping; // Offset: 328 +}; + +typedef keen::anim_graph::runtime_graph::AnimationNodeType anim_graph.runtime_graph.AnimationNodeType; + +struct anim_graph.runtime_graph.AnimationNodeDefinition { + keen::HashKey32 id; // Offset: 0 + keen::ds::anim_graph::runtime_graph::AnimationNodeType type; // Offset: 4 +}; + +struct anim_graph.runtime_graph.PoseResultNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.SampleAnimationClipNodeDefinition { + keen::bool loop; // Offset: 8 + keen::float32 animationDuration; // Offset: 12 + keen::ObjectReference animation; // Offset: 16 + keen::ObjectReference animationGenderAlternative; // Offset: 32 + keen::ObjectReference rootMotionAnimation; // Offset: 48 + keen::ObjectReference rootMotionAnimationGenderAlternative; // Offset: 64 + keen::ObjectReference eventSequenceContainer; // Offset: 80 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 96 + keen::ObjectReference additiveReferenceAnimation; // Offset: 100 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 116 + keen::uint16 additiveReferenceFrame; // Offset: 132 + keen::bool animationContentAdditive; // Offset: 134 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 136 +}; + +struct anim_graph.runtime_graph.EmptyAdditivePoseNodeDefinition { +}; + +struct anim_graph.runtime_graph.BlendSpace_1DItemRuntime { + keen::float32 parameterValue; // Offset: 0 + keen::float32 animationDuration; // Offset: 4 + keen::ObjectReference animation; // Offset: 8 + keen::ObjectReference animationGenderAlternative; // Offset: 24 + keen::ObjectReference eventSequenceContainer; // Offset: 40 +}; + +struct anim_graph.runtime_graph.BlendSpace_1DNodeDefinition { + keen::DsArray items; // Offset: 8 + keen::ObjectReference parameter; // Offset: 48 + keen::ds::anim_graph::AdditiveType additiveType; // Offset: 64 + keen::ObjectReference additiveReferenceAnimation; // Offset: 68 + keen::ObjectReference additiveReferenceAnimationGenderAlternative; // Offset: 84 + keen::uint16 additiveReferenceFrame; // Offset: 100 + keen::ds::anim_graph::AnimationSpeedController speedController; // Offset: 104 + keen::float interpolationSpeed; // Offset: 140 + keen::bool loop; // Offset: 144 + keen::bool animationContentAdditive; // Offset: 145 +}; + +struct anim_graph.runtime_graph.LayerBlendNodeDefinition { + keen::HashKey32 base; // Offset: 8 + keen::HashKey32 layer; // Offset: 12 + keen::ds::anim_graph::LayerBlendOptions blendOptions; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SaveCachedPoseNodeDefinition { + keen::HashKey32 inputPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.UseCachedPoseNodeDefinition { + keen::HashKey32 cachedPose; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatConstantNodeDefinition { + keen::float32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.FloatParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.StateMachineGlobalTransitionInfo { + keen::HashKey32 toState; // Offset: 0 + keen::float32 duration; // Offset: 4 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 8 + keen::HashKey32 conditionNode; // Offset: 12 +}; + +struct anim_graph.runtime_graph.StateMachineNodeDefinition { + keen::DsArray states; // Offset: 8 + keen::DsArray transitions; // Offset: 48 + keen::HashKey32 entryState; // Offset: 88 + keen::StaticArray globalTransitions; // Offset: 92 + keen::uint8 numGlobalTransitions; // Offset: 604 + keen::HashKey32 globalTransitionNodeId; // Offset: 608 + keen::DsString debugName; // Offset: 616 +}; + +struct anim_graph.runtime_graph.StateMachineStateNodeDefinition { + keen::HashKey32 poseResult; // Offset: 8 + keen::DsString debugName; // Offset: 16 + keen::bool restartOnRetrigger; // Offset: 56 + keen::bool startAtRandomTime; // Offset: 57 +}; + +struct anim_graph.runtime_graph.StateMachineTransitionNodeDefinition { + keen::HashKey32 fromState; // Offset: 8 + keen::HashKey32 toState; // Offset: 12 + keen::float32 duration; // Offset: 16 + keen::uint8 priority; // Offset: 20 + keen::HashKey32 conditionNode; // Offset: 24 + keen::ds::anim_graph::TransitionRootMotionMode rootMotionMode; // Offset: 28 + keen::bool autoTransition; // Offset: 29 +}; + +struct anim_graph.runtime_graph.IntConstantNodeDefinition { + keen::sint32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IntParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolConstantNodeDefinition { + keen::bool value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDConstantNodeDefinition { + keen::HashKey32 value; // Offset: 8 +}; + +struct anim_graph.runtime_graph.IDParameterNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolNegateNodeDefinition { + keen::HashKey32 input; // Offset: 8 +}; + +struct anim_graph.runtime_graph.BoolAndNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolOrNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.BoolEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 +}; + +struct anim_graph.runtime_graph.FloatRemapNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::FloatRange inputRange; // Offset: 12 + keen::FloatRange outputRange; // Offset: 20 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsNodeDefinition { + keen::HashKey32 lhs; // Offset: 8 + keen::HashKey32 rhs; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatGreaterThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatLessThanConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::bool orEqual; // Offset: 16 +}; + +struct anim_graph.runtime_graph.FloatEqualsConstantNodeDefinition { + keen::HashKey32 input; // Offset: 8 + keen::float32 value; // Offset: 12 + keen::float32 tolerance; // Offset: 16 +}; + +struct anim_graph.runtime_graph.SelectPoseByBoolNodeDefinition { + keen::HashKey32 inputA; // Offset: 8 + keen::HashKey32 inputB; // Offset: 12 + keen::HashKey32 selectA; // Offset: 16 + keen::float32 blendTime; // Offset: 20 +}; + +struct anim_graph.runtime_graph.IdParameterEqualsConstantNodeDefinition { + keen::uint32 parameterIndex; // Offset: 8 + keen::HashKey32 value; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IdEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IdEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 comparatorValue; // Offset: 12 + keen::bool ignoreForAnimationSequences; // Offset: 16 +}; + +struct anim_graph.runtime_graph.IntEqualsNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::HashKey32 b; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IntEqualsConstantNodeDefinition { + keen::HashKey32 a; // Offset: 8 + keen::sint32 comparatorValue; // Offset: 12 +}; + +struct anim_graph.runtime_graph.IsOverlayActiveNodeDefinition { + keen::HashKey32 overlay; // Offset: 8 +}; + +struct anim_graph.runtime_graph.ParameterList { + keen::DsArray parameterIds; // Offset: 0 +}; + +struct anim_graph.runtime_graph.AnimationGraphResource2_0 { + keen::ds::anim_graph::runtime_graph::ParameterList floatParameters; // Offset: 0 + keen::ds::anim_graph::runtime_graph::ParameterList uintParameters; // Offset: 40 + keen::ds::anim_graph::runtime_graph::ParameterList intParameters; // Offset: 80 + keen::ds::anim_graph::runtime_graph::ParameterList boolParameters; // Offset: 120 + keen::ds::anim_graph::runtime_graph::ParameterList idParameters; // Offset: 160 + keen::ds::anim_graph::runtime_graph::ParameterList usedInputIds; // Offset: 200 + keen::ObjectReference hierarchy; // Offset: 240 + keen::StaticArray slotBoneIndexMapping; // Offset: 256 + keen::HashKey32 rootNode; // Offset: 284 + keen::DsArray> nodeDefinitions; // Offset: 288 + keen::ObjectReference clothColliderReference; // Offset: 328 + keen::DsArray genderMapping; // Offset: 344 +}; + +struct anim_graph.GameUpdateMessage { + keen::bool isPaused; // Offset: 0 +}; + +struct anim_graph.DebugEntityChangedMessage { + keen::uint32 selectedEntity; // Offset: 0 +}; + +struct anim_graph.debug.DebugMessageBase { + keen::Time timestamp; // Offset: 0 + keen::uint32 entityId; // Offset: 8 + keen::Guid rootGraphGuid; // Offset: 12 + keen::Guid templateId; // Offset: 28 +}; + +struct anim_graph.debug.NodeStateUpdateMessage { + keen::HashKey32 nodeId; // Offset: 48 + keen::bool isActive; // Offset: 52 + keen::bool isFrozen; // Offset: 53 + keen::float32 progress; // Offset: 56 + keen::float32 timeSpentInNode; // Offset: 60 + keen::HashKey32 fromState; // Offset: 64 + keen::HashKey32 toState; // Offset: 68 +}; + +struct anim_graph.debug.InputIdMessage { + keen::StaticArray floatInputIdHashes; // Offset: 48 + keen::StaticArray floatInputIdValues; // Offset: 80 + keen::StaticArray intInputIdHashes; // Offset: 112 + keen::StaticArray intInputIdValues; // Offset: 144 + keen::StaticArray boolInputIdHashes; // Offset: 176 + keen::StaticArray boolInputIdValues; // Offset: 208 + keen::StaticArray idInputIdHashes; // Offset: 216 + keen::StaticArray idInputIdValues; // Offset: 248 + keen::StaticArray overlayIdValues; // Offset: 280 +}; + +struct anim_graph.debug.EntityJointMessage { + keen::StaticArray animationJoints; // Offset: 48 + keen::uint8 numJoints; // Offset: 12336 +}; + +struct anim_graph.debug.AnimationGraphInstanceInfoMessage { + keen::uint32 retriggerCount; // Offset: 48 +}; + +struct anim_graph.debug.StateMachineMessage { + keen::uint32 stateMachineId; // Offset: 48 + keen::StaticArray fromState; // Offset: 52 + keen::StaticArray toState; // Offset: 84 + keen::StaticArray duration; // Offset: 116 + keen::StaticArray elapsed; // Offset: 148 + keen::StaticArray priority; // Offset: 180 + keen::StaticArray frozen; // Offset: 188 +}; + +typedef keen::ObjectReference AnimationGraphResourceReference; + +struct JointAnimationHeader { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 startTime; // Offset: 4 + keen::uint16 endTime; // Offset: 6 + keen::uint16 usedOrientationJoints; // Offset: 8 + keen::uint16 nonConstOrientationJoints; // Offset: 10 + keen::uint16 usedPositionJoints; // Offset: 12 + keen::uint16 nonConstPositionJoints; // Offset: 14 + keen::uint16 usedScaleJoints; // Offset: 16 + keen::uint16 nonConstScaleJoints; // Offset: 18 +}; + +struct JointAnimation { + keen::uint64 hierarchyHash; // Offset: 0 + keen::float32 positionFactor; // Offset: 8 + keen::float32 positionTangent; // Offset: 12 + keen::float32 scaleFactor; // Offset: 16 + keen::DsArray headers; // Offset: 24 + keen::ContentHash data; // Offset: 64 + keen::uint16 fps; // Offset: 80 + keen::uint16 frameCount; // Offset: 82 + keen::uint16 jointCount; // Offset: 84 + keen::uint16 flags; // Offset: 86 +}; + +typedef keen::ObjectReference JointAnimationReference; + +struct LveOrientationKey { + keen::uint32 time; // Offset: 0 + keen::float4 values; // Offset: 4 + keen::float4 controls; // Offset: 20 +}; + +struct LvePositionKey { + keen::uint32 time; // Offset: 0 + keen::float3 values; // Offset: 4 + keen::float3 controls; // Offset: 16 +}; + +struct LveAnimation { + keen::crc32 trackName; // Offset: 0 + keen::DsArray orientationKeys; // Offset: 8 + keen::DsArray positionKeys; // Offset: 48 + keen::float3 startToEnd; // Offset: 88 + keen::uint16 fps; // Offset: 100 + keen::uint16 frameCount; // Offset: 102 + keen::uint16 flags; // Offset: 104 +}; + +struct RootMotionAnimation { + keen::DsArray orientations; // Offset: 0 + keen::DsArray positions; // Offset: 40 + keen::float3 startToEnd; // Offset: 80 + keen::uint16 fps; // Offset: 92 + keen::uint16 frameCount; // Offset: 94 +}; + +typedef keen::ds::string DsTypeName; + +struct vf32_data { + keen::StaticArray data; // Offset: 0 +}; + +typedef keen::ContentCategory ContentCategory; + +typedef keen::VertexColorChannel VertexColorChannel; + +struct ClothMaterial { + keen::ds::VertexColorChannel simulationWeightVertexColorChannel; // Offset: 0 + keen::bool useMass; // Offset: 1 + keen::float32 mass; // Offset: 4 + keen::bool usePerVertexStiffness; // Offset: 8 + keen::ds::VertexColorChannel perVertexStiffnessVertexColorChannel; // Offset: 9 + keen::float32 gravity; // Offset: 12 + keen::float32 windStrength; // Offset: 16 + keen::float32 dragCoefficient; // Offset: 20 + keen::float32 liftCoefficient; // Offset: 24 + keen::float32 damping; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 tetherStiffness; // Offset: 44 + keen::float32 phasesStiffness; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 motionConstraintsMaxRadius; // Offset: 60 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 64 + keen::float32 motionConstraintsStiffness; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 collisionFriction; // Offset: 76 +}; + +struct BvhTreeNodeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::sint32 value; // Offset: 32 +}; + +struct BvhTreeData { + keen::Vector3 boundingBoxMin; // Offset: 0 + keen::Vector3 boundingBoxMax; // Offset: 16 + keen::DsArray nodes; // Offset: 32 +}; + +typedef keen::CollisionSegmentDirection CollisionSegmentDirection; + +struct NavEdge { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 +}; + +struct NavPortal { + keen::StaticArray cellIndices; // Offset: 32 +}; + +struct CollisionShapeId { + keen::uint32 shapeId; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 +}; + +struct NavCell { + keen::uint16 index; // Offset: 0 + keen::float32 minY; // Offset: 4 + keen::float32 maxY; // Offset: 8 + keen::DsArray edgeIndices; // Offset: 16 + keen::DsArray portalIndices; // Offset: 56 + keen::DsArray collisionShapeIds; // Offset: 96 + keen::uint16 extensionPortalIndex; // Offset: 136 + keen::Vector3 centroid; // Offset: 144 +}; + +struct ColliderShape { +}; + +struct SphereColliderShape { + keen::float32 radius; // Offset: 0 +}; + +struct SpheroidColliderShape { + keen::float32 horizontalRadius; // Offset: 0 + keen::float32 verticalRadius; // Offset: 4 +}; + +struct CapsuleColliderShape { + keen::float32 radius; // Offset: 0 + keen::float32 length; // Offset: 4 +}; + +struct BoxColliderShape { + keen::float3 halfSize; // Offset: 0 +}; + +struct SegmentColliderShape { + keen::float3 direction; // Offset: 0 + keen::float32 length; // Offset: 12 +}; + +struct CollisionFace { + keen::StaticArray vertices; // Offset: 0 + keen::StaticArray neighborFaces; // Offset: 6 + keen::uint8 neighborEdgeIndices; // Offset: 12 + keen::uint8 material; // Offset: 13 + keen::uint16 flags; // Offset: 14 +}; + +struct CollisionObject { + keen::uint32 id; // Offset: 0 + keen::uint32 segmentIndex; // Offset: 4 + keen::DsArray shapeVertices; // Offset: 8 + keen::DsArray navCellIndices; // Offset: 48 + keen::float32 health; // Offset: 88 + keen::float32 y; // Offset: 92 +}; + +struct CollisionGridCell { + keen::uint16 start; // Offset: 0 + keen::uint16 count; // Offset: 2 +}; + +struct CollisionGrid { + keen::DsArray gridCells; // Offset: 0 + keen::DsArray gridIndicies; // Offset: 40 + keen::DsArray collShapesPerGrid; // Offset: 80 + keen::DsArray collShapesPerGridIndicies; // Offset: 120 + keen::uint16 cellsX; // Offset: 160 + keen::Vector2 origin; // Offset: 164 + keen::Vector2 cellSize; // Offset: 172 +}; + +struct CollisionMeshData { + keen::DsArray m_vertices; // Offset: 0 + keen::DsArray m_faces; // Offset: 40 + keen::ds::CollisionGrid m_grid; // Offset: 80 + keen::DsArray m_objects; // Offset: 264 + keen::DsArray m_navCells; // Offset: 304 + keen::DsArray m_navEdges; // Offset: 344 + keen::DsArray m_navPortals; // Offset: 384 +}; + +struct WorldCollisionBatch { + keen::uint32 triangleIndex; // Offset: 0 + keen::uint32 triangleCount; // Offset: 4 +}; + +struct WorldCollision { + keen::DsArray triangleBatches; // Offset: 0 + keen::DsArray vertexPositions; // Offset: 40 + keen::DsArray materialIds; // Offset: 80 + keen::ds::BvhTreeData bvhTreeData; // Offset: 128 +}; + +struct PaletteColor { + keen::HdrColorRgb color; // Offset: 0 +}; + +typedef keen::ObjectReference PaletteColorReference; + +struct ColorPalette { +}; + +struct ColorPaletteCollection { +}; + +typedef keen::PaletteColorId PaletteColorId; + +struct PaletteColorResource { + keen::ds::PaletteColorId paletteColorId; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct ColorPaletteCollectionResource { + keen::DsArray colors; // Offset: 0 +}; + +typedef keen::CommerceProductId CommerceProductId; + +struct CommerceProduct { + keen::ds::CommerceProductId id; // Offset: 0 + keen::uint32 platformIdSteam; // Offset: 4 +}; + +typedef keen::ObjectReference CommerceProductReference; + +struct CommerceProductSubDirectory { +}; + +struct CommerceProductDirectory { +}; + +struct CommerceProductResource { + keen::DsArray products; // Offset: 0 +}; + +typedef keen::ObjectReference CommerceResourceReference; + +struct ecs.SpawnComponent { +}; + +struct ecs.LastTransform { + keen::WorldTransform transform; // Offset: 0 + keen::float3 velocity; // Offset: 56 +}; + +struct ecs.PlayerFocus { + keen::WorldPosition position; // Offset: 0 +}; + +struct ecs.StaticTransform { +}; + +struct ecs.StaticTransformDynamic { +}; + +struct ecs.DoNotSave { +}; + +struct ecs.ForceSave { +}; + +struct ecs.PlayerInRange { +}; + +struct ecs.CheckPlayerInRange { + keen::uint8 distanceInMeter; // Offset: 0 +}; + +struct ecs.ServerProgress { +}; + +struct ecs.StoredSceneId { + keen::Guid sceneGuid; // Offset: 0 +}; + +struct ecs.EnemyMarkerSettings { + keen::ObjectReference tag; // Offset: 0 +}; + +struct ecs.TeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool isWaitingForTeleport; // Offset: 1 +}; + +struct ecs.RenderTeleportCount { + keen::uint8 counter; // Offset: 0 + keen::bool wasTeleported; // Offset: 1 +}; + +struct ecs.ScaleComponent { + keen::float32 uniformScale; // Offset: 0 +}; + +struct ecs.Velocity { + keen::float3 velocity; // Offset: 0 +}; + +typedef keen::ecs::ImpulseType ecs.ImpulseType; + +struct ecs.ImpulseData { + keen::float3 impulse; // Offset: 0 + keen::ds::ecs::ImpulseType type; // Offset: 12 + keen::Time startTime; // Offset: 16 + keen::Time endTime; // Offset: 24 +}; + +struct ecs.Impulse { + keen::float3 impulse; // Offset: 0 + keen::StaticArray impulses; // Offset: 16 +}; + +struct ecs.OscillateTransform { + keen::float3 center; // Offset: 0 + keen::float3 amplitudeAxis; // Offset: 12 + keen::float32 duration; // Offset: 24 + keen::float32 phase; // Offset: 28 +}; + +struct ecs.EntityId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.OwnerRelationship { + keen::ds::ecs::EntityId ownerEntityId; // Offset: 0 +}; + +struct ecs.SpawnTime { + keen::Time spawnTime; // Offset: 0 +}; + +struct ecs.LifeTime { + keen::Time lifeTime; // Offset: 0 + keen::Time endOfLife; // Offset: 8 + keen::bool enforceDestroy; // Offset: 16 + keen::bool triggeredDestroy; // Offset: 17 +}; + +struct ecs.Aging { + keen::float32 speed; // Offset: 0 +}; + +struct ecs.TintColor { + keen::Color color; // Offset: 0 +}; + +struct ecs.ColorCombinationComponent { + keen::StaticArray colorIds; // Offset: 0 +}; + +typedef keen::HighlightColorIndex HighlightColorIndex; + +struct ecs.HighlightColor { + keen::ds::HighlightColorIndex colorIndex; // Offset: 0 +}; + +struct ecs.Transparency { + keen::float32 transparency; // Offset: 0 +}; + +struct ecs.Ao { + keen::uint8 value; // Offset: 0 +}; + +struct ecs.Hide { + keen::bool isHidden; // Offset: 0 + keen::bool isLocalyHidden; // Offset: 1 +}; + +struct ecs.ModelComponent { + keen::uint32 modelHandle; // Offset: 0 +}; + +typedef keen::ecs::ToggleModifier ecs.ToggleModifier; + +struct ecs.ModelRenderHint { + keen::bool canReceiveDecals; // Offset: 0 + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 1 +}; + +struct ecs.ModelDynamic { + keen::ObjectReference lastModel; // Offset: 0 +}; + +struct ecs.ModelResource { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.ModelResourceDynamic { + keen::ObjectReference model; // Offset: 0 +}; + +struct ecs.VoxelModel { + keen::uint32 renderNode; // Offset: 0 +}; + +struct ecs.VoxelModelVolatile { + keen::uint32 pendingRenderNode; // Offset: 4 + keen::ObjectReference lastModel; // Offset: 8 + keen::uint8 lastMaterialOverride; // Offset: 24 + keen::bool isVoxelModelChangePending; // Offset: 25 +}; + +struct ecs.VoxelModelResourceComponent { + keen::ObjectReference model; // Offset: 0 + keen::uint8 materialOverride; // Offset: 16 +}; + +struct ecs.SnowDisplacementComponent { + keen::uint32 bodyHandle; // Offset: 0 + keen::float3 localOffset; // Offset: 4 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 + keen::float32 heightNoiseScale; // Offset: 24 +}; + +struct ecs.DungeonTriggerTypeComponent { + keen::ObjectReference triggerSetup; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.AnimationGraphResourceComponent2 { + keen::ObjectReference animationGraph; // Offset: 0 +}; + +struct ecs.VfxComponentResource { + keen::ds::VfxReference vfx; // Offset: 0 +}; + +struct ecs.VfxResourceDynamic { + keen::ds::VfxReference vfx; // Offset: 0 +}; + +struct VfxUserEffectParameterDataBlock { + keen::StaticArray data; // Offset: 0 +}; + +struct ecs.VfxParametersTemplateComponent { + keen::ds::VfxUserEffectParameterDataBlock parameters; // Offset: 0 +}; + +struct ecs.VfxParametersOverwriteComponent { + keen::bool useVfxDefaultParameters; // Offset: 0 + keen::ds::VfxUserEffectParameterDataBlock parameters; // Offset: 4 +}; + +struct ecs.OverrideLevel { + keen::uint32 newLevel; // Offset: 0 +}; + +typedef keen::ecs::ToggleModifierFlags ecs.ToggleModifierFlags; + +struct ecs.ToggleTimer { + keen::Time timer; // Offset: 0 + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 8 + keen::bool timerRunning; // Offset: 9 + keen::Time lastToggleChange; // Offset: 16 +}; + +struct ecs.DestroyOnState { + keen::bool wasInOppositeState; // Offset: 0 + keen::bool targetState; // Offset: 1 + keen::bool triggered; // Offset: 2 +}; + +struct ecs.FxComponent { + keen::uint32 fxHandle; // Offset: 0 + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 4 +}; + +struct ecs.VfxAnimationIdParameter { +}; + +struct ecs.Offset { + keen::float3 localOffset; // Offset: 0 + keen::float3 worldOffset; // Offset: 12 + keen::Quaternion orientationOffset; // Offset: 24 +}; + +struct ecs.VfxComponent { + keen::ds::ecs::Offset attachmentOffset; // Offset: 8 + keen::ds::AttachmentSlot slot; // Offset: 48 + keen::bool attachToParent; // Offset: 49 +}; + +typedef keen::ecs::TargetType ecs.TargetType; + +struct ecs.VfxTargetedComponent { + keen::ds::ecs::TargetType targetType; // Offset: 52 + keen::float3 targetPosition; // Offset: 56 + keen::bool updateTargetPosition; // Offset: 68 +}; + +struct ecs.TargetEntity { + keen::ds::ecs::EntityId targetId; // Offset: 0 +}; + +struct ecs.TargetPosition { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.VfxTargetParameter { + keen::ds::AttachmentSlot targetSlot; // Offset: 0 + keen::ds::ecs::Offset targetAttachmentOffset; // Offset: 4 + keen::bool attachToTarget; // Offset: 44 + keen::bool updateSourcePosition; // Offset: 45 +}; + +struct ecs.VfxComponentVolatile { + keen::ds::VfxReference lastVfx; // Offset: 52 +}; + +typedef keen::ObjectReference NotifierReference; + +struct ecs.VfxOnResourceDrop { + keen::ds::NotifierReference notifier; // Offset: 0 + keen::ds::SoundContainerReference sfx; // Offset: 16 + keen::ds::VfxReference vfx; // Offset: 32 +}; + +struct ecs.ToggleDelay { + keen::Time delay; // Offset: 0 +}; + +struct ecs.ToggleState { + keen::bool state; // Offset: 0 + keen::Time lastChange; // Offset: 8 +}; + +struct ecs.ServerToggleState { +}; + +struct ecs.NetworkToggleState { +}; + +struct ecs.ClientToggleState { +}; + +struct ecs.ToggleNotifier { + keen::Time lastEvent; // Offset: 0 + keen::ds::ecs::ToggleModifier flags; // Offset: 8 + keen::ds::NotifierReference notifier; // Offset: 12 + keen::Time duration; // Offset: 32 + keen::ds::AttachmentSlot sourceSlot; // Offset: 40 + keen::ds::ecs::Offset sourceAttachmentOffset; // Offset: 44 + keen::bool attachToSource; // Offset: 84 + keen::ds::AttachmentSlot targetSlot; // Offset: 85 + keen::ds::ecs::Offset targetAttachmentOffset; // Offset: 88 + keen::bool attachToTarget; // Offset: 128 + keen::ds::SoundContainerReference sfx; // Offset: 132 + keen::ds::VfxReference vfx; // Offset: 148 +}; + +struct ecs.BaseAnimationGraphInput { + keen::ds::animationgraph::StateIdReference initialAnimationStateIdReference; // Offset: 0 + keen::ds::AnimationGraphInputs animationInputs; // Offset: 16 + keen::ds::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 400 + keen::ds::animationgraph::StateIdHash animationStateId; // Offset: 404 + keen::uint32 retriggerCount; // Offset: 408 +}; + +struct ecs.ServerAnimationGraphInput { + keen::ds::AnimationGraphInputs previousAnimationInputs; // Offset: 416 + keen::uint8 overlayRingbufferIndex; // Offset: 800 +}; + +struct ecs.NetworkAnimationGraphInput { +}; + +struct ecs.ClientAnimationGraphInputLerp { + keen::ds::AnimationGraphInputs source; // Offset: 0 + keen::ds::AnimationGraphInputs target; // Offset: 384 + keen::uint32 tick; // Offset: 768 + keen::bool isSet; // Offset: 772 +}; + +struct ecs.ClientAnimationGraphInput { +}; + +struct ecs.AnimationGraphHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.RenderPoseHandleValue { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphBaseComponent { + keen::ds::ecs::AnimationGraphHandleValue animationGraphHandle; // Offset: 0 + keen::ds::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 +}; + +struct ecs.AnimationGraphComponent { + keen::ObjectReference usedClothCollider; // Offset: 8 +}; + +struct ecs.AnimationGraphSlotComponent { + keen::bool slotsInitialized; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct ecs.ServerAnimationGraphComponent { +}; + +struct ecs.ServerAnimationGraphSlotComponent { +}; + +struct ecs.AnimationGraphHandleValue2 { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.AnimationGraphComponent2 { + keen::ds::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 + keen::ds::ecs::RenderPoseHandleValue renderPoseHandle; // Offset: 4 + keen::Guid clothCollider; // Offset: 8 +}; + +struct ecs.ServerAnimationGraphComponent2 { + keen::ds::ecs::AnimationGraphHandleValue2 animationGraphHandle; // Offset: 0 +}; + +struct ecs.CopyParentAnimationGraphState { +}; + +struct ecs.AnimatedCamera { + keen::ds::AttachmentSlot cameraSlot; // Offset: 0 +}; + +struct ecs.RngState { + keen::uint32 w; // Offset: 0 + keen::uint32 z; // Offset: 4 +}; + +typedef keen::VoxelMaterialId VoxelMaterialId; + +struct ecs.WorldCollisionResults { + keen::bool hasSpheroidCollision; // Offset: 0 + keen::float3 spheroidNormal; // Offset: 4 + keen::bool hasGroundCollision; // Offset: 16 + keen::bool isGroundWalkable; // Offset: 17 + keen::float3 groundNormal; // Offset: 20 + keen::float3 areaGroundNormal; // Offset: 32 + keen::float32 groundDistance; // Offset: 44 + keen::ds::VoxelMaterialId groundVoxelMaterialId; // Offset: 48 + keen::bool preventFallDamage; // Offset: 49 +}; + +struct ecs.OptionalWorldCollisionResults { + keen::ds::ecs::WorldCollisionResults m_value; // Offset: 0 + keen::bool m_isSet; // Offset: 52 +}; + +struct ecs.WorldCollider { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::float32 maxStepHeightVoxels; // Offset: 8 + keen::float32 maxStepHeightProps; // Offset: 12 + keen::bool onlyCheckPathCollidersWithBundleCheck; // Offset: 16 + keen::float32 yOffset; // Offset: 20 + keen::bool isWorldColliderReady; // Offset: 24 + keen::bool snapToGround; // Offset: 25 + keen::bool hasDetectedSafePositionBelow; // Offset: 26 + keen::ds::ecs::OptionalWorldCollisionResults results; // Offset: 28 +}; + +struct ecs.Gravity { + keen::float3 direction; // Offset: 0 + keen::float32 value; // Offset: 12 + keen::bool isActive; // Offset: 16 +}; + +struct ecs.StaticGravityModifier { + keen::float32 modifier; // Offset: 0 +}; + +struct ecs.Debug { +}; + +typedef keen::ObjectReference ecs.ColliderResponseResourceReference; + +struct ecs.ColliderResponseComponent { + keen::ds::ecs::ColliderResponseResourceReference colliderResponse; // Offset: 0 +}; + +typedef keen::ecs::ColliderResponseFlag ecs.ColliderResponseFlag; + +typedef keen::ecs::ColliderResponseFlags ecs.ColliderResponseFlags; + +typedef keen::ecs::CollisionType ecs.CollisionType; + +struct ecs.ColliderResponseResourceEntry { + keen::ds::SoundContainerReference sfx; // Offset: 0 + keen::ds::VfxReference vfx; // Offset: 16 + keen::ds::string sfxDescription; // Offset: 32 + keen::ds::string vfxDescription; // Offset: 72 + keen::ds::string description; // Offset: 112 + keen::float3 eulerOffset; // Offset: 152 + keen::float3 offset; // Offset: 164 + keen::ds::ecs::CollisionType collisionType; // Offset: 176 + keen::ds::AttachmentSlot slot; // Offset: 177 + keen::ds::ecs::ColliderResponseFlags flags; // Offset: 178 +}; + +struct ecs.ColliderResponseResource { + keen::DsArray responseEntries; // Offset: 0 + keen::Guid templateId; // Offset: 40 + keen::ds::string templateDescription; // Offset: 56 +}; + +struct ecs.ColliderResponse { + keen::ds::ecs::CollisionType collisionType; // Offset: 0 + keen::ds::SoundContainerReference sfx; // Offset: 4 + keen::ds::VfxReference vfx; // Offset: 20 + keen::float3 eulerOffset; // Offset: 36 + keen::float3 offset; // Offset: 48 + keen::bool applyLocally; // Offset: 60 + keen::bool orientToNormal; // Offset: 61 + keen::bool overrideSlot; // Offset: 62 + keen::ds::AttachmentSlot slot; // Offset: 63 + keen::bool attach; // Offset: 64 +}; + +struct ecs.ColliderResourceComponent { + keen::DsArray colliders; // Offset: 0 +}; + +typedef keen::ObjectReference CollisionFeedbackMaterialReference; + +typedef keen::ItemId ItemId; + +typedef keen::ObjectReference ItemReference; + +typedef keen::PropDamageSusceptibility PropDamageSusceptibility; + +struct ecs.CollisionFeedbackMaterialComponent { + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 16 + keen::ds::ItemReference itemRef; // Offset: 20 + keen::ds::PropDamageSusceptibility propDamageSusceptibility; // Offset: 36 +}; + +struct ecs.ColliderId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.AbstractCollider { + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 0 + keen::ds::ecs::ColliderId colliderId; // Offset: 8 +}; + +struct ecs.StaticCollider { +}; + +struct ecs.StaticClientCollider { +}; + +typedef keen::ecs::ColliderMask ecs.ColliderMask; + +typedef keen::ecs::ColliderMode ecs.ColliderMode; + +struct ecs.Collider { + keen::bool isPathBlocker; // Offset: 16 + keen::ds::ecs::ColliderMask disabledCollisions; // Offset: 20 + keen::ds::ecs::ColliderMode activeColliderSetup; // Offset: 24 +}; + +struct ecs.ClientCollider { +}; + +typedef keen::ecs::PlayerSpawnType ecs.PlayerSpawnType; + +struct ecs.PlayerSpawnPoint { + keen::ds::ecs::PlayerSpawnType target; // Offset: 0 + keen::StaticArray landingPads; // Offset: 4 +}; + +struct ecs.QueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.IsPlayerInSight { + keen::bool isInSight; // Offset: 0 + keen::ds::ecs::QueryId queryId; // Offset: 4 + keen::Time nextQueryUpdate; // Offset: 8 + keen::ds::ecs::Offset sourceOffset; // Offset: 16 + keen::ds::ecs::Offset targetOffset; // Offset: 56 +}; + +typedef keen::ecs::LocalPlayerMask ecs.LocalPlayerMask; + +struct ecs.IsLocalPlayerInRange { + keen::float32 rangeMargin; // Offset: 0 + keen::ds::ecs::LocalPlayerMask arePlayersInRangeMask; // Offset: 4 +}; + +typedef keen::ecs::TriggerShapeType ecs.TriggerShapeType; + +struct ecs.TriggerShape { + keen::ds::ecs::TriggerShapeType shape; // Offset: 0 + keen::float32 rangeX; // Offset: 4 + keen::float32 rangeY; // Offset: 8 + keen::float32 rangeZ; // Offset: 12 + keen::ds::ecs::Offset offset; // Offset: 16 +}; + +typedef keen::FloorMaterialShape FloorMaterialShape; + +struct ecs.FloorMaterial { + keen::ObjectReference material; // Offset: 0 + keen::float32 radius; // Offset: 16 + keen::ds::FloorMaterialShape shape; // Offset: 20 + keen::float32 noiseStrength; // Offset: 24 +}; + +struct ecs.TriggerShapes { + keen::DsArray shapes; // Offset: 0 +}; + +struct ecs.FogResistanceState { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.AudioResourceComponent { + keen::ds::SoundContainerReference soundContainer; // Offset: 0 +}; + +struct ecs.AudioComponent { + keen::ds::AttachmentSlot slot; // Offset: 8 + keen::ds::ecs::Offset offset; // Offset: 12 + keen::bool stopOnDestroy; // Offset: 52 + keen::bool attach; // Offset: 53 + keen::bool attachToParent; // Offset: 54 +}; + +struct ecs.AudioComponentVolatile { + keen::ds::SoundContainerReference lastSoundContainer; // Offset: 56 +}; + +struct ecs.AmbientQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.AmbientSystemQuery { + keen::ds::ecs::AmbientQueryId queryId; // Offset: 0 +}; + +typedef keen::LocaTagId LocaTagId; + +struct ecs.UiInteractable { + keen::uint32 handle; // Offset: 0 + keen::ds::LocaTagId verbId; // Offset: 4 + keen::float32 hintRange; // Offset: 8 +}; + +struct ecs.QueryTest { + keen::Time queryTime; // Offset: 0 + keen::ds::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.DespawnLink { + keen::ds::ecs::EntityId parentEntityId; // Offset: 0 + keen::bool despawnOnDeath; // Offset: 4 +}; + +struct ecs.Transform { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 +}; + +struct ecs.CurrentTransform { + keen::WorldTransform transform; // Offset: 0 +}; + +struct ecs.RenderTransform { + keen::WorldTransform transform; // Offset: 0 + keen::WorldTransform interpolationSource; // Offset: 56 + keen::WorldTransform interpolationTarget; // Offset: 112 + keen::uint32 interpolationNewestTick; // Offset: 168 +}; + +typedef keen::AmbientTags AmbientTags; + +struct ecs.SetDataBreakPointMessage { + keen::uint32 entityId; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 4 + keen::uint16 offset; // Offset: 8 + keen::uint8 size; // Offset: 10 + keen::bool write; // Offset: 11 +}; + +struct ecs.ComponentMessageEntry { + keen::DsString name; // Offset: 0 + keen::HashKey32 dynamicType; // Offset: 40 + keen::HashKey32 templateType; // Offset: 44 + keen::uint8 affinity; // Offset: 48 + keen::uint8 queryAffinity; // Offset: 49 +}; + +struct ecs.ComponentMessage { + keen::DsArray components; // Offset: 0 +}; + +struct ecs.EcsComponentsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.EcsSystemsMask { + keen::uint64 mask; // Offset: 0 +}; + +struct ecs.EcsEventsMask { + keen::StaticArray mask; // Offset: 0 +}; + +struct ecs.TemplateMessageEntry { + keen::Guid guid; // Offset: 0 + keen::DsString name; // Offset: 16 + keen::ds::ecs::EcsComponentsMask componentsMask; // Offset: 56 +}; + +struct ecs.TemplateMessage { + keen::DsArray templates; // Offset: 0 +}; + +struct ecs.EntityMessageEntry { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint32 templateIndex; // Offset: 4 +}; + +struct ecs.TotalEntityMessage { + keen::DsArray entities; // Offset: 0 +}; + +struct ecs.ChangeEntityMessage { + keen::DsArray createdEntities; // Offset: 0 + keen::DsArray destroyedEntities; // Offset: 40 +}; + +struct ecs.TickMessage { + keen::uint32 tick; // Offset: 0 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 entitiesAdded; // Offset: 8 + keen::uint32 entitiesRemoved; // Offset: 12 + keen::uint32 eventCount; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 +}; + +struct ecs.ProgramInfoComponentDependencies { + keen::ds::ecs::EcsComponentsMask required; // Offset: 0 + keen::ds::ecs::EcsComponentsMask optional; // Offset: 72 +}; + +struct ecs.ProgramInfoDependencies { + keen::ds::ecs::ProgramInfoComponentDependencies components; // Offset: 0 + keen::ds::ecs::ProgramInfoComponentDependencies templateComponents; // Offset: 144 + keen::ds::ecs::EcsSystemsMask externalSystems; // Offset: 288 + keen::ds::ecs::EcsComponentsMask entityComponents; // Offset: 296 + keen::ds::ecs::EcsComponentsMask entityTemplates; // Offset: 368 + keen::ds::ecs::EcsEventsMask events; // Offset: 440 + keen::bool isThreadSafe; // Offset: 456 +}; + +struct ecs.ProgramInfoReadWriteDependency { + keen::ds::ecs::ProgramInfoDependencies read; // Offset: 0 + keen::ds::ecs::ProgramInfoDependencies write; // Offset: 464 + keen::ds::ecs::EcsComponentsMask forbiddenComponents; // Offset: 928 + keen::ds::ecs::EcsComponentsMask requiredComponents; // Offset: 1000 +}; + +struct ecs.ProgramId { + keen::uint16 id; // Offset: 0 +}; + +struct ecs.ProgramInfo { + keen::ds::ecs::ProgramId programId; // Offset: 0 + keen::DsString programName; // Offset: 8 + keen::bool isPresentation; // Offset: 48 + keen::bool isDisabled; // Offset: 49 + keen::bool isSystem; // Offset: 50 + keen::bool isInit; // Offset: 51 + keen::bool noPrediction; // Offset: 52 + keen::bool isDeactivated; // Offset: 53 + keen::bool isDeactivatedPrediction; // Offset: 54 + keen::ds::ecs::ProgramInfoReadWriteDependency dependencies; // Offset: 56 +}; + +struct ecs.ProgramsMessage { + keen::DsArray programs; // Offset: 0 +}; + +struct ecs.EventTypesMessageEntry { + keen::ds::string name; // Offset: 0 + keen::uint16 size; // Offset: 40 + keen::bool serverRead; // Offset: 42 + keen::bool serverWrite; // Offset: 43 + keen::bool clientRead; // Offset: 44 + keen::bool clientWrite; // Offset: 45 +}; + +struct ecs.EventTypesMessage { + keen::DsArray events; // Offset: 0 +}; + +struct ecs.ExternalSystemsMessageEntry { + keen::ds::string name; // Offset: 0 + keen::bool readThreadSafe; // Offset: 40 + keen::bool writeThreadSafe; // Offset: 41 + keen::bool serverRead; // Offset: 42 + keen::bool serverWrite; // Offset: 43 + keen::bool clientRead; // Offset: 44 + keen::bool clientWrite; // Offset: 45 +}; + +struct ecs.ExternalSystemsMessage { + keen::DsArray systems; // Offset: 0 +}; + +struct ecs.TaskSlotsMessageProgram { + keen::uint16 index; // Offset: 0 + keen::uint16 storageCount; // Offset: 2 + keen::uint16 chunkCount; // Offset: 4 + keen::uint32 entityCount; // Offset: 8 +}; + +struct ecs.TaskSlotsMessageEntry { + keen::ds::ecs::EcsComponentsMask componentsRead; // Offset: 0 + keen::ds::ecs::EcsComponentsMask componentsWrite; // Offset: 72 + keen::ds::ecs::EcsSystemsMask systemsRead; // Offset: 144 + keen::ds::ecs::EcsSystemsMask systemsWrite; // Offset: 152 + keen::ds::ecs::EcsComponentsMask entitiesRead; // Offset: 160 + keen::ds::ecs::EcsComponentsMask entitiesWrite; // Offset: 232 + keen::bool isThreadSafe; // Offset: 304 + keen::DsArray programs; // Offset: 312 +}; + +struct ecs.TaskSlotsMessage { + keen::uint32 tick; // Offset: 0 + keen::DsArray entries; // Offset: 8 +}; + +struct ecs.SendTaskSlotsMessage { + keen::uint8 dummy; // Offset: 0 +}; + +struct ecs.StartEntityUpdateMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.StopEntityUpdateMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 +}; + +struct ecs.EntityComponentEntry { + keen::uint16 index; // Offset: 0 + keen::uint16 offset; // Offset: 2 + keen::uint16 size; // Offset: 4 +}; + +struct ecs.EntityComponentMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::DsArray components; // Offset: 8 + keen::DsArray buffer; // Offset: 48 +}; + +struct ecs.EntityTemplateMessage { + keen::Guid templateGuid; // Offset: 0 + keen::DsArray templateData; // Offset: 16 +}; + +struct ecs.StartTimelineMessage { + keen::DsArray entityIds; // Offset: 0 +}; + +struct ecs.StopTimelineMessage { + keen::uint8 dummy; // Offset: 0 +}; + +typedef keen::ecs::AdjustTick ecs.AdjustTick; + +struct ecs.TimelineFrameMessage { + keen::Time time; // Offset: 0 + keen::Time systemTime; // Offset: 8 + keen::Time lastSystemTime; // Offset: 16 + keen::uint32 tickCount; // Offset: 24 + keen::uint32 currentTick; // Offset: 28 + keen::uint32 lastTick; // Offset: 32 + keen::Time frameDuration; // Offset: 40 + keen::Time frameTime; // Offset: 48 + keen::Time nextTickTime; // Offset: 56 + keen::float32 tickInterpolationFactor; // Offset: 64 + keen::ds::ecs::AdjustTick adjustTick; // Offset: 68 +}; + +struct ecs.UpdateGameTimeMessage { + keen::Time time; // Offset: 0 +}; + +struct ecs.DebugQueryMessage { + keen::ds::ecs::QueryId queryId; // Offset: 0 +}; + +struct ecs.EntityStateComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 size; // Offset: 2 + keen::uint16 offset0; // Offset: 4 + keen::uint16 offset1; // Offset: 6 +}; + +struct ecs.TimelineEntityStateData { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 + keen::uint32 gridCellId; // Offset: 64 + keen::uint32 dirtyValue; // Offset: 68 + keen::uint32 dataTick; // Offset: 72 + keen::uint16 isCulled; // Offset: 76 + keen::uint16 isCulledPrediction; // Offset: 78 + keen::uint16 playerMask; // Offset: 80 +}; + +struct ecs.TimelineEntityState { + keen::ds::ecs::TimelineEntityStateData entity0; // Offset: 0 + keen::ds::ecs::TimelineEntityStateData entity1; // Offset: 88 + keen::DsArray components; // Offset: 176 + keen::DsArray buffer; // Offset: 216 +}; + +struct ecs.TimelineSystemCounts { + keen::uint32 entities; // Offset: 0 + keen::uint32 sceneEntities; // Offset: 4 + keen::uint32 activeSceneChunks; // Offset: 8 +}; + +struct ecs.TimelineCamera { + keen::WorldTransform transform0; // Offset: 0 + keen::WorldTransform transform1; // Offset: 56 +}; + +struct ecs.TimelineSystemUpdateMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::Time frameTime; // Offset: 16 + keen::Time frameDuration; // Offset: 24 + keen::uint32 tick; // Offset: 32 + keen::uint32 lastTick; // Offset: 36 + keen::float32 tickFactor; // Offset: 40 + keen::ds::ecs::TimelineSystemCounts startCounts; // Offset: 44 + keen::ds::ecs::TimelineSystemCounts endCounts; // Offset: 56 + keen::DsArray createdEntities; // Offset: 72 + keen::DsArray destroyedEntities; // Offset: 112 + keen::DsArray entities; // Offset: 152 + keen::ds::ecs::TimelineCamera camera; // Offset: 192 +}; + +struct ecs.TimelineReplicationPriorityEntry { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint16 priority; // Offset: 4 +}; + +struct ecs.TimelineReplicationPriorityMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::DsArray clientEntries; // Offset: 16 + keen::DsArray predictionEntries; // Offset: 56 +}; + +typedef keen::ecs::TimelineEntitySkipReason ecs.TimelineEntitySkipReason; + +struct ecs.TimelineEntitySkipMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::ds::ecs::EntityId entityId; // Offset: 16 + keen::ds::ecs::TimelineEntitySkipReason reason; // Offset: 20 +}; + +struct ecs.TimelineEntitySendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::uint8 playerIndex; // Offset: 12 + keen::bool prediction; // Offset: 13 + keen::bool create; // Offset: 14 + keen::ds::ecs::EntityId entityId; // Offset: 16 + keen::DsArray messageData; // Offset: 24 +}; + +struct ecs.TimelineEntityRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineEntityProcessMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::bool prediction; // Offset: 16 + keen::bool create; // Offset: 17 +}; + +struct ecs.TimelineInputSendMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineInputRecvMessage { + keen::Time time; // Offset: 0 + keen::uint32 tick; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct ecs.TimelineReplicationComponent { + keen::uint16 index; // Offset: 0 + keen::uint16 count; // Offset: 2 + keen::uint16 deltaSize; // Offset: 4 +}; + +struct ecs.TimelineReplicationTemplate { + keen::ds::string name; // Offset: 0 + keen::uint32 checkedEntityCount; // Offset: 40 + keen::uint32 updatedEntityCount; // Offset: 44 + keen::DsArray components; // Offset: 48 +}; + +struct ecs.TimelineReplicationEvent { + keen::ds::string name; // Offset: 0 + keen::uint32 size; // Offset: 40 + keen::uint32 count; // Offset: 44 +}; + +struct ecs.TimelineReplicationStatisticsData { + keen::uint32 prioQueueSize; // Offset: 0 + keen::uint32 dirtyEntities; // Offset: 4 + keen::uint32 changedEntities; // Offset: 8 + keen::uint32 createdEntities; // Offset: 12 + keen::uint32 destroyedEntities; // Offset: 16 + keen::uint32 messageCount; // Offset: 20 + keen::uint32 messageSize; // Offset: 24 + keen::uint32 totalEventCount; // Offset: 28 + keen::uint32 totalEventSize; // Offset: 32 + keen::DsArray templates; // Offset: 40 + keen::DsArray events; // Offset: 80 +}; + +struct ecs.TimelineReplicationStatisticsMessage { + keen::Time time; // Offset: 0 + keen::uint32 playerIndex; // Offset: 8 + keen::ds::ecs::TimelineReplicationStatisticsData client; // Offset: 16 + keen::ds::ecs::TimelineReplicationStatisticsData prediction; // Offset: 136 +}; + +struct ecs.TimelinePredictionEntityState { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint32 dataTick; // Offset: 4 + keen::bool isDirty; // Offset: 8 + keen::bool isDestroyed; // Offset: 9 + keen::DsArray components; // Offset: 16 + keen::DsArray buffer; // Offset: 56 +}; + +struct ecs.TimelinePredictionUpdateMessage { + keen::Time time; // Offset: 0 + keen::uint32 startTick; // Offset: 8 + keen::uint32 clientTick; // Offset: 12 + keen::uint32 lastTick; // Offset: 16 + keen::uint32 sourceTick; // Offset: 20 + keen::DsArray entities; // Offset: 24 +}; + +struct ecs.TimelinePredictionTickMessage { + keen::Time time0; // Offset: 0 + keen::Time time1; // Offset: 8 + keen::uint32 tick; // Offset: 16 + keen::DsArray entities; // Offset: 24 +}; + +struct ecs.SceneCellEntity { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::uint16 templateIndex; // Offset: 16 + keen::uint16 clientCulledMask; // Offset: 18 + keen::uint16 predictionCulledMask; // Offset: 20 + keen::bool isUncullable; // Offset: 22 + keen::bool hasPosition; // Offset: 23 + keen::bool isDynamic; // Offset: 24 +}; + +struct ecs.SceneCellMessage { + keen::uint2 cellPosition; // Offset: 0 + keen::uint32 cellIndex; // Offset: 8 + keen::DsArray entities; // Offset: 16 + keen::uint32 sceneEntityCount; // Offset: 56 +}; + +typedef keen::ecs::SceneChunkState ecs.SceneChunkState; + +struct ecs.SceneChunkEntry { + keen::ds::ecs::SceneChunkState state; // Offset: 0 + keen::bool isActive; // Offset: 1 + keen::uint32 entityCount; // Offset: 4 + keen::uint32 destroyedEntityCount; // Offset: 8 + keen::Time unloadAge; // Offset: 16 +}; + +struct ecs.SceneChunksMessage { + keen::DsArray chunks; // Offset: 0 +}; + +struct ecs.SceneZoneBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +struct ecs.SceneBuildZonesMessage { + keen::DsArray allowedZones; // Offset: 0 + keen::DsArray forbiddenZones; // Offset: 40 + keen::DsArray activeZones; // Offset: 80 + keen::DsArray playableZones; // Offset: 120 +}; + +struct ecs.SceneMessage { + keen::Guid sceneGuid; // Offset: 0 + keen::uint2 sceneChunkSize; // Offset: 16 + keen::uint2 entityGridSize; // Offset: 24 + keen::float32 entityGridCellSize; // Offset: 32 +}; + +typedef keen::ecs::SceneControlMessageType ecs.SceneControlMessageType; + +struct ecs.SceneControlMessage { + keen::ds::ecs::SceneControlMessageType type; // Offset: 0 +}; + +struct ecs.SceneHotPointsMessage { + keen::DsArray hotPoints; // Offset: 0 +}; + +struct ecs.SceneHotPointsFile { + keen::DsArray hotPoints; // Offset: 0 +}; + +struct ecs.ScenePlayerCamera { + keen::float3 position; // Offset: 0 + keen::float yRotation; // Offset: 12 +}; + +struct ecs.ScenePlayerCamerasMessage { + keen::StaticArray cameras; // Offset: 0 +}; + +struct ecs.SceneChunkResetMessage { + keen::uint32 chunkIndex; // Offset: 0 +}; + +typedef keen::ecs::QueryFlags ecs.QueryFlags; + +struct ecs.SceneColliderQueryEntry { + keen::ds::ecs::QueryId queryId; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 4 + keen::ds::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::ds::ecs::QueryFlags flags; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::AxisAlignedBox colliderAabb; // Offset: 32 + keen::ds::string debugName; // Offset: 64 + keen::uint32 resultCount; // Offset: 104 + keen::bool checkWorldTriangles; // Offset: 108 +}; + +struct ecs.RangeQueryId { + keen::uint32 id; // Offset: 0 +}; + +struct ecs.SceneRangeQueryEntry { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 4 + keen::ds::ecs::ProgramId programId; // Offset: 8 + keen::uint32 templateIndex; // Offset: 12 + keen::uint16 componentId; // Offset: 16 + keen::AxisAlignedBox aabb; // Offset: 32 + keen::float32 range; // Offset: 64 + keen::ds::string debugName; // Offset: 72 + keen::uint32 resultCount; // Offset: 112 +}; + +struct ecs.SceneQueriesMessage { + keen::uint32 triangleQueryCount; // Offset: 0 + keen::DsArray colliderQueries; // Offset: 8 + keen::DsArray rangeQueries; // Offset: 48 +}; + +struct ecs.TimeControlMessage { + keen::sint16 tickDelta; // Offset: 0 + keen::Time sleep; // Offset: 8 + keen::Time sleepOnce; // Offset: 16 +}; + +struct ecs.DestroyEntityMessage { + keen::ds::ecs::EntityId entityId; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateReference; + +struct HolisticMapFilterTemplateEntry { + keen::ds::ecs::TemplateReference templateReference; // Offset: 0 + keen::bool showChildTemplates; // Offset: 16 +}; + +typedef keen::ecs::TestState ecs.TestState; + +struct ecs.TestA { + keen::Time time; // Offset: 0 + keen::uint32 state; // Offset: 8 + keen::ds::ecs::TestState stateB; // Offset: 12 + keen::ds::ecs::TestState stateC; // Offset: 13 + keen::ds::ecs::TestState stateD; // Offset: 14 +}; + +struct ecs.TestB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestC { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestD { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestTemplateA { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateA { + keen::uint32 defValue; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct ecs.TestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTestTemplateB { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.DynamicTypeTestTemplate { + keen::DsArray values; // Offset: 0 +}; + +struct ecs.TestBase { + keen::DsString name; // Offset: 0 +}; + +struct ecs.DynamicTestBase { + keen::uint32 value; // Offset: 0 + keen::uint32 notSave; // Offset: 4 + keen::ds::ecs::EntityId mainEntity; // Offset: 8 + keen::Time start; // Offset: 16 + keen::Time duration; // Offset: 24 +}; + +struct ecs.TestBaseEntry { + keen::uint32 value; // Offset: 0 + keen::ds::ecs::EntityId spouseId; // Offset: 4 + keen::ds::ecs::QueryId queryId; // Offset: 8 +}; + +struct ecs.TestBaseEntryServer { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryTemplateClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntrySpawnClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.TestBaseEntryAddClient { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.Event { +}; + +struct ecs.TestEvent1 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEvent2 { + keen::uint32 data; // Offset: 0 +}; + +struct ecs.TestEventCreate { + keen::uint32 value; // Offset: 0 +}; + +struct ecs.GridId { + keen::uint64 id; // Offset: 0 +}; + +struct ecs.PathQueryId { + keen::uint32 id; // Offset: 0 +}; + +typedef keen::ecs::QueryFlag ecs.QueryFlag; + +typedef keen::ecs::QueryResultFlag ecs.QueryResultFlag; + +typedef keen::ecs::QueryResultFlags ecs.QueryResultFlags; + +typedef keen::ecs::CollisionCheckFlag ecs.CollisionCheckFlag; + +typedef keen::ecs::CollisionCheckFlags ecs.CollisionCheckFlags; + +struct ecs.Template { + keen::bool predictEntity; // Offset: 0 + keen::bool farCulling; // Offset: 1 + keen::bool questEntity; // Offset: 2 +}; + +struct ecs.TemplateResource { + keen::ds::string name; // Offset: 0 + keen::bool predictEntity; // Offset: 40 + keen::bool farCulling; // Offset: 41 + keen::DsArray> components; // Offset: 48 +}; + +typedef keen::ObjectReference ecs.TemplateResourceReference; + +struct ecs.TemplateSubDirectory { +}; + +struct ecs.TemplateDirectory { +}; + +struct ecs.TemplateCollectionResource { + keen::DsArray templates; // Offset: 0 +}; + +typedef keen::ObjectReference ecs.TemplateCollectionReference; + +struct ecs.ServerInfo { + keen::Time minDuration; // Offset: 0 + keen::Time avgDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 + keen::uint32 sceneEntityCount; // Offset: 24 + keen::uint32 dynamicEntityCount; // Offset: 28 + keen::uint32 sceneChunkCount; // Offset: 32 + keen::uint32 bandwidth; // Offset: 36 +}; + +typedef keen::ecs::ColliderFlags ecs.ColliderFlags; + +struct ecs.ColliderFlagData { + keen::ds::ecs::ColliderMask isA; // Offset: 0 + keen::ds::ecs::ColliderMask checkAgainst; // Offset: 4 +}; + +struct ecs.ColliderModeSetup { + keen::bool defaultMode; // Offset: 0 + keen::bool sitting; // Offset: 1 + keen::bool lying; // Offset: 2 + keen::bool evading; // Offset: 3 + keen::bool climbingWall; // Offset: 4 + keen::bool death; // Offset: 5 + keen::bool invisible; // Offset: 6 +}; + +struct ecs.ColliderData { + keen::bool enabled; // Offset: 0 + keen::ds::ecs::ColliderFlagData flags; // Offset: 4 + keen::float3 offset; // Offset: 12 + keen::Quaternion orientation; // Offset: 24 + keen::float32 stickyness; // Offset: 40 + keen::ds::ecs::ColliderModeSetup colliderModeSetup; // Offset: 44 + keen::bool preventFallDamage; // Offset: 51 + keen::bool isSnappingBox; // Offset: 52 +}; + +struct ecs.SphereColliderData { + keen::ds::SphereColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 60 +}; + +struct ecs.SpheroidColliderData { + keen::ds::SpheroidColliderShape shape; // Offset: 56 +}; + +struct ecs.CapsuleColliderData { + keen::ds::CapsuleColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 64 +}; + +struct ecs.SegmentColliderData { + keen::ds::SegmentColliderShape shape; // Offset: 56 +}; + +struct ecs.MovingSphereColliderData { + keen::ds::SphereColliderShape sphereShape; // Offset: 56 + keen::ds::SegmentColliderShape segmentShape; // Offset: 60 +}; + +struct ecs.BoxColliderData { + keen::ds::BoxColliderShape shape; // Offset: 56 + keen::bool continuous; // Offset: 68 +}; + +struct ecs.LineSegment { + keen::Vector3 p0; // Offset: 0 + keen::Vector3 p1; // Offset: 16 +}; + +struct ecs.SegmentBundleColliderData { + keen::StaticArray segments; // Offset: 64 +}; + +typedef keen::DsArray> ecs.ColliderDataArray; + +typedef keen::ecs::ColliderResolveFlag ecs.ColliderResolveFlag; + +typedef keen::ecs::ColliderResolveMask ecs.ColliderResolveMask; + +struct ecs.ColliderResourceData { + keen::ds::ecs::ColliderDataArray dataArray; // Offset: 0 + keen::ds::ecs::ColliderFlagData combinedFlags; // Offset: 40 + keen::ds::ecs::ColliderResolveMask resolveMask; // Offset: 48 +}; + +struct ecs.CollisionEvent { + keen::ds::ecs::EntityId entityA; // Offset: 0 + keen::ds::ecs::EntityId entityB; // Offset: 4 + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::float32 sqrDistance; // Offset: 32 + keen::float32 overlap; // Offset: 36 + keen::ds::ecs::ColliderMask colliderFlagsA; // Offset: 40 + keen::ds::ecs::ColliderMask colliderFlagsB; // Offset: 44 + keen::uint8 voxelMaterialId; // Offset: 48 +}; + +typedef keen::ecs::EntitySpawnValue ecs.EntitySpawnValue; + +typedef keen::ecs::EntitySpawnValueMask ecs.EntitySpawnValueMask; + +typedef keen::ecs::EnemyFeature ecs.EnemyFeature; + +typedef keen::ecs::EnemyFeatureMask ecs.EnemyFeatureMask; + +struct ecs.EnemyMarkerTag { +}; + +typedef keen::ObjectReference actor.ActorSequenceReference; + +struct ecs.EnemySettings { + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::ds::ecs::EnemyFeatureMask enabledFeatures; // Offset: 16 + keen::ds::ecs::EnemyFeatureMask disabledFeatures; // Offset: 20 + keen::float32 checkDistance; // Offset: 24 + keen::ObjectReference requiredMarkerTag; // Offset: 28 + keen::ds::actor::ActorSequenceReference spawnSequence; // Offset: 44 + keen::float32 maxTargetDistanceToHomeZone; // Offset: 60 +}; + +typedef keen::ecs::RandomSpawnerSetting ecs.RandomSpawnerSetting; + +typedef keen::ecs::RandomSpawnerSettingMask ecs.RandomSpawnerSettingMask; + +typedef keen::ecs::RandomSpawnerAmount ecs.RandomSpawnerAmount; + +struct ecs.RandomSpawnerSettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ds::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 + keen::ds::ecs::RandomSpawnerSettingMask changedSettings; // Offset: 3 +}; + +struct ecs.RandomSpawnerEntitySettings { + keen::bool allowUpScaling; // Offset: 0 + keen::bool allowDownScaling; // Offset: 1 + keen::ds::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 2 +}; + +struct ecs.EntitySpawnData { + keen::float3 position; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::ds::ecs::EntityId parentEntityId; // Offset: 28 + keen::Time spawnTime; // Offset: 32 + keen::uint64 randomSeed; // Offset: 40 + keen::float3 velocity; // Offset: 48 + keen::Color tintColor; // Offset: 60 + keen::float32 triggerRange; // Offset: 64 + keen::float32 triggerRange2; // Offset: 68 + keen::float32 triggerRange3; // Offset: 72 + keen::HashKey32 itemId; // Offset: 76 + keen::ds::ecs::EnemySettings enemySettings; // Offset: 80 + keen::ds::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 144 + keen::sint32 level; // Offset: 148 + keen::ds::ecs::EntitySpawnValueMask mask; // Offset: 152 +}; + +typedef keen::ecs::PathGridType ecs.PathGridType; + +typedef keen::ecs::PathNodeType ecs.PathNodeType; + +struct ecs.PathNodeCostFactors { + keen::float32 none; // Offset: 0 + keen::float32 building; // Offset: 4 + keen::float32 collider; // Offset: 8 + keen::float32 walkablePlatform; // Offset: 12 + keen::float32 tar; // Offset: 16 + keen::float32 mud; // Offset: 20 + keen::float32 road; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 deadlyFog; // Offset: 32 + keen::float32 lava; // Offset: 36 + keen::float32 noNpcMovement; // Offset: 40 + keen::float32 npcAvoid; // Offset: 44 + keen::float32 closedDoor; // Offset: 48 +}; + +typedef keen::ecs::PathNodeTypeMask ecs.PathNodeTypeMask; + +struct ecs.PathGridMaterialSettings { + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 0 +}; + +typedef keen::ecs::PathGridMaterialSettingsArray ecs.PathGridMaterialSettingsArray; + +struct ecs.PathNodeRequirements { + keen::ds::ecs::PathNodeTypeMask requiredTypes; // Offset: 0 + keen::ds::ecs::PathNodeTypeMask forbiddenTypes; // Offset: 2 +}; + +typedef keen::ecs::PathQueryTargetType ecs.PathQueryTargetType; + +typedef keen::ecs::PathMoveType ecs.PathMoveType; + +typedef keen::ecs::PathMoveTypeMask ecs.PathMoveTypeMask; + +typedef keen::ecs::PathQueryCheck ecs.PathQueryCheck; + +struct ecs.PathGridDistance { + keen::uint32 halfMeters; // Offset: 0 +}; + +typedef keen::ecs::PathGridInteractionType ecs.PathGridInteractionType; + +struct ecs.PathfindingHeightDifferenceSettings { + keen::float terrain; // Offset: 0 + keen::float building; // Offset: 4 + keen::float collider; // Offset: 8 +}; + +struct ecs.PathfindingSettings { + keen::ds::ecs::PathfindingHeightDifferenceSettings maxHeightDifferenceSettings; // Offset: 0 +}; + +typedef keen::ecs::LerpTransformTarget ecs.LerpTransformTarget; + +struct ecs.AlignedBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 +}; + +typedef keen::enemy01::CombatState enemy01.CombatState; + +typedef keen::enemy01::CombatStateMask enemy01.CombatStateMask; + +typedef keen::enemy01::State enemy01.State; + +typedef keen::enemy01::EnemyClass enemy01.EnemyClass; + +typedef keen::enemy01::StateMask enemy01.StateMask; + +typedef keen::enemy01::StateUpdateType enemy01.StateUpdateType; + +typedef keen::enemy01::StateCondition enemy01.StateCondition; + +struct enemy01.EnemyVariable { +}; + +typedef keen::ObjectReference enemy01.EnemyVariableReference; + +struct enemy01.AbilityConstrain { + keen::bool negated; // Offset: 0 +}; + +struct enemy01.DistanceConstrain { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct enemy01.VerticalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.HorizontalDistanceConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.ClearPathConstrain { + keen::bool checkSolidColliders; // Offset: 1 + keen::bool checkSteeringColliders; // Offset: 2 +}; + +struct enemy01.CooldownConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.StateConstrain { + keen::ds::enemy01::StateMask states; // Offset: 4 +}; + +struct enemy01.CombatStateConstrain { + keen::ds::enemy01::CombatStateMask combatStates; // Offset: 4 +}; + +struct enemy01.StateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.CurrentCombatStateDurationConstrain { + keen::Time duration; // Offset: 8 +}; + +struct enemy01.IsRetaliateAllowedConstrain { + keen::bool isAllowed; // Offset: 1 +}; + +struct enemy01.IsTargetOfMyTargetConstrain { + keen::bool isTargetOfMyTarget; // Offset: 1 +}; + +struct enemy01.LastHitReceivedConstrain { + keen::Time minDuration; // Offset: 8 + keen::Time maxDuration; // Offset: 16 +}; + +struct enemy01.ThreatConstrain { + keen::float32 minThreat; // Offset: 4 +}; + +struct enemy01.AngleToTargetConstrain { + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.AngleFromSlotToTargetConstraint { + keen::ds::AttachmentSlot slot; // Offset: 1 + keen::float32 minAngle; // Offset: 4 + keen::float32 maxAngle; // Offset: 8 +}; + +struct enemy01.IsInAttackRangeConstrain { +}; + +struct enemy01.IsInPhaseConstrain { + keen::ObjectReference phase; // Offset: 4 + keen::Time minDuration; // Offset: 24 +}; + +struct enemy01.IsLastPhaseConstraint { + keen::ObjectReference phase; // Offset: 4 +}; + +typedef keen::ecs::HitEventFlagMask ecs.HitEventFlagMask; + +struct enemy01.HasBeenHitInCurrentPhaseConstrain { + keen::ds::ecs::HitEventFlagMask requiredHitEventFlags; // Offset: 4 +}; + +typedef keen::actor::StateMask actor.StateMask; + +struct enemy01.CombatTargetStateFlagsConstrain { + keen::ds::actor::StateMask flags; // Offset: 8 +}; + +struct enemy01.IsAttackSelectedConstrain { + keen::ds::actor::ActorSequenceReference attackSequence; // Offset: 4 +}; + +struct enemy01.IsAnyAttackSelectedConstraint { +}; + +struct enemy01.EnemyHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.CurrentTargetHealthPercentageConstrain { + keen::float32 minPercentage; // Offset: 4 + keen::float32 maxPercentage; // Offset: 8 +}; + +struct enemy01.IsPlayerTargetConstrain { + keen::bool isPlayer; // Offset: 1 +}; + +struct enemy01.TargetActorStatesConstrain { + keen::ds::actor::StateMask requiredStates; // Offset: 8 + keen::ds::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.ActorStatesConstrain { + keen::ds::actor::StateMask requiredStates; // Offset: 8 + keen::ds::actor::StateMask excludedStates; // Offset: 16 +}; + +struct enemy01.HasCombatTargetConstrain { +}; + +struct enemy01.NeedsToFlee { +}; + +struct enemy01.RandomChanceConstrain { + keen::float32 chance; // Offset: 4 +}; + +struct enemy01.IsGroupLeaderConstrain { +}; + +struct enemy01.IsGroupMemberConstrain { +}; + +struct enemy01.IsGuardingPlayerConstraint { +}; + +struct enemy01.IsTargetInHomeZoneConstraint { +}; + +struct enemy01.TargetDistanceToHomeZoneConstraint { + keen::float32 minDistance; // Offset: 4 + keen::float32 maxDistance; // Offset: 8 +}; + +struct enemy01.IsTargetReachableConstraint { +}; + +struct enemy01.IsVariableSetConstraint { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 4 +}; + +struct enemy01.Ability { + keen::ds::actor::ActorSequenceReference actionSequence; // Offset: 0 +}; + +struct enemy01.AbilitySelectionContrains { +}; + +struct enemy01.AbilityExecutionContrains { +}; + +struct enemy01.AbilityAbortConstraints { +}; + +typedef keen::DsArray> enemy01.AbilityConstrains; + +typedef keen::enemy01::AttackStyle enemy01.AttackStyle; + +typedef keen::enemy01::AttackStyleMask enemy01.AttackStyleMask; + +typedef keen::enemy01::AttackFlag enemy01.AttackFlag; + +typedef keen::enemy01::AttackFlagMask enemy01.AttackFlagMask; + +typedef keen::enemy01::CombatTargetChangeMode enemy01.CombatTargetChangeMode; + +typedef keen::enemy01::BlockRotationDuration enemy01.BlockRotationDuration; + +struct enemy01.Action { +}; + +typedef keen::DsVariant enemy01.ActionVariant; + +typedef keen::DsArray enemy01.ActionVariants; + +struct enemy01.AttackActions { +}; + +struct enemy01.AttackConstraints { +}; + +typedef keen::enemy01::AttackCommandMode enemy01.AttackCommandMode; + +struct enemy01.AttackCommandData { + keen::ds::enemy01::AttackCommandMode mode; // Offset: 0 +}; + +struct enemy01.AttackCommandDescription { +}; + +struct enemy01.AttackCommand { + keen::ds::enemy01::AbilityConstrains constraints; // Offset: 8 + keen::ds::enemy01::ActionVariants actions; // Offset: 48 +}; + +typedef keen::DsArray enemy01.AttackCommandArray; + +struct enemy01.AttackCommandContainerDescription { +}; + +struct enemy01.AttackData { +}; + +struct enemy01.JumpAttackData { + keen::float32 distanceFactor; // Offset: 0 + keen::float32 minForce; // Offset: 4 + keen::float32 maxForce; // Offset: 8 + keen::float32 height; // Offset: 12 + keen::float32 forwardMomentum; // Offset: 16 +}; + +struct enemy01.DashAttackData { + keen::float32 overshootDistance; // Offset: 0 + keen::float32 lookAheadLength; // Offset: 4 + keen::float32 collisionAvoidanceLength; // Offset: 8 + keen::float32 collisionOffset; // Offset: 12 + keen::float32 decelerateDistance; // Offset: 16 + keen::float32 decelerateEnforceDistance; // Offset: 20 +}; + +struct enemy01.TeleportAttackData { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::uint32 verticalSearchDistance; // Offset: 8 + keen::bool checkLineOfSight; // Offset: 12 + keen::ds::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 14 + keen::float32 minHorizontalSpace; // Offset: 20 + keen::float32 minVerticalSpace; // Offset: 24 +}; + +typedef keen::DsVariant enemy01.AttackDataVariant; + +struct enemy01.AttackDataDescription { +}; + +struct enemy01.AttackDesscription { + keen::ds::enemy01::AttackStyleMask attackStyle; // Offset: 16 + keen::float32 selectionChance; // Offset: 20 + keen::ds::enemy01::AttackFlagMask flags; // Offset: 24 + keen::float32 threat; // Offset: 28 + keen::float32 minRange; // Offset: 32 + keen::float32 maxRange; // Offset: 36 + keen::float32 maxVerticalRange; // Offset: 40 + keen::ObjectReference cooldownGroupID; // Offset: 44 + keen::float32 speed; // Offset: 60 + keen::float32 acceleration; // Offset: 64 + keen::ds::actor::ActorSequenceReference executionAttackSequence; // Offset: 68 + keen::ds::enemy01::BlockRotationDuration blockRotationDuration; // Offset: 84 + keen::ds::enemy01::CombatTargetChangeMode combatTargetChangeMode; // Offset: 85 +}; + +struct enemy01.AttackDesscriptionResource { + keen::ds::enemy01::AttackDesscription description; // Offset: 0 + keen::ds::enemy01::AbilityConstrains selectionConstrain; // Offset: 88 + keen::ds::enemy01::AbilityConstrains executionConstrain; // Offset: 128 + keen::ds::enemy01::AbilityConstrains abortConstraints; // Offset: 168 + keen::ds::enemy01::AttackCommandArray commands; // Offset: 208 + keen::ds::enemy01::AttackDataVariant data; // Offset: 248 +}; + +typedef keen::enemy01::BehaviorMode enemy01.BehaviorMode; + +struct enemy01.BehaviorExecutionContrains { +}; + +struct enemy01.BehaviorAbortConstraints { +}; + +struct enemy01.BehaviorActions { +}; + +struct enemy01.BehaviorSettings { + keen::Time checkIntervalMin; // Offset: 0 + keen::Time checkIntervalMax; // Offset: 8 + keen::Time cooldownMin; // Offset: 16 + keen::Time cooldownMax; // Offset: 24 + keen::float32 chance; // Offset: 32 +}; + +struct enemy01.BehaviorDesscription { + keen::ds::enemy01::BehaviorMode mode; // Offset: 0 + keen::ds::enemy01::BehaviorSettings settings; // Offset: 8 +}; + +struct enemy01.BehaviorDesscriptionResource { + keen::ds::enemy01::AbilityConstrains executionConstrain; // Offset: 48 + keen::ds::enemy01::AbilityConstrains abortConstraints; // Offset: 88 + keen::ds::enemy01::ActionVariants actions; // Offset: 128 +}; + +typedef keen::ObjectReference enemy01.BehaviorDescriptionReference; + +struct enemy01.BehaviorReferenceDescription { + keen::ds::enemy01::BehaviorDescriptionReference behavior; // Offset: 0 +}; + +struct enemy01.AttackCooldownGroupId { +}; + +struct enemy01.AttackCooldownGroup { + keen::ObjectReference id; // Offset: 0 + keen::Time cooldown; // Offset: 16 +}; + +struct enemy01.BlockRotationSettings { + keen::Time shortBlockRotationDuration; // Offset: 0 + keen::Time mediumBlockRotationDuration; // Offset: 8 + keen::Time longBlockRotationDuration; // Offset: 16 +}; + +struct enemy01.CombatTurnConditions { + keen::float32 minSpeed; // Offset: 0 + keen::Time minWalkDuration; // Offset: 8 +}; + +struct enemy01.LeaningSettings { + keen::ds::enemy01::CombatStateMask combatStates; // Offset: 0 + keen::ds::AttachmentSlot slot; // Offset: 4 +}; + +struct enemy01.CombatJumpMoveSettings { + keen::bool useJumpMoveIfTargetIsNotReachable; // Offset: 0 + keen::Time minJumpMoveDuration; // Offset: 8 + keen::Time maxJumpMoveDuration; // Offset: 16 + keen::uint8 maxJumpUpHeight; // Offset: 24 + keen::uint8 maxJumpDownHeight; // Offset: 25 +}; + +struct enemy01.AttackMoveSettings { + keen::bool alwaysLookAtCombatTarget; // Offset: 0 +}; + +struct enemy01.SleepDaytimeSetting { + keen::float chance; // Offset: 0 + keen::Time minSleepDuration; // Offset: 8 + keen::Time maxSleepDuration; // Offset: 16 +}; + +struct enemy01.SleepSetup { + keen::ds::enemy01::SleepDaytimeSetting daySettings; // Offset: 0 + keen::ds::enemy01::SleepDaytimeSetting nightSettings; // Offset: 24 + keen::Time minInitialCheckDelay; // Offset: 48 + keen::Time maxInitialCheckDelay; // Offset: 56 + keen::Time minCheckInterval; // Offset: 64 + keen::Time maxCheckInterval; // Offset: 72 + keen::ds::animationgraph::StateIdReference sleepAnimation; // Offset: 80 +}; + +struct enemy01.CombatSetup { + keen::float32 preferedDistance; // Offset: 0 + keen::float32 preferedDistanceVariation; // Offset: 4 + keen::float32 preferedDistanceEngaged; // Offset: 8 + keen::float32 preferedDistanceEngagedVariation; // Offset: 12 + keen::float32 maxVerticalDistance; // Offset: 16 + keen::float32 maxPlayerTargetDistance; // Offset: 20 + keen::float32 maxNonPlayerTargetDistance; // Offset: 24 + keen::uint8 retaliateCount; // Offset: 28 + keen::DsArray cooldownGroups; // Offset: 32 + keen::float32 walkStartDistance; // Offset: 72 + keen::float32 runStartDistance; // Offset: 76 + keen::float32 runEndDistance; // Offset: 80 + keen::float32 combatRotationSpeedFactor; // Offset: 84 + keen::ds::animationgraph::StateIdReference combatIdleAnimation; // Offset: 88 + keen::ds::enemy01::BlockRotationSettings blockRotationSettings; // Offset: 104 + keen::Time minAttackDuration; // Offset: 128 + keen::Time maxAttackDuration; // Offset: 136 + keen::ds::enemy01::CombatTurnConditions turnConditions; // Offset: 144 + keen::ds::enemy01::LeaningSettings leaningSettings; // Offset: 160 + keen::ds::enemy01::CombatJumpMoveSettings jumpMoveSettings; // Offset: 168 + keen::ds::enemy01::AttackMoveSettings attackMoveSettings; // Offset: 200 +}; + +struct enemy01.BlockingSetup { + keen::ds::actor::ActorSequenceReference blockSequence; // Offset: 0 + keen::Time minBlockDuration; // Offset: 16 + keen::Time maxBlockDuration; // Offset: 24 + keen::Time maxTotalBlockDuration; // Offset: 32 + keen::Time minBlockHitExtendDuration; // Offset: 40 + keen::Time maxBlockHitExtendDuration; // Offset: 48 + keen::float32 blockAfterHitChance; // Offset: 56 + keen::bool activateBlockAtStart; // Offset: 60 + keen::bool autoToggleBlock; // Offset: 61 + keen::float32 autoToggleBlockMaxDistance; // Offset: 64 + keen::bool useBlockWalk; // Offset: 68 + keen::ds::animationgraph::StateIdReference blockWalkAnimation; // Offset: 72 + keen::float32 minBlockProjectileDistance; // Offset: 88 + keen::float32 maxBlockProjectileDistance; // Offset: 92 +}; + +struct enemy01.HomeZoneSetup { + keen::float32 radius; // Offset: 0 +}; + +struct enemy01.AggroPoolSetup { + keen::float32 maxValue; // Offset: 0 +}; + +struct enemy01.AggroPools { + keen::ds::enemy01::AggroPoolSetup senses; // Offset: 0 + keen::ds::enemy01::AggroPoolSetup friends; // Offset: 4 + keen::ds::enemy01::AggroPoolSetup enemies; // Offset: 8 +}; + +struct enemy01.AggroSetup { + keen::float32 viewRange; // Offset: 0 + keen::float32 nightViewRangeFactor; // Offset: 4 + keen::float32 viewConeHalfAngle; // Offset: 8 + keen::float32 aggroFromAttack; // Offset: 12 + keen::float32 aggroInRange; // Offset: 16 + keen::float32 aggroLossOutOfSight; // Offset: 20 + keen::float32 aggroLossUnreachable; // Offset: 24 + keen::float32 aggroDiminishSpeed; // Offset: 28 + keen::float32 noticedAggro; // Offset: 32 + keen::float32 initialAggro; // Offset: 36 + keen::float32 alarmedAggroThreshold; // Offset: 40 + keen::float32 aggroRange; // Offset: 44 + keen::float32 aggroRangeWhileMoving; // Offset: 48 + keen::bool checkPathToTarget; // Offset: 52 + keen::bool checkLineOfSight; // Offset: 53 + keen::ds::enemy01::AggroPools pools; // Offset: 56 + keen::bool preferCloserTargets; // Offset: 68 + keen::float32 preferCloserTargetsDistanceThreshold; // Offset: 72 + keen::bool preferShortestPath; // Offset: 76 + keen::float32 preferShortestPathDistanceThreshold; // Offset: 80 + keen::bool preferTargetsWithLessAttackers; // Offset: 84 +}; + +struct enemy01.CallForHelpSetup { + keen::float32 chance; // Offset: 0 + keen::float32 minRange; // Offset: 4 + keen::float32 radius; // Offset: 8 +}; + +struct enemy01.RoamingSetup { + keen::Time minInitialStartDuration; // Offset: 0 + keen::Time maxInitialStartDuration; // Offset: 8 + keen::Time minStartDuration; // Offset: 16 + keen::Time maxStartDuration; // Offset: 24 + keen::float32 minRadius; // Offset: 32 + keen::float32 maxRadius; // Offset: 36 + keen::float32 maxAngle; // Offset: 40 + keen::float32 maxHomeZoneDistance; // Offset: 44 + keen::bool loop; // Offset: 48 + keen::float32 minLoopUpdateDistance; // Offset: 52 + keen::ds::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 56 +}; + +struct enemy01.FleeSetup { + keen::float32 minFleeRadius; // Offset: 0 + keen::float32 maxFleeRadius; // Offset: 4 + keen::ds::animationgraph::StateIdReference fleeAnimation; // Offset: 8 + keen::Time maxFleeDuration; // Offset: 24 +}; + +struct enemy01.NoiseListenerSetup { + keen::ds::actor::ActorSequenceReference reactToNoiseSequence; // Offset: 0 + keen::float32 listenRangeFactor; // Offset: 16 + keen::float32 listenRangeFactorWhileSleeping; // Offset: 20 +}; + +struct enemy01.SteeringSetup { + keen::float32 defaultSteeringWeight; // Offset: 0 + keen::float32 roamingSteeringWeight; // Offset: 4 + keen::float32 closeCombatSteeringWeight; // Offset: 8 + keen::float32 farCombatSteeringWeight; // Offset: 12 +}; + +struct enemy01.ProwlSetup { + keen::float32 minProwlDistance; // Offset: 0 + keen::float32 maxProwlDistance; // Offset: 4 + keen::float32 maxHeightDifference; // Offset: 8 + keen::Time minProwlDuration; // Offset: 16 + keen::Time maxProwlDuration; // Offset: 24 + keen::Time minProwlCooldown; // Offset: 32 + keen::Time maxProwlCooldown; // Offset: 40 + keen::bool checkClearPath; // Offset: 48 +}; + +struct enemy01.ParrySetup { + keen::ds::actor::ActorSequenceReference parriedSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference parriedStunSequence; // Offset: 16 + keen::ds::actor::ActorSequenceReference parriedStunLongDurationSequence; // Offset: 32 + keen::float32 addedThreatAfterParry; // Offset: 48 +}; + +typedef keen::ecs::LocomotionSpeedSelector ecs.LocomotionSpeedSelector; + +struct enemy01.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleProwl; // Offset: 4 + keen::float32 maxMovementAngleCombat; // Offset: 8 + keen::float32 maxMovementAngleCombatWithoutRoation; // Offset: 12 + keen::float32 maxMovementAngleRoaming; // Offset: 16 + keen::ds::ecs::LocomotionSpeedSelector returnHomeSpeed; // Offset: 20 +}; + +struct enemy01.GuardSetup { + keen::float32 startDistance; // Offset: 0 + keen::float32 targetDistance; // Offset: 4 + keen::bool guardParent; // Offset: 8 + keen::bool canGuardPlayer; // Offset: 9 +}; + +struct enemy01.PatrolSetup { + keen::Time initialStartTimeMin; // Offset: 0 + keen::Time initialStartTimeMax; // Offset: 8 + keen::Time patrolStartMin; // Offset: 16 + keen::Time patrolStartMax; // Offset: 24 + keen::Time patrolPauseMin; // Offset: 32 + keen::Time patrolPauseMax; // Offset: 40 + keen::float startTurnDistamce; // Offset: 48 + keen::ds::animationgraph::StateIdReference patrolAnimation; // Offset: 52 +}; + +struct enemy01.InteractionSetup { + keen::Time interactionPauseMin; // Offset: 0 + keen::Time interactionPauseMax; // Offset: 8 +}; + +struct enemy01.TauntSetup { + keen::ds::actor::ActorSequenceReference tauntSequence; // Offset: 0 + keen::float32 tauntChance; // Offset: 16 + keen::Time cooldown; // Offset: 24 +}; + +struct actor.TurnSetup { + keen::ds::actor::ActorSequenceReference turnLeftSmallSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference turnLeftBigSequence; // Offset: 16 + keen::ds::actor::ActorSequenceReference turnRightSmallSequence; // Offset: 32 + keen::ds::actor::ActorSequenceReference turnRightBigSequence; // Offset: 48 + keen::float32 minSmallTurnAngle; // Offset: 64 + keen::float32 minBigTurnAngle; // Offset: 68 +}; + +struct enemy01.TurnSetup { + keen::float32 minIdleTurnAngle; // Offset: 72 + keen::Time minIdleTurnCooldown; // Offset: 80 + keen::Time maxIdleTurnCooldown; // Offset: 88 + keen::float32 minDistance; // Offset: 96 + keen::ds::AttachmentSlot slot; // Offset: 100 +}; + +struct enemy01.SearchForCoverSetup { + keen::uint8 minCoverDistance; // Offset: 0 + keen::uint8 maxCoverDistance; // Offset: 1 + keen::Time minCoverDuration; // Offset: 8 + keen::Time maxCoverDuration; // Offset: 16 + keen::Time minCoverCooldown; // Offset: 24 + keen::Time maxCoverCooldown; // Offset: 32 +}; + +struct enemy01.RunAroundSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 minRadius; // Offset: 16 + keen::float32 maxRadius; // Offset: 20 +}; + +struct enemy01.PathNodeSetup { + keen::ds::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ds::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +typedef keen::enemy01::CirclingDirection enemy01.CirclingDirection; + +struct enemy01.CirclingSetup { + keen::float initialRadius; // Offset: 0 + keen::float initialHeightOffset; // Offset: 4 + keen::bool useOuterCircleAsCombatPosition; // Offset: 8 + keen::ds::enemy01::CirclingDirection initialDirection; // Offset: 9 + keen::bool changeDirection; // Offset: 10 + keen::Time minDirectionChangeDuration; // Offset: 16 + keen::Time maxDirectionChangeDuration; // Offset: 24 +}; + +typedef keen::ObjectReference enemy01.CombatSetupReference; + +typedef keen::enemy01::LookAtMovementTargetState enemy01.LookAtMovementTargetState; + +typedef keen::enemy01::UnreachableJumpMoveState enemy01.UnreachableJumpMoveState; + +struct enemy01.EnemyVariableStateEntry { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.EnemyVariableStates { + keen::StaticArray states; // Offset: 0 +}; + +typedef keen::impact::HitReactionType impact.HitReactionType; + +struct enemy01.CombatData { + keen::uint8 selectedAttackIndex; // Offset: 0 + keen::uint8 lastAttackIndex; // Offset: 1 + keen::float3 toTarget; // Offset: 4 + keen::float2 horizontalKeepDistanceDirection; // Offset: 16 + keen::HashKey32 threatPoolId; // Offset: 24 + keen::Time lastChangeEvaluation; // Offset: 32 + keen::Time stateChangeTime; // Offset: 40 + keen::Time stateMinTime; // Offset: 48 + keen::Time stateMaxTime; // Offset: 56 + keen::Time lastAttackTime; // Offset: 64 + keen::Time lastHitReceived; // Offset: 72 + keen::ds::impact::HitReactionType lastHitReactionType; // Offset: 80 + keen::ds::ecs::HitEventFlagMask lastHitEventFlags; // Offset: 84 + keen::Time targetEnteredPrivateSpace; // Offset: 88 + keen::Time prowlAngleChange; // Offset: 96 + keen::float32 selectedPreferedDistance; // Offset: 104 + keen::float32 preferedDistanceMin; // Offset: 108 + keen::float32 preferedDistanceMax; // Offset: 112 + keen::float32 prowlAngle; // Offset: 116 + keen::float32 distanceToTarget; // Offset: 120 + keen::ds::enemy01::CombatState state; // Offset: 124 + keen::bool targetOfMyTarget; // Offset: 125 + keen::uint8 hitsReceivedWhileBlocking; // Offset: 126 + keen::Time lastBlockChanceEvaluationTime; // Offset: 128 + keen::bool shouldBlockLastHit; // Offset: 136 + keen::StaticArray attackExecutionCount; // Offset: 137 + keen::StaticArray nextAllowedAttackGroupTime; // Offset: 160 + keen::float3 closestReachableTargetPosition; // Offset: 224 + keen::Time nextReachablePositionUpdateTime; // Offset: 240 + keen::bool isTargetReachable; // Offset: 248 + keen::bool isTargetInsideLeash; // Offset: 249 + keen::ds::ecs::EntityId lastTargetId; // Offset: 252 + keen::uint8 commandIndex; // Offset: 256 + keen::uint8 actionIndex; // Offset: 257 + keen::Time lastActionStartTime; // Offset: 264 + keen::Time lastAttackAbortCheckTime; // Offset: 272 + keen::Time nextAllowedProwlTime; // Offset: 280 + keen::Time nextAllowedSearchForCoverTime; // Offset: 288 + keen::Time nextSearchForCoverChangeDistanceTime; // Offset: 296 + keen::uint8 currentSearchForCoverDistance; // Offset: 304 + keen::ds::enemy01::LookAtMovementTargetState lookAtMovementTargetState; // Offset: 305 + keen::Time unreachableJumpMoveStartTime; // Offset: 312 + keen::Time unreachableJumpMoveEndTime; // Offset: 320 + keen::ds::enemy01::UnreachableJumpMoveState unreachableJumpMoveState; // Offset: 328 +}; + +typedef keen::enemy01::CirclingState enemy01.CirclingState; + +struct enemy01.CirclingData { + keen::ds::enemy01::CirclingState state; // Offset: 0 + keen::Angle targetAngle; // Offset: 4 + keen::WorldPosition centerPosition; // Offset: 8 + keen::float radius; // Offset: 32 + keen::ds::enemy01::CirclingDirection direction; // Offset: 36 + keen::Time nextDirectionChangeTime; // Offset: 40 + keen::float centerHeightOffset; // Offset: 48 +}; + +typedef keen::enemy01::EnemyMarkerType enemy01.EnemyMarkerType; + +typedef keen::enemy01::EnemyMarkerTypeMask enemy01.EnemyMarkerTypeMask; + +struct enemy01.SetCombatStateAction { + keen::ds::enemy01::CombatState state; // Offset: 0 + keen::Time minTime; // Offset: 8 + keen::Time maxTime; // Offset: 16 +}; + +struct enemy01.SetPhaseAction { + keen::ObjectReference newPhase; // Offset: 0 +}; + +struct enemy01.SwitchToLastPhaseAction { +}; + +struct enemy01.SelectAttackAction { + keen::ds::enemy01::AttackStyle attackStyle; // Offset: 0 +}; + +struct enemy01.GetStunnedAction { +}; + +struct enemy01.SetImmuneAction { + keen::bool immune; // Offset: 0 +}; + +typedef keen::ObjectReference SignalReference; + +struct enemy01.SendToggleEventAction { + keen::ds::SignalReference triggerId; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.TriggerStateConditionAction { + keen::ds::enemy01::StateCondition condition; // Offset: 0 +}; + +struct enemy01.RunAwayAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 +}; + +struct enemy01.MoveForwardAction { + keen::float32 minDistance; // Offset: 0 + keen::float32 maxDistance; // Offset: 4 + keen::ds::ecs::LocomotionSpeedSelector speed; // Offset: 8 +}; + +struct enemy01.PauseAction { + keen::float32 minDuration; // Offset: 0 + keen::float32 maxDuration; // Offset: 4 + keen::bool lookAtCombatTarget; // Offset: 8 +}; + +struct enemy01.SetIdleAnimationAction { + keen::ds::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetWalkAnimationAction { + keen::ds::animationgraph::StateIdReference animation; // Offset: 0 +}; + +struct enemy01.SetMovementSpeedAction { + keen::ds::ecs::LocomotionSpeedSelector movementType; // Offset: 0 + keen::float32 speed; // Offset: 4 +}; + +struct enemy01.PlayActionSequenceAction { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 0 + keen::bool waitUntilFinished; // Offset: 16 +}; + +struct enemy01.ChangeSlopeAlignmentAction { + keen::float32 longitudinalFactor; // Offset: 0 + keen::float32 lateralFactor; // Offset: 4 +}; + +struct enemy01.StartFlyingAction { +}; + +struct enemy01.EnterFlyingStateAction { +}; + +struct enemy01.StopFlyingAction { +}; + +struct enemy01.ToggleAllowFallDownAction { + keen::bool allowFallDown; // Offset: 0 +}; + +struct enemy01.GuardParentAction { +}; + +struct enemy01.GuardGroupLeaderAction { +}; + +struct enemy01.StopGuardAction { +}; + +struct enemy01.EnableFeatureAction { + keen::ds::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.DisableFeatureAction { + keen::ds::ecs::EnemyFeature feature; // Offset: 0 +}; + +struct enemy01.SetFleeRadiusAction { + keen::float32 fleeRadius; // Offset: 0 +}; + +struct enemy01.SelectFriendAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.SelectEnemyAction { + keen::float32 minHealthPercentage; // Offset: 0 + keen::float32 maxHealthPercentage; // Offset: 4 + keen::float32 minDistance; // Offset: 8 + keen::float32 maxDistance; // Offset: 12 +}; + +struct enemy01.MoveToTargetAction { + keen::float32 targetDistance; // Offset: 0 + keen::ds::ecs::TargetType targetType; // Offset: 4 + keen::ds::ecs::LocomotionSpeedSelector speed; // Offset: 5 +}; + +typedef keen::actor::StateFlag actor.StateFlag; + +struct enemy01.WaitUntilActorStateIsFinished { + keen::ds::actor::StateFlag state; // Offset: 0 +}; + +struct enemy01.WaitUntilSequenceIsFinished { +}; + +struct enemy01.SetWorldColliderYOffsetAction { + keen::float32 yOffset; // Offset: 0 +}; + +struct enemy01.ToggleBlockAction { + keen::bool shouldBlock; // Offset: 0 +}; + +struct enemy01.ToggleVerticalLeaningAction { + keen::bool shouldUseVerticalLeaning; // Offset: 0 +}; + +struct enemy01.SetVariableAction { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 0 + keen::bool state; // Offset: 16 +}; + +struct enemy01.ClearVariableAction { + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 0 +}; + +struct enemy01.SetCirclingRadiusAction { + keen::float radius; // Offset: 0 +}; + +struct enemy01.SetCirclingHeightOffsetAction { + keen::float heightOffset; // Offset: 0 +}; + +struct enemy01.MoveToCirclingTargetAction { + keen::ds::ecs::LocomotionSpeedSelector speed; // Offset: 0 + keen::float32 maxArriveDistance; // Offset: 4 + keen::bool keepCurrentDirection; // Offset: 8 +}; + +struct enemy01.TurnToCirclingTargetAction { +}; + +struct enemy01.StoreCurrentCirclingTargetAngleAction { +}; + +struct enemy01.StoreCirclingPositionAsTargetAction { + keen::ds::ecs::TargetType target; // Offset: 0 + keen::float radius; // Offset: 4 + keen::Angle angleOffset; // Offset: 8 +}; + +typedef keen::ObjectReference ecs.AttackReference; + +typedef keen::ObjectReference ecs.AttackDescriptionReference; + +struct ecs.AttackReferenceDescription { + keen::ds::ecs::AttackDescriptionReference attack; // Offset: 0 +}; + +struct ecs.EnemyArsenal { +}; + +typedef keen::ecs::HitReactionTypeMask ecs.HitReactionTypeMask; + +struct ecs.Enemy01BehaviorState { + keen::ds::enemy01::CombatSetup combatSetup; // Offset: 0 + keen::ds::enemy01::HomeZoneSetup homeZoneSetup; // Offset: 208 + keen::ds::enemy01::AggroSetup aggroSetup; // Offset: 212 + keen::ds::enemy01::CallForHelpSetup callForHelpSetup; // Offset: 300 + keen::ds::enemy01::RoamingSetup roamingSetup; // Offset: 312 + keen::ds::enemy01::FleeSetup fleeSetup; // Offset: 376 + keen::ds::enemy01::BlockingSetup blockingSetup; // Offset: 408 + keen::ds::enemy01::NoiseListenerSetup noiseListenerSetup; // Offset: 504 + keen::ds::enemy01::SteeringSetup steeringSetup; // Offset: 528 + keen::ds::enemy01::ProwlSetup prowlSetup; // Offset: 544 + keen::ds::enemy01::ParrySetup parrySetup; // Offset: 600 + keen::ds::enemy01::MovementSetup movementSetup; // Offset: 652 + keen::ds::enemy01::GuardSetup guardSetup; // Offset: 676 + keen::ds::enemy01::InteractionSetup interactionSetup; // Offset: 688 + keen::ds::enemy01::PatrolSetup patrolSetup; // Offset: 704 + keen::ds::enemy01::TauntSetup tauntSetup; // Offset: 776 + keen::ds::enemy01::TurnSetup turnSetup; // Offset: 808 + keen::ds::enemy01::SearchForCoverSetup searchForCoverSetup; // Offset: 912 + keen::ds::enemy01::SleepSetup sleepSetup; // Offset: 952 + keen::ds::enemy01::RunAroundSetup runAroundSetup; // Offset: 1048 + keen::ds::enemy01::PathNodeSetup pathNodeSetup; // Offset: 1072 + keen::ds::enemy01::CirclingSetup circlingSetup; // Offset: 1176 + keen::ds::actor::ActorSequenceReference callForHelpSequence; // Offset: 1208 + keen::ds::actor::ActorSequenceReference spawnSequence; // Offset: 1224 + keen::ds::enemy01::EnemyClass enemyClass; // Offset: 1240 + keen::ds::ecs::EnemyFeatureMask enabledFeatures; // Offset: 1244 + keen::float32 threatFactor; // Offset: 1248 + keen::ds::SignalReference deathSignal; // Offset: 1252 + keen::float32 pushBackScale; // Offset: 1268 + keen::ds::ecs::HitReactionTypeMask disabledHitReactions; // Offset: 1272 + keen::float32 maxHeightDiff; // Offset: 1276 +}; + +struct ecs.FlyingEnemy { + keen::float32 minRoamingHeight; // Offset: 0 + keen::float32 maxRoamingHeight; // Offset: 4 + keen::float32 minFlyHeight; // Offset: 8 + keen::float32 maxFlyHeight; // Offset: 12 + keen::float32 landingHeight; // Offset: 16 + keen::float32 attackHeightOffset; // Offset: 20 + keen::float32 combatIdleHeightOffset; // Offset: 24 + keen::float32 defaultArriveDistance; // Offset: 28 + keen::float32 attackArriveDistance; // Offset: 32 + keen::bool attackWhileGrounded; // Offset: 36 + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 40 +}; + +struct ecs.DynamicEnemy01BehaviorState { + keen::ds::enemy01::State state; // Offset: 0 + keen::Time stateChangeTime; // Offset: 8 + keen::float3 homeZonePosition; // Offset: 16 + keen::bool movementTargetIsValid; // Offset: 28 + keen::float3 movementTarget; // Offset: 32 + keen::float3 movementStartPosition; // Offset: 44 + keen::Time movementStartTime; // Offset: 56 + keen::ds::enemy01::CombatData combatData; // Offset: 64 + keen::ds::enemy01::CirclingData circlingData; // Offset: 400 + keen::ds::enemy01::EnemyVariableStates variableStates; // Offset: 456 + keen::Time nextAllowedRoamingTime; // Offset: 536 + keen::uint16 targetCounter; // Offset: 544 + keen::Time lastBehaviorCheckTime; // Offset: 552 + keen::Time lastBehaviorExecutionTime; // Offset: 560 + keen::StaticArray nextBehaviorCheckTime; // Offset: 568 + keen::uint8 currentBehaviorIndex; // Offset: 824 + keen::uint8 currentBehaviorActionIndex; // Offset: 825 + keen::ds::ecs::QueryId callForHelpQueryId; // Offset: 828 + keen::ds::ecs::EntityId callForHelpTargetEntityId; // Offset: 832 + keen::Time lastHelpTime; // Offset: 840 + keen::Time returnHomeStartTime; // Offset: 848 + keen::ds::enemy01::StateMask executedStates; // Offset: 856 + keen::ds::ecs::QueryId dashQueryId; // Offset: 860 + keen::ds::ecs::EntityId noiseEntityId; // Offset: 864 + keen::ds::ecs::EntityId projectileEntityId; // Offset: 868 + keen::uint8 controlledByAttacks; // Offset: 872 + keen::Time nextAllowedCombatIdleRotationTime; // Offset: 880 + keen::bool teleportPositionFound; // Offset: 888 + keen::ds::animationgraph::StateIdHash currentIdleAnimation; // Offset: 892 + keen::ds::animationgraph::StateIdHash currentWalkAnimation; // Offset: 896 + keen::float32 currentLongitudinalSlopeAlignmentFactor; // Offset: 900 + keen::float32 currentLateralSlopeAlignmentFactor; // Offset: 904 + keen::ds::ecs::EntityId guardEntityId; // Offset: 908 + keen::float32 currentGuardTargetDistance; // Offset: 912 + keen::ds::ecs::EntityId currentMarkerId; // Offset: 916 + keen::Time nextAllowedInteractionTime; // Offset: 920 + keen::Time nextAllowedPatrolTime; // Offset: 928 + keen::Time nextCheckGuardTime; // Offset: 936 + keen::Time nextCheckTauntTime; // Offset: 944 + keen::Time nextAllowedCombatIdleTurnTime; // Offset: 952 + keen::bool enabled; // Offset: 960 + keen::float3 lastNoisePosition; // Offset: 964 + keen::bool shouldBlock; // Offset: 976 + keen::bool isWalkBlockActive; // Offset: 977 + keen::bool isAttackMove; // Offset: 978 + keen::bool isVerticalLeaningActive; // Offset: 979 + keen::ds::ecs::EnemyFeatureMask enabledFeatures; // Offset: 980 + keen::ds::ecs::EnemyFeatureMask disabledFeatures; // Offset: 984 + keen::Time nextSleepCheckTime; // Offset: 992 + keen::Time sleepEndTime; // Offset: 1000 + keen::ds::ecs::EntityId parriedByEntity; // Offset: 1008 +}; + +typedef keen::ecs::UnitMode ecs.UnitMode; + +struct ecs.UnitTransformer { + keen::ds::ecs::UnitMode mode; // Offset: 0 +}; + +struct ecs.PlayerCountScaling { + keen::bool scaleHealth; // Offset: 0 + keen::bool scaleDamage; // Offset: 1 + keen::bool scaleStamina; // Offset: 2 + keen::float32 healthScaling; // Offset: 4 + keen::float32 damageScaling; // Offset: 8 + keen::float32 staminaScaling; // Offset: 12 + keen::bool allowDownScaling; // Offset: 16 + keen::uint8 minPlayerCount; // Offset: 17 +}; + +struct ecs.EnemyLevelScaling { + keen::float32 healthScaleFactor; // Offset: 0 + keen::float32 staminaScaleFactor; // Offset: 4 +}; + +struct ecs.EnemyScaling { + keen::Time updateInterval; // Offset: 0 + keen::ds::ecs::PlayerCountScaling playerCountScaling; // Offset: 8 + keen::ds::ecs::EnemyLevelScaling enemyLevelScaling; // Offset: 28 +}; + +struct ecs.DynamicEnemyScaling { + keen::Time nextUpdateTime; // Offset: 0 + keen::uint32 lastTargets; // Offset: 8 + keen::uint32 lastLevel; // Offset: 12 + keen::float32 lastDamageMultiplier; // Offset: 16 + keen::sint32 initialBaseMaxHealth; // Offset: 20 + keen::sint32 initialBaseStrength; // Offset: 24 + keen::sint32 initialBaseDexterity; // Offset: 28 + keen::sint32 initialBaseIntelligence; // Offset: 32 +}; + +struct ecs.EnemyMarkerEntry { + keen::float3 position; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::enemy01::EnemyMarkerType markerType; // Offset: 16 +}; + +struct ecs.EnemyMarkerCheck { + keen::float32 checkDistance; // Offset: 0 + keen::ds::ecs::RangeQueryId queryId; // Offset: 4 + keen::Time nextCheckTime; // Offset: 8 + keen::StaticArray markers; // Offset: 16 +}; + +struct ecs.EnemyMarker { + keen::ds::enemy01::EnemyMarkerType markerType; // Offset: 0 + keen::ds::actor::ActorSequenceReference defaultInteractSequence; // Offset: 4 + keen::bool useTargetOffset; // Offset: 20 + keen::ds::ecs::Offset targetOffset; // Offset: 24 + keen::float32 arriveDistance; // Offset: 64 + keen::float32 alarmRange; // Offset: 68 + keen::bool usePatrolPointDirection; // Offset: 72 + keen::bool attackTargets; // Offset: 73 + keen::uint8 maxUsers; // Offset: 74 + keen::uint8 minHorizontalSpace; // Offset: 75 + keen::uint8 minTargetHorizontalSpace; // Offset: 76 +}; + +struct ecs.LastEnemyValue { + keen::float32 lastEnemyValue; // Offset: 0 +}; + +struct ecs.DynamicEnemyMarker { + keen::uint8 users; // Offset: 0 +}; + +struct ecs.EnemyArsenalReference { + keen::ObjectReference arsenal; // Offset: 0 +}; + +struct ecs.EnemyAttackAttachment { + keen::ds::actor::ActorSequenceReference initialSequence; // Offset: 0 +}; + +typedef keen::ecs::EnemyAttackAttachmentState ecs.EnemyAttackAttachmentState; + +struct ecs.DynamicEnemyAttackAttachment { + keen::ds::ecs::EnemyAttackAttachmentState state; // Offset: 0 +}; + +struct enemy.EnemyArsenal { + keen::DsArray attacks; // Offset: 0 + keen::DsArray behaviors; // Offset: 40 +}; + +struct enemy.EnemyArsenalResource { + keen::Guid guid; // Offset: 0 + keen::DsArray attacks; // Offset: 16 + keen::DsArray behaviors; // Offset: 56 +}; + +struct enemy.EnemyArsenalSubDirectory { +}; + +struct enemy.EnemyArsenalDirectory { +}; + +struct enemy.EnemyArsenalRegistryResource { + keen::DsArray arsenals; // Offset: 0 +}; + +struct enemy01_debug.KillEnemyMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.EnforceEnemyAttackMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 +}; + +struct enemy01_debug.ToggleDisableEnemyAttackMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::uint8 attackIndex; // Offset: 4 + keen::bool disabled; // Offset: 5 +}; + +struct enemy01_debug.SetTameStateMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::bool tamed; // Offset: 4 +}; + +struct enemy01_debug.SetFrozenStateMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::bool frozen; // Offset: 4 +}; + +struct enemy01_debug.DebugAnimationGraphMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 +}; + +struct enemy01_debug.SetStateMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::ds::enemy01::State state; // Offset: 4 +}; + +struct enemy01_debug.EnforcePhaseMessage { + keen::ds::ecs::EntityId enemyId; // Offset: 0 + keen::Guid phaseId; // Offset: 4 +}; + +struct enemy01.DebugAttackState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 +}; + +struct enemy01.DebugBehaviorState { + keen::StaticArray constraintStates; // Offset: 0 + keen::bool isValid; // Offset: 8 + keen::uint32 executionCount; // Offset: 12 +}; + +struct enemy01.StateEntry { + keen::ds::enemy01::State state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct enemy01.CombatStateEntry { + keen::ds::enemy01::CombatState state; // Offset: 0 + keen::Time time; // Offset: 8 +}; + +struct ecs.EnemyDebug { + keen::uint8 enforcedAttackIndex; // Offset: 0 + keen::StaticArray disabledAttacks; // Offset: 8 + keen::bool tamed; // Offset: 16 + keen::bool frozen; // Offset: 17 + keen::StaticArray attackStates; // Offset: 18 + keen::StaticArray behaviorStates; // Offset: 164 + keen::StaticArray stateHistory; // Offset: 680 + keen::StaticArray combatStateHistory; // Offset: 808 + keen::ds::enemy01::State nextState; // Offset: 936 + keen::Guid enforcedPhase; // Offset: 940 +}; + +typedef keen::ecs::EnemyTest ecs.EnemyTest; + +typedef keen::ecs::EnemyTestFlags ecs.EnemyTestFlags; + +struct ecs.EnemyPatrolTest { + keen::bool hasReachedPatrolPoint0; // Offset: 0 + keen::bool hasReachedPatrolPoint1; // Offset: 1 +}; + +struct ecs.EnemyTestToggle { + keen::ds::ecs::EnemyTestFlags tests; // Offset: 0 +}; + +struct ecs.UnitGroup { + keen::StaticArray members; // Offset: 0 + keen::Time nextUpdateTime; // Offset: 96 +}; + +struct ecs.UnitGroupMember { + keen::ds::ecs::EntityId groupId; // Offset: 0 + keen::ds::ecs::EntityId groupLeaderId; // Offset: 4 + keen::uint8 memberIndex; // Offset: 8 +}; + +typedef keen::wildlife::State wildlife.State; + +typedef keen::wildlife::StateCondition wildlife.StateCondition; + +typedef keen::wildlife::Feature wildlife.Feature; + +typedef keen::wildlife::FeatureMask wildlife.FeatureMask; + +struct wildlife.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleFlee; // Offset: 4 + keen::float32 maxMovementAngleRoaming; // Offset: 8 + keen::float32 maxMovementAngleLanding; // Offset: 12 +}; + +struct wildlife.GlidingSetup { + keen::float32 minGlidingDistance; // Offset: 0 + keen::float32 maxGlidingDistance; // Offset: 4 +}; + +struct wildlife.PathNodeSetup { + keen::ds::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ds::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct wildlife.TamingSetup { + keen::ds::ecs::TemplateReference favoriteFood; // Offset: 0 + keen::uint8 necessaryTamingSteps; // Offset: 16 + keen::float32 foodBaitSensorRange; // Offset: 20 + keen::float32 foodBaitAngleCheckMinDistance; // Offset: 24 + keen::Time foodBaitEatMaxDuration; // Offset: 32 + keen::Time alertDurationHigh; // Offset: 40 + keen::Time alertDurationMediumFoodEat; // Offset: 48 + keen::float32 foodBaitEatAdaptFleeRadiusDistance; // Offset: 56 + keen::float32 tamingApproachFinishedFleeRadius; // Offset: 60 + keen::float32 foodBaitEatSnoutPivotDistance; // Offset: 64 +}; + +struct ecs.WildlifeTurnSetup { + keen::bool useTurnSequences; // Offset: 72 +}; + +struct ecs.Wildlife { + keen::ds::actor::ActorSequenceReference spawnSequence; // Offset: 0 + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 16 + keen::Time minIdleDuration; // Offset: 32 + keen::Time maxIdleDuration; // Offset: 40 + keen::float32 minRoamingRadius; // Offset: 48 + keen::float32 maxRoamingRadius; // Offset: 52 + keen::float32 minFleeRadius; // Offset: 56 + keen::float32 maxFleeRadius; // Offset: 60 + keen::float32 fallbackFleeRadius; // Offset: 64 + keen::float32 maxMovementRadius; // Offset: 68 + keen::ds::animationgraph::StateIdReference secureIdleAnimation; // Offset: 72 + keen::Time minFeelSecureDuration; // Offset: 88 + keen::Time maxFeelSecureDuration; // Offset: 96 + keen::float32 callForHelpChance; // Offset: 104 + keen::ds::actor::ActorSequenceReference callForHelpSequence; // Offset: 108 + keen::float32 listenRangeFactor; // Offset: 124 + keen::ds::wildlife::FeatureMask enabledFeatures; // Offset: 128 + keen::ds::wildlife::MovementSetup movementSetup; // Offset: 132 + keen::ds::wildlife::GlidingSetup glidingSetup; // Offset: 148 + keen::ds::ecs::WildlifeTurnSetup turnSetup; // Offset: 156 + keen::ds::wildlife::PathNodeSetup pathNodeSetup; // Offset: 232 + keen::ds::wildlife::TamingSetup tamingSetup; // Offset: 336 + keen::ds::actor::ActorSequenceReference tamingPetInteractionSequence; // Offset: 408 + keen::ds::LocaTagReference tamingPetInteractionVerbLoca; // Offset: 424 +}; + +typedef keen::ecs::AlertState ecs.AlertState; + +struct ecs.DynamicWildlife { + keen::ds::wildlife::State state; // Offset: 0 + keen::ds::wildlife::State lastState; // Offset: 1 + keen::Time feelSecureDuration; // Offset: 8 + keen::Time lastFleeTime; // Offset: 16 + keen::float3 spawnPosition; // Offset: 24 + keen::Time idleEndTime; // Offset: 40 + keen::Time lastStateChangeTime; // Offset: 48 + keen::float3 dangerOrigin; // Offset: 56 + keen::float32 runAwayDistance; // Offset: 68 + keen::float3 currentTargetPosition; // Offset: 72 + keen::Time keepRoamingTargetUntilTime; // Offset: 88 + keen::Time foodBaitEatTimer; // Offset: 96 + keen::ds::ecs::AlertState previousAlertState; // Offset: 104 + keen::Time alertTimeStamp; // Offset: 112 + keen::Time foodBaitNeedinessTimeStamp; // Offset: 120 + keen::Time foodBaitReactionTimeStamp; // Offset: 128 + keen::Time tamingShrinkRadiusTimerStart; // Offset: 136 + keen::ds::ecs::EntityId foodBaitEntityId; // Offset: 144 + keen::uint8 tamingProgress; // Offset: 148 +}; + +struct ecs.NetworkWildlife { + keen::ds::ecs::AlertState alertState; // Offset: 0 + keen::Time alertTimeStamp; // Offset: 8 + keen::uint8 tamingProgress; // Offset: 16 + keen::bool isEatingFoodBait; // Offset: 17 +}; + +struct ecs.WildlifeTransformer { + keen::Time timeWithoutHit; // Offset: 0 + keen::Time minDurationWithoutHit; // Offset: 8 +}; + +typedef keen::AmbientEffectPlaybackType AmbientEffectPlaybackType; + +struct AmbientEffectEntry { + keen::ds::SoundContainerReference soundContainer; // Offset: 0 + keen::ObjectReference ingameTimeSpan; // Offset: 16 + keen::bool mute; // Offset: 32 + keen::ds::AmbientEffectPlaybackType playbackType; // Offset: 33 + keen::float32 volume; // Offset: 36 +}; + +typedef keen::Biome Biome; + +struct AmbientEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::ds::Biome biome; // Offset: 1 + keen::bool mute; // Offset: 2 + keen::bool whenInFog; // Offset: 3 +}; + +struct AmbientSoundEffectEntryResource { + keen::ds::SoundContainerReference soundContainer; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::float32 volume; // Offset: 32 + keen::Guid id; // Offset: 36 + keen::Time startTime; // Offset: 56 + keen::Time endTime; // Offset: 64 + keen::ds::string description; // Offset: 72 + keen::ds::string soundContainerDescription; // Offset: 112 + keen::ds::string ingameTimeSpanDescription; // Offset: 152 + keen::ds::AmbientEffectPlaybackType playbackType; // Offset: 192 +}; + +struct AmbientSoundEffectResource { + keen::bool inAllBiomes; // Offset: 0 + keen::bool whenInFog; // Offset: 1 + keen::ds::Biome biome; // Offset: 2 + keen::DsArray effectEntries; // Offset: 8 + keen::Guid id; // Offset: 48 + keen::ds::string description; // Offset: 64 +}; + +struct AmbientVfxEffectEntry { + keen::ds::VfxReference vfx; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 +}; + +struct AmbientVfxEffect { + keen::bool inAllBiomes; // Offset: 0 + keen::ds::Biome biome; // Offset: 1 + keen::bool whenInFog; // Offset: 2 +}; + +struct AmbientVfxEffectEntryResource { + keen::ds::VfxReference vfx; // Offset: 0 + keen::ds::IngameTimeSpanReference ingameTimeSpan; // Offset: 16 + keen::Time startTime; // Offset: 32 + keen::Time endTime; // Offset: 40 + keen::Guid id; // Offset: 48 + keen::ds::string description; // Offset: 64 + keen::ds::string vfxDescription; // Offset: 104 + keen::ds::string ingameTimeSpanDescription; // Offset: 144 +}; + +struct AmbientVfxEffectResource { + keen::DsArray effectEntries; // Offset: 0 + keen::ds::Biome biome; // Offset: 40 + keen::Guid id; // Offset: 44 + keen::ds::string description; // Offset: 64 + keen::bool whenInFog; // Offset: 104 + keen::bool inAllBiomes; // Offset: 105 +}; + +struct CollisionFeedbackEffect2 { + keen::bool enabled; // Offset: 0 + keen::ds::SoundContainerReference sfx; // Offset: 4 + keen::ds::VfxReference vfx; // Offset: 20 + keen::ds::ecs::Offset ecsOffset; // Offset: 36 + keen::bool orientToNormal; // Offset: 76 + keen::bool overrideSlot; // Offset: 77 + keen::ds::AttachmentSlot slot; // Offset: 78 + keen::bool attach; // Offset: 79 + keen::bool playOnlyLocalSFX; // Offset: 80 + keen::bool useRootPosition; // Offset: 81 +}; + +struct CollisionFeedbackEffectCollection2 { + keen::ds::CollisionFeedbackEffect2 onHit; // Offset: 0 + keen::ds::CollisionFeedbackEffect2 onCriticalHit; // Offset: 84 + keen::ds::CollisionFeedbackEffect2 onBlock; // Offset: 168 + keen::ds::CollisionFeedbackEffect2 onBrokenBlock; // Offset: 252 + keen::ds::CollisionFeedbackEffect2 onIneffective; // Offset: 336 + keen::ds::CollisionFeedbackEffect2 onImmune; // Offset: 420 + keen::ds::CollisionFeedbackEffect2 onFlattening; // Offset: 504 + keen::ds::CollisionFeedbackEffect2 onPileUp; // Offset: 588 +}; + +typedef keen::ObjectReference CollisionFeedbackEffectCollectionReference; + +typedef keen::MaterialFeedbackEventType MaterialFeedbackEventType; + +typedef keen::MaterialFeedbackEventMask MaterialFeedbackEventMask; + +typedef keen::MaterialFeedbackEffectSize MaterialFeedbackEffectSize; + +struct FoleyEffectCollection { + keen::ds::ecs::Offset offset; // Offset: 0 + keen::ds::SoundContainerReference evade; // Offset: 40 + keen::ds::SoundContainerReference jump; // Offset: 56 + keen::ds::SoundContainerReference run; // Offset: 72 + keen::ds::SoundContainerReference sprint; // Offset: 88 + keen::ds::SoundContainerReference walk; // Offset: 104 +}; + +struct EnvironmentEffectBase { + keen::ds::SoundContainerReference sfx; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 16 + keen::bool orientToNormal; // Offset: 56 + keen::ds::VfxReference vfx; // Offset: 60 +}; + +typedef keen::EnvironmentEffectType EnvironmentEffectType; + +struct EnvironmentEffectPlayerDodgerollStart { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerDodgerollEnd { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerFallDamage { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJump { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLand { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerJumpLandSmall { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerRun { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSprint { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerWalk { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectPlayerSlide { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureCrashDown { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyLiftOff { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureFlyTouchDown { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectVultureHoverFlap { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct EnvironmentEffectNPCWalk { + keen::ds::EnvironmentEffectType effectType; // Offset: 76 +}; + +struct MaterialFeedbackEventBase { + keen::ds::SoundContainerReference sfxTiny; // Offset: 0 + keen::ds::SoundContainerReference sfxSmall; // Offset: 16 + keen::ds::SoundContainerReference sfxMedium; // Offset: 32 + keen::ds::SoundContainerReference sfxLarge; // Offset: 48 + keen::ds::ecs::Offset ecsOffset; // Offset: 64 + keen::bool orientToNormal; // Offset: 104 + keen::bool useRootPosition; // Offset: 105 + keen::ds::VfxReference vfx; // Offset: 108 +}; + +struct MaterialFeedbackEventOnPlace { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPickup { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnTearDown { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnDestruction { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnFlatten { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct MaterialFeedbackEventOnPileUp { + keen::ds::MaterialFeedbackEventType type; // Offset: 124 +}; + +struct CollisionFeedbackMaterial { + keen::ds::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::ds::ItemReference materialItem; // Offset: 16 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 32 + keen::bool hasFoleyEffects; // Offset: 33 + keen::uint32 foleyEffectImportance; // Offset: 36 + keen::ds::FoleyEffectCollection foleyEffects; // Offset: 40 +}; + +typedef keen::WeatherState WeatherState; + +struct WeatherLayerMaterial { + keen::ds::CollisionFeedbackEffectCollectionReference defaultEffectCollection; // Offset: 0 + keen::ds::WeatherState weather; // Offset: 16 +}; + +struct CollisionFeedbackRule { + keen::ds::CollisionFeedbackMaterialReference materialA; // Offset: 0 + keen::ds::CollisionFeedbackMaterialReference materialB; // Offset: 16 + keen::ds::CollisionFeedbackEffectCollectionReference effectCollection; // Offset: 32 +}; + +struct CollisionFeedback { +}; + +typedef keen::ColliderFeedbackEffectFlag ColliderFeedbackEffectFlag; + +typedef keen::ColliderFeedbackEffectFlags ColliderFeedbackEffectFlags; + +struct MaterialFeedbackEffect { + keen::ds::string description; // Offset: 0 + keen::ds::ecs::Offset ecsOffset; // Offset: 40 + keen::ds::SoundContainerReference sfx; // Offset: 80 + keen::ds::VfxReference vfx; // Offset: 96 + keen::DsOptional vfxParameters; // Offset: 112 + keen::ds::AttachmentSlot slot; // Offset: 128 + keen::ds::ColliderFeedbackEffectFlags flags; // Offset: 129 +}; + +typedef keen::MaterialFeedbackId MaterialFeedbackId; + +struct MaterialFeedback { + keen::ds::MaterialFeedbackId id; // Offset: 0 + keen::ds::MaterialFeedbackEventMask eventTypeMask; // Offset: 4 + keen::StaticArray eventEffectsTiny; // Offset: 8 + keen::StaticArray eventEffectsSmall; // Offset: 824 + keen::StaticArray eventEffectsMedium; // Offset: 1640 + keen::StaticArray eventEffectsLarge; // Offset: 2456 + keen::bool hasFoleyEffects; // Offset: 3272 + keen::uint32 foleyEffectImportance; // Offset: 3276 + keen::StaticArray foleyMaterialFeedbackEffects; // Offset: 3280 + keen::bool hasEnvironmentEffects; // Offset: 3960 + keen::StaticArray environmentMaterialFeedbackEffects; // Offset: 3968 + keen::Bitmask16 collisionTypeMask; // Offset: 6008 + keen::StaticArray collisionTypeEffects; // Offset: 6016 +}; + +typedef keen::ObjectReference MaterialFeedbackReference; + +struct CollisionFeedbackMatrixEntry { + keen::uint64 materialPairId; // Offset: 0 + keen::StaticArray effects; // Offset: 8 + keen::Bitmask16 effectMask; // Offset: 1096 +}; + +struct MaterialFeedbackSubDirectory { +}; + +struct MaterialFeedbackDirectory { +}; + +struct MaterialFeedbackCollectionResource { + keen::Guid id; // Offset: 0 + keen::ds::string description; // Offset: 16 + keen::DsArray collisionEffectMatrixEntry; // Offset: 56 + keen::DsArray materials; // Offset: 96 + keen::ds::MaterialFeedbackReference rainMaterialLayeredEffects; // Offset: 136 + keen::ds::MaterialFeedbackReference snowMaterialLayeredEffects; // Offset: 152 + keen::ds::MaterialFeedbackReference blizzardMaterialLayeredEffects; // Offset: 168 +}; + +typedef keen::DebugEnvironmentEffectType DebugEnvironmentEffectType; + +typedef keen::FoleyType FoleyType; + +struct DebugEnvironmentEffect { + keen::ds::DebugEnvironmentEffectType type; // Offset: 0 + keen::ds::FoleyType foleyType; // Offset: 1 + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 2 + keen::ds::ecs::CollisionType collisionType; // Offset: 3 + keen::ds::MaterialFeedbackEventType eventType; // Offset: 4 + keen::ds::MaterialFeedbackEffectSize effectSize; // Offset: 5 + keen::ds::WeatherState weatherState; // Offset: 6 + keen::bool collisionRuleFound; // Offset: 7 + keen::ds::MaterialFeedbackId materialA; // Offset: 8 + keen::ds::MaterialFeedbackId materialB; // Offset: 12 + keen::Guid eventGuid; // Offset: 16 + keen::Guid sfx; // Offset: 32 + keen::Guid vfx; // Offset: 48 + keen::float eventSendTime; // Offset: 64 + keen::float eventReceiveTime; // Offset: 68 + keen::float entityFootWorldHeight; // Offset: 72 + keen::float effectWorldHeight; // Offset: 76 +}; + +typedef keen::impact::MajorDirection impact.MajorDirection; + +struct actor.ActorSequence { + keen::ds::impact::MajorDirection majorDirection; // Offset: 16 +}; + +typedef keen::DsArray> SequenceEvents; + +struct SequenceResource { + keen::ds::SequenceEvents events; // Offset: 0 + keen::Time length; // Offset: 40 + keen::bool loop; // Offset: 48 + keen::DsString name; // Offset: 56 +}; + +struct actor.ActorSequenceResource { + keen::Guid resourceId; // Offset: 96 + keen::ds::impact::MajorDirection majorDirection; // Offset: 112 +}; + +typedef keen::ObjectReference ecs.EntityTagReference; + +struct ecs.EntityTagReferenceEntry { + keen::ds::ecs::EntityTagReference tag; // Offset: 0 +}; + +struct SequenceEvent { + keen::Time time; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::ds::ecs::EntityTagReference requiredEntityTag; // Offset: 16 + keen::StaticArray forbiddenTags; // Offset: 32 +}; + +struct actor.SetAnimationEvent { + keen::ds::animationgraph::StateIdReference animationName; // Offset: 96 + keen::bool usePureLveLocomotion; // Offset: 112 + keen::bool alignLveLocomotionToFloor; // Offset: 113 + keen::bool scaleLveWithMovementInput; // Offset: 114 + keen::bool retriggerAnimation; // Offset: 115 +}; + +struct actor.RootMotionWarpEvent { + keen::float32 minDistanceToTarget; // Offset: 96 + keen::float32 maxScale; // Offset: 100 + keen::bool abortWarpAboveMaxScale; // Offset: 104 +}; + +struct actor.PreserveVelocity { +}; + +struct actor.ImpulseEvent { + keen::float3 worldDistance; // Offset: 96 + keen::float3 localDistance; // Offset: 108 + keen::ds::ecs::ImpulseType impulseType; // Offset: 120 + keen::bool applyOnlyHorizontally; // Offset: 121 +}; + +struct actor.ApplyImpulseEvent { + keen::float3 worldImpulse; // Offset: 96 + keen::float3 localImpulse; // Offset: 108 +}; + +struct actor.SetAnimationOverlayEvent { + keen::ds::animationgraph::OverlayIdReference overlayName; // Offset: 96 + keen::DsString jointMaskStart; // Offset: 112 +}; + +struct actor.KeepAliveEvent { + keen::ds::actor::StateMask keepAliveMask; // Offset: 96 + keen::ds::actor::StateMask abortMask; // Offset: 104 +}; + +struct actor.LoopEvent { + keen::ds::actor::StateMask keepAliveMask; // Offset: 96 + keen::ds::actor::StateMask abortMask; // Offset: 104 + keen::bool jumpToLoopEndOnAbort; // Offset: 112 +}; + +typedef keen::actor::ScopeEndBehavior actor.ScopeEndBehavior; + +struct actor.ScopeEvent { + keen::ds::actor::ScopeEndBehavior scopeEndBehavior; // Offset: 120 +}; + +struct actor.ChangeColliderSetup { + keen::ds::ecs::ColliderMode mode; // Offset: 96 +}; + +struct actor.ToggleInteractionActionEvent { +}; + +struct actor.LootInteractionActionEvent { + keen::bool lootAll; // Offset: 96 + keen::bool forAllPlayers; // Offset: 97 +}; + +struct actor.ResetFallAltitudeOnApexEvent { +}; + +typedef keen::actor::SnapType actor.SnapType; + +typedef keen::actor::InterpolationMode actor.InterpolationMode; + +struct actor.SnapEvent { + keen::ds::actor::SnapType type; // Offset: 96 + keen::ds::ecs::TargetType targetType; // Offset: 97 + keen::ds::actor::InterpolationMode rotationInterpolationMode; // Offset: 98 +}; + +struct actor.SetAbortByMovement { + keen::bool value; // Offset: 96 +}; + +struct actor.PushEvent { + keen::float32 force; // Offset: 96 +}; + +typedef keen::actor::JumpType actor.JumpType; + +struct actor.JumpEvent { +}; + +struct actor.HookEvent { +}; + +struct actor.SelfDestructEvent { +}; + +typedef keen::CameraId CameraId; + +struct actor.LockCameraIdEvent { + keen::ds::CameraId cameraId; // Offset: 96 +}; + +struct actor.UnlockCameraIdEvent { +}; + +typedef keen::CameraOverride CameraOverride; + +struct actor.SetCameraOverrideEvent { + keen::ds::CameraOverride cameraOverride; // Offset: 96 +}; + +struct actor.CameraShakeEvent { + keen::float32 trauma; // Offset: 96 +}; + +struct actor.CameraShakeImpulseEvent { + keen::float3 impulse; // Offset: 96 + keen::float32 additionalTrauma; // Offset: 108 +}; + +typedef keen::HudScreenType HudScreenType; + +struct actor.OpenUi { + keen::ds::HudScreenType hudScreen; // Offset: 96 +}; + +struct actor.NegativeFeedbackEvent { + keen::ds::LocaTagReference messageLocaTag; // Offset: 96 +}; + +typedef keen::ecs::EnemyEventType ecs.EnemyEventType; + +struct actor.EnemyCommandEvent { + keen::ds::ecs::EnemyEventType eventType; // Offset: 96 +}; + +struct actor.TriggerNoiseEvent { + keen::float32 range; // Offset: 96 +}; + +typedef keen::ecs::SyncedAttackType ecs.SyncedAttackType; + +struct actor.SyncAttackEvent { + keen::ds::ecs::SyncedAttackType type; // Offset: 96 +}; + +struct actor.SyncedSequenceEvent { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 96 +}; + +struct actor.TriggerKnowledge { + keen::bool unlockForGroup; // Offset: 96 +}; + +typedef keen::actor::AbilityFlag actor.AbilityFlag; + +typedef keen::actor::AbilityMask actor.AbilityMask; + +struct actor.MovementFactors { + keen::float32 forward; // Offset: 0 + keen::float32 backward; // Offset: 4 + keen::float32 lateral; // Offset: 8 +}; + +typedef keen::ObjectReference skilltree_nodes.NodeReference; + +struct actor.DisableAbilityEvent { + keen::ds::actor::AbilityMask mask; // Offset: 96 + keen::ds::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.EnableAbilityEvent { + keen::ds::actor::AbilityMask mask; // Offset: 96 + keen::ds::skilltree_nodes::NodeReference overrideSkill; // Offset: 100 +}; + +struct actor.SetStateEvent { + keen::ds::actor::StateMask mask; // Offset: 96 +}; + +struct actor.ClearStateEvent { + keen::ds::actor::StateMask mask; // Offset: 96 +}; + +struct actor.RequestUiCover { +}; + +struct actor.SetGravityEvent { + keen::float32 gravityModifier; // Offset: 96 +}; + +struct actor.ResetGravityEvent { +}; + +struct actor.LerpMovementFactorEvent { + keen::ds::actor::MovementFactors desiredMovementFactors; // Offset: 96 + keen::Time lerpDuration; // Offset: 112 +}; + +struct actor.LerpRotationFactorEvent { + keen::float32 desiredRotationSpeedFactor; // Offset: 96 +}; + +struct actor.LerpTransformEvent { + keen::ds::ecs::LerpTransformTarget lerpTarget; // Offset: 96 + keen::bool lerpPosition; // Offset: 97 + keen::bool lerpOrientation; // Offset: 98 +}; + +struct actor.LerpSubmergeDepthEvent { + keen::float submergeDelta; // Offset: 96 +}; + +struct actor.StartClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.StopClimbing { + keen::bool isLadder; // Offset: 96 + keen::Time lerpDuration; // Offset: 104 +}; + +struct actor.PlayInstrumentEvent { +}; + +struct actor.TeleportToTargetEvent { + keen::ds::ecs::TargetType targetType; // Offset: 96 +}; + +struct actor.PetAnimalEvent { +}; + +struct actor.UpgradeAnimalEvent { +}; + +typedef keen::actor::ActionSequenceTrigger actor.ActionSequenceTrigger; + +struct actor.SetOpportunity { + keen::ds::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 + keen::ds::skilltree_nodes::NodeReference requiredSkill; // Offset: 100 + keen::Time followUpTime; // Offset: 120 + keen::Guid eventGuid; // Offset: 128 + keen::bool override; // Offset: 144 +}; + +typedef keen::ObjectReference ImpactProgramReference; + +typedef keen::DsArray> impact.Configurations; + +struct actor.SetActionOportunity { + keen::ds::actor::ActorSequenceReference followUp; // Offset: 152 + keen::ds::ImpactProgramReference costImpact; // Offset: 168 + keen::ds::impact::Configurations impactValues; // Offset: 184 +}; + +struct actor.ClearActionOportunity { + keen::ds::actor::ActionSequenceTrigger triggeredBy; // Offset: 96 +}; + +typedef keen::actor::SpawnEntityTransform actor.SpawnEntityTransform; + +struct actor.RadiusRange { + keen::float32 minRadius; // Offset: 0 + keen::float32 maxRadius; // Offset: 4 +}; + +struct actor.RandomOrientationOffset { + keen::Angle minX; // Offset: 0 + keen::Angle maxX; // Offset: 4 + keen::Angle minY; // Offset: 8 + keen::Angle maxY; // Offset: 12 + keen::Angle minZ; // Offset: 16 + keen::Angle maxZ; // Offset: 20 +}; + +struct actor.SpawnEntityBaseEvent { + keen::ds::skilltree_nodes::NodeReference requiredSkill; // Offset: 96 + keen::ds::ecs::TemplateReference templateReference; // Offset: 112 + keen::ds::actor::SpawnEntityTransform spawnTransform; // Offset: 128 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 129 + keen::ds::AttachmentSlot spawnSlot; // Offset: 130 + keen::ds::ecs::Offset spawnOffset; // Offset: 132 + keen::ds::impact::MajorDirection vfxDirection; // Offset: 172 + keen::ds::ecs::TargetType providedTarget; // Offset: 173 + keen::bool consume; // Offset: 174 + keen::ds::ItemReference onConsumeExchange; // Offset: 176 + keen::bool addWeaponReference; // Offset: 192 + keen::bool despawnAfterSequence; // Offset: 193 + keen::bool endSequenceOnDespawn; // Offset: 194 + keen::bool transferUsedItem; // Offset: 195 + keen::bool copyCustomString; // Offset: 196 + keen::ds::actor::RadiusRange randomSpawnRadius; // Offset: 200 + keen::ds::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 208 + keen::float32 minSpawnRatio; // Offset: 232 + keen::float32 maxSpawnRatio; // Offset: 236 + keen::uint8 minSpawnCount; // Offset: 240 + keen::uint8 maxSpawnCount; // Offset: 241 + keen::bool breakImpactHierarchy; // Offset: 242 + keen::bool ignoreSpawnVelocity; // Offset: 243 + keen::float3 spawnVelocity; // Offset: 244 + keen::bool applyRandomLoot; // Offset: 256 + keen::bool copyCombatAttributes; // Offset: 257 + keen::float32 chance; // Offset: 260 +}; + +struct actor.RefillBurner { +}; + +struct actor.SpawnEntityEvent { + keen::bool isProjectile; // Offset: 264 + keen::bool clearProjectiles; // Offset: 265 +}; + +struct actor.TriggerMartyrSkills { +}; + +struct actor.SpawnEntityPerAggroTargetEvent { + keen::ds::actor::StateMask excludedTargetStates; // Offset: 264 + keen::bool isProjectile; // Offset: 272 + keen::bool clearProjectiles; // Offset: 273 + keen::bool onlyPlayerTargets; // Offset: 274 + keen::ds::actor::RadiusRange randomPerTargetSpawnRadius; // Offset: 276 + keen::uint8 maxTargets; // Offset: 284 +}; + +struct impact.DamageDistribution { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::uint32 woodDamage; // Offset: 36 + keen::uint32 stoneDamage; // Offset: 40 + keen::uint32 metalDamage; // Offset: 44 + keen::uint32 explosionDamage; // Offset: 48 +}; + +struct actor.SpawnImpact { + keen::ds::ImpactProgramReference impact; // Offset: 264 + keen::Guid eventGuid; // Offset: 280 + keen::ds::impact::DamageDistribution damageDistribution; // Offset: 296 + keen::ds::ecs::ColliderResourceData colliderData; // Offset: 352 + keen::ds::impact::Configurations impactValues; // Offset: 408 + keen::bool damageDistributionIsSet; // Offset: 448 +}; + +typedef keen::ObjectReference BuffTypeReference; + +struct actor.ApplyBuffEvent { + keen::ds::BuffTypeReference buffTypeOverride; // Offset: 96 + keen::bool consume; // Offset: 112 + keen::ds::impact::Configurations impactValues; // Offset: 120 + keen::ds::impact::DamageDistribution damageDistribution; // Offset: 160 + keen::bool damageDistributionIsSet; // Offset: 212 +}; + +struct actor.PlaceVoxelObjectEvent { + keen::bool subtract; // Offset: 96 + keen::bool consume; // Offset: 97 +}; + +struct actor.DetachEntityEvent { + keen::Vector3 force; // Offset: 96 + keen::Vector3 randomAngleByAxis; // Offset: 112 + keen::Matrix43 launchTransform; // Offset: 128 + keen::bool addGravity; // Offset: 192 +}; + +struct actor.DetachProjectileEntityEvent { +}; + +struct actor.SetTriggerStateEvent { + keen::ds::SignalReference trigger; // Offset: 96 + keen::bool state; // Offset: 112 +}; + +struct actor.ShowAmmunition { +}; + +struct actor.SetVisualAmmunition { +}; + +struct actor.ResetVisualAmmunition { +}; + +struct actor.StartCookEvent { +}; + +struct actor.SpawnCookEntitesEvent { +}; + +struct actor.ActivateCombatStanceEvent { +}; + +typedef keen::ObjectReference ecs.DefaultInventoryReference; + +struct actor.TransformToLootEvent { + keen::ds::ecs::DefaultInventoryReference defaultInventory; // Offset: 96 + keen::bool keepDefaultInventory; // Offset: 112 + keen::uint8 genericSlotCount; // Offset: 113 + keen::uint8 availableSlotCount; // Offset: 114 + keen::ds::actor::ActorSequenceReference defaultAction; // Offset: 116 + keen::ds::LocaTagReference verbLoca; // Offset: 132 + keen::ds::ecs::Offset vfxOnSpawnOffset; // Offset: 148 + keen::ds::VfxReference vfxOnSpawn; // Offset: 188 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 204 + keen::uint32 lootHealth; // Offset: 268 +}; + +struct actor.AcceptInteractionEvent { +}; + +typedef keen::actor::VoxelChangeType actor.VoxelChangeType; + +struct actor.ChangeVoxel { + keen::ds::actor::VoxelChangeType changeType; // Offset: 96 +}; + +struct actor.Dismantle { +}; + +typedef keen::NpcId NpcId; + +struct actor.AssignNpc { + keen::ds::NpcId npcId; // Offset: 96 +}; + +struct actor.TameWildlifeEvent { +}; + +struct actor.RotationInterpolation { + keen::Quaternion startOrientation; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 16 + keen::float3 linearRotationAxis; // Offset: 32 + keen::float32 speed; // Offset: 44 + keen::ds::actor::InterpolationMode interpolationMode; // Offset: 48 +}; + +struct actor.RotationData { + keen::Time startTime; // Offset: 0 + keen::Quaternion targetOrientation; // Offset: 8 + keen::Time snapDuration; // Offset: 24 +}; + +typedef keen::actor::SequenceResourceId actor.SequenceResourceId; + +struct actor.SequenceRuntimeId { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::ds::ecs::EntityId actorEntityId; // Offset: 16 + keen::uint8 callIndex; // Offset: 20 +}; + +typedef keen::InventorySlotIndex InventorySlotIndex; + +struct InventorySlotId { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::ds::InventorySlotIndex slotIndex; // Offset: 4 +}; + +typedef keen::ItemStateMask ItemStateMask; + +struct ItemInstanceInfo { + keen::ds::InventorySlotId slotId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::ecs::EntityId pide; // Offset: 12 + keen::ds::ItemStateMask stateMask; // Offset: 16 +}; + +typedef keen::SongId SongId; + +typedef keen::KnowledgeId KnowledgeId; + +struct actor.ActionSequenceTriggerContext { + keen::ds::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::ds::actor::ActionSequenceTrigger triggerType; // Offset: 24 + keen::ds::ItemInstanceInfo costItem; // Offset: 28 + keen::ds::ItemInstanceInfo usedItem; // Offset: 48 + keen::ds::ItemInstanceInfo usedAmmunition; // Offset: 68 + keen::ds::actor::JumpType jumpType; // Offset: 88 + keen::float3 directionOverride; // Offset: 92 + keen::ds::SongId songId; // Offset: 104 + keen::Time startTime; // Offset: 112 + keen::ds::ecs::EntityId interactionHostId; // Offset: 120 + keen::uint32 interactionOfferId; // Offset: 124 + keen::StaticArray unlockKnowledgeIds; // Offset: 128 + keen::StaticArray entityTags; // Offset: 160 +}; + +typedef keen::SkillNodeId SkillNodeId; + +struct actor.FollowUp { + keen::ds::actor::ActionSequenceTriggerContext context; // Offset: 0 + keen::ds::actor::SequenceResourceId originalEventSequence; // Offset: 224 + keen::Guid eventGuid; // Offset: 228 + keen::Time localExecutionTime; // Offset: 248 + keen::ds::SkillNodeId requiredSkill; // Offset: 256 + keen::ds::ImpactProgramReference costImpact; // Offset: 260 + keen::bool wasTriggered; // Offset: 276 +}; + +typedef keen::actor::ActionSequenceFlags actor.ActionSequenceFlags; + +typedef keen::actor::ActionSequenceState actor.ActionSequenceState; + +struct actor.ActionSequenceSpan { + keen::Time startTime; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ColliderModeData { + keen::ds::ecs::ColliderMode mode; // Offset: 0 + keen::Time endTime; // Offset: 8 +}; + +struct actor.ActionSequencePlaybackContext { + keen::Time playedTime; // Offset: 0 + keen::Time currentTime; // Offset: 8 + keen::Time sequenceLength; // Offset: 16 + keen::Time scopeStartTime; // Offset: 24 + keen::Time scopeEndTime; // Offset: 32 + keen::ds::actor::StateMask scopeAbortMask; // Offset: 40 + keen::ds::actor::StateMask scopeKeepAliveMask; // Offset: 48 + keen::bool scopeJumpToScopeEndOnAbort; // Offset: 56 + keen::ds::actor::ActionSequenceState state; // Offset: 57 + keen::StaticArray playbackSpan; // Offset: 64 + keen::StaticArray followUps; // Offset: 96 + keen::ds::actor::AbilityMask abilityMask; // Offset: 1776 + keen::ds::actor::StateMask setStateMask; // Offset: 1784 + keen::ds::actor::StateMask unsetStateMask; // Offset: 1792 + keen::ds::actor::StateMask sequenceAbortMask; // Offset: 1800 + keen::ds::actor::StateMask sequenceKeepAliveMask; // Offset: 1808 + keen::bool wrapedAround; // Offset: 1816 +}; + +struct actor.SignalStates { + keen::StaticArray activeSignals; // Offset: 0 +}; + +struct actor.ActionSequence { + keen::ds::actor::ActionSequenceTriggerContext triggerContext; // Offset: 0 + keen::ds::actor::ActionSequencePlaybackContext playbackContext; // Offset: 224 +}; + +struct actor.PlaceItemEvent { +}; + +struct actor.SetAttackChainVariationEvent { + keen::ds::ecs::EntityTagReference followUpSequenceTag; // Offset: 96 +}; + +struct PreviewAnimGraph2 { + keen::ObjectReference animGraphId; // Offset: 0 + keen::bool useFemaleAnimation; // Offset: 16 +}; + +struct ActorActionContainer { + keen::ObjectReference previewAnimationGraph; // Offset: 0 + keen::ds::PreviewAnimGraph2 previewAnimationGraph2Info; // Offset: 16 +}; + +struct ActorActionContainerRoot { +}; + +typedef keen::ObjectReference ActorSequenceResourceReference; + +struct ActorSequenceCollectionResource { + keen::DsArray sequences; // Offset: 0 +}; + +typedef keen::AmmunitionType AmmunitionType; + +typedef keen::animal::Needs animal.Needs; + +typedef keen::animal::NeedsMask animal.NeedsMask; + +typedef keen::animal::InteractionState animal.InteractionState; + +typedef keen::animal::InteractionStates animal.InteractionStates; + +typedef keen::animal::TargetSearchState animal.TargetSearchState; + +typedef keen::animal::TargetSearchStates animal.TargetSearchStates; + +typedef keen::animal::State animal.State; + +typedef keen::animal::StateCondition animal.StateCondition; + +typedef keen::animal::Type animal.Type; + +typedef keen::animal::TypeMask animal.TypeMask; + +struct animal.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +struct animal.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float greetWeight; // Offset: 12 + keen::float roamWeight; // Offset: 16 +}; + +struct animal.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 + keen::float32 sequenceChance; // Offset: 16 +}; + +struct animal.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct animal.TargetSetup { + keen::bool isBed; // Offset: 0 + keen::bool isFood; // Offset: 1 + keen::bool isInteresting; // Offset: 2 +}; + +struct animal.HungerSetup { + keen::Time timeUntilHungerMinDuration; // Offset: 0 + keen::Time timeUntilHungerMaxDuration; // Offset: 8 + keen::Time foodConsumptionRate; // Offset: 16 +}; + +struct animal.ReproductionSetup { + keen::float32 maxReproductionDistance; // Offset: 0 + keen::float32 baseReproductionChance; // Offset: 4 + keen::Time reproductionRate; // Offset: 8 +}; + +typedef keen::animal::AnimalQueryStatus animal.AnimalQueryStatus; + +struct animal.RangeQueryInfo { + keen::ds::animal::AnimalQueryStatus status; // Offset: 0 + keen::ds::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct animal.PathQueryInfo { + keen::ds::animal::AnimalQueryStatus status; // Offset: 0 + keen::ds::ecs::PathQueryId queryId; // Offset: 4 +}; + +typedef keen::animal::ReproductionQueryState animal.ReproductionQueryState; + +struct animal.ReproductionState { + keen::bool requirementsFulfilled; // Offset: 0 + keen::ds::animal::ReproductionQueryState queryState; // Offset: 1 + keen::ds::ecs::EntityId closestFreeBedId; // Offset: 4 + keen::ds::ecs::EntityId closestOtherAnimalId; // Offset: 8 + keen::ds::animal::RangeQueryInfo animalQuery; // Offset: 12 + keen::ds::animal::RangeQueryInfo bedQuery; // Offset: 20 + keen::ds::animal::PathQueryInfo animalPathQuery; // Offset: 28 + keen::ds::animal::PathQueryInfo bedPathQuery; // Offset: 36 +}; + +struct animal.HungerState { + keen::StaticArray foodTargets; // Offset: 0 + keen::ds::animal::RangeQueryInfo foodSourceQueryInfo; // Offset: 32 + keen::ds::animal::PathQueryInfo pathfindingQuery; // Offset: 40 + keen::uint8 currentPathfindingIndex; // Offset: 48 +}; + +struct active_npc.RoamingSetup { + keen::float32 minDistanceToCurrentPosition; // Offset: 0 + keen::float32 maxRadiusFromSpawn; // Offset: 4 + keen::ds::ecs::PathNodeRequirements targetNodeRequirements; // Offset: 8 +}; + +struct active_npc.MovementSetup { + keen::float32 maxMovementAngleDefault; // Offset: 0 + keen::float32 maxMovementAngleRoaming; // Offset: 4 +}; + +struct active_npc.SleepSetup { + keen::FloatRange sleepTime; // Offset: 0 + keen::FloatRange wakeUpTime; // Offset: 8 +}; + +struct active_npc.PathNodeSetup { + keen::ds::ecs::PathNodeCostFactors defaultCostFactors; // Offset: 0 + keen::ds::ecs::PathNodeCostFactors roamingCostFactors; // Offset: 52 +}; + +struct ecs.Animal { + keen::ds::actor::TurnSetup turnSetup; // Offset: 0 + keen::ds::actor::ActorSequenceReference sitSequence; // Offset: 72 + keen::ds::actor::ActorSequenceReference sleepSequence; // Offset: 88 + keen::ds::actor::ActorSequenceReference inspectSequence; // Offset: 104 + keen::ds::actor::ActorSequenceReference beingPetSequence; // Offset: 120 + keen::ds::actor::ActorSequenceReference eatingSequence; // Offset: 136 + keen::ds::actor::ActorSequenceReference sadIdleSequence; // Offset: 152 + keen::ds::actor::ActorSequenceReference greetSequence; // Offset: 168 + keen::float32 minDistanceToPlayer; // Offset: 184 + keen::ds::animal::Type type; // Offset: 188 + keen::ds::animal::DecisionSetup decisionSetup; // Offset: 192 + keen::ds::animal::IdleSetup idleSetup; // Offset: 216 + keen::ds::active_npc::RoamingSetup roamingSetup; // Offset: 240 + keen::ds::active_npc::MovementSetup movementSetup; // Offset: 252 + keen::ds::active_npc::SleepSetup sleepSetup; // Offset: 260 + keen::ds::animal::SearchTargetSetup searchTargetSetup; // Offset: 276 + keen::ds::active_npc::PathNodeSetup pathNodeSetup; // Offset: 284 + keen::ds::animal::HungerSetup hungerSetup; // Offset: 392 + keen::ds::animal::ReproductionSetup reproductionSetup; // Offset: 416 + keen::ds::ecs::TemplateReference babyAnimalVersion; // Offset: 432 + keen::ds::actor::ActorSequenceReference defaultInteractionSequence; // Offset: 448 + keen::ds::LocaTagReference defaultInteractionVerbLoca; // Offset: 464 +}; + +struct ecs.DynamicAnimal { + keen::ds::animal::State state; // Offset: 0 + keen::ds::animal::State previousState; // Offset: 1 + keen::Time standingNextToPlayerTimer; // Offset: 8 + keen::ds::animal::TargetSearchStates targetSearchStates; // Offset: 16 + keen::ds::ecs::EntityId beingPetByPlayerId; // Offset: 20 + keen::ds::ecs::RangeQueryId queryId; // Offset: 24 + keen::ds::animal::ReproductionState reproductionState; // Offset: 28 + keen::Time timeUntilHungry; // Offset: 72 + keen::Time eatingCooldown; // Offset: 80 + keen::ds::animal::HungerState hungerState; // Offset: 88 + keen::bool bedSearched; // Offset: 140 +}; + +struct ecs.NetworkAnimal { + keen::ds::animal::NeedsMask needs; // Offset: 0 +}; + +struct ecs.AnimalSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::Time lastFoodConsumptionTime; // Offset: 16 + keen::Time lastValidReproduction; // Offset: 24 + keen::bool willConsumeFood; // Offset: 32 + keen::Time nextReproductionCheck; // Offset: 40 + keen::ds::animal::NeedsMask needs; // Offset: 48 +}; + +struct ecs.AnimalTarget { + keen::ds::animal::TargetSetup setup; // Offset: 0 + keen::ds::animal::TypeMask types; // Offset: 4 + keen::ds::ecs::Offset targetOffset; // Offset: 8 +}; + +struct ecs.DynamicAnimalTarget { + keen::ds::ecs::EntityId associatedAnimal; // Offset: 0 +}; + +struct ecs.BabyAnimal { + keen::Time growTime; // Offset: 0 + keen::ds::ecs::TemplateReference grownUpEntity; // Offset: 8 + keen::Time growUpTimer; // Offset: 24 + keen::bool canGrowUp; // Offset: 32 +}; + +typedef keen::ecs::AttributeFlags ecs.AttributeFlags; + +struct ecs.AttributeComponent { + keen::HashKey32 rootId; // Offset: 0 + keen::HashKey32 signature; // Offset: 4 + keen::uint32 storageOffset; // Offset: 8 + keen::uint32 storageSize; // Offset: 12 + keen::Bitmask16 flags; // Offset: 16 +}; + +struct ecs.FloatAttribute { +}; + +struct ecs.UInt32Attribute { +}; + +struct ecs.SInt32Attribute { +}; + +struct ecs.BoolAttribute { +}; + +struct ecs.DurabilityLoad { + keen::float32 percentage; // Offset: 0 +}; + +struct ecs.DurabilityBurndown { + keen::Time lastUpdate; // Offset: 0 +}; + +typedef keen::impact::AttributeType impact.AttributeType; + +struct impact.AttributeDeclerationBase { + keen::DsString formula; // Offset: 0 +}; + +struct impact.AttributeDecleration { + keen::ds::impact::AttributeType type; // Offset: 40 +}; + +typedef keen::impact::AttributeIndex impact.AttributeIndex; + +struct AttributeContainer { +}; + +typedef keen::AttributeCommand AttributeCommand; + +typedef keen::AttributeOps AttributeOps; + +struct AttributeStructure { + keen::ds::impact::AttributeIndex parentIndex; // Offset: 0 + keen::ds::impact::AttributeIndex childIndex; // Offset: 2 + keen::ds::impact::AttributeIndex siblingIndex; // Offset: 4 + keen::DsArray calculation; // Offset: 8 +}; + +struct BaseAttributeResource { + keen::HashKey32 type; // Offset: 0 + keen::DsArray ids; // Offset: 8 + keen::DsArray structure; // Offset: 48 + keen::DsArray debugNames; // Offset: 88 +}; + +struct AttributeContainerResource { + keen::DsArray attributes; // Offset: 0 +}; + +typedef keen::ObjectReference AttributeRootReference; + +typedef keen::ObjectReference AttributeReference; + +struct AttributeValueBase { + keen::ds::AttributeReference id; // Offset: 0 +}; + +struct FloatAttributeValue { + keen::float32 value; // Offset: 16 +}; + +struct SInt32AttributeValue { + keen::sint32 value; // Offset: 16 +}; + +struct UInt32AttributeValue { + keen::uint32 value; // Offset: 16 +}; + +struct BoolAttributeValue { + keen::bool value; // Offset: 16 +}; + +struct BalancingAltarCount { + keen::uint8 flameLevel; // Offset: 0 + keen::uint8 altarCount; // Offset: 1 +}; + +struct BalancingBuildzoneSize { + keen::uint8 altarLevel; // Offset: 0 + keen::float3 buildzoneSize; // Offset: 4 +}; + +typedef keen::ExperienceSourceType ExperienceSourceType; + +struct ExperienceBalancing { + keen::ds::ExperienceSourceType source; // Offset: 0 +}; + +struct ExperienceBalanceValue { + keen::ds::ExperienceSourceType source; // Offset: 0 + keen::HashKey32 experienceValueId; // Offset: 4 + keen::uint32 experienceGain; // Offset: 8 +}; + +struct RandomSpawnerBalancing { + keen::float32 fewAmountFactor; // Offset: 0 + keen::float32 manyAmountFactor; // Offset: 4 + keen::float32 extremeAmountFactor; // Offset: 8 +}; + +struct AggroPoolThresholdBalancing { + keen::uint32 twoPoolsThreshold; // Offset: 0 + keen::uint32 threePoolsThreshold; // Offset: 4 + keen::uint32 maxPoolsThreshold; // Offset: 8 +}; + +struct AggroPoolBalancing { + keen::ds::AggroPoolThresholdBalancing fewThresholds; // Offset: 0 + keen::ds::AggroPoolThresholdBalancing normalThresholds; // Offset: 12 + keen::ds::AggroPoolThresholdBalancing manyThresholds; // Offset: 24 + keen::ds::AggroPoolThresholdBalancing extremeThresholds; // Offset: 36 +}; + +struct BalancingTable { + keen::uint32 genericWeaponSeed; // Offset: 0 + keen::uint32 flameLevelMax; // Offset: 4 + keen::uint32 altarLevelMax; // Offset: 8 + keen::uint32 playerLevelMax; // Offset: 12 + keen::uint32 playerLevelCap; // Offset: 16 + keen::uint32 itemLevelCap; // Offset: 20 + keen::float32 damageBoostFlame; // Offset: 24 + keen::uint32 apPerFlameLevel; // Offset: 28 + keen::float32 critBonus; // Offset: 32 + keen::float32 baseCritChance; // Offset: 36 + keen::float32 powerCreepWeapon; // Offset: 40 + keen::uint32 htkStartPve; // Offset: 44 + keen::uint32 htkEndPve; // Offset: 48 + keen::float32 damageMod2Handed; // Offset: 52 + keen::uint32 playerBaseHealth; // Offset: 56 + keen::uint32 playerHealthPerAP; // Offset: 60 + keen::uint32 playerBaseMana; // Offset: 64 + keen::uint32 playerManaPerAP; // Offset: 68 + keen::uint32 playerBaseStamina; // Offset: 72 + keen::uint32 playerStaminaPerAP; // Offset: 76 + keen::uint32 playerBaseBodyHeat; // Offset: 80 + keen::float32 freezeDurationFactor; // Offset: 84 + keen::float32 freezeDurationOffset; // Offset: 88 + keen::uint32 disableFreezingBaseLevel; // Offset: 92 + keen::uint32 playerBaseFogResistance; // Offset: 96 + keen::uint32 playerFogResistancePerFlameLevel; // Offset: 100 + keen::uint32 htkStartEvp; // Offset: 104 + keen::uint32 htkEndEvp; // Offset: 108 + keen::uint32 killToLevelUPStart; // Offset: 112 + keen::uint32 killToLevelUPEnd; // Offset: 116 + keen::float32 epicWeaponBonus; // Offset: 120 + keen::uint32 xpNeededFromKnowledge; // Offset: 124 + keen::float32 parryToDepletion; // Offset: 128 + keen::uint32 shotsToDepletion; // Offset: 132 + keen::uint32 avarageCharacterMod; // Offset: 136 + keen::ObjectReference knowledgeDirectory; // Offset: 140 + keen::float32 levelDifferenceXpDamper; // Offset: 156 + keen::float32 levelDifferenceXpModMin; // Offset: 160 + keen::float32 levelDifferenceXpModMax; // Offset: 164 + keen::float32 groupSizeXpDamper; // Offset: 168 + keen::float32 groupSizeXpDamperModMin; // Offset: 172 + keen::uint32 skillPointsPerLevel; // Offset: 176 + keen::uint32 maximumTotalMusicComfortBuff; // Offset: 180 + keen::uint32 maximumInstrumentsCountedForComfort; // Offset: 184 + keen::Time timePerInstrumentUntilMaxBuff; // Offset: 192 + keen::float32 defaultArmorBlowthrough; // Offset: 200 + keen::float32 damageScalePerAttributePoint; // Offset: 204 + keen::uint32 xpSeedEnemy; // Offset: 208 + keen::float32 xpSharedOther; // Offset: 212 + keen::float32 perkPower; // Offset: 216 + keen::uint32 perkUpgradeCostSeed; // Offset: 220 + keen::float32 perkCostCreep; // Offset: 224 + keen::uint32 trashStart; // Offset: 228 + keen::uint32 trashEnd; // Offset: 232 + keen::float noiseRainFactor; // Offset: 236 + keen::float buffReapplyPercentage; // Offset: 240 + keen::ds::RandomSpawnerBalancing randomSpawnerBalancing; // Offset: 244 + keen::ds::AggroPoolBalancing aggroPoolBalancing; // Offset: 256 + keen::uint32 maximumAnimalsInWorld; // Offset: 304 + keen::float hookShotCostLevelFactor; // Offset: 308 + keen::uint32 hookShotCostBase; // Offset: 312 + keen::DsArray altarsPerFlameLevel; // Offset: 320 + keen::DsArray buildzoneSizesPerAltarLevel; // Offset: 360 + keen::DsArray experienceValues; // Offset: 400 +}; + +typedef keen::BalancingLocaIds BalancingLocaIds; + +typedef keen::BuffSlotType BuffSlotType; + +typedef keen::BuffApplyType BuffApplyType; + +struct OnCreateHelper { + keen::ds::AttachmentSlot slot; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 + keen::bool attach; // Offset: 44 + keen::ds::SoundContainerReference sfx; // Offset: 48 + keen::ds::VfxReference vfx; // Offset: 64 + keen::bool onlyPlayer; // Offset: 80 + keen::ds::NotifierReference notifier; // Offset: 84 +}; + +struct WhileAppliedHelper { + keen::ds::AttachmentSlot slot; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 + keen::ds::SoundContainerReference sfx; // Offset: 44 + keen::ds::VfxReference vfx; // Offset: 60 + keen::ds::VfxUserEffectParameterDataBlock parameters; // Offset: 76 +}; + +typedef keen::BuffTypeId BuffTypeId; + +struct UiTextureResource { + keen::PixelFormat format; // Offset: 0 + keen::uint2 size; // Offset: 4 + keen::uint8 levelCount; // Offset: 12 + keen::ContentHash data; // Offset: 16 +}; + +typedef keen::ObjectReference ImageReference; + +struct UiTexture { + keen::ds::UiTextureResource texture; // Offset: 0 + keen::ds::ImageReference image; // Offset: 32 +}; + +typedef keen::FactionMask FactionMask; + +struct BuffType { + keen::ds::BuffTypeId buffTypeId; // Offset: 0 + keen::ds::BuffSlotType slot; // Offset: 4 + keen::ds::BuffApplyType applyType; // Offset: 5 + keen::Time defaultLifeTime; // Offset: 8 + keen::ds::NameLocaTag name; // Offset: 16 + keen::ds::DescriptionLocaTag description; // Offset: 32 + keen::bool hideInUi; // Offset: 48 + keen::ds::UiTexture icon; // Offset: 52 + keen::bool hideDurationInUi; // Offset: 100 + keen::bool despawnOnDeath; // Offset: 101 + keen::ds::ImpactProgramReference impact; // Offset: 104 + keen::ds::FactionMask factionExcludeMask; // Offset: 120 + keen::ds::impact::Configurations impactValues; // Offset: 128 + keen::DsArray uiValues; // Offset: 168 + keen::ds::OnCreateHelper onCreate; // Offset: 208 + keen::ds::WhileAppliedHelper whileApplied; // Offset: 308 +}; + +struct BuffTypeSubDirectory { +}; + +struct BuffTypDirectory { +}; + +struct ecs.BuffInstance { + keen::ds::ecs::EntityId buffEntityId; // Offset: 0 + keen::ds::BuffTypeId typeId; // Offset: 4 + keen::bool cleansed; // Offset: 8 +}; + +struct ecs.BuffContainer { + keen::StaticArray foodBuffs; // Offset: 0 + keen::StaticArray genericBuffs; // Offset: 48 + keen::StaticArray genericDebuffs; // Offset: 240 + keen::StaticArray restedBuff; // Offset: 432 + keen::StaticArray terrainDebuff; // Offset: 444 + keen::Time hungerStartTime; // Offset: 456 + keen::bool extendedFoodBuffSlots; // Offset: 464 +}; + +struct impact.DamageSetup { + keen::float32 physicalCutDamage; // Offset: 0 + keen::float32 physicalPierceDamage; // Offset: 4 + keen::float32 physicalBluntDamage; // Offset: 8 + keen::float32 magicalFireDamage; // Offset: 12 + keen::float32 magicalIceDamage; // Offset: 16 + keen::float32 magicalFogDamage; // Offset: 20 + keen::float32 magicalLightningDamage; // Offset: 24 + keen::float32 healing; // Offset: 28 + keen::float32 poisonDamage; // Offset: 32 + keen::sint32 woodDamage; // Offset: 36 + keen::sint32 stoneDamage; // Offset: 40 + keen::sint32 metalDamage; // Offset: 44 + keen::sint32 explosionDamage; // Offset: 48 +}; + +struct ecs.BuffComponent { + keen::ds::BuffTypeId buffTypeId; // Offset: 0 + keen::ds::impact::DamageSetup damageSetup; // Offset: 4 + keen::bool isDamageSetupSet; // Offset: 56 +}; + +struct ecs.BuffNetworkData { + keen::Time restDuration; // Offset: 0 + keen::ds::BuffTypeId buffTypeId; // Offset: 8 + keen::float32 durationPercentage; // Offset: 12 +}; + +struct UiTexturePreload { + keen::DsArray textures; // Offset: 0 +}; + +struct BuffTypeCollectionResource { + keen::DsArray buffs; // Offset: 0 + keen::ds::UiTexturePreload uiTextures; // Offset: 40 +}; + +typedef keen::InhibitBuildingCheck InhibitBuildingCheck; + +typedef keen::InhibitBuildType InhibitBuildType; + +typedef keen::InhibitBuildMask InhibitBuildMask; + +typedef keen::Gender Gender; + +typedef keen::ObjectReference VoicePackReference; + +typedef keen::ObjectReference ColorPresetReference; + +struct CharacterPreset { + keen::ds::Gender gender; // Offset: 0 + keen::ds::VoicePackReference voicePackId; // Offset: 4 + keen::ds::ColorPresetReference hairGradient; // Offset: 20 + keen::ds::ColorPresetReference beardGradient; // Offset: 36 + keen::ds::PaletteColorReference skinColor; // Offset: 52 + keen::ds::PaletteColorReference eyeBrowColor; // Offset: 68 + keen::ds::PaletteColorReference eyeColor; // Offset: 84 + keen::ds::ItemReference head; // Offset: 100 + keen::ds::ItemReference hair; // Offset: 116 + keen::ds::ItemReference beard; // Offset: 132 + keen::ds::ItemReference neck; // Offset: 148 + keen::ds::ItemReference collar; // Offset: 164 + keen::ds::ItemReference chest; // Offset: 180 + keen::ds::ItemReference waist; // Offset: 196 + keen::ds::ItemReference crotch; // Offset: 212 + keen::ds::ItemReference upperArms; // Offset: 228 + keen::ds::ItemReference lowerArms; // Offset: 244 + keen::ds::ItemReference hands; // Offset: 260 + keen::ds::ItemReference upperLegs; // Offset: 276 + keen::ds::ItemReference lowerLegs; // Offset: 292 + keen::ds::ItemReference feet; // Offset: 308 + keen::ds::ItemReference armourHead; // Offset: 324 + keen::ds::ItemReference armourUpperBody; // Offset: 340 + keen::ds::ItemReference armourArms; // Offset: 356 + keen::ds::ItemReference armourLowerBody; // Offset: 372 + keen::ds::ItemReference armourFeet; // Offset: 388 +}; + +typedef keen::ObjectReference ColorGradientReference; + +struct ColorPreset { + keen::ds::ColorGradientReference colorGradient; // Offset: 0 +}; + +typedef keen::ColorPresetId ColorPresetId; + +struct ColorPresetResource { + keen::ds::ColorPresetId presetId; // Offset: 0 + keen::ObjectReference colorGradient; // Offset: 4 +}; + +struct CharacterPresetSubDirectory { +}; + +struct CharacterPresetDirectory { +}; + +typedef keen::ObjectReference CharacterPresetCollectionReference; + +typedef keen::CharacterPresetId CharacterPresetId; + +typedef keen::VoicePackId VoicePackId; + +struct CharacterPresetResource { + keen::ds::CharacterPreset references; // Offset: 0 + keen::ds::CharacterPresetId presetId; // Offset: 404 + keen::ds::Gender gender; // Offset: 408 + keen::ds::VoicePackId voicePackId; // Offset: 412 + keen::ds::ColorPresetId hairColorId; // Offset: 416 + keen::ds::ColorPresetId beardColorId; // Offset: 420 + keen::ds::PaletteColorId skinColor; // Offset: 424 + keen::ds::PaletteColorId eyeBrowColor; // Offset: 428 + keen::ds::PaletteColorId eyeColor; // Offset: 432 + keen::ds::ItemId head; // Offset: 436 + keen::ds::ItemId hair; // Offset: 440 + keen::ds::ItemId beard; // Offset: 444 + keen::ds::ItemId neck; // Offset: 448 + keen::ds::ItemId collar; // Offset: 452 + keen::ds::ItemId chest; // Offset: 456 + keen::ds::ItemId waist; // Offset: 460 + keen::ds::ItemId crotch; // Offset: 464 + keen::ds::ItemId upperArms; // Offset: 468 + keen::ds::ItemId lowerArms; // Offset: 472 + keen::ds::ItemId hands; // Offset: 476 + keen::ds::ItemId upperLegs; // Offset: 480 + keen::ds::ItemId lowerLegs; // Offset: 484 + keen::ds::ItemId feet; // Offset: 488 + keen::ds::ItemId armourHead; // Offset: 492 + keen::ds::ItemId armourUpperBody; // Offset: 496 + keen::ds::ItemId armourArms; // Offset: 500 + keen::ds::ItemId armourLowerBody; // Offset: 504 + keen::ds::ItemId armourFeet; // Offset: 508 +}; + +struct ColorCombination { + keen::ds::PaletteColorReference color0; // Offset: 0 + keen::ds::PaletteColorReference color1; // Offset: 16 + keen::ds::PaletteColorReference color2; // Offset: 32 +}; + +struct CharacterPresetPreviewModelInfo { + keen::ObjectReference model; // Offset: 0 + keen::ds::ColorCombination colorCombination; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::DsArray blendShapes; // Offset: 80 +}; + +typedef keen::ObjectReference CharacterPresetReference; + +typedef keen::BlendShapeMask BlendShapeMask; + +struct CharacterPresetPreview { + keen::ds::CharacterPresetReference preset; // Offset: 0 + keen::DsArray models; // Offset: 16 + keen::ds::BlendShapeMask activeBlendShapes; // Offset: 56 +}; + +typedef keen::ObjectReference CharacterPresetObjectReference; + +struct CharacterPresetCollection { + keen::DsArray presets; // Offset: 0 + keen::DsArray colorGradients; // Offset: 40 +}; + +typedef keen::ColorCombinationId ColorCombinationId; + +typedef keen::ObjectReference ColorCombinationReference; + +typedef keen::ColorCombinationResource ColorCombinationResource; + +struct ColorCombinationSubDirectory { +}; + +struct ColorCombinationDirectory { +}; + +struct ecs.ComfortQuery { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::Time nextQuery; // Offset: 8 + keen::bool nearWarmth; // Offset: 16 + keen::ds::ecs::EntityId warmthEntityId; // Offset: 20 +}; + +typedef keen::ecs::ComfortCategory ecs.ComfortCategory; + +struct ecs.ComfortProvider { + keen::sint32 comfort; // Offset: 0 + keen::ds::ecs::ComfortCategory category; // Offset: 4 + keen::float32 range; // Offset: 8 + keen::uint32 freezingResistance; // Offset: 12 +}; + +struct ecs.NetworkComfort { + keen::ds::ecs::EntityId hearthEntityId; // Offset: 0 + keen::uint16 level; // Offset: 4 +}; + +typedef keen::ecs::ShelterQueryState ecs.ShelterQueryState; + +struct ecs.Shelter { + keen::float32 checkRange; // Offset: 0 + keen::float32 requiredShelterPercentage; // Offset: 4 +}; + +typedef keen::ecs::ShelterRay ecs.ShelterRay; + +typedef keen::ecs::RayHitMask ecs.RayHitMask; + +struct ecs.DynamicShelter { + keen::uint32 nextQueryTick; // Offset: 0 + keen::float32 shelterPercentage; // Offset: 4 + keen::ds::ecs::RayHitMask queryHits; // Offset: 8 + keen::ds::ecs::ShelterQueryState queryState; // Offset: 10 + keen::bool sheltered; // Offset: 11 + keen::bool shelterStateSet; // Offset: 12 +}; + +struct ecs.Resting { + keen::Time waitTime0; // Offset: 0 + keen::Time waitTime1; // Offset: 8 + keen::Time waitTime2; // Offset: 16 + keen::Time waitTime3; // Offset: 24 + keen::Time waitTime4; // Offset: 32 +}; + +struct CraftingWorkshopDirectory { +}; + +struct CraftingWorkshopSubDirectory { +}; + +struct UiWorkshopRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::ds::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::ds::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +typedef keen::KnowledgeRequirementType KnowledgeRequirementType; + +typedef keen::PredefinedKnowledgeTypes PredefinedKnowledgeTypes; + +typedef keen::ItemKnowledgeTrigger ItemKnowledgeTrigger; + +struct GameKnowledgeRequirementBase { + keen::ds::KnowledgeRequirementType queryType; // Offset: 0 + keen::ObjectReference knowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::ds::PredefinedKnowledgeTypes predefinedKnowledge; // Offset: 36 + keen::ds::ItemKnowledgeTrigger itemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 + keen::ObjectReference dialogOption; // Offset: 56 + keen::ObjectReference query; // Offset: 72 + keen::ObjectReference triggerUiEvent; // Offset: 88 +}; + +struct GameKnowledgeRequirement { +}; + +struct WorkshopDefinition { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::ItemReference item; // Offset: 16 + keen::bool isNpc; // Offset: 32 + keen::bool ignoreInJournalUi; // Offset: 33 + keen::ds::GameKnowledgeRequirement unlockRequirement; // Offset: 36 +}; + +typedef keen::ObjectReference WorkshopReference; + +struct CraftingPropDefinition { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::ItemReference item; // Offset: 16 +}; + +typedef keen::WorkshopId WorkshopId; + +struct WorkshopResource { + keen::bool isNpc; // Offset: 0 + keen::bool ignoreInJournalUi; // Offset: 1 + keen::Guid workshopGuid; // Offset: 4 + keen::ds::WorkshopId workshopId; // Offset: 20 + keen::ds::LocaTagId name; // Offset: 24 + keen::ds::ItemId item; // Offset: 28 + keen::ds::ItemReference itemRef; // Offset: 32 +}; + +typedef keen::CraftingPropMask CraftingPropMask; + +typedef keen::CraftingPropId CraftingPropId; + +struct CraftingPropResource { + keen::Guid craftingPropGuid; // Offset: 0 + keen::ds::CraftingPropId craftingPropId; // Offset: 16 + keen::uint8 craftingPropIndex; // Offset: 20 + keen::ds::LocaTagId name; // Offset: 24 + keen::ds::ItemId item; // Offset: 28 + keen::ds::ItemReference itemRef; // Offset: 32 +}; + +struct WorkshopRegistryResource { + keen::DsArray npcs; // Offset: 0 + keen::DsArray workshops; // Offset: 40 + keen::DsArray craftingProps; // Offset: 80 +}; + +typedef keen::CustomStringId CustomStringId; + +struct debug.EnemySpawnEntry { + keen::DsString displayName; // Offset: 0 + keen::ds::ecs::TemplateReference entity; // Offset: 40 + keen::uint8 sortPriority; // Offset: 56 +}; + +struct debug.EnemyDebugMenuFilterEntry { + keen::DsString displayName; // Offset: 0 + keen::DsString filter; // Offset: 40 +}; + +struct debug.EnemyDebugMenu { + keen::DsArray entries; // Offset: 0 + keen::DsArray filters; // Offset: 40 + keen::sint32 maxLevel; // Offset: 80 +}; + +typedef keen::DialogOptionId DialogOptionId; + +struct NpcDialogDirectory { +}; + +struct NpcDialogDefinition { + keen::ds::actor::ActorSequenceReference defaultSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference missingRequirementSequence; // Offset: 16 + keen::ds::LocaTagReference headline; // Offset: 32 + keen::ds::LocaTagReference craftingOption; // Offset: 48 + keen::ds::LocaTagReference itemUpgradeOption; // Offset: 64 + keen::ds::LocaTagReference itemRecyclingOption; // Offset: 80 + keen::ds::LocaTagReference sendBackToFlameOption; // Offset: 96 +}; + +struct NpcDialogGroup { +}; + +struct NpcDialogOptionBase { + keen::bool overrideSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 4 +}; + +struct NpcDialogInitLine { + keen::bool isWakeup; // Offset: 20 +}; + +struct NpcDialogFarewellLine { +}; + +struct NpcDialogTransitionLine { +}; + +struct NpcDialogOption { + keen::ds::LocaTagReference name; // Offset: 20 +}; + +struct NpcDialogResponseBase { +}; + +struct NpcDialogText { + keen::ds::LocaTagReference body; // Offset: 0 +}; + +struct NpcDialogOptionResourceBase { + keen::ds::DialogOptionId optionId; // Offset: 0 + keen::bool overrideSequence; // Offset: 4 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 8 + keen::ds::KnowledgeId unlockKnowledge; // Offset: 24 + keen::ds::KnowledgeId knowledgeRequirement; // Offset: 28 + keen::DsArray bodyTexts; // Offset: 32 +}; + +struct NpcDialogInitLineResource { + keen::bool isWakeup; // Offset: 72 +}; + +struct NpcDialogTransitionLineResource { +}; + +struct NpcDialogFarewellResource { +}; + +struct NpcDialogOptionResource { + keen::ds::LocaTagId optionText; // Offset: 72 +}; + +struct NpcDialogResource { + keen::ds::LocaTagId headline; // Offset: 0 + keen::ds::LocaTagId crafting; // Offset: 4 + keen::ds::LocaTagId itemUpgrade; // Offset: 8 + keen::ds::LocaTagId itemRecycling; // Offset: 12 + keen::ds::LocaTagId sendBackToFlame; // Offset: 16 + keen::ds::actor::ActorSequenceReference defaultSequence; // Offset: 20 + keen::ds::actor::ActorSequenceReference missingRequirementSequence; // Offset: 36 + keen::DsArray initLines; // Offset: 56 + keen::DsArray transitionLines; // Offset: 96 + keen::DsArray farewellLines; // Offset: 136 + keen::DsArray dialogOptions; // Offset: 176 +}; + +typedef keen::EquipmentSlotType EquipmentSlotType; + +typedef keen::EquipmentSlot EquipmentSlot; + +typedef keen::VisualEquippedItems VisualEquippedItems; + +typedef keen::VisualEquipmentMask VisualEquipmentMask; + +typedef keen::BlendShapeFlags BlendShapeFlags; + +typedef keen::ImpactEquippedItems ImpactEquippedItems; + +typedef keen::ImpactEquipmentMask ImpactEquipmentMask; + +typedef keen::PerkId PerkId; + +struct ecs.ItemImpact { + keen::ds::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 20 + keen::StaticArray perkEntities; // Offset: 24 + keen::StaticArray perkIds; // Offset: 44 +}; + +struct ecs.ItemVisual { + keen::ds::ItemInstanceInfo itemInstance; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 20 +}; + +struct ecs.EquipmentSlotData { + keen::ds::InventorySlotId vanityHead; // Offset: 0 + keen::ds::InventorySlotId vanityUpperBody; // Offset: 8 + keen::ds::InventorySlotId vanityArms; // Offset: 16 + keen::ds::InventorySlotId vanityLowerBody; // Offset: 24 + keen::ds::InventorySlotId vanityFeet; // Offset: 32 + keen::ds::InventorySlotId armourHead; // Offset: 40 + keen::ds::InventorySlotId armourUpperBody; // Offset: 48 + keen::ds::InventorySlotId armourArms; // Offset: 56 + keen::ds::InventorySlotId armourLowerBody; // Offset: 64 + keen::ds::InventorySlotId armourFeet; // Offset: 72 + keen::ds::InventorySlotId bodyPartHead; // Offset: 80 + keen::ds::InventorySlotId bodyPartHair; // Offset: 88 + keen::ds::InventorySlotId bodyPartEyeBrow; // Offset: 96 + keen::ds::InventorySlotId bodyPartBeard; // Offset: 104 + keen::ds::InventorySlotId bodyPartNeck; // Offset: 112 + keen::ds::InventorySlotId bodyPartCollar; // Offset: 120 + keen::ds::InventorySlotId bodyPartChest; // Offset: 128 + keen::ds::InventorySlotId bodyPartWaist; // Offset: 136 + keen::ds::InventorySlotId bodyPartCrotch; // Offset: 144 + keen::ds::InventorySlotId bodyPartUpperArms; // Offset: 152 + keen::ds::InventorySlotId bodyPartLowerArms; // Offset: 160 + keen::ds::InventorySlotId bodyPartHands; // Offset: 168 + keen::ds::InventorySlotId bodyPartUpperLegs; // Offset: 176 + keen::ds::InventorySlotId bodyPartLowerLegs; // Offset: 184 + keen::ds::InventorySlotId bodyPartFeet; // Offset: 192 + keen::ds::InventorySlotId ring0; // Offset: 200 + keen::ds::InventorySlotId ring1; // Offset: 208 + keen::ds::InventorySlotId accessory0; // Offset: 216 + keen::ds::InventorySlotId accessory1; // Offset: 224 + keen::ds::InventorySlotId rangedWeapon; // Offset: 232 + keen::ds::InventorySlotId shield; // Offset: 240 + keen::ds::InventorySlotId arrow; // Offset: 248 + keen::ds::InventorySlotId spell; // Offset: 256 + keen::ds::InventorySlotId terrainMaterial; // Offset: 264 + keen::ds::InventorySlotId blueprintMaterialDefault; // Offset: 272 + keen::ds::InventorySlotId blueprintMaterialRoof; // Offset: 280 + keen::ds::InventorySlotId hookShot; // Offset: 288 + keen::ds::InventorySlotId glider; // Offset: 296 + keen::ds::InventorySlotId climbWall; // Offset: 304 + keen::ds::InventorySlotId backpack; // Offset: 312 +}; + +typedef keen::ecs::CspItemIsBroken ecs.CspItemIsBroken; + +typedef keen::ecs::CspItemIsBrokenMask ecs.CspItemIsBrokenMask; + +struct ActionbarSlotSelection { + keen::ds::InventorySlotIndex index; // Offset: 0 +}; + +struct ecs.SlotSelection { + keen::ds::ecs::EquipmentSlotData equipment; // Offset: 0 + keen::StaticArray actionbarEntityIds; // Offset: 320 + keen::ds::ItemInstanceInfo actionItem; // Offset: 328 + keen::ds::ImpactEquipmentMask disabledEquipment; // Offset: 348 + keen::ds::ActionbarSlotSelection actionbarSlotSelection; // Offset: 352 + keen::ds::ecs::CspItemIsBrokenMask cspItemIsBrokenHelper; // Offset: 356 +}; + +struct ecs.FinishedActionbarInit { +}; + +struct ecs.PackedEquipmentSlotEntityIds { + keen::ds::ecs::EntityId vanityHead; // Offset: 0 + keen::ds::ecs::EntityId vanityUpperBody; // Offset: 4 + keen::ds::ecs::EntityId vanityArms; // Offset: 8 + keen::ds::ecs::EntityId vanityLowerBody; // Offset: 12 + keen::ds::ecs::EntityId vanityFeet; // Offset: 16 + keen::ds::ecs::EntityId armourHead; // Offset: 20 + keen::ds::ecs::EntityId armourUpperBody; // Offset: 24 + keen::ds::ecs::EntityId armourArms; // Offset: 28 + keen::ds::ecs::EntityId armourLowerBody; // Offset: 32 + keen::ds::ecs::EntityId armourFeet; // Offset: 36 + keen::ds::ecs::EntityId bodyPartHead; // Offset: 40 + keen::ds::ecs::EntityId bodyPartHair; // Offset: 44 + keen::ds::ecs::EntityId bodyPartEyeBrow; // Offset: 48 + keen::ds::ecs::EntityId bodyPartBeard; // Offset: 52 + keen::ds::ecs::EntityId bodyPartNeck; // Offset: 56 + keen::ds::ecs::EntityId bodyPartCollar; // Offset: 60 + keen::ds::ecs::EntityId bodyPartChest; // Offset: 64 + keen::ds::ecs::EntityId bodyPartWaist; // Offset: 68 + keen::ds::ecs::EntityId bodyPartCrotch; // Offset: 72 + keen::ds::ecs::EntityId bodyPartUpperArms; // Offset: 76 + keen::ds::ecs::EntityId bodyPartLowerArms; // Offset: 80 + keen::ds::ecs::EntityId bodyPartHands; // Offset: 84 + keen::ds::ecs::EntityId bodyPartUpperLegs; // Offset: 88 + keen::ds::ecs::EntityId bodyPartLowerLegs; // Offset: 92 + keen::ds::ecs::EntityId bodyPartFeet; // Offset: 96 + keen::ds::ecs::EntityId ring0; // Offset: 100 + keen::ds::ecs::EntityId ring1; // Offset: 104 + keen::ds::ecs::EntityId accessory0; // Offset: 108 + keen::ds::ecs::EntityId accessory1; // Offset: 112 + keen::ds::ecs::EntityId rangedWeapon; // Offset: 116 + keen::ds::ecs::EntityId shield; // Offset: 120 + keen::ds::ecs::EntityId arrow; // Offset: 124 + keen::ds::ecs::EntityId spell; // Offset: 128 + keen::ds::ecs::EntityId terrainMaterial; // Offset: 132 + keen::ds::ecs::EntityId blueprintMaterialDefault; // Offset: 136 + keen::ds::ecs::EntityId blueprintMaterialRoof; // Offset: 140 + keen::ds::ecs::EntityId hookShot; // Offset: 144 + keen::ds::ecs::EntityId glider; // Offset: 148 + keen::ds::ecs::EntityId climbWall; // Offset: 152 + keen::ds::ecs::EntityId backpack; // Offset: 156 +}; + +struct ecs.PackedEquipmentSlotIndices { + keen::ds::InventorySlotIndex vanityHead; // Offset: 0 + keen::ds::InventorySlotIndex vanityUpperBody; // Offset: 1 + keen::ds::InventorySlotIndex vanityArms; // Offset: 2 + keen::ds::InventorySlotIndex vanityLowerBody; // Offset: 3 + keen::ds::InventorySlotIndex vanityFeet; // Offset: 4 + keen::ds::InventorySlotIndex armourHead; // Offset: 5 + keen::ds::InventorySlotIndex armourUpperBody; // Offset: 6 + keen::ds::InventorySlotIndex armourArms; // Offset: 7 + keen::ds::InventorySlotIndex armourLowerBody; // Offset: 8 + keen::ds::InventorySlotIndex armourFeet; // Offset: 9 + keen::ds::InventorySlotIndex bodyPartHead; // Offset: 10 + keen::ds::InventorySlotIndex bodyPartHair; // Offset: 11 + keen::ds::InventorySlotIndex bodyPartEyeBrow; // Offset: 12 + keen::ds::InventorySlotIndex bodyPartBeard; // Offset: 13 + keen::ds::InventorySlotIndex bodyPartNeck; // Offset: 14 + keen::ds::InventorySlotIndex bodyPartCollar; // Offset: 15 + keen::ds::InventorySlotIndex bodyPartChest; // Offset: 16 + keen::ds::InventorySlotIndex bodyPartWaist; // Offset: 17 + keen::ds::InventorySlotIndex bodyPartCrotch; // Offset: 18 + keen::ds::InventorySlotIndex bodyPartUpperArms; // Offset: 19 + keen::ds::InventorySlotIndex bodyPartLowerArms; // Offset: 20 + keen::ds::InventorySlotIndex bodyPartHands; // Offset: 21 + keen::ds::InventorySlotIndex bodyPartUpperLegs; // Offset: 22 + keen::ds::InventorySlotIndex bodyPartLowerLegs; // Offset: 23 + keen::ds::InventorySlotIndex bodyPartFeet; // Offset: 24 + keen::ds::InventorySlotIndex ring0; // Offset: 25 + keen::ds::InventorySlotIndex ring1; // Offset: 26 + keen::ds::InventorySlotIndex accessory0; // Offset: 27 + keen::ds::InventorySlotIndex accessory1; // Offset: 28 + keen::ds::InventorySlotIndex rangedWeapon; // Offset: 29 + keen::ds::InventorySlotIndex shield; // Offset: 30 + keen::ds::InventorySlotIndex arrow; // Offset: 31 + keen::ds::InventorySlotIndex spell; // Offset: 32 + keen::ds::InventorySlotIndex terrainMaterial; // Offset: 33 + keen::ds::InventorySlotIndex blueprintMaterialDefault; // Offset: 34 + keen::ds::InventorySlotIndex blueprintMaterialRoof; // Offset: 35 + keen::ds::InventorySlotIndex hookShot; // Offset: 36 + keen::ds::InventorySlotIndex glider; // Offset: 37 + keen::ds::InventorySlotIndex climbWall; // Offset: 38 + keen::ds::InventorySlotIndex backpack; // Offset: 39 +}; + +struct ecs.PackedSlotSelection { + keen::ds::ecs::PackedEquipmentSlotEntityIds equipmentEntityIds; // Offset: 0 + keen::ds::ecs::PackedEquipmentSlotIndices equipmentIndices; // Offset: 160 + keen::StaticArray actionbarEntityIds; // Offset: 200 + keen::ds::ItemInstanceInfo actionItem; // Offset: 208 + keen::ds::ImpactEquipmentMask disabledEquipment; // Offset: 228 + keen::ds::ActionbarSlotSelection actionbarSlotSelection; // Offset: 232 + keen::uint32 cspItemIsBrokenHelper; // Offset: 236 +}; + +struct ecs.CspHackInventoryStockSelection { + keen::StaticArray versions; // Offset: 0 +}; + +struct ecs.Equipment { + keen::ds::VisualEquipmentMask visualMask; // Offset: 0 + keen::ds::ImpactEquipmentMask impactMask; // Offset: 4 + keen::StaticArray equipmentImpacts; // Offset: 8 + keen::StaticArray equipmentVisuals; // Offset: 712 + keen::ds::CollisionFeedbackMaterialReference blockMaterial; // Offset: 1288 + keen::ds::CollisionFeedbackMaterialReference bodyMaterial; // Offset: 1304 +}; + +struct ecs.RenderEquipment { + keen::StaticArray modelHandles; // Offset: 0 + keen::StaticArray,24> lastModels; // Offset: 96 + keen::StaticArray colors; // Offset: 480 + keen::ds::VisualEquipmentMask hideMask; // Offset: 768 + keen::ds::MaterialFeedbackId foleyMaterialId; // Offset: 772 + keen::ds::BlendShapeMask blendShapeMask; // Offset: 776 +}; + +typedef keen::PrimaryAnimationSet PrimaryAnimationSet; + +typedef keen::SecondaryAnimationSet SecondaryAnimationSet; + +struct ecs.EquipmentAnimationSets { + keen::ds::PrimaryAnimationSet primaryAnimationSet; // Offset: 0 + keen::ds::SecondaryAnimationSet secondaryAnimationSet; // Offset: 1 +}; + +struct Game38RootObjects { + keen::ObjectReference renderSettingsGpuPresets; // Offset: 0 + keen::ObjectReference scene; // Offset: 16 + keen::ObjectReference itemDirectory; // Offset: 32 + keen::ObjectReference gameKnowledgeDirectory; // Offset: 48 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 64 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 80 + keen::ObjectReference lootLabelCollection; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference buffTypeCollection; // Offset: 160 + keen::ObjectReference midiSongCollection; // Offset: 176 + keen::ObjectReference impactRegistry; // Offset: 192 + keen::ObjectReference attributeContainer; // Offset: 208 + keen::ObjectReference actorSequenceCollection; // Offset: 224 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 240 + keen::ObjectReference voxelBlueprintConfig; // Offset: 256 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 272 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 288 + keen::ObjectReference enemyArsenalRegistry; // Offset: 304 + keen::ObjectReference perkCollection; // Offset: 320 + keen::ObjectReference ingameTimeConfig; // Offset: 336 + keen::ObjectReference skillTree; // Offset: 352 + keen::ObjectReference templateCollection; // Offset: 368 + keen::ObjectReference fbUiBundle; // Offset: 384 + keen::ObjectReference journalRegistry; // Offset: 400 + keen::ObjectReference mapMarkerRegistry; // Offset: 416 + keen::ObjectReference materialFeedbackCollection; // Offset: 432 + keen::ObjectReference locaTagCollection; // Offset: 448 + keen::ObjectReference voicePacks; // Offset: 464 + keen::ObjectReference ambientCollection; // Offset: 480 + keen::ObjectReference fbUiMapResource; // Offset: 496 + keen::ObjectReference uiFontDefault; // Offset: 512 + keen::ObjectReference uiFontFancy; // Offset: 528 + keen::ObjectReference grassVfx; // Offset: 544 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 560 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 576 + keen::ObjectReference maleClothCollider; // Offset: 592 + keen::ObjectReference femaleClothCollider; // Offset: 608 + keen::ObjectReference staminaDrainNotifier; // Offset: 624 + keen::ObjectReference exhaustedNotifier; // Offset: 640 + keen::ObjectReference pickupLootNotifier; // Offset: 656 + keen::ObjectReference itemBrokenNotifier; // Offset: 672 + keen::ObjectReference renderSystem; // Offset: 688 + keen::ObjectReference gpcResourceList; // Offset: 704 + keen::ObjectReference analyticFog; // Offset: 720 + keen::ObjectReference buildingMaterialBlending; // Offset: 736 + keen::ObjectReference worldMaterial2; // Offset: 752 + keen::ObjectReference volumetricFog2; // Offset: 768 + keen::ObjectReference volumetricFogGridParameters; // Offset: 784 + keen::ObjectReference pregameMusic; // Offset: 800 + keen::ObjectReference loreIntroMusic; // Offset: 816 + keen::ObjectReference spellChargeFullSfx; // Offset: 832 + keen::ObjectReference enemyDebugMenu; // Offset: 848 + keen::ObjectReference characterPresetCollection; // Offset: 864 + keen::ObjectReference twitchDropCollection; // Offset: 880 + keen::ObjectReference characterScenePlayer; // Offset: 896 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 912 + keen::ObjectReference characterScenePlayerPregame; // Offset: 928 + keen::ObjectReference characterSceneNpc; // Offset: 944 + keen::ObjectReference commerceProducts; // Offset: 960 + keen::ObjectReference achievements; // Offset: 976 + keen::ObjectReference preloadVfxList; // Offset: 992 + keen::ObjectReference colorPaletteCollection; // Offset: 1008 + keen::ObjectReference weatherSystemResource; // Offset: 1024 +}; + +struct Game38SharedResources { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference gameKnowledge; // Offset: 16 + keen::ObjectReference gameKnowledgeResource; // Offset: 32 + keen::ObjectReference gameKnowledgeQueryResourceDb; // Offset: 48 + keen::ObjectReference itemRegistry; // Offset: 64 + keen::ObjectReference journalRegistry; // Offset: 80 + keen::ObjectReference devItemRegistry; // Offset: 96 + keen::ObjectReference recipeRegistry; // Offset: 112 + keen::ObjectReference balancingTable; // Offset: 128 + keen::ObjectReference workshopRegistry; // Offset: 144 + keen::ObjectReference npcCollection; // Offset: 160 + keen::ObjectReference lootLabelCollection; // Offset: 176 + keen::ObjectReference lootableItems; // Offset: 192 + keen::ObjectReference lootDistribution; // Offset: 208 + keen::ObjectReference buffTypeCollection; // Offset: 224 + keen::ObjectReference midiSongCollection; // Offset: 240 + keen::ObjectReference impactRegistry; // Offset: 256 + keen::ObjectReference attributeContainer; // Offset: 272 + keen::ObjectReference actorSequenceCollection; // Offset: 288 + keen::ObjectReference terraformingEfficiencyRegistry; // Offset: 304 + keen::ObjectReference voxelBlueprintConfig; // Offset: 320 + keen::ObjectReference voxelBlueprintItemRegistry; // Offset: 336 + keen::ObjectReference voxelBlueprintMaterialPoolRegistry; // Offset: 352 + keen::ObjectReference enemyArsenalRegistry; // Offset: 368 + keen::ObjectReference perkCollection; // Offset: 384 + keen::ObjectReference ingameTimeConfig; // Offset: 400 + keen::ObjectReference skillTree; // Offset: 416 + keen::ObjectReference templateCollection; // Offset: 432 + keen::ObjectReference twitchDropCollection; // Offset: 448 + keen::ObjectReference staminaDrainNotifier; // Offset: 464 + keen::ObjectReference exhaustedNotifier; // Offset: 480 + keen::ObjectReference pickupLootNotifier; // Offset: 496 + keen::ObjectReference itemBrokenNotifier; // Offset: 512 + keen::ObjectReference characterPresetCollection; // Offset: 528 + keen::ObjectReference animationGraphDebugInfo; // Offset: 544 + keen::ObjectReference commerceProducts; // Offset: 560 + keen::ObjectReference colorPaletteCollection; // Offset: 576 + keen::ObjectReference gameSettingPresets; // Offset: 592 + keen::ObjectReference weatherSystemResource; // Offset: 608 +}; + +struct Game38ClientResources { + keen::ds::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference renderSettingsGpuPresets; // Offset: 624 + keen::ObjectReference fbUiBundle; // Offset: 640 + keen::ObjectReference mapMarkerRegistry; // Offset: 656 + keen::ObjectReference itemKnowledge; // Offset: 672 + keen::ObjectReference voicePacks; // Offset: 688 + keen::ObjectReference materialFeedbackCollection; // Offset: 704 + keen::ObjectReference locaTagCollection; // Offset: 720 + keen::ObjectReference colorGradingFogRegular; // Offset: 736 + keen::ObjectReference colorGradingFogDangerous; // Offset: 752 + keen::ObjectReference colorGradingLowHealth; // Offset: 768 + keen::ObjectReference maleClothCollider; // Offset: 784 + keen::ObjectReference femaleClothCollider; // Offset: 800 + keen::ObjectReference fbUiMapResource; // Offset: 816 + keen::ObjectReference uiFontDefault; // Offset: 832 + keen::ObjectReference uiFontFancy; // Offset: 848 + keen::ObjectReference grassVfx; // Offset: 864 + keen::ObjectReference buildingBlockDamageDecalVfx; // Offset: 880 + keen::ObjectReference blueprintHoverHighlightVfx; // Offset: 896 + keen::ObjectReference pregameMusic; // Offset: 912 + keen::ObjectReference loreIntroMusic; // Offset: 928 + keen::ObjectReference spellChargeFullSfx; // Offset: 944 + keen::ObjectReference ambientCollection; // Offset: 960 + keen::ObjectReference enemyDebugMenu; // Offset: 976 + keen::ObjectReference characterScenePlayer; // Offset: 992 + keen::ObjectReference characterScenePlayerPortrait; // Offset: 1008 + keen::ObjectReference characterScenePlayerPregame; // Offset: 1024 + keen::ObjectReference characterSceneNpc; // Offset: 1040 + keen::ObjectReference achievements; // Offset: 1056 + keen::ObjectReference preloadVfxList; // Offset: 1072 +}; + +struct Game38ServerResources { + keen::ds::Game38SharedResources shared; // Offset: 0 + keen::ObjectReference gameKnowledgeQueryTriggerResource; // Offset: 624 +}; + +typedef keen::ObjectReference MidiReference; + +typedef keen::MidiInstrumentType MidiInstrumentType; + +struct MidiSong { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::MidiReference midiSong; // Offset: 16 + keen::ds::MidiInstrumentType defaultForInstrument; // Offset: 32 +}; + +struct MidiSongSubDirectory { +}; + +struct MidiSongDirectory { +}; + +struct MidiSongResource { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::MidiReference midiSong; // Offset: 16 + keen::ds::KnowledgeId unlockKnowledge; // Offset: 32 + keen::ds::MidiInstrumentType defaultForInstrument; // Offset: 36 +}; + +struct InstrumentSampleCollectionResource { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct MidiSongCollection { + keen::DsArray> songCollection; // Offset: 0 + keen::ds::InstrumentSampleCollectionResource sampleCollection; // Offset: 40 +}; + +typedef keen::ecs::G38TestSuite ecs.G38TestSuite; + +typedef keen::ecs::FailTest ecs.FailTest; + +typedef keen::ecs::InventoryTest ecs.InventoryTest; + +typedef keen::ecs::DungeonTriggerTest ecs.DungeonTriggerTest; + +typedef keen::ecs::KnowledgeTest ecs.KnowledgeTest; + +typedef keen::ecs::CookingTest ecs.CookingTest; + +typedef keen::ecs::FallDamageTestId ecs.FallDamageTestId; + +typedef keen::ecs::SlidingTestId ecs.SlidingTestId; + +typedef keen::ecs::ClimbLadderTestId ecs.ClimbLadderTestId; + +typedef keen::ecs::ClimbWallTestId ecs.ClimbWallTestId; + +typedef keen::ecs::HookShotSwingTestId ecs.HookShotSwingTestId; + +typedef keen::ecs::HookShotPullTestId ecs.HookShotPullTestId; + +typedef keen::ecs::GliderTestId ecs.GliderTestId; + +struct ecs.CookingTestComponent { + keen::ds::ecs::EntityId campfireEntityId; // Offset: 0 + keen::Time cookTime; // Offset: 8 + keen::Time postCookWaitTime; // Offset: 16 + keen::Time sitWaitTime; // Offset: 24 + keen::Time standWaitTime; // Offset: 32 + keen::uint8 campfireEntityDeletionTryCount; // Offset: 40 + keen::uint8 cookingTestComponentDeletionTryCount; // Offset: 41 + keen::bool sitToggled; // Offset: 42 + keen::bool standToggled; // Offset: 43 + keen::bool cookingToggled; // Offset: 44 +}; + +struct ecs.TestValueMemory { + keen::float3 vectorValue; // Offset: 0 + keen::float32 floatValue; // Offset: 12 +}; + +struct ecs.FakePlayerSpawner { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +typedef keen::VoxelMaterialType VoxelMaterialType; + +struct BaseVoxelMaterial { +}; + +struct BiomeVoxelMaterial { + keen::ObjectReference grassland; // Offset: 0 + keen::ObjectReference desert; // Offset: 16 + keen::ObjectReference wetland; // Offset: 32 + keen::ObjectReference steppes; // Offset: 48 + keen::ObjectReference deepforest; // Offset: 64 + keen::ObjectReference coldheights; // Offset: 80 +}; + +typedef keen::HardnessCategory HardnessCategory; + +struct VoxelWorldDisplacement { + keen::ds::ImageReference map; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::float32 origin; // Offset: 20 + keen::float32 uvScale; // Offset: 24 +}; + +typedef keen::VfxMaterialType VfxMaterialType; + +struct SolidVoxelMaterial { + keen::ds::VoxelMaterialType type; // Offset: 0 + keen::ds::ItemReference materialItem; // Offset: 4 + keen::ds::HardnessCategory hardness; // Offset: 20 + keen::sint32 healthPoints; // Offset: 24 + keen::ObjectReference blockCraftingRecipe; // Offset: 28 + keen::uint32 voxelsPerLootItemExchangeRate; // Offset: 44 + keen::ObjectReference experienceGain; // Offset: 48 + keen::bool canBeFlattened; // Offset: 64 + keen::bool isSlidingMaterial; // Offset: 65 + keen::ds::VoxelWorldDisplacement sideDisplacement; // Offset: 68 + keen::ds::VoxelWorldDisplacement topDisplacement; // Offset: 96 + keen::ObjectReference stoneMaterial; // Offset: 124 + keen::bool canReceiveFloorMaterial; // Offset: 140 + keen::ObjectReference pbrBuildingMaterial; // Offset: 144 + keen::ds::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 160 + keen::ds::AmbientEnvironment ambientEnvironment; // Offset: 176 + keen::ds::BuffTypeReference buffType; // Offset: 180 + keen::ObjectReference previewVoxelObject; // Offset: 196 + keen::bool isDangerous; // Offset: 212 + keen::float frictionFactor; // Offset: 216 + keen::float maxSubmergeDepth; // Offset: 220 + keen::float minSubmergePercentage; // Offset: 224 + keen::float maxSubmergePercentage; // Offset: 228 + keen::ds::VfxMaterialType vfxMaterialType; // Offset: 232 + keen::ds::ecs::EntityTagReference entityTag; // Offset: 236 + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 252 +}; + +struct BaseFogVoxelMaterial { + keen::ds::VoxelWorldDisplacement sideDisplacement; // Offset: 0 + keen::ds::VoxelWorldDisplacement topDisplacement; // Offset: 28 +}; + +struct FogVoxelMaterial { + keen::uint8 level; // Offset: 56 +}; + +struct DecorativeFogVoxelMaterial { +}; + +struct WaterVoxelMaterial { +}; + +typedef keen::TemperatureVoxelType TemperatureVoxelType; + +struct TemperatureVoxelMaterial { + keen::ds::TemperatureVoxelType temperature; // Offset: 0 +}; + +struct VoxelMaterialTerraformingInfo { + keen::ds::SolidVoxelMaterial solidVoxelMaterial; // Offset: 0 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 256 +}; + +struct VoxelMaterialScatteringNoise { + keen::float32 scale; // Offset: 0 + keen::float32 persistence; // Offset: 4 + keen::float32 outMin; // Offset: 8 + keen::float32 outMax; // Offset: 12 +}; + +struct VoxelMaterialScattering { + keen::ObjectReference densityMap; // Offset: 0 + keen::float32 density; // Offset: 16 + keen::ds::VoxelMaterialScatteringNoise densityNoise; // Offset: 20 + keen::ds::VoxelMaterialScatteringNoise depthNoise; // Offset: 36 + keen::float32 maxWidth; // Offset: 52 + keen::ds::VoxelMaterialScatteringNoise detailNoise; // Offset: 56 + keen::ds::VoxelMaterialScatteringNoise dirtDetailNoise; // Offset: 72 +}; + +typedef keen::VoxelMaterialScatteringShape VoxelMaterialScatteringShape; + +struct VoxelMaterialScatterTargetMaterial { + keen::ObjectReference material; // Offset: 0 + keen::bool enableScattering; // Offset: 16 + keen::ds::VoxelMaterialScatteringShape shape; // Offset: 17 + keen::float32 modulationInputScale; // Offset: 20 + keen::float32 shapeNoiseScale; // Offset: 24 + keen::float32 structureScale; // Offset: 28 + keen::float32 structureFadeSize; // Offset: 32 + keen::float32 outerRadius; // Offset: 36 + keen::float32 geodesScattterRadius; // Offset: 40 + keen::uint32 geodesCount; // Offset: 44 + keen::float2 geodesRadiusRange; // Offset: 48 + keen::float32 geodesShellWidth; // Offset: 56 +}; + +struct VoxelMaterialScatterTargetMaterialList { + keen::DsArray materials; // Offset: 0 +}; + +struct VoxelMaterialScatteringList { + keen::DsArray materialGuids; // Offset: 0 + keen::DsArray settings; // Offset: 40 + keen::DsArray targetMaterials; // Offset: 80 +}; + +struct ecs.Health { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Stamina { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDepletionMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Mana { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Revive { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Durability { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Movement { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedCombat { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FogResistance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Level { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Experience { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Threat { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ThreatBonus { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ToolDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModBackstab { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSkillShot { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModSneak { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModMerciless { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageModAgainst { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealingMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.DamageSusceptibility { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritChance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.CritDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Strength { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Intelligence { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Dexterity { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Endurance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Constitution { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Spirit { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Armor { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ArmorPoints { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Block { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ParryProficiency { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Comfort { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.Rested { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MeleeDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.RangedDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.MagicDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.AllyAggroMultiplier { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.StaminaRechargeMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.HealthRechargeMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.ManaRechargeMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.WeaponCategoryDamageMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeatMaxMod { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.BodyHeat { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +struct ecs.FreezingResistance { + keen::ds::AttributeRootReference definition; // Offset: 20 + keen::StaticArray dataStorage; // Offset: 36 +}; + +typedef keen::ItemCollectionId ItemCollectionId; + +typedef keen::SignalId SignalId; + +typedef keen::LootContainerId LootContainerId; + +typedef keen::JournalEntryId JournalEntryId; + +struct Signal { +}; + +typedef keen::ItemStateFlag ItemStateFlag; + +typedef keen::ds::LocaTagReference CaptionLocaTag; + +typedef keen::ds::LocaTagReference LoreLocaTag; + +typedef keen::ItemKnowledgeFlag ItemKnowledgeFlag; + +typedef keen::ItemKnowledgeMask ItemKnowledgeMask; + +struct RecipeItemStackResource { + keen::ds::ItemReference itemRef; // Offset: 0 + keen::ds::ItemId item; // Offset: 16 + keen::uint32 count; // Offset: 20 +}; + +typedef keen::InventoryActionType InventoryActionType; + +struct VersionedData { + keen::uint16 changeCount; // Offset: 0 +}; + +typedef keen::UiState UiState; + +typedef keen::WheelMenuType WheelMenuType; + +typedef keen::FactionType FactionType; + +typedef keen::InputMode InputMode; + +typedef keen::AttackDirectionInput AttackDirectionInput; + +typedef keen::ControllerButtonStyle ControllerButtonStyle; + +typedef keen::UiInputId UiInputId; + +typedef keen::CharacterState CharacterState; + +typedef keen::CharacterStateMask CharacterStateMask; + +typedef keen::CharacterId CharacterId; + +typedef keen::SaveGameSlotIndex SaveGameSlotIndex; + +typedef keen::PlayerId PlayerId; + +typedef keen::BaseId BaseId; + +struct EnemyPhase { +}; + +struct JumpToObject { + keen::Guid objectId; // Offset: 0 +}; + +typedef keen::ecs::SpecialInteraction ecs.SpecialInteraction; + +typedef keen::PlayerLoginState PlayerLoginState; + +typedef keen::GameClientInitState GameClientInitState; + +typedef keen::PlayerPermissions PlayerPermissions; + +typedef keen::PlayerPermissionsMask PlayerPermissionsMask; + +typedef keen::VoxelConstraint VoxelConstraint; + +typedef keen::VoxelConstraintMask VoxelConstraintMask; + +struct VoxelRequirements { + keen::ds::VoxelConstraintMask required; // Offset: 0 + keen::ds::VoxelConstraintMask forbidden; // Offset: 1 +}; + +struct ecs.ServerProgressSystem { + keen::ds::ecs::EntityId progressEntity; // Offset: 0 + keen::uint32 progressLevel; // Offset: 4 + keen::uint32 currentAltarCount; // Offset: 8 + keen::uint32 currentHighestAltarLevel; // Offset: 12 +}; + +struct ecs.BaseIdComponent { + keen::ds::BaseId baseId; // Offset: 0 + keen::float3 buildZoneSize; // Offset: 16 + keen::Time endOfTimeout; // Offset: 32 + keen::bool wasAbandoned; // Offset: 40 +}; + +struct ecs.ClientBaseIdComponent { + keen::Time endOfTimeout; // Offset: 0 + keen::bool wasAbandoned; // Offset: 8 + keen::uint16 farmingAnimalCount; // Offset: 10 + keen::uint16 hungryFarmingAnimalCount; // Offset: 12 + keen::uint16 animalsWithoutBedCount; // Offset: 14 + keen::uint16 npcBedCount; // Offset: 16 + keen::uint16 farmingAnimalBedCount; // Offset: 18 + keen::uint16 occupiedFarmingAnimalBedCount; // Offset: 20 +}; + +struct ecs.NoBuildZone { +}; + +struct ecs.UnlockedJournalEntries { + keen::uint16 knowledgeChangeCounter; // Offset: 0 + keen::uint16 journalChangeCounter; // Offset: 2 +}; + +struct ecs.HealthBar { + keen::Time lastChange; // Offset: 0 +}; + +struct ecs.EnergyProvider { + keen::uint32 energyPerSecond; // Offset: 0 +}; + +struct ecs.EnergyQuery { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::uint32 energyPerSecond; // Offset: 4 + keen::float32 entityDistanceSquared; // Offset: 8 +}; + +typedef keen::ecs::CookingState ecs.CookingState; + +typedef keen::ecs::CookingFlags ecs.CookingFlags; + +typedef keen::ecs::CookingMask ecs.CookingMask; + +struct ecs.CookingData { + keen::ds::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ds::ecs::EntityId skewerEntityId; // Offset: 4 + keen::ds::ecs::EntityId burnedFoodEntityId; // Offset: 8 + keen::ds::ecs::EntityId cookFoodEntityId; // Offset: 12 + keen::ds::ItemId baseItemId; // Offset: 16 + keen::ds::ItemId cookingItemId; // Offset: 20 + keen::ds::ItemId nextCookingItemId; // Offset: 24 + keen::ds::KnowledgeId nextKnowledgeTriggerId; // Offset: 28 + keen::ds::KnowledgeId cookingKnowledgeTriggerId; // Offset: 32 + keen::uint32 cookingEnergy; // Offset: 36 + keen::uint32 requiredEnergy; // Offset: 40 + keen::ds::ecs::CookingMask mask; // Offset: 44 + keen::ds::ecs::CookingState state; // Offset: 45 +}; + +struct ecs.NetworkCookingData { + keen::ds::ecs::EntityId cookingHearthEntityId; // Offset: 0 + keen::ds::ecs::CookingMask mask; // Offset: 4 +}; + +struct ecs.CookingNotifier { + keen::ds::NotifierReference onFoodStateChange; // Offset: 0 + keen::ds::NotifierReference onFoodBurned; // Offset: 16 +}; + +struct ecs.AttributeRegeneration { + keen::Time lastNegativeChange; // Offset: 0 + keen::float32 accumulatedValue; // Offset: 8 + keen::sint32 lastValue; // Offset: 12 +}; + +struct ecs.HealthRecharge { +}; + +struct ecs.StaminaRecharge { +}; + +struct ecs.ManaRegeneration { +}; + +struct ecs.BodyHeatRecharge { +}; + +struct ecs.StaminaDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.BodyHeatDepletion { + keen::float32 accumulatedValue; // Offset: 0 +}; + +struct ecs.MovementVector { + keen::float3 velocity; // Offset: 0 + keen::float3 movement; // Offset: 12 +}; + +struct ecs.Projectile { +}; + +struct ecs.ParriableProjectile { + keen::ds::ecs::TemplateReference parriedProjectileTemplate; // Offset: 0 + keen::Angle launchPitchAngleOffset; // Offset: 16 + keen::float32 launchSpeedFactor; // Offset: 20 +}; + +struct ecs.ParriedProjectile { + keen::ds::FactionType originalFaction; // Offset: 0 + keen::ds::ecs::EntityId originalSpawnerId; // Offset: 4 +}; + +typedef keen::ecs::ProjectileMode ecs.ProjectileMode; + +struct ecs.CirclingTargetSettings { + keen::Angle angleOffset; // Offset: 0 + keen::float radius; // Offset: 4 + keen::float heightOffset; // Offset: 8 +}; + +struct ecs.EnemyProjectile { + keen::ds::ecs::ProjectileMode mode; // Offset: 0 + keen::float32 targetOffsetY; // Offset: 4 + keen::uint8 maxTries; // Offset: 8 + keen::float32 force; // Offset: 12 + keen::bool addGravity; // Offset: 16 + keen::bool useLowAngle; // Offset: 17 + keen::bool lockTargetPosition; // Offset: 18 + keen::DsArray hitAngles; // Offset: 24 + keen::Angle minPitch; // Offset: 64 + keen::Angle maxPitch; // Offset: 68 + keen::Angle maxHorizontalAngle; // Offset: 72 + keen::bool useFixedTargetOffset; // Offset: 76 + keen::ds::ecs::Offset targetOffset; // Offset: 80 + keen::bool useCirclingTarget; // Offset: 120 + keen::ds::ecs::CirclingTargetSettings circlingTargetSettings; // Offset: 124 +}; + +struct ecs.StaticUsedItem { + keen::ds::ItemReference itemReference; // Offset: 0 +}; + +struct ecs.UsedItem { + keen::ds::ItemId itemId; // Offset: 0 +}; + +struct ecs.PerkContainer { + keen::StaticArray perkIds; // Offset: 0 + keen::StaticArray perkIsUnlocked; // Offset: 20 +}; + +typedef keen::ecs::DismantleVolumeClass ecs.DismantleVolumeClass; + +typedef keen::ecs::DismantleMethod ecs.DismantleMethod; + +struct ecs.DismantleOverride { + keen::bool overrideMethod; // Offset: 0 + keen::ds::ecs::DismantleMethod method; // Offset: 1 + keen::bool overrideVolumeClass; // Offset: 2 + keen::ds::ecs::DismantleVolumeClass volumeClass; // Offset: 3 + keen::bool ignoreBuildZoneChecks; // Offset: 4 + keen::bool preventDismantlingWithFilledInventory; // Offset: 5 +}; + +struct ecs.ClientDismantleOverride { + keen::bool forceImmediateDismantlePrompt; // Offset: 0 +}; + +struct ecs.SubEntitySpawnInfo { + keen::ds::ecs::TemplateReference templateRef; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 16 + keen::ds::AttachmentSlot slot; // Offset: 56 + keen::bool hasKnowledgeRequirement; // Offset: 57 + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 60 + keen::ds::KnowledgeId knowledgeRequirementId; // Offset: 164 + keen::bool attach; // Offset: 168 + keen::bool despawnOnDeath; // Offset: 169 + keen::bool addDespawnLink; // Offset: 170 + keen::bool addOwnerRelationship; // Offset: 171 + keen::bool doNotSave; // Offset: 172 + keen::bool copyConditionalDespawn; // Offset: 173 + keen::bool copyLevel; // Offset: 174 + keen::bool addImpactHierarchy; // Offset: 175 +}; + +struct ecs.SubEntities { + keen::DsArray subEntities; // Offset: 0 + keen::bool hasSavedChildren; // Offset: 40 +}; + +struct ecs.DynamicSubEntities { + keen::StaticArray subEntities; // Offset: 0 +}; + +struct ecs.SubEntitiesStop { +}; + +struct ecs.ToggleSubEntities { + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.DynamicToggleSubEntities { + keen::bool dontSpawn; // Offset: 0 +}; + +struct ecs.SubEntityAttachmentMask { + keen::ds::AttachmentSlotMask mask; // Offset: 0 +}; + +struct ecs.EntityAnimation { + keen::ds::JointAnimationReference animation; // Offset: 0 + keen::uint32 animationHandle; // Offset: 16 + keen::Time sampleTime; // Offset: 24 +}; + +struct ecs.DespawnAfterSequence { + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 0 +}; + +struct ecs.WeaponReference { + keen::ds::ecs::EntityId weaponEntityId; // Offset: 0 + keen::ds::ecs::EntityId weaponOwnerEntityId; // Offset: 4 +}; + +struct ecs.HitReactionConfig { + keen::ds::animationgraph::OverlayIdReference hitReactionOverlay; // Offset: 0 + keen::ds::actor::ActorSequenceReference hitSequence; // Offset: 16 +}; + +struct ecs.HitReactionBehavior { + keen::ds::ecs::HitReactionConfig hitReactionBlockLightAttack; // Offset: 0 + keen::ds::ecs::HitReactionConfig hitReactionLight; // Offset: 32 + keen::ds::ecs::HitReactionConfig hitReactionHeavy; // Offset: 64 + keen::ds::ecs::HitReactionConfig hitReactionBoss; // Offset: 96 + keen::ds::ecs::HitReactionConfig hitReactionLongStun; // Offset: 128 + keen::ds::ecs::HitReactionConfig hitReactionTrapStun; // Offset: 160 + keen::ds::ecs::HitReactionConfig hitReactionShortStunBeGoneSkill; // Offset: 192 + keen::ds::ecs::HitReactionConfig hitReactionThrowIntoAir; // Offset: 224 + keen::ds::ecs::HitReactionConfig hitReactionWhileFlying; // Offset: 256 +}; + +typedef keen::ecs::EntityReferenceType ecs.EntityReferenceType; + +struct ecs.LerpRenderTransform { + keen::bool isInitialized; // Offset: 0 + keen::ds::ecs::EntityReferenceType entityReferenceType; // Offset: 1 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 2 + keen::Time lerpDuration; // Offset: 8 + keen::float32 lerpValueStart; // Offset: 16 + keen::float32 lerpValueEnd; // Offset: 20 + keen::Time lerpTimeStart; // Offset: 24 + keen::float3 translateDelta; // Offset: 32 +}; + +struct ecs.HomeToTarget { + keen::float3 targetLocalOffset; // Offset: 0 + keen::float32 turnSpeed; // Offset: 12 + keen::float32 turnSpeedMinDistanceFactor; // Offset: 16 + keen::float32 turnSpeedMaxDistanceFactor; // Offset: 20 + keen::float32 turnSpeedMinDistance; // Offset: 24 + keen::float32 turnSpeedMaxDistance; // Offset: 28 + keen::float32 acceleration; // Offset: 32 + keen::float32 maxSpeed; // Offset: 36 + keen::bool homeToCollisionTarget; // Offset: 40 + keen::float32 rayLength; // Offset: 44 + keen::bool accelerateDependsOnAngle; // Offset: 48 +}; + +struct ecs.DynamicHomeToTarget { + keen::float3 targetPosition; // Offset: 0 +}; + +struct ecs.Boomerang { + keen::Time returnToSpawnerDelay; // Offset: 0 + keen::float32 destroyOnApproachSpawnerDistance; // Offset: 8 +}; + +typedef keen::ecs::AggroTargetState ecs.AggroTargetState; + +typedef keen::ecs::AggroPool ecs.AggroPool; + +struct ecs.AggroPoolData { + keen::float32 value; // Offset: 0 + keen::Time lastGain; // Offset: 8 +}; + +typedef keen::ecs::LineOfSightState ecs.LineOfSightState; + +typedef keen::ecs::TargetReachableState ecs.TargetReachableState; + +struct ecs.AggroTarget { + keen::StaticArray aggroPools; // Offset: 0 + keen::ds::ecs::AggroTargetState state; // Offset: 48 + keen::ds::ecs::EntityId entityId; // Offset: 52 + keen::float32 value; // Offset: 56 + keen::Time lastLineOfSightQueryTime; // Offset: 64 + keen::ds::ecs::LineOfSightState lineOfSightState; // Offset: 72 + keen::Time lastStateChangeTime; // Offset: 80 + keen::ds::FactionType faction; // Offset: 88 + keen::float pathLength; // Offset: 92 + keen::ds::ecs::TargetReachableState reachableState; // Offset: 96 + keen::float distanceToTarget; // Offset: 100 + keen::float enemyValue; // Offset: 104 +}; + +struct ecs.AggroTargetPathQuery { + keen::ds::ecs::PathQueryId queryId; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::float3 lastStart; // Offset: 16 + keen::float3 lastTarget; // Offset: 28 +}; + +struct ecs.Aggro { + keen::StaticArray targets; // Offset: 0 + keen::StaticArray pathQueries; // Offset: 672 + keen::Time nextAllowedTargetChangeTime; // Offset: 912 + keen::ds::ecs::QueryId queryId; // Offset: 920 + keen::bool applyEnemyValue; // Offset: 924 + keen::bool allowTargetSwitches; // Offset: 925 +}; + +struct ecs.TriggerNoise { + keen::float32 range; // Offset: 0 + keen::Time nextTriggerTime; // Offset: 8 + keen::Time triggerInterval; // Offset: 16 +}; + +struct ecs.TriggerWalkingNoise { + keen::float32 sneakRange; // Offset: 0 + keen::float32 walkRange; // Offset: 4 + keen::float32 runRange; // Offset: 8 + keen::float32 sprintRange; // Offset: 12 + keen::Time nextTriggerTime; // Offset: 16 + keen::Time triggerInterval; // Offset: 24 +}; + +struct ecs.EnemyPhases { + keen::StaticArray,8> phases; // Offset: 0 +}; + +struct ecs.DynamicEnemyPhases { + keen::Guid lastPhase; // Offset: 0 + keen::Guid currentPhase; // Offset: 16 + keen::Time currentPhaseStartTime; // Offset: 32 +}; + +struct ecs.EnemyAiming { + keen::DsArray hitPattern; // Offset: 0 + keen::float32 minDistanceToMissTarget; // Offset: 40 +}; + +struct ecs.DynamicEnemyAiming { + keen::uint8 hitIndex; // Offset: 0 + keen::uint8 hitAngleIndex; // Offset: 1 + keen::StaticArray projectiles; // Offset: 4 +}; + +typedef keen::ecs::ContextualVector2Context ecs.ContextualVector2Context; + +struct ecs.ContextualVector2 { + keen::ds::ecs::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.ExecutionTarget { + keen::float32 executionRange; // Offset: 0 + keen::bool enableSneackAttackExecution; // Offset: 4 + keen::bool enableMercilessAttackExecution; // Offset: 5 + keen::float32 minMercilessAttackHealthPercentage; // Offset: 8 + keen::bool allowMercilessAttackRetrigger; // Offset: 12 + keen::bool canMercilessAttackBeExecuted; // Offset: 13 + keen::bool waitForHealthAboveThreshold; // Offset: 14 + keen::bool waitForStaminaRecharge; // Offset: 15 +}; + +typedef keen::ecs::TransferItemToInventoryFlags ecs.TransferItemToInventoryFlags; + +struct ecs.InventoryTransferAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 4 + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::ds::InventorySlotId sourceSlotId; // Offset: 12 + keen::ds::InventorySlotId targetSlotId; // Offset: 20 + keen::ds::InventoryActionType type; // Offset: 28 + keen::ds::ecs::TransferItemToInventoryFlags flags; // Offset: 29 + keen::uint16 amount; // Offset: 30 +}; + +struct ecs.SelectSongAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::HashKey32 songId; // Offset: 4 +}; + +struct ecs.SortInventoryAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetInventoryId; // Offset: 4 +}; + +struct ecs.CreateBuildingItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 2 + keen::ds::ItemId itemId; // Offset: 4 +}; + +struct ecs.CreateNpcItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 +}; + +struct ecs.ActionbarSelectionAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 2 +}; + +struct ecs.InventoryStockCycleAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ItemId selectedItemId; // Offset: 4 +}; + +struct ecs.ParryAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::StaticArray targetEntityIds; // Offset: 4 +}; + +struct ecs.KickPlayerAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 4 +}; + +struct ecs.TwitchDropRewardAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 4 + keen::ds::ItemId itemId; // Offset: 8 +}; + +typedef keen::ecs::TombstoneMode ecs.TombstoneMode; + +typedef keen::ecs::WeatherFrequency ecs.WeatherFrequency; + +typedef keen::ecs::AggroPoolAmount ecs.AggroPoolAmount; + +typedef keen::ecs::TamingStartleRepercussion ecs.TamingStartleRepercussion; + +struct ecs.GameSettings { + keen::float playerHealthFactor; // Offset: 0 + keen::float playerManaFactor; // Offset: 4 + keen::float playerStaminaFactor; // Offset: 8 + keen::float playerBodyHeatFactor; // Offset: 12 + keen::bool enableDurability; // Offset: 16 + keen::bool enableStarvingDebuff; // Offset: 17 + keen::float foodBuffDurationFactor; // Offset: 20 + keen::Time fromHungerToStarving; // Offset: 24 + keen::float shroudTimeFactor; // Offset: 32 + keen::ds::ecs::TombstoneMode tombstoneMode; // Offset: 36 + keen::bool enableGliderTurbulences; // Offset: 37 + keen::ds::ecs::WeatherFrequency weatherFrequency; // Offset: 38 + keen::float miningDamageFactor; // Offset: 40 + keen::float plantGrowthSpeedFactor; // Offset: 44 + keen::float resourceDropStackAmountFactor; // Offset: 48 + keen::float factoryProductionSpeedFactor; // Offset: 52 + keen::float perkUpgradeRecyclingFactor; // Offset: 56 + keen::float perkCostFactor; // Offset: 60 + keen::float experienceCombatFactor; // Offset: 64 + keen::float experienceMiningFactor; // Offset: 68 + keen::float experienceExplorationQuestsFactor; // Offset: 72 + keen::ds::ecs::RandomSpawnerAmount randomSpawnerAmount; // Offset: 76 + keen::ds::ecs::AggroPoolAmount aggroPoolAmount; // Offset: 77 + keen::float enemyDamageFactor; // Offset: 80 + keen::float enemyHealthFactor; // Offset: 84 + keen::float enemyStaminaFactor; // Offset: 88 + keen::float enemyPerceptionRangeFactor; // Offset: 92 + keen::float bossDamageFactor; // Offset: 96 + keen::float bossHealthFactor; // Offset: 100 + keen::float threatBonus; // Offset: 104 + keen::bool pacifyAllEnemies; // Offset: 108 + keen::ds::ecs::TamingStartleRepercussion tamingStartleRepercussion; // Offset: 109 + keen::Time dayTimeDuration; // Offset: 112 + keen::Time nightTimeDuration; // Offset: 120 +}; + +struct ecs.AdminChangeGameSettingsAction { + keen::ds::ecs::GameSettings gameSettings; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 128 +}; + +struct ecs.AdminApplyInventoryCommand { + keen::ds::VersionedData versionData; // Offset: 0 + keen::Guid inventoryGuid; // Offset: 4 + keen::bool clearInventories; // Offset: 20 +}; + +struct ecs.AdminSpawnCommand { + keen::ds::VersionedData versionData; // Offset: 0 + keen::uint16 level; // Offset: 2 + keen::Guid templateGuid; // Offset: 4 + keen::uint8 optionalDistance; // Offset: 20 + keen::uint8 count; // Offset: 21 + keen::bool useRoaming; // Offset: 22 + keen::bool showSpawnSequence; // Offset: 23 + keen::bool spawnAsGroup; // Offset: 24 + keen::bool spawnAsFakePlayer; // Offset: 25 + keen::bool followPlayer; // Offset: 26 + keen::uint8 autoDestroyTicks; // Offset: 27 +}; + +struct ecs.AdminKillFactionCommand { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::FactionMask factionMask; // Offset: 2 + keen::uint32 playerMask; // Offset: 4 +}; + +typedef keen::ItemRarity ItemRarity; + +struct ecs.AdminInventoryCreateAction { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 + keen::uint16 count; // Offset: 6 + keen::ds::ItemRarity rarity; // Offset: 8 + keen::uint8 level; // Offset: 9 + keen::bool createForAllPlayers; // Offset: 10 + keen::bool createFullStack; // Offset: 11 + keen::bool fillEmptyStacks; // Offset: 12 + keen::bool maximizeCharacter; // Offset: 13 + keen::bool cleanupInventory; // Offset: 14 + keen::bool flameLevelUpgrade; // Offset: 15 +}; + +struct ecs.AdminTeleportAction { + keen::ds::ecs::Transform transform; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 28 +}; + +struct ecs.AdminSetDayTimeAction { + keen::Time syncDaytime; // Offset: 0 + keen::Time syncDaytimeTick; // Offset: 8 + keen::ds::VersionedData versionData; // Offset: 16 +}; + +struct ecs.AdminDestroyItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.AdminSetFlameLevel { + keen::ds::VersionedData versionData; // Offset: 0 + keen::uint8 flameLevel; // Offset: 2 +}; + +struct ecs.AdminSetCharacterLevel { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 4 + keen::uint8 level; // Offset: 8 +}; + +struct ecs.AdminPerkAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 + keen::bool state; // Offset: 12 +}; + +struct ecs.AdminDebugCameraDisplayAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::bool enable; // Offset: 2 +}; + +struct ecs.ChangeCustomizationAction { + keen::ds::InventorySlotId targetSlotId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::VersionedData versionData; // Offset: 12 +}; + +typedef keen::ecs::FlameAltarActionType ecs.FlameAltarActionType; + +struct ecs.FlameAltarAction { + keen::ds::ecs::EntityId baseEntityId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 + keen::ds::ecs::FlameAltarActionType type; // Offset: 6 +}; + +struct ecs.TeleportAction { + keen::ds::ecs::EntityId target; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 +}; + +struct ecs.UnlockSkillAction { + keen::ds::SkillNodeId skillId; // Offset: 0 + keen::bool resetSkills; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 6 +}; + +struct ecs.AdminUnlearnSkillAction { + keen::ds::SkillNodeId skillId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 4 +}; + +struct ecs.TriggerKnowledgeAction { + keen::ds::LocaTagId dialogOptionId; // Offset: 0 + keen::ds::KnowledgeId knowledgeId; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.SetPersonalProgressionAction { + keen::bool enable; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 2 +}; + +struct ecs.AmbientHelper { + keen::ds::AmbientMask ambientMask; // Offset: 0 +}; + +struct ecs.WaypointAction { + keen::WorldPosition position; // Offset: 0 + keen::bool enable; // Offset: 24 + keen::bool isPing; // Offset: 25 + keen::ds::VersionedData versionData; // Offset: 26 +}; + +struct ecs.SelectDialogOptionAction { + keen::ds::LocaTagId dialogOptionId; // Offset: 0 + keen::ds::ecs::EntityId targetNpc; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.NpcInputAction { + keen::ds::NpcId targetNpc; // Offset: 0 + keen::float roamingRange; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +typedef keen::RecipeId RecipeId; + +struct ecs.CraftRecipeAction { + keen::ds::ecs::EntityId craftingStationId; // Offset: 0 + keen::ds::RecipeId recipeId; // Offset: 4 + keen::uint16 recipeAmount; // Offset: 8 + keen::ds::VersionedData versionData; // Offset: 10 +}; + +struct ecs.AutomaticTransferAction { + keen::ds::ecs::EntityId craftingStationId; // Offset: 0 + keen::ds::RecipeId recipeId; // Offset: 4 + keen::ds::ItemId itemId; // Offset: 8 + keen::uint16 amount; // Offset: 12 + keen::ds::VersionedData versionData; // Offset: 14 +}; + +struct ecs.SelectCraftingStationRecipeAction { + keen::ds::ecs::EntityId craftingStationId; // Offset: 0 + keen::ds::RecipeId recipeId; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.PerkUnlockAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 +}; + +struct ecs.TrashItemAction { + keen::ds::VersionedData versionData; // Offset: 0 + keen::ds::InventorySlotId inventorySlotId; // Offset: 4 +}; + +typedef keen::ecs::ChangeEquipment ecs.ChangeEquipment; + +struct ecs.ChangeEquipmentAction { + keen::ds::InventorySlotId inventorySlotId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 8 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 10 + keen::ds::ecs::ChangeEquipment type; // Offset: 11 +}; + +typedef keen::ecs::SwapEquipmentTarget ecs.SwapEquipmentTarget; + +struct ecs.SwapEquipmentSetAction { + keen::ds::ecs::EntityId targetInventoryId; // Offset: 0 + keen::ds::ecs::SwapEquipmentTarget target; // Offset: 4 + keen::ds::VersionedData versionData; // Offset: 6 +}; + +struct ecs.ConsumeItemAction { + keen::ds::InventorySlotId inventorySlotId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.InspectItemAction { + keen::ds::InventorySlotId inventorySlotId; // Offset: 0 + keen::ds::VersionedData versionData; // Offset: 8 +}; + +struct ecs.RepairAllItemsAction { + keen::ds::VersionedData versionData; // Offset: 0 +}; + +struct ecs.RequiredCraftingProp { + keen::ObjectReference type; // Offset: 0 + keen::ds::CraftingPropId craftingPropId; // Offset: 16 +}; + +typedef keen::ecs::FactoryStationState ecs.FactoryStationState; + +struct ecs.FactoryStation { + keen::ds::ecs::FactoryStationState state; // Offset: 0 + keen::ds::RecipeId runningRecipe; // Offset: 4 + keen::ds::RecipeId nextRecipe; // Offset: 8 + keen::Time recipeStart; // Offset: 16 +}; + +struct ecs.FactoryStationClient { + keen::ds::SoundContainerReference soundLoopRunning; // Offset: 0 + keen::uint32 soundLoopRunningHandle; // Offset: 16 +}; + +struct ecs.UiBlueprintShapeSelection { + keen::uint8 selectionIndex; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ecs.UiPlayerInput { + keen::sint8 lootSelectionDelta; // Offset: 0 + keen::sint8 blueprintPageSelectionDelta; // Offset: 1 + keen::sint8 blueprintShapeSelectionDelta; // Offset: 2 + keen::ds::ecs::UiBlueprintShapeSelection blueprintShapeSelection; // Offset: 3 + keen::float32 dismantleHoldProgress; // Offset: 8 + keen::bool canCycleInventoryStock; // Offset: 12 + keen::bool isInventoryStockCyclingDisabled; // Offset: 13 + keen::bool isBlueprintPageSelectionModifierActive; // Offset: 14 + keen::bool isTertiaryActionAllowed; // Offset: 15 + keen::bool showTutorial; // Offset: 16 + keen::bool showInventoryStock; // Offset: 17 + keen::bool showActionbarWheel; // Offset: 18 + keen::bool showQuickEquipWheel; // Offset: 19 + keen::bool jumpToNotification; // Offset: 20 +}; + +struct ecs.ClientOnlyPlayerInput { + keen::sint8 actionbarSelectionDelta; // Offset: 0 + keen::sint8 inventoryStockCycleDelta; // Offset: 1 + keen::sint8 songSelectionDelta; // Offset: 2 + keen::sint8 zoomInputDelta; // Offset: 3 +}; + +struct ecs.ClientCamera { + keen::WorldPosition position; // Offset: 0 + keen::Quaternion orientation; // Offset: 24 + keen::float32 distance; // Offset: 40 + keen::float32 fovY; // Offset: 44 + keen::float32 aspectRatio; // Offset: 48 + keen::float32 nearPlane; // Offset: 52 + keen::float32 farPlane; // Offset: 56 +}; + +typedef keen::ecs::ClientPlayerState ecs.ClientPlayerState; + +typedef keen::ecs::ClientPlayerStateMask ecs.ClientPlayerStateMask; + +typedef keen::ecs::PlayerDigitalInput ecs.PlayerDigitalInput; + +struct ecs.ClientPlayerInputData { + keen::ds::ecs::InventoryTransferAction inventoryTransferAction; // Offset: 0 + keen::ds::ecs::ClientCamera camera; // Offset: 32 + keen::ds::ecs::ActionbarSelectionAction actionbarSelectionAction; // Offset: 96 + keen::ds::ecs::SortInventoryAction sortInventoryAction; // Offset: 100 + keen::ds::ecs::SelectSongAction selectSongAction; // Offset: 108 + keen::ds::ecs::InventoryStockCycleAction inventoryStockCycleAction; // Offset: 116 + keen::ds::ecs::CraftRecipeAction craftRecipeAction; // Offset: 124 + keen::ds::ecs::AutomaticTransferAction automaticTransferAction; // Offset: 136 + keen::ds::ecs::SelectCraftingStationRecipeAction selectCraftingStationRecipeAction; // Offset: 152 + keen::ds::ecs::ChangeCustomizationAction changeCustomizationAction; // Offset: 164 + keen::ds::ecs::TeleportAction teleportAction; // Offset: 180 + keen::ds::ecs::UnlockSkillAction unlockSkillAction; // Offset: 188 + keen::ds::ecs::TriggerKnowledgeAction triggerKnowledgeAction; // Offset: 196 + keen::ds::ecs::SetPersonalProgressionAction setPersonalProgressionAction; // Offset: 208 + keen::ds::ecs::SelectDialogOptionAction selectDialogOptionAction; // Offset: 212 + keen::ds::ecs::NpcInputAction npcInputAction; // Offset: 224 + keen::ds::ecs::ChangeEquipmentAction changeEquipmentAction; // Offset: 236 + keen::ds::ecs::SwapEquipmentSetAction swapEquipmentSetAction; // Offset: 248 + keen::ds::ecs::ConsumeItemAction consumeItemAction; // Offset: 256 + keen::ds::ecs::InspectItemAction inspectItemAction; // Offset: 268 + keen::ds::ecs::RepairAllItemsAction repairAllItemsAction; // Offset: 280 + keen::ds::ecs::CreateBuildingItemAction createBuildingItemAction; // Offset: 284 + keen::ds::ecs::CreateNpcItemAction createNpcItemAction; // Offset: 292 + keen::ds::ecs::PerkUnlockAction perkUnlockAction; // Offset: 300 + keen::ds::ecs::TrashItemAction trashItemAction; // Offset: 312 + keen::ds::ecs::FlameAltarAction flameAltarAction; // Offset: 324 + keen::ds::ecs::WaypointAction waypointAction; // Offset: 336 + keen::ds::ecs::ParryAction parryAction; // Offset: 368 + keen::ds::ecs::KickPlayerAction kickPlayerAction; // Offset: 388 + keen::ds::ecs::TwitchDropRewardAction twitchDropRewardAction; // Offset: 396 + keen::Vector2 movementStick; // Offset: 408 + keen::ds::ecs::ContextualVector2 cameraRotationInput; // Offset: 416 + keen::sint16 buildingRotation; // Offset: 428 + keen::uint8 buildingDistance; // Offset: 430 + keen::ds::ecs::ClientPlayerStateMask mask; // Offset: 431 + keen::ds::ecs::PlayerDigitalInput digitalInput; // Offset: 432 + keen::Time respawnActionHoldDuration; // Offset: 440 + keen::Time debugEventTime; // Offset: 448 + keen::Time debugUpdateTime; // Offset: 456 +}; + +struct ecs.AdminClientPlayerInputData { + keen::ds::ecs::AdminInventoryCreateAction adminInventoryCreateAction; // Offset: 0 + keen::ds::ecs::AdminSpawnCommand adminSpawnCommand; // Offset: 16 + keen::ds::ecs::AdminKillFactionCommand adminKillFaction; // Offset: 44 + keen::ds::ecs::AdminTeleportAction adminTeleport; // Offset: 52 + keen::ds::ecs::AdminApplyInventoryCommand adminApplyInventory; // Offset: 84 + keen::ds::ecs::AdminSetDayTimeAction adminSetDaytime; // Offset: 112 + keen::ds::ecs::AdminDestroyItemAction adminDestroyItemAction; // Offset: 136 + keen::ds::ecs::AdminSetFlameLevel adminSetFlameLevel; // Offset: 148 + keen::ds::ecs::AdminSetCharacterLevel adminSetCharacterLevel; // Offset: 152 + keen::ds::ecs::AdminPerkAction adminPerkAction; // Offset: 164 + keen::ds::ecs::AdminDebugCameraDisplayAction adminDebugCameraDisplayAction; // Offset: 180 + keen::ds::ecs::AdminUnlearnSkillAction adminUnlearnSkillAction; // Offset: 184 + keen::ds::ecs::AdminChangeGameSettingsAction adminChangeGameSettingsAction; // Offset: 192 +}; + +typedef keen::ecs::DoubleInputBindings ecs.DoubleInputBindings; + +typedef keen::ecs::DoubleInputBindingsMask ecs.DoubleInputBindingsMask; + +struct ecs.ClientPlayerInputHistoryEntry { + keen::uint32 frameTick; // Offset: 0 + keen::ds::ecs::ClientPlayerInputData data; // Offset: 8 +}; + +typedef keen::ecs::PlayerSettingFlags ecs.PlayerSettingFlags; + +typedef keen::ecs::PlayerSettingMask ecs.PlayerSettingMask; + +struct ecs.ClientPlayerSettings { + keen::ds::AttackDirectionInput attackDirectionInput; // Offset: 0 + keen::ds::ecs::PlayerSettingMask flags; // Offset: 1 +}; + +struct ecs.ClientPlayerInputToggleConfig { + keen::ds::ecs::PlayerDigitalInput configuredAsToggle; // Offset: 0 +}; + +struct ecs.ClientPlayerInput { + keen::ds::ecs::ClientPlayerInputData data; // Offset: 0 + keen::ds::ecs::AdminClientPlayerInputData adminCommands; // Offset: 464 + keen::ds::ecs::ClientPlayerInputToggleConfig toggleConfig; // Offset: 792 + keen::ds::ecs::DoubleInputBindingsMask doubleInputBindings; // Offset: 800 + keen::ds::InputMode inputMode; // Offset: 801 + keen::ds::ecs::ClientOnlyPlayerInput clientOnlyPlayerInput; // Offset: 802 + keen::ds::ecs::UiPlayerInput uiPlayerInput; // Offset: 808 +}; + +struct ecs.PlayerInput { + keen::Time serverTime; // Offset: 0 + keen::ds::ecs::ClientPlayerInputData fromClient; // Offset: 8 + keen::ds::ecs::AdminClientPlayerInputData fromAdminClient; // Offset: 472 + keen::ds::ecs::ClientPlayerInputToggleConfig fromClientToggleConfig; // Offset: 800 + keen::ds::ecs::DoubleInputBindingsMask fromClientDoubleInputBindings; // Offset: 808 + keen::ds::InputMode fromClientInputMode; // Offset: 809 + keen::ds::ecs::ClientPlayerSettings fromClientSettings; // Offset: 810 + keen::bool fromClientIsReadyForGameplay; // Offset: 812 +}; + +struct ecs.ServerInputConsumer { + keen::ds::ecs::PlayerDigitalInput consumedInputs; // Offset: 0 + keen::ds::ecs::PlayerDigitalInput logicalStates; // Offset: 8 + keen::ds::ecs::PlayerDigitalInput totalPreviousInputs; // Offset: 16 +}; + +struct ecs.ServerConsumedPlayerInput { + keen::ds::ecs::ServerInputConsumer inputConsumer; // Offset: 0 + keen::ds::VersionedData consumedInventoryTransferAction; // Offset: 24 + keen::ds::VersionedData consumedSortInventoryAction; // Offset: 26 + keen::ds::VersionedData consumedSelectSongAction; // Offset: 28 + keen::ds::VersionedData consumedCreateBuildingItemAction; // Offset: 30 + keen::ds::VersionedData consumedCreateNpcItemAction; // Offset: 32 + keen::ds::VersionedData consumedActionbarSelectionAction; // Offset: 34 + keen::ds::VersionedData consumedInventoryStockCycleAction; // Offset: 36 + keen::ds::VersionedData consumedCraftRecipeAction; // Offset: 38 + keen::ds::VersionedData consumedAutomaticTransferAction; // Offset: 40 + keen::ds::VersionedData consumedSelectCraftingStationRecipeAction; // Offset: 42 + keen::ds::VersionedData consumedChangeCustomizationAction; // Offset: 44 + keen::ds::VersionedData consumedTeleportAction; // Offset: 46 + keen::ds::VersionedData consumedUnlockSkillAction; // Offset: 48 + keen::ds::VersionedData consumedTriggerKnowledgeAction; // Offset: 50 + keen::ds::VersionedData consumedSetPersonalProgressionAction; // Offset: 52 + keen::ds::VersionedData consumedWaypointAction; // Offset: 54 + keen::ds::VersionedData consumedSelectDialogOptionAction; // Offset: 56 + keen::ds::VersionedData consumedNpcInputAction; // Offset: 58 + keen::ds::VersionedData consumedChangeEquipmentAction; // Offset: 60 + keen::ds::VersionedData consumedSwapEquipmentSetAction; // Offset: 62 + keen::ds::VersionedData consumedConsumeItemAction; // Offset: 64 + keen::ds::VersionedData consumedInspectItemAction; // Offset: 66 + keen::ds::VersionedData consumedRepairAllItemsActionn; // Offset: 68 + keen::ds::VersionedData consumedPerkUnlockAction; // Offset: 70 + keen::ds::VersionedData consumedTrashItemAction; // Offset: 72 + keen::ds::VersionedData consumedFlameAltarAction; // Offset: 74 + keen::ds::VersionedData consumedParryAction; // Offset: 76 + keen::ds::VersionedData consumedKickPlayerAction; // Offset: 78 + keen::ds::VersionedData consumedtwitchDropAction; // Offset: 80 + keen::ds::VersionedData consumedAdminInventoryCreateAction; // Offset: 82 + keen::ds::VersionedData consumedAdminSpawnAction; // Offset: 84 + keen::ds::VersionedData consumedAdminKillFactionAction; // Offset: 86 + keen::ds::VersionedData consumedAdminTeleport; // Offset: 88 + keen::ds::VersionedData consumedAdminApplyInventory; // Offset: 90 + keen::ds::VersionedData consumedAdminSetDaytime; // Offset: 92 + keen::ds::VersionedData consumedAdminDestroyItemAction; // Offset: 94 + keen::ds::VersionedData consumedAdminSetFlameLevel; // Offset: 96 + keen::ds::VersionedData consumedAdminSetCharacterLevel; // Offset: 98 + keen::ds::VersionedData consumedAdminPerkAction; // Offset: 100 + keen::ds::VersionedData consumedAdminDebugCameraDisplayAction; // Offset: 102 + keen::ds::VersionedData consumedAdminUnlearnSkillAction; // Offset: 104 + keen::ds::VersionedData consumedAdminChangeGameSettingsAction; // Offset: 106 +}; + +struct ecs.InputRepeater { + keen::bool isAfterFirstRepetition; // Offset: 0 + keen::Time nextRepeatTime; // Offset: 8 +}; + +typedef keen::ecs::ClientOnlyPlayerInputRepeater ecs.ClientOnlyPlayerInputRepeater; + +typedef keen::ecs::ClientOnlyPlayerDigitalInput ecs.ClientOnlyPlayerDigitalInput; + +struct ecs.ClientInputConsumer { + keen::ds::ecs::ClientOnlyPlayerDigitalInput consumedInputs; // Offset: 0 + keen::ds::ecs::ClientOnlyPlayerDigitalInput logicalStates; // Offset: 8 + keen::ds::ecs::ClientOnlyPlayerInputRepeater inputRepeaters; // Offset: 16 +}; + +struct ecs.PlayerTestInput { + keen::ds::ecs::PlayerDigitalInput digitalInput; // Offset: 0 + keen::Vector2 movementStick; // Offset: 8 + keen::float3 cameraDirection; // Offset: 16 +}; + +typedef keen::ranged_weapon::State ranged_weapon.State; + +struct ranged_weapon.Input { + keen::bool aim; // Offset: 0 + keen::bool charge; // Offset: 1 + keen::bool fire; // Offset: 2 +}; + +struct ranged_weapon.WeaponParameters { + keen::Time chargeDuration; // Offset: 0 + keen::Time fireDuration; // Offset: 8 + keen::bool isChanneling; // Offset: 16 + keen::bool doesNeedAmmunition; // Offset: 17 + keen::bool canQueueFireBeforeFullyCharged; // Offset: 18 + keen::bool restartChargeOnAmmunitionSwitch; // Offset: 19 +}; + +struct ranged_weapon.StateMachine { + keen::ds::ranged_weapon::State currentState; // Offset: 0 + keen::Time stateStartTime; // Offset: 8 + keen::ds::ranged_weapon::Input previousInput; // Offset: 16 + keen::ds::ranged_weapon::WeaponParameters weaponParameters; // Offset: 24 + keen::bool isInitialUpdate; // Offset: 48 + keen::bool isFireQueued; // Offset: 49 +}; + +typedef keen::ecs::PlayerInputType ecs.PlayerInputType; + +typedef keen::ResourceTypesMask ResourceTypesMask; + +struct ecs.RangedWeapon { + keen::ds::ranged_weapon::StateMachine stateMachine; // Offset: 0 + keen::ds::ecs::PlayerInputType originalTrigger; // Offset: 56 + keen::ds::ecs::PlayerInputType currentTrigger; // Offset: 57 + keen::ds::ItemInstanceInfo triggerWeaponInstance; // Offset: 60 + keen::ds::ItemInstanceInfo triggerAmmunitionInstance; // Offset: 80 + keen::ds::ResourceTypesMask missingResourceMask; // Offset: 100 + keen::Time lastMissingResourceEvent; // Offset: 104 + keen::ds::ItemId lastVisualAmmoItemId; // Offset: 112 + keen::ds::ItemId visualAmmoItemId; // Offset: 116 + keen::ds::ecs::EntityId visualAmmoEntityId; // Offset: 120 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 124 + keen::bool previousSneakState; // Offset: 125 +}; + +struct ecs.NetworkRangedWeapon { + keen::ds::ranged_weapon::State currentState; // Offset: 0 + keen::ds::ranged_weapon::WeaponParameters weaponParameters; // Offset: 8 + keen::Time stateStartTime; // Offset: 32 + keen::ds::ItemInstanceInfo weaponInstance; // Offset: 40 + keen::ds::ItemId ammunitionItemId; // Offset: 60 + keen::bool shallPlayerTurnTowardsTarget; // Offset: 64 +}; + +struct ecs.ClientRangedWeapon { + keen::ds::ranged_weapon::State previousState; // Offset: 0 + keen::bool isInitialUpdate; // Offset: 1 +}; + +struct ecs.RangedWeaponRender { +}; + +struct ecs.SpellChargeSfx { + keen::ds::SoundContainerReference buildUpChargeSfx; // Offset: 0 + keen::ds::SoundContainerReference sustainChargeSfx; // Offset: 16 + keen::bool hasHandledFullyCharged; // Offset: 32 +}; + +typedef keen::ecs::PlayerFlags ecs.PlayerFlags; + +typedef keen::ecs::PlayerStateMask ecs.PlayerStateMask; + +struct ecs.ParryProjectile { + keen::ds::ecs::EntityId projectileEntityId; // Offset: 0 + keen::ds::actor::SequenceResourceId anticipationSequenceResourceId; // Offset: 4 +}; + +struct ecs.PlayerState { + keen::ds::actor::StateMask previousActorState; // Offset: 0 + keen::Time lastSprintEndTime; // Offset: 8 + keen::Time lastBlockEndTime; // Offset: 16 + keen::Time noMovementInputDuration; // Offset: 24 + keen::Time outsideSafeZoneCountdown; // Offset: 32 + keen::float32 sprintTurnSpeedFactor; // Offset: 40 + keen::ds::ecs::PlayerStateMask playerStateMask; // Offset: 44 + keen::ds::LocaTagId dungeonZoneMapMarkerId; // Offset: 48 + keen::ds::ecs::PlayerInputType rangedWeaponArmedViaInput; // Offset: 52 + keen::ds::ecs::ParryProjectile parryProjectile; // Offset: 56 +}; + +struct ecs.PlayerTracking { + keen::Time levelUpDuration; // Offset: 0 + keen::Time playtimeDuration; // Offset: 8 +}; + +struct ecs.PlayerDebugServer { + keen::Time debugEventTime; // Offset: 0 + keen::Time clientUpdateTime; // Offset: 8 + keen::Time serverRecvTime; // Offset: 16 + keen::Time serverUpdateTime; // Offset: 24 +}; + +struct ecs.PlayerDebugClient { + keen::Time debugEventTime; // Offset: 0 + keen::Time debugEventDelta; // Offset: 8 + keen::Time debugEventMappingDelta; // Offset: 16 +}; + +struct ecs.ClientPlayerStaminaHints { + keen::Time firstSprintUtteranceDelay; // Offset: 0 + keen::Time sprintUtteranceInterval; // Offset: 8 + keen::Time nextUtterance; // Offset: 16 +}; + +struct ecs.PlayerQuestProgressionMode { + keen::bool isInPersonalProgressionMode; // Offset: 0 + keen::uint32 changeCounter; // Offset: 4 +}; + +struct ecs.PlayerPinnedRecipes { + keen::ds::RecipeId pinnedRecipe; // Offset: 0 + keen::HashKey32 questEntryId; // Offset: 4 +}; + +struct ecs.PlayerWaypoint { + keen::bool enabled; // Offset: 0 + keen::WorldPosition waypointPosition; // Offset: 8 +}; + +struct ecs.SkillState { + keen::ds::ecs::EntityId impcatEntity; // Offset: 0 + keen::bool isUnlocked; // Offset: 4 +}; + +typedef keen::ecs::SkillUnlockMask ecs.SkillUnlockMask; + +typedef keen::ecs::UnlockedSkillsMask ecs.UnlockedSkillsMask; + +struct ecs.UnlockedSkillNodes { + keen::StaticArray nodes; // Offset: 0 + keen::StaticArray activeSkillImpacts; // Offset: 1024 + keen::uint32 version; // Offset: 2048 +}; + +struct ecs.PlayerSkillsUi { + keen::ds::ecs::UnlockedSkillsMask skillUnlockMasks; // Offset: 0 +}; + +struct ecs.PlayerGroupMember { + keen::Time lastUpdateTime; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct ecs.ServerPlayerGroupMembers { + keen::StaticArray groupMembers; // Offset: 0 +}; + +struct ecs.PickingTarget { + keen::ds::ecs::QueryId rayQueryId; // Offset: 0 + keen::Time nextUpdate; // Offset: 8 +}; + +typedef keen::ecs::CursorFlag ecs.CursorFlag; + +typedef keen::ecs::CursorFlags ecs.CursorFlags; + +struct ecs.ServerCursor { + keen::ds::ecs::QueryId rayQueryId; // Offset: 0 + keen::ds::ecs::QueryId placementBlockerQueryId; // Offset: 4 + keen::StaticArray solidCollisionsQueryIds; // Offset: 8 + keen::ds::ecs::RangeQueryId enemiesQueryId; // Offset: 16 + keen::float3 pointerInfoPosition; // Offset: 20 + keen::ds::VoxelMaterialId hoveredVoxelMaterialId; // Offset: 32 + keen::WorldTransform secondaryActionTransform; // Offset: 40 + keen::float randomYawAngleOffset; // Offset: 96 + keen::Time snapToPlaneDelay; // Offset: 104 + keen::ds::ecs::EntityId hoverVoxelBlueprintOverlayEntityId; // Offset: 112 +}; + +struct ecs.ClientServerCursor { + keen::WorldTransform transform; // Offset: 0 + keen::ds::ecs::EntityId cursorEntityId; // Offset: 56 + keen::ds::ecs::EntityId hoveredEntityId; // Offset: 60 + keen::ds::ecs::EntityId selectedEntityId; // Offset: 64 + keen::ds::ecs::DismantleMethod selectedEntityDismantleMethod; // Offset: 68 + keen::bool isBlueprintSelected; // Offset: 69 + keen::bool isDismantleAllowed; // Offset: 70 + keen::float3 hoverPosition; // Offset: 72 + keen::float3 hoverNormal; // Offset: 84 + keen::ds::ItemInstanceInfo currentBuildingItemInstance; // Offset: 96 + keen::ds::ItemId previousBuildingItemId; // Offset: 116 + keen::float effectivePlacementVolume; // Offset: 120 + keen::float maxPlacementVolume; // Offset: 124 + keen::ds::ecs::CursorFlags cursorFlagsPrimary; // Offset: 128 + keen::ds::ecs::CursorFlags cursorFlagsSecondary; // Offset: 130 + keen::bool wasLastActionSecondary; // Offset: 132 + keen::bool isSnappingToBoxes; // Offset: 133 + keen::bool isNearBuildingZone; // Offset: 134 + keen::bool canUndoBuildingAction; // Offset: 135 +}; + +struct ecs.ClientCursorVfx { + keen::uint3 position; // Offset: 0 + keen::uint32 fxHandle; // Offset: 12 +}; + +struct ecs.ClientCursor { + keen::Time hoveredEntityHightlightPhase; // Offset: 0 + keen::ds::ecs::EntityId previousSelectedEntityId; // Offset: 8 + keen::Color previousSelectedEntityTintColor; // Offset: 12 + keen::ds::ItemId previousBuildingItemId; // Offset: 16 + keen::ds::HighlightColorIndex highlightColorValid; // Offset: 20 + keen::ds::HighlightColorIndex highlightColorInvalid; // Offset: 21 + keen::ds::HighlightColorIndex highlightColorMuted; // Offset: 22 + keen::StaticArray blueprintHoverVfx; // Offset: 24 +}; + +struct ecs.Terraforming { + keen::ds::ecs::RangeQueryId snappingQueryId; // Offset: 0 + keen::ds::ecs::RangeQueryId temporaryMiningQueryId; // Offset: 4 +}; + +struct ecs.VfxZone { +}; + +struct ecs.Destructible { +}; + +struct ecs.CameraShakeParams { + keen::float32 trauma; // Offset: 0 +}; + +struct ecs.NotifierComponent { + keen::ds::ecs::Offset notifierOffset; // Offset: 0 + keen::ds::NotifierReference notifier; // Offset: 40 + keen::ds::ecs::CameraShakeParams cameraShake; // Offset: 56 + keen::ds::SoundContainerReference sfx; // Offset: 60 + keen::ds::VfxReference vfx; // Offset: 76 +}; + +struct ecs.OnCreate { + keen::ds::AttachmentSlot slot; // Offset: 92 + keen::bool attach; // Offset: 93 +}; + +struct ecs.OnDestroy { + keen::float32 noiseRange; // Offset: 92 + keen::float3 hitDirection; // Offset: 96 +}; + +struct ecs.SpawnEntityOnDestroy { + keen::ds::ecs::TemplateReference spawnEntity; // Offset: 0 + keen::bool keepDespawnLink; // Offset: 16 + keen::bool triggered; // Offset: 17 +}; + +struct ecs.DestroyEntityOnParentRespawn { + keen::bool checkParent; // Offset: 0 +}; + +typedef keen::FogRemovalId FogRemovalId; + +struct ecs.FogRemovalIdComponent { + keen::ds::FogRemovalId fogRemovalId; // Offset: 0 +}; + +struct ecs.RemoveFog { +}; + +typedef keen::ecs::EasingType ecs.EasingType; + +struct ecs.Dissolve { + keen::float3 rotationOriginOffset; // Offset: 0 + keen::float32 yOffset; // Offset: 12 + keen::Time duration; // Offset: 16 + keen::float32 rotationAngle; // Offset: 24 + keen::bool calculateOffsets; // Offset: 28 + keen::ds::ecs::EasingType dissolveEasing; // Offset: 29 + keen::ds::ecs::EasingType translationEasing; // Offset: 30 + keen::ds::ecs::EasingType rotationEasing; // Offset: 31 +}; + +struct ecs.DynamicDissolve { + keen::Time startTime; // Offset: 0 + keen::ds::ecs::EntityId alignmentTarget; // Offset: 8 + keen::bool started; // Offset: 12 +}; + +struct ecs.ClientDissolve { + keen::uint32 renderModelUpdateCounter; // Offset: 0 + keen::float32 modelCenter; // Offset: 4 + keen::float32 boundingBoxHeight; // Offset: 8 + keen::float32 dissolveEdgeBrightness; // Offset: 12 +}; + +typedef keen::ecs::FadeState ecs.FadeState; + +struct ecs.Fade { + keen::Time duration; // Offset: 0 + keen::float3 dissolveMaskOffset; // Offset: 8 + keen::float32 dissolveMaskRadius; // Offset: 20 + keen::float32 dissolveEdgeBrightness; // Offset: 24 + keen::ds::ecs::FadeState initialState; // Offset: 28 +}; + +struct ecs.DynamicFade { + keen::Time startTime; // Offset: 0 + keen::ds::ecs::FadeState state; // Offset: 8 +}; + +struct ecs.ActorInput { + keen::ds::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 0 + keen::ds::actor::ActionSequenceTriggerContext triggerContext; // Offset: 8 + keen::uint8 triggerCallCounter; // Offset: 232 + keen::uint32 sequenceTriggerId; // Offset: 236 + keen::float3 desiredLocalMoveInput; // Offset: 240 + keen::float3 desiredWorldMoveInput; // Offset: 252 + keen::float3 desiredWorldLookDirection; // Offset: 264 + keen::ds::ecs::LocomotionSpeedSelector locomotionSpeed; // Offset: 276 + keen::ds::ecs::LocomotionSpeedSelector lastLocomotionSpeed; // Offset: 277 +}; + +struct ecs.FlapSetup { + keen::Time minFlapDuration; // Offset: 0 + keen::Time maxFlapDuration; // Offset: 8 + keen::Time minFlapPauseDuration; // Offset: 16 + keen::Time maxFlapPauseDuration; // Offset: 24 +}; + +struct ecs.Flying { + keen::float32 maxAcceleration; // Offset: 0 + keen::ds::actor::ActorSequenceReference startFlyingSequence; // Offset: 4 + keen::ds::actor::ActorSequenceReference stopFlyingSequence; // Offset: 20 + keen::ds::actor::ActorSequenceReference flyingSequence; // Offset: 36 + keen::ds::actor::ActorSequenceReference hoverSequence; // Offset: 52 + keen::ds::actor::ActorSequenceReference flappingSequence; // Offset: 68 + keen::ds::actor::ActorSequenceReference hitInAirSequence; // Offset: 84 + keen::ds::actor::ActorSequenceReference stuckOnGroundSequence; // Offset: 100 + keen::ds::ecs::FlapSetup flapSetup; // Offset: 120 + keen::bool useFlyAnimationHandling; // Offset: 152 + keen::bool fallOnHit; // Offset: 153 + keen::bool fallOnParryStun; // Offset: 154 + keen::bool flyAfterSpawn; // Offset: 155 +}; + +typedef keen::ecs::FlyingState ecs.FlyingState; + +struct ecs.DynamicFlying { + keen::ds::ecs::FlyingState state; // Offset: 0 + keen::Time nextCheckFlappingTime; // Offset: 8 + keen::bool isSequenceHandlingPaused; // Offset: 16 + keen::bool wasSequenceHandlingPaused; // Offset: 17 + keen::bool isFlappingAllowed; // Offset: 18 + keen::bool fallOnDeath; // Offset: 19 +}; + +struct ecs.CSPDummy { +}; + +struct ecs.SlotAttachmentBase { + keen::ds::ecs::Offset offset; // Offset: 0 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 40 + keen::ds::ecs::EntityId attachedToEntityId; // Offset: 44 +}; + +struct ecs.ServerSlotAttachment { +}; + +struct ecs.SlotAttachment { +}; + +struct ecs.Friction { + keen::bool isSliding; // Offset: 0 + keen::float32 frictionFactor; // Offset: 4 +}; + +struct ecs.RotationSpeedEntry { + keen::float32 rotationSpeed; // Offset: 0 + keen::ds::actor::InterpolationMode interpolationMode; // Offset: 4 +}; + +struct ecs.ActorRotation { + keen::ds::ecs::RotationSpeedEntry standingRotationSpeed; // Offset: 0 + keen::ds::ecs::RotationSpeedEntry movingRotationSpeed; // Offset: 8 + keen::ds::ecs::RotationSpeedEntry runningRotationSpeed; // Offset: 16 + keen::ds::ecs::RotationSpeedEntry slidingRotationSpeed; // Offset: 24 + keen::ds::ecs::RotationSpeedEntry inAirRotationSpeed; // Offset: 32 + keen::ds::ecs::RotationSpeedEntry dodgingAroundTargetRotationSpeed; // Offset: 40 + keen::ds::ecs::RotationSpeedEntry hookPullingRotationSpeed; // Offset: 48 + keen::ds::ecs::RotationSpeedEntry hookSwingingRotationSpeed; // Offset: 56 + keen::ds::ecs::RotationSpeedEntry climbingRotationSpeed; // Offset: 64 + keen::ds::ecs::RotationSpeedEntry gliderRotationSpeed; // Offset: 72 + keen::float32 minLinearAxisRotationAngle; // Offset: 80 +}; + +typedef keen::ecs::LocomotionState ecs.LocomotionState; + +typedef keen::ecs::LocomotionFlags ecs.LocomotionFlags; + +typedef keen::ecs::LocomotionMask ecs.LocomotionMask; + +struct ecs.LocomotionAccelerationConfig { + keen::float32 minTurnAngle; // Offset: 0 + keen::float32 maxWalkAcceleration; // Offset: 4 + keen::float32 maxRunAcceleration; // Offset: 8 + keen::float32 maxSprintAcceleration; // Offset: 12 + keen::float32 groundFrictionSusceptibility; // Offset: 16 +}; + +struct ecs.LocomotionSlideConfig { + keen::float32 downhillAccelerationFactor; // Offset: 0 + keen::float32 downhillAcceleration; // Offset: 4 + keen::float32 lateralAcceleration; // Offset: 8 + keen::float32 uphillAcceleration; // Offset: 12 + keen::float32 maxUphillSpeed; // Offset: 16 +}; + +struct ecs.LocomotionTurnConfig { + keen::bool useTurnSequences; // Offset: 0 + keen::Angle minTurnAngle; // Offset: 4 + keen::float32 minVelocity; // Offset: 8 + keen::Time minRequiredVelocityDuration; // Offset: 16 + keen::Time minTimeSinceRequiredVelocityWasReached; // Offset: 24 + keen::ds::actor::ActorSequenceReference leftTurnSequence; // Offset: 32 + keen::ds::actor::ActorSequenceReference rightTurnSequence; // Offset: 48 +}; + +struct ecs.LocomotionAvoidHolesConfig { + keen::bool avoidHoles; // Offset: 0 + keen::float32 checkLength; // Offset: 4 + keen::float32 minHoleDepth; // Offset: 8 +}; + +struct ecs.Locomotion { + keen::ds::ecs::LocomotionAccelerationConfig accelerationConfig; // Offset: 0 + keen::ds::ecs::LocomotionSlideConfig slideConfig; // Offset: 20 + keen::ds::ecs::LocomotionTurnConfig turnConfig; // Offset: 40 + keen::ds::ecs::LocomotionAvoidHolesConfig avoidHolesConfig; // Offset: 104 +}; + +typedef keen::ecs::JumpRuntimeType ecs.JumpRuntimeType; + +struct ecs.GliderTurbulence { + keen::float3 direction; // Offset: 0 + keen::float32 intensity; // Offset: 12 + keen::Time remainingDuration; // Offset: 16 +}; + +struct ecs.DynamicLocomotion { + keen::float3 inputVelocity; // Offset: 0 + keen::float3 floorNormal; // Offset: 12 + keen::float3 slopeNormal; // Offset: 24 + keen::ds::actor::MovementFactors movementFactors; // Offset: 36 + keen::float3 rootMotion; // Offset: 48 + keen::ds::animationgraph::RootMotionMask rootMotionMode; // Offset: 60 + keen::ds::ecs::LocomotionState state; // Offset: 61 + keen::Time lastStateSwitchTime; // Offset: 64 + keen::Time slideDetected; // Offset: 72 + keen::Time takeOffTime; // Offset: 80 + keen::Time spheroidCollisionDuration; // Offset: 88 + keen::float32 rotationSpeedFactor; // Offset: 96 + keen::bool isGliderForwardInputDeliberate; // Offset: 100 + keen::bool isNearGround; // Offset: 101 + keen::bool wasTurning; // Offset: 102 + keen::Time sprintJumpRunUpTimer; // Offset: 104 + keen::Time airwolfTimer; // Offset: 112 + keen::ds::ecs::LocomotionMask flags; // Offset: 120 + keen::bool isFastEnoughForTurn; // Offset: 121 + keen::Time speedForTurnSequenceReachedStartTime; // Offset: 128 + keen::Time speedForTurnSequenceReachedEndTime; // Offset: 136 + keen::float slideJumpAirControlSpeed; // Offset: 144 + keen::ds::actor::JumpType jumpType; // Offset: 148 + keen::uint8 jumpCount; // Offset: 149 + keen::WorldPosition previousJumpTakeOffPosition; // Offset: 152 + keen::float airControlMinVelocity; // Offset: 176 + keen::float airControlMaxVelocity; // Offset: 180 + keen::float frictionFactor; // Offset: 184 + keen::float effectiveMovementMod; // Offset: 188 + keen::float gliderUpstreamFactor; // Offset: 192 + keen::ds::ecs::GliderTurbulence gliderTurbulence; // Offset: 200 +}; + +struct ecs.NetworkLocomotion { + keen::bool hasSlideAnimations; // Offset: 0 + keen::bool hasJumpAnimations; // Offset: 1 + keen::bool hasWalkAnimations; // Offset: 2 + keen::bool hasMoveAnimation; // Offset: 3 + keen::bool leanTowardsMoveDirection; // Offset: 4 + keen::float leanFactor; // Offset: 8 + keen::float maxLeanYawAngle; // Offset: 12 + keen::float maxLeanPitchAngle; // Offset: 16 + keen::float leanFadeOutSpeedFactor; // Offset: 20 + keen::float minLeanYawInterpolationSpeed; // Offset: 24 + keen::float maxLeanYawInterpolationSpeed; // Offset: 28 + keen::float leanYawSpeedInterpolationStartAngle; // Offset: 32 + keen::float leanYawSpeedInterpolationEndAngle; // Offset: 36 + keen::float leanPitchInterpolationSpeed; // Offset: 40 + keen::float leanYawStartAngle; // Offset: 44 + keen::Angle pitchAngleOffset; // Offset: 48 +}; + +struct ecs.DynamicNetworkLocomotion { + keen::float3 floorNormal; // Offset: 0 + keen::float3 desiredWorldLookDirection; // Offset: 12 + keen::float3 desiredLeanDirection; // Offset: 24 + keen::ds::ecs::LocomotionState state; // Offset: 36 + keen::ds::ecs::LocomotionMask flags; // Offset: 37 + keen::ds::animationgraph::StateIdHash currentIdleAnimation; // Offset: 40 + keen::ds::animationgraph::StateIdHash currentWalkAnimation; // Offset: 44 + keen::float32 gliderTurbulenceScreenShakeIntensity; // Offset: 48 +}; + +struct ecs.ClientLocomotion { + keen::float32 runSpeed; // Offset: 0 + keen::float32 sprintSpeed; // Offset: 4 + keen::float32 currentLocalRollAngle; // Offset: 8 + keen::float32 currentLocalPitchAngle; // Offset: 12 + keen::float32 currentLocalYawAngle; // Offset: 16 + keen::float32 currentLeanYawAngle; // Offset: 20 + keen::float32 currentLeanPitchAngle; // Offset: 24 + keen::float32 lastAnimationInputSpeed; // Offset: 28 +}; + +struct ecs.GliderUpstreamZone { +}; + +struct ecs.JumpParameters { + keen::float32 jumpDistance; // Offset: 0 + keen::float32 jumpHeight; // Offset: 4 + keen::Quaternion launchOffset; // Offset: 8 +}; + +struct ecs.SlopeAlignment { + keen::float32 defaultLongitudinalFactor; // Offset: 0 + keen::float32 defaultLateralFactor; // Offset: 4 + keen::float32 currentLongitudinalFactor; // Offset: 8 + keen::float32 currentLateralFactor; // Offset: 12 +}; + +struct ecs.BaseActor { + keen::ds::actor::ActionSequence currentAction; // Offset: 0 + keen::ds::actor::StateMask currentState; // Offset: 2048 + keen::ds::actor::AbilityMask currentAbilityMask; // Offset: 2056 + keen::ds::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 2064 +}; + +struct ecs.ServerActionSequenceData { + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 0 + keen::ds::actor::SignalStates signalStates; // Offset: 24 + keen::ds::actor::ColliderModeData colliderModeOverride; // Offset: 152 + keen::ds::actor::RotationInterpolation rotationInterpolation; // Offset: 168 + keen::Time rotationInterpolationStartTime; // Offset: 224 + keen::Time rotationInterpolationEndTime; // Offset: 232 + keen::ds::animationgraph::StateIdHash animationStateId; // Offset: 240 + keen::ds::animationgraph::RootMotionMask animationRootMotionMask; // Offset: 244 + keen::ds::ecs::EntityId lastSpawnedEntityId; // Offset: 248 + keen::ds::ecs::EntityId stopEntityId; // Offset: 252 + keen::float3 positionLerpEnd; // Offset: 256 + keen::Time positionLerpDuration; // Offset: 272 + keen::Time positionLerpTime; // Offset: 280 + keen::Quaternion orientationLerpEnd; // Offset: 288 + keen::Time orientationLerpDuration; // Offset: 304 + keen::Time orientationLerpTime; // Offset: 312 + keen::ds::actor::MovementFactors movementFactors; // Offset: 320 + keen::ds::actor::MovementFactors movementFactorsLerpStart; // Offset: 332 + keen::ds::actor::MovementFactors movementFactorsLerpEnd; // Offset: 344 + keen::Time movementFactorsLerpDuration; // Offset: 360 + keen::Time movementFactorsLerpTime; // Offset: 368 + keen::float32 rotationSpeedFactor; // Offset: 376 + keen::float32 rotationFactorLerpStart; // Offset: 380 + keen::float32 rotationFactorLerpEnd; // Offset: 384 + keen::Time rotationFactorLerpDuration; // Offset: 392 + keen::Time rotationFactorLerpTime; // Offset: 400 + keen::float32 gravityModifier; // Offset: 408 + keen::bool isGravityModified; // Offset: 412 +}; + +struct ecs.Actor { + keen::ds::ecs::ServerActionSequenceData currentServerAction; // Offset: 2088 + keen::ds::actor::ActorSequenceReference deathSequence; // Offset: 2504 + keen::bool deathSequenceWaitsForGroundedState; // Offset: 2520 + keen::bool defaultVisibleState; // Offset: 2521 + keen::bool sendDeathEvent; // Offset: 2522 + keen::ds::actor::SequenceResourceId deathSequenceId; // Offset: 2524 + keen::ds::ecs::ColliderMode currentColliderMode; // Offset: 2528 + keen::ds::actor::RotationInterpolation rotationInterpolation; // Offset: 2532 +}; + +struct ecs.DisableColliderModeChanges { +}; + +struct ecs.NetworkActor { + keen::ds::actor::SequenceRuntimeId sequenceRuntimeId; // Offset: 0 + keen::ds::actor::AbilityMask currentAbilityMask; // Offset: 24 + keen::ds::actor::StateMask currentState; // Offset: 32 + keen::ds::ecs::EntityId interactionHostId; // Offset: 40 + keen::StaticArray currentActionEntityTags; // Offset: 44 + keen::ds::ItemId usedItemId; // Offset: 108 + keen::ds::actor::ActionSequenceState currentActionState; // Offset: 112 +}; + +struct ecs.ClientActor { + keen::ds::actor::SequenceRuntimeId lastReceivedSequenceRuntimeId; // Offset: 2088 +}; + +struct ecs.SimpleActorInput { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 0 + keen::ds::ItemReference usedItem; // Offset: 16 + keen::bool loop; // Offset: 32 +}; + +struct ecs.SimpleToggleActor { + keen::ds::ecs::SimpleActorInput on; // Offset: 0 + keen::ds::ecs::SimpleActorInput off; // Offset: 36 +}; + +struct ecs.DynamicSimpleToggleActor { + keen::Time triggerTime; // Offset: 0 +}; + +typedef keen::ecs::TrapState ecs.TrapState; + +typedef keen::impact::AttackCategoryMask impact.AttackCategoryMask; + +struct ecs.SimpleTrapActor { + keen::ds::ecs::SimpleActorInput onTriggerEnter; // Offset: 0 + keen::ds::ecs::SimpleActorInput onTriggerLeave; // Offset: 36 + keen::ds::ecs::SimpleActorInput onArm; // Offset: 72 + keen::ds::ecs::SimpleActorInput onDisarm; // Offset: 108 + keen::Time triggerCooldownTime; // Offset: 144 + keen::bool triggerOnHit; // Offset: 152 + keen::ds::impact::AttackCategoryMask disabledDamageTypes; // Offset: 153 + keen::ds::animationgraph::StateIdReference idleArmedAnimation; // Offset: 156 + keen::ds::animationgraph::StateIdReference idleDisarmedAnimation; // Offset: 172 +}; + +struct ecs.DynamicSimpleTrapActor { + keen::Time lastArmedTime; // Offset: 0 + keen::ds::ecs::TrapState state; // Offset: 8 +}; + +struct ecs.TeleportZone { + keen::ds::ecs::EntityTagReference zoneTag; // Offset: 0 +}; + +struct ecs.TeleportZoneConnection { + keen::ds::LocaTagId teleporterId; // Offset: 0 + keen::ds::LocaTagId targetTeleporterId; // Offset: 4 +}; + +struct ecs.Teleport { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ds::ecs::EntityId targetEntityId; // Offset: 56 + keen::bool applied; // Offset: 60 + keen::bool searchBestSpawnPosition; // Offset: 61 +}; + +struct ecs.FallDamage { + keen::float32 fallDamageStartDistance; // Offset: 0 + keen::float32 fallDamageLethalDistance; // Offset: 4 + keen::ds::actor::ActorSequenceReference fallDamageSequence; // Offset: 8 +}; + +struct ecs.DynamicFallDamage { + keen::bool wasFalling; // Offset: 0 + keen::bool resetFallAltitudeOnApex; // Offset: 1 + keen::float32 fallStartAltitude; // Offset: 4 + keen::float32 detectedFallDistance; // Offset: 8 + keen::float32 detectedFallDamagePercentage; // Offset: 12 +}; + +struct ecs.ServerCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::ds::CameraId lockedCameraId; // Offset: 1 + keen::Time unlockTime; // Offset: 8 + keen::ds::CameraOverride cameraOverride; // Offset: 16 + keen::Time overrideEndTime; // Offset: 24 +}; + +struct ecs.NetworkCameraControl { + keen::bool isCameraIdLocked; // Offset: 0 + keen::ds::CameraId lockedCameraId; // Offset: 1 + keen::ds::CameraOverride cameraOverride; // Offset: 2 +}; + +struct ecs.ClientCameraControl { + keen::ds::CameraId activeCameraId; // Offset: 0 + keen::float32 idleCameraTriggerDelay; // Offset: 4 + keen::float32 buildingCameraSwitchDelay; // Offset: 8 + keen::float32 hipfireCameraSwitchDelay; // Offset: 12 + keen::WorldPosition entityCameraPosition; // Offset: 16 + keen::Quaternion entityCameraOrientation; // Offset: 40 +}; + +typedef keen::ecs::LockedTargetFlags ecs.LockedTargetFlags; + +struct ecs.TargetSelector { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 range; // Offset: 4 + keen::Time time; // Offset: 8 +}; + +typedef keen::ecs::TargetImportance ecs.TargetImportance; + +struct ecs.TargetInfo { + keen::WorldTransform targetTransform; // Offset: 0 + keen::ds::ecs::Offset targetingOffset; // Offset: 56 + keen::ds::ecs::EntityId targetId; // Offset: 96 + keen::ds::ecs::TargetImportance targetImportance; // Offset: 100 + keen::ds::ecs::ColliderId colliderId; // Offset: 104 + keen::uint16 changeCounter; // Offset: 112 + keen::Bitmask8 flags; // Offset: 114 +}; + +struct ecs.SelectedTargets { + keen::StaticArray targets; // Offset: 0 + keen::ds::actor::SequenceResourceId interactionSequencePredictionHelper; // Offset: 1920 +}; + +struct ecs.NetworkSelectedTargets { + keen::StaticArray targetIds; // Offset: 0 + keen::bool combatTargetSupportsHardLock; // Offset: 64 +}; + +struct ecs.ParentTargets { +}; + +struct ecs.ServerTarget { + keen::bool hardLockTarget; // Offset: 0 + keen::ds::ecs::TargetImportance targetImportance; // Offset: 1 +}; + +struct ecs.HardLockTarget { +}; + +struct ecs.ClearPathToTarget { + keen::float32 yOffset; // Offset: 0 + keen::ds::ecs::QueryId queryId; // Offset: 4 + keen::bool hasHitSolidCollider; // Offset: 8 + keen::bool hasHitSteeringCollider; // Offset: 9 +}; + +struct ecs.Loot { + keen::ds::ItemId itemId; // Offset: 0 + keen::bool awaitingDestroy; // Offset: 4 +}; + +struct ecs.Orb { + keen::ds::NotifierReference pickupNotifier; // Offset: 0 + keen::ds::ecs::TemplateReference pickupTemplate; // Offset: 16 + keen::ds::ImpactProgramReference program; // Offset: 32 + keen::bool awaitingDestroy; // Offset: 48 + keen::ds::SoundContainerReference sfx; // Offset: 52 + keen::ds::VfxReference vfx; // Offset: 68 +}; + +struct ecs.SceneLootNodeId { + keen::ds::LootContainerId id; // Offset: 0 +}; + +struct ecs.RandomLoot { + keen::ObjectReference defaultLabels; // Offset: 0 +}; + +struct ecs.RandomLootProbability { + keen::float32 spawnProbability; // Offset: 0 +}; + +struct ecs.RandomLootSlotCount { + keen::uint8 slotsMin; // Offset: 0 + keen::uint8 slotsMax; // Offset: 1 +}; + +struct ecs.RandomLootContainer { + keen::uint32 spawnedLootVersion; // Offset: 0 + keen::ds::LootContainerId parentNodeId; // Offset: 4 + keen::ds::LootContainerId defaultLabelsId; // Offset: 8 +}; + +struct ecs.RandomLootPlayerScale { + keen::uint8 playerCount; // Offset: 0 +}; + +struct ecs.RandomLootLock { +}; + +struct ecs.PickupLootSlot { + keen::ds::ecs::TemplateReference genericPickupItem; // Offset: 0 + keen::ds::ecs::EntityId spawnedPickupEntity; // Offset: 16 +}; + +struct ecs.RandomLootInventory { +}; + +struct ecs.RandomLootOnDestroy { + keen::bool triggered; // Offset: 0 +}; + +struct ecs.DisableRandomLootOnDestroy { +}; + +struct ecs.RandomLootEntitySpawner { + keen::ds::ecs::TemplateReference lootEntity; // Offset: 0 + keen::ds::ecs::EntityId spawnedEntityId; // Offset: 16 +}; + +struct ecs.LocaTagComponent { + keen::ds::LocaTagReference locaTag; // Offset: 0 +}; + +struct LocaTag { + keen::ds::string keenglish; // Offset: 0 + keen::ds::string description; // Offset: 40 +}; + +typedef keen::ds::LocaTag ecs.MapMarkerLocaTag; + +typedef keen::ObjectReference MapMarkerTypeReference; + +struct ecs.MapMarker { + keen::ds::LocaTagReference markerId; // Offset: 0 + keen::ds::MapMarkerTypeReference markerType; // Offset: 16 + keen::float rangeScale; // Offset: 32 +}; + +typedef keen::ecs::MapMarkerVisibilityType ecs.MapMarkerVisibilityType; + +typedef keen::ecs::MapMarkerVisibilityStateMask ecs.MapMarkerVisibilityStateMask; + +struct ecs.MapMarkerVisibilityState { + keen::ds::ecs::MapMarkerVisibilityType visibility; // Offset: 0 + keen::Time lastChange; // Offset: 8 + keen::uint16 knowledgeChangeCounter; // Offset: 16 +}; + +struct ecs.MapMarkerToggleState { + keen::ds::ecs::MapMarkerVisibilityStateMask visibilityMap; // Offset: 0 +}; + +struct ecs.Location { + keen::ds::ecs::LocalPlayerMask isInLocation; // Offset: 0 +}; + +struct ecs.IsPlayerInRange { + keen::bool onlyPlayer; // Offset: 0 + keen::ds::actor::StateMask ignoreStates; // Offset: 8 + keen::Time updateDelay; // Offset: 16 + keen::float32 deactivateRange; // Offset: 24 + keen::float32 minRange; // Offset: 28 +}; + +struct ecs.DynamicIsPlayerInRange { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::ds::ecs::EntityId closestActorId; // Offset: 4 + keen::Time startTime; // Offset: 8 +}; + +typedef keen::ecs::ToggleType ecs.ToggleType; + +typedef keen::ecs::ToggleMask ecs.ToggleMask; + +struct ecs.ToggleInShape { + keen::ds::ecs::ToggleMask ignoreState; // Offset: 0 +}; + +struct ecs.InertialFrame { + keen::float3 velocity; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SlopeDefinition { + keen::Angle steepFloorAngle; // Offset: 0 + keen::Angle slidingAngle; // Offset: 4 + keen::Angle fallDamageAngle; // Offset: 8 + keen::Angle slidingMaterialMinAngle; // Offset: 12 +}; + +struct ecs.SlopeConfig { + keen::ds::SlopeDefinition slopeDefinition; // Offset: 0 + keen::ObjectReference slopeDefinitionObject; // Offset: 16 +}; + +typedef keen::ecs::HookShotType ecs.HookShotType; + +struct ecs.PlayerFx { + keen::ds::ecs::EntityId fxEntityId; // Offset: 0 + keen::ds::ecs::EntityId attachEntityId; // Offset: 4 +}; + +struct ecs.PlayerFxSpawner { + keen::ds::ecs::PlayerFx hookShotTargetFx; // Offset: 0 + keen::ds::ecs::PlayerFx hookShotRopeFx; // Offset: 8 + keen::ds::ecs::PlayerFx gliderUpstreamFx; // Offset: 16 +}; + +typedef keen::ecs::HookShotState ecs.HookShotState; + +struct ecs.HookShot { + keen::ds::ecs::EntityId triggerAnchorEntityId; // Offset: 0 + keen::Time triggerTime; // Offset: 8 + keen::ds::actor::ActionSequenceTrigger sequenceTrigger; // Offset: 16 + keen::ds::ItemInstanceInfo triggerItemInstance; // Offset: 20 + keen::ds::ecs::HookShotType hookShotType; // Offset: 40 + keen::ds::ecs::HookShotState hookShotState; // Offset: 41 + keen::ds::actor::SequenceResourceId sequenceResourceId; // Offset: 44 + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 48 + keen::ds::ecs::EntityId anchorEntityId; // Offset: 72 + keen::WorldPosition anchorPosition; // Offset: 80 + keen::float3 hookPullActorTargetOffset; // Offset: 104 + keen::float3 hookPullAnchorNormal; // Offset: 116 + keen::float3 hookPullOriginalVelocity; // Offset: 128 + keen::float3 hookSwingOriginalHorizontalDirection; // Offset: 140 + keen::Time hookSwingEndTime; // Offset: 152 + keen::float32 hookSwingRopeLength; // Offset: 160 + keen::bool isEnemyHookAnchor; // Offset: 164 + keen::bool useHookShotCamera; // Offset: 165 + keen::bool hasTouchedGroundAfterHook; // Offset: 166 +}; + +struct ecs.ClientHookShot { + keen::Time triggerTime; // Offset: 0 + keen::WorldPosition anchorPosition; // Offset: 8 + keen::bool useHookShotCamera; // Offset: 32 + keen::ds::ecs::HookShotType hookShotType; // Offset: 33 +}; + +struct ecs.HookShotDiscoverMemory { + keen::StaticArray entityIds; // Offset: 0 + keen::uint16 discoveredMask; // Offset: 64 +}; + +struct ecs.HookShotInteractionOffer { + keen::WorldTransform targetTransform; // Offset: 0 + keen::float3 actorTargetOffset; // Offset: 56 + keen::uint32 anchorEntityLevel; // Offset: 68 + keen::ds::ecs::HookShotType hookShotType; // Offset: 72 + keen::uint8 index; // Offset: 73 + keen::bool hasPriority; // Offset: 74 +}; + +struct ecs.HookShotTargeting { + keen::ds::ecs::HookShotInteractionOffer bestInteractionOffer; // Offset: 0 + keen::ds::ecs::HookShotDiscoverMemory discoverMemory; // Offset: 80 +}; + +struct ecs.HookShotAnchor { + keen::ds::ecs::HookShotType hookShotType; // Offset: 0 + keen::float3 targetOffset; // Offset: 4 +}; + +struct ecs.HookShotAnchorSubEntity { + keen::ds::ecs::TemplateReference anchorEntityTemplate; // Offset: 0 + keen::ds::ecs::Offset attachmentOffset; // Offset: 16 +}; + +struct ecs.HookPullImpulse { + keen::ds::ecs::ImpulseData impulseData; // Offset: 0 + keen::ds::ecs::EntityId pullingEntityId; // Offset: 32 +}; + +typedef keen::ecs::ClimbType ecs.ClimbType; + +typedef keen::ecs::ClimbState ecs.ClimbState; + +typedef keen::ecs::LadderQueryType ecs.LadderQueryType; + +struct ecs.LadderQuery { + keen::ds::ecs::QueryId queryId; // Offset: 0 + keen::bool isValid; // Offset: 4 + keen::bool enable; // Offset: 5 +}; + +struct ecs.Climb { + keen::ds::ecs::ClimbType climbType; // Offset: 0 + keen::ds::ecs::ClimbState climbState; // Offset: 1 + keen::float3 climbNormal; // Offset: 4 + keen::Time climbBlockingTimeEnd; // Offset: 16 + keen::StaticArray ladderCollisionQueries; // Offset: 24 + keen::ds::ecs::EntityId ladderEntityId; // Offset: 48 + keen::ds::ecs::RangeQueryId laddersQueryId; // Offset: 52 + keen::bool ladderStepPhase; // Offset: 56 +}; + +struct ecs.Ladder { + keen::float3 topOffset; // Offset: 0 + keen::float3 bottomOffset; // Offset: 12 + keen::float3 normal; // Offset: 24 +}; + +struct ecs.LerpTransformData { + keen::ds::ecs::LerpTransformTarget target; // Offset: 0 + keen::Time localTime; // Offset: 8 + keen::Time duration; // Offset: 16 +}; + +struct ecs.LerpTransform { + keen::StaticArray targetTransforms; // Offset: 0 + keen::ds::ecs::LerpTransformData positionLerpData; // Offset: 168 + keen::ds::ecs::LerpTransformData orientationLerpData; // Offset: 192 +}; + +struct ecs.BasicSpawnerComponent { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct ecs.TriggerSpawner { + keen::bool isTriggered; // Offset: 16 + keen::ds::ecs::EntityId spawnedEntityId; // Offset: 20 + keen::Time spawnTimeout; // Offset: 24 + keen::Time nextAllowedSpawnTime; // Offset: 32 +}; + +struct ecs.TriggerBoxMultiSpawner { + keen::bool linkDestroyToEventSender; // Offset: 16 + keen::bool randomizeOrientation; // Offset: 17 + keen::Time lastTriggerTime; // Offset: 24 + keen::float32 minDistanceToEventSender; // Offset: 32 +}; + +typedef keen::ecs::SpawnTarget ecs.SpawnTarget; + +typedef keen::ecs::SpawnMode ecs.SpawnMode; + +typedef keen::ecs::SpawnOrientationMode ecs.SpawnOrientationMode; + +typedef keen::ecs::SpawnCondition ecs.SpawnCondition; + +typedef keen::ecs::SpawnConditionFlags ecs.SpawnConditionFlags; + +struct ecs.SpawnGroupId { +}; + +struct ecs.SpawnGroup { + keen::ObjectReference spawnGroupId; // Offset: 0 + keen::uint8 minSpawnAmount; // Offset: 16 + keen::uint8 maxSpawnAmount; // Offset: 17 + keen::float weight; // Offset: 20 +}; + +struct ecs.SpawnerEntry { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 + keen::ObjectReference spawnGroupId; // Offset: 16 + keen::ds::ecs::SpawnConditionFlags spawnConditions; // Offset: 32 + keen::float weight; // Offset: 36 +}; + +struct ecs.SpawnPositionSettings { + keen::float horizontalSearchDistance; // Offset: 0 + keen::float verticalSearchDistance; // Offset: 4 + keen::float minHorizontalSpace; // Offset: 8 + keen::float minVerticalSpace; // Offset: 12 + keen::ds::ecs::PathNodeRequirements nodeRequirements; // Offset: 16 + keen::ds::ecs::PathGridType pathGridType; // Offset: 20 +}; + +struct ecs.RandomSpawner { + keen::DsArray spawnEntries; // Offset: 0 + keen::DsArray spawnGroups; // Offset: 40 + keen::float32 minSpawnRange; // Offset: 80 + keen::float32 maxSpawnRange; // Offset: 84 + keen::Time initialSpawnTimeout; // Offset: 88 + keen::Time minSpawnTimeout; // Offset: 96 + keen::Time maxSpawnTimeout; // Offset: 104 + keen::uint8 minSpawnAmount; // Offset: 112 + keen::uint8 maxSpawnAmount; // Offset: 113 + keen::Time minSpawnDelay; // Offset: 120 + keen::Time maxSpawnDelay; // Offset: 128 + keen::uint8 maxTotalSpawnCount; // Offset: 136 + keen::bool destroyOnSpawnFinished; // Offset: 137 + keen::ds::ecs::SpawnMode spawnMode; // Offset: 138 + keen::ds::ecs::SpawnTarget spawnTarget; // Offset: 139 + keen::ds::ecs::SpawnOrientationMode spawnOrientationMode; // Offset: 140 + keen::float32 minEntityDistance; // Offset: 144 + keen::float32 maxEntityDistance; // Offset: 148 + keen::float32 maxSpawnAngle; // Offset: 152 + keen::bool waitUntilEntitiesAreDestroyed; // Offset: 156 + keen::bool allowRespawn; // Offset: 157 + keen::bool useKeepAliveConditions; // Offset: 158 + keen::bool searchForGroundPosition; // Offset: 159 + keen::ds::ecs::SpawnPositionSettings spawnPositionSettings; // Offset: 160 + keen::bool spawnAsUnitGroup; // Offset: 184 + keen::bool despawnEntities; // Offset: 185 + keen::bool checkDeathState; // Offset: 186 + keen::float32 conditionalDespawnMinRange; // Offset: 188 + keen::float32 defaultDespawnMinRange; // Offset: 192 + keen::bool useUpScaling; // Offset: 196 + keen::bool useDownScaling; // Offset: 197 + keen::ds::ecs::RandomSpawnerAmount minSpawnerAmount; // Offset: 198 +}; + +struct ecs.RandomSpawnerCommand { + keen::Time spawnTime; // Offset: 0 + keen::ds::ecs::Transform transform; // Offset: 8 + keen::uint8 spawnEntryIndex; // Offset: 36 + keen::bool isAdditionalScalingCommand; // Offset: 37 +}; + +struct ecs.DynamicRandomSpawner { + keen::Time nextSpawnTime; // Offset: 0 + keen::ds::ecs::EntityId currentGroupId; // Offset: 8 + keen::StaticArray spawnedEntities; // Offset: 12 + keen::StaticArray spawnCommands; // Offset: 48 + keen::bool wasSpawnedEntityAlive; // Offset: 528 + keen::bool wasAnySpawnedEntityKilled; // Offset: 529 + keen::uint8 totalSpawnCount; // Offset: 530 + keen::uint8 spawnCommandCount; // Offset: 531 + keen::Time trySpawnDuration; // Offset: 536 +}; + +struct ecs.ConditionalDespawn { + keen::float32 conditionalDespawnMinRange; // Offset: 0 + keen::float32 defaultDespawnMinRange; // Offset: 4 + keen::ds::ecs::SpawnConditionFlags keepAliveConditions; // Offset: 8 + keen::Time nextQueryUpdateTime; // Offset: 16 +}; + +struct ecs.ClientToggleFromActorState { + keen::ds::ecs::EntityReferenceType entityReferenceType; // Offset: 0 + keen::ds::actor::StateMask setIf; // Offset: 8 + keen::ds::actor::StateMask setIfNot; // Offset: 16 +}; + +struct ecs.NetworkHealth { + keen::uint32 health; // Offset: 0 + keen::uint32 healthMax; // Offset: 4 +}; + +struct ecs.NetworkStamina { + keen::uint16 stamina; // Offset: 0 + keen::uint16 staminaMax; // Offset: 2 +}; + +struct ecs.NetworkLevel { + keen::uint16 level; // Offset: 0 +}; + +struct ecs.NetworkServerProgress { + keen::uint16 level; // Offset: 0 + keen::uint16 currentAltarCount; // Offset: 2 + keen::uint16 currentHighestAltarLevel; // Offset: 4 +}; + +struct ecs.BaseAttributesData { + keen::uint8 strength; // Offset: 0 + keen::uint8 strengthFromSkill; // Offset: 1 + keen::uint8 dexterity; // Offset: 2 + keen::uint8 dexterityFromSkill; // Offset: 3 + keen::uint8 intelligence; // Offset: 4 + keen::uint8 intelligenceFromSkill; // Offset: 5 + keen::uint8 constitution; // Offset: 6 + keen::uint8 constitutionFromSkill; // Offset: 7 + keen::uint8 endurance; // Offset: 8 + keen::uint8 enduranceFromSkill; // Offset: 9 + keen::uint8 spirit; // Offset: 10 + keen::uint8 spiritFromSkill; // Offset: 11 +}; + +struct ecs.ArmorAttributes { + keen::float32 physicalBlowthrough; // Offset: 0 + keen::float32 magicalBlowthrough; // Offset: 4 + keen::uint16 physicalArmor; // Offset: 8 + keen::uint16 cutArmor; // Offset: 10 + keen::uint16 bluntArmor; // Offset: 12 + keen::uint16 pierceArmor; // Offset: 14 + keen::uint16 magicalArmor; // Offset: 16 + keen::uint16 fireArmor; // Offset: 18 + keen::uint16 iceArmor; // Offset: 20 + keen::uint16 fogArmor; // Offset: 22 + keen::uint16 lightningArmor; // Offset: 24 +}; + +typedef keen::ecs::ReviveState ecs.ReviveState; + +struct ecs.NetworkReviveData { + keen::ds::ecs::ReviveState state; // Offset: 0 + keen::float duration; // Offset: 4 + keen::float left; // Offset: 8 +}; + +struct ecs.NetworkPlayerAttributes { + keen::ds::ecs::ArmorAttributes armorAttributes; // Offset: 0 + keen::ds::ecs::BaseAttributesData baseAttributes; // Offset: 28 + keen::ds::ecs::NetworkReviveData revivieData; // Offset: 40 + keen::float32 movementNormal; // Offset: 52 + keen::float32 movementSprint; // Offset: 56 + keen::float32 movementSneak; // Offset: 60 + keen::float32 reviveDuration; // Offset: 64 + keen::float32 reviveHealth; // Offset: 68 + keen::float32 critChance; // Offset: 72 + keen::float32 critChanceMagic; // Offset: 76 + keen::float32 critChanceMelee; // Offset: 80 + keen::float32 critChanceRanged; // Offset: 84 + keen::uint16 critDamageMod; // Offset: 88 + keen::uint16 damageMod; // Offset: 90 + keen::uint16 meleeDamageMod; // Offset: 92 + keen::uint16 rangedDamageMod; // Offset: 94 + keen::uint16 magicDamageMod; // Offset: 96 + keen::uint16 damageModSneak; // Offset: 98 + keen::uint16 damageModMerciless; // Offset: 100 + keen::uint16 damageModBackstab; // Offset: 102 + keen::uint16 damageModSkillshot; // Offset: 104 + keen::uint16 poisonSusceptibility; // Offset: 106 + keen::uint16 health; // Offset: 108 + keen::uint16 healthMax; // Offset: 110 + keen::uint16 healthReg; // Offset: 112 + keen::uint16 healthRegDelay; // Offset: 114 + keen::uint16 stamina; // Offset: 116 + keen::uint16 staminaMax; // Offset: 118 + keen::uint16 staminaReg; // Offset: 120 + keen::uint16 staminaRegDelay; // Offset: 122 + keen::uint16 mana; // Offset: 124 + keen::uint16 manaMax; // Offset: 126 + keen::uint16 manaReg; // Offset: 128 + keen::uint16 manaRegDelay; // Offset: 130 + keen::uint16 bodyHeat; // Offset: 132 + keen::uint16 bodyHeatMax; // Offset: 134 + keen::uint16 bodyHeatReg; // Offset: 136 + keen::uint16 bodyHeatRegDelay; // Offset: 138 + keen::uint16 experience; // Offset: 140 + keen::uint16 experienceRequired; // Offset: 142 + keen::uint16 fogResistance; // Offset: 144 + keen::uint16 fogResistanceMax; // Offset: 146 + keen::uint16 level; // Offset: 148 + keen::uint16 staffDamage; // Offset: 150 + keen::uint16 wandDamage; // Offset: 152 + keen::uint16 oneHandedDamage; // Offset: 154 + keen::uint16 twoHandedDamage; // Offset: 156 + keen::uint16 bowDamage; // Offset: 158 + keen::uint16 daggerDamage; // Offset: 160 + keen::uint16 throwableDamage; // Offset: 162 + keen::uint16 unarmedDamage; // Offset: 164 + keen::uint16 magicalFoeDamage; // Offset: 166 + keen::uint16 meleeFoeDamage; // Offset: 168 + keen::uint16 rangedFoeDamage; // Offset: 170 + keen::uint16 flyingFoeDamage; // Offset: 172 + keen::uint16 skeletonFoeDamage; // Offset: 174 + keen::uint16 healing; // Offset: 176 + keen::uint16 freezingResistance; // Offset: 178 + keen::uint8 comfortLevel; // Offset: 180 +}; + +typedef keen::ecs::GatherResourceType ecs.GatherResourceType; + +struct ecs.MiningNode { + keen::ds::ecs::GatherResourceType resourceType; // Offset: 0 + keen::ds::NotifierReference onResourceDepletion; // Offset: 4 + keen::ds::ecs::Offset offset; // Offset: 20 + keen::ds::SoundContainerReference sfx; // Offset: 60 + keen::ds::VfxReference vfx; // Offset: 76 + keen::uint8 aliveDropCount; // Offset: 92 + keen::uint8 numberOfDrops; // Offset: 93 +}; + +struct ecs.DynamicMiningNode { + keen::bool isInitialized; // Offset: 0 + keen::bool canBeDestroyed; // Offset: 1 + keen::uint8 remainingDropCount; // Offset: 2 +}; + +struct ecs.WiggleComponent { + keen::Time startTime; // Offset: 0 + keen::float3 rotationAxis; // Offset: 8 + keen::Time duration; // Offset: 24 + keen::float32 intensity; // Offset: 32 + keen::float32 bounciness; // Offset: 36 +}; + +struct ecs.HealthBasedScale { + keen::float32 minSize; // Offset: 0 + keen::uint8 percentage; // Offset: 4 +}; + +struct ecs.InventoryEmptyState { + keen::bool toggleVFX; // Offset: 0 + keen::bool isEmpty; // Offset: 1 +}; + +struct ecs.CopyInventoryEmptyStateFromParent { +}; + +struct ecs.TransformHistoryEntry { + keen::uint32 tick; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct ecs.TransformationHistory { + keen::StaticArray history; // Offset: 0 + keen::Time lastSampleTime; // Offset: 3840 + keen::uint32 lastIndex; // Offset: 3848 + keen::uint32 maxIndex; // Offset: 3852 +}; + +struct ecs.ServerTransformationHistory { +}; + +struct ecs.ClientTransformationHistory { +}; + +struct ecs.GameEvent { + keen::Time timeStamp; // Offset: 0 +}; + +struct ecs.BaseHitEvent { + keen::WorldTransform targetTransform; // Offset: 8 + keen::float3 volumeMin; // Offset: 64 + keen::float3 volumeMax; // Offset: 76 + keen::bool hasVolume; // Offset: 88 + keen::float32 miningDamagedVolume; // Offset: 92 + keen::float32 miningRemovedVolume; // Offset: 96 + keen::bool hasMiningVolume; // Offset: 100 + keen::ds::CollisionFeedbackMaterialReference materialA; // Offset: 104 + keen::ds::CollisionFeedbackMaterialReference materialB; // Offset: 120 + keen::float3 position; // Offset: 136 + keen::float3 normal; // Offset: 148 + keen::float3 hitDirection; // Offset: 160 + keen::ds::ecs::EntityId rootSourceId; // Offset: 172 + keen::ds::ecs::EntityId targetId; // Offset: 176 + keen::ds::ecs::HitEventFlagMask flags; // Offset: 180 +}; + +struct impact.ImpactId { + keen::uint32 id; // Offset: 0 +}; + +typedef keen::impact::PushBackForce impact.PushBackForce; + +typedef keen::WeaponCategoryId WeaponCategoryId; + +struct ecs.HitEvent { + keen::ds::ecs::EntityId rootTargetId; // Offset: 184 + keen::ds::ecs::EntityId sourceId; // Offset: 188 + keen::ds::ecs::EntityId permissionSourceId; // Offset: 192 + keen::ds::ecs::EntityId weaponPideId; // Offset: 196 + keen::ds::ecs::EntityId armorPideId; // Offset: 200 + keen::float32 hitAngle; // Offset: 204 + keen::float32 range; // Offset: 208 + keen::sint32 healthChange; // Offset: 212 + keen::sint32 staminaChange; // Offset: 216 + keen::float32 aggro; // Offset: 220 + keen::float32 noiseRange; // Offset: 224 + keen::ds::impact::ImpactId impactId; // Offset: 228 + keen::ds::impact::PushBackForce pushBackForce; // Offset: 232 + keen::ds::impact::HitReactionType hitReaction; // Offset: 234 + keen::ds::impact::MajorDirection hitDirectionConfig; // Offset: 236 + keen::ds::impact::AttackCategoryMask attackCategory; // Offset: 237 + keen::ds::WeaponCategoryId weaponCategory; // Offset: 240 + keen::ds::FactionType targetFaction; // Offset: 244 +}; + +struct ecs.HitHistory { + keen::StaticArray history; // Offset: 0 + keen::StaticArray targetTransform; // Offset: 2480 + keen::uint32 lastIndex; // Offset: 3040 + keen::uint32 maxIndex; // Offset: 3044 +}; + +struct ecs.ExperienceSource { + keen::ds::ecs::EntityId lastHitPlayerId; // Offset: 0 + keen::float xpMod; // Offset: 4 +}; + +struct ecs.FogOfWarDiscovery { + keen::float32 discoveryRange; // Offset: 0 +}; + +typedef keen::FogType FogType; + +struct ecs.EnvironmentSensor { + keen::ds::FogType fogType; // Offset: 0 + keen::ds::TemperatureVoxelType temperature; // Offset: 1 +}; + +struct ecs.ToggleAnimation { + keen::ds::animationgraph::StateIdReference animationStateOn; // Offset: 0 + keen::ds::animationgraph::StateIdReference animationStateOff; // Offset: 16 +}; + +struct ecs.ToggleOnHit { + keen::ds::impact::AttackCategoryMask disabledDamageTypes; // Offset: 0 + keen::bool canToggleOn; // Offset: 1 + keen::bool canToggleOff; // Offset: 2 +}; + +struct ecs.LinkToggleStateToSignalState { + keen::ds::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentSignalState { + keen::ds::SignalReference signal; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.LinkClientToggleStateToParentToggleState { + keen::bool targetState; // Offset: 0 +}; + +struct ecs.SendToggleStateToParentToggleState { +}; + +struct ecs.LinkToggleStateToEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.LinkToggleStateToParentEnemyPhase { + keen::ObjectReference phase; // Offset: 0 + keen::bool targetState; // Offset: 16 +}; + +struct ecs.SignalTransmitter { + keen::ds::SignalReference signal; // Offset: 0 + keen::ds::SignalId signalId; // Offset: 16 + keen::bool state; // Offset: 20 + keen::bool sendActivatedEvent; // Offset: 21 + keen::bool sendDeactivatedEvent; // Offset: 22 + keen::bool sendResultSignal; // Offset: 23 +}; + +struct ecs.SignalReceiver { + keen::ds::SignalId signalId; // Offset: 0 + keen::ds::ecs::EntityId lastSenderId; // Offset: 4 + keen::ds::SignalReference signal; // Offset: 8 +}; + +typedef keen::DelayMask DelayMask; + +struct ecs.SignalDelay { + keen::Time duration; // Offset: 0 + keen::ds::DelayMask filterMask; // Offset: 8 + keen::Time toggleTime; // Offset: 16 + keen::bool nextState; // Offset: 24 + keen::bool initialized; // Offset: 25 +}; + +struct ecs.MagicalBarrier { +}; + +struct ecs.MagicalBarrierConnection { + keen::bool initialized; // Offset: 0 + keen::ds::ecs::EntityId barrierEntityId; // Offset: 4 + keen::ds::ecs::EntityId spawnedSubentityId; // Offset: 8 + keen::ObjectReference spawnEntity; // Offset: 12 +}; + +struct ecs.LocalSignalReceiver { + keen::ds::SignalReference signal; // Offset: 0 +}; + +struct ecs.MultiSignalReceiver { + keen::bool evaluate; // Offset: 0 + keen::StaticArray calculation; // Offset: 4 + keen::StaticArray signalIds; // Offset: 132 + keen::StaticArray signalStates; // Offset: 196 + keen::bool receiveActivatedEvent; // Offset: 212 + keen::bool receiveDeactivatedEvent; // Offset: 213 + keen::bool hasEvaluatedToTrueOnce; // Offset: 214 +}; + +struct ecs.MultiSignalReceiverCounter { + keen::uint8 activeCount; // Offset: 0 + keen::uint8 requiredCount; // Offset: 1 +}; + +struct ecs.LoreReading { + keen::ds::LocaTagReference description; // Offset: 0 + keen::ds::ItemId displayedItemId; // Offset: 16 + keen::ds::LocaTagReference entryName; // Offset: 20 + keen::ds::LocaTagReference unlockMapMarker; // Offset: 36 + keen::ds::ItemReference displayedItem; // Offset: 52 +}; + +struct ecs.NonModalHint { + keen::bool hasCloseRangeActivation; // Offset: 0 + keen::float fullTextActivation; // Offset: 4 + keen::ds::LocaTagReference description; // Offset: 8 + keen::bool hasKnowledeRequirement; // Offset: 24 + keen::bool useSceneKnowledgeRequirement; // Offset: 25 + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 28 + keen::ds::KnowledgeId queryId; // Offset: 132 +}; + +struct ecs.DynamicNonModalHint { + keen::bool isActive; // Offset: 0 + keen::bool isInCloseRange; // Offset: 1 + keen::float squaredPlayerDistance; // Offset: 4 +}; + +struct ecs.TargetingTransform { + keen::ds::AttachmentSlot attachmentSlot; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 +}; + +struct ecs.UiOffsets { + keen::ds::ecs::Offset healthBarOffset; // Offset: 0 + keen::ds::ecs::Offset interactionPromptOffset; // Offset: 40 +}; + +struct ecs.Boss { +}; + +struct ecs.BossHealthBar { + keen::ds::LocaTagReference displayName; // Offset: 0 + keen::float32 maxPlayerDistance; // Offset: 16 +}; + +struct ecs.BossDisplay { + keen::ds::ecs::RangeQueryId rangeQueryId; // Offset: 0 + keen::ds::ecs::EntityId bossEntityId; // Offset: 4 + keen::bool displayHealthBar; // Offset: 8 + keen::bool isEngagedWithPlayer; // Offset: 9 + keen::ds::LocaTagId displayName; // Offset: 12 +}; + +struct ecs.BossMusicTag { + keen::ds::BossMusicType bossMusic; // Offset: 0 +}; + +struct ecs.Faction { + keen::ds::FactionType faction; // Offset: 0 +}; + +struct ecs.ControlCombatTarget { + keen::ds::ecs::EntityId targetId; // Offset: 0 + keen::ds::actor::SequenceRuntimeId attackSequenceId; // Offset: 8 +}; + +struct ecs.ItemState { + keen::ds::InventorySlotId containedInSlotId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 8 + keen::uint16 baseDamageUi; // Offset: 12 + keen::ds::ItemStateMask itemState; // Offset: 14 + keen::ds::ItemRarity itemRarityUi; // Offset: 15 + keen::uint8 itemLevelUi; // Offset: 16 + keen::uint8 durabilityRatioUi; // Offset: 17 +}; + +typedef keen::ecs::CreateItemLootState ecs.CreateItemLootState; + +struct ecs.CreateItemLoot { + keen::ds::ecs::CreateItemLootState lootCreationState; // Offset: 0 +}; + +struct ecs.ItemEquippedLifetime { +}; + +struct ecs.SpawnedCollectionItem { + keen::ds::ItemId itemId; // Offset: 0 + keen::uint32 modelHandle; // Offset: 4 +}; + +struct ecs.ItemCollectionComponent { + keen::ds::LocaTagReference uiMenuName; // Offset: 0 + keen::ds::LocaTagReference uiSlottingVerb; // Offset: 16 + keen::bool spawnCollectionModels; // Offset: 32 + keen::ObjectReference collection; // Offset: 36 + keen::ObjectReference hierarchy; // Offset: 52 + keen::ObjectReference pose; // Offset: 68 + keen::ObjectReference clothColliderReference; // Offset: 84 + keen::DsArray slots; // Offset: 104 + keen::HashKey32 poseId; // Offset: 144 +}; + +struct ecs.DynamicItemCollectionComponent { + keen::StaticArray spawnedCollectionItems; // Offset: 0 +}; + +struct ecs.TriggerCollectionCompletionKnowledge { + keen::ds::KnowledgeId completionKnowledgeId; // Offset: 0 +}; + +struct ecs.MovementSensor { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 +}; + +struct ecs.FleeSensor { + keen::float32 viewConeHalfAngle; // Offset: 0 + keen::float32 alertZoneMediumWidth; // Offset: 4 + keen::float32 originalFleeRadius; // Offset: 8 + keen::float32 fleeRadius; // Offset: 12 + keen::bool checkViewCone; // Offset: 16 + keen::bool checkBackCone; // Offset: 17 + keen::Time ignoreCalmEnemiesUntilTime; // Offset: 24 + keen::ds::ecs::AlertState alertState; // Offset: 32 + keen::ds::ecs::EntityId highestDangerEntityId; // Offset: 36 + keen::WorldPosition highestDangerPosition; // Offset: 40 + keen::bool forceUpdate; // Offset: 64 +}; + +struct ecs.FriendSensor { + keen::float32 checkRadius; // Offset: 0 + keen::StaticArray friendsInRange; // Offset: 4 +}; + +struct ecs.EnemySensor { + keen::float32 checkRadius; // Offset: 0 + keen::uint8 enemiesInRange; // Offset: 4 +}; + +struct ecs.CheckLineAboveSensor { + keen::float32 lineCheckHeightAbove; // Offset: 0 +}; + +struct ecs.SafePlayerPosition { + keen::Time minSafeDuration; // Offset: 0 + keen::float32 minFallHeight; // Offset: 8 +}; + +struct ecs.DynamicSafePlayerPosition { + keen::WorldTransform transform; // Offset: 0 + keen::Time currentSafeDuration; // Offset: 56 +}; + +struct ecs.Crafting { + keen::ObjectReference workshop; // Offset: 0 + keen::ds::WorkshopId workshopId; // Offset: 16 +}; + +struct ecs.LevelBasedModel { + keen::sint32 level; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +struct ecs.LevelBasedBuildingRange { + keen::sint32 level; // Offset: 0 + keen::float3 box; // Offset: 4 +}; + +struct ecs.UpgradableBuildingRange { +}; + +struct ecs.UpgradeData { + keen::ds::ecs::TemplateReference upgradeEntity; // Offset: 0 + keen::sint32 level; // Offset: 16 +}; + +struct ecs.Upgrade { + keen::DsArray levels; // Offset: 0 +}; + +struct ecs.DynamicUpgrade { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::sint32 spawnedLevel; // Offset: 4 +}; + +struct ecs.StoreAttributes { + keen::float32 health; // Offset: 0 + keen::float32 stamina; // Offset: 4 + keen::float32 mana; // Offset: 8 + keen::float32 bodyHeat; // Offset: 12 + keen::bool restoreAttributes; // Offset: 16 +}; + +struct ecs.GrassEffector { +}; + +struct ecs.SnappingBoxWorld { + keen::ds::ecs::AlignedBox worldBox; // Offset: 0 + keen::ds::ecs::AlignedBox snappingBox; // Offset: 24 + keen::ds::ItemId containedItemId; // Offset: 48 + keen::uint8 version; // Offset: 52 +}; + +struct ecs.SnappingBoxLocal { + keen::ds::ecs::AlignedBox localBox; // Offset: 0 + keen::ds::ItemId containedItemId; // Offset: 24 +}; + +struct ecs.TemporaryMining { + keen::int3 voxelPosition; // Offset: 0 + keen::float32 relativeHealth; // Offset: 12 +}; + +struct ecs.ClientCycleInventoryStock { + keen::uint8 inventoryStockType; // Offset: 0 + keen::bool canCycle; // Offset: 1 + keen::bool isCyclingDisabled; // Offset: 2 + keen::bool showStock; // Offset: 3 +}; + +struct ecs.ClientLineOfSightState { + keen::ds::ecs::LineOfSightState lineOfSightState; // Offset: 0 +}; + +struct UiNpcRenderingOptions { + keen::ObjectReference model; // Offset: 0 + keen::ds::animationgraph::StateIdReference defaultAnimation; // Offset: 16 + keen::ds::animationgraph::StateIdHash defaultAnimationStateId; // Offset: 32 + keen::ObjectReference animationGraph; // Offset: 36 +}; + +struct ecs.NpcSetup { + keen::ds::LocaTagReference name; // Offset: 0 + keen::bool includeInNpcRegistry; // Offset: 16 + keen::bool isCraftingAssistant; // Offset: 17 + keen::ds::LocaTagReference workshopLabel; // Offset: 20 + keen::ds::CharacterPresetReference preset; // Offset: 36 + keen::ds::GameKnowledgeRequirement unlockRequirement; // Offset: 52 + keen::ds::ItemReference placementItem; // Offset: 156 + keen::ds::UiNpcRenderingOptions uiRendering; // Offset: 172 +}; + +struct ecs.CharacterSetup { + keen::ds::Gender gender; // Offset: 0 + keen::ds::VoicePackId voicePackId; // Offset: 4 + keen::ds::CharacterPresetId presetId; // Offset: 8 + keen::ds::ItemId hair; // Offset: 12 + keen::ds::ItemId beard; // Offset: 16 + keen::ds::ColorPresetId hairColorId; // Offset: 20 + keen::ds::ColorPresetId beardColorId; // Offset: 24 + keen::ds::PaletteColorId skinColor; // Offset: 28 + keen::ds::PaletteColorId eyeBrowColor; // Offset: 32 + keen::ds::PaletteColorId eyeColor; // Offset: 36 + keen::HashKey32 versionHash; // Offset: 40 +}; + +struct ecs.NewCharacterSetup { +}; + +struct ecs.EquipmentCheck { +}; + +struct ecs.PlayerLowHealth { + keen::Time blendOutDuration; // Offset: 0 + keen::Time lastTriggerTime; // Offset: 8 +}; + +struct ecs.GroundCheck { + keen::bool groundPositionFound; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::Time nextCheckTime; // Offset: 32 +}; + +struct ecs.ProcShuffleBag { + keen::uint8 procEarlyCount; // Offset: 0 + keen::uint8 procOnTimeCount; // Offset: 1 + keen::uint8 procLateCount; // Offset: 2 + keen::sint8 nextHitCountOffset; // Offset: 3 +}; + +struct ecs.TerrainLootMemory { + keen::ds::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 volume; // Offset: 4 + keen::float32 restVolumeAfterPayout; // Offset: 8 +}; + +struct ecs.BuildingLootMemory { + keen::uint32 volume; // Offset: 0 +}; + +struct ecs.MinerSkillMemory { + keen::ds::ecs::ProcShuffleBag procShuffleBag; // Offset: 0 + keen::float32 payoutCounter; // Offset: 4 +}; + +struct ecs.TerraformingLootMemory { + keen::StaticArray terrainMemory; // Offset: 0 + keen::StaticArray buildingMemory; // Offset: 1536 + keen::ds::ecs::MinerSkillMemory minerSkillMemory; // Offset: 2048 +}; + +struct ecs.TransformToLoot { + keen::ds::ecs::Offset vfxOnSpawnOffset; // Offset: 0 + keen::ds::ecs::DefaultInventoryReference defaultInventory; // Offset: 40 + keen::ds::actor::ActorSequenceReference defaultAction; // Offset: 56 + keen::ds::LocaTagReference verbLoca; // Offset: 72 + keen::ds::VfxReference vfxOnSpawn; // Offset: 88 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::uint8 genericSlotCount; // Offset: 168 + keen::uint8 availableSlotCount; // Offset: 169 + keen::bool keepDefaultInventory; // Offset: 170 + keen::uint32 lootHealth; // Offset: 172 +}; + +struct ecs.PlayerStateIndicatorComponent { + keen::ds::SoundContainerReference soundContainerLowHealth; // Offset: 0 + keen::ds::SoundContainerReference soundContainerLowFogPower; // Offset: 16 + keen::uint32 sfxLowHealthHandle; // Offset: 32 + keen::uint32 sfxLowFogPowerHandle; // Offset: 36 +}; + +struct ecs.Pacify { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::ds::FactionMask pacifyFactions; // Offset: 4 +}; + +struct ecs.PacifiedState { + keen::bool canBePacified; // Offset: 0 + keen::bool isPacified; // Offset: 1 + keen::bool wasPacifyAborted; // Offset: 2 + keen::ds::ecs::EntityId pacifiedBy; // Offset: 4 + keen::Time pacifyEndTime; // Offset: 8 +}; + +struct ecs.CallFactionsForHelp { + keen::float32 callForHelpRange; // Offset: 0 + keen::ds::FactionMask callForHelpFactions; // Offset: 4 + keen::ds::ecs::EntityId currentGuardingEntityId; // Offset: 8 +}; + +struct ecs.DebugCameraDisplay { + keen::float3x4 transform; // Offset: 0 +}; + +struct ecs.CombatFlags { + keen::bool immune; // Offset: 0 + keen::bool propagateHits; // Offset: 1 + keen::bool handleHits; // Offset: 2 + keen::bool canBlock; // Offset: 3 + keen::bool ignoreMagic; // Offset: 4 + keen::bool ignoreMelee; // Offset: 5 + keen::bool ignoreRanged; // Offset: 6 + keen::bool ignoreTool; // Offset: 7 + keen::bool ignoreOther; // Offset: 8 + keen::bool ignoreAoE; // Offset: 9 + keen::bool canBeBackstabbed; // Offset: 10 +}; + +struct ecs.ToggleImmunity { + keen::ds::ecs::ToggleModifier toggleModifier; // Offset: 0 +}; + +struct ecs.RandomOrientation { + keen::ds::actor::RandomOrientationOffset randomOrientationOffset; // Offset: 0 + keen::bool needsTargetEntity; // Offset: 24 + keen::bool adjustVelocity; // Offset: 25 +}; + +struct ecs.RandomDurationScale { + keen::float min; // Offset: 0 + keen::float max; // Offset: 4 +}; + +struct ecs.Growth { + keen::Time minDuration; // Offset: 0 + keen::ds::ecs::RandomDurationScale randomDurationScale; // Offset: 8 + keen::DsArray allowedSoil; // Offset: 16 +}; + +struct ecs.GrowthHint { +}; + +struct ecs.DynamicGrowth { + keen::Time nextLevelTime; // Offset: 0 +}; + +struct ecs.EntityTagContainer { + keen::DsArray tags; // Offset: 0 +}; + +struct ecs.CombatStance { + keen::Time combatStanceDuration; // Offset: 0 + keen::Time combatStanceEndTime; // Offset: 8 +}; + +struct ecs.BenchmarkPoint { +}; + +struct ecs.CopyParentDamageSusceptibility { + keen::bool keepSkillShotAttribute; // Offset: 0 +}; + +typedef keen::ecs::DetachAction ecs.DetachAction; + +typedef keen::ecs::AttachmentDirection ecs.AttachmentDirection; + +struct ecs.AttachToSurface { + keen::ds::ecs::DetachAction detachAction; // Offset: 0 + keen::ds::ecs::DetachAction detachActionInBase; // Offset: 1 + keen::ds::ecs::AttachmentDirection attachDirection; // Offset: 2 + keen::float searchLength; // Offset: 4 + keen::ds::ecs::ColliderMask colliderMask; // Offset: 8 + keen::float yOffset; // Offset: 12 + keen::bool spawnFalling; // Offset: 16 +}; + +struct ecs.DynamicAttachToSurface { + keen::Time searchStartTime; // Offset: 0 + keen::Time nextCheckTime; // Offset: 8 + keen::ds::ecs::EntityId attachmentContainerId; // Offset: 16 + keen::bool hasFoundContainer; // Offset: 20 + keen::bool shouldDestroy; // Offset: 21 + keen::bool hasAddedGravity; // Offset: 22 +}; + +struct ecs.DangerousArea { + keen::float32 range; // Offset: 0 +}; + +struct ecs.DangerSensor { + keen::float32 checkRadius; // Offset: 0 +}; + +struct ecs.DynamicDangerSensor { + keen::bool hasFoundDangerousEntity; // Offset: 0 + keen::ds::ecs::RangeQueryId queryId; // Offset: 4 +}; + +struct ecs.CopyParentLevel { +}; + +struct ecs.ServerSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float maxMaterialSubmergeDepth; // Offset: 4 + keen::float lerpStartValue; // Offset: 8 + keen::float lerpEndValue; // Offset: 12 + keen::Time lerpDuration; // Offset: 16 + keen::Time lerpTime; // Offset: 24 +}; + +struct ecs.NetworkSubmerge { + keen::float submergeDepth; // Offset: 0 +}; + +struct ecs.ClientSubmerge { + keen::float submergeDepth; // Offset: 0 + keen::float interpolationSource; // Offset: 4 + keen::float interpolationTarget; // Offset: 8 + keen::uint32 interpolationNewestTick; // Offset: 12 +}; + +struct ecs.SongState { + keen::Time joinTime; // Offset: 0 + keen::Time songStartTime; // Offset: 8 + keen::ds::SongId songId; // Offset: 16 + keen::uint16 songClusterId; // Offset: 20 +}; + +struct ecs.CustomPlayerString { + keen::ds::CustomStringId stringId; // Offset: 0 +}; + +struct ecs.SongSelection { + keen::ds::SongId selectedSongId; // Offset: 0 +}; + +struct ecs.Extinguish { + keen::ds::SoundContainerReference extinguishSfx; // Offset: 0 +}; + +struct ecs.DynamicExtinguish { + keen::Time extinguishDetectionTime; // Offset: 0 + keen::Time lastToggle; // Offset: 8 + keen::float32 extinguishValue; // Offset: 16 + keen::bool switchedToggleOff; // Offset: 20 +}; + +struct ecs.ClientExtinguish { + keen::Time lastNotifyTime; // Offset: 0 + keen::float32 visualizedExtinguishValue; // Offset: 8 +}; + +struct ecs.PackedExtinguish { + keen::Time lastToggleTime; // Offset: 0 + keen::float32 extinguishValue; // Offset: 8 + keen::bool switchedToggleOff; // Offset: 12 +}; + +struct ecs.FoodBait { +}; + +struct ecs.RayCastSpawner { + keen::ds::ecs::TemplateReference spawnTemplate; // Offset: 0 + keen::ds::ecs::Offset rayOffset; // Offset: 16 + keen::float requiredDistanceToSpawnEntity; // Offset: 56 + keen::Time minLifeTime; // Offset: 64 + keen::Time maxLifeTime; // Offset: 72 +}; + +struct ecs.DynamicRayCastSpawner { + keen::WorldPosition lastSpawnPosition; // Offset: 0 +}; + +struct ecs.WaterSurfaceFX { + keen::ds::VfxReference standingVfx; // Offset: 0 + keen::ds::VfxReference movingVfx; // Offset: 16 + keen::ds::SoundContainerReference waterSfx; // Offset: 32 + keen::uint32 vfxHandle; // Offset: 48 + keen::uint32 sfxHandle; // Offset: 52 + keen::float3 previousPlayerPosition; // Offset: 56 + keen::bool playerWasMoving; // Offset: 68 +}; + +struct ecs.MoveColliderWithRay { + keen::float targetLength; // Offset: 0 + keen::Time increaseLengthDuration; // Offset: 8 +}; + +struct ecs.DynamicMoveColliderWithRay { + keen::Time startTime; // Offset: 0 +}; + +struct ecs.WaterDispenser { + keen::bool visualOnly; // Offset: 0 +}; + +struct ecs.WaterDrain { +}; + +typedef keen::GameMessageChannelId GameMessageChannelId; + +typedef keen::GameMessageLoginType GameMessageLoginType; + +typedef keen::GameMessageLoginErrors GameMessageLoginErrors; + +typedef keen::GameMessageLoginResult GameMessageLoginResult; + +struct DaytimeSync { + keen::Time ecsTime; // Offset: 0 + keen::Time gameTime; // Offset: 8 + keen::float32 gameTimeScale; // Offset: 16 +}; + +struct DebugMessage { + keen::float3 cameraTarget; // Offset: 0 +}; + +struct KnownUserData { + keen::ds::CharacterId characterId; // Offset: 0 + keen::ds::BaseId baseId; // Offset: 16 +}; + +struct KnownUsers { + keen::uint32 version; // Offset: 0 + keen::DsArray users; // Offset: 8 +}; + +typedef keen::BaseState BaseState; + +struct EntitySaveData { + keen::WorldTransform transform; // Offset: 0 + keen::bool forcedSave; // Offset: 56 + keen::DsArray entityData; // Offset: 64 +}; + +struct BaseSaveData { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::DsArray voxel; // Offset: 48 + keen::DsArray water; // Offset: 88 +}; + +struct ServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::DsArray bases; // Offset: 8 + keen::DsArray entities; // Offset: 48 + keen::DsArray progressEntity; // Offset: 88 + keen::DsArray entitySerializationContext; // Offset: 128 + keen::Time playTime; // Offset: 168 +}; + +typedef keen::ServerSaveGameVersion ServerSaveGameVersion; + +struct ExtendedServerSaveGame { + keen::uint32 version; // Offset: 0 + keen::uint32 sceneOffsetChangeCounter; // Offset: 4 + keen::Time dayTime; // Offset: 8 +}; + +typedef keen::ExtendedServerSaveGameVersion ExtendedServerSaveGameVersion; + +typedef keen::ecs::GameSettingsPreset ecs.GameSettingsPreset; + +struct ServerSaveGameMeta { + keen::uint32 version; // Offset: 0 + keen::CalendarTimeStamp lastPlayTime; // Offset: 8 + keen::uint32 progressLevel; // Offset: 16 + keen::ds::string name; // Offset: 24 + keen::Time playTime; // Offset: 64 + keen::ds::ecs::GameSettingsPreset gameSettingsPreset; // Offset: 72 +}; + +struct UnlockedItemKnowledgeSave { + keen::uint32 version; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 + keen::ds::ItemKnowledgeMask knowledge; // Offset: 8 +}; + +struct CustomMapMarkerArray { + keen::DsArray mapMarkers; // Offset: 0 +}; + +struct CharacterSaveGameEntry { + keen::ds::string name; // Offset: 0 + keen::ds::CharacterId id; // Offset: 40 + keen::ds::CharacterId cloudId; // Offset: 56 + keen::CalendarTimeStamp lastPlayTime; // Offset: 72 + keen::uint32 version; // Offset: 80 + keen::uint32 level; // Offset: 84 + keen::ds::CharacterStateMask stateMask; // Offset: 88 + keen::ds::CustomMapMarkerArray customMapMarker; // Offset: 96 + keen::DsArray data; // Offset: 136 +}; + +struct ItemColorSetupInternal { + keen::ds::ColorCombinationResource colorIds; // Offset: 0 + keen::bool isSet; // Offset: 12 +}; + +struct OutfitItemData { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemColorSetupInternal colors; // Offset: 4 +}; + +struct OutfitArray { + keen::StaticArray data; // Offset: 0 +}; + +struct CharacterOutfit { + keen::uint32 version; // Offset: 0 + keen::ds::OutfitArray items; // Offset: 4 + keen::ds::ecs::CharacterSetup setup; // Offset: 484 +}; + +struct old_saves.v6.BaseSaveDataV6 { + keen::Guid baseId; // Offset: 0 + keen::AxisAlignedBox buildZone; // Offset: 16 + keen::WorldTransform DEPRECATEDtransform; // Offset: 48 + keen::DsArray voxel; // Offset: 104 +}; + +struct old_saves.v6.ServerSaveGameV6 { + keen::uint32 version; // Offset: 0 + keen::DsArray bases; // Offset: 8 + keen::DsArray entities; // Offset: 48 + keen::DsArray progressEntity; // Offset: 88 + keen::DsArray entitySerializationContext; // Offset: 128 + keen::Time playTime; // Offset: 168 +}; + +struct ecs.CameraShake { + keen::float32 trauma; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::ds::ecs::EntityId triggerId; // Offset: 24 +}; + +struct ecs.CameraShakeImpulse { + keen::float3 impulse; // Offset: 8 + keen::float additionalTrauma; // Offset: 20 + keen::Time duration; // Offset: 24 + keen::ds::ecs::EntityId triggerId; // Offset: 32 +}; + +struct ecs.UiCurrentLocationEvent { + keen::ds::LocaTagId location; // Offset: 8 +}; + +typedef keen::ResourceTypes ResourceTypes; + +struct ecs.UiNegativeFeedbackEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::LocaTagReference messageLocaTag; // Offset: 12 +}; + +struct ecs.UiInsufficientResourcesEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId itemSlotId; // Offset: 12 + keen::ds::ResourceTypesMask flags; // Offset: 20 +}; + +struct ecs.UiResourcesFullEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId buffEntityId; // Offset: 12 + keen::ds::InventorySlotId itemSlotId; // Offset: 16 + keen::ds::ResourceTypesMask flags; // Offset: 24 +}; + +struct ecs.AppliedBuffEvent { + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::ds::BuffSlotType slotType; // Offset: 12 + keen::uint32 slotTypeCount; // Offset: 16 +}; + +struct ecs.UiInventoryStockCycleEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool selectionResult; // Offset: 12 +}; + +struct ecs.UiBuildingEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::bool isUndoAction; // Offset: 12 + keen::bool isSuccessful; // Offset: 13 +}; + +struct ecs.UiItemTriggerFailedEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId itemSlotId; // Offset: 12 + keen::ds::EquipmentSlotType equipmentSlotType; // Offset: 20 +}; + +struct ecs.UnlockSkillEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlearnSkillEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::SkillNodeId skillId; // Offset: 12 +}; + +struct ecs.UnlockPerkEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.TrashItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId slotId; // Offset: 12 +}; + +struct ecs.SelectDialogOptionEvent { + keen::ds::ecs::EntityId interactingEntityId; // Offset: 8 + keen::ds::LocaTagId selectedOptionId; // Offset: 12 + keen::ds::KnowledgeId knowledgeId; // Offset: 16 +}; + +struct ecs.NpcInputEvent { + keen::ds::NpcId npcId; // Offset: 8 + keen::float roamingRange; // Offset: 12 +}; + +struct ecs.TriggerKnowledgeUiEvent { + keen::ds::KnowledgeId knowledgeId; // Offset: 8 +}; + +struct ecs.SetPersonalQuestProgressionEvent { + keen::bool enable; // Offset: 8 +}; + +struct ecs.ServerSelectDialogOptionEvent { + keen::ds::ecs::EntityId npcEntity; // Offset: 8 + keen::ds::ecs::EntityId playerEntity; // Offset: 12 + keen::ds::LocaTagId selectedOptionId; // Offset: 16 +}; + +struct ecs.BuildingPlaceEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 60 + keen::ds::ItemId trackingItemId; // Offset: 76 +}; + +struct ecs.BuildingPickUpEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +struct ecs.BuildingTearDownEvent { + keen::float3 position; // Offset: 8 + keen::float4 orientation; // Offset: 20 + keen::float3 volumeMin; // Offset: 36 + keen::float3 volumeMax; // Offset: 48 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 60 +}; + +typedef keen::ecs::HitEventFlags ecs.HitEventFlags; + +struct ecs.ProhibitedHit { + keen::ds::CollisionFeedbackMaterialReference materialA; // Offset: 8 + keen::ds::CollisionFeedbackMaterialReference materialB; // Offset: 24 + keen::float3 position; // Offset: 40 + keen::float3 normal; // Offset: 52 + keen::ds::ecs::EntityId rootSourceId; // Offset: 64 + keen::ds::ecs::EntityId targetId; // Offset: 68 +}; + +struct ecs.TerraformingHitEvent { + keen::float32 range; // Offset: 184 +}; + +typedef keen::ecs::HitCandidateType ecs.HitCandidateType; + +struct ecs.HitCandidate { + keen::float3 sourceVelocity; // Offset: 248 + keen::WorldTransform sourceTransform; // Offset: 264 + keen::sint32 sourceManaCost; // Offset: 320 + keen::ds::ecs::HitCandidateType candidateType; // Offset: 324 + keen::bool propagate; // Offset: 325 + keen::bool sendHitEvent; // Offset: 326 + keen::bool ignoreConsecutiveHits; // Offset: 327 +}; + +struct ecs.ResourceCandidate { + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::HashKey32 attributeId; // Offset: 12 + keen::sint32 change; // Offset: 16 +}; + +struct ecs.ResourceChange { + keen::uint32 gain; // Offset: 0 + keen::uint32 loss; // Offset: 4 +}; + +struct ecs.ResourceChangeEvent { + keen::ds::ecs::EntityId targetEntityId; // Offset: 8 + keen::ds::ecs::ResourceChange healthChange; // Offset: 12 + keen::ds::ecs::ResourceChange manaChange; // Offset: 20 + keen::ds::ecs::ResourceChange staminaChange; // Offset: 28 +}; + +struct ecs.EnemyAttackStartedEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.CallForHelpEvent { + keen::ds::ecs::EntityId noticingEntityId; // Offset: 8 + keen::float3 noticingEntityPosition; // Offset: 12 + keen::ds::ecs::EntityId noticedEntityId; // Offset: 24 + keen::float3 noticedEntityPosition; // Offset: 28 + keen::float32 radius; // Offset: 40 + keen::bool checkSight; // Offset: 44 + keen::ds::FactionMask factions; // Offset: 46 +}; + +struct ecs.EnemyIsHelpingEvent { + keen::ds::ecs::EntityId helpingEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 12 +}; + +struct ecs.GenericEnemyEvent { + keen::ds::ecs::EntityId enemyEntityId; // Offset: 8 + keen::ds::ecs::EnemyEventType eventType; // Offset: 12 +}; + +struct ecs.NoiseEvent { + keen::ds::ecs::EntityId senderId; // Offset: 8 + keen::float3 position; // Offset: 12 + keen::float32 range; // Offset: 24 +}; + +struct ecs.ChildDestroyed { + keen::ds::ecs::EntityId childId; // Offset: 8 + keen::ds::ecs::EntityId parentId; // Offset: 12 +}; + +struct ecs.PickupEvent { + keen::float3 position; // Offset: 8 + keen::ds::ItemId itemId; // Offset: 20 + keen::uint32 itemCount; // Offset: 24 + keen::ds::ecs::EntityId pickedUpByEntityId; // Offset: 28 + keen::ds::ecs::EntityId pickedUpFromEntityId; // Offset: 32 + keen::ds::InventorySlotId targetSlotId; // Offset: 36 +}; + +typedef keen::InventoryCategoryMask InventoryCategoryMask; + +struct ecs.InventoryFull { + keen::ds::ecs::EntityId pickedUpById; // Offset: 8 + keen::ds::ecs::EntityId pickedUpFromId; // Offset: 12 + keen::ds::InventoryCategoryMask mask; // Offset: 16 +}; + +struct ecs.XPGainedEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint32 amount; // Offset: 12 + keen::ds::ExperienceSourceType source; // Offset: 16 +}; + +struct ecs.PuzzleCompletedEvent { + keen::StaticArray clusterPlayerEntityIds; // Offset: 8 +}; + +struct ecs.LevelUpEvent { + keen::WorldPosition position; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 32 + keen::Time duration; // Offset: 40 + keen::sint32 level; // Offset: 48 +}; + +struct ecs.AcceptOfferedInteractionEvent { + keen::ds::ecs::EntityId guestEntityId; // Offset: 8 + keen::ds::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.InteractionAcceptedEvent { + keen::ds::ecs::EntityId guestEntityId; // Offset: 8 + keen::ds::ecs::EntityId hostEntityId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.SetToggleStateEvent { + keen::ds::ecs::EntityId senderId; // Offset: 8 + keen::ds::SignalId signalId; // Offset: 12 + keen::bool newState; // Offset: 16 +}; + +struct ecs.ToggleInteractionEvent { + keen::ds::ecs::EntityId guestId; // Offset: 8 + keen::ds::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 +}; + +struct ecs.ActionbarSelectionEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 12 +}; + +struct ecs.InventoryStockSelectionEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::uint8 inventoryStockType; // Offset: 12 + keen::ds::ItemId selectedItemId; // Offset: 16 +}; + +struct ecs.ChangeEquipmentEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId inventorySlotId; // Offset: 12 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 20 + keen::ds::ecs::ChangeEquipment type; // Offset: 21 +}; + +struct ecs.SwapEquipmentSetEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetInventoryId; // Offset: 12 + keen::ds::ecs::SwapEquipmentTarget type; // Offset: 16 +}; + +struct ecs.HandleEquipmentSlotChangedEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 12 +}; + +struct ecs.ConsumeItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId inventorySlotId; // Offset: 12 +}; + +struct ecs.InspectItemEvent { + keen::ds::InventorySlotId inventorySlotId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 16 +}; + +struct ecs.UiCreateBuildingItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ActionbarSlotSelection selectedIndex; // Offset: 12 + keen::ds::ItemId itemId; // Offset: 16 +}; + +struct ecs.UiCreateNpcItemEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ItemId itemId; // Offset: 12 +}; + +struct ecs.TeleportPlayerEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 12 + keen::float3 targetWorldPosition; // Offset: 16 +}; + +typedef keen::ecs::TransferItemToInventoryFlag ecs.TransferItemToInventoryFlag; + +struct ecs.TransferItemToInventoryEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetInventoryId; // Offset: 12 + keen::ds::InventorySlotId targetSlotId; // Offset: 16 + keen::ds::ecs::EntityId sourceInventoryId; // Offset: 24 + keen::ds::InventorySlotId sourceSlotId; // Offset: 28 + keen::ds::InventoryActionType type; // Offset: 36 + keen::ds::ecs::TransferItemToInventoryFlags flags; // Offset: 37 + keen::uint16 amount; // Offset: 38 +}; + +struct ecs.SortInventoryEvent { + keen::ds::ecs::EntityId targetInventoryId; // Offset: 8 +}; + +struct ecs.LootInteractionEvent { + keen::ds::ecs::EntityId guestId; // Offset: 8 + keen::ds::ecs::EntityId hostId; // Offset: 12 + keen::uint32 offerId; // Offset: 16 + keen::bool lootAll; // Offset: 20 + keen::bool forAllPlayers; // Offset: 21 + keen::StaticArray knowledgeIds; // Offset: 24 +}; + +struct ecs.UiCraftRecipeEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.UiAutomaticTransferEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 + keen::ds::ItemId itemId; // Offset: 20 + keen::uint16 amount; // Offset: 24 +}; + +struct ecs.UiSelectCraftingStationRecipeEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 +}; + +struct ecs.CraftRecipeEvent { + keen::ds::ecs::EntityId craftingOperatorId; // Offset: 8 + keen::ds::ecs::EntityId craftingStationId; // Offset: 12 + keen::ds::RecipeId recipeId; // Offset: 16 + keen::uint16 recipeAmount; // Offset: 20 +}; + +struct ecs.CraftRecipeSuccessEvent { + keen::ds::WorkshopId workshopId; // Offset: 8 + keen::ds::RecipeId recipeId; // Offset: 12 +}; + +struct ecs.UiPinRecipeEvent { + keen::ds::RecipeId recipeId; // Offset: 8 + keen::bool pinRecipe; // Offset: 12 +}; + +struct ecs.UiWaypointEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 + keen::bool enable; // Offset: 40 +}; + +struct ecs.UiPingEvent { + keen::ds::ecs::EntityId senderEntityId; // Offset: 8 + keen::WorldPosition position; // Offset: 16 +}; + +struct ecs.UiPingInputEvent { +}; + +typedef keen::MapMarkerTypeId MapMarkerTypeId; + +struct ecs.UiAddMapMarkerEvent { + keen::WorldPosition position; // Offset: 8 + keen::uint8 colorScheme; // Offset: 32 + keen::ds::MapMarkerTypeId type; // Offset: 36 +}; + +struct ecs.UiRemoveMapMarkerEvent { + keen::uint32 handle; // Offset: 8 +}; + +struct ecs.ChangeCustomizationEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::InventorySlotId targetSlotId; // Offset: 12 + keen::ds::ItemId itemId; // Offset: 20 +}; + +struct ecs.OpenHudScreenEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId interactionHostId; // Offset: 12 + keen::ds::HudScreenType screen; // Offset: 16 +}; + +struct ecs.KillFaction { + keen::ds::FactionMask factionMask; // Offset: 8 + keen::uint32 playerMask; // Offset: 12 +}; + +struct ecs.StartFlyingEvent { + keen::ds::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.StopFlyingEvent { + keen::ds::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.EnterFlyingStateEvent { + keen::ds::ecs::EntityId targetId; // Offset: 8 +}; + +struct ecs.SyncedAttackEvent { + keen::ds::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 12 + keen::Time resolveTime; // Offset: 16 + keen::ds::ecs::SyncedAttackType type; // Offset: 24 +}; + +struct ecs.SyncedSequenceEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::ecs::EntityId triggeringEntityId; // Offset: 12 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 16 +}; + +struct ecs.VisceralAttackExecutedEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.OnDestroyNotifyEvent { + keen::WorldTransform transform; // Offset: 8 + keen::Guid type; // Offset: 64 + keen::float3 hitDirection; // Offset: 80 +}; + +typedef keen::ecs::NotifyEventType ecs.NotifyEventType; + +struct ecs.NotifyEvent { + keen::ds::ecs::Offset offset; // Offset: 8 + keen::WorldTransform transform; // Offset: 48 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 104 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 168 + keen::ds::actor::SequenceRuntimeId sequenceId; // Offset: 176 + keen::uint32 slot; // Offset: 200 + keen::Guid typeGuid; // Offset: 204 + keen::ds::ecs::NotifyEventType type; // Offset: 220 + keen::bool attach; // Offset: 221 + keen::bool canBeCanceled; // Offset: 222 +}; + +struct ecs.NotifyEnvFxEvent { + keen::Guid eventGuid; // Offset: 8 + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 24 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 28 + keen::ds::AttachmentSlot slot; // Offset: 32 + keen::ds::ecs::Offset offset; // Offset: 36 + keen::bool attach; // Offset: 76 + keen::float32 rayOffsetY; // Offset: 80 + keen::float32 rayLength; // Offset: 84 +}; + +struct ecs.FootDown { + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 8 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 12 + keen::ds::AttachmentSlot slot; // Offset: 16 + keen::ds::ecs::Offset offset; // Offset: 20 +}; + +struct ecs.FoleyEnvEvent { + keen::Guid eventGuid; // Offset: 8 + keen::ds::FoleyType foleyFxType; // Offset: 24 + keen::ds::ecs::EntityId sourceEntityId; // Offset: 28 +}; + +struct ecs.RegisterControlledCombatTargetEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.UnregisterControlledCombatTargetEvent { + keen::ds::ecs::EntityId attackerId; // Offset: 8 + keen::ds::ecs::EntityId targetId; // Offset: 12 +}; + +struct ecs.LoreRead { + keen::ds::LocaTagId locaTag; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.ItemUsed { + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 +}; + +struct ecs.StartPlaySongEvent { + keen::ds::ecs::EntityId playerId; // Offset: 8 + keen::ds::SongId songId; // Offset: 12 +}; + +typedef keen::ecs::SequenceTerminationReason ecs.SequenceTerminationReason; + +struct ecs.ItemKnowledgeGained { + keen::ds::ItemId itemId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 + keen::ds::ItemKnowledgeMask gainedKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeTriggerEvent { + keen::ds::KnowledgeId knowledgeId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 + keen::bool removeKnowledge; // Offset: 16 +}; + +struct ecs.KnowledgeUnlockedEvent { + keen::ds::KnowledgeId knowledgeId; // Offset: 8 + keen::ds::ecs::EntityId playerEntityId; // Offset: 12 +}; + +typedef keen::ecs::KnowledgeType ecs.KnowledgeType; + +struct ecs.KnowledgeGained { + keen::ds::ecs::KnowledgeType targetType; // Offset: 8 + keen::ds::WorkshopId workshopId; // Offset: 12 + keen::ds::NpcId npcId; // Offset: 16 + keen::ds::RecipeId recipeId; // Offset: 20 + keen::ds::JournalEntryId journalId; // Offset: 24 + keen::ds::ecs::EntityId mapMarkerEntityId; // Offset: 28 +}; + +struct ecs.ParryEvent { + keen::ds::ecs::EntityId attackerEntityId; // Offset: 8 + keen::ds::ecs::EntityId blockerEntityId; // Offset: 12 + keen::sint32 staminaDrain; // Offset: 16 +}; + +struct ecs.CookingEvent { + keen::ds::ecs::Offset attachmentOffset; // Offset: 8 + keen::ds::ecs::EntityId cookedEntityId; // Offset: 48 + keen::ds::ItemId itemId; // Offset: 52 + keen::ds::AttachmentSlot attachmentSlot; // Offset: 56 + keen::bool burned; // Offset: 57 +}; + +struct ecs.PlayerBaseChangeEvent { + keen::ds::CharacterId playerCharacterId; // Offset: 8 + keen::ds::BaseId baseId; // Offset: 24 +}; + +struct ecs.KickPlayerEvent { + keen::ds::ecs::EntityId playerToKick; // Offset: 8 +}; + +struct ecs.FlameAltarEvent { + keen::ds::ecs::EntityId playerEntityId; // Offset: 8 + keen::ds::ecs::EntityId baseEntityId; // Offset: 12 + keen::ds::ecs::FlameAltarActionType type; // Offset: 16 +}; + +struct ecs.EntityDiedEvent { + keen::ds::ecs::EntityId deadEntityId; // Offset: 8 +}; + +struct ecs.ActivateFactionPacifyEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::FactionType faction; // Offset: 12 +}; + +struct ecs.ActivateFactionCallForHelpEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::FactionType faction; // Offset: 12 +}; + +struct ecs.StartGuardingEvent { + keen::ds::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ds::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.StopGuardingEvent { + keen::ds::ecs::EntityId guardingEntityId; // Offset: 8 + keen::ds::ecs::EntityId guardedEntityId; // Offset: 12 +}; + +struct ecs.DestroyedWithoutSurfaceEvent { + keen::WorldTransform transform; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 64 + keen::ds::CollisionFeedbackMaterialReference material; // Offset: 68 +}; + +struct ecs.TransformedToLootEvent { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::VfxUserEffectParameterDataBlock overwriteVfxParameters; // Offset: 12 + keen::bool useVfxDefaultParameters; // Offset: 76 +}; + +struct ecs.GameSettingsChangedEvent { + keen::ds::ecs::GameSettings newSettings; // Offset: 8 +}; + +struct ecs.SetEnemyVariableEvent { + keen::ds::ecs::EntityId enemyId; // Offset: 8 + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ecs.UiWorldEvent { + keen::HashKey32 worldEventId; // Offset: 8 +}; + +struct ecs.DebugHitRequest { + keen::ds::ecs::EntityId targetEntityId; // Offset: 0 + keen::WorldTransform sourceTransform; // Offset: 8 + keen::ds::impact::MajorDirection majorHitDirection; // Offset: 64 +}; + +struct ecs.DebugHitResult { + keen::float3 hitPosition; // Offset: 0 + keen::float3 hitNormal; // Offset: 12 + keen::float3 hitDirection; // Offset: 24 + keen::float32 hitAngle; // Offset: 36 + keen::bool hit; // Offset: 40 +}; + +struct GuidRegistryResource { + keen::DsArray guids; // Offset: 0 +}; + +typedef keen::impact::ImpactFilter impact.ImpactFilter; + +typedef keen::impact::AttackFlags impact.AttackFlags; + +struct impact.DamageData { +}; + +struct impact.DamageConfig { +}; + +struct impact.SphereColliderConfig { +}; + +struct impact.ImpactQueryResult { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::float3 normal; // Offset: 16 + keen::ds::ecs::QueryResultFlags flags; // Offset: 28 +}; + +typedef keen::impact::Flags impact.Flags; + +struct impact.DebugServerImpactMessage { + keen::ds::impact::ImpactId id; // Offset: 0 +}; + +struct impact.DebugImpactRequestMessage { + keen::Guid impactGuid; // Offset: 0 +}; + +struct impact.DebugImpcatState { + keen::uint16 rPC; // Offset: 0 + keen::uint16 rSP; // Offset: 2 + keen::uint16 rFP; // Offset: 4 + keen::Bitmask8 flags; // Offset: 6 + keen::DsArray stack; // Offset: 8 + keen::DsArray data; // Offset: 48 +}; + +struct impact.DebugImpactFunctionCall { + keen::uint16 pc; // Offset: 0 + keen::ds::impact::DebugImpcatState beforeUpdate; // Offset: 8 + keen::ds::impact::DebugImpcatState afterUpdate; // Offset: 96 +}; + +struct impact.DebugImpactData { + keen::ds::ecs::EntityId rootId; // Offset: 0 + keen::ds::impact::DebugImpcatState beforeUpdate; // Offset: 8 + keen::ds::impact::DebugImpcatState afterUpdate; // Offset: 96 + keen::DsArray calls; // Offset: 184 + keen::DsArray programCounter; // Offset: 224 + keen::DsArray appliedConfigurations; // Offset: 264 +}; + +struct impact.DebugImpact { + keen::Guid impactId; // Offset: 0 + keen::uint32 tick; // Offset: 16 + keen::ds::ecs::EntityId impactEntityId; // Offset: 20 + keen::ds::impact::DebugImpactData data; // Offset: 24 +}; + +typedef keen::ImpactOps ImpactOps; + +typedef keen::impact::ImpcatValueNumberFormat impact.ImpcatValueNumberFormat; + +typedef keen::ObjectReference impact.ConfigIdReference; + +struct impact.ImpactConfig { + keen::ds::LocaTagReference locaTag; // Offset: 0 + keen::bool isSigned; // Offset: 16 + keen::ds::impact::ImpcatValueNumberFormat valueFormat; // Offset: 17 + keen::ds::impact::ConfigIdReference id; // Offset: 20 + keen::HashKey32 configId; // Offset: 36 + keen::HashKey32 type; // Offset: 40 + keen::Guid configGuid; // Offset: 44 + keen::Guid objectId; // Offset: 60 +}; + +struct impact.BuffImpactConfig { + keen::ds::BuffTypeReference value; // Offset: 76 +}; + +struct impact.EnemyVariableImpactConfig { + keen::ds::enemy01::EnemyVariableReference value; // Offset: 76 +}; + +struct impact_nodes.ImpactNode { + keen::Vector2 uiPosition; // Offset: 0 +}; + +struct impact_nodes.ImpactValueNode { + keen::ds::impact::ConfigIdReference id; // Offset: 8 + keen::ds::LocaTagReference locaTag; // Offset: 24 + keen::bool isSigned; // Offset: 40 + keen::ds::impact::ImpcatValueNumberFormat valueFormat; // Offset: 41 + keen::Guid objectId; // Offset: 44 +}; + +struct impact_nodes.BuffValueNode { + keen::ds::BuffTypeReference value; // Offset: 60 +}; + +struct impact_nodes.ImpactExecutableNode { +}; + +struct impact_nodes.ApplyBuff { + keen::ds::BuffTypeReference buffInput; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 24 + keen::ds::impact::DamageSetup damageSetup; // Offset: 28 + keen::Time durationInput; // Offset: 80 +}; + +struct impact_nodes.ImpactBranchNode { +}; + +struct impact_nodes.ImpactNodeExecutionBranch { +}; + +struct impact_nodes.IfBranchNode { + keen::bool negate; // Offset: 8 + keen::ds::impact_nodes::ImpactNodeExecutionBranch ifBranch; // Offset: 9 + keen::ds::impact_nodes::ImpactNodeExecutionBranch elseBranch; // Offset: 10 +}; + +struct impact_nodes.HasBuffNode { + keen::ds::BuffTypeReference buffInput; // Offset: 12 + keen::ds::ecs::EntityId targetEntityId; // Offset: 28 +}; + +struct impact_nodes.RemoveBuff { + keen::ds::BuffTypeReference buffInput; // Offset: 8 + keen::ds::ecs::EntityId targetEntityId; // Offset: 24 + keen::bool wasRemoved; // Offset: 28 +}; + +struct ecs.ImpactHierarchy { + keen::ds::ecs::EntityId parentImpactId; // Offset: 0 + keen::ds::ecs::EntityId rootImpactId; // Offset: 4 + keen::ds::ecs::EntityId weaponPideId; // Offset: 8 + keen::ds::ecs::EntityId permissionCheckId; // Offset: 12 +}; + +struct ecs.ImpactItemConfig { + keen::ds::ItemInstanceInfo usedItem; // Offset: 0 + keen::ds::ItemInstanceInfo ammunitionItem; // Offset: 20 + keen::ds::PerkId usedPerkId; // Offset: 40 +}; + +struct ecs.SequenceEventCollider { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.SequenceEventImpactConfig { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::Guid eventGuid; // Offset: 4 +}; + +struct ecs.ImpactConfiguration { + keen::ds::impact::Configurations configValues; // Offset: 0 + keen::ds::impact::DamageDistribution damageDistribution; // Offset: 40 + keen::bool damageDistributionIsSet; // Offset: 92 +}; + +struct ecs.ImpactDirection { + keen::ds::impact::MajorDirection direction; // Offset: 0 +}; + +struct ecs.Impact { + keen::ds::ImpactProgramReference program; // Offset: 0 + keen::ds::impact::ImpactId impactId; // Offset: 16 +}; + +struct ecs.ImpactHalted { +}; + +typedef keen::ImpactCommand ImpactCommand; + +typedef keen::TerraformingType TerraformingType; + +typedef keen::WeaponCategoryType WeaponCategoryType; + +typedef keen::WeaponCategoryTypeMask WeaponCategoryTypeMask; + +typedef keen::VisceralAttackType VisceralAttackType; + +typedef keen::impact::ProgramId impact.ProgramId; + +typedef keen::impact::VariableTypeId impact.VariableTypeId; + +struct impact.ConfigId { +}; + +typedef keen::impact::ConfigIdHash impact.ConfigIdHash; + +struct impact.ConfigIdCollection { +}; + +struct impact.ConfigValueId { + keen::uint32 value; // Offset: 0 +}; + +struct impact.TypedValue32 { +}; + +struct impact.FloatImpactConfig { + keen::float32 value; // Offset: 76 +}; + +struct impact.Uint32ImpactConfig { + keen::uint32 value; // Offset: 76 +}; + +struct impact.Sint32ImpactConfig { + keen::sint32 value; // Offset: 76 +}; + +struct impact.BoolImpactConfig { + keen::bool value; // Offset: 76 +}; + +struct impact.Float2ImpactConfig { + keen::float2 value; // Offset: 76 +}; + +struct impact.Float3ImpactConfig { + keen::float3 value; // Offset: 76 +}; + +struct impact.Float4ImpactConfig { + keen::float4 value; // Offset: 76 +}; + +struct impact.TemplateImpactConfig { + keen::ds::ecs::TemplateReference value; // Offset: 76 +}; + +struct impact.EntityTagImpactConfig { + keen::ds::ecs::EntityTagReference value; // Offset: 76 +}; + +struct impact.MaterialImpactConfig { + keen::ds::CollisionFeedbackMaterialReference value; // Offset: 76 +}; + +struct impact.TimeImpactConfig { + keen::Time value; // Offset: 80 +}; + +struct impact.FactionImpactConfig { + keen::ds::FactionType value; // Offset: 76 +}; + +struct impact.AttributeReferenceConfig { + keen::ds::AttributeReference value; // Offset: 76 +}; + +struct impact.VisceralAttackTypeConfig { + keen::ds::VisceralAttackType value; // Offset: 76 +}; + +struct impact.DamageTerraformingSetup { + keen::sint32 softDamage; // Offset: 0 + keen::sint32 slightlyHardDamage; // Offset: 4 + keen::sint32 moderatelyHardDamage; // Offset: 8 + keen::sint32 hardDamage; // Offset: 12 + keen::sint32 veryHardDamage; // Offset: 16 +}; + +struct impact.DamageTerraformingRuntimeSetup { + keen::float32 woodDamageMod; // Offset: 20 + keen::float32 stoneDamageMod; // Offset: 24 + keen::float32 metalDamageMod; // Offset: 28 +}; + +struct impact.DamageTerraformingSetupConfig { + keen::ds::impact::DamageTerraformingSetup value; // Offset: 76 +}; + +struct impact.ArmorDistribution { + keen::float32 physical; // Offset: 0 + keen::float32 blunt; // Offset: 4 + keen::float32 pierce; // Offset: 8 + keen::float32 cut; // Offset: 12 + keen::float32 magical; // Offset: 16 + keen::float32 fire; // Offset: 20 + keen::float32 ice; // Offset: 24 + keen::float32 fog; // Offset: 28 + keen::float32 lightning; // Offset: 32 +}; + +struct impact.TerraformingTypeConfig { + keen::ds::TerraformingType value; // Offset: 76 +}; + +typedef keen::impact::DamageTypeNew impact.DamageTypeNew; + +typedef keen::impact::AttackCategory impact.AttackCategory; + +struct impact.AttackCategoryMaskConfig { + keen::ds::impact::AttackCategoryMask value; // Offset: 76 +}; + +typedef keen::ObjectReference WeaponCategoryReference; + +struct impact.WeaponCategoryConfig { + keen::ds::WeaponCategoryReference value; // Offset: 76 +}; + +struct impact.MajorDirectionConfig { + keen::ds::impact::MajorDirection value; // Offset: 76 +}; + +struct impact.HitReactionTypeConfig { + keen::ds::impact::HitReactionType value; // Offset: 76 +}; + +struct impact.PushBackForceConfig { + keen::ds::impact::PushBackForce value; // Offset: 76 +}; + +typedef keen::impact::EventStream impact.EventStream; + +typedef keen::impact::EventStreamMask impact.EventStreamMask; + +struct ImpactUiValue { + keen::ds::LocaTagId locaId; // Offset: 0 + keen::bool isSigned; // Offset: 4 + keen::ds::impact::ImpcatValueNumberFormat valueFormat; // Offset: 5 + keen::sint32 value; // Offset: 8 +}; + +typedef keen::ObjectReference impact_nodes.NodeReference; + +struct impact_nodes.ResetPoint { +}; + +struct impact_nodes.TerraformingTypeValueNode { + keen::ds::TerraformingType value; // Offset: 60 +}; + +struct impact_nodes.ExecutionLink { + keen::ds::impact_nodes::NodeReference startNode; // Offset: 0 + keen::DsString startElementName; // Offset: 16 + keen::ds::impact_nodes::NodeReference endNode; // Offset: 56 +}; + +struct impact_nodes.DataLink { + keen::ds::impact_nodes::NodeReference ownerNodeId; // Offset: 0 + keen::DsString ownerMemberName; // Offset: 16 + keen::ds::impact_nodes::NodeReference accessorNodeId; // Offset: 56 + keen::DsString accessorMemberName; // Offset: 72 +}; + +struct impact_nodes.FloatValueNode { + keen::float32 value; // Offset: 60 +}; + +struct impact_nodes.Uint32ValueNode { + keen::uint32 value; // Offset: 60 +}; + +struct impact_nodes.Sint32ValueNode { + keen::sint32 value; // Offset: 60 +}; + +struct impact_nodes.BoolValueNode { + keen::bool value; // Offset: 60 +}; + +struct impact_nodes.Float2ValueNode { + keen::float2 value; // Offset: 60 +}; + +struct impact_nodes.Float3ValueNode { + keen::float3 value; // Offset: 60 +}; + +struct impact_nodes.Float4ValueNode { + keen::float4 value; // Offset: 60 +}; + +struct impact_nodes.TemplateValueNode { + keen::ds::ecs::TemplateReference value; // Offset: 60 +}; + +struct impact_nodes.EntityTagValueNode { + keen::ds::ecs::EntityTagReference value; // Offset: 60 +}; + +struct impact_nodes.MaterialValueNode { + keen::ds::CollisionFeedbackMaterialReference value; // Offset: 60 +}; + +struct impact_nodes.TimeValueNode { + keen::Time value; // Offset: 64 +}; + +struct impact_nodes.FactionValueNode { + keen::ds::FactionType value; // Offset: 60 +}; + +struct impact_nodes.AttributeReferenceValueNode { + keen::ds::AttributeReference value; // Offset: 60 +}; + +struct impact_nodes.DamageSetupValueNode { + keen::ds::impact::DamageSetup value; // Offset: 60 +}; + +struct impact_nodes.DamageTerraformingSetupValueNode { + keen::ds::impact::DamageTerraformingSetup value; // Offset: 60 +}; + +struct impact_nodes.AttackCategoryMaskValueNode { + keen::ds::impact::AttackCategoryMask value; // Offset: 60 +}; + +struct impact_nodes.WeaponCategoryValueNode { + keen::ds::WeaponCategoryReference value; // Offset: 60 +}; + +struct impact_nodes.MajorDirectionValueNode { + keen::ds::impact::MajorDirection value; // Offset: 60 +}; + +struct impact_nodes.HitReactionTypeValueNode { + keen::ds::impact::HitReactionType value; // Offset: 60 +}; + +struct impact_nodes.PushBackForceValueNode { + keen::ds::impact::PushBackForce value; // Offset: 60 +}; + +struct impact_nodes.VisceralAttackTypeValueNode { + keen::ds::VisceralAttackType value; // Offset: 60 +}; + +struct impact_nodes.HaltNode { +}; + +struct impact_nodes.DestroySelfNode { +}; + +struct impact_nodes.ResetNode { +}; + +struct impact_nodes.RVM { +}; + +struct impact_nodes.GetParent { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetRoot { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetEntityParent { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetHitTarget { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::ecs::EntityId hitEntityId; // Offset: 12 +}; + +struct impact_nodes.GetLockedTarget { + keen::ds::ecs::TargetType type; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::ecs::EntityId targetId; // Offset: 16 +}; + +struct impact_nodes.GetSelf { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.GetTransform { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.GetSlotTransform { + keen::ds::AttachmentSlot slot; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 +}; + +struct impact_nodes.ConsumeItem { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.ApplyOffset { + keen::WorldTransform transform; // Offset: 8 + keen::float3 localOffset; // Offset: 64 + keen::float3 worldOffset; // Offset: 76 + keen::float4 orientationOffset; // Offset: 88 + keen::WorldTransform result; // Offset: 104 +}; + +struct impact_nodes.StartQuery { + keen::WorldTransform transform; // Offset: 8 + keen::float32 range; // Offset: 64 + keen::float3 offset; // Offset: 68 + keen::ds::ecs::QueryId queryId; // Offset: 80 + keen::ds::ecs::ColliderFlags colliderFlag; // Offset: 84 + keen::bool sortByDistance; // Offset: 86 +}; + +struct impact_nodes.StopQuery { + keen::ds::ecs::QueryId queryId; // Offset: 8 +}; + +struct impact_nodes.FetchAttribute { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::impact::TypedValue32 value; // Offset: 28 +}; + +struct impact_nodes.SetAttribute { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::impact::TypedValue32 value; // Offset: 28 +}; + +typedef keen::impact_nodes::ValuesMathOperator impact_nodes.ValuesMathOperator; + +struct impact_nodes.ApplyChange { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::AttributeReference attributeRefInput; // Offset: 28 + keen::ds::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::ds::impact::TypedValue32 valueStorage; // Offset: 45 + keen::bool valueStorageSign; // Offset: 46 + keen::ds::impact::TypedValue32 value; // Offset: 47 +}; + +struct impact_nodes.ChangeAttribute { + keen::ds::AttributeReference attributeRef; // Offset: 8 + keen::ds::ecs::EntityId entityId; // Offset: 24 + keen::ds::AttributeReference attributeRefInput; // Offset: 28 + keen::ds::impact_nodes::ValuesMathOperator operation; // Offset: 44 + keen::ds::impact::TypedValue32 valueStorage; // Offset: 45 + keen::ds::impact::TypedValue32 value; // Offset: 46 +}; + +struct impact_nodes.AddValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.SubValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.MulValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.DivValues { + keen::ds::impact_nodes::ValuesMathOperator op; // Offset: 8 + keen::ds::impact::TypedValue32 valueA; // Offset: 9 + keen::ds::impact::TypedValue32 valueB; // Offset: 10 + keen::ds::impact::TypedValue32 result; // Offset: 11 +}; + +struct impact_nodes.Normalize { + keen::float3 input; // Offset: 8 + keen::float3 result; // Offset: 20 +}; + +struct impact_nodes.SetLength { + keen::float3 input; // Offset: 8 + keen::float32 length; // Offset: 20 + keen::float3 result; // Offset: 24 +}; + +struct impact_nodes.GetLength { + keen::float3 input; // Offset: 8 + keen::float32 result; // Offset: 20 +}; + +struct impact_nodes.SpawnEntity { + keen::bool breakImpactHierarchy; // Offset: 8 + keen::ds::ecs::TemplateReference templateInput; // Offset: 12 + keen::WorldTransform transform; // Offset: 32 + keen::float3 position; // Offset: 88 + keen::float3 velocity; // Offset: 100 + keen::ds::ecs::EntityId targetEntityId; // Offset: 112 + keen::ds::ecs::EntityId parentEntityId; // Offset: 116 + keen::uint32 levelOverride; // Offset: 120 + keen::ds::FactionType factionOverride; // Offset: 124 + keen::ds::ecs::EntityId entityId; // Offset: 128 +}; + +struct impact_nodes.CreateDamageSetup { + keen::sint32 physicalCutDamage; // Offset: 8 + keen::sint32 physicalPierceDamage; // Offset: 12 + keen::sint32 physicalBluntDamage; // Offset: 16 + keen::sint32 magicalFireDamage; // Offset: 20 + keen::sint32 magicalIceDamage; // Offset: 24 + keen::sint32 magicalFogDamage; // Offset: 28 + keen::sint32 magicalFogLightning; // Offset: 32 + keen::sint32 healing; // Offset: 36 + keen::sint32 poisonDamage; // Offset: 40 + keen::sint32 woodDamage; // Offset: 44 + keen::sint32 stoneDamage; // Offset: 48 + keen::sint32 metalDamage; // Offset: 52 + keen::sint32 explosionDamage; // Offset: 56 + keen::ds::impact::DamageSetup damageSetup; // Offset: 60 +}; + +struct impact_nodes.ApplyDamage { + keen::ds::ecs::EntityId sourceId; // Offset: 12 + keen::ds::ecs::EntityId targetId; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::ds::impact::MajorDirection hitDirection; // Offset: 44 + keen::float32 attackMod; // Offset: 48 + keen::float32 attackStaminaMod; // Offset: 52 + keen::float32 noiseRange; // Offset: 56 + keen::sint32 manaCost; // Offset: 60 + keen::ds::AttributeRootReference damageScaleAttribute; // Offset: 64 + keen::ds::impact::PushBackForce pushBack; // Offset: 80 + keen::ds::impact::HitReactionType hitReaction; // Offset: 82 + keen::ds::impact::DamageSetup damageSetup; // Offset: 84 + keen::ds::impact::AttackCategoryMask attackCategory; // Offset: 136 + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 140 + keen::ds::CollisionFeedbackMaterialReference materialId; // Offset: 156 + keen::bool canBeBlocked; // Offset: 172 + keen::bool canCrit; // Offset: 173 + keen::ds::VisceralAttackType visceralAttackType; // Offset: 174 + keen::bool ignoreConsecutiveHits; // Offset: 175 + keen::bool pusbackDirectionOverride; // Offset: 176 + keen::bool wasBlocked; // Offset: 177 +}; + +struct impact_nodes.GetConsecutiveHitCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.IsConsecutiveHit { + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsSkillUnlocked { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::skilltree_nodes::NodeReference skill; // Offset: 16 +}; + +struct impact_nodes.ClearConsecutiveHits { + keen::Time clearInterval; // Offset: 8 +}; + +struct impact_nodes.GetCursorTransform { + keen::ds::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 +}; + +struct impact_nodes.Terraforming { + keen::ds::ecs::EntityId playerId; // Offset: 8 + keen::WorldTransform transform; // Offset: 16 + keen::ds::TerraformingType terraformingType; // Offset: 72 + keen::ds::impact::DamageTerraformingSetup damageTerraformingSetup; // Offset: 76 + keen::ds::CollisionFeedbackMaterialReference materialId; // Offset: 96 + keen::float32 rangeDefault; // Offset: 112 + keen::float32 rangeAdd; // Offset: 116 + keen::float32 rangeFlatten; // Offset: 120 +}; + +struct impact_nodes.GetQueryResultCount { + keen::ds::ecs::QueryId queryId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FetchQueryResult { + keen::ds::ecs::QueryId queryId; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::ds::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 hitPosition; // Offset: 20 + keen::float3 hitNormal; // Offset: 32 + keen::bool hit; // Offset: 44 + keen::bool queryNew; // Offset: 45 + keen::bool updateNew; // Offset: 46 +}; + +struct impact_nodes.SetTransform { + keen::WorldTransform transform; // Offset: 8 +}; + +struct impact_nodes.GetOnCollisionEventCount { + keen::uint32 count; // Offset: 8 +}; + +struct impact_nodes.Wait { + keen::Time durationInput; // Offset: 8 +}; + +struct impact_nodes.FetchOnCollisionEvent { + keen::uint32 index; // Offset: 12 + keen::bool ignoreSameRoot; // Offset: 16 + keen::bool ignoreWeakspots; // Offset: 17 + keen::ds::ecs::EntityId otherEntity; // Offset: 20 + keen::ds::ecs::EntityId otherEntityRoot; // Offset: 24 + keen::bool combatCollider; // Offset: 28 + keen::float3 position; // Offset: 32 + keen::float3 normal; // Offset: 44 + keen::bool isWeakSpot; // Offset: 56 +}; + +struct impact_nodes.TriggerNoise { + keen::float3 position; // Offset: 8 + keen::float32 range; // Offset: 20 +}; + +struct impact_nodes.PacifyFaction { + keen::ds::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.CallFactionForHelp { + keen::ds::FactionType faction; // Offset: 8 +}; + +struct impact_nodes.RandomBranchNode { + keen::float32 chance; // Offset: 12 +}; + +struct impact_nodes.RandomValueNode { + keen::float32 value; // Offset: 8 +}; + +struct impact_nodes.ForEach { + keen::ds::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 + keen::uint32 count; // Offset: 16 +}; + +struct impact_nodes.WhileLoopBranchNode { + keen::ds::impact_nodes::ImpactNodeExecutionBranch doBranch; // Offset: 8 + keen::uint32 index; // Offset: 12 +}; + +struct impact_nodes.OnEvent { + keen::ds::impact::EventStream eventType; // Offset: 8 + keen::ds::impact::EventStream eventStream; // Offset: 9 +}; + +struct impact_nodes.FilterRandom { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.FilterFriends { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterSameRoot { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterRootEntity { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::bool invert; // Offset: 9 +}; + +struct impact_nodes.FilterFaction { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::ds::FactionMask faction; // Offset: 10 +}; + +struct impact_nodes.FilterConsecutiveHits { + keen::ds::impact::EventStream eventStream; // Offset: 8 +}; + +struct impact_nodes.FilterEntityTag { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::ds::ecs::EntityTagReference entityTag; // Offset: 12 + keen::bool invert; // Offset: 28 +}; + +struct impact_nodes.ForEachCollisionInStream { + keen::ds::impact::EventStream eventStream; // Offset: 16 + keen::ds::ecs::EntityId otherEntity; // Offset: 20 + keen::ds::ecs::EntityId otherRootEntity; // Offset: 24 + keen::float3 position; // Offset: 28 + keen::float3 normal; // Offset: 40 + keen::WorldTransform transform; // Offset: 56 + keen::uint32 voxelMaterial; // Offset: 112 + keen::bool isCombatTarget; // Offset: 116 + keen::bool isWeakSpot; // Offset: 117 +}; + +struct impact_nodes.ForEachFootDownInStream { + keen::ds::impact::EventStream eventStream; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.IsStreamEmpty { + keen::ds::impact::EventStream eventStream; // Offset: 12 +}; + +struct impact_nodes.GetStreamEventCount { + keen::ds::impact::EventStream eventStream; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.ForEachCollision { + keen::ds::ecs::EntityId otherEntity; // Offset: 16 + keen::float3 position; // Offset: 20 + keen::float3 normal; // Offset: 32 +}; + +struct impact_nodes.ForEachHitEvent { + keen::bool wasParried; // Offset: 16 + keen::bool wasBlocked; // Offset: 17 + keen::bool wasBlockBroken; // Offset: 18 + keen::bool wasBackstab; // Offset: 19 + keen::bool wasCrit; // Offset: 20 + keen::bool wasImmune; // Offset: 21 + keen::bool wasKillingBlow; // Offset: 22 + keen::bool wasVisceral; // Offset: 23 + keen::bool wasWeakspot; // Offset: 24 + keen::bool wasSkillShot; // Offset: 25 + keen::ds::FactionType targetFaction; // Offset: 26 + keen::ds::impact::AttackCategoryMask attackCategory; // Offset: 27 + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 28 + keen::ds::ecs::EntityId rootEntity; // Offset: 44 + keen::ds::ecs::EntityId sourceEntity; // Offset: 48 + keen::ds::ecs::EntityId targetRootEntity; // Offset: 52 + keen::ds::ecs::EntityId targetEntity; // Offset: 56 + keen::ds::ecs::EntityId weaponEntity; // Offset: 60 + keen::float3 position; // Offset: 64 + keen::float3 normal; // Offset: 76 + keen::sint32 healthChange; // Offset: 88 + keen::sint32 staminaChange; // Offset: 92 +}; + +struct impact_nodes.SendBaseHitEvent { + keen::float3 position; // Offset: 8 + keen::float3 normal; // Offset: 20 + keen::ds::CollisionFeedbackMaterialReference impactMaterial; // Offset: 32 + keen::uint32 voxelMaterial; // Offset: 48 + keen::ds::ecs::EntityId targetId; // Offset: 52 +}; + +struct impact_nodes.ForEachParryEvent { + keen::ds::ecs::EntityId blockerId; // Offset: 16 + keen::ds::ecs::EntityId attackerId; // Offset: 20 + keen::sint32 staminaDrain; // Offset: 24 +}; + +struct impact_nodes.ForEachItemInBackpack { + keen::ds::ecs::EntityId ownerId; // Offset: 16 + keen::ds::ecs::EntityId pideId; // Offset: 20 +}; + +struct impact_nodes.BoolIfBranchNode { + keen::bool value; // Offset: 12 +}; + +typedef keen::impact_nodes::ValuesCompareOperator impact_nodes.ValuesCompareOperator; + +struct impact_nodes.IsEqual { + keen::ds::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::ds::impact::TypedValue32 valueA; // Offset: 13 + keen::ds::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsLess { + keen::ds::impact_nodes::ValuesCompareOperator op; // Offset: 12 + keen::ds::impact::TypedValue32 valueA; // Offset: 13 + keen::ds::impact::TypedValue32 valueB; // Offset: 14 +}; + +struct impact_nodes.IsInState { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::actor::StateFlag state; // Offset: 16 +}; + +struct impact_nodes.HasFaction { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::FactionMask faction; // Offset: 16 +}; + +struct impact_nodes.HasEntityTag { + keen::ds::ecs::EntityId entityId; // Offset: 12 + keen::ds::ecs::EntityTagReference entityTag; // Offset: 16 +}; + +struct impact_nodes.IsValidEntity { + keen::ds::ecs::EntityId entityId; // Offset: 12 +}; + +struct impact_nodes.IsInsideBox { + keen::WorldTransform transform; // Offset: 16 + keen::float3 position; // Offset: 72 + keen::float3 box; // Offset: 84 + keen::float3 boxOffset; // Offset: 96 +}; + +struct impact_nodes.HasAttackCategory { + keen::ds::impact::AttackCategoryMask categoryMask; // Offset: 12 + keen::ds::impact::AttackCategoryMask contains; // Offset: 13 + keen::bool matchAll; // Offset: 14 +}; + +struct impact_nodes.HasWeaponCategory { + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::ds::WeaponCategoryReference requiredCategory; // Offset: 28 +}; + +struct impact_nodes.HasWeaponCategoryType { + keen::ds::WeaponCategoryReference weaponCategory; // Offset: 12 + keen::ds::WeaponCategoryTypeMask allowedCategories; // Offset: 28 +}; + +struct impact_nodes.GetWeaponVisualEntityId { + keen::ds::ecs::EntityId entityId; // Offset: 8 +}; + +struct impact_nodes.IsSameEntity { + keen::ds::ecs::EntityId entityAId; // Offset: 12 + keen::ds::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsEnemy { + keen::ds::ecs::EntityId entityAId; // Offset: 12 + keen::ds::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.IsFriend { + keen::ds::ecs::EntityId entityAId; // Offset: 12 + keen::ds::ecs::EntityId entityBId; // Offset: 16 +}; + +struct impact_nodes.GetEnemyCountInRange { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::uint32 count; // Offset: 12 +}; + +struct impact_nodes.SetEnemyVariable { + keen::ds::ecs::EntityId entityId; // Offset: 8 + keen::ds::enemy01::EnemyVariableReference variable; // Offset: 12 + keen::bool state; // Offset: 28 +}; + +struct ImpactDefinition { +}; + +struct ImpactVariable { + keen::HashKey32 name; // Offset: 0 + keen::HashKey32 configId; // Offset: 4 + keen::HashKey32 type; // Offset: 8 + keen::uint16 size; // Offset: 12 + keen::uint16 offsetInBytes; // Offset: 14 + keen::DsString dbgName; // Offset: 16 +}; + +struct ImpactProgram { + keen::ds::impact::ProgramId id; // Offset: 0 + keen::Guid programGuid; // Offset: 4 + keen::uint16 stackSize; // Offset: 20 + keen::ds::impact::EventStreamMask usedStreams; // Offset: 22 + keen::DsArray code; // Offset: 24 + keen::DsArray codeShutdown; // Offset: 64 + keen::DsArray dataLayout; // Offset: 104 + keen::DsArray data; // Offset: 144 +}; + +struct ImpactConfigInfoEntry { + keen::ds::string nodeName; // Offset: 0 + keen::HashKey32 name; // Offset: 40 + keen::HashKey32 configId; // Offset: 44 + keen::HashKey32 type; // Offset: 48 +}; + +struct ExecutionInfo { + keen::Guid nodeId; // Offset: 0 + keen::DsArray branch; // Offset: 16 +}; + +struct ImpactFunctionCallDebugInfo { + keen::ds::string nodeName; // Offset: 0 + keen::Guid nodeId; // Offset: 40 + keen::uint16 pc; // Offset: 56 +}; + +struct ImpactInfo { + keen::Guid programGuid; // Offset: 0 + keen::uint32 cmdCount; // Offset: 16 + keen::DsArray configs; // Offset: 24 + keen::DsArray programFlow; // Offset: 64 + keen::DsArray dataLayout; // Offset: 104 + keen::DsArray debugInfo; // Offset: 144 + keen::DsArray shutdownlDebugInfo; // Offset: 184 +}; + +struct ImpactConfigData { + keen::ds::impact::Configurations configValues; // Offset: 0 +}; + +struct ImpactSubDirectory { +}; + +struct ImpactDirectory { +}; + +struct ImpactRegistryResource { + keen::DsArray programs; // Offset: 0 +}; + +typedef keen::CelestialBodyDirection CelestialBodyDirection; + +struct CelestialBodySetup { + keen::float32 riseAngle; // Offset: 0 + keen::float32 setAngle; // Offset: 4 + keen::float32 zenithAngle; // Offset: 8 + keen::ds::CelestialBodyDirection direction; // Offset: 12 +}; + +struct IngameTimeConfig { + keen::Time dayStart; // Offset: 0 + keen::Time dayEnd; // Offset: 8 + keen::ds::CelestialBodySetup sunSetup; // Offset: 16 + keen::ds::CelestialBodySetup moonSetup; // Offset: 32 +}; + +struct IngameTimeSpan { + keen::Time start; // Offset: 0 + keen::Time end; // Offset: 8 +}; + +typedef keen::input_mapping::PresetId input_mapping.PresetId; + +typedef keen::input_mapping::ControlOperationType input_mapping.ControlOperationType; + +typedef keen::input_mapping::InputModality input_mapping.InputModality; + +typedef keen::input_mapping::AxisDirection input_mapping.AxisDirection; + +typedef keen::input_mapping::runtime::GameplayAction input_mapping.runtime.GameplayAction; + +typedef keen::input_mapping::config::GameplayAction input_mapping.config.GameplayAction; + +struct input_mapping.serialize.ControlOperation { + keen::ds::input_mapping::ControlOperationType type; // Offset: 0 + keen::ds::string id; // Offset: 8 + keen::ds::input_mapping::AxisDirection axis; // Offset: 48 +}; + +struct input_mapping.serialize.ControlOperationCombo { + keen::ds::input_mapping::serialize::ControlOperation operation; // Offset: 0 + keen::DsArray modifiers; // Offset: 56 +}; + +struct input_mapping.serialize.KeyboardMouseAction { + keen::ds::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::ds::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 96 + keen::ds::input_mapping::InputModality modality; // Offset: 192 + keen::bool toggle; // Offset: 193 +}; + +struct input_mapping.serialize.GamepadAction { + keen::ds::input_mapping::serialize::ControlOperationCombo primary; // Offset: 0 + keen::ds::input_mapping::serialize::ControlOperationCombo secondary; // Offset: 96 + keen::ds::input_mapping::InputModality modality; // Offset: 192 + keen::bool toggle; // Offset: 193 +}; + +struct input_mapping.serialize.ActionInputBinding { + keen::DsString gameplay; // Offset: 0 + keen::ds::input_mapping::serialize::KeyboardMouseAction keyboardMouse; // Offset: 40 + keen::ds::input_mapping::serialize::GamepadAction gamepad; // Offset: 240 +}; + +struct input_mapping.serialize.InputBindings { + keen::ds::input_mapping::PresetId customKeyboardMouseBasePresetId; // Offset: 0 + keen::ds::input_mapping::PresetId customGamepadBasePresetId; // Offset: 1 + keen::DsArray bindings; // Offset: 8 +}; + +typedef keen::input_mapping::runtime::ContextualVector2Context input_mapping.runtime.ContextualVector2Context; + +struct input_mapping.runtime.ContextualVector2 { + keen::ds::input_mapping::runtime::ContextualVector2Context context; // Offset: 0 + keen::Vector2 value; // Offset: 4 +}; + +struct ecs.InteractionQuery { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::float32 queryRadius; // Offset: 4 + keen::float3 queryOffset; // Offset: 8 +}; + +struct ecs.ClientInteractionQuery { + keen::uint32 nearestOfferedInteractionOfferId; // Offset: 0 + keen::ds::ecs::SpecialInteraction specialInteraction; // Offset: 4 +}; + +struct ecs.InteractionAcceptData { + keen::ds::ecs::EntityId guestId; // Offset: 0 + keen::ds::InventorySlotId usedItem; // Offset: 4 + keen::uint32 offerId; // Offset: 12 +}; + +struct ecs.InteractionOffer { + keen::ds::actor::ActorSequenceReference defaultAction; // Offset: 0 + keen::ds::LocaTagReference verbLoca; // Offset: 16 + keen::ds::LocaTagReference lastVerbLoca; // Offset: 32 + keen::ds::LocaTagReference overrideVerbLoca; // Offset: 48 + keen::ds::actor::SequenceResourceId overrideSequence; // Offset: 64 + keen::ds::ecs::InteractionAcceptData lastAttemptData; // Offset: 68 + keen::ds::ecs::InteractionAcceptData lastAcceptData; // Offset: 84 + keen::Time lastAcceptTime; // Offset: 104 + keen::uint32 offerId; // Offset: 112 + keen::ds::LocaTagId verbId; // Offset: 116 + keen::bool isColliderDirty; // Offset: 120 + keen::bool isOffered; // Offset: 121 + keen::bool reduceInteractionWeight; // Offset: 122 +}; + +struct ecs.ClientInteractionOffer { + keen::ds::LocaTagId verbId; // Offset: 0 + keen::ds::ecs::EntityId lastAcceptionId; // Offset: 4 + keen::bool isOffered; // Offset: 8 +}; + +typedef keen::ecs::InteractionLockFlag ecs.InteractionLockFlag; + +typedef keen::ecs::InteractionLockMask ecs.InteractionLockMask; + +struct ecs.InteractionLock { + keen::ds::ItemReference requiredItemRef; // Offset: 0 + keen::ds::ItemId requiredItem; // Offset: 16 + keen::ds::PlayerPermissionsMask requiredPermission; // Offset: 20 + keen::ds::ecs::InteractionLockMask lockMask; // Offset: 21 + keen::ds::actor::ActorSequenceReference successfulAttempt; // Offset: 24 + keen::ds::actor::ActorSequenceReference failedAttempt; // Offset: 40 + keen::bool destroy; // Offset: 56 +}; + +struct ecs.LootRefill { + keen::ds::ItemReference lootableItemRef; // Offset: 0 + keen::uint32 refillCount; // Offset: 16 + keen::uint32 maxCount; // Offset: 20 +}; + +struct ecs.InteractionLootRefill { + keen::Time waitTime; // Offset: 0 + keen::ds::LocaTagReference verbLoca; // Offset: 8 + keen::ds::actor::ActorSequenceReference defaultSequence; // Offset: 24 + keen::DsArray items; // Offset: 40 +}; + +struct ecs.DynamicInteractionLootRefill { + keen::Time nextRefill; // Offset: 0 +}; + +struct ecs.ClientInteractionLock { + keen::Guid failedAttempt; // Offset: 0 + keen::Guid successfulAttempt; // Offset: 16 + keen::ds::ItemId requiredItem; // Offset: 32 + keen::uint32 offerId; // Offset: 36 + keen::ds::PlayerPermissionsMask requiredPermission; // Offset: 40 +}; + +struct ecs.InteractionKnowledgeLock { + keen::ds::ecs::ToggleModifier modifier; // Offset: 0 + keen::bool useSpawnKnowledgeRequirement; // Offset: 1 + keen::ds::GameKnowledgeRequirement unlockRequiement; // Offset: 4 + keen::ds::KnowledgeId queryId; // Offset: 108 +}; + +struct ecs.ClientInteractionToState { +}; + +struct ecs.InteractionPause { + keen::Time timeout; // Offset: 0 +}; + +struct ecs.RemoveInteractionOnEmptyInventory { +}; + +typedef keen::ecs::DirectionalState ecs.DirectionalState; + +struct ecs.DirectionalInteractionSetup { + keen::bool backToIdle; // Offset: 0 + keen::ds::LocaTagReference verb; // Offset: 4 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 20 + keen::ds::animationgraph::StateIdReference animationState; // Offset: 36 +}; + +struct ecs.DirectionalInteraction { + keen::ds::ecs::DirectionalState state; // Offset: 0 + keen::ds::ecs::DirectionalInteractionSetup idleState; // Offset: 4 + keen::ds::ecs::DirectionalInteractionSetup frontInteraction; // Offset: 56 + keen::ds::ecs::DirectionalInteractionSetup backInteraction; // Offset: 108 +}; + +struct ecs.InteractionToggle { + keen::ds::LocaTagReference offToOnVerb; // Offset: 0 + keen::ds::actor::ActorSequenceReference offToOnSequence; // Offset: 16 + keen::ds::LocaTagReference onToOffVerb; // Offset: 32 + keen::ds::actor::ActorSequenceReference onToOffSequence; // Offset: 48 +}; + +struct ecs.CraftingInteraction { + keen::ds::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::ObjectReference workshop; // Offset: 12 + keen::ds::WorkshopId workshopId; // Offset: 28 +}; + +struct ecs.ClientCraftingInteraction { + keen::ds::CraftingPropMask craftingPropsInRange; // Offset: 0 + keen::uint32 nextRecipeComfortRequirement; // Offset: 8 + keen::ds::WorkshopId workshopId; // Offset: 12 +}; + +struct ecs.InteractionAttachment { + keen::ds::ecs::Offset guestOffset; // Offset: 0 + keen::Time lastAttachTime; // Offset: 40 +}; + +struct ecs.InteractionAttachmentGuest { + keen::ds::ecs::EntityId lastHostEntityId; // Offset: 0 +}; + +struct ItemData { + keen::uint32 count; // Offset: 0 + keen::ds::ecs::EntityId pide; // Offset: 4 +}; + +struct ItemStack { + keen::ds::ItemId id; // Offset: 0 + keen::ds::ItemData data; // Offset: 4 +}; + +struct ecs.DefaultInventoryDirectory { +}; + +struct ecs.DefaultInventoryEntry { + keen::ds::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct ecs.RandomDefaultInventoryEntry { + keen::ds::ItemReference item; // Offset: 0 + keen::uint32 countMin; // Offset: 16 + keen::uint32 countMax; // Offset: 20 + keen::float spawnProbability; // Offset: 24 +}; + +struct ecs.WeightedDefaultInventoryEntry { + keen::float weight; // Offset: 28 +}; + +struct ecs.RandomDefaultInventoryEntrySelector { +}; + +struct ecs.DefaultInventorySetup { +}; + +struct ecs.ItemStackInfoResource { + keen::ds::ItemReference itemRef; // Offset: 0 + keen::ds::ItemId item; // Offset: 16 + keen::uint32 countMin; // Offset: 20 + keen::uint32 countMax; // Offset: 24 + keen::float spawnProbability; // Offset: 28 +}; + +struct ecs.ItemStackInfoResourceWeighted { + keen::float weight; // Offset: 32 +}; + +struct ecs.DefaultInventoryEntrySelectorResource { + keen::DsArray selectionCandidates; // Offset: 0 +}; + +struct ecs.DefaultInventoryResource { + keen::DsArray stacks; // Offset: 0 + keen::DsArray stackSelectors; // Offset: 40 +}; + +struct ecs.DefaultInventory { + keen::ds::ecs::DefaultInventoryReference defaultInventory; // Offset: 0 + keen::bool keepOnRandomLoot; // Offset: 16 + keen::bool applied; // Offset: 17 +}; + +struct ecs.DefaultInventoryOverrides { + keen::ds::ecs::DefaultInventoryReference slot1; // Offset: 0 + keen::ds::ecs::DefaultInventoryReference slot2; // Offset: 16 + keen::ds::ecs::DefaultInventoryReference slot3; // Offset: 32 +}; + +struct ecs.AffectedByIncreasedPickupSkill { +}; + +struct ecs.AdditionalMaterialLoot { + keen::ds::ItemId additionalItemId; // Offset: 0 +}; + +typedef keen::InventoryCategory InventoryCategory; + +struct ecs.InventoryLink { + keen::ds::ecs::EntityId entityId; // Offset: 0 + keen::ds::InventoryCategory category; // Offset: 4 +}; + +typedef keen::ecs::InventoryFlags ecs.InventoryFlags; + +typedef keen::ecs::InventorySetupMask ecs.InventorySetupMask; + +struct ecs.InventorySetup { + keen::StaticArray linksEntities; // Offset: 0 + keen::StaticArray linksCategories; // Offset: 64 + keen::ds::ecs::InventorySetupMask inventoryFlags; // Offset: 80 + keen::uint8 genericSlotCount; // Offset: 81 + keen::uint8 availableSlotCount; // Offset: 82 + keen::bool isInitialized; // Offset: 83 +}; + +struct ecs.InventorySetupInit { +}; + +struct ecs.Inventory { + keen::StaticArray slots; // Offset: 0 +}; + +struct ecs.InventoryCraftingStock { +}; + +struct ecs.ResourceNodeDropInfo { + keen::ds::ecs::TemplateReference entity; // Offset: 0 + keen::ds::ItemReference item; // Offset: 16 + keen::uint8 stackAmount; // Offset: 32 + keen::float32 weight; // Offset: 36 +}; + +struct ecs.ResourceNodePickupDrops { + keen::ds::ecs::TemplateReference pickupItemReference; // Offset: 0 + keen::DsArray drops; // Offset: 16 + keen::uint8 numberOfDrops; // Offset: 56 + keen::float32 dropWhileAlivePercentage; // Offset: 60 + keen::bool dropInWorld; // Offset: 64 + keen::float32 yOffsetMin; // Offset: 68 + keen::float32 yOffsetMax; // Offset: 72 + keen::float32 dropRadiusMin; // Offset: 76 + keen::float32 dropRadiusMax; // Offset: 80 + keen::float32 velocityMin; // Offset: 84 + keen::float32 velocityMax; // Offset: 88 +}; + +struct ecs.MiningNodeKnowledge { + keen::bool useSpawnTriggerKnowledge; // Offset: 0 + keen::ObjectReference knowledgeNode; // Offset: 4 + keen::bool unlockForGroup; // Offset: 20 +}; + +struct ecs.PickupItem { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemReference item; // Offset: 4 + keen::uint32 level; // Offset: 20 + keen::ds::ItemRarity rarity; // Offset: 24 + keen::uint16 pickupAmount; // Offset: 26 +}; + +struct ecs.PickupItemModelSetup { +}; + +struct ecs.DestroyOnLoot { + keen::Time despawnTime; // Offset: 0 + keen::ds::NotifierReference vfxOnDestroy; // Offset: 8 + keen::ds::ecs::Offset offset; // Offset: 24 + keen::bool isActive; // Offset: 64 + keen::bool shouldDestroy; // Offset: 65 + keen::ds::SoundContainerReference sfx; // Offset: 68 + keen::ds::VfxReference vfx; // Offset: 84 +}; + +struct ecs.DestroyOnLootActivated { +}; + +struct ecs.AddDestructibleOnLoot { + keen::uint32 health; // Offset: 0 +}; + +typedef keen::ItemCategory ItemCategory; + +typedef keen::ItemCategoryMask ItemCategoryMask; + +typedef keen::CrosshairType CrosshairType; + +typedef keen::ItemRarityMask ItemRarityMask; + +typedef keen::ItemFlag ItemFlag; + +typedef keen::ItemFlags ItemFlags; + +struct ItemTag { + keen::ds::LocaTagReference label; // Offset: 0 +}; + +typedef keen::ObjectReference ItemTagReference; + +struct ItemTagWeight { + keen::ds::ItemTagReference tag; // Offset: 0 + keen::uint32 nominator; // Offset: 16 + keen::uint32 denominator; // Offset: 20 +}; + +struct ItemTagInfo { + keen::Guid tagGuid; // Offset: 0 + keen::ds::LocaTagId labelId; // Offset: 16 +}; + +struct ItemTagInfoList { + keen::DsArray itemTags; // Offset: 0 +}; + +typedef keen::SnappingToggleMode SnappingToggleMode; + +struct ChangeVoxelData { + keen::bool isBuildingVoxel; // Offset: 0 + keen::ObjectReference placeVoxelMaterial; // Offset: 4 + keen::uint8 placeVoxelMaterialId; // Offset: 20 +}; + +typedef keen::CameraDistance CameraDistance; + +struct CameraDistanceOverride { + keen::ds::CameraDistance distance; // Offset: 0 + keen::bool override; // Offset: 1 +}; + +typedef keen::BuildingCameraMode BuildingCameraMode; + +struct CursorFxConfig { + keen::ds::SoundContainerReference loopedSfx; // Offset: 0 + keen::ds::SoundContainerReference oneShotSfx; // Offset: 16 + keen::ds::VfxReference oneShotVfx; // Offset: 32 + keen::ds::ecs::Offset oneShotVfxOffset; // Offset: 48 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 88 + keen::sint32 vfxParameterOffset_boundingBoxMin; // Offset: 152 + keen::sint32 vfxParameterOffset_boundingBoxMax; // Offset: 156 +}; + +struct GliderConfig { + keen::float32 accelerationForward; // Offset: 0 + keen::float32 airResistanceLongitudinal; // Offset: 4 + keen::float32 airResistanceLateral; // Offset: 8 + keen::float32 airResistanceVertical; // Offset: 12 + keen::float32 yawAngleSpeed; // Offset: 16 + keen::float32 pitchAngleSpeed; // Offset: 20 + keen::float32 rollAngleSpeed; // Offset: 24 +}; + +typedef keen::InventoryStockType InventoryStockType; + +typedef keen::AttachDirection AttachDirection; + +typedef keen::AttachAngleRange AttachAngleRange; + +struct AttachAngleConfig { + keen::ds::AttachAngleRange ceilingAngle; // Offset: 0 + keen::ds::AttachAngleRange wallAngle; // Offset: 1 + keen::ds::AttachAngleRange floorAngle; // Offset: 2 + keen::ds::AttachDirection defaultAttachDirection; // Offset: 3 + keen::ds::AttachDirection secondaryAttachDirection; // Offset: 4 + keen::bool hasSecondaryAttachDirection; // Offset: 5 + keen::bool forceUprightNormal; // Offset: 6 +}; + +struct VoxelRequirement { + keen::ObjectReference soil; // Offset: 0 + keen::ds::VoxelMaterialId soilMaterialId; // Offset: 16 + keen::float factor; // Offset: 20 +}; + +struct VoxelRequirementInfo { + keen::DsArray requirements; // Offset: 0 +}; + +struct CursorActionConfig { + keen::bool snapPositionToAddableVoxel; // Offset: 0 + keen::bool snapPositionToRemovableVoxel; // Offset: 1 +}; + +struct CursorConfig { + keen::ds::ecs::TemplateReference customCursorEntity; // Offset: 0 + keen::bool autoCenterPivot; // Offset: 16 + keen::float3 pivotOffset; // Offset: 20 + keen::bool allowSnapToSnappingBoxes; // Offset: 32 + keen::bool forceSnapPositionToVoxelGrid; // Offset: 33 + keen::bool snapOrientationToVoxelGrid; // Offset: 34 + keen::bool snapToCenterWhenSmallerThanVoxel; // Offset: 35 + keen::bool smoothOutTerrainNormal; // Offset: 36 + keen::bool alwaysFacePlayer; // Offset: 37 + keen::bool addRandomYawAngleOffset; // Offset: 38 + keen::ds::CursorActionConfig primaryActionConfig; // Offset: 39 + keen::ds::AttachAngleConfig attachAngleConfig; // Offset: 41 + keen::bool checkRequiredMaterialsOnPrimaryAction; // Offset: 48 + keen::ds::CursorActionConfig secondaryActionConfig; // Offset: 49 + keen::ds::AttachAngleConfig attachAngleConfigSecondary; // Offset: 51 + keen::bool checkRequiredMaterialsOnSecondaryAction; // Offset: 58 + keen::bool useSphereCast; // Offset: 59 + keen::bool keepSnappedToPlane; // Offset: 60 + keen::bool checkBuildZoneEnemies; // Offset: 61 + keen::bool checkSurfaceTopology; // Offset: 62 + keen::DsArray allowedVoxels; // Offset: 64 + keen::bool highlightHoveredEntity; // Offset: 104 + keen::bool showVoxelBlock; // Offset: 105 + keen::ds::CursorFxConfig addFxConfig; // Offset: 108 + keen::ds::CursorFxConfig subFxConfig; // Offset: 268 + keen::ObjectReference defaultCursorStaticModel; // Offset: 428 + keen::ObjectReference defaultCursorSkinnedModel; // Offset: 444 + keen::ObjectReference defaultCursorVfx; // Offset: 460 +}; + +struct VoxelSnappingConfigOld { + keen::uint3 snapBoxOffsetMin; // Offset: 0 + keen::uint3 snapBoxOffsetMax; // Offset: 12 + keen::uint8 basementHeight; // Offset: 24 +}; + +struct EquipmentModel { + keen::ds::BlendShapeMask mask; // Offset: 0 + keen::ObjectReference model; // Offset: 4 +}; + +typedef keen::SequenceRequirments SequenceRequirments; + +typedef keen::SequenceRequirmentMask SequenceRequirmentMask; + +typedef keen::KnowledgeTriggerType KnowledgeTriggerType; + +struct GameKnowledgeTrigger { + keen::ds::KnowledgeTriggerType triggerType; // Offset: 0 + keen::ObjectReference unlockKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 + keen::ds::ItemKnowledgeTrigger itemKnowledge; // Offset: 36 + keen::bool useWorldItemKnowledge; // Offset: 37 + keen::ObjectReference item; // Offset: 40 +}; + +struct ItemSequence { + keen::ds::actor::SequenceResourceId sequenceId; // Offset: 0 + keen::ds::actor::ActorSequenceReference sequence; // Offset: 4 + keen::ds::actor::ActionSequenceTrigger triggeredBy; // Offset: 20 + keen::ds::SequenceRequirmentMask requirements; // Offset: 22 + keen::ds::skilltree_nodes::NodeReference requiredSkill; // Offset: 24 + keen::ds::ecs::SpecialInteraction specialInteractionType; // Offset: 40 + keen::ds::ItemReference costOverride; // Offset: 44 + keen::bool triggerKnowledge; // Offset: 60 + keen::ds::GameKnowledgeTrigger knowledgeTrigger; // Offset: 64 + keen::HashKey32 triggerKnowledgeId; // Offset: 120 + keen::ds::ecs::EntityTagReference sequenceEntityTag; // Offset: 124 + keen::DsArray combinedEntityTags; // Offset: 144 +}; + +struct UiActionHints { + keen::ds::LocaTagReference primaryAction; // Offset: 0 + keen::ds::LocaTagReference secondaryAction; // Offset: 16 + keen::ds::LocaTagReference tertiaryAction; // Offset: 32 + keen::ds::input_mapping::runtime::GameplayAction tertiaryGameplayAction; // Offset: 48 + keen::bool alwaysShow; // Offset: 49 +}; + +struct EquipmentSetup { + keen::ds::EquipmentSlotType slot; // Offset: 0 + keen::bool repeatActionWhenPressed; // Offset: 1 + keen::ds::ecs::EntityTagReference itemSequencesEntityTag; // Offset: 4 + keen::ds::BlendShapeMask blendShapeMask; // Offset: 20 + keen::ds::VisualEquipmentMask hideMask; // Offset: 24 + keen::ds::ImpactEquipmentMask disableMask; // Offset: 28 + keen::ds::ecs::TemplateReference impactEntity; // Offset: 32 + keen::ds::ImpactProgramReference program; // Offset: 48 + keen::ds::ecs::TemplateReference visualEntity; // Offset: 64 + keen::ObjectReference visualModel; // Offset: 80 + keen::ds::PrimaryAnimationSet primaryAnimationSet; // Offset: 96 + keen::ds::SecondaryAnimationSet secondaryAnimationSet; // Offset: 97 + keen::ds::CrosshairType crosshairType; // Offset: 98 + keen::ds::CursorConfig cursorConfig; // Offset: 104 + keen::ObjectReference cursorModel; // Offset: 584 + keen::ObjectReference cursorSkinnedModel; // Offset: 600 + keen::ObjectReference cursorVfx; // Offset: 616 + keen::ds::CameraDistanceOverride cameraDistanceOverride; // Offset: 632 + keen::ds::BuildingCameraMode buildingCameraMode; // Offset: 634 + keen::float32 defaultVerticalPlacementOffset; // Offset: 636 + keen::float32 maxTiltAngle; // Offset: 640 + keen::float32 maxDistance; // Offset: 644 + keen::ds::ecs::TemplateReference placedEntity; // Offset: 648 + keen::float3 placementAABBmin; // Offset: 664 + keen::float3 placementAABBmax; // Offset: 676 + keen::float3 snappingAABBmin; // Offset: 688 + keen::float3 snappingAABBmax; // Offset: 700 + keen::DsArray placementColliders; // Offset: 712 + keen::ds::ecs::TriggerShapes placementNoBuildZones; // Offset: 752 + keen::ds::BuffTypeReference appliedBuff; // Offset: 792 + keen::ds::BuffTypeReference appliedDebuff; // Offset: 808 + keen::bool allowPlacementBelowFog; // Offset: 824 + keen::ds::InhibitBuildingCheck checkInhibitBuild; // Offset: 825 + keen::bool buildZoneRequired; // Offset: 826 + keen::bool requiresAltarSlot; // Offset: 827 + keen::DsArray requiredCraftingIngredients; // Offset: 832 + keen::float3 placedEntityLocalSpawnVelocity; // Offset: 872 + keen::ds::ChangeVoxelData voxelData; // Offset: 884 + keen::ObjectReference voxelObject; // Offset: 908 + keen::ObjectReference terrainVoxelObject; // Offset: 924 + keen::ds::VoxelSnappingConfigOld voxelSnappingConfig; // Offset: 940 + keen::ObjectReference voxelBlueprintConfig; // Offset: 968 + keen::ObjectReference voxelBlueprintMaterialPool; // Offset: 984 + keen::sint8 voxelObjectMaterialOverride; // Offset: 1000 + keen::DsArray visualModels; // Offset: 1008 + keen::ds::GliderConfig gliderConfig; // Offset: 1048 + keen::ds::TerraformingType terraformingType; // Offset: 1076 +}; + +typedef keen::ItemKnowledgeTriggerMask ItemKnowledgeTriggerMask; + +struct ItemKnowledgeBase { + keen::ds::ItemKnowledgeTriggerMask trigger; // Offset: 0 + keen::ds::LocaTagReference triggerTag; // Offset: 4 +}; + +struct ItemKnowledgeName { + keen::ds::NameLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeDescription { + keen::ds::DescriptionLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeLore { + keen::ds::LoreLocaTag tag; // Offset: 20 +}; + +struct ItemKnowledgeRecipe { + keen::bool unused; // Offset: 20 +}; + +struct ItemLevelRange { + keen::uint32 minLevel; // Offset: 0 + keen::uint32 maxLevel; // Offset: 4 +}; + +struct StackSizeRange { + keen::uint16 minStackSize; // Offset: 0 + keen::uint16 maxStackSize; // Offset: 2 +}; + +struct ItemCommerceLink { + keen::ds::CommerceProductReference product; // Offset: 0 + keen::ds::CommerceProductId id; // Offset: 16 + keen::bool isSet; // Offset: 20 +}; + +struct ItemDamageSetup { + keen::float32 speedMod; // Offset: 0 + keen::float32 dmgMod; // Offset: 4 + keen::ds::impact::DamageDistribution distribution; // Offset: 8 + keen::bool isSet; // Offset: 60 +}; + +struct ItemPermissionSetup { + keen::ds::PlayerPermissionsMask permissions; // Offset: 0 + keen::bool isSet; // Offset: 1 +}; + +struct ItemArmorSetup { + keen::ds::impact::ArmorDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 36 +}; + +struct ItemBlockSetup { + keen::float quality; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemScaledCostSetup { + keen::float staminaMod; // Offset: 0 + keen::bool isSet; // Offset: 4 +}; + +struct ItemFuelData { + keen::Time burnTime; // Offset: 0 + keen::uint32 energyOutput; // Offset: 8 + keen::bool isSet; // Offset: 12 +}; + +struct ItemColorCombination { + keen::ds::ColorCombinationReference combination; // Offset: 0 +}; + +struct ItemComfortSetup { + keen::uint32 comfortAmount; // Offset: 0 +}; + +struct ItemInfoExposure { + keen::bool enable; // Offset: 0 + keen::float exposure; // Offset: 4 +}; + +typedef keen::ItemClassAlignmentType ItemClassAlignmentType; + +typedef keen::ObjectReference PerkReference; + +struct ItemCollectionInfo { + keen::bool isOverrideModelSet; // Offset: 0 + keen::ObjectReference overrideModel; // Offset: 4 + keen::ds::ecs::Offset overrideModelOffset; // Offset: 20 + keen::DsArray categories; // Offset: 64 +}; + +struct ItemInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::uint16 maxStackSize; // Offset: 20 + keen::bool generateRarity; // Offset: 22 + keen::ds::ItemRarity rarity; // Offset: 23 + keen::ds::ItemRarityMask disableRarityGeneration; // Offset: 24 + keen::ds::StackSizeRange randomLootStackRange; // Offset: 26 + keen::DsArray overridePickupModels; // Offset: 32 + keen::ds::ecs::TemplateReference overridePickupEntity; // Offset: 72 + keen::ds::NotifierReference pickupFx; // Offset: 88 + keen::ds::NameLocaTag name; // Offset: 104 + keen::ds::CaptionLocaTag caption; // Offset: 120 + keen::ds::DescriptionLocaTag description; // Offset: 136 + keen::ds::LoreLocaTag lore; // Offset: 152 + keen::ds::UiActionHints uiActionHints; // Offset: 168 + keen::ds::ItemCategory category; // Offset: 220 + keen::ds::AmmunitionType ammunitionType; // Offset: 221 + keen::ds::WeaponCategoryReference weaponCategoryReference; // Offset: 224 + keen::ds::ItemClassAlignmentType itemClassAlignment; // Offset: 240 + keen::ds::MidiInstrumentType midiInstrumentType; // Offset: 241 + keen::ds::EquipmentSetup equipment; // Offset: 248 + keen::DsArray sequences; // Offset: 1328 + keen::ds::ecs::TemplateReference pidEntity; // Offset: 1368 + keen::ObjectReference exchangeOnBroken; // Offset: 1384 + keen::ds::ImageReference iconImage; // Offset: 1400 + keen::ObjectReference iconModel; // Offset: 1416 + keen::ObjectReference iconScene; // Offset: 1432 + keen::ds::ecs::Offset iconRenderOffset; // Offset: 1448 + keen::float32 iconRenderCookingScale; // Offset: 1488 + keen::float32 iconRenderGlobalScale; // Offset: 1492 + keen::ds::ItemInfoExposure overrideSceneExposure; // Offset: 1496 + keen::bool fitToItemModelBoundingBox; // Offset: 1504 + keen::ds::ItemFlags flags; // Offset: 1506 + keen::bool overrideKnowledgeGeneration; // Offset: 1508 + keen::Bitmask16 generateKnowledge; // Offset: 1510 + keen::DsArray tags; // Offset: 1512 + keen::DsArray uiValues; // Offset: 1552 + keen::DsArray uiBuffValues; // Offset: 1592 + keen::ds::impact::Configurations impactValues; // Offset: 1632 + keen::StaticArray perkReferences; // Offset: 1672 + keen::ds::ItemLevelRange itemLevelRange; // Offset: 1752 + keen::ds::ItemDamageSetup damageSetup; // Offset: 1760 + keen::ds::ItemArmorSetup armorSetup; // Offset: 1824 + keen::ds::ItemFuelData fuelSetup; // Offset: 1864 + keen::ds::ItemBlockSetup blockSetup; // Offset: 1880 + keen::ds::ItemScaledCostSetup scaledCostSetup; // Offset: 1888 + keen::ds::ItemCommerceLink commerceLink; // Offset: 1896 + keen::ds::ItemPermissionSetup permissionSetup; // Offset: 1920 + keen::ds::ItemColorSetupInternal itemPaletteColorSetup; // Offset: 1924 + keen::ds::ItemCollectionInfo collectionInfo; // Offset: 1944 + keen::ds::ItemComfortSetup comfortSetup; // Offset: 2048 + keen::DsString debugName; // Offset: 2056 +}; + +struct ItemConvertInfo { + keen::DsString name; // Offset: 0 + keen::Guid id; // Offset: 40 + keen::DsArray> knowledge; // Offset: 56 + keen::Guid visualModelGuid; // Offset: 96 + keen::DsArray visualModels; // Offset: 112 + keen::ds::VisualEquipmentMask hideMask; // Offset: 152 + keen::ds::BlendShapeMask allowedBlendShapeMask; // Offset: 156 + keen::ds::BlendShapeMask setBlendShapeMask; // Offset: 160 + keen::ds::ColorCombination colorCombination; // Offset: 164 + keen::Guid voxelMaterialGuid; // Offset: 212 + keen::bool isDevItem; // Offset: 228 +}; + +struct GameKnowledgeGenerationScope { + keen::Bitmask16 knowledgeTypes; // Offset: 0 +}; + +struct ItemSubDirectory { +}; + +struct ItemRarityDropSettings { + keen::float32 common; // Offset: 0 + keen::float32 uncommon; // Offset: 4 + keen::float32 rare; // Offset: 8 + keen::float32 legendary; // Offset: 12 +}; + +struct WeaponCategory { + keen::ds::LocaTagReference locaTag; // Offset: 0 + keen::ds::AttributeReference damageMod; // Offset: 16 + keen::ds::WeaponCategoryType categoryType; // Offset: 32 + keen::ds::ItemClassAlignmentType classType; // Offset: 33 + keen::float32 cameraTraumaVerySmall; // Offset: 36 + keen::float32 cameraTraumaSmall; // Offset: 40 + keen::float32 cameraTraumaNormal; // Offset: 44 + keen::float32 cameraTraumaBig; // Offset: 48 + keen::float32 cameraTraumaVeryBig; // Offset: 52 + keen::float32 cameraImpulseStrength; // Offset: 56 + keen::Time cameraImpulseDuration; // Offset: 64 +}; + +struct WeaponCategoryResource { + keen::Guid guid; // Offset: 0 + keen::ds::WeaponCategory weaponCategory; // Offset: 16 +}; + +struct WeaponCategoryDirectory { +}; + +struct ItemDirectory { + keen::ObjectReference defaultIconScene; // Offset: 0 + keen::ds::ItemRarityDropSettings rarityDropWeights; // Offset: 16 + keen::float weaponArmorRatio; // Offset: 32 + keen::ObjectReference weaponCategoryDirectory; // Offset: 36 +}; + +struct WeaponCategoryDirectoryResource { + keen::DsArray weaponCategories; // Offset: 0 +}; + +struct ItemRegistryResource { + keen::DsArray itemRefs; // Offset: 0 + keen::DsArray itemTags; // Offset: 40 + keen::DsArray weaponCategories; // Offset: 80 + keen::DsArray dbgNames; // Offset: 120 +}; + +struct ItemIconRegistryEntryResource { + keen::Guid guid; // Offset: 0 + keen::ds::UiTextureResource uiTexture; // Offset: 16 +}; + +struct ItemIconRegistryResource { + keen::DsArray icons; // Offset: 0 +}; + +struct DevItemRegistryResource { +}; + +struct ItemKnowledgeLock { + keen::ds::LocaTagId unlockedLocaId; // Offset: 0 + keen::ds::LocaTagId keyLocaId; // Offset: 4 + keen::ds::ItemKnowledgeTriggerMask unlockTrigger; // Offset: 8 +}; + +struct ItemKnowledge { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemKnowledgeMask lockedKnowledgeMask; // Offset: 4 + keen::ds::ItemKnowledgeLock nameLock; // Offset: 8 + keen::ds::ItemKnowledgeLock descriptionLock; // Offset: 20 + keen::ds::ItemKnowledgeLock loreLock; // Offset: 32 + keen::ds::ItemKnowledgeLock recipeLock; // Offset: 44 +}; + +struct ItemKnowledgeResource { + keen::DsArray knowledgeArray; // Offset: 0 +}; + +struct PickupFxConfig { + keen::ds::SoundContainerReference sfx; // Offset: 0 + keen::ds::VfxReference vfx; // Offset: 16 +}; + +struct PickupModelOverride { + keen::ObjectReference model; // Offset: 0 +}; + +struct PickupEntityOverride { + keen::ds::ecs::TemplateReference entity; // Offset: 0 +}; + +struct ItemCollectionOptionBase { +}; + +struct ItemCollectionCategoryReference { + keen::ObjectReference category; // Offset: 0 +}; + +struct ItemCollectionModelOverride { + keen::ObjectReference model; // Offset: 0 + keen::ds::ecs::Offset modelOffset; // Offset: 16 +}; + +struct VoxelBlueprintItem { + keen::ds::ItemId itemId; // Offset: 0 + keen::uint3 size; // Offset: 4 + keen::DsArray data; // Offset: 16 + keen::bool isDataCompressed; // Offset: 56 +}; + +struct VoxelBlueprintItemRegistryResource { + keen::DsArray blueprintItems; // Offset: 0 +}; + +struct ItemPropsForPropTestResource { + keen::DsArray propItems; // Offset: 0 +}; + +struct ItemCollectionDirectory { +}; + +struct ItemCollectionSubDirectory { +}; + +struct ItemCollectionSetup { + keen::ObjectReference hierarchy; // Offset: 0 + keen::ObjectReference completionKnowledge; // Offset: 16 +}; + +struct ItemCollectionSlot { + keen::ds::string jointName; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 40 +}; + +struct ItemCollectionSlotId { + keen::ObjectReference itemId; // Offset: 80 +}; + +struct ItemCollectionSlotCategory { + keen::ObjectReference category; // Offset: 80 +}; + +struct ItemCollectionSlotEquipment { + keen::ds::EquipmentSlot equipmentSlot; // Offset: 80 +}; + +struct ItemCollectionResource { + keen::DsArray slots; // Offset: 0 + keen::ds::KnowledgeId completionKnowledgeId; // Offset: 40 +}; + +struct ItemCollectionSlotResource { + keen::ds::ItemCollectionId collectionId; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 4 + keen::ds::ItemId itemId; // Offset: 44 + keen::ds::ItemCollectionId collectionCategoryId; // Offset: 48 + keen::ds::EquipmentSlot equipmentSlot; // Offset: 52 +}; + +struct ItemCollectionCategoryDirectory { +}; + +struct ItemCollectionCategory { +}; + +struct SceneScatterData { + keen::ObjectReference scatterSet; // Offset: 0 + keen::uint2 start; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool disable; // Offset: 32 + keen::bool writeDebug; // Offset: 33 +}; + +typedef keen::WorldDistributionTypeFlags WorldDistributionTypeFlags; + +struct SceneResetPlayersOutOfBounds { + keen::float32 marginHorizontal; // Offset: 0 + keen::float32 marginVertical; // Offset: 4 + keen::DsArray playableAreas; // Offset: 8 +}; + +struct Scene { + keen::ObjectReference voxelWorld; // Offset: 0 + keen::uint2 worldSize; // Offset: 16 + keen::int3 worldOrigin; // Offset: 24 + keen::ObjectReference ibl; // Offset: 36 + keen::float32 iblIntensity; // Offset: 52 + keen::ObjectReference atmosphere; // Offset: 56 + keen::ds::Biome biome; // Offset: 72 + keen::ObjectReference biomeMap; // Offset: 76 + keen::ds::SceneScatterData scatterData; // Offset: 92 + keen::bool limitMacroScattering; // Offset: 128 + keen::uint2 macroScatterStart; // Offset: 132 + keen::uint2 macroScatterSize; // Offset: 140 + keen::bool disableVoxelBrushDisplacement; // Offset: 148 + keen::ds::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 149 + keen::bool isTestScene; // Offset: 150 + keen::float32 distantObjectSize; // Offset: 152 + keen::uint32 moveVersion; // Offset: 156 + keen::ds::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 160 +}; + +struct ItemIconScene { + keen::float32 fixedExposure; // Offset: 208 +}; + +typedef keen::WorldTransformFlags WorldTransformFlags; + +typedef keen::ContentPass ContentPass; + +struct SceneObject { + keen::WorldTransform worldTransform; // Offset: 0 + keen::ds::WorldTransformFlags worldTransformFlags; // Offset: 56 + keen::ds::ContentPass contentPass; // Offset: 57 +}; + +struct SceneCamera { + keen::DsString name; // Offset: 64 + keen::Guid guid; // Offset: 104 + keen::float32 nearClip; // Offset: 120 + keen::float32 farClip; // Offset: 124 + keen::float32 fovY; // Offset: 128 +}; + +struct ItemIconSceneCamera { +}; + +struct ItemIconSceneSun { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct SceneBaseLight { + keen::HdrColorRgb color; // Offset: 64 +}; + +struct ScenePointLight { + keen::float32 radius; // Offset: 80 + keen::bool castShadows; // Offset: 84 +}; + +struct ItemIconScenePointLight { +}; + +struct CameraData { + keen::float32 nearClip; // Offset: 0 + keen::float32 farClip; // Offset: 4 + keen::float32 fovY; // Offset: 8 +}; + +struct render.AtmosphereParameters { + keen::float32 planetRadius; // Offset: 0 + keen::ColorRgb rayleighScattering; // Offset: 4 + keen::float32 rayleighDensity; // Offset: 16 + keen::ColorRgb ozoneExtinction; // Offset: 20 + keen::float32 ozoneDensity; // Offset: 32 + keen::float32 rayleightDistribution; // Offset: 36 + keen::float32 mieScattering; // Offset: 40 + keen::float32 mieExtinction; // Offset: 44 + keen::float32 mieDensity; // Offset: 48 + keen::float32 mieDistribution; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::FloatRange yRange; // Offset: 60 +}; + +struct ItemIconSceneInfo { + keen::ds::CameraData camera; // Offset: 0 + keen::WorldTransform cameraTransform; // Offset: 16 + keen::ObjectReference ibl; // Offset: 72 + keen::ds::render::AtmosphereParameters atmosphereParameters; // Offset: 88 + keen::float32 fixedExposure; // Offset: 156 + keen::float32 iblIntensity; // Offset: 160 + keen::float32 sunAzimuth; // Offset: 164 + keen::float32 sunElevation; // Offset: 168 + keen::float3 sunColor; // Offset: 172 + keen::DsArray lights; // Offset: 184 + keen::DsArray lightsTransform; // Offset: 224 +}; + +struct JournalDirectory { +}; + +struct JournalSubDirectory { +}; + +struct JournalLoreCategory { + keen::ds::LocaTagReference categoryName; // Offset: 0 +}; + +struct JournalCollectionBase { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::LocaTagReference referencedDocumentName; // Offset: 16 + keen::uint32 priority; // Offset: 32 +}; + +struct JournalCollection { +}; + +typedef keen::QuestSourceType QuestSourceType; + +typedef keen::QuestType QuestType; + +struct JournalQuestReward { +}; + +struct JournalItemReward { + keen::ds::ItemReference item; // Offset: 0 +}; + +struct JournalExperienceReward { + keen::ObjectReference experience; // Offset: 0 +}; + +struct CompletableJournalCollection { + keen::ds::QuestSourceType questSource; // Offset: 36 + keen::ds::QuestType type; // Offset: 37 +}; + +struct TutorialJournalCollection { +}; + +struct JournalEntryBase { + keen::ds::LocaTagReference name; // Offset: 0 + keen::ds::LocaTagReference text; // Offset: 16 + keen::ds::LocaTagReference mapMarkerReference; // Offset: 32 + keen::ObjectReference itemIcon; // Offset: 48 +}; + +struct JournalEntry { +}; + +struct CompletableJournalEntry { +}; + +struct TutorialJournalEntry { +}; + +struct JournalCompletionRequirement { +}; + +struct JournalEntryResource { + keen::ds::JournalEntryId entryId; // Offset: 0 + keen::ds::LocaTagId name; // Offset: 4 + keen::ds::LocaTagId text; // Offset: 8 + keen::ds::LocaTagId mapMarkerReference; // Offset: 12 + keen::ds::ItemId itemIconId; // Offset: 16 + keen::ds::KnowledgeId knowledgeRequirement; // Offset: 20 + keen::ds::KnowledgeId completionRequirement; // Offset: 24 +}; + +struct JournalCollectionResource { + keen::ds::JournalEntryId entryId; // Offset: 0 + keen::ds::LocaTagId loreCategory; // Offset: 4 + keen::ds::LocaTagId name; // Offset: 8 + keen::ds::LocaTagId referencedDocumentName; // Offset: 12 + keen::uint32 priority; // Offset: 16 + keen::bool isTutorial; // Offset: 20 + keen::DsArray entries; // Offset: 24 +}; + +struct QuestRewardResource { + keen::ds::ItemReference itemRef; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 16 + keen::HashKey32 experienceValueId; // Offset: 20 +}; + +struct JournalQuestResource { + keen::ds::QuestSourceType source; // Offset: 64 + keen::ds::QuestType type; // Offset: 65 + keen::bool unlockForAllPlayers; // Offset: 66 + keen::DsArray rewards; // Offset: 72 +}; + +struct JournalRegistryResource { + keen::DsArray quests; // Offset: 0 + keen::DsArray collections; // Offset: 40 +}; + +struct ecs.KnowledgeTrigger { + keen::StaticArray knowledgeIds; // Offset: 0 + keen::bool canActivate; // Offset: 32 + keen::bool canDeactivate; // Offset: 33 +}; + +struct SubEntityKnowledgeQuery { + keen::ds::KnowledgeId knowledgeQueryId; // Offset: 0 + keen::Guid subEntityTemplate; // Offset: 4 + keen::HashKey32 uiWorldEventId; // Offset: 20 +}; + +struct ecs.KnowledgeQuery { + keen::HashKey32 knowledgeId; // Offset: 0 + keen::HashKey32 uiWorldEventId; // Offset: 4 + keen::bool wasEventTriggered; // Offset: 8 + keen::StaticArray subEntityQueries; // Offset: 12 +}; + +struct ecs.MapMarkerUnlockRequirements { + keen::ds::GameKnowledgeRequirement hintState; // Offset: 0 + keen::ds::GameKnowledgeRequirement visibleState; // Offset: 104 + keen::bool hasCompletedState; // Offset: 208 + keen::ds::GameKnowledgeRequirement completedState; // Offset: 212 + keen::ds::KnowledgeId hintStateQueryId; // Offset: 316 + keen::ds::KnowledgeId visibleStateQueryId; // Offset: 320 + keen::ds::KnowledgeId completedStateQueryId; // Offset: 324 +}; + +struct ecs.KnowledgeTriggerToggle { +}; + +struct ecs.KnowledgeTriggerRange { +}; + +struct ecs.KnowledgeTriggerOnKill { + keen::bool useSceneKnowledgeTrigger; // Offset: 0 + keen::bool unlockForGroup; // Offset: 1 + keen::ds::GameKnowledgeTrigger triggerKnowledge; // Offset: 4 + keen::ds::KnowledgeId triggerKnowledgeId; // Offset: 60 +}; + +struct ecs.KnowledgeUiWorldEvent { + keen::ObjectReference triggerEvent; // Offset: 0 +}; + +struct LootTreeNodeIntermediate { + keen::Guid objectId; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 16 + keen::HashKey32 parentId; // Offset: 20 + keen::uint32 potentialSlots; // Offset: 24 + keen::uint32 potentialChildSlots; // Offset: 28 +}; + +struct LootTreeIntermediate { + keen::DsArray nodes; // Offset: 0 +}; + +struct LootNodeResource { + keen::HashKey32 nodeId; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 +}; + +struct LootContainerResource { + keen::uint32 lootSettingsIndex; // Offset: 8 +}; + +typedef keen::LootModifierMode LootModifierMode; + +struct LootModifierValue { + keen::ds::LootModifierMode mode; // Offset: 0 + keen::float32 value; // Offset: 4 +}; + +struct LootModifierInfo { + keen::ds::LootModifierValue level; // Offset: 0 + keen::ds::LootModifierValue levelOffset; // Offset: 8 + keen::float32 levelOffsetRangeMin; // Offset: 16 + keen::float32 levelOffsetRangeMax; // Offset: 20 + keen::StaticArray rarities; // Offset: 24 +}; + +struct LootSettingsResource { + keen::ds::LootModifierInfo modifier; // Offset: 0 + keen::DsArray tags; // Offset: 64 +}; + +struct SceneRandomLootResource { + keen::DsArray lootSettings; // Offset: 0 + keen::DsArray specialItems; // Offset: 40 + keen::DsArray lootNodes; // Offset: 80 + keen::DsArray lootContainer; // Offset: 120 +}; + +struct LootDistributionBaseNode { + keen::Guid objectId; // Offset: 0 + keen::DsArray tags; // Offset: 16 + keen::ds::LootModifierInfo modifier; // Offset: 56 + keen::uint32 potentialSlots; // Offset: 120 + keen::uint32 potentialChildSlots; // Offset: 124 +}; + +struct LootDistributionTreeNode { + keen::HashKey32 nodeId; // Offset: 128 + keen::HashKey32 parentId; // Offset: 132 + keen::DsArray childNodes; // Offset: 136 +}; + +struct LootContainerInfo { + keen::ds::LootContainerId id; // Offset: 128 + keen::ds::LootContainerId parentId; // Offset: 132 +}; + +struct SpecialItemInfo { + keen::HashKey32 nodeId; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 + keen::bool checkItemLabels; // Offset: 8 + keen::uint8 amount; // Offset: 9 +}; + +struct LootDistributionTreeResource { + keen::DsArray specialItems; // Offset: 176 +}; + +struct EntityRandomLootInfo { + keen::bool isLootEntity; // Offset: 0 + keen::uint32 potentialSlotCount; // Offset: 4 +}; + +struct SceneWhiteboxLootInfo { + keen::HashKey32 lootNodeId; // Offset: 0 + keen::ds::LootContainerInfo lootContainer; // Offset: 8 +}; + +struct SceneWhiteboxLootInfos { + keen::DsArray lootContainer; // Offset: 0 +}; + +struct LootSlotInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::uint16 stackSize; // Offset: 4 + keen::ds::ItemRarity rarity; // Offset: 6 + keen::uint32 level; // Offset: 8 +}; + +struct LootContainerFillInfo { + keen::uint8 version; // Offset: 0 + keen::uint8 filledSlots; // Offset: 1 + keen::StaticArray slots; // Offset: 4 +}; + +struct ImportantLootSlotInfo { + keen::uint32 importantItemIndex; // Offset: 0 + keen::ds::ItemId itemId; // Offset: 4 +}; + +struct ImportantLootContainerFillInfo { + keen::uint8 filledSlots; // Offset: 0 + keen::StaticArray slots; // Offset: 4 +}; + +struct LootModifierBase { + keen::ds::LootModifierMode mode; // Offset: 0 +}; + +struct LootModifierAmount { + keen::float32 amount; // Offset: 4 +}; + +struct LootModifierRarity { + keen::ds::ItemRarity rarity; // Offset: 1 + keen::float32 weight; // Offset: 4 +}; + +struct LootModifierItemValue { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct LootModifierLevelOffset { + keen::float32 value; // Offset: 4 +}; + +struct LootModifierLevelOffsetRange { + keen::float32 min; // Offset: 4 + keen::float32 max; // Offset: 8 +}; + +struct RandomLootItem { + keen::ds::ItemReference item; // Offset: 0 + keen::uint8 amount; // Offset: 16 + keen::bool checkItemLabels; // Offset: 17 +}; + +struct RandomLootItemInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemReference itemRef; // Offset: 4 + keen::uint8 amount; // Offset: 20 + keen::bool checkItemLabels; // Offset: 21 +}; + +struct LootTagInfo { + keen::HashKey32 tagId; // Offset: 0 + keen::float32 weight; // Offset: 4 + keen::Guid guid; // Offset: 8 +}; + +struct ObjectLootSettings { + keen::ds::LootModifierInfo modifier; // Offset: 0 + keen::DsArray tags; // Offset: 64 + keen::DsArray specialItems; // Offset: 104 +}; + +typedef keen::ShufflebagItemType ShufflebagItemType; + +struct ItemLabelGroupResource { + keen::DsArray labels; // Offset: 0 + keen::DsArray childGroups; // Offset: 40 +}; + +struct LootableItemInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::ds::ItemRarityMask rarities; // Offset: 4 + keen::bool useUiRarity; // Offset: 5 + keen::ds::ItemRarity uiRarity; // Offset: 6 + keen::ds::ItemLabelGroupResource labelGroups; // Offset: 8 + keen::uint16 stackSizeMin; // Offset: 88 + keen::uint16 stackSizeMax; // Offset: 90 + keen::uint16 stackSizeMaxScaled; // Offset: 92 + keen::bool stackSizeScalable; // Offset: 94 + keen::ds::ShufflebagItemType shufflebagType; // Offset: 95 + keen::bool hasWeaponCategory; // Offset: 96 + keen::ds::WeaponCategoryType weaponCategoryType; // Offset: 97 + keen::ds::EquipmentSlotType armorCategoryType; // Offset: 98 + keen::ds::ItemClassAlignmentType classAlignmentType; // Offset: 99 +}; + +struct LootableItemsResource { + keen::StaticArray globalRarityDropRates; // Offset: 0 + keen::float32 weaponArmorRatio; // Offset: 20 + keen::DsArray items; // Offset: 24 + keen::uint64 itemClassCategoryMask; // Offset: 64 + keen::uint64 weaponCategoryMask; // Offset: 72 + keen::uint64 armorCategoryMask; // Offset: 80 +}; + +struct DefaultLootLabelCollectionResource { + keen::DsArray lootSettings; // Offset: 0 +}; + +struct DefaultLootSettingsResource { + keen::ds::LootContainerId id; // Offset: 104 +}; + +struct DistributionLootSceneInput { + keen::Guid scatterSetId; // Offset: 0 + keen::ds::LootModifierInfo modifier; // Offset: 16 + keen::DsArray tags; // Offset: 80 + keen::DsString lootIdsInput; // Offset: 120 + keen::DsString lootTreeInput; // Offset: 160 +}; + +struct DistributionLootConverterParameters { + keen::DsArray lootSceneInputs; // Offset: 0 +}; + +struct DebugItemDropInfo { + keen::ds::ItemId itemId; // Offset: 0 + keen::float32 weight; // Offset: 4 +}; + +struct DebugLootSceneInfoMessage { + keen::Guid sceneId; // Offset: 0 +}; + +struct DebugLootContainerInfoMessage { + keen::HashKey32 nodeId; // Offset: 0 + keen::DsArray droppedItems; // Offset: 8 + keen::float32 weightSum; // Offset: 48 + keen::ds::LootModifierInfo modifierInfo; // Offset: 52 + keen::DsArray tags; // Offset: 120 + keen::DsArray possibleItems; // Offset: 160 +}; + +struct RegisteredLootContainerParams { + keen::ds::LootContainerId containerId; // Offset: 0 + keen::ds::LootContainerId parentNodeId; // Offset: 4 + keen::HashKey32 labelDefinitionsId; // Offset: 8 + keen::float baseProbability; // Offset: 12 + keen::uint8 slotsMin; // Offset: 16 + keen::uint8 slotsMax; // Offset: 17 + keen::DsOptional level; // Offset: 24 +}; + +struct DebugRegisteredLootContainerMessage { + keen::DsArray registeredContainer; // Offset: 0 +}; + +struct DebugTrackLootContainerMessage { + keen::bool isLootContainer; // Offset: 0 + keen::HashKey32 nodeId; // Offset: 4 +}; + +struct DebugRefreshLootMessage { + keen::HashKey32 nodeId; // Offset: 0 +}; + +struct GroupedItemLabels { +}; + +typedef keen::LabelMask LabelMask; + +typedef keen::MarkerTypeSorting MarkerTypeSorting; + +struct MapMarkerType { + keen::ds::MapMarkerTypeId markerId; // Offset: 0 + keen::ds::UiTexture icon; // Offset: 4 + keen::float32 iconDisplaySize; // Offset: 52 + keen::bool isHighlightable; // Offset: 56 + keen::bool isFastTravelDestination; // Offset: 57 + keen::bool showAboveFogOfWar; // Offset: 58 + keen::bool showLabel; // Offset: 59 + keen::bool showRange; // Offset: 60 + keen::bool isCustomMarkerType; // Offset: 61 + keen::bool canBeFiltered; // Offset: 62 + keen::ds::MarkerTypeSorting sortingCategory; // Offset: 63 + keen::uint8 minimizeAboveZoomStep; // Offset: 64 + keen::uint8 hideAboveZoomStep; // Offset: 65 + keen::Color minimizedColor; // Offset: 68 + keen::bool scaleWithZoom; // Offset: 72 +}; + +struct MapMarkerRegistryTool { +}; + +struct MapMarkerRegistryResource { + keen::DsArray mapMarkers; // Offset: 0 + keen::ds::UiTexturePreload texturePreload; // Offset: 40 +}; + +struct CustomMapMarker { + keen::WorldPosition position; // Offset: 0 + keen::uint8 colorScheme; // Offset: 24 + keen::ds::MapMarkerTypeId type; // Offset: 28 +}; + +typedef keen::npc::HappinessRequirement npc.HappinessRequirement; + +typedef keen::npc::HapinessMask npc.HapinessMask; + +struct npc.IdleSequenceSetup { + keen::Time minSequenceCooldown; // Offset: 0 + keen::Time maxSequenceCooldown; // Offset: 8 +}; + +typedef keen::player_bases::BaseIndex player_bases.BaseIndex; + +struct npc.PlacedNpcInfo { + keen::ds::player_bases::BaseIndex baseIndex; // Offset: 0 + keen::ds::ecs::EntityId entityId; // Offset: 4 + keen::ds::npc::HapinessMask happiness; // Offset: 8 +}; + +typedef keen::active_npc::State active_npc.State; + +typedef keen::active_npc::StateCondition active_npc.StateCondition; + +typedef keen::active_npc::Decision active_npc.Decision; + +typedef keen::active_npc::NpcType active_npc.NpcType; + +struct active_npc.DecisionSetup { + keen::float idleWeight; // Offset: 0 + keen::float inspectWeight; // Offset: 4 + keen::float sitWeight; // Offset: 8 + keen::float roamWeight; // Offset: 12 + keen::float workWeight; // Offset: 16 +}; + +struct active_npc.IdleSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.SearchTargetSetup { + keen::float32 targetRadius; // Offset: 0 + keen::float32 bedRadius; // Offset: 4 +}; + +struct active_npc.WorkSetup { + keen::Time minDuration; // Offset: 0 + keen::Time maxDuration; // Offset: 8 +}; + +struct active_npc.TargetSetup { + keen::bool isFarmland; // Offset: 0 + keen::bool isBed; // Offset: 1 + keen::bool isCraftingStation; // Offset: 2 + keen::bool isSeating; // Offset: 3 + keen::bool isFood; // Offset: 4 + keen::bool isInteresting; // Offset: 5 +}; + +struct ecs.NpcDialog { + keen::bool isFlame; // Offset: 0 + keen::ObjectReference dialog; // Offset: 4 + keen::ds::NpcDialogResource dialogResource; // Offset: 24 + keen::ds::LocaTagReference interactionVerbLoca; // Offset: 240 +}; + +struct ecs.DynamicNpcDialog { + keen::uint16 syncedKnowledgeQueryCounter; // Offset: 0 +}; + +struct ecs.NpcDialogPartner { + keen::bool isInGreetingRange; // Offset: 0 + keen::Time lastGreetingTime; // Offset: 8 +}; + +struct ecs.NpcState { + keen::ds::actor::ActorSequenceReference defaultGreetingSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference attentionGreetingSequence; // Offset: 16 + keen::ds::actor::TurnSetup turnSetup; // Offset: 32 + keen::ds::npc::IdleSequenceSetup idleSetup; // Offset: 104 + keen::ds::npc::HapinessMask hapinessMask; // Offset: 120 + keen::float32 minDistanceToPlayer; // Offset: 124 +}; + +typedef keen::ecs::PlayerMask ecs.PlayerMask; + +typedef keen::ecs::NpcInteractionState ecs.NpcInteractionState; + +typedef keen::ecs::NpcInteractionStates ecs.NpcInteractionStates; + +struct ecs.DynamicNpcState { + keen::ds::LocaTagId lastSelectedDialogId; // Offset: 0 + keen::ds::ecs::EntityId lastInteractingEntityId; // Offset: 4 + keen::bool dialogSequenceActive; // Offset: 8 + keen::Time nextGreetingTime; // Offset: 16 + keen::Time lastLookAtPlayerTime; // Offset: 24 + keen::Time nextLookAtPlayerTime; // Offset: 32 + keen::Time remainingNextSequenceTime; // Offset: 40 + keen::StaticArray queryIds; // Offset: 48 + keen::ds::ecs::PlayerMask playersInSight; // Offset: 112 + keen::ds::ecs::PlayerMask greetedPlayers; // Offset: 120 + keen::bool isInitialized; // Offset: 128 + keen::bool isSpawning; // Offset: 129 + keen::Quaternion revertToRotation; // Offset: 132 +}; + +struct ecs.ActiveNpcState { + keen::ds::NpcId npcId; // Offset: 0 + keen::ds::actor::ActorSequenceReference sitSequence; // Offset: 4 + keen::ds::actor::ActorSequenceReference sleepSequence; // Offset: 20 + keen::ds::actor::ActorSequenceReference inspectSequence; // Offset: 36 + keen::ds::active_npc::NpcType npcType; // Offset: 52 + keen::ds::active_npc::DecisionSetup decisionSetup; // Offset: 56 + keen::ds::active_npc::IdleSetup idleSetup; // Offset: 80 + keen::ds::active_npc::RoamingSetup roamingSetup; // Offset: 96 + keen::ds::active_npc::MovementSetup movementSetup; // Offset: 108 + keen::ds::active_npc::WorkSetup workSetup; // Offset: 120 + keen::ds::active_npc::SleepSetup sleepSetup; // Offset: 136 + keen::ds::active_npc::SearchTargetSetup searchTargetSetup; // Offset: 152 + keen::ds::active_npc::PathNodeSetup pathNodeSetup; // Offset: 160 +}; + +struct ecs.DynamicActiveNpcState { + keen::ds::active_npc::State state; // Offset: 0 + keen::ds::active_npc::State previousState; // Offset: 1 + keen::ds::active_npc::Decision decision; // Offset: 2 + keen::ds::npc::HapinessMask happiness; // Offset: 3 + keen::bool wasPaused; // Offset: 4 +}; + +struct ecs.NPCMovement { + keen::Time duration; // Offset: 0 + keen::float3 movement; // Offset: 8 +}; + +struct ecs.NpcCommon { + keen::ds::ecs::NpcInteractionStates interactionStates; // Offset: 0 + keen::Time stateTimer; // Offset: 8 + keen::Time currentStateDuration; // Offset: 16 + keen::Time stuckTime; // Offset: 24 + keen::Time stuckTimeOut; // Offset: 32 + keen::ds::ecs::RangeQueryId queryId; // Offset: 40 + keen::ds::ecs::EntityId closestPlayerId; // Offset: 44 + keen::ds::ecs::EntityId currentTargetId; // Offset: 48 + keen::ds::ecs::EntityId bedId; // Offset: 52 + keen::ds::ecs::EntityId previousTargetId; // Offset: 56 + keen::float sleepTime; // Offset: 60 + keen::float wakeUpTime; // Offset: 64 + keen::float closestPlayerDistance; // Offset: 68 + keen::float squaredDistanceToTarget; // Offset: 72 + keen::float3 currentTargetPosition; // Offset: 76 + keen::StaticArray history; // Offset: 88 + keen::uint8 historyIndex; // Offset: 1528 + keen::Guid currentSequenceId; // Offset: 1532 + keen::bool useReducedRoamingSpace; // Offset: 1548 + keen::bool shouldBeMoving; // Offset: 1549 + keen::uint8 unstuckTries; // Offset: 1550 + keen::uint8 stateFailures; // Offset: 1551 +}; + +struct ecs.ActiveNpcStateSaved { + keen::float3 spawnPosition; // Offset: 0 + keen::bool overrideRoamingRange; // Offset: 12 + keen::float roamingRange; // Offset: 16 + keen::WorldPosition teleportPositionAfterFinishing; // Offset: 24 +}; + +struct ecs.ClientActiveNpcState { + keen::ds::ecs::EntityId bedId; // Offset: 0 + keen::ds::npc::HapinessMask happiness; // Offset: 4 + keen::float roamingRange; // Offset: 8 +}; + +struct ecs.StoreAssociatedNpcIds { + keen::bool initialized; // Offset: 0 + keen::StaticArray npcIds; // Offset: 4 +}; + +struct ecs.ActiveNpcTarget { + keen::ds::active_npc::TargetSetup setup; // Offset: 0 + keen::ds::active_npc::NpcType npcType; // Offset: 6 + keen::ds::NpcId associatedNpc; // Offset: 8 + keen::ds::ecs::Offset targetOffset; // Offset: 12 +}; + +struct ecs.ClientActiveNpcTarget { + keen::ds::NpcId associatedNpc; // Offset: 0 + keen::bool isBed; // Offset: 4 +}; + +struct ecs.NpcSequenceEntry { + keen::ds::actor::ActorSequenceReference sequence; // Offset: 0 +}; + +struct ecs.BaseNpcSequences { + keen::DsArray sequences; // Offset: 0 +}; + +struct ecs.NpcIdleSequences { +}; + +struct ecs.NpcWorkSequences { +}; + +struct ecs.NpcActionSequences { + keen::ds::ecs::NpcIdleSequences idleSequences; // Offset: 0 + keen::ds::ecs::NpcWorkSequences workSequences; // Offset: 40 +}; + +struct NpcResource { + keen::ds::NpcId id; // Offset: 0 + keen::ds::LocaTagId name; // Offset: 4 + keen::bool isCraftingAssistant; // Offset: 8 + keen::ds::KnowledgeId unlockRequirement; // Offset: 12 + keen::ds::WorkshopId workshopId; // Offset: 16 + keen::ds::LocaTagId workshopLabel; // Offset: 20 + keen::ds::ItemId itemId; // Offset: 24 + keen::ds::ItemReference itemRef; // Offset: 28 + keen::ds::CharacterPresetReference characterPresetReference; // Offset: 44 + keen::ds::CharacterPresetId characterPresetId; // Offset: 60 + keen::ds::UiNpcRenderingOptions uiRendering; // Offset: 64 + keen::DsString debugName; // Offset: 120 +}; + +struct NpcCollection { + keen::DsArray npcs; // Offset: 0 +}; + +struct ecs.PathFinder { + keen::ds::ecs::PathGridDistance horizontalStartSearchRadius; // Offset: 0 + keen::ds::ecs::PathGridDistance verticalStartSearchRadius; // Offset: 4 + keen::ds::ecs::PathfindingSettings settings; // Offset: 8 +}; + +struct ecs.DynamicPathFinder { + keen::Time lastQueryTime; // Offset: 0 + keen::float3 targetPosition; // Offset: 8 + keen::float3 lastStartPosition; // Offset: 20 + keen::float3 lastTargetPosition; // Offset: 32 + keen::uint32 lastKeepDistance; // Offset: 44 + keen::HashKey32 lastParametersHash; // Offset: 48 + keen::float32 lastMaxTargetNodeDistance; // Offset: 52 + keen::ds::ecs::PathQueryId queryId; // Offset: 56 + keen::uint32 keepDistance; // Offset: 60 + keen::ds::ecs::PathGridDistance horizontalSearchRadius; // Offset: 64 + keen::ds::ecs::PathGridDistance verticalSearchRadius; // Offset: 68 + keen::ds::ecs::PathGridType gridType; // Offset: 72 + keen::bool keepLastResults; // Offset: 73 + keen::ds::ecs::PathQueryCheck pathQueryCheck; // Offset: 74 + keen::ds::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 76 + keen::ds::ecs::PathGridDistance minHorizontalSpace; // Offset: 80 + keen::ds::ecs::PathGridDistance minVerticalSpace; // Offset: 84 + keen::float32 maxTargetNodeDistance; // Offset: 88 + keen::uint32 maxWalkDistance; // Offset: 92 + keen::ds::ecs::PathQueryTargetType targetType; // Offset: 96 + keen::uint32 maxIterations; // Offset: 100 + keen::float2 horizontalKeepDistanceDirection; // Offset: 104 + keen::float3 freePathCheckPosition; // Offset: 112 + keen::bool enableAdditionalSpaceSearch; // Offset: 124 + keen::bool enableJumpUp; // Offset: 125 + keen::bool enableJumpDown; // Offset: 126 + keen::bool canOpenDoors; // Offset: 127 + keen::uint8 maxJumpUpHeight; // Offset: 128 + keen::uint8 maxJumpDownHeight; // Offset: 129 + keen::bool enforceUpdate; // Offset: 130 + keen::bool ignoreWalkableColliders; // Offset: 131 + keen::bool ignoreMovingObjects; // Offset: 132 + keen::ds::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 136 + keen::ds::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 140 + keen::ds::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 144 + keen::float32 horizontalDistanceCostFactor; // Offset: 196 + keen::bool checkFreePathToTarget; // Offset: 200 + keen::bool ignoreNodesCloseToHole; // Offset: 201 +}; + +typedef keen::ecs::PathWalkerState ecs.PathWalkerState; + +struct ecs.PathWalkerTurnSettings { + keen::float turnToNextWayPointMinDistanceWalk; // Offset: 0 + keen::float turnToNextWayPointMinDistanceRun; // Offset: 4 +}; + +struct ecs.PathWalker { + keen::ds::actor::ActorSequenceReference jumpSequence; // Offset: 0 + keen::ds::actor::ActorSequenceReference openDoorSequence; // Offset: 16 + keen::bool usePathFinding; // Offset: 32 + keen::ds::actor::ActorSequenceReference teleportSequence; // Offset: 36 + keen::float32 jumpMoveSpeed; // Offset: 52 + keen::float32 horizontalRadius; // Offset: 56 + keen::float32 verticalRadius; // Offset: 60 + keen::ds::ecs::PathNodeRequirements pathNodeRequirements; // Offset: 64 + keen::ds::ecs::PathWalkerTurnSettings turnSettings; // Offset: 68 +}; + +struct ecs.DynamicPathWalker { + keen::float3 targetPosition; // Offset: 0 + keen::uint32 upateCounter; // Offset: 12 + keen::uint32 pathIndex; // Offset: 16 + keen::ds::ecs::PathWalkerState state; // Offset: 20 + keen::float3 lookAtTarget; // Offset: 24 + keen::bool lookAtMovementTarget; // Offset: 36 + keen::bool setDesiredWorldLookDirection; // Offset: 37 + keen::uint32 keepDistance; // Offset: 40 + keen::ds::ecs::PathGridDistance horizontalSearchRadius; // Offset: 44 + keen::ds::ecs::PathGridDistance verticalSearchRadius; // Offset: 48 + keen::float32 maxArriveWaypointDistance; // Offset: 52 + keen::float32 maxArriveTargetDistance; // Offset: 56 + keen::bool shouldOverrideMinArriveDistance; // Offset: 60 + keen::float32 overrideMinArriveDistance; // Offset: 64 + keen::bool shouldOverrideMinTurnDistance; // Offset: 68 + keen::float32 overrideMinTurnDistance; // Offset: 72 + keen::Time stuckTime; // Offset: 80 + keen::bool keepLastResults; // Offset: 88 + keen::ds::ecs::PathQueryCheck pathQueryCheck; // Offset: 89 + keen::ds::ecs::EntityId freePathCheckIgnoreEntityId; // Offset: 92 + keen::ds::ecs::PathGridDistance minHorizontalSpace; // Offset: 96 + keen::ds::ecs::PathGridDistance minVerticalSpace; // Offset: 100 + keen::Time standingDuration; // Offset: 104 + keen::Time walkingDuration; // Offset: 112 + keen::float32 maxTargetNodeDistance; // Offset: 120 + keen::uint32 maxWalkDistance; // Offset: 124 + keen::ds::ecs::PathQueryTargetType targetType; // Offset: 128 + keen::float32 closestWaypointSquareDistance; // Offset: 132 + keen::uint32 maxIterations; // Offset: 136 + keen::float32 currentPathLengthToTarget; // Offset: 140 + keen::float2 horizontalKeepDistanceDirection; // Offset: 144 + keen::float3 freePathCheckPosition; // Offset: 152 + keen::float3 lastReachedTarget; // Offset: 164 + keen::bool isWalkingActive; // Offset: 176 + keen::bool enableAdditionalSpaceSearch; // Offset: 177 + keen::bool enableJumpUp; // Offset: 178 + keen::bool enableJumpDown; // Offset: 179 + keen::bool canOpenDoors; // Offset: 180 + keen::uint8 maxJumpUpHeight; // Offset: 181 + keen::uint8 maxJumpDownHeight; // Offset: 182 + keen::Time lastEnforceUpdateTime; // Offset: 184 + keen::bool useTurnSequences; // Offset: 192 + keen::ds::actor::SequenceRuntimeId turnSequenceId; // Offset: 200 + keen::ds::actor::SequenceRuntimeId teleportSequenceId; // Offset: 224 + keen::ds::actor::SequenceRuntimeId openDoorSequenceId; // Offset: 248 + keen::ds::ecs::PathGridDistance minTargetHorizontalSpace; // Offset: 272 + keen::bool enableTeleportMovement; // Offset: 276 + keen::bool ignoreWalkableColliders; // Offset: 277 + keen::ds::ecs::PathNodeCostFactors pathNodeCostFactors; // Offset: 280 + keen::float32 horizontalDistanceCostFactor; // Offset: 332 + keen::bool checkFreePathToTarget; // Offset: 336 + keen::ds::ecs::PathNodeRequirements pathNodeRequirementsOverride; // Offset: 338 + keen::bool useNodeRequirementsOverride; // Offset: 342 + keen::bool ignoreMovingObjects; // Offset: 343 + keen::bool tryToReachTargetAsCloseAsPossible; // Offset: 344 + keen::bool ignoreNodesCloseToHole; // Offset: 345 +}; + +typedef keen::ecs::PathGridInteractionObjectType ecs.PathGridInteractionObjectType; + +struct ecs.PathGridInteraction { + keen::ds::ecs::PathGridInteractionObjectType interactionObjectType; // Offset: 0 +}; + +struct ecs.DynamicPathGridInteraction { + keen::bool isRegistered; // Offset: 0 +}; + +struct ecs.PathFinderTester { +}; + +typedef keen::ecs::PathFindingMarkerType ecs.PathFindingMarkerType; + +typedef keen::ecs::PathFindingMarkerTestMode ecs.PathFindingMarkerTestMode; + +typedef keen::ecs::PathFindingMarkerTestState ecs.PathFindingMarkerTestState; + +struct ecs.PathFindingTestMarker { + keen::ds::ecs::PathFindingMarkerType type; // Offset: 0 + keen::ds::ecs::PathFindingMarkerTestMode testMode; // Offset: 1 + keen::ds::ecs::PathFindingMarkerTestState state; // Offset: 2 + keen::ds::ecs::PathQueryId queryId; // Offset: 4 +}; + +struct PerkDamageModifier { + keen::ds::impact::DamageDistribution distribution; // Offset: 0 + keen::bool isSet; // Offset: 52 +}; + +typedef keen::PerkConfig PerkConfig; + +struct Perk { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::DescriptionLocaTag description; // Offset: 16 + keen::ds::UiTexture icon; // Offset: 32 + keen::ds::ImpactProgramReference impact; // Offset: 80 + keen::bool simpleAttributeBuff; // Offset: 96 + keen::DsArray uiValues; // Offset: 104 + keen::ds::impact::Configurations impactValues; // Offset: 144 + keen::ds::PerkDamageModifier damageModifier; // Offset: 184 + keen::ds::ItemArmorSetup perkArmorSetup; // Offset: 240 + keen::ds::string debugName; // Offset: 280 +}; + +struct PerkSubDirectory { +}; + +struct PerkDirectory { +}; + +struct PerkCollectionResource { + keen::DsArray perks; // Offset: 0 +}; + +typedef keen::ecs::ClientOnlyPlayerInputType ecs.ClientOnlyPlayerInputType; + +typedef keen::RecipeLevelRequirement RecipeLevelRequirement; + +struct RecipeItemStack { + keen::ds::ItemReference item; // Offset: 0 + keen::uint32 count; // Offset: 16 +}; + +struct RecipeInputList { +}; + +struct RecipeOutputList { +}; + +struct RequiredProp { + keen::ObjectReference craftingProp; // Offset: 0 +}; + +struct Recipe { + keen::ds::NameLocaTag name; // Offset: 0 + keen::ds::DescriptionLocaTag description; // Offset: 16 + keen::ds::LoreLocaTag lore; // Offset: 32 + keen::bool showIsNewLabel; // Offset: 48 + keen::bool useCustomCompletionRequirement; // Offset: 49 + keen::ds::GameKnowledgeRequirement completionRequirement; // Offset: 52 + keen::bool requiresSheltered; // Offset: 156 + keen::ObjectReference workshopReference; // Offset: 160 + keen::ds::RecipeLevelRequirement levelRequirement; // Offset: 176 + keen::uint32 level; // Offset: 180 + keen::ds::RecipeLevelRequirement comfortLevelRequirement; // Offset: 184 + keen::uint32 comfortLevel; // Offset: 188 + keen::ds::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 192 + keen::uint32 serverProgressLevel; // Offset: 196 + keen::uint32 requiredHappyNpcCount; // Offset: 200 + keen::uint32 requiredEnergy; // Offset: 204 + keen::Time craftingDuration; // Offset: 208 + keen::bool isUpgrade; // Offset: 216 +}; + +struct RecipeList { + keen::ObjectReference workshopDirectory; // Offset: 0 +}; + +struct RecipeInfo { + keen::ds::RecipeId recipeId; // Offset: 0 + keen::ds::WorkshopId workshopId; // Offset: 4 + keen::DsArray input; // Offset: 8 + keen::DsArray output; // Offset: 48 + keen::bool requiresSheltered; // Offset: 88 + keen::bool showIsImportantLabel; // Offset: 89 + keen::ds::RecipeLevelRequirement levelRequirement; // Offset: 90 + keen::uint32 level; // Offset: 92 + keen::ds::RecipeLevelRequirement comfortLevelRequirement; // Offset: 96 + keen::uint32 comfortLevel; // Offset: 100 + keen::ds::RecipeLevelRequirement serverProgressLevelRequirement; // Offset: 104 + keen::uint32 serverProgressLevel; // Offset: 108 + keen::uint32 requiredHappyNpcCount; // Offset: 112 + keen::uint32 requiredEnergy; // Offset: 116 + keen::Time craftingDuration; // Offset: 120 + keen::bool isCookingRecipe; // Offset: 128 + keen::bool isUpgrade; // Offset: 129 + keen::DsArray requiredProps; // Offset: 136 + keen::ds::CraftingPropMask requiredPropsMask; // Offset: 176 + keen::ds::KnowledgeId knowledgeRequirement; // Offset: 184 + keen::ds::KnowledgeId recipeInspectedKnowledgeId; // Offset: 188 + keen::ds::KnowledgeId recipeCraftedKnowledgeId; // Offset: 192 + keen::ds::KnowledgeId completionRequirementId; // Offset: 196 + keen::ds::NameLocaTag recipeName; // Offset: 200 + keen::DsString debugName; // Offset: 216 +}; + +struct RecipeRegistryResource { + keen::DsArray recipes; // Offset: 0 +}; + +typedef keen::SkillNodeLinkId SkillNodeLinkId; + +struct ecs.SkillIdComponent { + keen::ds::SkillNodeId skillId; // Offset: 0 +}; + +typedef keen::SkillNodeType SkillNodeType; + +typedef keen::ClassType ClassType; + +struct SkillTreeNodeLink { + keen::ds::SkillNodeLinkId id; // Offset: 0 + keen::ds::SkillNodeId sourceNode; // Offset: 4 + keen::ds::SkillNodeId targetNode; // Offset: 8 + keen::bool isBidirectional; // Offset: 12 +}; + +struct SkillTreeNode { + keen::ds::SkillNodeId id; // Offset: 0 + keen::ds::SkillNodeType type; // Offset: 4 + keen::float2 uiPosition; // Offset: 8 + keen::uint16 costs; // Offset: 16 + keen::ds::LocaTagId name; // Offset: 20 + keen::ds::LocaTagId description; // Offset: 24 + keen::ds::ClassType classAlignment; // Offset: 28 + keen::ds::ItemReference activeSkillUnlockRef; // Offset: 32 + keen::ds::ItemId activeSkillUnlock; // Offset: 48 + keen::ds::UiTexture iconInactive; // Offset: 52 + keen::ds::UiTexture iconActive; // Offset: 100 + keen::ds::ImpactProgramReference impactReference; // Offset: 148 + keen::DsArray uiValues; // Offset: 168 + keen::ds::impact::Configurations configValues; // Offset: 208 + keen::bool isDeactivatedForEarlyAccess; // Offset: 248 + keen::DsArray incomingLinks; // Offset: 256 + keen::DsArray outgoingLinks; // Offset: 296 +}; + +typedef keen::ObjectReference SkillTreeNodeReference; + +struct SkillTreeResource { + keen::DsArray nodes; // Offset: 0 + keen::DsArray links; // Offset: 40 +}; + +struct SkillTreeDefinition { +}; + +struct skilltree_nodes.Node { + keen::Vector2 uiPosition; // Offset: 0 + keen::ds::NameLocaTag name; // Offset: 8 + keen::ds::DescriptionLocaTag description; // Offset: 24 + keen::ds::ImageReference iconInactive; // Offset: 40 + keen::ds::ImageReference iconActive; // Offset: 56 + keen::uint16 costs; // Offset: 72 + keen::ds::ClassType classAlignment; // Offset: 74 + keen::bool isDeactivatedForEarlyAccess; // Offset: 75 +}; + +struct skilltree_nodes.StartingNode { +}; + +struct skilltree_nodes.AbilityNode { + keen::ds::ItemReference abilityItem; // Offset: 76 + keen::ds::ImpactProgramReference impactReference; // Offset: 92 + keen::ds::impact::Configurations configValues; // Offset: 112 +}; + +struct skilltree_nodes.AttributeNode { + keen::ds::ImpactProgramReference impactReference; // Offset: 76 + keen::ds::impact::Configurations configValues; // Offset: 96 +}; + +struct skilltree_nodes.PassiveNode { + keen::ds::ImpactProgramReference impactReference; // Offset: 76 + keen::ds::impact::Configurations configValues; // Offset: 96 +}; + +struct skilltree_nodes.MartyrNode { + keen::ds::ImpactProgramReference impactReference; // Offset: 76 + keen::ds::impact::Configurations configValues; // Offset: 96 +}; + +struct skilltree_nodes.SkillTreeLink { + keen::ds::skilltree_nodes::NodeReference startNode; // Offset: 0 + keen::DsString startElementName; // Offset: 16 + keen::ds::skilltree_nodes::NodeReference endNode; // Offset: 56 +}; + +struct ecs.SteeringLocomotion { + keen::bool setRotationFlag; // Offset: 0 + keen::bool clearVelocity; // Offset: 1 + keen::bool slowDownIfMovementAngleIsTooBig; // Offset: 2 + keen::float32 maxRunAngle; // Offset: 4 + keen::float32 maxMovementAngle; // Offset: 8 + keen::bool isCloseToHole; // Offset: 12 + keen::Time lastHookedTime; // Offset: 16 +}; + +struct ecs.SteeringAgent { + keen::ds::ecs::RangeQueryId queryId; // Offset: 0 + keen::bool active; // Offset: 4 + keen::float3 desiredVelocity; // Offset: 8 + keen::float32 currentVelocityWeight; // Offset: 20 + keen::float32 desiredVelocityWeight; // Offset: 24 + keen::float3 velocity; // Offset: 28 + keen::float32 maxSpeed; // Offset: 40 + keen::float32 maxForce; // Offset: 44 + keen::float32 maxAcceleration; // Offset: 48 + keen::float32 mass; // Offset: 52 + keen::float32 separationRange; // Offset: 56 + keen::uint8 priority; // Offset: 60 + keen::ds::ecs::EntityId ignoredEntity; // Offset: 64 +}; + +struct ecs.SteeringBehavior { + keen::float3 steeringForce; // Offset: 0 +}; + +struct ecs.SteeringBehavior_Seek { +}; + +struct ecs.SteeringBehavior_Flee { + keen::float32 viewConeHalfAngle; // Offset: 12 + keen::float32 fleeRadius; // Offset: 16 + keen::bool checkViewCone; // Offset: 20 +}; + +struct ecs.SteeringBehavior_Separation { + keen::bool enabled; // Offset: 12 + keen::Time forceActiveDuration; // Offset: 16 +}; + +struct ecs.SteeringBehavior_LookAhead { + keen::Time lastQueryTime; // Offset: 16 + keen::Angle lookAheadAngle; // Offset: 24 + keen::float lookAheadDistance; // Offset: 28 +}; + +struct ecs.SteeringBehavior_ObstacleAvoidance { + keen::ds::ecs::QueryId queryId; // Offset: 12 + keen::Time lastCheckTime; // Offset: 16 + keen::float32 minHeightDiff; // Offset: 24 +}; + +struct ecs.SteeringBehavior_Cohesion { +}; + +struct ecs.SteeringBehavior_Alignment { +}; + +struct ecs.SteeringAnimator { + keen::ds::animationgraph::StateIdReference idleAnimation; // Offset: 0 + keen::ds::animationgraph::StateIdReference walkAnimation; // Offset: 16 +}; + +struct ToolTerraformingEfficiency { + keen::ds::ItemReference toolItem; // Offset: 0 + keen::float32 efficiency; // Offset: 16 +}; + +struct ConditionalVoxelMaterialBuffType { + keen::float minSubmergePercentage; // Offset: 0 + keen::ds::BuffTypeReference buffType; // Offset: 4 +}; + +typedef keen::TerrainMaterialType TerrainMaterialType; + +struct TerrainMaterialId { + keen::ds::TerrainMaterialType value; // Offset: 0 +}; + +struct TerrainTerraformingConfig { + keen::ds::TerrainMaterialId terrainMaterial; // Offset: 0 + keen::ds::ItemReference terrainItem; // Offset: 4 + keen::ds::HardnessCategory hardness; // Offset: 20 + keen::uint32 terrainPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::bool canBeFlattened; // Offset: 32 + keen::bool isSlidingMaterial; // Offset: 33 + keen::Guid experienceGainGuid; // Offset: 36 + keen::ds::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::ds::BuffTypeReference buffReference; // Offset: 72 + keen::DsArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 128 + keen::float frictionFactor; // Offset: 132 + keen::float maxSubmergeDepth; // Offset: 136 + keen::float minSubmergePercentage; // Offset: 140 + keen::float maxSubmergePercentage; // Offset: 144 + keen::Guid entityTag; // Offset: 148 + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 164 +}; + +typedef keen::BuildingMaterialType BuildingMaterialType; + +struct BuildingMaterialId { + keen::ds::BuildingMaterialType value; // Offset: 0 +}; + +struct BuildingTerraformingConfig { + keen::ds::BuildingMaterialId buildingMaterial; // Offset: 0 + keen::ds::ItemReference materialItem; // Offset: 4 + keen::ds::HardnessCategory hardness; // Offset: 20 + keen::uint32 blocksPerLootItemExchangeRate; // Offset: 24 + keen::sint32 healthPoints; // Offset: 28 + keen::ds::KnowledgeId knowledgeId; // Offset: 32 + keen::Guid experienceGainGuid; // Offset: 36 + keen::ds::CollisionFeedbackMaterialReference collisionFeedbackMaterial; // Offset: 52 + keen::ds::PropDamageSusceptibility damageSusceptibility; // Offset: 68 + keen::ds::BuffTypeReference buffReference; // Offset: 72 + keen::DsArray conditionalBuffTypes; // Offset: 88 + keen::bool isDangerous; // Offset: 128 + keen::float frictionFactor; // Offset: 132 + keen::float maxSubmergeDepth; // Offset: 136 + keen::float minSubmergePercentage; // Offset: 140 + keen::float maxSubmergePercentage; // Offset: 144 + keen::Guid entityTag; // Offset: 148 + keen::ds::ecs::PathNodeType pathNodeType; // Offset: 164 +}; + +struct TerraformingEfficiencyRegistryResource { + keen::DsArray terrainConfigs; // Offset: 0 + keen::DsArray buildingConfigs; // Offset: 40 +}; + +typedef keen::TwitchDropId TwitchDropId; + +struct TwitchDropItem { + keen::ds::ItemReference item; // Offset: 0 +}; + +struct TwitchDrop { +}; + +struct TwitchDropSubDirectory { +}; + +struct TwitchDropDirectory { +}; + +struct TwitchDropResource { + keen::ds::TwitchDropId dropId; // Offset: 0 + keen::DsArray items; // Offset: 8 + keen::DsArray itemRefs; // Offset: 48 + keen::ds::string debugName; // Offset: 88 + keen::Guid debugId; // Offset: 128 +}; + +struct TwitchDropCollection { + keen::DsArray drops; // Offset: 0 +}; + +typedef keen::VoxelBlueprintId VoxelBlueprintId; + +typedef keen::VoxelBlueprintMaterialPoolId VoxelBlueprintMaterialPoolId; + +struct VoxelSnappingRule { + keen::DsArray> snappingTargets; // Offset: 0 + keen::DsArray> excludeSnappingTargets; // Offset: 40 + keen::uint8 maxHorizontalDistance; // Offset: 80 + keen::uint8 maxVerticalDistance; // Offset: 81 + keen::bool snapHorizontally; // Offset: 82 + keen::bool snapVertically; // Offset: 83 + keen::bool aboveAdjacent; // Offset: 84 + keen::bool aboveEnclosing; // Offset: 85 + keen::bool belowAdjacent; // Offset: 86 + keen::bool belowEnclosing; // Offset: 87 + keen::bool directionalHorizontalSnapping; // Offset: 88 + keen::bool sideAdjacent; // Offset: 89 + keen::bool sideEnclosing; // Offset: 90 + keen::bool lenghtwiseAdjacent; // Offset: 91 + keen::bool lenghtwiseEnclosing; // Offset: 92 + keen::bool crosswiseAdjacent; // Offset: 93 + keen::bool crosswiseEnclosing; // Offset: 94 + keen::DsString debugName; // Offset: 96 +}; + +struct VoxelBlueprintMaterial { + keen::ObjectReference materialItem; // Offset: 0 +}; + +struct VoxelBlueprintConfigSnapping { + keen::DsArray rules; // Offset: 0 +}; + +struct VoxelBlueprintMaterialPool { + keen::ds::EquipmentSlot equipmentSlot; // Offset: 0 + keen::ds::VoxelBlueprintMaterialPoolId poolId; // Offset: 4 + keen::DsArray materials; // Offset: 8 + keen::DsString debugName; // Offset: 48 +}; + +struct VoxelBlueprintConfig { + keen::ds::VoxelBlueprintConfigSnapping snappingConfig; // Offset: 0 + keen::DsString debugName; // Offset: 40 +}; + +struct VoxelBlueprintRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryFolder { +}; + +struct VoxelBlueprintMaterialPoolRegistryResource { + keen::DsArray materialPools; // Offset: 0 +}; + +typedef keen::VoxelScatterImageMode VoxelScatterImageMode; + +typedef keen::VoxelScatterImageContentPass VoxelScatterImageContentPass; + +struct AbstractScatterImage { +}; + +struct VoxelScatterImage { + keen::ObjectReference scene; // Offset: 0 + keen::ds::VoxelScatterImageContentPass contentPass; // Offset: 16 + keen::uint32 upscaleFactor; // Offset: 20 + keen::ds::VoxelScatterImageMode mode; // Offset: 24 + keen::float32 referenceHeight; // Offset: 28 + keen::ObjectReference referenceMaterial; // Offset: 32 +}; + +typedef keen::ecs::GameSettingsVersion ecs.GameSettingsVersion; + +struct ecs.GameSettingsPresetConfig { + keen::ds::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::ds::ecs::GameSettings settings; // Offset: 8 +}; + +struct GameSettingsPresetsResource { + keen::ds::ecs::GameSettings minValues; // Offset: 0 + keen::ds::ecs::GameSettings maxValues; // Offset: 128 + keen::DsArray presets; // Offset: 256 +}; + +typedef keen::G38TestState G38TestState; + +struct G38TestResult { + keen::ds::string name; // Offset: 0 + keen::ds::string program; // Offset: 40 + keen::Time duration; // Offset: 80 + keen::ErrorId error; // Offset: 88 +}; + +struct G38TestSummary { + keen::uint32 count; // Offset: 0 + keen::uint32 failed; // Offset: 4 +}; + +struct G38TestReport { + keen::CalendarTimeStamp date; // Offset: 0 + keen::ds::G38TestSummary summary; // Offset: 8 + keen::DsArray testResults; // Offset: 16 +}; + +typedef keen::ds::LocaTagReference UiLocaTagReference; + +struct FbUiLocaCraftingWorkshops { + keen::ds::UiLocaTagReference player; // Offset: 0 + keen::ds::UiLocaTagReference alchemist; // Offset: 16 + keen::ds::UiLocaTagReference blacksmith; // Offset: 32 + keen::ds::UiLocaTagReference carpenter; // Offset: 48 + keen::ds::UiLocaTagReference workbench; // Offset: 64 + keen::ds::UiLocaTagReference grindingWheel; // Offset: 80 + keen::ds::UiLocaTagReference oven; // Offset: 96 + keen::ds::UiLocaTagReference campfireBarbecue; // Offset: 112 + keen::ds::UiLocaTagReference anvil; // Offset: 128 + keen::ds::UiLocaTagReference distillery; // Offset: 144 + keen::ds::UiLocaTagReference furnace; // Offset: 160 + keen::ds::UiLocaTagReference mortar; // Offset: 176 + keen::ds::UiLocaTagReference sketches; // Offset: 192 + keen::ds::UiLocaTagReference flameAltar; // Offset: 208 +}; + +struct FbUiLocaCraftingCategories { + keen::ds::UiLocaTagReference untaggedRecipeSet; // Offset: 0 + keen::ds::UiLocaTagReference customization; // Offset: 16 + keen::ds::UiLocaTagReference equipment; // Offset: 32 + keen::ds::UiLocaTagReference weapons; // Offset: 48 + keen::ds::UiLocaTagReference tools; // Offset: 64 + keen::ds::UiLocaTagReference buildTools; // Offset: 80 + keen::ds::UiLocaTagReference consumables; // Offset: 96 + keen::ds::UiLocaTagReference ammunition; // Offset: 112 + keen::ds::UiLocaTagReference materials; // Offset: 128 + keen::ds::UiLocaTagReference blueprints; // Offset: 144 + keen::ds::UiLocaTagReference currency; // Offset: 160 + keen::ds::UiLocaTagReference collectible; // Offset: 176 + keen::ds::UiLocaTagReference genericItem; // Offset: 192 +}; + +struct FbUiLocaCrafting { + keen::ds::FbUiLocaCraftingWorkshops workshops; // Offset: 0 + keen::ds::FbUiLocaCraftingCategories categories; // Offset: 224 + keen::ds::UiLocaTagReference browserPinned; // Offset: 432 + keen::ds::UiLocaTagReference toggleDirectoryFilter; // Offset: 448 + keen::ds::UiLocaTagReference itemViewerNoRecipeHint; // Offset: 464 + keen::ds::UiLocaTagReference requirementHeader; // Offset: 480 + keen::ds::UiLocaTagReference ingredientsHeader; // Offset: 496 + keen::ds::UiLocaTagReference emptyMenuHintShort; // Offset: 512 + keen::ds::UiLocaTagReference emptyMenuHintLong; // Offset: 528 + keen::ds::UiLocaTagReference automatedCraftingStatusWaiting; // Offset: 544 + keen::ds::UiLocaTagReference automatedCraftingStatusRunning; // Offset: 560 + keen::ds::UiLocaTagReference automatedCraftingStatusPaused; // Offset: 576 + keen::ds::UiLocaTagReference automatedCraftingInsufficientMaterials; // Offset: 592 + keen::ds::UiLocaTagReference automatedCraftingAmountCraftableStacks; // Offset: 608 + keen::ds::UiLocaTagReference automatedCraftingStart; // Offset: 624 + keen::ds::UiLocaTagReference automatedCraftingResume; // Offset: 640 + keen::ds::UiLocaTagReference automatedCraftingStop; // Offset: 656 + keen::ds::UiLocaTagReference automatedCraftingStopUnavailable; // Offset: 672 + keen::ds::UiLocaTagReference automatedCraftingPaused; // Offset: 688 + keen::ds::UiLocaTagReference automatedCraftingIdle; // Offset: 704 + keen::ds::UiLocaTagReference automatedCraftingWorking; // Offset: 720 + keen::ds::UiLocaTagReference automatedCraftingStorageFull; // Offset: 736 + keen::ds::UiLocaTagReference automatedCraftingQueued; // Offset: 752 + keen::ds::UiLocaTagReference automatedCraftingInsufficientMaterialsHint; // Offset: 768 + keen::ds::UiLocaTagReference automatedCraftingStorageFullHint; // Offset: 784 + keen::ds::UiLocaTagReference automatedCraftingSourceMaterials; // Offset: 800 + keen::ds::UiLocaTagReference changeRecipeHint; // Offset: 816 + keen::ds::UiLocaTagReference factoryNoRecipesAvailable; // Offset: 832 + keen::ds::UiLocaTagReference factoryMagicChestNoRecipesAvailable; // Offset: 848 + keen::ds::UiLocaTagReference factoryShowCurrentProduction; // Offset: 864 + keen::ds::UiLocaTagReference craftingItemInInventory; // Offset: 880 + keen::ds::UiLocaTagReference noUpgradableItems; // Offset: 896 + keen::ds::UiLocaTagReference noIngredientMissing; // Offset: 912 + keen::ds::UiLocaTagReference ingredientsMissing; // Offset: 928 + keen::ds::UiLocaTagReference ingredientsNeeds; // Offset: 944 + keen::ds::UiLocaTagReference availableOutputs; // Offset: 960 + keen::ds::UiLocaTagReference selected; // Offset: 976 + keen::ds::UiLocaTagReference recipeViewerTabIngredients; // Offset: 992 + keen::ds::UiLocaTagReference recipeViewerTabRecipe; // Offset: 1008 + keen::ds::UiLocaTagReference recipeViewerTabItem; // Offset: 1024 +}; + +struct FbUiLocaItemEquipmentSlots { + keen::ds::UiLocaTagReference armourHead; // Offset: 0 + keen::ds::UiLocaTagReference armourUpperBody; // Offset: 16 + keen::ds::UiLocaTagReference armourArms; // Offset: 32 + keen::ds::UiLocaTagReference armourLowerBody; // Offset: 48 + keen::ds::UiLocaTagReference armourFeet; // Offset: 64 + keen::ds::UiLocaTagReference armourAccessory; // Offset: 80 + keen::ds::UiLocaTagReference armourRing; // Offset: 96 + keen::ds::UiLocaTagReference armourShield; // Offset: 112 + keen::ds::UiLocaTagReference vanityHead; // Offset: 128 + keen::ds::UiLocaTagReference vanityUpperBody; // Offset: 144 + keen::ds::UiLocaTagReference vanityArms; // Offset: 160 + keen::ds::UiLocaTagReference vanityLowerBody; // Offset: 176 + keen::ds::UiLocaTagReference vanityFeet; // Offset: 192 + keen::ds::UiLocaTagReference hookshot; // Offset: 208 + keen::ds::UiLocaTagReference glider; // Offset: 224 + keen::ds::UiLocaTagReference meleeWeapon; // Offset: 240 + keen::ds::UiLocaTagReference midRangeWeapon; // Offset: 256 + keen::ds::UiLocaTagReference rangedWeapon; // Offset: 272 + keen::ds::UiLocaTagReference arrow; // Offset: 288 + keen::ds::UiLocaTagReference spell; // Offset: 304 + keen::ds::UiLocaTagReference backpackExtender; // Offset: 320 +}; + +struct FbUiLocaPunctuations { + keen::ds::LocaTag plusSign; // Offset: 0 + keen::ds::LocaTag minusSign; // Offset: 80 + keen::ds::LocaTag multiplySign; // Offset: 160 + keen::ds::UiLocaTagReference decimalSeparator; // Offset: 240 + keen::ds::UiLocaTagReference thousandsSeparator; // Offset: 256 + keen::ds::LocaTag exclamationMark; // Offset: 272 + keen::ds::LocaTag questionMark; // Offset: 352 + keen::ds::LocaTag questionMarkTriple; // Offset: 432 + keen::ds::LocaTag bulletDot; // Offset: 512 + keen::ds::LocaTag emDash; // Offset: 592 + keen::ds::UiLocaTagReference action1AndAction2; // Offset: 672 +}; + +struct FbUiLocaGeneric { + keen::ds::UiLocaTagReference timeUnitsAbbreviations; // Offset: 0 + keen::ds::UiLocaTagReference milliseconds; // Offset: 16 + keen::ds::UiLocaTagReference inactiveState; // Offset: 32 +}; + +struct FbUiLocaInput { + keen::ds::UiLocaTagReference unassigned; // Offset: 0 + keen::ds::UiLocaTagReference invalidStick; // Offset: 16 + keen::ds::UiLocaTagReference leftMouseButton; // Offset: 32 + keen::ds::UiLocaTagReference rightMouseButton; // Offset: 48 + keen::ds::UiLocaTagReference middleMouseButton; // Offset: 64 + keen::ds::UiLocaTagReference mouse4; // Offset: 80 + keen::ds::UiLocaTagReference mouse5; // Offset: 96 + keen::ds::UiLocaTagReference mouseWheelLeft; // Offset: 112 + keen::ds::UiLocaTagReference mouseWheelRight; // Offset: 128 + keen::ds::UiLocaTagReference mouseWheelUp; // Offset: 144 + keen::ds::UiLocaTagReference mouseWheelDown; // Offset: 160 + keen::ds::UiLocaTagReference mouseMoveLeft; // Offset: 176 + keen::ds::UiLocaTagReference mouseMoveRight; // Offset: 192 + keen::ds::UiLocaTagReference mouseMoveUp; // Offset: 208 + keen::ds::UiLocaTagReference mouseMoveDown; // Offset: 224 +}; + +struct FbUiLocaAttributeInfo { + keen::ds::UiLocaTagReference label; // Offset: 0 + keen::ds::UiLocaTagReference alternativeLabel; // Offset: 16 + keen::ds::UiLocaTagReference tooltip; // Offset: 32 + keen::float32 impliedBaseMultiplier; // Offset: 48 + keen::float32 relativeToValue; // Offset: 52 +}; + +struct FbUiLocaAttributes { + keen::ds::UiLocaTagReference attributeMenuHeader; // Offset: 0 + keen::ds::UiLocaTagReference subTabBasics; // Offset: 16 + keen::ds::UiLocaTagReference groupFoundation; // Offset: 32 + keen::ds::UiLocaTagReference groupPrimary; // Offset: 48 + keen::ds::UiLocaTagReference groupSecondary; // Offset: 64 + keen::ds::UiLocaTagReference groupVital; // Offset: 80 + keen::ds::UiLocaTagReference groupCombat; // Offset: 96 + keen::ds::UiLocaTagReference groupFogSurvival; // Offset: 112 + keen::ds::UiLocaTagReference groupMain; // Offset: 128 + keen::ds::UiLocaTagReference groupRegeneration; // Offset: 144 + keen::ds::UiLocaTagReference groupProtection; // Offset: 160 + keen::ds::UiLocaTagReference groupMovement; // Offset: 176 + keen::ds::UiLocaTagReference groupDamage; // Offset: 192 + keen::ds::UiLocaTagReference groupWeaponDamage; // Offset: 208 + keen::ds::UiLocaTagReference groupEnemyDamage; // Offset: 224 + keen::ds::UiLocaTagReference groupMisc; // Offset: 240 + keen::ds::UiLocaTagReference valueExplainer; // Offset: 256 + keen::ds::UiLocaTagReference valueExplainerWithBuff; // Offset: 272 + keen::ds::FbUiLocaAttributeInfo health; // Offset: 288 + keen::ds::FbUiLocaAttributeInfo mana; // Offset: 344 + keen::ds::FbUiLocaAttributeInfo stamina; // Offset: 400 + keen::ds::FbUiLocaAttributeInfo fogResistance; // Offset: 456 + keen::ds::FbUiLocaAttributeInfo fogResistanceDuration; // Offset: 512 + keen::ds::FbUiLocaAttributeInfo fogResistanceDurationMax; // Offset: 568 + keen::ds::FbUiLocaAttributeInfo freezeResistance; // Offset: 624 + keen::ds::FbUiLocaAttributeInfo bodyHeat; // Offset: 680 + keen::ds::FbUiLocaAttributeInfo strength; // Offset: 736 + keen::ds::FbUiLocaAttributeInfo dexterity; // Offset: 792 + keen::ds::FbUiLocaAttributeInfo intelligence; // Offset: 848 + keen::ds::FbUiLocaAttributeInfo constitution; // Offset: 904 + keen::ds::FbUiLocaAttributeInfo endurance; // Offset: 960 + keen::ds::FbUiLocaAttributeInfo spirit; // Offset: 1016 + keen::ds::FbUiLocaAttributeInfo healthRegeneration; // Offset: 1072 + keen::ds::FbUiLocaAttributeInfo healthRegenerationDelay; // Offset: 1128 + keen::ds::FbUiLocaAttributeInfo manaRegeneration; // Offset: 1184 + keen::ds::FbUiLocaAttributeInfo manaRegenerationDelay; // Offset: 1240 + keen::ds::FbUiLocaAttributeInfo staminaRegeneration; // Offset: 1296 + keen::ds::FbUiLocaAttributeInfo staminaRegenerationDelay; // Offset: 1352 + keen::ds::FbUiLocaAttributeInfo bodyHeatRegeneration; // Offset: 1408 + keen::ds::FbUiLocaAttributeInfo bodyHeatRegenerationDelay; // Offset: 1464 + keen::ds::FbUiLocaAttributeInfo baseMovementSpeed; // Offset: 1520 + keen::ds::FbUiLocaAttributeInfo sprintMovementSpeed; // Offset: 1576 + keen::ds::FbUiLocaAttributeInfo sneakMovementSpeed; // Offset: 1632 + keen::ds::FbUiLocaAttributeInfo critChanceMelee; // Offset: 1688 + keen::ds::FbUiLocaAttributeInfo critChanceMagical; // Offset: 1744 + keen::ds::FbUiLocaAttributeInfo critChanceRanged; // Offset: 1800 + keen::ds::FbUiLocaAttributeInfo skillShotDamage; // Offset: 1856 + keen::ds::FbUiLocaAttributeInfo staffDamage; // Offset: 1912 + keen::ds::FbUiLocaAttributeInfo wandDamage; // Offset: 1968 + keen::ds::FbUiLocaAttributeInfo oneHandDamage; // Offset: 2024 + keen::ds::FbUiLocaAttributeInfo daggerDamage; // Offset: 2080 + keen::ds::FbUiLocaAttributeInfo twoHandDamage; // Offset: 2136 + keen::ds::FbUiLocaAttributeInfo bowDamage; // Offset: 2192 + keen::ds::FbUiLocaAttributeInfo throwableDamage; // Offset: 2248 + keen::ds::FbUiLocaAttributeInfo unarmedDamage; // Offset: 2304 + keen::ds::FbUiLocaAttributeInfo foeMagicalDamage; // Offset: 2360 + keen::ds::FbUiLocaAttributeInfo foeMeleeDamage; // Offset: 2416 + keen::ds::FbUiLocaAttributeInfo foeRangedDamage; // Offset: 2472 + keen::ds::FbUiLocaAttributeInfo foeFlyingDamage; // Offset: 2528 + keen::ds::FbUiLocaAttributeInfo foeSkeletonDamage; // Offset: 2584 + keen::ds::FbUiLocaAttributeInfo healing; // Offset: 2640 + keen::ds::FbUiLocaAttributeInfo reviveDuration; // Offset: 2696 + keen::ds::FbUiLocaAttributeInfo reviveHealth; // Offset: 2752 + keen::ds::FbUiLocaAttributeInfo lifeSteal; // Offset: 2808 + keen::ds::FbUiLocaAttributeInfo restedDurationBonus; // Offset: 2864 + keen::ds::FbUiLocaAttributeInfo offenseBackstab; // Offset: 2920 + keen::ds::FbUiLocaAttributeInfo offenseCritical; // Offset: 2976 + keen::ds::FbUiLocaAttributeInfo offenseCritChance; // Offset: 3032 + keen::ds::FbUiLocaAttributeInfo damageMelee; // Offset: 3088 + keen::ds::FbUiLocaAttributeInfo damageSpell; // Offset: 3144 + keen::ds::FbUiLocaAttributeInfo damageRanged; // Offset: 3200 + keen::ds::FbUiLocaAttributeInfo blockAttribute; // Offset: 3256 + keen::ds::FbUiLocaAttributeInfo parryAttribute; // Offset: 3312 + keen::ds::FbUiLocaAttributeInfo resistancePhysical; // Offset: 3368 + keen::ds::FbUiLocaAttributeInfo resistancePhysicalCut; // Offset: 3424 + keen::ds::FbUiLocaAttributeInfo resistancePhysicalPierce; // Offset: 3480 + keen::ds::FbUiLocaAttributeInfo resistancePhysicalBlunt; // Offset: 3536 + keen::ds::FbUiLocaAttributeInfo resistanceMagical; // Offset: 3592 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalFire; // Offset: 3648 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalIce; // Offset: 3704 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalFog; // Offset: 3760 + keen::ds::FbUiLocaAttributeInfo resistanceMagicalLightning; // Offset: 3816 + keen::ds::FbUiLocaAttributeInfo poisonSusceptibility; // Offset: 3872 + keen::ds::FbUiLocaAttributeInfo sneakAttack; // Offset: 3928 + keen::ds::FbUiLocaAttributeInfo mercilessAttack; // Offset: 3984 + keen::ds::FbUiLocaAttributeInfo ambushAttack; // Offset: 4040 + keen::ds::UiLocaTagReference numberExplanation; // Offset: 4096 +}; + +struct FbUiLocaPerkAttributes { + keen::ds::UiLocaTagReference damagePhysicalCut; // Offset: 0 + keen::ds::UiLocaTagReference damagePhysicalPierce; // Offset: 16 + keen::ds::UiLocaTagReference damagePhysicalBlunt; // Offset: 32 + keen::ds::UiLocaTagReference damagePoison; // Offset: 48 + keen::ds::UiLocaTagReference damageMagicalFire; // Offset: 64 + keen::ds::UiLocaTagReference damageMagicalIce; // Offset: 80 + keen::ds::UiLocaTagReference damageMagicalFog; // Offset: 96 + keen::ds::UiLocaTagReference damageMagicalLightning; // Offset: 112 + keen::ds::UiLocaTagReference resistancePhysicalCut; // Offset: 128 + keen::ds::UiLocaTagReference resistancePhysicalPierce; // Offset: 144 + keen::ds::UiLocaTagReference resistancePhysicalBlunt; // Offset: 160 + keen::ds::UiLocaTagReference resistanceMagicalFire; // Offset: 176 + keen::ds::UiLocaTagReference resistanceMagicalIce; // Offset: 192 + keen::ds::UiLocaTagReference resistanceMagicalFog; // Offset: 208 + keen::ds::UiLocaTagReference resistanceMagicalLightning; // Offset: 224 +}; + +struct FbUiNpcNames { + keen::ds::UiLocaTagReference flame; // Offset: 0 + keen::ds::UiLocaTagReference alchemist; // Offset: 16 + keen::ds::UiLocaTagReference blacksmith; // Offset: 32 + keen::ds::UiLocaTagReference hunter; // Offset: 48 + keen::ds::UiLocaTagReference farmer; // Offset: 64 + keen::ds::UiLocaTagReference carpenter; // Offset: 80 + keen::ds::UiLocaTagReference cryptKeeper; // Offset: 96 + keen::ds::UiLocaTagReference bard; // Offset: 112 +}; + +struct FbUiLocaRpgTerms { + keen::ds::FbUiNpcNames npcNames; // Offset: 0 + keen::ds::UiLocaTagReference entityLevel; // Offset: 128 + keen::ds::UiLocaTagReference genericLevelWithArgument; // Offset: 144 + keen::ds::UiLocaTagReference characterLevel; // Offset: 160 + keen::ds::UiLocaTagReference experiencePoints; // Offset: 176 + keen::ds::UiLocaTagReference experiencePointsShort; // Offset: 192 + keen::ds::UiLocaTagReference experiencePointsRequired; // Offset: 208 + keen::ds::FbUiLocaAttributes attributes; // Offset: 224 + keen::ds::FbUiLocaPerkAttributes perkAttributes; // Offset: 4336 + keen::ds::UiLocaTagReference durabilityGeneric; // Offset: 4576 + keen::ds::UiLocaTagReference damagePhysicalCut; // Offset: 4592 + keen::ds::UiLocaTagReference damagePhysicalPierce; // Offset: 4608 + keen::ds::UiLocaTagReference damagePhysicalBlunt; // Offset: 4624 + keen::ds::UiLocaTagReference damageMagicalFire; // Offset: 4640 + keen::ds::UiLocaTagReference damageMagicalIce; // Offset: 4656 + keen::ds::UiLocaTagReference damageMagicalFog; // Offset: 4672 + keen::ds::UiLocaTagReference damageMagicalLightning; // Offset: 4688 + keen::ds::UiLocaTagReference damageHealing; // Offset: 4704 + keen::ds::UiLocaTagReference damagePoison; // Offset: 4720 + keen::ds::UiLocaTagReference bowDamageBase; // Offset: 4736 + keen::ds::UiLocaTagReference bowDamageNoBonus; // Offset: 4752 + keen::ds::UiLocaTagReference bowDamagePhysicalCut; // Offset: 4768 + keen::ds::UiLocaTagReference bowDamagePhysicalPierce; // Offset: 4784 + keen::ds::UiLocaTagReference bowDamagePhysicalBlunt; // Offset: 4800 + keen::ds::UiLocaTagReference bowDamageMagicalFire; // Offset: 4816 + keen::ds::UiLocaTagReference bowDamageMagicalIce; // Offset: 4832 + keen::ds::UiLocaTagReference bowDamageMagicalFog; // Offset: 4848 + keen::ds::UiLocaTagReference bowDamageMagicalLightning; // Offset: 4864 + keen::ds::UiLocaTagReference bowDamageHealing; // Offset: 4880 + keen::ds::UiLocaTagReference bowDamagePoison; // Offset: 4896 + keen::ds::UiLocaTagReference armorResistanceCutShort; // Offset: 4912 + keen::ds::UiLocaTagReference armorResistancePierceShort; // Offset: 4928 + keen::ds::UiLocaTagReference armorResistanceBluntShort; // Offset: 4944 + keen::ds::UiLocaTagReference armorResistanceFireShort; // Offset: 4960 + keen::ds::UiLocaTagReference armorResistanceIceShort; // Offset: 4976 + keen::ds::UiLocaTagReference armorResistanceFogShort; // Offset: 4992 + keen::ds::UiLocaTagReference armorResistanceLightningShort; // Offset: 5008 + keen::ds::UiLocaTagReference rarityUndefined; // Offset: 5024 + keen::ds::UiLocaTagReference rarityCommon; // Offset: 5040 + keen::ds::UiLocaTagReference rarityUncommon; // Offset: 5056 + keen::ds::UiLocaTagReference rarityRare; // Offset: 5072 + keen::ds::UiLocaTagReference rarityEpic; // Offset: 5088 + keen::ds::UiLocaTagReference rarityLegendary; // Offset: 5104 + keen::ds::UiLocaTagReference rarityVanity; // Offset: 5120 + keen::ds::UiLocaTagReference restedBuffNone; // Offset: 5136 + keen::ds::UiLocaTagReference restedBuffCharging; // Offset: 5152 + keen::ds::UiLocaTagReference restedBuffActive; // Offset: 5168 + keen::ds::UiLocaTagReference restedBuffGenericDescription; // Offset: 5184 + keen::ds::UiLocaTagReference comfortLevel; // Offset: 5200 + keen::ds::UiLocaTagReference comfort; // Offset: 5216 + keen::ds::UiLocaTagReference statusSitting; // Offset: 5232 + keen::ds::UiLocaTagReference statusSheltered; // Offset: 5248 + keen::ds::UiLocaTagReference statusSleeping; // Offset: 5264 + keen::ds::UiLocaTagReference statusInCombat; // Offset: 5280 + keen::ds::UiLocaTagReference statusWarmth; // Offset: 5296 + keen::ds::UiLocaTagReference statusShelteredBed; // Offset: 5312 + keen::ds::UiLocaTagReference statusSittingDesc; // Offset: 5328 + keen::ds::UiLocaTagReference statusShelteredDesc; // Offset: 5344 + keen::ds::UiLocaTagReference statusSleepingDesc; // Offset: 5360 + keen::ds::UiLocaTagReference statusWarmthDesc; // Offset: 5376 + keen::ds::UiLocaTagReference statusSittingNot; // Offset: 5392 + keen::ds::UiLocaTagReference statusShelteredNot; // Offset: 5408 + keen::ds::UiLocaTagReference statusInCombatNot; // Offset: 5424 + keen::ds::UiLocaTagReference statusWarmthNot; // Offset: 5440 + keen::ds::UiLocaTagReference foodTypeAlreadyActive; // Offset: 5456 + keen::ds::UiLocaTagReference foodSlotsAllOccupied; // Offset: 5472 + keen::ds::UiLocaTagReference npcProps; // Offset: 5488 + keen::ds::UiLocaTagReference npcUndiscoveredName; // Offset: 5504 + keen::ds::UiLocaTagReference npcUndiscoveredDescription; // Offset: 5520 +}; + +struct FbUiLocaHudBuildFeedback { + keen::ds::UiLocaTagReference cursorOutsideBuildZone; // Offset: 0 + keen::ds::UiLocaTagReference cursorInsideFogZone; // Offset: 16 + keen::ds::UiLocaTagReference cursorTooFarAway; // Offset: 32 + keen::ds::UiLocaTagReference cursorInsideLenientBuildInhibitor; // Offset: 48 + keen::ds::UiLocaTagReference cursorInsideStrictBuildInhibitor; // Offset: 64 + keen::ds::UiLocaTagReference maxAltarCountReached; // Offset: 80 + keen::ds::UiLocaTagReference maxAltarCountUpgradeHint; // Offset: 96 + keen::ds::UiLocaTagReference maxAltarCountLimitHint; // Offset: 112 + keen::ds::UiLocaTagReference maxTameAnimalCountReached; // Offset: 128 + keen::ds::UiLocaTagReference enemiesNearby; // Offset: 144 + keen::ds::UiLocaTagReference areaOccupied; // Offset: 160 + keen::ds::UiLocaTagReference invalidSurfaceNormal; // Offset: 176 + keen::ds::UiLocaTagReference invalidCursorVoxelMaterial; // Offset: 192 + keen::ds::UiLocaTagReference missingMaterials; // Offset: 208 + keen::ds::UiLocaTagReference noPermission; // Offset: 224 + keen::ds::UiLocaTagReference assignNpcToBed; // Offset: 240 + keen::ds::UiLocaTagReference hintNpcNotPlaced; // Offset: 256 + keen::ds::UiLocaTagReference bedUnoccupied; // Offset: 272 + keen::ds::UiLocaTagReference bedOccupiedBy; // Offset: 288 + keen::ds::UiLocaTagReference bedTooFarAway; // Offset: 304 + keen::ds::UiLocaTagReference useStaffToAssignBed; // Offset: 320 +}; + +struct FbUiLocaHudItemUseMessages { + keen::ds::UiLocaTagReference hookshotUseFail; // Offset: 0 + keen::ds::UiLocaTagReference doorOpenFail; // Offset: 16 + keen::ds::UiLocaTagReference gliderUseFail; // Offset: 32 + keen::ds::UiLocaTagReference gliderUseHint; // Offset: 48 + keen::ds::UiLocaTagReference itemMovedToEquipmentSlotByUsing; // Offset: 64 + keen::ds::UiLocaTagReference itemFailedInsufficientStamina; // Offset: 80 +}; + +struct FbUiLocaHitEventLabels { + keen::ds::UiLocaTagReference crit; // Offset: 0 + keen::ds::UiLocaTagReference backstab; // Offset: 16 + keen::ds::UiLocaTagReference weakspot; // Offset: 32 + keen::ds::UiLocaTagReference immune; // Offset: 48 + keen::ds::UiLocaTagReference ineffective; // Offset: 64 + keen::ds::UiLocaTagReference resist; // Offset: 80 +}; + +struct FbUiLocaTutorialHints { + keen::ds::UiLocaTagReference quickbuilderMaterialHint; // Offset: 0 + keen::ds::UiLocaTagReference quickbuilderShapeHint; // Offset: 16 + keen::ds::UiLocaTagReference quickbuilderTabsHint; // Offset: 32 + keen::ds::UiLocaTagReference quickbuilderShapeSelectionHint; // Offset: 48 + keen::ds::UiLocaTagReference cookingTutorialHint; // Offset: 64 + keen::ds::UiLocaTagReference craftingRecipeList; // Offset: 80 + keen::ds::UiLocaTagReference craftingRecipeCategories; // Offset: 96 + keen::ds::UiLocaTagReference craftingRecipeSeries; // Offset: 112 + keen::ds::UiLocaTagReference craftingIngredients; // Offset: 128 + keen::ds::UiLocaTagReference craftingPinRecipe; // Offset: 144 + keen::ds::UiLocaTagReference craftingTabs; // Offset: 160 + keen::ds::UiLocaTagReference npcCraftingTabs; // Offset: 176 + keen::ds::UiLocaTagReference enhancingItemList; // Offset: 192 + keen::ds::UiLocaTagReference enhancingPerks; // Offset: 208 + keen::ds::UiLocaTagReference enhancingCurrency; // Offset: 224 + keen::ds::UiLocaTagReference factoryInventory; // Offset: 240 + keen::ds::UiLocaTagReference factoryRecipes; // Offset: 256 + keen::ds::UiLocaTagReference factoryFillIngredients; // Offset: 272 + keen::ds::UiLocaTagReference factoryInputHints; // Offset: 288 + keen::ds::UiLocaTagReference factoryStart; // Offset: 304 + keen::ds::UiLocaTagReference actionbarTutorial1; // Offset: 320 + keen::ds::UiLocaTagReference actionbarTutorial2; // Offset: 336 + keen::ds::UiLocaTagReference summoningStaffTutorialNpcTypes; // Offset: 352 + keen::ds::UiLocaTagReference summoningStaffTutorialPlacing; // Offset: 368 + keen::ds::UiLocaTagReference summoningStaffRoamingRange; // Offset: 384 + keen::ds::UiLocaTagReference flameUpgradeHappyNpc; // Offset: 400 + keen::ds::UiLocaTagReference nextHint; // Offset: 416 +}; + +struct FbUiLocaHudXpSources { + keen::ds::UiLocaTagReference xpSourceQuest; // Offset: 0 + keen::ds::UiLocaTagReference xpSourceCombat; // Offset: 16 + keen::ds::UiLocaTagReference xpSourceLore; // Offset: 32 + keen::ds::UiLocaTagReference xpSourceExploration; // Offset: 48 + keen::ds::UiLocaTagReference xpSourceMining; // Offset: 64 +}; + +struct FbUiLocaHudHappinessDialog { + keen::ds::UiLocaTagReference missingBedDialogText; // Offset: 0 + keen::ds::UiLocaTagReference missingBedDialogLabel; // Offset: 16 + keen::ds::UiLocaTagReference missingShelterDialogText; // Offset: 32 + keen::ds::UiLocaTagReference missingShelterDialogLabel; // Offset: 48 + keen::ds::UiLocaTagReference missingFoodDialogText; // Offset: 64 + keen::ds::UiLocaTagReference missingFoodDialogLabel; // Offset: 80 +}; + +struct FbUiLocaHudTemperature { + keen::ds::UiLocaTagReference resistanceBuffLabel; // Offset: 0 + keen::ds::UiLocaTagReference resistanceLowWarning; // Offset: 16 + keen::ds::UiLocaTagReference deadlyDebuffLabel; // Offset: 32 + keen::ds::UiLocaTagReference deadlyDebuffWarning; // Offset: 48 +}; + +struct FbUiLocaHud { + keen::ds::FbUiLocaHudBuildFeedback buildFeedback; // Offset: 0 + keen::ds::FbUiLocaHudItemUseMessages itemUseMessages; // Offset: 336 + keen::ds::FbUiLocaHitEventLabels hitEventLabels; // Offset: 432 + keen::ds::FbUiLocaTutorialHints tutorialHints; // Offset: 528 + keen::ds::FbUiLocaHudXpSources xpSources; // Offset: 960 + keen::ds::FbUiLocaHudHappinessDialog missingHappinessDialogOptions; // Offset: 1040 + keen::ds::UiLocaTagReference nightSpeed; // Offset: 1136 + keen::ds::FbUiLocaHudTemperature freezing; // Offset: 1152 + keen::ds::FbUiLocaHudTemperature extremeHeat; // Offset: 1216 + keen::ds::UiLocaTagReference gameProgressSummaryTitle; // Offset: 1280 + keen::ds::UiLocaTagReference ammoLabelNoneEquipped; // Offset: 1296 + keen::ds::UiLocaTagReference quickBuilderPreUseHint; // Offset: 1312 + keen::ds::UiLocaTagReference buildTooltipQuickBuilderInit; // Offset: 1328 + keen::ds::UiLocaTagReference buildTooltipChangeBlueprint; // Offset: 1344 + keen::ds::UiLocaTagReference buildTooltipChangeShovelAction; // Offset: 1360 + keen::ds::UiLocaTagReference buildTooltipChangeNpc; // Offset: 1376 + keen::ds::UiLocaTagReference buildTooltipChangeMaterial; // Offset: 1392 + keen::ds::UiLocaTagReference buildTooltipRotate90; // Offset: 1408 + keen::ds::UiLocaTagReference buildTooltipRotate; // Offset: 1424 + keen::ds::UiLocaTagReference buildTooltipAreaActions; // Offset: 1440 + keen::ds::UiLocaTagReference buildTooltipUseSnapping; // Offset: 1456 + keen::ds::UiLocaTagReference cursorHintSnappingActive; // Offset: 1472 + keen::ds::UiLocaTagReference cursorHintSnappingReady; // Offset: 1488 + keen::ds::UiLocaTagReference cursorHintSnappingOff; // Offset: 1504 + keen::ds::UiLocaTagReference buildTooltipMultiToolMaterialHeader; // Offset: 1520 + keen::ds::UiLocaTagReference buildTooltipMultiToolMaterialActionLabel; // Offset: 1536 + keen::ds::UiLocaTagReference leaveNpcConversation; // Offset: 1552 + keen::ds::UiLocaTagReference messageFastTravelUnlock; // Offset: 1568 + keen::ds::UiLocaTagReference messageNpcFound; // Offset: 1584 + keen::ds::UiLocaTagReference messageSpecialLootAcquired; // Offset: 1600 + keen::ds::UiLocaTagReference messageLevelUp; // Offset: 1616 + keen::ds::UiLocaTagReference messageFlameLevelUp; // Offset: 1632 + keen::ds::UiLocaTagReference messageAllItemsRepaired; // Offset: 1648 + keen::ds::UiLocaTagReference messagePinnedRecipeReady; // Offset: 1664 + keen::ds::UiLocaTagReference messageMagicBarrierUnlocked; // Offset: 1680 + keen::ds::UiLocaTagReference messageDoorUnlocked; // Offset: 1696 + keen::ds::UiLocaTagReference messageSecretDoorUnlocked; // Offset: 1712 + keen::ds::UiLocaTagReference messageNewTwitchDropUnlocked; // Offset: 1728 + keen::ds::UiLocaTagReference knowledgeNotificationGeneral; // Offset: 1744 + keen::ds::UiLocaTagReference knowledgeNotificationMap; // Offset: 1760 + keen::ds::UiLocaTagReference knowledgeNotificationJournal; // Offset: 1776 + keen::ds::UiLocaTagReference knowledgeNotificationNewTutorial; // Offset: 1792 + keen::ds::UiLocaTagReference knowledgeNotificationNewLoreDocument; // Offset: 1808 + keen::ds::UiLocaTagReference knowledgeNotificationNewLorePage; // Offset: 1824 + keen::ds::UiLocaTagReference knowledgeNotificationNewQuest; // Offset: 1840 + keen::ds::UiLocaTagReference knowledgeNotificationUpdatedQuest; // Offset: 1856 + keen::ds::UiLocaTagReference knowledgeNotificationJournalCompleted; // Offset: 1872 + keen::ds::UiLocaTagReference knowledgeNotificationCrafting; // Offset: 1888 + keen::ds::UiLocaTagReference knowledgeNotificationIngredientKnowledge; // Offset: 1904 + keen::ds::UiLocaTagReference knowledgeNotificationNpcDialog; // Offset: 1920 + keen::ds::UiLocaTagReference priorityJournalEntryPrompt; // Offset: 1936 + keen::ds::UiLocaTagReference priorityJournalEntryPromptNoBinding; // Offset: 1952 + keen::ds::UiLocaTagReference priorityJournalLocationReached; // Offset: 1968 + keen::ds::UiLocaTagReference interactionItemRequirementHeader; // Offset: 1984 + keen::ds::UiLocaTagReference backpackFullMessage; // Offset: 2000 + keen::ds::UiLocaTagReference storageFullMessage; // Offset: 2016 + keen::ds::UiLocaTagReference compassWaypointReached; // Offset: 2032 + keen::ds::UiLocaTagReference compassWaypointReachedAbove; // Offset: 2048 + keen::ds::UiLocaTagReference compassWaypointReachedBelow; // Offset: 2064 + keen::ds::UiLocaTagReference compassInFog; // Offset: 2080 + keen::ds::UiLocaTagReference compassInDeadlyFog; // Offset: 2096 + keen::ds::UiLocaTagReference compassEarlyFogWarning; // Offset: 2112 + keen::ds::UiLocaTagReference compassFogWarning; // Offset: 2128 + keen::ds::UiLocaTagReference staminaMax; // Offset: 2144 + keen::ds::UiLocaTagReference restedBuffConditionHeader; // Offset: 2160 + keen::ds::UiLocaTagReference markersAdded; // Offset: 2176 + keen::ds::UiLocaTagReference entriesLogged; // Offset: 2192 + keen::ds::UiLocaTagReference entriesCompleted; // Offset: 2208 + keen::ds::UiLocaTagReference oneRecipeLearned; // Offset: 2224 + keen::ds::UiLocaTagReference recipesLearned; // Offset: 2240 + keen::ds::UiLocaTagReference recipesLearnedPersonal; // Offset: 2256 + keen::ds::UiLocaTagReference readyToCraft; // Offset: 2272 + keen::ds::UiLocaTagReference readyToCraftPinned; // Offset: 2288 + keen::ds::UiLocaTagReference loading; // Offset: 2304 + keen::ds::UiLocaTagReference reviving; // Offset: 2320 + keen::ds::UiLocaTagReference beingRevived; // Offset: 2336 + keen::ds::UiLocaTagReference canBeRevived; // Offset: 2352 + keen::ds::UiLocaTagReference craftableAmount; // Offset: 2368 + keen::ds::UiLocaTagReference emptyHint; // Offset: 2384 + keen::ds::UiLocaTagReference inventoryCount; // Offset: 2400 + keen::ds::UiLocaTagReference serverPerformanceBad; // Offset: 2416 + keen::ds::UiLocaTagReference serverPerformanceBadHost; // Offset: 2432 + keen::ds::UiLocaTagReference serverPerformanceBadDesc; // Offset: 2448 + keen::ds::UiLocaTagReference serverPerformanceBadDescHost; // Offset: 2464 + keen::ds::UiLocaTagReference serverPerformanceCritical; // Offset: 2480 + keen::ds::UiLocaTagReference serverPerformanceCriticalHost; // Offset: 2496 + keen::ds::UiLocaTagReference serverPerformanceCriticalDesc; // Offset: 2512 + keen::ds::UiLocaTagReference serverPerformanceCriticalDescHost; // Offset: 2528 + keen::ds::UiLocaTagReference currentServerPerformance; // Offset: 2544 + keen::ds::UiLocaTagReference currentServerPerformanceHost; // Offset: 2560 + keen::ds::UiLocaTagReference flameUpgradeBaseLabel; // Offset: 2576 + keen::ds::UiLocaTagReference personalProgressionModeHint; // Offset: 2592 + keen::ds::UiLocaTagReference allMissedWorldQuestsCompletedMessage; // Offset: 2608 + keen::ds::UiLocaTagReference interactionNoPermission; // Offset: 2624 + keen::ds::UiLocaTagReference itemUseNoPermission; // Offset: 2640 + keen::ds::UiLocaTagReference currentSongPlayingHint; // Offset: 2656 + keen::ds::UiLocaTagReference tamingTutorialTitle; // Offset: 2672 + keen::ds::UiLocaTagReference tamingTutorialStep1; // Offset: 2688 + keen::ds::UiLocaTagReference tamingTutorialStep2; // Offset: 2704 + keen::ds::UiLocaTagReference tamingTutorialStep3; // Offset: 2720 + keen::ds::UiLocaTagReference tamingTutorialStep4; // Offset: 2736 +}; + +struct FbUiLocaMenuFlameAltar { + keen::ds::UiLocaTagReference menuHeader; // Offset: 0 + keen::ds::UiLocaTagReference altarLevelLabel; // Offset: 16 + keen::ds::UiLocaTagReference altarRangeLabel; // Offset: 32 + keen::ds::UiLocaTagReference motherflameLevelLabel; // Offset: 48 + keen::ds::UiLocaTagReference lastPlayed; // Offset: 64 + keen::ds::UiLocaTagReference altarRange; // Offset: 80 + keen::ds::UiLocaTagReference flameUpgradeMaxAltarCountLabel; // Offset: 96 + keen::ds::UiLocaTagReference flameUpgradeAttributeBonusLabel; // Offset: 112 + keen::ds::UiLocaTagReference flameUpgradeFogResistanceLabel; // Offset: 128 + keen::ds::UiLocaTagReference flameUpgradeFogResistanceLevel; // Offset: 144 + keen::ds::UiLocaTagReference flameUpgradeFogResistanceDuration; // Offset: 160 + keen::ds::UiLocaTagReference flameCodexDesc; // Offset: 176 + keen::ds::UiLocaTagReference flameCodexUpgradeHeader; // Offset: 192 + keen::ds::UiLocaTagReference tileAltarUpgradeMainText; // Offset: 208 + keen::ds::UiLocaTagReference tileAltarUpgradeSecondaryText; // Offset: 224 + keen::ds::UiLocaTagReference tileMotherflameUpgradeMainText; // Offset: 240 + keen::ds::UiLocaTagReference tileMotherflameUpgradeSecondaryText; // Offset: 256 + keen::ds::UiLocaTagReference tileReviveNpcMainText; // Offset: 272 + keen::ds::UiLocaTagReference tileReviveNpcSecondaryText; // Offset: 288 + keen::ds::UiLocaTagReference tileRespecMainText; // Offset: 304 + keen::ds::UiLocaTagReference tileRespecSecondaryText; // Offset: 320 + keen::ds::UiLocaTagReference respecDescription; // Offset: 336 + keen::ds::UiLocaTagReference actionRespecSkills; // Offset: 352 + keen::ds::UiLocaTagReference actionDeactivate; // Offset: 368 + keen::ds::UiLocaTagReference actionDeactivateSecondaryText; // Offset: 384 + keen::ds::UiLocaTagReference actionReactivate; // Offset: 400 + keen::ds::UiLocaTagReference deactivateAltarDesc; // Offset: 416 + keen::ds::UiLocaTagReference inactiveStateDesc; // Offset: 432 + keen::ds::UiLocaTagReference reactivationProhibited; // Offset: 448 + keen::ds::UiLocaTagReference altarUpgradeRecipeHeader; // Offset: 464 + keen::ds::UiLocaTagReference motherflameUpgradeRecipeHeader; // Offset: 480 + keen::ds::UiLocaTagReference actionAltarUpgrade; // Offset: 496 + keen::ds::UiLocaTagReference actionMotherflameUpgrade; // Offset: 512 + keen::ds::UiLocaTagReference npcReviveSubheader; // Offset: 528 + keen::ds::UiLocaTagReference deactivationExplanation; // Offset: 544 + keen::ds::UiLocaTagReference noPermissionHintGeneral; // Offset: 560 + keen::ds::UiLocaTagReference noAltarUpgradePermission; // Offset: 576 + keen::ds::UiLocaTagReference noFlameUpgradePermission; // Offset: 592 + keen::ds::UiLocaTagReference noExtinguishAltarPermission; // Offset: 608 + keen::ds::UiLocaTagReference shelteredBedsRequirement; // Offset: 624 +}; + +struct FbUiLocaMenuPregame { + keen::ds::UiLocaTagReference mainMenuPlay; // Offset: 0 + keen::ds::UiLocaTagReference mainMenuJoinSessionHeader; // Offset: 16 + keen::ds::UiLocaTagReference mainMenuInviteHeader; // Offset: 32 + keen::ds::UiLocaTagReference mainMenuInviteAccept; // Offset: 48 + keen::ds::UiLocaTagReference mainMenuInviteDecline; // Offset: 64 + keen::ds::UiLocaTagReference mainMenuJoinSessionFallbackName; // Offset: 80 + keen::ds::UiLocaTagReference mainMenuCredits; // Offset: 96 + keen::ds::UiLocaTagReference mainMenuQuit; // Offset: 112 + keen::ds::UiLocaTagReference mainMenuGPUDriverWarning; // Offset: 128 + keen::ds::UiLocaTagReference thankYouClosedBeta; // Offset: 144 + keen::ds::UiLocaTagReference steamCallToAction; // Offset: 160 + keen::ds::UiLocaTagReference discordCallToAction; // Offset: 176 + keen::ds::UiLocaTagReference characterSelectionEnterVerb; // Offset: 192 + keen::ds::UiLocaTagReference characterSelectionHeaderCreate; // Offset: 208 + keen::ds::UiLocaTagReference characterSelectionHeaderSelect; // Offset: 224 + keen::ds::UiLocaTagReference characterSelectionEmptySlotHint; // Offset: 240 + keen::ds::UiLocaTagReference characterDeletionConfirmHeader; // Offset: 256 + keen::ds::UiLocaTagReference characterBackupRestoreDialogHeader; // Offset: 272 + keen::ds::UiLocaTagReference characterBackupRestoreDataLabel; // Offset: 288 + keen::ds::UiLocaTagReference characterBackupRestoreButtonLabel; // Offset: 304 + keen::ds::UiLocaTagReference playSelectionHeader; // Offset: 320 + keen::ds::UiLocaTagReference playSelectionRecent; // Offset: 336 + keen::ds::UiLocaTagReference playSelectionJoin; // Offset: 352 + keen::ds::UiLocaTagReference playSelectionJoinDescription; // Offset: 368 + keen::ds::UiLocaTagReference playSelectionJoinHeader; // Offset: 384 + keen::ds::UiLocaTagReference playSelectionHostPublic; // Offset: 400 + keen::ds::UiLocaTagReference playSelectionHostPublicDescription; // Offset: 416 + keen::ds::UiLocaTagReference playSelectionHostPublicHeader; // Offset: 432 + keen::ds::UiLocaTagReference playSelectionPrivate; // Offset: 448 + keen::ds::UiLocaTagReference playSelectionPrivateDescription; // Offset: 464 + keen::ds::UiLocaTagReference playSelectionPrivateHeader; // Offset: 480 + keen::ds::UiLocaTagReference party; // Offset: 496 + keen::ds::UiLocaTagReference filterFriends; // Offset: 512 + keen::ds::UiLocaTagReference filterDedicatedServer; // Offset: 528 + keen::ds::UiLocaTagReference filterEmpty; // Offset: 544 + keen::ds::UiLocaTagReference filterName; // Offset: 560 + keen::ds::UiLocaTagReference filterPassword; // Offset: 576 + keen::ds::UiLocaTagReference filterFreeSlots; // Offset: 592 + keen::ds::UiLocaTagReference filterNameHeader; // Offset: 608 + keen::ds::UiLocaTagReference sessionSearchEmptyResult; // Offset: 624 + keen::ds::UiLocaTagReference sessionSearchOngoing; // Offset: 640 + keen::ds::UiLocaTagReference errorServerNotFound; // Offset: 656 + keen::ds::UiLocaTagReference errorServerNotFoundDesc; // Offset: 672 + keen::ds::UiLocaTagReference serverFound; // Offset: 688 + keen::ds::UiLocaTagReference noSessionsMatchingFilter; // Offset: 704 + keen::ds::UiLocaTagReference enterGridSelection; // Offset: 720 + keen::ds::UiLocaTagReference playVoiceSample; // Offset: 736 + keen::ds::UiLocaTagReference customizationOptionNone; // Offset: 752 + keen::ds::UiLocaTagReference customizationBodyType; // Offset: 768 + keen::ds::UiLocaTagReference customizationPreset; // Offset: 784 + keen::ds::UiLocaTagReference customizationSkinColor; // Offset: 800 + keen::ds::UiLocaTagReference customizationEyeColor; // Offset: 816 + keen::ds::UiLocaTagReference customizationEyeBrowColor; // Offset: 832 + keen::ds::UiLocaTagReference customizationHair; // Offset: 848 + keen::ds::UiLocaTagReference customizationHairColor; // Offset: 864 + keen::ds::UiLocaTagReference customizationBeard; // Offset: 880 + keen::ds::UiLocaTagReference customizationBeardColor; // Offset: 896 + keen::ds::UiLocaTagReference customizationVoice; // Offset: 912 + keen::ds::UiLocaTagReference customizationName; // Offset: 928 + keen::ds::UiLocaTagReference customizationCharacter; // Offset: 944 + keen::ds::UiLocaTagReference customizationNameAndFinish; // Offset: 960 + keen::ds::UiLocaTagReference customizationResetPreset; // Offset: 976 + keen::ds::UiLocaTagReference customizationFinish; // Offset: 992 + keen::ds::UiLocaTagReference refresh; // Offset: 1008 + keen::ds::UiLocaTagReference newGame; // Offset: 1024 + keen::ds::UiLocaTagReference unnamed; // Offset: 1040 + keen::ds::UiLocaTagReference create; // Offset: 1056 + keen::ds::UiLocaTagReference edit; // Offset: 1072 + keen::ds::UiLocaTagReference configure; // Offset: 1088 + keen::ds::UiLocaTagReference myWorld; // Offset: 1104 + keen::ds::UiLocaTagReference editWorldSave; // Offset: 1120 + keen::ds::UiLocaTagReference configureWorldSave; // Offset: 1136 + keen::ds::UiLocaTagReference deleteWorld; // Offset: 1152 + keen::ds::UiLocaTagReference deleteWorldDesc; // Offset: 1168 + keen::ds::UiLocaTagReference maxWorldCountReached; // Offset: 1184 + keen::ds::UiLocaTagReference worldSaveNameTitle; // Offset: 1200 + keen::ds::UiLocaTagReference gameSettings; // Offset: 1216 + keen::ds::UiLocaTagReference sessionVisibility; // Offset: 1232 + keen::ds::UiLocaTagReference joinGame; // Offset: 1248 + keen::ds::UiLocaTagReference publicGame; // Offset: 1264 + keen::ds::UiLocaTagReference privateGame; // Offset: 1280 + keen::ds::UiLocaTagReference sessionVisibiltyFriends; // Offset: 1296 + keen::ds::UiLocaTagReference sessionVisibiltyPublic; // Offset: 1312 + keen::ds::UiLocaTagReference hidePasswordInput; // Offset: 1328 + keen::ds::UiLocaTagReference setPasswordProtection; // Offset: 1344 + keen::ds::UiLocaTagReference hostHintHasNoPassword; // Offset: 1360 + keen::ds::UiLocaTagReference hostSettings; // Offset: 1376 + keen::ds::UiLocaTagReference hostStartDialogHeader; // Offset: 1392 + keen::ds::UiLocaTagReference hostStartButton; // Offset: 1408 + keen::ds::UiLocaTagReference worldNameEmptyProhibited; // Offset: 1424 + keen::ds::UiLocaTagReference noPassword; // Offset: 1440 + keen::ds::UiLocaTagReference sessionPassword; // Offset: 1456 + keen::ds::UiLocaTagReference rolePassword; // Offset: 1472 + keen::ds::UiLocaTagReference setPassword; // Offset: 1488 + keen::ds::UiLocaTagReference removePassword; // Offset: 1504 + keen::ds::UiLocaTagReference enterPasswordHeader; // Offset: 1520 + keen::ds::UiLocaTagReference sessionSize; // Offset: 1536 + keen::ds::UiLocaTagReference maxPlayerCount; // Offset: 1552 + keen::ds::UiLocaTagReference serverFilter; // Offset: 1568 + keen::ds::UiLocaTagReference availableServer; // Offset: 1584 + keen::ds::UiLocaTagReference serverName; // Offset: 1600 + keen::ds::UiLocaTagReference hostedBy; // Offset: 1616 + keen::ds::UiLocaTagReference currentSessionSize; // Offset: 1632 + keen::ds::UiLocaTagReference sessionSizeWarning; // Offset: 1648 + keen::ds::UiLocaTagReference enterPassword; // Offset: 1664 + keen::ds::UiLocaTagReference searchIPv4; // Offset: 1680 + keen::ds::UiLocaTagReference addToFavourite; // Offset: 1696 + keen::ds::UiLocaTagReference renameCharacter; // Offset: 1712 + keen::ds::UiLocaTagReference legalLine; // Offset: 1728 + keen::ds::UiLocaTagReference gportalLogoDesc; // Offset: 1744 + keen::ds::UiLocaTagReference gportalLink; // Offset: 1760 + keen::ds::UiLocaTagReference versionText; // Offset: 1776 + keen::ds::UiLocaTagReference preload; // Offset: 1792 + keen::ds::UiLocaTagReference compilingShaders; // Offset: 1808 + keen::ds::UiLocaTagReference addServerCaption; // Offset: 1824 + keen::ds::UiLocaTagReference serverDidNotResponde; // Offset: 1840 + keen::ds::UiLocaTagReference serverDidResponde; // Offset: 1856 + keen::ds::UiLocaTagReference inviteBuildVersionWarningLocalOld; // Offset: 1872 + keen::ds::UiLocaTagReference inviteBuildVersionWarningInviteOld; // Offset: 1888 + keen::ds::UiLocaTagReference serverSettingsRolesHeader; // Offset: 1904 + keen::ds::UiLocaTagReference serverSettingsRolesExplanation; // Offset: 1920 + keen::ds::UiLocaTagReference serverSettingsSelectedSavegameHeader; // Offset: 1936 + keen::ds::UiLocaTagReference serverSettingsRoleDisabled; // Offset: 1952 + keen::ds::UiLocaTagReference serverSettingsRolePublic; // Offset: 1968 + keen::ds::UiLocaTagReference serverSettingsAllRolesDisabledWarning; // Offset: 1984 + keen::ds::UiLocaTagReference serverRolePermissionsHeader; // Offset: 2000 + keen::ds::UiLocaTagReference serverRoleSupressed; // Offset: 2016 + keen::ds::UiLocaTagReference serverRolesInvalidHint; // Offset: 2032 + keen::ds::UiLocaTagReference warningHostSettingsNotConfigured; // Offset: 2048 + keen::ds::UiLocaTagReference warningServerRoleSupressed; // Offset: 2064 + keen::ds::UiLocaTagReference warningServerRoleSamePassword; // Offset: 2080 + keen::ds::UiLocaTagReference warningPublicServerRole; // Offset: 2096 + keen::ds::UiLocaTagReference warningAdminPasswordRequired; // Offset: 2112 + keen::ds::UiLocaTagReference warningFriendPasswordRequired; // Offset: 2128 + keen::ds::UiLocaTagReference warningNoPasswordPublic; // Offset: 2144 + keen::ds::UiLocaTagReference forceAllowPublicFriendRole; // Offset: 2160 + keen::ds::UiLocaTagReference rolePasswordHeader; // Offset: 2176 + keen::ds::UiLocaTagReference changePassword; // Offset: 2192 + keen::ds::UiLocaTagReference publicRole; // Offset: 2208 + keen::ds::UiLocaTagReference protectedRole; // Offset: 2224 + keen::ds::UiLocaTagReference disabled; // Offset: 2240 + keen::ds::UiLocaTagReference joinWithoutPw; // Offset: 2256 + keen::ds::UiLocaTagReference optionalPwHint; // Offset: 2272 +}; + +struct FbUiLocaMenuSystem { + keen::ds::UiLocaTagReference returnToGame; // Offset: 0 + keen::ds::UiLocaTagReference returnToPregame; // Offset: 16 + keen::ds::UiLocaTagReference showServerRole; // Offset: 32 + keen::ds::UiLocaTagReference quitToDesktop; // Offset: 48 + keen::ds::UiLocaTagReference networkQuality; // Offset: 64 + keen::ds::UiLocaTagReference latencyValue; // Offset: 80 + keen::ds::UiLocaTagReference shaderCompileProgress; // Offset: 96 + keen::ds::UiLocaTagReference feedbackPopupHint; // Offset: 112 + keen::ds::UiLocaTagReference feedbackIssue; // Offset: 128 + keen::ds::UiLocaTagReference feedbackIssueLink; // Offset: 144 + keen::ds::UiLocaTagReference bugReport; // Offset: 160 + keen::ds::UiLocaTagReference bugReportLink; // Offset: 176 + keen::ds::UiLocaTagReference discordServer; // Offset: 192 + keen::ds::UiLocaTagReference discordServerLink; // Offset: 208 + keen::ds::UiLocaTagReference connectTwitch; // Offset: 224 + keen::ds::UiLocaTagReference connectTwitchLink; // Offset: 240 + keen::ds::UiLocaTagReference steamWishlist; // Offset: 256 + keen::ds::UiLocaTagReference steamWishlistLink; // Offset: 272 + keen::ds::UiLocaTagReference watermarkLabel; // Offset: 288 + keen::ds::UiLocaTagReference watermarkBetaLabel; // Offset: 304 + keen::ds::UiLocaTagReference watermarkSecondLine; // Offset: 320 + keen::ds::UiLocaTagReference watermarkF1Hint; // Offset: 336 + keen::ds::UiLocaTagReference hours; // Offset: 352 + keen::ds::UiLocaTagReference minutes; // Offset: 368 + keen::ds::UiLocaTagReference gamePaused; // Offset: 384 +}; + +struct FbUiLocaMenuBindingsReset { + keen::ds::UiLocaTagReference resetHeader; // Offset: 0 + keen::ds::UiLocaTagReference resetDescription; // Offset: 16 + keen::ds::UiLocaTagReference presetChangeHeader; // Offset: 32 + keen::ds::UiLocaTagReference presetChangeDescription; // Offset: 48 + keen::ds::UiLocaTagReference presetChangeConfirmButton; // Offset: 64 +}; + +struct FbUiLongDocParagraph { + keen::ds::UiLocaTagReference locaTag; // Offset: 0 + keen::ds::UiLocaTagReference hyperLink; // Offset: 16 +}; + +struct FbUiLocaTagDifficultySettings { + keen::ds::UiLocaTagReference presetDefault; // Offset: 0 + keen::ds::UiLocaTagReference presetDefaultDesc; // Offset: 16 + keen::ds::UiLocaTagReference presetSurvivalist; // Offset: 32 + keen::ds::UiLocaTagReference presetSurvivalistDesc; // Offset: 48 + keen::ds::UiLocaTagReference presetBuilders; // Offset: 64 + keen::ds::UiLocaTagReference presetBuildersDesc; // Offset: 80 + keen::ds::UiLocaTagReference presetCombatChallenge; // Offset: 96 + keen::ds::UiLocaTagReference presetCombatChallengeDesc; // Offset: 112 + keen::ds::UiLocaTagReference presetCustom; // Offset: 128 + keen::ds::UiLocaTagReference presetCustomDesc; // Offset: 144 + keen::ds::UiLocaTagReference enemySettingsHeader; // Offset: 160 + keen::ds::UiLocaTagReference enemyDamage; // Offset: 176 + keen::ds::UiLocaTagReference enemyDamageDesc; // Offset: 192 + keen::ds::UiLocaTagReference enemyHealth; // Offset: 208 + keen::ds::UiLocaTagReference enemyHealthDesc; // Offset: 224 + keen::ds::UiLocaTagReference enemyStamina; // Offset: 240 + keen::ds::UiLocaTagReference enemyStaminaDesc; // Offset: 256 + keen::ds::UiLocaTagReference enemyPerceptionRange; // Offset: 272 + keen::ds::UiLocaTagReference enemyPerceptionRangeDesc; // Offset: 288 + keen::ds::UiLocaTagReference enemyAttackSimultaneous; // Offset: 304 + keen::ds::UiLocaTagReference enemyAttackSimultaneousDesc; // Offset: 320 + keen::ds::UiLocaTagReference enemyAttackFrequency; // Offset: 336 + keen::ds::UiLocaTagReference enemyAttackFrequencyDesc; // Offset: 352 + keen::ds::UiLocaTagReference pacifyEnemies; // Offset: 368 + keen::ds::UiLocaTagReference pacifyEnemiesDesc; // Offset: 384 + keen::ds::UiLocaTagReference enemySpawnerAmount; // Offset: 400 + keen::ds::UiLocaTagReference enemySpawnerAmountDesc; // Offset: 416 + keen::ds::UiLocaTagReference enemySpawnerAmountFew; // Offset: 432 + keen::ds::UiLocaTagReference enemySpawnerAmountNormal; // Offset: 448 + keen::ds::UiLocaTagReference enemySpawnerAmountMore; // Offset: 464 + keen::ds::UiLocaTagReference enemySpawnerAmountMany; // Offset: 480 + keen::ds::UiLocaTagReference bossHealth; // Offset: 496 + keen::ds::UiLocaTagReference bossHealthDesc; // Offset: 512 + keen::ds::UiLocaTagReference bossDamage; // Offset: 528 + keen::ds::UiLocaTagReference bossDamageDesc; // Offset: 544 + keen::ds::UiLocaTagReference playerHealth; // Offset: 560 + keen::ds::UiLocaTagReference playerHealthDesc; // Offset: 576 + keen::ds::UiLocaTagReference playerMana; // Offset: 592 + keen::ds::UiLocaTagReference playerManaDesc; // Offset: 608 + keen::ds::UiLocaTagReference playerStamina; // Offset: 624 + keen::ds::UiLocaTagReference playerStaminaDesc; // Offset: 640 + keen::ds::UiLocaTagReference otherSettingsHeader; // Offset: 656 + keen::ds::UiLocaTagReference xpGainMining; // Offset: 672 + keen::ds::UiLocaTagReference xpGainMiningDesc; // Offset: 688 + keen::ds::UiLocaTagReference xpGainQuests; // Offset: 704 + keen::ds::UiLocaTagReference xpGainQuestsDesc; // Offset: 720 + keen::ds::UiLocaTagReference xpGainCombat; // Offset: 736 + keen::ds::UiLocaTagReference xpGainCombatDesc; // Offset: 752 + keen::ds::UiLocaTagReference shroudTime; // Offset: 768 + keen::ds::UiLocaTagReference shroudTimeDesc; // Offset: 784 + keen::ds::UiLocaTagReference productionSpeed; // Offset: 800 + keen::ds::UiLocaTagReference productionSpeedDesc; // Offset: 816 + keen::ds::UiLocaTagReference plantGrowSpeed; // Offset: 832 + keen::ds::UiLocaTagReference plantGrowSpeedDesc; // Offset: 848 + keen::ds::UiLocaTagReference weaponUpgradeCosts; // Offset: 864 + keen::ds::UiLocaTagReference weaponUpgradeCostsDesc; // Offset: 880 + keen::ds::UiLocaTagReference perkUpgradeRecyclingFactor; // Offset: 896 + keen::ds::UiLocaTagReference perkUpgradeRecyclingFactorDesc; // Offset: 912 + keen::ds::UiLocaTagReference backpackDeathBehaviour; // Offset: 928 + keen::ds::UiLocaTagReference backpackDeathBehaviourDesc; // Offset: 944 + keen::ds::UiLocaTagReference backpackDeathBehaviourKeepAll; // Offset: 960 + keen::ds::UiLocaTagReference backpackDeathBehaviourDefault; // Offset: 976 + keen::ds::UiLocaTagReference backpackDeathBehaviourLoseAll; // Offset: 992 + keen::ds::UiLocaTagReference durabilityEnabled; // Offset: 1008 + keen::ds::UiLocaTagReference durabilityEnabledDesc; // Offset: 1024 + keen::ds::UiLocaTagReference durabilityScaling; // Offset: 1040 + keen::ds::UiLocaTagReference durabilityScalingDesc; // Offset: 1056 + keen::ds::UiLocaTagReference worldRefreshTime; // Offset: 1072 + keen::ds::UiLocaTagReference worldRefreshTimeDesc; // Offset: 1088 + keen::ds::UiLocaTagReference dayDuration; // Offset: 1104 + keen::ds::UiLocaTagReference dayDurationDesc; // Offset: 1120 + keen::ds::UiLocaTagReference nightDuration; // Offset: 1136 + keen::ds::UiLocaTagReference nightDurationDesc; // Offset: 1152 + keen::ds::UiLocaTagReference foodDuration; // Offset: 1168 + keen::ds::UiLocaTagReference foodDurationDesc; // Offset: 1184 + keen::ds::UiLocaTagReference foodSurvival; // Offset: 1200 + keen::ds::UiLocaTagReference foodSurvivalDesc; // Offset: 1216 + keen::ds::UiLocaTagReference starvingTime; // Offset: 1232 + keen::ds::UiLocaTagReference starvingTimeDesc; // Offset: 1248 + keen::ds::UiLocaTagReference weatherFrequency; // Offset: 1264 + keen::ds::UiLocaTagReference weatherFrequencyDesc; // Offset: 1280 + keen::ds::UiLocaTagReference enableGliderTurbulences; // Offset: 1296 + keen::ds::UiLocaTagReference enableGliderTurbulencesDesc; // Offset: 1312 + keen::ds::UiLocaTagReference tamingStartleRepercussion; // Offset: 1328 + keen::ds::UiLocaTagReference tamingStartleRepercussionDesc; // Offset: 1344 + keen::ds::UiLocaTagReference bodyHeat; // Offset: 1360 + keen::ds::UiLocaTagReference bodyHeatDesc; // Offset: 1376 + keen::ds::UiLocaTagReference miningDamage; // Offset: 1392 + keen::ds::UiLocaTagReference miningDamageDesc; // Offset: 1408 + keen::ds::UiLocaTagReference lootAmount; // Offset: 1424 + keen::ds::UiLocaTagReference lootAmountDesc; // Offset: 1440 + keen::ds::UiLocaTagReference resourcesHeader; // Offset: 1456 + keen::ds::UiLocaTagReference xpModsHeader; // Offset: 1472 + keen::ds::UiLocaTagReference survivalHeader; // Offset: 1488 + keen::ds::UiLocaTagReference playerHeader; // Offset: 1504 + keen::ds::UiLocaTagReference selectedLabel; // Offset: 1520 +}; + +struct FbUiLocaMenuSettings { + keen::ds::UiLocaTagReference tabGame; // Offset: 0 + keen::ds::UiLocaTagReference tabDisplay; // Offset: 16 + keen::ds::UiLocaTagReference tabSound; // Offset: 32 + keen::ds::UiLocaTagReference tabAccessibility; // Offset: 48 + keen::ds::UiLocaTagReference tabControls; // Offset: 64 + keen::ds::UiLocaTagReference tabLegal; // Offset: 80 + keen::DsArray privacyPolicyParagraphs; // Offset: 96 + keen::ds::UiLocaTagReference settingAuto; // Offset: 136 + keen::ds::UiLocaTagReference settingOff; // Offset: 152 + keen::ds::UiLocaTagReference settingOn; // Offset: 168 + keen::ds::UiLocaTagReference settingBoost; // Offset: 184 + keen::ds::UiLocaTagReference settingLowest; // Offset: 200 + keen::ds::UiLocaTagReference settingLow; // Offset: 216 + keen::ds::UiLocaTagReference settingMedium; // Offset: 232 + keen::ds::UiLocaTagReference settingHigh; // Offset: 248 + keen::ds::UiLocaTagReference settingUltra; // Offset: 264 + keen::ds::UiLocaTagReference settingPerformance; // Offset: 280 + keen::ds::UiLocaTagReference settingBalance; // Offset: 296 + keen::ds::UiLocaTagReference settingQuality; // Offset: 312 + keen::ds::UiLocaTagReference settingUltraQuality; // Offset: 328 + keen::ds::UiLocaTagReference settingUltraPerformance; // Offset: 344 + keen::ds::UiLocaTagReference settingNative; // Offset: 360 + keen::ds::UiLocaTagReference settingRare; // Offset: 376 + keen::ds::UiLocaTagReference settingNormal; // Offset: 392 + keen::ds::UiLocaTagReference settingOften; // Offset: 408 + keen::ds::UiLocaTagReference settingKeepProgress; // Offset: 424 + keen::ds::UiLocaTagReference settingLoseSomeProgress; // Offset: 440 + keen::ds::UiLocaTagReference settingLoseAllProgress; // Offset: 456 + keen::ds::UiLocaTagReference difficultyLabel; // Offset: 472 + keen::ds::UiLocaTagReference difficultyEasy; // Offset: 488 + keen::ds::UiLocaTagReference difficultyDefault; // Offset: 504 + keen::ds::UiLocaTagReference difficultyHard; // Offset: 520 + keen::ds::UiLocaTagReference difficultyVeryHard; // Offset: 536 + keen::ds::UiLocaTagReference difficultyCustom; // Offset: 552 + keen::ds::UiLocaTagReference controlsSectionKeyboardMouse; // Offset: 568 + keen::ds::UiLocaTagReference controlsSectionGamepad; // Offset: 584 + keen::ds::UiLocaTagReference mouseCameraSmoothing; // Offset: 600 + keen::ds::UiLocaTagReference cameraSensitivity; // Offset: 616 + keen::ds::UiLocaTagReference aimingSensitivity; // Offset: 632 + keen::ds::UiLocaTagReference cameraInversion; // Offset: 648 + keen::ds::UiLocaTagReference cameraInversionValueNone; // Offset: 664 + keen::ds::UiLocaTagReference cameraInversionValueX; // Offset: 680 + keen::ds::UiLocaTagReference cameraInversionValueY; // Offset: 696 + keen::ds::UiLocaTagReference cameraInversionValueXY; // Offset: 712 + keen::ds::UiLocaTagReference actionDirection; // Offset: 728 + keen::ds::UiLocaTagReference actionDirectionDesc; // Offset: 744 + keen::ds::UiLocaTagReference cameraDirection; // Offset: 760 + keen::ds::UiLocaTagReference characterDirection; // Offset: 776 + keen::ds::UiLocaTagReference controlsKeyboardMouseBindingsButton; // Offset: 792 + keen::ds::UiLocaTagReference controlsGamepadBindingsButton; // Offset: 808 + keen::ds::UiLocaTagReference controlScheme; // Offset: 824 + keen::ds::UiLocaTagReference controlSchemePresetA; // Offset: 840 + keen::ds::UiLocaTagReference controlSchemePresetB; // Offset: 856 + keen::ds::UiLocaTagReference controlSchemeCustom; // Offset: 872 + keen::ds::UiLocaTagReference controlSchemeEdit; // Offset: 888 + keen::ds::UiLocaTagReference controlSchemeCreate; // Offset: 904 + keen::ds::UiLocaTagReference controlSchemeCreateDescription; // Offset: 920 + keen::ds::UiLocaTagReference controlSchemeResetButton; // Offset: 936 + keen::ds::FbUiLocaMenuBindingsReset controlSchemeResetDialog; // Offset: 952 + keen::ds::UiLocaTagReference bindingEntryChange; // Offset: 1032 + keen::ds::UiLocaTagReference bindingEntryUndo; // Offset: 1048 + keen::ds::UiLocaTagReference bindingEntryReset; // Offset: 1064 + keen::ds::UiLocaTagReference bindingEntryDelete; // Offset: 1080 + keen::ds::UiLocaTagReference bindingEntryCustomize; // Offset: 1096 + keen::ds::UiLocaTagReference bindingEntryRemapPrompt; // Offset: 1112 + keen::ds::UiLocaTagReference warningHeader; // Offset: 1128 + keen::ds::UiLocaTagReference warningCriticalDescription; // Offset: 1144 + keen::ds::UiLocaTagReference warningRecommendedDescription; // Offset: 1160 + keen::ds::UiLocaTagReference warningContinueEdit; // Offset: 1176 + keen::ds::UiLocaTagReference warningUsePreset; // Offset: 1192 + keen::ds::UiLocaTagReference warningUseIncompleteBindings; // Offset: 1208 + keen::ds::UiLocaTagReference bindingCategoryMovements; // Offset: 1224 + keen::ds::UiLocaTagReference bindingCategoryBasicActions; // Offset: 1240 + keen::ds::UiLocaTagReference bindingCategoryCamera; // Offset: 1256 + keen::ds::UiLocaTagReference bindingCategoryActionBar; // Offset: 1272 + keen::ds::UiLocaTagReference bindingCategoryCombat; // Offset: 1288 + keen::ds::UiLocaTagReference bindingCategoryShortcuts; // Offset: 1304 + keen::ds::UiLocaTagReference bindingCategoryBuildings; // Offset: 1320 + keen::ds::UiLocaTagReference bindingCategoryUserInterface; // Offset: 1336 + keen::ds::UiLocaTagReference invalidBindingInput; // Offset: 1352 + keen::ds::UiLocaTagReference useAnalogStickHint; // Offset: 1368 + keen::ds::UiLocaTagReference searchKey; // Offset: 1384 + keen::ds::UiLocaTagReference pressKey; // Offset: 1400 + keen::ds::UiLocaTagReference inputKeyToSearch; // Offset: 1416 + keen::ds::UiLocaTagReference clearSearch; // Offset: 1432 + keen::ds::UiLocaTagReference volumeMaster; // Offset: 1448 + keen::ds::UiLocaTagReference volumeMusic; // Offset: 1464 + keen::ds::UiLocaTagReference volumeUi; // Offset: 1480 + keen::ds::UiLocaTagReference volumeGame; // Offset: 1496 + keen::ds::UiLocaTagReference volumeVoices; // Offset: 1512 + keen::ds::UiLocaTagReference audioReverb; // Offset: 1528 + keen::ds::UiLocaTagReference muteInBackground; // Offset: 1544 + keen::ds::UiLocaTagReference monitor; // Offset: 1560 + keen::ds::UiLocaTagReference displayMode; // Offset: 1576 + keen::ds::UiLocaTagReference windowed; // Offset: 1592 + keen::ds::UiLocaTagReference fullscreen; // Offset: 1608 + keen::ds::UiLocaTagReference resolution; // Offset: 1624 + keen::ds::UiLocaTagReference renderScale; // Offset: 1640 + keen::ds::UiLocaTagReference vsync; // Offset: 1656 + keen::ds::UiLocaTagReference sleepInBackground; // Offset: 1672 + keen::ds::UiLocaTagReference pointLightShadows; // Offset: 1688 + keen::ds::UiLocaTagReference fov; // Offset: 1704 + keen::ds::UiLocaTagReference brightness; // Offset: 1720 + keen::ds::UiLocaTagReference gamma; // Offset: 1736 + keen::ds::UiLocaTagReference contrast; // Offset: 1752 + keen::ds::UiLocaTagReference sharpness; // Offset: 1768 + keen::ds::UiLocaTagReference quality; // Offset: 1784 + keen::ds::UiLocaTagReference qualityPreset; // Offset: 1800 + keen::ds::UiLocaTagReference custom; // Offset: 1816 + keen::ds::UiLocaTagReference antialiasing; // Offset: 1832 + keen::ds::UiLocaTagReference shadowQuality; // Offset: 1848 + keen::ds::UiLocaTagReference contactShadows; // Offset: 1864 + keen::ds::UiLocaTagReference fsr2Quality; // Offset: 1880 + keen::ds::UiLocaTagReference fsr3Quality; // Offset: 1896 + keen::ds::UiLocaTagReference dlssQuality; // Offset: 1912 + keen::ds::UiLocaTagReference nvReflexQuality; // Offset: 1928 + keen::ds::UiLocaTagReference reflections; // Offset: 1944 + keen::ds::UiLocaTagReference fogQuality; // Offset: 1960 + keen::ds::UiLocaTagReference volumetricShadowQuality; // Offset: 1976 + keen::ds::UiLocaTagReference textureResolution; // Offset: 1992 + keen::ds::UiLocaTagReference textureFiltering; // Offset: 2008 + keen::ds::UiLocaTagReference ssao; // Offset: 2024 + keen::ds::UiLocaTagReference distantObjects; // Offset: 2040 + keen::ds::UiLocaTagReference decoObjects; // Offset: 2056 + keen::ds::UiLocaTagReference detailScattering; // Offset: 2072 + keen::ds::UiLocaTagReference voxelMeshing; // Offset: 2088 + keen::ds::UiLocaTagReference tessellation; // Offset: 2104 + keen::ds::UiLocaTagReference indirectLighting; // Offset: 2120 + keen::ds::UiLocaTagReference antialiasingFxaa; // Offset: 2136 + keen::ds::UiLocaTagReference antialiasingFsr2; // Offset: 2152 + keen::ds::UiLocaTagReference antialiasingFsr3; // Offset: 2168 + keen::ds::UiLocaTagReference antialiasingDlss; // Offset: 2184 + keen::ds::UiLocaTagReference antialiasingDlaa; // Offset: 2200 + keen::ds::UiLocaTagReference language; // Offset: 2216 + keen::ds::UiLocaTagReference resolutionValue; // Offset: 2232 + keen::ds::UiLocaTagReference nativeResolutionValue; // Offset: 2248 + keen::ds::UiLocaTagReference vsyncIntervalValue; // Offset: 2264 + keen::ds::UiLocaTagReference renderScaleDescription; // Offset: 2280 + keen::ds::UiLocaTagReference antialiasingDescription; // Offset: 2296 + keen::ds::UiLocaTagReference fsr2Description; // Offset: 2312 + keen::ds::UiLocaTagReference fsr3Description; // Offset: 2328 + keen::ds::UiLocaTagReference dlssDescription; // Offset: 2344 + keen::ds::UiLocaTagReference nvReflexDescription; // Offset: 2360 + keen::ds::UiLocaTagReference shadowsDescription; // Offset: 2376 + keen::ds::UiLocaTagReference contactShadowsDescription; // Offset: 2392 + keen::ds::UiLocaTagReference reflectionsDescription; // Offset: 2408 + keen::ds::UiLocaTagReference fogQualityDescription; // Offset: 2424 + keen::ds::UiLocaTagReference volShadowDescription; // Offset: 2440 + keen::ds::UiLocaTagReference ssaoDescription; // Offset: 2456 + keen::ds::UiLocaTagReference indirectLightingDescription; // Offset: 2472 + keen::ds::UiLocaTagReference useCharacterNameDescription; // Offset: 2488 + keen::ds::UiLocaTagReference gameplaySectionCamera; // Offset: 2504 + keen::ds::UiLocaTagReference gameplaySectionCombat; // Offset: 2520 + keen::ds::UiLocaTagReference gameplaySectionUI; // Offset: 2536 + keen::ds::UiLocaTagReference cameraDistance; // Offset: 2552 + keen::ds::UiLocaTagReference idleCameraMovement; // Offset: 2568 + keen::ds::UiLocaTagReference idleCameraMovementDescription; // Offset: 2584 + keen::ds::UiLocaTagReference reduceDynamicCameraMovement; // Offset: 2600 + keen::ds::UiLocaTagReference reduceDynamicCameraMovementDescription; // Offset: 2616 + keen::ds::UiLocaTagReference dynamicCameraGlider; // Offset: 2632 + keen::ds::UiLocaTagReference dynamicCameraCombat; // Offset: 2648 + keen::ds::UiLocaTagReference dynamicCameraGrapplingHook; // Offset: 2664 + keen::ds::UiLocaTagReference dynamicCameraCampfire; // Offset: 2680 + keen::ds::UiLocaTagReference screenShake; // Offset: 2696 + keen::ds::UiLocaTagReference screenShakeStrength; // Offset: 2712 + keen::ds::UiLocaTagReference displayDamageNumbers; // Offset: 2728 + keen::ds::UiLocaTagReference displayDamagePropertyTexts; // Offset: 2744 + keen::ds::UiLocaTagReference keepTargetLockWhenSprinting; // Offset: 2760 + keen::ds::UiLocaTagReference autoChangeTargetLockOnKill; // Offset: 2776 + keen::ds::UiLocaTagReference textScale; // Offset: 2792 + keen::ds::UiLocaTagReference hudAspectRatioLimit; // Offset: 2808 + keen::ds::UiLocaTagReference hudAspectRatioLimitNone; // Offset: 2824 + keen::ds::UiLocaTagReference hideHUD; // Offset: 2840 + keen::ds::UiLocaTagReference showHUD; // Offset: 2856 + keen::ds::UiLocaTagReference hideHelmet; // Offset: 2872 + keen::ds::UiLocaTagReference hideGloves; // Offset: 2888 + keen::ds::UiLocaTagReference showRarityIcons; // Offset: 2904 + keen::ds::UiLocaTagReference useCharacterName; // Offset: 2920 + keen::ds::UiLocaTagReference confirmDeletionByRarity; // Offset: 2936 + keen::ds::UiLocaTagReference confirmDeletionByRarityDescription; // Offset: 2952 + keen::ds::UiLocaTagReference rarityAndAbove; // Offset: 2968 + keen::ds::UiLocaTagReference hideSmallSpiders; // Offset: 2984 + keen::ds::UiLocaTagReference controllerButtonStyle; // Offset: 3000 + keen::ds::UiLocaTagReference controllerDiagramPageGeneral; // Offset: 3016 + keen::ds::UiLocaTagReference controllerDiagramPageBuilding; // Offset: 3032 + keen::ds::FbUiLocaTagDifficultySettings difficulty; // Offset: 3048 +}; + +struct FbUiUserPermissions { + keen::ds::UiLocaTagReference kickBanPermissionDesc; // Offset: 0 + keen::ds::UiLocaTagReference accessInventoriesPermissionDesc; // Offset: 16 + keen::ds::UiLocaTagReference editBasePermissionDesc; // Offset: 32 + keen::ds::UiLocaTagReference extendBasePermissionDesc; // Offset: 48 +}; + +struct FbUiLocaMenuJournal { + keen::ds::UiLocaTagReference emptyMenuHintShort; // Offset: 0 + keen::ds::UiLocaTagReference emptyMenuHintLong; // Offset: 16 +}; + +struct FbUiLocaMenus { + keen::ds::FbUiLocaMenuPregame pregame; // Offset: 0 + keen::ds::FbUiLocaMenuSystem system; // Offset: 2288 + keen::ds::FbUiLocaMenuSettings settings; // Offset: 2688 + keen::ds::FbUiUserPermissions userPermissions; // Offset: 7272 + keen::ds::FbUiLocaMenuFlameAltar flameAltar; // Offset: 7336 + keen::ds::FbUiLocaMenuJournal journal; // Offset: 7976 + keen::ds::UiLocaTagReference menuHeaderFallbackCollection; // Offset: 8008 + keen::ds::UiLocaTagReference menuHeaderFallbackFoodStorage; // Offset: 8024 + keen::ds::UiLocaTagReference menuHeaderSkillTree; // Offset: 8040 + keen::ds::UiLocaTagReference menuHeaderCharacterCustomization; // Offset: 8056 + keen::ds::UiLocaTagReference menuHeaderCharacterCreation; // Offset: 8072 + keen::ds::UiLocaTagReference menuHeaderStorageChest; // Offset: 8088 + keen::ds::UiLocaTagReference menuHeaderLootEntity; // Offset: 8104 + keen::ds::UiLocaTagReference menuHeaderSystem; // Offset: 8120 + keen::ds::UiLocaTagReference bpMenuGettingReady; // Offset: 8136 + keen::ds::UiLocaTagReference bpMenuSectionActiveBlueprint; // Offset: 8152 + keen::ds::UiLocaTagReference bpMenuSectionAvailableBlueprints; // Offset: 8168 + keen::ds::UiLocaTagReference bpMenuSectionMaterials; // Offset: 8184 + keen::ds::UiLocaTagReference bpMenuShapeBarExpansionHint; // Offset: 8200 + keen::ds::UiLocaTagReference bpMenuSubCategorySingleBlock; // Offset: 8216 + keen::ds::UiLocaTagReference bpMenuSubCategoryNonRoof; // Offset: 8232 + keen::ds::UiLocaTagReference bpMenuSubCategoryNonRoof_4m; // Offset: 8248 + keen::ds::UiLocaTagReference bpMenuSubCategoryRoof; // Offset: 8264 + keen::ds::UiLocaTagReference bpMenuSubCategoryRoof_4m; // Offset: 8280 + keen::ds::UiLocaTagReference bpMenuSubCategoryTerrain; // Offset: 8296 + keen::ds::UiLocaTagReference terraformerMenuSectionActiveTool; // Offset: 8312 + keen::ds::UiLocaTagReference terraformerMenuSectionAvailableTool; // Offset: 8328 + keen::ds::UiLocaTagReference npcSideMenuSectionActiveTool; // Offset: 8344 + keen::ds::UiLocaTagReference npcSideMenuSectionAvailableTool; // Offset: 8360 + keen::ds::UiLocaTagReference npcSideMenuNoAvailableNpcs; // Offset: 8376 + keen::ds::UiLocaTagReference npcSideMenuRoamingRange; // Offset: 8392 + keen::ds::UiLocaTagReference npcSideMenuRoamingRangeLabel; // Offset: 8408 + keen::ds::UiLocaTagReference dialogNoChatterHint; // Offset: 8424 + keen::ds::UiLocaTagReference repairNotAvailableHint; // Offset: 8440 + keen::ds::UiLocaTagReference craftingTabManual; // Offset: 8456 + keen::ds::UiLocaTagReference craftingTabRepair; // Offset: 8472 + keen::ds::UiLocaTagReference craftingTabRecycling; // Offset: 8488 + keen::ds::UiLocaTagReference craftingTabUpgrade; // Offset: 8504 + keen::ds::UiLocaTagReference playerEntryFallback; // Offset: 8520 + keen::ds::UiLocaTagReference itemPerksHeader; // Offset: 8536 + keen::ds::UiLocaTagReference itemPerksAttributeGeneric; // Offset: 8552 + keen::ds::UiLocaTagReference flame; // Offset: 8568 + keen::ds::UiLocaTagReference theFlame; // Offset: 8584 + keen::ds::UiLocaTagReference activeAltars; // Offset: 8600 + keen::ds::UiLocaTagReference mapNpcUnplacedHint; // Offset: 8616 + keen::ds::UiLocaTagReference attributeValueExplainShort; // Offset: 8632 + keen::ds::UiLocaTagReference attributeValueExplainLong; // Offset: 8648 + keen::ds::UiLocaTagReference resistanceAttributeBonusTooltip; // Offset: 8664 + keen::ds::UiLocaTagReference susceptibilityAttributeTooltip; // Offset: 8680 + keen::ds::UiLocaTagReference page; // Offset: 8696 + keen::ds::UiLocaTagReference pageNavigation; // Offset: 8712 + keen::ds::UiLocaTagReference pagesUnlocked; // Offset: 8728 + keen::ds::UiLocaTagReference rewards; // Offset: 8744 + keen::ds::UiLocaTagReference activeQuest; // Offset: 8760 + keen::ds::UiLocaTagReference fastTravelDisabled; // Offset: 8776 + keen::ds::UiLocaTagReference fastTravelDisabledFalling; // Offset: 8792 + keen::ds::UiLocaTagReference objective; // Offset: 8808 + keen::ds::UiLocaTagReference location; // Offset: 8824 + keen::ds::UiLocaTagReference completed; // Offset: 8840 + keen::ds::UiLocaTagReference documentItem; // Offset: 8856 + keen::ds::UiLocaTagReference loreCategoryUnsorted; // Offset: 8872 + keen::ds::UiLocaTagReference loreCategoryUndiscovered; // Offset: 8888 + keen::ds::UiLocaTagReference noUncompletedQuestsHint; // Offset: 8904 + keen::ds::UiLocaTagReference noCompletedQuestsHint; // Offset: 8920 + keen::ds::UiLocaTagReference customMapMarkerLabel; // Offset: 8936 + keen::ds::UiLocaTagReference tombstoneLabel; // Offset: 8952 + keen::ds::UiLocaTagReference missedWorldQuestsMapHint; // Offset: 8968 + keen::ds::UiLocaTagReference questCategoryActive; // Offset: 8984 + keen::ds::UiLocaTagReference questCategoryInactive; // Offset: 9000 + keen::ds::UiLocaTagReference nextQuestHintDocName; // Offset: 9016 + keen::ds::UiLocaTagReference nextQuestHintPageName; // Offset: 9032 + keen::ds::UiLocaTagReference nextQuestHintText; // Offset: 9048 + keen::ds::UiLocaTagReference kickPlayerPopupHeader; // Offset: 9064 + keen::ds::UiLocaTagReference kickPlayerPopupContent; // Offset: 9080 + keen::ds::UiLocaTagReference currentPlayerPermissionHeader; // Offset: 9096 + keen::ds::UiLocaTagReference nextQuestHintTheFlame; // Offset: 9112 + keen::ds::UiLocaTagReference songSelectionHeader; // Offset: 9128 + keen::ds::UiLocaTagReference showDetailedDiffucultySettings; // Offset: 9144 + keen::ds::UiLocaTagReference difficultySettingsReadOnlyExplanation; // Offset: 9160 + keen::ds::UiLocaTagReference difficultySettingsReadOnlyExplanationDedicatedServer; // Offset: 9176 + keen::ds::UiLocaTagReference twitchDropsHeader; // Offset: 9192 + keen::ds::UiLocaTagReference twitchDropsNoUnlocks; // Offset: 9208 + keen::ds::UiLocaTagReference npcStatusBed; // Offset: 9224 + keen::ds::UiLocaTagReference npcStatusFood; // Offset: 9240 + keen::ds::UiLocaTagReference collectionDisplayedHeader; // Offset: 9256 + keen::ds::UiLocaTagReference collectionAvailableItemsHeader; // Offset: 9272 + keen::ds::UiLocaTagReference collectionAvailableItemsSubHeader; // Offset: 9288 + keen::ds::UiLocaTagReference collectionNoAvailableItemsHint; // Offset: 9304 + keen::ds::UiLocaTagReference npcCraftingLabel; // Offset: 9320 + keen::ds::UiLocaTagReference npcAssistantLabel; // Offset: 9336 + keen::ds::UiLocaTagReference npcTownsfolkLabel; // Offset: 9352 + keen::ds::UiLocaTagReference basesInfoAnimalsHungry; // Offset: 9368 + keen::ds::UiLocaTagReference basesInfoAnimalsBeds; // Offset: 9384 + keen::ds::UiLocaTagReference basesInfoAnimalsBedsObstructed; // Offset: 9400 + keen::ds::UiLocaTagReference basesGenericLabel; // Offset: 9416 + keen::ds::UiLocaTagReference altarGenericLabel; // Offset: 9432 +}; + +struct FbUiLocaEquipmentMenu { + keen::ds::UiLocaTagReference mainHand; // Offset: 0 + keen::ds::UiLocaTagReference shield; // Offset: 16 + keen::ds::UiLocaTagReference rangedWeapon; // Offset: 32 + keen::ds::UiLocaTagReference arrow; // Offset: 48 + keen::ds::UiLocaTagReference spell; // Offset: 64 + keen::ds::UiLocaTagReference backpackExtender; // Offset: 80 + keen::ds::UiLocaTagReference climbTool; // Offset: 96 + keen::ds::UiLocaTagReference hookshot; // Offset: 112 + keen::ds::UiLocaTagReference glider; // Offset: 128 + keen::ds::UiLocaTagReference accessory0; // Offset: 144 + keen::ds::UiLocaTagReference accessory1; // Offset: 160 + keen::ds::UiLocaTagReference ring0; // Offset: 176 + keen::ds::UiLocaTagReference ring1; // Offset: 192 + keen::ds::UiLocaTagReference head; // Offset: 208 + keen::ds::UiLocaTagReference upperBody; // Offset: 224 + keen::ds::UiLocaTagReference arms; // Offset: 240 + keen::ds::UiLocaTagReference lowerBody; // Offset: 256 + keen::ds::UiLocaTagReference boots; // Offset: 272 + keen::ds::UiLocaTagReference attributes; // Offset: 288 + keen::ds::UiLocaTagReference status; // Offset: 304 + keen::ds::UiLocaTagReference attributeTileMainhandDamage; // Offset: 320 + keen::ds::UiLocaTagReference attributeTileRangedEquipmentDamage; // Offset: 336 + keen::ds::UiLocaTagReference attributeTileShieldDefense; // Offset: 352 + keen::ds::UiLocaTagReference attributeTileBackpackExtender; // Offset: 368 + keen::ds::UiLocaTagReference attributeTilePrompt; // Offset: 384 + keen::ds::UiLocaTagReference statusTilePrompt; // Offset: 400 + keen::ds::UiLocaTagReference attributeSectionMain; // Offset: 416 + keen::ds::UiLocaTagReference attributeSectionOffense; // Offset: 432 + keen::ds::UiLocaTagReference attributeSectionDefense; // Offset: 448 + keen::ds::UiLocaTagReference attributeBonusHint; // Offset: 464 + keen::ds::UiLocaTagReference attributeTooltipHint; // Offset: 480 + keen::ds::UiLocaTagReference statusNothingHintCondensed; // Offset: 496 + keen::ds::UiLocaTagReference statusNothingHint; // Offset: 512 + keen::ds::UiLocaTagReference statusSectionFood; // Offset: 528 + keen::ds::UiLocaTagReference statusSectionRest; // Offset: 544 + keen::ds::UiLocaTagReference statusFoodEmptyHint; // Offset: 560 + keen::ds::UiLocaTagReference statusRestConditionHeader; // Offset: 576 + keen::ds::UiLocaTagReference statusRestConditionSitOrShelter; // Offset: 592 + keen::ds::UiLocaTagReference statusRestComfortHeader; // Offset: 608 + keen::ds::UiLocaTagReference statusRestComfortLevel; // Offset: 624 + keen::ds::UiLocaTagReference statusRestComfortLevelNumbered; // Offset: 640 + keen::ds::UiLocaTagReference statusRestComfortCondition; // Offset: 656 + keen::ds::UiLocaTagReference statusBuffs; // Offset: 672 + keen::ds::UiLocaTagReference statusDebuffs; // Offset: 688 + keen::ds::UiLocaTagReference statusPlayerState; // Offset: 704 + keen::ds::UiLocaTagReference noDebuffActive; // Offset: 720 + keen::ds::UiLocaTagReference noBuffActive; // Offset: 736 + keen::ds::UiLocaTagReference noPlayerStateActive; // Offset: 752 + keen::ds::UiLocaTagReference equipped; // Offset: 768 + keen::ds::UiLocaTagReference available; // Offset: 784 + keen::ds::UiLocaTagReference slotContentNone; // Offset: 800 + keen::ds::UiLocaTagReference vanityModePrompt; // Offset: 816 + keen::ds::UiLocaTagReference vanityModeGearSection; // Offset: 832 + keen::ds::UiLocaTagReference vanityModeVisualSection; // Offset: 848 + keen::ds::UiLocaTagReference vanityModeHideSlotAction; // Offset: 864 + keen::ds::UiLocaTagReference equipmentUsedAsVanityHint; // Offset: 880 +}; + +struct FbUiLocaInventory { + keen::ds::UiLocaTagReference actionBar; // Offset: 0 + keen::ds::UiLocaTagReference actionBarCurrent; // Offset: 16 + keen::ds::UiLocaTagReference mainTabBackpack; // Offset: 32 + keen::ds::UiLocaTagReference mainTabEquipment; // Offset: 48 + keen::ds::UiLocaTagReference mainTabCrafting; // Offset: 64 + keen::ds::UiLocaTagReference mainTabJournal; // Offset: 80 + keen::ds::UiLocaTagReference mainTabMap; // Offset: 96 + keen::ds::UiLocaTagReference mainTabSkillTree; // Offset: 112 + keen::ds::UiLocaTagReference mainTabSettings; // Offset: 128 + keen::ds::UiLocaTagReference mainTabStore; // Offset: 144 + keen::ds::UiLocaTagReference giftingMenuTitle; // Offset: 160 + keen::ds::UiLocaTagReference giftingLimitationHint; // Offset: 176 + keen::ds::UiLocaTagReference giftingActionHeader; // Offset: 192 + keen::ds::UiLocaTagReference giftingAmountOne; // Offset: 208 + keen::ds::UiLocaTagReference giftingAmountHalf; // Offset: 224 + keen::ds::UiLocaTagReference giftingAmountAll; // Offset: 240 + keen::ds::UiLocaTagReference giftingAmountAdjust; // Offset: 256 + keen::ds::UiLocaTagReference giftingTargetStatusCanReceive; // Offset: 272 + keen::ds::UiLocaTagReference giftingTargetStatusDead; // Offset: 288 + keen::ds::UiLocaTagReference giftingTargetStatusOutOfRange; // Offset: 304 + keen::ds::UiLocaTagReference giftingTargetStatusBackpackFull; // Offset: 320 + keen::ds::UiLocaTagReference giftingTarget; // Offset: 336 + keen::ds::UiLocaTagReference giftingTargetMissingHint; // Offset: 352 + keen::ds::UiLocaTagReference giftingActionConfirm; // Offset: 368 + keen::ds::UiLocaTagReference giftingStackNew; // Offset: 384 + keen::ds::UiLocaTagReference giftingStackOriginal; // Offset: 400 + keen::ds::UiLocaTagReference giftedLootLogEntryHint; // Offset: 416 + keen::ds::UiLocaTagReference splitStackNew; // Offset: 432 + keen::ds::UiLocaTagReference splitStackOriginal; // Offset: 448 + keen::ds::UiLocaTagReference deletionConfirmMessage; // Offset: 464 + keen::ds::UiLocaTagReference deletionConfirmSuppression; // Offset: 480 + keen::ds::UiLocaTagReference deletionConfirmSettingHint; // Offset: 496 + keen::ds::UiLocaTagReference salvagingConfirmMessage; // Offset: 512 + keen::ds::UiLocaTagReference highlightIsCurrentItemHint; // Offset: 528 + keen::ds::UiLocaTagReference codexTileClues; // Offset: 544 + keen::ds::UiLocaTagReference codexTileLore; // Offset: 560 + keen::ds::UiLocaTagReference codexTilePinnedRecipe; // Offset: 576 + keen::ds::UiLocaTagReference codexTileRecipeBook; // Offset: 592 + keen::ds::UiLocaTagReference codexTileTutorials; // Offset: 608 + keen::ds::UiLocaTagReference codexPageNotDiscovered; // Offset: 624 + keen::ds::UiLocaTagReference journalCompletedSectionLabel; // Offset: 640 + keen::ds::UiLocaTagReference journalWorldQuestSectionLabel; // Offset: 656 + keen::ds::UiLocaTagReference journalMissedWorldQuestSectionLabel; // Offset: 672 + keen::ds::UiLocaTagReference journalPersonalQuestSectionLabel; // Offset: 688 + keen::ds::UiLocaTagReference journalCompletedSectionDesc; // Offset: 704 + keen::ds::UiLocaTagReference journalWorldQuestSectionDesc; // Offset: 720 + keen::ds::UiLocaTagReference journalMissedWorldQuestSectionDesc; // Offset: 736 + keen::ds::UiLocaTagReference journalPersonalQuestSectionDesc; // Offset: 752 + keen::ds::UiLocaTagReference codexTileMotherflame; // Offset: 768 + keen::ds::UiLocaTagReference codexTileNpcs; // Offset: 784 + keen::ds::UiLocaTagReference codexTileSurvivors; // Offset: 800 + keen::ds::UiLocaTagReference codexTileTownfolk; // Offset: 816 + keen::ds::UiLocaTagReference codexTileBases; // Offset: 832 + keen::ds::UiLocaTagReference codexTileGroupPersonal; // Offset: 848 + keen::ds::UiLocaTagReference codexTileGroupWorld; // Offset: 864 + keen::ds::UiLocaTagReference freeWaypointLabel; // Offset: 880 + keen::ds::UiLocaTagReference mapNodeIsWaypointHint; // Offset: 896 + keen::ds::UiLocaTagReference noItemSelectedHint; // Offset: 912 + keen::ds::UiLocaTagReference noSlotInBackpackHint; // Offset: 928 + keen::ds::UiLocaTagReference skillpointLabelAvailable; // Offset: 944 + keen::ds::UiLocaTagReference skillpointLabelInUse; // Offset: 960 + keen::ds::UiLocaTagReference skillpointLabelRefund; // Offset: 976 + keen::ds::UiLocaTagReference skilltreeNodeUnlocked; // Offset: 992 + keen::ds::UiLocaTagReference skilltreeNodeOutOfRange; // Offset: 1008 + keen::ds::UiLocaTagReference skilltreeNodeFutureContent; // Offset: 1024 + keen::ds::UiLocaTagReference skilltreeNodeActivated; // Offset: 1040 + keen::ds::UiLocaTagReference cookingHintRelease; // Offset: 1056 + keen::ds::UiLocaTagReference cookingHintHold; // Offset: 1072 + keen::ds::UiLocaTagReference sortStacksFromInventory; // Offset: 1088 + keen::ds::UiLocaTagReference sortStacksToInventory; // Offset: 1104 + keen::ds::UiLocaTagReference takeStacks; // Offset: 1120 + keen::ds::UiLocaTagReference depositStacks; // Offset: 1136 + keen::ds::UiLocaTagReference takeAll; // Offset: 1152 + keen::ds::UiLocaTagReference depositAll; // Offset: 1168 + keen::ds::UiLocaTagReference sortInventory; // Offset: 1184 + keen::ds::UiLocaTagReference sortStorage; // Offset: 1200 + keen::ds::UiLocaTagReference magicChestTab; // Offset: 1216 + keen::ds::UiLocaTagReference magicChestAddOne; // Offset: 1232 + keen::ds::UiLocaTagReference magicChestAddStack; // Offset: 1248 + keen::ds::UiLocaTagReference magicChestAddAll; // Offset: 1264 + keen::ds::UiLocaTagReference feedingStationStackAdditionMaxPossible; // Offset: 1280 + keen::ds::UiLocaTagReference factoryAddIngredientsOne; // Offset: 1296 + keen::ds::UiLocaTagReference factoryAddIngredientsMultiple; // Offset: 1312 + keen::ds::UiLocaTagReference itemNoTwitchPermission; // Offset: 1328 + keen::ds::UiLocaTagReference twitchItemLabel; // Offset: 1344 + keen::ds::FbUiLocaEquipmentMenu equipmentMenu; // Offset: 1360 +}; + +struct FbUiLocaBuildVerbs { + keen::ds::UiLocaTagReference genericAction; // Offset: 0 + keen::ds::UiLocaTagReference blockAction; // Offset: 16 + keen::ds::UiLocaTagReference blueprintAction; // Offset: 32 + keen::ds::UiLocaTagReference propAction; // Offset: 48 + keen::ds::UiLocaTagReference terraformAddAction; // Offset: 64 + keen::ds::UiLocaTagReference terraformFlattenAction; // Offset: 80 + keen::ds::UiLocaTagReference terraformRemoveAction; // Offset: 96 +}; + +struct FbUiLocaGameplayActionLabels { + keen::ds::UiLocaTagReference locomotionMoveLeft; // Offset: 0 + keen::ds::UiLocaTagReference locomotionMoveRight; // Offset: 16 + keen::ds::UiLocaTagReference locomotionMoveForward; // Offset: 32 + keen::ds::UiLocaTagReference locomotionMoveBackward; // Offset: 48 + keen::ds::UiLocaTagReference locomotionMove; // Offset: 64 + keen::ds::UiLocaTagReference cameraRotateLeft; // Offset: 80 + keen::ds::UiLocaTagReference cameraRotateRight; // Offset: 96 + keen::ds::UiLocaTagReference cameraRotateUp; // Offset: 112 + keen::ds::UiLocaTagReference cameraRotateDown; // Offset: 128 + keen::ds::UiLocaTagReference cameraRotate; // Offset: 144 + keen::ds::UiLocaTagReference cameraZoomIn; // Offset: 160 + keen::ds::UiLocaTagReference cameraZoomOut; // Offset: 176 + keen::ds::UiLocaTagReference mainHandAction; // Offset: 192 + keen::ds::UiLocaTagReference contextualAction; // Offset: 208 + keen::ds::UiLocaTagReference cancelAction; // Offset: 224 + keen::ds::UiLocaTagReference ammunitionSelectPrevious; // Offset: 240 + keen::ds::UiLocaTagReference ammunitionSelectNext; // Offset: 256 + keen::ds::UiLocaTagReference blueprintDistanceIncrease; // Offset: 272 + keen::ds::UiLocaTagReference blueprintDistanceDecrease; // Offset: 288 + keen::ds::UiLocaTagReference blueprintMaterialSelectPrevious; // Offset: 304 + keen::ds::UiLocaTagReference blueprintMaterialSelectNext; // Offset: 320 + keen::ds::UiLocaTagReference blueprintPageSelectPrevious; // Offset: 336 + keen::ds::UiLocaTagReference blueprintPageSelectNext; // Offset: 352 + keen::ds::UiLocaTagReference blueprintShapeSelectPrevious; // Offset: 368 + keen::ds::UiLocaTagReference blueprintShapeSelectNext; // Offset: 384 + keen::ds::UiLocaTagReference actionBarSlot1; // Offset: 400 + keen::ds::UiLocaTagReference actionBarSlot2; // Offset: 416 + keen::ds::UiLocaTagReference actionBarSlot3; // Offset: 432 + keen::ds::UiLocaTagReference actionBarSlot4; // Offset: 448 + keen::ds::UiLocaTagReference actionBarSlot5; // Offset: 464 + keen::ds::UiLocaTagReference actionBarSlot6; // Offset: 480 + keen::ds::UiLocaTagReference actionBarSlot7; // Offset: 496 + keen::ds::UiLocaTagReference actionBarSlot8; // Offset: 512 + keen::ds::UiLocaTagReference actionBarSlot9; // Offset: 528 + keen::ds::UiLocaTagReference actionBarSlot10; // Offset: 544 + keen::ds::UiLocaTagReference actionBarWheel; // Offset: 560 + keen::ds::UiLocaTagReference actionBarSwapPage; // Offset: 576 + keen::ds::UiLocaTagReference actionBarSwapPageVerbOnly; // Offset: 592 + keen::ds::UiLocaTagReference actionBarSlotPrevious; // Offset: 608 + keen::ds::UiLocaTagReference actionBarSlotNext; // Offset: 624 + keen::ds::UiLocaTagReference guardAndParry; // Offset: 640 + keen::ds::UiLocaTagReference guard; // Offset: 656 + keen::ds::UiLocaTagReference parry; // Offset: 672 + keen::ds::UiLocaTagReference locomotionSprint; // Offset: 688 + keen::ds::UiLocaTagReference locomotionEvade; // Offset: 704 + keen::ds::UiLocaTagReference locomotionJump; // Offset: 720 + keen::ds::UiLocaTagReference locomotionSneak; // Offset: 736 + keen::ds::UiLocaTagReference locomotionSit; // Offset: 752 + keen::ds::UiLocaTagReference locomotionGlide; // Offset: 768 + keen::ds::UiLocaTagReference locomotionHookshot; // Offset: 784 + keen::ds::UiLocaTagReference respawn; // Offset: 800 + keen::ds::UiLocaTagReference buildingUndo; // Offset: 816 + keen::ds::UiLocaTagReference buildingDismantle; // Offset: 832 + keen::ds::UiLocaTagReference buildingDismantlePickup; // Offset: 848 + keen::ds::UiLocaTagReference buildingDismantleNotPossible; // Offset: 864 + keen::ds::UiLocaTagReference animalPickupNotPossible; // Offset: 880 + keen::ds::UiLocaTagReference buildingSnapping; // Offset: 896 + keen::ds::UiLocaTagReference transformRotateClockwiseSmall; // Offset: 912 + keen::ds::UiLocaTagReference transformRotateClockwiseBig; // Offset: 928 + keen::ds::UiLocaTagReference transformRotateCounterClockwiseSmall; // Offset: 944 + keen::ds::UiLocaTagReference transformRotateCounterClockwiseBig; // Offset: 960 + keen::ds::UiLocaTagReference transformChangeAngleClockwise; // Offset: 976 + keen::ds::UiLocaTagReference transformChangeAngleCounterClockwise; // Offset: 992 + keen::ds::UiLocaTagReference combatTargetLock; // Offset: 1008 + keen::ds::UiLocaTagReference combatTargetLeft; // Offset: 1024 + keen::ds::UiLocaTagReference combatTargetRight; // Offset: 1040 + keen::ds::UiLocaTagReference rangedCombatReady; // Offset: 1056 + keen::ds::UiLocaTagReference rangedCombatShoot; // Offset: 1072 + keen::ds::UiLocaTagReference songSelectOpen; // Offset: 1088 + keen::ds::UiLocaTagReference songSelectPrevious; // Offset: 1104 + keen::ds::UiLocaTagReference songSelectNext; // Offset: 1120 + keen::ds::UiLocaTagReference systemMenuOpen; // Offset: 1136 + keen::ds::UiLocaTagReference playerMenuOpen; // Offset: 1152 + keen::ds::UiLocaTagReference playerMenuBackpack; // Offset: 1168 + keen::ds::UiLocaTagReference playerMenuEquipmentAndStats; // Offset: 1184 + keen::ds::UiLocaTagReference playerMenuWorld; // Offset: 1200 + keen::ds::UiLocaTagReference playerMenuJournal; // Offset: 1216 + keen::ds::UiLocaTagReference playerMenuCrafting; // Offset: 1232 + keen::ds::UiLocaTagReference playerMenuSkills; // Offset: 1248 + keen::ds::UiLocaTagReference goToCurrentNotificationTab; // Offset: 1264 + keen::ds::UiLocaTagReference hudMenuBlueprints; // Offset: 1280 + keen::ds::UiLocaTagReference inputModalityTap; // Offset: 1296 + keen::ds::UiLocaTagReference inputModalityHold; // Offset: 1312 + keen::ds::UiLocaTagReference inputModalityRelease; // Offset: 1328 + keen::ds::UiLocaTagReference inputModalityToggle; // Offset: 1344 + keen::ds::UiLocaTagReference assignBedHint; // Offset: 1360 + keen::ds::FbUiLocaBuildVerbs buildVerbs; // Offset: 1376 +}; + +struct FbUiLocaUiActionLabels { + keen::ds::UiLocaTagReference recipeUpgrade; // Offset: 0 + keen::ds::UiLocaTagReference repairItem; // Offset: 16 + keen::ds::UiLocaTagReference confirm; // Offset: 32 + keen::ds::UiLocaTagReference finish; // Offset: 48 + keen::ds::UiLocaTagReference cancel; // Offset: 64 + keen::ds::UiLocaTagReference back; // Offset: 80 + keen::ds::UiLocaTagReference openHint; // Offset: 96 + keen::ds::UiLocaTagReference close; // Offset: 112 + keen::ds::UiLocaTagReference leave; // Offset: 128 + keen::ds::UiLocaTagReference join; // Offset: 144 + keen::ds::UiLocaTagReference changeGeneric; // Offset: 160 + keen::ds::UiLocaTagReference secondaryAction; // Offset: 176 + keen::ds::UiLocaTagReference tertiaryAction; // Offset: 192 + keen::ds::UiLocaTagReference moveObject; // Offset: 208 + keen::ds::UiLocaTagReference changeTab; // Offset: 224 + keen::ds::UiLocaTagReference navigationMove; // Offset: 240 + keen::ds::UiLocaTagReference navigationScroll; // Offset: 256 + keen::ds::UiLocaTagReference previousPage; // Offset: 272 + keen::ds::UiLocaTagReference nextPage; // Offset: 288 + keen::ds::UiLocaTagReference mapZoom; // Offset: 304 + keen::ds::UiLocaTagReference mapFastTravel; // Offset: 320 + keen::ds::UiLocaTagReference mapSnapToWaypoint; // Offset: 336 + keen::ds::UiLocaTagReference mapSnapToPlayerPos; // Offset: 352 + keen::ds::UiLocaTagReference mapSnapToHomeBase; // Offset: 368 + keen::ds::UiLocaTagReference mapLocateGeneric; // Offset: 384 + keen::ds::UiLocaTagReference mapWorldSidebar; // Offset: 400 + keen::ds::UiLocaTagReference mapPlayersSidebar; // Offset: 416 + keen::ds::UiLocaTagReference mapFilterSidebar; // Offset: 432 + keen::ds::UiLocaTagReference mapFilterFocusType; // Offset: 448 + keen::ds::UiLocaTagReference clearMapFilter; // Offset: 464 + keen::ds::UiLocaTagReference mapGotoJournal; // Offset: 480 + keen::ds::UiLocaTagReference gotoReferencedJournalPage; // Offset: 496 + keen::ds::UiLocaTagReference gotoReferencedLorePage; // Offset: 512 + keen::ds::UiLocaTagReference gotoReferencedQuestPage; // Offset: 528 + keen::ds::UiLocaTagReference mapActions; // Offset: 544 + keen::ds::UiLocaTagReference mapSetWaypoint; // Offset: 560 + keen::ds::UiLocaTagReference mapSetAsWaypoint; // Offset: 576 + keen::ds::UiLocaTagReference mapRemoveWaypoint; // Offset: 592 + keen::ds::UiLocaTagReference mapSendPing; // Offset: 608 + keen::ds::UiLocaTagReference codexShowOnMap; // Offset: 624 + keen::ds::UiLocaTagReference placeNpcInWorld; // Offset: 640 + keen::ds::UiLocaTagReference itemViewerVisibilityToggle; // Offset: 656 + keen::ds::UiLocaTagReference backpackUseItem; // Offset: 672 + keen::ds::UiLocaTagReference backpackActions; // Offset: 688 + keen::ds::UiLocaTagReference backpackSplitStack; // Offset: 704 + keen::ds::UiLocaTagReference backpackDeleteItem; // Offset: 720 + keen::ds::UiLocaTagReference backpackSalvageItem; // Offset: 736 + keen::ds::UiLocaTagReference splitStackAdjustMin; // Offset: 752 + keen::ds::UiLocaTagReference splitStackAdjustDecrement; // Offset: 768 + keen::ds::UiLocaTagReference splitStackAdjustHalf; // Offset: 784 + keen::ds::UiLocaTagReference splitStackAdjustIncrement; // Offset: 800 + keen::ds::UiLocaTagReference splitStackAdjustMax; // Offset: 816 + keen::ds::UiLocaTagReference backpackGrabItemForMoving; // Offset: 832 + keen::ds::UiLocaTagReference backpackGrabItemForMovingPartial; // Offset: 848 + keen::ds::UiLocaTagReference backpackGrabItemForMovingHoldable; // Offset: 864 + keen::ds::UiLocaTagReference backpackDropItemIntoSlot; // Offset: 880 + keen::ds::UiLocaTagReference quickMoveItem; // Offset: 896 + keen::ds::UiLocaTagReference quickMoveItemActionbar; // Offset: 912 + keen::ds::UiLocaTagReference quickMoveItemStorage; // Offset: 928 + keen::ds::UiLocaTagReference quickMoveTargetFull; // Offset: 944 + keen::ds::UiLocaTagReference refillStacks; // Offset: 960 + keen::ds::UiLocaTagReference backpackEquip; // Offset: 976 + keen::ds::UiLocaTagReference backpackUnequip; // Offset: 992 + keen::ds::UiLocaTagReference backpackReplaceItem; // Offset: 1008 + keen::ds::UiLocaTagReference backpackGiftItem; // Offset: 1024 + keen::ds::UiLocaTagReference showTutorial; // Offset: 1040 + keen::ds::UiLocaTagReference changeBlueprint; // Offset: 1056 + keen::ds::UiLocaTagReference lootTakeSingle; // Offset: 1072 + keen::ds::UiLocaTagReference lootTakeAll; // Offset: 1088 + keen::ds::UiLocaTagReference craftActionSingle; // Offset: 1104 + keen::ds::UiLocaTagReference craftActionMultiple; // Offset: 1120 + keen::ds::UiLocaTagReference stopAutomatedCraftingNext; // Offset: 1136 + keen::ds::UiLocaTagReference changeAutomatedCraftingOuput; // Offset: 1152 + keen::ds::UiLocaTagReference recipePin; // Offset: 1168 + keen::ds::UiLocaTagReference recipeUnpin; // Offset: 1184 + keen::ds::UiLocaTagReference showItemViewerTextArea; // Offset: 1200 + keen::ds::UiLocaTagReference showItemViewerRecipeArea; // Offset: 1216 + keen::ds::UiLocaTagReference toggleItemViewerRecipeView; // Offset: 1232 + keen::ds::UiLocaTagReference activate; // Offset: 1248 + keen::ds::UiLocaTagReference unlock; // Offset: 1264 + keen::ds::UiLocaTagReference unlockNextPerk; // Offset: 1280 + keen::ds::UiLocaTagReference rename; // Offset: 1296 + keen::ds::UiLocaTagReference done; // Offset: 1312 + keen::ds::UiLocaTagReference refillToInventory; // Offset: 1328 + keen::ds::UiLocaTagReference refillFromInventory; // Offset: 1344 + keen::ds::UiLocaTagReference increase; // Offset: 1360 + keen::ds::UiLocaTagReference decrease; // Offset: 1376 + keen::ds::UiLocaTagReference clear; // Offset: 1392 + keen::ds::UiLocaTagReference selectSessionSettings; // Offset: 1408 + keen::ds::UiLocaTagReference selectSavegame; // Offset: 1424 + keen::ds::UiLocaTagReference selectServerFilter; // Offset: 1440 + keen::ds::UiLocaTagReference selectServer; // Offset: 1456 + keen::ds::UiLocaTagReference skip; // Offset: 1472 + keen::ds::UiLocaTagReference select; // Offset: 1488 + keen::ds::UiLocaTagReference next; // Offset: 1504 + keen::ds::UiLocaTagReference create; // Offset: 1520 + keen::ds::UiLocaTagReference continueAction; // Offset: 1536 + keen::ds::UiLocaTagReference setActiveQuest; // Offset: 1552 + keen::ds::UiLocaTagReference hidePassword; // Offset: 1568 + keen::ds::UiLocaTagReference toggleFavourite; // Offset: 1584 + keen::ds::UiLocaTagReference hideIPAddressInput; // Offset: 1600 + keen::ds::UiLocaTagReference createMarker; // Offset: 1616 + keen::ds::UiLocaTagReference removeMarker; // Offset: 1632 + keen::ds::UiLocaTagReference togglePersonalProgression; // Offset: 1648 + keen::ds::UiLocaTagReference activatePersonalProgression; // Offset: 1664 + keen::ds::UiLocaTagReference deactivatePersonalProgression; // Offset: 1680 + keen::ds::UiLocaTagReference search; // Offset: 1696 + keen::ds::UiLocaTagReference expandToggle; // Offset: 1712 + keen::ds::UiLocaTagReference toggleTooltip; // Offset: 1728 + keen::ds::UiLocaTagReference toggleVisibility; // Offset: 1744 + keen::ds::UiLocaTagReference change; // Offset: 1760 + keen::ds::UiLocaTagReference kickPlayer; // Offset: 1776 + keen::ds::UiLocaTagReference toggle; // Offset: 1792 + keen::ds::UiLocaTagReference renameAltar; // Offset: 1808 + keen::ds::UiLocaTagReference enable; // Offset: 1824 + keen::ds::UiLocaTagReference disable; // Offset: 1840 + keen::ds::UiLocaTagReference instrumentActionTuneIn; // Offset: 1856 + keen::ds::UiLocaTagReference confirmPassword; // Offset: 1872 + keen::ds::UiLocaTagReference resetToDefault; // Offset: 1888 + keen::ds::UiLocaTagReference claimTwitchItem; // Offset: 1904 + keen::ds::UiLocaTagReference swapArmor; // Offset: 1920 + keen::ds::UiLocaTagReference swapVanity; // Offset: 1936 + keen::ds::UiLocaTagReference equipCollection; // Offset: 1952 + keen::ds::UiLocaTagReference unequipCollection; // Offset: 1968 + keen::ds::UiLocaTagReference equipAsArmor; // Offset: 1984 + keen::ds::UiLocaTagReference equipAsVanity; // Offset: 2000 +}; + +struct FbUiLocaLinks { + keen::ds::UiLocaTagReference styleTest; // Offset: 0 + keen::ds::UiLocaTagReference invalidUiString; // Offset: 16 + keen::ds::UiLocaTagReference closedBetaHint; // Offset: 32 + keen::ds::UiLocaTagReference demoSettingsHint; // Offset: 48 + keen::ds::FbUiLocaRpgTerms rpgTerms; // Offset: 64 + keen::ds::FbUiLocaGeneric genericStrings; // Offset: 5600 + keen::ds::FbUiLocaPunctuations punctuations; // Offset: 5648 + keen::ds::FbUiLocaUiActionLabels uiActions; // Offset: 6336 + keen::ds::FbUiLocaGameplayActionLabels gameplayActions; // Offset: 8352 + keen::ds::FbUiLocaInput inputStrings; // Offset: 9840 + keen::ds::FbUiLocaHud hudStrings; // Offset: 10080 + keen::ds::FbUiLocaInventory inventory; // Offset: 12832 + keen::ds::FbUiLocaMenus menuStrings; // Offset: 15088 + keen::ds::FbUiLocaCrafting crafting; // Offset: 24536 + keen::ds::FbUiLocaItemEquipmentSlots itemEquipmentSlots; // Offset: 25576 +}; + +struct FbUiCharacterView { + keen::float3 lookAt; // Offset: 0 + keen::float32 distance; // Offset: 12 + keen::float32 pitch; // Offset: 16 + keen::float32 yaw; // Offset: 20 + keen::float32 fov; // Offset: 24 +}; + +typedef keen::FbUiGamepadButtonImageTagId FbUiGamepadButtonImageTagId; + +struct FbUiGamepadButtonSet { + keen::ds::UiTexture dpad; // Offset: 0 + keen::ds::UiTexture dpadLeft; // Offset: 48 + keen::ds::UiTexture dpadRight; // Offset: 96 + keen::ds::UiTexture dpadUp; // Offset: 144 + keen::ds::UiTexture dpadDown; // Offset: 192 + keen::ds::UiTexture dpadVertical; // Offset: 240 + keen::ds::UiTexture dpadHorizontal; // Offset: 288 + keen::ds::UiTexture leftStick; // Offset: 336 + keen::ds::UiTexture rightStick; // Offset: 384 + keen::ds::UiTexture leftStickPress; // Offset: 432 + keen::ds::UiTexture rightStickPress; // Offset: 480 + keen::ds::UiTexture leftStickUp; // Offset: 528 + keen::ds::UiTexture leftStickDown; // Offset: 576 + keen::ds::UiTexture leftStickLeft; // Offset: 624 + keen::ds::UiTexture leftStickRight; // Offset: 672 + keen::ds::UiTexture leftStickDirectionalHorizontal; // Offset: 720 + keen::ds::UiTexture leftStickDirectionalVertical; // Offset: 768 + keen::ds::UiTexture rightStickUp; // Offset: 816 + keen::ds::UiTexture rightStickDown; // Offset: 864 + keen::ds::UiTexture rightStickLeft; // Offset: 912 + keen::ds::UiTexture rightStickRight; // Offset: 960 + keen::ds::UiTexture rightStickDirectionalHorizontal; // Offset: 1008 + keen::ds::UiTexture rightStickDirectionalVertical; // Offset: 1056 + keen::ds::UiTexture faceTop; // Offset: 1104 + keen::ds::UiTexture faceBottom; // Offset: 1152 + keen::ds::UiTexture faceLeft; // Offset: 1200 + keen::ds::UiTexture faceRight; // Offset: 1248 + keen::ds::UiTexture shoulderLeftUpper; // Offset: 1296 + keen::ds::UiTexture shoulderLeftLower; // Offset: 1344 + keen::ds::UiTexture shoulderRightUpper; // Offset: 1392 + keen::ds::UiTexture shoulderRightLower; // Offset: 1440 + keen::ds::UiTexture systemLeft; // Offset: 1488 + keen::ds::UiTexture systemRight; // Offset: 1536 +}; + +struct FbUiGamepadButtonSets { + keen::ds::UiTexture controllerShape; // Offset: 0 + keen::ds::UiTexture genericController; // Offset: 48 + keen::ds::UiTexture controllerPlaystation; // Offset: 96 + keen::ds::UiTexture controllerNintendoSwitch; // Offset: 144 + keen::ds::UiTexture genericButtonsForms; // Offset: 192 + keen::ds::UiTexture genericButtonsXABY; // Offset: 240 + keen::ds::UiTexture genericButtonsYBAX; // Offset: 288 + keen::UiColor diagramKeyColor; // Offset: 336 + keen::ds::FbUiGamepadButtonSet xbox; // Offset: 344 + keen::ds::FbUiGamepadButtonSet playstation; // Offset: 1928 + keen::ds::FbUiGamepadButtonSet nintendoSwitch; // Offset: 3512 + keen::ds::UiTexture twoHeadedArrowHorizontal; // Offset: 5096 + keen::ds::UiTexture twoHeadedArrowVertical; // Offset: 5144 +}; + +struct UiNineSliceTexture { + keen::UiBorder border; // Offset: 48 +}; + +struct FbUiKeyboardKeys { + keen::ds::UiTexture standardKey; // Offset: 0 + keen::ds::UiNineSliceTexture nineSlicedKey; // Offset: 48 +}; + +struct FbUiKeyboardKeyLegends { + keen::ds::UiTexture up; // Offset: 0 + keen::ds::UiTexture down; // Offset: 48 + keen::ds::UiTexture left; // Offset: 96 + keen::ds::UiTexture right; // Offset: 144 +}; + +struct FbUiMouseHints { + keen::ds::UiTexture left; // Offset: 0 + keen::ds::UiTexture right; // Offset: 48 + keen::ds::UiTexture middle; // Offset: 96 + keen::ds::UiTexture button4; // Offset: 144 + keen::ds::UiTexture button5; // Offset: 192 + keen::ds::UiTexture wheel; // Offset: 240 + keen::ds::UiTexture wheelUp; // Offset: 288 + keen::ds::UiTexture wheelDown; // Offset: 336 + keen::ds::UiTexture directionalContext; // Offset: 384 + keen::ds::UiTexture move; // Offset: 432 + keen::ds::UiTexture moveUp; // Offset: 480 + keen::ds::UiTexture moveDown; // Offset: 528 + keen::ds::UiTexture moveLeft; // Offset: 576 + keen::ds::UiTexture moveRight; // Offset: 624 +}; + +struct FbUiGradients { + keen::ds::UiTexture whiteToBlackTest; // Offset: 0 + keen::ds::UiTexture alphaToRight; // Offset: 48 + keen::ds::UiTexture alphaToBottom; // Offset: 96 + keen::ds::UiTexture alphaToBottomRight; // Offset: 144 + keen::ds::UiTexture alphaToTopBottom; // Offset: 192 + keen::ds::UiTexture alphaToLeftRight; // Offset: 240 + keen::ds::UiNineSliceTexture alphaToLeftRightSliced; // Offset: 288 +}; + +struct FbUiPrimitives { + keen::ds::UiTexture circle; // Offset: 0 + keen::ds::UiTexture circleOutline; // Offset: 48 + keen::ds::UiTexture circleSoftGlow; // Offset: 96 + keen::ds::UiTexture ringSoftGlow; // Offset: 144 + keen::ds::UiTexture diamond; // Offset: 192 + keen::ds::UiTexture triangle; // Offset: 240 + keen::ds::UiTexture separatorLineHorizontal; // Offset: 288 + keen::ds::UiTexture separatorLineHorizontalLeftHeavy; // Offset: 336 + keen::ds::UiTexture separatorLineVertical; // Offset: 384 + keen::ds::FbUiGradients gradients; // Offset: 432 + keen::ds::UiNineSliceTexture boxInnerGlow; // Offset: 784 + keen::ds::UiNineSliceTexture glowBoxSmall; // Offset: 848 + keen::ds::UiNineSliceTexture glowBoxLarge; // Offset: 912 + keen::ds::UiNineSliceTexture roundedBoxSmall; // Offset: 976 + keen::ds::UiNineSliceTexture roundedBoxSmallOutline; // Offset: 1040 + keen::ds::UiNineSliceTexture roundedBoxSmallOutlineThin; // Offset: 1104 + keen::ds::UiNineSliceTexture roundedBoxOutlineBuildingZone; // Offset: 1168 +}; + +struct FbUiSocialLogos { + keen::ds::UiTexture steam; // Offset: 0 + keen::ds::UiTexture discord; // Offset: 48 + keen::ds::UiTexture qq; // Offset: 96 + keen::ds::UiTexture yooreka; // Offset: 144 + keen::ds::UiTexture twitchText; // Offset: 192 + keen::ds::UiTexture twitchIcon; // Offset: 240 +}; + +struct FbUiLoadingSymbol { + keen::float32 logoHeight; // Offset: 0 + keen::UiColor dotFadeColor; // Offset: 4 +}; + +struct FbUiStatusIcons { + keen::ds::UiTexture happy; // Offset: 0 + keen::ds::UiTexture sheltered; // Offset: 48 + keen::ds::UiTexture bed; // Offset: 96 + keen::ds::UiTexture food; // Offset: 144 + keen::ds::UiTexture warmth; // Offset: 192 + keen::ds::UiTexture location; // Offset: 240 + keen::ds::UiTexture bedStandlone; // Offset: 288 + keen::ds::UiTexture shelteredStandlone; // Offset: 336 + keen::ds::UiTexture fullfilledNpcNeeds; // Offset: 384 +}; + +struct FbUiGenericIcons { + keen::ds::UiTexture attention; // Offset: 0 + keen::ds::UiTexture checkmark; // Offset: 48 + keen::ds::UiTexture fulfilled; // Offset: 96 + keen::ds::UiTexture unfulfilled; // Offset: 144 + keen::ds::UiTexture missing; // Offset: 192 + keen::ds::UiTexture weight; // Offset: 240 + keen::ds::UiTexture pin; // Offset: 288 + keen::ds::UiTexture menuAttentionMarker; // Offset: 336 + keen::ds::UiTexture speechBubble; // Offset: 384 + keen::ds::UiTexture speechBubbleImportant; // Offset: 432 + keen::ds::UiTexture speechBubbleDotDotDot; // Offset: 480 + keen::ds::UiTexture hudMarkerFill; // Offset: 528 + keen::ds::UiTexture hudMarkerOutline; // Offset: 576 + keen::ds::UiTexture hudMarkerQuestionMark; // Offset: 624 + keen::ds::UiTexture warningTriangle; // Offset: 672 + keen::ds::UiTexture forbidden; // Offset: 720 + keen::ds::UiTexture store; // Offset: 768 + keen::ds::UiTexture settings; // Offset: 816 + keen::ds::UiTexture arrowRight; // Offset: 864 + keen::ds::UiTexture arrowLeftRight; // Offset: 912 + keen::ds::UiTexture locked; // Offset: 960 + keen::ds::UiTexture star4; // Offset: 1008 + keen::ds::UiTexture star5; // Offset: 1056 + keen::ds::UiTexture itemRarity; // Offset: 1104 + keen::ds::UiTexture privateGame; // Offset: 1152 + keen::ds::UiTexture publicGame; // Offset: 1200 + keen::ds::UiTexture joinGame; // Offset: 1248 + keen::ds::UiTexture networkGood; // Offset: 1296 + keen::ds::UiTexture networkAcceptable; // Offset: 1344 + keen::ds::UiTexture networkBad; // Offset: 1392 + keen::ds::UiTexture infinitySymbol; // Offset: 1440 + keen::ds::UiTexture craftingCogwheel; // Offset: 1488 + keen::ds::UiTexture craftingInactiveLayer; // Offset: 1536 + keen::ds::UiTexture loadingIcon; // Offset: 1584 + keen::ds::UiTexture friendServer; // Offset: 1632 + keen::ds::UiTexture dedicatedServer; // Offset: 1680 + keen::ds::UiTexture nonDedicatedServer; // Offset: 1728 + keen::ds::UiTexture favouriteServerSet; // Offset: 1776 + keen::ds::UiTexture favouriteServerUnset; // Offset: 1824 + keen::ds::UiTexture hide; // Offset: 1872 + keen::ds::UiTexture visible; // Offset: 1920 + keen::ds::UiTexture hide_selected; // Offset: 1968 + keen::ds::UiTexture visible_selected; // Offset: 2016 + keen::ds::UiTexture externalLink; // Offset: 2064 + keen::ds::UiTexture sort; // Offset: 2112 + keen::ds::UiTexture moveStacks; // Offset: 2160 + keen::ds::UiTexture moveAll; // Offset: 2208 + keen::ds::UiTexture serverSettingProhibited; // Offset: 2256 + keen::ds::UiTexture permissionKick; // Offset: 2304 + keen::ds::UiTexture permissionEditBase; // Offset: 2352 + keen::ds::UiTexture permissionUpgradeBase; // Offset: 2400 + keen::ds::UiTexture permissionAccessStorage; // Offset: 2448 + keen::ds::UiTexture pwOptional; // Offset: 2496 + keen::ds::FbUiStatusIcons statusIcons; // Offset: 2544 +}; + +typedef keen::FbUiCoverStyle FbUiCoverStyle; + +struct FbUiCoverTransition { + keen::ds::FbUiCoverStyle coverStyle; // Offset: 0 + keen::uint32 changeCount; // Offset: 4 +}; + +struct FbUiCursors { + keen::UiColor lockonColor; // Offset: 0 + keen::ds::UiTexture lockon; // Offset: 8 + keen::ds::UiTexture bow; // Offset: 56 + keen::ds::UiTexture bowFalloff; // Offset: 104 + keen::ds::UiTexture spell; // Offset: 152 + keen::ds::UiTexture spellArea; // Offset: 200 + keen::UiColor crosshairWarningColor; // Offset: 248 + keen::UiColor snappingReadyColor; // Offset: 256 + keen::UiColor snappingActiveColor; // Offset: 264 +}; + +struct UiSkillTreeNode { + keen::float2 pos; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::uint32 i; // Offset: 48 + keen::bool isA; // Offset: 52 + keen::bool isL; // Offset: 53 +}; + +struct UiSkillTreeConnection { + keen::uint32 a; // Offset: 0 + keen::uint32 b; // Offset: 4 +}; + +struct UiSkillTree { + keen::DsArray sList; // Offset: 0 + keen::DsArray sConList; // Offset: 40 +}; + +struct FbUiInline3SkillDescriptions { + keen::ds::string jumpAttack; // Offset: 0 + keen::ds::string evadeAttack; // Offset: 40 + keen::ds::string doubleJump; // Offset: 80 + keen::ds::string attributeStrength; // Offset: 120 + keen::ds::string attributeDexterity; // Offset: 160 + keen::ds::string attributeIntelligence; // Offset: 200 +}; + +struct FbUiSkillTreeFallbackTexts { + keen::ds::string activeSkillName; // Offset: 0 + keen::ds::string activeSkillDesc; // Offset: 40 + keen::ds::string attributeName; // Offset: 80 + keen::ds::string attributeDesc; // Offset: 120 + keen::ds::string passiveSkillName; // Offset: 160 + keen::ds::string passiveSkillDesc; // Offset: 200 +}; + +struct FbUiSkillNode { + keen::float32 textureRadius; // Offset: 0 + keen::float32 glowScale; // Offset: 4 + keen::float32 contentRadius; // Offset: 8 + keen::float32 focusRadiusGrowth; // Offset: 12 + keen::ds::UiTexture mutedForEA; // Offset: 16 + keen::ds::UiTexture outOfReach; // Offset: 64 + keen::ds::UiTexture inReach; // Offset: 112 + keen::ds::UiTexture activated; // Offset: 160 + keen::ds::UiTexture glow; // Offset: 208 +}; + +struct FbUiSkillNodes { + keen::ds::UiTexture starter; // Offset: 0 + keen::float32 starterRadius; // Offset: 48 + keen::float32 skillIconScale; // Offset: 52 + keen::float32 skillIconSubjectTextureReferenceHeight; // Offset: 56 + keen::ds::FbUiSkillNode attributes; // Offset: 60 + keen::ds::FbUiSkillNode passiveSkill; // Offset: 316 + keen::ds::FbUiSkillNode activeSkill; // Offset: 572 +}; + +struct FbUiSkillTreeLinkColors { + keen::UiColor activatedCore; // Offset: 0 + keen::UiColor activatedGlow; // Offset: 8 + keen::UiColor adjacent; // Offset: 16 + keen::UiColor adjacentHover; // Offset: 24 + keen::UiColor inactive; // Offset: 32 + keen::UiColor muted; // Offset: 40 +}; + +struct FbUiCanvasParallaxLayer { + keen::ds::UiTexture texture; // Offset: 0 + keen::float2 sizeOnCanvas; // Offset: 48 + keen::float32 parallaxDistance; // Offset: 56 + keen::UiColor renderTint; // Offset: 60 +}; + +struct FbUiSkillGlowColor { + keen::UiColor idle; // Offset: 0 + keen::UiColor activated; // Offset: 8 +}; + +struct FbUiSkillGlowColors { + keen::ds::FbUiSkillGlowColor mage; // Offset: 0 + keen::ds::FbUiSkillGlowColor warrior; // Offset: 16 + keen::ds::FbUiSkillGlowColor ranger; // Offset: 32 + keen::ds::FbUiSkillGlowColor neutral; // Offset: 48 +}; + +struct UiSkillTreeClassHint { + keen::ds::UiLocaTagReference label; // Offset: 0 + keen::bool isPrimary; // Offset: 16 + keen::UiColor color; // Offset: 20 + keen::sint32 directionDegrees; // Offset: 28 + keen::float32 distanceFromRing; // Offset: 32 +}; + +struct FbUiSkillTree { + keen::DsArray zoomSteps; // Offset: 0 + keen::DsArray bgLayers; // Offset: 40 + keen::ds::FbUiCanvasParallaxLayer skillLayoutHelper; // Offset: 80 + keen::UiColor backgroundColor; // Offset: 148 + keen::ds::FbUiSkillTreeLinkColors linkColors; // Offset: 156 + keen::ds::UiTexture connectionDirectionalPulse; // Offset: 204 + keen::ds::UiTexture connectionCore; // Offset: 252 + keen::ds::UiTexture connectionCoreInactive; // Offset: 300 + keen::ds::UiTexture connectionCoreOneWayStretch; // Offset: 348 + keen::ds::UiTexture connectionCoreOneWayEnd; // Offset: 396 + keen::ds::UiTexture connectionGlow; // Offset: 444 + keen::UiColor connectionPulseColorGeneric; // Offset: 492 + keen::ds::UiTexture nodeHighlight; // Offset: 500 + keen::ds::UiTexture cursorHighlight; // Offset: 548 + keen::ds::FbUiSkillGlowColors glowColors; // Offset: 596 + keen::DsArray classHints; // Offset: 664 + keen::UiColor mageKeyColor; // Offset: 704 + keen::UiColor warriorKeyColor; // Offset: 712 + keen::UiColor rangerKeyColor; // Offset: 720 + keen::UiColor neutralClassKeyColor; // Offset: 728 + keen::UiColor mutedOverlayColor; // Offset: 736 + keen::ds::FbUiSkillNodes nodes; // Offset: 744 + keen::ds::UiTexture centerRing; // Offset: 1572 + keen::float32 centerRingRadius; // Offset: 1620 + keen::ds::FbUiSkillTreeFallbackTexts fallbackTexts; // Offset: 1624 +}; + +struct FbUiMapMarkerIcons { + keen::ds::UiTexture waypoint; // Offset: 0 + keen::ds::UiTexture playerCorpse; // Offset: 48 + keen::ds::UiTexture playerCorpseInDungeon; // Offset: 96 + keen::ds::UiTexture markerFrame; // Offset: 144 + keen::ds::UiTexture markerSelector; // Offset: 192 + keen::ds::UiTexture investigation; // Offset: 240 + keen::ds::UiTexture investigationOpaque; // Offset: 288 + keen::ds::UiTexture completed; // Offset: 336 + keen::ds::UiTexture playerPing; // Offset: 384 + keen::ds::UiTexture playerMarkerPing; // Offset: 432 + keen::UiColor playerPingColor; // Offset: 480 +}; + +typedef keen::CustomMapMarkerColorScheme CustomMapMarkerColorScheme; + +struct FbUiCustomMarkerColorScheme { + keen::ds::CustomMapMarkerColorScheme colorSchemeType; // Offset: 0 + keen::UiColor baseColor; // Offset: 4 + keen::UiColor iconColor; // Offset: 12 +}; + +struct FbUiCustomMapMarker { + keen::StaticArray colors; // Offset: 0 + keen::ds::UiTexture markerBase; // Offset: 160 + keen::ds::UiTexture customMarkerSelector; // Offset: 208 + keen::ds::UiTexture customMarkerWaypoint; // Offset: 256 + keen::ds::UiTexture customMarkerHighlight; // Offset: 304 +}; + +struct FbUiMapIsolineConfig { + keen::float32 thickness; // Offset: 0 + keen::float32 alpha; // Offset: 4 +}; + +struct FbUiMapZoomConfig { + keen::float32 zoomScale; // Offset: 0 + keen::StaticArray isolineConfigs; // Offset: 4 +}; + +struct FbUiMapInvestigationArea { + keen::ds::UiTexture pattern; // Offset: 0 + keen::float32 tileSize; // Offset: 48 + keen::ds::UiTexture mask; // Offset: 52 + keen::UiColor patternColor; // Offset: 100 + keen::UiColor bgColor; // Offset: 108 + keen::float2 alphaRange; // Offset: 116 + keen::float32 pulseCycleInSeconds; // Offset: 124 +}; + +struct FbUiAdventureMap { + keen::ds::UiTexture playerPosition; // Offset: 0 + keen::UiColor currentPlayerColor; // Offset: 48 + keen::UiColor otherPlayerColor; // Offset: 56 + keen::float2 fogZoneAlphaRange; // Offset: 64 + keen::Time fogZonePulseLength; // Offset: 72 + keen::float32 outerCornerNominalSize; // Offset: 80 + keen::ds::UiNineSliceTexture outerFrame; // Offset: 84 + keen::float32 frameInnerGradientNominalSize; // Offset: 148 + keen::ds::UiNineSliceTexture frameInnerGradient; // Offset: 152 + keen::ds::UiTexture cursorPiece; // Offset: 216 + keen::ds::UiTexture offscreenIconBubble; // Offset: 264 + keen::ds::UiTexture circularArea; // Offset: 312 + keen::ds::UiTexture markerRipple; // Offset: 360 + keen::ds::FbUiMapInvestigationArea investigation; // Offset: 408 + keen::ds::FbUiMapMarkerIcons markerIcons; // Offset: 536 + keen::DsArray zoomConfigs; // Offset: 1024 + keen::ds::FbUiCustomMapMarker customMarkers; // Offset: 1064 +}; + +struct FbUiRecipeCategoryIcons { + keen::ds::UiTexture swords; // Offset: 0 + keen::ds::UiTexture ammo; // Offset: 48 + keen::ds::UiTexture potion; // Offset: 96 + keen::ds::UiTexture misc; // Offset: 144 + keen::ds::UiTexture armor; // Offset: 192 + keen::ds::UiTexture magical; // Offset: 240 +}; + +struct FbUiRecipeGroupDefinition { + keen::ds::UiTexture icon; // Offset: 0 + keen::ds::ItemTagReference tagRef; // Offset: 48 + keen::ds::ItemCategory itemCategoryFallback; // Offset: 64 +}; + +struct FbUiCrafting { + keen::ds::FbUiRecipeCategoryIcons categoryIcons; // Offset: 0 + keen::UiColor ingredientBgColorDefault; // Offset: 288 + keen::UiColor sufficientIngredientColor; // Offset: 296 + keen::UiColor insufficientIngredientColor; // Offset: 304 + keen::UiColor successFlashColor; // Offset: 312 + keen::ds::UiTexture pinnedRecipeIcon; // Offset: 320 + keen::DsArray groupDefinitions; // Offset: 368 + keen::DsArray recipeSets; // Offset: 408 +}; + +struct FbUiRecipeSetFolder { +}; + +struct FbUiRecipeSet { +}; + +struct FbUiWorldEvents { +}; + +struct FbUiWorldEvent { + keen::HashKey32 eventId; // Offset: 0 + keen::ds::UiTexture mainTexture; // Offset: 4 + keen::ds::UiTexture ornament; // Offset: 52 + keen::UiColor initialColor; // Offset: 100 + keen::UiColor secondaryColor; // Offset: 108 + keen::UiColor rippleColor; // Offset: 116 + keen::float imageSize; // Offset: 124 + keen::ds::SoundContainerReference sfx; // Offset: 128 + keen::ds::UiLocaTagReference text; // Offset: 144 +}; + +typedef keen::UiParagraphAlignment UiParagraphAlignment; + +struct UiParagraphStyle { + keen::ds::string identifier; // Offset: 0 + keen::float32 leading; // Offset: 40 + keen::bool enableAlignment; // Offset: 44 + keen::ds::UiParagraphAlignment alignment; // Offset: 45 + keen::float32 indentLeft; // Offset: 48 + keen::float32 indentRight; // Offset: 52 + keen::float32 lineSpacing; // Offset: 56 +}; + +struct FbUiMenuParagraphStyles { + keen::ds::UiParagraphStyle loreReaderBody; // Offset: 0 +}; + +struct FbUiEquipmentBodyPartViews { + keen::ds::FbUiCharacterView full; // Offset: 0 + keen::ds::FbUiCharacterView head; // Offset: 28 + keen::ds::FbUiCharacterView chest; // Offset: 56 + keen::ds::FbUiCharacterView arm; // Offset: 84 + keen::ds::FbUiCharacterView legs; // Offset: 112 + keen::ds::FbUiCharacterView feet; // Offset: 140 + keen::ds::FbUiCharacterView ring; // Offset: 168 +}; + +struct FbUiHudMenuMetrics { + keen::float32 lootingMenuWidth; // Offset: 0 + keen::float32 centerMessageBottomY; // Offset: 4 + keen::Time epicLootLeaveCenterDelay; // Offset: 8 + keen::ds::FbUiEquipmentBodyPartViews equipmentBodyPartViews; // Offset: 16 +}; + +struct FbUiCustomizationViews { + keen::ds::FbUiCharacterView fullBody; // Offset: 0 + keen::ds::FbUiCharacterView head; // Offset: 28 + keen::ds::FbUiCharacterView presetView; // Offset: 56 + keen::ds::FbUiCharacterView hairView; // Offset: 84 + keen::ds::FbUiCharacterView beardView; // Offset: 112 + keen::ds::FbUiCharacterView hairColorView; // Offset: 140 +}; + +struct CharacterPresetObject { + keen::ds::CharacterPresetObjectReference presetObject; // Offset: 0 + keen::ds::UiTexture previewImage; // Offset: 16 +}; + +struct CharacterItemReferences { + keen::ds::ItemReference itemReference; // Offset: 0 + keen::ds::UiTexture previewImage; // Offset: 16 +}; + +struct FbUiCustomization { + keen::ds::FbUiCustomizationViews characterViews; // Offset: 0 + keen::DsArray presetObjects; // Offset: 168 + keen::DsArray hairColors; // Offset: 208 + keen::DsArray beardColors; // Offset: 248 + keen::DsArray hairItems; // Offset: 288 + keen::DsArray beardItems; // Offset: 328 + keen::DsArray> eyeColors; // Offset: 368 + keen::DsArray> eyeBrowColors; // Offset: 408 + keen::DsArray> skinColors; // Offset: 448 + keen::DsArray> voiceItems; // Offset: 488 +}; + +struct FbUiTileArtConfig { + keen::float2 pivot; // Offset: 0 + keen::float32 scaleTweak; // Offset: 8 + keen::ds::UiTexture texture; // Offset: 12 +}; + +struct FbUiMenuTiles { + keen::float32 idleAlphaScale; // Offset: 0 + keen::float32 emptyContentAlphaScale; // Offset: 4 + keen::ds::FbUiTileArtConfig lockedContent; // Offset: 8 + keen::ds::FbUiTileArtConfig quests; // Offset: 68 + keen::ds::FbUiTileArtConfig flame; // Offset: 128 + keen::ds::FbUiTileArtConfig craftspeople; // Offset: 188 + keen::ds::FbUiTileArtConfig townsfolk; // Offset: 248 + keen::ds::FbUiTileArtConfig bases; // Offset: 308 + keen::ds::FbUiTileArtConfig workshops; // Offset: 368 + keen::ds::FbUiTileArtConfig lore; // Offset: 428 + keen::ds::FbUiTileArtConfig tutorials; // Offset: 488 + keen::ds::FbUiTileArtConfig altarUpgradeGeneric; // Offset: 548 + keen::DsArray altarLevels; // Offset: 608 + keen::ds::FbUiTileArtConfig flameUpgrade; // Offset: 648 + keen::ds::FbUiTileArtConfig skilltree; // Offset: 708 +}; + +struct FbUiMenuButtonTextures { + keen::ds::UiNineSliceTexture background; // Offset: 0 + keen::ds::UiNineSliceTexture backgroundDestructive; // Offset: 64 + keen::ds::UiNineSliceTexture backGlow; // Offset: 128 + keen::ds::UiNineSliceTexture ornament; // Offset: 192 +}; + +struct UiCharacterStyleActivePropertyFlags { + keen::bool font; // Offset: 0 + keen::bool size; // Offset: 1 + keen::bool tracking; // Offset: 2 + keen::bool variant; // Offset: 3 + keen::bool uppercase; // Offset: 4 + keen::bool color; // Offset: 5 + keen::bool outline; // Offset: 6 + keen::bool dropShadow; // Offset: 7 +}; + +struct UiCharacterStyle { + keen::ds::string identifier; // Offset: 0 + keen::ds::UiCharacterStyleActivePropertyFlags activeProperties; // Offset: 40 + keen::ObjectReference font; // Offset: 48 + keen::float32 fontSize; // Offset: 64 + keen::float32 spacing; // Offset: 68 + keen::bool bold; // Offset: 72 + keen::bool italic; // Offset: 73 + keen::bool uppercase; // Offset: 74 + keen::UiColor color; // Offset: 76 + keen::bool outline; // Offset: 84 + keen::UiColor outlineColor; // Offset: 88 + keen::float32 outlineSize; // Offset: 96 + keen::bool dropShadow; // Offset: 100 + keen::UiColor dropShadowColor; // Offset: 104 + keen::float2 dropShadowOffset; // Offset: 112 +}; + +struct FbUiMenuButton { + keen::ds::FbUiMenuButtonTextures standalone; // Offset: 0 + keen::ds::FbUiMenuButtonTextures inGroupLeft; // Offset: 256 + keen::ds::FbUiMenuButtonTextures inGroupMiddle; // Offset: 512 + keen::ds::FbUiMenuButtonTextures inGroupRight; // Offset: 768 + keen::ds::FbUiMenuButtonTextures standaloneSmall; // Offset: 1024 + keen::ds::UiTexture sliderKnob; // Offset: 1280 + keen::ds::UiCharacterStyle labelStyle; // Offset: 1328 + keen::UiColor ornamentTint; // Offset: 1448 + keen::UiColor destructiveTint; // Offset: 1456 + keen::UiColor textColorDestructive; // Offset: 1464 +}; + +struct FbUiMenuToggle { + keen::ds::UiTexture toggleOn; // Offset: 0 + keen::ds::UiTexture toggleOff; // Offset: 48 + keen::ds::UiTexture backGlow; // Offset: 96 +}; + +struct FbUiMenuScrollbar { + keen::ds::UiNineSliceTexture slider; // Offset: 0 + keen::ds::UiNineSliceTexture range; // Offset: 64 + keen::UiColor rangeTint; // Offset: 128 +}; + +struct FbUiCharacterInventory { + keen::ds::UiTexture levelBadgeBackground; // Offset: 0 + keen::float2 xpBarLevelBadgeSize; // Offset: 48 +}; + +struct FbUiMultiToolMenu { + keen::ds::UiLocaTagReference materialHeader; // Offset: 0 + keen::ds::UiLocaTagReference tooltipMaterialHint; // Offset: 16 + keen::ds::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 32 + keen::ds::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 48 + keen::ds::UiLocaTagReference itemSubInfo; // Offset: 64 + keen::ds::UiLocaTagReference preUseHint_QuickBuilder; // Offset: 80 + keen::ds::UiLocaTagReference preUseHint_Terraformer; // Offset: 96 + keen::ds::UiLocaTagReference preUseHint_NpcSummoner; // Offset: 112 + keen::ds::UiLocaTagReference preUseHintHud_QuickBuilder; // Offset: 128 + keen::ds::UiLocaTagReference preUseHintHud_Terraformer; // Offset: 144 + keen::ds::UiLocaTagReference preUseHintHud_NpcSummoner; // Offset: 160 + keen::ds::UiLocaTagReference noAltarBuild; // Offset: 176 + keen::ds::UiLocaTagReference craftBlocksHint; // Offset: 192 + keen::ds::UiLocaTagReference craftRoofBlocksHint; // Offset: 208 + keen::ds::UiLocaTagReference collectMaterialsHint; // Offset: 224 + keen::ds::UiLocaTagReference noMaterialsAvailable; // Offset: 240 + keen::ds::UiLocaTagReference needsFlameAltarHint; // Offset: 256 + keen::UiColor antiTofuTint_Temp; // Offset: 272 +}; + +struct FbUiEquipmentSlotIcons { + keen::ds::UiTexture mainHand; // Offset: 0 + keen::ds::UiTexture shield; // Offset: 48 + keen::ds::UiTexture backpackExtender; // Offset: 96 + keen::ds::UiTexture rangedWeapon; // Offset: 144 + keen::ds::UiTexture arrow; // Offset: 192 + keen::ds::UiTexture spell; // Offset: 240 + keen::ds::UiTexture wallClimber; // Offset: 288 + keen::ds::UiTexture hookshot; // Offset: 336 + keen::ds::UiTexture glider; // Offset: 384 + keen::ds::UiTexture accessory; // Offset: 432 + keen::ds::UiTexture ring; // Offset: 480 + keen::ds::UiTexture head; // Offset: 528 + keen::ds::UiTexture upperBody; // Offset: 576 + keen::ds::UiTexture arms; // Offset: 624 + keen::ds::UiTexture lowerBody; // Offset: 672 + keen::ds::UiTexture boots; // Offset: 720 + keen::ds::UiTexture vanity; // Offset: 768 +}; + +struct FbUiPerkIcons { + keen::ds::UiTexture nodeOutline; // Offset: 0 + keen::ds::UiTexture genericAttributeNode; // Offset: 48 +}; + +struct FbUiFancyBox { + keen::float32 cornerSize; // Offset: 0 + keen::ds::UiNineSliceTexture frame; // Offset: 4 + keen::ds::UiNineSliceTexture frameSimple; // Offset: 68 + keen::UiColor frameColor; // Offset: 132 + keen::ds::UiNineSliceTexture backgroundShape; // Offset: 140 + keen::ds::UiNineSliceTexture backgroundShapeHalved; // Offset: 204 + keen::ds::UiNineSliceTexture backgroundShapeGlassMask; // Offset: 268 + keen::ds::UiNineSliceTexture backgroundShapeHalvedGlassMask; // Offset: 332 + keen::UiColor backgroundColor; // Offset: 396 + keen::UiColor backgroundColorDark; // Offset: 404 + keen::ds::UiTexture backgroundPattern; // Offset: 412 + keen::UiColor backgroundPatternColor; // Offset: 460 + keen::float32 patternSize; // Offset: 468 + keen::ds::UiNineSliceTexture frameFull; // Offset: 472 + keen::ds::UiNineSliceTexture backgroundShapeFrameFull; // Offset: 536 + keen::ds::UiNineSliceTexture backgroundShapeGradientToLeft; // Offset: 600 + keen::ds::UiNineSliceTexture backgroundShapeGradientToTop; // Offset: 664 + keen::ds::UiNineSliceTexture frameFullSimple; // Offset: 728 + keen::ds::UiNineSliceTexture backgroundShapeFrameFullSimple; // Offset: 792 + keen::ds::UiNineSliceTexture frameTopMinimal; // Offset: 856 + keen::ds::UiNineSliceTexture backgroundShapeTopMinimal; // Offset: 920 + keen::ds::UiNineSliceTexture frameFullDetailed; // Offset: 984 + keen::ds::UiNineSliceTexture backgroundShapeFrameFullDetailed; // Offset: 1048 +}; + +struct FbUiFancyLoadingBar { + keen::ds::UiNineSliceTexture background; // Offset: 0 + keen::ds::UiNineSliceTexture bar; // Offset: 64 + keen::ds::UiNineSliceTexture glow; // Offset: 128 + keen::UiColor sectionCompletedColor; // Offset: 192 +}; + +typedef keen::UiSize UiSize; + +struct FbUiMenuExplainer { + keen::UiColor darkenerColor; // Offset: 0 + keen::float32 areaFeatherSize; // Offset: 8 + keen::ds::UiSize areaContentPadding; // Offset: 12 + keen::float32 textMaxWidth; // Offset: 20 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiJournalBaseInfo { + keen::ds::UiTexture iconFlameAltar; // Offset: 0 + keen::ds::UiTexture iconNpc; // Offset: 48 + keen::ds::UiTexture iconNpcBed; // Offset: 96 + keen::ds::UiTexture iconAnimal; // Offset: 144 +}; + +struct FbUiCodexAssets { + keen::ds::UiTexture questSourceIconBG; // Offset: 0 + keen::ds::UiTexture repeatedQuestSourceIconBG; // Offset: 48 + keen::ds::UiTexture questIconFlame; // Offset: 96 + keen::ds::UiTexture questIconBlacksmith; // Offset: 144 + keen::ds::UiTexture questIconAlchemist; // Offset: 192 + keen::ds::UiTexture questIconHunter; // Offset: 240 + keen::ds::UiTexture questIconCarpenter; // Offset: 288 + keen::ds::UiTexture questIconFarmer; // Offset: 336 + keen::ds::UiTexture questIconCryptKeeper; // Offset: 384 + keen::ds::UiTexture questIconBard; // Offset: 432 + keen::ds::UiTexture questIconMisc; // Offset: 480 + keen::ds::UiTexture questIconTexture; // Offset: 528 + keen::ds::UiTexture questProgressEmpty; // Offset: 576 + keen::ds::UiTexture questProgressFilled; // Offset: 624 + keen::ds::UiTexture questCheckmark; // Offset: 672 + keen::ds::UiTexture lorePageFound; // Offset: 720 + keen::ds::UiTexture lorePageLocked; // Offset: 768 + keen::ds::UiTexture activeQuestIndicator; // Offset: 816 + keen::ds::UiTexture lockedLoreTileImage; // Offset: 864 + keen::UiColor completedQuestsColor; // Offset: 912 + keen::UiColor flameQuestEntryColor; // Offset: 920 + keen::UiColor npcQuestEntryColor; // Offset: 928 + keen::UiColor miscQuestEntryColor; // Offset: 936 + keen::UiColor repeatedQuestEntryColor; // Offset: 944 + keen::ds::FbUiJournalBaseInfo baseInfo; // Offset: 952 +}; + +struct FbUiLoreCategory { + keen::ds::UiLocaTagReference categoryName; // Offset: 0 + keen::ds::FbUiTileArtConfig artConfig; // Offset: 16 +}; + +struct FbUiMenuAttributeTabs { + keen::ds::UiTexture basicsTab; // Offset: 0 + keen::ds::UiTexture damageTab; // Offset: 48 + keen::ds::UiTexture resistanceTab; // Offset: 96 +}; + +struct FbUiCollectionCategoryInfo { + keen::ObjectReference category; // Offset: 0 + keen::ds::UiLocaTagReference label; // Offset: 16 + keen::ds::UiTexture icon; // Offset: 32 +}; + +struct FbUiDifficultyOptionValue { + keen::bool isAvailable; // Offset: 0 + keen::DsArray steps; // Offset: 8 +}; + +struct FbUiDifficultyOptionValues { + keen::ds::FbUiDifficultyOptionValue enemyDamage; // Offset: 0 + keen::ds::FbUiDifficultyOptionValue enemyHealth; // Offset: 48 + keen::ds::FbUiDifficultyOptionValue enemyStamina; // Offset: 96 + keen::ds::FbUiDifficultyOptionValue enemyPerceptionRange; // Offset: 144 + keen::ds::FbUiDifficultyOptionValue enemyAttackFrequency; // Offset: 192 + keen::ds::FbUiDifficultyOptionValue bossHealth; // Offset: 240 + keen::ds::FbUiDifficultyOptionValue bossDamage; // Offset: 288 + keen::ds::FbUiDifficultyOptionValue miningXp; // Offset: 336 + keen::ds::FbUiDifficultyOptionValue questXp; // Offset: 384 + keen::ds::FbUiDifficultyOptionValue combatXp; // Offset: 432 + keen::ds::FbUiDifficultyOptionValue playerHealth; // Offset: 480 + keen::ds::FbUiDifficultyOptionValue playerStamina; // Offset: 528 + keen::ds::FbUiDifficultyOptionValue playerMana; // Offset: 576 + keen::ds::FbUiDifficultyOptionValue shroudTime; // Offset: 624 + keen::ds::FbUiDifficultyOptionValue durability; // Offset: 672 + keen::ds::FbUiDifficultyOptionValue dayTime; // Offset: 720 + keen::ds::FbUiDifficultyOptionValue nightTime; // Offset: 768 + keen::ds::FbUiDifficultyOptionValue foodDuration; // Offset: 816 + keen::ds::FbUiDifficultyOptionValue productionTime; // Offset: 864 + keen::ds::FbUiDifficultyOptionValue plantGrowTime; // Offset: 912 + keen::ds::FbUiDifficultyOptionValue weaponUpgradeCost; // Offset: 960 + keen::ds::FbUiDifficultyOptionValue perkUpgradeRecyclingFactor; // Offset: 1008 + keen::ds::FbUiDifficultyOptionValue worldRefreshTime; // Offset: 1056 + keen::ds::FbUiDifficultyOptionValue miningDamage; // Offset: 1104 + keen::ds::FbUiDifficultyOptionValue dropAmount; // Offset: 1152 + keen::ds::FbUiDifficultyOptionValue starvingTime; // Offset: 1200 + keen::ds::FbUiDifficultyOptionValue bodyHeat; // Offset: 1248 + keen::bool tombstoneMode; // Offset: 1296 + keen::bool randomSpawnerAmount; // Offset: 1297 + keen::bool aggroPoolAmount; // Offset: 1298 + keen::bool enableDurability; // Offset: 1299 + keen::bool enableStarvingDebuff; // Offset: 1300 + keen::bool pacifyAllEnemies; // Offset: 1301 + keen::bool weatherFrequency; // Offset: 1302 + keen::bool enableGliderTurbulences; // Offset: 1303 + keen::bool tamingStartleRepercussion; // Offset: 1304 +}; + +struct FbUiDifficultyPreset { + keen::ds::ecs::GameSettingsPreset presetId; // Offset: 0 + keen::ds::UiLocaTagReference label; // Offset: 4 + keen::ds::UiLocaTagReference desc; // Offset: 20 + keen::ds::UiTexture iconSelected; // Offset: 36 + keen::ds::UiTexture iconUnelected; // Offset: 84 + keen::ds::UiTexture iconSmall; // Offset: 132 + keen::ds::ecs::GameSettings settings; // Offset: 184 +}; + +struct FbUiDifficultySettings { + keen::ds::FbUiDifficultyOptionValues settingValues; // Offset: 0 + keen::ds::FbUiDifficultyPreset presetDefault; // Offset: 1312 + keen::ds::FbUiDifficultyPreset presetBuilder; // Offset: 1624 + keen::ds::FbUiDifficultyPreset presetSurvivalist; // Offset: 1936 + keen::ds::FbUiDifficultyPreset presetCombatChallenge; // Offset: 2248 + keen::ds::FbUiDifficultyPreset custom; // Offset: 2560 + keen::ds::UiTexture presetIconHighlight; // Offset: 2872 +}; + +struct FbUiMenu { + keen::ds::FbUiHudMenuMetrics metrics; // Offset: 0 + keen::ds::FbUiMenuParagraphStyles paragraphStyles; // Offset: 216 + keen::ds::FbUiCharacterInventory characterInventory; // Offset: 280 + keen::ds::FbUiSkillTree skilltree; // Offset: 336 + keen::ds::FbUiAdventureMap map; // Offset: 2200 + keen::ds::FbUiCrafting crafting; // Offset: 3616 + keen::DsArray collectionCategories; // Offset: 4064 + keen::ds::FbUiMultiToolMenu multiTool; // Offset: 4104 + keen::ds::FbUiEquipmentSlotIcons equipmentSlots; // Offset: 4384 + keen::ds::FbUiPerkIcons itemPerkIcons; // Offset: 5200 + keen::ds::FbUiMenuAttributeTabs attributeTabs; // Offset: 5296 + keen::ds::FbUiMenuTiles menuTiles; // Offset: 5440 + keen::ds::UiTexture codexMotherflameIllustration; // Offset: 6208 + keen::ds::FbUiCodexAssets codexAssets; // Offset: 6256 + keen::DsArray loreCategories; // Offset: 7400 + keen::ds::FbUiMenuButton button; // Offset: 7440 + keen::ds::FbUiMenuToggle toggle; // Offset: 8912 + keen::ds::FbUiMenuScrollbar scrollbar; // Offset: 9056 + keen::ds::FbUiFancyLoadingBar loadingBar; // Offset: 9192 + keen::UiColor frostedGlassDefaultTint; // Offset: 9392 + keen::UiColor backgroundDarkenerColor; // Offset: 9400 + keen::ds::UiNineSliceTexture topTabBackground; // Offset: 9408 + keen::UiColor tabLabelIdleColor; // Offset: 9472 + keen::UiColor tabLabelHighlightColor; // Offset: 9480 + keen::UiColor tabHighlightColor; // Offset: 9488 + keen::ds::UiNineSliceTexture tabHighlight; // Offset: 9496 + keen::UiColor basicWidgetColor; // Offset: 9560 + keen::UiColor basicWidgetColorHighlighted; // Offset: 9568 + keen::UiColor tileBackgroundColor; // Offset: 9576 + keen::UiColor tileHighlightOutlineColor; // Offset: 9584 + keen::ds::UiNineSliceTexture basicWidgetMinimizedShape; // Offset: 9592 + keen::ds::UiNineSliceTexture basicWidgetBackground; // Offset: 9656 + keen::ds::UiNineSliceTexture basicWidgetBackgroundWide; // Offset: 9720 + keen::ds::UiNineSliceTexture basicWidgetBackgroundLarge; // Offset: 9784 + keen::ds::UiNineSliceTexture basicWidgetBackgroundFaded; // Offset: 9848 + keen::ds::UiNineSliceTexture basicWidgetHeader; // Offset: 9912 + keen::ds::UiNineSliceTexture basicWidgetRarityStripe; // Offset: 9976 + keen::ds::UiNineSliceTexture basicWidgetHighlightOutline; // Offset: 10040 + keen::ds::FbUiFancyBox fancyBox; // Offset: 10104 + keen::ds::UiNineSliceTexture pillWidgetBackground; // Offset: 11216 + keen::ds::UiTexture flameIcon; // Offset: 11280 + keen::ds::UiTexture moveStacksLeftIcon; // Offset: 11328 + keen::ds::UiTexture moveStacksRightIcon; // Offset: 11376 + keen::ds::UiTexture iconPlayerInventory; // Offset: 11424 + keen::ds::UiTexture iconStorageInventory; // Offset: 11472 + keen::ds::UiTexture iconOpenInventoryTransactions; // Offset: 11520 + keen::ds::UiTexture spatialFactoryInfoBg; // Offset: 11568 + keen::ds::UiTexture actionbarTutorialKeyImage; // Offset: 11616 + keen::ds::UiTexture fancyToggleSmallOff; // Offset: 11664 + keen::ds::UiTexture fancyToggleSmallOn; // Offset: 11712 + keen::ds::FbUiMenuExplainer explainer; // Offset: 11760 +}; + +struct FbUiItemSlotFrame { + keen::ds::UiTexture shapeBase; // Offset: 0 + keen::ds::UiTexture shapeSubtle; // Offset: 48 + keen::ds::UiTexture outline; // Offset: 96 +}; + +struct FbUiItemSlotMinimal { + keen::ds::UiTexture cookable; // Offset: 0 + keen::ds::UiTexture uncookable; // Offset: 48 + keen::ds::UiTexture empty; // Offset: 96 +}; + +struct FbUiItemEquipIndicator { + keen::ds::UiLocaTagReference label; // Offset: 0 + keen::ds::UiTexture texture; // Offset: 16 + keen::UiColor color; // Offset: 64 + keen::bool useFrame; // Offset: 72 +}; + +struct FbUiItemStackProperties { + keen::ds::UiTexture isNew; // Offset: 0 + keen::ds::UiTexture equippableFrame; // Offset: 48 + keen::ds::UiTexture equipMissingHint; // Offset: 96 + keen::ds::UiLocaTagReference initialEquipActionMessage; // Offset: 144 + keen::ds::UiLocaTagReference labelEquipped; // Offset: 160 + keen::ds::UiLocaTagReference labelUnequipped; // Offset: 176 + keen::ds::FbUiItemEquipIndicator actionBarHighlight; // Offset: 192 + keen::ds::FbUiItemEquipIndicator instaUse; // Offset: 268 + keen::ds::FbUiItemEquipIndicator armor; // Offset: 344 + keen::ds::FbUiItemEquipIndicator vanityArmor; // Offset: 420 + keen::ds::FbUiItemEquipIndicator rangedWeapon; // Offset: 496 + keen::ds::FbUiItemEquipIndicator arrow; // Offset: 572 + keen::ds::FbUiItemEquipIndicator spell; // Offset: 648 + keen::ds::FbUiItemEquipIndicator blueprintDefaultShape; // Offset: 724 + keen::ds::FbUiItemEquipIndicator blueprintDefaultMaterial; // Offset: 800 + keen::ds::FbUiItemEquipIndicator blueprintRoofShape; // Offset: 876 + keen::ds::FbUiItemEquipIndicator blueprintRoofMaterial; // Offset: 952 + keen::ds::FbUiItemEquipIndicator blueprintTerrainShape; // Offset: 1028 + keen::ds::FbUiItemEquipIndicator blueprintTerrainMaterial; // Offset: 1104 + keen::ds::FbUiItemEquipIndicator missingTwitchPermission; // Offset: 1180 + keen::UiColor durabilityColorDefault; // Offset: 1256 + keen::UiColor durabilityColorLow; // Offset: 1264 + keen::UiColor durabilityColorDraining; // Offset: 1272 + keen::UiColor durabilityColorDrainingLow; // Offset: 1280 +}; + +struct FbUiItemSlot { + keen::ds::FbUiItemStackProperties properties; // Offset: 0 + keen::ds::FbUiItemSlotFrame backpack; // Offset: 1288 + keen::ds::FbUiItemSlotMinimal minimal; // Offset: 1432 + keen::ds::UiCharacterStyle countNumberStyle; // Offset: 1576 + keen::UiColor grabAmountColor; // Offset: 1696 + keen::UiColor backgroundColor; // Offset: 1704 + keen::UiColor backgroundColorBright; // Offset: 1712 + keen::ds::UiTexture actionbarPageInactive; // Offset: 1720 + keen::ds::UiTexture actionbarPageActive; // Offset: 1768 + keen::ds::UiTexture pageHint; // Offset: 1816 + keen::ds::UiTexture blueprintBackground; // Offset: 1864 + keen::ds::UiTexture blueprintTypeIconMini; // Offset: 1912 + keen::ds::UiTexture blueprintIntroItemIcon; // Offset: 1960 +}; + +struct FbUiBlueprint { + keen::ds::UiLocaTagReference introRecipeName; // Offset: 0 + keen::ds::UiLocaTagReference introRecipeDescription1; // Offset: 16 + keen::ds::UiLocaTagReference introRecipeDescription2; // Offset: 32 + keen::ds::UiLocaTagReference introItemSubinfo; // Offset: 48 + keen::ds::UiLocaTagReference introItemEmptyHint; // Offset: 64 + keen::ds::UiLocaTagReference introItemUsageHint; // Offset: 80 + keen::ds::UiLocaTagReference materialHeader; // Offset: 96 + keen::ds::UiLocaTagReference tooltipMaterialHint; // Offset: 112 + keen::ds::UiLocaTagReference tooltipMaterialHintWithBlockUnit; // Offset: 128 + keen::ds::UiLocaTagReference tooltipEmptyMaterialListHint; // Offset: 144 + keen::UiColor antiTofuTint_Temp; // Offset: 160 +}; + +struct FbUiBuffIcons { + keen::ds::UiTexture circularBarMask; // Offset: 0 + keen::UiColor frameColor; // Offset: 48 + keen::UiColor pieFillColor; // Offset: 56 + keen::UiColor pieFillColorHungry; // Offset: 64 + keen::UiColor pieFillColorStarving; // Offset: 72 + keen::UiColor pieLineColor; // Offset: 80 + keen::ds::UiTexture extremeCold; // Offset: 88 + keen::ds::UiTexture extremeHeat; // Offset: 136 + keen::ds::UiTexture restedConditionsBracket; // Offset: 184 +}; + +struct FbUiAnimatedHealthBarColors { + keen::UiColor frameColor; // Offset: 0 + keen::UiColor rangeColor; // Offset: 8 + keen::UiColor fillColor; // Offset: 16 + keen::UiColor fillEndColor; // Offset: 24 + keen::UiColor damageColor; // Offset: 32 + keen::UiColor healColor; // Offset: 40 +}; + +struct FbUiHudBuffDisplay { + keen::float2 textEntriesOffset; // Offset: 0 + keen::float32 offsetY; // Offset: 8 + keen::float32 iconColumnsDistance; // Offset: 12 + keen::float32 restedAnchorSize; // Offset: 16 + keen::float2 restedBarPieceSize; // Offset: 20 +}; + +struct FbUiHudPlayerStatus { + keen::float2 widgetBaseOffset; // Offset: 0 + keen::float4 flameWarningThresholds; // Offset: 8 + keen::ds::FbUiHudBuffDisplay buffDisplay; // Offset: 24 + keen::ds::UiNineSliceTexture barBackground; // Offset: 52 + keen::float4 barBorderThickness; // Offset: 116 + keen::float2 barGroupOffset; // Offset: 132 + keen::float2 xpBarSize; // Offset: 140 + keen::float2 xpBarOffset; // Offset: 148 + keen::float32 xpBarDisplayTime; // Offset: 156 + keen::float2 healthBarSize; // Offset: 160 + keen::float2 manaBarSize; // Offset: 168 + keen::ds::UiTexture staminaCircleMain; // Offset: 176 + keen::ds::UiTexture staminaCircleBuff; // Offset: 224 + keen::ds::UiTexture staminaCircleInner; // Offset: 272 + keen::DsArray staminaCirlceSizesInner; // Offset: 320 + keen::DsArray staminaCirlceSizesOuter; // Offset: 360 + keen::ds::FbUiAnimatedHealthBarColors xpColors; // Offset: 400 + keen::ds::FbUiAnimatedHealthBarColors healthColors; // Offset: 448 + keen::ds::FbUiAnimatedHealthBarColors staminaColors; // Offset: 496 + keen::ds::FbUiAnimatedHealthBarColors manaColors; // Offset: 544 +}; + +struct FbUiAltarAttentionMarkerAnim { + keen::Time altarAttentionMarkerFadeIn; // Offset: 0 + keen::Time altarAttentionMarkerFadeOut; // Offset: 8 + keen::Time altarAttentionMarkerSecondPingDelay; // Offset: 16 + keen::Time altarAttentionMarkerAnimDelay; // Offset: 24 + keen::float32 altarAttentionMarkerGrow; // Offset: 32 + keen::float32 altarAttentionMarkerPingSize; // Offset: 36 + keen::float32 altarAttentionMarkerMinAlpha; // Offset: 40 + keen::float32 altarAttentionMarkerPingStartAlpha; // Offset: 44 + keen::float32 altarAttentionMarkerPingEndAlpha; // Offset: 48 +}; + +struct FbUiHUDSpatial { + keen::ds::UiTexture lockonBackground; // Offset: 0 + keen::ds::UiTexture lockonArrow; // Offset: 48 + keen::float32 lockonArrowSize; // Offset: 96 + keen::ds::UiNineSliceTexture healthBar; // Offset: 100 + keen::ds::UiTexture critIndicator; // Offset: 164 + keen::float2 critIndcatorOffset; // Offset: 212 + keen::float32 bonusIndicatorUnitHeight; // Offset: 220 + keen::ds::UiTexture bonusIndicator; // Offset: 224 + keen::ds::UiTexture malusIndicator; // Offset: 272 + keen::float2 bonusGroupOffset; // Offset: 320 + keen::float2 malusGroupOffset; // Offset: 328 + keen::float2 symbolOffset; // Offset: 336 + keen::float2 enemyHealthBarSize; // Offset: 344 + keen::float2 enemyStaminaBarSize; // Offset: 352 + keen::float2 enemyBarGroupBorder; // Offset: 360 + keen::UiColor damageTextBonusFill; // Offset: 368 + keen::UiColor damageTextBonusOutlineFrom; // Offset: 376 + keen::UiColor damageTextBonusOutlineTo; // Offset: 384 + keen::UiColor damageTextMalusFill; // Offset: 392 + keen::UiColor damageTextMalusOutlineFrom; // Offset: 400 + keen::UiColor damageTextMalusOutlineTo; // Offset: 408 + keen::UiColor attentionMarkerQuestionFill; // Offset: 416 + keen::UiColor attentionMarkerFlameInfoFill; // Offset: 424 + keen::ds::FbUiAnimatedHealthBarColors coPlayerHealthColors; // Offset: 432 + keen::UiColor coPlayerLevelBadgeFill; // Offset: 480 + keen::UiColor coPlayerLevelBadgeOutline; // Offset: 488 + keen::UiColor enemyLevelBadgeFill; // Offset: 496 + keen::UiColor enemyLevelBadgeOutline; // Offset: 504 + keen::ds::FbUiAnimatedHealthBarColors enemyHealthColors; // Offset: 512 + keen::ds::FbUiAnimatedHealthBarColors enemyStaminaColors; // Offset: 560 + keen::UiColor enemyHigherLevelBadgeFill; // Offset: 608 + keen::UiColor enemyHigherLevelBadgeOutline; // Offset: 616 + keen::ds::FbUiAnimatedHealthBarColors enemyHigherLevelHealthColors; // Offset: 624 + keen::ds::FbUiAnimatedHealthBarColors neutralHealthColors; // Offset: 672 + keen::UiColor neutralLevelBadgeFill; // Offset: 720 + keen::UiColor neutralLevelBadgeOutline; // Offset: 728 + keen::ds::FbUiAltarAttentionMarkerAnim altarAttentionMarkerAnim; // Offset: 736 + keen::ds::UiTexture hookshotPullTargetIcon; // Offset: 792 + keen::ds::UiTexture hookshotPullTargetIconLockIn; // Offset: 840 +}; + +struct FbUiHudBuildModeHint { + keen::ds::UiTexture slotArc; // Offset: 0 + keen::ds::UiTexture flashGradient; // Offset: 48 + keen::ds::UiTexture flashMask; // Offset: 96 + keen::UiColor flashColor; // Offset: 144 +}; + +struct FbUiHudTopNotification { + keen::UiColor bgTintColor; // Offset: 0 + keen::UiColor accentColor; // Offset: 8 + keen::float32 barMinWidth; // Offset: 16 + keen::float32 featherWidth; // Offset: 20 + keen::float32 fadeWaveWidth; // Offset: 24 + keen::float32 fadeInFromX; // Offset: 28 + keen::float32 offsetY; // Offset: 32 + keen::float32 offsetYinPlayerMenu; // Offset: 36 +}; + +struct FbUiHudLowHealth { + keen::ds::UiTexture vignette; // Offset: 0 + keen::UiColor vignetteColor; // Offset: 48 + keen::UiColor enterLowHealthFlashColor; // Offset: 56 +}; + +struct FbUiHudFreezing { + keen::ds::UiTexture frostBorderCorner; // Offset: 0 + keen::float32 frostBorderCornerHeightTop; // Offset: 48 + keen::float32 frostBorderCornerHeightBottom; // Offset: 52 + keen::ds::UiTexture frostBorderTop; // Offset: 56 + keen::ds::UiTexture creepInGradientTop; // Offset: 104 + keen::float32 frostBorderHeightTop; // Offset: 152 + keen::ds::UiTexture frostBorderLeft; // Offset: 156 + keen::ds::UiTexture creepInGradientLeft; // Offset: 204 + keen::float32 frostBorderHeightBottom; // Offset: 252 + keen::float32 frostBorderWidthLeftRight; // Offset: 256 + keen::UiColor frostBorderTint; // Offset: 260 + keen::float32 bgBlurCenterYratio; // Offset: 268 + keen::ds::UiTexture bgBlurVignetteTopLeft; // Offset: 272 + keen::ds::UiTexture bgBlurVignetteTop; // Offset: 320 + keen::ds::UiTexture bgBlurVignetteLeft; // Offset: 368 + keen::float32 bgBlurCornerWidth; // Offset: 416 + keen::float32 bgBlurCornerHeightTop; // Offset: 420 + keen::float32 bgBlurCornerHeightBottom; // Offset: 424 + keen::UiColor bgBlurTint; // Offset: 428 + keen::float32 idleAlpha; // Offset: 436 + keen::float2 criticalAlpha; // Offset: 440 +}; + +struct FbUiControlScheme { + keen::ds::UiTexture game; // Offset: 0 + keen::ds::UiTexture build; // Offset: 48 +}; + +struct FbUiHudBarrierUnlock { + keen::float32 backgroundSize; // Offset: 0 + keen::ds::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::ds::UiTexture backgroundOrnament; // Offset: 52 + keen::ds::UiTexture ornamentHighlight; // Offset: 100 + keen::UiColor backgroundColor; // Offset: 148 + keen::UiColor highlightColor; // Offset: 156 + keen::UiColor glowRippleColor; // Offset: 164 + keen::Time lootDelay; // Offset: 176 +}; + +struct FbUiHudMessage { + keen::float32 backgroundSize; // Offset: 0 + keen::ds::UiTexture backgroundOrnamentMask; // Offset: 4 + keen::ds::UiTexture backgroundOrnament; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 100 + keen::float32 badgeSize; // Offset: 108 + keen::UiColor badgeColor; // Offset: 112 + keen::UiColor glowRippleColor; // Offset: 120 + keen::Time messageDelay; // Offset: 128 + keen::Time lootDelay; // Offset: 136 +}; + +struct FbUiHudPartyHealth { + keen::float32 widgetGroupOffsetY; // Offset: 0 + keen::UiColor barFillColor; // Offset: 4 + keen::UiColor barBgColor; // Offset: 12 + keen::float2 barSize; // Offset: 20 + keen::float32 barSpacing; // Offset: 28 +}; + +struct FbUiHudServerPerformance { + keen::Time badPerformanceHintDuration; // Offset: 0 + keen::Time badPerformanceHintInterval; // Offset: 8 + keen::Time criticalPerformanceHintDuration; // Offset: 16 + keen::Time criticalPerformanceHintInterval; // Offset: 24 + keen::UiColor badPerformanceBgColor; // Offset: 32 + keen::UiColor badPerformanceTextColor; // Offset: 40 + keen::UiColor criticalPerformanceBgColor; // Offset: 48 + keen::UiColor criticalPerformanceTextColor; // Offset: 56 +}; + +struct FbUiHudOutOfBound { + keen::UiColor coverColor; // Offset: 0 + keen::ds::UiLocaTagReference messageString; // Offset: 8 + keen::ds::UiCharacterStyle messageStyle; // Offset: 24 + keen::ds::UiCharacterStyle countdownStyle; // Offset: 144 +}; + +struct FbUiHudNightSpeed { + keen::UiColor bgColor; // Offset: 0 + keen::UiColor iconColor; // Offset: 8 + keen::ds::UiTexture sleeper; // Offset: 16 + keen::ds::UiTexture partyMember; // Offset: 64 + keen::ds::UiTexture nightSpeed; // Offset: 112 +}; + +struct FbUiHudGameProgressSummary { + keen::Time visibleDuration; // Offset: 0 + keen::UiColor bgColor; // Offset: 8 + keen::UiColor accentColor; // Offset: 16 + keen::float32 featherWidth; // Offset: 24 + keen::float32 widgetWidth; // Offset: 28 + keen::UiColor contentTintFlame; // Offset: 32 + keen::UiColor contentTintCrafting; // Offset: 40 + keen::ds::UiTexture illustrationFlame; // Offset: 48 + keen::ds::UiTexture illustrationCrafting; // Offset: 96 +}; + +struct FbUiHudMusicBuff { + keen::ds::UiTexture musicIcon; // Offset: 0 + keen::UiColor barBgColor; // Offset: 48 + keen::UiColor barFillColor; // Offset: 56 + keen::UiColor barFillEndColor; // Offset: 64 +}; + +struct FbUiHudAnimalTaming { + keen::ds::UiTexture tamingIconEmpty; // Offset: 0 + keen::ds::UiTexture tamingIconPending; // Offset: 48 + keen::ds::UiTexture tamingIconFull; // Offset: 96 + keen::ds::UiTexture tamingAttention; // Offset: 144 + keen::ds::UiTexture tamingAlert; // Offset: 192 + keen::ds::UiTexture tamingAlertOutline; // Offset: 240 + keen::UiColor tamingIconColor; // Offset: 288 +}; + +struct FbUiItemWheel { + keen::UiColor slotColor_idle; // Offset: 0 + keen::UiColor slotColor_selected; // Offset: 8 + keen::UiColor previewCenterColor; // Offset: 16 + keen::ds::UiTexture background; // Offset: 24 + keen::ds::UiTexture direction; // Offset: 72 + keen::ds::UiTexture dot_selected; // Offset: 120 + keen::ds::UiTexture dot_unselected; // Offset: 168 + keen::ds::UiTexture wheelRing_complete; // Offset: 216 + keen::ds::UiTexture wheelRing_highlight; // Offset: 264 + keen::ds::UiTexture blurredBackgroundMask; // Offset: 312 + keen::UiColor highlightColor; // Offset: 360 + keen::UiColor stickOutOfRangeColor; // Offset: 368 +}; + +struct FbUiCompass { + keen::ds::UiSize baseSize; // Offset: 0 + keen::ds::UiTexture background; // Offset: 8 + keen::ds::UiTexture northBackground; // Offset: 56 + keen::ds::UiTexture north; // Offset: 104 + keen::ds::UiTexture east; // Offset: 152 + keen::ds::UiTexture south; // Offset: 200 + keen::ds::UiTexture west; // Offset: 248 + keen::ds::UiTexture mark; // Offset: 296 + keen::ds::UiTexture player; // Offset: 344 + keen::ds::UiTexture priorityMarker; // Offset: 392 + keen::ds::UiNineSliceTexture fogTimerShape; // Offset: 440 + keen::UiColor fogMeterFill; // Offset: 504 + keen::UiColor fogMeterRange; // Offset: 512 + keen::UiColor fogMeterDrain; // Offset: 520 +}; + +struct FbUiDialog { + keen::UiColor dialogMarkerColor; // Offset: 0 + keen::UiColor floatingBubbleTint; // Offset: 8 + keen::UiColor frostedGlassTint; // Offset: 16 + keen::UiColor textColor; // Offset: 24 +}; + +struct FbUiHUD { + keen::UiBorder screenPosClampingBorderDefault; // Offset: 0 + keen::UiColor widgetBackgroundColor; // Offset: 16 + keen::ds::FbUiCursors cursors; // Offset: 24 + keen::ds::FbUiHudPlayerStatus playerStatus; // Offset: 296 + keen::ds::FbUiItemWheel itemWheel; // Offset: 888 + keen::ds::FbUiHudMessage levelUp; // Offset: 1264 + keen::ds::FbUiHudBarrierUnlock barrierUnlocked; // Offset: 1408 + keen::ds::FbUiHudMessage doorUnlocked; // Offset: 1592 + keen::ds::FbUiHudMessage secretUnlocked; // Offset: 1736 + keen::ds::UiTexture quickItemBackground; // Offset: 1880 + keen::ds::UiTexture equippedItemBackground; // Offset: 1928 + keen::ds::FbUiHudBuildModeHint buildModeHint; // Offset: 1976 + keen::UiColor buildingZoneTooltipOutline; // Offset: 2128 + keen::ds::FbUiHudNightSpeed nightSpeedHint; // Offset: 2136 + keen::ds::FbUiCompass compass; // Offset: 2296 + keen::ds::FbUiAnimatedHealthBarColors bossHealthColors; // Offset: 2824 + keen::ds::FbUiAnimatedHealthBarColors bossStaminaColors; // Offset: 2872 + keen::UiBorder bossBarBorderThickness; // Offset: 2920 + keen::ds::FbUiDialog dialog; // Offset: 2936 + keen::ds::FbUiHUDSpatial spatial; // Offset: 2968 + keen::ds::FbUiHudTopNotification notification; // Offset: 3856 + keen::ds::FbUiHudGameProgressSummary gameProgressSummary; // Offset: 3896 + keen::ds::FbUiHudLowHealth lowHealthVignette; // Offset: 4040 + keen::ds::UiTexture blurVignette; // Offset: 4104 + keen::ds::FbUiHudFreezing freezingVignette; // Offset: 4152 + keen::DsArray freezingWarningTimes; // Offset: 4600 + keen::ds::FbUiHudPartyHealth partyHealth; // Offset: 4640 + keen::ds::FbUiHudOutOfBound outOfBound; // Offset: 4672 + keen::ds::FbUiHudServerPerformance serverPerforamceHint; // Offset: 4936 + keen::ds::FbUiHudMusicBuff musicBuff; // Offset: 5000 + keen::ds::FbUiHudAnimalTaming animalTaming; // Offset: 5072 +}; + +struct FbUiHeadline { + keen::ds::UiNineSliceTexture background; // Offset: 0 + keen::UiColor criticalWarningTextColor; // Offset: 64 +}; + +struct FbUiItemWheelDummy { + keen::ds::UiTexture texture; // Offset: 0 + keen::ds::UiTexture glow; // Offset: 48 +}; + +struct FbUiScreenDeath { + keen::UiColor backgroundColor; // Offset: 0 + keen::ds::UiLocaTagReference normalDeathHeadline; // Offset: 8 + keen::ds::UiLocaTagReference fogDeathHeadline; // Offset: 24 + keen::ds::UiLocaTagReference fogDeathHint; // Offset: 40 + keen::ds::UiLocaTagReference inventoryLossHint; // Offset: 56 + keen::ds::UiLocaTagReference inventoryLostAllHint; // Offset: 72 +}; + +struct FbUiScreen { + keen::ds::UiTexture titleScreenKeyArt; // Offset: 0 + keen::ds::FbUiScreenDeath death; // Offset: 48 + keen::ds::FbUiControlScheme controlScheme; // Offset: 136 +}; + +struct FbUiSoundsMenuGeneric { + keen::ds::SoundContainerReference flameAltarOpen; // Offset: 0 + keen::ds::SoundContainerReference skillTreeOpen; // Offset: 16 + keen::ds::SoundContainerReference loreOpen; // Offset: 32 + keen::ds::SoundContainerReference loreClose; // Offset: 48 + keen::ds::SoundContainerReference signpostOpen; // Offset: 64 + keen::ds::SoundContainerReference signpostClose; // Offset: 80 + keen::ds::SoundContainerReference systemMenuOpen; // Offset: 96 + keen::ds::SoundContainerReference open; // Offset: 112 + keen::ds::SoundContainerReference close; // Offset: 128 + keen::ds::SoundContainerReference back; // Offset: 144 + keen::ds::SoundContainerReference clickNeutral; // Offset: 160 + keen::ds::SoundContainerReference tabChange; // Offset: 176 + keen::ds::SoundContainerReference highlightChange; // Offset: 192 + keen::ds::SoundContainerReference entryTrigger; // Offset: 208 + keen::ds::SoundContainerReference entryCancel; // Offset: 224 + keen::ds::SoundContainerReference entryTriggerFailed; // Offset: 240 + keen::ds::SoundContainerReference sideMenuFadeIn; // Offset: 256 + keen::ds::SoundContainerReference sideMenuFadeOut; // Offset: 272 + keen::ds::SoundContainerReference equip; // Offset: 288 + keen::ds::SoundContainerReference unequip; // Offset: 304 + keen::ds::SoundContainerReference columnChange; // Offset: 320 + keen::ds::SoundContainerReference leftOpen; // Offset: 336 + keen::ds::SoundContainerReference leftClose; // Offset: 352 + keen::ds::SoundContainerReference rightOpen; // Offset: 368 + keen::ds::SoundContainerReference rightClose; // Offset: 384 + keen::ds::SoundContainerReference settingWidgetToggle; // Offset: 400 + keen::ds::SoundContainerReference settingMenuEnter; // Offset: 416 + keen::ds::SoundContainerReference settingMenuExit; // Offset: 432 + keen::ds::SoundContainerReference repairItems; // Offset: 448 + keen::ds::SoundContainerReference textEnter; // Offset: 464 + keen::ds::SoundContainerReference textDelete; // Offset: 480 + keen::ds::SoundContainerReference mouseClickGeneric; // Offset: 496 + keen::ds::SoundContainerReference mouseHover; // Offset: 512 + keen::ds::SoundContainerReference activatePersonalProgression; // Offset: 528 + keen::ds::SoundContainerReference deactivatePersonalProgression; // Offset: 544 + keen::ds::SoundContainerReference sliderValueChange; // Offset: 560 + keen::ds::SoundContainerReference selectDifficulty; // Offset: 576 + keen::Time mouseHoverTimeout; // Offset: 592 +}; + +struct FbUiSoundsMenuCrafting { + keen::ds::SoundContainerReference recipeMoveWithinEntry; // Offset: 0 + keen::ds::SoundContainerReference highlightChange; // Offset: 16 + keen::ds::SoundContainerReference entryTrigger; // Offset: 32 + keen::ds::SoundContainerReference craftingSuccessful; // Offset: 48 + keen::ds::SoundContainerReference craftingFailed; // Offset: 64 + keen::ds::SoundContainerReference pin; // Offset: 80 + keen::ds::SoundContainerReference unpin; // Offset: 96 + keen::ds::SoundContainerReference pinnedRecipeCraftable; // Offset: 112 + keen::ds::SoundContainerReference pinnedRecipeIngredientCompleted; // Offset: 128 + keen::ds::SoundContainerReference perkUnlocked; // Offset: 144 +}; + +struct FbUiSoundsMenuJournal { + keen::ds::SoundContainerReference openTile; // Offset: 0 +}; + +struct FbUiSoundsMenuAltar { + keen::ds::SoundContainerReference highlightChange; // Offset: 0 + keen::ds::SoundContainerReference entryTrigger; // Offset: 16 + keen::ds::SoundContainerReference leave; // Offset: 32 +}; + +struct FbUiSoundsLootAquisition { + keen::ds::SoundContainerReference common; // Offset: 0 + keen::ds::SoundContainerReference uncommon; // Offset: 16 + keen::ds::SoundContainerReference rare; // Offset: 32 + keen::ds::SoundContainerReference epic; // Offset: 48 + keen::ds::SoundContainerReference legendary; // Offset: 64 + keen::ds::SoundContainerReference keyItem; // Offset: 80 + keen::ds::SoundContainerReference specialLoot; // Offset: 96 + keen::ds::SoundContainerReference npc; // Offset: 112 + keen::ds::SoundContainerReference pinnedRecipeHint; // Offset: 128 + keen::ds::SoundContainerReference twitchReward; // Offset: 144 +}; + +struct FbUiSoundsSkillTree { + keen::ds::SoundContainerReference attributeIncrease; // Offset: 0 + keen::ds::SoundContainerReference skillUnlock; // Offset: 16 + keen::ds::SoundContainerReference skillModUnlock; // Offset: 32 + keen::ds::SoundContainerReference passivePerkUnlock; // Offset: 48 + keen::ds::SoundContainerReference reactivePerkUnlock; // Offset: 64 + keen::ds::SoundContainerReference nodeFocus; // Offset: 80 + keen::ds::SoundContainerReference zoomIn; // Offset: 96 + keen::ds::SoundContainerReference zoomOut; // Offset: 112 +}; + +struct FbUiSoundsEventMessages { + keen::ds::SoundContainerReference menuUpdateNotification; // Offset: 0 + keen::ds::SoundContainerReference locationDiscovery; // Offset: 16 + keen::ds::SoundContainerReference npcRevived; // Offset: 32 + keen::ds::SoundContainerReference amuletUpgraded; // Offset: 48 + keen::ds::SoundContainerReference giftingSend; // Offset: 64 + keen::ds::SoundContainerReference giftingReceive; // Offset: 80 + keen::ds::SoundContainerReference clueCompleted; // Offset: 96 + keen::ds::SoundContainerReference playerLevelup; // Offset: 112 + keen::ds::SoundContainerReference flameLevelUp; // Offset: 128 + keen::ds::SoundContainerReference magicBarrierUnlocked; // Offset: 144 + keen::ds::SoundContainerReference doorUnlocked; // Offset: 160 + keen::ds::SoundContainerReference secretDoorUnlocked; // Offset: 176 + keen::ds::SoundContainerReference allMissedQuestsCompleted; // Offset: 192 + keen::ds::SoundContainerReference newTwitchDropUnlocked; // Offset: 208 +}; + +struct FbUiSoundsAdventureMap { + keen::ds::SoundContainerReference waypointSet; // Offset: 0 + keen::ds::SoundContainerReference waypointClear; // Offset: 16 + keen::ds::SoundContainerReference waypointLocate; // Offset: 32 + keen::ds::SoundContainerReference zoomIn; // Offset: 48 + keen::ds::SoundContainerReference zoomOut; // Offset: 64 + keen::ds::SoundContainerReference fastTravelTriggered; // Offset: 80 + keen::ds::SoundContainerReference showOnMap; // Offset: 96 + keen::ds::SoundContainerReference goToHomeBase; // Offset: 112 + keen::ds::SoundContainerReference recenter; // Offset: 128 + keen::ds::SoundContainerReference playerPing; // Offset: 144 +}; + +struct FbUiSoundsDialog { + keen::ds::SoundContainerReference startDialog; // Offset: 0 + keen::ds::SoundContainerReference changeEntry; // Offset: 16 + keen::ds::SoundContainerReference confirmEntry; // Offset: 32 + keen::ds::SoundContainerReference cancelEntry; // Offset: 48 + keen::ds::SoundContainerReference revealDialogLine; // Offset: 64 +}; + +struct FbUiSoundsActionbar { + keen::ds::SoundContainerReference cantUse; // Offset: 0 + keen::ds::SoundContainerReference moveHighlight; // Offset: 16 + keen::ds::SoundContainerReference cycleActionbar; // Offset: 32 +}; + +struct FbUiSoundsBackpack { + keen::ds::SoundContainerReference inventoryFull; // Offset: 0 + keen::ds::SoundContainerReference deleteItem; // Offset: 16 + keen::ds::SoundContainerReference dropItemIntoSlot; // Offset: 32 + keen::ds::SoundContainerReference dropItemIntoActionBar; // Offset: 48 + keen::ds::SoundContainerReference grabItem; // Offset: 64 + keen::ds::SoundContainerReference swapItems; // Offset: 80 + keen::ds::SoundContainerReference splitStack; // Offset: 96 + keen::ds::SoundContainerReference salvageItem; // Offset: 112 + keen::ds::SoundContainerReference sortInventory; // Offset: 128 +}; + +struct FbUiSoundsItemWheel { + keen::ds::SoundContainerReference open; // Offset: 0 + keen::ds::SoundContainerReference close; // Offset: 16 + keen::ds::SoundContainerReference changeHighlight; // Offset: 32 +}; + +struct FbUiSoundsHud { + keen::ds::SoundContainerReference lowHealthLoop; // Offset: 0 + keen::ds::SoundContainerReference enterFog; // Offset: 16 + keen::Time enterFogTimeout; // Offset: 32 + keen::ds::SoundContainerReference enterDangerousFog; // Offset: 40 + keen::ds::SoundContainerReference enterFreeze; // Offset: 56 + keen::ds::SoundContainerReference freezeWarning; // Offset: 72 + keen::ds::SoundContainerReference freezeResistanceDepleted; // Offset: 88 + keen::ds::SoundContainerReference flameReminder; // Offset: 104 + keen::ds::SoundContainerReference flameLow; // Offset: 120 + keen::ds::SoundContainerReference flameVeryLow; // Offset: 136 + keen::ds::SoundContainerReference flameDepleted; // Offset: 152 + keen::ds::SoundContainerReference flameLowLoop; // Offset: 168 + keen::ds::SoundContainerReference manaInsufficient; // Offset: 184 + keen::Time manaInsufficientTimeout; // Offset: 200 + keen::ds::SoundContainerReference staminaInsufficient; // Offset: 208 + keen::Time staminaInsufficientTimeout; // Offset: 224 + keen::ds::SoundContainerReference ammoChanged; // Offset: 232 + keen::ds::SoundContainerReference buildActionFailed; // Offset: 248 + keen::Time buildActionFailedTimeout; // Offset: 264 + keen::ds::SoundContainerReference buildUndoSuccessful; // Offset: 272 + keen::ds::SoundContainerReference buildInvMaximize; // Offset: 288 + keen::ds::SoundContainerReference buildInvMinimize; // Offset: 304 + keen::ds::SoundContainerReference buildModeEnter; // Offset: 320 + keen::ds::SoundContainerReference buildModeExit; // Offset: 336 + keen::ds::SoundContainerReference musicBuffProgressed; // Offset: 352 +}; + +struct FbUiSoundsTitleScreen { + keen::ds::SoundContainerReference backgroundMusic; // Offset: 0 + keen::ds::SoundContainerReference startTrigger; // Offset: 16 +}; + +struct FbUiSounds { + keen::ds::SoundContainerReference test; // Offset: 0 + keen::ds::FbUiSoundsTitleScreen titleScreen; // Offset: 16 + keen::ds::FbUiSoundsEventMessages events; // Offset: 48 + keen::ds::FbUiSoundsMenuGeneric menu; // Offset: 272 + keen::ds::FbUiSoundsMenuCrafting crafting; // Offset: 872 + keen::ds::FbUiSoundsMenuJournal journal; // Offset: 1032 + keen::ds::FbUiSoundsMenuAltar altar; // Offset: 1048 + keen::ds::FbUiSoundsSkillTree skilltree; // Offset: 1096 + keen::ds::FbUiSoundsLootAquisition lootGet; // Offset: 1224 + keen::ds::FbUiSoundsAdventureMap map; // Offset: 1384 + keen::ds::FbUiSoundsDialog dialog; // Offset: 1544 + keen::ds::FbUiSoundsItemWheel itemWheel; // Offset: 1624 + keen::ds::FbUiSoundsHud hud; // Offset: 1672 + keen::ds::FbUiSoundsActionbar actionbar; // Offset: 2040 + keen::ds::FbUiSoundsBackpack backpack; // Offset: 2088 +}; + +struct FbUiHudCharacterStyles { + keen::ds::UiCharacterStyle celebrationMain; // Offset: 0 + keen::ds::UiCharacterStyle celebrationLevelNumber; // Offset: 120 + keen::ds::UiCharacterStyle specialLootMain; // Offset: 240 + keen::ds::UiCharacterStyle specialLootSecondary; // Offset: 360 + keen::ds::UiCharacterStyle enemyDamagePoint; // Offset: 480 + keen::ds::UiCharacterStyle enemyDamageBonusText; // Offset: 600 + keen::ds::UiCharacterStyle healingDamagePoint; // Offset: 720 + keen::ds::UiCharacterStyle playerDamagePoint; // Offset: 840 + keen::ds::UiCharacterStyle immuneDamagePoint; // Offset: 960 + keen::ds::UiCharacterStyle restoreManaPoint; // Offset: 1080 + keen::ds::UiCharacterStyle playerName; // Offset: 1200 + keen::ds::UiCharacterStyle enemyName; // Offset: 1320 + keen::ds::UiCharacterStyle bossName; // Offset: 1440 + keen::ds::UiCharacterStyle ammoListEntry; // Offset: 1560 + keen::ds::UiCharacterStyle staminaInfo; // Offset: 1680 + keen::ds::UiCharacterStyle compassMarkerDistance; // Offset: 1800 + keen::ds::UiCharacterStyle compassWayointMessage; // Offset: 1920 + keen::ds::UiCharacterStyle compassFogTimer; // Offset: 2040 + keen::ds::UiCharacterStyle compassFogTypeLabel; // Offset: 2160 + keen::ds::UiCharacterStyle compassLeaveFogWarning; // Offset: 2280 + keen::ds::UiCharacterStyle nightSpeedHint; // Offset: 2400 +}; + +struct FbUiMenuCharacterStyles { + keen::ds::UiCharacterStyle topTab; // Offset: 0 + keen::ds::UiCharacterStyle header1; // Offset: 120 + keen::ds::UiCharacterStyle header2; // Offset: 240 + keen::ds::UiCharacterStyle header3; // Offset: 360 + keen::ds::UiCharacterStyle buttonHint; // Offset: 480 + keen::ds::UiCharacterStyle textfieldEmptyHint; // Offset: 600 +}; + +struct FbUiMapCharacterStyles { + keen::ds::UiCharacterStyle playerName; // Offset: 0 + keen::ds::UiCharacterStyle locationName; // Offset: 120 + keen::ds::UiCharacterStyle clusterSizeNumber; // Offset: 240 + keen::ds::UiCharacterStyle markerLabel; // Offset: 360 + keen::ds::UiCharacterStyle tooltip; // Offset: 480 +}; + +struct FbUiFontSizes { + keen::DsArray textScaleSteps; // Offset: 0 + keen::float32 xsmall; // Offset: 40 + keen::float32 small; // Offset: 44 + keen::float32 medium; // Offset: 48 + keen::float32 large; // Offset: 52 + keen::float32 xlarge; // Offset: 56 + keen::float32 caps_small; // Offset: 60 + keen::float32 caps_medium; // Offset: 64 + keen::float32 caps_large; // Offset: 68 + keen::float32 caps_xlarge; // Offset: 72 +}; + +struct FbUiCharacterStyles { + keen::ds::UiCharacterStyle defaultStyle; // Offset: 0 + keen::ds::UiCharacterStyle defaultStyleOutline; // Offset: 120 + keen::ds::UiCharacterStyle secondaryText; // Offset: 240 + keen::ds::UiCharacterStyle mutedItalic; // Offset: 360 + keen::ds::UiCharacterStyle redText; // Offset: 480 + keen::ds::UiCharacterStyle greenText; // Offset: 600 + keen::ds::UiCharacterStyle h1; // Offset: 720 + keen::ds::UiCharacterStyle h2; // Offset: 840 + keen::ds::UiCharacterStyle h3; // Offset: 960 + keen::ds::UiCharacterStyle legalText; // Offset: 1080 + keen::ds::UiCharacterStyle warning; // Offset: 1200 + keen::ds::UiCharacterStyle hyperlink; // Offset: 1320 + keen::ds::UiCharacterStyle location; // Offset: 1440 + keen::ds::UiCharacterStyle npc; // Offset: 1560 + keen::ds::UiCharacterStyle craftingstation; // Offset: 1680 + keen::ds::UiCharacterStyle keyitem; // Offset: 1800 + keen::ds::UiCharacterStyle lorename; // Offset: 1920 + keen::ds::UiCharacterStyle impactAttribute; // Offset: 2040 + keen::ds::UiCharacterStyle textChatSpeakerNameSelf; // Offset: 2160 + keen::ds::UiCharacterStyle textChatSpeakerNameOther; // Offset: 2280 + keen::ds::UiCharacterStyle textChatMessage; // Offset: 2400 + keen::ds::FbUiHudCharacterStyles hud; // Offset: 2520 + keen::ds::FbUiMenuCharacterStyles menu; // Offset: 5040 + keen::ds::FbUiMapCharacterStyles map; // Offset: 5760 + keen::ds::UiCharacterStyle keyboardLegend; // Offset: 6360 + keen::ds::UiCharacterStyle versionWatermark; // Offset: 6480 + keen::ds::UiCharacterStyle versionWatermarkSecondLine; // Offset: 6600 +}; + +struct FbUiParagraphStyles { + keen::ds::UiParagraphStyle hudDefault; // Offset: 0 + keen::ds::UiParagraphStyle test; // Offset: 64 +}; + +struct FbUiScrollingLayouts { +}; + +struct Curve { + keen::uint32 sampleCount; // Offset: 0 +}; + +typedef keen::UiPosition UiPosition; + +struct UiTestTypes { + keen::ds::string type_string; // Offset: 0 + keen::float2 type_float2; // Offset: 40 + keen::float3 type_float3; // Offset: 48 + keen::uint32 type_uint32; // Offset: 60 + keen::bool type_bool; // Offset: 64 + keen::Color type_Color; // Offset: 68 + keen::ds::SoundContainerReference type_SoundContainerReference; // Offset: 72 + keen::ds::Curve type_Curve; // Offset: 88 + keen::ds::UiTexture type_UiTexture; // Offset: 92 + keen::ds::UiPosition type_UiPosition; // Offset: 140 + keen::ds::UiSize type_UiSize; // Offset: 148 + keen::UiColor type_UiColor; // Offset: 156 +}; + +typedef keen::GameUiTextLayoutStyle GameUiTextLayoutStyle; + +struct GameUiTextParameterData { + keen::ds::string characterStyle; // Offset: 0 + keen::ds::string paragraphStyle; // Offset: 40 + keen::float2 offset; // Offset: 80 + keen::float2 stretch; // Offset: 88 + keen::UiAlignment alignment; // Offset: 96 + keen::UiBorder margin; // Offset: 100 + keen::UiBorder padding; // Offset: 116 + keen::Time revealTime; // Offset: 136 + keen::ds::GameUiTextLayoutStyle textLayoutStyle; // Offset: 144 + keen::bool allowLineBreak; // Offset: 145 +}; + +typedef keen::GameUiImageSizing GameUiImageSizing; + +struct GameUiImageParameterData { + keen::ds::GameUiImageSizing sizing; // Offset: 0 + keen::float32 alpha; // Offset: 4 + keen::UiColor color; // Offset: 8 + keen::float2 offset; // Offset: 16 + keen::float2 stretch; // Offset: 24 + keen::UiBorder margin; // Offset: 32 + keen::UiBorder padding; // Offset: 48 +}; + +struct FbUiTestParameters { + keen::ds::UiTestTypes _types; // Offset: 0 + keen::ds::FbUiScrollingLayouts scrollingLayouts; // Offset: 168 + keen::ds::GameUiTextParameterData testTextParameter; // Offset: 176 + keen::ds::GameUiImageParameterData testImageParameter; // Offset: 328 + keen::ds::UiNineSliceTexture testNineSliceTexture; // Offset: 392 + keen::UiBorder testNineSliceScreenBorder; // Offset: 456 + keen::Time durationTextTestTime; // Offset: 472 + keen::bool durationTextShowOnlyBiggestTimeUnit; // Offset: 480 + keen::bool durationTextUseLocalizedUnits; // Offset: 481 + keen::bool durationTextUseThirdNumber; // Offset: 482 + keen::uint8 durationTextSubSecondDigits; // Offset: 483 +}; + +struct FbUiRarityColors { + keen::UiColor undefined; // Offset: 0 + keen::UiColor common; // Offset: 8 + keen::UiColor uncommon; // Offset: 16 + keen::UiColor rare; // Offset: 24 + keen::UiColor epic; // Offset: 32 + keen::UiColor legendary; // Offset: 40 + keen::UiColor vanity; // Offset: 48 + keen::UiColor collectible; // Offset: 56 + keen::float32 vanityTextColorIntensity; // Offset: 64 +}; + +struct FbUiNetworkQualityColors { + keen::UiColor good; // Offset: 0 + keen::UiColor acceptable; // Offset: 8 + keen::UiColor bad; // Offset: 16 +}; + +struct FbUiGlobalColors { + keen::ds::FbUiRarityColors rarity; // Offset: 0 + keen::UiColor priorityColor; // Offset: 68 + keen::UiColor priorityBgColor; // Offset: 76 + keen::UiColor attentionColor; // Offset: 84 + keen::UiColor checkmarkGreen; // Offset: 92 + keen::UiColor warningColor; // Offset: 100 + keen::UiColor warningColorBackground; // Offset: 108 + keen::UiColor warningColorFrostedGlassTint; // Offset: 116 + keen::UiColor attributeBetterColor; // Offset: 124 + keen::UiColor attributeWorseColor; // Offset: 132 + keen::ds::FbUiNetworkQualityColors networkQuality; // Offset: 140 +}; + +struct FbUiFrostedGlassParameters { + keen::uint32 downsampleSteps; // Offset: 0 + keen::float32 sigma; // Offset: 4 + keen::ObjectReference colorGradingMap; // Offset: 8 + keen::bool colorGradeBeforeBlur; // Offset: 24 +}; + +struct FbUiStartUpLogo { + keen::ds::UiTexture image; // Offset: 0 + keen::float32 height; // Offset: 48 + keen::ds::SoundContainerReference sound; // Offset: 52 + keen::UiColor backgroundColor; // Offset: 68 +}; + +struct FbUiStartUpLogoSequence { + keen::Time logoFadeDuration; // Offset: 0 + keen::Time logoIdleDuration; // Offset: 8 + keen::ds::FbUiStartUpLogo keenLogo; // Offset: 16 + keen::ds::FbUiStartUpLogo bmwiLogo; // Offset: 92 + keen::Time postLogoDelay; // Offset: 168 + keen::Time mainMenuFadeInDuration; // Offset: 176 +}; + +struct FbUiPreGameCharacterViews { + keen::ds::FbUiCharacterView mainMenu; // Offset: 0 + keen::ds::FbUiCharacterView postMainMenu; // Offset: 28 + keen::ds::FbUiCharacterView savePortrait; // Offset: 56 +}; + +struct FbUiCustomizationHairColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationSkinColors { + keen::UiColor african_1; // Offset: 0 + keen::UiColor african_2; // Offset: 8 + keen::UiColor asian_1; // Offset: 16 + keen::UiColor caucasian_1; // Offset: 24 + keen::UiColor caucasian_2; // Offset: 32 + keen::UiColor caucasian_3; // Offset: 40 + keen::UiColor mixed_1; // Offset: 48 + keen::UiColor mixed_2; // Offset: 56 +}; + +struct FbUiCustomizationEyeColors { + keen::UiColor blue; // Offset: 0 + keen::UiColor brightBrown; // Offset: 8 + keen::UiColor brown; // Offset: 16 + keen::UiColor green; // Offset: 24 + keen::UiColor grey; // Offset: 32 +}; + +struct FbUiCustomizationEyeBrowColors { + keen::UiColor brightBlonde; // Offset: 0 + keen::UiColor blonde; // Offset: 8 + keen::UiColor red; // Offset: 16 + keen::UiColor brightBrown; // Offset: 24 + keen::UiColor brown; // Offset: 32 + keen::UiColor black; // Offset: 40 + keen::UiColor grey; // Offset: 48 + keen::UiColor white; // Offset: 56 +}; + +struct FbUiCustomizationTabIcons { + keen::ds::UiTexture iconBodytype; // Offset: 0 + keen::ds::UiTexture iconHair; // Offset: 48 + keen::ds::UiTexture iconBeard; // Offset: 96 + keen::ds::UiTexture iconVoice; // Offset: 144 + keen::ds::UiTexture iconName; // Offset: 192 + keen::ds::UiTexture iconPlay; // Offset: 240 + keen::ds::UiTexture iconHairColor; // Offset: 288 + keen::ds::UiTexture iconBeardColor; // Offset: 336 + keen::ds::UiTexture iconEyeColor; // Offset: 384 + keen::ds::UiTexture iconEyeBrowColor; // Offset: 432 + keen::ds::UiTexture iconSkinColor; // Offset: 480 +}; + +struct FbUiCharacterCustomization { + keen::ds::FbUiCustomizationHairColors hairColors; // Offset: 0 + keen::ds::FbUiCustomizationSkinColors skinColors; // Offset: 64 + keen::ds::FbUiCustomizationEyeColors eyeColors; // Offset: 128 + keen::ds::FbUiCustomizationEyeBrowColors eyeBrowColors; // Offset: 168 + keen::ds::FbUiCustomizationTabIcons tabIcons; // Offset: 232 + keen::ds::UiTexture widgetSelector; // Offset: 760 + keen::ds::UiTexture voicePreview1; // Offset: 808 + keen::ds::UiTexture voicePreview2; // Offset: 856 +}; + +struct FbUiPreGame { + keen::ds::FbUiStartUpLogoSequence startUpSequence; // Offset: 0 + keen::Time startGameFadeOutDuration; // Offset: 184 + keen::ds::UiTexture titleScreenKeyArt; // Offset: 192 + keen::ds::UiTexture mainMenuLogo; // Offset: 240 + keen::UiBorder mainMenuPadding; // Offset: 288 + keen::float32 logoHeight; // Offset: 304 + keen::float32 backgroundScale; // Offset: 308 + keen::float32 backgroundNormalizedOffsetX; // Offset: 312 + keen::float32 backgroundNormalizedOffsetY; // Offset: 316 + keen::ds::UiTexture mainMenuEntryHighlightBackground; // Offset: 320 + keen::ds::UiTexture joinTileBg; // Offset: 368 + keen::ds::UiTexture hostPublicTileBg; // Offset: 416 + keen::ds::UiTexture privateTileBg; // Offset: 464 + keen::ds::FbUiPreGameCharacterViews characterViews; // Offset: 512 + keen::ds::FbUiCharacterCustomization characterCustomization; // Offset: 596 + keen::ds::UiTexture menuEntryHighlightBackground; // Offset: 1500 + keen::ds::UiTexture logoGPortal; // Offset: 1548 + keen::UiColor dedicatedServerColor; // Offset: 1596 + keen::UiColor friendServerColor; // Offset: 1604 +}; + +typedef keen::FbUiCreditsItemType FbUiCreditsItemType; + +struct FbUiCreditItemImage { + keen::DsString identifier; // Offset: 0 + keen::ds::UiTexture texture; // Offset: 40 + keen::UiColor color; // Offset: 88 + keen::ds::UiSize imageSize; // Offset: 96 +}; + +struct FbUiCreditImageRepository { +}; + +struct FbUiCreditsItem { + keen::ds::FbUiCreditsItemType itemType; // Offset: 0 + keen::ds::string text; // Offset: 8 + keen::ds::FbUiCreditItemImage image; // Offset: 48 +}; + +struct FbUiCreditStyle { + keen::ds::UiCharacterStyle style; // Offset: 0 + keen::float32 fontSize; // Offset: 120 + keen::float32 topSpacer; // Offset: 124 +}; + +struct FbUiCreditStyles { + keen::ds::FbUiCreditStyle h1; // Offset: 0 + keen::ds::FbUiCreditStyle h2; // Offset: 128 + keen::ds::FbUiCreditStyle h3; // Offset: 256 + keen::ds::FbUiCreditStyle text; // Offset: 384 +}; + +struct FbUiCredits { + keen::DsArray items; // Offset: 0 + keen::ds::UiLocaTagReference text; // Offset: 40 + keen::ds::UiLocaTagReference creditEndText; // Offset: 56 + keen::ds::FbUiCreditStyles creditStyles; // Offset: 72 + keen::float32 scrollSpeed; // Offset: 584 + keen::float32 gamepadScrollSpeed; // Offset: 588 +}; + +struct FbUiKnowledgeRequirement { + keen::ds::GameKnowledgeTrigger trigger; // Offset: 0 + keen::ds::KnowledgeId triggerId; // Offset: 56 +}; + +struct FbUiTutorialKnowledge { + keen::ds::FbUiKnowledgeRequirement quickbuilder; // Offset: 0 + keen::ds::FbUiKnowledgeRequirement summoningStaff; // Offset: 60 + keen::ds::FbUiKnowledgeRequirement crafting; // Offset: 120 + keen::ds::FbUiKnowledgeRequirement factory; // Offset: 180 + keen::ds::FbUiKnowledgeRequirement enhancing; // Offset: 240 + keen::ds::FbUiKnowledgeRequirement cooking; // Offset: 300 + keen::ds::FbUiKnowledgeRequirement actionbar; // Offset: 360 + keen::ds::FbUiKnowledgeRequirement storage; // Offset: 420 + keen::ds::FbUiKnowledgeRequirement taming; // Offset: 480 + keen::ds::FbUiKnowledgeRequirement happyNpcRequirement; // Offset: 540 +}; + +struct FbUiKnowledge { + keen::ds::FbUiTutorialKnowledge tutorial; // Offset: 0 +}; + +struct SystemErrorMessages { + keen::ds::UiLocaTagReference waitingForProcess; // Offset: 0 + keen::ds::UiLocaTagReference noInputDevice; // Offset: 16 + keen::ds::UiLocaTagReference connectFailed; // Offset: 32 + keen::ds::UiLocaTagReference connectionLost; // Offset: 48 + keen::ds::UiLocaTagReference newVersionRequired; // Offset: 64 + keen::ds::UiLocaTagReference playerNotSignedIn; // Offset: 80 + keen::ds::UiLocaTagReference playerNoPrivileges; // Offset: 96 + keen::ds::UiLocaTagReference playerNoMultiplayerEntitlement; // Offset: 112 + keen::ds::UiLocaTagReference createGameFailed; // Offset: 128 + keen::ds::UiLocaTagReference joinGameFailed; // Offset: 144 + keen::ds::UiLocaTagReference joinGameFailed_NotFound; // Offset: 160 + keen::ds::UiLocaTagReference joinGameFailed_Full; // Offset: 176 + keen::ds::UiLocaTagReference joinGameFailed_Reserved; // Offset: 192 + keen::ds::UiLocaTagReference joinGameFailed_WrongPassword; // Offset: 208 + keen::ds::UiLocaTagReference joinGameFailed_WrongPasswordCooldown; // Offset: 224 + keen::ds::UiLocaTagReference sessionFailed; // Offset: 240 + keen::ds::UiLocaTagReference joinPlayerFailed; // Offset: 256 + keen::ds::UiLocaTagReference kicked; // Offset: 272 + keen::ds::UiLocaTagReference saveGameCorrupt; // Offset: 288 + keen::ds::UiLocaTagReference settingsCorrupt; // Offset: 304 + keen::ds::UiLocaTagReference eraseFailed; // Offset: 320 + keen::ds::UiLocaTagReference notEnoughSpace; // Offset: 336 + keen::ds::UiLocaTagReference createFailed; // Offset: 352 + keen::ds::UiLocaTagReference readError; // Offset: 368 + keen::ds::UiLocaTagReference writeError; // Offset: 384 +}; + +struct SystemErrorResponses { + keen::ds::UiLocaTagReference retry; // Offset: 0 + keen::ds::UiLocaTagReference disable; // Offset: 16 + keen::ds::UiLocaTagReference erase; // Offset: 32 + keen::ds::UiLocaTagReference reset; // Offset: 48 + keen::ds::UiLocaTagReference deviceSelection; // Offset: 64 + keen::ds::UiLocaTagReference overwrite; // Offset: 80 + keen::ds::UiLocaTagReference cancel; // Offset: 96 + keen::ds::UiLocaTagReference ok; // Offset: 112 +}; + +struct SystemErrorLoca { + keen::ds::SystemErrorMessages errors; // Offset: 0 + keen::ds::SystemErrorResponses responses; // Offset: 400 + keen::ds::UiLocaTagReference errorTitleWarning; // Offset: 528 +}; + +typedef keen::DefaultServerRoleType DefaultServerRoleType; + +struct FbUiServerRoleSettings { + keen::DsArray defaultServerRoles; // Offset: 0 + keen::DsArray serverRoleIcons; // Offset: 40 +}; + +struct FbUiServerRole { + keen::ds::DefaultServerRoleType type; // Offset: 0 + keen::ds::UiLocaTagReference roleName; // Offset: 4 + keen::ds::PlayerPermissionsMask permissions; // Offset: 20 +}; + +struct FbUiLoreSlide { + keen::ds::UiTexture slideImage; // Offset: 0 + keen::ds::UiLocaTagReference slideText; // Offset: 48 + keen::bool useTextBackground; // Offset: 64 + keen::UiVector startOffset; // Offset: 68 + keen::UiVector endOffset; // Offset: 76 + keen::float32 startScale; // Offset: 84 + keen::float32 endScale; // Offset: 88 + keen::float32 slideDuration; // Offset: 92 + keen::float32 textStartDelay; // Offset: 96 + keen::float32 textAnimDuration; // Offset: 100 + keen::float32 fadeInDuration; // Offset: 104 + keen::float32 fadeOutDuration; // Offset: 108 + keen::UiColor fadeInColor; // Offset: 112 + keen::UiColor fadeOutColor; // Offset: 120 +}; + +struct FbUiLogos { + keen::DsArray creditsLogos; // Offset: 0 + keen::ds::UiTexture enshrouded_TraditionalChinese; // Offset: 40 + keen::ds::UiTexture enshrouded_SimplifiedChinese; // Offset: 88 + keen::ds::UiTexture enshrouded_Japanese; // Offset: 136 + keen::ds::UiTexture enshrouded_Korean; // Offset: 184 +}; + +struct FbUiLoreIntro { + keen::DsArray allSlides; // Offset: 0 + keen::ds::UiCharacterStyle textStyle; // Offset: 40 + keen::ds::UiNineSliceTexture slideBorder; // Offset: 160 +}; + +struct UiBundle { + keen::ds::UiTexturePreload texturePreload; // Offset: 0 + keen::DsArray characterStyles; // Offset: 40 + keen::DsArray paragraphStyles; // Offset: 80 +}; + +struct FbUiBundle { + keen::ds::FbUiLocaLinks locatags; // Offset: 120 + keen::ds::FbUiSocialLogos socialLogos; // Offset: 26032 + keen::ds::FbUiLogos logos; // Offset: 26320 + keen::ds::FbUiGenericIcons genericIcons; // Offset: 26552 + keen::ds::FbUiGamepadButtonSets gamepadButtons; // Offset: 29528 + keen::ds::FbUiKeyboardKeys keyboardKeys; // Offset: 34720 + keen::ds::FbUiKeyboardKeyLegends keyboardKeyLegends; // Offset: 34832 + keen::ds::FbUiMouseHints mouseHints; // Offset: 35024 + keen::ds::FbUiPrimitives primitives; // Offset: 35696 + keen::ds::FbUiLoadingSymbol loading; // Offset: 36928 + keen::ds::FbUiGlobalColors globalColors; // Offset: 36940 + keen::ds::FbUiPreGame preGame; // Offset: 37104 + keen::ds::FbUiHUD hud; // Offset: 38720 + keen::ds::FbUiMenu menu; // Offset: 44088 + keen::ds::FbUiCustomization customization; // Offset: 55880 + keen::ds::FbUiKnowledge knowledge; // Offset: 56408 + keen::ds::FbUiItemSlot itemSlot; // Offset: 57008 + keen::ds::FbUiBuffIcons buffIcons; // Offset: 59016 + keen::ds::FbUiScreen screen; // Offset: 59248 + keen::ds::FbUiHeadline headline; // Offset: 59480 + keen::ds::FbUiFontSizes fontSizes; // Offset: 59552 + keen::ds::FbUiCharacterStyles namedStyles; // Offset: 59632 + keen::ds::FbUiParagraphStyles namedParagraphStyles; // Offset: 66352 + keen::ds::FbUiSounds sounds; // Offset: 66480 + keen::ds::FbUiTestParameters testParameters; // Offset: 68712 + keen::ds::FbUiFrostedGlassParameters frostedGlass; // Offset: 69200 + keen::ds::SystemErrorLoca systemErrors; // Offset: 69228 + keen::ds::FbUiServerRoleSettings serverRoleSettings; // Offset: 69776 + keen::ds::FbUiDifficultySettings difficultySettings; // Offset: 69856 + keen::ds::UiTexture noRtxWarning; // Offset: 72776 + keen::ds::FbUiCredits credits; // Offset: 72824 + keen::ds::FbUiLoreIntro loreIntro; // Offset: 73416 + keen::DsArray worldEvents; // Offset: 73640 +}; + +struct FbUiMap { + keen::ObjectReference scene; // Offset: 0 + keen::float32 isolineSpacing; // Offset: 16 + keen::ObjectReference baseGradient; // Offset: 20 + keen::ObjectReference isolineGradient; // Offset: 36 + keen::ObjectReference fogNoise; // Offset: 52 + keen::uint8 fogZoneBorderSdfDistance; // Offset: 68 + keen::ObjectReference fogZoneBorderGradient; // Offset: 72 + keen::ObjectReference fogZoneTextureNormal; // Offset: 88 + keen::ObjectReference fogZoneTextureDangerous; // Offset: 104 +}; + +struct FbUiTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint8 levelCount; // Offset: 4 + keen::PixelFormat format; // Offset: 5 + keen::TextureType type; // Offset: 6 + keen::ContentHash data; // Offset: 8 + keen::ds::string debugName; // Offset: 24 +}; + +struct FbUiMapResource { + keen::float32 tileSize; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::float2 normalizedTileSize; // Offset: 12 + keen::ds::FbUiTexture baseGradientTexture; // Offset: 24 + keen::ds::FbUiTexture isolineGradientTexture; // Offset: 88 + keen::ds::FbUiTexture fogZoneBorderGradientTexture; // Offset: 152 + keen::ds::FbUiTexture fogNoiseTexture; // Offset: 216 + keen::ds::FbUiTexture fogZoneTextureNormal; // Offset: 280 + keen::ds::FbUiTexture fogZoneTextureDangerous; // Offset: 344 +}; + +struct FbUiMapTileResource { + keen::ds::FbUiTexture mapTexture; // Offset: 0 +}; + +typedef keen::FatalErrorId FatalErrorId; + +struct GameBenchmarkSampleZone { + keen::ds::string name; // Offset: 0 + keen::ds::string valueName; // Offset: 40 + keen::Time minDuration; // Offset: 80 + keen::Time maxDuration; // Offset: 88 + keen::Time averageDuration; // Offset: 96 + keen::uint64 minValue; // Offset: 104 + keen::uint64 maxValue; // Offset: 112 + keen::uint64 averageValue; // Offset: 120 + keen::uint32 sampleCount; // Offset: 128 +}; + +struct GameBenchmarkSample { + keen::uint16 frameCount; // Offset: 0 + keen::Time sampleTime; // Offset: 8 + keen::DsArray zones; // Offset: 16 +}; + +struct GameBenchmarkPlace { + keen::float3 position; // Offset: 0 + keen::HashKey32 instanceHash; // Offset: 12 + keen::DsArray samples; // Offset: 16 + keen::Guid guid; // Offset: 56 +}; + +struct GameBenchmarkResource { + keen::ds::string description; // Offset: 0 + keen::ds::string bauPath; // Offset: 40 + keen::ContentHash hash; // Offset: 80 +}; + +struct GameBenchmarkResult { + keen::ds::string name; // Offset: 0 + keen::ds::string author; // Offset: 40 + keen::ds::string machine; // Offset: 80 + keen::ds::string engineVersion; // Offset: 120 + keen::CalendarTimeStamp date; // Offset: 160 + keen::DsArray resources; // Offset: 168 + keen::DsArray places; // Offset: 208 +}; + +typedef keen::GameFrameworkWindowType GameFrameworkWindowType; + +struct GameFrameworkGraphicsConfig { + keen::StaticArray apiName; // Offset: 0 + keen::ds::GameFrameworkWindowType windowType; // Offset: 128 + keen::sint32 windowPosX; // Offset: 132 + keen::sint32 windowPosY; // Offset: 136 + keen::uint32 windowSizeX; // Offset: 140 + keen::uint32 windowSizeY; // Offset: 144 + keen::uint32 presentationInterval; // Offset: 148 +}; + +struct GameFrameworkConfig { + keen::ds::GameFrameworkGraphicsConfig graphics; // Offset: 0 +}; + +typedef keen::GameUiAxis GameUiAxis; + +typedef keen::GameUiFrameLayout GameUiFrameLayout; + +typedef keen::GameUiScrollingSliderStyle GameUiScrollingSliderStyle; + +typedef keen::GameUiScrollingHotkeyFlag GameUiScrollingHotkeyFlag; + +typedef keen::GameUiMouseDragInputFlag GameUiMouseDragInputFlag; + +typedef keen::GameUiMouseDragInputMask GameUiMouseDragInputMask; + +typedef keen::GameUiScrollingKeyMask GameUiScrollingKeyMask; + +struct GameUiScrollbarParameterData { + keen::ds::GameUiAxis direction; // Offset: 0 + keen::UiColor rangeRectColor; // Offset: 4 + keen::UiColor sliderIdleColor; // Offset: 12 + keen::UiColor sliderHoverColor; // Offset: 20 + keen::UiColor sliderOutlineColor; // Offset: 28 + keen::ds::UiNineSliceTexture rangeTexture; // Offset: 36 + keen::ds::UiNineSliceTexture sliderTexture; // Offset: 100 + keen::ds::UiTexture sliderGripTexture; // Offset: 164 + keen::ds::GameUiScrollingSliderStyle sliderStyle; // Offset: 212 + keen::float32 sliderIdleWidth; // Offset: 216 + keen::float32 sliderHoverWidth; // Offset: 220 + keen::float32 baseWidth; // Offset: 224 + keen::float32 rangeTextureWidth; // Offset: 228 + keen::bool useInverseRangeRect; // Offset: 232 + keen::bool useGlobalFocus; // Offset: 233 + keen::bool enableDrag; // Offset: 234 + keen::bool enableTouchDrag; // Offset: 235 + keen::bool forceScrollbar; // Offset: 236 + keen::ds::UiPosition offset; // Offset: 240 + keen::UiBorder padding; // Offset: 248 + keen::UiBorder sliderMargin; // Offset: 264 +}; + +struct GameUiScrollingLayoutParameterData { + keen::UiColor borderColor; // Offset: 0 + keen::ds::UiTexture scrollHintTexture; // Offset: 8 + keen::UiBorder padding; // Offset: 56 + keen::UiAlignment scrollbarAlignment; // Offset: 72 + keen::bool showScrollHint; // Offset: 74 + keen::bool enableScrollbar; // Offset: 75 + keen::bool useNavigation; // Offset: 76 + keen::bool stealCapture; // Offset: 77 + keen::bool doScissorWhenScrolling; // Offset: 78 + keen::bool centerChildren; // Offset: 79 + keen::bool enableDrag; // Offset: 80 + keen::bool forceScrollbar; // Offset: 81 + keen::bool useGlobalFocus; // Offset: 82 + keen::bool useFillerSeperatorLineDistance; // Offset: 83 + keen::bool consumeInput; // Offset: 84 + keen::bool useAutoScrolling; // Offset: 85 + keen::float32 fillerSeperatorLineDistance; // Offset: 88 + keen::float32 spacing; // Offset: 92 + keen::ds::GameUiScrollingKeyMask scrollingHotKeyMask; // Offset: 96 + keen::ds::GameUiMouseDragInputMask mouseDragInputMask; // Offset: 97 + keen::ds::GameUiScrollbarParameterData scrollBar; // Offset: 100 +}; + +struct SlotJointMapping { + keen::ds::string head; // Offset: 0 + keen::ds::string chest; // Offset: 40 + keen::ds::string pelvis; // Offset: 80 + keen::ds::string footL; // Offset: 120 + keen::ds::string footR; // Offset: 160 + keen::ds::string footRL; // Offset: 200 + keen::ds::string footRR; // Offset: 240 + keen::ds::string handR; // Offset: 280 + keen::ds::string handL; // Offset: 320 + keen::ds::string kneeR; // Offset: 360 + keen::ds::string kneeL; // Offset: 400 + keen::ds::string armL; // Offset: 440 + keen::ds::string block; // Offset: 480 +}; + +struct ModelBase { +}; + +struct ModelHierarchy { + keen::ds::string exportNode; // Offset: 0 + keen::float32 scale; // Offset: 40 + keen::float32 xanimScale; // Offset: 44 + keen::bool rotateY; // Offset: 48 + keen::ds::SlotJointMapping slotJointMapping; // Offset: 56 + keen::ds::PreviewModelArray previewModels; // Offset: 576 +}; + +struct ModelHierarchyJointData { + keen::uint32 index; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::uint32 parentIndex; // Offset: 48 + keen::uint32 tag; // Offset: 52 + keen::Matrix43 defaultPose; // Offset: 64 + keen::bool fixPosition; // Offset: 128 +}; + +struct ModelHierarchyData { + keen::DsArray joints; // Offset: 0 + keen::uint64 defaultPoseHash; // Offset: 40 + keen::ds::SlotJointMapping slotJointMapping; // Offset: 48 + keen::ds::PreviewModelArray previewModels; // Offset: 568 +}; + +struct ModelPose { + keen::DsArray data; // Offset: 0 + keen::uint32 alignedJointCount; // Offset: 40 +}; + +struct ModelHierarchyJointDescription { + keen::DsArray jointDescriptions; // Offset: 0 +}; + +struct ModelHierarchyResource { + keen::Guid hierarchyId; // Offset: 0 + keen::DsArray jointNames; // Offset: 16 + keen::DsArray joinParentIndices; // Offset: 56 + keen::DsArray skinToJointMatrices; // Offset: 96 + keen::uint32 jointCount; // Offset: 136 + keen::ds::ModelPose defaultPose; // Offset: 144 + keen::DsArray defaultPoseJoints; // Offset: 192 +}; + +typedef keen::GpcVariantFlag GpcVariantFlag; + +struct GpcShaderVariant { + keen::Bitmask8 mask; // Offset: 0 + keen::ContentHash code; // Offset: 4 + keen::ContentHash strippedCode; // Offset: 20 +}; + +struct GpcShaderResource { + keen::DsArray variants; // Offset: 0 + keen::ds::string entryPoint; // Offset: 40 +}; + +typedef keen::GpcPrimitiveType GpcPrimitiveType; + +typedef keen::GpcCullMode GpcCullMode; + +typedef keen::GpcFillMode GpcFillMode; + +typedef keen::GpcWindingOrder GpcWindingOrder; + +typedef keen::GpcBlendOp GpcBlendOp; + +typedef keen::GpcBlendFactor GpcBlendFactor; + +typedef keen::GpcComparisonFunction GpcComparisonFunction; + +struct GpcRasterPipelineResource { + keen::ds::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 40 + keen::DsArray colorTargetFormats; // Offset: 48 + keen::PixelFormat depthStencilTargetFormat; // Offset: 88 + keen::uint8 sampleCount; // Offset: 89 + keen::ds::GpcPrimitiveType primitiveType; // Offset: 90 + keen::uint8 patchSize; // Offset: 91 + keen::ds::GpcCullMode cullMode; // Offset: 92 + keen::ds::GpcFillMode fillMode; // Offset: 93 + keen::ds::GpcWindingOrder windingOrder; // Offset: 94 + keen::ds::GpcBlendOp blendOp; // Offset: 95 + keen::ds::GpcBlendFactor blendSourceFactor; // Offset: 96 + keen::ds::GpcBlendFactor blendDestFactor; // Offset: 97 + keen::bool sampleShading; // Offset: 98 + keen::bool alphaToCoverage; // Offset: 99 + keen::ds::GpcComparisonFunction depthComparisonFunction; // Offset: 100 + keen::bool depthWriteEnable; // Offset: 101 + keen::float32 constDepthBias; // Offset: 104 + keen::float32 slopeDepthBias; // Offset: 108 + keen::ds::GpcShaderResource vsShaderCode; // Offset: 112 + keen::ds::GpcShaderResource tcShaderCode; // Offset: 192 + keen::ds::GpcShaderResource teShaderCode; // Offset: 272 + keen::ds::GpcShaderResource fsShaderCode; // Offset: 352 +}; + +struct GpcComputePipelineResource { + keen::ds::string name; // Offset: 0 + keen::HashKey32 hash; // Offset: 40 + keen::uint3 groupSize; // Offset: 44 + keen::ds::GpcShaderResource computeShader; // Offset: 56 +}; + +struct GpcResource { + keen::HashKey32 signatureHash; // Offset: 0 + keen::DsArray rasterPipelines; // Offset: 8 + keen::DsArray computePipelines; // Offset: 48 +}; + +struct GpcResourceList { + keen::ds::string path; // Offset: 0 +}; + +typedef keen::gpu::u32 gpu.u32; + +typedef keen::gpu::s32 gpu.s32; + +typedef keen::gpu::f32 gpu.f32; + +typedef keen::gpu::u32_1 gpu.u32_1; + +typedef keen::gpu::u32_2 gpu.u32_2; + +typedef keen::gpu::u32_3 gpu.u32_3; + +typedef keen::gpu::u32_4 gpu.u32_4; + +typedef keen::gpu::s32_1 gpu.s32_1; + +typedef keen::gpu::s32_2 gpu.s32_2; + +typedef keen::gpu::s32_3 gpu.s32_3; + +typedef keen::gpu::s32_4 gpu.s32_4; + +typedef keen::gpu::f32_1 gpu.f32_1; + +typedef keen::gpu::f32_2 gpu.f32_2; + +typedef keen::gpu::f32_3 gpu.f32_3; + +typedef keen::gpu::f32_4 gpu.f32_4; + +typedef keen::gpu::f32_3x4 gpu.f32_3x4; + +typedef keen::gpu::f32_4x4 gpu.f32_4x4; + +typedef keen::gpu::DrawIndirectParameter gpu.DrawIndirectParameter; + +typedef keen::gpu::DrawIndexedIndirectParameter gpu.DrawIndexedIndirectParameter; + +typedef keen::gpu::DispatchIndirectParameter gpu.DispatchIndirectParameter; + +struct BindlessTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_float { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessTexture3D_uint { + keen::uint32 index; // Offset: 0 +}; + +struct BindlessSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSystemInformation { + keen::StaticArray description; // Offset: 0 + keen::StaticArray model; // Offset: 64 + keen::uint64 videoMemorySize; // Offset: 128 + keen::uint64 sharedMemorySize; // Offset: 136 + keen::bool hasDirectX9; // Offset: 144 + keen::bool hasDirectX11; // Offset: 145 + keen::bool hasGl1; // Offset: 146 + keen::bool hasGl2; // Offset: 147 + keen::bool hasGl3; // Offset: 148 + keen::bool hasGl4; // Offset: 149 + keen::bool hasGles2; // Offset: 150 + keen::bool hasGles3; // Offset: 151 + keen::bool hasMetal; // Offset: 152 + keen::bool hasVulkan; // Offset: 153 +}; + +struct DisplaySystemInformation { + keen::StaticArray description; // Offset: 0 + keen::uint32 gpuIndex; // Offset: 64 + keen::uint32 pixelWidth; // Offset: 68 + keen::uint32 pixelHeight; // Offset: 72 + keen::float32 aspectRatio; // Offset: 76 + keen::uint32 dpi; // Offset: 80 +}; + +struct GraphicsSystemInformation { + keen::uint32 totalPixelWidth; // Offset: 0 + keen::uint32 totalPixelHeight; // Offset: 4 + keen::uint32 gpuCount; // Offset: 8 + keen::uint32 displayCount; // Offset: 12 + keen::StaticArray gpus; // Offset: 16 + keen::StaticArray displays; // Offset: 656 +}; + +struct HistogramData { + keen::DsString id; // Offset: 0 + keen::DsArray slots; // Offset: 40 + keen::uint32 valueCount; // Offset: 80 + keen::sint64 valueSum; // Offset: 88 + keen::sint64 minValue; // Offset: 96 + keen::sint64 maxValue; // Offset: 104 + keen::sint64 rangeStart; // Offset: 112 + keen::sint64 rangeEnd; // Offset: 120 + keen::bool isLinear; // Offset: 128 + keen::bool isTime; // Offset: 129 +}; + +struct HolisticEngineVersion { + keen::ds::string gitHash; // Offset: 0 +}; + +typedef keen::HolisticSceneRenderFlag HolisticSceneRenderFlag; + +typedef keen::HolisticSceneRenderFlags HolisticSceneRenderFlags; + +typedef keen::SceneCameraSpeed SceneCameraSpeed; + +typedef keen::SceneCameraSpeedBoostFactor SceneCameraSpeedBoostFactor; + +struct HolisticSceneCameraSettings { + keen::ds::SceneCameraSpeed cameraSpeed; // Offset: 0 + keen::ds::SceneCameraSpeedBoostFactor cameraSpeedBoost; // Offset: 1 + keen::float farClip; // Offset: 4 + keen::float fovY; // Offset: 8 +}; + +struct HolisticSceneEditorLighting { + keen::float4 sunColor; // Offset: 0 + keen::float iblIntensity; // Offset: 16 + keen::float editorFixedExposure; // Offset: 20 + keen::bool forceEditorLighting; // Offset: 24 +}; + +typedef keen::HolisticSnappingFlag HolisticSnappingFlag; + +typedef keen::HolisticSnappingFlags HolisticSnappingFlags; + +typedef keen::HolisticSceneViewOverlay HolisticSceneViewOverlay; + +typedef keen::HolisticSceneViewOverlays HolisticSceneViewOverlays; + +struct HolisticSceneSnappingSettings { + keen::uint32 gridSize; // Offset: 0 + keen::float32 angleStep; // Offset: 4 + keen::ds::HolisticSnappingFlags lockedSnappingFlags; // Offset: 8 +}; + +struct HolisticOverlaySettings { + keen::ds::HolisticSceneViewOverlays overlays; // Offset: 0 + keen::bool showOverlays; // Offset: 4 + keen::bool isNonSelectableOverlayExpanded; // Offset: 5 + keen::bool isCustomLightOverlayExpanded; // Offset: 6 + keen::StaticArray isAlbedoTintLayerOverlayExpanded; // Offset: 7 +}; + +struct HolisticSceneToolboxSettings { + keen::bool randomRotateY; // Offset: 0 + keen::bool alignToNormal; // Offset: 1 +}; + +struct HolisticPersistentSceneSettings { + keen::ds::HolisticSceneCameraSettings camera; // Offset: 0 + keen::ds::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::ds::HolisticSceneSnappingSettings snapping; // Offset: 40 + keen::ds::HolisticOverlaySettings overlaySettings; // Offset: 52 + keen::ds::HolisticSceneToolboxSettings toolbox; // Offset: 64 +}; + +struct HolisticPersistentPreviewSettings { + keen::ds::HolisticSceneCameraSettings camera; // Offset: 0 + keen::ds::HolisticSceneEditorLighting lighting; // Offset: 12 + keen::ds::HolisticOverlaySettings overlaySettings; // Offset: 40 +}; + +struct HolisticPersistentUserSettings { + keen::ds::HolisticPersistentSceneSettings scene; // Offset: 0 + keen::ds::HolisticPersistentPreviewSettings preview; // Offset: 68 +}; + +struct HolisticVfxTestParameters { + keen::WorldTransform worldTransform; // Offset: 0 + keen::float3 targetPosition; // Offset: 56 +}; + +struct HolisticMapFilterCollection { +}; + +struct HolisticMapFilterDirectory { +}; + +struct HolisticMapFilter { + keen::float markerSize; // Offset: 0 + keen::Color color; // Offset: 4 + keen::bool isVisible; // Offset: 8 +}; + +struct Folder { +}; + +struct ImporterModelConfig { + keen::DsArray parentNamePatters; // Offset: 0 + keen::DsArray nameIncludePatters; // Offset: 40 + keen::DsArray nameExcludePatters; // Offset: 80 +}; + +struct ImporterTemplate { +}; + +struct ImporterTemplateObject { + keen::ds::string descriptionFormat; // Offset: 0 + keen::ds::string type; // Offset: 40 + keen::ds::string initialState; // Offset: 80 + keen::uint32 sortIndex; // Offset: 120 + keen::Guid containerId; // Offset: 124 +}; + +typedef keen::ImporterAction ImporterAction; + +typedef keen::ds::string SourceFileHash; + +struct ImporterFileTemplate { + keen::ds::string extension; // Offset: 0 + keen::ds::ImporterAction action; // Offset: 40 + keen::ds::SourceFileHash contentHash; // Offset: 48 +}; + +struct TagCollection { +}; + +struct ObjectTagGroup { + keen::Color color; // Offset: 0 +}; + +struct ObjectTag { +}; + +typedef keen::ObjectReference TagReference; + +struct TagDirectoryContent { + keen::DsArray tags; // Offset: 0 + keen::DsArray groups; // Offset: 40 +}; + +typedef keen::HolisticImporterObjectType HolisticImporterObjectType; + +struct SourceFile { + keen::ds::SourceFileHash fileHash; // Offset: 0 + keen::ds::HolisticImporterObjectType targetType; // Offset: 40 +}; + +typedef keen::ObjectReference SourceFileReference; + +struct SourceData { + keen::ds::SourceFileHash dataHash; // Offset: 0 +}; + +typedef keen::ObjectReference SourceDataReference; + +struct WhiteboxTagDirectory { +}; + +struct WhiteboxTagGroup { + keen::Color color; // Offset: 0 +}; + +struct WhiteboxTag { +}; + +struct LootTagGroup { + keen::Color color; // Offset: 0 +}; + +struct LootTag { +}; + +struct DefaultLootLabelCollectionRootDirectory { +}; + +struct DefaultLootLabelCollectionDirectory { +}; + +struct DefaultLootLabelCollection { +}; + +struct DungeonRoomContextTag { + keen::bool invert; // Offset: 0 +}; + +struct DungeonRoomGroundContextTag { +}; + +struct DungeonRoomCeilingContextTag { +}; + +typedef keen::ObjectReference WhiteboxTagReference; + +typedef keen::ObjectReference WhiteboxTagGroupReference; + +struct WhiteboxTagInstance { + keen::ds::WhiteboxTagReference tag; // Offset: 0 +}; + +typedef keen::ObjectReference LootTagReference; + +struct LootTagInstance { + keen::ds::LootTagReference tag; // Offset: 0 + keen::float32 itemLootWeight; // Offset: 16 +}; + +struct WhiteboxTagInfo { + keen::Guid instance; // Offset: 0 + keen::ds::WhiteboxTagReference tag; // Offset: 16 + keen::ds::WhiteboxTagGroupReference group; // Offset: 32 +}; + +struct WhiteboxTagInheritanceInfo { + keen::Guid parentId; // Offset: 0 + keen::Guid tagGuid; // Offset: 16 +}; + +struct WhiteboxTagInheritanceList { + keen::DsArray inheritedTags; // Offset: 0 +}; + +typedef keen::ImageType ImageType; + +typedef keen::ImageColorSpace ImageColorSpace; + +typedef keen::ImageContentType ImageContentType; + +struct Image { + keen::ds::ImageType type; // Offset: 0 + keen::DsString slice; // Offset: 8 + keen::DsString alphaChannel; // Offset: 48 + keen::ds::ImageColorSpace colorSpace; // Offset: 88 + keen::ds::ImageContentType contentType; // Offset: 92 + keen::uint32 sizeDivider; // Offset: 96 + keen::uint32 slices; // Offset: 100 + keen::uint32 sliceRows; // Offset: 104 +}; + +struct ImageInfo { + keen::uint32 width; // Offset: 0 + keen::uint32 height; // Offset: 4 + keen::uint32 depth; // Offset: 8 + keen::DsString name; // Offset: 16 +}; + +struct ChunkedImage { + keen::uint2 tileSize; // Offset: 0 + keen::uint2 numTiles; // Offset: 8 + keen::uint2 dimension; // Offset: 16 +}; + +struct ImageColorRange { + keen::float4 averageColor; // Offset: 0 + keen::float4 minColor; // Offset: 16 + keen::float4 maxColor; // Offset: 32 +}; + +typedef keen::ScatterImageType ScatterImageType; + +struct ScatterImage { + keen::ds::ScatterImageType type; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 4 +}; + +struct ScatterImageMetaData { + keen::ds::ChunkedImage chunkedImage; // Offset: 8 +}; + +struct ScatterImageAreaMetaData { + keen::uint2 tileRangeX; // Offset: 32 + keen::uint2 tileRangeY; // Offset: 40 +}; + +struct ScatterImageLoadParameters { + keen::Guid imageGuid; // Offset: 48 + keen::uint32 channel; // Offset: 64 +}; + +struct GameKnowledgeDirectory { + keen::ObjectReference itemDirectory; // Offset: 0 + keen::ObjectReference dialogDirectory; // Offset: 16 + keen::ObjectReference recipeDirectory; // Offset: 32 + keen::ObjectReference journalDirectory; // Offset: 48 +}; + +struct GameKnowledgeSubDirectory { +}; + +struct GameKnowledgeObjectBase { + keen::bool sendToAnalytics; // Offset: 0 +}; + +struct WorldKnowledgeObject { + keen::bool generateAdditionalPlayerKnowledge; // Offset: 1 +}; + +struct PlayerKnowledgeObject { + keen::bool unlocksSkillPoints; // Offset: 1 + keen::uint8 unlockedSkillPoints; // Offset: 2 + keen::ObjectReference experienceGain; // Offset: 4 + keen::ds::AchievementDataReference unlockAchievement; // Offset: 20 +}; + +struct SceneKnowledgeRequirement { + keen::ds::ecs::TemplateReference targetSubentity; // Offset: 104 +}; + +struct KnowledgeObjectInfo { + keen::ds::KnowledgeId id; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::bool isPlayerKnowledge; // Offset: 48 + keen::bool generateAdditionalPlayerKnowledge; // Offset: 49 + keen::bool sendToAnalytics; // Offset: 50 + keen::uint8 unlockedSkillPoints; // Offset: 51 + keen::HashKey32 experienceGainId; // Offset: 52 + keen::ds::AchievementId achievementId; // Offset: 56 +}; + +struct KnowledgeExperienceCountInfo { + keen::DsArray experienceObjects; // Offset: 0 +}; + +struct KnowledgeExperienceCount { + keen::HashKey32 experienceObjectId; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct KnowledgeObjectResource { + keen::ds::KnowledgeId id; // Offset: 0 + keen::bool sendToAnalytics; // Offset: 4 +}; + +struct WorldKnowledgeObjectResource { + keen::bool hasOptionalPlayerProgression; // Offset: 8 +}; + +struct PlayerKnowledgeObjectResource { + keen::uint8 unlockedSkillPoints; // Offset: 8 + keen::HashKey32 experienceGainId; // Offset: 12 + keen::ds::AchievementId achievementId; // Offset: 16 +}; + +struct GameKnowledgeResource { + keen::DsArray worldKnowledge; // Offset: 0 + keen::DsArray playerKnowledge; // Offset: 40 + keen::DsArray dialogKnowledgeIds; // Offset: 80 + keen::DsArray itemKnowledgeIds; // Offset: 120 +}; + +struct GameKnowledgeDbInfo { + keen::DsArray worldKnowledgeObjects; // Offset: 0 + keen::DsArray playerKnowledgeObjects; // Offset: 40 +}; + +struct KnowledgeQueryDirectory { + keen::ObjectReference knowledgeDirectory; // Offset: 0 + keen::ObjectReference demoKnowledge; // Offset: 16 +}; + +struct KnowledgeQuerySubDirectory { +}; + +typedef keen::KnowledgeQueryOperator KnowledgeQueryOperator; + +struct GameKnowledgeQuery { + keen::ds::KnowledgeQueryOperator type; // Offset: 0 + keen::bool invert; // Offset: 1 +}; + +struct BaseKnowledgeQueryAction { + keen::bool invert; // Offset: 0 +}; + +struct KnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::ObjectReference worldKnowledge; // Offset: 4 + keen::ObjectReference playerKnowledge; // Offset: 20 +}; + +struct ItemKnowledgeQueryAction { + keen::ds::ItemKnowledgeTrigger itemKnowledge; // Offset: 1 + keen::bool worldItemKnowledge; // Offset: 2 + keen::ObjectReference item; // Offset: 4 +}; + +struct DialogKnowledgeQueryAction { + keen::ObjectReference dialogOption; // Offset: 4 +}; + +typedef keen::NpcQueryActionType NpcQueryActionType; + +struct NpcQueryAction { + keen::ds::NpcQueryActionType type; // Offset: 1 + keen::ObjectReference npc; // Offset: 4 + keen::ds::ecs::TemplateReference npcEntity; // Offset: 20 + keen::ObjectReference requiredCraftingProp; // Offset: 36 +}; + +struct CraftingQueryAction { + keen::ObjectReference recipe; // Offset: 4 +}; + +struct PredefinedKnowledgeQueryAction { + keen::bool usePlayerKnowledge; // Offset: 1 + keen::ds::PredefinedKnowledgeTypes knowledge; // Offset: 2 +}; + +typedef keen::CompareOperator CompareOperator; + +struct FlameAltarCountQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct FlameAltarLevelQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct MotherFlameLevelQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct PlayerLevelQueryAction { + keen::ds::CompareOperator operation; // Offset: 1 + keen::uint16 count; // Offset: 2 +}; + +struct OtherQueryAction { + keen::ObjectReference query; // Offset: 4 +}; + +struct InventoryQueryAction { + keen::ObjectReference item; // Offset: 4 +}; + +typedef keen::KnowledgeQueryActionType KnowledgeQueryActionType; + +struct KnowledgeQueryActionInfo { + keen::ds::KnowledgeQueryActionType type; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::ds::KnowledgeId queryId; // Offset: 48 + keen::uint32 queryIndex; // Offset: 52 + keen::uint32 playerProgressionQueryIndex; // Offset: 56 + keen::bool invertResult; // Offset: 60 + keen::bool isPlayerAction; // Offset: 61 +}; + +typedef keen::KnowledgeQueryType KnowledgeQueryType; + +struct GameKnowledgeQueryResourceBase { + keen::ds::string name; // Offset: 0 + keen::ds::KnowledgeId queryId; // Offset: 40 + keen::uint32 queryIndex; // Offset: 44 + keen::ds::KnowledgeQueryType type; // Offset: 48 + keen::bool isPlayerQuery; // Offset: 49 + keen::bool invertResult; // Offset: 50 +}; + +struct GameKnowledgeQueryResource { + keen::bool hasOptionalPlayerProgression; // Offset: 56 + keen::DsArray actions; // Offset: 64 +}; + +struct GameRuntimeQueryResource { + keen::ds::ItemReference itemRef; // Offset: 56 + keen::ds::ItemId itemId; // Offset: 72 + keen::ds::NpcQueryActionType npcActionType; // Offset: 76 + keen::ds::NpcId npcId; // Offset: 80 + keen::ds::CraftingPropId craftingProp; // Offset: 84 + keen::ds::CompareOperator compareOperation; // Offset: 88 + keen::uint16 compareValue; // Offset: 90 +}; + +struct GameKnowledgeQueryResourceDb { + keen::ds::KnowledgeId demoKnowledgeId; // Offset: 0 + keen::uint32 playerQueryStartIndex; // Offset: 4 + keen::uint32 runtimePlayerQueryStartIndex; // Offset: 8 + keen::DsArray queries; // Offset: 16 + keen::DsArray runtimeQueries; // Offset: 56 +}; + +typedef keen::RecipeKnowledgeType RecipeKnowledgeType; + +struct GameKnowledgeQueryTriggerSubDirectory { +}; + +struct GameKnowledgeQueryTriggerDirectory { + keen::ObjectReference knowledgeQueries; // Offset: 0 +}; + +struct GameKnowledgeQueryTrigger { + keen::bool canUnlockKnowledge; // Offset: 0 + keen::bool canRemoveKnowledge; // Offset: 1 + keen::ds::GameKnowledgeRequirement requirement; // Offset: 4 + keen::ds::KnowledgeId queryId; // Offset: 108 + keen::DsArray unlockKnowledge; // Offset: 112 +}; + +struct GameKnowledgeQueryTriggerResource { + keen::DsArray worldQueries; // Offset: 0 + keen::DsArray playerQueries; // Offset: 40 +}; + +typedef keen::DebugKnowledgeQuerySource DebugKnowledgeQuerySource; + +struct DebugServerKnowledgeMessage { + keen::uint16 changeCounter; // Offset: 0 + keen::uint16 playerIndex; // Offset: 2 + keen::bool isPlayerKnowledge; // Offset: 4 + keen::DsArray unlockedKnowledge; // Offset: 8 +}; + +struct DebugResetKnowledgeMessage { + keen::bool isPlayerKnowledge; // Offset: 0 +}; + +struct DebugUnlockFullKnowledgeMessage { + keen::bool unlockPlayerKnowledge; // Offset: 0 +}; + +struct DebugToggleKnowledgeMessage { + keen::ds::KnowledgeId knowledgeId; // Offset: 0 + keen::bool resultState; // Offset: 4 + keen::bool isPlayerKnowledge; // Offset: 5 + keen::uint16 playerIndex; // Offset: 6 +}; + +typedef keen::DebugKnowledgeQueryResultType DebugKnowledgeQueryResultType; + +struct DebugKnowledgeQueryResult { + keen::ds::DebugKnowledgeQueryResultType type; // Offset: 0 + keen::uint32 queryIndex; // Offset: 4 + keen::bool isPending; // Offset: 8 + keen::bool isPendingPersonal; // Offset: 9 + keen::bool result; // Offset: 10 + keen::bool resultPersonal; // Offset: 11 +}; + +struct SceneKnowledgeOverride { + keen::ds::ecs::TemplateReference entityTemplate; // Offset: 0 +}; + +struct SceneKnowledgeTriggerOverride { + keen::ds::GameKnowledgeTrigger knowledgeTrigger; // Offset: 16 +}; + +struct SceneKnowledgeRequirementOverride { + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 16 +}; + +struct SceneKnowledgeMapMarkerOverride { + keen::ds::GameKnowledgeRequirement hintState; // Offset: 16 + keen::ds::GameKnowledgeRequirement visibleState; // Offset: 120 + keen::bool hasCompletedState; // Offset: 224 + keen::ds::GameKnowledgeRequirement completedState; // Offset: 228 +}; + +typedef keen::SceneKnowledgeOverrideType SceneKnowledgeOverrideType; + +struct SceneKnowledgeOverrideInfo { + keen::Guid entityTemplateGuid; // Offset: 0 + keen::ds::SceneKnowledgeOverrideType type; // Offset: 16 + keen::ds::KnowledgeId knowledgeId; // Offset: 20 + keen::ds::KnowledgeId knowledgeId2; // Offset: 24 + keen::ds::KnowledgeId knowledgeId3; // Offset: 28 +}; + +struct SceneKnowledgeOverrides { + keen::DsArray knowledgeOverrides; // Offset: 0 +}; + +struct DebugKnowledgeQueryResults { + keen::DsArray results; // Offset: 0 + keen::uint8 playerIndex; // Offset: 40 +}; + +struct LocaTagGroup { +}; + +typedef keen::LocaLanguages LocaLanguages; + +typedef keen::ObjectReference LocaCrowdinProjectReference; + +struct LocaCrowdinProject { + keen::LanguageId inputLanguage; // Offset: 0 + keen::ds::LocaCrowdinProjectReference inputProject; // Offset: 4 + keen::ds::LocaLanguages outputLanguages; // Offset: 24 + keen::uint64 projectId; // Offset: 32 + keen::uint64 fileId; // Offset: 40 + keen::bool onlyApproved; // Offset: 48 + keen::ds::SourceFileReference crowdinCSV; // Offset: 52 +}; + +struct LocaTagCollection { + keen::ds::LocaCrowdinProjectReference crowdinWritingProject; // Offset: 0 + keen::ds::LocaCrowdinProjectReference crowdinTranslationProject; // Offset: 16 +}; + +struct LocaTagCollectionResourceLanguage { + keen::LanguageId language; // Offset: 0 + keen::ContentHash dataHash; // Offset: 4 +}; + +struct LocaTagCollectionResource { + keen::ContentHash keenglishDataHash; // Offset: 0 + keen::DsArray languages; // Offset: 16 +}; + +typedef keen::LocaArgumentType LocaArgumentType; + +struct LocaTagArgument { + keen::uint32 id; // Offset: 0 + keen::ds::LocaArgumentType type; // Offset: 4 +}; + +struct LocaTagResource { + keen::ds::LocaTagId id; // Offset: 0 + keen::ds::string text; // Offset: 8 + keen::DsArray arguments; // Offset: 48 + keen::uint32 genericArguments; // Offset: 88 +}; + +struct LocaTagCollectionResourceData { + keen::DsArray tags; // Offset: 0 +}; + +struct BSpline { + keen::DsArray controlPoints; // Offset: 0 + keen::bool closed; // Offset: 40 +}; + +struct MemorySystemInformationBlock { + keen::StaticArray name; // Offset: 0 + keen::uint32 size; // Offset: 32 + keen::uint16 type; // Offset: 36 +}; + +struct MemorySystemInformation { + keen::uint64 totalSize; // Offset: 0 + keen::uint64 allocatedSize; // Offset: 8 + keen::uint64 freeSize; // Offset: 16 + keen::StaticArray memoryBlocks; // Offset: 24 + keen::uint32 memoryBlockCount; // Offset: 1304 +}; + +struct Midi { +}; + +typedef keen::MidiInstrumentSampleType MidiInstrumentSampleType; + +struct InstrumentSampleCollection { + keen::ObjectReference samplesLute; // Offset: 0 + keen::ObjectReference samplesLuteChord; // Offset: 16 + keen::ObjectReference samplesFlute; // Offset: 32 + keen::ObjectReference samplesHarp; // Offset: 48 + keen::ObjectReference samplesDounDoun; // Offset: 64 + keen::ObjectReference samplesTambourin; // Offset: 80 +}; + +struct InstrumentSample { + keen::bool isPitched; // Offset: 0 + keen::uint8 baseNote; // Offset: 1 + keen::float32 fineTune; // Offset: 4 + keen::float32 volume; // Offset: 8 +}; + +struct SamplerInstrument { + keen::float32 volume; // Offset: 0 + keen::uint32 releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::ds::MidiInstrumentSampleType instrument; // Offset: 9 +}; + +struct SamplerInstrumentLayer { + keen::ObjectReference sample; // Offset: 0 + keen::uint8 minNote; // Offset: 16 + keen::uint8 maxNote; // Offset: 17 + keen::uint8 minVelocity; // Offset: 18 + keen::uint8 maxVelocity; // Offset: 19 +}; + +struct InstrumentSampleData { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::DsArray samples; // Offset: 8 +}; + +struct SamplerInstrumentResourceSample { + keen::bool isPitched; // Offset: 0 + keen::float32 tuning; // Offset: 4 + keen::uint8 minNote; // Offset: 8 + keen::uint8 maxNote; // Offset: 9 + keen::uint8 minVelocity; // Offset: 10 + keen::uint8 maxVelocity; // Offset: 11 + keen::uint32 sampleOffset; // Offset: 12 + keen::uint32 sampleLength; // Offset: 16 +}; + +struct SamplerInstrumentResource { + keen::float volume; // Offset: 0 + keen::float releaseTime; // Offset: 4 + keen::bool isMonophone; // Offset: 8 + keen::DsArray samples; // Offset: 16 + keen::ContentHash sampleData; // Offset: 56 + keen::ds::MidiInstrumentSampleType instrument; // Offset: 72 +}; + +struct MidiEvent { + keen::uint32 timestamp; // Offset: 0 + keen::uint8 eventType; // Offset: 4 + keen::uint8 subType; // Offset: 5 + keen::uint8 param1; // Offset: 6 + keen::uint8 param2; // Offset: 7 +}; + +typedef keen::MidiTrackRole MidiTrackRole; + +struct MidiTrack { + keen::ds::string name; // Offset: 0 + keen::ds::string instrumentName; // Offset: 40 + keen::ds::MidiInstrumentSampleType instrument; // Offset: 80 + keen::ds::MidiTrackRole role; // Offset: 81 + keen::DsArray events; // Offset: 88 +}; + +struct MidiTimeSignature { + keen::uint8 numerator; // Offset: 0 + keen::uint8 denominator; // Offset: 1 + keen::uint8 amountOf32NotesInQN; // Offset: 2 + keen::uint8 metronomeTicksPQN; // Offset: 3 +}; + +struct MidiResource { + keen::ds::MidiTimeSignature timeSignature; // Offset: 0 + keen::uint16 pulsesPQN; // Offset: 4 + keen::bool isSMPTE; // Offset: 6 + keen::DsArray tracks; // Offset: 8 + keen::uint32 songDurationMS; // Offset: 48 + keen::ds::string debugName; // Offset: 56 +}; + +typedef keen::ObjectReference MidiResourceReference; + +struct NotifierContainer { +}; + +typedef keen::CharacterUtterance CharacterUtterance; + +struct VoicePack { + keen::ds::SoundContainerReference attackShort; // Offset: 0 + keen::ds::SoundContainerReference attackLong; // Offset: 16 + keen::ds::SoundContainerReference attackFinisher; // Offset: 32 + keen::ds::SoundContainerReference attackChainFinisherLong; // Offset: 48 + keen::ds::SoundContainerReference attackRollFinisher; // Offset: 64 + keen::ds::SoundContainerReference die; // Offset: 80 + keen::ds::SoundContainerReference hit; // Offset: 96 + keen::ds::SoundContainerReference jump; // Offset: 112 + keen::ds::SoundContainerReference exhausted; // Offset: 128 + keen::ds::SoundContainerReference staminaDrain; // Offset: 144 + keen::ds::SoundContainerReference customization; // Offset: 160 +}; + +struct VoicePackResource { + keen::StaticArray sound; // Offset: 0 +}; + +typedef keen::ObjectReference VoicePackResourceReference; + +struct VoicePackSubDirectory { +}; + +struct VoicePackDirectory { +}; + +struct VoicePackDirectoryResource { + keen::DsArray voicePacks; // Offset: 0 +}; + +struct Notifier { + keen::ds::VfxReference defaultVfx; // Offset: 0 + keen::ds::SoundContainerReference defaultSound; // Offset: 16 + keen::ds::CharacterUtterance playerVoice; // Offset: 32 +}; + +struct NotifierResource { + keen::ObjectReference defaultVfx; // Offset: 0 + keen::ds::VfxUserEffectParameterDataBlock defaultVfxInitParameters; // Offset: 16 + keen::ds::SoundContainerReference defaultSound; // Offset: 80 + keen::ds::CharacterUtterance playerVoice; // Offset: 96 +}; + +struct NotifierEventBase { + keen::ds::AttachmentSlot slot; // Offset: 96 + keen::ds::ecs::Offset notifierOffset; // Offset: 100 + keen::bool attach; // Offset: 140 + keen::bool cancelFromActorSequence; // Offset: 141 +}; + +typedef keen::FootId FootId; + +struct FootPassingEvent { + keen::ds::FootId foot; // Offset: 96 +}; + +struct NotifierEvent { + keen::ds::NotifierReference notifier; // Offset: 144 +}; + +struct VfxNotifierEvent { + keen::ds::VfxReference vfx; // Offset: 144 + keen::ds::VfxUserEffectParameterDataBlock vfxParameters; // Offset: 160 +}; + +struct SfxNotifierEvent { + keen::ds::SoundContainerReference sound; // Offset: 144 + keen::float32 noiseRange; // Offset: 160 +}; + +struct EnvironmentEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::ds::EnvironmentEffectType environmentEffectType; // Offset: 160 + keen::float32 rayOffsetY; // Offset: 164 + keen::float32 rayLength; // Offset: 168 +}; + +struct FoleyEffectNotifierEvent { + keen::Guid eventGuid; // Offset: 144 + keen::ds::FoleyType foleyType; // Offset: 160 +}; + +struct ClothSimulationEventModel { + keen::ObjectReference model; // Offset: 0 +}; + +struct ClothSimulationEvent { + keen::ObjectReference model; // Offset: 96 + keen::float32 damping; // Offset: 112 + keen::float32 linearInertia; // Offset: 116 + keen::float32 angularInertia; // Offset: 120 + keen::float32 centrifugalInertia; // Offset: 124 + keen::float32 solverFrequency; // Offset: 128 + keen::float32 collisionFriction; // Offset: 132 + keen::float32 motionConstraintsMaxRadius; // Offset: 136 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 140 + keen::float32 gravity; // Offset: 144 + keen::DsArray models; // Offset: 152 +}; + +struct ClothSimulationResetVelocityEvent { +}; + +struct ChainSimulationEvent { + keen::float32 damping; // Offset: 96 + keen::float32 linearInertia; // Offset: 100 + keen::float32 angularInertia; // Offset: 104 + keen::float32 centrifugalInertia; // Offset: 108 + keen::float32 collisionFriction; // Offset: 112 + keen::float32 motionConstraintRadius; // Offset: 116 + keen::float32 gravity; // Offset: 120 + keen::DsArray models; // Offset: 128 +}; + +typedef keen::CpuArchitecure CpuArchitecure; + +struct CpuSystemInformation { + keen::ds::CpuArchitecure architecture; // Offset: 0 + keen::uint32 bitCount; // Offset: 4 + keen::uint32 cpuCount; // Offset: 8 + keen::uint32 threadCount; // Offset: 12 + keen::StaticArray vendorId; // Offset: 16 + keen::StaticArray brand; // Offset: 32 + keen::bool hasSSE2; // Offset: 96 + keen::bool hasSSE42; // Offset: 97 + keen::bool hasAVX; // Offset: 98 + keen::bool hasAVX2; // Offset: 99 + keen::bool hasNeon; // Offset: 100 +}; + +typedef keen::DeviceId DeviceId; + +struct DeviceSystemInformation { + keen::ds::DeviceId id; // Offset: 0 + keen::StaticArray model; // Offset: 4 + keen::StaticArray name; // Offset: 68 + keen::StaticArray macAddress; // Offset: 132 + keen::bool isRooted; // Offset: 150 +}; + +typedef keen::OperatingSystemType OperatingSystemType; + +struct OsSystemInformation { + keen::ds::OperatingSystemType type; // Offset: 0 + keen::uint32 majorVersion; // Offset: 4 + keen::uint32 minorVersion; // Offset: 8 + keen::uint32 build; // Offset: 12 + keen::StaticArray versionString; // Offset: 16 + keen::StaticArray distribution; // Offset: 48 + keen::uint32 bitCount; // Offset: 80 +}; + +struct AtmosphereShaderData { + keen::uint32 isValid; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 + keen::float2 yToNormalizedHeight; // Offset: 8 + keen::float3 rayleighScattering; // Offset: 16 + keen::float32 invRayleighDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float32 pad3; // Offset: 44 + keen::float32 mieScattering; // Offset: 48 + keen::float32 mieExtinction; // Offset: 52 + keen::float32 mieG; // Offset: 56 + keen::float32 invMieDistribution; // Offset: 60 +}; + +struct PreintegrateAtmosphereTransmittanceShaderData { + keen::float2 invTextureSize; // Offset: 0 + keen::float2 pixelToHeight; // Offset: 8 + keen::float planetRadius; // Offset: 16 + keen::float cutoffRadius; // Offset: 20 + keen::float mieExtinction; // Offset: 24 + keen::float invMieDistribution; // Offset: 28 + keen::float3 rayleighExtinction; // Offset: 32 + keen::float invRayleighDistribution; // Offset: 44 +}; + +struct ComputeAtmosphereScatteringLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float2 texcoordToHeight; // Offset: 16 + keen::float2 pad1; // Offset: 24 + keen::float2 yToNormalizedHeight; // Offset: 32 + keen::float planetRadius; // Offset: 40 + keen::float cutoffRadius; // Offset: 44 + keen::float3 rayleighExtinction; // Offset: 48 + keen::float invRayleighDistribution; // Offset: 60 + keen::float3 rayleighScattering; // Offset: 64 + keen::float pad2; // Offset: 76 + keen::float mieExtinction; // Offset: 80 + keen::float invMieDistribution; // Offset: 84 + keen::float mieScattering; // Offset: 88 + keen::float mieG; // Offset: 92 +}; + +struct ComputeAtmosphereAmbientIlluminationLutShaderData { + keen::float3 invTextureSize; // Offset: 0 + keen::float pad0; // Offset: 12 +}; + +struct Material { +}; + +struct BillboardMaterial { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference opacityMap; // Offset: 16 + keen::ObjectReference roughnessMap; // Offset: 32 + keen::ObjectReference reflectanceMap; // Offset: 48 + keen::ObjectReference metallicMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference translucencyMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 +}; + +typedef keen::BillboardRfxTexture BillboardRfxTexture; + +struct StreamedTexture2D_float { + keen::uint32 index; // Offset: 0 +}; + +struct StreamedTexture2D_float4 { + keen::uint32 index; // Offset: 0 +}; + +struct BillboardRfxRenderMaterial { + keen::ds::StreamedTexture2D_float opacityMap; // Offset: 0 + keen::ds::StreamedTexture2D_float4 albedoMap; // Offset: 4 + keen::ds::StreamedTexture2D_float4 materialParamsMap; // Offset: 8 + keen::ds::StreamedTexture2D_float4 normalMap; // Offset: 12 +}; + +struct BrickVisibilityPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::uint32 frameId; // Offset: 76 +}; + +struct BrickDebugShadingConstants { + keen::float3 directionalLightDirection; // Offset: 0 + keen::float3 directionalLightColor; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 +}; + +struct VolumetricFogGridMaterial { + keen::float3 absorption; // Offset: 0 + keen::float3 scattering; // Offset: 16 + keen::float3 emission; // Offset: 32 +}; + +struct VolumetricFogGridCascadeShaderData { + keen::float3 origin; // Offset: 0 + keen::float32 size; // Offset: 12 + keen::int3 pixelOffset; // Offset: 16 + keen::uint32 explicitPad0; // Offset: 28 +}; + +struct VolumetricFogGridShaderData { + keen::uint32 flags; // Offset: 0 + keen::float3 origin; // Offset: 4 + keen::float3 size; // Offset: 16 + keen::uint3 topLevelMaxVoxel; // Offset: 32 + keen::ds::VolumetricFogGridMaterial none; // Offset: 48 + keen::ds::VolumetricFogGridMaterial dangerous; // Offset: 96 + keen::ds::VolumetricFogGridMaterial deadly; // Offset: 144 + keen::ds::VolumetricFogGridMaterial decorative; // Offset: 192 + keen::StaticArray cascades; // Offset: 240 +}; + +struct BrickFillGBufferConstants { + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint32 layerCount; // Offset: 496 + keen::uint32 showLayerWeight; // Offset: 500 + keen::uint32 debugLayerIndex; // Offset: 504 + keen::uint2 outputSize; // Offset: 512 + keen::float2 invOutputSize; // Offset: 520 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::uint32 isMaterialDataValid; // Offset: 592 + keen::float3 cameraWorldPosition; // Offset: 596 + keen::float exposureCorrection; // Offset: 608 + keen::float time; // Offset: 612 +}; + +struct GpuCullingFrustum { + keen::float4 plane0; // Offset: 0 + keen::float4 plane1; // Offset: 16 + keen::float4 plane2; // Offset: 32 + keen::float4 plane3; // Offset: 48 + keen::float4 plane4; // Offset: 64 + keen::float4 plane5; // Offset: 80 +}; + +struct GpuOcclusionCullingShaderData { + keen::float2 depthPyramidResolution; // Offset: 0 + keen::float2 screenToDepthPyramidUvScale; // Offset: 8 + keen::float P00; // Offset: 16 + keen::float P11; // Offset: 20 + keen::float P03; // Offset: 24 + keen::float P13; // Offset: 28 + keen::float P22; // Offset: 32 + keen::float P23; // Offset: 36 + keen::float zNear; // Offset: 40 + keen::float zFar; // Offset: 44 + keen::uint orthoProjection; // Offset: 48 +}; + +struct BrickCullingShaderParameters { + keen::uint32 instanceCount; // Offset: 0 + keen::ds::GpuCullingFrustum frustum; // Offset: 16 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 112 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 160 +}; + +struct BrickDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 firstIndex; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 firstInstance; // Offset: 16 +}; + +struct BrickSdfBakingShaderParameters { + keen::uint3 textureOffset; // Offset: 0 + keen::uint32 resolution; // Offset: 12 +}; + +struct BrickVoxelCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 brickIndex; // Offset: 4 + keen::uint2 brickData; // Offset: 8 +}; + +struct BrickVoxelDilateShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 +}; + +struct NewBrickCommandData { + keen::uint2 data; // Offset: 0 + keen::uint32 index; // Offset: 8 +}; + +struct BrickUploadShaderParameters { + keen::uint32 newBrickCount; // Offset: 0 +}; + +typedef keen::BuildingMappingType BuildingMappingType; + +struct BuildingMaterialParameters { + keen::ds::BuildingMappingType mapping; // Offset: 0 + keen::bool edgeOnlySide; // Offset: 1 + keen::DsArray decoObjectRules; // Offset: 8 +}; + +struct BuildingMaterialParametersResource { + keen::DsArray materials; // Offset: 0 +}; + +struct BuildingMaterials { + keen::DsArray> materials; // Offset: 0 +}; + +struct RenderTexture { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 + keen::ds::string debugName; // Offset: 32 +}; + +struct BuildingMaterialLayerImages { + keen::ds::RenderTexture emissiveMap; // Offset: 0 + keen::ds::RenderTexture albedoMap; // Offset: 72 + keen::ds::RenderTexture metallicMap; // Offset: 144 + keen::ds::RenderTexture roughnessMap; // Offset: 216 + keen::ds::RenderTexture reflectanceMap; // Offset: 288 + keen::ds::RenderTexture normalMap; // Offset: 360 + keen::ds::RenderTexture heightMap; // Offset: 432 + keen::ds::RenderTexture aoMap; // Offset: 504 +}; + +struct BuildingMaterialImages { + keen::ds::BuildingMaterialLayerImages baseSide; // Offset: 0 + keen::ds::BuildingMaterialLayerImages baseTop; // Offset: 576 + keen::ds::BuildingMaterialLayerImages baseBottom; // Offset: 1152 + keen::ds::BuildingMaterialLayerImages edge; // Offset: 1728 + keen::ds::BuildingMaterialLayerImages noise; // Offset: 2304 +}; + +struct BuildingMaterialBlendingMaterialLayerTextureShaderData { + keen::ds::StreamedTexture2D_float4 emissiveMap; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 4 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 8 + keen::ds::StreamedTexture2D_float4 albedoMap; // Offset: 12 + keen::ds::StreamedTexture2D_float metallicMap; // Offset: 16 + keen::ds::StreamedTexture2D_float roughnessMap; // Offset: 20 + keen::ds::StreamedTexture2D_float reflectanceMap; // Offset: 24 + keen::ds::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::ds::StreamedTexture2D_float heightMap; // Offset: 32 + keen::ds::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 tilingFactor; // Offset: 40 + keen::float32 displacementScale; // Offset: 44 + keen::float32 displacementOffset; // Offset: 48 + keen::float32 emissiveGiFactor; // Offset: 52 +}; + +struct BuildingMaterialBlendingMaterialLayerShaderData { + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData baseSideTexture; // Offset: 0 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData baseTopTexture; // Offset: 56 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData baseBottomTexture; // Offset: 112 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTexture; // Offset: 168 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData edgeTopTexture; // Offset: 224 + keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData noiseTexture; // Offset: 280 + keen::float32 heightBlendingRange; // Offset: 336 + keen::float32 heightBlendingRangeNoise; // Offset: 340 + keen::float32 edgeBlendingCurve; // Offset: 344 + keen::uint32 edgeOnlySide; // Offset: 348 + keen::float2 noiseBlendRange; // Offset: 352 + keen::float32 bevelRadius; // Offset: 360 + keen::uint32 isRoof; // Offset: 364 +}; + +struct RenderParameterBlock { + keen::HashKey32 typeSignatureHash; // Offset: 0 + keen::ContentHash data; // Offset: 4 + keen::DsArray patchPoints; // Offset: 24 + keen::DsArray textures; // Offset: 64 + keen::DsArray samplers; // Offset: 104 + keen::ds::string debugName; // Offset: 144 +}; + +struct BuildingMaterialBlendingResource { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 layerSizeInBytes; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::ds::RenderParameterBlock renderingParameterBlock; // Offset: 16 + keen::DsArray renderingImageSizeInfos; // Offset: 200 + keen::DsArray renderingLayerImageSizeInfoStartIndices; // Offset: 240 +}; + +struct BuildingMaterialMapping { + keen::ObjectReference voxelMaterial; // Offset: 0 + keen::uint8 id; // Offset: 16 +}; + +struct BuildingMaterialPalette { +}; + +struct BuildingMaterialPalettesFolder { +}; + +typedef keen::ObjectReference BuildingMaterialPaletteId; + +typedef keen::DecoObjectRuleType DecoObjectRuleType; + +typedef keen::DecoObjectPartMode DecoObjectPartMode; + +typedef keen::DecoObjectPart DecoObjectPart; + +struct DecoObjectInstance { + keen::ObjectReference model; // Offset: 0 + keen::ds::DecoObjectPart part; // Offset: 16 + keen::sint32 fixedOrderKey; // Offset: 20 +}; + +struct DecoObjectRule { + keen::ds::DecoObjectRuleType rule; // Offset: 0 + keen::ds::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::float32 density; // Offset: 48 +}; + +struct DecoObjectRuleSet { + keen::ds::DecoObjectRuleType rule; // Offset: 0 + keen::ds::DecoObjectPartMode partMode; // Offset: 1 + keen::bool onDestructionEdge; // Offset: 2 + keen::bool limitOnePerVoxel; // Offset: 3 + keen::bool symmetrical; // Offset: 4 + keen::float32 density; // Offset: 8 + keen::Vector3 offset; // Offset: 16 + keen::Vector3 rotationVariation; // Offset: 32 + keen::bool fixedOrder; // Offset: 48 + keen::DsArray> startModels; // Offset: 56 + keen::DsArray> middleModels; // Offset: 96 + keen::DsArray> endModels; // Offset: 136 +}; + +struct DecoObjectRules { + keen::DsArray rules; // Offset: 0 +}; + +struct BuildingMaterialListEntry { + keen::Guid guid; // Offset: 0 + keen::ObjectReference pbrBuildingMaterial; // Offset: 16 +}; + +struct BuildingMaterialList { + keen::DsArray entries; // Offset: 0 +}; + +struct FFX_CACAO_Constants { + keen::float2 DepthUnpackConsts; // Offset: 0 + keen::float2 CameraTanHalfFOV; // Offset: 8 + keen::float2 NDCToViewMul; // Offset: 16 + keen::float2 NDCToViewAdd; // Offset: 24 + keen::float2 DepthBufferUVToViewMul; // Offset: 32 + keen::float2 DepthBufferUVToViewAdd; // Offset: 40 + keen::float32 EffectRadius; // Offset: 48 + keen::float32 EffectShadowStrength; // Offset: 52 + keen::float32 EffectShadowPow; // Offset: 56 + keen::float32 EffectShadowClamp; // Offset: 60 + keen::float32 EffectFadeOutMul; // Offset: 64 + keen::float32 EffectFadeOutAdd; // Offset: 68 + keen::float32 EffectHorizonAngleThreshold; // Offset: 72 + keen::float32 EffectSamplingRadiusNearLimitRec; // Offset: 76 + keen::float32 DepthPrecisionOffsetMod; // Offset: 80 + keen::float32 NegRecEffectRadius; // Offset: 84 + keen::float32 LoadCounterAvgDiv; // Offset: 88 + keen::float32 AdaptiveSampleCountLimit; // Offset: 92 + keen::float32 InvSharpness; // Offset: 96 + keen::sint32 PassIndex; // Offset: 100 + keen::float32 BilateralSigmaSquared; // Offset: 104 + keen::float32 BilateralSimilarityDistanceSigma; // Offset: 108 + keen::StaticArray PatternRotScaleMatrices; // Offset: 112 + keen::float32 DetailAOStrength; // Offset: 192 + keen::float32 Dummy0; // Offset: 196 + keen::float32 Dummy1; // Offset: 200 + keen::float32 Dummy2; // Offset: 204 + keen::float2 SSAOBufferDimensions; // Offset: 208 + keen::float2 SSAOBufferInverseDimensions; // Offset: 216 + keen::float2 DepthBufferDimensions; // Offset: 224 + keen::float2 DepthBufferInverseDimensions; // Offset: 232 + keen::int2 DepthBufferOffset; // Offset: 240 + keen::float2 PerPassFullResUVOffset; // Offset: 248 + keen::float2 OutputBufferDimensions; // Offset: 256 + keen::float2 OutputBufferInverseDimensions; // Offset: 264 + keen::float2 ImportanceMapDimensions; // Offset: 272 + keen::float2 ImportanceMapInverseDimensions; // Offset: 280 + keen::float2 DeinterleavedDepthBufferDimensions; // Offset: 288 + keen::float2 DeinterleavedDepthBufferInverseDimensions; // Offset: 296 + keen::float2 DeinterleavedDepthBufferOffset; // Offset: 304 + keen::float2 DeinterleavedDepthBufferNormalisedOffset; // Offset: 312 + keen::GraphicsMatrix44 NormalsWorldToViewspaceMatrix; // Offset: 320 +}; + +typedef keen::VoxelChunkPassType VoxelChunkPassType; + +struct PackedShaderWorldTransform { + keen::uint3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct PackedShaderWorldPositionUniform { + keen::uint3 position; // Offset: 0 +}; + +struct VoxelChunkShaderData { + keen::ds::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::ds::PackedShaderWorldPositionUniform worldPosition; // Offset: 32 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float4 boundingSphere; // Offset: 96 + keen::float scale; // Offset: 112 + keen::uint triangleIndexOffset; // Offset: 116 + keen::uint triangleIndexCount; // Offset: 120 + keen::uint quadIndexOffset; // Offset: 124 + keen::uint quadIndexCount; // Offset: 128 + keen::uint vertexOffset; // Offset: 132 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 136 + keen::uint chunkletOffset; // Offset: 140 + keen::uint chunkletCount; // Offset: 144 + keen::uint chunkletVisibilityOffset; // Offset: 148 + keen::uint highlightColorPaletteIndexTransparency; // Offset: 152 + keen::uint sizeFeedbackIndex; // Offset: 156 + keen::StaticArray pipelineIndices; // Offset: 160 + keen::uint flags; // Offset: 172 +}; + +struct ShaderChunkletCullingSubView { + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 + keen::uint32 flags; // Offset: 16 + keen::float3 exclusionCircle; // Offset: 20 + keen::float3 viewDirection; // Offset: 32 + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 48 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 144 + keen::ds::GpuOcclusionCullingShaderData occlusionData; // Offset: 192 +}; + +struct ShaderChunkletCullingPass { + keen::uint32 flags; // Offset: 0 + keen::uint32 subViewIndex; // Offset: 4 + keen::uint32 passType; // Offset: 8 +}; + +struct RenderChunkletCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2432 + keen::uint32 passCount; // Offset: 2436 + keen::uint32 jobCount; // Offset: 2440 + keen::uint32 stageIndex; // Offset: 2444 +}; + +struct CulledChunklet { + keen::uint data0; // Offset: 0 + keen::uint visibility; // Offset: 4 +}; + +struct ChunkletPrefixSumShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint stageIndex; // Offset: 4 +}; + +struct VoxelChunkArgumentsPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct RenderChunkletDrawPrepareShaderParameters { + keen::uint batchCount; // Offset: 0 + keen::uint batchOffset; // Offset: 4 +}; + +struct ChunkletPipelineInfoShaderData { + keen::uint flags; // Offset: 0 +}; + +struct ChunkletDrawCommand { + keen::uint vertexCount; // Offset: 0 + keen::uint instanceCount; // Offset: 4 + keen::uint vertexOffset; // Offset: 8 + keen::uint instanceOffset; // Offset: 12 +}; + +struct ChunkletPushConstants { + keen::uint drawIndex; // Offset: 0 +}; + +struct VoxelChunkSizeFeedbackShaderParameters { + keen::float3 viewPosition; // Offset: 0 + keen::float pixelSize; // Offset: 12 + keen::uint chunkCount; // Offset: 16 +}; + +struct RenderChunklet { + keen::uint data0; // Offset: 0 +}; + +struct ChunkletCullingDebugCounters { + keen::uint culledByOrientation; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledByVisibility; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct ClusterCullingCellData { + keen::uint2 lightListCountAndOffset; // Offset: 0 + keen::uint2 decalListCountAndOffset; // Offset: 8 +}; + +struct ClusterCullingShaderData { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint3 clusterSize; // Offset: 112 + keen::uint cellLightListOffsetCounterOffset; // Offset: 124 + keen::uint cellDecalListOffsetCounterOffset; // Offset: 128 + keen::float2 linearDepthParameters; // Offset: 132 + keen::float2 tileRatio; // Offset: 144 + keen::uint pointLightCounterOffset; // Offset: 152 + keen::uint maxPointLightCount; // Offset: 156 + keen::uint decalCounterOffset; // Offset: 160 + keen::uint maxDecalCount; // Offset: 164 +}; + +struct ClusterCullingDebugPushConstants { + keen::uint2 debugImageSize; // Offset: 0 +}; + +typedef keen::GpuCulling2StageId GpuCulling2StageId; + +typedef keen::GpuCulling2PassType GpuCulling2PassType; + +typedef keen::GpuCulling2PassId GpuCulling2PassId; + +struct GpuCulling2SubViewConstants { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 80 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 +}; + +struct GpuCulling2PassConstants { + keen::uint flags; // Offset: 0 + keen::uint subViewIndex; // Offset: 4 + keen::uint passType; // Offset: 8 +}; + +struct GpuCulling2ShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2640 + keen::uint subViewCount; // Offset: 2832 + keen::uint passCount; // Offset: 2836 + keen::uint visibleGroupMask; // Offset: 2840 + keen::uint isLateStage; // Offset: 2844 + keen::uint flags; // Offset: 2848 + keen::uint instanceCount; // Offset: 2852 + keen::uint batchCount; // Offset: 2856 + keen::float pixelSizeCullingBias; // Offset: 2860 + keen::uint meshCount; // Offset: 2864 + keen::uint maxCulledInstanceCount; // Offset: 2868 + keen::uint scanShaderGroupSize; // Offset: 2872 + keen::uint fixupShaderGroupSize; // Offset: 2876 + keen::ds::PackedShaderWorldPositionUniform mainViewCameraPosition; // Offset: 2880 + keen::float mainViewPixelSize; // Offset: 2896 +}; + +struct GpuCulling2SubViewDebugCounters { + keen::uint notCulled; // Offset: 0 + keen::uint culledByFrustum; // Offset: 4 + keen::uint culledByOcclusion; // Offset: 8 + keen::uint culledBySize; // Offset: 12 + keen::uint culledByExclusion; // Offset: 16 +}; + +struct GpuCulling2PassDebugCounters { + keen::uint notCulled; // Offset: 0 +}; + +struct GpuCulling2Counters { + keen::uint culledInstanceCount; // Offset: 0 + keen::uint leftoverInstances; // Offset: 4 + keen::uint firstInstanceCount; // Offset: 8 +}; + +typedef keen::GpuCulling2DispatchCommandId GpuCulling2DispatchCommandId; + +struct GpuCulling2DebugCounters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 220 + keen::uint culledByGroupMask; // Offset: 268 + keen::uint culledByPixelSize; // Offset: 272 +}; + +struct GpuCulling2CulledInstanceData { + keen::uint meshIndexAndBatchIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct GpuCulling2PixelQuery { + keen::uint2 position; // Offset: 0 +}; + +struct GpuCulling2PixelQueryResult { + keen::uint stageId; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint instanceDataIndex; // Offset: 8 + keen::uint meshIndexAndBatchIndex; // Offset: 12 +}; + +typedef keen::GpuCulling2HighlightType GpuCulling2HighlightType; + +struct GpuCulling2RenderData { + keen::ds::GpuCulling2PixelQuery pixelQuery; // Offset: 0 + keen::ds::GpuCulling2PixelQueryResult pixelQueryResult; // Offset: 8 + keen::ds::GpuCulling2HighlightType highlightType; // Offset: 24 + keen::uint highlightValue; // Offset: 28 + keen::uint highlightValue2; // Offset: 32 +}; + +struct RenderMaterialMeshShaderData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint modelMaterialData; // Offset: 28 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 32 + keen::uint blendShapeVertexOffset; // Offset: 36 + keen::uint blendShapeMask; // Offset: 40 + keen::uint vertexCount; // Offset: 44 +}; + +struct RenderDrawCommandData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::uint32 materialMeshIndexAndLodIndex; // Offset: 20 +}; + +struct RenderDrawData { + keen::uint modelIndex; // Offset: 0 + keen::uint instanceDataIndex; // Offset: 4 + keen::uint groupMask; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct RenderModelDrawData { + keen::float4 boundingSphere; // Offset: 0 + keen::uint modelLodStartIndex; // Offset: 16 + keen::uint modelLodCount; // Offset: 20 + keen::uint hasCardClusterLod; // Offset: 24 + keen::uint sizeFeedbackIndex; // Offset: 28 + keen::StaticArray lodPixelSizes; // Offset: 32 +}; + +struct RenderModelLodDrawData { + keen::uint materialMeshStartIndex; // Offset: 0 + keen::uint materialMeshCount; // Offset: 4 + keen::uint _pad0; // Offset: 8 + keen::uint _pad1; // Offset: 12 +}; + +struct RenderMaterialMeshDrawData { + keen::uint pipelineIndex; // Offset: 0 + keen::uint indexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::int vertexOffset; // Offset: 12 +}; + +struct GpuCullingDrawCounter { + keen::uint32 offset; // Offset: 0 + keen::uint32 maxCount; // Offset: 4 +}; + +struct GpuCullingDebugCounters { + keen::uint32 notCulled; // Offset: 0 + keen::uint32 culledByVisibility; // Offset: 4 + keen::uint32 culledBySize; // Offset: 8 + keen::uint32 culledByFrustum; // Offset: 12 + keen::uint32 culledByOcclusion; // Offset: 16 + keen::uint32 culledByExclusion; // Offset: 20 +}; + +struct CullingShaderData { + keen::float3 viewPosition; // Offset: 0 + keen::int fixedLod; // Offset: 12 + keen::uint viewVisibilityMask; // Offset: 16 + keen::float pixelSize; // Offset: 20 + keen::float pixelSizeCullingBias; // Offset: 24 + keen::uint visibleGroupMask; // Offset: 28 + keen::ds::GpuCullingFrustum frustum; // Offset: 32 + keen::float3 exclusionCircle; // Offset: 128 + keen::GraphicsMatrix43 worldToViewMatrix; // Offset: 144 + keen::GraphicsMatrix44 projectionMatrix; // Offset: 192 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 256 + keen::uint drawCounterOffset; // Offset: 320 + keen::uint occlusionCullingEnabled; // Offset: 324 + keen::uint exclusionCullingEnabled; // Offset: 328 + keen::uint useLastFrameVisibility; // Offset: 332 + keen::uint cpuDrawCount; // Offset: 336 + keen::uint cullSmallObjects; // Offset: 340 + keen::float smallObjectRadius; // Offset: 344 + keen::uint forceCardClusterLod; // Offset: 348 + keen::uint useCameraCenteredSpace; // Offset: 352 + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 368 +}; + +struct UploadRenderInstancesShaderData { + keen::uint32 uploadInstanceCount; // Offset: 0 +}; + +struct DebugOcclusionCullingShaderParameters { + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::float4 viewSpaceSphere; // Offset: 64 +}; + +struct DebugOcclusionCullingResultShaderData { + keen::uint isValid; // Offset: 0 + keen::uint level; // Offset: 4 + keen::float2 rectMin; // Offset: 8 + keen::float2 rectMax; // Offset: 16 + keen::float2 uv; // Offset: 24 +}; + +typedef keen::CurvePointTangent CurvePointTangent; + +typedef keen::CurveTangent CurveTangent; + +struct CurvePoint { + keen::ds::CurveTangent tangent; // Offset: 8 + keen::ds::CurvePointTangent pointTangent; // Offset: 9 +}; + +struct ImageDiffShaderParameters { + keen::float32 threshold; // Offset: 0 +}; + +struct DebugMagnifierShaderParameters { + keen::uint imageWidth; // Offset: 0 + keen::uint imageHeight; // Offset: 4 + keen::uint2 mousePos; // Offset: 8 + keen::float4 borderColor; // Offset: 16 + keen::float magnificationAmount; // Offset: 32 + keen::float magnifierScreenRadius; // Offset: 36 + keen::int magnifierOffsetX; // Offset: 40 + keen::int magnifierOffsetY; // Offset: 44 + keen::float brightness; // Offset: 48 + keen::float contrast; // Offset: 52 +}; + +typedef keen::VisualizeTextureOp VisualizeTextureOp; + +typedef keen::VisualizeTextureChannel VisualizeTextureChannel; + +struct VisualizeTextureCommandShaderData { + keen::ds::VisualizeTextureOp op; // Offset: 0 + keen::ds::VisualizeTextureChannel channel; // Offset: 4 + keen::uint32 scale; // Offset: 8 + keen::float power; // Offset: 12 +}; + +struct VisualizeTextureShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::StaticArray commands; // Offset: 16 +}; + +struct VisualizeOverdrawShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float scale; // Offset: 8 +}; + +struct IblVisualizationData { + keen::GraphicsMatrix44 ndcToWorldMatrix; // Offset: 0 + keen::float iblIntensity; // Offset: 64 + keen::float exposure; // Offset: 68 +}; + +typedef keen::DecalNormalBlendMode DecalNormalBlendMode; + +typedef keen::DecalRoughnessBlendMode DecalRoughnessBlendMode; + +struct Decal { + keen::bool affectShading; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 4 + keen::ObjectReference opacityMap; // Offset: 20 + keen::ObjectReference normalMap; // Offset: 36 + keen::ds::DecalNormalBlendMode normalBlendMode; // Offset: 52 + keen::ObjectReference roughnessMap; // Offset: 56 + keen::ds::DecalRoughnessBlendMode roughnessBlendMode; // Offset: 72 + keen::ObjectReference emissiveMap; // Offset: 76 + keen::ObjectReference emissiveAlphaMap; // Offset: 92 + keen::ObjectReference metallicMap; // Offset: 108 + keen::ObjectReference aoMap; // Offset: 124 + keen::bool affectTerrainVoxelMesh; // Offset: 140 + keen::bool affectBuildingVoxelMesh; // Offset: 141 + keen::bool affectRoofVoxelMesh; // Offset: 142 + keen::bool affectModels; // Offset: 143 + keen::bool affectSkinnedModels; // Offset: 144 + keen::bool affectBuildingDecoModels; // Offset: 145 + keen::bool affectScatterDetailModels; // Offset: 146 + keen::bool affectScattering; // Offset: 147 + keen::ObjectReference scatterScaleMap; // Offset: 148 + keen::float scatterScaleFactor; // Offset: 164 +}; + +typedef keen::DecalLayer DecalLayer; + +typedef keen::DecalLayerMask DecalLayerMask; + +struct DecalMaterialData { + keen::ds::BindlessTexture2D_float4 albedoMap; // Offset: 0 + keen::ds::BindlessTexture2D_float4 normalMap; // Offset: 4 + keen::ds::BindlessTexture2D_float roughnessMap; // Offset: 8 + keen::ds::BindlessTexture2D_float metallicMap; // Offset: 12 + keen::ds::BindlessTexture2D_float4 emissiveMap; // Offset: 16 + keen::ds::BindlessTexture2D_float aoMap; // Offset: 20 + keen::ds::BindlessTexture2D_float scatterScaleMap; // Offset: 24 + keen::uint32 decalLayerMask; // Offset: 28 + keen::float scatterScaleFactor; // Offset: 32 +}; + +struct RenderDecal { + keen::ds::RenderParameterBlock parameterBlock; // Offset: 0 +}; + +struct WeatherSurfaceMaterialData { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float frostUVScale; // Offset: 8 + keen::float frostScale; // Offset: 12 + keen::float3 frostAlbedo; // Offset: 16 + keen::float frostRoughness; // Offset: 28 + keen::float3 frostPuddleAlbedo; // Offset: 32 + keen::float frostPorosityScale; // Offset: 44 + keen::float snowVertexNormalPower; // Offset: 48 + keen::float snowVertexNormalCutoff; // Offset: 52 +}; + +struct GrassMovementData { + keen::ds::PackedShaderWorldPositionUniform origin; // Offset: 0 + keen::float2 reciprocalSize; // Offset: 16 + keen::uint32 validData; // Offset: 24 +}; + +struct TessellatedMaterialConstants { + keen::float2 levelMapping; // Offset: 0 + keen::float32 maxLevel; // Offset: 8 +}; + +typedef keen::RenderShaderDebugMode RenderShaderDebugMode; + +struct RenderDebugConstants { + keen::ds::RenderShaderDebugMode debugMode; // Offset: 0 + keen::uint32 debugNeutralAlbedo; // Offset: 4 + keen::uint32 debugTextureIndex; // Offset: 8 + keen::float32 debugTextureAlpha; // Offset: 12 + keen::float4 debugValue; // Offset: 16 +}; + +struct DynamicHeightmapSamplingShaderData { + keen::uint size; // Offset: 0 + keen::float inverseSize; // Offset: 4 + keen::int2 origin; // Offset: 8 + keen::float scale; // Offset: 16 + keen::float2 distanceFade; // Offset: 20 + keen::uint explicitPad0; // Offset: 28 +}; + +struct WeatherSampleConstants { + keen::uint flags; // Offset: 0 + keen::float2 texcoordMappingScale; // Offset: 4 + keen::float2 texcoordMappingOffset; // Offset: 16 + keen::float2 snowBorderMapping; // Offset: 24 + keen::float32 cameraPositionY; // Offset: 32 + keen::ds::DynamicHeightmapSamplingShaderData heightMap; // Offset: 48 + keen::float3 heightMapCameraPosition; // Offset: 80 + keen::float3 frostVoxelTexcoordMappingScale; // Offset: 96 + keen::float3 frostVoxelTexcoordMappingOffset; // Offset: 112 +}; + +struct RenderLightFactors { + keen::float32 sun; // Offset: 0 + keen::float32 skyGeometrySun; // Offset: 4 + keen::float32 pointLights; // Offset: 8 + keen::float32 gi; // Offset: 12 + keen::float32 emissive; // Offset: 16 + keen::float32 exposure; // Offset: 20 + keen::float32 exposureCorrection; // Offset: 24 +}; + +struct SnowDisplacementData { + keen::ds::PackedShaderWorldPositionUniform tileOrigin; // Offset: 0 + keen::float reciprocalSize; // Offset: 16 + keen::float rcpNormalScale; // Offset: 20 + keen::float halfWorldSize; // Offset: 24 + keen::float heightScale; // Offset: 28 + keen::uint32 validData; // Offset: 32 +}; + +struct RenderGBufferConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::float32 prevTime; // Offset: 192 + keen::ds::GrassMovementData grassMovement; // Offset: 208 + keen::ds::GrassMovementData grassMovementPrevious; // Offset: 240 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 272 + keen::ds::TessellatedMaterialConstants buildingTessellation; // Offset: 288 + keen::ds::RenderDebugConstants debugData; // Offset: 304 + keen::uint32 enableCloth; // Offset: 336 + keen::uint32 enableLavaShader; // Offset: 340 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 344 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 348 + keen::ds::WeatherSurfaceMaterialData weatherSurfaceMaterialData; // Offset: 352 + keen::ds::WeatherSampleConstants weather; // Offset: 416 + keen::ds::RenderLightFactors lightFactors; // Offset: 544 + keen::uint32 blueNoiseSizeMask; // Offset: 576 + keen::uint2 blueNoiseOffset; // Offset: 580 + keen::uint32 isVoxelMaterialDataValid; // Offset: 588 + keen::float highlightAmount; // Offset: 592 + keen::float highlightIntensity; // Offset: 596 + keen::StaticArray highlightColorPaletteArray; // Offset: 608 + keen::float mipBias; // Offset: 736 + keen::uint32 useStochasticMaterialSampling; // Offset: 740 + keen::float2 cancelJitter; // Offset: 744 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 752 + keen::ds::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 768 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 784 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 848 + keen::ds::SnowDisplacementData snowDisplacement; // Offset: 912 +}; + +struct CascadeShadowShaderData { + keen::GraphicsMatrix43 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 48 + keen::float4 fadeParameters0; // Offset: 96 + keen::float4 fadeParameters1; // Offset: 112 +}; + +struct RenderShadowAtlasShaderData { + keen::float4 viewMatrixRowZ; // Offset: 0 + keen::float4 atlasSize; // Offset: 16 + keen::float4 cascadeCount; // Offset: 32 + keen::float4 firstCascadeDistanceFadeParameters; // Offset: 48 + keen::StaticArray cascades; // Offset: 64 +}; + +struct ForwardDirectionalLightData { + keen::float3 direction; // Offset: 0 + keen::float pad0; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float pad1; // Offset: 28 +}; + +struct ForwardIblData { + keen::float4 azimuthRotationXZ; // Offset: 0 + keen::float32 specularMipLevelCount; // Offset: 16 + keen::float32 intensity; // Offset: 20 + keen::uint32 isValid; // Offset: 24 +}; + +struct Fog2ShadowVolumeTransform { + keen::StaticArray worldToCascadeMatrices; // Offset: 0 +}; + +struct Fog2ShadowVolumeSampleParameters { + keen::ds::Fog2ShadowVolumeTransform transform; // Offset: 0 + keen::uint32 cascadeCount; // Offset: 192 + keen::float32 invCascadeCount; // Offset: 196 + keen::float32 halfPixelWidth; // Offset: 200 +}; + +struct VolumetricShadowRuntimeData { + keen::ds::Fog2ShadowVolumeSampleParameters fog2ShadowVolumeSampleParameters; // Offset: 0 + keen::float3 directionalLightDirection; // Offset: 208 + keen::uint32 flags; // Offset: 220 + keen::float2 cloudMapTexcoordMapping; // Offset: 224 + keen::float32 pad0; // Offset: 232 + keen::float32 pad1; // Offset: 236 +}; + +struct DeferredLightingConstants { + keen::ds::RenderLightFactors lightFactors; // Offset: 0 + keen::uint2 outputSize; // Offset: 32 + keen::float2 invOutputSize; // Offset: 40 + keen::float32 time; // Offset: 48 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 176 + keen::float3 cameraWorldPosition; // Offset: 240 + keen::float3 playerWorldPosition; // Offset: 256 + keen::float4 clearColor; // Offset: 272 + keen::ds::RenderShadowAtlasShaderData atlasData; // Offset: 288 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 1376 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 1408 + keen::ds::ForwardIblData iblData; // Offset: 1472 + keen::uint32 fogDisabled; // Offset: 1500 + keen::uint32 ssaoEnabled; // Offset: 1504 + keen::uint32 useAoMin; // Offset: 1508 + keen::uint32 useAoMaps; // Offset: 1512 + keen::uint32 giEnabled; // Offset: 1516 + keen::uint32 pointLightsEnabled; // Offset: 1520 + keen::uint32 useHorizonBasedSpecularOcclusion; // Offset: 1524 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1536 + keen::ds::RenderDebugConstants debugData; // Offset: 1776 + keen::uint32 accumulateSceneBrightness; // Offset: 1808 +}; + +struct VisibilityMaterialParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 16 + keen::uint32 drawCommandBufferOffsetEarly; // Offset: 80 + keen::uint32 drawCommandBufferOffsetEarlyTessellated; // Offset: 84 + keen::uint32 drawCommandBufferOffsetLate; // Offset: 88 + keen::uint32 drawCommandBufferOffsetLateTessellated; // Offset: 92 +}; + +struct DepthOfFieldConstants { + keen::float focalLength; // Offset: 0 + keen::float focalDistance; // Offset: 4 + keen::float cocScale; // Offset: 8 + keen::float2 linearDepthParameters; // Offset: 16 + keen::float2 kernelScale; // Offset: 24 + keen::float2 sceneImagePixelSize; // Offset: 32 + keen::float2 jitterOffset; // Offset: 40 + keen::GraphicsMatrix44 invProjectionMatrix; // Offset: 48 + keen::StaticArray samplesHigh; // Offset: 112 + keen::StaticArray samplesLow; // Offset: 880 +}; + +struct DepthPyramidShaderParameters { + keen::float2 inverseOutputResolution; // Offset: 0 + keen::uint2 inputResolution; // Offset: 8 +}; + +typedef keen::DetailScatterModelAlignmentAxis DetailScatterModelAlignmentAxis; + +struct DetailScatterModel { + keen::ds::DetailScatterModelAlignmentAxis alignmentAxis; // Offset: 0 + keen::bool spawnInside; // Offset: 1 + keen::bool spawnOutside; // Offset: 2 + keen::float32 alignWithNormalStrength; // Offset: 4 + keen::float32 randomRotationXStrength; // Offset: 8 + keen::float32 randomRotationYStrength; // Offset: 12 + keen::float32 randomRotationZStrength; // Offset: 16 + keen::float32 minFadeoutDistance; // Offset: 20 + keen::float32 maxFadeoutDistance; // Offset: 24 + keen::float32 minScale; // Offset: 28 + keen::float32 maxScale; // Offset: 32 + keen::float32 mapScaleStrength; // Offset: 36 + keen::float32 materialWeightScaleStrength; // Offset: 40 +}; + +struct DetailScatterInstance { + keen::ObjectReference model; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::bool onlyOnWeathered; // Offset: 20 +}; + +typedef keen::TextureChannel TextureChannel; + +struct DetailScatterGroup { + keen::ds::TextureChannel mapChannel; // Offset: 0 +}; + +struct DetailScatterLayer { + keen::ObjectReference map; // Offset: 0 + keen::float32 mapTilingSize; // Offset: 16 +}; + +struct DetailScatterLayerShaderData { + keen::ds::BindlessTexture2D_float4 map; // Offset: 0 + keen::float32 mapTilingFactor; // Offset: 4 + keen::uint32 pad0; // Offset: 8 + keen::uint32 pad1; // Offset: 12 + keen::ds::BindlessTexture2D_float edgeNoiseMap; // Offset: 16 + keen::float32 edgeNoiseTilingFactor; // Offset: 20 + keen::float32 edgeNoiseMappingFactor; // Offset: 24 + keen::uint32 pad2; // Offset: 28 + keen::uint4 modelOffset; // Offset: 32 + keen::uint4 modelCount; // Offset: 48 +}; + +struct DetailScatterModelProbabilityCutoffShaderData { + keen::float32 value; // Offset: 0 +}; + +struct DetailScatterModelShaderData { + keen::float32 minFadeoutDistance; // Offset: 0 + keen::float32 maxFadeoutDistance; // Offset: 4 + keen::float32 minScale; // Offset: 8 + keen::float32 maxScale; // Offset: 12 + keen::float32 alignWithNormalStrength; // Offset: 16 + keen::uint32 params0; // Offset: 20 + keen::uint32 params1; // Offset: 24 + keen::float32 lodDistance; // Offset: 28 +}; + +struct DetailScatterShaderData { + keen::ds::BindlessSampler scatterMapSampler; // Offset: 0 + keen::uint32 pad0; // Offset: 4 + keen::uint32 pad1; // Offset: 8 + keen::uint32 pad2; // Offset: 12 +}; + +struct DetailScatterResource { + keen::ds::RenderParameterBlock shaderDataParameterBlock; // Offset: 0 + keen::ds::RenderParameterBlock layersShaderDataParameterBlock; // Offset: 184 + keen::ds::RenderParameterBlock modelsShaderDataParameterBlock; // Offset: 368 + keen::ds::RenderParameterBlock modelProbabilityCutoffsShaderDataParameterBlock; // Offset: 552 + keen::DsArray> models; // Offset: 736 + keen::float largestModelRadius; // Offset: 776 +}; + +struct DissolveMaterialParameters { + keen::bool enable; // Offset: 0 + keen::float32 noiseTiling; // Offset: 4 + keen::float32 noiseFadeRange; // Offset: 8 + keen::ObjectReference noiseMap; // Offset: 12 + keen::bool enableEdgeGlow; // Offset: 28 + keen::float32 edgeWidth; // Offset: 32 + keen::Color edgeColor; // Offset: 36 +}; + +struct DynamicHeightmapFillShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 + keen::uint2 ditherPos; // Offset: 16 + keen::int2 origin; // Offset: 24 + keen::float scale; // Offset: 32 + keen::float worldTop; // Offset: 36 +}; + +struct DynamicHeightmapRasterizeTreesShaderParameters { + keen::float32 scale; // Offset: 0 +}; + +struct CollectGpuCullingTreesShaderParameters { + keen::uint drawCountBufferOffset; // Offset: 0 + keen::uint drawCommandBufferOffset; // Offset: 4 +}; + +struct FfxShadowDenoiserShaderParameters { + keen::GraphicsMatrix44 inverseProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 reprojectionMatrix; // Offset: 128 + keen::GraphicsMatrix43 viewMatrix; // Offset: 192 + keen::float3 cameraPosition; // Offset: 240 + keen::uint2 packedSize; // Offset: 256 + keen::uint2 targetSize; // Offset: 264 + keen::float2 inverseTargetSize; // Offset: 272 + keen::uint32 isFirstFrame; // Offset: 280 + keen::uint32 pixelSize; // Offset: 284 + keen::float32 depthSigma; // Offset: 288 +}; + +struct FfxShadowDenoiserPushConstants { + keen::uint32 stepSize; // Offset: 0 +}; + +struct FogMaterialParameters { + keen::float32 absorption; // Offset: 0 + keen::Color scattering; // Offset: 4 + keen::HdrColorRgb emission; // Offset: 8 + keen::float32 density; // Offset: 24 +}; + +struct FoliageAnimationAdvancedParameters { + keen::float32 branchPhaseOffset; // Offset: 0 + keen::float32 detailFrequency; // Offset: 4 + keen::float32 edgeAmplitude; // Offset: 8 + keen::float32 branchAmplitude; // Offset: 12 +}; + +struct FoliageAnimationModelParameters { + keen::float32 assetHeightFactor; // Offset: 0 + keen::float32 globalStiffnessFactor; // Offset: 4 + keen::ds::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 8 +}; + +struct GrassPushbackModelParameters { + keen::float32 bounceTime; // Offset: 0 + keen::uint32 bounceCount; // Offset: 4 + keen::float32 bounceDamping; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct GrassPushbackShaderParameters { + keen::float32 bounceDamping; // Offset: 0 + keen::float32 bounceFrequency; // Offset: 4 + keen::float32 oneOverBounceTime; // Offset: 8 + keen::float32 strength; // Offset: 12 +}; + +struct FoliageAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 precomputedBendScale; // Offset: 4 + keen::float32 globalStiffnessFactor; // Offset: 8 + keen::ds::FoliageAnimationAdvancedParameters advancedParameters; // Offset: 12 + keen::ds::GrassPushbackShaderParameters pushBack; // Offset: 28 +}; + +struct GrassAnimationModelParameters { + keen::float32 largeDisplacementWeight; // Offset: 0 + keen::float32 smallDisplacementWeight; // Offset: 4 +}; + +struct GrassAnimationShaderParameters { + keen::uint32 flags; // Offset: 0 + keen::float32 largeDisplacementWeight; // Offset: 4 + keen::float32 smallDisplacementWeight; // Offset: 8 + keen::float32 oneOverModelHeight; // Offset: 12 + keen::ds::GrassPushbackShaderParameters pushBack; // Offset: 16 +}; + +struct ForestFogFootprintMaterial { +}; + +struct ForestFogFootprintRenderMaterial { +}; + +struct RenderPushConstants2 { + keen::uint32 drawCommandBufferOffset; // Offset: 0 + keen::uint32 isLateCullingPass; // Offset: 4 + keen::uint32 drawIndex; // Offset: 8 + keen::uint32 isRunningOnSteamDeck; // Offset: 12 +}; + +struct VfxDrawPushConstants { + keen::uint32 baseDrawIndex; // Offset: 0 +}; + +struct RenderShadowPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::ds::GrassMovementData grassMovement; // Offset: 80 + keen::ds::SnowDisplacementData snowDisplacement; // Offset: 112 + keen::uint32 enableCloth; // Offset: 160 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 176 + keen::ds::TessellatedMaterialConstants buildingTessellation; // Offset: 192 + keen::uint32 blueNoiseSizeMask; // Offset: 208 + keen::uint2 blueNoiseOffset; // Offset: 212 + keen::uint32 useStochasticMaterialSampling; // Offset: 220 + keen::uint32 isVoxelMaterialDataValid; // Offset: 224 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 256 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 320 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 324 +}; + +struct RenderDepthConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraWorldPosition; // Offset: 64 + keen::float32 time; // Offset: 76 + keen::float32 prevTime; // Offset: 80 + keen::ds::GrassMovementData grassMovement; // Offset: 96 + keen::ds::GrassMovementData grassMovementPrevious; // Offset: 128 + keen::ds::SnowDisplacementData snowDisplacement; // Offset: 160 + keen::uint32 enableCloth; // Offset: 208 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::ds::TessellatedMaterialConstants buildingTessellation; // Offset: 240 + keen::float mipBias; // Offset: 256 + keen::uint32 blueNoiseSizeMask; // Offset: 260 + keen::uint2 blueNoiseOffset; // Offset: 264 + keen::uint32 useStochasticMaterialSampling; // Offset: 272 + keen::uint32 isVoxelMaterialDataValid; // Offset: 276 + keen::float2 cancelJitter; // Offset: 280 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 288 + keen::ds::PackedShaderWorldPositionUniform prevCameraPosition; // Offset: 304 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 320 + keen::GraphicsMatrix44 prevCameraCenteredToClipSpaceMatrix; // Offset: 384 + keen::uint32 buildingMaterialBlendingLayerCount; // Offset: 448 + keen::uint32 worldMaterialBlendingLayerCount; // Offset: 452 +}; + +struct RenderForwardConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 176 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 240 + keen::float3 cameraWorldPosition; // Offset: 256 + keen::float32 time; // Offset: 268 + keen::ds::RenderDebugConstants debugData; // Offset: 272 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 304 + keen::ds::RenderLightFactors lightFactors; // Offset: 336 +}; + +struct VoxelWorldShadowCascadeShaderData { + keen::GraphicsMatrix44 worldToShadowMatrix; // Offset: 0 +}; + +struct VoxelWorldShadowMapShaderData { + keen::StaticArray cascades; // Offset: 0 + keen::float2 shadowMapSize; // Offset: 128 + keen::float2 inverseShadowMapSize; // Offset: 136 + keen::uint32 isValid; // Offset: 144 +}; + +struct RenderTransparentConstants { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 112 + keen::float3 cameraWorldPosition; // Offset: 176 + keen::float32 time; // Offset: 188 + keen::ds::RenderDebugConstants debugData; // Offset: 192 + keen::uint32 fogDisabled; // Offset: 224 + keen::uint32 shadowsDisabled; // Offset: 228 + keen::uint32 manyLightsShadowsEnabled; // Offset: 232 + keen::uint32 measureOverdraw; // Offset: 236 + keen::uint32 isFsrEnabled; // Offset: 240 + keen::ds::RenderShadowAtlasShaderData atlasData; // Offset: 256 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 1344 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1376 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 1616 + keen::ds::RenderLightFactors lightFactors; // Offset: 1680 + keen::ds::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 1712 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 1872 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 1888 +}; + +struct RenderDebugPassConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 64 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 96 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 336 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 352 +}; + +struct ViewSpacePositionReconstructionData { + keen::GraphicsMatrix44 screenToTargetSpaceTransform; // Offset: 0 +}; + +struct Fog2ViewVolumeTransform { + keen::float32 depthRemap; // Offset: 0 + keen::float32 invDepthRemap; // Offset: 4 +}; + +struct Fog2ViewVolumeSampleParameters { + keen::ds::Fog2ViewVolumeTransform transform; // Offset: 0 + keen::float3 viewVolumeSize; // Offset: 16 +}; + +struct RenderForwardTransparentConstants { + keen::ds::ViewSpacePositionReconstructionData viewSpacePositionReconstructionData; // Offset: 0 + keen::ds::Fog2ViewVolumeSampleParameters viewVolumeSampleParameters; // Offset: 64 + keen::float2 linearDepthParameters; // Offset: 96 + keen::uint32 fogFlags; // Offset: 104 +}; + +typedef keen::RenderModelMaterialDataType RenderModelMaterialDataType; + +struct Fsr3UpscalerConstants { + keen::int2 iRenderSize; // Offset: 0 + keen::int2 iMaxRenderSize; // Offset: 8 + keen::int2 iDisplaySize; // Offset: 16 + keen::int2 iInputColorResourceDimensions; // Offset: 24 + keen::int2 iLumaMipDimensions; // Offset: 32 + keen::int iLumaMipLevelToUse; // Offset: 40 + keen::int iFrameIndex; // Offset: 44 + keen::float4 fDeviceToViewDepth; // Offset: 48 + keen::float2 fJitter; // Offset: 64 + keen::float2 fMotionVectorScale; // Offset: 72 + keen::float2 fDownscaleFactor; // Offset: 80 + keen::float2 fMotionVectorJitterCancellation; // Offset: 88 + keen::float fExposure; // Offset: 96 + keen::float fPreExposure; // Offset: 100 + keen::float fPreviousFramePreExposure; // Offset: 104 + keen::float fTanHalfFOV; // Offset: 108 + keen::float fJitterSequenceLength; // Offset: 112 + keen::float fDeltaTime; // Offset: 116 + keen::float fDynamicResChangeFactor; // Offset: 120 + keen::float fViewSpaceToMetersFactor; // Offset: 124 +}; + +struct Fsr3UpscalerSpdConstants { + keen::uint mips; // Offset: 0 + keen::uint numWorkGroups; // Offset: 4 + keen::uint2 workGroupOffset; // Offset: 8 + keen::uint2 renderSize; // Offset: 16 +}; + +struct Fsr3UpscalerRcasConstants { + keen::uint4 rcasConfig; // Offset: 0 +}; + +typedef keen::GiQuality GiQuality; + +typedef keen::GiProbeSize GiProbeSize; + +typedef keen::GiIrradianceProbeSize GiIrradianceProbeSize; + +typedef keen::GiDispatchSize GiDispatchSize; + +typedef keen::SdfBvhVariant SdfBvhVariant; + +struct GiQualitySettings { + keen::ds::GiProbeSize radianceAndDistancePixelCount; // Offset: 0 + keen::ds::GiIrradianceProbeSize irradiancePixelCount; // Offset: 4 + keen::uint atlasSizeX; // Offset: 8 + keen::uint atlasSizeY; // Offset: 12 + keen::uint globalRayBudget; // Offset: 16 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 20 + keen::uint frustumMinRaysPerProbe; // Offset: 24 + keen::uint frustumIncreasedMinRaysPerProbe; // Offset: 28 + keen::uint frustumMaxProbeRayCount; // Offset: 32 + keen::uint frustumRayBatchSize; // Offset: 36 + keen::uint worldCacheRayBatchSize; // Offset: 40 + keen::uint worldCacheMinRaysPerProbe; // Offset: 44 + keen::uint worldCacheMaxProbeRayCount; // Offset: 48 + keen::uint ambientRayBatchSize; // Offset: 52 + keen::uint ambientMinRaysPerProbe; // Offset: 56 + keen::uint ambientMaxProbeRayCount; // Offset: 60 + keen::uint ambientFroxelDepthSliceCount; // Offset: 64 + keen::float frustumLightCacheStartDiameter; // Offset: 68 + keen::float worldCacheLightCacheStartDiameter; // Offset: 72 + keen::uint maxNeighboursSharingHistory; // Offset: 76 + keen::uint maxNeighboursSharingRays; // Offset: 80 + keen::ds::GiDispatchSize neighbourCandidateDispatchSize; // Offset: 84 + keen::float fillAmbientProbeRayCountScale; // Offset: 88 + keen::bool fillAmbientProbesIteratively; // Offset: 92 + keen::uint minimumFilledRaysToAmbientProbes; // Offset: 96 + keen::uint prefilterRadianceLevelCount; // Offset: 100 + keen::float prefilterAngleScale; // Offset: 104 + keen::uint rayBinCascadeStartOffset; // Offset: 108 + keen::uint worldCacheRayBinCascadeStartOffset; // Offset: 112 + keen::ds::SdfBvhVariant sdfBvhVariant; // Offset: 116 +}; + +struct GiSunLightShaderData { + keen::float3 direction0; // Offset: 0 + keen::float3 directLight0; // Offset: 16 + keen::float3 indirectLight0; // Offset: 32 + keen::float3 direction1; // Offset: 48 + keen::float3 indirectLight1; // Offset: 64 +}; + +struct GiShadowShaderData { + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::ds::VolumetricShadowRuntimeData volumetricShadowRuntimeData; // Offset: 1088 + keen::uint32 flags; // Offset: 1328 +}; + +struct GiProbe { + keen::float3 pushedOutPosition; // Offset: 0 + keen::float size; // Offset: 12 + keen::float probeDataQuality; // Offset: 16 + keen::uint32 probeRadianceSum; // Offset: 20 + keen::uint32 rayListStartIndexAndProbeState; // Offset: 24 + keen::uint32 rayListRayCountAndRequestedRayCount; // Offset: 28 +}; + +struct GiMovingAverageEstimatorData { + keen::float3 shortMean; // Offset: 0 + keen::float vbbr; // Offset: 12 + keen::float3 variance; // Offset: 16 + keen::float inconsistency; // Offset: 28 +}; + +struct GiMovingAverageEstimatorDataEncoded { + keen::uint4 data; // Offset: 0 +}; + +typedef keen::GiProbeType GiProbeType; + +typedef keen::GiRayHitType GiRayHitType; + +struct GiRayHit { + keen::float2 octahedralNormal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 8 + keen::uint materialIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevelAndHitTypeAndRayIndex; // Offset: 28 +}; + +struct GiRayHitDecoded { + keen::float3 normal; // Offset: 0 + keen::uint rayHitIndex; // Offset: 12 + keen::float3 origin; // Offset: 16 + keen::uint sdfLevel; // Offset: 28 + keen::ds::GiRayHitType hitType; // Offset: 32 + keen::uint rayIndex; // Offset: 36 + keen::uint materialIndex; // Offset: 40 +}; + +struct GiRayHitCounters { + keen::uint terrainRayCount; // Offset: 0 + keen::uint buildingRayCount; // Offset: 4 + keen::uint skyRayCount; // Offset: 8 +}; + +struct GiRayEncoded { + keen::uint4 data; // Offset: 0 +}; + +struct GiRayDecoded { + keen::float3 direction; // Offset: 0 + keen::float hitDistance; // Offset: 12 + keen::float3 radiance; // Offset: 16 +}; + +struct GiRayListData { + keen::float3 origin; // Offset: 0 + keen::uint probeIndexAndRayCount; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint rayStorageIndex; // Offset: 28 +}; + +struct GiPrepareVisualisationParameters { + keen::float3 cameraOrigin; // Offset: 0 + keen::float3 farPlaneOrigin; // Offset: 16 + keen::float3 farPlaneX; // Offset: 32 + keen::float3 farPlaneY; // Offset: 48 + keen::uint2 outputSize; // Offset: 64 +}; + +struct VoxelMaterialBlendingConstants { + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::uint hasBakingData; // Offset: 496 + keen::uint hasSimpleWorldData; // Offset: 500 + keen::uint buildingMaterialCount; // Offset: 504 + keen::float exposureCorrection; // Offset: 508 +}; + +struct LightCacheCascadeShaderData { + keen::int3 origin; // Offset: 0 + keen::int3 scrollDelta; // Offset: 16 +}; + +struct LightCacheLookupShaderData { + keen::float3 gridOrigin; // Offset: 0 + keen::float cascadeCellStartDiameter; // Offset: 12 + keen::StaticArray cascades; // Offset: 16 +}; + +struct GiVisualisationParameters { + keen::ds::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 512 + keen::ds::GiShadowShaderData shadow; // Offset: 576 + keen::ds::LightCacheLookupShaderData primaryLightCache; // Offset: 1920 + keen::ds::LightCacheLookupShaderData worldCachelightCache; // Offset: 2320 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 2720 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 2848 + keen::uint2 screenSize; // Offset: 2912 + keen::float2 invScreenSize; // Offset: 2920 + keen::float3 cameraOrigin; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunDirection; // Offset: 2944 + keen::float exposure; // Offset: 2956 + keen::float exposureCorrection; // Offset: 2960 + keen::float3 farPlaneOrigin; // Offset: 2964 + keen::uint32 forceNeutralAlbedo; // Offset: 2976 + keen::float3 farPlaneX; // Offset: 2980 + keen::uint32 useWorldCache; // Offset: 2992 + keen::float3 farPlaneY; // Offset: 2996 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3008 + keen::float3 lightFactorSun; // Offset: 3012 + keen::float lightFactorEmissive; // Offset: 3024 + keen::float3 lightFactorSky; // Offset: 3028 + keen::float lightFactorGi; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 +}; + +struct GiCreateProbeDrawCommandPushConstants { + keen::uint32 vertexCount; // Offset: 0 +}; + +struct GiProbePrefilterLevels { + keen::uint probeSize; // Offset: 0 +}; + +struct GiProbeVisualisationParameters { + keen::StaticArray radianceMapProbeLevels; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 128 + keen::uint sphereBandPower; // Offset: 192 + keen::float exposure; // Offset: 196 + keen::uint32 drawPixelCage; // Offset: 200 + keen::uint32 hoverProbeIndex; // Offset: 204 + keen::uint32 selectedProbeIndex; // Offset: 208 + keen::uint32 pushOutByDistance; // Offset: 212 + keen::uint32 drawIrradiance; // Offset: 216 + keen::uint32 visibleRadianceSpecularMip; // Offset: 220 + keen::uint32 atlasSizeX; // Offset: 224 + keen::uint32 atlasSizeY; // Offset: 228 + keen::uint32 debugWorldCache; // Offset: 232 + keen::float probeSizeScale; // Offset: 236 + keen::uint32 drawMovingAverageEstimatorShortMean; // Offset: 240 + keen::uint32 drawMovingAverageEstimatorVbbr; // Offset: 244 + keen::uint32 drawMovingAverageEstimatorVariance; // Offset: 248 + keen::uint32 drawMovingAverageEstimatorInconsistency; // Offset: 252 +}; + +struct GiShootShadowRaysParameters { + keen::float3 sunDirection; // Offset: 0 + keen::uint32 maxRayCount; // Offset: 12 + keen::uint32 drawSunShadowRayProbeIndex; // Offset: 16 +}; + +struct GiProbeUpdateParameters { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint3 minMaxRayCount; // Offset: 400 + keen::uint32 maxDeleteListCount; // Offset: 412 + keen::uint32 debugEnabled; // Offset: 416 + keen::uint32 drawPushOut; // Offset: 420 + keen::uint32 framesTillProbeInactive; // Offset: 424 + keen::uint32 maxProbeCount; // Offset: 428 + keen::float probeRecycleAgeScale; // Offset: 432 + keen::float invFramesTillProbeInactive; // Offset: 436 + keen::float invFramesTillProbeQualityReached; // Offset: 440 + keen::uint32 useDirectionToOffsetProbes; // Offset: 444 +}; + +struct LightCacheFreeEntriesConstants { + keen::uint32 maxDeleteListCount; // Offset: 0 +}; + +struct GiProbeShootRaysParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 400 + keen::float2 debugScreenSizeInv; // Offset: 464 + keen::uint32 frameId; // Offset: 472 + keen::uint32 rotateRays; // Offset: 476 + keen::uint32 maxRayCount; // Offset: 480 + keen::uint32 writeOutDirection; // Offset: 484 + keen::uint32 traceBvhSdfInstances; // Offset: 488 + keen::uint32 useSortedBins; // Offset: 492 + keen::uint32 showRayBins; // Offset: 496 + keen::uint32 debugSelectedProbeIndex; // Offset: 500 + keen::uint2 debugMouseScreenPosition; // Offset: 504 + keen::uint2 rayBinDirectionIndexRange; // Offset: 512 + keen::uint rayBinCascadeStartOffset; // Offset: 520 +}; + +struct GiProbeSortHitsParameters { + keen::uint32 maxRayCount; // Offset: 0 +}; + +struct GiProbeShadeHitsParameters { + keen::ds::VoxelMaterialBlendingConstants voxelMaterialBlending; // Offset: 0 + keen::ds::LightCacheLookupShaderData primaryLightCache; // Offset: 512 + keen::ds::LightCacheLookupShaderData worldCachelightCache; // Offset: 912 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 1312 + keen::ds::GiShadowShaderData shadow; // Offset: 1376 + keen::ds::GiSunLightShaderData sun; // Offset: 2720 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 2800 + keen::float3 sunDirection; // Offset: 2928 + keen::float lightFactorPointLights; // Offset: 2940 + keen::float3 sunColor; // Offset: 2944 + keen::uint32 maxHitCount; // Offset: 2956 + keen::float3 lightFactorSky; // Offset: 2960 + keen::float lightFactorEmissive; // Offset: 2972 + keen::uint2 debugRaysRange; // Offset: 2976 + keen::float lightFactorGi; // Offset: 2984 + keen::uint32 enablePointLights; // Offset: 2988 + keen::uint32 enablePointLightShadows; // Offset: 2992 + keen::float pointLightInfluenceScale; // Offset: 2996 + keen::uint32 traceBvhSdfInstances; // Offset: 3000 + keen::uint32 forceNeutralAlbedo; // Offset: 3004 + keen::uint32 isFogEnabled; // Offset: 3008 + keen::uint32 maxRayCount; // Offset: 3012 + keen::uint32 useWorldCache; // Offset: 3016 + keen::uint32 useFrustumProbesAsWorldCache; // Offset: 3020 + keen::float exposure; // Offset: 3024 + keen::float primaryCacheExposureCorrection; // Offset: 3028 + keen::float worldCacheExposureCorrection; // Offset: 3032 + keen::uint32 drawRaysInRange; // Offset: 3036 + keen::uint32 drawRaysProbeIndex; // Offset: 3040 + keen::uint32 atlasSizeX; // Offset: 3044 + keen::uint32 atlasSizeY; // Offset: 3048 + keen::uint32 applyWetness; // Offset: 3052 + keen::float3 cameraWorldPosition; // Offset: 3056 + keen::uint32 applySnow; // Offset: 3068 + keen::uint32 applyCloudMap; // Offset: 3072 +}; + +struct GiRasterizeIrradianceParameters { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::StaticArray radianceMapProbeLevels; // Offset: 400 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 528 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 592 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 656 + keen::GraphicsMatrix44 previousCameraCenteredToClipSpaceMatrix; // Offset: 720 + keen::float3 cameraWorldPosition; // Offset: 784 + keen::uint32 radianceMipsCount; // Offset: 796 + keen::float3 previousCameraWorldPosition; // Offset: 800 + keen::uint32 useStochasticSampling; // Offset: 812 + keen::uint2 screenSize; // Offset: 816 + keen::float2 invScreenSize; // Offset: 824 + keen::uint2 blueNoiseOffset; // Offset: 832 + keen::float previousExposureCorrection; // Offset: 840 + keen::float exposureCorrection; // Offset: 844 + keen::float2 linearDepthParameters; // Offset: 848 + keen::float exposure; // Offset: 856 + keen::uint32 useStochasticReflectedRadiance; // Offset: 860 + keen::uint32 useStochasticReflectedIrradiance; // Offset: 864 + keen::uint32 stochasticFrameId; // Offset: 868 + keen::uint32 useHistory; // Offset: 872 + keen::uint32 atlasSizeX; // Offset: 876 + keen::uint32 atlasSizeY; // Offset: 880 + keen::uint32 colorCodeReprojection; // Offset: 884 + keen::uint2 mousePos; // Offset: 888 + keen::uint32 drawPixelCage; // Offset: 896 + keen::uint32 groundTruthSpecular; // Offset: 900 + keen::uint32 writeToSceneBrightness; // Offset: 904 +}; + +struct GiVisualizeIrradianceParameters { + keen::uint2 screenSize; // Offset: 0 + keen::float giLightFactor; // Offset: 8 + keen::float exposure; // Offset: 12 +}; + +struct GiProbeBlendRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float previousExposureInverse; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::float maxRayRadiance; // Offset: 12 + keen::float warmupProbeQualityBorderline; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 + keen::uint32 debugProbeIndex; // Offset: 28 + keen::float varianceGuidedRayCountThreshold; // Offset: 32 +}; + +struct GiProbeBlendWorldCacheRadianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float maxRayRadiance; // Offset: 4 + keen::uint32 debugProbeIndex; // Offset: 8 + keen::float previousExposureInverse; // Offset: 12 + keen::float exposure; // Offset: 16 +}; + +struct GiBlendNeighbourRadianceProbesParameters { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::float exposure; // Offset: 400 + keen::float exposureCorrectionFactor; // Offset: 404 + keen::uint32 blendIterations; // Offset: 408 + keen::uint32 blendRaysIterations; // Offset: 412 + keen::uint32 maxProbeCount; // Offset: 416 + keen::uint32 drawNeighbourBlendProbeIndex; // Offset: 420 + keen::uint32 showBlendPixels; // Offset: 424 + keen::uint32 onlyShowDebugInfo; // Offset: 428 + keen::uint32 atlasSizeX; // Offset: 432 + keen::uint32 atlasSizeY; // Offset: 436 + keen::float allowOccludedPixelsAfterDistance; // Offset: 440 + keen::float occludedPixelsDepthBias; // Offset: 444 + keen::uint32 debugNeighbourPixelProjection; // Offset: 448 + keen::float2 debugPixelProjectionParameters; // Offset: 452 +}; + +struct GiBlendNeighbourRadianceProbesRootConstantData { + keen::uint randomSeed; // Offset: 0 + keen::float doNotShareProbesBelowQuality; // Offset: 4 + keen::uint blendIterations; // Offset: 8 +}; + +struct GiProbeShadeHitsPipelineRootConstantData { + keen::uint rayHitType; // Offset: 0 + keen::uint probeType; // Offset: 4 +}; + +struct GiProbePrepareShadeIndirectDispatchesParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint shadowDispatchSize; // Offset: 4 + keen::uint prepareShadowRays; // Offset: 8 +}; + +struct GiProbePrefilterRadianceParameters { + keen::uint2 lowResolutionSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 sourceSize; // Offset: 16 + keen::float invProbeSize; // Offset: 24 + keen::float invSourceProbeSize; // Offset: 28 + keen::float sampleScale; // Offset: 32 + keen::float linearEnergyScale; // Offset: 36 + keen::float cosAngleScale; // Offset: 40 + keen::uint maxProbeCount; // Offset: 44 + keen::uint atlasSizeX; // Offset: 48 + keen::uint atlasSizeY; // Offset: 52 +}; + +struct GiProbeBlendIrradianceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::float updateFromPreviousExposure; // Offset: 4 + keen::float exposure; // Offset: 8 + keen::uint32 debugProbeIndex; // Offset: 12 + keen::uint32 highlightNewProbes; // Offset: 16 + keen::uint32 atlasSizeX; // Offset: 20 + keen::uint32 atlasSizeY; // Offset: 24 +}; + +struct GiProbeBlendDistanceParameters { + keen::uint32 maxProbeCount; // Offset: 0 + keen::uint32 atlasSizeX; // Offset: 4 + keen::uint32 atlasSizeY; // Offset: 8 + keen::uint32 frameId; // Offset: 12 + keen::uint32 debugProbeIndex; // Offset: 16 + keen::float exposure; // Offset: 20 +}; + +struct GiProbeDebugData { + keen::uint isCoveringPixel; // Offset: 0 +}; + +struct GiDebugProbeInfo { + keen::float3 pushedOutPosition; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint3 cellCoordinate; // Offset: 16 + keen::uint cascadeIndex; // Offset: 28 + keen::uint requestedRayCount; // Offset: 32 + keen::uint rayCount; // Offset: 36 + keen::float probeQuality; // Offset: 40 + keen::uint isNew; // Offset: 44 +}; + +struct ShSpectralCoeffs { + keen::float4 r; // Offset: 0 + keen::float4 g; // Offset: 16 + keen::float4 b; // Offset: 32 +}; + +struct GiPopulateRayListPrepareIndirectParameters { + keen::uint dispatchSize; // Offset: 0 +}; + +struct GiPopulateRayListParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint useUniformSamplingAfterFrames; // Offset: 424 + keen::uint validRadianceMaps; // Offset: 428 + keen::float minLuminanceSumForRayGuiding; // Offset: 432 + keen::uint sortRaysIntoBins; // Offset: 436 + keen::uint rayBinCascadeStartOffset; // Offset: 440 + keen::uint atlasSizeX; // Offset: 444 + keen::uint atlasSizeY; // Offset: 448 +}; + +struct GiPopulateWorldCacheRayListParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRayCount; // Offset: 400 + keen::uint maxProbeCount; // Offset: 404 + keen::uint rayBatchSize; // Offset: 408 + keen::uint frameId; // Offset: 412 + keen::uint rotateRays; // Offset: 416 + keen::float randomDirectionScale; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 + keen::uint atlasSizeX; // Offset: 432 + keen::uint atlasSizeY; // Offset: 436 +}; + +struct GiCullRequestedRaysWithRayBudgetParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::uint maxRaysPerProbe; // Offset: 400 + keen::uint maxRayCount; // Offset: 404 + keen::float frustumRaysScaleUpBudgetThreshold; // Offset: 408 + keen::uint rayBatchSize; // Offset: 412 + keen::uint maxProbeCount; // Offset: 416 + keen::uint debugEnabled; // Offset: 420 + keen::uint sortRaysIntoBins; // Offset: 424 + keen::uint rayBinCascadeStartOffset; // Offset: 428 +}; + +struct GiPrepareRayBinsParameters { + keen::uint maxProbeCount; // Offset: 0 +}; + +struct GiCalculateBinDirectionOffsetParameters { + keen::uint maxRayCount; // Offset: 0 +}; + +struct GiSortRaysIntoBinsParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint debugSorting; // Offset: 8 +}; + +struct GiCullRequestedAmbientRaysWithRayBudgetParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint maxProbeCount; // Offset: 4 + keen::uint rayBatchSize; // Offset: 8 + keen::uint debugEnabled; // Offset: 12 +}; + +struct GiWorldCacheBlendSphericalHarmonicsIrradianceParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint debugEnabled; // Offset: 4 +}; + +struct GiCleanupCacheParameters { + keen::uint maxProbeCount; // Offset: 0 + keen::uint atlasSizeX; // Offset: 4 + keen::uint atlasSizeY; // Offset: 8 +}; + +struct GiFillAmbientProbesParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::float3 referencePosition; // Offset: 256 + keen::float exposureCorrection; // Offset: 268 + keen::uint32 maxHitCount; // Offset: 272 + keen::float maxRayCountScale; // Offset: 276 + keen::uint32 minFillRayCount; // Offset: 280 + keen::uint32 useReverseRayReprojection; // Offset: 284 + keen::uint32 debugSelectedProbeIndex; // Offset: 288 + keen::uint32 debugEnabled; // Offset: 292 + keen::uint32 atlasSizeX; // Offset: 296 + keen::uint32 atlasSizeY; // Offset: 300 +}; + +struct GiAmbientConvergeParameters { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::uint32 shouldUseHistory; // Offset: 256 + keen::float hysteresis; // Offset: 260 + keen::uint minRaysPerProbe; // Offset: 264 + keen::uint maxRaysPerProbe; // Offset: 268 + keen::uint32 atlasSizeX; // Offset: 272 + keen::uint32 atlasSizeY; // Offset: 276 + keen::float previousExposureCorrection; // Offset: 280 + keen::float exposure; // Offset: 284 + keen::uint32 debugProbeHighlightEnabled; // Offset: 288 + keen::uint32 debugSelectedProbeId; // Offset: 292 + keen::uint32 debugEnabled; // Offset: 296 + keen::uint32 debugStarvingProbes; // Offset: 300 +}; + +struct GiCalculateAmbientProbesVisibilityParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::ds::GpuCullingFrustum frustum; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 160 + keen::StaticArray lastCascadeGridSpaceOffset; // Offset: 288 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 416 + keen::float3 cameraPosition; // Offset: 544 + keen::uint32 shouldUpdateCameraVisibility; // Offset: 556 + keen::float2 linearDepthParameters; // Offset: 560 + keen::uint32 debugShowVisibilityRays; // Offset: 568 + keen::uint32 debugActiveCascade; // Offset: 572 +}; + +struct GiAmbientProbeVisualisationParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 64 + keen::StaticArray cascadeOriginAndSpacing; // Offset: 192 + keen::uint sphereBandPower; // Offset: 320 + keen::float exposure; // Offset: 324 + keen::uint cascadeIndex; // Offset: 328 + keen::uint debugSelectedProbeIndex; // Offset: 332 + keen::uint showVisibilityMask; // Offset: 336 + keen::uint renderConvergedTexture; // Offset: 340 + keen::uint useGridCoordinatesWithoutOffset; // Offset: 344 + keen::uint showWarmupProbes; // Offset: 348 +}; + +struct GiAmbientDebugProbeInfo { + keen::uint3 cellCoordinate; // Offset: 0 + keen::uint probeIndex; // Offset: 12 + keen::uint cascadeIndex; // Offset: 16 + keen::uint rayIntersectedProbeCount; // Offset: 20 +}; + +struct GiPopulateAmbientRayListParameters { + keen::uint maxRayCount; // Offset: 0 + keen::uint frameId; // Offset: 4 + keen::uint rotateRays; // Offset: 8 + keen::float randomDirectionScale; // Offset: 12 + keen::uint rayBatchSize; // Offset: 16 + keen::uint atlasSizeX; // Offset: 20 + keen::uint atlasSizeY; // Offset: 24 +}; + +struct GiAmbientRayListData { + keen::float3 origin; // Offset: 0 + keen::uint rayListStartIndex; // Offset: 12 + keen::float3 direction; // Offset: 16 + keen::uint probeRayCount; // Offset: 28 +}; + +struct GiAmbientProbesLookupData { + keen::StaticArray cascadeOriginAndSpacing; // Offset: 0 + keen::StaticArray cascadeGridSpaceOffset; // Offset: 128 + keen::StaticArray gridSpaceReferencePosition; // Offset: 256 + keen::float3 referencePosition; // Offset: 384 +}; + +struct GiAmbientFroxelVolumeParameters { + keen::float3 depthRemap; // Offset: 0 + keen::uint tileSize; // Offset: 12 + keen::uint3 froxelVolumeSize; // Offset: 16 + keen::float near; // Offset: 28 + keen::float3 invFroxelVolumeSize; // Offset: 32 + keen::float far; // Offset: 44 + keen::float2 linearDepthParameters; // Offset: 48 + keen::uint2 screenSize; // Offset: 56 +}; + +struct GiFillAmbientFroxelVolumeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix44 previousViewProjectionMatrix; // Offset: 128 + keen::GraphicsMatrix44 previousInvViewProjectionMatrix; // Offset: 192 + keen::ds::GiAmbientProbesLookupData ambientProbeLookup; // Offset: 256 + keen::ds::GiAmbientFroxelVolumeParameters froxelData; // Offset: 656 + keen::float3 cameraPosition; // Offset: 720 + keen::float exposure; // Offset: 732 + keen::uint2 blueNoiseOffset; // Offset: 736 + keen::float2 invScreenSize; // Offset: 744 + keen::float3 previousCameraPosition; // Offset: 752 + keen::uint historyValid; // Offset: 764 + keen::float previousToCurrentExposure; // Offset: 768 + keen::uint debugShowFroxels; // Offset: 772 + keen::uint debugDrawFroxelZIndex; // Offset: 776 + keen::uint debugColorCodeReprojection; // Offset: 780 +}; + +struct GiProbePrepareFillRaysIndirectDispatchParameters { + keen::uint dispatchSize; // Offset: 0 + keen::uint minimumAllowedRays; // Offset: 4 + keen::float rayCountScale; // Offset: 8 +}; + +struct GiFillAmbientProbesWithAmbientRaysRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiCalculateAmbientProbesVisibilityRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +struct GiAmbientConvergeRootConstantData { + keen::uint activeCascadeIndex; // Offset: 0 +}; + +typedef keen::GiDebugStep GiDebugStep; + +typedef keen::GiDebugProbeType GiDebugProbeType; + +struct GizmoMaterial { +}; + +struct GizmoRfxRenderMaterial { + keen::float4 dummy; // Offset: 0 +}; + +struct GpuCounterFillCommand { + keen::uint32 byteOffset; // Offset: 0 + keen::uint32 value; // Offset: 4 +}; + +struct FillBufferParameters { + keen::uint32 commandCount; // Offset: 0 +}; + +typedef keen::GpuDataCacheImageStreamingState GpuDataCacheImageStreamingState; + +struct GpuDataCacheImageStreamingMemoryBlockInfo { + keen::uint64 sizeInBytes; // Offset: 0 +}; + +struct GpuDataCacheMemoryRangeInfo { + keen::uint8 blockIndex; // Offset: 0 + keen::uint64 offset; // Offset: 8 + keen::uint64 size; // Offset: 16 +}; + +typedef keen::GpuImageStreamingDataLoadingState GpuImageStreamingDataLoadingState; + +struct GpuDataCacheImageStreamingImageInfo { + keen::uint32 handle; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::TextureType type; // Offset: 48 + keen::PixelFormat format; // Offset: 49 + keen::ContentHash content; // Offset: 52 + keen::uint3 originalSize; // Offset: 68 + keen::uint8 mipTailStartLevel; // Offset: 80 + keen::float32 requiredLevel; // Offset: 84 + keen::uint8 currentLevel; // Offset: 88 + keen::uint32 sampledLevelsMask; // Offset: 92 + keen::ds::GpuImageStreamingDataLoadingState state; // Offset: 96 + keen::ds::GpuDataCacheMemoryRangeInfo memoryRange; // Offset: 104 + keen::ds::GpuDataCacheMemoryRangeInfo loadingMemoryRange; // Offset: 128 + keen::uint64 estimatedRequiredMemorySize; // Offset: 152 + keen::uint64 actualRequiredMemorySize; // Offset: 160 +}; + +typedef keen::ImageStreamingAlgorithm ImageStreamingAlgorithm; + +struct GpuDataCacheImageStreamingStateMessage { + keen::ds::GpuDataCacheImageStreamingState state; // Offset: 0 + keen::bool isSamplerFeedbackResetEnabled; // Offset: 1 + keen::uint64 currentUploadBudget; // Offset: 8 + keen::uint64 uploadBudget; // Offset: 16 + keen::ds::ImageStreamingAlgorithm algorithm; // Offset: 24 + keen::DsArray memoryBlocks; // Offset: 32 + keen::uint64 totalMemorySize; // Offset: 72 + keen::uint64 allocatedMemorySize; // Offset: 80 + keen::uint64 loadingMemorySize; // Offset: 88 + keen::DsArray images; // Offset: 96 + keen::uint64 estimatedWorkingSetSize; // Offset: 136 + keen::uint64 actualWorkingSetSize; // Offset: 144 +}; + +struct GpuDataCacheSetSamplerFeedbackResetMessage { + keen::bool enableReset; // Offset: 0 +}; + +struct GpuDataCacheSetImageStreamingAlgorithmMessage { + keen::ds::ImageStreamingAlgorithm algorithm; // Offset: 0 +}; + +struct GpuDataCacheFlushImageStreamingMemoryMessage { +}; + +struct GpuDebugRendererVertex { + keen::float3 position; // Offset: 0 + keen::uint32 color; // Offset: 12 +}; + +typedef keen::GpuDebugRendererContextCounter GpuDebugRendererContextCounter; + +struct GpuDebugRendererContextState { + keen::uint32 lineCounterOffset; // Offset: 0 + keen::uint32 maxLineCount; // Offset: 4 +}; + +struct GpuDebugRendererDrawParameters { + keen::GraphicsMatrix44 mvp; // Offset: 0 +}; + +struct GpuModel { + keen::uint32 nodeModelIndex0; // Offset: 0 + keen::uint32 nodeModelIndex1; // Offset: 4 + keen::uint32 nodeModelIndex2; // Offset: 8 + keen::uint32 nodeModelIndex3; // Offset: 12 + keen::uint32 nodeModelIndex4; // Offset: 16 + keen::uint32 nodeModelIndex5; // Offset: 20 +}; + +struct GrassMovementUpdateParameters { + keen::uint2 textureSize; // Offset: 0 + keen::uint lastTextureId; // Offset: 8 + keen::uint bodyCounterOffset; // Offset: 12 + keen::float2 size; // Offset: 16 + keen::float2 oneOverSize; // Offset: 24 + keen::ds::PackedShaderWorldPositionUniform currentOrigin; // Offset: 32 + keen::float historyStrength; // Offset: 48 + keen::ds::PackedShaderWorldPositionUniform lastOrigin; // Offset: 64 + keen::float deltaTime; // Offset: 80 + keen::float2 oneOverTextureSize; // Offset: 84 +}; + +struct GrassMovementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float outerRadius; // Offset: 12 + keen::float innerRadius; // Offset: 16 + keen::float strength; // Offset: 20 +}; + +struct GridMaterial { + keen::float32 lineSize; // Offset: 0 + keen::float32 axisSize; // Offset: 4 + keen::Color color0; // Offset: 8 + keen::Color color1; // Offset: 12 +}; + +struct GridRfxRenderMaterial { + keen::float32 axisSize; // Offset: 0 + keen::float32 lineSize; // Offset: 4 + keen::float4 color0; // Offset: 8 + keen::float4 color1; // Offset: 24 +}; + +struct VfxGridMaterial { + keen::float32 cellSize; // Offset: 0 + keen::Color color; // Offset: 4 +}; + +struct VfxGridRfxRenderMaterial { + keen::float3 color; // Offset: 0 + keen::float32 invCellSize; // Offset: 12 +}; + +typedef keen::IblSourceType IblSourceType; + +struct Ibl { + keen::ds::IblSourceType sourceType; // Offset: 0 + keen::uint16 diffuseOutputSize; // Offset: 2 + keen::uint16 diffuseSampleCount; // Offset: 4 + keen::uint16 specularSampleCount; // Offset: 6 +}; + +struct IblResource { + keen::uint16 diffuseSize; // Offset: 0 + keen::ContentHash diffuseData; // Offset: 4 + keen::uint16 specularSize; // Offset: 20 + keen::uint8 specularLevelCount; // Offset: 22 + keen::ContentHash specularData; // Offset: 24 +}; + +struct SpecularIblLutResource { + keen::uint16 size; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::ContentHash content; // Offset: 4 +}; + +struct CreateDispatchArgsShaderData { + keen::uint targetThreadGroupSize; // Offset: 0 + keen::uint targetBufferOffset; // Offset: 4 + keen::uint threadCountOffsetX; // Offset: 8 + keen::uint threadCountPerSourceCount; // Offset: 12 +}; + +struct LightCacheFrustumTestShaderParameters { + keen::float3 cellCenter; // Offset: 0 + keen::float32 cellSize; // Offset: 12 + keen::float3 sunDirection; // Offset: 16 +}; + +struct LightCacheFrustumTestShaderResult { + keen::StaticArray planes; // Offset: 0 + keen::uint32 hits; // Offset: 144 +}; + +struct LightCacheCounters { + keen::uint32 allocationCount; // Offset: 0 + keen::uint32 maxAllocationCount; // Offset: 4 + keen::uint32 freeListIndex; // Offset: 8 + keen::uint32 visibleCount; // Offset: 12 + keen::uint32 deleteCount; // Offset: 16 +}; + +struct LightCacheAllocateGiProbeParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::float3 cameraPosition; // Offset: 480 + keen::uint32 frameId; // Offset: 492 + keen::uint2 blueNoiseOffset; // Offset: 496 + keen::uint32 allocateDownsample; // Offset: 504 + keen::uint cascadeCellCount; // Offset: 508 + keen::uint2 mousePosition; // Offset: 512 + keen::uint showCascadeTransitions; // Offset: 520 +}; + +struct LightCachePrepareAllocateParameters { + keen::uint32 maxEntryCount; // Offset: 0 +}; + +struct LightCachePrepareEntriesParameters { + keen::uint32 entryCount; // Offset: 0 +}; + +struct LightCacheRecycleEntriesParameters { + keen::uint32 maxEntryCount; // Offset: 0 + keen::float entryRecycleAgeScale; // Offset: 4 +}; + +struct LightCacheAllocateEntriesParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 64 + keen::uint2 screenSize; // Offset: 464 + keen::float2 invScreenSize; // Offset: 472 + keen::uint32 allocateDownsample; // Offset: 480 + keen::uint32 frameId; // Offset: 484 + keen::uint32 cascadeCellCount; // Offset: 488 +}; + +struct LightCacheAllocateEntriesAtPositionsParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 + keen::ds::LightCacheLookupShaderData primaryLightCache; // Offset: 400 + keen::float maxRange; // Offset: 800 + keen::uint32 useDirectionBuffer; // Offset: 804 + keen::uint32 usePrimaryCache; // Offset: 808 + keen::uint32 maxEntryCount; // Offset: 812 + keen::float3 cameraPosition; // Offset: 816 + keen::uint32 minCascade; // Offset: 828 +}; + +struct LightCacheScrollCascadesParameters { + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 0 +}; + +struct LightCacheDebugParameters { + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint2 screenSize; // Offset: 64 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 80 + keen::uint32 totalCellCount; // Offset: 480 + keen::uint32 frameId; // Offset: 484 +}; + +struct LightCacheLightCullingIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 + keen::uint lightCacheLightListOffset; // Offset: 8 + keen::uint lightCacheEntryCount; // Offset: 12 +}; + +struct LightCacheLightCullingUniformBuffer { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCountOffset; // Offset: 400 + keen::uint maxLightCount; // Offset: 404 + keen::uint maxLightCacheEntries; // Offset: 408 + keen::uint lightCacheEntries; // Offset: 412 +}; + +struct LightCacheLightCullingResultUniformBuffer { + keen::ds::LightCacheLookupShaderData lightCacheLookup; // Offset: 0 + keen::uint lightCacheDataEntryCount; // Offset: 400 +}; + +struct LightCacheLightCullingDebugParameters { + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 0 + keen::uint2 targetSize; // Offset: 64 + keen::float2 invTargetSize; // Offset: 72 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 80 +}; + +typedef keen::ManyLightsShadowsQuality ManyLightsShadowsQuality; + +struct ManyLightsShadowsQualitySettings { + keen::uint atlasSizeX; // Offset: 0 + keen::uint atlasSizeY; // Offset: 4 + keen::uint shadowAtlasTextureSize; // Offset: 8 + keen::float shadowMapBias; // Offset: 12 + keen::float shadowMapNormalBias; // Offset: 16 + keen::float gaussianScale; // Offset: 20 + keen::float exponentialShadowConstantX; // Offset: 24 + keen::float exponentialShadowConstantY; // Offset: 28 + keen::ds::SdfBvhVariant sdfBvhVariant; // Offset: 32 +}; + +struct ManyLightsShadowsIndirectCounter { + keen::uint activeLightCount; // Offset: 0 + keen::uint lightCount; // Offset: 4 +}; + +struct ManyLightsShadowsIndirectArgument { + keen::uint3 updateShadowAtlas; // Offset: 0 + keen::uint3 updateLightCache; // Offset: 12 + keen::uint3 activeLight32; // Offset: 24 + keen::uint3 atlasBorders; // Offset: 36 +}; + +struct ManyLightsPackedSdfShaderData { + keen::float4 sphere; // Offset: 0 + keen::uint modelPartIndex; // Offset: 16 + keen::uint instancePartIndex; // Offset: 20 +}; + +struct ManyLightsShadowsAtlasParameters { + keen::uint2 atlasSize; // Offset: 0 + keen::uint atlasMaxEntries; // Offset: 8 + keen::uint atlasHashMapSize; // Offset: 12 + keen::uint atlasElementSize; // Offset: 16 + keen::uint atlasElementTexelCount; // Offset: 20 + keen::uint atlasElementBorder; // Offset: 24 + keen::float2 atlasExponentialShadowConstant; // Offset: 32 + keen::float2 atlasExponentialShadowChebyshevConstants; // Offset: 40 + keen::float atlasNormalBias; // Offset: 48 + keen::float atlasShadowMapBias; // Offset: 52 +}; + +struct ManyLightsShadowsUniformBuffer { + keen::GraphicsMatrix44 invViewProj; // Offset: 0 + keen::GraphicsMatrix43 viewMatrix; // Offset: 64 + keen::uint2 bufferDimensions; // Offset: 112 + keen::float2 invBufferDimensions; // Offset: 120 + keen::uint frameId; // Offset: 128 + keen::uint lightCount; // Offset: 132 + keen::uint maxLightCount; // Offset: 136 + keen::float gaussianBlurScale; // Offset: 140 + keen::uint enableOcclusionCulling; // Offset: 144 + keen::ds::GpuOcclusionCullingShaderData occlusionCulling; // Offset: 160 + keen::ds::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 224 + keen::uint2 mousePosition; // Offset: 288 + keen::uint outputUseNDotL; // Offset: 296 + keen::uint outputDrawCellBoxes; // Offset: 300 + keen::uint outputShowLightPosition; // Offset: 304 + keen::uint showLighWithRealSize; // Offset: 308 + keen::float sizeOfDebugSphere; // Offset: 312 +}; + +struct ManyLightsShadowsResultUniformBuffer { + keen::uint enabled; // Offset: 0 + keen::ds::ManyLightsShadowsAtlasParameters atlasParameters; // Offset: 16 + keen::uint showLightInfluence; // Offset: 80 + keen::uint useAtlasSampler; // Offset: 84 + keen::uint useAtlasBias; // Offset: 88 +}; + +struct ManyLightsGatherSdfShaderParameters { + keen::uint sdfInstanceCount; // Offset: 0 +}; + +struct GaussianRootConstantData { + keen::uint2 blurVector; // Offset: 0 +}; + +typedef keen::ObjectReference MaterialReference; + +typedef keen::ModelType ModelType; + +typedef keen::ModelTangentSpaceType ModelTangentSpaceType; + +struct ModelMaterialMapEntry { + keen::ds::string name; // Offset: 0 + keen::ds::MaterialReference material; // Offset: 40 +}; + +typedef keen::ObjectReference ModelBlendShapeIdReference; + +struct ModelBlendShapeIdDirectory { +}; + +struct ModelBlendShapeMapEntry { + keen::ds::string name; // Offset: 0 + keen::ds::ModelBlendShapeIdReference id; // Offset: 40 +}; + +struct ModelConverterBlendShapeNames { + keen::DsArray names; // Offset: 0 + keen::DsArray selection; // Offset: 40 + keen::DsArray ids; // Offset: 80 +}; + +struct ModelLodGenerationParameters { + keen::uint32 maxLod; // Offset: 0 + keen::float32 triangleReductionPerStep; // Offset: 4 + keen::float32 maxErrorPerStep; // Offset: 8 +}; + +struct ModelDisplacementOverrides { + keen::float32 displacementScale; // Offset: 0 + keen::float32 displacementOffset; // Offset: 4 +}; + +struct ModelClothColliderSphere { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 +}; + +struct ModelClothColliderSphereInstance { + keen::uint32 instanceIndex; // Offset: 16 +}; + +struct ModelClothColliderCapsule { + keen::ds::ModelClothColliderSphere sphere0; // Offset: 0 + keen::ds::ModelClothColliderSphere sphere1; // Offset: 16 +}; + +struct ModelClothColliderCapsuleInstance { + keen::uint32 instanceIndex; // Offset: 32 +}; + +struct ClothCollider { + keen::ObjectReference hierarchy; // Offset: 0 +}; + +struct ModelClothSleeveCapsuleCollider { + keen::ds::string upperBoneName; // Offset: 32 + keen::ds::string lowerBoneName; // Offset: 72 + keen::uint32 instanceIndex; // Offset: 112 +}; + +struct ModelChain { + keen::ds::string rootBoneName; // Offset: 0 + keen::bool propagateRotation; // Offset: 40 + keen::float32 gravity; // Offset: 44 + keen::float32 mass; // Offset: 48 + keen::float32 dragCoefficient; // Offset: 52 + keen::float32 liftCoefficient; // Offset: 56 + keen::float32 stiffnessFrequencey; // Offset: 60 + keen::float32 damping; // Offset: 64 + keen::float32 motionConstraintRadius; // Offset: 68 + keen::float32 linearInertia; // Offset: 72 + keen::float32 angularInertia; // Offset: 76 + keen::float32 centrifugalInertia; // Offset: 80 + keen::float32 phasesStiffness; // Offset: 84 + keen::float32 phasesStiffnessMultiplier; // Offset: 88 + keen::float32 phasesCompressionLimit; // Offset: 92 + keen::float32 phasesStretchLimit; // Offset: 96 + keen::float32 collisionFriction; // Offset: 100 +}; + +struct ModelChainBundle { +}; + +typedef keen::ModelModelChainBoneConstraintAxis ModelModelChainBoneConstraintAxis; + +struct ModelChainBoneConstraint { + keen::ds::string boneName; // Offset: 0 + keen::ds::ModelModelChainBoneConstraintAxis axis; // Offset: 40 + keen::float32 minAngle; // Offset: 44 + keen::float32 maxAngle; // Offset: 48 +}; + +struct ModelClothColliderBoneAttachment { + keen::ds::string boneName; // Offset: 0 + keen::float32 weight; // Offset: 40 +}; + +struct ModelMaterial { + keen::ds::string name; // Offset: 0 + keen::ds::MaterialReference material; // Offset: 40 +}; + +struct ModelBlendshape { + keen::ds::string name; // Offset: 0 + keen::ds::ModelBlendShapeIdReference id; // Offset: 40 +}; + +struct ModelClothColliderContainer { +}; + +struct Model { + keen::ObjectReference hierarchy; // Offset: 0 + keen::ds::string export_node; // Offset: 16 + keen::float32 scale; // Offset: 56 + keen::float32 k3dScale; // Offset: 60 + keen::bool create_backfaces; // Offset: 64 + keen::bool support_raytracing; // Offset: 65 + keen::ds::string raytrace_node_name; // Offset: 72 + keen::bool rotateY; // Offset: 112 + keen::float32 lodValue; // Offset: 116 + keen::ds::ModelLodGenerationParameters generatedLods; // Offset: 120 + keen::bool ignoreClothCollider; // Offset: 132 + keen::bool enableCardClusterLod; // Offset: 133 + keen::uint64 cardClusterVersion; // Offset: 136 + keen::bool enableGrassAnimation; // Offset: 144 + keen::ds::GrassAnimationModelParameters grassAnimation; // Offset: 148 + keen::bool enableGrassPushback; // Offset: 156 + keen::ds::GrassPushbackModelParameters grassPushback; // Offset: 160 + keen::bool enableSdf; // Offset: 176 +}; + +struct CardClusterInfo { + keen::bool isValid; // Offset: 0 + keen::ds::RenderTexture albedoMap; // Offset: 8 + keen::ds::RenderTexture materialParamsMap; // Offset: 80 + keen::ds::RenderTexture normalMap; // Offset: 152 + keen::ds::RenderTexture opacityMap; // Offset: 224 + keen::float32 texCoord0Delta; // Offset: 296 + keen::uint32 vertexCount; // Offset: 300 + keen::uint32 indexCount; // Offset: 304 + keen::ContentHash vertexBufferHash; // Offset: 308 + keen::ContentHash indexBufferHash; // Offset: 324 + keen::AxisAlignedBox aabb; // Offset: 352 + keen::Sphere boundingSphere; // Offset: 384 +}; + +struct ColorGradient { + keen::ObjectReference image; // Offset: 0 +}; + +struct ShaderModelChunkMesh { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 +}; + +struct ShaderModelChunkPipelineIndex { + keen::uint32 index; // Offset: 0 +}; + +struct ShaderModelChunkModelMesh { + keen::uint32 meshIndex; // Offset: 0 + keen::StaticArray pipelineIndices; // Offset: 4 +}; + +struct ShaderModelChunkModel { + keen::float4 boundingSphere; // Offset: 0 + keen::StaticArray meshes; // Offset: 16 + keen::uint32 meshCount; // Offset: 48 + keen::uint32 modelSizeFeedbackIndex; // Offset: 52 +}; + +struct ShaderModelChunkSubView { + keen::uint flags; // Offset: 0 + keen::float3 exclusionCircle; // Offset: 4 + keen::float minObjectSize; // Offset: 16 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 32 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 48 + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 96 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 192 +}; + +struct ShaderModelChunkPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 passType; // Offset: 4 +}; + +struct ShaderModelChunkInstanceCullingShaderParameters { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 2304 + keen::uint32 subViewCount; // Offset: 2464 + keen::uint32 passCount; // Offset: 2468 + keen::uint32 maxDrawCount; // Offset: 2472 + keen::uint32 maxMeshCount; // Offset: 2476 + keen::float distanceCullingThreshold; // Offset: 2480 + keen::float distanceCullingJitterFactor; // Offset: 2484 + keen::float modelSizeFeedbackPixelSize; // Offset: 2488 + keen::uint smallObjectCulling; // Offset: 2492 + keen::uint writeForestFogFootprints; // Offset: 2496 +}; + +typedef keen::ModelChunkType ModelChunkType; + +struct ShaderModelChunk { + keen::float4 boundingSphere; // Offset: 0 + keen::ds::PackedShaderWorldPositionUniform worldOrigin; // Offset: 16 + keen::float3 extents; // Offset: 32 + keen::float scale; // Offset: 44 + keen::float4 orientation; // Offset: 48 + keen::ds::PackedShaderWorldTransform transform; // Offset: 64 + keen::uint32 instanceOffset; // Offset: 96 + keen::uint32 instanceCount; // Offset: 100 + keen::ds::ModelChunkType type; // Offset: 104 +}; + +struct ShaderModelChunkInstance { + keen::uint32 packedPosition; // Offset: 0 + keen::uint32 packedOrientation; // Offset: 4 + keen::uint32 packedScaleModelIndex; // Offset: 8 +}; + +struct ShaderModelChunkCandidate { + keen::uint32 chunkIndex; // Offset: 0 + keen::uint32 visibilityMask; // Offset: 4 +}; + +struct ShaderModelChunkCullingShaderParameters { + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 0 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 64 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 80 + keen::uint candidateCount; // Offset: 128 +}; + +struct ShaderModelChunkInstanceCullingPushConstants { + keen::uint chunkCandidateIndex; // Offset: 0 +}; + +struct ShaderModelChunkDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 +}; + +struct ShaderModelChunkDraw { + keen::uint packedChunkIndexAndMeshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct ShaderModelChunkRenderInstance { + keen::float3 cameraRelativePosition; // Offset: 0 + keen::float scale; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct ShaderModelChunkPushConstant { + keen::uint baseDrawIndex; // Offset: 0 + keen::uint isRunningOnSteamDeck; // Offset: 4 +}; + +struct ShaderModelChunkWriteDrawCommandsPushConstants { + keen::uint batchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 +}; + +struct ShaderModelChunkWriteInstanceDataConstants { + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 0 +}; + +struct ShaderModelChunkBatchPrepareShaderParameters { + keen::uint groupSize; // Offset: 0 +}; + +struct MotionVectorsShaderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float2 cancelJitter; // Offset: 16 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 +}; + +struct MotionVectorsDebugShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 inverseTargetSize; // Offset: 8 +}; + +struct FFX_ParallelSortCB { + keen::uint NumKeys; // Offset: 0 + keen::int NumBlocksPerThreadGroup; // Offset: 4 + keen::uint NumThreadGroups; // Offset: 8 + keen::uint NumThreadGroupsWithAdditionalBlocks; // Offset: 12 + keen::uint NumReduceThreadgroupPerBin; // Offset: 16 + keen::uint NumScanValues; // Offset: 20 + keen::uint _pad0; // Offset: 24 + keen::uint _pad1; // Offset: 28 +}; + +struct KEEN_VFX_ParallelSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint _pad; // Offset: 12 +}; + +struct FFX_SetupIndirectCB { + keen::uint NumKeysCounterByteOffset; // Offset: 0 + keen::uint MaxNumKeys; // Offset: 4 + keen::uint MaxThreadGroups; // Offset: 8 +}; + +struct FFX_RootConstantData { + keen::uint CShiftBit; // Offset: 0 +}; + +struct PbrMaterialScalarValue { + keen::float32 value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialColorValue { + keen::Color value; // Offset: 0 + keen::ObjectReference image; // Offset: 4 +}; + +struct PbrMaterialParameters { + keen::ds::PbrMaterialColorValue emissive; // Offset: 0 + keen::float32 emissiveMapIntensity; // Offset: 20 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 24 + keen::float32 emissiveGiFactor; // Offset: 28 + keen::ds::PbrMaterialColorValue albedo; // Offset: 32 + keen::ds::PbrMaterialScalarValue metallic; // Offset: 52 + keen::ds::PbrMaterialScalarValue roughness; // Offset: 72 + keen::ds::PbrMaterialScalarValue reflectance; // Offset: 92 + keen::ObjectReference normal; // Offset: 112 + keen::ObjectReference height; // Offset: 128 + keen::ObjectReference ao; // Offset: 144 + keen::bool enableLavaShader; // Offset: 160 + keen::ObjectReference distortionMap; // Offset: 164 + keen::ObjectReference lightningMap; // Offset: 180 + keen::ObjectReference gradientMap; // Offset: 196 + keen::float32 distortionMapScale; // Offset: 212 + keen::float32 distortionMapSpeed; // Offset: 216 + keen::float32 distortionMapIntensity; // Offset: 220 + keen::float32 lightningMapScrollSpeed; // Offset: 224 + keen::float32 lightningMapIntensity; // Offset: 228 +}; + +typedef keen::VertexColorChannelRgb VertexColorChannelRgb; + +struct PbrMaterialTintLayer { + keen::bool enable; // Offset: 0 + keen::ObjectReference maskMap; // Offset: 4 +}; + +typedef keen::RenderSamplerAddressMode RenderSamplerAddressMode; + +struct PbrMaterialLayer { + keen::ObjectReference emissiveMap; // Offset: 0 + keen::ObjectReference albedoMap; // Offset: 16 + keen::ObjectReference metallicMap; // Offset: 32 + keen::ObjectReference roughnessMap; // Offset: 48 + keen::ObjectReference reflectanceMap; // Offset: 64 + keen::ObjectReference normalMap; // Offset: 80 + keen::ObjectReference heightMap; // Offset: 96 + keen::ObjectReference aoMap; // Offset: 112 + keen::ObjectReference opacityMap; // Offset: 128 + keen::StaticArray albedoTint; // Offset: 144 + keen::uint8 uvSet; // Offset: 204 + keen::float32 uvScaling; // Offset: 208 + keen::bool uvScalingYEnable; // Offset: 212 + keen::float32 uvScalingY; // Offset: 216 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 220 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 221 + keen::float32 heightBias; // Offset: 224 + keen::bool enableAnisotropy; // Offset: 228 + keen::ObjectReference anisotropicDirectionMap; // Offset: 232 + keen::float32 anisotropy; // Offset: 248 + keen::bool maskAnisotropy; // Offset: 252 + keen::float32 emissiveMapIntensity; // Offset: 256 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 260 + keen::float32 emissiveGiFactor; // Offset: 264 +}; + +typedef keen::PbrMaterialBlendMode PbrMaterialBlendMode; + +struct PbrMaterialBlendVertexValue { + keen::ds::VertexColorChannel blendLayer1Channel; // Offset: 0 +}; + +struct PbrMaterialBlendMap { + keen::ObjectReference map; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 16 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 17 + keen::uint8 uvSet; // Offset: 18 + keen::float32 uvScaling; // Offset: 20 + keen::bool uvScalingYEnable; // Offset: 24 + keen::float32 uvScalingY; // Offset: 28 +}; + +struct PbrMaterialOverlayNormalMap { + keen::ObjectReference normalMap; // Offset: 0 + keen::ObjectReference aoMap; // Offset: 16 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 32 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 33 + keen::uint8 uvSet; // Offset: 34 + keen::float32 uvScaling; // Offset: 36 + keen::bool uvScalingYEnable; // Offset: 40 + keen::float32 uvScalingY; // Offset: 44 + keen::bool useVertexColorChannelWeight; // Offset: 48 + keen::ds::VertexColorChannel vertexColorChannel; // Offset: 49 +}; + +struct PbrTranslucency { + keen::float32 strength; // Offset: 0 + keen::ObjectReference thicknessMap; // Offset: 4 + keen::Color color; // Offset: 20 + keen::float viewDependency; // Offset: 24 + keen::float wrapShadingStrength; // Offset: 28 +}; + +struct PbrMaterial { + keen::DsArray blendLayers; // Offset: 0 + keen::ds::PbrMaterialBlendMode blendMode; // Offset: 40 + keen::ds::PbrMaterialBlendVertexValue blendVertexVertexValue; // Offset: 41 + keen::ds::PbrMaterialBlendMap blendMap; // Offset: 44 + keen::ds::PbrMaterialOverlayNormalMap overlayNormalLayer; // Offset: 76 + keen::bool multiplyEmissiveByVertexColor; // Offset: 128 + keen::ds::VertexColorChannelRgb multiplyEmissiveVertexColorChannel; // Offset: 129 + keen::bool multiplyAlbedoByVertexColor; // Offset: 130 + keen::ds::VertexColorChannelRgb multiplyAlbedoVertexColorChannel; // Offset: 131 + keen::bool multiplyAoByVertexColorChannel; // Offset: 132 + keen::ds::VertexColorChannel multiplyAoVertexColorChannel; // Offset: 133 + keen::bool multiplyAlphaByVertexAlpha; // Offset: 134 + keen::ds::PbrTranslucency translucency; // Offset: 136 + keen::bool enableGiWrapShading; // Offset: 168 + keen::bool adjustGiNormals; // Offset: 169 + keen::bool enableGiSpecular; // Offset: 170 + keen::bool enableBackfaceCulling; // Offset: 171 + keen::bool useFlippedBackfaceNormals; // Offset: 172 + keen::bool enableAlphaBlending; // Offset: 173 + keen::bool enableAlphaTest; // Offset: 174 + keen::bool enableShadowAlphaTest; // Offset: 175 + keen::bool enableHashedAlphaTest; // Offset: 176 + keen::bool disableFrostShader; // Offset: 177 + keen::bool disableSnowShader; // Offset: 178 + keen::bool disableWetnessShader; // Offset: 179 + keen::bool enableFrostShaderGlitter; // Offset: 180 + keen::bool enableGradientMapSupport; // Offset: 181 + keen::bool enableTessellation; // Offset: 182 + keen::float32 tessellationStartDistance; // Offset: 184 + keen::float32 tessellationSubdivisions; // Offset: 188 + keen::float32 displacementScale; // Offset: 192 + keen::float32 displacementOffset; // Offset: 196 + keen::bool enableShadows; // Offset: 200 + keen::bool enableContactShadows; // Offset: 201 + keen::ds::DissolveMaterialParameters dissolve; // Offset: 204 +}; + +struct PbrMaterialEmissiveMapShaderData { + keen::float32 intensity; // Offset: 0 + keen::float32 exposureCorrectionFactor; // Offset: 4 +}; + +struct PbrMaterialTintShaderData { + keen::uint32 enableLayerBitMask; // Offset: 0 + keen::StaticArray maskMaps; // Offset: 4 +}; + +struct PbrMaterialDisplacementSettings { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrTerrainMaterialLayer { + keen::ObjectReference albedoMap; // Offset: 0 + keen::ObjectReference roughnessMap; // Offset: 16 + keen::ObjectReference normalMap; // Offset: 32 + keen::ObjectReference heightMap; // Offset: 48 + keen::ObjectReference aoMap; // Offset: 64 + keen::float32 tilingSize; // Offset: 80 +}; + +struct PbrTerrainMaterialBlendingSmoothness { + keen::float32 position; // Offset: 0 + keen::float32 smoothness; // Offset: 4 + keen::float32 heightBias; // Offset: 8 +}; + +struct PbrTerrainMaterialCenterBlendingSmoothness { + keen::float32 smoothness; // Offset: 0 + keen::float32 heightBias; // Offset: 4 +}; + +typedef keen::PbrTerrainMaterialDetailNormalBlendMode PbrTerrainMaterialDetailNormalBlendMode; + +struct PbrTerrainMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 origin; // Offset: 4 +}; + +struct PbrBuildingNoiseBlendRange { + keen::float32 min; // Offset: 0 + keen::float32 max; // Offset: 4 +}; + +struct PbrBuildingMaterialDisplacementLayer { + keen::float32 scale; // Offset: 0 + keen::float32 offset; // Offset: 4 +}; + +struct PbrBuildingMaterial { + keen::ds::PbrMaterialLayer baseMaterialSide; // Offset: 0 + keen::ds::PbrBuildingMaterialDisplacementLayer baseMaterialSideDisplacement; // Offset: 268 + keen::ds::PbrMaterialLayer baseMaterialTop; // Offset: 276 + keen::ds::PbrBuildingMaterialDisplacementLayer baseMaterialTopDisplacement; // Offset: 544 + keen::ds::PbrMaterialLayer baseMaterialBottom; // Offset: 552 + keen::ds::PbrBuildingMaterialDisplacementLayer baseMaterialBottomDisplacement; // Offset: 820 + keen::ds::PbrMaterialLayer edgeMaterial; // Offset: 828 + keen::ds::PbrBuildingMaterialDisplacementLayer edgeMaterialDisplacement; // Offset: 1096 + keen::ds::PbrBuildingMaterialDisplacementLayer edgeMaterialTopDisplacement; // Offset: 1104 + keen::ds::PbrMaterialLayer noiseMaterial; // Offset: 1112 + keen::ds::PbrBuildingMaterialDisplacementLayer noiseMaterialDisplacement; // Offset: 1380 + keen::float32 edgeBlendingCurve; // Offset: 1388 + keen::ds::PbrBuildingNoiseBlendRange noiseBlendRange; // Offset: 1392 + keen::bool edgeOnlySide; // Offset: 1400 + keen::float32 bevelRadius; // Offset: 1404 + keen::ds::BuildingMappingType mapping; // Offset: 1408 +}; + +struct PbrBuildingDetailScatterLayerTop { +}; + +struct PbrBuildingDetailScatterLayerSide { +}; + +struct PbrBuildingDetailScatterLayerBottom { +}; + +struct PbrBuildingDetailScatterLayerNoise { +}; + +typedef keen::PbrRfxRenderMaterialFlag PbrRfxRenderMaterialFlag; + +typedef keen::PbrRfxRenderMaterialFlagMask PbrRfxRenderMaterialFlagMask; + +struct RfxSampler { + keen::uint32 id; // Offset: 0 +}; + +struct PbrRfxRenderMaterial { + keen::uint32 layerParameters; // Offset: 0 + keen::ds::StreamedTexture2D_float blendMap; // Offset: 4 + keen::float2 blendMapTexcoordScaling; // Offset: 8 + keen::StaticArray albedoMap; // Offset: 16 + keen::StaticArray normalMap; // Offset: 24 + keen::StaticArray emissiveMap; // Offset: 32 + keen::StaticArray materialParamsMap; // Offset: 40 + keen::StaticArray heightMap; // Offset: 48 + keen::StaticArray layerSampler; // Offset: 56 + keen::StaticArray texCoordScaling; // Offset: 64 + keen::StaticArray anisotropyDirectionMap; // Offset: 80 + keen::StaticArray anisotropyStrength; // Offset: 88 + keen::StaticArray constantReflectance; // Offset: 96 + keen::StaticArray albedoTintShaderData; // Offset: 104 + keen::StaticArray heightBlendingRange; // Offset: 136 + keen::uint32 multiplyEmissiveVertexColorChannelSwizzle; // Offset: 144 + keen::uint32 multiplyAlbedoVertexColorChannelSwizzle; // Offset: 148 + keen::uint32 multiplyAoVertexColorChannelSwizzle; // Offset: 152 + keen::ds::RfxSampler blendMapSampler; // Offset: 156 + keen::float translucencyStrength; // Offset: 160 + keen::ds::StreamedTexture2D_float translucencyMap; // Offset: 164 + keen::StaticArray emissiveMapShaderData; // Offset: 168 + keen::ds::StreamedTexture2D_float4 overlayNormalMap; // Offset: 184 + keen::ds::StreamedTexture2D_float overlayAoMap; // Offset: 188 + keen::ds::RfxSampler overlayNormalMapSampler; // Offset: 192 + keen::uint32 overlayNormalMapVertexColorChannelSwizzle; // Offset: 196 + keen::float2 overlayNormalMapTexCoordScaling; // Offset: 200 + keen::float3 dissolveEdgeGlowColor; // Offset: 208 + keen::float32 dissolveEdgeGlowWidthInv; // Offset: 220 + keen::float32 dissolveEdgeGlowParam; // Offset: 224 + keen::ds::BindlessTexture3D_float dissolveNoiseMap; // Offset: 228 + keen::float32 dissolveNoiseTiling; // Offset: 232 + keen::float32 dissolveNoiseFadeRange; // Offset: 236 + keen::uint32 flags; // Offset: 240 +}; + +struct post_processing.NightAdaptation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.WhiteBalance { + keen::bool enable; // Offset: 0 + keen::float temperature; // Offset: 4 + keen::float tint; // Offset: 8 +}; + +struct post_processing.ChannelMixer { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb r; // Offset: 4 + keen::HdrColorRgb g; // Offset: 20 + keen::HdrColorRgb b; // Offset: 36 +}; + +struct post_processing.WeightedColor { + keen::HdrColorRgb color; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +struct post_processing.TonalColors { + keen::bool enable; // Offset: 0 + keen::ds::post_processing::WeightedColor shadows; // Offset: 4 + keen::ds::post_processing::WeightedColor midtones; // Offset: 24 + keen::ds::post_processing::WeightedColor highlights; // Offset: 44 + keen::float shadowStart; // Offset: 64 + keen::float midStart; // Offset: 68 + keen::float midEnd; // Offset: 72 + keen::float highlightEnd; // Offset: 76 +}; + +struct post_processing.ColorChannelWeights { + keen::float32 red; // Offset: 0 + keen::float32 green; // Offset: 4 + keen::float32 blue; // Offset: 8 +}; + +struct post_processing.SlopeOffsetColor { + keen::bool enable; // Offset: 0 + keen::ds::post_processing::ColorChannelWeights slope; // Offset: 4 + keen::ds::post_processing::ColorChannelWeights offset; // Offset: 16 + keen::ds::post_processing::ColorChannelWeights power; // Offset: 28 +}; + +struct post_processing.Contrast { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Vibrance { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Saturation { + keen::bool enable; // Offset: 0 + keen::float strength; // Offset: 4 +}; + +struct post_processing.Curves { + keen::bool enable; // Offset: 0 + keen::ds::post_processing::ColorChannelWeights shadowGamma; // Offset: 4 + keen::ds::post_processing::ColorChannelWeights midpoint; // Offset: 16 + keen::ds::post_processing::ColorChannelWeights highlightScale; // Offset: 28 +}; + +struct post_processing.ColorFilter { + keen::bool enable; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 +}; + +struct post_processing.ColorGrading { + keen::ds::post_processing::NightAdaptation nightAdaptation; // Offset: 0 + keen::ds::post_processing::WhiteBalance whiteBalance; // Offset: 8 + keen::ds::post_processing::ChannelMixer channelMixer; // Offset: 20 + keen::ds::post_processing::TonalColors tonalColors; // Offset: 72 + keen::ds::post_processing::SlopeOffsetColor slopeOffsetColor; // Offset: 152 + keen::ds::post_processing::Contrast contrast; // Offset: 192 + keen::ds::post_processing::Vibrance vibrance; // Offset: 200 + keen::ds::post_processing::Saturation saturation; // Offset: 208 + keen::ds::post_processing::Curves curves; // Offset: 216 +}; + +struct PostProcessingParameters { + keen::ds::post_processing::ColorFilter colorFilter; // Offset: 0 + keen::ds::post_processing::ColorGrading colorGrading; // Offset: 20 +}; + +struct TonemappingConstants { + keen::float4 curve; // Offset: 0 + keen::float3 crosstalkPreSaturation; // Offset: 16 + keen::float hdrMax; // Offset: 28 + keen::float3 crosstalk; // Offset: 32 + keen::float3 crosstalkPostSaturation; // Offset: 48 +}; + +typedef keen::PostProcessingCompositeFlag PostProcessingCompositeFlag; + +typedef keen::PostProcessingCompositeFlags PostProcessingCompositeFlags; + +struct PostProcessingCompositeConstants { + keen::uint32 flags; // Offset: 0 + keen::float3 colorFilter; // Offset: 4 + keen::float32 bloomStrength; // Offset: 16 + keen::float32 temporalNoise; // Offset: 20 + keen::float3 lutOffset; // Offset: 32 + keen::float3 lutScale; // Offset: 48 + keen::float4 vignetteColor; // Offset: 64 + keen::float4 flashColor; // Offset: 80 + keen::ds::TonemappingConstants toneMapping; // Offset: 96 +}; + +struct PostProcessingHistogramConstants { + keen::uint2 targetSize; // Offset: 0 + keen::float32 exposure; // Offset: 8 + keen::float32 inverseExposure; // Offset: 12 + keen::uint32 useSceneBrightness; // Offset: 16 +}; + +struct PostProcessingHistogramResult { + keen::StaticArray pixelCount; // Offset: 0 +}; + +struct SceneHistogramShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct BloomConstants { + keen::float2 halfPixelSize; // Offset: 0 + keen::uint applyBilateralGrid; // Offset: 8 + keen::float bilateralGridDetail; // Offset: 12 + keen::float thresholdLow; // Offset: 16 + keen::float thresholdHigh; // Offset: 20 + keen::float fogContribution; // Offset: 24 + keen::float compression; // Offset: 28 + keen::float scale; // Offset: 32 +}; + +struct ClearBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct FillBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::uint2 sourceSize; // Offset: 16 + keen::float2 oneOverSourceSize; // Offset: 24 + keen::float32 inverseExposure; // Offset: 32 +}; + +struct CopyResultBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 +}; + +struct BlurBilateralGridConstants { + keen::uint3 gridSize; // Offset: 0 + keen::float3 oneOverGridSize; // Offset: 16 +}; + +struct ApplyBilateralGridConstants { + keen::float3 oneOverGridSize; // Offset: 0 + keen::float inverseExposure; // Offset: 12 + keen::float midPointLogLuminance; // Offset: 16 + keen::float highlightContrastFactor; // Offset: 20 + keen::float shadowContrastFactor; // Offset: 24 + keen::float detailFactor; // Offset: 28 +}; + +struct PrefixSumPrepareConstants { + keen::uint32 maxElementCount; // Offset: 0 + keen::uint32 counterIndex; // Offset: 4 +}; + +struct SmallPrefixSumShaderParameters { + keen::uint32 elementCount; // Offset: 0 +}; + +struct RenderShaderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 +}; + +typedef keen::RenderVertexFormat RenderVertexFormat; + +typedef keen::TextureAlphaMode TextureAlphaMode; + +typedef keen::TextureContentType TextureContentType; + +typedef keen::TextureConverterFlag TextureConverterFlag; + +typedef keen::TextureConverterFlags TextureConverterFlags; + +struct RenderTextureChannelData { + keen::ObjectReference image; // Offset: 0 + keen::ds::TextureChannel sourceChannel; // Offset: 16 + keen::ObjectReference roughnessNormalMapImage; // Offset: 20 + keen::bool clampRoughnessNormalU; // Offset: 36 + keen::bool clampRoughnessNormalV; // Offset: 37 + keen::ds::TextureChannel targetChannel; // Offset: 38 +}; + +struct RenderMaterialTextureSamplingInfo { + keen::uint8 vertexAttributeId; // Offset: 0 + keen::float32 scaling; // Offset: 4 +}; + +struct RenderMaterialTextureElement { + keen::DsArray textureChannels; // Offset: 0 + keen::ds::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 40 +}; + +struct RenderMaterialTextureData { + keen::uint32 offset; // Offset: 0 + keen::TextureType textureType; // Offset: 4 + keen::PixelFormat pixelFormat; // Offset: 5 + keen::ds::TextureAlphaMode alphaMode; // Offset: 6 + keen::DsArray textureElements; // Offset: 8 + keen::ds::TextureContentType contentType; // Offset: 48 + keen::ds::TextureConverterFlags convertFlags; // Offset: 52 + keen::ds::string name; // Offset: 56 +}; + +typedef keen::RenderSamplerFilterMode RenderSamplerFilterMode; + +typedef keen::RenderComparisonFunction RenderComparisonFunction; + +struct RenderMaterialSamplerData { + keen::uint32 offset; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::ds::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::ds::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::ds::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::ds::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::ds::RenderComparisonFunction comparisonFunction; // Offset: 10 +}; + +typedef keen::RenderEffectId RenderEffectId; + +typedef keen::RenderMaterialFlagMask RenderMaterialFlagMask; + +struct RenderMaterialConverterData { + keen::Guid objectId; // Offset: 0 + keen::ds::string description; // Offset: 16 + keen::ds::RenderEffectId effectId; // Offset: 56 + keen::ds::RenderMaterialFlagMask flags; // Offset: 57 + keen::DsArray data; // Offset: 64 + keen::HashKey32 dataTypeSignature; // Offset: 104 + keen::DsArray textures; // Offset: 112 + keen::DsArray samplers; // Offset: 152 + keen::ds::RenderVertexFormat vertexFormat; // Offset: 192 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 196 +}; + +typedef keen::RenderMemoryAllocatorObjectType RenderMemoryAllocatorObjectType; + +struct RenderMemoryAllocatorObjectState { + keen::ds::RenderMemoryAllocatorObjectType type; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::uint32 allocationRegionHandle; // Offset: 48 + keen::uint32 allocationMemoryType; // Offset: 52 + keen::uint64 allocationBlockHandle; // Offset: 56 + keen::uint64 allocationOffset; // Offset: 64 + keen::uint64 allocationSize; // Offset: 72 +}; + +struct RenderMemoryAllocatorAllocationState { + keen::uint32 handle; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::DsArray objects; // Offset: 48 +}; + +struct RenderMemoryAllocatorBlockState { + keen::uint64 handle; // Offset: 0 + keen::uint64 sizeInBytes; // Offset: 8 + keen::uint32 refCount; // Offset: 16 +}; + +struct RenderMemoryAllocatorRegionMemoryTypeState { + keen::uint32 memoryType; // Offset: 0 + keen::uint8 graphicsDeviceMemoryTypeIndex; // Offset: 4 + keen::bool isMapped; // Offset: 5 + keen::DsArray blocks; // Offset: 8 +}; + +struct RenderMemoryAllocatorRegionState { + keen::uint32 handle; // Offset: 0 + keen::ds::string name; // Offset: 8 + keen::GraphicsDeviceMemoryPriority priority; // Offset: 48 + keen::uint64 chunkSize; // Offset: 56 + keen::DsArray memoryTypes; // Offset: 64 +}; + +struct RenderMemoryAllocatorState { + keen::DsArray allocations; // Offset: 0 + keen::DsArray regions; // Offset: 40 +}; + +struct RenderResources { + keen::ObjectReference renderSystem; // Offset: 0 + keen::ObjectReference worldMaterialBlending2; // Offset: 16 + keen::ObjectReference buildingMaterialBlending; // Offset: 32 + keen::ObjectReference giVoxelBuildingMaterial; // Offset: 48 + keen::ObjectReference worldDetailScatter; // Offset: 64 + keen::ObjectReference buildingDetailScatter; // Offset: 80 + keen::ObjectReference analyticFog; // Offset: 96 + keen::ObjectReference volumetricFog2; // Offset: 112 + keen::ObjectReference volumetricFogGridParameters; // Offset: 128 + keen::DsArray> gpcResources; // Offset: 144 + keen::ObjectReference colorPaletteCollection; // Offset: 184 +}; + +struct RenderSceneCaptureModel { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference modelResource; // Offset: 56 +}; + +typedef keen::RenderLightType RenderLightType; + +struct RenderLight { + keen::ds::RenderLightType type; // Offset: 0 + keen::HdrColorRgb color; // Offset: 4 + keen::bool castShadows; // Offset: 20 + keen::float32 radius; // Offset: 24 +}; + +struct RenderSceneCaptureLight { + keen::WorldTransform transform; // Offset: 0 + keen::ds::RenderLight light; // Offset: 56 +}; + +struct RenderSceneCaptureVfxInstance { + keen::WorldTransform transform; // Offset: 0 + keen::ObjectReference vfxResource; // Offset: 56 + keen::float4 color; // Offset: 72 + keen::float4 param0; // Offset: 88 + keen::float4 param1; // Offset: 104 + keen::float4 param2; // Offset: 120 + keen::float4 param3; // Offset: 136 + keen::Time startTime; // Offset: 152 + keen::bool isActive; // Offset: 160 + keen::bool killWhenCulled; // Offset: 161 +}; + +struct RenderSceneCaptureChunk { + keen::WorldTransform transform; // Offset: 0 + keen::ContentHash voxelData; // Offset: 56 +}; + +struct RenderSceneCapture { + keen::WorldTransform captureViewTransform; // Offset: 0 + keen::DsArray models; // Offset: 56 + keen::DsArray lights; // Offset: 96 + keen::DsArray vfxInstances; // Offset: 136 +}; + +typedef keen::RenderAntiAliasingSettingsValidMask RenderAntiAliasingSettingsValidMask; + +typedef keen::RenderTextureQualitySettingsValidMask RenderTextureQualitySettingsValidMask; + +struct RenderSettingsFeatures { + keen::ds::RenderAntiAliasingSettingsValidMask antialiasingValidMask; // Offset: 0 + keen::ds::RenderTextureQualitySettingsValidMask textureQualityValidMask; // Offset: 4 +}; + +typedef keen::RenderSettingsPreset RenderSettingsPreset; + +typedef keen::RenderAntiAliasingSetting RenderAntiAliasingSetting; + +typedef keen::RenderFsr2PresetSetting RenderFsr2PresetSetting; + +typedef keen::RenderFsr3PresetSetting RenderFsr3PresetSetting; + +typedef keen::RenderDlssPresetSetting RenderDlssPresetSetting; + +typedef keen::RenderTextureQualitySetting RenderTextureQualitySetting; + +typedef keen::RenderShadowQualitySetting RenderShadowQualitySetting; + +typedef keen::RenderContactShadowsSetting RenderContactShadowsSetting; + +typedef keen::RenderGiSetting RenderGiSetting; + +typedef keen::RenderReflectionsSetting RenderReflectionsSetting; + +typedef keen::RenderFogQualitySetting RenderFogQualitySetting; + +typedef keen::RenderFogVolumetricShadowQualitySetting RenderFogVolumetricShadowQualitySetting; + +typedef keen::RenderSsaoSetting RenderSsaoSetting; + +typedef keen::RenderDistantObjectsSetting RenderDistantObjectsSetting; + +typedef keen::RenderDecoObjectsSetting RenderDecoObjectsSetting; + +typedef keen::RenderDetailScatteringSetting RenderDetailScatteringSetting; + +typedef keen::RenderVoxelMeshQualitySetting RenderVoxelMeshQualitySetting; + +typedef keen::RenderTessellationSetting RenderTessellationSetting; + +typedef keen::RenderPointLightShadowsSetting RenderPointLightShadowsSetting; + +struct RenderSettings { + keen::ds::RenderSettingsPreset preset; // Offset: 0 + keen::ds::RenderAntiAliasingSetting antiAliasing; // Offset: 4 + keen::ds::RenderFsr2PresetSetting fsr2; // Offset: 8 + keen::ds::RenderFsr3PresetSetting fsr3; // Offset: 12 + keen::ds::RenderDlssPresetSetting dlss; // Offset: 16 + keen::ds::RenderTextureQualitySetting textures; // Offset: 20 + keen::ds::RenderShadowQualitySetting shadows; // Offset: 24 + keen::ds::RenderContactShadowsSetting contactShadows; // Offset: 28 + keen::ds::RenderGiSetting dynamicGi; // Offset: 32 + keen::ds::RenderReflectionsSetting reflections; // Offset: 36 + keen::ds::RenderFogQualitySetting fog; // Offset: 40 + keen::ds::RenderFogVolumetricShadowQualitySetting volumetricShadow; // Offset: 44 + keen::ds::RenderSsaoSetting ssao; // Offset: 48 + keen::ds::RenderDistantObjectsSetting distantObjects; // Offset: 52 + keen::ds::RenderDecoObjectsSetting decoObjects; // Offset: 56 + keen::ds::RenderDetailScatteringSetting detailScattering; // Offset: 60 + keen::ds::RenderVoxelMeshQualitySetting voxelMeshQuality; // Offset: 64 + keen::ds::RenderTessellationSetting tessellation; // Offset: 68 + keen::ds::RenderPointLightShadowsSetting pointLightShadows; // Offset: 72 + keen::float32 sharpness; // Offset: 76 +}; + +struct RenderSettingsGpuPresets { +}; + +typedef keen::RenderSettingsGpuTargetResolution RenderSettingsGpuTargetResolution; + +typedef keen::RenderSettingsGpuTargetFps RenderSettingsGpuTargetFps; + +struct RenderSettingsGpuMapping { + keen::ds::RenderSettingsGpuTargetResolution targetResolution; // Offset: 0 + keen::ds::RenderSettingsGpuTargetFps targetFps; // Offset: 4 + keen::ds::RenderSettings settings; // Offset: 8 +}; + +struct RenderSettingsGpuMatch { + keen::ds::string name; // Offset: 0 +}; + +struct RenderSettingsGpuPresetsResource { + keen::DsArray gpus; // Offset: 0 + keen::DsArray presets; // Offset: 40 +}; + +struct RenderSettingsGpuPresetsResourceGpu { + keen::HashKey32 nameHash; // Offset: 0 + keen::uint32 presetIndex; // Offset: 4 +}; + +struct RenderSettingsGpuPresetResource { + keen::ds::RenderSettings settings; // Offset: 0 + keen::uint32 targetPixelCount; // Offset: 80 + keen::uint32 targetFps; // Offset: 84 +}; + +struct ForwardPointLightData { + keen::float3 position; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 + keen::float3 color; // Offset: 16 + keen::float falloffWeight; // Offset: 28 + keen::uint32 uniqueId; // Offset: 32 + keen::uint32 enableShadows; // Offset: 36 + keen::float radius; // Offset: 40 + keen::uint32 pad2; // Offset: 44 +}; + +struct ForwardDecalData { + keen::GraphicsMatrix43 decalTransform; // Offset: 0 + keen::float4 worldBoundingSphere; // Offset: 48 + keen::float4 color; // Offset: 64 + keen::float4 emissiveTintAndAlpha; // Offset: 80 + keen::uint32 materialDataIndex; // Offset: 96 + keen::float32 normalFade; // Offset: 100 + keen::uint layerMask; // Offset: 104 + keen::uint enableTransparencyCompositionMask; // Offset: 108 +}; + +struct ClusterCullingInfo { + keen::uint3 clusterSize; // Offset: 0 + keen::uint32 enableOverdraw; // Offset: 12 + keen::float2 inverseViewportSize; // Offset: 16 + keen::float32 zNear; // Offset: 24 + keen::float32 zFar; // Offset: 28 +}; + +struct RenderWeatherMaskResource { + keen::ds::RenderTexture mask; // Offset: 0 +}; + +struct RenderWeatherResource { + keen::float2 snowBorderRangeMapping; // Offset: 0 + keen::ds::RenderWeatherMaskResource snowBorderMask; // Offset: 8 +}; + +struct RenderWeatherPhenomenonResource { + keen::ds::RenderTexture cloudMap; // Offset: 0 +}; + +struct RenderWeatherRasterCouldsParameters { + keen::float32 invRenderTargetSize; // Offset: 0 +}; + +struct RenderWeatherRasterCloudsInstanceData { + keen::float4 transformM; // Offset: 0 + keen::float2 transformT; // Offset: 16 + keen::uint32 data; // Offset: 24 + keen::ds::BindlessTexture2D_float4 cloudMap; // Offset: 28 + keen::ds::BindlessTexture2D_float restrictMask; // Offset: 32 + keen::ds::BindlessTexture2D_float excludeMask; // Offset: 36 +}; + +struct RenderWeatherWeatherMapSubtractParameters { + keen::float32 wetnessValue; // Offset: 0 + keen::float32 puddleValue; // Offset: 4 +}; + +struct RenderWeatherWeatherMapAddParameters { + keen::float32 rainWetnessValue; // Offset: 0 + keen::float32 rainPuddleValue; // Offset: 4 +}; + +struct RenderWeatherDynamicWetnessSampleUpload { + keen::uint32 pointIndex; // Offset: 0 + keen::sint32 instanceIndex; // Offset: 4 + keen::sint32 boneIndex; // Offset: 8 + keen::float3 localPosition; // Offset: 12 +}; + +struct RenderWeatherDynamicWetnessSample { + keen::sint32 instanceIndex; // Offset: 0 + keen::sint32 boneIndex; // Offset: 4 + keen::float3 localPosition; // Offset: 8 +}; + +struct RenderWeatherDynamicWetnessUpdateConstants { + keen::uint32 uploadCount; // Offset: 0 + keen::float dryWetnessValue; // Offset: 4 + keen::float addRainWetnessValue; // Offset: 8 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 16 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 32 +}; + +struct RenderWeatherFilterDynamicHeightmapConstants { + keen::float2 rcpTextureSize; // Offset: 0 +}; + +typedef keen::RenderWeatherInstanceFlags RenderWeatherInstanceFlags; + +struct RenderWeatherInstanceParameters { + keen::float2 positionXZ; // Offset: 0 + keen::Angle orientation; // Offset: 8 + keen::float2 scaleXZ; // Offset: 12 + keen::float32 strength; // Offset: 20 + keen::float32 rainThreshold; // Offset: 24 + keen::ds::RenderWeatherInstanceFlags flags; // Offset: 28 +}; + +struct RenderWeatherDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::ds::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +struct RenderWeatherDebugState { + keen::bool debugDrawInstances; // Offset: 0 + keen::DsArray instances; // Offset: 8 +}; + +struct RenderWeatherDebugUpdateDebugDrawInstances { + keen::bool debugDrawInstances; // Offset: 0 +}; + +struct RenderWeatherDebugAddInstance { + keen::ObjectReference phenomenon; // Offset: 0 + keen::ds::RenderWeatherInstanceParameters parameters; // Offset: 16 +}; + +struct RenderWeatherDebugRemoveInstance { + keen::uint32 handle; // Offset: 0 +}; + +struct RenderWeatherDebugSetInstanceParameters { + keen::uint32 handle; // Offset: 0 + keen::ds::RenderWeatherInstanceParameters parameters; // Offset: 4 +}; + +typedef keen::RenderWeatherInstanceFlag RenderWeatherInstanceFlag; + +typedef keen::RenderWeatherDebugMode RenderWeatherDebugMode; + +typedef keen::Fsr3QualityPreset Fsr3QualityPreset; + +typedef keen::RenderUpscaleTechnique RenderUpscaleTechnique; + +typedef keen::RenderFeatureFlag RenderFeatureFlag; + +typedef keen::RenderFeatureFlags RenderFeatureFlags; + +struct BlendShapeId { +}; + +typedef keen::BeaufortWindForce BeaufortWindForce; + +struct ShaderDataPrimitiveTypes { + keen::sint32 f0; // Offset: 0 + keen::float32 f1; // Offset: 4 + keen::sint64 f2; // Offset: 8 + keen::float4 f3; // Offset: 16 + keen::float3 f4; // Offset: 32 + keen::float2 f5; // Offset: 44 + keen::uint3 f6; // Offset: 52 + keen::uint4 f7; // Offset: 64 +}; + +struct RenderColorGradingMap { + keen::ObjectReference image; // Offset: 0 +}; + +struct RenderColorGradingMapResource { + keen::ContentHash content; // Offset: 0 + keen::ds::string debugName; // Offset: 16 +}; + +typedef keen::ObjectReference RenderColorGradingMapReference; + +typedef keen::RenderViewDebugDrawMode RenderViewDebugDrawMode; + +typedef keen::RenderDescriptorSetId RenderDescriptorSetId; + +typedef keen::RenderSubpassIndex RenderSubpassIndex; + +typedef keen::RenderPipelineStage RenderPipelineStage; + +typedef keen::ShaderCompileSourceLanguage ShaderCompileSourceLanguage; + +typedef keen::RenderPrimitiveType RenderPrimitiveType; + +struct RenderSampler { + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 1 + keen::ds::RenderSamplerAddressMode addressModeW; // Offset: 2 + keen::ds::RenderSamplerFilterMode minFilter; // Offset: 3 + keen::ds::RenderSamplerFilterMode magFilter; // Offset: 4 + keen::ds::RenderSamplerFilterMode mipFilter; // Offset: 5 + keen::ds::RenderComparisonFunction comparisonFunction; // Offset: 6 + keen::bool anisotropyEnable; // Offset: 7 +}; + +typedef keen::RenderParameterBlockPatchPointType RenderParameterBlockPatchPointType; + +struct RenderParameterBlockPatchPoint { + keen::ds::RenderParameterBlockPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 parameterIndex; // Offset: 12 +}; + +struct RenderVertexAttribute { + keen::uint8 location; // Offset: 0 + keen::uint8 format; // Offset: 1 + keen::uint8 stream; // Offset: 2 +}; + +typedef keen::ComputeGroupCountAlgorithm ComputeGroupCountAlgorithm; + +struct RenderModelImageSizeInfo { + keen::float32 texelsPerMeter; // Offset: 0 +}; + +typedef keen::RenderMaterialFlag RenderMaterialFlag; + +struct RenderMaterialImage { + keen::uint32 dataOffset; // Offset: 0 + keen::uint16 width; // Offset: 4 + keen::uint16 height; // Offset: 6 + keen::uint16 depth; // Offset: 8 + keen::uint16 arraySize; // Offset: 10 + keen::uint8 levelCount; // Offset: 12 + keen::TextureType type; // Offset: 13 + keen::PixelFormat format; // Offset: 14 + keen::ContentHash data; // Offset: 16 + keen::bool enableStreaming; // Offset: 32 + keen::ds::string debugName; // Offset: 40 +}; + +struct RenderMaterialSampler { + keen::uint32 dataOffset; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressModeU; // Offset: 4 + keen::ds::RenderSamplerAddressMode addressModeV; // Offset: 5 + keen::ds::RenderSamplerAddressMode addressModeW; // Offset: 6 + keen::ds::RenderSamplerFilterMode minFilter; // Offset: 7 + keen::ds::RenderSamplerFilterMode magFilter; // Offset: 8 + keen::ds::RenderSamplerFilterMode mipFilter; // Offset: 9 + keen::ds::RenderComparisonFunction comparisonFunction; // Offset: 10 + keen::bool anisotropyEnable; // Offset: 11 +}; + +typedef keen::RfxSamplerId RfxSamplerId; + +struct RenderMaterialResource { + keen::ds::RenderEffectId effectId; // Offset: 0 + keen::ds::RenderMaterialFlagMask flags; // Offset: 1 + keen::DsArray data; // Offset: 8 + keen::HashKey32 dataTypeSignature; // Offset: 48 + keen::DsArray images; // Offset: 56 + keen::DsArray samplers; // Offset: 96 + keen::ds::string debugName; // Offset: 136 +}; + +typedef keen::ObjectReference RenderMaterialResourceReference; + +struct RenderMaterialTextureInfo { + keen::uint3 size; // Offset: 0 + keen::ds::RenderMaterialTextureSamplingInfo samplingInfo; // Offset: 12 +}; + +struct RenderMaterialInfo { + keen::ds::RenderEffectId effectId; // Offset: 0 + keen::ds::RenderMaterialFlagMask flags; // Offset: 1 + keen::HashKey32 dataTypeSignature; // Offset: 4 + keen::bool hasStreamedTextures; // Offset: 8 + keen::DsArray textures; // Offset: 16 +}; + +struct RenderBlendResourceData { + keen::ObjectReference id; // Offset: 0 +}; + +struct RenderMaterialMesh { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::Sphere boundingSphere; // Offset: 32 + keen::ds::RenderEffectId renderEffectId; // Offset: 48 + keen::uint8 clothMeshIndex; // Offset: 49 + keen::ds::RenderMaterialResourceReference material; // Offset: 52 + keen::ds::RenderMaterialFlagMask materialFlags; // Offset: 68 + keen::DsArray materialImageSizeInfos; // Offset: 72 + keen::ContentHash materialModelData; // Offset: 112 + keen::HashKey32 materialModelDataTypeSignatureHash; // Offset: 128 + keen::float3 positionScale; // Offset: 132 + keen::float3 positionOffset; // Offset: 144 + keen::uint32 vertexCount; // Offset: 156 + keen::uint32 indexCount; // Offset: 160 + keen::ContentHash vertexData; // Offset: 164 + keen::ContentHash indexData; // Offset: 180 + keen::ContentHash skinningData; // Offset: 196 + keen::ContentHash blendShapeVertexData; // Offset: 212 + keen::uint32 blendShapeMask; // Offset: 228 + keen::ds::string debugName; // Offset: 232 +}; + +struct RenderModelLod { + keen::uint32 firstMeshIndex; // Offset: 0 + keen::uint32 meshCount; // Offset: 4 + keen::float32 pixelSize; // Offset: 8 +}; + +typedef keen::RenderRayTraceVertexFormat RenderRayTraceVertexFormat; + +struct RenderRayTraceMeshPart { + keen::uint32 jointIndex; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexOffset; // Offset: 12 + keen::uint32 vertexCount; // Offset: 16 +}; + +struct RenderRayTraceMesh { + keen::ds::RenderRayTraceVertexFormat vertexFormat; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::ContentHash vertexData; // Offset: 12 + keen::ContentHash indexData; // Offset: 28 + keen::DsArray parts; // Offset: 48 +}; + +struct RenderModelClothSleeve { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::uint32 upperJointIndex; // Offset: 32 + keen::uint32 lowerJointIndex; // Offset: 36 + keen::uint32 instanceIndex; // Offset: 40 + keen::ContentHash planes; // Offset: 44 + keen::ContentHash particleIndicies; // Offset: 60 +}; + +struct RenderModelSdfMaterial { + keen::float3 albedo; // Offset: 0 + keen::uint dummy; // Offset: 12 + keen::float3 emissive; // Offset: 16 +}; + +struct RenderModelSdfPart { + keen::uint3 resolution; // Offset: 0 + keen::uint32 jointIndex; // Offset: 12 + keen::uint8 mipLevelCount; // Offset: 16 + keen::float3 origin; // Offset: 20 + keen::float3 totalSize; // Offset: 32 + keen::ContentHash pixels; // Offset: 44 + keen::ds::RenderModelSdfMaterial material; // Offset: 60 +}; + +struct RenderModelSdfData { + keen::DsArray parts; // Offset: 0 +}; + +struct RenderGradientMapResource { + keen::uint16 width; // Offset: 0 + keen::uint8 levelCount; // Offset: 2 + keen::PixelFormat format; // Offset: 3 + keen::ContentHash data; // Offset: 4 + keen::ds::string debugName; // Offset: 24 +}; + +struct RenderModelClothColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::bool ignoreClothCollider; // Offset: 1 + keen::DsArray spheres; // Offset: 8 + keen::DsArray capsules; // Offset: 48 + keen::DsArray instances; // Offset: 88 +}; + +struct SkinnedTreeModelData { + keen::DsArray jointMatrix; // Offset: 0 + keen::DsArray jointParent; // Offset: 40 + keen::DsArray jointSpringData; // Offset: 80 + keen::DsArray leafJoints; // Offset: 120 + keen::DsArray inverseTransformTree; // Offset: 160 +}; + +struct RenderModel { + keen::ds::string debugName; // Offset: 0 + keen::DsArray meshes; // Offset: 40 + keen::DsArray lods; // Offset: 80 + keen::AxisAlignedBox aabb; // Offset: 128 + keen::ds::RenderRayTraceMesh rayTraceMesh; // Offset: 160 + keen::ObjectReference hierarchy; // Offset: 248 + keen::uint16 hierarchyJointCount; // Offset: 264 + keen::DsArray skinningMap; // Offset: 272 + keen::DsOptional cloth; // Offset: 312 + keen::DsOptional chain; // Offset: 328 + keen::ds::RenderModelClothColliderData collider; // Offset: 344 + keen::DsArray sleeves; // Offset: 472 + keen::DsArray blendShapes; // Offset: 512 + keen::uint32 jointCount; // Offset: 552 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 556 + keen::bool hasCardClusterLod; // Offset: 560 + keen::ds::RenderModelSdfData sdf; // Offset: 568 + keen::ds::SkinnedTreeModelData skinnedTree; // Offset: 608 +}; + +struct RenderClothVertexSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothFabricResource { + keen::uint32 numParticles; // Offset: 0 + keen::DsArray phaseIndices; // Offset: 8 + keen::DsArray sets; // Offset: 48 + keen::DsArray restValues; // Offset: 88 + keen::DsArray stiffnessValues; // Offset: 128 + keen::DsArray indices; // Offset: 168 + keen::DsArray anchors; // Offset: 208 + keen::DsArray tetherLengths; // Offset: 248 + keen::DsArray triangles; // Offset: 288 +}; + +struct RenderClothMeshResource { + keen::ds::RenderClothFabricResource fabric; // Offset: 0 + keen::DsArray simulationPositions; // Offset: 328 + keen::DsArray simulationInvMasses; // Offset: 368 + keen::DsArray simulationStiffnesses; // Offset: 408 + keen::DsArray simulationVertexWeights; // Offset: 448 + keen::DsArray simulationTriangles; // Offset: 488 + keen::DsArray simulationBlendshapeDeltas; // Offset: 528 + keen::DsArray simulationSkinningData; // Offset: 568 + keen::DsArray skinnedVertexIndices; // Offset: 608 + keen::DsArray renderPositions; // Offset: 648 + keen::DsArray renderUvs; // Offset: 688 + keen::DsArray renderTriangles; // Offset: 728 + keen::DsArray renderSimulationVertexIndices; // Offset: 768 +}; + +struct RenderClothMesh { + keen::ContentHash data; // Offset: 0 + keen::float32 gravity; // Offset: 16 + keen::float32 windStrength; // Offset: 20 + keen::float32 dragCoefficient; // Offset: 24 + keen::float32 liftCoefficient; // Offset: 28 + keen::float32 damping; // Offset: 32 + keen::float32 linearInertia; // Offset: 36 + keen::float32 angularInertia; // Offset: 40 + keen::float32 centrifugalInertia; // Offset: 44 + keen::float32 tetherStiffness; // Offset: 48 + keen::float32 phasesStiffness; // Offset: 52 + keen::float32 phasesCompressionLimit; // Offset: 56 + keen::float32 phasesStretchLimit; // Offset: 60 + keen::float32 motionConstraintsStiffness; // Offset: 64 + keen::float32 collisionFriction; // Offset: 68 + keen::float32 solverFrequency; // Offset: 72 + keen::float32 motionConstraintsUnlimitedRadius; // Offset: 76 + keen::float32 motionConstraintsMaxRadius; // Offset: 80 +}; + +struct RenderClothColliderSkinningData { + keen::StaticArray jointIndices; // Offset: 0 + keen::StaticArray jointWeights; // Offset: 4 +}; + +struct RenderClothColliderSphere { + keen::float3 center; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::ds::RenderClothColliderSkinningData skinningData; // Offset: 16 +}; + +struct RenderClothColliderCapsule { + keen::float3 center0; // Offset: 0 + keen::float32 radius0; // Offset: 12 + keen::float3 center1; // Offset: 16 + keen::float32 radius1; // Offset: 28 + keen::ds::RenderClothColliderSkinningData skinningData; // Offset: 32 +}; + +struct RenderModelColliderData { + keen::bool hasSkinning; // Offset: 0 + keen::DsArray spheres; // Offset: 8 + keen::DsArray capsules; // Offset: 48 +}; + +struct RenderModelColliderInstanceData { + keen::DsArray sphereIndices; // Offset: 0 + keen::DsArray capsuleIndices; // Offset: 40 +}; + +struct RenderModelClothData { + keen::bool hasSkinning; // Offset: 0 + keen::DsArray meshes; // Offset: 8 +}; + +struct RenderClothColliderResource { + keen::bool hasSkinning; // Offset: 0 + keen::uint32 maxJointIndex; // Offset: 4 + keen::DsArray spheres; // Offset: 8 + keen::DsArray capsules; // Offset: 48 +}; + +struct RenderModelChainConfig { + keen::bool propagateRotation; // Offset: 0 + keen::float32 gravity; // Offset: 4 + keen::float32 mass; // Offset: 8 + keen::float32 dragCoefficient; // Offset: 12 + keen::float32 liftCoefficient; // Offset: 16 + keen::float32 stiffnessFrequencey; // Offset: 20 + keen::float32 damping; // Offset: 24 + keen::float32 motionConstraintRadius; // Offset: 28 + keen::float32 linearInertia; // Offset: 32 + keen::float32 angularInertia; // Offset: 36 + keen::float32 centrifugalInertia; // Offset: 40 + keen::float32 phasesStiffness; // Offset: 44 + keen::float32 phasesStiffnessMultiplier; // Offset: 48 + keen::float32 phasesCompressionLimit; // Offset: 52 + keen::float32 phasesStretchLimit; // Offset: 56 + keen::float32 collisionFriction; // Offset: 60 +}; + +struct RenderModelChain { + keen::Guid guid; // Offset: 0 + keen::uint16 jointBeginIndex; // Offset: 16 + keen::uint16 jointEndIndex; // Offset: 18 + keen::uint16 constraintBeginIndex; // Offset: 20 + keen::uint16 constraintEndIndex; // Offset: 22 + keen::uint8 configIndex; // Offset: 24 + keen::uint8 colliderIndex; // Offset: 25 +}; + +struct RenderModelChainData { + keen::DsArray chains; // Offset: 0 + keen::DsArray configs; // Offset: 40 + keen::DsArray chainColliders; // Offset: 80 + keen::DsArray anchorHierarchyJoints; // Offset: 120 + keen::DsArray anchorDefaultPose; // Offset: 160 + keen::DsArray anchorRestPosition; // Offset: 200 + keen::DsArray joints; // Offset: 240 + keen::DsArray modelMatrices; // Offset: 280 + keen::DsArray skinToJointMatrix; // Offset: 320 + keen::DsArray restPosition; // Offset: 360 + keen::DsArray constraintJoints; // Offset: 400 + keen::DsArray constraints; // Offset: 440 +}; + +struct RenderModelMaterialMeshData { + keen::AxisAlignedBox aabb; // Offset: 0 + keen::ds::RenderEffectId renderEffectId; // Offset: 32 + keen::uint32 vertexCount; // Offset: 36 + keen::uint32 indexCount; // Offset: 40 + keen::ContentHash vertexData; // Offset: 44 + keen::ContentHash indexData; // Offset: 60 +}; + +struct RenderModelLodMeshData { + keen::DsArray meshes; // Offset: 0 +}; + +struct RenderModelMeshData { + keen::DsArray lods; // Offset: 0 + keen::HashKey32 instanceDataTypeNameHash; // Offset: 40 +}; + +struct RenderModelLodInfo { + keen::uint32 vertexCount; // Offset: 0 + keen::uint32 indexCount; // Offset: 4 +}; + +struct RenderModelInfo { + keen::DsArray lods; // Offset: 0 + keen::ObjectReference modelHierarchy; // Offset: 40 +}; + +typedef keen::AnalyticFogShapeType AnalyticFogShapeType; + +struct AnalyticFogShape { + keen::ds::AnalyticFogShapeType type; // Offset: 0 + keen::float3 halfSize; // Offset: 4 + keen::float32 falloff; // Offset: 16 +}; + +struct RenderFogInjection { + keen::ds::AnalyticFogShape shape; // Offset: 0 + keen::float32 absorption; // Offset: 20 + keen::Color scattering; // Offset: 24 + keen::Color emission; // Offset: 28 + keen::float32 density; // Offset: 32 +}; + +struct RenderFogDissolve { + keen::ds::AnalyticFogShape shape; // Offset: 0 + keen::float32 strength; // Offset: 20 +}; + +struct RenderModelDrawData2 { + keen::float4 boundingSphere; // Offset: 0 + keen::uint flags; // Offset: 16 + keen::uint sizeFeedbackIndex; // Offset: 20 + keen::uint firstMesh; // Offset: 24 + keen::uint lodCount; // Offset: 28 + keen::StaticArray lodMeshOffsets; // Offset: 32 + keen::StaticArray lodMeshCounts; // Offset: 64 + keen::StaticArray lodPixelSizes; // Offset: 96 +}; + +struct RenderMeshDrawData2 { + keen::float3 positionScale; // Offset: 0 + keen::uint materialDataIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint pipelineBits; // Offset: 28 + keen::uint indexOffset; // Offset: 32 + keen::uint indexCount; // Offset: 36 + keen::int vertexOffset; // Offset: 40 + keen::uint modelMaterialData; // Offset: 44 + keen::uint skinningDataByteOffsetAndClothMeshIndex; // Offset: 48 + keen::uint blendShapeVertexOffset; // Offset: 52 + keen::uint blendShapeMask; // Offset: 56 + keen::uint vertexCount; // Offset: 60 +}; + +struct RenderInstanceData { + keen::ds::PackedShaderWorldTransform packedTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 32 + keen::uint32 tintColor; // Offset: 80 + keen::ds::BindlessTexture2D_float4 tintGradientMap; // Offset: 84 + keen::uint32 highlightColorPaletteIndexTransparency; // Offset: 88 + keen::uint32 flagsAndEmissiveFactor; // Offset: 92 + keen::float4 dissolveParameters; // Offset: 96 + keen::float32 dissolveEdgeBrightness; // Offset: 112 + keen::float32 alphaClip; // Offset: 116 + keen::uint32 activeBlendShapeMask; // Offset: 120 + keen::uint32 blendShapeWeights; // Offset: 124 + keen::StaticArray clothMeshDataOffsets; // Offset: 128 + keen::uint32 albedoTintColorIndices; // Offset: 144 + keen::uint32 skinMatrixOffset; // Offset: 148 + keen::uint32 decalLayerMask; // Offset: 152 + keen::uint32 dynamicWetnessOffset; // Offset: 156 + keen::uint32 modelIndex; // Offset: 160 + keen::uint32 groupMask; // Offset: 164 +}; + +struct DetailScatteringInstanceData { + keen::uint3 packedWorldPosition; // Offset: 0 + keen::uint scaleAndFadeout; // Offset: 12 + keen::float4 orientation; // Offset: 16 +}; + +struct HighlightColorPaletteSettings { + keen::float highlightAmount; // Offset: 0 + keen::float highlightIntensity; // Offset: 4 + keen::Color invalidHighlightColor; // Offset: 8 + keen::Color validHighlightColor; // Offset: 12 + keen::Color mutedHighlightColor; // Offset: 16 + keen::Color group1HighlightColor; // Offset: 20 + keen::Color group2HighlightColor; // Offset: 24 + keen::Color group3HighlightColor; // Offset: 28 + keen::Color group4HighlightColor; // Offset: 32 +}; + +struct WeatherSurfaceMaterialSettings { + keen::float snowUVScale; // Offset: 0 + keen::float snowScale; // Offset: 4 + keen::float snowVertexNormalPower; // Offset: 8 + keen::float snowVertexNormalCutoff; // Offset: 12 + keen::float frostUVScale; // Offset: 16 + keen::float frostScale; // Offset: 20 + keen::float frostRoughness; // Offset: 24 + keen::float frostPorosityScale; // Offset: 28 + keen::Color frostAlbedo; // Offset: 32 + keen::Color frostPuddleAlbedo; // Offset: 36 +}; + +struct RenderSystemResource { + keen::ds::SpecularIblLutResource specularIblLut; // Offset: 0 + keen::ObjectReference blueNoiseMap; // Offset: 20 + keen::ds::RenderTexture blueNoiseRenderImage; // Offset: 40 + keen::ObjectReference globalSlopeDefinition; // Offset: 112 + keen::ds::HighlightColorPaletteSettings highlightColorPalette; // Offset: 128 + keen::ds::WeatherSurfaceMaterialSettings weatherSurfaceMaterialSettings; // Offset: 164 + keen::bool verifyDecoObjectMeshCountLimit; // Offset: 204 + keen::bool verifyDetailScatteringMeshCountLimit; // Offset: 205 + keen::ObjectReference atmosphere; // Offset: 208 + keen::ObjectReference zoneVisualizationSettings; // Offset: 224 + keen::ObjectReference frostBlendMask; // Offset: 240 + keen::ObjectReference snowRoughness; // Offset: 256 + keen::ObjectReference snowAlbedo; // Offset: 272 + keen::ObjectReference snowNormal; // Offset: 288 + keen::ds::RenderTexture frostBlendMaskRenderImage; // Offset: 304 + keen::ds::RenderTexture snowRoughnessRenderImage; // Offset: 376 + keen::ds::RenderTexture snowAlbedoRenderImage; // Offset: 448 + keen::ds::RenderTexture snowNormalRenderImage; // Offset: 520 +}; + +struct RenderModelChunkInstance { + keen::float3 position; // Offset: 0 + keen::float scale; // Offset: 12 + keen::Quaternion orientation; // Offset: 16 + keen::uint16 modelIndex; // Offset: 32 + keen::bool canBeCulled; // Offset: 34 +}; + +struct RenderModelChunkModelData { + keen::WorldPosition origin; // Offset: 0 + keen::float3 extents; // Offset: 24 + keen::DsArray instances; // Offset: 40 + keen::DsArray entityIndexMap; // Offset: 80 + keen::DsArray modelGuids; // Offset: 120 +}; + +struct RenderModelChunkModelResource { + keen::ContentHash modelData; // Offset: 0 + keen::HashKey32 modelDataTypeSignatureHash; // Offset: 16 +}; + +struct RenderModelChunkGridResource { + keen::uint2 chunkCount; // Offset: 0 +}; + +struct GBufferTemporalFilterConstants { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float temporalWeight; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 prevViewProjectionMatrix; // Offset: 96 +}; + +struct TransparentMergeStartConstants { + keen::uint instanceCounterByteOffset; // Offset: 0 + keen::uint maxInstanceCount; // Offset: 4 +}; + +struct TransparentMergePrepareConstants { + keen::uint maxTriangleCount; // Offset: 0 +}; + +struct VoxelChunklet { + keen::float4 sphere; // Offset: 0 + keen::float4 normal; // Offset: 16 +}; + +struct GiVoxelMaterial { + keen::float3 emissive; // Offset: 0 + keen::float3 albedo; // Offset: 12 + keen::float roughness; // Offset: 24 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct GiVoxelBuildingMaterial { + keen::ds::GiVoxelMaterial top; // Offset: 0 + keen::ds::GiVoxelMaterial side; // Offset: 36 + keen::ds::GiVoxelMaterial bottom; // Offset: 72 +}; + +struct GiVoxelBuildingMaterialResource { + keen::DsArray materials; // Offset: 0 +}; + +struct BakeWorldTriangleMaterialDataVertexShaderParameters { + keen::uint32 layerCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::uint32 vertexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 +}; + +struct BakeWorldTriangleMaterialDataTriangleShaderParameters { + keen::uint32 triangleCount; // Offset: 0 + keen::uint32 vertexOffset; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::uint32 perVertexBakingDataOffset; // Offset: 12 + keen::float4 translationAndScale; // Offset: 16 + keen::uint32 bakedTriangleMaterialDataOffset; // Offset: 32 + keen::uint32 feedbackDataOffset; // Offset: 36 + keen::uint4 debug; // Offset: 48 +}; + +struct PatchMeshVerticesParameters { + keen::float3 positionOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 12 + keen::float3 positionScale; // Offset: 16 + keen::uint vertexStride; // Offset: 28 + keen::uint vertexOffset; // Offset: 32 +}; + +struct RenderBlendShapeSlot { + keen::ObjectReference id; // Offset: 0 + keen::float weight; // Offset: 16 +}; + +typedef keen::DetailScatteringPass DetailScatteringPass; + +typedef keen::DetailScatteringError DetailScatteringError; + +typedef keen::DetailScatteringDebugMode DetailScatteringDebugMode; + +struct ScatterModelData { + keen::ds::GpuModel model; // Offset: 0 +}; + +struct ScatteredObjectData { + keen::uint modelIndexAndLodIndex; // Offset: 0 + keen::float fadeout; // Offset: 4 +}; + +struct ScatterTriangleCullingShaderParameters { + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint triangleBinSize; // Offset: 64 + keen::ds::GpuCullingFrustum frustum; // Offset: 80 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::uint chunkletBinSize; // Offset: 244 + keen::float boundingSphereBias; // Offset: 248 + keen::float maxScatterDistance; // Offset: 252 +}; + +struct ScatterTriangleCullingPushConstants { + keen::uint chunkIndex; // Offset: 0 +}; + +struct ScatterChunkletCullingShaderParameters { + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 16 + keen::uint chunkletBinSize; // Offset: 64 + keen::ds::GpuCullingFrustum frustum; // Offset: 80 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 176 + keen::uint occlusionCullingEnabled; // Offset: 240 + keen::float boundingSphereBias; // Offset: 244 + keen::float maxScatterDistance; // Offset: 248 +}; + +struct ScatterChunkletCullingPushConstants { + keen::uint jobCount; // Offset: 0 +}; + +struct ScatterObjectPrepareShaderParameters { + keen::uint targetGroupSize; // Offset: 0 +}; + +struct DetailScatteringShaderData { + keen::ds::PackedShaderWorldPositionUniform cameraWorldPosition; // Offset: 0 + keen::uint scatteredObjectCounterOffset; // Offset: 16 + keen::uint scatteredObjectCapacity; // Offset: 20 + keen::uint scatteredCandidateCounterOffset; // Offset: 24 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 32 + keen::GraphicsMatrix44 cameraCenteredViewProjection; // Offset: 80 + keen::float4 frustumPlane0; // Offset: 144 + keen::float4 frustumPlane1; // Offset: 160 + keen::float4 frustumPlane2; // Offset: 176 + keen::float4 frustumPlane3; // Offset: 192 + keen::float4 frustumPlane4; // Offset: 208 + keen::ds::TessellatedMaterialConstants terrainTessellation; // Offset: 224 + keen::ds::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint dynamicHeightmapValid; // Offset: 272 + keen::uint debugMode; // Offset: 276 + keen::uint debugValue; // Offset: 280 + keen::float densityProbability; // Offset: 284 + keen::float modelSizeFeedbackPixelSize; // Offset: 288 + keen::float distanceCullingThreshold; // Offset: 292 + keen::float sizeCullingPixelSize; // Offset: 296 + keen::uint permutationBucketCount; // Offset: 300 + keen::float maxScatterDistance; // Offset: 304 + keen::float invMaxDistanceFadeLength; // Offset: 308 + keen::float displacementFadeoutStart; // Offset: 312 + keen::float displacementFadeoutEnd; // Offset: 316 + keen::float displacementStrength; // Offset: 320 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 336 + keen::uint occlusionCullingEnabled; // Offset: 400 + keen::uint triangleBinSize; // Offset: 404 +}; + +struct DetailScatteringChunkShaderData { + keen::float4 translationAndScale; // Offset: 0 + keen::uint indexOffset; // Offset: 16 + keen::uint vertexOffset; // Offset: 20 + keen::uint bakedTriangleMaterialDataOffset; // Offset: 24 + keen::uint triangleCount; // Offset: 28 + keen::uint chunkletOffset; // Offset: 32 + keen::uint chunkletCount; // Offset: 36 +}; + +struct ScatterInstanceOffsetShaderData { + keen::uint scatterModelCount; // Offset: 0 + keen::uint instanceCounterOffset; // Offset: 4 + keen::ds::DetailScatteringDebugMode debugMode; // Offset: 8 + keen::uint debugValue; // Offset: 12 + keen::uint permutationBucketCount; // Offset: 16 +}; + +struct ScatterInstancesShaderData { + keen::uint scatteredObjectCounterOffset; // Offset: 0 + keen::ds::DetailScatteringDebugMode debugMode; // Offset: 4 + keen::uint debugValue; // Offset: 8 + keen::uint permutationBucketCount; // Offset: 12 +}; + +struct BiomeMap { + keen::ds::Biome baseBiome; // Offset: 0 +}; + +struct BiomeMapLayer { + keen::ds::Biome biome; // Offset: 0 +}; + +struct BiomeMapInfo { + keen::uint2 size; // Offset: 0 + keen::StaticArray data; // Offset: 8 +}; + +struct SdfCascadeData { + keen::GraphicsMatrix44 ndcToSdfMatrix; // Offset: 0 + keen::int3 origin; // Offset: 64 +}; + +struct SdfShaderData { + keen::uint32 sdfCascadeCount; // Offset: 0 + keen::uint32 sdfInstanceCount; // Offset: 4 + keen::uint32 sdfBaseDescriptorIndex; // Offset: 8 + keen::float32 sdfInvGridSize; // Offset: 12 +}; + +struct SdfDebugShaderParameters { + keen::ds::SdfShaderData sdf; // Offset: 0 + keen::float3 cameraPosition; // Offset: 16 + keen::uint32 visibleGroupMask; // Offset: 28 +}; + +struct SdfCaptureDebugShaderParameters { + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 +}; + +struct SdfVoxelRegion { + keen::int3 origin; // Offset: 0 + keen::uint32 bufferOffset; // Offset: 12 + keen::uint3 size; // Offset: 16 +}; + +struct SdfUpdateShaderParameters { + keen::ds::SdfVoxelRegion newVoxelRegion0; // Offset: 0 + keen::ds::SdfVoxelRegion newVoxelRegion1; // Offset: 32 + keen::ds::SdfVoxelRegion newVoxelRegion2; // Offset: 64 + keen::ds::SdfVoxelRegion dirtyVoxelRegion; // Offset: 96 + keen::int3 origin; // Offset: 128 + keen::uint32 size; // Offset: 140 +}; + +struct SdfBakingShaderParameters { + keen::int3 voxelOrigin; // Offset: 0 + keen::uint32 volumeSize; // Offset: 12 + keen::float32 voxelSizeInMeters; // Offset: 16 + keen::uint3 targetOffset; // Offset: 20 +}; + +struct SdfFloodShaderParameters { + keen::sint32 stepSize; // Offset: 0 +}; + +struct SdfCascadeUpdateShaderParameters { + keen::uint32 cascadeIndex; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 +}; + +struct WorldChunkVoxelMaterialCopyShaderParameters { + keen::uint32 dwordCount; // Offset: 0 + keen::uint32 innerSize; // Offset: 4 + keen::uint32 chunkIndex; // Offset: 8 + keen::uint2 chunkData; // Offset: 16 +}; + +struct SdfModelShaderData { + keen::uint32 partCount; // Offset: 0 + keen::uint32 partOffset; // Offset: 4 +}; + +struct SdfModelPartShaderData { + keen::uint32 descriptorIndex; // Offset: 0 +}; + +struct SdfInstanceShaderData { + keen::uint32 modelIndex; // Offset: 0 + keen::uint32 partCount; // Offset: 4 + keen::uint32 partOffset; // Offset: 8 +}; + +struct SdfInstancePartShaderData { + keen::GraphicsMatrix43 inverseTransform; // Offset: 0 + keen::GraphicsMatrix43 transform; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::float3 aabbMax; // Offset: 108 +}; + +struct SdfImageMaterialShaderData { + keen::float3 albedo; // Offset: 0 + keen::float3 emissive; // Offset: 12 +}; + +struct SdfSystemUpdateShaderParameters { + keen::uint newModelCount; // Offset: 0 + keen::uint newModelPartCount; // Offset: 4 + keen::uint newMaterialCount; // Offset: 8 +}; + +struct SdfSceneUpdateShaderParameters { + keen::uint newInstanceCount; // Offset: 0 + keen::uint newInstancePartCount; // Offset: 4 +}; + +struct SdfSystemShaderData { + keen::uint activeInstanceCount; // Offset: 0 + keen::uint activeInstancePartCount; // Offset: 4 +}; + +struct SdfAoTraceShaderParameters { + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::uint32 frameId; // Offset: 64 + keen::float radius; // Offset: 68 +}; + +struct SdfAoFilterShaderParameters { + keen::float2 inverseTargetSize; // Offset: 0 + keen::uint32 frameId; // Offset: 8 + keen::uint32 isHistoryValid; // Offset: 12 +}; + +typedef keen::SdfBvhBuildMethod SdfBvhBuildMethod; + +struct SdfBvhCommonInstanceData { + keen::GraphicsMatrix43 worldToUvwMatrix; // Offset: 0 + keen::GraphicsMatrix43 uvwToWorldMatrix; // Offset: 48 + keen::float3 aabbMin; // Offset: 96 + keen::uint descriptorIndex; // Offset: 108 + keen::float3 aabbMax; // Offset: 112 +}; + +struct SdfBvhNodeShaderData { + keen::float3 aabbMin; // Offset: 0 + keen::uint offset; // Offset: 12 + keen::float3 aabbMax; // Offset: 16 + keen::uint count; // Offset: 28 +}; + +struct SdfBvhDebugVisualizeIntersectionShaderParameters { + keen::float3 sunDirection; // Offset: 0 + keen::float3 cameraOrigin; // Offset: 16 + keen::float3 farPlaneOrigin; // Offset: 32 + keen::float3 farPlaneX; // Offset: 48 + keen::float3 farPlaneY; // Offset: 64 + keen::float2 inverseTargetSize; // Offset: 80 +}; + +struct SdfBvhDebugTraversalShaderParameters { + keen::float3 rayOrigin; // Offset: 0 + keen::float3 rayDirection; // Offset: 16 + keen::float rayLength; // Offset: 28 +}; + +typedef keen::SdfBvhDebugStepType SdfBvhDebugStepType; + +struct SdfBvhDebugStepLeafShaderData { + keen::ds::SdfBvhCommonInstanceData instance; // Offset: 0 + keen::float boxHitDistance; // Offset: 124 + keen::float sdfHitDistance; // Offset: 128 + keen::float hitDistance; // Offset: 132 +}; + +struct SdfBvhDebugStepInnerShaderData { + keen::float3 aabbMin0; // Offset: 0 + keen::float3 aabbMax0; // Offset: 12 + keen::float3 aabbMin1; // Offset: 24 + keen::float3 aabbMax1; // Offset: 36 + keen::float hitDistance0; // Offset: 48 + keen::float hitDistance1; // Offset: 52 +}; + +struct SdfBvhDebugStepShaderData { + keen::ds::SdfBvhDebugStepType type; // Offset: 0 + keen::ds::SdfBvhDebugStepLeafShaderData leaf; // Offset: 4 + keen::ds::SdfBvhDebugStepInnerShaderData inner; // Offset: 140 + keen::float closestHit; // Offset: 196 +}; + +struct RenderSdfShadowShaderParameters { + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 0 + keen::float3 sunDirection; // Offset: 64 + keen::float sunConeAngle; // Offset: 76 + keen::uint2 targetSize; // Offset: 80 + keen::uint frameId; // Offset: 88 + keen::float rayBias; // Offset: 92 + keen::uint32 isSdfCacheValid; // Offset: 96 + keen::uint32 pixelSize; // Offset: 100 +}; + +typedef keen::RasterShadowQuality RasterShadowQuality; + +struct RenderShadowAtlasMaskShaderParameters { + keen::ds::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 + keen::float texelSize; // Offset: 1160 + keen::float3 toLightDirection; // Offset: 1168 +}; + +struct RenderShadowAtlasDebugShaderParameters { + keen::ds::ViewSpacePositionReconstructionData cameraCenteredSpaceReconstructionData; // Offset: 0 + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 64 + keen::uint2 targetSize; // Offset: 1152 +}; + +struct VoxelWorldShadowDebugShaderParameters { + keen::ds::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 0 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 160 + keen::uint2 targetSize; // Offset: 224 +}; + +struct PrimeShadowMapConstants { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 64 + keen::float3 cameraWorldPosition; // Offset: 128 + keen::uint32 depthPyramidMip; // Offset: 140 + keen::float2 depthPyramidAspectRatio; // Offset: 144 + keen::uint32 tileCountX; // Offset: 152 + keen::uint32 tileCountY; // Offset: 156 + keen::uint32 useCameraCenteredPosition; // Offset: 160 + keen::ds::PackedShaderWorldPositionUniform cameraPosition; // Offset: 176 + keen::GraphicsMatrix44 cameraCenteredToClipSpaceMatrix; // Offset: 192 + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 256 +}; + +typedef keen::RenderShadowMaskQuality RenderShadowMaskQuality; + +struct RenderShadowMaskFillShaderParameters { + keen::ds::SdfShaderData sdf; // Offset: 0 + keen::ds::LightCacheLookupShaderData lightCache; // Offset: 16 + keen::GraphicsMatrix44 inverseViewProjectionMatrix; // Offset: 416 + keen::float2 linearDepthParameters; // Offset: 480 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 496 + keen::float2 tileRatio; // Offset: 560 + keen::uint32 pixelSize; // Offset: 568 + keen::uint32 frameId; // Offset: 572 + keen::float3 sunDirection; // Offset: 576 + keen::float32 sunConeAngle; // Offset: 588 + keen::float32 rayBias; // Offset: 592 + keen::uint32 visibleGroupMask; // Offset: 596 + keen::uint32 writeDebugOutput; // Offset: 600 + keen::uint32 enablePixelSdfCache; // Offset: 604 + keen::uint32 enableDebugTarget; // Offset: 608 +}; + +struct RenderShadowMaskFilterShaderParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float32 historyWeight; // Offset: 8 +}; + +struct RenderShadowMaskUpsampleShaderParameters { + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 0 + keen::uint2 targetSize; // Offset: 1088 + keen::float2 linearDepthParameters; // Offset: 1096 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 1104 + keen::uint32 pixelSize; // Offset: 1168 +}; + +struct RenderContactShadowShaderParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::GraphicsMatrix44 unjitteredProjectionMatrix; // Offset: 64 + keen::GraphicsMatrix43 viewMatrix; // Offset: 128 + keen::ds::ViewSpacePositionReconstructionData worldSpaceReconstructionData; // Offset: 176 + keen::float rcpNearPlaneDistance; // Offset: 240 + keen::float3 sunDirection; // Offset: 244 + keen::uint2 targetSize; // Offset: 256 + keen::uint32 frameId; // Offset: 264 + keen::uint32 discardContents; // Offset: 268 + keen::uint32 stepCount; // Offset: 272 + keen::float32 rayLength; // Offset: 276 + keen::float32 depthThickness; // Offset: 280 + keen::float32 hardness; // Offset: 284 + keen::uint32 combineWithDenoisedShadows; // Offset: 288 + keen::uint32 enableJitter; // Offset: 292 +}; + +struct RenderContactShadow2ShaderParameters { + keen::float4 lightCoordinate; // Offset: 0 + keen::float2 invDepthTextureSize; // Offset: 16 + keen::int2 waveOffset; // Offset: 24 + keen::float subSurfaceShadowStrength; // Offset: 32 +}; + +struct UnpackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct PackShadowMaskShaderParameters { + keen::uint2 targetSize; // Offset: 0 +}; + +struct SharpnessParameters { + keen::float32 kDetectRatio; // Offset: 0 + keen::float32 kDetectThres; // Offset: 4 + keen::float32 kMinContrastRatio; // Offset: 8 + keen::float32 kRatioNorm; // Offset: 12 + keen::float32 kContrastBoost; // Offset: 16 + keen::float32 kEps; // Offset: 20 + keen::float32 kSharpStartY; // Offset: 24 + keen::float32 kSharpScaleY; // Offset: 28 + keen::float32 kSharpStrengthMin; // Offset: 32 + keen::float32 kSharpStrengthScale; // Offset: 36 + keen::float32 kSharpLimitMin; // Offset: 40 + keen::float32 kSharpLimitScale; // Offset: 44 + keen::float32 kScaleX; // Offset: 48 + keen::float32 kScaleY; // Offset: 52 + keen::float32 kDstNormX; // Offset: 56 + keen::float32 kDstNormY; // Offset: 60 + keen::float32 kSrcNormX; // Offset: 64 + keen::float32 kSrcNormY; // Offset: 68 + keen::uint32 kInputViewportOriginX; // Offset: 72 + keen::uint32 kInputViewportOriginY; // Offset: 76 + keen::uint32 kInputViewportWidth; // Offset: 80 + keen::uint32 kInputViewportHeight; // Offset: 84 + keen::uint32 kOutputViewportOriginX; // Offset: 88 + keen::uint32 kOutputViewportOriginY; // Offset: 92 + keen::uint32 kOutputViewportWidth; // Offset: 96 + keen::uint32 kOutputViewportHeight; // Offset: 100 +}; + +struct SimpleMaterial { + keen::bool enableTextureStreaming; // Offset: 0 + keen::bool receiveShadows; // Offset: 1 + keen::ObjectReference colorMap; // Offset: 4 + keen::ObjectReference normalMap; // Offset: 20 + keen::HdrColorRgb tintColor; // Offset: 36 +}; + +struct SimpleRfxRenderMaterial { + keen::ds::StreamedTexture2D_float4 colorMap; // Offset: 0 + keen::uint32 receiveShadows; // Offset: 4 + keen::float3 tintColor; // Offset: 8 +}; + +struct SimpleVoxelPbrMaterial { + keen::float3 albedo; // Offset: 0 + keen::float roughness; // Offset: 12 + keen::float3 emissive; // Offset: 16 + keen::float metallic; // Offset: 28 + keen::float reflectance; // Offset: 32 +}; + +struct SimpleWorldMaterialShaderLayerWeights { + keen::float sideWeight; // Offset: 0 + keen::float bottomWeight; // Offset: 4 + keen::float topWeight; // Offset: 8 + keen::float flatnessWeight; // Offset: 12 + keen::float map0Weight; // Offset: 16 + keen::float map1Weight; // Offset: 20 + keen::float2 flatness; // Offset: 24 + keen::float4 sideParameters; // Offset: 32 +}; + +struct SimpleWorldMaterialBlendMap { + keen::ds::StreamedTexture2D_float map; // Offset: 0 + keen::float tilingFactor; // Offset: 4 +}; + +struct SimpleVoxelLayerInfo { + keen::uint data; // Offset: 0 +}; + +struct SimpleWorldMaterialResource { + keen::ds::RenderParameterBlock layerInfosParameterBlock; // Offset: 0 + keen::ds::RenderParameterBlock layerWeightsParameterBlock; // Offset: 184 + keen::ds::RenderParameterBlock layerPbrMaterialsParameterBlock; // Offset: 368 + keen::ds::RenderParameterBlock blendMapsParameterBlock; // Offset: 552 +}; + +struct SimpleBuildingMaterialResource { +}; + +struct SkinnedTreeInstanceData { + keen::uint skinMatrixOffset; // Offset: 0 +}; + +struct SkinnedTreeModelSpringParameters { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct SkinnedTreeModelParameters { + keen::ds::SkinnedTreeModelSpringParameters trunk; // Offset: 0 + keen::ds::SkinnedTreeModelSpringParameters branch; // Offset: 16 +}; + +struct SkinnedTreeModelSpringData { + keen::float mass; // Offset: 0 + keen::float constant; // Offset: 4 + keen::float damping; // Offset: 8 + keen::float drag; // Offset: 12 +}; + +struct CpuSkinVector3 { + keen::ds::vf32_data x; // Offset: 0 + keen::ds::vf32_data y; // Offset: 16 + keen::ds::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix33 { + keen::ds::vf32_data x; // Offset: 0 + keen::ds::vf32_data y; // Offset: 16 + keen::ds::vf32_data z; // Offset: 32 +}; + +struct CpuSkinMatrix43 { + keen::ds::CpuSkinMatrix33 rot; // Offset: 0 + keen::ds::vf32_data pos; // Offset: 48 +}; + +struct SkyTextureMaterial { + keen::ObjectReference texture; // Offset: 0 + keen::ds::RenderSamplerAddressMode textureAddressMode; // Offset: 16 +}; + +struct SkyTextureRfxRenderMaterial { + keen::ds::BindlessTexture2D_float4 texture; // Offset: 0 + keen::ds::BindlessSampler sampler; // Offset: 4 +}; + +struct SnowDisplacementUpdateParameters { + keen::uint worldPixelSize; // Offset: 0 + keen::uint worldTextureSize; // Offset: 4 + keen::uint2 worldTileTopLeft; // Offset: 8 + keen::uint2 worldPositionTopLeft; // Offset: 16 + keen::uint2 oldWorldTileTopLeft; // Offset: 24 + keen::uint2 oldWorldPositionTopLeft; // Offset: 32 + keen::uint worldHeightScale; // Offset: 40 + keen::float rcpHeightScale; // Offset: 44 + keen::uint fadeOutHeightFill; // Offset: 48 + keen::uint heightMin; // Offset: 52 + keen::uint heightMax; // Offset: 56 + keen::uint oldHeightMin; // Offset: 60 + keen::uint bodyCounterOffset; // Offset: 64 +}; + +struct SnowDisplacementBody { + keen::uint3 packedPosition; // Offset: 0 + keen::float rcpMinSoftness; // Offset: 12 + keen::float rcpMaxSoftness; // Offset: 16 + keen::float heightNoiseScale; // Offset: 20 +}; + +typedef keen::SsaoQuality SsaoQuality; + +struct SsaoData { + keen::ds::ViewSpacePositionReconstructionData viewspaceReconstructionData; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 64 + keen::uint2 _padding0; // Offset: 72 + keen::float32 ssaoIntensity; // Offset: 80 + keen::float32 ssaoBias; // Offset: 84 + keen::float32 ssaoScale; // Offset: 88 + keen::float32 ssaoSampleRadius; // Offset: 92 +}; + +struct StochasticScreenSpaceReflectionsConstantData { + keen::GraphicsMatrix44 g_inv_view_proj; // Offset: 0 + keen::GraphicsMatrix44 g_proj; // Offset: 64 + keen::GraphicsMatrix44 g_inv_proj; // Offset: 128 + keen::GraphicsMatrix43 g_view; // Offset: 192 + keen::GraphicsMatrix43 g_inv_view; // Offset: 240 + keen::GraphicsMatrix44 g_prev_view_proj; // Offset: 288 + keen::float3 g_camera_world_position; // Offset: 352 + keen::uint2 g_buffer_dimensions; // Offset: 368 + keen::float2 g_inv_buffer_dimensions; // Offset: 376 + keen::uint2 g_render_dimensions; // Offset: 384 + keen::float2 g_inv_render_dimensions; // Offset: 392 + keen::float g_temporal_stability_factor; // Offset: 400 + keen::float g_depth_buffer_thickness; // Offset: 404 + keen::float g_depth_buffer_thickness_far; // Offset: 408 + keen::float g_roughness_threshold; // Offset: 412 + keen::float g_temporal_variance_threshold; // Offset: 416 + keen::float g_sdf_ray_max_distance; // Offset: 420 + keen::float g_sdf_ray_start_offset; // Offset: 424 + keen::float g_sdf_hit_offset; // Offset: 428 + keen::uint g_frame_index; // Offset: 432 + keen::uint g_max_traversal_intersections; // Offset: 436 + keen::uint g_min_traversal_occupancy; // Offset: 440 + keen::uint g_most_detailed_mip; // Offset: 444 + keen::uint g_samples_per_quad; // Offset: 448 + keen::uint g_temporal_variance_guided_tracing_enabled; // Offset: 452 + keen::uint g_num_mips; // Offset: 456 + keen::uint g_resolution_downscale; // Offset: 460 + keen::float g_reflect_background; // Offset: 464 + keen::uint g_debug_reflection_rays; // Offset: 468 + keen::float g_edge_bleeding_max_distance; // Offset: 472 + keen::float g_edge_bleeding_offset; // Offset: 476 + keen::uint g_gi_enabled; // Offset: 480 + keen::float g_exposure; // Offset: 484 + keen::uint g_ground_truth_specular; // Offset: 488 +}; + +struct StochasticScreenSpaceReflectionsUpscaleData { + keen::uint2 outputSize; // Offset: 0 + keen::float2 linearDepthParameters; // Offset: 8 +}; + +struct DebugRootConstantData { + keen::uint debug_mode; // Offset: 0 +}; + +struct ApplyReflectionsConstants { + keen::GraphicsMatrix44 clipSpaceToCameraCenteredMatrix; // Offset: 0 + keen::uint2 outputSize; // Offset: 64 + keen::float2 invOutputSize; // Offset: 72 + keen::float specularMax; // Offset: 80 + keen::uint enableHorizonBasedOcclusion; // Offset: 84 + keen::float giLightFactor; // Offset: 88 + keen::uint flags; // Offset: 92 + keen::float specularReflectionsFactor; // Offset: 96 + keen::uint groundTruthSpecular; // Offset: 100 + keen::uint writeToSceneBrightness; // Offset: 104 +}; + +struct SurfacePickerShaderParameters { + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 0 + keen::float3 focusPosition; // Offset: 496 + keen::uint chunkCount; // Offset: 508 + keen::uint seed; // Offset: 512 + keen::float pickingRange; // Offset: 516 + keen::uint debugDrawPicks; // Offset: 520 + keen::uint enableDisplacement; // Offset: 524 +}; + +struct SurfacePickerShaderData { + keen::StaticArray binSize; // Offset: 0 + keen::StaticArray binOffset; // Offset: 24 + keen::StaticArray binPickIndex; // Offset: 48 + keen::uint culledChunkCount; // Offset: 72 + keen::uint pointCount; // Offset: 76 +}; + +struct SurfacePickerPointShaderData { + keen::float3 position; // Offset: 0 + keen::float3 normal; // Offset: 12 +}; + +struct SurfacePickerBakedDisplacementShaderData { + keen::float displacement; // Offset: 0 + keen::float displacementTop; // Offset: 4 + keen::float displacementBottom; // Offset: 8 + keen::float displacementSide; // Offset: 12 +}; + +struct TerraformingCursorMaterial { + keen::ObjectReference noiseMap; // Offset: 0 + keen::float3 noiseUvScale; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::HdrColorRgb ringColor; // Offset: 32 + keen::HdrColorRgb fillColor; // Offset: 48 +}; + +struct TerraformingCursorRfxRenderMaterial { + keen::float3 noiseUvScale; // Offset: 0 + keen::ds::BindlessTexture3D_float noiseMap; // Offset: 12 + keen::float3 ringColor; // Offset: 16 + keen::float32 ringThickness; // Offset: 28 + keen::float3 fillColor; // Offset: 32 +}; + +struct TextureInfo { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::uint16 arraySize; // Offset: 6 + keen::uint8 levelCount; // Offset: 8 + keen::TextureType type; // Offset: 9 + keen::PixelFormat format; // Offset: 10 + keen::ContentHash data; // Offset: 12 +}; + +struct TextureSizeInfo { + keen::ds::TextureInfo info; // Offset: 0 + keen::DsArray sources; // Offset: 32 +}; + +struct TransparentMaterial { +}; + +typedef keen::TransparentInstanceFlag TransparentInstanceFlag; + +struct TransparentInstanceData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 instanceCount; // Offset: 4 + keen::uint32 indexOffset; // Offset: 8 + keen::sint32 vertexOffset; // Offset: 12 + keen::uint32 instanceOffset; // Offset: 16 + keen::ds::BindlessTexture2D_float4 image; // Offset: 20 + keen::ds::BindlessSampler imageSampler; // Offset: 24 + keen::ds::BindlessSampler uvDistortionMapSampler; // Offset: 28 + keen::float32 edgeFadeOutFactor; // Offset: 32 + keen::float3 position; // Offset: 36 + keen::float32 depthFadeDistance; // Offset: 48 + keen::float4 rotation; // Offset: 52 + keen::float3 scale; // Offset: 68 + keen::float3 color; // Offset: 80 + keen::float32 alpha; // Offset: 92 + keen::float2 uvOffset; // Offset: 96 + keen::float2 uvScale; // Offset: 104 + keen::float2 uvDistortionOffset; // Offset: 112 + keen::float2 uvDistortionScale; // Offset: 120 + keen::float32 uvDistortionStrength; // Offset: 128 + keen::ds::BindlessTexture2D_float4 uvDistortionMap; // Offset: 132 + keen::float32 alphaClipValue; // Offset: 136 + keen::float32 alphaClipHalfRange; // Offset: 140 + keen::uint32 flags; // Offset: 144 + keen::ds::BindlessTexture2D_float4 motionVectorImage; // Offset: 148 + keen::float32 motionVectorScale; // Offset: 152 + keen::float32 flipbookTime; // Offset: 156 + keen::uint32 encodedFlipbookSize; // Offset: 160 +}; + +struct TransparentRfxRenderMaterial { +}; + +typedef keen::BoolMask BoolMask; + +struct VfxSamplerParameters { + keen::ds::RenderSamplerAddressMode addressU; // Offset: 0 + keen::ds::RenderSamplerAddressMode addressV; // Offset: 1 + keen::ds::RenderSamplerAddressMode addressW; // Offset: 2 +}; + +typedef keen::ShaderVariableComponentType ShaderVariableComponentType; + +struct ShaderVariable { + keen::ds::string name; // Offset: 0 + keen::ds::ShaderVariableComponentType componentType; // Offset: 40 + keen::uint8 componentCount; // Offset: 41 +}; + +typedef keen::VfxBufferMemberComponentType VfxBufferMemberComponentType; + +struct VfxBufferMember { + keen::ds::string name; // Offset: 0 + keen::uint32 componentCount; // Offset: 40 + keen::ds::VfxBufferMemberComponentType componentType; // Offset: 44 + keen::uint32 offsetInBytes; // Offset: 48 +}; + +struct VfxParticleStateBufferInfo { + keen::DsArray members; // Offset: 0 + keen::uint32 sizeInBytes; // Offset: 40 +}; + +typedef keen::VfxParameterType VfxParameterType; + +struct VfxMeshPatchPointData { + keen::uint32 indexCount; // Offset: 0 + keen::uint32 vertexCount; // Offset: 4 + keen::ContentHash vertexData; // Offset: 8 + keen::ContentHash indexData; // Offset: 24 + keen::float4 boundingSphere; // Offset: 40 +}; + +struct VfxModelPatchPointData { + keen::ObjectReference model; // Offset: 0 +}; + +struct VfxDecalPatchPointData { + keen::ObjectReference decal; // Offset: 0 +}; + +struct VfxImagePatchPointData { + keen::uint16 width; // Offset: 0 + keen::uint16 height; // Offset: 2 + keen::uint16 depth; // Offset: 4 + keen::ds::VfxSamplerParameters sampler; // Offset: 6 + keen::uint8 levelCount; // Offset: 9 + keen::TextureType type; // Offset: 10 + keen::PixelFormat format; // Offset: 11 + keen::ContentHash content; // Offset: 12 + keen::ds::string debugName; // Offset: 32 +}; + +struct VfxEmitterPatchPointData { + keen::uint32 childIndex; // Offset: 0 +}; + +struct VfxCurvePatchPointData { + keen::ContentHash samples; // Offset: 0 + keen::float32 startTime; // Offset: 16 + keen::float32 totalTime; // Offset: 20 + keen::uint32 sampleCount; // Offset: 24 + keen::ds::string name; // Offset: 32 +}; + +typedef keen::VfxParticleParameterPatchPointType VfxParticleParameterPatchPointType; + +struct VfxParticleParameterPatchPoint { + keen::ds::VfxParticleParameterPatchPointType type; // Offset: 0 + keen::uint32 offset; // Offset: 4 + keen::uint32 size; // Offset: 8 + keen::uint32 dataIndex; // Offset: 12 +}; + +struct VfxParticleUniformData { + keen::ContentHash data; // Offset: 0 + keen::DsArray patchPoints; // Offset: 16 + keen::DsArray imageData; // Offset: 56 + keen::DsArray meshData; // Offset: 96 + keen::DsArray modelData; // Offset: 136 + keen::DsArray emitterData; // Offset: 176 + keen::DsArray curveData; // Offset: 216 + keen::DsArray decalData; // Offset: 256 +}; + +typedef keen::VfxParticleFeature VfxParticleFeature; + +typedef keen::VfxParticleFeatureMask VfxParticleFeatureMask; + +struct VfxParticleResource { + keen::ds::string name; // Offset: 0 + keen::uint32 parent; // Offset: 40 + keen::uint32 stateSize; // Offset: 44 + keen::uint32 maxCount; // Offset: 48 + keen::ContentHash code; // Offset: 52 + keen::ContentHash strippedCode; // Offset: 68 + keen::ds::VfxParticleUniformData uniformData; // Offset: 88 +}; + +struct VfxUserEffectParameterDescription { + keen::ds::string name; // Offset: 0 + keen::uint32 nameHash; // Offset: 40 + keen::uint32 offset; // Offset: 44 + keen::uint32 sizeInBytes; // Offset: 48 + keen::Guid inheritanceKey; // Offset: 52 +}; + +struct VfxResource { + keen::uint64 parameterHash; // Offset: 0 + keen::DsArray parameters; // Offset: 8 + keen::ds::VfxUserEffectParameterDataBlock defaultData; // Offset: 48 + keen::DsArray particles; // Offset: 112 + keen::DsArray stateInfos; // Offset: 152 + keen::float32 cullingDistanceMin; // Offset: 192 + keen::float32 cullingDistanceMax; // Offset: 196 + keen::uint32 killTimeInSeconds; // Offset: 200 + keen::ds::string debugName; // Offset: 208 +}; + +struct VfxNode { + keen::bool enabled; // Offset: 0 + keen::ObjectReference particle; // Offset: 4 + keen::uint32 maxCount; // Offset: 20 +}; + +struct VfxDefinition { + keen::float32 cullingDistanceMin; // Offset: 0 + keen::float32 cullingDistanceMax; // Offset: 4 + keen::uint32 killTimeInSeconds; // Offset: 8 +}; + +struct VfxParticleDefinition { +}; + +typedef keen::VfxParticleValueKind VfxParticleValueKind; + +struct VfxParameterDefinitionBase { + keen::ds::VfxParticleValueKind kind; // Offset: 0 + keen::ds::string expression; // Offset: 8 +}; + +struct VfxParameterDefinition_Float { + keen::float32 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Float2 { + keen::float2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Float3 { + keen::float3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Float4 { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int { + keen::sint32 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int2 { + keen::int2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int3 { + keen::int3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Int4 { + keen::int4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt { + keen::uint32 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool { + keen::bool defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Color { + keen::Color defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Mesh { + keen::ObjectReference defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Model { + keen::ObjectReference defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Decal { + keen::ObjectReference defaultValue; // Offset: 48 +}; + +struct VfxParameterDefinition_Emitter { +}; + +struct VfxParameterDefinition_Image { + keen::ObjectReference defaultValue; // Offset: 48 + keen::ds::VfxSamplerParameters sampler; // Offset: 64 +}; + +struct VfxStateDefinitionBase { + keen::ds::VfxParticleValueKind kind; // Offset: 0 + keen::ds::string expression; // Offset: 8 +}; + +struct VfxStateDefinition_Float { + keen::float32 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Float2 { + keen::float2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Float3 { + keen::float3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Float4 { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int { + keen::sint32 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int2 { + keen::int2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int3 { + keen::int3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Int4 { + keen::int4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt { + keen::uint32 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt2 { + keen::uint2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt3 { + keen::uint3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_UInt4 { + keen::uint4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool { + keen::bool defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool2 { + keen::bool2 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool3 { + keen::bool3 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Bool4 { + keen::bool4 defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Color { + keen::Color defaultValue; // Offset: 48 +}; + +struct VfxStateDefinition_Quaternion { + keen::float4 defaultValue; // Offset: 48 +}; + +struct VfxExpressionBase { +}; + +struct VfxExpressionValue_Float1 { + keen::float32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Float4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int1 { + keen::sint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Int4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt1 { + keen::uint32 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxExpressionValue_UInt4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool { + keen::bool value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxExpressionValue_Bool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Color { + keen::Color value; // Offset: 0 +}; + +struct VfxExpressionValue_Quaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxExpressionValue_Particle { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Mesh { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Model { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Decal { + keen::ObjectReference value; // Offset: 0 +}; + +struct VfxExpressionValue_Image { + keen::ObjectReference value; // Offset: 0 +}; + +typedef keen::VfxExpressionType VfxExpressionType; + +struct VfxParameterExpression { + keen::ObjectReference parameter; // Offset: 0 + keen::ds::VfxExpressionType type; // Offset: 16 + keen::ds::string expression; // Offset: 24 + keen::DsVariant value; // Offset: 64 +}; + +struct VfxStateExpression { + keen::ObjectReference state; // Offset: 0 + keen::ds::VfxExpressionType type; // Offset: 16 + keen::ds::string expression; // Offset: 24 + keen::DsVariant value; // Offset: 64 +}; + +struct VfxEffectParameterBase { +}; + +struct VfxEffectParameterFloat { + keen::float32 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat2 { + keen::float2 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat3 { + keen::float3 value; // Offset: 0 +}; + +struct VfxEffectParameterFloat4 { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterBool { + keen::bool value; // Offset: 0 +}; + +struct VfxEffectParameterBool2 { + keen::bool2 value; // Offset: 0 +}; + +struct VfxEffectParameterBool3 { + keen::bool3 value; // Offset: 0 +}; + +struct VfxEffectParameterBool4 { + keen::bool4 value; // Offset: 0 +}; + +struct VfxEffectParameterInt { + keen::sint32 value; // Offset: 0 +}; + +struct VfxEffectParameterInt2 { + keen::int2 value; // Offset: 0 +}; + +struct VfxEffectParameterInt3 { + keen::int3 value; // Offset: 0 +}; + +struct VfxEffectParameterInt4 { + keen::int4 value; // Offset: 0 +}; + +struct VfxEffectParameterUint { + keen::uint32 value; // Offset: 0 +}; + +struct VfxEffectParameterUint2 { + keen::uint2 value; // Offset: 0 +}; + +struct VfxEffectParameterUint3 { + keen::uint3 value; // Offset: 0 +}; + +struct VfxEffectParameterUint4 { + keen::uint4 value; // Offset: 0 +}; + +struct VfxEffectParameterQuaternion { + keen::float4 value; // Offset: 0 +}; + +struct VfxEffectParameterColor { + keen::Color value; // Offset: 0 +}; + +struct VfxEffectParameterGroup { +}; + +struct VfxGlobalEffectParameterDirectory { +}; + +struct VfxGlobalEffectParameterInfo { + keen::Guid inheritanceKey; // Offset: 0 + keen::HashKey32 descriptionHash; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 20 +}; + +struct VfxGlobalEffectParameterRegistry { + keen::DsArray parameters; // Offset: 0 +}; + +struct VfxEffectParameterInfo { + keen::ds::VfxUserEffectParameterDescription description; // Offset: 0 + keen::DsVariant value; // Offset: 72 + keen::uint32 registerOffset; // Offset: 120 +}; + +struct VfxUserEffectParameterInfos { + keen::DsArray parameters; // Offset: 0 +}; + +struct VfxProfileEntry { + keen::Guid effectId; // Offset: 0 + keen::Time emitterGpuTime; // Offset: 16 + keen::Time particleGpuTime; // Offset: 24 + keen::uint32 instanceCount; // Offset: 32 + keen::uint32 chunkCount; // Offset: 36 + keen::uint32 dispatchCount; // Offset: 40 + keen::uint32 memoryUsage; // Offset: 44 +}; + +struct VfxProfileMessage { + keen::uint64 frameId; // Offset: 0 + keen::Time totalGpuTime; // Offset: 8 + keen::uint32 totalInstanceCount; // Offset: 16 + keen::uint32 totalMemoryUsage; // Offset: 20 + keen::uint32 totalDispatchCount; // Offset: 24 + keen::uint32 viewId; // Offset: 28 + keen::uint32 tickCount; // Offset: 32 + keen::DsArray entries; // Offset: 40 +}; + +struct vfx_converter.ParticleStateInfo { + keen::DsVariant definition; // Offset: 0 + keen::ds::string name; // Offset: 48 + keen::Guid id; // Offset: 88 + keen::float64 sortKey; // Offset: 104 +}; + +struct vfx_converter.ParticleParameterInfo { + keen::DsVariant definition; // Offset: 0 + keen::ds::string name; // Offset: 48 + keen::Guid id; // Offset: 88 + keen::float64 sortKey; // Offset: 104 + keen::DsArray spawnParameters; // Offset: 112 +}; + +struct vfx_converter.ParticleDefinitionInfo { + keen::DsArray states; // Offset: 0 + keen::DsArray parameters; // Offset: 40 + keen::bool isEmitter; // Offset: 80 +}; + +struct VfxConverterConfiguration { + keen::ds::VfxReference singleEffect; // Offset: 0 +}; + +struct VfxNodeInfo { + keen::Guid parentNodeId; // Offset: 0 + keen::Guid parentNodeDefinitionId; // Offset: 16 + keen::DsArray childNodeIds; // Offset: 32 + keen::bool isEnabled; // Offset: 72 +}; + +struct VfxBufferEntry { + keen::Guid id; // Offset: 0 + keen::ds::string name; // Offset: 16 + keen::DsTypeId typeNameHash; // Offset: 56 + keen::uint32 registerOffset; // Offset: 60 + keen::uint32 sizeInRegisters; // Offset: 64 + keen::bool hasCurveExpression; // Offset: 68 + keen::ds::string hlslTypeName; // Offset: 72 + keen::ds::string componentTypeName; // Offset: 112 + keen::uint32 componentCount; // Offset: 152 +}; + +struct VfxBufferInfo { + keen::DsArray entries; // Offset: 0 + keen::uint32 sizeInRegisters; // Offset: 40 +}; + +struct VfxParticleDefinitionCurveExpression { + keen::Guid curveId; // Offset: 0 + keen::Guid referencedParameterId; // Offset: 16 +}; + +struct VfxParticleDefinitionCurveExpressions { + keen::DsArray curves; // Offset: 0 +}; + +struct VfxParameterTypeIndices { + keen::DsArray types; // Offset: 0 +}; + +struct VfxBaseEffectParameters { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::uint32 startTime; // Offset: 28 + keen::float3 scale; // Offset: 32 + keen::uint32 isActive; // Offset: 44 + keen::float cullingDistanceMin; // Offset: 48 + keen::float cullingDistanceMax; // Offset: 52 + keen::uint32 isHidden; // Offset: 56 + keen::uint32 age; // Offset: 60 +}; + +struct VfxCombinedEffectParameters { + keen::ds::VfxBaseEffectParameters base; // Offset: 0 + keen::ds::VfxUserEffectParameterDataBlock user; // Offset: 64 +}; + +struct VfxMeshInfo { + keen::float3 positionScale; // Offset: 0 + keen::uint32 materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::uint32 indexOffset; // Offset: 28 + keen::uint32 vertexOffset; // Offset: 32 + keen::uint32 indexCount; // Offset: 36 + keen::uint32 packedPipelineIndices; // Offset: 40 +}; + +struct VfxModelInfo { + keen::float4 boundingSphere; // Offset: 0 + keen::uint32 modelSizeFeedbackIndex; // Offset: 16 + keen::uint32 firstMeshOffset; // Offset: 20 + keen::uint32 meshCount; // Offset: 24 +}; + +struct VfxModelInstanceTransform { + keen::float4 orientation; // Offset: 0 + keen::uint3 packedPosition; // Offset: 16 + keen::float scale; // Offset: 28 +}; + +struct VfxModelInstance { + keen::ds::VfxModelInstanceTransform transform; // Offset: 0 + keen::ds::VfxModelInstanceTransform previousTransform; // Offset: 32 + keen::float3 color; // Offset: 64 + keen::float alpha; // Offset: 76 + keen::float3 dissolveOffset; // Offset: 80 + keen::float dissolveRadius; // Offset: 92 + keen::float dissolveEdgeBrightness; // Offset: 96 + keen::float alphaClip; // Offset: 100 + keen::uint emissiveFactor; // Offset: 104 +}; + +struct VfxTerraformingCursorInstance { + keen::float3 boxSize; // Offset: 0 + keen::float sphereRadius; // Offset: 12 + keen::float3 position; // Offset: 16 + keen::uint isBox; // Offset: 28 + keen::float3 uvOffset; // Offset: 32 + keen::float ringAlpha; // Offset: 44 + keen::float ringAlphaClip; // Offset: 48 + keen::float ringAlphaClipHalfRange; // Offset: 52 + keen::float fillAlpha; // Offset: 56 + keen::float fillHardness; // Offset: 60 +}; + +struct VfxCullingInstance { + keen::float4 orientation; // Offset: 0 + keen::float3 position; // Offset: 16 + keen::float scale; // Offset: 28 + keen::uint modelIndex; // Offset: 32 + keen::uint instanceDataIndex; // Offset: 36 + keen::uint instanceDataTypeId; // Offset: 40 + keen::uint isDissolveActive; // Offset: 44 +}; + +struct VfxModelDrawData { + keen::float3 positionScale; // Offset: 0 + keen::uint materialIndex; // Offset: 12 + keen::float3 positionOffset; // Offset: 16 + keen::float pad0; // Offset: 28 +}; + +struct VfxIntermediateDraw { + keen::uint meshCounterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 +}; + +struct VfxCullingSubView { + keen::ds::GpuCullingFrustum cameraCenteredFrustum; // Offset: 0 + keen::float minObjectSize; // Offset: 96 +}; + +struct VfxCullingPassConstants { + keen::uint32 subViewIndex; // Offset: 0 + keen::uint32 normalPipelineShift; // Offset: 4 + keen::uint32 dissolvePipelineShift; // Offset: 8 + keen::uint32 firstBatchIndex; // Offset: 12 +}; + +struct VfxCullInstancesConstants { + keen::StaticArray subViews; // Offset: 0 + keen::StaticArray passes; // Offset: 1008 + keen::uint32 subViewCount; // Offset: 1168 + keen::uint32 passCount; // Offset: 1172 + keen::uint32 maxDrawCount; // Offset: 1176 + keen::uint32 maxMeshCount; // Offset: 1180 + keen::uint32 useOcclusionCulling; // Offset: 1184 + keen::float3 cameraWorldPosition; // Offset: 1188 + keen::GraphicsMatrix43 cameraCenteredToViewMatrix; // Offset: 1200 + keen::ds::GpuOcclusionCullingShaderData occlusionCullingData; // Offset: 1248 + keen::float modelSizeFeedbackPixelSize; // Offset: 1312 +}; + +struct VfxWriteCulledDrawCommandsPushConstants { + keen::uint firstBatchIndex; // Offset: 0 + keen::uint maxMeshCount; // Offset: 4 + keen::uint pipelineCount; // Offset: 8 +}; + +struct PreloadVfxList { +}; + +struct PreloadVfxListResource { + keen::DsArray vfxIds; // Offset: 0 +}; + +struct VoxelMaterialVfxDataResource { + keen::DsArray materialType; // Offset: 0 +}; + +struct GpuImage2D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuImage3D { + keen::uint32 index; // Offset: 0 +}; + +struct GpuSampler { + keen::uint32 index; // Offset: 0 +}; + +struct GpuCombinedImage2D { + keen::ds::GpuImage2D image; // Offset: 0 + keen::ds::GpuSampler sampler; // Offset: 4 +}; + +struct GpuCombinedImage3D { + keen::ds::GpuImage3D image; // Offset: 0 + keen::ds::GpuSampler sampler; // Offset: 4 +}; + +struct GpuMesh { + keen::uint32 vertexOffset; // Offset: 0 + keen::uint32 indexOffset; // Offset: 4 + keen::uint32 indexCount; // Offset: 8 + keen::uint32 vertexCount; // Offset: 12 + keen::float4 boundingSphere; // Offset: 16 +}; + +struct GpuMeshVertex { + keen::float3 position; // Offset: 0 + keen::float2 uv; // Offset: 12 + keen::float3 normal; // Offset: 20 + keen::float4 color; // Offset: 32 +}; + +struct GpuDecal { + keen::uint32 materialDataIndex; // Offset: 0 +}; + +struct GpuCurve { + keen::uint32 index; // Offset: 0 + keen::uint32 sampleCountMinusOne; // Offset: 4 + keen::float startTime; // Offset: 8 + keen::float inverseTotalTime; // Offset: 12 + keen::float inverseSampleDelta; // Offset: 16 +}; + +struct VfxBaseParticleState { + keen::uint myParentEmitterIndex; // Offset: 0 + keen::uint instanceIndex; // Offset: 4 + keen::uint rngState; // Offset: 8 + keen::uint tickCount; // Offset: 12 +}; + +struct VfxEmitterState { + keen::uint particleCounterByteOffset; // Offset: 0 + keen::uint spawnCounterByteOffset; // Offset: 4 + keen::uint maxParticleCount; // Offset: 8 + keen::uint maxSpawnCount; // Offset: 12 + keen::uint particleChunkIndex; // Offset: 16 + keen::uint instanceIndex; // Offset: 20 + keen::uint particleTypeIndex; // Offset: 24 + keen::uint explicitPad0; // Offset: 28 +}; + +struct VfxChunkState { + keen::uint freeParticleCounterByteOffset; // Offset: 0 + keen::uint currentActiveParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct VfxUpdateBuffer { + keen::uint time; // Offset: 0 + keen::float fixedTimeStep; // Offset: 4 + keen::float realTimeStep; // Offset: 8 + keen::uint currentTickId; // Offset: 12 + keen::uint transparentInstanceBufferCapacity; // Offset: 16 + keen::uint transparentInstanceCounterByteOffset; // Offset: 20 + keen::uint injectInstanceBufferCapacity; // Offset: 24 + keen::uint injectInstanceCounterByteOffset; // Offset: 28 + keen::uint pointLightBufferCapacity; // Offset: 32 + keen::uint pointLightCounterByteOffset; // Offset: 36 + keen::uint decalBufferCapacity; // Offset: 40 + keen::uint decalCounterByteOffset; // Offset: 44 + keen::uint grassMovementBodyCounterByteOffset; // Offset: 48 + keen::uint grassMovementBodyListCapacity; // Offset: 52 + keen::float32 exposure; // Offset: 56 + keen::float32 exposureCorrection; // Offset: 60 + keen::float3 cameraPosition; // Offset: 64 + keen::float timeOfDay; // Offset: 76 + keen::uint3 cameraWorldPosition; // Offset: 80 + keen::float4 cameraOrientation; // Offset: 96 + keen::StaticArray frustumPlanes; // Offset: 112 + keen::float3 sunDirection; // Offset: 192 + keen::float32 sunDirectLightFadeFactor; // Offset: 204 + keen::float3 moonDirection; // Offset: 208 + keen::float32 moonDirectLightFadeFactor; // Offset: 220 + keen::uint skipInjectSort; // Offset: 224 + keen::uint worldChunkCount; // Offset: 228 + keen::uint useParallelRadixSort; // Offset: 232 + keen::ds::DynamicHeightmapSamplingShaderData dynamicHeightmap; // Offset: 240 + keen::uint isDynamicHeightmapValid; // Offset: 272 + keen::uint sdfCascadeCount; // Offset: 276 + keen::uint firstSdfImageIndex; // Offset: 280 + keen::float32 sdfInvGridSize; // Offset: 284 + keen::uint isSdfBvhValid; // Offset: 288 + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 304 + keen::uint playerCount; // Offset: 800 + keen::StaticArray playerPositions; // Offset: 816 + keen::uint maxCullingInstanceCount; // Offset: 1072 + keen::uint maxModelInstanceCount; // Offset: 1076 + keen::uint maxTerraformingCursorInstanceCount; // Offset: 1080 + keen::uint hideSpiders; // Offset: 1084 + keen::uint snowDisplacementBodyCounterByteOffset; // Offset: 1088 + keen::uint snowDisplacementBodyListCapacity; // Offset: 1092 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 1104 +}; + +struct VfxPushConstants { + keen::uint data; // Offset: 0 +}; + +struct VfxPrepareBuffer { + keen::uint emitterCount; // Offset: 0 +}; + +struct VfxWorldChunk { + keen::uint vertexOffset; // Offset: 0 + keen::uint vertexCount; // Offset: 4 + keen::uint indexOffset; // Offset: 8 + keen::uint indexCount; // Offset: 12 + keen::uint type; // Offset: 16 + keen::float4 translationAndScale; // Offset: 20 +}; + +struct GpuSortData { + keen::float highSortKey; // Offset: 0 + keen::float lowSortKey; // Offset: 4 + keen::uint instanceIndex; // Offset: 8 + keen::uint explicitPad0; // Offset: 12 +}; + +struct GpuSortShaderData { + keen::uint elementCount; // Offset: 0 +}; + +struct GpuSortWritebackShaderData { + keen::uint elementCounterOffset; // Offset: 0 +}; + +struct VfxChunkUpdateBuffer2 { + keen::uint particleTypeParametersOffset; // Offset: 0 + keen::uint activeParticleCounterByteOffset; // Offset: 4 + keen::uint nextActiveParticleCounterByteOffset; // Offset: 8 + keen::uint freeParticleCounterByteOffset; // Offset: 12 + keen::uint particleStatesOffset; // Offset: 16 + keen::uint oldActiveParticleIndicesOffset; // Offset: 20 + keen::uint newActiveParticleIndicesOffset; // Offset: 24 + keen::uint freeParticleIndicesOffset; // Offset: 28 + keen::uint parentStatesOffset; // Offset: 32 + keen::uint oldActiveParentParticleIndicesOffset; // Offset: 36 + keen::uint childParticleStatesOffset; // Offset: 40 + keen::uint childParticleFreeListOffset; // Offset: 44 + keen::uint childActiveParticleIndicesOffset; // Offset: 48 + keen::uint chunkId; // Offset: 52 + keen::uint explicitPad0; // Offset: 56 + keen::uint explicitPad1; // Offset: 60 +}; + +struct ViewReprojectionData { + keen::GraphicsMatrix44 ndcToPreviousNdcMatrix; // Offset: 0 +}; + +struct Fog2DownsampleDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 +}; + +struct Fog2MinMaxDepthParameters { + keen::uint2 sourceSize; // Offset: 0 + keen::float2 invSourceSize; // Offset: 8 + keen::uint2 targetSize; // Offset: 16 + keen::uint32 tileSize; // Offset: 24 +}; + +struct Fog2SampleSkyParameters { + keen::float32 cloudLayerY; // Offset: 0 + keen::float32 planetRadius; // Offset: 4 +}; + +struct Fog2CloudsErosionParameters { + keen::float3 scrollSpeed; // Offset: 0 + keen::float32 tilingFactor; // Offset: 12 + keen::float32 heightTilingFactor; // Offset: 16 + keen::uint32 noiseTextureIndex; // Offset: 20 + keen::float32 strength; // Offset: 24 +}; + +struct Fog2CloudsParameters { + keen::float32 yRange; // Offset: 0 + keen::float32 invYRange; // Offset: 4 + keen::float2 texcoordMapping; // Offset: 8 + keen::uint32 cloudTypes; // Offset: 16 + keen::ds::Fog2CloudsErosionParameters erosionPass0; // Offset: 32 + keen::ds::Fog2CloudsErosionParameters erosionPass1; // Offset: 64 + keen::ds::Fog2CloudsErosionParameters erosionPass2; // Offset: 96 + keen::float3 emission; // Offset: 128 + keen::float3 inScatteringDivExtinction; // Offset: 144 + keen::float32 extinctionLn2; // Offset: 156 +}; + +struct Fog2RenderSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::uint2 blueNoiseOffset; // Offset: 16 + keen::uint32 blueNoiseSizeMask; // Offset: 24 + keen::uint32 ditherPatternOffset; // Offset: 28 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::uint32 rayMarchSampleCount; // Offset: 160 + keen::float3 lightFactorSun; // Offset: 164 + keen::float32 exposure; // Offset: 176 + keen::float3 lightFactorSky; // Offset: 180 + keen::ds::ForwardDirectionalLightData cloudsLight; // Offset: 192 + keen::ds::ForwardDirectionalLightData skyLight0; // Offset: 224 + keen::ds::ForwardDirectionalLightData skyLight1; // Offset: 256 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 288 + keen::ds::Fog2CloudsParameters clouds; // Offset: 352 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 512 + keen::float32 time; // Offset: 528 +}; + +struct Fog2BlurSkyParameters { + keen::uint2 outputSize; // Offset: 0 +}; + +struct Fog2TfSkyParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 20 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 96 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 160 +}; + +struct CloudsSampleConstants { + keen::float2 texcoordMappingScale; // Offset: 0 + keen::float2 texcoordMappingOffset; // Offset: 8 +}; + +struct Fog2SampleParameters { + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 0 + keen::float3 cameraPosition; // Offset: 64 + keen::ds::ForwardDirectionalLightData directionalLightData0; // Offset: 80 + keen::uint32 enableWeather; // Offset: 112 + keen::ds::WeatherSampleConstants weatherSampleConstants; // Offset: 128 + keen::ds::CloudsSampleConstants cloudsSampleConstants; // Offset: 256 + keen::ds::AtmosphereShaderData atmosphere; // Offset: 272 + keen::ds::VolumetricShadowRuntimeData volumetricShadow; // Offset: 336 + keen::ds::RenderShadowAtlasShaderData shadowAtlas; // Offset: 576 + keen::ds::VolumetricFogGridShaderData fogGrid; // Offset: 1664 + keen::ds::SdfShaderData fogGridSdf; // Offset: 2160 + keen::ds::GrassMovementData grassMovement; // Offset: 2176 + keen::float32 exposureCorrection; // Offset: 2208 + keen::float32 lightFactorEmissive; // Offset: 2212 + keen::float3 lightFactorSun; // Offset: 2224 + keen::float3 lightFactorSky; // Offset: 2240 + keen::float32 lightFactorPointLights; // Offset: 2252 + keen::ds::GiAmbientFroxelVolumeParameters giFroxelParameters; // Offset: 2256 + keen::float32 lightFactorGi; // Offset: 2320 + keen::float2 surfaceFadeFunction; // Offset: 2324 + keen::float32 surfaceWidthFactor; // Offset: 2332 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 2336 + keen::float32 surfaceNoiseScaleFactor; // Offset: 2340 + keen::uint32 surfaceNoiseDescriptorIndex; // Offset: 2344 + keen::ds::VolumetricFogGridMaterial surfaceMaterial; // Offset: 2352 + keen::ds::SdfShaderData worldSdf; // Offset: 2400 + keen::float worldHeightPositionMapping; // Offset: 2416 + keen::float2 groundFadeFunction; // Offset: 2420 + keen::float2 groundGradientFadeFunction; // Offset: 2432 + keen::float32 groundHeightFactor; // Offset: 2440 + keen::float32 groundNoiseScrollSpeed; // Offset: 2444 + keen::float32 groundNoiseScale; // Offset: 2448 + keen::uint32 groundNoiseDescriptorIndex; // Offset: 2452 + keen::ds::VolumetricFogGridMaterial groundMaterialAbove; // Offset: 2464 + keen::ds::VolumetricFogGridMaterial groundMaterialBelow; // Offset: 2512 + keen::float32 heightExponent; // Offset: 2560 + keen::float32 forestExponent; // Offset: 2564 + keen::float2 heightFadeFunction; // Offset: 2568 + keen::float2 forestFadeFunction; // Offset: 2576 + keen::ds::VolumetricFogGridMaterial heightMaterial; // Offset: 2592 + keen::ds::VolumetricFogGridMaterial forestMaterial; // Offset: 2640 + keen::ds::VolumetricFogGridMaterial rainMaterial; // Offset: 2688 + keen::ds::VolumetricFogGridMaterial snowMaterial; // Offset: 2736 + keen::ds::VolumetricFogGridMaterial blizzardMaterial; // Offset: 2784 + keen::float32 time; // Offset: 2832 + keen::ds::VoxelWorldShadowMapShaderData voxelWorldShadowMap; // Offset: 2848 + keen::uint32 isGiEnabled; // Offset: 3008 + keen::ds::GiAmbientProbesLookupData ambientProbesLookupData; // Offset: 3024 +}; + +struct Fog2RenderParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float32 exposure; // Offset: 96 +}; + +struct Fog2RenderBlurResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 +}; + +struct Fog2TemporalBlendResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::float32 oldWeight; // Offset: 16 + keen::float32 oldDepthDifferenceWeight; // Offset: 20 + keen::float2 linearDepthParameters; // Offset: 24 + keen::float32 oldToNewExposure; // Offset: 32 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 48 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 +}; + +struct Fog2InitializeShadowVolumeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 12 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 +}; + +struct Fog2IntegrateShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::GraphicsMatrix43 worldToNextShadowCascadeMatrix; // Offset: 64 + keen::float32 dk; // Offset: 112 +}; + +struct Fog2IntegrateLastShadowVolumeCascadeParameters { + keen::uint32 shadowVolumeResolution; // Offset: 0 + keen::float32 invShadowVolumeResolution; // Offset: 4 + keen::uint32 cascadeIndex; // Offset: 8 + keen::GraphicsMatrix43 shadowCascadeToWorldMatrix; // Offset: 16 + keen::float32 dk; // Offset: 64 + keen::ds::VolumetricShadowRuntimeData volumetricShadow; // Offset: 80 +}; + +struct Fog2WriteShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 +}; + +struct Fog2TfShadowViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::ds::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2WriteScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 exposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 manyLightsShadowsEnabled; // Offset: 124 + keen::uint32 isShadowViewVolumeValid; // Offset: 128 +}; + +struct Fog2TfScatteredLightVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::ds::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2InitializeParticipatingMediaVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::uint32 injectInstanceCounterByteOffset; // Offset: 124 +}; + +struct Fog2WriteViewVolumeSourceTermParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::float32 exposure; // Offset: 112 + keen::float32 exposureCorrection; // Offset: 116 + keen::uint2 blueNoiseOffset; // Offset: 120 + keen::uint32 blueNoiseSizeMask; // Offset: 128 + keen::uint32 manyLightsShadowsEnabled; // Offset: 132 + keen::uint32 isShadowViewVolumeValid; // Offset: 136 + keen::uint32 isScatteredLightVolumeValid; // Offset: 140 +}; + +struct Fog2TfViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 oldWeight; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::float32 oldToNewExposure; // Offset: 28 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::GraphicsMatrix44 oldViewProjectionMatrix; // Offset: 112 + keen::ds::Fog2ViewVolumeTransform oldViewVolumeTransform; // Offset: 176 +}; + +struct Fog2IntegrateViewVolumeParameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 +}; + +struct Fog2IntegrateViewVolume2Parameters { + keen::uint3 viewVolumeSize; // Offset: 0 + keen::float32 windTime; // Offset: 12 + keen::float3 invViewVolumeSize; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 32 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 96 +}; + +struct Fog2RenderFogGridIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float3 fogGridMin; // Offset: 96 + keen::float3 fogGridMax; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 124 +}; + +struct Fog2RenderWeatherMapIntersectionsParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 80 + keen::float2 weatherMapMin; // Offset: 96 + keen::float2 weatherMapMax; // Offset: 104 + keen::float2 weatherMapVoxelSize; // Offset: 112 + keen::uint32 maxStepCount; // Offset: 120 + keen::uint32 enableWeather; // Offset: 124 +}; + +struct Fog2RenderRaymarchParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 80 + keen::ds::Fog2SampleSkyParameters sky; // Offset: 96 + keen::uint2 blueNoiseOffset; // Offset: 112 + keen::uint32 blueNoiseSizeMask; // Offset: 120 + keen::float32 exposure; // Offset: 124 +}; + +struct Fog2CompositeViewVolumeDebugParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 16 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 80 + keen::ds::Fog2ViewVolumeTransform viewVolumeTransform; // Offset: 144 + keen::GraphicsMatrix44 viewVolumeViewProjectionMatrix; // Offset: 160 + keen::GraphicsMatrix44 viewVolumeInvViewProjectionMatrix; // Offset: 224 + keen::float32 dk; // Offset: 288 +}; + +struct Fog2RenderUpscaleResultParameters { + keen::uint2 outputSize; // Offset: 0 + keen::uint2 blueNoiseOffset; // Offset: 8 + keen::uint32 blueNoiseSizeMask; // Offset: 16 + keen::float2 linearDepthParameters; // Offset: 20 +}; + +struct Fog2TestParameters { + keen::uint2 outputSize; // Offset: 0 + keen::float2 invOutputSize; // Offset: 8 + keen::GraphicsMatrix44 invViewProjectionMatrix; // Offset: 16 +}; + +typedef keen::Fog2CompositeFlag Fog2CompositeFlag; + +typedef keen::Fog2CompositeFlags Fog2CompositeFlags; + +struct Fog2CompositeParameters { + keen::uint2 targetSize; // Offset: 0 + keen::float2 invTargetSize; // Offset: 8 + keen::uint32 flags; // Offset: 16 + keen::ds::Fog2ViewVolumeSampleParameters sampleParameters; // Offset: 32 + keen::uint2 blueNoiseOffset; // Offset: 64 + keen::uint32 blueNoiseSizeMask; // Offset: 72 +}; + +struct Fog2DebugBlitParameters { + keen::uint2 blitOffset; // Offset: 0 + keen::uint2 blitSize; // Offset: 8 + keen::float32 scale; // Offset: 16 +}; + +struct VolumetricFog2ResourceData { + keen::ObjectReference initializationMaterial; // Offset: 0 + keen::ObjectReference atmosphere; // Offset: 16 + keen::ds::FogMaterialParameters surfaceMaterial; // Offset: 32 + keen::float32 surfaceWidth; // Offset: 60 + keen::ds::ImageReference surfaceNoise; // Offset: 64 + keen::float32 surfaceNoiseScale; // Offset: 80 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 84 + keen::FloatRange surfaceFadeRange; // Offset: 88 + keen::float32 groundHeightExponent; // Offset: 96 + keen::ds::FogMaterialParameters groundMaterialAbove; // Offset: 100 + keen::ds::FogMaterialParameters groundMaterialBelow; // Offset: 128 + keen::FloatRange groundFadeRange; // Offset: 156 + keen::FloatRange groundGradientFadeRange; // Offset: 164 + keen::ds::ImageReference groundNoise; // Offset: 172 + keen::float32 groundNoiseScale; // Offset: 188 + keen::float32 groundNoiseFlowSpeed; // Offset: 192 + keen::float32 heightExponent; // Offset: 196 + keen::ds::FogMaterialParameters heightMaterial; // Offset: 200 + keen::FloatRange heightFadeRange; // Offset: 228 + keen::float32 forestExponent; // Offset: 236 + keen::ds::FogMaterialParameters forestMaterial; // Offset: 240 + keen::FloatRange forestFadeRange; // Offset: 268 + keen::ds::FogMaterialParameters rainMaterial; // Offset: 276 + keen::ds::FogMaterialParameters snowMaterial; // Offset: 304 + keen::ds::FogMaterialParameters blizzardMaterial; // Offset: 332 +}; + +struct VolumetricFog2Resource { + keen::ds::Fog2SampleSkyParameters sampleSkyParameters; // Offset: 0 + keen::ds::Fog2CloudsParameters cloudParameters; // Offset: 16 + keen::ds::RenderTexture cloudTypes; // Offset: 176 + keen::ds::RenderTexture cloudErosionPass0; // Offset: 248 + keen::ds::RenderTexture cloudErosionPass1; // Offset: 320 + keen::ds::RenderTexture cloudErosionPass2; // Offset: 392 + keen::float2 surfaceFadeFunction; // Offset: 464 + keen::float32 surfaceWidth; // Offset: 472 + keen::ds::RenderTexture surfaceNoise; // Offset: 480 + keen::float32 surfaceNoiseScale; // Offset: 552 + keen::float32 surfaceNoiseScrollSpeed; // Offset: 556 + keen::ds::FogMaterialParameters surfaceMaterial; // Offset: 560 + keen::float32 groundHeightFactor; // Offset: 588 + keen::ds::FogMaterialParameters groundMaterialAbove; // Offset: 592 + keen::ds::FogMaterialParameters groundMaterialBelow; // Offset: 620 + keen::float2 groundFadeFunction; // Offset: 648 + keen::float2 groundGradientFadeFunction; // Offset: 656 + keen::ds::RenderTexture groundNoise; // Offset: 664 + keen::float32 groundNoiseScale; // Offset: 736 + keen::float32 groundNoiseScrollSpeed; // Offset: 740 + keen::float32 heightExponent; // Offset: 744 + keen::ds::FogMaterialParameters heightMaterial; // Offset: 748 + keen::float2 heightFadeFunction; // Offset: 776 + keen::float32 forestExponent; // Offset: 784 + keen::ds::FogMaterialParameters forestMaterial; // Offset: 788 + keen::float2 forestFadeFunction; // Offset: 816 + keen::ds::FogMaterialParameters rainMaterial; // Offset: 824 + keen::ds::FogMaterialParameters snowMaterial; // Offset: 852 + keen::ds::FogMaterialParameters blizzardMaterial; // Offset: 880 +}; + +typedef keen::Fog2ShadowVolumeTransformMatrices Fog2ShadowVolumeTransformMatrices; + +struct VolumetricFogGridRenderParameters { + keen::ds::FogMaterialParameters noneMaterial; // Offset: 0 + keen::ds::FogMaterialParameters dangerousMaterial; // Offset: 28 + keen::ds::FogMaterialParameters deadlyMaterial; // Offset: 56 + keen::ds::FogMaterialParameters decorativeMaterial; // Offset: 84 +}; + +struct VolumetricFogGridUpdateShaderData { + keen::int3 origin; // Offset: 0 + keen::uint3 size; // Offset: 16 + keen::uint32 bufferOffset; // Offset: 28 +}; + +struct GroundFogParameters { + keen::float32 height; // Offset: 28 + keen::float32 angleFadeoutPosition; // Offset: 32 + keen::float32 angleFadeoutRange; // Offset: 36 + keen::float32 sdfGradientEpsilon; // Offset: 40 + keen::float32 flowSpeed; // Offset: 44 + keen::ObjectReference noise; // Offset: 48 + keen::float32 noiseTilingSize; // Offset: 64 +}; + +struct CloudErosionPass { + keen::float32 tilingSize; // Offset: 0 + keen::float32 heightTilingSize; // Offset: 4 + keen::float32 scrollSpeed; // Offset: 8 + keen::float32 strength; // Offset: 12 + keen::ObjectReference noise; // Offset: 16 +}; + +struct CloudParameters { + keen::float32 yMin; // Offset: 28 + keen::float32 yMax; // Offset: 32 + keen::ObjectReference cloudMap; // Offset: 36 + keen::ObjectReference cloudTypes; // Offset: 52 + keen::ds::CloudErosionPass erosionPass0; // Offset: 68 + keen::ds::CloudErosionPass erosionPass1; // Offset: 100 + keen::ds::CloudErosionPass erosionPass2; // Offset: 132 + keen::float32 shadowStrength; // Offset: 164 + keen::float32 shadowStrengthSlope; // Offset: 168 + keen::float32 shadowStrengthOffset; // Offset: 172 + keen::float32 fadeoutStart; // Offset: 176 + keen::float32 fadeoutRange; // Offset: 180 +}; + +struct VolumetricFogInitializationMaterial { + keen::ds::GroundFogParameters ground; // Offset: 0 + keen::ds::CloudParameters clouds; // Offset: 68 +}; + +struct CloudLayerShadowParameterBlockData { + keen::float32 yMin; // Offset: 0 + keen::float32 yMax; // Offset: 4 + keen::float32 invYRange; // Offset: 8 + keen::float32 shadowStrength; // Offset: 12 + keen::float2 shadowSampleMap; // Offset: 16 +}; + +struct AnalyticFogShadowParameterBlock { + keen::ds::CloudLayerShadowParameterBlockData clouds; // Offset: 0 +}; + +struct AnalyticFogResource { + keen::ds::RenderParameterBlock analyticFogShadowParameterBlock; // Offset: 0 + keen::ds::RenderTexture cloudMap; // Offset: 184 +}; + +typedef keen::VolumetricFogInjectionShape VolumetricFogInjectionShape; + +struct VolumetricFogInjectInstanceData { + keen::float3 position; // Offset: 0 + keen::uint32 shape; // Offset: 12 + keen::float4 rotation; // Offset: 16 + keen::float3 size; // Offset: 32 + keen::float32 density; // Offset: 44 + keen::ds::BindlessTexture3D_float densityTexture; // Offset: 48 + keen::ds::BindlessSampler densityTextureSampler; // Offset: 52 + keen::float32 falloff; // Offset: 56 + keen::float3 uvOffset; // Offset: 60 + keen::float3 uvScale; // Offset: 72 + keen::float3 emission; // Offset: 84 + keen::float32 extinction; // Offset: 96 + keen::float3 scattering; // Offset: 100 + keen::float32 g; // Offset: 112 +}; + +typedef keen::WeatherSampleFlag WeatherSampleFlag; + +struct VoxelMaterialList { + keen::ObjectReference defaultTerrainMaterial; // Offset: 0 +}; + +typedef keen::ObjectReference VoxelMaterialReference; + +struct TerrainMaterialLayer { + keen::ObjectReference material; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableSeparateTilingSizeY; // Offset: 20 + keen::float32 tilingSizeY; // Offset: 24 + keen::float32 parallaxDepth; // Offset: 28 + keen::uint32 parallaxMinLayerCount; // Offset: 32 + keen::uint32 parallaxMaxLayerCount; // Offset: 36 + keen::float32 parallaxFadeoutStart; // Offset: 40 + keen::float32 parallaxFadeoutLength; // Offset: 44 + keen::float32 parallaxMinAngle; // Offset: 48 + keen::float32 parallaxAngleFadeoutLength; // Offset: 52 + keen::ds::PbrTerrainMaterialDisplacementLayer displacement; // Offset: 56 +}; + +struct TerrainMaterialOverlayBlendLayer { + keen::float32 fadeInDistance; // Offset: 64 + keen::float32 fadeInRange; // Offset: 68 +}; + +struct TerrainMaterialDetailBlendLayer { + keen::float32 maxOpacity; // Offset: 72 + keen::float32 maxOpacityNormal; // Offset: 76 + keen::ds::PbrTerrainMaterialDetailNormalBlendMode mode; // Offset: 80 +}; + +struct TerrainMaterialColorVariation { + keen::ObjectReference map; // Offset: 0 + keen::float32 tilingSize; // Offset: 16 + keen::bool enableMidPoint; // Offset: 20 + keen::Color start; // Offset: 24 + keen::Color mid; // Offset: 28 + keen::Color end; // Offset: 32 + keen::float32 midPosition; // Offset: 36 +}; + +typedef keen::WorldMaterialBlending2MappingDirection WorldMaterialBlending2MappingDirection; + +struct WorldMaterial2Layer { + keen::ds::WorldMaterialBlending2MappingDirection mappingDirection; // Offset: 0 + keen::float32 heightBias; // Offset: 4 + keen::ObjectReference edgeNoiseMap; // Offset: 8 + keen::float32 edgeNoiseMapTilingSize; // Offset: 24 + keen::float32 edgeNoiseStrength; // Offset: 28 + keen::ds::PbrTerrainMaterialCenterBlendingSmoothness frontRightBlendingSmoothness; // Offset: 32 + keen::bool enableSnowDisplacement; // Offset: 40 + keen::bool disableFrostShader; // Offset: 41 + keen::bool disableSnowShader; // Offset: 42 + keen::bool disableWetnessShader; // Offset: 43 + keen::bool enableFrostShaderGlitter; // Offset: 44 +}; + +typedef keen::WorldMaterial2Area WorldMaterial2Area; + +typedef keen::WorldMaterial2Side WorldMaterial2Side; + +typedef keen::WorldMaterial2BlendingValue WorldMaterial2BlendingValue; + +struct WorldMaterial2BlendingValueMapping { + keen::float32 position; // Offset: 0 + keen::float32 range; // Offset: 4 +}; + +struct WorldMaterial2Node { + keen::bool enable; // Offset: 0 +}; + +struct WorldMaterial2AreaNode { + keen::ds::WorldMaterial2Area area; // Offset: 1 +}; + +struct WorldMaterial2VoxelMaterialNode { + keen::ObjectReference voxelMaterial; // Offset: 4 +}; + +struct WorldMaterial2SideSelectorNode { + keen::ds::WorldMaterial2BlendingValueMapping topMapping; // Offset: 4 + keen::ds::WorldMaterial2BlendingValueMapping bottomMapping; // Offset: 12 +}; + +struct WorldMaterial2SideNode { + keen::ds::WorldMaterial2Side side; // Offset: 1 +}; + +struct WorldMaterial2BlendingValueNode { + keen::ds::WorldMaterial2BlendingValue value; // Offset: 1 + keen::ds::WorldMaterial2BlendingValueMapping mapping; // Offset: 4 + keen::bool invert; // Offset: 12 +}; + +struct WorldMaterial2MapNode { + keen::ObjectReference map; // Offset: 4 + keen::float32 mapTilingSize; // Offset: 20 +}; + +struct WorldMaterial2LayerNode { + keen::ObjectReference material; // Offset: 4 +}; + +struct WorldMaterial2 { +}; + +typedef keen::WorldMaterialBlending2BlendingMode WorldMaterialBlending2BlendingMode; + +typedef keen::WorldMaterialBlending2BakingBlendValueOperationType WorldMaterialBlending2BakingBlendValueOperationType; + +typedef keen::WorldMaterialBlending2BakingInputValue WorldMaterialBlending2BakingInputValue; + +struct WorldMaterialBlending2BakingBlendValueOperation { + keen::uint32 type; // Offset: 0 + keen::float32 param0; // Offset: 4 + keen::float32 param1; // Offset: 8 + keen::float32 param2; // Offset: 12 + keen::float32 param3; // Offset: 16 +}; + +struct WorldMaterialBlending2BakingLayerShaderData { + keen::StaticArray ops; // Offset: 0 + keen::uint32 opCount; // Offset: 160 +}; + +struct WorldMaterialBlending2MaterialBlendLayerShaderData { + keen::float2 weightFunction; // Offset: 0 +}; + +typedef keen::WorldMaterialBlending2MaterialLayerFlag WorldMaterialBlending2MaterialLayerFlag; + +struct WorldMaterialBlending2MaterialLayerRenderingShaderData { + keen::uint32 mappingDirection; // Offset: 0 + keen::uint32 baseLayerIndex; // Offset: 4 + keen::uint32 blendLayerCount; // Offset: 8 + keen::uint32 detailBlendingMode; // Offset: 12 + keen::float32 heightBlendingFactor; // Offset: 16 + keen::ds::StreamedTexture2D_float edgeNoise; // Offset: 20 + keen::float32 edgeNoiseTilingFactor; // Offset: 24 + keen::float32 edgeNoiseMappingFactor; // Offset: 28 + keen::float4 frontRightBlendSmoothness; // Offset: 32 + keen::float2 detailWeightFunction; // Offset: 48 + keen::float2 detailOpacityMapping; // Offset: 56 + keen::StaticArray blendLayerParameters; // Offset: 64 + keen::float3 colorVariationStart; // Offset: 96 + keen::ds::StreamedTexture2D_float4 colorVariationMap; // Offset: 108 + keen::float3 colorVariationMid; // Offset: 112 + keen::float32 colorVariationTilingFactor; // Offset: 124 + keen::float3 colorVariationEnd; // Offset: 128 + keen::uint32 flags; // Offset: 140 + keen::float3 colorVariationParams; // Offset: 144 +}; + +struct WorldMaterialBlending2MaterialLayerTextureShaderData { + keen::float2 tilingFactor; // Offset: 0 + keen::ds::StreamedTexture2D_float4 emissiveMap; // Offset: 8 + keen::float32 emissiveMapIntensity; // Offset: 12 + keen::float32 emissiveExposureCorrectionFactor; // Offset: 16 + keen::ds::StreamedTexture2D_float4 albedoMap; // Offset: 20 + keen::ds::StreamedTexture2D_float roughnessMap; // Offset: 24 + keen::ds::StreamedTexture2D_float4 normalMap; // Offset: 28 + keen::ds::StreamedTexture2D_float heightMap; // Offset: 32 + keen::ds::StreamedTexture2D_float aoMap; // Offset: 36 + keen::float32 displacementScale; // Offset: 40 + keen::float32 displacementOffset; // Offset: 44 + keen::float32 parallaxFactor; // Offset: 48 + keen::uint32 parallaxMinLayerCount; // Offset: 52 + keen::uint32 parallaxMaxLayerCount; // Offset: 56 + keen::float32 parallaxFadeoutStart; // Offset: 60 + keen::float32 parallaxInverseFadeoutLength; // Offset: 64 + keen::float32 parallaxMinAngleSin; // Offset: 68 + keen::float32 parallaxInverseAngleFadeoutLength; // Offset: 72 + keen::float32 emissiveGiFactor; // Offset: 76 + keen::float32 distortionMapScale; // Offset: 80 + keen::float32 distortionMapSpeed; // Offset: 84 + keen::float32 distortionMapIntensity; // Offset: 88 + keen::float32 lightningMapScrollSpeed; // Offset: 92 + keen::float32 lightningMapIntensity; // Offset: 96 + keen::ds::StreamedTexture2D_float4 distortionMap; // Offset: 100 + keen::ds::StreamedTexture2D_float4 lightningMap; // Offset: 104 + keen::ds::StreamedTexture2D_float4 gradientMap; // Offset: 108 +}; + +struct WorldMaterialBlending2MaterialLayerRange { + keen::uint32 firstLayer; // Offset: 0 + keen::uint32 layerCount; // Offset: 4 +}; + +struct WorldMaterialBlending2Resource { + keen::uint32 layerCount; // Offset: 0 + keen::ds::RenderParameterBlock bakingParameterBlock; // Offset: 8 + keen::ds::RenderParameterBlock renderingLayerParameterBlock; // Offset: 192 + keen::ds::RenderParameterBlock renderingTextureParameterBlock; // Offset: 376 + keen::ds::RenderParameterBlock voxelToLayerParameterBlock; // Offset: 560 + keen::DsArray renderingLayerImageSizeInfos; // Offset: 744 + keen::DsArray renderingLayerImageSizeInfoStartIndices; // Offset: 784 + keen::DsArray renderingTextureImageSizeInfos; // Offset: 824 + keen::DsArray renderingTextureImageSizeInfoStartIndices; // Offset: 864 + keen::DsArray renderingLayerUsesSnowDisplacement; // Offset: 904 +}; + +struct WorldMaterialBlending2DebugResource { + keen::DsArray layerGuids; // Offset: 0 + keen::DsArray layerNames; // Offset: 40 +}; + +struct ZoneVisualizationSdfBoundingSphere { + keen::float3 worldSpacePosition; // Offset: 0 + keen::float32 sqrRadius; // Offset: 12 +}; + +typedef keen::ZoneVisualizationSdfElementType ZoneVisualizationSdfElementType; + +struct ZoneVisualizationSdfElement { + keen::float3 halfSize; // Offset: 0 + keen::ds::ZoneVisualizationSdfElementType type; // Offset: 12 +}; + +struct ZoneVisualizationSdfShaderData { + keen::uint32 elementCount; // Offset: 0 + keen::float32 smoothingRadius; // Offset: 4 +}; + +struct ZoneVisualizationSdfShaderStorageData { + keen::StaticArray boundingSpheres; // Offset: 0 + keen::StaticArray elements; // Offset: 512 +}; + +struct ZoneVisualizationSdfRenderingShaderData { + keen::float32 borderInverseSize; // Offset: 0 + keen::float32 borderCurveMax; // Offset: 4 + keen::float32 noiseBorderTilingFactor; // Offset: 8 + keen::float32 noisePositionTilingFactor; // Offset: 12 + keen::float32 noiseOffset; // Offset: 16 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 20 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 32 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 40 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 48 + keen::float3 buildZoneBorderColor; // Offset: 64 + keen::float3 noBuildZoneBorderColor; // Offset: 80 + keen::uint32 drawBuildZoneBorder; // Offset: 92 + keen::ds::ZoneVisualizationSdfBoundingSphere previewBuildZoneBoundingSphere; // Offset: 96 + keen::ds::ZoneVisualizationSdfElement previewBuildZone; // Offset: 112 + keen::float3 previewBuildZoneBorderColor; // Offset: 128 +}; + +struct ZoneVisualizationRasterizationShaderData { + keen::GraphicsMatrix43 viewMatrix; // Offset: 0 + keen::GraphicsMatrix44 viewProjectionMatrix; // Offset: 48 + keen::float3 cameraPosition; // Offset: 112 + keen::float4 color; // Offset: 128 + keen::float2 distanceFarFadeFunction; // Offset: 144 + keen::float2 distanceNearFadeFunction; // Offset: 152 +}; + +struct ZoneVisualizationRasterizationPushConstants { + keen::float3 boxCenter; // Offset: 0 + keen::float3 boxHalfSize; // Offset: 12 +}; + +struct ZoneVisualizationSettings { + keen::float32 smoothingRadius; // Offset: 0 + keen::HdrColorRgb buildZoneBorderColor; // Offset: 4 + keen::HdrColorRgb noBuildZoneBorderColor; // Offset: 20 + keen::HdrColorRgb previewBuildZoneBorderColor; // Offset: 36 + keen::float32 borderSize; // Offset: 52 + keen::float32 borderCurveMax; // Offset: 56 + keen::ObjectReference noiseTexture; // Offset: 60 + keen::float32 noiseBorderTilingSize; // Offset: 76 + keen::float32 noisePositionTilingSize; // Offset: 80 + keen::float32 noiseScrollSpeed; // Offset: 84 + keen::FloatRange buildZoneDistanceFadeRange; // Offset: 88 + keen::FloatRange noBuildZoneDistanceFadeRange; // Offset: 96 + keen::FloatRange noBuildZoneBuildZoneDistanceFadeRange; // Offset: 104 + keen::FloatRange noBuildZonePreviewDistanceFadeRange; // Offset: 112 + keen::HdrColorRgb playableAreaColor; // Offset: 120 + keen::float32 playableAreaAlpha; // Offset: 136 + keen::FloatRange playableAreaDistanceFadeRange; // Offset: 140 + keen::FloatRange playableAreaNearFadeRange; // Offset: 148 + keen::ObjectReference playableAreaModel; // Offset: 156 +}; + +struct ZoneVisualizationResource { + keen::float32 smoothingRadius; // Offset: 0 + keen::float32 borderInverseSize; // Offset: 4 + keen::float32 borderCurveMax; // Offset: 8 + keen::ds::RenderTexture noiseTexture; // Offset: 16 + keen::float32 noiseBorderTilingFactor; // Offset: 88 + keen::float32 noisePositionTilingFactor; // Offset: 92 + keen::float32 noiseScrollSpeed; // Offset: 96 + keen::float2 buildZoneCameraDistanceFadeFunction; // Offset: 100 + keen::float2 noBuildZoneCameraDistanceFadeFunction; // Offset: 108 + keen::float2 noBuildZoneBuildZoneDistanceFadeFunction; // Offset: 116 + keen::float2 noBuildZonePreviewDistanceFadeFunction; // Offset: 124 + keen::float3 buildZoneBorderColor; // Offset: 132 + keen::float3 noBuildZoneBorderColor; // Offset: 144 + keen::float3 previewBuildZoneBorderColor; // Offset: 156 + keen::float4 playableAreaColor; // Offset: 168 + keen::float2 playableAreaCameraDistanceFarFadeFunction; // Offset: 184 + keen::float2 playableAreaCameraDistanceNearFadeFunction; // Offset: 192 + keen::uint32 playableAreaMeshVertexCount; // Offset: 200 + keen::uint32 playableAreaMeshIndexCount; // Offset: 204 + keen::ContentHash playableAreaMeshData; // Offset: 208 +}; + +struct BlockOutMeshPointBrushScatteringSettings { + keen::bool disablePoint; // Offset: 0 + keen::bool disableLowerEdge; // Offset: 1 + keen::bool disableUpperEdge; // Offset: 2 + keen::bool disableWallTriangle0; // Offset: 3 + keen::bool disableWallTriangle1; // Offset: 4 +}; + +struct BlockOutMeshPoint { + keen::float3 position; // Offset: 0 + keen::float32 height; // Offset: 12 + keen::float2 offset; // Offset: 16 + keen::ds::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 24 +}; + +typedef keen::DistributionRule DistributionRule; + +typedef keen::DistributionNodeType DistributionNodeType; + +struct SceneEntitySpawnData { + keen::float3 velocity; // Offset: 0 + keen::Color tintColor; // Offset: 12 + keen::float32 triggerRange; // Offset: 16 + keen::float32 triggerRange2; // Offset: 20 + keen::float32 triggerRange3; // Offset: 24 + keen::ds::ecs::Offset triggerOffset; // Offset: 28 + keen::sint32 level; // Offset: 68 + keen::sint32 levelOffset; // Offset: 72 + keen::ds::ecs::EnemySettings enemySettings; // Offset: 76 + keen::ds::ecs::RandomSpawnerEntitySettings randomSpawnerSettings; // Offset: 140 + keen::ds::ecs::EnemyTestFlags enemyTestFlags; // Offset: 144 + keen::ds::AmbientEnvironment ambience; // Offset: 148 + keen::ObjectReference enemyMarkerTag; // Offset: 152 + keen::ds::LocaTagReference teleporterId; // Offset: 168 + keen::ds::LocaTagReference teleportTargetId; // Offset: 184 + keen::float32 jumpDistance; // Offset: 200 + keen::float32 jumpHeight; // Offset: 204 + keen::Quaternion jumpLaunchOffset; // Offset: 208 + keen::ds::ecs::EntitySpawnValueMask mask; // Offset: 224 +}; + +struct DistributionNode { + keen::ds::DistributionNodeType type; // Offset: 0 + keen::ObjectReference voxelBrush; // Offset: 4 + keen::float32 voxelBrushScale; // Offset: 20 + keen::float32 voxelBrushScaleVariation; // Offset: 24 + keen::ObjectReference scene; // Offset: 28 + keen::sint32 spawnLevelOffset; // Offset: 44 + keen::ObjectReference spawnTemplate; // Offset: 48 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 64 + keen::bool alignRotationToRoad; // Offset: 292 + keen::ObjectReference map; // Offset: 296 + keen::ObjectReference compositeMap; // Offset: 312 + keen::ds::DistributionRule rule; // Offset: 328 + keen::float32 density; // Offset: 332 + keen::float32 radius; // Offset: 336 + keen::float32 maxHeightDifference; // Offset: 340 + keen::float32 minDistance; // Offset: 344 + keen::float32 minContentDistance; // Offset: 348 + keen::float32 maxRoadDistance; // Offset: 352 + keen::bool onlyAtCrossings; // Offset: 356 + keen::bool snapToRoad; // Offset: 357 + keen::FloatRange rotationRange; // Offset: 360 +}; + +struct DistributionNodeGroupEntry { + keen::ds::DistributionNodeType type; // Offset: 0 + keen::Guid objectId; // Offset: 4 + keen::ObjectReference voxelBrush; // Offset: 20 + keen::float32 voxelBrushScale; // Offset: 36 + keen::float32 voxelBrushScaleVariation; // Offset: 40 + keen::ObjectReference scene; // Offset: 44 + keen::sint32 spawnLevelOffset; // Offset: 60 + keen::ObjectReference spawnTemplate; // Offset: 64 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 80 + keen::DsArray whiteboxTags; // Offset: 312 + keen::float32 probabilityWeight; // Offset: 352 + keen::bool alignRotationToRoad; // Offset: 356 + keen::FloatRange rotationRange; // Offset: 360 +}; + +struct RoadCrossingNode { + keen::ObjectReference scene; // Offset: 0 + keen::uint32 weight; // Offset: 16 + keen::bool keepPlainCrossing; // Offset: 20 +}; + +struct ConvertedDistributionNode { + keen::ObjectReference map; // Offset: 0 + keen::ds::DistributionRule rule; // Offset: 16 + keen::float32 density; // Offset: 20 + keen::float32 radius; // Offset: 24 + keen::float32 maxHeightDifference; // Offset: 28 + keen::float32 minDistance; // Offset: 32 + keen::float32 minContentDistance; // Offset: 36 + keen::float32 maxRoadDistance; // Offset: 40 + keen::bool onlyAtCrossings; // Offset: 44 + keen::bool snapToRoad; // Offset: 45 + keen::Guid objectId; // Offset: 48 + keen::DsArray groupEntries; // Offset: 64 +}; + +struct DistributionNodes { + keen::DsArray nodes; // Offset: 0 + keen::DsArray roadCrossings; // Offset: 40 +}; + +struct ScatterSetImageInfos { + keen::DsArray> images; // Offset: 0 +}; + +typedef keen::ScatterResolution ScatterResolution; + +struct ScatterNodeMap { + keen::ObjectReference image; // Offset: 0 + keen::uint2 position; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::bool wrap; // Offset: 32 +}; + +typedef keen::ScatterNodeFlag ScatterNodeFlag; + +typedef keen::ScatterNodeFlags ScatterNodeFlags; + +typedef keen::ScatterLocation ScatterLocation; + +typedef keen::ScatterSetVoxelMap ScatterSetVoxelMap; + +typedef keen::ScatterSetRule ScatterSetRule; + +typedef keen::ScatterSetFootprintMap ScatterSetFootprintMap; + +typedef keen::ScatterSetImageMap ScatterSetImageMap; + +struct ScatterScaleRange { + keen::float32 minValue; // Offset: 0 + keen::float32 maxValue; // Offset: 4 +}; + +struct ScatterYawRange { + keen::sint32 minValue; // Offset: 0 + keen::sint32 maxValue; // Offset: 4 +}; + +struct ScatterPitchRange { + keen::uint32 minValue; // Offset: 0 + keen::uint32 maxValue; // Offset: 4 +}; + +typedef keen::ScatterNodeImageType ScatterNodeImageType; + +struct ScatterNode { + keen::ds::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::ds::ScatterNodeMap map; // Offset: 36 + keen::ObjectReference model; // Offset: 72 + keen::ds::ecs::TemplateReference entity; // Offset: 88 + keen::ds::ScatterResolution resolution; // Offset: 104 + keen::ds::ScatterSetRule rule; // Offset: 105 + keen::ds::Biome biome; // Offset: 106 + keen::ds::ScatterLocation location; // Offset: 107 + keen::uint32 footprint; // Offset: 108 + keen::float32 probability; // Offset: 112 + keen::ds::ScatterScaleRange scale; // Offset: 116 + keen::ds::ScatterYawRange yaw; // Offset: 124 + keen::ds::ScatterPitchRange pitch; // Offset: 132 + keen::ds::ScatterNodeFlags flags; // Offset: 140 +}; + +struct ScatterSetMaps { + keen::ds::ScatterNodeImageType imageType; // Offset: 0 + keen::ObjectReference forest; // Offset: 4 + keen::ObjectReference forestScatterImage; // Offset: 20 + keen::ObjectReference forestCompositeScatterImage; // Offset: 36 +}; + +struct ScatterSet3 { + keen::ds::ScatterSetMaps maps; // Offset: 0 +}; + +struct ScatterSetObject { + keen::ObjectReference model; // Offset: 0 + keen::ds::ecs::TemplateResourceReference entity; // Offset: 16 + keen::ds::ScatterSetRule rule; // Offset: 32 + keen::uint32 mapIndex; // Offset: 36 + keen::uint32 footprint; // Offset: 40 + keen::float32 probability; // Offset: 44 + keen::FloatRange scale; // Offset: 48 + keen::FloatRange yaw; // Offset: 56 + keen::FloatRange pitch; // Offset: 64 + keen::ds::ScatterNodeFlags flags; // Offset: 72 + keen::ds::Biome biome; // Offset: 73 + keen::ds::ScatterLocation location; // Offset: 74 + keen::ds::ScatterResolution resolution; // Offset: 75 + keen::DsString name; // Offset: 80 +}; + +struct ScatterSetMapInfo { + keen::uint2 size; // Offset: 0 + keen::ContentHash hash; // Offset: 8 + keen::DsString name; // Offset: 24 + keen::DsString bauPath; // Offset: 64 +}; + +struct ScatterSetImageData { + keen::uint2 imageSize; // Offset: 0 + keen::uint2 position; // Offset: 8 + keen::uint2 size; // Offset: 16 + keen::bool wrap; // Offset: 24 + keen::ContentHash hash; // Offset: 28 + keen::DsString name; // Offset: 48 + keen::DsString bauPath; // Offset: 88 + keen::Guid scatterImage; // Offset: 128 +}; + +struct ScatterSetLocationObjects { + keen::DsArray objects; // Offset: 0 +}; + +struct ScatterSetResolutionObjects { + keen::StaticArray locations; // Offset: 0 +}; + +struct ScatterSet3Resource { + keen::DsArray maps; // Offset: 0 + keen::StaticArray resolutions; // Offset: 40 + keen::DsArray objects; // Offset: 640 +}; + +typedef keen::ObjectReference ScatterSet3ResourceReference; + +typedef keen::composite_scatter_image::CompositeOperation composite_scatter_image.CompositeOperation; + +typedef keen::composite_scatter_image::InputType composite_scatter_image.InputType; + +typedef keen::composite_scatter_image::InputOperation composite_scatter_image.InputOperation; + +struct composite_scatter_image.Input { + keen::ds::composite_scatter_image::InputType type; // Offset: 0 + keen::ObjectReference scatterImage; // Offset: 4 + keen::ObjectReference compositeScatterImage; // Offset: 20 + keen::float32 value; // Offset: 36 + keen::ds::composite_scatter_image::InputOperation inputOperation; // Offset: 40 + keen::float32 inputToMaskMin; // Offset: 44 + keen::float32 inputToMaskMax; // Offset: 48 + keen::ds::composite_scatter_image::CompositeOperation operation; // Offset: 52 +}; + +struct CompositeScatterImage { + keen::uint32 upscaleFactor; // Offset: 0 + keen::StaticArray inputs; // Offset: 4 + keen::float32 remapSourceFrom; // Offset: 340 + keen::float32 remapSourceTo; // Offset: 344 + keen::float32 outputLevelsFrom; // Offset: 348 + keen::float32 outputLevelsTo; // Offset: 352 +}; + +struct TestCompositeScatterImage { + keen::ObjectReference testObjectReference; // Offset: 0 +}; + +struct DungeonTriggerConfiguration { +}; + +struct DungeonTriggerSetup { + keen::DsString identifier; // Offset: 0 + keen::Color color; // Offset: 40 +}; + +struct DungeonTriggerSlot { + keen::DsString identifier; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 40 +}; + +struct DungeonTriggerInput { +}; + +struct DungeonTriggerOutput { + keen::bool sendActivateEvent; // Offset: 48 + keen::bool sendDeactivateEvent; // Offset: 49 + keen::bool sendResultSignal; // Offset: 50 +}; + +struct DungeonTriggerInfo { + keen::Color color; // Offset: 0 + keen::DsArray inputs; // Offset: 8 + keen::DsArray outputs; // Offset: 48 +}; + +typedef keen::ds::DungeonTriggerInfo EntityTriggerInfo; + +struct DungeonTriggerGraph { +}; + +struct DungeonTriggerGraphNode { + keen::Vector2 position; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 8 +}; + +struct DungeonTriggerGraphNodeEndPoint { + keen::ObjectReference trigger; // Offset: 24 + keen::ObjectReference scene; // Offset: 40 + keen::ObjectReference room; // Offset: 56 +}; + +typedef keen::DungeonLogicOperator DungeonLogicOperator; + +struct DungeonTriggerSettingsNode { +}; + +struct DungeonTriggerGraphNodeDungeonLogic { +}; + +struct DungeonTriggerGraphNodeBool { + keen::bool value; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeAnd { + keen::ds::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeOr { + keen::ds::DungeonLogicOperator op; // Offset: 24 +}; + +struct DungeonTriggerGraphNodeNot { + keen::ds::DungeonLogicOperator op; // Offset: 24 +}; + +typedef keen::DelayFlags DelayFlags; + +struct DungeonTriggerGraphNodeDelay { + keen::Time duration; // Offset: 24 + keen::ds::DelayMask filter; // Offset: 32 +}; + +struct DungeonTriggerGraphNodeSender { +}; + +struct DungeonTriggerGraphNodeReceiver { +}; + +struct DungeonTriggerGraphNodeWhitebox { +}; + +struct DungeonTriggerGraphLink { + keen::ObjectReference startNode; // Offset: 0 + keen::ObjectReference endNode; // Offset: 16 + keen::HashKey32 startSlot; // Offset: 32 + keen::HashKey32 endSlot; // Offset: 36 + keen::uint8 startIndex; // Offset: 40 + keen::uint8 endIndex; // Offset: 41 + keen::bool sendActivateEvent; // Offset: 42 + keen::bool sendDeactivateEvent; // Offset: 43 + keen::bool sendResultSignal; // Offset: 44 +}; + +struct PrefabTriggerInfo { + keen::Guid triggerEntityGuid; // Offset: 0 + keen::HashKey32 triggerSlotHash; // Offset: 16 +}; + +struct PrefabContainmentSet { + keen::DsArray triggerTypes; // Offset: 0 +}; + +struct PrefabTriggerSlotType { + keen::HashKey32 slotTypeId; // Offset: 0 + keen::bool isInput; // Offset: 4 + keen::Color uiColor; // Offset: 8 + keen::ds::string identifier; // Offset: 16 + keen::bool sendActivateEvent; // Offset: 56 + keen::bool sendDeactivateEvent; // Offset: 57 + keen::bool sendResultSignal; // Offset: 58 +}; + +struct PrefabContainment { + keen::Guid prefabId; // Offset: 0 + keen::DsArray triggerGuids; // Offset: 16 + keen::DsArray slotDefinitions; // Offset: 56 + keen::DsArray containmentVariations; // Offset: 96 +}; + +struct WhiteboxContainment { + keen::DsArray slotDefinitions; // Offset: 0 + keen::DsArray containmentVariations; // Offset: 40 +}; + +typedef keen::WhiteboxTriggerFlags WhiteboxTriggerFlags; + +typedef keen::WhiteboxTriggerMask WhiteboxTriggerMask; + +struct WhiteboxTriggerSetup { + keen::ds::string triggerFormula; // Offset: 0 + keen::Time triggerDelay; // Offset: 40 + keen::ds::DelayMask triggerDelayMask; // Offset: 48 + keen::StaticArray triggerIds; // Offset: 52 + keen::HashKey32 triggerSlot; // Offset: 116 + keen::ds::WhiteboxTriggerMask triggerMask; // Offset: 120 + keen::uint8 triggerIndex; // Offset: 121 + keen::bool sendActivateEvent; // Offset: 122 + keen::bool sendDeactivateEvent; // Offset: 123 + keen::bool sendResultSignal; // Offset: 124 + keen::bool initialState; // Offset: 125 +}; + +struct WhiteboxTriggerInfo { + keen::Guid triggerObjectInstanceId; // Offset: 128 +}; + +struct DungeonTrigger { + keen::DsString identifier; // Offset: 0 + keen::WorldTransform transform; // Offset: 40 + keen::Guid roomSceneId; // Offset: 96 + keen::Guid roomInstanceId; // Offset: 112 + keen::Guid whiteboxInstanceId; // Offset: 128 + keen::DsArray containmentVariations; // Offset: 144 + keen::AxisAlignedBox boundingBox; // Offset: 192 +}; + +struct RoomTriggerList { + keen::Guid dungeonTriggerGraphId; // Offset: 0 + keen::DsArray slotDefinitions; // Offset: 16 + keen::DsArray trigger; // Offset: 56 +}; + +struct DungeonTriggerWhitebox { + keen::Guid id; // Offset: 0 + keen::DsArray setups; // Offset: 16 +}; + +struct DungeonTriggerRoom { + keen::Guid id; // Offset: 0 + keen::DsArray whiteboxes; // Offset: 16 +}; + +struct DungeonTriggers { + keen::DsArray rooms; // Offset: 0 +}; + +struct EntityAnimationPath { + keen::ds::AttachmentSlot slot; // Offset: 0 + keen::Time length; // Offset: 8 +}; + +struct EntityAnimationPathPoint { + keen::float3 offset; // Offset: 0 + keen::Quaternion orientation; // Offset: 12 + keen::bool enableConstantRotationX; // Offset: 28 + keen::float constantRotationX; // Offset: 32 + keen::bool enableConstantRotationY; // Offset: 36 + keen::float constantRotationY; // Offset: 40 + keen::bool enableConstantRotationZ; // Offset: 44 + keen::float constantRotationZ; // Offset: 48 +}; + +struct SceneTemplate { +}; + +struct SceneWaterTemplate { +}; + +typedef keen::WorldDistributionTypeFlag WorldDistributionTypeFlag; + +struct VfxUserEffectParameterDataBlockIncludeDummy0 { + keen::ds::VfxUserEffectParameterDataBlock dummy; // Offset: 0 +}; + +struct SceneModel { + keen::ObjectReference model; // Offset: 64 + keen::ObjectReference clothCollider; // Offset: 80 + keen::Color color; // Offset: 96 +}; + +struct EntitySpawnDefinition { + keen::ds::ecs::TemplateReference templateReference; // Offset: 0 + keen::ObjectReference model; // Offset: 16 + keen::Color color; // Offset: 32 +}; + +struct TemplatePreviewSubEntity { + keen::Guid templateId; // Offset: 0 + keen::DsArray> models; // Offset: 16 + keen::ds::ecs::Offset offset; // Offset: 56 + keen::ds::AttachmentSlot slot; // Offset: 96 +}; + +struct TemplatePreviewVfx { + keen::ObjectReference vfx; // Offset: 0 + keen::ds::ecs::Offset offset; // Offset: 16 + keen::ds::AttachmentSlot slot; // Offset: 56 + keen::DsOptional initParameters; // Offset: 64 +}; + +struct TemplatePreviewPart { + keen::ObjectReference model; // Offset: 0 + keen::ds::ColorCombination paletteColors; // Offset: 16 + keen::ObjectReference gradient; // Offset: 64 + keen::DsArray blendShapes; // Offset: 80 +}; + +struct TemplatePreview { + keen::DsArray parts; // Offset: 0 + keen::ObjectReference spawnedEntity; // Offset: 40 + keen::ds::TemplatePreviewVfx vfx; // Offset: 56 + keen::DsArray subEntities; // Offset: 136 + keen::ds::AttachmentSlotMask subEntityAttachmentMask; // Offset: 176 + keen::ObjectReference animationGraph; // Offset: 180 + keen::StaticArray slotJointIndexMapping; // Offset: 196 + keen::Guid hierarchyId; // Offset: 224 + keen::ds::ecs::ColliderDataArray allColliders; // Offset: 240 + keen::float scale; // Offset: 280 +}; + +struct TemplateInfo { + keen::DsString description; // Offset: 0 + keen::bool isPlayerSpawn; // Offset: 40 + keen::bool isMapMarker; // Offset: 41 + keen::bool isFakePlayerSpawner; // Offset: 42 + keen::bool isContainer; // Offset: 43 + keen::bool isActor; // Offset: 44 + keen::bool isAutomatedPlayer; // Offset: 45 + keen::bool isSkinned; // Offset: 46 + keen::bool doNotSave; // Offset: 47 + keen::bool questEntity; // Offset: 48 + keen::bool isNpc; // Offset: 49 + keen::bool isCraftingAssistant; // Offset: 50 + keen::ds::LocaTagId nameLocaId; // Offset: 52 + keen::ds::UiNpcRenderingOptions npcRenderingOptions; // Offset: 56 + keen::ds::WorkshopId workshopId; // Offset: 108 + keen::ds::LocaTagId workshopLabel; // Offset: 112 + keen::ds::CharacterPresetReference characterPresetReference; // Offset: 116 + keen::ds::ItemReference placementItem; // Offset: 132 + keen::ds::GameKnowledgeRequirement knowledgeRequirement; // Offset: 148 + keen::uint32 containerSlotCount; // Offset: 252 + keen::ObjectReference floorMaterial; // Offset: 256 + keen::float32 floorMaterialRadius; // Offset: 272 + keen::ds::FloorMaterialShape floorMaterialShape; // Offset: 276 + keen::float32 floorMaterialNoiseStrength; // Offset: 280 + keen::ObjectReference fallbackModel; // Offset: 284 +}; + +struct TemplateInfoCollection { + keen::DsArray templateGuids; // Offset: 0 + keen::DsArray templateInfos; // Offset: 40 + keen::DsArray templateBBoxes; // Offset: 80 +}; + +struct TemplateSubentityIds { + keen::DsArray subentityTemplateGuids; // Offset: 0 +}; + +struct SceneEntitySpawn { + keen::ObjectReference entitySpawnDefinition; // Offset: 64 + keen::ObjectReference templateReference; // Offset: 80 + keen::ContentHash templatePreviewContentHash; // Offset: 96 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 112 + keen::bool storeSceneId; // Offset: 340 + keen::bool snapToGround; // Offset: 341 + keen::bool enableFloorMaterial; // Offset: 342 +}; + +struct EntitySpawnInfo { + keen::ds::KnowledgeId unlockKnowledge; // Offset: 0 + keen::DsArray subEntityKnowledgeQueries; // Offset: 8 + keen::DsArray triggerKnowledgeIds; // Offset: 48 + keen::HashKey32 uiWorldEventId; // Offset: 88 + keen::Guid knowledgeQuery; // Offset: 92 + keen::ds::LootContainerId lootContainerId; // Offset: 108 + keen::ds::FogRemovalId fogRemovalId; // Offset: 112 + keen::ds::JointAnimationReference entityAnimation; // Offset: 116 + keen::ds::AttachmentSlotMask entityAnimationSlotMask; // Offset: 132 +}; + +struct SceneVoxelObject { + keen::ObjectReference voxelModel; // Offset: 64 + keen::bool isWeathered; // Offset: 80 + keen::Color color; // Offset: 84 +}; + +typedef keen::VoxelBlitFunction VoxelBlitFunction; + +struct SceneVoxelBrush { + keen::ObjectReference model; // Offset: 64 + keen::Color color; // Offset: 80 + keen::ds::VoxelMaterialReference material; // Offset: 84 + keen::bool disableDisplacement; // Offset: 100 + keen::bool resolveBiomePerVoxel; // Offset: 101 + keen::bool paintMaterialOnly; // Offset: 102 + keen::ds::VoxelBlitFunction blitFunction; // Offset: 103 + keen::bool allowNonManifold; // Offset: 104 + keen::ObjectReference removableFogId; // Offset: 108 + keen::bool addDestructionEdge; // Offset: 124 +}; + +struct SceneBlockOutBrushPoint { + keen::float32 height; // Offset: 64 + keen::float2 offset; // Offset: 68 + keen::ds::BlockOutMeshPointBrushScatteringSettings brushScattering; // Offset: 76 +}; + +struct SceneBlockOutBrush { + keen::ds::VoxelMaterialReference material; // Offset: 64 + keen::Color color; // Offset: 80 + keen::bool enableTopDisplacement; // Offset: 84 + keen::bool enableTopBrushScattering; // Offset: 85 + keen::bool negativeVoxels; // Offset: 86 + keen::bool ignoreDisplacementBlockers; // Offset: 87 + keen::bool resolveBiomePerVoxel; // Offset: 88 + keen::ObjectReference scattering; // Offset: 92 + keen::ObjectReference removableFogId; // Offset: 108 +}; + +struct BlockOutBrushScatteringDefinition { +}; + +struct BlockOutBrushScatteringPointModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::FloatRange heightRange; // Offset: 24 + keen::float32 randomYRotation; // Offset: 32 + keen::float32 nonUniformScaling; // Offset: 36 + keen::float32 shearFactor; // Offset: 40 +}; + +struct BlockOutBrushScatteringPoint { + keen::DsArray models; // Offset: 0 +}; + +struct BlockOutBrushScatteringLowerEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringLowEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringUpperEdgeModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange angleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange heightRange; // Offset: 28 + keen::float32 randomScaling; // Offset: 36 + keen::float32 scaleFactor; // Offset: 40 + keen::float32 nonUniformScaling; // Offset: 44 + keen::float32 shearFactor; // Offset: 48 +}; + +struct BlockOutBrushScatteringUpperEdge { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringWallModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 maxOverhangY; // Offset: 24 + keen::float32 randomYRotation; // Offset: 28 +}; + +struct BlockOutBrushScatteringWall { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringTopModel { + keen::ObjectReference model; // Offset: 0 + keen::FloatRange normalAngleRange; // Offset: 16 + keen::float32 randomYRotation; // Offset: 24 + keen::FloatRange randomScale; // Offset: 28 +}; + +struct BlockOutBrushScatteringTop { + keen::float32 modelsPerMeter; // Offset: 0 + keen::DsArray models; // Offset: 8 +}; + +struct BlockOutBrushScatteringDefinitionConverterData { + keen::Guid id; // Offset: 0 + keen::DsArray points; // Offset: 16 + keen::DsArray lowerEdges; // Offset: 56 + keen::DsArray upperEdges; // Offset: 96 + keen::DsArray walls; // Offset: 136 + keen::DsArray tops; // Offset: 176 +}; + +struct BlockOutBrushScatteringDefinitionConverterDependencies { + keen::Guid id; // Offset: 0 + keen::DsArray models; // Offset: 16 +}; + +struct SceneVoxelMultiBrush { + keen::DsArray brushes; // Offset: 64 +}; + +typedef keen::DestructionBubbleMode DestructionBubbleMode; + +struct SceneDestructionBubble { + keen::ObjectReference model; // Offset: 64 + keen::ds::DestructionBubbleMode mode; // Offset: 80 + keen::bool dontDestroyEntities; // Offset: 81 + keen::float32 density; // Offset: 84 +}; + +typedef keen::SceneSurfaceMaterialBubbleMode SceneSurfaceMaterialBubbleMode; + +struct SceneSurfaceMaterialBubble { + keen::ObjectReference model; // Offset: 64 + keen::ds::VoxelMaterialReference material; // Offset: 80 + keen::uint depth; // Offset: 96 + keen::uint height; // Offset: 100 + keen::bool shelteredByTerrain; // Offset: 104 + keen::ds::SceneSurfaceMaterialBubbleMode mode; // Offset: 105 +}; + +struct SceneCurvePoint { +}; + +struct SceneCurve { +}; + +struct SceneRoadPoint { + keen::float32 widthScale; // Offset: 64 +}; + +struct RoadDefinition { + keen::float32 width; // Offset: 0 + keen::bool snapToGround; // Offset: 4 + keen::float32 snapStepSize; // Offset: 8 + keen::float32 snapAllowedError; // Offset: 12 + keen::float32 snapMaxSlopeChange; // Offset: 16 + keen::ObjectReference roadShape; // Offset: 20 + keen::ds::VoxelMaterialReference surfaceMaterial; // Offset: 36 + keen::ds::VoxelMaterialReference groundMaterial; // Offset: 52 + keen::float32 distributionNoise; // Offset: 68 + keen::float32 edgeNoiseWidth; // Offset: 72 + keen::float32 edgeNoiseScale; // Offset: 76 + keen::float32 edgeNoisePersistance; // Offset: 80 +}; + +struct SceneRoad { + keen::ObjectReference definition; // Offset: 64 + keen::bool snapToOtherRoads; // Offset: 80 +}; + +typedef keen::CaveVoxelMode CaveVoxelMode; + +struct SceneDungeonCaveCurvePoint { +}; + +struct SceneDungeonCaveCurve { + keen::ds::CaveVoxelMode mode; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::ds::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneTunnelPoint { +}; + +struct SceneTunnel { + keen::float32 width; // Offset: 64 + keen::float32 height; // Offset: 68 + keen::ds::VoxelMaterialReference material; // Offset: 72 +}; + +struct SceneScatterBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 +}; + +typedef keen::DisplacementBlockerMode DisplacementBlockerMode; + +struct SceneDisplacementBlocker { + keen::float32 radius; // Offset: 64 + keen::float32 fadeInDistance; // Offset: 68 + keen::float32 innerDisplacementFactor; // Offset: 72 + keen::ds::DisplacementBlockerMode mode; // Offset: 76 + keen::bool affectFog; // Offset: 77 +}; + +struct SceneVfx { + keen::ObjectReference effect; // Offset: 64 + keen::HdrColorRgb color; // Offset: 80 + keen::float4 param0; // Offset: 96 + keen::float4 param1; // Offset: 112 + keen::float4 param2; // Offset: 128 + keen::float4 param3; // Offset: 144 + keen::float32 duration; // Offset: 160 + keen::float3 targetPosition; // Offset: 164 + keen::Time startTime; // Offset: 176 + keen::bool isActive; // Offset: 184 +}; + +struct SceneSound { + keen::ds::SoundContainerReference soundContainer; // Offset: 64 + keen::float32 activeRange; // Offset: 80 +}; + +struct SceneInstance { + keen::ObjectReference scene; // Offset: 64 + keen::bool connectToRoad; // Offset: 80 + keen::sint32 spawnLevelOffset; // Offset: 84 + keen::HashKey32 whiteboxSeed; // Offset: 88 +}; + +struct SceneGroup { + keen::bool isLocked; // Offset: 0 +}; + +struct SceneRoadAttachmentPoint { + keen::ObjectReference roadDefinition; // Offset: 64 +}; + +struct SceneScatterImage { + keen::ObjectReference scatterImage; // Offset: 64 +}; + +struct SceneScatterOrigin { + keen::float32 distributionRadius; // Offset: 64 +}; + +typedef keen::SceneAreaFlagMask SceneAreaFlagMask; + +struct ScenePlayableArea { + keen::float3 size; // Offset: 64 + keen::ds::SceneAreaFlagMask flags; // Offset: 76 + keen::ds::LocaTagReference mapMarkerId; // Offset: 80 +}; + +struct SceneCinematicTimelineEvent { +}; + +struct SceneCinematicCameraSmoothing { + keen::bool enableSmoothing; // Offset: 0 + keen::float lerpSpeed; // Offset: 4 +}; + +struct SceneCinematicTimeLineAnimationEvent { + keen::ds::AnimationReference animation; // Offset: 96 + keen::ObjectReference modelObject; // Offset: 112 +}; + +struct SceneCinematicTimeLineModelAnimationEvent { +}; + +struct SceneCinematicTimeLineCameraAnimationEvent { + keen::Angle fovY; // Offset: 128 +}; + +struct SceneCinematicTimeLineCameraEvent { + keen::ds::SceneCamera key; // Offset: 96 + keen::ds::SceneCamera nextKey; // Offset: 232 + keen::Guid id; // Offset: 368 + keen::ds::SceneCinematicCameraSmoothing smoothing; // Offset: 384 + keen::float lerpSpeed; // Offset: 392 + keen::float nextLerpSpeed; // Offset: 396 +}; + +struct SceneCinematicTimelineEventMaterializeVoxelObject { + keen::ObjectReference voxelObject; // Offset: 96 + keen::ds::SceneVoxelObject voxelData; // Offset: 112 +}; + +struct SequenceTrack { + keen::Time loopStart; // Offset: 0 + keen::Time loopEnd; // Offset: 8 + keen::bool loop; // Offset: 16 +}; + +struct SceneCinematicTimelineTrack { +}; + +struct SceneCinematicTimelineCameraTrack { +}; + +struct SceneCinematicTimeline { +}; + +struct SceneCinematic { + keen::ObjectReference timeline; // Offset: 4 +}; + +struct CinematicDynamicModelObject { + keen::Guid objectGuid; // Offset: 0 + keen::ds::SceneModel sceneModel; // Offset: 16 +}; + +struct CinematicSequenceResource { + keen::DsArray dynamicModelObjects; // Offset: 96 +}; + +struct SceneCinematicList { + keen::DsArray cinematics; // Offset: 0 +}; + +struct SceneModelTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneVoxelObjectTemplate { + keen::ObjectReference defaultVoxelModel; // Offset: 0 +}; + +struct SceneVoxelBrushTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneDestructionBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 +}; + +struct SceneSurfaceMaterialBubbleTemplate { + keen::ObjectReference defaultModel; // Offset: 0 + keen::ds::VoxelMaterialReference defaultMaterial; // Offset: 16 +}; + +struct SceneVoxelMultiBrushTemplate { +}; + +struct SceneEntitySpawnTemplate { + keen::ObjectReference defaultEntityTemplate; // Offset: 0 +}; + +struct SceneVfxTemplate { + keen::ObjectReference defaultEffect; // Offset: 0 +}; + +struct SceneWhiteboxTemplate { + keen::ObjectReference defaultWhitebox; // Offset: 0 +}; + +struct SceneRoadTemplate { +}; + +struct SceneScatterBlockerTemplate { +}; + +struct SceneDisplacementBlockerTemplate { +}; + +struct SceneSoundTemplate { +}; + +struct SceneCameraTemplate { +}; + +struct SceneInstanceTemplate { + keen::ObjectReference defaultScene; // Offset: 0 +}; + +struct DungeonInstanceTemplate { + keen::ObjectReference defaultDungeon; // Offset: 0 +}; + +struct DungeonRoomInstanceTemplate { + keen::ObjectReference defaultDungeonRoom; // Offset: 0 +}; + +struct SceneRoadAttachmentPointTemplate { +}; + +struct SceneScatterOriginTemplate { +}; + +struct ScenePlayableAreaTemplate { +}; + +struct SceneScatterEntity { + keen::WorldTransform transform; // Offset: 0 + keen::uint16 index; // Offset: 56 +}; + +struct SceneScatterChunkDataEntity { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneScatterChunkData { + keen::DsArray templateEntities; // Offset: 0 + keen::DsArray modelEntities; // Offset: 40 +}; + +struct SpawnTemplateModel { + keen::Guid templateGuid; // Offset: 0 + keen::DsArray modelsGuid; // Offset: 16 +}; + +struct SpawnTemplateModels { + keen::DsArray templateModels; // Offset: 0 + keen::uint32 templateCount; // Offset: 40 +}; + +struct SpawnTemplateGuids { + keen::DsArray templateGuids; // Offset: 0 + keen::uint32 templateCount; // Offset: 40 +}; + +struct SceneScatterResource { + keen::ds::ScatterSet3ResourceReference scatterSet; // Offset: 0 + keen::uint2 scatterStart; // Offset: 16 + keen::uint2 scatterSize; // Offset: 24 + keen::DsArray templates; // Offset: 32 + keen::DsArray models; // Offset: 72 + keen::DsArray templateGuids; // Offset: 112 + keen::DsArray modelGuids; // Offset: 152 + keen::DsArray templateNames; // Offset: 192 + keen::DsArray modelNames; // Offset: 232 + keen::ds::SpawnTemplateModels spawnTemplateModels; // Offset: 272 + keen::uint2 debugMapSize; // Offset: 320 + keen::DsArray debugMapNames; // Offset: 328 + keen::DsArray debugMaps; // Offset: 368 +}; + +typedef keen::ObjectReference SceneScatterResourceReference; + +struct SceneScatterChunkResource { + keen::DsArray templates; // Offset: 0 + keen::DsArray models; // Offset: 40 + keen::DsArray templateGuids; // Offset: 80 + keen::DsArray modelGuids; // Offset: 120 + keen::DsArray templateNames; // Offset: 160 + keen::DsArray modelNames; // Offset: 200 +}; + +typedef keen::SceneAreaFlag SceneAreaFlag; + +struct ScenePlayableAreaBox { + keen::WorldPosition areaMin; // Offset: 0 + keen::WorldPosition areaMax; // Offset: 24 + keen::ds::SceneAreaFlagMask flags; // Offset: 48 + keen::ds::LocaTagId mapMarkerId; // Offset: 52 +}; + +struct SceneProceduralLayer { + keen::ds::ContentPass contentPass; // Offset: 0 + keen::ObjectReference scatterSet; // Offset: 4 + keen::ds::WorldDistributionTypeFlags distributionTypeMask; // Offset: 20 + keen::ds::SourceDataReference content; // Offset: 24 + keen::ds::SourceDataReference contentTags; // Offset: 40 + keen::bool connectManualSubscenesToRoad; // Offset: 56 +}; + +typedef keen::SceneObjectType SceneObjectType; + +typedef keen::SceneObjectTypeMask SceneObjectTypeMask; + +struct SceneTreeNode { + keen::ds::SceneObjectType type; // Offset: 0 + keen::uint32 typeIndex; // Offset: 4 + keen::uint32 childStart; // Offset: 8 + keen::uint32 childCount; // Offset: 12 +}; + +struct SceneDistributionDebugData { + keen::Vector3 position; // Offset: 0 + keen::Guid objectId; // Offset: 16 + keen::float32 radius; // Offset: 32 + keen::float32 minDistance; // Offset: 36 +}; + +struct SceneDistributionTag { + keen::ds::WhiteboxTagInfo tagInfo; // Offset: 0 + keen::uint32 sceneIndex; // Offset: 48 +}; + +struct DistributionLootInfo { + keen::Guid scatterSetId; // Offset: 0 + keen::uint32 objectIndex; // Offset: 16 +}; + +struct SceneContent { + keen::DsArray models; // Offset: 0 + keen::DsArray pointLights; // Offset: 40 + keen::DsArray cameras; // Offset: 80 + keen::DsArray spawns; // Offset: 120 + keen::DsArray voxelObjects; // Offset: 160 + keen::DsArray voxelBrushes; // Offset: 200 + keen::DsArray destructionBubbles; // Offset: 240 + keen::DsArray surfaceMaterialBubbles; // Offset: 280 + keen::DsArray vfxs; // Offset: 320 + keen::DsArray sounds; // Offset: 360 + keen::DsArray roads; // Offset: 400 + keen::DsArray pendingRoads; // Offset: 440 + keen::DsArray caves; // Offset: 480 + keen::DsArray tunnels; // Offset: 520 + keen::DsArray blockOuts; // Offset: 560 + keen::DsArray scatterBlockers; // Offset: 600 + keen::DsArray displacementBlockers; // Offset: 640 + keen::DsArray instances; // Offset: 680 + keen::DsArray resolvedInstances; // Offset: 720 + keen::DsArray dungeonRoomInstances; // Offset: 760 + keen::DsArray playableAreas; // Offset: 800 + keen::DsArray proceduralLayers; // Offset: 840 + keen::DsArray distributionTags; // Offset: 880 + keen::DsArray spawnLootInfos; // Offset: 920 + keen::DsArray sceneLootInfos; // Offset: 960 + keen::DsArray distributionDebugData; // Offset: 1000 + keen::bool isDebugDataDirty; // Offset: 1040 +}; + +struct SceneContentPasses { + keen::DsArray passes; // Offset: 0 +}; + +struct SceneDestructionBubbles { + keen::DsArray bubbles; // Offset: 0 +}; + +struct SceneRuntimeContent { + keen::DsArray models; // Offset: 0 + keen::DsArray pointLights; // Offset: 40 + keen::DsArray cameras; // Offset: 80 + keen::DsArray spawns; // Offset: 120 + keen::DsArray vfxs; // Offset: 160 + keen::DsArray sounds; // Offset: 200 + keen::DsArray scatterBlockers; // Offset: 240 + keen::DsArray instances; // Offset: 280 + keen::DsArray playableAreas; // Offset: 320 + keen::DsArray proceduralLayers; // Offset: 360 +}; + +struct SceneVoxelContent { + keen::DsArray passes; // Offset: 0 + keen::DsArray destructionBubbles; // Offset: 40 + keen::DsArray surfaceMaterialBubbles; // Offset: 80 + keen::DsArray nonConnectingRoads; // Offset: 120 + keen::DsArray displacementBlockers; // Offset: 160 +}; + +struct SceneCombinedContent { + keen::ds::SceneRuntimeContent runtime; // Offset: 0 + keen::ds::SceneVoxelContent voxel; // Offset: 400 +}; + +struct ContentPassIndex { + keen::uint64 indexPath; // Offset: 0 + keen::uint32 depth; // Offset: 8 +}; + +struct SceneVoxelContentPass { + keen::ds::ContentPassIndex passIndex; // Offset: 0 + keen::DsArray blockOuts; // Offset: 16 + keen::DsArray voxelObjects; // Offset: 56 + keen::DsArray voxelBrushes; // Offset: 96 + keen::DsArray caves; // Offset: 136 + keen::DsArray tunnels; // Offset: 176 + keen::DsArray roads; // Offset: 216 + keen::DsArray instances; // Offset: 256 + keen::DsArray dungeonRoomInstances; // Offset: 296 + keen::DsArray proceduralLayers; // Offset: 336 +}; + +struct SceneContentRoads { + keen::DsArray roads; // Offset: 0 +}; + +struct SceneRoadAttachment { + keen::Vector3 position; // Offset: 0 + keen::Guid definitionGuid; // Offset: 16 + keen::ds::RoadDefinition definition; // Offset: 32 +}; + +struct SceneAttachments { + keen::DsArray roadAttachments; // Offset: 0 +}; + +struct SceneLightResource { + keen::WorldTransform transform; // Offset: 0 + keen::ds::RenderLight light; // Offset: 56 +}; + +struct SceneContentRoadPoint { + keen::WorldPosition position; // Offset: 0 + keen::float32 width; // Offset: 24 +}; + +struct SceneContentRoad { + keen::Guid definition; // Offset: 0 + keen::DsArray points; // Offset: 16 + keen::ds::ContentPass contentPass; // Offset: 56 + keen::bool snapToOtherRoads; // Offset: 57 +}; + +struct SceneContentBlockOut { + keen::Guid objectGuid; // Offset: 0 + keen::WorldTransform transform; // Offset: 16 + keen::DsArray points; // Offset: 72 + keen::ds::VoxelMaterialReference material; // Offset: 112 + keen::bool enableTopDisplacement; // Offset: 128 + keen::bool enableTopBrushScattering; // Offset: 129 + keen::bool negativeVoxels; // Offset: 130 + keen::bool ignoreDisplacementBlockers; // Offset: 131 + keen::bool resolveBiomePerVoxel; // Offset: 132 + keen::ObjectReference scattering; // Offset: 136 + keen::ObjectReference removableFogId; // Offset: 152 +}; + +struct SceneContentCaveCurvePoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentCaveCurve { + keen::WorldTransform transform; // Offset: 0 + keen::float32 height; // Offset: 56 + keen::ds::CaveVoxelMode mode; // Offset: 60 + keen::ds::VoxelMaterialReference material; // Offset: 64 + keen::DsArray points; // Offset: 80 +}; + +struct SceneContentTunnelPoint { + keen::WorldPosition position; // Offset: 0 +}; + +struct SceneContentTunnel { + keen::float32 width; // Offset: 0 + keen::float32 height; // Offset: 4 + keen::ds::VoxelMaterialReference material; // Offset: 8 + keen::DsArray points; // Offset: 24 +}; + +struct SceneEntitySpawnResource { + keen::WorldTransform transform; // Offset: 0 + keen::ds::ecs::TemplateReference templateReference; // Offset: 56 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 72 + keen::DsArray> components; // Offset: 304 + keen::bool snapToGround; // Offset: 344 + keen::bool enableFloorMaterial; // Offset: 345 +}; + +struct SceneContentInstance { + keen::WorldTransform transform; // Offset: 0 + keen::Guid instanceGuid; // Offset: 56 + keen::Guid sceneGuid; // Offset: 72 + keen::bool connectToRoad; // Offset: 88 + keen::sint32 spawnLevelOffset; // Offset: 92 +}; + +struct SceneNoBuildZone { + keen::WorldPosition worldBoxMin; // Offset: 0 + keen::WorldPosition worldBoxMax; // Offset: 24 + keen::ds::AmbientEnvironment ambience; // Offset: 48 +}; + +struct SceneQuestEntity { + keen::WorldTransform transform; // Offset: 0 + keen::Guid templateGuid; // Offset: 56 +}; + +struct SceneResource { + keen::ObjectReference ibl; // Offset: 0 + keen::float32 iblIntensity; // Offset: 16 + keen::DsOptional atmosphereParameters; // Offset: 24 + keen::DsArray nodes; // Offset: 40 + keen::DsArray models; // Offset: 80 + keen::DsArray lights; // Offset: 120 + keen::DsArray cameras; // Offset: 160 + keen::DsArray vfxs; // Offset: 200 + keen::DsArray sounds; // Offset: 240 + keen::DsArray noBuildZones; // Offset: 280 + keen::DsArray questEntities; // Offset: 320 + keen::uint2 entityChunkCount; // Offset: 360 + keen::uint32 moveVersion; // Offset: 368 + keen::ds::SceneScatterResourceReference scatterResource; // Offset: 372 + keen::ds::SceneResetPlayersOutOfBounds resetPlayersOutOfBounds; // Offset: 392 +}; + +struct SceneEntityChunkResource { + keen::DsArray templates; // Offset: 0 + keen::DsArray templatesDoNotSave; // Offset: 40 + keen::DsArray> models; // Offset: 80 + keen::DsArray entities; // Offset: 120 + keen::DsArray entityExtraData; // Offset: 160 +}; + +struct SceneEntityExtraData { + keen::ds::SceneEntitySpawnData spawnData; // Offset: 0 + keen::DsArray> components; // Offset: 232 + keen::bool enableFloorMaterial; // Offset: 272 +}; + +struct SceneEntityChunkSpawn { + keen::uint32 index; // Offset: 0 + keen::WorldTransform transform; // Offset: 8 +}; + +struct SceneEntityChunkTemplateInfo { + keen::Guid templateId; // Offset: 0 + keen::DsOptional boundingBox; // Offset: 16 + keen::ObjectReference fallbackModel; // Offset: 32 + keen::ObjectReference floorMaterial; // Offset: 48 + keen::float32 floorMaterialRadius; // Offset: 64 + keen::float32 floorMaterialNoiseStrength; // Offset: 68 + keen::ds::FloorMaterialShape floorMaterialShape; // Offset: 72 + keen::bool doNotSave; // Offset: 73 + keen::bool isSkinned; // Offset: 74 +}; + +struct SceneEntityChunkTemplateInfos { + keen::DsArray infos; // Offset: 0 +}; + +struct SceneScatterBlockerChunk { + keen::DsArray scatterBlockers; // Offset: 0 +}; + +struct SceneFloorMaterialInstance { + keen::WorldPosition position; // Offset: 0 + keen::float32 radius; // Offset: 24 + keen::ObjectReference material; // Offset: 28 + keen::ds::FloorMaterialShape shape; // Offset: 44 + keen::float32 noiseStrength; // Offset: 48 +}; + +struct SceneFloorMaterialChunk { + keen::DsArray instances; // Offset: 0 +}; + +typedef keen::ObjectReference SceneResourceReference; + +struct SceneInfo { + keen::float3 pivot; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::ds::WorldDistributionTypeFlags distributionTypeFlags; // Offset: 16 + keen::bool hasBuildingVoxels; // Offset: 17 +}; + +struct SceneBoundingBox { + keen::float3 min; // Offset: 0 + keen::float3 max; // Offset: 12 + keen::float3 pivot; // Offset: 24 +}; + +struct ScatterImageAlias { + keen::Guid target; // Offset: 0 + keen::Guid replacement; // Offset: 16 +}; + +struct ScatterImageAliases { + keen::DsArray aliases; // Offset: 0 +}; + +struct ScenePreview { + keen::DsArray modelIds; // Offset: 0 + keen::DsArray transforms; // Offset: 40 + keen::ds::SceneObjectTypeMask objectTypes; // Offset: 80 +}; + +struct SceneConverterConfig { + keen::bool validateNonTestScenes; // Offset: 0 +}; + +struct BenchmarkPointDebugContent { + keen::Guid guid; // Offset: 0 + keen::WorldTransform worldTransform; // Offset: 16 + keen::HashKey32 hash; // Offset: 72 +}; + +struct SceneResolvedDebugContent { + keen::DsArray benchmarkPoints; // Offset: 0 +}; + +struct SceneDebugContent { + keen::DsArray benchmarkPoints; // Offset: 0 +}; + +struct SceneLevelDistribution { + keen::ObjectReference levelDistributionSet; // Offset: 0 +}; + +struct SceneLevelDistributionSet { +}; + +struct SceneLevelMap { + keen::ObjectReference scatterImage; // Offset: 0 + keen::uint32 level; // Offset: 16 +}; + +struct SceneLevelMapConvertInfo { + keen::uint32 level; // Offset: 0 + keen::Guid imageId; // Offset: 4 + keen::ds::ScatterImageMetaData imageMetaData; // Offset: 20 +}; + +struct SceneLevelDistributionConvertParams { + keen::Guid sceneId; // Offset: 0 + keen::Guid levelDistributionSetObjectId; // Offset: 16 + keen::DsArray levelInfos; // Offset: 32 +}; + +struct SceneLevelDistributionSetInfo { + keen::uint2 mapSize; // Offset: 0 + keen::uint32 upscaleFactor; // Offset: 8 +}; + +typedef keen::WorldTransformFlag WorldTransformFlag; + +struct PrefabLibrary { + keen::ObjectReference collisions; // Offset: 0 + keen::ObjectReference connections; // Offset: 16 +}; + +struct PrefabLibrarySettings { + keen::ObjectReference collisions; // Offset: 0 +}; + +struct DungeonConnectionInfo { + keen::DsArray connectionPoints; // Offset: 0 +}; + +struct PrefabDirectory { +}; + +struct Prefab { + keen::float32 replacementWeight; // Offset: 96 +}; + +struct PrefabEntitySpawn { + keen::Guid objectId; // Offset: 352 + keen::ds::ContentPass contentPass; // Offset: 368 +}; + +typedef keen::TileContextFlags TileContextFlags; + +struct PrefabObjectContextInfo { + keen::ds::SceneObjectType objectType; // Offset: 0 + keen::ds::ContentPassIndex passIndex; // Offset: 8 + keen::ds::TileContextFlags type; // Offset: 24 + keen::uint32 index; // Offset: 28 + keen::bool forbidden; // Offset: 32 +}; + +struct WhiteboxTriggerScope { +}; + +struct PrefabLootEntity { + keen::uint32 spawnIndex; // Offset: 0 + keen::ds::LootContainerInfo entityLootInfo; // Offset: 8 +}; + +struct PrefabContent { + keen::DsArray spawns; // Offset: 0 + keen::DsArray models; // Offset: 40 + keen::DsArray destructionBubbles; // Offset: 80 + keen::DsArray pointLights; // Offset: 120 + keen::DsArray lootInfos; // Offset: 160 + keen::DsArray contextInfos; // Offset: 200 + keen::DsArray roads; // Offset: 240 + keen::DsArray displacementBlockers; // Offset: 280 + keen::DsArray passes; // Offset: 320 +}; + +struct PrefabContentPass { + keen::ds::ContentPassIndex passIndex; // Offset: 0 + keen::DsArray voxelObjects; // Offset: 16 + keen::DsArray voxelBrushes; // Offset: 56 + keen::DsArray tunnels; // Offset: 96 +}; + +struct PrefabEntityInfo { + keen::DsString description; // Offset: 0 + keen::ObjectReference prefab; // Offset: 40 + keen::ObjectReference templateReference; // Offset: 56 +}; + +struct PrefabVoxelWorldSceneContent { + keen::DsArray whiteboxes; // Offset: 0 + keen::DsArray voxelObjects; // Offset: 40 + keen::DsArray voxelBrushes; // Offset: 80 + keen::DsArray destructionBubbles; // Offset: 120 + keen::DsArray roads; // Offset: 160 + keen::DsArray tunnels; // Offset: 200 +}; + +struct PrefabWhiteboxResolveInfo { + keen::WorldTransform worldTransform; // Offset: 0 + keen::ds::ContentPass contentPass; // Offset: 56 +}; + +struct WhiteboxEntityList { + keen::DsArray singleEntityPrefabs; // Offset: 0 + keen::DsArray customPrefabs; // Offset: 40 +}; + +struct WhiteboxOptions { + keen::Guid whiteboxDefinitionId; // Offset: 0 + keen::bool reducePrefabProbability; // Offset: 16 + keen::DsArray prefabs; // Offset: 24 +}; + +struct PrefabInfo { + keen::ObjectReference prefab; // Offset: 0 + keen::float32 weight; // Offset: 16 + keen::DsArray tags; // Offset: 24 +}; + +typedef keen::WhiteboxTileType WhiteboxTileType; + +struct WhiteboxDefinitionModelVisibility { + keen::bool voxelMode; // Offset: 0 + keen::bool editMode; // Offset: 1 + keen::bool brushMode; // Offset: 2 +}; + +struct WhiteboxDefinition { + keen::ObjectReference model; // Offset: 0 + keen::ds::WhiteboxDefinitionModelVisibility modelVisibility; // Offset: 16 + keen::bool reducePrefabProbability; // Offset: 19 + keen::ds::WhiteboxTileType type; // Offset: 20 + keen::float2 gridSize; // Offset: 24 + keen::Color tintColor; // Offset: 32 + keen::float3 modelScale; // Offset: 36 +}; + +typedef keen::TileContextFlagMask TileContextFlagMask; + +struct WhiteboxTileContext { + keen::ds::TileContextFlagMask context; // Offset: 0 +}; + +struct SceneDungeonRoomWhitebox { + keen::DsString identifier; // Offset: 64 + keen::ObjectReference definition; // Offset: 104 + keen::float32 replacementProbability; // Offset: 120 + keen::float32 randomRotationOffsetX; // Offset: 124 + keen::float32 randomRotationOffsetY; // Offset: 128 + keen::float32 randomRotationOffsetZ; // Offset: 132 + keen::bool snapToGround; // Offset: 136 + keen::ds::SceneEntitySpawnData spawnData; // Offset: 140 +}; + +struct DungeonRoomDirectory { +}; + +struct DungeonRoomScene { + keen::uint3 size; // Offset: 208 +}; + +struct DungeonRoomRayDedubg { + keen::Vector3 start; // Offset: 0 + keen::Vector3 end; // Offset: 16 + keen::bool hit; // Offset: 32 +}; + +struct DungeonRoomCollisionsDebugInfo { + keen::DsArray rayChecks; // Offset: 0 + keen::DsArray checkBoundingBoxes; // Offset: 40 +}; + +struct DungeonRoomShapes { + keen::DsArray boundingBoxes; // Offset: 0 +}; + +struct DungeonRoomSceneLayerGroup { +}; + +typedef keen::RoomConnectionPointType RoomConnectionPointType; + +struct DungeonRoomConnectionPoint { + keen::Guid objectId; // Offset: 0 + keen::Guid roomInstanceId; // Offset: 16 + keen::Guid roomSceneId; // Offset: 32 + keen::Guid whiteboxDefinitionId; // Offset: 48 + keen::WorldTransform worldTransform; // Offset: 64 + keen::ds::RoomConnectionPointType type; // Offset: 120 + keen::AxisAlignedBox boundingBox; // Offset: 128 + keen::ds::string identifier; // Offset: 160 +}; + +struct DungeonRoomConnectionPoints { + keen::DsArray connections; // Offset: 0 +}; + +struct DungeonConnectionPointInfo { + keen::ds::DungeonRoomConnectionPoint pointA; // Offset: 0 + keen::ds::DungeonRoomConnectionPoint pointB; // Offset: 208 +}; + +struct DungeonConnectionPoints { + keen::DsArray connections; // Offset: 0 +}; + +struct DungeonWhiteboxReplacement { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid newWhiteboxDefinitionId; // Offset: 16 +}; + +struct DungeonWhiteboxReplacements { + keen::DsArray replacements; // Offset: 0 +}; + +struct DungeonEntranceInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::DsString identifier; // Offset: 16 + keen::WorldTransform transform; // Offset: 56 + keen::AxisAlignedBox boundingBox; // Offset: 112 +}; + +struct DungeonRoomEntranceList { + keen::DsArray entrances; // Offset: 0 +}; + +struct DungeonRoomEntranceConvertInfo { + keen::DsArray markedEntrances; // Offset: 0 +}; + +struct WhiteboxCollisionSetup { +}; + +struct WhiteboxCollisionGroup { +}; + +struct WhiteboxCollisionItem { + keen::ObjectReference definition; // Offset: 0 + keen::uint8 weight; // Offset: 16 + keen::float32 range; // Offset: 20 +}; + +struct WhiteboxCollisionGroupInfo { + keen::DsArray items; // Offset: 0 +}; + +struct WhiteboxCollisionInfo { + keen::DsArray groups; // Offset: 0 +}; + +struct WhiteboxContextSetup { + keen::ObjectReference groundTag; // Offset: 0 + keen::ObjectReference ceilingTag; // Offset: 16 +}; + +struct DungeonConnectionsConfig { +}; + +struct DungeonConnectionSetup { + keen::ObjectReference connectionWhitebox; // Offset: 0 + keen::ObjectReference replacementOtherConnection; // Offset: 16 + keen::ObjectReference replacementRoadPoint; // Offset: 32 + keen::ObjectReference replacementWithoutConnection; // Offset: 48 + keen::AxisAlignedBox connectionAABB; // Offset: 64 +}; + +typedef keen::WhiteboxNodeType WhiteboxNodeType; + +struct WhiteboxConvertInfo { + keen::HashKey32 id; // Offset: 0 + keen::HashKey32 parentId; // Offset: 4 + keen::ds::WhiteboxNodeType type; // Offset: 8 + keen::Guid replacementObjectId; // Offset: 12 + keen::Guid whiteboxInstanceId; // Offset: 28 + keen::Guid whiteboxDefinitionId; // Offset: 44 + keen::ds::ContentPassIndex passIndex; // Offset: 64 + keen::ds::WhiteboxTileContext roomTileContext; // Offset: 80 + keen::ds::WhiteboxTileContext requiredRoomTileContext; // Offset: 81 + keen::ds::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 82 + keen::DsArray requiredTriggers; // Offset: 88 + keen::DsArray triggerInfos; // Offset: 128 + keen::WorldTransform worldTransform; // Offset: 168 + keen::DsArray tags; // Offset: 224 + keen::float3 randomRotationOffset; // Offset: 264 + keen::float32 replacementProbability; // Offset: 276 + keen::ds::SceneEntitySpawnData entitySpawnData; // Offset: 280 + keen::Guid triggerGraphId; // Offset: 508 +}; + +struct WhiteboxReplacementPass { + keen::DsArray replacements; // Offset: 0 + keen::DsArray failedReplacements; // Offset: 40 +}; + +struct WhiteboxReplacementInfoPasses { + keen::DsArray passes; // Offset: 0 +}; + +struct WhiteboxReplacementInfoPass { + keen::ds::ContentPassIndex passIndex; // Offset: 0 + keen::DsArray replacements; // Offset: 16 +}; + +struct WhiteboxReplacementInfo { + keen::HashKey32 id; // Offset: 0 + keen::Guid sceneId; // Offset: 4 + keen::WorldTransform worldTransform; // Offset: 24 + keen::DsArray triggers; // Offset: 80 + keen::ds::WhiteboxTileContext roomTileContext; // Offset: 120 + keen::ds::SceneEntitySpawnData entitySpawnData; // Offset: 124 +}; + +struct SceneWhiteboxContentInfo { + keen::Guid whiteboxInstanceId; // Offset: 0 + keen::Guid whiteboxDefinitionId; // Offset: 16 + keen::uint32 passIndex; // Offset: 32 + keen::WorldTransform worldTransform; // Offset: 40 + keen::float3 randomRotationOffset; // Offset: 96 + keen::float32 replacementProbability; // Offset: 108 + keen::DsArray tags; // Offset: 112 + keen::ds::WhiteboxTileContext requiredRoomTileContext; // Offset: 152 + keen::ds::WhiteboxTileContext forbiddenRoomTileContext; // Offset: 153 + keen::ds::SceneEntitySpawnData entitySpawnData; // Offset: 156 + keen::Guid triggerGraphId; // Offset: 384 +}; + +struct SceneWhiteboxInfo { + keen::DsArray whiteboxes; // Offset: 0 +}; + +struct SceneWhiteboxErrorInfo { + keen::uint32 failedReplacementCount; // Offset: 0 +}; + +struct WhiteboxTagList { + keen::DsArray tags; // Offset: 0 +}; + +struct SceneDungeonRoomInstance { + keen::DsString identifier; // Offset: 64 + keen::ObjectReference room; // Offset: 104 + keen::sint32 spawnLevelOffset; // Offset: 120 + keen::HashKey32 whiteboxSeed; // Offset: 124 +}; + +struct SceneDungeonRoomLayerGroupInstance { + keen::ObjectReference layerGroup; // Offset: 64 +}; + +struct DungeonEntranceDefinition { + keen::ObjectReference whitebox; // Offset: 0 +}; + +struct DungeonConnectionPriority { + keen::ObjectReference room; // Offset: 0 + keen::ObjectReference whitebox; // Offset: 16 +}; + +struct DungeonDirectory { +}; + +struct DungeonScene { +}; + +struct SceneDungeonInstance { + keen::ObjectReference dungeon; // Offset: 64 + keen::sint32 spawnLevelOffset; // Offset: 80 + keen::HashKey32 whiteboxSeed; // Offset: 84 +}; + +struct SceneWhiteboxPathParameters { + keen::WorldTransform transform; // Offset: 0 + keen::Guid rootSceneId; // Offset: 56 + keen::Guid sceneInstanceId; // Offset: 72 + keen::uint32 seed; // Offset: 88 +}; + +struct SceneWhiteboxPathList { + keen::ds::SceneWhiteboxPathParameters rootScene; // Offset: 0 + keen::DsArray subscenes; // Offset: 96 + keen::DsArray scatterScenes; // Offset: 136 +}; + +struct ContentLabelInfo { + keen::DsArray whiteboxLabels; // Offset: 0 + keen::ds::ObjectLootSettings lootSettings; // Offset: 40 +}; + +struct ecs.EntityTag { +}; + +struct ForbiddenEntityTags { +}; + +typedef keen::ObjectReference SequenceReference; + +typedef keen::SessionDebugAction SessionDebugAction; + +struct SessionDebugActionMessage { + keen::ds::SessionDebugAction action; // Offset: 0 +}; + +struct SessionDebugChannelInfo { + keen::ds::string name; // Offset: 0 +}; + +struct SessionDebugChannelsMessage { + keen::DsArray channels; // Offset: 0 +}; + +struct SessionDebugPacketChannel { + keen::uint16 messageSize; // Offset: 0 + keen::uint8 messageCount; // Offset: 2 +}; + +struct SessionDebugPacketsChannel { + keen::uint64 totalMessageSize; // Offset: 0 + keen::uint32 totalMessageCount; // Offset: 8 + keen::uint32 messageSize; // Offset: 12 + keen::uint16 messageCount; // Offset: 16 +}; + +typedef keen::SessionDebugPacketChannels SessionDebugPacketChannels; + +typedef keen::SessionDebugPacketsChannels SessionDebugPacketsChannels; + +struct SessionDebugPacket { + keen::Time time; // Offset: 0 + keen::Time oldestMessageTime; // Offset: 8 + keen::uint32 machineId; // Offset: 16 + keen::uint32 packetId; // Offset: 20 + keen::uint32 packetSize; // Offset: 24 + keen::uint8 machineIndex; // Offset: 28 + keen::ds::SessionDebugPacketChannels channels; // Offset: 30 +}; + +struct SessionDebugPacketMessage { + keen::Time time; // Offset: 0 + keen::uint32 machineId; // Offset: 8 + keen::ds::SessionDebugPacketsChannels packetsChannels; // Offset: 16 + keen::uint64 totalPacketsSize; // Offset: 784 + keen::uint32 packetsSize; // Offset: 792 +}; + +struct SessionDebugPacketSendMessage { + keen::DsArray packets; // Offset: 800 +}; + +struct SessionDebugPacketRecvMessage { + keen::DsArray packets; // Offset: 800 +}; + +struct SessionDebugMachineStats { + keen::uint32 machineIndex; // Offset: 0 + keen::uint32 lostPackets; // Offset: 4 + keen::Time roundTripTime; // Offset: 8 + keen::uint64 bandwidthLimitInBps; // Offset: 16 +}; + +struct SessionDebugStatsMessage { + keen::Time time; // Offset: 0 + keen::DsArray machineStats; // Offset: 8 +}; + +struct GameParameters { + keen::uint32 flameLevel; // Offset: 0 + keen::uint32 gameSettingsPreset; // Offset: 4 +}; + +typedef keen::SoundContentType SoundContentType; + +struct Sound { + keen::ds::SoundContentType contentType; // Offset: 0 +}; + +typedef keen::ObjectReference SoundReference; + +struct SoundContainer { +}; + +struct SoundContainerEntryShared { + keen::float32 chance; // Offset: 0 +}; + +struct SoundContainerEntry { +}; + +struct SoundContainerSoundEntry { + keen::ds::SoundReference sound; // Offset: 4 +}; + +struct SoundContainerContainerEntry { + keen::ds::SoundContainerReference container; // Offset: 4 +}; + +struct SoundContainerResource { + keen::DsArray> entries; // Offset: 64 +}; + +struct SoundContainerResourceEntry { +}; + +typedef keen::ObjectReference SoundResourceReference; + +struct SoundContainerResourceSoundEntry { + keen::ds::SoundResourceReference sound; // Offset: 4 +}; + +struct SoundContainerResourceContainerEntry { + keen::ds::SoundContainerResourceReference container; // Offset: 4 +}; + +struct SoundMusicPlaylist { + keen::DsArray tracks; // Offset: 0 + keen::bool shuffle; // Offset: 40 + keen::float32 fadeDuration; // Offset: 44 +}; + +typedef keen::ObjectReference SoundMusicPlaylistReference; + +typedef keen::SoundChannelConfiguration SoundChannelConfiguration; + +typedef keen::SoundDataFormat SoundDataFormat; + +struct SoundResource { + keen::ds::SoundChannelConfiguration channelConfiguration; // Offset: 0 + keen::ds::SoundDataFormat format; // Offset: 1 + keen::uint16 framesPerSecond; // Offset: 2 + keen::uint32 frameCount; // Offset: 4 + keen::Time duration; // Offset: 8 + keen::DsArray data; // Offset: 16 + keen::ContentHash dataHash; // Offset: 56 + keen::ds::string debugName; // Offset: 72 +}; + +struct GpuInformation { + keen::ds::string identifier; // Offset: 0 +}; + +struct SessionStarted { + keen::uint32 userId; // Offset: 0 + keen::uint32 sessionCount; // Offset: 4 + keen::ds::GpuInformation gpu; // Offset: 8 + keen::uint32 gameVersion; // Offset: 48 + keen::uint32 engineVersion; // Offset: 52 +}; + +struct CraftingAction { + keen::HashKey32 station; // Offset: 0 + keen::uint32 count; // Offset: 4 +}; + +struct FoodBuffData { + keen::uint32 maxUsedSlots; // Offset: 0 + keen::uint32 activatedFoodBuffs; // Offset: 4 +}; + +struct SessionEnded { + keen::uint32 userId; // Offset: 0 + keen::uint32 maxPlayer; // Offset: 4 + keen::Time playTime; // Offset: 8 + keen::bool host; // Offset: 16 + keen::uint32 saveGameSize; // Offset: 20 + keen::ds::GpuInformation gpu; // Offset: 24 + keen::uint32 gameVersion; // Offset: 64 + keen::uint32 engineVersion; // Offset: 68 + keen::DsArray unlockedKnowledge; // Offset: 72 + keen::DsArray crafting; // Offset: 112 + keen::ds::FoodBuffData foodBuffData; // Offset: 152 + keen::bool didUsePersonelCrafting; // Offset: 160 + keen::ds::ecs::GameSettingsPreset preset; // Offset: 161 + keen::ds::ecs::GameSettings settings; // Offset: 168 +}; + +struct DedicatedSessionStarted { +}; + +struct DedicatedSessionEnded { + keen::Time playTime; // Offset: 0 +}; + +typedef keen::DeathCause DeathCause; + +struct PlayerDeath { + keen::ds::DeathCause cause; // Offset: 0 + keen::float3 position; // Offset: 4 + keen::Guid causeGuid; // Offset: 16 + keen::bool wasDeadlyFog; // Offset: 32 +}; + +struct tracking.LevelUp { + keen::sint32 level; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::float3 position; // Offset: 16 +}; + +typedef keen::tracking::MinSpecError tracking.MinSpecError; + +typedef keen::tracking::MinSpecErrorMask tracking.MinSpecErrorMask; + +struct tracking.CrashInfo { + keen::uint32 userId; // Offset: 0 + keen::Time duration; // Offset: 8 + keen::uint32 gameVersion; // Offset: 16 + keen::uint32 engineVersion; // Offset: 20 + keen::ds::tracking::MinSpecErrorMask minspecError; // Offset: 24 +}; + +struct TtfFontResource { + keen::ContentHash fontFileHash; // Offset: 0 +}; + +struct TtfFontInfo { + keen::Guid objectId; // Offset: 0 + keen::ContentHash fontFileHash; // Offset: 16 +}; + +struct TtfFont { +}; + +typedef keen::ObjectReference TtfFontReference; + +typedef keen::ObjectReference TtfFontResourceReference; + +typedef keen::UiHorizontalAlignment UiHorizontalAlignment; + +typedef keen::UiVerticalAlignment UiVerticalAlignment; + +struct UiTestStyles { + keen::ds::UiCharacterStyle test; // Offset: 0 +}; + +struct UiTestParagraphStyles { + keen::ds::UiParagraphStyle test; // Offset: 0 + keen::ds::UiParagraphStyle test2; // Offset: 64 +}; + +typedef keen::ObjectReference UiFontReference; + +struct UiBundleTest { + keen::ds::UiTexture test; // Offset: 120 + keen::ds::UiTestStyles namedStyles; // Offset: 168 + keen::ds::UiTestParagraphStyles namedParagraphStyles; // Offset: 288 + keen::ds::UiFontReference font; // Offset: 416 +}; + +struct UiFontRange { + keen::uint32 firstRune; // Offset: 0 + keen::uint32 lastRune; // Offset: 4 +}; + +struct UiGlyphSet { + keen::ds::TtfFontReference font; // Offset: 0 + keen::float32 scale; // Offset: 16 + keen::bool useForMetrics; // Offset: 20 + keen::bool bold; // Offset: 21 + keen::bool italic; // Offset: 22 +}; + +struct UiFont { +}; + +struct UiFontLanguage { + keen::bool En_Us; // Offset: 0 + keen::bool En_Gb; // Offset: 1 + keen::bool De_De; // Offset: 2 + keen::bool Nl_Nl; // Offset: 3 + keen::bool Fr_Fr; // Offset: 4 + keen::bool It_It; // Offset: 5 + keen::bool Es_Es; // Offset: 6 + keen::bool Es_Mx; // Offset: 7 + keen::bool Ru_Ru; // Offset: 8 + keen::bool Pl_Pl; // Offset: 9 + keen::bool Ja_Jp; // Offset: 10 + keen::bool Id_Id; // Offset: 11 + keen::bool Ko_Kr; // Offset: 12 + keen::bool Ms_My; // Offset: 13 + keen::bool Pt_Pt; // Offset: 14 + keen::bool Pt_Br; // Offset: 15 + keen::bool Th_Th; // Offset: 16 + keen::bool Tr_Tr; // Offset: 17 + keen::bool Vi_Vn; // Offset: 18 + keen::bool Zh_Cn; // Offset: 19 + keen::bool Zh_Tw; // Offset: 20 + keen::bool Fr_Ca; // Offset: 21 + keen::bool Es_419; // Offset: 22 + keen::bool Bg_Bg; // Offset: 23 + keen::bool Cs_Cz; // Offset: 24 + keen::bool Da_Dk; // Offset: 25 + keen::bool Fi_Fi; // Offset: 26 + keen::bool El_Gr; // Offset: 27 + keen::bool Hu_Hu; // Offset: 28 + keen::bool No_No; // Offset: 29 + keen::bool Nb_No; // Offset: 30 + keen::bool Ro_Ro; // Offset: 31 + keen::bool Sv_Se; // Offset: 32 + keen::bool Uk_Ua; // Offset: 33 + keen::bool Default; // Offset: 34 +}; + +typedef keen::UiFontLanguageMask UiFontLanguageMask; + +typedef keen::UiFontVariantFlag UiFontVariantFlag; + +typedef keen::UiFontVariantMask UiFontVariantMask; + +struct UiGlyphSetResource { + keen::uint32 fontIndex; // Offset: 0 + keen::float32 scale; // Offset: 4 + keen::DsArray ranges; // Offset: 8 + keen::ds::UiFontVariantMask fontVariantMask; // Offset: 48 +}; + +struct UiFontLanguageGroupResource { + keen::ds::UiFontLanguageMask groupLanguages; // Offset: 0 + keen::DsArray glyphSets; // Offset: 8 + keen::uint32 metricsIndex; // Offset: 48 + keen::bool isDefaultLanguageGroup; // Offset: 52 +}; + +struct UiFontResource { + keen::DsArray fonts; // Offset: 0 + keen::DsArray languageGroups; // Offset: 40 +}; + +struct UiFontPreviewLanguageGroupOutput { + keen::DsArray fonts; // Offset: 0 + keen::DsArray glyphSets; // Offset: 40 +}; + +typedef keen::ObjectReference UiFontResourceReference; + +typedef keen::UiObjectId UiObjectId; + +struct UiPassTreeFrameState { + keen::ds::UiObjectId stateId; // Offset: 0 + keen::uint32 size; // Offset: 8 +}; + +typedef keen::UiFrameFlags UiFrameFlags; + +struct UiFrameSizes { + keen::ds::UiPosition offset; // Offset: 0 + keen::ds::UiSize minSize; // Offset: 8 + keen::ds::UiSize prefSize; // Offset: 16 + keen::ds::UiSize maxSize; // Offset: 24 + keen::ds::UiSize stretch; // Offset: 32 +}; + +typedef keen::UiFrameLayoutType UiFrameLayoutType; + +struct UiFrameLayout { + keen::ds::UiFrameLayoutType type; // Offset: 0 + keen::bool horizontalScroll; // Offset: 4 + keen::bool verticalScroll; // Offset: 5 + keen::bool flow; // Offset: 6 + keen::bool splitter; // Offset: 7 + keen::ds::UiSize spacing; // Offset: 8 + keen::uint32 framesPerGridRow; // Offset: 16 +}; + +struct UiFrameBorder { + keen::UiBorder margin; // Offset: 0 + keen::UiBorder padding; // Offset: 16 +}; + +struct UiFrameScrollState { + keen::ds::UiPosition scrollOffset; // Offset: 0 + keen::ds::UiSize scrollAreaSize; // Offset: 8 +}; + +struct UiFrameLayoutState { + keen::ds::UiSize minSize; // Offset: 0 + keen::ds::UiSize prefSize; // Offset: 8 + keen::ds::UiSize maxSize; // Offset: 16 + keen::ds::UiSize stretch; // Offset: 24 + keen::bool flowChild; // Offset: 32 +}; + +struct UiPassTreeFrame { + keen::ds::UiObjectId frameId; // Offset: 0 + keen::ds::UiObjectId localFrameId; // Offset: 8 + keen::ds::UiObjectId highestChildUiFrameId; // Offset: 16 + keen::ds::UiFrameFlags flags; // Offset: 24 + keen::uint32 inputMask; // Offset: 28 + keen::ds::UiFrameSizes sizes; // Offset: 32 + keen::ds::UiFrameLayout layout; // Offset: 72 + keen::ds::UiFrameBorder border; // Offset: 92 + keen::UiAlignment alignment; // Offset: 124 + keen::UiAlignment childAlignment; // Offset: 126 + keen::DsString debugName; // Offset: 128 + keen::DsArray children; // Offset: 168 + keen::DsArray states; // Offset: 208 + keen::ds::UiFrameScrollState scrollState; // Offset: 248 + keen::ds::UiFrameLayoutState layoutState; // Offset: 264 + keen::UiRectangle oldRect; // Offset: 300 + keen::UiRectangle rect; // Offset: 316 + keen::ds::UiPosition offset; // Offset: 332 +}; + +typedef keen::DsOptional UiPassTreeFrameOpt; + +struct UiPassTreeWindow { + keen::ds::UiObjectId windowId; // Offset: 0 + keen::uint32 zOrder; // Offset: 8 + keen::uint32 inputMask; // Offset: 12 + keen::uint32 flags; // Offset: 16 + keen::ds::UiPosition offset; // Offset: 20 + keen::float32 scale; // Offset: 28 + keen::ds::UiPassTreeFrameOpt rootFrame; // Offset: 32 + keen::DsString debugName; // Offset: 48 +}; + +struct UiPassTreeScreen { + keen::ds::UiObjectId screenId; // Offset: 0 + keen::UiRectangle rect; // Offset: 8 + keen::DsArray windows; // Offset: 24 +}; + +struct UiPassTree { + keen::uint32 systemUpdateCounter; // Offset: 0 + keen::DsArray screens; // Offset: 8 +}; + +typedef keen::UiFrameFlag UiFrameFlag; + +struct UiSplitterSizes { + keen::ds::UiSize minSize; // Offset: 0 + keen::ds::UiSize prefSize; // Offset: 8 + keen::ds::UiSize maxSize; // Offset: 16 + keen::ds::UiSize stretch; // Offset: 24 +}; + +struct UiFrameSplitterData { + keen::ds::UiPosition position; // Offset: 0 + keen::ds::UiPosition positionClamped; // Offset: 8 + keen::ds::UiPosition dragSplitterPosition; // Offset: 16 + keen::ds::UiPosition dragMousePosition; // Offset: 24 + keen::ds::UiSplitterSizes sizes; // Offset: 32 +}; + +struct UiFrameSplitterState { + keen::StaticArray splitter; // Offset: 0 +}; + +struct VoxelTemperatureResource { + keen::int3 worldOrigin; // Offset: 0 + keen::uint3 worldSize; // Offset: 12 + keen::uint3 sizeInVoxels; // Offset: 24 + keen::DsArray voxelData; // Offset: 40 +}; + +typedef keen::ObjectReference VoxelTemperatureReference; + +typedef keen::VoxelWorldResourceType VoxelWorldResourceType; + +struct VoxelWorldResource { + keen::ds::VoxelWorldResourceType type; // Offset: 0 + keen::uint2 tileCount; // Offset: 4 + keen::int3 origin; // Offset: 12 + keen::ContentHash lowLODData; // Offset: 24 + keen::uint32 lowLODMaxLevel; // Offset: 40 + keen::StaticArray materialGuids; // Offset: 44 + keen::uint8 defaultTerrainMaterial; // Offset: 4140 +}; + +struct VoxelWorldChunkResource { + keen::ContentHash highLODData; // Offset: 0 + keen::DsArray waterTileNotEmptyMask; // Offset: 16 +}; + +typedef keen::ObjectReference VoxelWorldReference; + +struct SolidVoxelMaterialWithId { + keen::Guid id; // Offset: 0 + keen::Guid stoneMaterialId; // Offset: 16 + keen::bool canReceiveFloorMaterial; // Offset: 32 +}; + +struct BiomeVoxelMaterialMapping { + keen::Guid id; // Offset: 0 + keen::StaticArray biomes; // Offset: 16 +}; + +struct VoxelMaterialResolvedList { + keen::DsArray solidMaterials; // Offset: 0 + keen::DsArray buildingMaterials; // Offset: 40 + keen::DsArray biomeMaterials; // Offset: 80 +}; + +struct VoxelMaterialSettings { + keen::uint8 defaultTerrainMaterial; // Offset: 0 +}; + +struct VoxelDisplacementMaterial { + keen::Guid id; // Offset: 0 + keen::ds::VoxelWorldDisplacement side; // Offset: 16 + keen::ds::VoxelWorldDisplacement top; // Offset: 44 +}; + +struct VoxelMaterialDisplacement { + keen::DsArray materials; // Offset: 0 +}; + +typedef keen::FogVoxelMaterialResolvedType FogVoxelMaterialResolvedType; + +struct FogVoxelMaterialResolved { + keen::Guid id; // Offset: 0 + keen::ds::FogVoxelMaterialResolvedType type; // Offset: 16 + keen::uint8 level; // Offset: 17 +}; + +struct FogVoxelMaterialResolvedList { + keen::DsArray fogMaterials; // Offset: 0 +}; + +struct WaterVoxelMaterialResolvedList { + keen::Guid waterMaterial; // Offset: 0 +}; + +struct TemperatureVoxelMaterialResolvedList { + keen::DsArray temperatureMaterials; // Offset: 0 +}; + +struct BuildingMaterialMappingResource { + keen::uint8 localId; // Offset: 0 + keen::Guid materialId; // Offset: 4 +}; + +struct BuildingMaterialPaletteResource { + keen::DsArray mappings; // Offset: 0 +}; + +typedef keen::ReservedMaterialId ReservedMaterialId; + +struct FogRemovalSetup { + keen::uint8 level; // Offset: 0 +}; + +struct FogRemovalDirectory { +}; + +struct FogRemovalLink { + keen::ObjectReference fogId; // Offset: 0 +}; + +typedef keen::FogVoxelMappingType FogVoxelMappingType; + +struct FogVoxelMapping { + keen::ds::FogVoxelMappingType type; // Offset: 0 + keen::uint8 level; // Offset: 1 + keen::ds::FogRemovalId removalId; // Offset: 4 + keen::AxisAlignedBox boundingBox; // Offset: 16 +}; + +struct FogVoxelMappingResource { + keen::DsArray mapping; // Offset: 0 +}; + +struct VoxelModelResource { + keen::uint3 size; // Offset: 0 + keen::DsArray data; // Offset: 16 + keen::bool isTerrain; // Offset: 56 +}; + +struct VoxelModelInfo { + keen::uint3 size; // Offset: 0 + keen::DsArray materialMap; // Offset: 16 + keen::bool isTerrain; // Offset: 56 +}; + +typedef keen::VoxelObjectPreviewMode VoxelObjectPreviewMode; + +struct VoxelObjectDefinition { + keen::ObjectReference materialPalette; // Offset: 0 + keen::ObjectReference material; // Offset: 16 + keen::bool invertEmptyConservative; // Offset: 32 + keen::ds::VoxelObjectPreviewMode previewMode; // Offset: 33 +}; + +struct TerrainVoxelObjectDefinition { + keen::ObjectReference model; // Offset: 0 +}; + +struct VoxelWorldObject { + keen::ds::ImageReference heightmap; // Offset: 0 + keen::ObjectReference compositeHeightmap; // Offset: 16 + keen::float32 heightScale; // Offset: 32 + keen::bool useCompositeScatterImage; // Offset: 36 + keen::bool displaceHeightmap; // Offset: 37 + keen::int3 origin; // Offset: 40 +}; + +struct VoxelWorldInfo { + keen::int2 minTile; // Offset: 0 + keen::int2 maxTile; // Offset: 8 + keen::sint32 yOffset; // Offset: 16 + keen::uint2 heightMapSize; // Offset: 20 + keen::float32 heightMapHeight; // Offset: 28 +}; + +struct VoxelWorldTerraAction { + keen::float3 position; // Offset: 0 + keen::float32 radius; // Offset: 12 + keen::uint32 mode; // Offset: 16 +}; + +struct VoxelWorldTerraActions { + keen::DsArray actions; // Offset: 0 +}; + +struct VoxelRoadShapeDefinition { + keen::float32 roadWidth; // Offset: 0 +}; + +struct VoxelWorldAutomatedTest { + keen::ObjectReference scene; // Offset: 0 + keen::ObjectReference referenceVoxelData; // Offset: 16 +}; + +typedef keen::DestructionVoxelBlockType DestructionVoxelBlockType; + +struct VoxelWorldConverterConfig { + keen::bool buildWaterVoxels; // Offset: 0 +}; + +struct WeatherPhenomenon { + keen::ObjectReference cloudMap; // Offset: 0 + keen::bool tiling; // Offset: 16 +}; + +struct WeatherSnowBorderConfiguration { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 + keen::uint32 maskResolutionDivisor; // Offset: 24 +}; + +struct WeatherSystemConfiguration { + keen::ObjectReference scene; // Offset: 0 + keen::ds::WeatherSnowBorderConfiguration snowBorder; // Offset: 16 + keen::uint32 layerMaskResolutionDivisor; // Offset: 44 +}; + +struct WeatherHeightMap { + keen::FloatRange fadeRange; // Offset: 0 + keen::ObjectReference mask; // Offset: 8 +}; + +struct WeatherPhenomenonProbability { + keen::float32 probability; // Offset: 0 + keen::TimeRange duration; // Offset: 8 +}; + +struct WeatherLayerConfiguration { + keen::bool useMaskResolutionDivisor; // Offset: 0 + keen::ObjectReference restrictMask; // Offset: 4 + keen::ObjectReference excludeMask; // Offset: 20 + keen::bool maskClouds; // Offset: 36 + keen::bool maskRain; // Offset: 37 + keen::ds::WeatherPhenomenonProbability nothingProbability; // Offset: 40 +}; + +typedef keen::WeatherPhenomenonEffect WeatherPhenomenonEffect; + +struct WeatherPhenomenonConfiguration { + keen::ds::WeatherPhenomenonProbability probability; // Offset: 0 + keen::ObjectReference phenomenon; // Offset: 24 + keen::FloatRange scale; // Offset: 40 + keen::FloatRange rotation; // Offset: 48 + keen::FloatRange moveSpeed; // Offset: 56 + keen::bool alignRotationToMoveSpeed; // Offset: 64 + keen::Time spawnFadeTime; // Offset: 72 + keen::Time despawnFadeTime; // Offset: 80 + keen::ds::WeatherPhenomenonEffect effect; // Offset: 88 + keen::float32 rainThreshold; // Offset: 92 +}; + +struct WeatherSystemMaskResource { + keen::float2 bboxMin; // Offset: 0 + keen::float2 bboxMax; // Offset: 8 + keen::float2 worldToRelative; // Offset: 16 + keen::uint2 size; // Offset: 24 + keen::DsArray data; // Offset: 32 +}; + +struct WeatherSystemResource { + keen::HashKey32 dataHash; // Offset: 0 + keen::uint2 worldSize; // Offset: 4 + keen::float2 snowBorderRangeMapping; // Offset: 12 + keen::ds::WeatherSystemMaskResource snowBorderMask; // Offset: 24 + keen::DsArray layers; // Offset: 96 + keen::DsArray layerMasks; // Offset: 136 + keen::DsArray phenomenons; // Offset: 176 + keen::DsArray rainMasks; // Offset: 216 +}; + +typedef keen::WeatherLayerMaskIndex WeatherLayerMaskIndex; + +typedef keen::WeatherSystemPhenomenonResourceFlags WeatherSystemPhenomenonResourceFlags; + +typedef keen::WeatherRainMaskIndex WeatherRainMaskIndex; + +struct WeatherSystemPhenomenonResource { + keen::Guid guid; // Offset: 0 + keen::float32 probability; // Offset: 16 + keen::ds::WeatherSystemPhenomenonResourceFlags flags; // Offset: 20 + keen::Time durationMin; // Offset: 24 + keen::Time durationMax; // Offset: 32 + keen::float32 radiusMin; // Offset: 40 + keen::float32 radiusMax; // Offset: 44 + keen::float32 moveSpeedMin; // Offset: 48 + keen::float32 moveSpeedMax; // Offset: 52 + keen::Time spawnFadeTime; // Offset: 56 + keen::Time despawnFadeTime; // Offset: 64 + keen::float32 rainThreshold; // Offset: 72 + keen::ds::WeatherRainMaskIndex rainMaskIndex; // Offset: 76 + keen::ObjectReference renderer; // Offset: 80 + keen::ds::WeatherPhenomenonEffect effect; // Offset: 96 +}; + +struct WeatherSystemLayerResource { + keen::Guid guid; // Offset: 0 + keen::ds::WeatherLayerMaskIndex restrictMaskIndex; // Offset: 16 + keen::ds::WeatherLayerMaskIndex excludeMaskIndex; // Offset: 17 + keen::DsArray phenomenonIndices; // Offset: 24 + keen::ds::WeatherSystemPhenomenonResource nothingPhenomenon; // Offset: 64 +}; + +struct WeatherSystemLayerMaskResource { + keen::ds::WeatherSystemMaskResource mask; // Offset: 0 + keen::ObjectReference renderer; // Offset: 72 +}; + +typedef keen::WeatherSystemPhenomenonResourceFlag WeatherSystemPhenomenonResourceFlag; + +struct WeatherSystemDebugState { + keen::Time currentTime; // Offset: 0 + keen::DsArray layers; // Offset: 8 + keen::DsArray instances; // Offset: 48 +}; + +struct WeatherSystemDebugLayerState { + keen::Guid guid; // Offset: 0 + keen::Time nextPhenomenonTime; // Offset: 16 + keen::uint32 currentInstanceHandle; // Offset: 24 + keen::uint32 previousInstanceHandle; // Offset: 28 +}; + +struct WeatherSystemDebugInstanceState { + keen::uint32 handle; // Offset: 0 + keen::Guid guid; // Offset: 4 + keen::float2 position; // Offset: 20 + keen::float32 rotation; // Offset: 28 + keen::float32 radius; // Offset: 32 + keen::float32 moveSpeed; // Offset: 36 + keen::float32 fade; // Offset: 40 +}; + +struct WeatherSystemDebugSkipToNextPhenomenonMessage { + keen::uint32 layerIndex; // Offset: 0 +}; + +typedef keen::WeatherPhenomenonIndex WeatherPhenomenonIndex; + +struct weather.save_v0.WeatherSavedLayerInstance { + keen::ds::WeatherPhenomenonIndex phenomenonIndex; // Offset: 0 + keen::WorldPosition spawnPosition; // Offset: 8 + keen::Angle rotation; // Offset: 32 + keen::float32 radius; // Offset: 36 + keen::float32 moveSpeed; // Offset: 40 + keen::Time spawnTime; // Offset: 48 + keen::Time despawnTime; // Offset: 56 +}; + +struct weather.save_v0.WeatherSavedLayer { + keen::Time nextPhenomenon; // Offset: 0 + keen::ds::weather::save_v0::WeatherSavedLayerInstance currentInstance; // Offset: 8 + keen::ds::weather::save_v0::WeatherSavedLayerInstance previousInstance; // Offset: 72 +}; + +typedef keen::WeatherLayerIndex WeatherLayerIndex; + +struct WeatherSpawnParameters { + keen::float32 eventProbabilityModifier; // Offset: 0 +}; + +struct g38_options.SettingsHeader { + keen::uint32 version; // Offset: 0 +}; + +typedef keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode g38_options.pc.v5_dedicated_song_selection_binding.machine.WindowMode; + +typedef keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings g38_options.pc.v5_dedicated_song_selection_binding.machine.NvidiaReflexModeSettings; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.GraphicsSettings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode windowMode; // Offset: 0 + keen::int2 windowPosition; // Offset: 4 + keen::uint2 windowSize; // Offset: 12 + keen::uint2 forceBackbufferResolution; // Offset: 20 + keen::float32 renderScale; // Offset: 28 + keen::bool automaticRenderScale; // Offset: 32 + keen::bool vsync; // Offset: 33 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings nvidiaReflex; // Offset: 36 + keen::ds::RenderSettings render; // Offset: 40 + keen::bool useDefaultRenderSettings; // Offset: 120 + keen::bool sleepInBackground; // Offset: 121 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.SoundSettings { + keen::bool muteInBackground; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.machine.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings graphics; // Offset: 4 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings sound; // Offset: 128 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GraphicsSettings { + keen::float32 fov; // Offset: 0 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.SoundSettings { + keen::float32 masterVolume; // Offset: 0 + keen::float32 musicVolume; // Offset: 4 + keen::float32 uiVolume; // Offset: 8 + keen::float32 gameVolume; // Offset: 12 + keen::float32 voiceVolume; // Offset: 16 + keen::bool dynamicReverb; // Offset: 20 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.MouseSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::ds::AttackDirectionInput attackDirection; // Offset: 10 + keen::bool enableSmoothing; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GamepadSettings { + keen::float32 defaultSensitivity; // Offset: 0 + keen::float32 rangedCombatSensitivity; // Offset: 4 + keen::bool2 invertCameraAxes; // Offset: 8 + keen::ds::AttackDirectionInput attackDirection; // Offset: 10 + keen::ds::ControllerButtonStyle controllerButtonStyle; // Offset: 11 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.InputSettings { + keen::ds::input_mapping::PresetId selectedKeyboardMousePresetId; // Offset: 0 + keen::ds::input_mapping::PresetId selectedGamepadPresetId; // Offset: 1 + keen::ds::input_mapping::serialize::InputBindings customInputBindings; // Offset: 8 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings mouse; // Offset: 56 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings gamepad; // Offset: 68 +}; + +typedef keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting g38_options.pc.v5_dedicated_song_selection_binding.user.SpiderSetting; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.GameplaySettings { + keen::float cameraZoomFactor; // Offset: 0 + keen::bool enableIdleCameraTransition; // Offset: 4 + keen::bool reduceDynamicCameraMovement; // Offset: 5 + keen::float screenShakeStrength; // Offset: 8 + keen::bool displayDamageNumbers; // Offset: 12 + keen::bool displayDamagePropertyTexts; // Offset: 13 + keen::bool keepTargetLockWhenSprinting; // Offset: 14 + keen::bool breakTargetLockOnKill; // Offset: 15 + keen::uint32 hudAspectRatioWidth; // Offset: 16 + keen::float textScale; // Offset: 20 + keen::bool useAdditionalSymbolsForItemRarity; // Offset: 24 + keen::bool hideHUD; // Offset: 25 + keen::bool hideHelmet; // Offset: 26 + keen::bool hideGloves; // Offset: 27 + keen::bool showCharacterName; // Offset: 28 + keen::ds::ItemRarity itemDeletionProtectionLevel; // Offset: 29 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting hideSpiders; // Offset: 30 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostUserGroup { + keen::bool enable; // Offset: 0 + keen::ds::string password; // Offset: 8 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.HostSettings { + keen::uint32 maxSlots; // Offset: 0 + keen::ds::string password; // Offset: 8 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup guests; // Offset: 48 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup friends; // Offset: 96 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup admins; // Offset: 144 +}; + +struct g38_options.pc.v5_dedicated_song_selection_binding.user.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings graphics; // Offset: 4 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings sound; // Offset: 8 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings input; // Offset: 32 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings gameplay; // Offset: 112 + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings hostSettings; // Offset: 144 + keen::uint32 playedSessions; // Offset: 336 +}; + +struct g38_options.pc.v4_dedicated_glider_binding.machine.Settings { +}; + +struct g38_options.pc.v4_dedicated_glider_binding.user.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct g38_options.pc.v3_early_access_release.machine.Settings { +}; + +struct g38_options.pc.v3_early_access_release.user.Settings { + keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings legacySettings; // Offset: 0 +}; + +struct G38SupportedFeatures { + keen::ds::RenderSettingsFeatures renderFeatures; // Offset: 0 + keen::bool isNvReflexAvailable; // Offset: 8 +}; + +struct debug.CameraPathKeyframe { + keen::Matrix43 transform; // Offset: 0 + keen::Time time; // Offset: 64 +}; + +struct debug.CameraRecording { + keen::DsArray cameraPath; // Offset: 0 +}; + +} diff --git a/reflection/gen_header.py b/reflection/gen_header.py new file mode 100644 index 0000000..9bd9847 --- /dev/null +++ b/reflection/gen_header.py @@ -0,0 +1,79 @@ +import json + +def generate_cpp_header(json_file_path, output_file_path): + """ + Parses a JSON reflection file and generates a C++ header file with struct definitions. + + Args: + json_file_path: Path to the input JSON file. + output_file_path: Path to the output C++ header file. + """ + + try: + with open(json_file_path, 'r') as f: + data = json.load(f) + except FileNotFoundError: + print(f"Error: JSON file not found at {json_file_path}") + return + except json.JSONDecodeError: + print(f"Error: Invalid JSON format in {json_file_path}") + return + + cpp_code = """#pragma once // Include guard to prevent multiple inclusions + +#include // Include standard integer types (uint32_t, etc.) + +namespace keen { // Assuming a 'keen' namespace, adjust as needed + +""" + + for entry in data: + type_name = entry.get("type_name_2") # Use type_name_2 for consistency + qualified_name = entry.get("qualified_name") + class_size = entry.get("class_size") + fields = entry.get("struct_fields") + primitive_type = entry.get("primitive_type") + referenced_type_name = entry.get("referenced_type_name") + + + if primitive_type == "Struct": + cpp_code += f"struct {type_name} {{\n" + if fields: + for field in fields: + field_type = field.get("type_name") + field_name = field.get("name") + offset = field.get("data_offset") + cpp_code += f" {field_type} {field_name}; // Offset: {offset}\n" + cpp_code += f"}};\n\n" + + elif primitive_type == "Typedef": + cpp_code += f"typedef {referenced_type_name} {type_name};\n\n" + + elif primitive_type == "Enum": # Example enum handling (if you have enums in your JSON) + enum_fields = entry.get("enum_fields") + if enum_fields: + cpp_code += f"enum class {type_name} {{\n" + for enum_field in enum_fields: + enum_name = enum_field.get("name") + enum_value = enum_field.get("value") # Assuming value is provided + cpp_code += f" {enum_name} = {enum_value},\n" + cpp_code += "};\n\n" + + # Handle other types (primitives, etc.) as needed. You might not need to do anything for primitives. + # If you need specific handling for BlobString or other types, add it here. + + + cpp_code += "}\n" # Close the keen namespace + + try: + with open(output_file_path, 'w') as outfile: + outfile.write(cpp_code) + print(f"C++ header file generated successfully at {output_file_path}") + except Exception as e: + print(f"Error writing to output file: {e}") + + +# Example usage: +json_file = "reflection_data.json" # Replace with your JSON file path +header_file = "game_structures.h" # Replace with your desired header file path +generate_cpp_header(json_file, header_file) \ No newline at end of file diff --git a/reflection/reflection_data.json b/reflection/reflection_data.json new file mode 100644 index 0000000..e339614 --- /dev/null +++ b/reflection/reflection_data.json @@ -0,0 +1,361352 @@ +[ + { + "type_name_1": "BlobString", + "type_name_2": "String", + "qualified_name": "keen::BlobString", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobString", + "hash1": 2086352384, + "hash2": 1615808600, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "uint32", + "type_name_2": "uint32", + "qualified_name": "keen::uint32", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 0, + "primitive_type": "Uint32", + "hash1": 2194793467, + "hash2": 848563180, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HashKey32", + "type_name_2": "HashKey32", + "qualified_name": "keen::HashKey32", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3462721580, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AchievementId", + "type_name_2": "AchievementId", + "qualified_name": "keen::AchievementId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2433048088, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementValue", + "type_name_2": "AchievementValue", + "qualified_name": "keen::AchievementValue", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1566847154, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::LocaTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 489083698, + "hash2": 3545101166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagReference", + "type_name_2": "LocaTagReference", + "qualified_name": "keen::LocaTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2413391950, + "hash2": 2658094440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NameLocaTag", + "type_name_2": "NameLocaTag", + "qualified_name": "keen::NameLocaTag", + "referenced_type_name": "keen::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3407103420, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DescriptionLocaTag", + "type_name_2": "DescriptionLocaTag", + "qualified_name": "keen::DescriptionLocaTag", + "referenced_type_name": "keen::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1719653355, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "bool", + "type_name_2": "bool", + "qualified_name": "keen::bool", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bool", + "hash1": 1988030794, + "hash2": 3365180733, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementData", + "type_name_2": "AchievementData", + "qualified_name": "keen::AchievementData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2268419629, + "hash2": 2487859499, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::DescriptionLocaTag", + "type_hash": 1719653355, + "data_offset": 16 + }, + { + "name": "hasUnlockValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "unlockValue", + "type_name": "keen::AchievementValue", + "type_hash": 1566847154, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AchievementData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 804677950, + "hash2": 3889399636, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDataReference", + "type_name_2": "AchievementDataReference", + "qualified_name": "keen::AchievementDataReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 406807362, + "hash2": 1829113899, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "string", + "type_name_2": "string", + "qualified_name": "keen::string", + "referenced_type_name": "keen::BlobString", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 779033687, + "hash2": 3625431854, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "sint32", + "type_name_2": "sint32", + "qualified_name": "keen::sint32", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 0, + "primitive_type": "Sint32", + "hash1": 1487479105, + "hash2": 2556031774, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "int", + "type_name_2": "int", + "qualified_name": "keen::int", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1974855975, + "hash2": 1236258612, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Guid", + "type_name_2": "Guid", + "qualified_name": "keen::Guid", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 0, + "primitive_type": "Guid", + "hash1": 2155730591, + "hash2": 2898774828, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Achievement", + "type_name_2": "Achievement", + "qualified_name": "keen::Achievement", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2500757165, + "hash2": 39906127, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::AchievementId", + "type_hash": 2433048088, + "data_offset": 0 + }, + { + "name": "hasUnlockValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "unlockValue", + "type_name": "keen::AchievementValue", + "type_hash": 1566847154, + "data_offset": 8 + }, + { + "name": "dosId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "steamName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "steamStat", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + }, + { + "name": "npId", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 32 + }, + { + "name": "xsapiId", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 36 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 40 + }, + { + "name": "dbgName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "Achievement[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::Achievement", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 676080370, + "hash2": 3747600262, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDefinitionResource", + "type_name_2": "AchievementDefinitionResource", + "qualified_name": "keen::AchievementDefinitionResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 17978028, + "hash2": 223199278, + "struct_fields": [ + { + "name": "achievements", + "type_name": "keen::BlobArray", + "type_hash": 676080370, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AchievementDefinitionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2021088001, + "hash2": 1215093736, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDefinitionReference", + "type_name_2": "AchievementDefinitionReference", + "qualified_name": "keen::AchievementDefinitionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 20592997, + "hash2": 933835361, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementSubDirectory", + "type_name_2": "AchievementSubDirectory", + "qualified_name": "keen::AchievementSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2413341616, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDirectory", + "type_name_2": "AchievementDirectory", + "qualified_name": "keen::AchievementDirectory", + "referenced_type_name": "keen::AchievementSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4042569424, + "hash2": 1732187060, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "uint8", + "type_name_2": "uint8", + "qualified_name": "keen::uint8", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Uint8", + "hash1": 3533154758, + "hash2": 429781723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxPlaybackType", + "type_name_2": "AmbientSfxPlaybackType", + "qualified_name": "keen::AmbientSfxPlaybackType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 812051868, + "hash2": 1835256893, + "struct_fields": [], + "enum_fields": [ + { + "name": "PlayAlways", + "value": 0 + }, + { + "name": "PlayOnlyWhenInBattle", + "value": 1 + }, + { + "name": "PlayOnlyWhenNotInBattle", + "value": 2 + } + ] + }, + { + "type_name_1": "AmbientEitherOrBoth", + "type_name_2": "AmbientEitherOrBoth", + "qualified_name": "keen::AmbientEitherOrBoth", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1476507189, + "hash2": 1918859377, + "struct_fields": [], + "enum_fields": [ + { + "name": "No", + "value": 0 + }, + { + "name": "Yes", + "value": 1 + }, + { + "name": "Any", + "value": 2 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SoundContainer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1882157339, + "hash2": 2663232324, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerReference", + "type_name_2": "SoundContainerReference", + "qualified_name": "keen::SoundContainerReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1853525829, + "hash2": 567301414, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientTags", + "type_name_2": "AmbientTags", + "qualified_name": "keen::AmbientTags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 3387239939, + "hash2": 3754809676, + "struct_fields": [], + "enum_fields": [ + { + "name": "ForestProp", + "value": 0 + }, + { + "name": "BendableBush", + "value": 1 + }, + { + "name": "VukahProp", + "value": 2 + }, + { + "name": "AncientProp", + "value": 3 + }, + { + "name": "PrisonProp", + "value": 4 + }, + { + "name": "GraveProp", + "value": 5 + }, + { + "name": "MineProp", + "value": 6 + }, + { + "name": "CaveProp", + "value": 7 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::AmbientTags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 4208683451, + "hash2": 4015355869, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientMask", + "type_name_2": "AmbientMask", + "qualified_name": "keen::AmbientMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1661550082, + "hash2": 1955604017, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherState", + "type_name_2": "WeatherState", + "qualified_name": "keen::WeatherState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2953948979, + "hash2": 2989704336, + "struct_fields": [], + "enum_fields": [ + { + "name": "Clear", + "value": 0 + }, + { + "name": "Rain", + "value": 1 + }, + { + "name": "Snow", + "value": 2 + }, + { + "name": "Blizzard", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::WeatherState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1512143339, + "hash2": 2279564983, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "float32", + "type_name_2": "float32", + "qualified_name": "keen::float32", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 0, + "primitive_type": "Float32", + "hash1": 1911297837, + "hash2": 3902764048, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::IngameTimeSpan", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2283290065, + "hash2": 2967091125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectEntry", + "type_name_2": "AmbientSoundEffectEntry", + "qualified_name": "keen::AmbientSoundEffectEntry", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2943268044, + "hash2": 2521226428, + "struct_fields": [ + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "soundContainer", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 8 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ObjectReference", + "type_hash": 2283290065, + "data_offset": 24 + }, + { + "name": "playbackType", + "type_name": "keen::AmbientSfxPlaybackType", + "type_hash": 812051868, + "data_offset": 40 + }, + { + "name": "additionalTagsInclude", + "type_name": "keen::AmbientMask", + "type_hash": 1661550082, + "data_offset": 41 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 42 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEnvironment", + "type_name_2": "AmbientEnvironment", + "qualified_name": "keen::AmbientEnvironment", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 25, + "primitive_type": "Enum", + "hash1": 876159495, + "hash2": 83968019, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Grassland", + "value": 1 + }, + { + "name": "Desert", + "value": 2 + }, + { + "name": "Wetland", + "value": 3 + }, + { + "name": "Steppes", + "value": 4 + }, + { + "name": "Deepforest", + "value": 5 + }, + { + "name": "ColdHeights", + "value": 6 + }, + { + "name": "TallTrees", + "value": 7 + }, + { + "name": "AncientRooftop", + "value": 8 + }, + { + "name": "Volcano", + "value": 9 + }, + { + "name": "FogWell", + "value": 10 + }, + { + "name": "Capital", + "value": 11 + }, + { + "name": "PrisonDungeon", + "value": 12 + }, + { + "name": "GraveDungeon", + "value": 13 + }, + { + "name": "BarracksDungeon", + "value": 14 + }, + { + "name": "BoneDungeon", + "value": 15 + }, + { + "name": "HollowDungeon", + "value": 16 + }, + { + "name": "FortressCraterGarrison", + "value": 17 + }, + { + "name": "Cave", + "value": 18 + }, + { + "name": "NaturalCave", + "value": 19 + }, + { + "name": "Mine", + "value": 20 + }, + { + "name": "AncientStructure", + "value": 21 + }, + { + "name": "AncientPuzzle", + "value": 22 + }, + { + "name": "DesertTemple", + "value": 23 + }, + { + "name": "PlayerStart", + "value": 24 + } + ] + }, + { + "type_name_1": "AmbientSoundEffect", + "type_name_2": "AmbientSoundEffect", + "qualified_name": "keen::AmbientSoundEffect", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 913538408, + "hash2": 1749407215, + "struct_fields": [ + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "inFog", + "type_name": "keen::AmbientEitherOrBoth", + "type_hash": 1476507189, + "data_offset": 9 + }, + { + "name": "indoors", + "type_name": "keen::AmbientEitherOrBoth", + "type_hash": 1476507189, + "data_offset": 10 + }, + { + "name": "environment", + "type_name": "keen::AmbientEnvironment", + "type_hash": 876159495, + "data_offset": 11 + }, + { + "name": "ambientTagsInclude", + "type_name": "keen::AmbientMask", + "type_hash": 1661550082, + "data_offset": 12 + }, + { + "name": "ambientTagsExclude", + "type_name": "keen::AmbientMask", + "type_hash": 1661550082, + "data_offset": 13 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "float", + "type_name_2": "float", + "qualified_name": "keen::float", + "referenced_type_name": "keen::float32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2432634860, + "hash2": 3005136928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "sint64", + "type_name_2": "sint64", + "qualified_name": "keen::sint64", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 0, + "primitive_type": "Sint64", + "hash1": 3434124194, + "hash2": 275114233, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Time", + "type_name_2": "Time", + "qualified_name": "keen::Time", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3289532223, + "hash2": 1525276579, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectParameters", + "type_name_2": "AmbientSoundEffectParameters", + "qualified_name": "keen::AmbientSoundEffectParameters", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 4137019660, + "hash2": 762409179, + "struct_fields": [ + { + "name": "sfxLifeTimeInSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "chanceToPlaySound", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "environmentMusicFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "loopFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "musicFadeOutToBattleValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "musicFadeOutToBossValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "bossMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "bossMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "combatMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "combatMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "caveLoopsFadeInPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "caveLoopsFadeOutPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "caveMusicDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "rainIndoorFade", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "rainIndoorLoweredVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "daytimeFadeValuePlusMinusMinutes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "playerIsInFogThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "startFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "stopFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "playerIsInEnvironmentThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "startEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "stopEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "baseAmbienceThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "smallEnvironmentMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "oneshotDistanceMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "temporalSmoothingSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "silenceAfterVictoryDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "fogMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "environmentMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "environmentMusicEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 128 + }, + { + "name": "fogLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + }, + { + "name": "environmentLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 136 + }, + { + "name": "environmentLoopsEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 140 + }, + { + "name": "propsNeededToEnableAmbientTag", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "pauseBetweenBushCollisionSounds", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxSubDirectory", + "type_name_2": "AmbientSfxSubDirectory", + "qualified_name": "keen::AmbientSfxSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 968164704, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxDirectory", + "type_name_2": "AmbientSfxDirectory", + "qualified_name": "keen::AmbientSfxDirectory", + "referenced_type_name": "keen::AmbientSfxSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 786557856, + "hash2": 2358943479, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerMode", + "type_name_2": "SoundContainerMode", + "qualified_name": "keen::SoundContainerMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 390480987, + "hash2": 5498097, + "struct_fields": [], + "enum_fields": [ + { + "name": "Random", + "value": 0 + } + ] + }, + { + "type_name_1": "SoundContainerScene", + "type_name_2": "SoundContainerScene", + "qualified_name": "keen::SoundContainerScene", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 4189032944, + "hash2": 1095480084, + "struct_fields": [], + "enum_fields": [ + { + "name": "Sfx", + "value": 0 + }, + { + "name": "Music", + "value": 1 + }, + { + "name": "Ui", + "value": 2 + }, + { + "name": "Voice", + "value": 3 + } + ] + }, + { + "type_name_1": "SoundContainerShared", + "type_name_2": "SoundContainerShared", + "qualified_name": "keen::SoundContainerShared", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 1319852629, + "hash2": 923726136, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::SoundContainerMode", + "type_hash": 390480987, + "data_offset": 0 + }, + { + "name": "scene", + "type_name": "keen::SoundContainerScene", + "type_hash": 4189032944, + "data_offset": 1 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "loopSameChosenEntry", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "avoidRepeatingLastX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "volumeRandomness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pitch", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "pitchRandomness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "sleep", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "sleepRandomness", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "hasPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "hasRandomPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "randomLeftRight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "randomFrontBack", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "uint", + "type_name_2": "uint", + "qualified_name": "keen::uint", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1033134810, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxResource", + "type_name_2": "AmbientSfxResource", + "qualified_name": "keen::AmbientSfxResource", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 4080200765, + "hash2": 3983673079, + "struct_fields": [ + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "inFog", + "type_name": "keen::AmbientEitherOrBoth", + "type_hash": 1476507189, + "data_offset": 1 + }, + { + "name": "indoors", + "type_name": "keen::AmbientEitherOrBoth", + "type_hash": 1476507189, + "data_offset": 2 + }, + { + "name": "environment", + "type_name": "keen::AmbientEnvironment", + "type_hash": 876159495, + "data_offset": 3 + }, + { + "name": "playbackType", + "type_name": "keen::AmbientSfxPlaybackType", + "type_hash": 812051868, + "data_offset": 4 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 5 + }, + { + "name": "ambientTagsInclude", + "type_name": "keen::AmbientMask", + "type_hash": 1661550082, + "data_offset": 6 + }, + { + "name": "ambientTagsExclude", + "type_name": "keen::AmbientMask", + "type_hash": 1661550082, + "data_offset": 7 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "soundContainerShared", + "type_name": "keen::SoundContainerShared", + "type_hash": 1319852629, + "data_offset": 32 + }, + { + "name": "soundStart", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 96 + }, + { + "name": "soundCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 104 + }, + { + "name": "debugNameEffect", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 120 + }, + { + "name": "debugNameEffectEntry", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AmbientSfxResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AmbientSfxResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 250107120, + "hash2": 2125652689, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SoundResourceReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SoundResourceReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3217593985, + "hash2": 1101660134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxCollectionResource", + "type_name_2": "AmbientSfxCollectionResource", + "qualified_name": "keen::AmbientSfxCollectionResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3489162009, + "hash2": 1266297842, + "struct_fields": [ + { + "name": "effects", + "type_name": "keen::BlobArray", + "type_hash": 250107120, + "data_offset": 0 + }, + { + "name": "loops", + "type_name": "keen::BlobArray", + "type_hash": 250107120, + "data_offset": 8 + }, + { + "name": "music", + "type_name": "keen::BlobArray", + "type_hash": 250107120, + "data_offset": 16 + }, + { + "name": "sounds", + "type_name": "keen::BlobArray", + "type_hash": 3217593985, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEventSounds", + "type_name_2": "AmbientEventSounds", + "qualified_name": "keen::AmbientEventSounds", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1843930370, + "hash2": 4061477909, + "struct_fields": [ + { + "name": "battleStartJingle", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "battleEndJingle", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "bossMusicScavenger", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "bossMusicMonstrosity", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "bossMusicFoggerHeavy", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "bossMusicFoggerMage", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "bossMusicVukahBigfoot", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "bossMusicLurchie", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "bossMusicHollow", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "bossMusicCyclops", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + }, + { + "name": "bossMusicDragon", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 160 + }, + { + "name": "bushCollision", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SoundContainerResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2297180759, + "hash2": 491680028, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceReference", + "type_name_2": "SoundContainerResourceReference", + "qualified_name": "keen::SoundContainerResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3240061633, + "hash2": 1168283961, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEventSoundsResource", + "type_name_2": "AmbientEventSoundsResource", + "qualified_name": "keen::AmbientEventSoundsResource", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2049990602, + "hash2": 119850327, + "struct_fields": [ + { + "name": "battleStartJingle", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 0 + }, + { + "name": "battleEndJingle", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 16 + }, + { + "name": "bossMusicScavenger", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 32 + }, + { + "name": "bossMusicMonstrosity", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 48 + }, + { + "name": "bossMusicFoggerHeavy", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 64 + }, + { + "name": "bossMusicFoggerMage", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 80 + }, + { + "name": "bossMusicVukahBigfoot", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 96 + }, + { + "name": "bossMusicLurchie", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 112 + }, + { + "name": "bossMusicHollow", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 128 + }, + { + "name": "bossMusicCyclops", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 144 + }, + { + "name": "bossMusicDragon", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 160 + }, + { + "name": "bushCollision", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "uint16", + "type_name_2": "uint16", + "qualified_name": "keen::uint16", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 0, + "primitive_type": "Uint16", + "hash1": 1993756229, + "hash2": 2928590578, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientParameterResource", + "type_name_2": "AmbientParameterResource", + "qualified_name": "keen::AmbientParameterResource", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 3562641517, + "hash2": 1760573176, + "struct_fields": [ + { + "name": "chanceForSilence", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "sfxLifeTimeInSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "environmentMusicFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "loopFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "musicFadeOutToBattleValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "musicFadeOutToBossValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "bossMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "bossMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "combatMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "combatMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "caveLoopsFadeInPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "caveLoopsFadeOutPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "caveMusicDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "rainIndoorFade", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "rainIndoorLoweredVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "playerIsInFogThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "startFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "stopFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "playerIsInEnvironmentThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "startEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "stopEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "baseAmbienceThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "smallEnvironmentMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "oneshotDistanceMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "temporalSmoothingSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "silenceAfterVictoryDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "fogMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "environmentMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 116 + }, + { + "name": "environmentMusicEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "fogLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "environmentLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 128 + }, + { + "name": "environmentLoopsEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + }, + { + "name": "propsNeededToEnableAmbientTag", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "pauseBetweenBushCollisionSounds", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VfxDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4249755544, + "hash2": 3510978178, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxReference", + "type_name_2": "VfxReference", + "qualified_name": "keen::VfxReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2742904987, + "hash2": 2084808283, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IngameTimeSpanReference", + "type_name_2": "IngameTimeSpanReference", + "qualified_name": "keen::IngameTimeSpanReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1082654783, + "hash2": 1094759743, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVisualEffectEntry", + "type_name_2": "AmbientVisualEffectEntry", + "qualified_name": "keen::AmbientVisualEffectEntry", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3041802213, + "hash2": 3569934856, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::IngameTimeSpanReference", + "type_hash": 1082654783, + "data_offset": 16 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVisualEffect", + "type_name_2": "AmbientVisualEffect", + "qualified_name": "keen::AmbientVisualEffect", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3477162523, + "hash2": 3560771290, + "struct_fields": [ + { + "name": "environment", + "type_name": "keen::AmbientEnvironment", + "type_hash": 876159495, + "data_offset": 0 + }, + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "inFog", + "type_name": "keen::AmbientEitherOrBoth", + "type_hash": 1476507189, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxSubDirectory", + "type_name_2": "AmbientVfxSubDirectory", + "qualified_name": "keen::AmbientVfxSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2561819755, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxDirectory", + "type_name_2": "AmbientVfxDirectory", + "qualified_name": "keen::AmbientVfxDirectory", + "referenced_type_name": "keen::AmbientVfxSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1691848025, + "hash2": 1278603829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxResource", + "type_name_2": "AmbientVfxResource", + "qualified_name": "keen::AmbientVfxResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 117492658, + "hash2": 688318595, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "environment", + "type_name": "keen::AmbientEnvironment", + "type_hash": 876159495, + "data_offset": 32 + }, + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "inFog", + "type_name": "keen::AmbientEitherOrBoth", + "type_hash": 1476507189, + "data_offset": 34 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 35 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AmbientVfxResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AmbientVfxResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3795936957, + "hash2": 1562495359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxCollectionResource", + "type_name_2": "AmbientVfxCollectionResource", + "qualified_name": "keen::AmbientVfxCollectionResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2564601570, + "hash2": 4220165595, + "struct_fields": [ + { + "name": "effects", + "type_name": "keen::BlobArray", + "type_hash": 3795936957, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AmbientEnvironment[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AmbientEnvironment", + "class_size": 256, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 843711434, + "hash2": 854623182, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEnvironmentMapResource", + "type_name_2": "AmbientEnvironmentMapResource", + "qualified_name": "keen::AmbientEnvironmentMapResource", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3452623347, + "hash2": 3436656463, + "struct_fields": [ + { + "name": "voxelIdToAmbientEnvironmentMap", + "type_name": "keen::StaticArray", + "type_hash": 843711434, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientPPPDawnDuskOffsets", + "type_name_2": "AmbientPPPDawnDuskOffsets", + "qualified_name": "keen::AmbientPPPDawnDuskOffsets", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 85611103, + "hash2": 3428042606, + "struct_fields": [ + { + "name": "nightAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "nightAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "dayAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "dayAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Color", + "type_name_2": "Color", + "qualified_name": "keen::Color", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1777952713, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientPostProcessingParameters", + "type_name_2": "AmbientPostProcessingParameters", + "qualified_name": "keen::AmbientPostProcessingParameters", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2531513239, + "hash2": 2695224780, + "struct_fields": [ + { + "name": "rainWeatherSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "nightAdaptationStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "dawnDuskOffset", + "type_name": "keen::AmbientPPPDawnDuskOffsets", + "type_hash": 85611103, + "data_offset": 8 + }, + { + "name": "deathOnlyDesaturates", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "deathScreenSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 48 + }, + { + "name": "defaultSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientPostProcessingResource", + "type_name_2": "AmbientPostProcessingResource", + "qualified_name": "keen::AmbientPostProcessingResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4057077435, + "hash2": 2655379007, + "struct_fields": [ + { + "name": "rainWeatherSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "nightAdaptationStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "nightAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "nightAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "dayAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "dayAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "deathOnlyDesaturates", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "deathScreenSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 48 + }, + { + "name": "defaultSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AmbientSfxCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3087563436, + "hash2": 4097387174, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AmbientVfxCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2886284605, + "hash2": 2362478322, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AmbientParameterResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 63802176, + "hash2": 3920533435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AmbientEnvironmentMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4230121040, + "hash2": 2583894924, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AmbientEventSoundsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4035385137, + "hash2": 1543981388, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AmbientPostProcessingResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1456041380, + "hash2": 3470173511, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientCollectionResource", + "type_name_2": "AmbientCollectionResource", + "qualified_name": "keen::AmbientCollectionResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2110614082, + "hash2": 841762653, + "struct_fields": [ + { + "name": "sfxCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3087563436, + "data_offset": 0 + }, + { + "name": "vfxCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2886284605, + "data_offset": 16 + }, + { + "name": "parameters", + "type_name": "keen::ObjectReference", + "type_hash": 63802176, + "data_offset": 32 + }, + { + "name": "mapping", + "type_name": "keen::ObjectReference", + "type_hash": 4230121040, + "data_offset": 48 + }, + { + "name": "eventSounds", + "type_name": "keen::ObjectReference", + "type_hash": 4035385137, + "data_offset": 64 + }, + { + "name": "postProcessing", + "type_name": "keen::ObjectReference", + "type_hash": 1456041380, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReasonThisSoundDoesNotPlay", + "type_name_2": "ambient.ReasonThisSoundDoesNotPlay", + "qualified_name": "keen::ambient::ReasonThisSoundDoesNotPlay", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 275419859, + "hash2": 528309864, + "struct_fields": [], + "enum_fields": [ + { + "name": "Music", + "value": 0 + }, + { + "name": "Loop", + "value": 1 + }, + { + "name": "SFX", + "value": 2 + }, + { + "name": "Environment", + "value": 3 + }, + { + "name": "CombatSituation", + "value": 4 + }, + { + "name": "TimeOfDay", + "value": 5 + }, + { + "name": "TooMuchFog", + "value": 6 + }, + { + "name": "TooLittleFog", + "value": 7 + }, + { + "name": "WorldShape", + "value": 8 + }, + { + "name": "TaggedProps", + "value": 9 + }, + { + "name": "RandomChanceParameter", + "value": 10 + }, + { + "name": "MusicQueued", + "value": 11 + }, + { + "name": "Sleeping", + "value": 12 + }, + { + "name": "SlotAlreadyFilled", + "value": 13 + }, + { + "name": "Weather", + "value": 14 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ambient::ReasonThisSoundDoesNotPlay", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 2109540720, + "hash2": 2328408582, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ReasonThisSoundDoesNotPlayMask", + "type_name_2": "ambient.ReasonThisSoundDoesNotPlayMask", + "qualified_name": "keen::ambient::ReasonThisSoundDoesNotPlayMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3974679655, + "hash2": 3993180614, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundExplanation", + "type_name_2": "ambient.SoundExplanation", + "qualified_name": "keen::ambient::SoundExplanation", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 330010248, + "hash2": 2473920280, + "struct_fields": [ + { + "name": "reason", + "type_name": "keen::ambient::ReasonThisSoundDoesNotPlayMask", + "type_hash": 3974679655, + "data_offset": 0 + }, + { + "name": "volumeCurrent", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "volumeTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "soundGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EffectsSoundReasonsDebugMessage", + "type_name_2": "ambient.EffectsSoundReasonsDebugMessage", + "qualified_name": "keen::ambient::EffectsSoundReasonsDebugMessage", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3652954366, + "hash2": 4050962008, + "struct_fields": [ + { + "name": "effectGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "explanation", + "type_name": "keen::ambient::SoundExplanation", + "type_hash": 330010248, + "data_offset": 16 + }, + { + "name": "cellIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ambient.EffectsSoundReasonsDebugMessage[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ambient::EffectsSoundReasonsDebugMessage", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3016440357, + "hash2": 174595601, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugMessageBundle", + "type_name_2": "ambient.DebugMessageBundle", + "qualified_name": "keen::ambient::DebugMessageBundle", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1386669032, + "hash2": 4011545511, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 3016440357, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BossMusicType", + "type_name_2": "BossMusicType", + "qualified_name": "keen::BossMusicType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 1538638250, + "hash2": 1382617570, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Fogger", + "value": 1 + }, + { + "name": "Mage", + "value": 2 + }, + { + "name": "Scavenger", + "value": 3 + }, + { + "name": "Vukah", + "value": 4 + }, + { + "name": "Monstrosity", + "value": 5 + }, + { + "name": "Lurchie", + "value": 6 + }, + { + "name": "Hollow", + "value": 7 + }, + { + "name": "Cyclops", + "value": 8 + }, + { + "name": "Dragon", + "value": 9 + } + ] + }, + { + "type_name_1": "Component", + "type_name_2": "ecs.Component", + "qualified_name": "keen::ecs::Component", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3031812962, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsTame", + "type_name_2": "ecs.IsTame", + "qualified_name": "keen::ecs::IsTame", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 328851642, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationLoopType", + "type_name_2": "AnimationLoopType", + "qualified_name": "keen::AnimationLoopType", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 136924602, + "hash2": 3381688395, + "struct_fields": [], + "enum_fields": [ + { + "name": "Auto", + "value": 0 + }, + { + "name": "Loop", + "value": 1 + }, + { + "name": "NoLoop", + "value": 2 + } + ] + }, + { + "type_name_1": "AnimationJointQuality", + "type_name_2": "AnimationJointQuality", + "qualified_name": "keen::AnimationJointQuality", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1732264609, + "hash2": 3001407485, + "struct_fields": [ + { + "name": "trackName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "quality", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttachmentSlot", + "type_name_2": "AttachmentSlot", + "qualified_name": "keen::AttachmentSlot", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 573301135, + "hash2": 1652338314, + "struct_fields": [], + "enum_fields": [ + { + "name": "Root", + "value": 0 + }, + { + "name": "Head", + "value": 1 + }, + { + "name": "Chest", + "value": 2 + }, + { + "name": "Pelvis", + "value": 3 + }, + { + "name": "FootL", + "value": 4 + }, + { + "name": "FootR", + "value": 5 + }, + { + "name": "FootRL", + "value": 6 + }, + { + "name": "FootRR", + "value": 7 + }, + { + "name": "HandR", + "value": 8 + }, + { + "name": "HandL", + "value": 9 + }, + { + "name": "KneeR", + "value": 10 + }, + { + "name": "KneeL", + "value": 11 + }, + { + "name": "ArmL", + "value": 12 + }, + { + "name": "Block", + "value": 13 + }, + { + "name": "Count", + "value": 14 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::AttachmentSlot", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 656454022, + "hash2": 1342284408, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttachmentSlotMask", + "type_name_2": "AttachmentSlotMask", + "qualified_name": "keen::AttachmentSlotMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3578532875, + "hash2": 2431243603, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpace", + "type_name_2": "AnimationSpace", + "qualified_name": "keen::AnimationSpace", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3419066298, + "hash2": 2484578666, + "struct_fields": [], + "enum_fields": [ + { + "name": "Local", + "value": 0 + }, + { + "name": "LocalAdd", + "value": 1 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Model", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 211222448, + "hash2": 2126651386, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHintSetEntry", + "type_name_2": "ModelHintSetEntry", + "qualified_name": "keen::ModelHintSetEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 114146778, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelHintSet", + "type_name_2": "ModelHintSet", + "qualified_name": "keen::ModelHintSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3453111666, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ModelHierarchy", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 109196461, + "hash2": 1836936033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ModelHintSet", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1503733413, + "hash2": 2292562586, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ClothCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1056388999, + "hash2": 1089620424, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AnimationJointQuality[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AnimationJointQuality", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1820802830, + "hash2": 637775283, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Animation", + "type_name_2": "Animation", + "qualified_name": "keen::Animation", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 620052996, + "hash2": 2230826251, + "struct_fields": [ + { + "name": "animation_node", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 109196461, + "data_offset": 8 + }, + { + "name": "modelHint", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 24 + }, + { + "name": "modelHintSet", + "type_name": "keen::ObjectReference", + "type_hash": 1503733413, + "data_offset": 40 + }, + { + "name": "clothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 56 + }, + { + "name": "startFrame", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "endFrame", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + }, + { + "name": "refFrame", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 80 + }, + { + "name": "space", + "type_name": "keen::AnimationSpace", + "type_hash": 3419066298, + "data_offset": 84 + }, + { + "name": "xanimScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "quality", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "qualityOverrite", + "type_name": "keen::BlobArray", + "type_hash": 1820802830, + "data_offset": 96 + }, + { + "name": "loopType", + "type_name": "keen::AnimationLoopType", + "type_hash": 136924602, + "data_offset": 104 + }, + { + "name": "autoLoopEpsilon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "loopLve", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "exportJointAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 113 + }, + { + "name": "exportLveAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 114 + }, + { + "name": "exportSequenceData", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 115 + }, + { + "name": "exportDebugData", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 116 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Animation", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4217773149, + "hash2": 3773858741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationReference", + "type_name_2": "AnimationReference", + "qualified_name": "keen::AnimationReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1913901017, + "hash2": 1442874726, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ModelHierarchyResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2078176141, + "hash2": 507037500, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationInfo", + "type_name_2": "AnimationInfo", + "qualified_name": "keen::AnimationInfo", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 225236344, + "hash2": 3088554304, + "struct_fields": [ + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "frameCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "modelHint", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 12 + }, + { + "name": "modelHintSet", + "type_name": "keen::ObjectReference", + "type_hash": 1503733413, + "data_offset": 28 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2078176141, + "data_offset": 44 + }, + { + "name": "hasLve", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "hasSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "loops", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "space", + "type_name": "keen::AnimationSpace", + "type_hash": 3419066298, + "data_offset": 63 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationConverterConfiguration", + "type_name_2": "AnimationConverterConfiguration", + "qualified_name": "keen::AnimationConverterConfiguration", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 107219346, + "hash2": 2519326842, + "struct_fields": [ + { + "name": "checkParentNames", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "checkMatrixDecomposition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Sequence", + "type_name_2": "Sequence", + "qualified_name": "keen::Sequence", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 722741735, + "hash2": 2309444803, + "struct_fields": [ + { + "name": "length", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationEventSequence", + "type_name_2": "AnimationEventSequence", + "qualified_name": "keen::AnimationEventSequence", + "referenced_type_name": "keen::Sequence", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3064128097, + "hash2": 3583232444, + "struct_fields": [ + { + "name": "hierarchyPreviewSettings", + "type_name": "keen::ObjectReference", + "type_hash": 109196461, + "data_offset": 16 + }, + { + "name": "previewClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SequenceResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2656792866, + "hash2": 3899031709, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationEventSequenceReference", + "type_name_2": "AnimationEventSequenceReference", + "qualified_name": "keen::AnimationEventSequenceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3174344190, + "hash2": 2499120534, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AnimationEventSequenceReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AnimationEventSequenceReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3438673407, + "hash2": 3896788454, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSequenceContainer", + "type_name_2": "AnimationSequenceContainer", + "qualified_name": "keen::AnimationSequenceContainer", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3101956012, + "hash2": 253187659, + "struct_fields": [ + { + "name": "sequences", + "type_name": "keen::BlobArray", + "type_hash": 3438673407, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Blend1DInterpolationCurve", + "type_name_2": "Blend1DInterpolationCurve", + "qualified_name": "keen::Blend1DInterpolationCurve", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1798092049, + "hash2": 685021271, + "struct_fields": [], + "enum_fields": [ + { + "name": "Linear", + "value": 0 + }, + { + "name": "WalkRunCurve", + "value": 1 + } + ] + }, + { + "type_name_1": "StateId", + "type_name_2": "animationgraph.StateId", + "qualified_name": "keen::animationgraph::StateId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 687403084, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputId", + "type_name_2": "animationgraph.InputId", + "qualified_name": "keen::animationgraph::InputId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2927679781, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloatInputId", + "type_name_2": "animationgraph.FloatInputId", + "qualified_name": "keen::animationgraph::FloatInputId", + "referenced_type_name": "keen::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 182124823, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolInputId", + "type_name_2": "animationgraph.BoolInputId", + "qualified_name": "keen::animationgraph::BoolInputId", + "referenced_type_name": "keen::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 126071357, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IntInputId", + "type_name_2": "animationgraph.IntInputId", + "qualified_name": "keen::animationgraph::IntInputId", + "referenced_type_name": "keen::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1608089790, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UintInputId", + "type_name_2": "animationgraph.UintInputId", + "qualified_name": "keen::animationgraph::UintInputId", + "referenced_type_name": "keen::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2256721549, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IdInputId", + "type_name_2": "animationgraph.IdInputId", + "qualified_name": "keen::animationgraph::IdInputId", + "referenced_type_name": "keen::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2189799698, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayId", + "type_name_2": "animationgraph.OverlayId", + "qualified_name": "keen::animationgraph::OverlayId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3785042161, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayContextId", + "type_name_2": "animationgraph.OverlayContextId", + "qualified_name": "keen::animationgraph::OverlayContextId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2186746610, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::StateId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 136750597, + "hash2": 2351684786, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateIdReference", + "type_name_2": "animationgraph.StateIdReference", + "qualified_name": "keen::animationgraph::StateIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 985324289, + "hash2": 3346546251, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::InputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2001857182, + "hash2": 118987128, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputIdReference", + "type_name_2": "animationgraph.InputIdReference", + "qualified_name": "keen::animationgraph::InputIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1255774938, + "hash2": 745728606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::OverlayId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3945781534, + "hash2": 2668366538, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayIdReference", + "type_name_2": "animationgraph.OverlayIdReference", + "qualified_name": "keen::animationgraph::OverlayIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2721499566, + "hash2": 634495979, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::OverlayContextId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4008760049, + "hash2": 2812488033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayContextIdReference", + "type_name_2": "animationgraph.OverlayContextIdReference", + "qualified_name": "keen::animationgraph::OverlayContextIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1928538983, + "hash2": 2456214033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateIdHash", + "type_name_2": "animationgraph.StateIdHash", + "qualified_name": "keen::animationgraph::StateIdHash", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1675294988, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputIdHash", + "type_name_2": "animationgraph.InputIdHash", + "qualified_name": "keen::animationgraph::InputIdHash", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3024022033, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationIdCollection", + "type_name_2": "animationgraph.AnimationIdCollection", + "qualified_name": "keen::animationgraph::AnimationIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3399226127, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateIdCollection", + "type_name_2": "animationgraph.StateIdCollection", + "qualified_name": "keen::animationgraph::StateIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1790960912, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputIdCollection", + "type_name_2": "animationgraph.InputIdCollection", + "qualified_name": "keen::animationgraph::InputIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 427372241, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayIdCollection", + "type_name_2": "animationgraph.OverlayIdCollection", + "qualified_name": "keen::animationgraph::OverlayIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 433377029, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayContextIdCollection", + "type_name_2": "animationgraph.OverlayContextIdCollection", + "qualified_name": "keen::animationgraph::OverlayContextIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2539751106, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationDebugEntry", + "type_name_2": "animationgraph.AnimationDebugEntry", + "qualified_name": "keen::animationgraph::AnimationDebugEntry", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2654608371, + "hash2": 2119470942, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph.AnimationDebugEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph::AnimationDebugEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3570614304, + "hash2": 1031561581, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphDebugInfo", + "type_name_2": "animationgraph.AnimationGraphDebugInfo", + "qualified_name": "keen::animationgraph::AnimationGraphDebugInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2432832573, + "hash2": 2585606032, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 3570614304, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionFlag", + "type_name_2": "animationgraph.RootMotionFlag", + "qualified_name": "keen::animationgraph::RootMotionFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 796223200, + "hash2": 3256534734, + "struct_fields": [], + "enum_fields": [ + { + "name": "Pure", + "value": 0 + }, + { + "name": "AlignToFloor", + "value": 1 + }, + { + "name": "WarpToTarget", + "value": 2 + }, + { + "name": "Ignore", + "value": 3 + }, + { + "name": "IgnoreScale", + "value": 4 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::animationgraph::RootMotionFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 527961374, + "hash2": 3997190665, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionMask", + "type_name_2": "animationgraph.RootMotionMask", + "qualified_name": "keen::animationgraph::RootMotionMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2647428094, + "hash2": 917733009, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "float2", + "type_name_2": "float2", + "qualified_name": "keen::float2", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 528874106, + "hash2": 3287445737, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Vector2", + "type_name_2": "Vector2", + "qualified_name": "keen::Vector2", + "referenced_type_name": "keen::float2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1718921069, + "hash2": 597701847, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "float3", + "type_name_2": "float3", + "qualified_name": "keen::float3", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 545651725, + "hash2": 1051515457, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "z", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NodeBase", + "type_name_2": "animationgraph.NodeBase", + "qualified_name": "keen::animationgraph::NodeBase", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2770033589, + "hash2": 2697252734, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 16 + }, + { + "name": "defaultBlendInDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "pivotOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "isIncompatibleWithOverlays", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientController", + "type_name_2": "animationgraph.AnimationSpeedGradientController", + "qualified_name": "keen::animationgraph::AnimationSpeedGradientController", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2447667665, + "hash2": 1865130147, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 0 + }, + { + "name": "inputValueA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "inputValueB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "speedFactorA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "speedFactorB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationNode", + "type_name_2": "animationgraph.AnimationNode", + "qualified_name": "keen::animationgraph::AnimationNode", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 60, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 366694814, + "hash2": 3284284894, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientNode", + "type_name_2": "animationgraph.AnimationSpeedGradientNode", + "qualified_name": "keen::animationgraph::AnimationSpeedGradientNode", + "referenced_type_name": "keen::animationgraph::AnimationNode", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2168585661, + "hash2": 3497565565, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::animationgraph::AnimationSpeedGradientController", + "type_hash": 2447667665, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendData1DBase", + "type_name_2": "animationgraph.BlendData1DBase", + "qualified_name": "keen::animationgraph::BlendData1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2734403719, + "hash2": 2479394807, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceData1DBase", + "type_name_2": "animationgraph.ChoiceData1DBase", + "qualified_name": "keen::animationgraph::ChoiceData1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1636846831, + "hash2": 2072775733, + "struct_fields": [ + { + "name": "choice", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationBlendData1D", + "type_name_2": "animationgraph.NoAnimationBlendData1D", + "qualified_name": "keen::animationgraph::NoAnimationBlendData1D", + "referenced_type_name": "keen::animationgraph::BlendData1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2980536751, + "hash2": 2466327693, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationChoiceData1D", + "type_name_2": "animationgraph.NoAnimationChoiceData1D", + "qualified_name": "keen::animationgraph::NoAnimationChoiceData1D", + "referenced_type_name": "keen::animationgraph::ChoiceData1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 515322005, + "hash2": 3504976811, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendData1D", + "type_name_2": "animationgraph.AnimationBlendData1D", + "qualified_name": "keen::animationgraph::AnimationBlendData1D", + "referenced_type_name": "keen::animationgraph::BlendData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1313321892, + "hash2": 3503405037, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationChoiceData1D", + "type_name_2": "animationgraph.AnimationChoiceData1D", + "qualified_name": "keen::animationgraph::AnimationChoiceData1D", + "referenced_type_name": "keen::animationgraph::ChoiceData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1489655740, + "hash2": 2110155679, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientBlendData1D", + "type_name_2": "animationgraph.AnimationSpeedGradientBlendData1D", + "qualified_name": "keen::animationgraph::AnimationSpeedGradientBlendData1D", + "referenced_type_name": "keen::animationgraph::AnimationBlendData1D", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1795400405, + "hash2": 3963636510, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::animationgraph::AnimationSpeedGradientController", + "type_hash": 2447667665, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientChoiceData1D", + "type_name_2": "animationgraph.AnimationSpeedGradientChoiceData1D", + "qualified_name": "keen::animationgraph::AnimationSpeedGradientChoiceData1D", + "referenced_type_name": "keen::animationgraph::AnimationChoiceData1D", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3424649507, + "hash2": 2004620137, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::animationgraph::AnimationSpeedGradientController", + "type_hash": 2447667665, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HierarchyBlendData1D", + "type_name_2": "animationgraph.HierarchyBlendData1D", + "qualified_name": "keen::animationgraph::HierarchyBlendData1D", + "referenced_type_name": "keen::animationgraph::BlendData1DBase", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3672017771, + "hash2": 758533396, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 4 + }, + { + "name": "curve", + "type_name": "keen::Blend1DInterpolationCurve", + "type_hash": 1798092049, + "data_offset": 20 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendHierarchyDataChoice1D", + "type_name_2": "animationgraph.BlendHierarchyDataChoice1D", + "qualified_name": "keen::animationgraph::BlendHierarchyDataChoice1D", + "referenced_type_name": "keen::animationgraph::ChoiceData1DBase", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1606098948, + "hash2": 1482842854, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 4 + }, + { + "name": "curve", + "type_name": "keen::Blend1DInterpolationCurve", + "type_hash": 1798092049, + "data_offset": 20 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyDataBlend1D", + "type_name_2": "animationgraph.ChoiceHierarchyDataBlend1D", + "qualified_name": "keen::animationgraph::ChoiceHierarchyDataBlend1D", + "referenced_type_name": "keen::animationgraph::BlendData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 482845556, + "hash2": 2657738878, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyDataChoice1D", + "type_name_2": "animationgraph.ChoiceHierarchyDataChoice1D", + "qualified_name": "keen::animationgraph::ChoiceHierarchyDataChoice1D", + "referenced_type_name": "keen::animationgraph::ChoiceData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3809077228, + "hash2": 1863595272, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenderAnimationReference", + "type_name_2": "animationgraph.GenderAnimationReference", + "qualified_name": "keen::animationgraph::GenderAnimationReference", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 340334190, + "hash2": 323517167, + "struct_fields": [ + { + "name": "maleAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 0 + }, + { + "name": "femaleAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificAnimationReference", + "type_name_2": "animationgraph.PrimaryItemSpecificAnimationReference", + "qualified_name": "keen::animationgraph::PrimaryItemSpecificAnimationReference", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 605498458, + "hash2": 3882658876, + "struct_fields": [ + { + "name": "unarmedAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 0 + }, + { + "name": "singleAndShieldAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 16 + }, + { + "name": "singleNoShieldAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 32 + }, + { + "name": "dualAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 48 + }, + { + "name": "twoHandedAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 64 + }, + { + "name": "bowPrimaryAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 80 + }, + { + "name": "staffPrimaryAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 96 + }, + { + "name": "wandPrimaryAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificAnimationReference", + "type_name_2": "animationgraph.SecondaryItemSpecificAnimationReference", + "qualified_name": "keen::animationgraph::SecondaryItemSpecificAnimationReference", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2899525718, + "hash2": 258771672, + "struct_fields": [ + { + "name": "bowAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 0 + }, + { + "name": "staffSecondaryAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 16 + }, + { + "name": "wandSecondaryAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificAnimationNode", + "type_name_2": "animationgraph.PrimaryItemSpecificAnimationNode", + "qualified_name": "keen::animationgraph::PrimaryItemSpecificAnimationNode", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 172, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2031410125, + "hash2": 1798680982, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 605498458, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificAnimationNode", + "type_name_2": "animationgraph.SecondaryItemSpecificAnimationNode", + "qualified_name": "keen::animationgraph::SecondaryItemSpecificAnimationNode", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1426139361, + "hash2": 2503667843, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 2899525718, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificBlend1D", + "type_name_2": "animationgraph.PrimaryItemSpecificBlend1D", + "qualified_name": "keen::animationgraph::PrimaryItemSpecificBlend1D", + "referenced_type_name": "keen::animationgraph::BlendData1DBase", + "class_size": 132, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3835188261, + "hash2": 2114037835, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 605498458, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificBlend1D", + "type_name_2": "animationgraph.SecondaryItemSpecificBlend1D", + "qualified_name": "keen::animationgraph::SecondaryItemSpecificBlend1D", + "referenced_type_name": "keen::animationgraph::BlendData1DBase", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3709699513, + "hash2": 2815584902, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 2899525718, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificChoice1D", + "type_name_2": "animationgraph.PrimaryItemSpecificChoice1D", + "qualified_name": "keen::animationgraph::PrimaryItemSpecificChoice1D", + "referenced_type_name": "keen::animationgraph::ChoiceData1DBase", + "class_size": 132, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2268698587, + "hash2": 500278185, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 605498458, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificChoice1D", + "type_name_2": "animationgraph.SecondaryItemSpecificChoice1D", + "qualified_name": "keen::animationgraph::SecondaryItemSpecificChoice1D", + "referenced_type_name": "keen::animationgraph::ChoiceData1DBase", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3785782119, + "hash2": 1451534752, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 2899525718, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VerySpecialBlockNode", + "type_name_2": "animationgraph.VerySpecialBlockNode", + "qualified_name": "keen::animationgraph::VerySpecialBlockNode", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 44, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2146967672, + "hash2": 4014934078, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 755813376, + "hash2": 1865749396, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaskedNode", + "type_name_2": "animationgraph.MaskedNode", + "qualified_name": "keen::animationgraph::MaskedNode", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1963414141, + "hash2": 3822194867, + "struct_fields": [ + { + "name": "delimiterJoint", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 44 + }, + { + "name": "delimiterInputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 52 + }, + { + "name": "lowerBodyBlendInTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "lowerBodyBlendOutTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "resetLowerBodyOnToggleOn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "upperAnims", + "type_name": "keen::ObjectReference", + "type_hash": 755813376, + "data_offset": 92 + }, + { + "name": "lowerAnims", + "type_name": "keen::ObjectReference", + "type_hash": 755813376, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Blend1D", + "type_name_2": "animationgraph.Blend1D", + "qualified_name": "keen::animationgraph::Blend1D", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4112175842, + "hash2": 1966706409, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 44 + }, + { + "name": "curve", + "type_name": "keen::Blend1DInterpolationCurve", + "type_hash": 1798092049, + "data_offset": 60 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Choice1D", + "type_name_2": "animationgraph.Choice1D", + "qualified_name": "keen::animationgraph::Choice1D", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 60, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2471823914, + "hash2": 30844677, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayerBase", + "type_name_2": "animationgraph.BlendLayerBase", + "qualified_name": "keen::animationgraph::BlendLayerBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1273995581, + "hash2": 108642760, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendLayer", + "type_name_2": "animationgraph.AnimationBlendLayer", + "qualified_name": "keen::animationgraph::AnimationBlendLayer", + "referenced_type_name": "keen::animationgraph::BlendLayerBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3940033570, + "hash2": 569289340, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HierarchyBlendLayer", + "type_name_2": "animationgraph.HierarchyBlendLayer", + "qualified_name": "keen::animationgraph::HierarchyBlendLayer", + "referenced_type_name": "keen::animationgraph::BlendLayerBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2051779747, + "hash2": 513678724, + "struct_fields": [ + { + "name": "blendHierarchy", + "type_name": "keen::animationgraph::HierarchyBlendData1D", + "type_hash": 3672017771, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyBlendLayer", + "type_name_2": "animationgraph.ChoiceHierarchyBlendLayer", + "qualified_name": "keen::animationgraph::ChoiceHierarchyBlendLayer", + "referenced_type_name": "keen::animationgraph::BlendLayerBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3323645522, + "hash2": 163377370, + "struct_fields": [ + { + "name": "choiceHierarchy", + "type_name": "keen::animationgraph::ChoiceHierarchyDataBlend1D", + "type_hash": 482845556, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificBlendLayer", + "type_name_2": "animationgraph.PrimaryItemSpecificBlendLayer", + "qualified_name": "keen::animationgraph::PrimaryItemSpecificBlendLayer", + "referenced_type_name": "keen::animationgraph::BlendLayerBase", + "class_size": 132, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3410113765, + "hash2": 3554826008, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 605498458, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificBlendLayer", + "type_name_2": "animationgraph.SecondaryItemSpecificBlendLayer", + "qualified_name": "keen::animationgraph::SecondaryItemSpecificBlendLayer", + "referenced_type_name": "keen::animationgraph::BlendLayerBase", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4042824841, + "hash2": 2522926329, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 2899525718, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayersNode", + "type_name_2": "animationgraph.BlendLayersNode", + "qualified_name": "keen::animationgraph::BlendLayersNode", + "referenced_type_name": "keen::animationgraph::NodeBase", + "class_size": 44, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 393024281, + "hash2": 4014934078, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeBaseReference", + "type_name_2": "animationgraph.NodeBaseReference", + "qualified_name": "keen::animationgraph::NodeBaseReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 796707146, + "hash2": 2938170057, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransitionBase", + "type_name_2": "animationgraph.TransitionBase", + "qualified_name": "keen::animationgraph::TransitionBase", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 203139250, + "hash2": 4152341687, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::animationgraph::NodeBaseReference", + "type_hash": 796707146, + "data_offset": 0 + }, + { + "name": "endNode", + "type_name": "keen::animationgraph::NodeBaseReference", + "type_hash": 796707146, + "data_offset": 16 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinearTransition", + "type_name_2": "animationgraph.LinearTransition", + "qualified_name": "keen::animationgraph::LinearTransition", + "referenced_type_name": "keen::animationgraph::TransitionBase", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 547961906, + "hash2": 1125443065, + "struct_fields": [ + { + "name": "sync", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationTransition", + "type_name_2": "animationgraph.AnimationTransition", + "qualified_name": "keen::animationgraph::AnimationTransition", + "referenced_type_name": "keen::animationgraph::TransitionBase", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2689396785, + "hash2": 2092475644, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 36 + }, + { + "name": "blendIn", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "blendOut", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "simultaneouslyPlayTargetAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph.NodeBaseReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph::NodeBaseReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 109517195, + "hash2": 2889835635, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayBase", + "type_name_2": "animationgraph.OverlayBase", + "qualified_name": "keen::animationgraph::OverlayBase", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3343289257, + "hash2": 2663049342, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::animationgraph::OverlayIdReference", + "type_hash": 2721499566, + "data_offset": 0 + }, + { + "name": "context", + "type_name": "keen::animationgraph::OverlayContextIdReference", + "type_hash": 1928538983, + "data_offset": 16 + }, + { + "name": "abortUnlessInNodes", + "type_name": "keen::BlobArray", + "type_hash": 109517195, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationOverlay", + "type_name_2": "animationgraph.AnimationOverlay", + "qualified_name": "keen::animationgraph::AnimationOverlay", + "referenced_type_name": "keen::animationgraph::OverlayBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1177140450, + "hash2": 2816926431, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Group", + "type_name_2": "Group", + "qualified_name": "keen::Group", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1068926009, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphDirectory", + "type_name_2": "AnimationGraphDirectory", + "qualified_name": "keen::AnimationGraphDirectory", + "referenced_type_name": "keen::Group", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2941236091, + "hash2": 4244116669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph.GenderAnimationReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph::GenderAnimationReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2719810797, + "hash2": 3264626182, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraph", + "type_name_2": "AnimationGraph", + "qualified_name": "keen::AnimationGraph", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 837638104, + "hash2": 28243225, + "struct_fields": [ + { + "name": "defaultTransitionTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "genderLookupTable", + "type_name": "keen::BlobArray", + "type_hash": 2719810797, + "data_offset": 4 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NodeId", + "type_name_2": "animation.NodeId", + "qualified_name": "keen::animation::NodeId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2333698625, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransitionBase", + "type_name_2": "animationgraph_resource.TransitionBase", + "qualified_name": "keen::animationgraph_resource::TransitionBase", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3827154015, + "hash2": 318818033, + "struct_fields": [ + { + "name": "endNodeIndex", + "type_name": "keen::animation::NodeId", + "type_hash": 2333698625, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinearTransition", + "type_name_2": "animationgraph_resource.LinearTransition", + "qualified_name": "keen::animationgraph_resource::LinearTransition", + "referenced_type_name": "keen::animationgraph_resource::TransitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1468973155, + "hash2": 2527813822, + "struct_fields": [ + { + "name": "sync", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationId", + "type_name_2": "animation.AnimationId", + "qualified_name": "keen::animation::AnimationId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 14989171, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenderSpecificAnimationIndex", + "type_name_2": "animationgraph_resource.GenderSpecificAnimationIndex", + "qualified_name": "keen::animationgraph_resource::GenderSpecificAnimationIndex", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3184341066, + "hash2": 118516331, + "struct_fields": [ + { + "name": "maleAnimation", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 0 + }, + { + "name": "femaleAnimation", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExitAnimation", + "type_name_2": "animationgraph_resource.ExitAnimation", + "qualified_name": "keen::animationgraph_resource::ExitAnimation", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2579216765, + "hash2": 312659860, + "struct_fields": [ + { + "name": "targetNodeIndex", + "type_name": "keen::animation::NodeId", + "type_hash": 2333698625, + "data_offset": 0 + }, + { + "name": "blendIn", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "blendOut", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "animationIndex", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 24 + }, + { + "name": "simultaneouslyPlayTargetAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientController", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientController", + "qualified_name": "keen::animationgraph_resource::AnimationSpeedGradientController", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3248317008, + "hash2": 1865130147, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 0 + }, + { + "name": "inputValueA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "inputValueB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "speedFactorA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "speedFactorB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph_resource.ExitAnimation[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph_resource::ExitAnimation", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 937420336, + "hash2": 1784244806, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "uint32[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::uint32", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3810745302, + "hash2": 1835616007, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeBase", + "type_name_2": "animationgraph_resource.NodeBase", + "qualified_name": "keen::animationgraph_resource::NodeBase", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3882800096, + "hash2": 339027556, + "struct_fields": [ + { + "name": "stateIdReference", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + }, + { + "name": "stateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 16 + }, + { + "name": "onExits", + "type_name": "keen::BlobArray", + "type_hash": 937420336, + "data_offset": 20 + }, + { + "name": "defaultInboundTransition", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "outgoingTransitions", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 32 + }, + { + "name": "pivotOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 40 + }, + { + "name": "isIncompatibleWithOverlays", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "graphCanBePaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 54 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationNode", + "type_name_2": "animationgraph_resource.AnimationNode", + "qualified_name": "keen::animationgraph_resource::AnimationNode", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 60, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 823173, + "hash2": 1390249871, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientNode", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientNode", + "qualified_name": "keen::animationgraph_resource::AnimationSpeedGradientNode", + "referenced_type_name": "keen::animationgraph_resource::AnimationNode", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 505108196, + "hash2": 1703299928, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::animationgraph_resource::AnimationSpeedGradientController", + "type_hash": 3248317008, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendDataFloat1DBase", + "type_name_2": "animationgraph_resource.BlendDataFloat1DBase", + "qualified_name": "keen::animationgraph_resource::BlendDataFloat1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 252607602, + "hash2": 2479394807, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendDataUint1DBase", + "type_name_2": "animationgraph_resource.BlendDataUint1DBase", + "qualified_name": "keen::animationgraph_resource::BlendDataUint1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1389045368, + "hash2": 2072775733, + "struct_fields": [ + { + "name": "choice", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationBlendDataFloat1D", + "type_name_2": "animationgraph_resource.NoAnimationBlendDataFloat1D", + "qualified_name": "keen::animationgraph_resource::NoAnimationBlendDataFloat1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 534211914, + "hash2": 3025362920, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendDataFloat1D", + "type_name_2": "animationgraph_resource.AnimationBlendDataFloat1D", + "qualified_name": "keen::animationgraph_resource::AnimationBlendDataFloat1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 366505863, + "hash2": 2446784800, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationBlendDataUint1D", + "type_name_2": "animationgraph_resource.NoAnimationBlendDataUint1D", + "qualified_name": "keen::animationgraph_resource::NoAnimationBlendDataUint1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataUint1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1660722966, + "hash2": 40938686, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendDataUint1D", + "type_name_2": "animationgraph_resource.AnimationBlendDataUint1D", + "qualified_name": "keen::animationgraph_resource::AnimationBlendDataUint1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataUint1DBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 227649485, + "hash2": 2740198902, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientBlendDataFloat1D", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientBlendDataFloat1D", + "qualified_name": "keen::animationgraph_resource::AnimationSpeedGradientBlendDataFloat1D", + "referenced_type_name": "keen::animationgraph_resource::AnimationBlendDataFloat1D", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1706010826, + "hash2": 3388685194, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::animationgraph_resource::AnimationSpeedGradientController", + "type_hash": 3248317008, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientBlendDataUint1D", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientBlendDataUint1D", + "qualified_name": "keen::animationgraph_resource::AnimationSpeedGradientBlendDataUint1D", + "referenced_type_name": "keen::animationgraph_resource::AnimationBlendDataUint1D", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3736511894, + "hash2": 269516113, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::animationgraph_resource::AnimationSpeedGradientController", + "type_hash": 3248317008, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 12, + "fields_count": 6, + "primitive_type": "BlobVariant", + "hash1": 2455450051, + "hash2": 1322769208, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1362844526, + "hash2": 2865387707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloatHierarchy1D", + "type_name_2": "animationgraph_resource.FloatHierarchy1D", + "qualified_name": "keen::animationgraph_resource::FloatHierarchy1D", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2225728813, + "hash2": 4202008927, + "struct_fields": [ + { + "name": "floatInputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 0 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "curve", + "type_name": "keen::Blend1DInterpolationCurve", + "type_hash": 1798092049, + "data_offset": 17 + }, + { + "name": "blendData", + "type_name": "keen::BlobArray>", + "type_hash": 1362844526, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::animationgraph_resource::BlendDataUint1DBase", + "class_size": 12, + "fields_count": 6, + "primitive_type": "BlobVariant", + "hash1": 590180279, + "hash2": 1139093795, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3230644964, + "hash2": 2478428108, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UintHierarchy1D", + "type_name_2": "animationgraph_resource.UintHierarchy1D", + "qualified_name": "keen::animationgraph_resource::UintHierarchy1D", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 260587697, + "hash2": 1717050648, + "struct_fields": [ + { + "name": "uintInputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 0 + }, + { + "name": "blendData", + "type_name": "keen::BlobArray>", + "type_hash": 3230644964, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatHierarchyBlendDataFloat1D", + "type_name_2": "animationgraph_resource.FloatHierarchyBlendDataFloat1D", + "qualified_name": "keen::animationgraph_resource::FloatHierarchyBlendDataFloat1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4004926810, + "hash2": 3775304603, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::FloatHierarchy1D", + "type_hash": 2225728813, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatHierarchyBlendDataUint1D", + "type_name_2": "animationgraph_resource.FloatHierarchyBlendDataUint1D", + "qualified_name": "keen::animationgraph_resource::FloatHierarchyBlendDataUint1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataUint1DBase", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3275555622, + "hash2": 537801661, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::FloatHierarchy1D", + "type_hash": 2225728813, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UintHierarchyBlendDataFloat1D", + "type_name_2": "animationgraph_resource.UintHierarchyBlendDataFloat1D", + "qualified_name": "keen::animationgraph_resource::UintHierarchyBlendDataFloat1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 342993774, + "hash2": 4067702754, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::UintHierarchy1D", + "type_hash": 260587697, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UintHierarchyBlendDataUint1D", + "type_name_2": "animationgraph_resource.UintHierarchyBlendDataUint1D", + "qualified_name": "keen::animationgraph_resource::UintHierarchyBlendDataUint1D", + "referenced_type_name": "keen::animationgraph_resource::BlendDataUint1DBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1493410090, + "hash2": 140512706, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::UintHierarchy1D", + "type_hash": 260587697, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendFloat1DNode", + "type_name_2": "animationgraph_resource.BlendFloat1DNode", + "qualified_name": "keen::animationgraph_resource::BlendFloat1DNode", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 84, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4200074935, + "hash2": 2293798436, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::FloatHierarchy1D", + "type_hash": 2225728813, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendUint1DNode", + "type_name_2": "animationgraph_resource.BlendUint1DNode", + "qualified_name": "keen::animationgraph_resource::BlendUint1DNode", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2520806341, + "hash2": 4066697919, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::UintHierarchy1D", + "type_hash": 260587697, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayerBase", + "type_name_2": "animationgraph_resource.BlendLayerBase", + "qualified_name": "keen::animationgraph_resource::BlendLayerBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3347580096, + "hash2": 108642760, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendLayer", + "type_name_2": "animationgraph_resource.AnimationBlendLayer", + "qualified_name": "keen::animationgraph_resource::AnimationBlendLayer", + "referenced_type_name": "keen::animationgraph_resource::BlendLayerBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3017805413, + "hash2": 286291224, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendHierarchyBlendLayer", + "type_name_2": "animationgraph_resource.BlendHierarchyBlendLayer", + "qualified_name": "keen::animationgraph_resource::BlendHierarchyBlendLayer", + "referenced_type_name": "keen::animationgraph_resource::BlendLayerBase", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1892785095, + "hash2": 3589069325, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::FloatHierarchy1D", + "type_hash": 2225728813, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyBlendLayer", + "type_name_2": "animationgraph_resource.ChoiceHierarchyBlendLayer", + "qualified_name": "keen::animationgraph_resource::ChoiceHierarchyBlendLayer", + "referenced_type_name": "keen::animationgraph_resource::BlendLayerBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 966278961, + "hash2": 2193295194, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::animationgraph_resource::UintHierarchy1D", + "type_hash": 260587697, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::animationgraph_resource::BlendLayerBase", + "class_size": 12, + "fields_count": 4, + "primitive_type": "BlobVariant", + "hash1": 1874192333, + "hash2": 3255127539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3800899564, + "hash2": 2778296495, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayersNode", + "type_name_2": "animationgraph_resource.BlendLayersNode", + "qualified_name": "keen::animationgraph_resource::BlendLayersNode", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3793627638, + "hash2": 2637534118, + "struct_fields": [ + { + "name": "blendLayers", + "type_name": "keen::BlobArray>", + "type_hash": 3800899564, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2481011153, + "hash2": 3568128625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeBaseReference", + "type_name_2": "animationgraph_resource.NodeBaseReference", + "qualified_name": "keen::animationgraph_resource::NodeBaseReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1546949693, + "hash2": 2377064492, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VerySpecialBlockNode", + "type_name_2": "animationgraph_resource.VerySpecialBlockNode", + "qualified_name": "keen::animationgraph_resource::VerySpecialBlockNode", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 116, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1462033013, + "hash2": 2484096275, + "struct_fields": [ + { + "name": "delimiterJoint", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 56 + }, + { + "name": "blockAnimData", + "type_name": "keen::animationgraph_resource::UintHierarchy1D", + "type_hash": 260587697, + "data_offset": 64 + }, + { + "name": "moveAnimData", + "type_name": "keen::animationgraph_resource::FloatHierarchy1D", + "type_hash": 2225728813, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaskedNode", + "type_name_2": "animationgraph_resource.MaskedNode", + "qualified_name": "keen::animationgraph_resource::MaskedNode", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 120, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1153404780, + "hash2": 1941594873, + "struct_fields": [ + { + "name": "delimiterJoint", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 56 + }, + { + "name": "delimiterInputName", + "type_name": "keen::animationgraph::InputIdReference", + "type_hash": 1255774938, + "data_offset": 64 + }, + { + "name": "lowerBodyBlendInTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "lowerBodyBlendOutTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "resetLowerBodyOnToggleOn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "upperLayers", + "type_name": "keen::BlobArray>", + "type_hash": 3800899564, + "data_offset": 100 + }, + { + "name": "lowerLayers", + "type_name": "keen::BlobArray>", + "type_hash": 3800899564, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationListEntry", + "type_name_2": "animationgraph_resource.AnimationListEntry", + "qualified_name": "keen::animationgraph_resource::AnimationListEntry", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2878159735, + "hash2": 4033902044, + "struct_fields": [ + { + "name": "reference", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "frameCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "hasLve", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "hasSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 29 + }, + { + "name": "loops", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 30 + }, + { + "name": "space", + "type_name": "keen::AnimationSpace", + "type_hash": 3419066298, + "data_offset": 31 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph_resource.AnimationListEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph_resource::AnimationListEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 786384948, + "hash2": 2973433143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationListResource", + "type_name_2": "animationgraph_resource.AnimationListResource", + "qualified_name": "keen::animationgraph_resource::AnimationListResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 992142473, + "hash2": 546781148, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::BlobArray", + "type_hash": 786384948, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph.StateIdHash[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph::StateIdHash", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1037187269, + "hash2": 1214239949, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayBase", + "type_name_2": "animationgraph_resource.OverlayBase", + "qualified_name": "keen::animationgraph_resource::OverlayBase", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1087339214, + "hash2": 2005005996, + "struct_fields": [ + { + "name": "stateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::animationgraph::OverlayIdReference", + "type_hash": 2721499566, + "data_offset": 4 + }, + { + "name": "context", + "type_name": "keen::animationgraph::OverlayContextIdReference", + "type_hash": 1928538983, + "data_offset": 20 + }, + { + "name": "abortUnlessInNodes", + "type_name": "keen::BlobArray", + "type_hash": 1037187269, + "data_offset": 36 + }, + { + "name": "dbgName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationOverlay", + "type_name_2": "animationgraph_resource.AnimationOverlay", + "qualified_name": "keen::animationgraph_resource::AnimationOverlay", + "referenced_type_name": "keen::animationgraph_resource::OverlayBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1939144635, + "hash2": 850645252, + "struct_fields": [ + { + "name": "maleAnimationIndex", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 52 + }, + { + "name": "femaleAnimationIndex", + "type_name": "keen::animation::AnimationId", + "type_hash": 14989171, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationJointIndex", + "type_name_2": "AnimationJointIndex", + "qualified_name": "keen::AnimationJointIndex", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1359281740, + "hash2": 301491076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::animationgraph_resource::NodeBase", + "class_size": 12, + "fields_count": 8, + "primitive_type": "BlobVariant", + "hash1": 2912883749, + "hash2": 2604116831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 745280780, + "hash2": 489715123, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::animationgraph_resource::TransitionBase", + "class_size": 12, + "fields_count": 2, + "primitive_type": "BlobVariant", + "hash1": 3303516016, + "hash2": 765383625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3860871671, + "hash2": 86161299, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::animationgraph_resource::OverlayBase", + "class_size": 12, + "fields_count": 2, + "primitive_type": "BlobVariant", + "hash1": 3887169905, + "hash2": 3066641650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2316231594, + "hash2": 3712973474, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationJointIndex[14]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AnimationJointIndex", + "class_size": 28, + "fields_count": 14, + "primitive_type": "StaticArray", + "hash1": 3194336511, + "hash2": 4276927312, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderClothColliderResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 319145755, + "hash2": 1201816641, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResource", + "type_name_2": "AnimationGraphResource", + "qualified_name": "keen::AnimationGraphResource", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1067498876, + "hash2": 844979653, + "struct_fields": [ + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2078176141, + "data_offset": 4 + }, + { + "name": "nodes", + "type_name": "keen::BlobArray>", + "type_hash": 745280780, + "data_offset": 20 + }, + { + "name": "animations", + "type_name": "keen::BlobArray", + "type_hash": 786384948, + "data_offset": 28 + }, + { + "name": "transitions", + "type_name": "keen::BlobArray>", + "type_hash": 3860871671, + "data_offset": 36 + }, + { + "name": "overlays", + "type_name": "keen::BlobArray>", + "type_hash": 2316231594, + "data_offset": 44 + }, + { + "name": "globalOverlay", + "type_name": "keen::animationgraph_resource::UintHierarchy1D", + "type_hash": 260587697, + "data_offset": 52 + }, + { + "name": "slotBoneIndexMapping", + "type_name": "keen::StaticArray", + "type_hash": 3194336511, + "data_offset": 76 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 319145755, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AnimationGraph", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 921543191, + "hash2": 3759795271, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphReference", + "type_name_2": "AnimationGraphReference", + "qualified_name": "keen::AnimationGraphReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2973042517, + "hash2": 3553036224, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInputBase", + "type_name_2": "AnimationGraphInputBase", + "qualified_name": "keen::AnimationGraphInputBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3464993209, + "hash2": 2992840414, + "struct_fields": [ + { + "name": "hash", + "type_name": "keen::animationgraph::InputIdHash", + "type_hash": 3024022033, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphFloatInput", + "type_name_2": "AnimationGraphFloatInput", + "qualified_name": "keen::AnimationGraphFloatInput", + "referenced_type_name": "keen::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 534328038, + "hash2": 533355805, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphUintInput", + "type_name_2": "AnimationGraphUintInput", + "qualified_name": "keen::AnimationGraphUintInput", + "referenced_type_name": "keen::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 237921164, + "hash2": 3145504943, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphBoolInput", + "type_name_2": "AnimationGraphBoolInput", + "qualified_name": "keen::AnimationGraphBoolInput", + "referenced_type_name": "keen::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1171150972, + "hash2": 1553514536, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphIntInput", + "type_name_2": "AnimationGraphIntInput", + "qualified_name": "keen::AnimationGraphIntInput", + "referenced_type_name": "keen::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3427657279, + "hash2": 1069669463, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphIdInput", + "type_name_2": "AnimationGraphIdInput", + "qualified_name": "keen::AnimationGraphIdInput", + "referenced_type_name": "keen::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1070169851, + "hash2": 164503147, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldPosition", + "type_name_2": "WorldPosition", + "qualified_name": "keen::WorldPosition", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4187772213, + "hash2": 3280565889, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 8 + }, + { + "name": "z", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Quaternion", + "type_name_2": "Quaternion", + "qualified_name": "keen::Quaternion", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4246145582, + "hash2": 1217013962, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "z", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "w", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldTransform", + "type_name_2": "WorldTransform", + "qualified_name": "keen::WorldTransform", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 43420914, + "hash2": 1220901575, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 24 + }, + { + "name": "scale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WarpToTargetConfig", + "type_name_2": "WarpToTargetConfig", + "qualified_name": "keen::WarpToTargetConfig", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2119358398, + "hash2": 1806439543, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "isTargetSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "abortWarpAboveMaxScale", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionConfig", + "type_name_2": "RootMotionConfig", + "qualified_name": "keen::RootMotionConfig", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2761273910, + "hash2": 964128482, + "struct_fields": [ + { + "name": "movementMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "warpToTargetConfig", + "type_name": "keen::WarpToTargetConfig", + "type_hash": 2119358398, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OverlayInputsEventType", + "type_name_2": "OverlayInputsEventType", + "qualified_name": "keen::OverlayInputsEventType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4186023305, + "hash2": 3079482342, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Start", + "value": 1 + }, + { + "name": "Abort", + "value": 2 + } + ] + }, + { + "type_name_1": "OverlayInputsEvent", + "type_name_2": "OverlayInputsEvent", + "qualified_name": "keen::OverlayInputsEvent", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2750088801, + "hash2": 2106590496, + "struct_fields": [ + { + "name": "animationStateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 0 + }, + { + "name": "jointId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::OverlayInputsEventType", + "type_hash": 4186023305, + "data_offset": 8 + }, + { + "name": "changeCounter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphFloatInput[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AnimationGraphFloatInput", + "class_size": 64, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 624131926, + "hash2": 729979121, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphUintInput[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AnimationGraphUintInput", + "class_size": 64, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1867379924, + "hash2": 3898113305, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphBoolInput[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AnimationGraphBoolInput", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3782497214, + "hash2": 2990201810, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphIntInput[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AnimationGraphIntInput", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 1581307975, + "hash2": 4213763958, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphIdInput[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AnimationGraphIdInput", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3178757907, + "hash2": 1067757968, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "OverlayInputsEvent[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::OverlayInputsEvent", + "class_size": 60, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3449043878, + "hash2": 1857999459, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInputs", + "type_name_2": "AnimationGraphInputs", + "qualified_name": "keen::AnimationGraphInputs", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3429421677, + "hash2": 3104558421, + "struct_fields": [ + { + "name": "floatInputs", + "type_name": "keen::StaticArray", + "type_hash": 624131926, + "data_offset": 0 + }, + { + "name": "uintInputs", + "type_name": "keen::StaticArray", + "type_hash": 1867379924, + "data_offset": 64 + }, + { + "name": "boolInputs", + "type_name": "keen::StaticArray", + "type_hash": 3782497214, + "data_offset": 128 + }, + { + "name": "intInputs", + "type_name": "keen::StaticArray", + "type_hash": 1581307975, + "data_offset": 144 + }, + { + "name": "idInputs", + "type_name": "keen::StaticArray", + "type_hash": 3178757907, + "data_offset": 160 + }, + { + "name": "overlayInputs", + "type_name": "keen::StaticArray", + "type_hash": 3449043878, + "data_offset": 176 + }, + { + "name": "rootMotionConfig", + "type_name": "keen::RootMotionConfig", + "type_hash": 2761273910, + "data_offset": 240 + }, + { + "name": "currentTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimGraphPreviewEventType", + "type_name_2": "AnimGraphPreviewEventType", + "qualified_name": "keen::AnimGraphPreviewEventType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 4145488853, + "hash2": 3334085899, + "struct_fields": [], + "enum_fields": [ + { + "name": "Node", + "value": 0 + }, + { + "name": "Overlay", + "value": 1 + } + ] + }, + { + "type_name_1": "AnimGraphPreviewSeqenceEntry", + "type_name_2": "AnimGraphPreviewSeqenceEntry", + "qualified_name": "keen::AnimGraphPreviewSeqenceEntry", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2829874899, + "hash2": 3576603061, + "struct_fields": [ + { + "name": "eventType", + "type_name": "keen::AnimGraphPreviewEventType", + "type_hash": 4145488853, + "data_offset": 0 + }, + { + "name": "timeFromStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "selectedIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AnimGraphPreviewSeqenceEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AnimGraphPreviewSeqenceEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2468581266, + "hash2": 3681435676, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimGraphPreviewSeqence", + "type_name_2": "AnimGraphPreviewSeqence", + "qualified_name": "keen::AnimGraphPreviewSeqence", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 862929445, + "hash2": 3851071995, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 2468581266, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph.StateIdReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph::StateIdReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1190204276, + "hash2": 1384155462, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph.InputIdReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph::InputIdReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1667947601, + "hash2": 3419573540, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "animationgraph.OverlayIdReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::animationgraph::OverlayIdReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1987765625, + "hash2": 1786098435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInfo", + "type_name_2": "AnimationGraphInfo", + "qualified_name": "keen::AnimationGraphInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 856304676, + "hash2": 2840249568, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::BlobArray", + "type_hash": 1190204276, + "data_offset": 0 + }, + { + "name": "floatInputs", + "type_name": "keen::BlobArray", + "type_hash": 1667947601, + "data_offset": 8 + }, + { + "name": "uintInputs", + "type_name": "keen::BlobArray", + "type_hash": 1667947601, + "data_offset": 16 + }, + { + "name": "boolInputs", + "type_name": "keen::BlobArray", + "type_hash": 1667947601, + "data_offset": 24 + }, + { + "name": "overlays", + "type_name": "keen::BlobArray", + "type_hash": 1987765625, + "data_offset": 32 + }, + { + "name": "modelHierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2078176141, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlendMode", + "type_name_2": "anim_graph.LayerBlendMode", + "qualified_name": "keen::anim_graph::LayerBlendMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1439950155, + "hash2": 2114314577, + "struct_fields": [], + "enum_fields": [ + { + "name": "Override", + "value": 0 + }, + { + "name": "Additive", + "value": 1 + } + ] + }, + { + "type_name_1": "AdditiveType", + "type_name_2": "anim_graph.AdditiveType", + "qualified_name": "keen::anim_graph::AdditiveType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 106786204, + "hash2": 2182093239, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Additive_LocalSpace", + "value": 1 + } + ] + }, + { + "type_name_1": "TransitionRootMotionMode", + "type_name_2": "anim_graph.TransitionRootMotionMode", + "qualified_name": "keen::anim_graph::TransitionRootMotionMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3449826738, + "hash2": 433756765, + "struct_fields": [], + "enum_fields": [ + { + "name": "BlendRootMotions", + "value": 0 + }, + { + "name": "UseRootMotionFromIncomingState", + "value": 1 + }, + { + "name": "UseRootMotionFromDestinationState", + "value": 2 + }, + { + "name": "UseRootMotionFromHighestWeight", + "value": 3 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::BoneMask", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2902608281, + "hash2": 1373295621, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlendOptions", + "type_name_2": "anim_graph.LayerBlendOptions", + "qualified_name": "keen::anim_graph::LayerBlendOptions", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 867324550, + "hash2": 868080209, + "struct_fields": [ + { + "name": "blendMode", + "type_name": "keen::anim_graph::LayerBlendMode", + "type_hash": 1439950155, + "data_offset": 0 + }, + { + "name": "boneMask", + "type_name": "keen::ObjectReference", + "type_hash": 2902608281, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoneMask", + "type_name_2": "anim_graph.BoneMask", + "qualified_name": "keen::anim_graph::BoneMask", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 84944446, + "hash2": 2256285785, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 109196461, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoneMaskEntry", + "type_name_2": "anim_graph.BoneMaskEntry", + "qualified_name": "keen::anim_graph::BoneMaskEntry", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2405249318, + "hash2": 1215842349, + "struct_fields": [ + { + "name": "boneName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "anim_graph.BoneMaskEntryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::anim_graph::BoneMaskEntryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3073126967, + "hash2": 4205136226, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoneMaskResource", + "type_name_2": "anim_graph.BoneMaskResource", + "qualified_name": "keen::anim_graph::BoneMaskResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2296579526, + "hash2": 3801633762, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 3073126967, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoneMaskEntryResource", + "type_name_2": "anim_graph.BoneMaskEntryResource", + "qualified_name": "keen::anim_graph::BoneMaskEntryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3271776702, + "hash2": 1727391613, + "struct_fields": [ + { + "name": "boneIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::FloatInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3262133754, + "hash2": 1017171227, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedController", + "type_name_2": "anim_graph.AnimationSpeedController", + "qualified_name": "keen::anim_graph::AnimationSpeedController", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1087261429, + "hash2": 1823234316, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ObjectReference", + "type_hash": 3262133754, + "data_offset": 0 + }, + { + "name": "inputHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "inputValueA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "inputValueB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "speedFactorA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "speedFactorB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenderMappingEntry", + "type_name_2": "anim_graph.GenderMappingEntry", + "qualified_name": "keen::anim_graph::GenderMappingEntry", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2845672315, + "hash2": 2203595055, + "struct_fields": [ + { + "name": "maleAnimation", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "femaleAnimation", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DataType", + "type_name_2": "anim_graph.tool_graph.DataType", + "qualified_name": "keen::anim_graph::tool_graph::DataType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 1508206197, + "hash2": 1082449827, + "struct_fields": [], + "enum_fields": [ + { + "name": "Pose", + "value": 0 + }, + { + "name": "Float", + "value": 1 + }, + { + "name": "Int", + "value": 2 + }, + { + "name": "Bool", + "value": 3 + }, + { + "name": "ID", + "value": 4 + } + ] + }, + { + "type_name_1": "GraphParameterBase", + "type_name_2": "anim_graph.tool_graph.GraphParameterBase", + "qualified_name": "keen::anim_graph::tool_graph::GraphParameterBase", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3056619075, + "hash2": 495633083, + "struct_fields": [ + { + "name": "inputId", + "type_name": "keen::ObjectReference", + "type_hash": 2001857182, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGraphParameter", + "type_name_2": "anim_graph.tool_graph.FloatGraphParameter", + "qualified_name": "keen::anim_graph::tool_graph::FloatGraphParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3644248622, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IntGraphParameter", + "type_name_2": "anim_graph.tool_graph.IntGraphParameter", + "qualified_name": "keen::anim_graph::tool_graph::IntGraphParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2166330345, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolGraphParameter", + "type_name_2": "anim_graph.tool_graph.BoolGraphParameter", + "qualified_name": "keen::anim_graph::tool_graph::BoolGraphParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 808613798, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IDGraphParameterValue", + "type_name_2": "anim_graph.tool_graph.IDGraphParameterValue", + "qualified_name": "keen::anim_graph::tool_graph::IDGraphParameterValue", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3186176528, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IDGraphParameter", + "type_name_2": "anim_graph.tool_graph.IDGraphParameter", + "qualified_name": "keen::anim_graph::tool_graph::IDGraphParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2729453075, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphParameterSet", + "type_name_2": "anim_graph.tool_graph.GraphParameterSet", + "qualified_name": "keen::anim_graph::tool_graph::GraphParameterSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1072156838, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PinBase", + "type_name_2": "anim_graph.tool_graph.PinBase", + "qualified_name": "keen::anim_graph::tool_graph::PinBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3982521097, + "hash2": 597136646, + "struct_fields": [ + { + "name": "dataType", + "type_name": "keen::anim_graph::tool_graph::DataType", + "type_hash": 1508206197, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InputPin", + "type_name_2": "anim_graph.tool_graph.InputPin", + "qualified_name": "keen::anim_graph::tool_graph::InputPin", + "referenced_type_name": "keen::anim_graph::tool_graph::PinBase", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1360598762, + "hash2": 1493133950, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OutputPin", + "type_name_2": "anim_graph.tool_graph.OutputPin", + "qualified_name": "keen::anim_graph::tool_graph::OutputPin", + "referenced_type_name": "keen::anim_graph::tool_graph::PinBase", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 813585227, + "hash2": 1493133950, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::OutputPin", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3415543884, + "hash2": 4103607263, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::InputPin", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2885094617, + "hash2": 2283257268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Link", + "type_name_2": "anim_graph.tool_graph.Link", + "qualified_name": "keen::anim_graph::tool_graph::Link", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1299617953, + "hash2": 4138681031, + "struct_fields": [ + { + "name": "sourcePin", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 0 + }, + { + "name": "targetPin", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorGraphBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 885381926, + "hash2": 2572742650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EditorNodeBase", + "type_name_2": "anim_graph.tool_graph.EditorNodeBase", + "qualified_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1143301577, + "hash2": 1731458297, + "struct_fields": [ + { + "name": "uiPosition", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + }, + { + "name": "secondaryGraph", + "type_name": "keen::ObjectReference", + "type_hash": 885381926, + "data_offset": 8 + }, + { + "name": "childGraph", + "type_name": "keen::ObjectReference", + "type_hash": 885381926, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatParameter", + "type_name_2": "anim_graph.tool_graph.FloatParameter", + "qualified_name": "keen::anim_graph::tool_graph::FloatParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 45642072, + "hash2": 3833056939, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3262133754, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatConstant", + "type_name_2": "anim_graph.tool_graph.FloatConstant", + "qualified_name": "keen::anim_graph::tool_graph::FloatConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2150981245, + "hash2": 3599927588, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatAdd", + "type_name_2": "anim_graph.tool_graph.FloatAdd", + "qualified_name": "keen::anim_graph::tool_graph::FloatAdd", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2196185836, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatSubtract", + "type_name_2": "anim_graph.tool_graph.FloatSubtract", + "qualified_name": "keen::anim_graph::tool_graph::FloatSubtract", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3349578185, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatMultiply", + "type_name_2": "anim_graph.tool_graph.FloatMultiply", + "qualified_name": "keen::anim_graph::tool_graph::FloatMultiply", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1376520957, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThan", + "type_name_2": "anim_graph.tool_graph.FloatGreaterThan", + "qualified_name": "keen::anim_graph::tool_graph::FloatGreaterThan", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2785029430, + "hash2": 3686831967, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThan", + "type_name_2": "anim_graph.tool_graph.FloatLessThan", + "qualified_name": "keen::anim_graph::tool_graph::FloatLessThan", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3312163067, + "hash2": 3686831967, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEquals", + "type_name_2": "anim_graph.tool_graph.FloatEquals", + "qualified_name": "keen::anim_graph::tool_graph::FloatEquals", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2305250188, + "hash2": 3306545286, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThanConstant", + "type_name_2": "anim_graph.tool_graph.FloatGreaterThanConstant", + "qualified_name": "keen::anim_graph::tool_graph::FloatGreaterThanConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2246310158, + "hash2": 1945815560, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 60 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThanConstant", + "type_name_2": "anim_graph.tool_graph.FloatLessThanConstant", + "qualified_name": "keen::anim_graph::tool_graph::FloatLessThanConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3917643471, + "hash2": 1945815560, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 60 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEqualsConstant", + "type_name_2": "anim_graph.tool_graph.FloatEqualsConstant", + "qualified_name": "keen::anim_graph::tool_graph::FloatEqualsConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1834416552, + "hash2": 2318611985, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 60 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatDivide", + "type_name_2": "anim_graph.tool_graph.FloatDivide", + "qualified_name": "keen::anim_graph::tool_graph::FloatDivide", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3276531864, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseBase", + "type_name_2": "anim_graph.tool_graph.SelectPoseBase", + "qualified_name": "keen::anim_graph::tool_graph::SelectPoseBase", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 848099009, + "hash2": 3596895848, + "struct_fields": [ + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 40 + }, + { + "name": "blendTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseByBool", + "type_name_2": "anim_graph.tool_graph.SelectPoseByBool", + "qualified_name": "keen::anim_graph::tool_graph::SelectPoseByBool", + "referenced_type_name": "keen::anim_graph::tool_graph::SelectPoseBase", + "class_size": 92, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2050934273, + "hash2": 440944908, + "struct_fields": [ + { + "name": "poseA", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 60 + }, + { + "name": "poseB", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseByBoolParameters", + "type_name_2": "anim_graph.tool_graph.SelectPoseByBoolParameters", + "qualified_name": "keen::anim_graph::tool_graph::SelectPoseByBoolParameters", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3826450965, + "hash2": 2161559550, + "struct_fields": [ + { + "name": "selectA", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatRange", + "type_name_2": "FloatRange", + "qualified_name": "keen::FloatRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 839205009, + "hash2": 3748655000, + "struct_fields": [ + { + "name": "minValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatRemap", + "type_name_2": "anim_graph.tool_graph.FloatRemap", + "qualified_name": "keen::anim_graph::tool_graph::FloatRemap", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2217606318, + "hash2": 1136180533, + "struct_fields": [ + { + "name": "inputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 40 + }, + { + "name": "outputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 48 + }, + { + "name": "inputValue", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::IdInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3038064531, + "hash2": 1723397181, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IDParameter", + "type_name_2": "anim_graph.tool_graph.IDParameter", + "qualified_name": "keen::anim_graph::tool_graph::IDParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1598652215, + "hash2": 2255422167, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3038064531, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDConstant", + "type_name_2": "anim_graph.tool_graph.IDConstant", + "qualified_name": "keen::anim_graph::tool_graph::IDConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1321646124, + "hash2": 826424812, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 136750597, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDEquals", + "type_name_2": "anim_graph.tool_graph.IDEquals", + "qualified_name": "keen::anim_graph::tool_graph::IDEquals", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 760603625, + "hash2": 70242104, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "b", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDParameterEqualsConstant", + "type_name_2": "anim_graph.tool_graph.IDParameterEqualsConstant", + "qualified_name": "keen::anim_graph::tool_graph::IDParameterEqualsConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3653359994, + "hash2": 1841722988, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3038064531, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 136750597, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDEqualsConstant", + "type_name_2": "anim_graph.tool_graph.IDEqualsConstant", + "qualified_name": "keen::anim_graph::tool_graph::IDEqualsConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2984911281, + "hash2": 1960442482, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 136750597, + "data_offset": 72 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::IntInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3350655449, + "hash2": 3598886896, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IntParameter", + "type_name_2": "anim_graph.tool_graph.IntParameter", + "qualified_name": "keen::anim_graph::tool_graph::IntParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3828865665, + "hash2": 892444590, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3350655449, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntConstant", + "type_name_2": "anim_graph.tool_graph.IntConstant", + "qualified_name": "keen::anim_graph::tool_graph::IntConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1022985214, + "hash2": 740280734, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEquals", + "type_name_2": "anim_graph.tool_graph.IntEquals", + "qualified_name": "keen::anim_graph::tool_graph::IntEquals", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2343191963, + "hash2": 70242104, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "b", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEqualsConstant", + "type_name_2": "anim_graph.tool_graph.IntEqualsConstant", + "qualified_name": "keen::anim_graph::tool_graph::IntEqualsConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 76, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1249774255, + "hash2": 807019480, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + }, + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsOverlayActive", + "type_name_2": "anim_graph.tool_graph.IsOverlayActive", + "qualified_name": "keen::anim_graph::tool_graph::IsOverlayActive", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 731841429, + "hash2": 480968606, + "struct_fields": [ + { + "name": "active", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 3945781534, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::BoolInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1687621450, + "hash2": 1684738517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolParameter", + "type_name_2": "anim_graph.tool_graph.BoolParameter", + "qualified_name": "keen::anim_graph::tool_graph::BoolParameter", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2932535760, + "hash2": 1156331303, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 1687621450, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolConstant", + "type_name_2": "anim_graph.tool_graph.BoolConstant", + "qualified_name": "keen::anim_graph::tool_graph::BoolConstant", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 955054309, + "hash2": 1969409965, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolNegate", + "type_name_2": "anim_graph.tool_graph.BoolNegate", + "qualified_name": "keen::anim_graph::tool_graph::BoolNegate", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3002003227, + "hash2": 348217549, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolAnd", + "type_name_2": "anim_graph.tool_graph.BoolAnd", + "qualified_name": "keen::anim_graph::tool_graph::BoolAnd", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3019939430, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolOr", + "type_name_2": "anim_graph.tool_graph.BoolOr", + "qualified_name": "keen::anim_graph::tool_graph::BoolOr", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3869914692, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolEquals", + "type_name_2": "anim_graph.tool_graph.BoolEquals", + "qualified_name": "keen::anim_graph::tool_graph::BoolEquals", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2072136276, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlend", + "type_name_2": "anim_graph.tool_graph.LayerBlend", + "qualified_name": "keen::anim_graph::tool_graph::LayerBlend", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 108, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1272703341, + "hash2": 2684313122, + "struct_fields": [ + { + "name": "blendOptions", + "type_name": "keen::anim_graph::LayerBlendOptions", + "type_hash": 867324550, + "data_offset": 40 + }, + { + "name": "base", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 60 + }, + { + "name": "layer", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 76 + }, + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SaveCachedPose", + "type_name_2": "anim_graph.tool_graph.SaveCachedPose", + "qualified_name": "keen::anim_graph::tool_graph::SaveCachedPose", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 878640271, + "hash2": 1245557348, + "struct_fields": [ + { + "name": "inputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::SaveCachedPose", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3151086270, + "hash2": 1500691983, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UseCachedPose", + "type_name_2": "anim_graph.tool_graph.UseCachedPose", + "qualified_name": "keen::anim_graph::tool_graph::UseCachedPose", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3257310491, + "hash2": 1969109982, + "struct_fields": [ + { + "name": "pose", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 40 + }, + { + "name": "cachedPose", + "type_name": "keen::ObjectReference", + "type_hash": 3151086270, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PoseResult", + "type_name_2": "anim_graph.tool_graph.PoseResult", + "qualified_name": "keen::anim_graph::tool_graph::PoseResult", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3348153429, + "hash2": 1245557348, + "struct_fields": [ + { + "name": "inputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachine", + "type_name_2": "anim_graph.tool_graph.StateMachine", + "qualified_name": "keen::anim_graph::tool_graph::StateMachine", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3987342919, + "hash2": 419697542, + "struct_fields": [ + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineState", + "type_name_2": "anim_graph.tool_graph.StateMachineState", + "qualified_name": "keen::anim_graph::tool_graph::StateMachineState", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1922069480, + "hash2": 3439444645, + "struct_fields": [ + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "startAtRandomTime", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransitionAdvancedOptions", + "type_name_2": "anim_graph.tool_graph.TransitionAdvancedOptions", + "qualified_name": "keen::anim_graph::tool_graph::TransitionAdvancedOptions", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3523331246, + "hash2": 818791774, + "struct_fields": [ + { + "name": "priority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "rootMotionMode", + "type_name": "keen::anim_graph::TransitionRootMotionMode", + "type_hash": 3449826738, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::StateMachineState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1381578613, + "hash2": 2663028620, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineTransition", + "type_name_2": "anim_graph.tool_graph.StateMachineTransition", + "qualified_name": "keen::anim_graph::tool_graph::StateMachineTransition", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3280196008, + "hash2": 1438136032, + "struct_fields": [ + { + "name": "fromState", + "type_name": "keen::ObjectReference", + "type_hash": 1381578613, + "data_offset": 40 + }, + { + "name": "toState", + "type_name": "keen::ObjectReference", + "type_hash": 1381578613, + "data_offset": 56 + }, + { + "name": "autoTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "advancedOptions", + "type_name": "keen::anim_graph::tool_graph::TransitionAdvancedOptions", + "type_hash": 3523331246, + "data_offset": 80 + }, + { + "name": "isGlobalTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 82 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGlobalTransitions", + "type_name_2": "anim_graph.tool_graph.StateMachineGlobalTransitions", + "qualified_name": "keen::anim_graph::tool_graph::StateMachineGlobalTransitions", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4026781628, + "hash2": 459363323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateInputPin", + "type_name_2": "anim_graph.tool_graph.StateInputPin", + "qualified_name": "keen::anim_graph::tool_graph::StateInputPin", + "referenced_type_name": "keen::anim_graph::tool_graph::InputPin", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4148250713, + "hash2": 414892807, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ObjectReference", + "type_hash": 1381578613, + "data_offset": 4 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rootMotionMode", + "type_name": "keen::anim_graph::TransitionRootMotionMode", + "type_hash": 3449826738, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGlobalTransitionParameters", + "type_name_2": "anim_graph.tool_graph.StateMachineGlobalTransitionParameters", + "qualified_name": "keen::anim_graph::tool_graph::StateMachineGlobalTransitionParameters", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 604775087, + "hash2": 459363323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AdditiveAnimationParameters", + "type_name_2": "anim_graph.tool_graph.AdditiveAnimationParameters", + "qualified_name": "keen::anim_graph::tool_graph::AdditiveAnimationParameters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3576988857, + "hash2": 2162963113, + "struct_fields": [ + { + "name": "useCurrentAnimationAsReference", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationClipSampler", + "type_name_2": "anim_graph.tool_graph.AnimationClipSampler", + "qualified_name": "keen::anim_graph::tool_graph::AnimationClipSampler", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 132, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1746920025, + "hash2": 1538132872, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 40 + }, + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + }, + { + "name": "additiveType", + "type_name": "keen::anim_graph::AdditiveType", + "type_hash": 106786204, + "data_offset": 72 + }, + { + "name": "additiveParameters", + "type_name": "keen::anim_graph::tool_graph::AdditiveAnimationParameters", + "type_hash": 3576988857, + "data_offset": 76 + }, + { + "name": "speedController", + "type_name": "keen::anim_graph::AnimationSpeedController", + "type_hash": 1087261429, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EmptyAdditivePose", + "type_name_2": "anim_graph.tool_graph.EmptyAdditivePose", + "qualified_name": "keen::anim_graph::tool_graph::EmptyAdditivePose", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3438494747, + "hash2": 419697542, + "struct_fields": [ + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1DItem", + "type_name_2": "anim_graph.tool_graph.BlendSpace_1DItem", + "qualified_name": "keen::anim_graph::tool_graph::BlendSpace_1DItem", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 528848221, + "hash2": 611079066, + "struct_fields": [ + { + "name": "parameterValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1D", + "type_name_2": "anim_graph.tool_graph.BlendSpace_1D", + "qualified_name": "keen::anim_graph::tool_graph::BlendSpace_1D", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 136, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4103786814, + "hash2": 1788286502, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3262133754, + "data_offset": 40 + }, + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 3415543884, + "data_offset": 56 + }, + { + "name": "additiveType", + "type_name": "keen::anim_graph::AdditiveType", + "type_hash": 106786204, + "data_offset": 72 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 74 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 76 + }, + { + "name": "interpolateInputValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "interpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "speedController", + "type_name": "keen::anim_graph::AnimationSpeedController", + "type_hash": 1087261429, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransitionParameters", + "type_name_2": "anim_graph.tool_graph.TransitionParameters", + "qualified_name": "keen::anim_graph::tool_graph::TransitionParameters", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2689018442, + "hash2": 4043276848, + "struct_fields": [ + { + "name": "condition", + "type_name": "keen::ObjectReference", + "type_hash": 2885094617, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorNodeBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 961617408, + "hash2": 1902997268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EditorGraphBase", + "type_name_2": "anim_graph.tool_graph.EditorGraphBase", + "qualified_name": "keen::anim_graph::tool_graph::EditorGraphBase", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2468775585, + "hash2": 3961090492, + "struct_fields": [ + { + "name": "parentNode", + "type_name": "keen::ObjectReference", + "type_hash": 961617408, + "data_offset": 0 + }, + { + "name": "mostSignificantNode", + "type_name": "keen::ObjectReference", + "type_hash": 961617408, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlowGraph", + "type_name_2": "anim_graph.tool_graph.FlowGraph", + "qualified_name": "keen::anim_graph::tool_graph::FlowGraph", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorGraphBase", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4250842639, + "hash2": 1669572974, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::StateMachineGlobalTransitions", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3549391841, + "hash2": 1818535011, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGraph", + "type_name_2": "anim_graph.tool_graph.StateMachineGraph", + "qualified_name": "keen::anim_graph::tool_graph::StateMachineGraph", + "referenced_type_name": "keen::anim_graph::tool_graph::EditorGraphBase", + "class_size": 48, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 778850261, + "hash2": 3493827856, + "struct_fields": [ + { + "name": "globalTransitions", + "type_name": "keen::ObjectReference", + "type_hash": 3549391841, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendTree", + "type_name_2": "anim_graph.tool_graph.BlendTree", + "qualified_name": "keen::anim_graph::tool_graph::BlendTree", + "referenced_type_name": "keen::anim_graph::tool_graph::FlowGraph", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1824955592, + "hash2": 2935420268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExpressionTree", + "type_name_2": "anim_graph.tool_graph.ExpressionTree", + "qualified_name": "keen::anim_graph::tool_graph::ExpressionTree", + "referenced_type_name": "keen::anim_graph::tool_graph::FlowGraph", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1697451327, + "hash2": 2935420268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultIdInputIdValue", + "type_name_2": "anim_graph.tool_graph.DefaultIdInputIdValue", + "qualified_name": "keen::anim_graph::tool_graph::DefaultIdInputIdValue", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 100699669, + "hash2": 586966640, + "struct_fields": [ + { + "name": "key", + "type_name": "keen::ObjectReference", + "type_hash": 3038064531, + "data_offset": 0 + }, + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 136750597, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ModelBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3682419159, + "hash2": 4256831174, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PreviewModelReference", + "type_name_2": "PreviewModelReference", + "qualified_name": "keen::PreviewModelReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 906459204, + "hash2": 137162132, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PreviewModelReference[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::PreviewModelReference", + "class_size": 256, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 4224307517, + "hash2": 2501255053, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PreviewModelArray", + "type_name_2": "PreviewModelArray", + "qualified_name": "keen::PreviewModelArray", + "referenced_type_name": "keen::StaticArray", + "class_size": 256, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 205171444, + "hash2": 794518384, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::BlendTree", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3959158285, + "hash2": 3691809260, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "anim_graph.GenderMappingEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::anim_graph::GenderMappingEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4079794190, + "hash2": 2098081900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraph2_0", + "type_name_2": "anim_graph.tool_graph.AnimationGraph2_0", + "qualified_name": "keen::anim_graph::tool_graph::AnimationGraph2_0", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1749327072, + "hash2": 762062280, + "struct_fields": [ + { + "name": "rootGraph", + "type_name": "keen::ObjectReference", + "type_hash": 3959158285, + "data_offset": 0 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 16 + }, + { + "name": "previewModelOverride", + "type_name": "keen::PreviewModelArray", + "type_hash": 205171444, + "data_offset": 32 + }, + { + "name": "genderPrefix", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 288 + }, + { + "name": "genderMapping", + "type_name": "keen::BlobArray", + "type_hash": 4079794190, + "data_offset": 296 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationNodeType", + "type_name_2": "anim_graph.runtime_graph.AnimationNodeType", + "qualified_name": "keen::anim_graph::runtime_graph::AnimationNodeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 37, + "primitive_type": "Enum", + "hash1": 3775589587, + "hash2": 2502670306, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "PoseResult", + "value": 1 + }, + { + "name": "SampleAnimationClip", + "value": 2 + }, + { + "name": "EmptyAdditivePose", + "value": 3 + }, + { + "name": "BlendSpace_1D", + "value": 4 + }, + { + "name": "FloatConstant", + "value": 5 + }, + { + "name": "FloatParameter", + "value": 6 + }, + { + "name": "IntConstant", + "value": 7 + }, + { + "name": "IntParameter", + "value": 8 + }, + { + "name": "BoolConstant", + "value": 9 + }, + { + "name": "BoolParameter", + "value": 10 + }, + { + "name": "IDConstant", + "value": 11 + }, + { + "name": "IDParameter", + "value": 12 + }, + { + "name": "StateMachine", + "value": 13 + }, + { + "name": "StateMachineState", + "value": 14 + }, + { + "name": "StateMachineTransition", + "value": 15 + }, + { + "name": "BoolNegate", + "value": 16 + }, + { + "name": "BoolAnd", + "value": 17 + }, + { + "name": "BoolOr", + "value": 18 + }, + { + "name": "BoolEquals", + "value": 19 + }, + { + "name": "FloatRemap", + "value": 20 + }, + { + "name": "FloatGreaterThan", + "value": 21 + }, + { + "name": "FloatLessThan", + "value": 22 + }, + { + "name": "FloatEquals", + "value": 23 + }, + { + "name": "FloatGreaterThanConstant", + "value": 24 + }, + { + "name": "FloatLessThanConstant", + "value": 25 + }, + { + "name": "FloatEqualsConstant", + "value": 26 + }, + { + "name": "SelectPoseByBool", + "value": 27 + }, + { + "name": "IdEquals", + "value": 28 + }, + { + "name": "IdEqualsConstant", + "value": 29 + }, + { + "name": "IdParameterEqualsConstant", + "value": 30 + }, + { + "name": "IntEquals", + "value": 31 + }, + { + "name": "IntEqualsConstant", + "value": 32 + }, + { + "name": "IsOverlayActive", + "value": 33 + }, + { + "name": "LayerBlend", + "value": 34 + }, + { + "name": "SaveCachedPose", + "value": 35 + }, + { + "name": "UseCachedPose", + "value": 36 + } + ] + }, + { + "type_name_1": "AnimationNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.AnimationNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 653065734, + "hash2": 941459465, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::anim_graph::runtime_graph::AnimationNodeType", + "type_hash": 3775589587, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PoseResultNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.PoseResultNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::PoseResultNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3129317798, + "hash2": 266177249, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::JointAnimation", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2916915735, + "hash2": 1058815261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RootMotionAnimation", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2062952775, + "hash2": 989596211, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AnimationSequenceContainer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3536552983, + "hash2": 742434661, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SampleAnimationClipNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.SampleAnimationClipNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::SampleAnimationClipNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 172, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1653153154, + "hash2": 3635307315, + "struct_fields": [ + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "animationDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "animation", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 16 + }, + { + "name": "animationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 32 + }, + { + "name": "rootMotionAnimation", + "type_name": "keen::ObjectReference", + "type_hash": 2062952775, + "data_offset": 48 + }, + { + "name": "rootMotionAnimationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 2062952775, + "data_offset": 64 + }, + { + "name": "eventSequenceContainer", + "type_name": "keen::ObjectReference", + "type_hash": 3536552983, + "data_offset": 80 + }, + { + "name": "additiveType", + "type_name": "keen::anim_graph::AdditiveType", + "type_hash": 106786204, + "data_offset": 96 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 100 + }, + { + "name": "additiveReferenceAnimationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 116 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 132 + }, + { + "name": "animationContentAdditive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 134 + }, + { + "name": "speedController", + "type_name": "keen::anim_graph::AnimationSpeedController", + "type_hash": 1087261429, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EmptyAdditivePoseNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.EmptyAdditivePoseNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::EmptyAdditivePoseNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1924079676, + "hash2": 1207962167, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1DItemRuntime", + "type_name_2": "anim_graph.runtime_graph.BlendSpace_1DItemRuntime", + "qualified_name": "keen::anim_graph::runtime_graph::BlendSpace_1DItemRuntime", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 626704909, + "hash2": 354564560, + "struct_fields": [ + { + "name": "parameterValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "animationDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "animation", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 8 + }, + { + "name": "animationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 24 + }, + { + "name": "eventSequenceContainer", + "type_name": "keen::ObjectReference", + "type_hash": 3536552983, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "anim_graph.runtime_graph.BlendSpace_1DItemRuntime[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::anim_graph::runtime_graph::BlendSpace_1DItemRuntime", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4257885450, + "hash2": 1389351650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1DNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BlendSpace_1DNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::BlendSpace_1DNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 116, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3465852465, + "hash2": 74511787, + "struct_fields": [ + { + "name": "items", + "type_name": "keen::BlobArray", + "type_hash": 4257885450, + "data_offset": 8 + }, + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3262133754, + "data_offset": 16 + }, + { + "name": "additiveType", + "type_name": "keen::anim_graph::AdditiveType", + "type_hash": 106786204, + "data_offset": 32 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 36 + }, + { + "name": "additiveReferenceAnimationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 2916915735, + "data_offset": 52 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 68 + }, + { + "name": "speedController", + "type_name": "keen::anim_graph::AnimationSpeedController", + "type_hash": 1087261429, + "data_offset": 72 + }, + { + "name": "interpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 108 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "animationContentAdditive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 113 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlendNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.LayerBlendNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::LayerBlendNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1939862642, + "hash2": 1326012899, + "struct_fields": [ + { + "name": "base", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "layer", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "blendOptions", + "type_name": "keen::anim_graph::LayerBlendOptions", + "type_hash": 867324550, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SaveCachedPoseNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.SaveCachedPoseNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::SaveCachedPoseNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3215198440, + "hash2": 3941028496, + "struct_fields": [ + { + "name": "inputPose", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UseCachedPoseNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.UseCachedPoseNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::UseCachedPoseNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3473022980, + "hash2": 4070768546, + "struct_fields": [ + { + "name": "cachedPose", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 745720334, + "hash2": 2912028204, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatParameterNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatParameterNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2309108387, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGlobalTransitionInfo", + "type_name_2": "anim_graph.runtime_graph.StateMachineGlobalTransitionInfo", + "qualified_name": "keen::anim_graph::runtime_graph::StateMachineGlobalTransitionInfo", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3054425945, + "hash2": 3335310804, + "struct_fields": [ + { + "name": "toState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "rootMotionMode", + "type_name": "keen::anim_graph::TransitionRootMotionMode", + "type_hash": 3449826738, + "data_offset": 8 + }, + { + "name": "conditionNode", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "HashKey32[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::HashKey32", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 516548357, + "hash2": 779105718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "anim_graph.runtime_graph.StateMachineGlobalTransitionInfo[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::anim_graph::runtime_graph::StateMachineGlobalTransitionInfo", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 4258043682, + "hash2": 794459426, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.StateMachineNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::StateMachineNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 556, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3126626820, + "hash2": 2687489502, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::BlobArray", + "type_hash": 516548357, + "data_offset": 8 + }, + { + "name": "transitions", + "type_name": "keen::BlobArray", + "type_hash": 516548357, + "data_offset": 16 + }, + { + "name": "entryState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 24 + }, + { + "name": "globalTransitions", + "type_name": "keen::StaticArray", + "type_hash": 4258043682, + "data_offset": 28 + }, + { + "name": "numGlobalTransitions", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 540 + }, + { + "name": "globalTransitionNodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 544 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 548 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineStateNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.StateMachineStateNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::StateMachineStateNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1569225967, + "hash2": 3020456148, + "struct_fields": [ + { + "name": "poseResult", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 12 + }, + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "startAtRandomTime", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineTransitionNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.StateMachineTransitionNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::StateMachineTransitionNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2022220923, + "hash2": 3406530616, + "struct_fields": [ + { + "name": "fromState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "toState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "priority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "conditionNode", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 24 + }, + { + "name": "rootMotionMode", + "type_name": "keen::anim_graph::TransitionRootMotionMode", + "type_hash": 3449826738, + "data_offset": 28 + }, + { + "name": "autoTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 29 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IntConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1733791965, + "hash2": 2147351018, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntParameterNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IntParameterNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1790670878, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::BoolConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 425240606, + "hash2": 249490533, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolParameterNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::BoolParameterNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1263016691, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IDConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IDConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3266202163, + "hash2": 995874768, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IDParameterNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IDParameterNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1570323924, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolNegateNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolNegateNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::BoolNegateNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 120687416, + "hash2": 266177249, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolAndNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolAndNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::BoolAndNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2191909365, + "hash2": 355788923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolOrNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolOrNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::BoolOrNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3212343563, + "hash2": 355788923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolEqualsNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::BoolEqualsNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2713440127, + "hash2": 355788923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatRemapNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatRemapNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatRemapNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 841833261, + "hash2": 3642376648, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "inputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 12 + }, + { + "name": "outputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThanNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatGreaterThanNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatGreaterThanNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1910009281, + "hash2": 3044100663, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThanNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatLessThanNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatLessThanNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 429630924, + "hash2": 3044100663, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatEqualsNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatEqualsNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3580465711, + "hash2": 1303027646, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThanConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatGreaterThanConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatGreaterThanConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3888320549, + "hash2": 1942136200, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThanConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatLessThanConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatLessThanConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1877712164, + "hash2": 1942136200, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatEqualsConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::FloatEqualsConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3634951679, + "hash2": 1757887889, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseByBoolNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.SelectPoseByBoolNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::SelectPoseByBoolNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4045557986, + "hash2": 2369953013, + "struct_fields": [ + { + "name": "inputA", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "inputB", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "selectA", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "blendTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdParameterEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IdParameterEqualsConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IdParameterEqualsConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1788552865, + "hash2": 2931021917, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IdEqualsNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IdEqualsNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2586957150, + "hash2": 770598912, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "b", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IdEqualsConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IdEqualsConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2421958762, + "hash2": 2716115073, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "comparatorValue", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntEqualsNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IntEqualsNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 475289560, + "hash2": 770598912, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "b", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntEqualsConstantNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IntEqualsConstantNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2227196664, + "hash2": 1830900013, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "comparatorValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsOverlayActiveNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IsOverlayActiveNodeDefinition", + "qualified_name": "keen::anim_graph::runtime_graph::IsOverlayActiveNodeDefinition", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3617885482, + "hash2": 3039084605, + "struct_fields": [ + { + "name": "overlay", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParameterList", + "type_name_2": "anim_graph.runtime_graph.ParameterList", + "qualified_name": "keen::anim_graph::runtime_graph::ParameterList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 528881734, + "hash2": 4265857677, + "struct_fields": [ + { + "name": "parameterIds", + "type_name": "keen::BlobArray", + "type_hash": 516548357, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 37, + "primitive_type": "BlobVariant", + "hash1": 3456411533, + "hash2": 3021454962, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1616871586, + "hash2": 3549015557, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResource2_0", + "type_name_2": "anim_graph.runtime_graph.AnimationGraphResource2_0", + "qualified_name": "keen::anim_graph::runtime_graph::AnimationGraphResource2_0", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2739209486, + "hash2": 4195002253, + "struct_fields": [ + { + "name": "floatParameters", + "type_name": "keen::anim_graph::runtime_graph::ParameterList", + "type_hash": 528881734, + "data_offset": 0 + }, + { + "name": "uintParameters", + "type_name": "keen::anim_graph::runtime_graph::ParameterList", + "type_hash": 528881734, + "data_offset": 8 + }, + { + "name": "intParameters", + "type_name": "keen::anim_graph::runtime_graph::ParameterList", + "type_hash": 528881734, + "data_offset": 16 + }, + { + "name": "boolParameters", + "type_name": "keen::anim_graph::runtime_graph::ParameterList", + "type_hash": 528881734, + "data_offset": 24 + }, + { + "name": "idParameters", + "type_name": "keen::anim_graph::runtime_graph::ParameterList", + "type_hash": 528881734, + "data_offset": 32 + }, + { + "name": "usedInputIds", + "type_name": "keen::anim_graph::runtime_graph::ParameterList", + "type_hash": 528881734, + "data_offset": 40 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2078176141, + "data_offset": 48 + }, + { + "name": "slotBoneIndexMapping", + "type_name": "keen::StaticArray", + "type_hash": 3194336511, + "data_offset": 64 + }, + { + "name": "rootNode", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 92 + }, + { + "name": "nodeDefinitions", + "type_name": "keen::BlobArray>", + "type_hash": 1616871586, + "data_offset": 96 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 319145755, + "data_offset": 104 + }, + { + "name": "genderMapping", + "type_name": "keen::BlobArray", + "type_hash": 4079794190, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUpdateMessage", + "type_name_2": "anim_graph.GameUpdateMessage", + "qualified_name": "keen::anim_graph::GameUpdateMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 513073506, + "hash2": 3506709543, + "struct_fields": [ + { + "name": "isPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugEntityChangedMessage", + "type_name_2": "anim_graph.DebugEntityChangedMessage", + "qualified_name": "keen::anim_graph::DebugEntityChangedMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4075800307, + "hash2": 3534500872, + "struct_fields": [ + { + "name": "selectedEntity", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugMessageBase", + "type_name_2": "anim_graph.debug.DebugMessageBase", + "qualified_name": "keen::anim_graph::debug::DebugMessageBase", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3429358664, + "hash2": 1414035646, + "struct_fields": [ + { + "name": "timestamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "rootGraphGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + }, + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NodeStateUpdateMessage", + "type_name_2": "anim_graph.debug.NodeStateUpdateMessage", + "qualified_name": "keen::anim_graph::debug::NodeStateUpdateMessage", + "referenced_type_name": "keen::anim_graph::debug::DebugMessageBase", + "class_size": 72, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3408841952, + "hash2": 2488041178, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 48 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "isFrozen", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "progress", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "timeSpentInNode", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "fromState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 64 + }, + { + "name": "toState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "HashKey32[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::HashKey32", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1492151024, + "hash2": 3300373017, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2094507411, + "hash2": 4129452846, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "sint32[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::sint32", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2611671171, + "hash2": 2591606130, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "bool[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::bool", + "class_size": 8, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3501660774, + "hash2": 3094329776, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputIdMessage", + "type_name_2": "anim_graph.debug.InputIdMessage", + "qualified_name": "keen::anim_graph::debug::InputIdMessage", + "referenced_type_name": "keen::anim_graph::debug::DebugMessageBase", + "class_size": 312, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2113754775, + "hash2": 4244163742, + "struct_fields": [ + { + "name": "floatInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 48 + }, + { + "name": "floatInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 80 + }, + { + "name": "intInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 112 + }, + { + "name": "intInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 144 + }, + { + "name": "boolInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 176 + }, + { + "name": "boolInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 208 + }, + { + "name": "idInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 216 + }, + { + "name": "idInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 248 + }, + { + "name": "overlayIdValues", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 280 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Vector3", + "type_name_2": "Vector3", + "qualified_name": "keen::Vector3", + "referenced_type_name": "keen::float3", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1702143450, + "hash2": 1619358015, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationJoint", + "type_name_2": "AnimationJoint", + "qualified_name": "keen::AnimationJoint", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3096870448, + "hash2": 3788003652, + "struct_fields": [ + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "scale", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationJoint[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AnimationJoint", + "class_size": 12288, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 4160119175, + "hash2": 4223977092, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityJointMessage", + "type_name_2": "anim_graph.debug.EntityJointMessage", + "qualified_name": "keen::anim_graph::debug::EntityJointMessage", + "referenced_type_name": "keen::anim_graph::debug::DebugMessageBase", + "class_size": 12352, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2905512715, + "hash2": 3019132022, + "struct_fields": [ + { + "name": "animationJoints", + "type_name": "keen::StaticArray", + "type_hash": 4160119175, + "data_offset": 48 + }, + { + "name": "numJoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12336 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInstanceInfoMessage", + "type_name_2": "anim_graph.debug.AnimationGraphInstanceInfoMessage", + "qualified_name": "keen::anim_graph::debug::AnimationGraphInstanceInfoMessage", + "referenced_type_name": "keen::anim_graph::debug::DebugMessageBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 427094697, + "hash2": 4086488817, + "struct_fields": [ + { + "name": "retriggerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint32[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint32", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 293919601, + "hash2": 911432482, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint8[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint8", + "class_size": 8, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 191080542, + "hash2": 4091878108, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineMessage", + "type_name_2": "anim_graph.debug.StateMachineMessage", + "qualified_name": "keen::anim_graph::debug::StateMachineMessage", + "referenced_type_name": "keen::anim_graph::debug::DebugMessageBase", + "class_size": 200, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2970251484, + "hash2": 1411746668, + "struct_fields": [ + { + "name": "stateMachineId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "fromState", + "type_name": "keen::StaticArray", + "type_hash": 293919601, + "data_offset": 52 + }, + { + "name": "toState", + "type_name": "keen::StaticArray", + "type_hash": 293919601, + "data_offset": 84 + }, + { + "name": "duration", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 116 + }, + { + "name": "elapsed", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 148 + }, + { + "name": "priority", + "type_name": "keen::StaticArray", + "type_hash": 191080542, + "data_offset": 180 + }, + { + "name": "frozen", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 188 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationGraphResource2_0", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4853629, + "hash2": 2008372056, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResourceReference", + "type_name_2": "AnimationGraphResourceReference", + "qualified_name": "keen::AnimationGraphResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2275211985, + "hash2": 1975125002, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JointAnimationHeader", + "type_name_2": "JointAnimationHeader", + "qualified_name": "keen::JointAnimationHeader", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3102957557, + "hash2": 2245630093, + "struct_fields": [ + { + "name": "dataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "startTime", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "endTime", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "usedOrientationJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "nonConstOrientationJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "usedPositionJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "nonConstPositionJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "usedScaleJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "nonConstScaleJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContentHash", + "type_name_2": "ContentHash", + "qualified_name": "keen::ContentHash", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2543063895, + "hash2": 2999359784, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "hash0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "hash1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "hash2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "uint64", + "type_name_2": "uint64", + "qualified_name": "keen::uint64", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 0, + "primitive_type": "Uint64", + "hash1": 4074328080, + "hash2": 2929723411, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "JointAnimationHeader[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::JointAnimationHeader", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3857700152, + "hash2": 3308825618, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ContentCategory", + "type_name_2": "ContentCategory", + "qualified_name": "keen::ContentCategory", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 411116987, + "hash2": 1676300463, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Cloth", + "value": 1 + }, + { + "name": "Texture", + "value": 2 + }, + { + "name": "Mesh", + "value": 3 + }, + { + "name": "Material", + "value": 4 + }, + { + "name": "Render", + "value": 5 + }, + { + "name": "ShaderCode", + "value": 6 + }, + { + "name": "Vfx", + "value": 7 + }, + { + "name": "Voxel", + "value": 8 + }, + { + "name": "Scene", + "value": 9 + }, + { + "name": "Font", + "value": 10 + }, + { + "name": "Sound", + "value": 11 + }, + { + "name": "UiTexture", + "value": 12 + }, + { + "name": "Loca", + "value": 13 + }, + { + "name": "Animation", + "value": 14 + } + ] + }, + { + "type_name_1": "JointAnimation", + "type_name_2": "JointAnimation", + "qualified_name": "keen::JointAnimation", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3416059840, + "hash2": 2540854145, + "struct_fields": [ + { + "name": "hierarchyHash", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "positionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "positionTangent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "scaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "headers", + "type_name": "keen::BlobArray", + "type_hash": 3857700152, + "data_offset": 20 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 28 + }, + { + "name": "fps", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 44 + }, + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 46 + }, + { + "name": "jointCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 48 + }, + { + "name": "flags", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 50 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JointAnimationReference", + "type_name_2": "JointAnimationReference", + "qualified_name": "keen::JointAnimationReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2415978205, + "hash2": 1846765758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "float4", + "type_name_2": "float4", + "qualified_name": "keen::float4", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 428208392, + "hash2": 1217013962, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "z", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "w", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LveOrientationKey", + "type_name_2": "LveOrientationKey", + "qualified_name": "keen::LveOrientationKey", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1727474946, + "hash2": 2597360607, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "values", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 4 + }, + { + "name": "controls", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LvePositionKey", + "type_name_2": "LvePositionKey", + "qualified_name": "keen::LvePositionKey", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2345564851, + "hash2": 1780973315, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "values", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "controls", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "crc32", + "type_name_2": "crc32", + "qualified_name": "keen::crc32", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2540444413, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LveOrientationKey[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LveOrientationKey", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3012135675, + "hash2": 2085716617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LvePositionKey[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LvePositionKey", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1612606578, + "hash2": 4164654425, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LveAnimation", + "type_name_2": "LveAnimation", + "qualified_name": "keen::LveAnimation", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3031192943, + "hash2": 1511775400, + "struct_fields": [ + { + "name": "trackName", + "type_name": "keen::crc32", + "type_hash": 2540444413, + "data_offset": 0 + }, + { + "name": "orientationKeys", + "type_name": "keen::BlobArray", + "type_hash": 3012135675, + "data_offset": 4 + }, + { + "name": "positionKeys", + "type_name": "keen::BlobArray", + "type_hash": 1612606578, + "data_offset": 12 + }, + { + "name": "startToEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "fps", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 32 + }, + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 34 + }, + { + "name": "flags", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "float4[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::float4", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1626894823, + "hash2": 3411774419, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "float3[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::float3", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1594178228, + "hash2": 3105847268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionAnimation", + "type_name_2": "RootMotionAnimation", + "qualified_name": "keen::RootMotionAnimation", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2520500118, + "hash2": 3866879764, + "struct_fields": [ + { + "name": "orientations", + "type_name": "keen::BlobArray", + "type_hash": 1626894823, + "data_offset": 0 + }, + { + "name": "positions", + "type_name": "keen::BlobArray", + "type_hash": 1594178228, + "data_offset": 8 + }, + { + "name": "startToEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "fps", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 28 + }, + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 30 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsTypeName", + "type_name_2": "DsTypeName", + "qualified_name": "keen::DsTypeName", + "referenced_type_name": "keen::string", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3022401076, + "hash2": 58040744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorRgb", + "type_name_2": "ColorRgb", + "qualified_name": "keen::ColorRgb", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1807719120, + "hash2": 3649230166, + "struct_fields": [ + { + "name": "red", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "green", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "blue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HdrColorRgb", + "type_name_2": "HdrColorRgb", + "qualified_name": "keen::HdrColorRgb", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 834010998, + "hash2": 2783971183, + "struct_fields": [ + { + "name": "red", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "green", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "blue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LanguageId", + "type_name_2": "LanguageId", + "qualified_name": "keen::LanguageId", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 36, + "primitive_type": "Enum", + "hash1": 1258678121, + "hash2": 127519499, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "En_Us", + "value": 1 + }, + { + "name": "En_Gb", + "value": 2 + }, + { + "name": "De_De", + "value": 3 + }, + { + "name": "Nl_Nl", + "value": 4 + }, + { + "name": "Fr_Fr", + "value": 5 + }, + { + "name": "It_It", + "value": 6 + }, + { + "name": "Es_Es", + "value": 7 + }, + { + "name": "Es_Mx", + "value": 8 + }, + { + "name": "Ru_Ru", + "value": 9 + }, + { + "name": "Pl_Pl", + "value": 10 + }, + { + "name": "Ja_Jp", + "value": 11 + }, + { + "name": "Id_Id", + "value": 12 + }, + { + "name": "Ko_Kr", + "value": 13 + }, + { + "name": "Ms_My", + "value": 14 + }, + { + "name": "Pt_Pt", + "value": 15 + }, + { + "name": "Pt_Br", + "value": 16 + }, + { + "name": "Th_Th", + "value": 17 + }, + { + "name": "Tr_Tr", + "value": 18 + }, + { + "name": "Vi_Vn", + "value": 19 + }, + { + "name": "Zh_Cn", + "value": 20 + }, + { + "name": "Zh_Tw", + "value": 21 + }, + { + "name": "Fr_Ca", + "value": 22 + }, + { + "name": "Es_419", + "value": 23 + }, + { + "name": "Bg_Bg", + "value": 24 + }, + { + "name": "Cs_Cz", + "value": 25 + }, + { + "name": "Da_Dk", + "value": 26 + }, + { + "name": "Fi_Fi", + "value": 27 + }, + { + "name": "El_Gr", + "value": 28 + }, + { + "name": "Hu_Hu", + "value": 29 + }, + { + "name": "No_No", + "value": 30 + }, + { + "name": "Nb_No", + "value": 31 + }, + { + "name": "Ro_Ro", + "value": 32 + }, + { + "name": "Sv_Se", + "value": 33 + }, + { + "name": "Uk_Ua", + "value": 34 + }, + { + "name": "Count", + "value": 35 + } + ] + }, + { + "type_name_1": "TextureType", + "type_name_2": "TextureType", + "qualified_name": "keen::TextureType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 698929185, + "hash2": 2882288044, + "struct_fields": [], + "enum_fields": [ + { + "name": "Texture1D", + "value": 0 + }, + { + "name": "Texture2D", + "value": 1 + }, + { + "name": "Texture3D", + "value": 2 + }, + { + "name": "Cube", + "value": 3 + }, + { + "name": "Array1D", + "value": 4 + }, + { + "name": "Array2D", + "value": 5 + }, + { + "name": "ArrayCube", + "value": 6 + } + ] + }, + { + "type_name_1": "PixelFormat", + "type_name_2": "PixelFormat", + "qualified_name": "keen::PixelFormat", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 147, + "primitive_type": "Enum", + "hash1": 3407385265, + "hash2": 3494151187, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "R4G4_unorm_pack8", + "value": 1 + }, + { + "name": "R4G4B4A4_unorm_pack16", + "value": 2 + }, + { + "name": "B4G4R4A4_unorm_pack16", + "value": 3 + }, + { + "name": "R5G6B5_unorm_pack16", + "value": 4 + }, + { + "name": "B5G6R5_unorm_pack16", + "value": 5 + }, + { + "name": "R5G5B5A1_unorm_pack16", + "value": 6 + }, + { + "name": "B5G5R5A1_unorm_pack16", + "value": 7 + }, + { + "name": "A1R5G5B5_unorm_pack16", + "value": 8 + }, + { + "name": "R8_unorm", + "value": 9 + }, + { + "name": "R8_snorm", + "value": 10 + }, + { + "name": "R8_uscaled", + "value": 11 + }, + { + "name": "R8_sscaled", + "value": 12 + }, + { + "name": "R8_uint", + "value": 13 + }, + { + "name": "R8_sint", + "value": 14 + }, + { + "name": "R8_srgb", + "value": 15 + }, + { + "name": "R8G8_unorm", + "value": 16 + }, + { + "name": "R8G8_snorm", + "value": 17 + }, + { + "name": "R8G8_uscaled", + "value": 18 + }, + { + "name": "R8G8_sscaled", + "value": 19 + }, + { + "name": "R8G8_uint", + "value": 20 + }, + { + "name": "R8G8_sint", + "value": 21 + }, + { + "name": "R8G8_srgb", + "value": 22 + }, + { + "name": "R8G8B8_unorm", + "value": 23 + }, + { + "name": "R8G8B8_snorm", + "value": 24 + }, + { + "name": "R8G8B8_uscaled", + "value": 25 + }, + { + "name": "R8G8B8_sscaled", + "value": 26 + }, + { + "name": "R8G8B8_uint", + "value": 27 + }, + { + "name": "R8G8B8_sint", + "value": 28 + }, + { + "name": "R8G8B8_srgb", + "value": 29 + }, + { + "name": "B8G8R8_unorm", + "value": 30 + }, + { + "name": "B8G8R8_snorm", + "value": 31 + }, + { + "name": "B8G8R8_uscaled", + "value": 32 + }, + { + "name": "B8G8R8_sscaled", + "value": 33 + }, + { + "name": "B8G8R8_uint", + "value": 34 + }, + { + "name": "B8G8R8_sint", + "value": 35 + }, + { + "name": "B8G8R8_srgb", + "value": 36 + }, + { + "name": "R8G8B8A8_unorm", + "value": 37 + }, + { + "name": "R8G8B8A8_snorm", + "value": 38 + }, + { + "name": "R8G8B8A8_uscaled", + "value": 39 + }, + { + "name": "R8G8B8A8_sscaled", + "value": 40 + }, + { + "name": "R8G8B8A8_uint", + "value": 41 + }, + { + "name": "R8G8B8A8_sint", + "value": 42 + }, + { + "name": "R8G8B8A8_srgb", + "value": 43 + }, + { + "name": "B8G8R8A8_unorm", + "value": 44 + }, + { + "name": "B8G8R8A8_snorm", + "value": 45 + }, + { + "name": "B8G8R8A8_uscaled", + "value": 46 + }, + { + "name": "B8G8R8A8_sscaled", + "value": 47 + }, + { + "name": "B8G8R8A8_uint", + "value": 48 + }, + { + "name": "B8G8R8A8_sint", + "value": 49 + }, + { + "name": "B8G8R8A8_srgb", + "value": 50 + }, + { + "name": "A8B8G8R8_unorm_pack32", + "value": 51 + }, + { + "name": "A8B8G8R8_snorm_pack32", + "value": 52 + }, + { + "name": "A8B8G8R8_uscaled_pack32", + "value": 53 + }, + { + "name": "A8B8G8R8_sscaled_pack32", + "value": 54 + }, + { + "name": "A8B8G8R8_uint_pack32", + "value": 55 + }, + { + "name": "A8B8G8R8_sint_pack32", + "value": 56 + }, + { + "name": "A8B8G8R8_srgb_pack32", + "value": 57 + }, + { + "name": "A2R10G10B10_unorm_pack32", + "value": 58 + }, + { + "name": "A2R10G10B10_snorm_pack32", + "value": 59 + }, + { + "name": "A2R10G10B10_uscaled_pack32", + "value": 60 + }, + { + "name": "A2R10G10B10_sscaled_pack32", + "value": 61 + }, + { + "name": "A2R10G10B10_uint_pack32", + "value": 62 + }, + { + "name": "A2R10G10B10_sint_pack32", + "value": 63 + }, + { + "name": "A2B10G10R10_unorm_pack32", + "value": 64 + }, + { + "name": "A2B10G10R10_snorm_pack32", + "value": 65 + }, + { + "name": "A2B10G10R10_uscaled_pack32", + "value": 66 + }, + { + "name": "A2B10G10R10_sscaled_pack32", + "value": 67 + }, + { + "name": "A2B10G10R10_uint_pack32", + "value": 68 + }, + { + "name": "A2B10G10R10_sint_pack32", + "value": 69 + }, + { + "name": "R16_unorm", + "value": 70 + }, + { + "name": "R16_snorm", + "value": 71 + }, + { + "name": "R16_uscaled", + "value": 72 + }, + { + "name": "R16_sscaled", + "value": 73 + }, + { + "name": "R16_uint", + "value": 74 + }, + { + "name": "R16_sint", + "value": 75 + }, + { + "name": "R16_sfloat", + "value": 76 + }, + { + "name": "R16G16_unorm", + "value": 77 + }, + { + "name": "R16G16_snorm", + "value": 78 + }, + { + "name": "R16G16_uscaled", + "value": 79 + }, + { + "name": "R16G16_sscaled", + "value": 80 + }, + { + "name": "R16G16_uint", + "value": 81 + }, + { + "name": "R16G16_sint", + "value": 82 + }, + { + "name": "R16G16_sfloat", + "value": 83 + }, + { + "name": "R16G16B16_unorm", + "value": 84 + }, + { + "name": "R16G16B16_snorm", + "value": 85 + }, + { + "name": "R16G16B16_uscaled", + "value": 86 + }, + { + "name": "R16G16B16_sscaled", + "value": 87 + }, + { + "name": "R16G16B16_uint", + "value": 88 + }, + { + "name": "R16G16B16_sint", + "value": 89 + }, + { + "name": "R16G16B16_sfloat", + "value": 90 + }, + { + "name": "R16G16B16A16_unorm", + "value": 91 + }, + { + "name": "R16G16B16A16_snorm", + "value": 92 + }, + { + "name": "R16G16B16A16_uscaled", + "value": 93 + }, + { + "name": "R16G16B16A16_sscaled", + "value": 94 + }, + { + "name": "R16G16B16A16_uint", + "value": 95 + }, + { + "name": "R16G16B16A16_sint", + "value": 96 + }, + { + "name": "R16G16B16A16_sfloat", + "value": 97 + }, + { + "name": "R32_uint", + "value": 98 + }, + { + "name": "R32_sint", + "value": 99 + }, + { + "name": "R32_sfloat", + "value": 100 + }, + { + "name": "R32G32_uint", + "value": 101 + }, + { + "name": "R32G32_sint", + "value": 102 + }, + { + "name": "R32G32_sfloat", + "value": 103 + }, + { + "name": "R32G32B32_uint", + "value": 104 + }, + { + "name": "R32G32B32_sint", + "value": 105 + }, + { + "name": "R32G32B32_sfloat", + "value": 106 + }, + { + "name": "R32G32B32A32_uint", + "value": 107 + }, + { + "name": "R32G32B32A32_sint", + "value": 108 + }, + { + "name": "R32G32B32A32_sfloat", + "value": 109 + }, + { + "name": "R64_uint", + "value": 110 + }, + { + "name": "R64_sint", + "value": 111 + }, + { + "name": "R64_sfloat", + "value": 112 + }, + { + "name": "R64G64_uint", + "value": 113 + }, + { + "name": "R64G64_sint", + "value": 114 + }, + { + "name": "R64G64_sfloat", + "value": 115 + }, + { + "name": "R64G64B64_uint", + "value": 116 + }, + { + "name": "R64G64B64_sint", + "value": 117 + }, + { + "name": "R64G64B64_sfloat", + "value": 118 + }, + { + "name": "R64G64B64A64_uint", + "value": 119 + }, + { + "name": "R64G64B64A64_sint", + "value": 120 + }, + { + "name": "R64G64B64A64_sfloat", + "value": 121 + }, + { + "name": "B10G11R11_ufloat_pack32", + "value": 122 + }, + { + "name": "E5B9G9R9_ufloat_pack32", + "value": 123 + }, + { + "name": "D16_unorm", + "value": 124 + }, + { + "name": "X8_D24_unorm_pack32", + "value": 125 + }, + { + "name": "D32_sfloat", + "value": 126 + }, + { + "name": "S8_uint", + "value": 127 + }, + { + "name": "D16_unorm_S8_uint", + "value": 128 + }, + { + "name": "D24_unorm_S8_uint", + "value": 129 + }, + { + "name": "D32_sfloat_S8_uint", + "value": 130 + }, + { + "name": "BC1_RGB_unorm_block", + "value": 131 + }, + { + "name": "BC1_RGB_srgb_block", + "value": 132 + }, + { + "name": "BC1_RGBA_unorm_block", + "value": 133 + }, + { + "name": "BC1_RGBA_srgb_block", + "value": 134 + }, + { + "name": "BC2_unorm_block", + "value": 135 + }, + { + "name": "BC2_srgb_block", + "value": 136 + }, + { + "name": "BC3_unorm_block", + "value": 137 + }, + { + "name": "BC3_srgb_block", + "value": 138 + }, + { + "name": "BC4_unorm_block", + "value": 139 + }, + { + "name": "BC4_snorm_block", + "value": 140 + }, + { + "name": "BC5_unorm_block", + "value": 141 + }, + { + "name": "BC5_snorm_block", + "value": 142 + }, + { + "name": "BC6H_ufloat_block", + "value": 143 + }, + { + "name": "BC6H_sfloat_block", + "value": 144 + }, + { + "name": "BC7_unorm_block", + "value": 145 + }, + { + "name": "BC7_srgb_block", + "value": 146 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint8[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint8", + "class_size": 16, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1438933023, + "hash2": 1833270095, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "vf32_data", + "type_name_2": "vf32_data", + "qualified_name": "keen::vf32_data", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 751996476, + "hash2": 4154319718, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 1438933023, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticHashMapEntry", + "type_name_2": "StaticHashMapEntry", + "qualified_name": "keen::StaticHashMapEntry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1206408002, + "hash2": 1628215973, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimeRange", + "type_name_2": "TimeRange", + "qualified_name": "keen::TimeRange", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2803725876, + "hash2": 1632464715, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "end", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "fourcc", + "type_name_2": "fourcc", + "qualified_name": "keen::fourcc", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 587835404, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HashKey64", + "type_name_2": "HashKey64", + "qualified_name": "keen::HashKey64", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1248914515, + "hash2": 3989665930, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsTypeId", + "type_name_2": "DsTypeId", + "qualified_name": "keen::DsTypeId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 967718650, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceId", + "type_name_2": "ResourceId", + "qualified_name": "keen::ResourceId", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2802512579, + "hash2": 2033178366, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "typeName", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "partIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "reserved0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "reserved1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PosixTimeStamp", + "type_name_2": "PosixTimeStamp", + "qualified_name": "keen::PosixTimeStamp", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 507386403, + "hash2": 1525276579, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CalendarTimeStamp", + "type_name_2": "CalendarTimeStamp", + "qualified_name": "keen::CalendarTimeStamp", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3311273656, + "hash2": 1525276579, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "float3x3", + "type_name_2": "float3x3", + "qualified_name": "keen::float3x3", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1965961236, + "hash2": 524718897, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "z", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "float3x4", + "type_name_2": "float3x4", + "qualified_name": "keen::float3x4", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1949183617, + "hash2": 924358570, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "z", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "w", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "float4x4", + "type_name_2": "float4x4", + "qualified_name": "keen::float4x4", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3823076972, + "hash2": 128237686, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "z", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "w", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "int2", + "type_name_2": "int2", + "qualified_name": "keen::int2", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1650322447, + "hash2": 112108137, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "int3", + "type_name_2": "int3", + "qualified_name": "keen::int3", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1633544828, + "hash2": 1143807267, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "z", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "int4", + "type_name_2": "int4", + "qualified_name": "keen::int4", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1616767209, + "hash2": 2441053070, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "z", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + }, + { + "name": "w", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "uint2", + "type_name_2": "uint2", + "qualified_name": "keen::uint2", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3633820472, + "hash2": 3959459137, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "uint3", + "type_name_2": "uint3", + "qualified_name": "keen::uint3", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3650598091, + "hash2": 3986173419, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "z", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "uint4", + "type_name_2": "uint4", + "qualified_name": "keen::uint4", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3734486186, + "hash2": 1914062142, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "z", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "w", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "uint24", + "type_name_2": "uint24", + "qualified_name": "keen::uint24", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 47111140, + "hash2": 3798933935, + "struct_fields": [ + { + "name": "lo", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "mi", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "hi", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ErrorId", + "type_name_2": "ErrorId", + "qualified_name": "keen::ErrorId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 78, + "primitive_type": "Enum", + "hash1": 2028696237, + "hash2": 11076579, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ok", + "value": 0 + }, + { + "name": "Temporary_TimeOut", + "value": 1 + }, + { + "name": "Temporary_OutOfMemory", + "value": 2 + }, + { + "name": "Temporary_StillRunning", + "value": 3 + }, + { + "name": "AlreadyExists", + "value": 4 + }, + { + "name": "BufferTooSmall", + "value": 5 + }, + { + "name": "Canceled", + "value": 6 + }, + { + "name": "CapacityExceeded", + "value": 7 + }, + { + "name": "CompressionError", + "value": 8 + }, + { + "name": "CorruptData", + "value": 9 + }, + { + "name": "DecompressionError", + "value": 10 + }, + { + "name": "EofReached", + "value": 11 + }, + { + "name": "FileNotFound", + "value": 12 + }, + { + "name": "DirectoryNotEmpty", + "value": 13 + }, + { + "name": "Generic", + "value": 14 + }, + { + "name": "IncompatibleData", + "value": 15 + }, + { + "name": "InitializationFailed", + "value": 16 + }, + { + "name": "Internal", + "value": 17 + }, + { + "name": "InvalidArgument", + "value": 18 + }, + { + "name": "InvalidCharacter", + "value": 19 + }, + { + "name": "InvalidPosition", + "value": 20 + }, + { + "name": "InvalidState", + "value": 21 + }, + { + "name": "InvalidValue", + "value": 22 + }, + { + "name": "KeyNotFound", + "value": 23 + }, + { + "name": "NoConnection", + "value": 24 + }, + { + "name": "ConnectionRefused", + "value": 25 + }, + { + "name": "NetworkDown", + "value": 26 + }, + { + "name": "NetworkUnreachable", + "value": 27 + }, + { + "name": "NoFactoryFound", + "value": 28 + }, + { + "name": "NoMatch", + "value": 29 + }, + { + "name": "NoPermission", + "value": 30 + }, + { + "name": "NotFound", + "value": 31 + }, + { + "name": "NotImplemented", + "value": 32 + }, + { + "name": "NotSupported", + "value": 33 + }, + { + "name": "NumberEncoding", + "value": 34 + }, + { + "name": "NumberOverflow", + "value": 35 + }, + { + "name": "NumberUnderflow", + "value": 36 + }, + { + "name": "OutOfFileHandles", + "value": 37 + }, + { + "name": "OutOfHandles", + "value": 38 + }, + { + "name": "OutOfMemory", + "value": 39 + }, + { + "name": "ParseError", + "value": 40 + }, + { + "name": "ReadError", + "value": 41 + }, + { + "name": "ResourceNotFound", + "value": 42 + }, + { + "name": "StringEncoding", + "value": 43 + }, + { + "name": "TypeMismatch", + "value": 44 + }, + { + "name": "WriteError", + "value": 45 + }, + { + "name": "WrongEndianness", + "value": 46 + }, + { + "name": "WrongVersion", + "value": 47 + }, + { + "name": "DiskFull", + "value": 48 + }, + { + "name": "BrokenPipe", + "value": 49 + }, + { + "name": "PathTooLong", + "value": 50 + }, + { + "name": "DeviceLost", + "value": 51 + }, + { + "name": "MemoryMapFailed", + "value": 52 + }, + { + "name": "AlreadyConnected", + "value": 53 + }, + { + "name": "ConnectionClosed", + "value": 54 + }, + { + "name": "NotSubscribedToApp", + "value": 55 + }, + { + "name": "SharingViolation", + "value": 56 + }, + { + "name": "OutOfDate", + "value": 57 + }, + { + "name": "InUse", + "value": 58 + }, + { + "name": "AlreadyInProgress", + "value": 59 + }, + { + "name": "UserNotSignedIn", + "value": 60 + }, + { + "name": "UserHasNoOnlineAccount", + "value": 61 + }, + { + "name": "KickedFromGame", + "value": 62 + }, + { + "name": "JoinFailed", + "value": 63 + }, + { + "name": "JoinFailedNotFound", + "value": 64 + }, + { + "name": "JoinFailedFull", + "value": 65 + }, + { + "name": "QueueEmpty", + "value": 66 + }, + { + "name": "QueueFull", + "value": 67 + }, + { + "name": "SecureConnectionFailed", + "value": 68 + }, + { + "name": "AddressInUse", + "value": 69 + }, + { + "name": "AddressNotAvailable", + "value": 70 + }, + { + "name": "OutOfRange", + "value": 71 + }, + { + "name": "HashCollision", + "value": 72 + }, + { + "name": "TooManyLinks", + "value": 73 + }, + { + "name": "UnknownHostName", + "value": 74 + }, + { + "name": "RequestTimeOut", + "value": 75 + }, + { + "name": "InvalidAlignment", + "value": 76 + }, + { + "name": "Count", + "value": 77 + } + ] + }, + { + "type_name_1": "PlatformId", + "type_name_2": "PlatformId", + "qualified_name": "keen::PlatformId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 31, + "primitive_type": "Enum", + "hash1": 296282016, + "hash2": 3493504490, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Ngc", + "value": 1 + }, + { + "name": "Wii", + "value": 2 + }, + { + "name": "WiiU", + "value": 3 + }, + { + "name": "Nds", + "value": 4 + }, + { + "name": "Ctr", + "value": 5 + }, + { + "name": "Ps2", + "value": 6 + }, + { + "name": "Ps3", + "value": 7 + }, + { + "name": "Ps4", + "value": 8 + }, + { + "name": "Psp", + "value": 9 + }, + { + "name": "PsVita", + "value": 10 + }, + { + "name": "Xb360", + "value": 11 + }, + { + "name": "Xb1", + "value": 12 + }, + { + "name": "Win32_x86", + "value": 13 + }, + { + "name": "Win32_x64", + "value": 14 + }, + { + "name": "Linux_x86", + "value": 15 + }, + { + "name": "Linux_x64", + "value": 16 + }, + { + "name": "Osx_x86", + "value": 17 + }, + { + "name": "Osx_x64", + "value": 18 + }, + { + "name": "Ios_arm32", + "value": 19 + }, + { + "name": "Ios_arm64", + "value": 20 + }, + { + "name": "Android_arm32", + "value": 21 + }, + { + "name": "Android_arm64", + "value": 22 + }, + { + "name": "Uwp_x86", + "value": 23 + }, + { + "name": "Uwp_x64", + "value": 24 + }, + { + "name": "Uwp_arm32", + "value": 25 + }, + { + "name": "Uwp_arm64", + "value": 26 + }, + { + "name": "Nx", + "value": 27 + }, + { + "name": "Nx_Win32", + "value": 28 + }, + { + "name": "Ps5", + "value": 29 + }, + { + "name": "Count", + "value": 30 + } + ] + }, + { + "type_name_1": "VertexColorChannel", + "type_name_2": "VertexColorChannel", + "qualified_name": "keen::VertexColorChannel", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 771075410, + "hash2": 2898886368, + "struct_fields": [], + "enum_fields": [ + { + "name": "Red", + "value": 0 + }, + { + "name": "Green", + "value": 1 + }, + { + "name": "Blue", + "value": 2 + }, + { + "name": "Alpha", + "value": 3 + } + ] + }, + { + "type_name_1": "ClothMaterial", + "type_name_2": "ClothMaterial", + "qualified_name": "keen::ClothMaterial", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 1302260659, + "hash2": 2020741446, + "struct_fields": [ + { + "name": "simulationWeightVertexColorChannel", + "type_name": "keen::VertexColorChannel", + "type_hash": 771075410, + "data_offset": 0 + }, + { + "name": "useMass", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "usePerVertexStiffness", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "perVertexStiffnessVertexColorChannel", + "type_name": "keen::VertexColorChannel", + "type_hash": 771075410, + "data_offset": 9 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "windStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "tetherStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "motionConstraintsMaxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "motionConstraintsUnlimitedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "motionConstraintsStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "solverFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BvhTreeNodeData", + "type_name_2": "BvhTreeNodeData", + "qualified_name": "keen::BvhTreeNodeData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3879048234, + "hash2": 274310287, + "struct_fields": [ + { + "name": "boundingBoxMin", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "boundingBoxMax", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BvhTreeNodeData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BvhTreeNodeData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 250459115, + "hash2": 3470858231, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BvhTreeData", + "type_name_2": "BvhTreeData", + "qualified_name": "keen::BvhTreeData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 616841422, + "hash2": 3547907778, + "struct_fields": [ + { + "name": "boundingBoxMin", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "boundingBoxMax", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "nodes", + "type_name": "keen::BlobArray", + "type_hash": 250459115, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionSegmentDirection", + "type_name_2": "CollisionSegmentDirection", + "qualified_name": "keen::CollisionSegmentDirection", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1076963800, + "hash2": 253433402, + "struct_fields": [], + "enum_fields": [ + { + "name": "XPositive", + "value": 0 + }, + { + "name": "XNegative", + "value": 1 + }, + { + "name": "ZPositive", + "value": 2 + }, + { + "name": "ZNegative", + "value": 3 + } + ] + }, + { + "type_name_1": "NavEdge", + "type_name_2": "NavEdge", + "qualified_name": "keen::NavEdge", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4952690, + "hash2": 3207684803, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "end", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint16[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint16", + "class_size": 4, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 953863877, + "hash2": 3912967292, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NavPortal", + "type_name_2": "NavPortal", + "qualified_name": "keen::NavPortal", + "referenced_type_name": "keen::NavEdge", + "class_size": 48, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3782529021, + "hash2": 3736110788, + "struct_fields": [ + { + "name": "cellIndices", + "type_name": "keen::StaticArray", + "type_hash": 953863877, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionShapeId", + "type_name_2": "CollisionShapeId", + "qualified_name": "keen::CollisionShapeId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 801860558, + "hash2": 2105545971, + "struct_fields": [ + { + "name": "shapeId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "segmentIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "uint16[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::uint16", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 147528548, + "hash2": 2255196555, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CollisionShapeId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CollisionShapeId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2915765217, + "hash2": 2214740280, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NavCell", + "type_name_2": "NavCell", + "qualified_name": "keen::NavCell", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3426865883, + "hash2": 3849947757, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "minY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "edgeIndices", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 12 + }, + { + "name": "portalIndices", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 20 + }, + { + "name": "collisionShapeIds", + "type_name": "keen::BlobArray", + "type_hash": 2915765217, + "data_offset": 28 + }, + { + "name": "extensionPortalIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 36 + }, + { + "name": "centroid", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderShape", + "type_name_2": "ColliderShape", + "qualified_name": "keen::ColliderShape", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3748200035, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SphereColliderShape", + "type_name_2": "SphereColliderShape", + "qualified_name": "keen::SphereColliderShape", + "referenced_type_name": "keen::ColliderShape", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2636838440, + "hash2": 973623130, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpheroidColliderShape", + "type_name_2": "SpheroidColliderShape", + "qualified_name": "keen::SpheroidColliderShape", + "referenced_type_name": "keen::ColliderShape", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3737901973, + "hash2": 1927345696, + "struct_fields": [ + { + "name": "horizontalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "verticalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CapsuleColliderShape", + "type_name_2": "CapsuleColliderShape", + "qualified_name": "keen::CapsuleColliderShape", + "referenced_type_name": "keen::ColliderShape", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3929347074, + "hash2": 83766528, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoxColliderShape", + "type_name_2": "BoxColliderShape", + "qualified_name": "keen::BoxColliderShape", + "referenced_type_name": "keen::ColliderShape", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 770072600, + "hash2": 64654120, + "struct_fields": [ + { + "name": "halfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SegmentColliderShape", + "type_name_2": "SegmentColliderShape", + "qualified_name": "keen::SegmentColliderShape", + "referenced_type_name": "keen::ColliderShape", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1849352268, + "hash2": 1768641945, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint16[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint16", + "class_size": 6, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 920161544, + "hash2": 758730993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFace", + "type_name_2": "CollisionFace", + "qualified_name": "keen::CollisionFace", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3839139887, + "hash2": 3046724639, + "struct_fields": [ + { + "name": "vertices", + "type_name": "keen::StaticArray", + "type_hash": 920161544, + "data_offset": 0 + }, + { + "name": "neighborFaces", + "type_name": "keen::StaticArray", + "type_hash": 920161544, + "data_offset": 6 + }, + { + "name": "neighborEdgeIndices", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "material", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 13 + }, + { + "name": "flags", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "Vector3[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::Vector3", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2134130439, + "hash2": 3912673605, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionObject", + "type_name_2": "CollisionObject", + "qualified_name": "keen::CollisionObject", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1705492773, + "hash2": 3441323229, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "segmentIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "shapeVertices", + "type_name": "keen::BlobArray", + "type_hash": 2134130439, + "data_offset": 8 + }, + { + "name": "navCellIndices", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 16 + }, + { + "name": "health", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "y", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionGridCell", + "type_name_2": "CollisionGridCell", + "qualified_name": "keen::CollisionGridCell", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 448219734, + "hash2": 2733624141, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CollisionGridCell[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CollisionGridCell", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2689902771, + "hash2": 3578956976, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionGrid", + "type_name_2": "CollisionGrid", + "qualified_name": "keen::CollisionGrid", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2096726302, + "hash2": 3827320479, + "struct_fields": [ + { + "name": "gridCells", + "type_name": "keen::BlobArray", + "type_hash": 2689902771, + "data_offset": 0 + }, + { + "name": "gridIndicies", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 8 + }, + { + "name": "collShapesPerGrid", + "type_name": "keen::BlobArray", + "type_hash": 2689902771, + "data_offset": 16 + }, + { + "name": "collShapesPerGridIndicies", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 24 + }, + { + "name": "cellsX", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 32 + }, + { + "name": "origin", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 36 + }, + { + "name": "cellSize", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CollisionFace[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CollisionFace", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1834739304, + "hash2": 924462770, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CollisionObject[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CollisionObject", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1790628758, + "hash2": 967265351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NavCell[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NavCell", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2529670964, + "hash2": 2187635465, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NavEdge[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NavEdge", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 740528015, + "hash2": 3159964225, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NavPortal[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NavPortal", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 761445346, + "hash2": 194467172, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionMeshData", + "type_name_2": "CollisionMeshData", + "qualified_name": "keen::CollisionMeshData", + "referenced_type_name": null, + "class_size": 100, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3315086743, + "hash2": 3248662575, + "struct_fields": [ + { + "name": "m_vertices", + "type_name": "keen::BlobArray", + "type_hash": 2134130439, + "data_offset": 0 + }, + { + "name": "m_faces", + "type_name": "keen::BlobArray", + "type_hash": 1834739304, + "data_offset": 8 + }, + { + "name": "m_grid", + "type_name": "keen::CollisionGrid", + "type_hash": 2096726302, + "data_offset": 16 + }, + { + "name": "m_objects", + "type_name": "keen::BlobArray", + "type_hash": 1790628758, + "data_offset": 68 + }, + { + "name": "m_navCells", + "type_name": "keen::BlobArray", + "type_hash": 2529670964, + "data_offset": 76 + }, + { + "name": "m_navEdges", + "type_name": "keen::BlobArray", + "type_hash": 740528015, + "data_offset": 84 + }, + { + "name": "m_navPortals", + "type_name": "keen::BlobArray", + "type_hash": 761445346, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollisionBatch", + "type_name_2": "WorldCollisionBatch", + "qualified_name": "keen::WorldCollisionBatch", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3041656614, + "hash2": 1510163517, + "struct_fields": [ + { + "name": "triangleIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "triangleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WorldCollisionBatch[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WorldCollisionBatch", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3928497999, + "hash2": 1129160846, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "float32[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::float32", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2669534122, + "hash2": 2724692923, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "uint8[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::uint8", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 893830463, + "hash2": 1665142157, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollision", + "type_name_2": "WorldCollision", + "qualified_name": "keen::WorldCollision", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3753374842, + "hash2": 876282710, + "struct_fields": [ + { + "name": "triangleBatches", + "type_name": "keen::BlobArray", + "type_hash": 3928497999, + "data_offset": 0 + }, + { + "name": "vertexPositions", + "type_name": "keen::BlobArray", + "type_hash": 2669534122, + "data_offset": 8 + }, + { + "name": "materialIds", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 16 + }, + { + "name": "bvhTreeData", + "type_name": "keen::BvhTreeData", + "type_hash": 616841422, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColor", + "type_name_2": "PaletteColor", + "qualified_name": "keen::PaletteColor", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1215235108, + "hash2": 2016100642, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PaletteColor", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1655114767, + "hash2": 4123283633, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColorReference", + "type_name_2": "PaletteColorReference", + "qualified_name": "keen::PaletteColorReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2252018233, + "hash2": 1777092426, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPalette", + "type_name_2": "ColorPalette", + "qualified_name": "keen::ColorPalette", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1369905460, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPaletteCollection", + "type_name_2": "ColorPaletteCollection", + "qualified_name": "keen::ColorPaletteCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 174093656, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColorId", + "type_name_2": "PaletteColorId", + "qualified_name": "keen::PaletteColorId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 813650825, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColorResource", + "type_name_2": "PaletteColorResource", + "qualified_name": "keen::PaletteColorResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3931679736, + "hash2": 1585768307, + "struct_fields": [ + { + "name": "paletteColorId", + "type_name": "keen::PaletteColorId", + "type_hash": 813650825, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PaletteColorResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PaletteColorResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1524087079, + "hash2": 3773980041, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPaletteCollectionResource", + "type_name_2": "ColorPaletteCollectionResource", + "qualified_name": "keen::ColorPaletteCollectionResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2347371260, + "hash2": 2830907481, + "struct_fields": [ + { + "name": "colors", + "type_name": "keen::BlobArray", + "type_hash": 1524087079, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductId", + "type_name_2": "CommerceProductId", + "qualified_name": "keen::CommerceProductId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1458987789, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProduct", + "type_name_2": "CommerceProduct", + "qualified_name": "keen::CommerceProduct", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1001030000, + "hash2": 1918552845, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::CommerceProductId", + "type_hash": 1458987789, + "data_offset": 0 + }, + { + "name": "platformIdSteam", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CommerceProduct", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3681317953, + "hash2": 3834343355, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductReference", + "type_name_2": "CommerceProductReference", + "qualified_name": "keen::CommerceProductReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4130562029, + "hash2": 3690108428, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductSubDirectory", + "type_name_2": "CommerceProductSubDirectory", + "qualified_name": "keen::CommerceProductSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1532884881, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductDirectory", + "type_name_2": "CommerceProductDirectory", + "qualified_name": "keen::CommerceProductDirectory", + "referenced_type_name": "keen::CommerceProductSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2321021235, + "hash2": 3662679277, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CommerceProduct[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CommerceProduct", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2982087149, + "hash2": 3276649729, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductResource", + "type_name_2": "CommerceProductResource", + "qualified_name": "keen::CommerceProductResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3665624292, + "hash2": 3002415828, + "struct_fields": [ + { + "name": "products", + "type_name": "keen::BlobArray", + "type_hash": 2982087149, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CommerceProductResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1114648849, + "hash2": 391270972, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceResourceReference", + "type_name_2": "CommerceResourceReference", + "qualified_name": "keen::CommerceResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1955601150, + "hash2": 4008480066, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnComponent", + "type_name_2": "ecs.SpawnComponent", + "qualified_name": "keen::ecs::SpawnComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2687829473, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LastTransform", + "type_name_2": "ecs.LastTransform", + "qualified_name": "keen::ecs::LastTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1265286393, + "hash2": 1844249943, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerFocus", + "type_name_2": "ecs.PlayerFocus", + "qualified_name": "keen::ecs::PlayerFocus", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1806168618, + "hash2": 2118359724, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticTransform", + "type_name_2": "ecs.StaticTransform", + "qualified_name": "keen::ecs::StaticTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1415111843, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticTransformDynamic", + "type_name_2": "ecs.StaticTransformDynamic", + "qualified_name": "keen::ecs::StaticTransformDynamic", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2439619176, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DoNotSave", + "type_name_2": "ecs.DoNotSave", + "qualified_name": "keen::ecs::DoNotSave", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1105623274, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ForceSave", + "type_name_2": "ecs.ForceSave", + "qualified_name": "keen::ecs::ForceSave", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1525443775, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerInRange", + "type_name_2": "ecs.PlayerInRange", + "qualified_name": "keen::ecs::PlayerInRange", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1914324726, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CheckPlayerInRange", + "type_name_2": "ecs.CheckPlayerInRange", + "qualified_name": "keen::ecs::CheckPlayerInRange", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1345393280, + "hash2": 2507906382, + "struct_fields": [ + { + "name": "distanceInMeter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerProgress", + "type_name_2": "ecs.ServerProgress", + "qualified_name": "keen::ecs::ServerProgress", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1933737463, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoredSceneId", + "type_name_2": "ecs.StoredSceneId", + "qualified_name": "keen::ecs::StoredSceneId", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 56264009, + "hash2": 4127762027, + "struct_fields": [ + { + "name": "sceneGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::EnemyMarkerTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3788723274, + "hash2": 727190187, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerSettings", + "type_name_2": "ecs.EnemyMarkerSettings", + "qualified_name": "keen::ecs::EnemyMarkerSettings", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3002311562, + "hash2": 134900705, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ObjectReference", + "type_hash": 3788723274, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportCount", + "type_name_2": "ecs.TeleportCount", + "qualified_name": "keen::ecs::TeleportCount", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3221107951, + "hash2": 1573696161, + "struct_fields": [ + { + "name": "counter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "isWaitingForTeleport", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTeleportCount", + "type_name_2": "ecs.RenderTeleportCount", + "qualified_name": "keen::ecs::RenderTeleportCount", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2014351771, + "hash2": 3846682407, + "struct_fields": [ + { + "name": "counter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "wasTeleported", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScaleComponent", + "type_name_2": "ecs.ScaleComponent", + "qualified_name": "keen::ecs::ScaleComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 705467906, + "hash2": 2600994184, + "struct_fields": [ + { + "name": "uniformScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Velocity", + "type_name_2": "ecs.Velocity", + "qualified_name": "keen::ecs::Velocity", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4214432000, + "hash2": 2474179765, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpulseType", + "type_name_2": "ecs.ImpulseType", + "qualified_name": "keen::ecs::ImpulseType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 805419934, + "hash2": 662373428, + "struct_fields": [], + "enum_fields": [ + { + "name": "S_Curve", + "value": 0 + }, + { + "name": "FadeOut", + "value": 1 + } + ] + }, + { + "type_name_1": "ImpulseData", + "type_name_2": "ecs.ImpulseData", + "qualified_name": "keen::ecs::ImpulseData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2406929918, + "hash2": 3092085635, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ecs::ImpulseType", + "type_hash": 805419934, + "data_offset": 12 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ImpulseData[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::ImpulseData", + "class_size": 128, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 4123158206, + "hash2": 799443554, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Impulse", + "type_name_2": "ecs.Impulse", + "qualified_name": "keen::ecs::Impulse", + "referenced_type_name": "keen::ecs::Component", + "class_size": 144, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2712205694, + "hash2": 2289665973, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "impulses", + "type_name": "keen::StaticArray", + "type_hash": 4123158206, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OscillateTransform", + "type_name_2": "ecs.OscillateTransform", + "qualified_name": "keen::ecs::OscillateTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 647353425, + "hash2": 2058005966, + "struct_fields": [ + { + "name": "center", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "amplitudeAxis", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "phase", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityId", + "type_name_2": "ecs.EntityId", + "qualified_name": "keen::ecs::EntityId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2979268477, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OwnerRelationship", + "type_name_2": "ecs.OwnerRelationship", + "qualified_name": "keen::ecs::OwnerRelationship", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3610646408, + "hash2": 2583252731, + "struct_fields": [ + { + "name": "ownerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTime", + "type_name_2": "ecs.SpawnTime", + "qualified_name": "keen::ecs::SpawnTime", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1480156067, + "hash2": 3035475040, + "struct_fields": [ + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LifeTime", + "type_name_2": "ecs.LifeTime", + "qualified_name": "keen::ecs::LifeTime", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4062979388, + "hash2": 3026117840, + "struct_fields": [ + { + "name": "lifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "endOfLife", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "enforceDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "triggeredDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Aging", + "type_name_2": "ecs.Aging", + "qualified_name": "keen::ecs::Aging", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 59950377, + "hash2": 3985912859, + "struct_fields": [ + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TintColor", + "type_name_2": "ecs.TintColor", + "qualified_name": "keen::ecs::TintColor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 47120813, + "hash2": 817020290, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PaletteColorId[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::PaletteColorId", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 2574703268, + "hash2": 3834654026, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationComponent", + "type_name_2": "ecs.ColorCombinationComponent", + "qualified_name": "keen::ecs::ColorCombinationComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 910478204, + "hash2": 1737656230, + "struct_fields": [ + { + "name": "colorIds", + "type_name": "keen::StaticArray", + "type_hash": 2574703268, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HighlightColorIndex", + "type_name_2": "HighlightColorIndex", + "qualified_name": "keen::HighlightColorIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 4224638355, + "hash2": 4214373856, + "struct_fields": [], + "enum_fields": [ + { + "name": "NoHighlight", + "value": 0 + }, + { + "name": "InvalidState", + "value": 1 + }, + { + "name": "ValidState", + "value": 2 + }, + { + "name": "MutedState", + "value": 3 + }, + { + "name": "Group1", + "value": 4 + }, + { + "name": "Group2", + "value": 5 + }, + { + "name": "Group3", + "value": 6 + }, + { + "name": "Group4", + "value": 7 + } + ] + }, + { + "type_name_1": "HighlightColor", + "type_name_2": "ecs.HighlightColor", + "qualified_name": "keen::ecs::HighlightColor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3455864744, + "hash2": 2020631290, + "struct_fields": [ + { + "name": "colorIndex", + "type_name": "keen::HighlightColorIndex", + "type_hash": 4224638355, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Transparency", + "type_name_2": "ecs.Transparency", + "qualified_name": "keen::ecs::Transparency", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 509291489, + "hash2": 3551244012, + "struct_fields": [ + { + "name": "transparency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Ao", + "type_name_2": "ecs.Ao", + "qualified_name": "keen::ecs::Ao", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1256410023, + "hash2": 2974310542, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Hide", + "type_name_2": "ecs.Hide", + "qualified_name": "keen::ecs::Hide", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3439835639, + "hash2": 2156577698, + "struct_fields": [ + { + "name": "isHidden", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isLocalyHidden", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelComponent", + "type_name_2": "ecs.ModelComponent", + "qualified_name": "keen::ecs::ModelComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3091234563, + "hash2": 860160989, + "struct_fields": [ + { + "name": "modelHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleModifierFlags", + "type_name_2": "ecs.ToggleModifierFlags", + "qualified_name": "keen::ecs::ToggleModifierFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 35261045, + "hash2": 534199918, + "struct_fields": [], + "enum_fields": [ + { + "name": "IgnoreToggle", + "value": 0 + }, + { + "name": "InvertToggle", + "value": 1 + }, + { + "name": "IgnoreToggleOn", + "value": 2 + }, + { + "name": "IgnoreToggleOff", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::ToggleModifierFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 328381445, + "hash2": 3940917314, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleModifier", + "type_name_2": "ecs.ToggleModifier", + "qualified_name": "keen::ecs::ToggleModifier", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2394917594, + "hash2": 1989447437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelRenderHint", + "type_name_2": "ecs.ModelRenderHint", + "qualified_name": "keen::ecs::ModelRenderHint", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1499670717, + "hash2": 3490903447, + "struct_fields": [ + { + "name": "canReceiveDecals", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "toggleModifier", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelDynamic", + "type_name_2": "ecs.ModelDynamic", + "qualified_name": "keen::ecs::ModelDynamic", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 698627173, + "hash2": 3600409848, + "struct_fields": [ + { + "name": "lastModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelResource", + "type_name_2": "ecs.ModelResource", + "qualified_name": "keen::ecs::ModelResource", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 422260440, + "hash2": 3366187752, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelResourceDynamic", + "type_name_2": "ecs.ModelResourceDynamic", + "qualified_name": "keen::ecs::ModelResourceDynamic", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2211907689, + "hash2": 3366187752, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModel", + "type_name_2": "ecs.VoxelModel", + "qualified_name": "keen::ecs::VoxelModel", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1399624658, + "hash2": 1348061912, + "struct_fields": [ + { + "name": "renderNode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelModelResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4127321310, + "hash2": 289341544, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelVolatile", + "type_name_2": "ecs.VoxelModelVolatile", + "qualified_name": "keen::ecs::VoxelModelVolatile", + "referenced_type_name": "keen::ecs::VoxelModel", + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 541108462, + "hash2": 1698884164, + "struct_fields": [ + { + "name": "pendingRenderNode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "lastModel", + "type_name": "keen::ObjectReference", + "type_hash": 4127321310, + "data_offset": 8 + }, + { + "name": "lastMaterialOverride", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "isVoxelModelChangePending", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelResourceComponent", + "type_name_2": "ecs.VoxelModelResourceComponent", + "qualified_name": "keen::ecs::VoxelModelResourceComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1922036409, + "hash2": 1453916018, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 4127321310, + "data_offset": 0 + }, + { + "name": "materialOverride", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementComponent", + "type_name_2": "ecs.SnowDisplacementComponent", + "qualified_name": "keen::ecs::SnowDisplacementComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1699588122, + "hash2": 4229727645, + "struct_fields": [ + { + "name": "bodyHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "localOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "heightNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DungeonTriggerSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3405039394, + "hash2": 512891516, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerTypeComponent", + "type_name_2": "ecs.DungeonTriggerTypeComponent", + "qualified_name": "keen::ecs::DungeonTriggerTypeComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3180367536, + "hash2": 1361947840, + "struct_fields": [ + { + "name": "triggerSetup", + "type_name": "keen::ObjectReference", + "type_hash": 3405039394, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResourceComponent", + "type_name_2": "ecs.AnimationGraphResourceComponent", + "qualified_name": "keen::ecs::AnimationGraphResourceComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2394885144, + "hash2": 2273995034, + "struct_fields": [ + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 921543191, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::anim_graph::tool_graph::AnimationGraph2_0", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2401198865, + "hash2": 1723229761, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResourceComponent2", + "type_name_2": "ecs.AnimationGraphResourceComponent2", + "qualified_name": "keen::ecs::AnimationGraphResourceComponent2", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3770689054, + "hash2": 284222141, + "struct_fields": [ + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 2401198865, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxComponentResource", + "type_name_2": "ecs.VfxComponentResource", + "qualified_name": "keen::ecs::VfxComponentResource", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3010599220, + "hash2": 329894565, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxResourceDynamic", + "type_name_2": "ecs.VfxResourceDynamic", + "qualified_name": "keen::ecs::VfxResourceDynamic", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3531911774, + "hash2": 329894565, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint32[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint32", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1533723982, + "hash2": 814172909, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterDataBlock", + "type_name_2": "VfxUserEffectParameterDataBlock", + "qualified_name": "keen::VfxUserEffectParameterDataBlock", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 974495008, + "hash2": 3510423688, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 1533723982, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParametersTemplateComponent", + "type_name_2": "ecs.VfxParametersTemplateComponent", + "qualified_name": "keen::ecs::VfxParametersTemplateComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3592625210, + "hash2": 645770821, + "struct_fields": [ + { + "name": "parameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParametersOverwriteComponent", + "type_name_2": "ecs.VfxParametersOverwriteComponent", + "qualified_name": "keen::ecs::VfxParametersOverwriteComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3470191117, + "hash2": 3648519394, + "struct_fields": [ + { + "name": "useVfxDefaultParameters", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OverrideLevel", + "type_name_2": "ecs.OverrideLevel", + "qualified_name": "keen::ecs::OverrideLevel", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2719907559, + "hash2": 3898703356, + "struct_fields": [ + { + "name": "newLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleTimer", + "type_name_2": "ecs.ToggleTimer", + "qualified_name": "keen::ecs::ToggleTimer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 486561088, + "hash2": 960869777, + "struct_fields": [ + { + "name": "timer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "toggleModifier", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 8 + }, + { + "name": "timerRunning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "lastToggleChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyOnState", + "type_name_2": "ecs.DestroyOnState", + "qualified_name": "keen::ecs::DestroyOnState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3907496327, + "hash2": 791764746, + "struct_fields": [ + { + "name": "wasInOppositeState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "triggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FxComponent", + "type_name_2": "ecs.FxComponent", + "qualified_name": "keen::ecs::FxComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1355782156, + "hash2": 126723245, + "struct_fields": [ + { + "name": "fxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "toggleModifier", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxAnimationIdParameter", + "type_name_2": "ecs.VfxAnimationIdParameter", + "qualified_name": "keen::ecs::VfxAnimationIdParameter", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1305331063, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Offset", + "type_name_2": "ecs.Offset", + "qualified_name": "keen::ecs::Offset", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 935302332, + "hash2": 2308517093, + "struct_fields": [ + { + "name": "localOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "worldOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "orientationOffset", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxComponent", + "type_name_2": "ecs.VfxComponent", + "qualified_name": "keen::ecs::VfxComponent", + "referenced_type_name": "keen::ecs::FxComponent", + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3759285760, + "hash2": 2215016472, + "struct_fields": [ + { + "name": "attachmentOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 8 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 48 + }, + { + "name": "attachToParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetType", + "type_name_2": "ecs.TargetType", + "qualified_name": "keen::ecs::TargetType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 17, + "primitive_type": "Enum", + "hash1": 1671000586, + "hash2": 3651440734, + "struct_fields": [], + "enum_fields": [ + { + "name": "Combat", + "value": 0 + }, + { + "name": "Teleport", + "value": 1 + }, + { + "name": "Interaction", + "value": 2 + }, + { + "name": "ItemInteraction", + "value": 3 + }, + { + "name": "Dismantle", + "value": 4 + }, + { + "name": "DismantleFallback", + "value": 5 + }, + { + "name": "Hook", + "value": 6 + }, + { + "name": "HookFallback", + "value": 7 + }, + { + "name": "HookAttached", + "value": 8 + }, + { + "name": "SpawnPoint", + "value": 9 + }, + { + "name": "Picking", + "value": 10 + }, + { + "name": "LastVisitedBase", + "value": 11 + }, + { + "name": "ViceralAttack", + "value": 12 + }, + { + "name": "HardLockCandidate", + "value": 13 + }, + { + "name": "GuardingEnemy", + "value": 14 + }, + { + "name": "NpcAssignment", + "value": 15 + }, + { + "name": "Count", + "value": 16 + } + ] + }, + { + "type_name_1": "VfxTargetedComponent", + "type_name_2": "ecs.VfxTargetedComponent", + "qualified_name": "keen::ecs::VfxTargetedComponent", + "referenced_type_name": "keen::ecs::VfxComponent", + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2340853828, + "hash2": 53267208, + "struct_fields": [ + { + "name": "targetType", + "type_name": "keen::ecs::TargetType", + "type_hash": 1671000586, + "data_offset": 52 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "updateTargetPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetEntity", + "type_name_2": "ecs.TargetEntity", + "qualified_name": "keen::ecs::TargetEntity", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1995315641, + "hash2": 510627556, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetPosition", + "type_name_2": "ecs.TargetPosition", + "qualified_name": "keen::ecs::TargetPosition", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2822974453, + "hash2": 3117767368, + "struct_fields": [ + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxTargetParameter", + "type_name_2": "ecs.VfxTargetParameter", + "qualified_name": "keen::ecs::VfxTargetParameter", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2253656247, + "hash2": 1646413157, + "struct_fields": [ + { + "name": "targetSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 0 + }, + { + "name": "targetAttachmentOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 4 + }, + { + "name": "attachToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "updateSourcePosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxComponentVolatile", + "type_name_2": "ecs.VfxComponentVolatile", + "qualified_name": "keen::ecs::VfxComponentVolatile", + "referenced_type_name": "keen::ecs::VfxComponent", + "class_size": 68, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3558171444, + "hash2": 1387115929, + "struct_fields": [ + { + "name": "lastVfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Notifier", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1156900411, + "hash2": 3558674918, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NotifierReference", + "type_name_2": "NotifierReference", + "qualified_name": "keen::NotifierReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1933263901, + "hash2": 3671279738, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxOnResourceDrop", + "type_name_2": "ecs.VfxOnResourceDrop", + "qualified_name": "keen::ecs::VfxOnResourceDrop", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1977766161, + "hash2": 1683622589, + "struct_fields": [ + { + "name": "notifier", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 0 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleDelay", + "type_name_2": "ecs.ToggleDelay", + "qualified_name": "keen::ecs::ToggleDelay", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2906362426, + "hash2": 872671869, + "struct_fields": [ + { + "name": "delay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleState", + "type_name_2": "ecs.ToggleState", + "qualified_name": "keen::ecs::ToggleState", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 461410204, + "hash2": 3166687370, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lastChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerToggleState", + "type_name_2": "ecs.ServerToggleState", + "qualified_name": "keen::ecs::ServerToggleState", + "referenced_type_name": "keen::ecs::ToggleState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3918977645, + "hash2": 3385215741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NetworkToggleState", + "type_name_2": "ecs.NetworkToggleState", + "qualified_name": "keen::ecs::NetworkToggleState", + "referenced_type_name": "keen::ecs::ToggleState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1313009924, + "hash2": 3385215741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientToggleState", + "type_name_2": "ecs.ClientToggleState", + "qualified_name": "keen::ecs::ClientToggleState", + "referenced_type_name": "keen::ecs::ToggleState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2823177961, + "hash2": 3385215741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleNotifier", + "type_name_2": "ecs.ToggleNotifier", + "qualified_name": "keen::ecs::ToggleNotifier", + "referenced_type_name": "keen::ecs::Component", + "class_size": 168, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2253476401, + "hash2": 3788210402, + "struct_fields": [ + { + "name": "lastEvent", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 8 + }, + { + "name": "notifier", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "sourceSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 40 + }, + { + "name": "sourceAttachmentOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 44 + }, + { + "name": "attachToSource", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "targetSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 85 + }, + { + "name": "targetAttachmentOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 88 + }, + { + "name": "attachToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 132 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 148 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseAnimationGraphInput", + "type_name_2": "ecs.BaseAnimationGraphInput", + "qualified_name": "keen::ecs::BaseAnimationGraphInput", + "referenced_type_name": "keen::ecs::Component", + "class_size": 416, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3358960352, + "hash2": 3872304039, + "struct_fields": [ + { + "name": "initialAnimationStateIdReference", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + }, + { + "name": "animationInputs", + "type_name": "keen::AnimationGraphInputs", + "type_hash": 3429421677, + "data_offset": 16 + }, + { + "name": "animationRootMotionMask", + "type_name": "keen::animationgraph::RootMotionMask", + "type_hash": 2647428094, + "data_offset": 400 + }, + { + "name": "animationStateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 404 + }, + { + "name": "retriggerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 408 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphInput", + "type_name_2": "ecs.ServerAnimationGraphInput", + "qualified_name": "keen::ecs::ServerAnimationGraphInput", + "referenced_type_name": "keen::ecs::BaseAnimationGraphInput", + "class_size": 808, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3008736694, + "hash2": 3626891120, + "struct_fields": [ + { + "name": "previousAnimationInputs", + "type_name": "keen::AnimationGraphInputs", + "type_hash": 3429421677, + "data_offset": 416 + }, + { + "name": "overlayRingbufferIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 800 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkAnimationGraphInput", + "type_name_2": "ecs.NetworkAnimationGraphInput", + "qualified_name": "keen::ecs::NetworkAnimationGraphInput", + "referenced_type_name": "keen::ecs::BaseAnimationGraphInput", + "class_size": 416, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4053133051, + "hash2": 4153209521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientAnimationGraphInputLerp", + "type_name_2": "ecs.ClientAnimationGraphInputLerp", + "qualified_name": "keen::ecs::ClientAnimationGraphInputLerp", + "referenced_type_name": "keen::ecs::Component", + "class_size": 776, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3007437991, + "hash2": 2978279730, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::AnimationGraphInputs", + "type_hash": 3429421677, + "data_offset": 0 + }, + { + "name": "target", + "type_name": "keen::AnimationGraphInputs", + "type_hash": 3429421677, + "data_offset": 384 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 768 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 772 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientAnimationGraphInput", + "type_name_2": "ecs.ClientAnimationGraphInput", + "qualified_name": "keen::ecs::ClientAnimationGraphInput", + "referenced_type_name": "keen::ecs::BaseAnimationGraphInput", + "class_size": 416, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3461081682, + "hash2": 4153209521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphHandleValue", + "type_name_2": "ecs.AnimationGraphHandleValue", + "qualified_name": "keen::ecs::AnimationGraphHandleValue", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2780886136, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderPoseHandleValue", + "type_name_2": "ecs.RenderPoseHandleValue", + "qualified_name": "keen::ecs::RenderPoseHandleValue", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3897815837, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphBaseComponent", + "type_name_2": "ecs.AnimationGraphBaseComponent", + "qualified_name": "keen::ecs::AnimationGraphBaseComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 69259583, + "hash2": 2836721607, + "struct_fields": [ + { + "name": "animationGraphHandle", + "type_name": "keen::ecs::AnimationGraphHandleValue", + "type_hash": 2780886136, + "data_offset": 0 + }, + { + "name": "renderPoseHandle", + "type_name": "keen::ecs::RenderPoseHandleValue", + "type_hash": 3897815837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphComponent", + "type_name_2": "ecs.AnimationGraphComponent", + "qualified_name": "keen::ecs::AnimationGraphComponent", + "referenced_type_name": "keen::ecs::AnimationGraphBaseComponent", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3103109048, + "hash2": 1498047027, + "struct_fields": [ + { + "name": "usedClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 319145755, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float3x4[14]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float3x4", + "class_size": 672, + "fields_count": 14, + "primitive_type": "StaticArray", + "hash1": 1470016494, + "hash2": 1078955102, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphSlotComponent", + "type_name_2": "ecs.AnimationGraphSlotComponent", + "qualified_name": "keen::ecs::AnimationGraphSlotComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 676, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3641556676, + "hash2": 3216898776, + "struct_fields": [ + { + "name": "slotsInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 1470016494, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphComponent", + "type_name_2": "ecs.ServerAnimationGraphComponent", + "qualified_name": "keen::ecs::ServerAnimationGraphComponent", + "referenced_type_name": "keen::ecs::AnimationGraphBaseComponent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3095418641, + "hash2": 2491684745, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphSlotComponent", + "type_name_2": "ecs.ServerAnimationGraphSlotComponent", + "qualified_name": "keen::ecs::ServerAnimationGraphSlotComponent", + "referenced_type_name": "keen::ecs::AnimationGraphSlotComponent", + "class_size": 676, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2466643077, + "hash2": 3762994261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphHandleValue2", + "type_name_2": "ecs.AnimationGraphHandleValue2", + "qualified_name": "keen::ecs::AnimationGraphHandleValue2", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 952143998, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphComponent2", + "type_name_2": "ecs.AnimationGraphComponent2", + "qualified_name": "keen::ecs::AnimationGraphComponent2", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3032700478, + "hash2": 707050905, + "struct_fields": [ + { + "name": "animationGraphHandle", + "type_name": "keen::ecs::AnimationGraphHandleValue2", + "type_hash": 952143998, + "data_offset": 0 + }, + { + "name": "renderPoseHandle", + "type_name": "keen::ecs::RenderPoseHandleValue", + "type_hash": 3897815837, + "data_offset": 4 + }, + { + "name": "clothCollider", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphComponent2", + "type_name_2": "ecs.ServerAnimationGraphComponent2", + "qualified_name": "keen::ecs::ServerAnimationGraphComponent2", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2500406297, + "hash2": 2319078382, + "struct_fields": [ + { + "name": "animationGraphHandle", + "type_name": "keen::ecs::AnimationGraphHandleValue2", + "type_hash": 952143998, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyParentAnimationGraphState", + "type_name_2": "ecs.CopyParentAnimationGraphState", + "qualified_name": "keen::ecs::CopyParentAnimationGraphState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 244553805, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimatedCamera", + "type_name_2": "ecs.AnimatedCamera", + "qualified_name": "keen::ecs::AnimatedCamera", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 786060841, + "hash2": 2340713668, + "struct_fields": [ + { + "name": "cameraSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RngState", + "type_name_2": "ecs.RngState", + "qualified_name": "keen::ecs::RngState", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 806902401, + "hash2": 1809003151, + "struct_fields": [ + { + "name": "w", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "z", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialId", + "type_name_2": "VoxelMaterialId", + "qualified_name": "keen::VoxelMaterialId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 63742278, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollisionResults", + "type_name_2": "ecs.WorldCollisionResults", + "qualified_name": "keen::ecs::WorldCollisionResults", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2103808591, + "hash2": 1069541611, + "struct_fields": [ + { + "name": "hasSpheroidCollision", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "spheroidNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "hasGroundCollision", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "isGroundWalkable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "groundNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "areaGroundNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "groundDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "groundVoxelMaterialId", + "type_name": "keen::VoxelMaterialId", + "type_hash": 63742278, + "data_offset": 48 + }, + { + "name": "preventFallDamage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OptionalWorldCollisionResults", + "type_name_2": "ecs.OptionalWorldCollisionResults", + "qualified_name": "keen::ecs::OptionalWorldCollisionResults", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3371173655, + "hash2": 3393499575, + "struct_fields": [ + { + "name": "m_value", + "type_name": "keen::ecs::WorldCollisionResults", + "type_hash": 2103808591, + "data_offset": 0 + }, + { + "name": "m_isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollider", + "type_name_2": "ecs.WorldCollider", + "qualified_name": "keen::ecs::WorldCollider", + "referenced_type_name": "keen::ecs::Component", + "class_size": 84, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1576343181, + "hash2": 2469839490, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxStepHeightVoxels", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxStepHeightProps", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "onlyCheckPathCollidersWithBundleCheck", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "isWorldColliderReady", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "hasDetectedSafePositionBelow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "results", + "type_name": "keen::ecs::OptionalWorldCollisionResults", + "type_hash": 3371173655, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Gravity", + "type_name_2": "ecs.Gravity", + "qualified_name": "keen::ecs::Gravity", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3301770031, + "hash2": 1698790511, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticGravityModifier", + "type_name_2": "ecs.StaticGravityModifier", + "qualified_name": "keen::ecs::StaticGravityModifier", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2905910984, + "hash2": 3414343791, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Debug", + "type_name_2": "ecs.Debug", + "qualified_name": "keen::ecs::Debug", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3865534390, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::ColliderResponseResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3366284869, + "hash2": 3423398103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseResourceReference", + "type_name_2": "ecs.ColliderResponseResourceReference", + "qualified_name": "keen::ecs::ColliderResponseResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1593069297, + "hash2": 1159182021, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseComponent", + "type_name_2": "ecs.ColliderResponseComponent", + "qualified_name": "keen::ecs::ColliderResponseComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 988409703, + "hash2": 472504292, + "struct_fields": [ + { + "name": "colliderResponse", + "type_name": "keen::ecs::ColliderResponseResourceReference", + "type_hash": 1593069297, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseFlag", + "type_name_2": "ecs.ColliderResponseFlag", + "qualified_name": "keen::ecs::ColliderResponseFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 141292378, + "hash2": 3044906968, + "struct_fields": [], + "enum_fields": [ + { + "name": "OrientToNormal", + "value": 0 + }, + { + "name": "ApplyLocally", + "value": 1 + }, + { + "name": "AttachToSlot", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::ColliderResponseFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2406736456, + "hash2": 3793129476, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseFlags", + "type_name_2": "ecs.ColliderResponseFlags", + "qualified_name": "keen::ecs::ColliderResponseFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1794099595, + "hash2": 4263632539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionType", + "type_name_2": "ecs.CollisionType", + "qualified_name": "keen::ecs::CollisionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 297128561, + "hash2": 3226913021, + "struct_fields": [], + "enum_fields": [ + { + "name": "Hit", + "value": 0 + }, + { + "name": "CriticalHit", + "value": 1 + }, + { + "name": "Block", + "value": 2 + }, + { + "name": "BrokenBlock", + "value": 3 + }, + { + "name": "Ineffective", + "value": 4 + }, + { + "name": "Immune", + "value": 5 + }, + { + "name": "PileUp", + "value": 6 + }, + { + "name": "Flattening", + "value": 7 + }, + { + "name": "Count", + "value": 8 + } + ] + }, + { + "type_name_1": "ColliderResponseResourceEntry", + "type_name_2": "ecs.ColliderResponseResourceEntry", + "qualified_name": "keen::ecs::ColliderResponseResourceEntry", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2476979792, + "hash2": 3432810092, + "struct_fields": [ + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 16 + }, + { + "name": "sfxDescription", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 32 + }, + { + "name": "vfxDescription", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 40 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 48 + }, + { + "name": "eulerOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 68 + }, + { + "name": "collisionType", + "type_name": "keen::ecs::CollisionType", + "type_hash": 297128561, + "data_offset": 80 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 81 + }, + { + "name": "flags", + "type_name": "keen::ecs::ColliderResponseFlags", + "type_hash": 1794099595, + "data_offset": 82 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ColliderResponseResourceEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ColliderResponseResourceEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2029164783, + "hash2": 3103043998, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseResource", + "type_name_2": "ecs.ColliderResponseResource", + "qualified_name": "keen::ecs::ColliderResponseResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1110619612, + "hash2": 1685263959, + "struct_fields": [ + { + "name": "responseEntries", + "type_name": "keen::BlobArray", + "type_hash": 2029164783, + "data_offset": 0 + }, + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + }, + { + "name": "templateDescription", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponse", + "type_name_2": "ecs.ColliderResponse", + "qualified_name": "keen::ecs::ColliderResponse", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3885322872, + "hash2": 2850510636, + "struct_fields": [ + { + "name": "collisionType", + "type_name": "keen::ecs::CollisionType", + "type_hash": 297128561, + "data_offset": 0 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 4 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 20 + }, + { + "name": "eulerOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "applyLocally", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "overrideSlot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 63 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ColliderResourceData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ColliderResourceData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2814907092, + "hash2": 1610004844, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResourceComponent", + "type_name_2": "ecs.ColliderResourceComponent", + "qualified_name": "keen::ecs::ColliderResourceComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 239208066, + "hash2": 2335547486, + "struct_fields": [ + { + "name": "colliders", + "type_name": "keen::BlobArray", + "type_hash": 2814907092, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CollisionFeedbackMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2881182845, + "hash2": 2793825900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackMaterialReference", + "type_name_2": "CollisionFeedbackMaterialReference", + "qualified_name": "keen::CollisionFeedbackMaterialReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 115049765, + "hash2": 3977625692, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemId", + "type_name_2": "ItemId", + "qualified_name": "keen::ItemId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1428289088, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemInfo", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3258808028, + "hash2": 1965894694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemReference", + "type_name_2": "ItemReference", + "qualified_name": "keen::ItemReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 102745210, + "hash2": 1887274947, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PropDamageSusceptibility", + "type_name_2": "PropDamageSusceptibility", + "qualified_name": "keen::PropDamageSusceptibility", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3353863451, + "hash2": 3514391963, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Wood", + "value": 1 + }, + { + "name": "Stone", + "value": 2 + }, + { + "name": "Metal", + "value": 3 + } + ] + }, + { + "type_name_1": "CollisionFeedbackMaterialComponent", + "type_name_2": "ecs.CollisionFeedbackMaterialComponent", + "qualified_name": "keen::ecs::CollisionFeedbackMaterialComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 942972294, + "hash2": 784911834, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 20 + }, + { + "name": "propDamageSusceptibility", + "type_name": "keen::PropDamageSusceptibility", + "type_hash": 3353863451, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderId", + "type_name_2": "ecs.ColliderId", + "qualified_name": "keen::ecs::ColliderId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4154344934, + "hash2": 2094163528, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AbstractCollider", + "type_name_2": "ecs.AbstractCollider", + "qualified_name": "keen::ecs::AbstractCollider", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1446966037, + "hash2": 3350013618, + "struct_fields": [ + { + "name": "toggleModifier", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 0 + }, + { + "name": "colliderId", + "type_name": "keen::ecs::ColliderId", + "type_hash": 4154344934, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticCollider", + "type_name_2": "ecs.StaticCollider", + "qualified_name": "keen::ecs::StaticCollider", + "referenced_type_name": "keen::ecs::AbstractCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4191329349, + "hash2": 625326592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticClientCollider", + "type_name_2": "ecs.StaticClientCollider", + "qualified_name": "keen::ecs::StaticClientCollider", + "referenced_type_name": "keen::ecs::AbstractCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 361041046, + "hash2": 625326592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFlags", + "type_name_2": "ecs.ColliderFlags", + "qualified_name": "keen::ecs::ColliderFlags", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 17, + "primitive_type": "Enum", + "hash1": 1045555458, + "hash2": 2514020848, + "struct_fields": [], + "enum_fields": [ + { + "name": "World", + "value": 0 + }, + { + "name": "Solid", + "value": 1 + }, + { + "name": "Fluid", + "value": 2 + }, + { + "name": "Walkable", + "value": 3 + }, + { + "name": "WalkablePlatform", + "value": 4 + }, + { + "name": "NoNpcMovement", + "value": 5 + }, + { + "name": "ClimbingWall", + "value": 6 + }, + { + "name": "Combat", + "value": 7 + }, + { + "name": "Force", + "value": 8 + }, + { + "name": "Steering", + "value": 9 + }, + { + "name": "HookShotTarget", + "value": 10 + }, + { + "name": "PlacementBlocker", + "value": 11 + }, + { + "name": "Interaction", + "value": 12 + }, + { + "name": "PathGridInteraction", + "value": 13 + }, + { + "name": "Sight", + "value": 14 + }, + { + "name": "BlockCameraLoS", + "value": 15 + }, + { + "name": "SoundOccluder", + "value": 16 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::ecs::ColliderFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 478825535, + "hash2": 1321246387, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderMask", + "type_name_2": "ecs.ColliderMask", + "qualified_name": "keen::ecs::ColliderMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2434446047, + "hash2": 1552508631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderMode", + "type_name_2": "ecs.ColliderMode", + "qualified_name": "keen::ecs::ColliderMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 4112969876, + "hash2": 3530260631, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Sitting", + "value": 1 + }, + { + "name": "Lying", + "value": 2 + }, + { + "name": "Evading", + "value": 3 + }, + { + "name": "ClimbingWall", + "value": 4 + }, + { + "name": "Death", + "value": 5 + }, + { + "name": "Invisible", + "value": 6 + } + ] + }, + { + "type_name_1": "Collider", + "type_name_2": "ecs.Collider", + "qualified_name": "keen::ecs::Collider", + "referenced_type_name": "keen::ecs::AbstractCollider", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2985909579, + "hash2": 855008398, + "struct_fields": [ + { + "name": "isPathBlocker", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "disabledCollisions", + "type_name": "keen::ecs::ColliderMask", + "type_hash": 2434446047, + "data_offset": 20 + }, + { + "name": "activeColliderSetup", + "type_name": "keen::ecs::ColliderMode", + "type_hash": 4112969876, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCollider", + "type_name_2": "ecs.ClientCollider", + "qualified_name": "keen::ecs::ClientCollider", + "referenced_type_name": "keen::ecs::AbstractCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 455264764, + "hash2": 625326592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSpawnType", + "type_name_2": "ecs.PlayerSpawnType", + "qualified_name": "keen::ecs::PlayerSpawnType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2301680813, + "hash2": 332865384, + "struct_fields": [], + "enum_fields": [ + { + "name": "StartLocation", + "value": 0 + }, + { + "name": "SavePoint", + "value": 1 + }, + { + "name": "Base", + "value": 2 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.Offset[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::Offset", + "class_size": 200, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3154944665, + "hash2": 466547137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSpawnPoint", + "type_name_2": "ecs.PlayerSpawnPoint", + "qualified_name": "keen::ecs::PlayerSpawnPoint", + "referenced_type_name": "keen::ecs::Component", + "class_size": 204, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 134614641, + "hash2": 939677150, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ecs::PlayerSpawnType", + "type_hash": 2301680813, + "data_offset": 0 + }, + { + "name": "landingPads", + "type_name": "keen::StaticArray", + "type_hash": 3154944665, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryId", + "type_name_2": "ecs.QueryId", + "qualified_name": "keen::ecs::QueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3140006392, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsPlayerInSight", + "type_name_2": "ecs.IsPlayerInSight", + "qualified_name": "keen::ecs::IsPlayerInSight", + "referenced_type_name": "keen::ecs::Component", + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 810592526, + "hash2": 1733646556, + "struct_fields": [ + { + "name": "isInSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 4 + }, + { + "name": "nextQueryUpdate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sourceOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + }, + { + "name": "targetOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocalPlayerMask", + "type_name_2": "ecs.LocalPlayerMask", + "qualified_name": "keen::ecs::LocalPlayerMask", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2480285131, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsLocalPlayerInRange", + "type_name_2": "ecs.IsLocalPlayerInRange", + "qualified_name": "keen::ecs::IsLocalPlayerInRange", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 210687781, + "hash2": 2353905344, + "struct_fields": [ + { + "name": "rangeMargin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "arePlayersInRangeMask", + "type_name": "keen::ecs::LocalPlayerMask", + "type_hash": 2480285131, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerShapeType", + "type_name_2": "ecs.TriggerShapeType", + "qualified_name": "keen::ecs::TriggerShapeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2956812314, + "hash2": 4016636613, + "struct_fields": [], + "enum_fields": [ + { + "name": "Range", + "value": 0 + }, + { + "name": "Box", + "value": 1 + } + ] + }, + { + "type_name_1": "TriggerShape", + "type_name_2": "ecs.TriggerShape", + "qualified_name": "keen::ecs::TriggerShape", + "referenced_type_name": "keen::ecs::Component", + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1481697402, + "hash2": 34587336, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ecs::TriggerShapeType", + "type_hash": 2956812314, + "data_offset": 0 + }, + { + "name": "rangeX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "rangeY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "rangeZ", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloorMaterialShape", + "type_name_2": "FloorMaterialShape", + "qualified_name": "keen::FloorMaterialShape", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1069378994, + "hash2": 951761826, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "HalfRadiusClump", + "value": 1 + }, + { + "name": "HalfRadiusClumpPeekOut", + "value": 2 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BaseVoxelMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1870839069, + "hash2": 2862255911, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloorMaterial", + "type_name_2": "ecs.FloorMaterial", + "qualified_name": "keen::ecs::FloorMaterial", + "referenced_type_name": "keen::ecs::Component", + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 770592770, + "hash2": 2569720321, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 1870839069, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "shape", + "type_name": "keen::FloorMaterialShape", + "type_hash": 1069378994, + "data_offset": 20 + }, + { + "name": "noiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TriggerShape[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TriggerShape", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3238309747, + "hash2": 2152587993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TriggerShapes", + "type_name_2": "ecs.TriggerShapes", + "qualified_name": "keen::ecs::TriggerShapes", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 274548267, + "hash2": 2520547822, + "struct_fields": [ + { + "name": "shapes", + "type_name": "keen::BlobArray", + "type_hash": 3238309747, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogResistanceState", + "type_name_2": "ecs.FogResistanceState", + "qualified_name": "keen::ecs::FogResistanceState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2837900617, + "hash2": 348735389, + "struct_fields": [ + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AudioResourceComponent", + "type_name_2": "ecs.AudioResourceComponent", + "qualified_name": "keen::ecs::AudioResourceComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2493775034, + "hash2": 292487097, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AudioComponent", + "type_name_2": "ecs.AudioComponent", + "qualified_name": "keen::ecs::AudioComponent", + "referenced_type_name": "keen::ecs::FxComponent", + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 615556526, + "hash2": 1065260771, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 12 + }, + { + "name": "stopOnDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "attachToParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 54 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AudioComponentVolatile", + "type_name_2": "ecs.AudioComponentVolatile", + "qualified_name": "keen::ecs::AudioComponentVolatile", + "referenced_type_name": "keen::ecs::AudioComponent", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2566223418, + "hash2": 2265559479, + "struct_fields": [ + { + "name": "lastSoundContainer", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientQueryId", + "type_name_2": "ecs.AmbientQueryId", + "qualified_name": "keen::ecs::AmbientQueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1922133338, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSystemQuery", + "type_name_2": "ecs.AmbientSystemQuery", + "qualified_name": "keen::ecs::AmbientSystemQuery", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 870958372, + "hash2": 352919125, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::AmbientQueryId", + "type_hash": 1922133338, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagId", + "type_name_2": "LocaTagId", + "qualified_name": "keen::LocaTagId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 186191172, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiInteractable", + "type_name_2": "ecs.UiInteractable", + "qualified_name": "keen::ecs::UiInteractable", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2463090963, + "hash2": 2387020804, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "verbId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 4 + }, + { + "name": "hintRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryTest", + "type_name_2": "ecs.QueryTest", + "qualified_name": "keen::ecs::QueryTest", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1462039981, + "hash2": 2311994742, + "struct_fields": [ + { + "name": "queryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DespawnLink", + "type_name_2": "ecs.DespawnLink", + "qualified_name": "keen::ecs::DespawnLink", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2047873679, + "hash2": 4213786230, + "struct_fields": [ + { + "name": "parentEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "despawnOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Transform", + "type_name_2": "ecs.Transform", + "qualified_name": "keen::ecs::Transform", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3337399369, + "hash2": 3570692184, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurrentTransform", + "type_name_2": "ecs.CurrentTransform", + "qualified_name": "keen::ecs::CurrentTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 41600356, + "hash2": 1855930734, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTransform", + "type_name_2": "ecs.RenderTransform", + "qualified_name": "keen::ecs::RenderTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 176, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 998536925, + "hash2": 3771653943, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "interpolationSource", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 56 + }, + { + "name": "interpolationTarget", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 112 + }, + { + "name": "interpolationNewestTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetDataBreakPointMessage", + "type_name_2": "ecs.SetDataBreakPointMessage", + "qualified_name": "keen::ecs::SetDataBreakPointMessage", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3560144869, + "hash2": 2453010378, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "dynamicType", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 10 + }, + { + "name": "write", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComponentMessageEntry", + "type_name_2": "ecs.ComponentMessageEntry", + "qualified_name": "keen::ecs::ComponentMessageEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2413626887, + "hash2": 2392286851, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "dynamicType", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "templateType", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "affinity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "queryAffinity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ComponentMessageEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ComponentMessageEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2589959974, + "hash2": 608338288, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ComponentMessage", + "type_name_2": "ecs.ComponentMessage", + "qualified_name": "keen::ecs::ComponentMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1908625641, + "hash2": 2442183568, + "struct_fields": [ + { + "name": "components", + "type_name": "keen::BlobArray", + "type_hash": 2589959974, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint64[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint64", + "class_size": 72, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 3102136493, + "hash2": 1009011633, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EcsComponentsMask", + "type_name_2": "ecs.EcsComponentsMask", + "qualified_name": "keen::ecs::EcsComponentsMask", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1012094568, + "hash2": 2258408449, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::StaticArray", + "type_hash": 3102136493, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EcsSystemsMask", + "type_name_2": "ecs.EcsSystemsMask", + "qualified_name": "keen::ecs::EcsSystemsMask", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3546902226, + "hash2": 449878329, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint64[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint64", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3066756874, + "hash2": 1010144466, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EcsEventsMask", + "type_name_2": "ecs.EcsEventsMask", + "qualified_name": "keen::ecs::EcsEventsMask", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1691249857, + "hash2": 1898865111, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::StaticArray", + "type_hash": 3066756874, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateMessageEntry", + "type_name_2": "ecs.TemplateMessageEntry", + "qualified_name": "keen::ecs::TemplateMessageEntry", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2918036648, + "hash2": 242464133, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 16 + }, + { + "name": "componentsMask", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TemplateMessageEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TemplateMessageEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2965476825, + "hash2": 1480669892, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateMessage", + "type_name_2": "ecs.TemplateMessage", + "qualified_name": "keen::ecs::TemplateMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3311506276, + "hash2": 1189517174, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::BlobArray", + "type_hash": 2965476825, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityMessageEntry", + "type_name_2": "ecs.EntityMessageEntry", + "qualified_name": "keen::ecs::EntityMessageEntry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3556568817, + "hash2": 1667494644, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "templateIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.EntityMessageEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::EntityMessageEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2248806854, + "hash2": 4002074186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TotalEntityMessage", + "type_name_2": "ecs.TotalEntityMessage", + "qualified_name": "keen::ecs::TotalEntityMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 550348799, + "hash2": 1801206553, + "struct_fields": [ + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 2248806854, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeEntityMessage", + "type_name_2": "ecs.ChangeEntityMessage", + "qualified_name": "keen::ecs::ChangeEntityMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1321879131, + "hash2": 3686320479, + "struct_fields": [ + { + "name": "createdEntities", + "type_name": "keen::BlobArray", + "type_hash": 2248806854, + "data_offset": 0 + }, + { + "name": "destroyedEntities", + "type_name": "keen::BlobArray", + "type_hash": 2248806854, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TickMessage", + "type_name_2": "ecs.TickMessage", + "qualified_name": "keen::ecs::TickMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1725913237, + "hash2": 2334198112, + "struct_fields": [ + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "entitiesAdded", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entitiesRemoved", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "eventCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "messageCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfoComponentDependencies", + "type_name_2": "ecs.ProgramInfoComponentDependencies", + "qualified_name": "keen::ecs::ProgramInfoComponentDependencies", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 585603689, + "hash2": 3067734039, + "struct_fields": [ + { + "name": "required", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 0 + }, + { + "name": "optional", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfoDependencies", + "type_name_2": "ecs.ProgramInfoDependencies", + "qualified_name": "keen::ecs::ProgramInfoDependencies", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3665301452, + "hash2": 1072001718, + "struct_fields": [ + { + "name": "components", + "type_name": "keen::ecs::ProgramInfoComponentDependencies", + "type_hash": 585603689, + "data_offset": 0 + }, + { + "name": "templateComponents", + "type_name": "keen::ecs::ProgramInfoComponentDependencies", + "type_hash": 585603689, + "data_offset": 144 + }, + { + "name": "externalSystems", + "type_name": "keen::ecs::EcsSystemsMask", + "type_hash": 3546902226, + "data_offset": 288 + }, + { + "name": "entityComponents", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 296 + }, + { + "name": "entityTemplates", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 368 + }, + { + "name": "events", + "type_name": "keen::ecs::EcsEventsMask", + "type_hash": 1691249857, + "data_offset": 440 + }, + { + "name": "isThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 456 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfoReadWriteDependency", + "type_name_2": "ecs.ProgramInfoReadWriteDependency", + "qualified_name": "keen::ecs::ProgramInfoReadWriteDependency", + "referenced_type_name": null, + "class_size": 1072, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1709384937, + "hash2": 1033503495, + "struct_fields": [ + { + "name": "read", + "type_name": "keen::ecs::ProgramInfoDependencies", + "type_hash": 3665301452, + "data_offset": 0 + }, + { + "name": "write", + "type_name": "keen::ecs::ProgramInfoDependencies", + "type_hash": 3665301452, + "data_offset": 464 + }, + { + "name": "forbiddenComponents", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 928 + }, + { + "name": "requiredComponents", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 1000 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramId", + "type_name_2": "ecs.ProgramId", + "qualified_name": "keen::ecs::ProgramId", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3720995660, + "hash2": 3239020597, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfo", + "type_name_2": "ecs.ProgramInfo", + "qualified_name": "keen::ecs::ProgramInfo", + "referenced_type_name": null, + "class_size": 1096, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2779705713, + "hash2": 1844562398, + "struct_fields": [ + { + "name": "programId", + "type_name": "keen::ecs::ProgramId", + "type_hash": 3720995660, + "data_offset": 0 + }, + { + "name": "programName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 4 + }, + { + "name": "isPresentation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "isDisabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "isSystem", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "isInit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "noPrediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "isDeactivated", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "isDeactivatedPrediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "dependencies", + "type_name": "keen::ecs::ProgramInfoReadWriteDependency", + "type_hash": 1709384937, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ProgramInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ProgramInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2363386316, + "hash2": 3009885134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ProgramsMessage", + "type_name_2": "ecs.ProgramsMessage", + "qualified_name": "keen::ecs::ProgramsMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1854179053, + "hash2": 699876151, + "struct_fields": [ + { + "name": "programs", + "type_name": "keen::BlobArray", + "type_hash": 2363386316, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EventTypesMessageEntry", + "type_name_2": "ecs.EventTypesMessageEntry", + "qualified_name": "keen::ecs::EventTypesMessageEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3753609455, + "hash2": 2962153764, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "serverRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "serverWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "clientRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "clientWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.EventTypesMessageEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::EventTypesMessageEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1486383632, + "hash2": 1679325979, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EventTypesMessage", + "type_name_2": "ecs.EventTypesMessage", + "qualified_name": "keen::ecs::EventTypesMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2881667649, + "hash2": 2492667990, + "struct_fields": [ + { + "name": "events", + "type_name": "keen::BlobArray", + "type_hash": 1486383632, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExternalSystemsMessageEntry", + "type_name_2": "ecs.ExternalSystemsMessageEntry", + "qualified_name": "keen::ecs::ExternalSystemsMessageEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1062056087, + "hash2": 1007838968, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "readThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "writeThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "serverRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "serverWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "clientRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "clientWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ExternalSystemsMessageEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ExternalSystemsMessageEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 617343398, + "hash2": 2905563518, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExternalSystemsMessage", + "type_name_2": "ecs.ExternalSystemsMessage", + "qualified_name": "keen::ecs::ExternalSystemsMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1240056697, + "hash2": 2408759172, + "struct_fields": [ + { + "name": "systems", + "type_name": "keen::BlobArray", + "type_hash": 617343398, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TaskSlotsMessageProgram", + "type_name_2": "ecs.TaskSlotsMessageProgram", + "qualified_name": "keen::ecs::TaskSlotsMessageProgram", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4079086978, + "hash2": 102579566, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "storageCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "chunkCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "entityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TaskSlotsMessageProgram[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TaskSlotsMessageProgram", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3913930613, + "hash2": 2578605921, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TaskSlotsMessageEntry", + "type_name_2": "ecs.TaskSlotsMessageEntry", + "qualified_name": "keen::ecs::TaskSlotsMessageEntry", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3665750922, + "hash2": 2891945824, + "struct_fields": [ + { + "name": "componentsRead", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 0 + }, + { + "name": "componentsWrite", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 72 + }, + { + "name": "systemsRead", + "type_name": "keen::ecs::EcsSystemsMask", + "type_hash": 3546902226, + "data_offset": 144 + }, + { + "name": "systemsWrite", + "type_name": "keen::ecs::EcsSystemsMask", + "type_hash": 3546902226, + "data_offset": 152 + }, + { + "name": "entitiesRead", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 160 + }, + { + "name": "entitiesWrite", + "type_name": "keen::ecs::EcsComponentsMask", + "type_hash": 1012094568, + "data_offset": 232 + }, + { + "name": "isThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 304 + }, + { + "name": "programs", + "type_name": "keen::BlobArray", + "type_hash": 3913930613, + "data_offset": 308 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TaskSlotsMessageEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TaskSlotsMessageEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1574552525, + "hash2": 2551778187, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TaskSlotsMessage", + "type_name_2": "ecs.TaskSlotsMessage", + "qualified_name": "keen::ecs::TaskSlotsMessage", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3816472866, + "hash2": 1203076016, + "struct_fields": [ + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 1574552525, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SendTaskSlotsMessage", + "type_name_2": "ecs.SendTaskSlotsMessage", + "qualified_name": "keen::ecs::SendTaskSlotsMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3332318284, + "hash2": 1935913025, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartEntityUpdateMessage", + "type_name_2": "ecs.StartEntityUpdateMessage", + "qualified_name": "keen::ecs::StartEntityUpdateMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3071812274, + "hash2": 2954624264, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopEntityUpdateMessage", + "type_name_2": "ecs.StopEntityUpdateMessage", + "qualified_name": "keen::ecs::StopEntityUpdateMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2145233984, + "hash2": 2954624264, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityComponentEntry", + "type_name_2": "ecs.EntityComponentEntry", + "qualified_name": "keen::ecs::EntityComponentEntry", + "referenced_type_name": null, + "class_size": 6, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2125004313, + "hash2": 2423561260, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.EntityComponentEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::EntityComponentEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 711678378, + "hash2": 311543975, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "uint64[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::uint64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2231475991, + "hash2": 1522504461, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityComponentMessage", + "type_name_2": "ecs.EntityComponentMessage", + "qualified_name": "keen::ecs::EntityComponentMessage", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3018653710, + "hash2": 3394555390, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "components", + "type_name": "keen::BlobArray", + "type_hash": 711678378, + "data_offset": 4 + }, + { + "name": "buffer", + "type_name": "keen::BlobArray", + "type_hash": 2231475991, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTemplateMessage", + "type_name_2": "ecs.EntityTemplateMessage", + "qualified_name": "keen::ecs::EntityTemplateMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 417824241, + "hash2": 3947064425, + "struct_fields": [ + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "templateData", + "type_name": "keen::BlobArray", + "type_hash": 2231475991, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.EntityId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2272971934, + "hash2": 3054095861, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StartTimelineMessage", + "type_name_2": "ecs.StartTimelineMessage", + "qualified_name": "keen::ecs::StartTimelineMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1487362605, + "hash2": 4222818662, + "struct_fields": [ + { + "name": "entityIds", + "type_name": "keen::BlobArray", + "type_hash": 2272971934, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopTimelineMessage", + "type_name_2": "ecs.StopTimelineMessage", + "qualified_name": "keen::ecs::StopTimelineMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 577932899, + "hash2": 1935913025, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdjustTick", + "type_name_2": "ecs.AdjustTick", + "qualified_name": "keen::ecs::AdjustTick", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1880576389, + "hash2": 855351105, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Reset", + "value": 1 + }, + { + "name": "Inc", + "value": 2 + }, + { + "name": "Dec", + "value": 3 + } + ] + }, + { + "type_name_1": "TimelineFrameMessage", + "type_name_2": "ecs.TimelineFrameMessage", + "qualified_name": "keen::ecs::TimelineFrameMessage", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2934361808, + "hash2": 1323312213, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "systemTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastSystemTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "tickCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "currentTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "lastTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "frameDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "frameTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "nextTickTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "tickInterpolationFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "adjustTick", + "type_name": "keen::ecs::AdjustTick", + "type_hash": 1880576389, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UpdateGameTimeMessage", + "type_name_2": "ecs.UpdateGameTimeMessage", + "qualified_name": "keen::ecs::UpdateGameTimeMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1879090108, + "hash2": 2072246051, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugQueryMessage", + "type_name_2": "ecs.DebugQueryMessage", + "qualified_name": "keen::ecs::DebugQueryMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2762703841, + "hash2": 352919125, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityStateComponent", + "type_name_2": "ecs.EntityStateComponent", + "qualified_name": "keen::ecs::EntityStateComponent", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1019981552, + "hash2": 110740880, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "offset0", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "offset1", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityStateData", + "type_name_2": "ecs.TimelineEntityStateData", + "qualified_name": "keen::ecs::TimelineEntityStateData", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 699650512, + "hash2": 3076391585, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "gridCellId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "dirtyValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "dataTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "isCulled", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 76 + }, + { + "name": "isCulledPrediction", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 78 + }, + { + "name": "playerMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.EntityStateComponent[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::EntityStateComponent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2853886205, + "hash2": 2907108333, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityState", + "type_name_2": "ecs.TimelineEntityState", + "qualified_name": "keen::ecs::TimelineEntityState", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 69826280, + "hash2": 3335419922, + "struct_fields": [ + { + "name": "entity0", + "type_name": "keen::ecs::TimelineEntityStateData", + "type_hash": 699650512, + "data_offset": 0 + }, + { + "name": "entity1", + "type_name": "keen::ecs::TimelineEntityStateData", + "type_hash": 699650512, + "data_offset": 88 + }, + { + "name": "components", + "type_name": "keen::BlobArray", + "type_hash": 2853886205, + "data_offset": 176 + }, + { + "name": "buffer", + "type_name": "keen::BlobArray", + "type_hash": 2231475991, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineSystemCounts", + "type_name_2": "ecs.TimelineSystemCounts", + "qualified_name": "keen::ecs::TimelineSystemCounts", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2973994261, + "hash2": 3338445672, + "struct_fields": [ + { + "name": "entities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sceneEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "activeSceneChunks", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineCamera", + "type_name_2": "ecs.TimelineCamera", + "qualified_name": "keen::ecs::TimelineCamera", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2886096427, + "hash2": 1334860837, + "struct_fields": [ + { + "name": "transform0", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "transform1", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TimelineEntityState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TimelineEntityState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1421453831, + "hash2": 2343315670, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineSystemUpdateMessage", + "type_name_2": "ecs.TimelineSystemUpdateMessage", + "qualified_name": "keen::ecs::TimelineSystemUpdateMessage", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 230113699, + "hash2": 3649757314, + "struct_fields": [ + { + "name": "time0", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "time1", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "frameTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "frameDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "lastTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "tickFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "startCounts", + "type_name": "keen::ecs::TimelineSystemCounts", + "type_hash": 2973994261, + "data_offset": 44 + }, + { + "name": "endCounts", + "type_name": "keen::ecs::TimelineSystemCounts", + "type_hash": 2973994261, + "data_offset": 56 + }, + { + "name": "createdEntities", + "type_name": "keen::BlobArray", + "type_hash": 2248806854, + "data_offset": 68 + }, + { + "name": "destroyedEntities", + "type_name": "keen::BlobArray", + "type_hash": 2248806854, + "data_offset": 76 + }, + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 1421453831, + "data_offset": 84 + }, + { + "name": "camera", + "type_name": "keen::ecs::TimelineCamera", + "type_hash": 2886096427, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationPriorityEntry", + "type_name_2": "ecs.TimelineReplicationPriorityEntry", + "qualified_name": "keen::ecs::TimelineReplicationPriorityEntry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3404752934, + "hash2": 540485162, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "priority", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TimelineReplicationPriorityEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TimelineReplicationPriorityEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3048667523, + "hash2": 3248638052, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationPriorityMessage", + "type_name_2": "ecs.TimelineReplicationPriorityMessage", + "qualified_name": "keen::ecs::TimelineReplicationPriorityMessage", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2306798877, + "hash2": 777867956, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "clientEntries", + "type_name": "keen::BlobArray", + "type_hash": 3048667523, + "data_offset": 16 + }, + { + "name": "predictionEntries", + "type_name": "keen::BlobArray", + "type_hash": 3048667523, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntitySkipReason", + "type_name_2": "ecs.TimelineEntitySkipReason", + "qualified_name": "keen::ecs::TimelineEntitySkipReason", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3051509632, + "hash2": 2492902046, + "struct_fields": [], + "enum_fields": [ + { + "name": "NothingChanged", + "value": 0 + }, + { + "name": "TooBig", + "value": 1 + } + ] + }, + { + "type_name_1": "TimelineEntitySkipMessage", + "type_name_2": "ecs.TimelineEntitySkipMessage", + "qualified_name": "keen::ecs::TimelineEntitySkipMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1975402635, + "hash2": 2274396318, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "reason", + "type_name": "keen::ecs::TimelineEntitySkipReason", + "type_hash": 3051509632, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntitySendMessage", + "type_name_2": "ecs.TimelineEntitySendMessage", + "qualified_name": "keen::ecs::TimelineEntitySendMessage", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2103578440, + "hash2": 3983847265, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "create", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "messageData", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityRecvMessage", + "type_name_2": "ecs.TimelineEntityRecvMessage", + "qualified_name": "keen::ecs::TimelineEntityRecvMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1005961450, + "hash2": 2400107157, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "create", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityProcessMessage", + "type_name_2": "ecs.TimelineEntityProcessMessage", + "qualified_name": "keen::ecs::TimelineEntityProcessMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2713691923, + "hash2": 2400107157, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "create", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineInputSendMessage", + "type_name_2": "ecs.TimelineInputSendMessage", + "qualified_name": "keen::ecs::TimelineInputSendMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3370349693, + "hash2": 1435023992, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineInputRecvMessage", + "type_name_2": "ecs.TimelineInputRecvMessage", + "qualified_name": "keen::ecs::TimelineInputRecvMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2684049951, + "hash2": 1435023992, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationComponent", + "type_name_2": "ecs.TimelineReplicationComponent", + "qualified_name": "keen::ecs::TimelineReplicationComponent", + "referenced_type_name": null, + "class_size": 6, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2572994921, + "hash2": 2585086176, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "deltaSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TimelineReplicationComponent[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TimelineReplicationComponent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1878526994, + "hash2": 3522714121, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationTemplate", + "type_name_2": "ecs.TimelineReplicationTemplate", + "qualified_name": "keen::ecs::TimelineReplicationTemplate", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1971197452, + "hash2": 3898592405, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "checkedEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "updatedEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "components", + "type_name": "keen::BlobArray", + "type_hash": 1878526994, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationEvent", + "type_name_2": "ecs.TimelineReplicationEvent", + "qualified_name": "keen::ecs::TimelineReplicationEvent", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1507593190, + "hash2": 3486796529, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TimelineReplicationTemplate[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TimelineReplicationTemplate", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2232066023, + "hash2": 3154033247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TimelineReplicationEvent[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TimelineReplicationEvent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4003860203, + "hash2": 3891732034, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationStatisticsData", + "type_name_2": "ecs.TimelineReplicationStatisticsData", + "qualified_name": "keen::ecs::TimelineReplicationStatisticsData", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 963652621, + "hash2": 3274613999, + "struct_fields": [ + { + "name": "prioQueueSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "dirtyEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "changedEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "createdEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "destroyedEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "messageCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "messageSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "totalEventCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "totalEventSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "templates", + "type_name": "keen::BlobArray", + "type_hash": 2232066023, + "data_offset": 36 + }, + { + "name": "events", + "type_name": "keen::BlobArray", + "type_hash": 4003860203, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationStatisticsMessage", + "type_name_2": "ecs.TimelineReplicationStatisticsMessage", + "qualified_name": "keen::ecs::TimelineReplicationStatisticsMessage", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 330961324, + "hash2": 1676928290, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "playerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "client", + "type_name": "keen::ecs::TimelineReplicationStatisticsData", + "type_hash": 963652621, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::ecs::TimelineReplicationStatisticsData", + "type_hash": 963652621, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelinePredictionEntityState", + "type_name_2": "ecs.TimelinePredictionEntityState", + "qualified_name": "keen::ecs::TimelinePredictionEntityState", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 511637587, + "hash2": 898591234, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "dataTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "isDirty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "isDestroyed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "components", + "type_name": "keen::BlobArray", + "type_hash": 711678378, + "data_offset": 12 + }, + { + "name": "buffer", + "type_name": "keen::BlobArray", + "type_hash": 2231475991, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TimelinePredictionEntityState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TimelinePredictionEntityState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3344392022, + "hash2": 451636330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelinePredictionUpdateMessage", + "type_name_2": "ecs.TimelinePredictionUpdateMessage", + "qualified_name": "keen::ecs::TimelinePredictionUpdateMessage", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1451827311, + "hash2": 925538581, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "startTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "clientTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "lastTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "sourceTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 3344392022, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelinePredictionTickMessage", + "type_name_2": "ecs.TimelinePredictionTickMessage", + "qualified_name": "keen::ecs::TimelinePredictionTickMessage", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2275340487, + "hash2": 1352447290, + "struct_fields": [ + { + "name": "time0", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "time1", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 3344392022, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCellEntity", + "type_name_2": "ecs.SceneCellEntity", + "qualified_name": "keen::ecs::SceneCellEntity", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 644921578, + "hash2": 3781762973, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "templateIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "clientCulledMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "predictionCulledMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "isUncullable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "hasPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "isDynamic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SceneCellEntity[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SceneCellEntity", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3136421997, + "hash2": 838140905, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCellMessage", + "type_name_2": "ecs.SceneCellMessage", + "qualified_name": "keen::ecs::SceneCellMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 735845364, + "hash2": 3216114537, + "struct_fields": [ + { + "name": "cellPosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "cellIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 3136421997, + "data_offset": 12 + }, + { + "name": "sceneEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneChunkState", + "type_name_2": "ecs.SceneChunkState", + "qualified_name": "keen::ecs::SceneChunkState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2229096775, + "hash2": 1546770610, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unloaded", + "value": 0 + }, + { + "name": "Load", + "value": 1 + }, + { + "name": "Loaded", + "value": 2 + }, + { + "name": "Unload", + "value": 3 + } + ] + }, + { + "type_name_1": "SceneChunkEntry", + "type_name_2": "ecs.SceneChunkEntry", + "qualified_name": "keen::ecs::SceneChunkEntry", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1322145098, + "hash2": 3525504055, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ecs::SceneChunkState", + "type_hash": 2229096775, + "data_offset": 0 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "entityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "destroyedEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "unloadAge", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SceneChunkEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SceneChunkEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3353571837, + "hash2": 1038769904, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneChunksMessage", + "type_name_2": "ecs.SceneChunksMessage", + "qualified_name": "keen::ecs::SceneChunksMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4017716106, + "hash2": 2341166217, + "struct_fields": [ + { + "name": "chunks", + "type_name": "keen::BlobArray", + "type_hash": 3353571837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneZoneBox", + "type_name_2": "ecs.SceneZoneBox", + "qualified_name": "keen::ecs::SceneZoneBox", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3332162200, + "hash2": 2556180932, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SceneZoneBox[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SceneZoneBox", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2728797633, + "hash2": 3128612564, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneBuildZonesMessage", + "type_name_2": "ecs.SceneBuildZonesMessage", + "qualified_name": "keen::ecs::SceneBuildZonesMessage", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1546213293, + "hash2": 3156490809, + "struct_fields": [ + { + "name": "allowedZones", + "type_name": "keen::BlobArray", + "type_hash": 2728797633, + "data_offset": 0 + }, + { + "name": "forbiddenZones", + "type_name": "keen::BlobArray", + "type_hash": 2728797633, + "data_offset": 8 + }, + { + "name": "activeZones", + "type_name": "keen::BlobArray", + "type_hash": 2728797633, + "data_offset": 16 + }, + { + "name": "playableZones", + "type_name": "keen::BlobArray", + "type_hash": 2728797633, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneMessage", + "type_name_2": "ecs.SceneMessage", + "qualified_name": "keen::ecs::SceneMessage", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3430922756, + "hash2": 776022433, + "struct_fields": [ + { + "name": "sceneGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "sceneChunkSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "entityGridSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "entityGridCellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneControlMessageType", + "type_name_2": "ecs.SceneControlMessageType", + "qualified_name": "keen::ecs::SceneControlMessageType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3327457045, + "hash2": 3752359083, + "struct_fields": [], + "enum_fields": [ + { + "name": "Start", + "value": 0 + }, + { + "name": "Stop", + "value": 1 + } + ] + }, + { + "type_name_1": "SceneControlMessage", + "type_name_2": "ecs.SceneControlMessage", + "qualified_name": "keen::ecs::SceneControlMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4228765, + "hash2": 2002882345, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ecs::SceneControlMessageType", + "type_hash": 3327457045, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "float2[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::float2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1627880561, + "hash2": 4179773848, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneHotPointsMessage", + "type_name_2": "ecs.SceneHotPointsMessage", + "qualified_name": "keen::ecs::SceneHotPointsMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 164169058, + "hash2": 3237681335, + "struct_fields": [ + { + "name": "hotPoints", + "type_name": "keen::BlobArray", + "type_hash": 1627880561, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneHotPointsFile", + "type_name_2": "ecs.SceneHotPointsFile", + "qualified_name": "keen::ecs::SceneHotPointsFile", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1479696501, + "hash2": 3237681335, + "struct_fields": [ + { + "name": "hotPoints", + "type_name": "keen::BlobArray", + "type_hash": 1627880561, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayerCamera", + "type_name_2": "ecs.ScenePlayerCamera", + "qualified_name": "keen::ecs::ScenePlayerCamera", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2878074959, + "hash2": 438593012, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "yRotation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ScenePlayerCamera[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::ScenePlayerCamera", + "class_size": 256, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1353443230, + "hash2": 3874380362, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayerCamerasMessage", + "type_name_2": "ecs.ScenePlayerCamerasMessage", + "qualified_name": "keen::ecs::ScenePlayerCamerasMessage", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1309541235, + "hash2": 3935665130, + "struct_fields": [ + { + "name": "cameras", + "type_name": "keen::StaticArray", + "type_hash": 1353443230, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneChunkResetMessage", + "type_name_2": "ecs.SceneChunkResetMessage", + "qualified_name": "keen::ecs::SceneChunkResetMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3487636564, + "hash2": 3246602957, + "struct_fields": [ + { + "name": "chunkIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryFlag", + "type_name_2": "ecs.QueryFlag", + "qualified_name": "keen::ecs::QueryFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 4194182575, + "hash2": 4097704143, + "struct_fields": [], + "enum_fields": [ + { + "name": "OnlyPlayer", + "value": 0 + }, + { + "name": "NoPlayers", + "value": 1 + }, + { + "name": "SortByDistance", + "value": 2 + }, + { + "name": "CheckLineOfSight", + "value": 3 + }, + { + "name": "PreferHullIntersection", + "value": 4 + }, + { + "name": "KeepResults", + "value": 5 + }, + { + "name": "OnlyPathBlockers", + "value": 6 + }, + { + "name": "NoPathBlockers", + "value": 7 + }, + { + "name": "AbortAfterFirstMatch", + "value": 8 + }, + { + "name": "DrawDebug", + "value": 9 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ecs::QueryFlag", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 906038130, + "hash2": 4219392508, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "QueryFlags", + "type_name_2": "ecs.QueryFlags", + "qualified_name": "keen::ecs::QueryFlags", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1729468756, + "hash2": 2852785162, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AxisAlignedBox", + "type_name_2": "AxisAlignedBox", + "qualified_name": "keen::AxisAlignedBox", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1117989454, + "hash2": 597152260, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneColliderQueryEntry", + "type_name_2": "ecs.SceneColliderQueryEntry", + "qualified_name": "keen::ecs::SceneColliderQueryEntry", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1026184997, + "hash2": 641216330, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "programId", + "type_name": "keen::ecs::ProgramId", + "type_hash": 3720995660, + "data_offset": 8 + }, + { + "name": "templateIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::ecs::QueryFlags", + "type_hash": 1729468756, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "colliderAabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 32 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 64 + }, + { + "name": "resultCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "checkWorldTriangles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RangeQueryId", + "type_name_2": "ecs.RangeQueryId", + "qualified_name": "keen::ecs::RangeQueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4137681893, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRangeQueryEntry", + "type_name_2": "ecs.SceneRangeQueryEntry", + "qualified_name": "keen::ecs::SceneRangeQueryEntry", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3514266566, + "hash2": 1142334784, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "programId", + "type_name": "keen::ecs::ProgramId", + "type_hash": 3720995660, + "data_offset": 8 + }, + { + "name": "templateIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "componentId", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 32 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 68 + }, + { + "name": "resultCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SceneColliderQueryEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SceneColliderQueryEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2531746160, + "hash2": 1233476084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SceneRangeQueryEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SceneRangeQueryEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3502546327, + "hash2": 3840034753, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneQueriesMessage", + "type_name_2": "ecs.SceneQueriesMessage", + "qualified_name": "keen::ecs::SceneQueriesMessage", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1443453930, + "hash2": 922156655, + "struct_fields": [ + { + "name": "triangleQueryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "colliderQueries", + "type_name": "keen::BlobArray", + "type_hash": 2531746160, + "data_offset": 4 + }, + { + "name": "rangeQueries", + "type_name": "keen::BlobArray", + "type_hash": 3502546327, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "sint16", + "type_name_2": "sint16", + "qualified_name": "keen::sint16", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 0, + "primitive_type": "Sint16", + "hash1": 1285853487, + "hash2": 2623436440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimeControlMessage", + "type_name_2": "ecs.TimeControlMessage", + "qualified_name": "keen::ecs::TimeControlMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2365926946, + "hash2": 2580032478, + "struct_fields": [ + { + "name": "tickDelta", + "type_name": "keen::sint16", + "type_hash": 1285853487, + "data_offset": 0 + }, + { + "name": "sleep", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sleepOnce", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyEntityMessage", + "type_name_2": "ecs.DestroyEntityMessage", + "qualified_name": "keen::ecs::DestroyEntityMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3834169655, + "hash2": 2954624264, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::Template", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1554074834, + "hash2": 2695120807, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateReference", + "type_name_2": "ecs.TemplateReference", + "qualified_name": "keen::ecs::TemplateReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1698873882, + "hash2": 807489489, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilterTemplateEntry", + "type_name_2": "HolisticMapFilterTemplateEntry", + "qualified_name": "keen::HolisticMapFilterTemplateEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1557104245, + "hash2": 3220060687, + "struct_fields": [ + { + "name": "templateReference", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "showChildTemplates", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestState", + "type_name_2": "ecs.TestState", + "qualified_name": "keen::ecs::TestState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 780676420, + "hash2": 2240469631, + "struct_fields": [], + "enum_fields": [ + { + "name": "Destroyed", + "value": 0 + }, + { + "name": "Create", + "value": 1 + }, + { + "name": "Created", + "value": 2 + }, + { + "name": "Destroy", + "value": 3 + } + ] + }, + { + "type_name_1": "TestA", + "type_name_2": "ecs.TestA", + "qualified_name": "keen::ecs::TestA", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4183622742, + "hash2": 248541072, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "stateB", + "type_name": "keen::ecs::TestState", + "type_hash": 780676420, + "data_offset": 12 + }, + { + "name": "stateC", + "type_name": "keen::ecs::TestState", + "type_hash": 780676420, + "data_offset": 13 + }, + { + "name": "stateD", + "type_name": "keen::ecs::TestState", + "type_hash": 780676420, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestB", + "type_name_2": "ecs.TestB", + "qualified_name": "keen::ecs::TestB", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4166845123, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestC", + "type_name_2": "ecs.TestC", + "qualified_name": "keen::ecs::TestC", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4150067504, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestD", + "type_name_2": "ecs.TestD", + "qualified_name": "keen::ecs::TestD", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4267510837, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestTemplateA", + "type_name_2": "ecs.TestTemplateA", + "qualified_name": "keen::ecs::TestTemplateA", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2503398688, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTestTemplateA", + "type_name_2": "ecs.DynamicTestTemplateA", + "qualified_name": "keen::ecs::DynamicTestTemplateA", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1376936809, + "hash2": 4166791629, + "struct_fields": [ + { + "name": "defValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestTemplateB", + "type_name_2": "ecs.TestTemplateB", + "qualified_name": "keen::ecs::TestTemplateB", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2553731545, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTestTemplateB", + "type_name_2": "ecs.DynamicTestTemplateB", + "qualified_name": "keen::ecs::DynamicTestTemplateB", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1326603952, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTypeTestTemplate", + "type_name_2": "ecs.DynamicTypeTestTemplate", + "qualified_name": "keen::ecs::DynamicTypeTestTemplate", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2727928778, + "hash2": 1341587613, + "struct_fields": [ + { + "name": "values", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBase", + "type_name_2": "ecs.TestBase", + "qualified_name": "keen::ecs::TestBase", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4223027582, + "hash2": 3570984610, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTestBase", + "type_name_2": "ecs.DynamicTestBase", + "qualified_name": "keen::ecs::DynamicTestBase", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2262201389, + "hash2": 3841622627, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "notSave", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "mainEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "start", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntry", + "type_name_2": "ecs.TestBaseEntry", + "qualified_name": "keen::ecs::TestBaseEntry", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2328533862, + "hash2": 255300104, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "spouseId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntryServer", + "type_name_2": "ecs.TestBaseEntryServer", + "qualified_name": "keen::ecs::TestBaseEntryServer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1076993953, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntryTemplateClient", + "type_name_2": "ecs.TestBaseEntryTemplateClient", + "qualified_name": "keen::ecs::TestBaseEntryTemplateClient", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2930221815, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntrySpawnClient", + "type_name_2": "ecs.TestBaseEntrySpawnClient", + "qualified_name": "keen::ecs::TestBaseEntrySpawnClient", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 765760030, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntryAddClient", + "type_name_2": "ecs.TestBaseEntryAddClient", + "qualified_name": "keen::ecs::TestBaseEntryAddClient", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1281763758, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Event", + "type_name_2": "ecs.Event", + "qualified_name": "keen::ecs::Event", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3634803397, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TestEvent1", + "type_name_2": "ecs.TestEvent1", + "qualified_name": "keen::ecs::TestEvent1", + "referenced_type_name": "keen::ecs::Event", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3182922960, + "hash2": 1872430613, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestEvent2", + "type_name_2": "ecs.TestEvent2", + "qualified_name": "keen::ecs::TestEvent2", + "referenced_type_name": "keen::ecs::Event", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3233255817, + "hash2": 1872430613, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestEventCreate", + "type_name_2": "ecs.TestEventCreate", + "qualified_name": "keen::ecs::TestEventCreate", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1045966577, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GridId", + "type_name_2": "ecs.GridId", + "qualified_name": "keen::ecs::GridId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3397132710, + "hash2": 2094163528, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryId", + "type_name_2": "ecs.PathQueryId", + "qualified_name": "keen::ecs::PathQueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 481614841, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryResultFlag", + "type_name_2": "ecs.QueryResultFlag", + "qualified_name": "keen::ecs::QueryResultFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 4131988486, + "hash2": 1664201208, + "struct_fields": [], + "enum_fields": [ + { + "name": "Hit", + "value": 0 + }, + { + "name": "QueryNew", + "value": 1 + }, + { + "name": "UpdateNew", + "value": 2 + }, + { + "name": "OutOfSight", + "value": 3 + }, + { + "name": "User2", + "value": 4 + }, + { + "name": "User3", + "value": 5 + }, + { + "name": "User4", + "value": 6 + }, + { + "name": "User5", + "value": 7 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::QueryResultFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1229434036, + "hash2": 834777857, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "QueryResultFlags", + "type_name_2": "ecs.QueryResultFlags", + "qualified_name": "keen::ecs::QueryResultFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 707028015, + "hash2": 3429382302, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionCheckFlag", + "type_name_2": "ecs.CollisionCheckFlag", + "qualified_name": "keen::ecs::CollisionCheckFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2977626469, + "hash2": 3204247010, + "struct_fields": [], + "enum_fields": [ + { + "name": "PreferHullIntersection", + "value": 0 + }, + { + "name": "Moved", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::CollisionCheckFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1755397973, + "hash2": 899906116, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionCheckFlags", + "type_name_2": "ecs.CollisionCheckFlags", + "qualified_name": "keen::ecs::CollisionCheckFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2056658338, + "hash2": 1101761351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Template", + "type_name_2": "ecs.Template", + "qualified_name": "keen::ecs::Template", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 243807589, + "hash2": 381031143, + "struct_fields": [ + { + "name": "predictEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "farCulling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "questEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 553, + "primitive_type": "BlobVariant", + "hash1": 1396952253, + "hash2": 3024838576, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4095249246, + "hash2": 2919574693, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateResource", + "type_name_2": "ecs.TemplateResource", + "qualified_name": "keen::ecs::TemplateResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 964069237, + "hash2": 2774462614, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "predictEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "farCulling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "components", + "type_name": "keen::BlobArray>", + "type_hash": 4095249246, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::TemplateResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4035273638, + "hash2": 1466118183, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateResourceReference", + "type_name_2": "ecs.TemplateResourceReference", + "qualified_name": "keen::ecs::TemplateResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4232341258, + "hash2": 4013280964, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateSubDirectory", + "type_name_2": "ecs.TemplateSubDirectory", + "qualified_name": "keen::ecs::TemplateSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1147051608, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateDirectory", + "type_name_2": "ecs.TemplateDirectory", + "qualified_name": "keen::ecs::TemplateDirectory", + "referenced_type_name": "keen::ecs::TemplateSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 475137032, + "hash2": 1796214361, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TemplateResourceReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TemplateResourceReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 429729649, + "hash2": 51822837, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateCollectionResource", + "type_name_2": "ecs.TemplateCollectionResource", + "qualified_name": "keen::ecs::TemplateCollectionResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3624919921, + "hash2": 3307692909, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::BlobArray", + "type_hash": 429729649, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::TemplateCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4138442978, + "hash2": 21394067, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateCollectionReference", + "type_name_2": "ecs.TemplateCollectionReference", + "qualified_name": "keen::ecs::TemplateCollectionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2830508686, + "hash2": 4140227246, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerInfo", + "type_name_2": "ecs.ServerInfo", + "qualified_name": "keen::ecs::ServerInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 940100128, + "hash2": 3176264116, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "avgDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "sceneEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "dynamicEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "sceneChunkCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "bandwidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFlagData", + "type_name_2": "ecs.ColliderFlagData", + "qualified_name": "keen::ecs::ColliderFlagData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 34332741, + "hash2": 2168056516, + "struct_fields": [ + { + "name": "isA", + "type_name": "keen::ecs::ColliderMask", + "type_hash": 2434446047, + "data_offset": 0 + }, + { + "name": "checkAgainst", + "type_name": "keen::ecs::ColliderMask", + "type_hash": 2434446047, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderModeSetup", + "type_name_2": "ecs.ColliderModeSetup", + "qualified_name": "keen::ecs::ColliderModeSetup", + "referenced_type_name": null, + "class_size": 7, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3745681217, + "hash2": 1211421298, + "struct_fields": [ + { + "name": "defaultMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "sitting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "lying", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "evading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "climbingWall", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "death", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "invisible", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderData", + "type_name_2": "ecs.ColliderData", + "qualified_name": "keen::ecs::ColliderData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3737383923, + "hash2": 1929414066, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ecs::ColliderFlagData", + "type_hash": 34332741, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 24 + }, + { + "name": "stickyness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "colliderModeSetup", + "type_name": "keen::ecs::ColliderModeSetup", + "type_hash": 3745681217, + "data_offset": 44 + }, + { + "name": "preventFallDamage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 51 + }, + { + "name": "isSnappingBox", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SphereColliderData", + "type_name_2": "ecs.SphereColliderData", + "qualified_name": "keen::ecs::SphereColliderData", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3475614442, + "hash2": 2911214538, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::SphereColliderShape", + "type_hash": 2636838440, + "data_offset": 56 + }, + { + "name": "continuous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpheroidColliderData", + "type_name_2": "ecs.SpheroidColliderData", + "qualified_name": "keen::ecs::SpheroidColliderData", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1729222041, + "hash2": 2850001672, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::SpheroidColliderShape", + "type_hash": 3737901973, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CapsuleColliderData", + "type_name_2": "ecs.CapsuleColliderData", + "qualified_name": "keen::ecs::CapsuleColliderData", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3334233186, + "hash2": 3976907803, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::CapsuleColliderShape", + "type_hash": 3929347074, + "data_offset": 56 + }, + { + "name": "continuous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SegmentColliderData", + "type_name_2": "ecs.SegmentColliderData", + "qualified_name": "keen::ecs::SegmentColliderData", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 626662964, + "hash2": 2762779913, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::SegmentColliderShape", + "type_hash": 1849352268, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovingSphereColliderData", + "type_name_2": "ecs.MovingSphereColliderData", + "qualified_name": "keen::ecs::MovingSphereColliderData", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 76, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4151846112, + "hash2": 1935935126, + "struct_fields": [ + { + "name": "sphereShape", + "type_name": "keen::SphereColliderShape", + "type_hash": 2636838440, + "data_offset": 56 + }, + { + "name": "segmentShape", + "type_name": "keen::SegmentColliderShape", + "type_hash": 1849352268, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoxColliderData", + "type_name_2": "ecs.BoxColliderData", + "qualified_name": "keen::ecs::BoxColliderData", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2283097140, + "hash2": 3641532832, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::BoxColliderShape", + "type_hash": 770072600, + "data_offset": 56 + }, + { + "name": "continuous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LineSegment", + "type_name_2": "ecs.LineSegment", + "qualified_name": "keen::ecs::LineSegment", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 757564950, + "hash2": 1908857753, + "struct_fields": [ + { + "name": "p0", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "p1", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.LineSegment[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::LineSegment", + "class_size": 128, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3578652442, + "hash2": 3420757440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SegmentBundleColliderData", + "type_name_2": "ecs.SegmentBundleColliderData", + "qualified_name": "keen::ecs::SegmentBundleColliderData", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 192, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2417794476, + "hash2": 2758020379, + "struct_fields": [ + { + "name": "segments", + "type_name": "keen::StaticArray", + "type_hash": 3578652442, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::ecs::ColliderData", + "class_size": 12, + "fields_count": 8, + "primitive_type": "BlobVariant", + "hash1": 2367422540, + "hash2": 304083722, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3364757675, + "hash2": 525072220, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderDataArray", + "type_name_2": "ecs.ColliderDataArray", + "qualified_name": "keen::ecs::ColliderDataArray", + "referenced_type_name": "keen::BlobArray>", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 785449800, + "hash2": 2603417491, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResolveFlag", + "type_name_2": "ecs.ColliderResolveFlag", + "qualified_name": "keen::ecs::ColliderResolveFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 3343408535, + "hash2": 2756253941, + "struct_fields": [], + "enum_fields": [ + { + "name": "Continuous", + "value": 0 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::ColliderResolveFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2134493399, + "hash2": 1884184907, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResolveMask", + "type_name_2": "ecs.ColliderResolveMask", + "qualified_name": "keen::ecs::ColliderResolveMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3657608745, + "hash2": 1938774658, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResourceData", + "type_name_2": "ecs.ColliderResourceData", + "qualified_name": "keen::ecs::ColliderResourceData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3538928751, + "hash2": 453800355, + "struct_fields": [ + { + "name": "dataArray", + "type_name": "keen::ecs::ColliderDataArray", + "type_hash": 785449800, + "data_offset": 0 + }, + { + "name": "combinedFlags", + "type_name": "keen::ecs::ColliderFlagData", + "type_hash": 34332741, + "data_offset": 8 + }, + { + "name": "resolveMask", + "type_name": "keen::ecs::ColliderResolveMask", + "type_hash": 3657608745, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionEvent", + "type_name_2": "ecs.CollisionEvent", + "qualified_name": "keen::ecs::CollisionEvent", + "referenced_type_name": "keen::ecs::Event", + "class_size": 52, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2570175987, + "hash2": 1157406380, + "struct_fields": [ + { + "name": "entityA", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "entityB", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "sqrDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "overlap", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "colliderFlagsA", + "type_name": "keen::ecs::ColliderMask", + "type_hash": 2434446047, + "data_offset": 40 + }, + { + "name": "colliderFlagsB", + "type_name": "keen::ecs::ColliderMask", + "type_hash": 2434446047, + "data_offset": 44 + }, + { + "name": "voxelMaterialId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnValue", + "type_name_2": "ecs.EntitySpawnValue", + "qualified_name": "keen::ecs::EntitySpawnValue", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 17, + "primitive_type": "Enum", + "hash1": 2358957540, + "hash2": 3580876705, + "struct_fields": [], + "enum_fields": [ + { + "name": "Velocity", + "value": 0 + }, + { + "name": "TintColor", + "value": 1 + }, + { + "name": "TriggerRange", + "value": 2 + }, + { + "name": "TriggerRange2", + "value": 3 + }, + { + "name": "TriggerRange3", + "value": 4 + }, + { + "name": "TriggerId_Unused", + "value": 5 + }, + { + "name": "ItemId", + "value": 6 + }, + { + "name": "EnemySettings", + "value": 7 + }, + { + "name": "RandomSpawnerSetting_AllowUpScaling", + "value": 8 + }, + { + "name": "RandomSpawnerSetting_AllowDownScaling", + "value": 9 + }, + { + "name": "RandomSpawnerSetting_MinSpawnerAmount", + "value": 10 + }, + { + "name": "EnemyTestFlags", + "value": 11 + }, + { + "name": "Level", + "value": 12 + }, + { + "name": "EnemyMarkerTag", + "value": 13 + }, + { + "name": "TeleporterId", + "value": 14 + }, + { + "name": "TeleportTargetId", + "value": 15 + }, + { + "name": "JumpParameters", + "value": 16 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::ecs::EntitySpawnValue", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1713287759, + "hash2": 808856346, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnValueMask", + "type_name_2": "ecs.EntitySpawnValueMask", + "qualified_name": "keen::ecs::EntitySpawnValueMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4027299700, + "hash2": 3349656648, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyFeature", + "type_name_2": "ecs.EnemyFeature", + "qualified_name": "keen::ecs::EnemyFeature", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 24, + "primitive_type": "Enum", + "hash1": 2377347389, + "hash2": 226249293, + "struct_fields": [], + "enum_fields": [ + { + "name": "UseTaunt", + "value": 0 + }, + { + "name": "UseThreatSystem", + "value": 1 + }, + { + "name": "UseBlocking", + "value": 2 + }, + { + "name": "Move", + "value": 3 + }, + { + "name": "Prowl", + "value": 4 + }, + { + "name": "Rotate", + "value": 5 + }, + { + "name": "RotateWhileStanding", + "value": 6 + }, + { + "name": "Patrol", + "value": 7 + }, + { + "name": "Roaming", + "value": 8 + }, + { + "name": "ShowSpawnSequence", + "value": 9 + }, + { + "name": "ReturnHome", + "value": 10 + }, + { + "name": "FleeHome", + "value": 11 + }, + { + "name": "Combat", + "value": 12 + }, + { + "name": "Interact", + "value": 13 + }, + { + "name": "TriggerAlarm", + "value": 14 + }, + { + "name": "CallForHelp", + "value": 15 + }, + { + "name": "Run", + "value": 16 + }, + { + "name": "IdleTurn", + "value": 17 + }, + { + "name": "BlockProjectiles", + "value": 18 + }, + { + "name": "SearchForCover", + "value": 19 + }, + { + "name": "MoveToMarker", + "value": 20 + }, + { + "name": "Sleep", + "value": 21 + }, + { + "name": "RunAround", + "value": 22 + }, + { + "name": "Circling", + "value": 23 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::ecs::EnemyFeature", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 53010400, + "hash2": 2331886129, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyFeatureMask", + "type_name_2": "ecs.EnemyFeatureMask", + "qualified_name": "keen::ecs::EnemyFeatureMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3432276225, + "hash2": 3712357158, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerTag", + "type_name_2": "ecs.EnemyMarkerTag", + "qualified_name": "keen::ecs::EnemyMarkerTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3538915837, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::actor::ActorSequence", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2748237516, + "hash2": 3518690736, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceReference", + "type_name_2": "actor.ActorSequenceReference", + "qualified_name": "keen::actor::ActorSequenceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1861536478, + "hash2": 2991769303, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemySettings", + "type_name_2": "ecs.EnemySettings", + "qualified_name": "keen::ecs::EnemySettings", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1744721160, + "hash2": 3205619750, + "struct_fields": [ + { + "name": "idleAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + }, + { + "name": "enabledFeatures", + "type_name": "keen::ecs::EnemyFeatureMask", + "type_hash": 3432276225, + "data_offset": 16 + }, + { + "name": "disabledFeatures", + "type_name": "keen::ecs::EnemyFeatureMask", + "type_hash": 3432276225, + "data_offset": 20 + }, + { + "name": "checkDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "requiredMarkerTag", + "type_name": "keen::ObjectReference", + "type_hash": 3788723274, + "data_offset": 28 + }, + { + "name": "spawnSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 44 + }, + { + "name": "maxTargetDistanceToHomeZone", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerSetting", + "type_name_2": "ecs.RandomSpawnerSetting", + "qualified_name": "keen::ecs::RandomSpawnerSetting", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 67145304, + "hash2": 2436363824, + "struct_fields": [], + "enum_fields": [ + { + "name": "AllowUpScaling", + "value": 0 + }, + { + "name": "AllowDownScaling", + "value": 1 + }, + { + "name": "MinSpawnerAmount", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::RandomSpawnerSetting", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2650075918, + "hash2": 2242881245, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerSettingMask", + "type_name_2": "ecs.RandomSpawnerSettingMask", + "qualified_name": "keen::ecs::RandomSpawnerSettingMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 162406992, + "hash2": 4066251701, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerAmount", + "type_name_2": "ecs.RandomSpawnerAmount", + "qualified_name": "keen::ecs::RandomSpawnerAmount", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1712700864, + "hash2": 2475013914, + "struct_fields": [], + "enum_fields": [ + { + "name": "Few", + "value": 0 + }, + { + "name": "Normal", + "value": 1 + }, + { + "name": "Many", + "value": 2 + }, + { + "name": "Extreme", + "value": 3 + } + ] + }, + { + "type_name_1": "RandomSpawnerSettings", + "type_name_2": "ecs.RandomSpawnerSettings", + "qualified_name": "keen::ecs::RandomSpawnerSettings", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2011155889, + "hash2": 1593485705, + "struct_fields": [ + { + "name": "allowUpScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "allowDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "minSpawnerAmount", + "type_name": "keen::ecs::RandomSpawnerAmount", + "type_hash": 1712700864, + "data_offset": 2 + }, + { + "name": "changedSettings", + "type_name": "keen::ecs::RandomSpawnerSettingMask", + "type_hash": 162406992, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerEntitySettings", + "type_name_2": "ecs.RandomSpawnerEntitySettings", + "qualified_name": "keen::ecs::RandomSpawnerEntitySettings", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3540660906, + "hash2": 2185744345, + "struct_fields": [ + { + "name": "allowUpScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "allowDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "minSpawnerAmount", + "type_name": "keen::ecs::RandomSpawnerAmount", + "type_hash": 1712700864, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnData", + "type_name_2": "ecs.EntitySpawnData", + "qualified_name": "keen::ecs::EntitySpawnData", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2648161239, + "hash2": 671220384, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 12 + }, + { + "name": "parentEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 28 + }, + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "randomSeed", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "tintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 60 + }, + { + "name": "triggerRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "triggerRange2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "triggerRange3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "itemId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 76 + }, + { + "name": "enemySettings", + "type_name": "keen::ecs::EnemySettings", + "type_hash": 1744721160, + "data_offset": 80 + }, + { + "name": "randomSpawnerSettings", + "type_name": "keen::ecs::RandomSpawnerEntitySettings", + "type_hash": 3540660906, + "data_offset": 144 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 148 + }, + { + "name": "mask", + "type_name": "keen::ecs::EntitySpawnValueMask", + "type_hash": 4027299700, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathGridType", + "type_name_2": "ecs.PathGridType", + "qualified_name": "keen::ecs::PathGridType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3868916840, + "hash2": 1110040287, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Flying", + "value": 1 + } + ] + }, + { + "type_name_1": "PathNodeType", + "type_name_2": "ecs.PathNodeType", + "qualified_name": "keen::ecs::PathNodeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 2759560692, + "hash2": 2586195430, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Tar", + "value": 1 + }, + { + "name": "Mud", + "value": 2 + }, + { + "name": "Road", + "value": 3 + }, + { + "name": "Fog", + "value": 4 + }, + { + "name": "DeadlyFog", + "value": 5 + }, + { + "name": "Lava", + "value": 6 + }, + { + "name": "Building", + "value": 7 + }, + { + "name": "Collider", + "value": 8 + }, + { + "name": "WalkablePlatform", + "value": 9 + }, + { + "name": "NoNpcMovementCollider", + "value": 10 + }, + { + "name": "NoNpcMovementTerrain", + "value": 11 + }, + { + "name": "NoNpcMovementBuilding", + "value": 12 + }, + { + "name": "NpcAvoid", + "value": 13 + }, + { + "name": "ClosedDoor", + "value": 14 + } + ] + }, + { + "type_name_1": "PathNodeCostFactors", + "type_name_2": "ecs.PathNodeCostFactors", + "qualified_name": "keen::ecs::PathNodeCostFactors", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1798842315, + "hash2": 4206344189, + "struct_fields": [ + { + "name": "none", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "building", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "collider", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "walkablePlatform", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "tar", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "mud", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "road", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "fog", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "deadlyFog", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "lava", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "noNpcMovement", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "npcAvoid", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "closedDoor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ecs::PathNodeType", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 629238997, + "hash2": 2181303774, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeTypeMask", + "type_name_2": "ecs.PathNodeTypeMask", + "qualified_name": "keen::ecs::PathNodeTypeMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3175387236, + "hash2": 3206700635, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathGridMaterialSettings", + "type_name_2": "ecs.PathGridMaterialSettings", + "qualified_name": "keen::ecs::PathGridMaterialSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2470869924, + "hash2": 143690148, + "struct_fields": [ + { + "name": "pathNodeType", + "type_name": "keen::ecs::PathNodeType", + "type_hash": 2759560692, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.PathGridMaterialSettings[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::PathGridMaterialSettings", + "class_size": 256, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 1745922723, + "hash2": 2322795237, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathGridMaterialSettingsArray", + "type_name_2": "ecs.PathGridMaterialSettingsArray", + "qualified_name": "keen::ecs::PathGridMaterialSettingsArray", + "referenced_type_name": "keen::StaticArray", + "class_size": 256, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3618545881, + "hash2": 3638002012, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeRequirements", + "type_name_2": "ecs.PathNodeRequirements", + "qualified_name": "keen::ecs::PathNodeRequirements", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 257535372, + "hash2": 3391090672, + "struct_fields": [ + { + "name": "requiredTypes", + "type_name": "keen::ecs::PathNodeTypeMask", + "type_hash": 3175387236, + "data_offset": 0 + }, + { + "name": "forbiddenTypes", + "type_name": "keen::ecs::PathNodeTypeMask", + "type_hash": 3175387236, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryTargetType", + "type_name_2": "ecs.PathQueryTargetType", + "qualified_name": "keen::ecs::PathQueryTargetType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3879424597, + "hash2": 705084659, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "PreferClosestTargetNode", + "value": 1 + }, + { + "name": "UseClosestTargetNodeAsFallback", + "value": 2 + } + ] + }, + { + "type_name_1": "PathMoveType", + "type_name_2": "ecs.PathMoveType", + "qualified_name": "keen::ecs::PathMoveType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3429659349, + "hash2": 2649354894, + "struct_fields": [], + "enum_fields": [ + { + "name": "Move", + "value": 0 + }, + { + "name": "JumpUp", + "value": 1 + }, + { + "name": "JumpDown", + "value": 2 + }, + { + "name": "OpenDoor", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::PathMoveType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 81516213, + "hash2": 2077749026, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathMoveTypeMask", + "type_name_2": "ecs.PathMoveTypeMask", + "qualified_name": "keen::ecs::PathMoveTypeMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2711932345, + "hash2": 1297723499, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryCheck", + "type_name_2": "ecs.PathQueryCheck", + "qualified_name": "keen::ecs::PathQueryCheck", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 116485916, + "hash2": 2835931187, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "EnsureFreePath", + "value": 1 + }, + { + "name": "EnsureOccupiedPath", + "value": 2 + } + ] + }, + { + "type_name_1": "PathGridDistance", + "type_name_2": "ecs.PathGridDistance", + "qualified_name": "keen::ecs::PathGridDistance", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 751054043, + "hash2": 2912293233, + "struct_fields": [ + { + "name": "halfMeters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathGridInteractionType", + "type_name_2": "ecs.PathGridInteractionType", + "qualified_name": "keen::ecs::PathGridInteractionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1345810816, + "hash2": 2715277066, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "OpenedDoor", + "value": 1 + }, + { + "name": "ClosedDoor", + "value": 2 + }, + { + "name": "MovingObject", + "value": 3 + } + ] + }, + { + "type_name_1": "PathfindingHeightDifferenceSettings", + "type_name_2": "ecs.PathfindingHeightDifferenceSettings", + "qualified_name": "keen::ecs::PathfindingHeightDifferenceSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1671410876, + "hash2": 1317248371, + "struct_fields": [ + { + "name": "terrain", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "building", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "collider", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathfindingSettings", + "type_name_2": "ecs.PathfindingSettings", + "qualified_name": "keen::ecs::PathfindingSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2066076624, + "hash2": 3052836522, + "struct_fields": [ + { + "name": "maxHeightDifferenceSettings", + "type_name": "keen::ecs::PathfindingHeightDifferenceSettings", + "type_hash": 1671410876, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransformTarget", + "type_name_2": "ecs.LerpTransformTarget", + "qualified_name": "keen::ecs::LerpTransformTarget", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3630153111, + "hash2": 579685182, + "struct_fields": [], + "enum_fields": [ + { + "name": "ClimbingTransformStart", + "value": 0 + }, + { + "name": "ClimbingTransformIntermediate", + "value": 1 + }, + { + "name": "ClimbingTransformEnd", + "value": 2 + } + ] + }, + { + "type_name_1": "AlignedBox", + "type_name_2": "ecs.AlignedBox", + "qualified_name": "keen::ecs::AlignedBox", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2958995098, + "hash2": 2556180932, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatState", + "type_name_2": "enemy01.CombatState", + "qualified_name": "keen::enemy01::CombatState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 18, + "primitive_type": "Enum", + "hash1": 1030333002, + "hash2": 1017838706, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Move", + "value": 1 + }, + { + "name": "Attack", + "value": 2 + }, + { + "name": "AttackExecution", + "value": 3 + }, + { + "name": "Block", + "value": 4 + }, + { + "name": "Prowl", + "value": 5 + }, + { + "name": "TurnBeforeTaunt", + "value": 6 + }, + { + "name": "Taunt", + "value": 7 + }, + { + "name": "TurnBeforeCallForHelp", + "value": 8 + }, + { + "name": "CallForHelp", + "value": 9 + }, + { + "name": "Turn", + "value": 10 + }, + { + "name": "TriggerAlarm", + "value": 11 + }, + { + "name": "CustomBehavior", + "value": 12 + }, + { + "name": "TargetNotReachable", + "value": 13 + }, + { + "name": "TargetOutsideLeash", + "value": 14 + }, + { + "name": "ContinuousMovement", + "value": 15 + }, + { + "name": "SearchForCover", + "value": 16 + }, + { + "name": "RunAround", + "value": 17 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::enemy01::CombatState", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3764101031, + "hash2": 3330435995, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatStateMask", + "type_name_2": "enemy01.CombatStateMask", + "qualified_name": "keen::enemy01::CombatStateMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3723818322, + "hash2": 2491994599, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "enemy01.State", + "qualified_name": "keen::enemy01::State", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 26, + "primitive_type": "Enum", + "hash1": 1582315374, + "hash2": 2036205569, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Start", + "value": 1 + }, + { + "name": "Idle", + "value": 2 + }, + { + "name": "Dead", + "value": 3 + }, + { + "name": "Spawning", + "value": 4 + }, + { + "name": "Combat", + "value": 5 + }, + { + "name": "ReturnHome", + "value": 6 + }, + { + "name": "FleeHome", + "value": 7 + }, + { + "name": "WaitAtHome", + "value": 8 + }, + { + "name": "ReactToNoise", + "value": 9 + }, + { + "name": "Patrol", + "value": 10 + }, + { + "name": "TurnAfterPatrol", + "value": 11 + }, + { + "name": "WaitAfterPatrol", + "value": 12 + }, + { + "name": "ControlledByAttack", + "value": 13 + }, + { + "name": "Roaming", + "value": 14 + }, + { + "name": "Flee", + "value": 15 + }, + { + "name": "WaitAfterFlee", + "value": 16 + }, + { + "name": "Falling", + "value": 17 + }, + { + "name": "Hit", + "value": 18 + }, + { + "name": "Guard", + "value": 19 + }, + { + "name": "Interact", + "value": 20 + }, + { + "name": "Landing", + "value": 21 + }, + { + "name": "BlockProjectile", + "value": 22 + }, + { + "name": "MoveToMarker", + "value": 23 + }, + { + "name": "Sleep", + "value": 24 + }, + { + "name": "Circling", + "value": 25 + } + ] + }, + { + "type_name_1": "EnemyClass", + "type_name_2": "enemy01.EnemyClass", + "qualified_name": "keen::enemy01::EnemyClass", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2312422757, + "hash2": 2892172772, + "struct_fields": [], + "enum_fields": [ + { + "name": "Melee", + "value": 0 + }, + { + "name": "Ranger", + "value": 1 + }, + { + "name": "Mage", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::enemy01::State", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3432777675, + "hash2": 3391204212, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMask", + "type_name_2": "enemy01.StateMask", + "qualified_name": "keen::enemy01::StateMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3167199966, + "hash2": 3685101393, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateUpdateType", + "type_name_2": "enemy01.StateUpdateType", + "qualified_name": "keen::enemy01::StateUpdateType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2184859215, + "hash2": 2130112151, + "struct_fields": [], + "enum_fields": [ + { + "name": "OnEnter", + "value": 0 + }, + { + "name": "OnExecute", + "value": 1 + }, + { + "name": "OnExit", + "value": 2 + } + ] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "enemy01.StateCondition", + "qualified_name": "keen::enemy01::StateCondition", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 22, + "primitive_type": "Enum", + "hash1": 804128731, + "hash2": 3685172232, + "struct_fields": [], + "enum_fields": [ + { + "name": "Death", + "value": 0 + }, + { + "name": "TargetSelected", + "value": 1 + }, + { + "name": "TargetLost", + "value": 2 + }, + { + "name": "IsFinished", + "value": 3 + }, + { + "name": "TargetUnreachable", + "value": 4 + }, + { + "name": "NoiseHeard", + "value": 5 + }, + { + "name": "ProjectileHeard", + "value": 6 + }, + { + "name": "IsReadyToPatrol", + "value": 7 + }, + { + "name": "IsReadyToInteract", + "value": 8 + }, + { + "name": "IsReadyToTriggerAlarm", + "value": 9 + }, + { + "name": "IsControlledByAttack", + "value": 10 + }, + { + "name": "IsReadyForRoaming", + "value": 11 + }, + { + "name": "IsReadyForCircling", + "value": 12 + }, + { + "name": "WantsToFlee", + "value": 13 + }, + { + "name": "HasBeenHit", + "value": 14 + }, + { + "name": "IsFalling", + "value": 15 + }, + { + "name": "HitReaction", + "value": 16 + }, + { + "name": "NeedsToGuard", + "value": 17 + }, + { + "name": "WantsToLand", + "value": 18 + }, + { + "name": "NeedsToTurn", + "value": 19 + }, + { + "name": "CanMoveToMarker", + "value": 20 + }, + { + "name": "WantsToSleep", + "value": 21 + } + ] + }, + { + "type_name_1": "EnemyVariable", + "type_name_2": "enemy01.EnemyVariable", + "qualified_name": "keen::enemy01::EnemyVariable", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 54871295, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy01::EnemyVariable", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1888063862, + "hash2": 3967555585, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariableReference", + "type_name_2": "enemy01.EnemyVariableReference", + "qualified_name": "keen::enemy01::EnemyVariableReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3122030124, + "hash2": 548345775, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityConstrain", + "type_name_2": "enemy01.AbilityConstrain", + "qualified_name": "keen::enemy01::AbilityConstrain", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3467705046, + "hash2": 3447089573, + "struct_fields": [ + { + "name": "negated", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistanceConstrain", + "type_name_2": "enemy01.DistanceConstrain", + "qualified_name": "keen::enemy01::DistanceConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1458989751, + "hash2": 2626733391, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VerticalDistanceConstraint", + "type_name_2": "enemy01.VerticalDistanceConstraint", + "qualified_name": "keen::enemy01::VerticalDistanceConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 430033851, + "hash2": 30602981, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HorizontalDistanceConstraint", + "type_name_2": "enemy01.HorizontalDistanceConstraint", + "qualified_name": "keen::enemy01::HorizontalDistanceConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1760986677, + "hash2": 30602981, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearPathConstrain", + "type_name_2": "enemy01.ClearPathConstrain", + "qualified_name": "keen::enemy01::ClearPathConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 3, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3866542950, + "hash2": 1303179557, + "struct_fields": [ + { + "name": "checkSolidColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "checkSteeringColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CooldownConstrain", + "type_name_2": "enemy01.CooldownConstrain", + "qualified_name": "keen::enemy01::CooldownConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3623388377, + "hash2": 7764049, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateConstrain", + "type_name_2": "enemy01.StateConstrain", + "qualified_name": "keen::enemy01::StateConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 828366067, + "hash2": 1673361504, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::enemy01::StateMask", + "type_hash": 3167199966, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatStateConstrain", + "type_name_2": "enemy01.CombatStateConstrain", + "qualified_name": "keen::enemy01::CombatStateConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 779701015, + "hash2": 1942723055, + "struct_fields": [ + { + "name": "combatStates", + "type_name": "keen::enemy01::CombatStateMask", + "type_hash": 3723818322, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateDurationConstrain", + "type_name_2": "enemy01.StateDurationConstrain", + "qualified_name": "keen::enemy01::StateDurationConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2507122271, + "hash2": 7764049, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurrentCombatStateDurationConstrain", + "type_name_2": "enemy01.CurrentCombatStateDurationConstrain", + "qualified_name": "keen::enemy01::CurrentCombatStateDurationConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3861248864, + "hash2": 7764049, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsRetaliateAllowedConstrain", + "type_name_2": "enemy01.IsRetaliateAllowedConstrain", + "qualified_name": "keen::enemy01::IsRetaliateAllowedConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 703739785, + "hash2": 1629180970, + "struct_fields": [ + { + "name": "isAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsTargetOfMyTargetConstrain", + "type_name_2": "enemy01.IsTargetOfMyTargetConstrain", + "qualified_name": "keen::enemy01::IsTargetOfMyTargetConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2710856839, + "hash2": 1965154869, + "struct_fields": [ + { + "name": "isTargetOfMyTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LastHitReceivedConstrain", + "type_name_2": "enemy01.LastHitReceivedConstrain", + "qualified_name": "keen::enemy01::LastHitReceivedConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1851917594, + "hash2": 1675044631, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ThreatConstrain", + "type_name_2": "enemy01.ThreatConstrain", + "qualified_name": "keen::enemy01::ThreatConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1996986118, + "hash2": 1844406399, + "struct_fields": [ + { + "name": "minThreat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AngleToTargetConstrain", + "type_name_2": "enemy01.AngleToTargetConstrain", + "qualified_name": "keen::enemy01::AngleToTargetConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3894254013, + "hash2": 2794172503, + "struct_fields": [ + { + "name": "minAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AngleFromSlotToTargetConstraint", + "type_name_2": "enemy01.AngleFromSlotToTargetConstraint", + "qualified_name": "keen::enemy01::AngleFromSlotToTargetConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3185118239, + "hash2": 3147363688, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 1 + }, + { + "name": "minAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsInAttackRangeConstrain", + "type_name_2": "enemy01.IsInAttackRangeConstrain", + "qualified_name": "keen::enemy01::IsInAttackRangeConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 187959560, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::EnemyPhase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1041958340, + "hash2": 3471486231, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsInPhaseConstrain", + "type_name_2": "enemy01.IsInPhaseConstrain", + "qualified_name": "keen::enemy01::IsInPhaseConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4098320514, + "hash2": 476752981, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 1041958340, + "data_offset": 4 + }, + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsLastPhaseConstraint", + "type_name_2": "enemy01.IsLastPhaseConstraint", + "qualified_name": "keen::enemy01::IsLastPhaseConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2756886787, + "hash2": 196419561, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 1041958340, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitEventFlags", + "type_name_2": "ecs.HitEventFlags", + "qualified_name": "keen::ecs::HitEventFlags", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 20, + "primitive_type": "Enum", + "hash1": 3524499539, + "hash2": 2105993055, + "struct_fields": [], + "enum_fields": [ + { + "name": "WasBlocked", + "value": 0 + }, + { + "name": "WasParried", + "value": 1 + }, + { + "name": "WasBlockBroken", + "value": 2 + }, + { + "name": "WasCrit", + "value": 3 + }, + { + "name": "WasVisceral", + "value": 4 + }, + { + "name": "WasBackstab", + "value": 5 + }, + { + "name": "WasWeakspot", + "value": 6 + }, + { + "name": "WasSkillShot", + "value": 7 + }, + { + "name": "WasResistance", + "value": 8 + }, + { + "name": "WasImmune", + "value": 9 + }, + { + "name": "WasIneffective", + "value": 10 + }, + { + "name": "HideIneffective", + "value": 11 + }, + { + "name": "HideEffective", + "value": 12 + }, + { + "name": "WasKillingBlow", + "value": 13 + }, + { + "name": "WasHealing", + "value": 14 + }, + { + "name": "WasTerrain", + "value": 15 + }, + { + "name": "WasBuilding", + "value": 16 + }, + { + "name": "WasPileUp", + "value": 17 + }, + { + "name": "WasFlattening", + "value": 18 + }, + { + "name": "UseHitDirectionForPushBack", + "value": 19 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::ecs::HitEventFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1147412356, + "hash2": 3013228869, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitEventFlagMask", + "type_name_2": "ecs.HitEventFlagMask", + "qualified_name": "keen::ecs::HitEventFlagMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2204135162, + "hash2": 2262307601, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HasBeenHitInCurrentPhaseConstrain", + "type_name_2": "enemy01.HasBeenHitInCurrentPhaseConstrain", + "qualified_name": "keen::enemy01::HasBeenHitInCurrentPhaseConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1358703578, + "hash2": 3273009802, + "struct_fields": [ + { + "name": "requiredHitEventFlags", + "type_name": "keen::ecs::HitEventFlagMask", + "type_hash": 2204135162, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateFlag", + "type_name_2": "actor.StateFlag", + "qualified_name": "keen::actor::StateFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 46, + "primitive_type": "Enum", + "hash1": 2652801490, + "hash2": 982131506, + "struct_fields": [], + "enum_fields": [ + { + "name": "Grounded", + "value": 0 + }, + { + "name": "Jumping", + "value": 1 + }, + { + "name": "Blocking", + "value": 2 + }, + { + "name": "Dodging", + "value": 3 + }, + { + "name": "ParryOportunity", + "value": 4 + }, + { + "name": "BlockOpportunity", + "value": 5 + }, + { + "name": "Exhausted", + "value": 6 + }, + { + "name": "Dead", + "value": 7 + }, + { + "name": "Sheltered", + "value": 8 + }, + { + "name": "Sitting", + "value": 9 + }, + { + "name": "PlayingInstrument", + "value": 10 + }, + { + "name": "Sleeping", + "value": 11 + }, + { + "name": "Spawning", + "value": 12 + }, + { + "name": "InFog", + "value": 13 + }, + { + "name": "Warm", + "value": 14 + }, + { + "name": "Wet", + "value": 15 + }, + { + "name": "Cold", + "value": 16 + }, + { + "name": "Freezing", + "value": 17 + }, + { + "name": "InSneakMode", + "value": 18 + }, + { + "name": "Unhappy", + "value": 19 + }, + { + "name": "HasAggro", + "value": 20 + }, + { + "name": "InCombat", + "value": 21 + }, + { + "name": "InRangeCombat", + "value": 22 + }, + { + "name": "InRangeCombatPreparing", + "value": 23 + }, + { + "name": "InRangeCombatShooting", + "value": 24 + }, + { + "name": "InRangeCombatKeepTarget", + "value": 25 + }, + { + "name": "InSnappingLerp", + "value": 26 + }, + { + "name": "Cooking", + "value": 27 + }, + { + "name": "Falling", + "value": 28 + }, + { + "name": "Climbing", + "value": 29 + }, + { + "name": "ClimbingTransition", + "value": 30 + }, + { + "name": "Attached", + "value": 31 + }, + { + "name": "HangGliding", + "value": 32 + }, + { + "name": "AttachedToHook", + "value": 33 + }, + { + "name": "Flying", + "value": 34 + }, + { + "name": "TurnSequence", + "value": 35 + }, + { + "name": "CanPayUsageCosts", + "value": 36 + }, + { + "name": "Invisible", + "value": 37 + }, + { + "name": "EnemyPrepareAttack", + "value": 38 + }, + { + "name": "IsAnythingAbove", + "value": 39 + }, + { + "name": "IsReadyForGameplay", + "value": 40 + }, + { + "name": "IsActionOpportunityTriggered", + "value": 41 + }, + { + "name": "WantsToMove", + "value": 42 + }, + { + "name": "HandsFree", + "value": 43 + }, + { + "name": "IsWorking", + "value": 44 + }, + { + "name": "Petting", + "value": 45 + } + ] + }, + { + "type_name_1": "Bitmask64", + "type_name_2": "Bitmask64", + "qualified_name": "keen::Bitmask64", + "referenced_type_name": "keen::actor::StateFlag", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Bitmask64", + "hash1": 259899200, + "hash2": 1563916412, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMask", + "type_name_2": "actor.StateMask", + "qualified_name": "keen::actor::StateMask", + "referenced_type_name": "keen::Bitmask64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 834708408, + "hash2": 3774090707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatTargetStateFlagsConstrain", + "type_name_2": "enemy01.CombatTargetStateFlagsConstrain", + "qualified_name": "keen::enemy01::CombatTargetStateFlagsConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3560334177, + "hash2": 712948226, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsAttackSelectedConstrain", + "type_name_2": "enemy01.IsAttackSelectedConstrain", + "qualified_name": "keen::enemy01::IsAttackSelectedConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4112709605, + "hash2": 2863406259, + "struct_fields": [ + { + "name": "attackSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsAnyAttackSelectedConstraint", + "type_name_2": "enemy01.IsAnyAttackSelectedConstraint", + "qualified_name": "keen::enemy01::IsAnyAttackSelectedConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3333158075, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyHealthPercentageConstrain", + "type_name_2": "enemy01.EnemyHealthPercentageConstrain", + "qualified_name": "keen::enemy01::EnemyHealthPercentageConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1951958522, + "hash2": 306622879, + "struct_fields": [ + { + "name": "minPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurrentTargetHealthPercentageConstrain", + "type_name_2": "enemy01.CurrentTargetHealthPercentageConstrain", + "qualified_name": "keen::enemy01::CurrentTargetHealthPercentageConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3131110346, + "hash2": 306622879, + "struct_fields": [ + { + "name": "minPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsPlayerTargetConstrain", + "type_name_2": "enemy01.IsPlayerTargetConstrain", + "qualified_name": "keen::enemy01::IsPlayerTargetConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2435930830, + "hash2": 1882252307, + "struct_fields": [ + { + "name": "isPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetActorStatesConstrain", + "type_name_2": "enemy01.TargetActorStatesConstrain", + "qualified_name": "keen::enemy01::TargetActorStatesConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2721685508, + "hash2": 2640415810, + "struct_fields": [ + { + "name": "requiredStates", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 8 + }, + { + "name": "excludedStates", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorStatesConstrain", + "type_name_2": "enemy01.ActorStatesConstrain", + "qualified_name": "keen::enemy01::ActorStatesConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3363057805, + "hash2": 2640415810, + "struct_fields": [ + { + "name": "requiredStates", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 8 + }, + { + "name": "excludedStates", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasCombatTargetConstrain", + "type_name_2": "enemy01.HasCombatTargetConstrain", + "qualified_name": "keen::enemy01::HasCombatTargetConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1683836643, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NeedsToFlee", + "type_name_2": "enemy01.NeedsToFlee", + "qualified_name": "keen::enemy01::NeedsToFlee", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3943364503, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomChanceConstrain", + "type_name_2": "enemy01.RandomChanceConstrain", + "qualified_name": "keen::enemy01::RandomChanceConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2656400927, + "hash2": 2097397607, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsGroupLeaderConstrain", + "type_name_2": "enemy01.IsGroupLeaderConstrain", + "qualified_name": "keen::enemy01::IsGroupLeaderConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2688759050, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsGroupMemberConstrain", + "type_name_2": "enemy01.IsGroupMemberConstrain", + "qualified_name": "keen::enemy01::IsGroupMemberConstrain", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2826375675, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsGuardingPlayerConstraint", + "type_name_2": "enemy01.IsGuardingPlayerConstraint", + "qualified_name": "keen::enemy01::IsGuardingPlayerConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2710875328, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsTargetInHomeZoneConstraint", + "type_name_2": "enemy01.IsTargetInHomeZoneConstraint", + "qualified_name": "keen::enemy01::IsTargetInHomeZoneConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1838871633, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetDistanceToHomeZoneConstraint", + "type_name_2": "enemy01.TargetDistanceToHomeZoneConstraint", + "qualified_name": "keen::enemy01::TargetDistanceToHomeZoneConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4231677056, + "hash2": 30602981, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsTargetReachableConstraint", + "type_name_2": "enemy01.IsTargetReachableConstraint", + "qualified_name": "keen::enemy01::IsTargetReachableConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 666438076, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsVariableSetConstraint", + "type_name_2": "enemy01.IsVariableSetConstraint", + "qualified_name": "keen::enemy01::IsVariableSetConstraint", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1874421144, + "hash2": 333069997, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::enemy01::EnemyVariableReference", + "type_hash": 3122030124, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Ability", + "type_name_2": "enemy01.Ability", + "qualified_name": "keen::enemy01::Ability", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1648684873, + "hash2": 2257246094, + "struct_fields": [ + { + "name": "actionSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AbilitySelectionContrains", + "type_name_2": "enemy01.AbilitySelectionContrains", + "qualified_name": "keen::enemy01::AbilitySelectionContrains", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 988849580, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityExecutionContrains", + "type_name_2": "enemy01.AbilityExecutionContrains", + "qualified_name": "keen::enemy01::AbilityExecutionContrains", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 507537596, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityAbortConstraints", + "type_name_2": "enemy01.AbilityAbortConstraints", + "qualified_name": "keen::enemy01::AbilityAbortConstraints", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 385765643, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 38, + "primitive_type": "BlobVariant", + "hash1": 4213593867, + "hash2": 1692297633, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3059606130, + "hash2": 1383905060, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityConstrains", + "type_name_2": "enemy01.AbilityConstrains", + "qualified_name": "keen::enemy01::AbilityConstrains", + "referenced_type_name": "keen::BlobArray>", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 94015935, + "hash2": 2626714330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackStyle", + "type_name_2": "enemy01.AttackStyle", + "qualified_name": "keen::enemy01::AttackStyle", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 663173734, + "hash2": 979905588, + "struct_fields": [], + "enum_fields": [ + { + "name": "Normal", + "value": 0 + }, + { + "name": "Retaliate", + "value": 1 + }, + { + "name": "Special", + "value": 2 + }, + { + "name": "Initiate", + "value": 3 + }, + { + "name": "InitiateFollowUp", + "value": 4 + }, + { + "name": "Teleport", + "value": 5 + }, + { + "name": "Dash", + "value": 6 + }, + { + "name": "Jump", + "value": 7 + }, + { + "name": "IgnoreThreat", + "value": 8 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::enemy01::AttackStyle", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 30622929, + "hash2": 3330420725, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackStyleMask", + "type_name_2": "enemy01.AttackStyleMask", + "qualified_name": "keen::enemy01::AttackStyleMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3734057110, + "hash2": 1271802105, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackFlag", + "type_name_2": "enemy01.AttackFlag", + "qualified_name": "keen::enemy01::AttackFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 1899236583, + "hash2": 158535349, + "struct_fields": [], + "enum_fields": [ + { + "name": "StartAnimationDirectly", + "value": 0 + }, + { + "name": "AbortOnWallCollision", + "value": 1 + }, + { + "name": "NeedsTurn", + "value": 2 + }, + { + "name": "NoPauseAfterAttack", + "value": 3 + }, + { + "name": "ContinueMovement", + "value": 4 + }, + { + "name": "EnsureFreePath", + "value": 5 + }, + { + "name": "CheckDynamicPathBlockers", + "value": 6 + }, + { + "name": "DisableLeaning", + "value": 7 + }, + { + "name": "EnforceLeaning", + "value": 8 + }, + { + "name": "DisableRotation", + "value": 9 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::enemy01::AttackFlag", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 1462398068, + "hash2": 2877742293, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackFlagMask", + "type_name_2": "enemy01.AttackFlagMask", + "qualified_name": "keen::enemy01::AttackFlagMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3530619523, + "hash2": 723664153, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatTargetChangeMode", + "type_name_2": "enemy01.CombatTargetChangeMode", + "qualified_name": "keen::enemy01::CombatTargetChangeMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3866527631, + "hash2": 2977479201, + "struct_fields": [], + "enum_fields": [ + { + "name": "KeepCurrentCombatTarget", + "value": 0 + }, + { + "name": "SelectRandomCombatTarget", + "value": 1 + }, + { + "name": "SelectClosestCombatTarget", + "value": 2 + }, + { + "name": "SelectFurthestCombatTarget", + "value": 3 + } + ] + }, + { + "type_name_1": "BlockRotationDuration", + "type_name_2": "enemy01.BlockRotationDuration", + "qualified_name": "keen::enemy01::BlockRotationDuration", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3608025256, + "hash2": 1465199495, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Short", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "Long", + "value": 3 + } + ] + }, + { + "type_name_1": "Action", + "type_name_2": "enemy01.Action", + "qualified_name": "keen::enemy01::Action", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2277076983, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 12, + "fields_count": 43, + "primitive_type": "BlobVariant", + "hash1": 2439088432, + "hash2": 1834436994, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionVariant", + "type_name_2": "enemy01.ActionVariant", + "qualified_name": "keen::enemy01::ActionVariant", + "referenced_type_name": "keen::BlobVariant", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1706330488, + "hash2": 3288052401, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "enemy01.ActionVariant[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::enemy01::ActionVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1867974387, + "hash2": 867822248, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionVariants", + "type_name_2": "enemy01.ActionVariants", + "qualified_name": "keen::enemy01::ActionVariants", + "referenced_type_name": "keen::BlobArray", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 640924753, + "hash2": 1324283451, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackActions", + "type_name_2": "enemy01.AttackActions", + "qualified_name": "keen::enemy01::AttackActions", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 541339732, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackConstraints", + "type_name_2": "enemy01.AttackConstraints", + "qualified_name": "keen::enemy01::AttackConstraints", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2278737115, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandMode", + "type_name_2": "enemy01.AttackCommandMode", + "qualified_name": "keen::enemy01::AttackCommandMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3858006633, + "hash2": 2584606011, + "struct_fields": [], + "enum_fields": [ + { + "name": "RunInParallel", + "value": 0 + }, + { + "name": "PauseDefaultExecution", + "value": 1 + } + ] + }, + { + "type_name_1": "AttackCommandData", + "type_name_2": "enemy01.AttackCommandData", + "qualified_name": "keen::enemy01::AttackCommandData", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2468308690, + "hash2": 3188311501, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::enemy01::AttackCommandMode", + "type_hash": 3858006633, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandDescription", + "type_name_2": "enemy01.AttackCommandDescription", + "qualified_name": "keen::enemy01::AttackCommandDescription", + "referenced_type_name": "keen::enemy01::AttackCommandData", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 58742356, + "hash2": 3747997272, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommand", + "type_name_2": "enemy01.AttackCommand", + "qualified_name": "keen::enemy01::AttackCommand", + "referenced_type_name": "keen::enemy01::AttackCommandData", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 427418402, + "hash2": 2033482611, + "struct_fields": [ + { + "name": "constraints", + "type_name": "keen::enemy01::AbilityConstrains", + "type_hash": 94015935, + "data_offset": 4 + }, + { + "name": "actions", + "type_name": "keen::enemy01::ActionVariants", + "type_hash": 640924753, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "enemy01.AttackCommand[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::enemy01::AttackCommand", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1722060429, + "hash2": 1083036430, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandArray", + "type_name_2": "enemy01.AttackCommandArray", + "qualified_name": "keen::enemy01::AttackCommandArray", + "referenced_type_name": "keen::BlobArray", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 600992163, + "hash2": 1821270765, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandContainerDescription", + "type_name_2": "enemy01.AttackCommandContainerDescription", + "qualified_name": "keen::enemy01::AttackCommandContainerDescription", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4069729573, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackData", + "type_name_2": "enemy01.AttackData", + "qualified_name": "keen::enemy01::AttackData", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2380725717, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JumpAttackData", + "type_name_2": "enemy01.JumpAttackData", + "qualified_name": "keen::enemy01::JumpAttackData", + "referenced_type_name": "keen::enemy01::AttackData", + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1366967245, + "hash2": 3419528095, + "struct_fields": [ + { + "name": "distanceFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "minForce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxForce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "forwardMomentum", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DashAttackData", + "type_name_2": "enemy01.DashAttackData", + "qualified_name": "keen::enemy01::DashAttackData", + "referenced_type_name": "keen::enemy01::AttackData", + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 857579029, + "hash2": 3771826968, + "struct_fields": [ + { + "name": "overshootDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lookAheadLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "collisionAvoidanceLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "collisionOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "decelerateDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "decelerateEnforceDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportAttackData", + "type_name_2": "enemy01.TeleportAttackData", + "qualified_name": "keen::enemy01::TeleportAttackData", + "referenced_type_name": "keen::enemy01::AttackData", + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3589460034, + "hash2": 4104320160, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "verticalSearchDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "checkLineOfSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "targetNodeRequirements", + "type_name": "keen::ecs::PathNodeRequirements", + "type_hash": 257535372, + "data_offset": 14 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::enemy01::AttackData", + "class_size": 12, + "fields_count": 4, + "primitive_type": "BlobVariant", + "hash1": 1362808666, + "hash2": 1363906336, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDataVariant", + "type_name_2": "enemy01.AttackDataVariant", + "qualified_name": "keen::enemy01::AttackDataVariant", + "referenced_type_name": "keen::BlobVariant", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 539116086, + "hash2": 1536785861, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDataDescription", + "type_name_2": "enemy01.AttackDataDescription", + "qualified_name": "keen::enemy01::AttackDataDescription", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 554545849, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy01::AttackCooldownGroupId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 959235781, + "hash2": 2985108919, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDesscription", + "type_name_2": "enemy01.AttackDesscription", + "qualified_name": "keen::enemy01::AttackDesscription", + "referenced_type_name": "keen::enemy01::Ability", + "class_size": 88, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3560004034, + "hash2": 2035942916, + "struct_fields": [ + { + "name": "attackStyle", + "type_name": "keen::enemy01::AttackStyleMask", + "type_hash": 3734057110, + "data_offset": 16 + }, + { + "name": "selectionChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "flags", + "type_name": "keen::enemy01::AttackFlagMask", + "type_hash": 3530619523, + "data_offset": 24 + }, + { + "name": "threat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "minRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "maxRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "maxVerticalRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "cooldownGroupID", + "type_name": "keen::ObjectReference", + "type_hash": 959235781, + "data_offset": 44 + }, + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "acceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "executionAttackSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 68 + }, + { + "name": "blockRotationDuration", + "type_name": "keen::enemy01::BlockRotationDuration", + "type_hash": 3608025256, + "data_offset": 84 + }, + { + "name": "combatTargetChangeMode", + "type_name": "keen::enemy01::CombatTargetChangeMode", + "type_hash": 3866527631, + "data_offset": 85 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackDesscriptionResource", + "type_name_2": "enemy01.AttackDesscriptionResource", + "qualified_name": "keen::enemy01::AttackDesscriptionResource", + "referenced_type_name": null, + "class_size": 132, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2533889162, + "hash2": 657937757, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::enemy01::AttackDesscription", + "type_hash": 3560004034, + "data_offset": 0 + }, + { + "name": "selectionConstrain", + "type_name": "keen::enemy01::AbilityConstrains", + "type_hash": 94015935, + "data_offset": 88 + }, + { + "name": "executionConstrain", + "type_name": "keen::enemy01::AbilityConstrains", + "type_hash": 94015935, + "data_offset": 96 + }, + { + "name": "abortConstraints", + "type_name": "keen::enemy01::AbilityConstrains", + "type_hash": 94015935, + "data_offset": 104 + }, + { + "name": "commands", + "type_name": "keen::enemy01::AttackCommandArray", + "type_hash": 600992163, + "data_offset": 112 + }, + { + "name": "data", + "type_name": "keen::enemy01::AttackDataVariant", + "type_hash": 539116086, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorMode", + "type_name_2": "enemy01.BehaviorMode", + "qualified_name": "keen::enemy01::BehaviorMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1941735928, + "hash2": 2720204622, + "struct_fields": [], + "enum_fields": [ + { + "name": "OnUpdate", + "value": 0 + }, + { + "name": "OnEnter", + "value": 1 + }, + { + "name": "OnExit", + "value": 2 + }, + { + "name": "OnStartAttack", + "value": 3 + }, + { + "name": "OnEndAttack", + "value": 4 + }, + { + "name": "OnEnterState", + "value": 5 + }, + { + "name": "OnExitState", + "value": 6 + } + ] + }, + { + "type_name_1": "BehaviorExecutionContrains", + "type_name_2": "enemy01.BehaviorExecutionContrains", + "qualified_name": "keen::enemy01::BehaviorExecutionContrains", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3682375246, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorAbortConstraints", + "type_name_2": "enemy01.BehaviorAbortConstraints", + "qualified_name": "keen::enemy01::BehaviorAbortConstraints", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 275977209, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorActions", + "type_name_2": "enemy01.BehaviorActions", + "qualified_name": "keen::enemy01::BehaviorActions", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 247354562, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorSettings", + "type_name_2": "enemy01.BehaviorSettings", + "qualified_name": "keen::enemy01::BehaviorSettings", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 272084114, + "hash2": 4249203794, + "struct_fields": [ + { + "name": "checkIntervalMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "checkIntervalMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "cooldownMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "cooldownMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorDesscription", + "type_name_2": "enemy01.BehaviorDesscription", + "qualified_name": "keen::enemy01::BehaviorDesscription", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 796581084, + "hash2": 2809786678, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::enemy01::BehaviorMode", + "type_hash": 1941735928, + "data_offset": 0 + }, + { + "name": "settings", + "type_name": "keen::enemy01::BehaviorSettings", + "type_hash": 272084114, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorDesscriptionResource", + "type_name_2": "enemy01.BehaviorDesscriptionResource", + "qualified_name": "keen::enemy01::BehaviorDesscriptionResource", + "referenced_type_name": "keen::enemy01::BehaviorDesscription", + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 184016160, + "hash2": 2553196782, + "struct_fields": [ + { + "name": "executionConstrain", + "type_name": "keen::enemy01::AbilityConstrains", + "type_hash": 94015935, + "data_offset": 48 + }, + { + "name": "abortConstraints", + "type_name": "keen::enemy01::AbilityConstrains", + "type_hash": 94015935, + "data_offset": 56 + }, + { + "name": "actions", + "type_name": "keen::enemy01::ActionVariants", + "type_hash": 640924753, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy01::BehaviorDesscription", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1441778901, + "hash2": 1847244175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorDescriptionReference", + "type_name_2": "enemy01.BehaviorDescriptionReference", + "qualified_name": "keen::enemy01::BehaviorDescriptionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1169025016, + "hash2": 983963850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorReferenceDescription", + "type_name_2": "enemy01.BehaviorReferenceDescription", + "qualified_name": "keen::enemy01::BehaviorReferenceDescription", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3253161798, + "hash2": 2110738040, + "struct_fields": [ + { + "name": "behavior", + "type_name": "keen::enemy01::BehaviorDescriptionReference", + "type_hash": 1169025016, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackCooldownGroupId", + "type_name_2": "enemy01.AttackCooldownGroupId", + "qualified_name": "keen::enemy01::AttackCooldownGroupId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 876824630, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCooldownGroup", + "type_name_2": "enemy01.AttackCooldownGroup", + "qualified_name": "keen::enemy01::AttackCooldownGroup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3870034395, + "hash2": 1600006702, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ObjectReference", + "type_hash": 959235781, + "data_offset": 0 + }, + { + "name": "cooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockRotationSettings", + "type_name_2": "enemy01.BlockRotationSettings", + "qualified_name": "keen::enemy01::BlockRotationSettings", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2371804517, + "hash2": 3039205072, + "struct_fields": [ + { + "name": "shortBlockRotationDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "mediumBlockRotationDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "longBlockRotationDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatTurnConditions", + "type_name_2": "enemy01.CombatTurnConditions", + "qualified_name": "keen::enemy01::CombatTurnConditions", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3176690608, + "hash2": 1596691362, + "struct_fields": [ + { + "name": "minSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "minWalkDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LeaningSettings", + "type_name_2": "enemy01.LeaningSettings", + "qualified_name": "keen::enemy01::LeaningSettings", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 546492182, + "hash2": 4064261619, + "struct_fields": [ + { + "name": "combatStates", + "type_name": "keen::enemy01::CombatStateMask", + "type_hash": 3723818322, + "data_offset": 0 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatJumpMoveSettings", + "type_name_2": "enemy01.CombatJumpMoveSettings", + "qualified_name": "keen::enemy01::CombatJumpMoveSettings", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3251425901, + "hash2": 505570828, + "struct_fields": [ + { + "name": "useJumpMoveIfTargetIsNotReachable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "minJumpMoveDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxJumpMoveDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxJumpUpHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "maxJumpDownHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackMoveSettings", + "type_name_2": "enemy01.AttackMoveSettings", + "qualified_name": "keen::enemy01::AttackMoveSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1218118249, + "hash2": 3204623267, + "struct_fields": [ + { + "name": "alwaysLookAtCombatTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SleepDaytimeSetting", + "type_name_2": "enemy01.SleepDaytimeSetting", + "qualified_name": "keen::enemy01::SleepDaytimeSetting", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1949835409, + "hash2": 2327396482, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "minSleepDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxSleepDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SleepSetup", + "type_name_2": "enemy01.SleepSetup", + "qualified_name": "keen::enemy01::SleepSetup", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3635218797, + "hash2": 1837720596, + "struct_fields": [ + { + "name": "daySettings", + "type_name": "keen::enemy01::SleepDaytimeSetting", + "type_hash": 1949835409, + "data_offset": 0 + }, + { + "name": "nightSettings", + "type_name": "keen::enemy01::SleepDaytimeSetting", + "type_hash": 1949835409, + "data_offset": 24 + }, + { + "name": "minInitialCheckDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "maxInitialCheckDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "minCheckInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "maxCheckInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "sleepAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "enemy01.AttackCooldownGroup[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::enemy01::AttackCooldownGroup", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 388326746, + "hash2": 3012723257, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatSetup", + "type_name_2": "enemy01.CombatSetup", + "qualified_name": "keen::enemy01::CombatSetup", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 463501802, + "hash2": 1398192591, + "struct_fields": [ + { + "name": "preferedDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "preferedDistanceVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "preferedDistanceEngaged", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "preferedDistanceEngagedVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "maxVerticalDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "maxPlayerTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "maxNonPlayerTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "retaliateCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 28 + }, + { + "name": "cooldownGroups", + "type_name": "keen::BlobArray", + "type_hash": 388326746, + "data_offset": 32 + }, + { + "name": "walkStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "runStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "runEndDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "combatRotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "combatIdleAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 56 + }, + { + "name": "blockRotationSettings", + "type_name": "keen::enemy01::BlockRotationSettings", + "type_hash": 2371804517, + "data_offset": 72 + }, + { + "name": "minAttackDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "maxAttackDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "turnConditions", + "type_name": "keen::enemy01::CombatTurnConditions", + "type_hash": 3176690608, + "data_offset": 112 + }, + { + "name": "leaningSettings", + "type_name": "keen::enemy01::LeaningSettings", + "type_hash": 546492182, + "data_offset": 128 + }, + { + "name": "jumpMoveSettings", + "type_name": "keen::enemy01::CombatJumpMoveSettings", + "type_hash": 3251425901, + "data_offset": 136 + }, + { + "name": "attackMoveSettings", + "type_name": "keen::enemy01::AttackMoveSettings", + "type_hash": 1218118249, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockingSetup", + "type_name_2": "enemy01.BlockingSetup", + "qualified_name": "keen::enemy01::BlockingSetup", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 4261031843, + "hash2": 1683424013, + "struct_fields": [ + { + "name": "blockSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "minBlockDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxBlockDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "maxTotalBlockDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "minBlockHitExtendDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "maxBlockHitExtendDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "blockAfterHitChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "activateBlockAtStart", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "autoToggleBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "autoToggleBlockMaxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "useBlockWalk", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "blockWalkAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 72 + }, + { + "name": "minBlockProjectileDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "maxBlockProjectileDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HomeZoneSetup", + "type_name_2": "enemy01.HomeZoneSetup", + "qualified_name": "keen::enemy01::HomeZoneSetup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 655793557, + "hash2": 674663014, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolSetup", + "type_name_2": "enemy01.AggroPoolSetup", + "qualified_name": "keen::enemy01::AggroPoolSetup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2054558068, + "hash2": 2350754275, + "struct_fields": [ + { + "name": "maxValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPools", + "type_name_2": "enemy01.AggroPools", + "qualified_name": "keen::enemy01::AggroPools", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3427788096, + "hash2": 2973196442, + "struct_fields": [ + { + "name": "senses", + "type_name": "keen::enemy01::AggroPoolSetup", + "type_hash": 2054558068, + "data_offset": 0 + }, + { + "name": "friends", + "type_name": "keen::enemy01::AggroPoolSetup", + "type_hash": 2054558068, + "data_offset": 4 + }, + { + "name": "enemies", + "type_name": "keen::enemy01::AggroPoolSetup", + "type_hash": 2054558068, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroSetup", + "type_name_2": "enemy01.AggroSetup", + "qualified_name": "keen::enemy01::AggroSetup", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 4286907174, + "hash2": 3185160070, + "struct_fields": [ + { + "name": "viewRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "nightViewRangeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "viewConeHalfAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "aggroFromAttack", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "aggroInRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "aggroLossOutOfSight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "aggroLossUnreachable", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "aggroDiminishSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "noticedAggro", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "initialAggro", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "alarmedAggroThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "aggroRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "aggroRangeWhileMoving", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "checkPathToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "checkLineOfSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "pools", + "type_name": "keen::enemy01::AggroPools", + "type_hash": 3427788096, + "data_offset": 56 + }, + { + "name": "preferCloserTargets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "preferCloserTargetsDistanceThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "preferShortestPath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "preferShortestPathDistanceThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "preferTargetsWithLessAttackers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallForHelpSetup", + "type_name_2": "enemy01.CallForHelpSetup", + "qualified_name": "keen::enemy01::CallForHelpSetup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3825179080, + "hash2": 3324816223, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "minRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RoamingSetup", + "type_name_2": "enemy01.RoamingSetup", + "qualified_name": "keen::enemy01::RoamingSetup", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1623972717, + "hash2": 3688165669, + "struct_fields": [ + { + "name": "minInitialStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxInitialStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "minStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "maxHomeZoneDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "minLoopUpdateDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "targetNodeRequirements", + "type_name": "keen::ecs::PathNodeRequirements", + "type_hash": 257535372, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FleeSetup", + "type_name_2": "enemy01.FleeSetup", + "qualified_name": "keen::enemy01::FleeSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 137820826, + "hash2": 4114011193, + "struct_fields": [ + { + "name": "minFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "fleeAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 8 + }, + { + "name": "maxFleeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoiseListenerSetup", + "type_name_2": "enemy01.NoiseListenerSetup", + "qualified_name": "keen::enemy01::NoiseListenerSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 557583582, + "hash2": 1935818812, + "struct_fields": [ + { + "name": "reactToNoiseSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "listenRangeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "listenRangeFactorWhileSleeping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringSetup", + "type_name_2": "enemy01.SteeringSetup", + "qualified_name": "keen::enemy01::SteeringSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4137747567, + "hash2": 1720312355, + "struct_fields": [ + { + "name": "defaultSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "roamingSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "closeCombatSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "farCombatSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProwlSetup", + "type_name_2": "enemy01.ProwlSetup", + "qualified_name": "keen::enemy01::ProwlSetup", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1823262508, + "hash2": 348807415, + "struct_fields": [ + { + "name": "minProwlDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxProwlDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxHeightDifference", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "minProwlDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxProwlDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "minProwlCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "maxProwlCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "checkClearPath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParrySetup", + "type_name_2": "enemy01.ParrySetup", + "qualified_name": "keen::enemy01::ParrySetup", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1611911454, + "hash2": 1089720445, + "struct_fields": [ + { + "name": "parriedSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "parriedStunSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + }, + { + "name": "parriedStunLongDurationSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 32 + }, + { + "name": "addedThreatAfterParry", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionSpeedSelector", + "type_name_2": "ecs.LocomotionSpeedSelector", + "qualified_name": "keen::ecs::LocomotionSpeedSelector", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 3172215288, + "hash2": 375772971, + "struct_fields": [], + "enum_fields": [ + { + "name": "Zero", + "value": 0 + }, + { + "name": "Sneak", + "value": 1 + }, + { + "name": "Walk", + "value": 2 + }, + { + "name": "Run", + "value": 3 + }, + { + "name": "Sprint", + "value": 4 + }, + { + "name": "Combat", + "value": 5 + }, + { + "name": "Patrol", + "value": 6 + }, + { + "name": "Flee", + "value": 7 + }, + { + "name": "Custom", + "value": 8 + } + ] + }, + { + "type_name_1": "MovementSetup", + "type_name_2": "enemy01.MovementSetup", + "qualified_name": "keen::enemy01::MovementSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3586626557, + "hash2": 894172967, + "struct_fields": [ + { + "name": "maxMovementAngleDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxMovementAngleProwl", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxMovementAngleCombat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxMovementAngleCombatWithoutRoation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "maxMovementAngleRoaming", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "returnHomeSpeed", + "type_name": "keen::ecs::LocomotionSpeedSelector", + "type_hash": 3172215288, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GuardSetup", + "type_name_2": "enemy01.GuardSetup", + "qualified_name": "keen::enemy01::GuardSetup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2456192307, + "hash2": 2062456702, + "struct_fields": [ + { + "name": "startDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "targetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "guardParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "canGuardPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PatrolSetup", + "type_name_2": "enemy01.PatrolSetup", + "qualified_name": "keen::enemy01::PatrolSetup", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2533701508, + "hash2": 2870968512, + "struct_fields": [ + { + "name": "initialStartTimeMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "initialStartTimeMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "patrolStartMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "patrolStartMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "patrolPauseMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "patrolPauseMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "startTurnDistamce", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "patrolAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionSetup", + "type_name_2": "enemy01.InteractionSetup", + "qualified_name": "keen::enemy01::InteractionSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2491983444, + "hash2": 2561864072, + "struct_fields": [ + { + "name": "interactionPauseMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "interactionPauseMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TauntSetup", + "type_name_2": "enemy01.TauntSetup", + "qualified_name": "keen::enemy01::TauntSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3024437180, + "hash2": 943812675, + "struct_fields": [ + { + "name": "tauntSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "tauntChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "cooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TurnSetup", + "type_name_2": "actor.TurnSetup", + "qualified_name": "keen::actor::TurnSetup", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 90222665, + "hash2": 2777049089, + "struct_fields": [ + { + "name": "turnLeftSmallSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "turnLeftBigSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + }, + { + "name": "turnRightSmallSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 32 + }, + { + "name": "turnRightBigSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 48 + }, + { + "name": "minSmallTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "minBigTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TurnSetup", + "type_name_2": "enemy01.TurnSetup", + "qualified_name": "keen::enemy01::TurnSetup", + "referenced_type_name": "keen::actor::TurnSetup", + "class_size": 104, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1969129695, + "hash2": 1275896460, + "struct_fields": [ + { + "name": "minIdleTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "minIdleTurnCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "maxIdleTurnCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SearchForCoverSetup", + "type_name_2": "enemy01.SearchForCoverSetup", + "qualified_name": "keen::enemy01::SearchForCoverSetup", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2433893616, + "hash2": 713177876, + "struct_fields": [ + { + "name": "minCoverDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "maxCoverDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "minCoverDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxCoverDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "minCoverCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "maxCoverCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RunAroundSetup", + "type_name_2": "enemy01.RunAroundSetup", + "qualified_name": "keen::enemy01::RunAroundSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 815920824, + "hash2": 479629030, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeSetup", + "type_name_2": "enemy01.PathNodeSetup", + "qualified_name": "keen::enemy01::PathNodeSetup", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2441382519, + "hash2": 84103868, + "struct_fields": [ + { + "name": "defaultCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 0 + }, + { + "name": "roamingCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CirclingDirection", + "type_name_2": "enemy01.CirclingDirection", + "qualified_name": "keen::enemy01::CirclingDirection", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1364843735, + "hash2": 3576280598, + "struct_fields": [], + "enum_fields": [ + { + "name": "Left", + "value": 0 + }, + { + "name": "Right", + "value": 1 + } + ] + }, + { + "type_name_1": "CirclingSetup", + "type_name_2": "enemy01.CirclingSetup", + "qualified_name": "keen::enemy01::CirclingSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1464024239, + "hash2": 475693088, + "struct_fields": [ + { + "name": "initialRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "initialHeightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "useOuterCircleAsCombatPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "initialDirection", + "type_name": "keen::enemy01::CirclingDirection", + "type_hash": 1364843735, + "data_offset": 9 + }, + { + "name": "changeDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "minDirectionChangeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxDirectionChangeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy01::CombatSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4007165201, + "hash2": 4057541852, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatSetupReference", + "type_name_2": "enemy01.CombatSetupReference", + "qualified_name": "keen::enemy01::CombatSetupReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3802681727, + "hash2": 1377062837, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LookAtMovementTargetState", + "type_name_2": "enemy01.LookAtMovementTargetState", + "qualified_name": "keen::enemy01::LookAtMovementTargetState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1332572196, + "hash2": 2793603626, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "LookAtCombatTarget", + "value": 1 + }, + { + "name": "LookAtMovementTarget", + "value": 2 + } + ] + }, + { + "type_name_1": "UnreachableJumpMoveState", + "type_name_2": "enemy01.UnreachableJumpMoveState", + "qualified_name": "keen::enemy01::UnreachableJumpMoveState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 950716997, + "hash2": 1225255998, + "struct_fields": [], + "enum_fields": [ + { + "name": "Inactive", + "value": 0 + }, + { + "name": "Active", + "value": 1 + }, + { + "name": "Finished", + "value": 2 + } + ] + }, + { + "type_name_1": "EnemyVariableStateEntry", + "type_name_2": "enemy01.EnemyVariableStateEntry", + "qualified_name": "keen::enemy01::EnemyVariableStateEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1196057060, + "hash2": 1728071178, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::enemy01::EnemyVariableReference", + "type_hash": 3122030124, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.EnemyVariableStateEntry[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::enemy01::EnemyVariableStateEntry", + "class_size": 80, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 600807032, + "hash2": 274247942, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariableStates", + "type_name_2": "enemy01.EnemyVariableStates", + "qualified_name": "keen::enemy01::EnemyVariableStates", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3845459129, + "hash2": 3004127351, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::StaticArray", + "type_hash": 600807032, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionType", + "type_name_2": "impact.HitReactionType", + "qualified_name": "keen::impact::HitReactionType", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 3443959442, + "hash2": 4207934300, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Light", + "value": 1 + }, + { + "name": "Heavy", + "value": 2 + }, + { + "name": "Boss", + "value": 3 + }, + { + "name": "LongStun", + "value": 4 + }, + { + "name": "TrapStun", + "value": 5 + }, + { + "name": "ShortStun_BeGoneSkill", + "value": 6 + }, + { + "name": "ThrowIntoAir", + "value": 7 + }, + { + "name": "ThrowIntoAir_OnlyWhenGrounded", + "value": 8 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "Time[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::Time", + "class_size": 64, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 11174793, + "hash2": 4242408082, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatData", + "type_name_2": "enemy01.CombatData", + "qualified_name": "keen::enemy01::CombatData", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 44, + "primitive_type": "Struct", + "hash1": 1503620121, + "hash2": 2436739469, + "struct_fields": [ + { + "name": "selectedAttackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "lastAttackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "toTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "horizontalKeepDistanceDirection", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "threatPoolId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 24 + }, + { + "name": "lastChangeEvaluation", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "stateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "stateMinTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "stateMaxTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "lastAttackTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "lastHitReceived", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "lastHitReactionType", + "type_name": "keen::impact::HitReactionType", + "type_hash": 3443959442, + "data_offset": 80 + }, + { + "name": "lastHitEventFlags", + "type_name": "keen::ecs::HitEventFlagMask", + "type_hash": 2204135162, + "data_offset": 84 + }, + { + "name": "targetEnteredPrivateSpace", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "prowlAngleChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "selectedPreferedDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "preferedDistanceMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "preferedDistanceMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "prowlAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "distanceToTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "state", + "type_name": "keen::enemy01::CombatState", + "type_hash": 1030333002, + "data_offset": 124 + }, + { + "name": "targetOfMyTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + }, + { + "name": "hitsReceivedWhileBlocking", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 126 + }, + { + "name": "lastBlockChanceEvaluationTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "shouldBlockLastHit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 136 + }, + { + "name": "attackExecutionCount", + "type_name": "keen::StaticArray", + "type_hash": 1438933023, + "data_offset": 137 + }, + { + "name": "nextAllowedAttackGroupTime", + "type_name": "keen::StaticArray", + "type_hash": 11174793, + "data_offset": 160 + }, + { + "name": "closestReachableTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 224 + }, + { + "name": "nextReachablePositionUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 240 + }, + { + "name": "isTargetReachable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 248 + }, + { + "name": "isTargetInsideLeash", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 249 + }, + { + "name": "lastTargetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 252 + }, + { + "name": "commandIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 256 + }, + { + "name": "actionIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 257 + }, + { + "name": "lastActionStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 264 + }, + { + "name": "lastAttackAbortCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 272 + }, + { + "name": "nextAllowedProwlTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 280 + }, + { + "name": "nextAllowedSearchForCoverTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 288 + }, + { + "name": "nextSearchForCoverChangeDistanceTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 296 + }, + { + "name": "currentSearchForCoverDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 304 + }, + { + "name": "lookAtMovementTargetState", + "type_name": "keen::enemy01::LookAtMovementTargetState", + "type_hash": 1332572196, + "data_offset": 305 + }, + { + "name": "unreachableJumpMoveStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 312 + }, + { + "name": "unreachableJumpMoveEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 320 + }, + { + "name": "unreachableJumpMoveState", + "type_name": "keen::enemy01::UnreachableJumpMoveState", + "type_hash": 950716997, + "data_offset": 328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CirclingState", + "type_name_2": "enemy01.CirclingState", + "qualified_name": "keen::enemy01::CirclingState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4053586567, + "hash2": 1583681094, + "struct_fields": [], + "enum_fields": [ + { + "name": "MoveIntoRange", + "value": 0 + }, + { + "name": "MoveToTargetAngle", + "value": 1 + }, + { + "name": "MoveContinuously", + "value": 2 + } + ] + }, + { + "type_name_1": "Angle", + "type_name_2": "Angle", + "qualified_name": "keen::Angle", + "referenced_type_name": "keen::float32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1824496765, + "hash2": 3005136928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CirclingData", + "type_name_2": "enemy01.CirclingData", + "qualified_name": "keen::enemy01::CirclingData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2968921554, + "hash2": 2075335134, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::enemy01::CirclingState", + "type_hash": 4053586567, + "data_offset": 0 + }, + { + "name": "targetAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "centerPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "direction", + "type_name": "keen::enemy01::CirclingDirection", + "type_hash": 1364843735, + "data_offset": 36 + }, + { + "name": "nextDirectionChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "centerHeightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerType", + "type_name_2": "enemy01.EnemyMarkerType", + "qualified_name": "keen::enemy01::EnemyMarkerType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1667739961, + "hash2": 3162702729, + "struct_fields": [], + "enum_fields": [ + { + "name": "PatrolPoint", + "value": 0 + }, + { + "name": "Interaction", + "value": 1 + }, + { + "name": "Alarm", + "value": 2 + }, + { + "name": "MoveTarget", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::enemy01::EnemyMarkerType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3683638577, + "hash2": 3335818833, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerTypeMask", + "type_name_2": "enemy01.EnemyMarkerTypeMask", + "qualified_name": "keen::enemy01::EnemyMarkerTypeMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3166237717, + "hash2": 2359164882, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetCombatStateAction", + "type_name_2": "enemy01.SetCombatStateAction", + "qualified_name": "keen::enemy01::SetCombatStateAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3414448798, + "hash2": 2813375699, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::enemy01::CombatState", + "type_hash": 1030333002, + "data_offset": 0 + }, + { + "name": "minTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetPhaseAction", + "type_name_2": "enemy01.SetPhaseAction", + "qualified_name": "keen::enemy01::SetPhaseAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 401477068, + "hash2": 3455503718, + "struct_fields": [ + { + "name": "newPhase", + "type_name": "keen::ObjectReference", + "type_hash": 1041958340, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SwitchToLastPhaseAction", + "type_name_2": "enemy01.SwitchToLastPhaseAction", + "qualified_name": "keen::enemy01::SwitchToLastPhaseAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 90573797, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SelectAttackAction", + "type_name_2": "enemy01.SelectAttackAction", + "qualified_name": "keen::enemy01::SelectAttackAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4088689735, + "hash2": 3328932239, + "struct_fields": [ + { + "name": "attackStyle", + "type_name": "keen::enemy01::AttackStyle", + "type_hash": 663173734, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetStunnedAction", + "type_name_2": "enemy01.GetStunnedAction", + "qualified_name": "keen::enemy01::GetStunnedAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2414090444, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetImmuneAction", + "type_name_2": "enemy01.SetImmuneAction", + "qualified_name": "keen::enemy01::SetImmuneAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3846962172, + "hash2": 868052658, + "struct_fields": [ + { + "name": "immune", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Signal", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4137885377, + "hash2": 3052974441, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SignalReference", + "type_name_2": "SignalReference", + "qualified_name": "keen::SignalReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3731309403, + "hash2": 4158088573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SendToggleEventAction", + "type_name_2": "enemy01.SendToggleEventAction", + "qualified_name": "keen::enemy01::SendToggleEventAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 25647659, + "hash2": 267713591, + "struct_fields": [ + { + "name": "triggerId", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerStateConditionAction", + "type_name_2": "enemy01.TriggerStateConditionAction", + "qualified_name": "keen::enemy01::TriggerStateConditionAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2273080123, + "hash2": 1785876203, + "struct_fields": [ + { + "name": "condition", + "type_name": "keen::enemy01::StateCondition", + "type_hash": 804128731, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RunAwayAction", + "type_name_2": "enemy01.RunAwayAction", + "qualified_name": "keen::enemy01::RunAwayAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2112558866, + "hash2": 634194904, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveForwardAction", + "type_name_2": "enemy01.MoveForwardAction", + "qualified_name": "keen::enemy01::MoveForwardAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4008768435, + "hash2": 315939874, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "speed", + "type_name": "keen::ecs::LocomotionSpeedSelector", + "type_hash": 3172215288, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PauseAction", + "type_name_2": "enemy01.PauseAction", + "qualified_name": "keen::enemy01::PauseAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4019874143, + "hash2": 3133419478, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lookAtCombatTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetIdleAnimationAction", + "type_name_2": "enemy01.SetIdleAnimationAction", + "qualified_name": "keen::enemy01::SetIdleAnimationAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3156397787, + "hash2": 4197555255, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetWalkAnimationAction", + "type_name_2": "enemy01.SetWalkAnimationAction", + "qualified_name": "keen::enemy01::SetWalkAnimationAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3761341926, + "hash2": 4197555255, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetMovementSpeedAction", + "type_name_2": "enemy01.SetMovementSpeedAction", + "qualified_name": "keen::enemy01::SetMovementSpeedAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2050031551, + "hash2": 1663519865, + "struct_fields": [ + { + "name": "movementType", + "type_name": "keen::ecs::LocomotionSpeedSelector", + "type_hash": 3172215288, + "data_offset": 0 + }, + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayActionSequenceAction", + "type_name_2": "enemy01.PlayActionSequenceAction", + "qualified_name": "keen::enemy01::PlayActionSequenceAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1416772070, + "hash2": 226340222, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "waitUntilFinished", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeSlopeAlignmentAction", + "type_name_2": "enemy01.ChangeSlopeAlignmentAction", + "qualified_name": "keen::enemy01::ChangeSlopeAlignmentAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1679905927, + "hash2": 3621191883, + "struct_fields": [ + { + "name": "longitudinalFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lateralFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartFlyingAction", + "type_name_2": "enemy01.StartFlyingAction", + "qualified_name": "keen::enemy01::StartFlyingAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1897723038, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnterFlyingStateAction", + "type_name_2": "enemy01.EnterFlyingStateAction", + "qualified_name": "keen::enemy01::EnterFlyingStateAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3908277025, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StopFlyingAction", + "type_name_2": "enemy01.StopFlyingAction", + "qualified_name": "keen::enemy01::StopFlyingAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1521972860, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleAllowFallDownAction", + "type_name_2": "enemy01.ToggleAllowFallDownAction", + "qualified_name": "keen::enemy01::ToggleAllowFallDownAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3964222937, + "hash2": 3890881761, + "struct_fields": [ + { + "name": "allowFallDown", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GuardParentAction", + "type_name_2": "enemy01.GuardParentAction", + "qualified_name": "keen::enemy01::GuardParentAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3674162540, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GuardGroupLeaderAction", + "type_name_2": "enemy01.GuardGroupLeaderAction", + "qualified_name": "keen::enemy01::GuardGroupLeaderAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3358842770, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StopGuardAction", + "type_name_2": "enemy01.StopGuardAction", + "qualified_name": "keen::enemy01::StopGuardAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 304410524, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnableFeatureAction", + "type_name_2": "enemy01.EnableFeatureAction", + "qualified_name": "keen::enemy01::EnableFeatureAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3247927762, + "hash2": 13982769, + "struct_fields": [ + { + "name": "feature", + "type_name": "keen::ecs::EnemyFeature", + "type_hash": 2377347389, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisableFeatureAction", + "type_name_2": "enemy01.DisableFeatureAction", + "qualified_name": "keen::enemy01::DisableFeatureAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 543296405, + "hash2": 13982769, + "struct_fields": [ + { + "name": "feature", + "type_name": "keen::ecs::EnemyFeature", + "type_hash": 2377347389, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetFleeRadiusAction", + "type_name_2": "enemy01.SetFleeRadiusAction", + "qualified_name": "keen::enemy01::SetFleeRadiusAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2449517723, + "hash2": 3911989476, + "struct_fields": [ + { + "name": "fleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectFriendAction", + "type_name_2": "enemy01.SelectFriendAction", + "qualified_name": "keen::enemy01::SelectFriendAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 532427767, + "hash2": 4286938066, + "struct_fields": [ + { + "name": "minHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectEnemyAction", + "type_name_2": "enemy01.SelectEnemyAction", + "qualified_name": "keen::enemy01::SelectEnemyAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2988987241, + "hash2": 4286938066, + "struct_fields": [ + { + "name": "minHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveToTargetAction", + "type_name_2": "enemy01.MoveToTargetAction", + "qualified_name": "keen::enemy01::MoveToTargetAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1463155778, + "hash2": 3835829662, + "struct_fields": [ + { + "name": "targetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "targetType", + "type_name": "keen::ecs::TargetType", + "type_hash": 1671000586, + "data_offset": 4 + }, + { + "name": "speed", + "type_name": "keen::ecs::LocomotionSpeedSelector", + "type_hash": 3172215288, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaitUntilActorStateIsFinished", + "type_name_2": "enemy01.WaitUntilActorStateIsFinished", + "qualified_name": "keen::enemy01::WaitUntilActorStateIsFinished", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2953970296, + "hash2": 1434457326, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::actor::StateFlag", + "type_hash": 2652801490, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaitUntilSequenceIsFinished", + "type_name_2": "enemy01.WaitUntilSequenceIsFinished", + "qualified_name": "keen::enemy01::WaitUntilSequenceIsFinished", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3889216523, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetWorldColliderYOffsetAction", + "type_name_2": "enemy01.SetWorldColliderYOffsetAction", + "qualified_name": "keen::enemy01::SetWorldColliderYOffsetAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2465336089, + "hash2": 3808691996, + "struct_fields": [ + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleBlockAction", + "type_name_2": "enemy01.ToggleBlockAction", + "qualified_name": "keen::enemy01::ToggleBlockAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3440555656, + "hash2": 1382960413, + "struct_fields": [ + { + "name": "shouldBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleVerticalLeaningAction", + "type_name_2": "enemy01.ToggleVerticalLeaningAction", + "qualified_name": "keen::enemy01::ToggleVerticalLeaningAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 547169307, + "hash2": 26325731, + "struct_fields": [ + { + "name": "shouldUseVerticalLeaning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetVariableAction", + "type_name_2": "enemy01.SetVariableAction", + "qualified_name": "keen::enemy01::SetVariableAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1867069725, + "hash2": 2474808528, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::enemy01::EnemyVariableReference", + "type_hash": 3122030124, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearVariableAction", + "type_name_2": "enemy01.ClearVariableAction", + "qualified_name": "keen::enemy01::ClearVariableAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2423448036, + "hash2": 1766415084, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::enemy01::EnemyVariableReference", + "type_hash": 3122030124, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetCirclingRadiusAction", + "type_name_2": "enemy01.SetCirclingRadiusAction", + "qualified_name": "keen::enemy01::SetCirclingRadiusAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2943342328, + "hash2": 2056850052, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetCirclingHeightOffsetAction", + "type_name_2": "enemy01.SetCirclingHeightOffsetAction", + "qualified_name": "keen::enemy01::SetCirclingHeightOffsetAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 414874334, + "hash2": 15715694, + "struct_fields": [ + { + "name": "heightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveToCirclingTargetAction", + "type_name_2": "enemy01.MoveToCirclingTargetAction", + "qualified_name": "keen::enemy01::MoveToCirclingTargetAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3480159817, + "hash2": 1162545752, + "struct_fields": [ + { + "name": "speed", + "type_name": "keen::ecs::LocomotionSpeedSelector", + "type_hash": 3172215288, + "data_offset": 0 + }, + { + "name": "maxArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "keepCurrentDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TurnToCirclingTargetAction", + "type_name_2": "enemy01.TurnToCirclingTargetAction", + "qualified_name": "keen::enemy01::TurnToCirclingTargetAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 908698899, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoreCurrentCirclingTargetAngleAction", + "type_name_2": "enemy01.StoreCurrentCirclingTargetAngleAction", + "qualified_name": "keen::enemy01::StoreCurrentCirclingTargetAngleAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3025701798, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoreCirclingPositionAsTargetAction", + "type_name_2": "enemy01.StoreCirclingPositionAsTargetAction", + "qualified_name": "keen::enemy01::StoreCirclingPositionAsTargetAction", + "referenced_type_name": "keen::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 50373465, + "hash2": 2130939792, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ecs::TargetType", + "type_hash": 1671000586, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "angleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy01::AttackDesscriptionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1432382571, + "hash2": 4254720584, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackReference", + "type_name_2": "ecs.AttackReference", + "qualified_name": "keen::ecs::AttackReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3224531612, + "hash2": 2501879858, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy01::AttackDesscription", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1202931135, + "hash2": 3373678604, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDescriptionReference", + "type_name_2": "ecs.AttackDescriptionReference", + "qualified_name": "keen::ecs::AttackDescriptionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2287397096, + "hash2": 440573484, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackReferenceDescription", + "type_name_2": "ecs.AttackReferenceDescription", + "qualified_name": "keen::ecs::AttackReferenceDescription", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 884555958, + "hash2": 4273070047, + "struct_fields": [ + { + "name": "attack", + "type_name": "keen::ecs::AttackDescriptionReference", + "type_hash": 2287397096, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenal", + "type_name_2": "ecs.EnemyArsenal", + "qualified_name": "keen::ecs::EnemyArsenal", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4080419265, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::impact::HitReactionType", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 1123445863, + "hash2": 2569492001, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionTypeMask", + "type_name_2": "ecs.HitReactionTypeMask", + "qualified_name": "keen::ecs::HitReactionTypeMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1041201631, + "hash2": 799551981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Enemy01BehaviorState", + "type_name_2": "ecs.Enemy01BehaviorState", + "qualified_name": "keen::ecs::Enemy01BehaviorState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1248, + "fields_count": 31, + "primitive_type": "Struct", + "hash1": 1380481793, + "hash2": 1264739913, + "struct_fields": [ + { + "name": "combatSetup", + "type_name": "keen::enemy01::CombatSetup", + "type_hash": 463501802, + "data_offset": 0 + }, + { + "name": "homeZoneSetup", + "type_name": "keen::enemy01::HomeZoneSetup", + "type_hash": 655793557, + "data_offset": 176 + }, + { + "name": "aggroSetup", + "type_name": "keen::enemy01::AggroSetup", + "type_hash": 4286907174, + "data_offset": 180 + }, + { + "name": "callForHelpSetup", + "type_name": "keen::enemy01::CallForHelpSetup", + "type_hash": 3825179080, + "data_offset": 268 + }, + { + "name": "roamingSetup", + "type_name": "keen::enemy01::RoamingSetup", + "type_hash": 1623972717, + "data_offset": 280 + }, + { + "name": "fleeSetup", + "type_name": "keen::enemy01::FleeSetup", + "type_hash": 137820826, + "data_offset": 344 + }, + { + "name": "blockingSetup", + "type_name": "keen::enemy01::BlockingSetup", + "type_hash": 4261031843, + "data_offset": 376 + }, + { + "name": "noiseListenerSetup", + "type_name": "keen::enemy01::NoiseListenerSetup", + "type_hash": 557583582, + "data_offset": 472 + }, + { + "name": "steeringSetup", + "type_name": "keen::enemy01::SteeringSetup", + "type_hash": 4137747567, + "data_offset": 496 + }, + { + "name": "prowlSetup", + "type_name": "keen::enemy01::ProwlSetup", + "type_hash": 1823262508, + "data_offset": 512 + }, + { + "name": "parrySetup", + "type_name": "keen::enemy01::ParrySetup", + "type_hash": 1611911454, + "data_offset": 568 + }, + { + "name": "movementSetup", + "type_name": "keen::enemy01::MovementSetup", + "type_hash": 3586626557, + "data_offset": 620 + }, + { + "name": "guardSetup", + "type_name": "keen::enemy01::GuardSetup", + "type_hash": 2456192307, + "data_offset": 644 + }, + { + "name": "interactionSetup", + "type_name": "keen::enemy01::InteractionSetup", + "type_hash": 2491983444, + "data_offset": 656 + }, + { + "name": "patrolSetup", + "type_name": "keen::enemy01::PatrolSetup", + "type_hash": 2533701508, + "data_offset": 672 + }, + { + "name": "tauntSetup", + "type_name": "keen::enemy01::TauntSetup", + "type_hash": 3024437180, + "data_offset": 744 + }, + { + "name": "turnSetup", + "type_name": "keen::enemy01::TurnSetup", + "type_hash": 1969129695, + "data_offset": 776 + }, + { + "name": "searchForCoverSetup", + "type_name": "keen::enemy01::SearchForCoverSetup", + "type_hash": 2433893616, + "data_offset": 880 + }, + { + "name": "sleepSetup", + "type_name": "keen::enemy01::SleepSetup", + "type_hash": 3635218797, + "data_offset": 920 + }, + { + "name": "runAroundSetup", + "type_name": "keen::enemy01::RunAroundSetup", + "type_hash": 815920824, + "data_offset": 1016 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::enemy01::PathNodeSetup", + "type_hash": 2441382519, + "data_offset": 1040 + }, + { + "name": "circlingSetup", + "type_name": "keen::enemy01::CirclingSetup", + "type_hash": 1464024239, + "data_offset": 1144 + }, + { + "name": "callForHelpSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 1176 + }, + { + "name": "spawnSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 1192 + }, + { + "name": "enemyClass", + "type_name": "keen::enemy01::EnemyClass", + "type_hash": 2312422757, + "data_offset": 1208 + }, + { + "name": "enabledFeatures", + "type_name": "keen::ecs::EnemyFeatureMask", + "type_hash": 3432276225, + "data_offset": 1212 + }, + { + "name": "threatFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1216 + }, + { + "name": "deathSignal", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 1220 + }, + { + "name": "pushBackScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1236 + }, + { + "name": "disabledHitReactions", + "type_name": "keen::ecs::HitReactionTypeMask", + "type_hash": 1041201631, + "data_offset": 1240 + }, + { + "name": "maxHeightDiff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1244 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlyingEnemy", + "type_name_2": "ecs.FlyingEnemy", + "qualified_name": "keen::ecs::FlyingEnemy", + "referenced_type_name": "keen::ecs::Component", + "class_size": 56, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2216582800, + "hash2": 989835186, + "struct_fields": [ + { + "name": "minRoamingHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxRoamingHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minFlyHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxFlyHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "landingHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "attackHeightOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "combatIdleHeightOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "defaultArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "attackArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "attackWhileGrounded", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "idleAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "Time[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::Time", + "class_size": 256, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 2461234204, + "hash2": 3779612611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemy01BehaviorState", + "type_name_2": "ecs.DynamicEnemy01BehaviorState", + "qualified_name": "keen::ecs::DynamicEnemy01BehaviorState", + "referenced_type_name": null, + "class_size": 1016, + "fields_count": 51, + "primitive_type": "Struct", + "hash1": 1528901350, + "hash2": 48398320, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::enemy01::State", + "type_hash": 1582315374, + "data_offset": 0 + }, + { + "name": "stateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "homeZonePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "movementTargetIsValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "movementTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "movementStartPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 44 + }, + { + "name": "movementStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "combatData", + "type_name": "keen::enemy01::CombatData", + "type_hash": 1503620121, + "data_offset": 64 + }, + { + "name": "circlingData", + "type_name": "keen::enemy01::CirclingData", + "type_hash": 2968921554, + "data_offset": 400 + }, + { + "name": "variableStates", + "type_name": "keen::enemy01::EnemyVariableStates", + "type_hash": 3845459129, + "data_offset": 456 + }, + { + "name": "nextAllowedRoamingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 536 + }, + { + "name": "targetCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 544 + }, + { + "name": "lastBehaviorCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 552 + }, + { + "name": "lastBehaviorExecutionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 560 + }, + { + "name": "nextBehaviorCheckTime", + "type_name": "keen::StaticArray", + "type_hash": 2461234204, + "data_offset": 568 + }, + { + "name": "currentBehaviorIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 824 + }, + { + "name": "currentBehaviorActionIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 825 + }, + { + "name": "callForHelpQueryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 828 + }, + { + "name": "callForHelpTargetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 832 + }, + { + "name": "lastHelpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 840 + }, + { + "name": "returnHomeStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 848 + }, + { + "name": "executedStates", + "type_name": "keen::enemy01::StateMask", + "type_hash": 3167199966, + "data_offset": 856 + }, + { + "name": "dashQueryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 860 + }, + { + "name": "noiseEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 864 + }, + { + "name": "projectileEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 868 + }, + { + "name": "controlledByAttacks", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 872 + }, + { + "name": "nextAllowedCombatIdleRotationTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 880 + }, + { + "name": "teleportPositionFound", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 888 + }, + { + "name": "currentIdleAnimation", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 892 + }, + { + "name": "currentWalkAnimation", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 896 + }, + { + "name": "currentLongitudinalSlopeAlignmentFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 900 + }, + { + "name": "currentLateralSlopeAlignmentFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 904 + }, + { + "name": "guardEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 908 + }, + { + "name": "currentGuardTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 912 + }, + { + "name": "currentMarkerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 916 + }, + { + "name": "nextAllowedInteractionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 920 + }, + { + "name": "nextAllowedPatrolTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 928 + }, + { + "name": "nextCheckGuardTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 936 + }, + { + "name": "nextCheckTauntTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 944 + }, + { + "name": "nextAllowedCombatIdleTurnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 952 + }, + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 960 + }, + { + "name": "lastNoisePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 964 + }, + { + "name": "shouldBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 976 + }, + { + "name": "isWalkBlockActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 977 + }, + { + "name": "isAttackMove", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 978 + }, + { + "name": "isVerticalLeaningActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 979 + }, + { + "name": "enabledFeatures", + "type_name": "keen::ecs::EnemyFeatureMask", + "type_hash": 3432276225, + "data_offset": 980 + }, + { + "name": "disabledFeatures", + "type_name": "keen::ecs::EnemyFeatureMask", + "type_hash": 3432276225, + "data_offset": 984 + }, + { + "name": "nextSleepCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 992 + }, + { + "name": "sleepEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 1000 + }, + { + "name": "parriedByEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 1008 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnitMode", + "type_name_2": "ecs.UnitMode", + "qualified_name": "keen::ecs::UnitMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1633882258, + "hash2": 1325224341, + "struct_fields": [], + "enum_fields": [ + { + "name": "Wildlife", + "value": 0 + }, + { + "name": "Enemy", + "value": 1 + } + ] + }, + { + "type_name_1": "UnitTransformer", + "type_name_2": "ecs.UnitTransformer", + "qualified_name": "keen::ecs::UnitTransformer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2026948984, + "hash2": 3293014542, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ecs::UnitMode", + "type_hash": 1633882258, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerCountScaling", + "type_name_2": "ecs.PlayerCountScaling", + "qualified_name": "keen::ecs::PlayerCountScaling", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4050999410, + "hash2": 767406744, + "struct_fields": [ + { + "name": "scaleHealth", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "scaleDamage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "scaleStamina", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "healthScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "damageScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "staminaScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "allowDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "minPlayerCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyLevelScaling", + "type_name_2": "ecs.EnemyLevelScaling", + "qualified_name": "keen::ecs::EnemyLevelScaling", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2926287962, + "hash2": 890164757, + "struct_fields": [ + { + "name": "healthScaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "staminaScaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyScaling", + "type_name_2": "ecs.EnemyScaling", + "qualified_name": "keen::ecs::EnemyScaling", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1227325378, + "hash2": 3795694214, + "struct_fields": [ + { + "name": "updateInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "playerCountScaling", + "type_name": "keen::ecs::PlayerCountScaling", + "type_hash": 4050999410, + "data_offset": 8 + }, + { + "name": "enemyLevelScaling", + "type_name": "keen::ecs::EnemyLevelScaling", + "type_hash": 2926287962, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyScaling", + "type_name_2": "ecs.DynamicEnemyScaling", + "qualified_name": "keen::ecs::DynamicEnemyScaling", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 620460293, + "hash2": 3098758859, + "struct_fields": [ + { + "name": "nextUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "lastTargets", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "lastLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "lastDamageMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "initialBaseMaxHealth", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 20 + }, + { + "name": "initialBaseStrength", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + }, + { + "name": "initialBaseDexterity", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "initialBaseIntelligence", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerEntry", + "type_name_2": "ecs.EnemyMarkerEntry", + "qualified_name": "keen::ecs::EnemyMarkerEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2502343409, + "hash2": 2332689893, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "markerType", + "type_name": "keen::enemy01::EnemyMarkerType", + "type_hash": 1667739961, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EnemyMarkerEntry[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EnemyMarkerEntry", + "class_size": 160, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3042475575, + "hash2": 1491651185, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerCheck", + "type_name_2": "ecs.EnemyMarkerCheck", + "qualified_name": "keen::ecs::EnemyMarkerCheck", + "referenced_type_name": "keen::ecs::Component", + "class_size": 176, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2791616697, + "hash2": 1453930317, + "struct_fields": [ + { + "name": "checkDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 4 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "markers", + "type_name": "keen::StaticArray", + "type_hash": 3042475575, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarker", + "type_name_2": "ecs.EnemyMarker", + "qualified_name": "keen::ecs::EnemyMarker", + "referenced_type_name": "keen::ecs::Component", + "class_size": 80, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 4063361943, + "hash2": 2210152281, + "struct_fields": [ + { + "name": "markerType", + "type_name": "keen::enemy01::EnemyMarkerType", + "type_hash": 1667739961, + "data_offset": 0 + }, + { + "name": "defaultInteractSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 4 + }, + { + "name": "useTargetOffset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "targetOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 24 + }, + { + "name": "arriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "alarmRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "usePatrolPointDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + }, + { + "name": "attackTargets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "maxUsers", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 74 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 75 + }, + { + "name": "minTargetHorizontalSpace", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LastEnemyValue", + "type_name_2": "ecs.LastEnemyValue", + "qualified_name": "keen::ecs::LastEnemyValue", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1349376890, + "hash2": 2918699507, + "struct_fields": [ + { + "name": "lastEnemyValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyMarker", + "type_name_2": "ecs.DynamicEnemyMarker", + "qualified_name": "keen::ecs::DynamicEnemyMarker", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2086472154, + "hash2": 1050616713, + "struct_fields": [ + { + "name": "users", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::EnemyArsenal", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 397732658, + "hash2": 3799593922, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalReference", + "type_name_2": "ecs.EnemyArsenalReference", + "qualified_name": "keen::ecs::EnemyArsenalReference", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1162191390, + "hash2": 631899938, + "struct_fields": [ + { + "name": "arsenal", + "type_name": "keen::ObjectReference", + "type_hash": 397732658, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAttackAttachment", + "type_name_2": "ecs.EnemyAttackAttachment", + "qualified_name": "keen::ecs::EnemyAttackAttachment", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1225525808, + "hash2": 249389136, + "struct_fields": [ + { + "name": "initialSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAttackAttachmentState", + "type_name_2": "ecs.EnemyAttackAttachmentState", + "qualified_name": "keen::ecs::EnemyAttackAttachmentState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 241809381, + "hash2": 225182130, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Active", + "value": 1 + }, + { + "name": "Inactive", + "value": 2 + } + ] + }, + { + "type_name_1": "DynamicEnemyAttackAttachment", + "type_name_2": "ecs.DynamicEnemyAttackAttachment", + "qualified_name": "keen::ecs::DynamicEnemyAttackAttachment", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3411847673, + "hash2": 3924723855, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ecs::EnemyAttackAttachmentState", + "type_hash": 241809381, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "enemy01.AttackDesscriptionResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::enemy01::AttackDesscriptionResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2177172039, + "hash2": 3788880280, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "enemy01.BehaviorDesscriptionResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::enemy01::BehaviorDesscriptionResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 720722025, + "hash2": 3847832611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenal", + "type_name_2": "enemy.EnemyArsenal", + "qualified_name": "keen::enemy::EnemyArsenal", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2824106384, + "hash2": 3332995162, + "struct_fields": [ + { + "name": "attacks", + "type_name": "keen::BlobArray", + "type_hash": 2177172039, + "data_offset": 0 + }, + { + "name": "behaviors", + "type_name": "keen::BlobArray", + "type_hash": 720722025, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalResource", + "type_name_2": "enemy.EnemyArsenalResource", + "qualified_name": "keen::enemy::EnemyArsenalResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2528012100, + "hash2": 3600204805, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "attacks", + "type_name": "keen::BlobArray", + "type_hash": 2177172039, + "data_offset": 16 + }, + { + "name": "behaviors", + "type_name": "keen::BlobArray", + "type_hash": 720722025, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalSubDirectory", + "type_name_2": "enemy.EnemyArsenalSubDirectory", + "qualified_name": "keen::enemy::EnemyArsenalSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3305769905, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalDirectory", + "type_name_2": "enemy.EnemyArsenalDirectory", + "qualified_name": "keen::enemy::EnemyArsenalDirectory", + "referenced_type_name": "keen::enemy::EnemyArsenalSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 595089939, + "hash2": 3769759096, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "enemy.EnemyArsenalResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::enemy::EnemyArsenalResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2289534025, + "hash2": 4045148716, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalRegistryResource", + "type_name_2": "enemy.EnemyArsenalRegistryResource", + "qualified_name": "keen::enemy::EnemyArsenalRegistryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4135415747, + "hash2": 1566783400, + "struct_fields": [ + { + "name": "arsenals", + "type_name": "keen::BlobArray", + "type_hash": 2289534025, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KillEnemyMessage", + "type_name_2": "enemy01_debug.KillEnemyMessage", + "qualified_name": "keen::enemy01_debug::KillEnemyMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 538846466, + "hash2": 1812712381, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnforceEnemyAttackMessage", + "type_name_2": "enemy01_debug.EnforceEnemyAttackMessage", + "qualified_name": "keen::enemy01_debug::EnforceEnemyAttackMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 408565522, + "hash2": 3165672796, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "attackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleDisableEnemyAttackMessage", + "type_name_2": "enemy01_debug.ToggleDisableEnemyAttackMessage", + "qualified_name": "keen::enemy01_debug::ToggleDisableEnemyAttackMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2391517220, + "hash2": 2068399319, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "attackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "disabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetTameStateMessage", + "type_name_2": "enemy01_debug.SetTameStateMessage", + "qualified_name": "keen::enemy01_debug::SetTameStateMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4047471722, + "hash2": 1088689385, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "tamed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetFrozenStateMessage", + "type_name_2": "enemy01_debug.SetFrozenStateMessage", + "qualified_name": "keen::enemy01_debug::SetFrozenStateMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3264846929, + "hash2": 1186317032, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "frozen", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugAnimationGraphMessage", + "type_name_2": "enemy01_debug.DebugAnimationGraphMessage", + "qualified_name": "keen::enemy01_debug::DebugAnimationGraphMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 12165705, + "hash2": 1812712381, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetStateMessage", + "type_name_2": "enemy01_debug.SetStateMessage", + "qualified_name": "keen::enemy01_debug::SetStateMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3286302527, + "hash2": 2732319797, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::enemy01::State", + "type_hash": 1582315374, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnforcePhaseMessage", + "type_name_2": "enemy01_debug.EnforcePhaseMessage", + "qualified_name": "keen::enemy01_debug::EnforcePhaseMessage", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3007201559, + "hash2": 1442430713, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "phaseId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugAttackState", + "type_name_2": "enemy01.DebugAttackState", + "qualified_name": "keen::enemy01::DebugAttackState", + "referenced_type_name": null, + "class_size": 9, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 64630289, + "hash2": 262817833, + "struct_fields": [ + { + "name": "constraintStates", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 0 + }, + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugBehaviorState", + "type_name_2": "enemy01.DebugBehaviorState", + "qualified_name": "keen::enemy01::DebugBehaviorState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 229894191, + "hash2": 734363312, + "struct_fields": [ + { + "name": "constraintStates", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 0 + }, + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "executionCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateEntry", + "type_name_2": "enemy01.StateEntry", + "qualified_name": "keen::enemy01::StateEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 10528278, + "hash2": 1947457209, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::enemy01::State", + "type_hash": 1582315374, + "data_offset": 0 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatStateEntry", + "type_name_2": "enemy01.CombatStateEntry", + "qualified_name": "keen::enemy01::CombatStateEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1332404386, + "hash2": 1521061716, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::enemy01::CombatState", + "type_hash": 1030333002, + "data_offset": 0 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint64[1]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint64", + "class_size": 8, + "fields_count": 1, + "primitive_type": "StaticArray", + "hash1": 953321333, + "hash2": 4231594409, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.DebugAttackState[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::enemy01::DebugAttackState", + "class_size": 144, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 3385044788, + "hash2": 1108931281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.DebugBehaviorState[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::enemy01::DebugBehaviorState", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 1407508336, + "hash2": 1714451533, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.StateEntry[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::enemy01::StateEntry", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 544498018, + "hash2": 3222039842, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.CombatStateEntry[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::enemy01::CombatStateEntry", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 800884490, + "hash2": 4271368850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyDebug", + "type_name_2": "ecs.EnemyDebug", + "qualified_name": "keen::ecs::EnemyDebug", + "referenced_type_name": "keen::ecs::Component", + "class_size": 960, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 185219992, + "hash2": 3586130071, + "struct_fields": [ + { + "name": "enforcedAttackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "disabledAttacks", + "type_name": "keen::StaticArray", + "type_hash": 953321333, + "data_offset": 8 + }, + { + "name": "tamed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "frozen", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "attackStates", + "type_name": "keen::StaticArray", + "type_hash": 3385044788, + "data_offset": 18 + }, + { + "name": "behaviorStates", + "type_name": "keen::StaticArray", + "type_hash": 1407508336, + "data_offset": 164 + }, + { + "name": "stateHistory", + "type_name": "keen::StaticArray", + "type_hash": 544498018, + "data_offset": 680 + }, + { + "name": "combatStateHistory", + "type_name": "keen::StaticArray", + "type_hash": 800884490, + "data_offset": 808 + }, + { + "name": "nextState", + "type_name": "keen::enemy01::State", + "type_hash": 1582315374, + "data_offset": 936 + }, + { + "name": "enforcedPhase", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 940 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyTest", + "type_name_2": "ecs.EnemyTest", + "qualified_name": "keen::ecs::EnemyTest", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1251912677, + "hash2": 4285579275, + "struct_fields": [], + "enum_fields": [ + { + "name": "StayOnGround", + "value": 0 + }, + { + "name": "Patrol", + "value": 1 + }, + { + "name": "EnemyVsEnemyFight", + "value": 2 + }, + { + "name": "ReactToNoise", + "value": 3 + }, + { + "name": "Steering", + "value": 4 + }, + { + "name": "AggroBigAngleLongDistance", + "value": 5 + }, + { + "name": "AggroSmallAngleShortDistance", + "value": 6 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::ecs::EnemyTest", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 2218624254, + "hash2": 977167951, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyTestFlags", + "type_name_2": "ecs.EnemyTestFlags", + "qualified_name": "keen::ecs::EnemyTestFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1314530348, + "hash2": 1086428236, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyPatrolTest", + "type_name_2": "ecs.EnemyPatrolTest", + "qualified_name": "keen::ecs::EnemyPatrolTest", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 206852975, + "hash2": 4109626927, + "struct_fields": [ + { + "name": "hasReachedPatrolPoint0", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "hasReachedPatrolPoint1", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyTestToggle", + "type_name_2": "ecs.EnemyTestToggle", + "qualified_name": "keen::ecs::EnemyTestToggle", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1630208005, + "hash2": 1470336245, + "struct_fields": [ + { + "name": "tests", + "type_name": "keen::ecs::EnemyTestFlags", + "type_hash": 1314530348, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 96, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 1046720275, + "hash2": 2386634224, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnitGroup", + "type_name_2": "ecs.UnitGroup", + "qualified_name": "keen::ecs::UnitGroup", + "referenced_type_name": "keen::ecs::Component", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4230051852, + "hash2": 1695758903, + "struct_fields": [ + { + "name": "members", + "type_name": "keen::StaticArray", + "type_hash": 1046720275, + "data_offset": 0 + }, + { + "name": "nextUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnitGroupMember", + "type_name_2": "ecs.UnitGroupMember", + "qualified_name": "keen::ecs::UnitGroupMember", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2190661374, + "hash2": 1155303410, + "struct_fields": [ + { + "name": "groupId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "groupLeaderId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "memberIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "wildlife.State", + "qualified_name": "keen::wildlife::State", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 16, + "primitive_type": "Enum", + "hash1": 2824709637, + "hash2": 2527549943, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Start", + "value": 1 + }, + { + "name": "Spawning", + "value": 2 + }, + { + "name": "Idle", + "value": 3 + }, + { + "name": "Alert", + "value": 4 + }, + { + "name": "Flee", + "value": 5 + }, + { + "name": "Roaming", + "value": 6 + }, + { + "name": "RunAway", + "value": 7 + }, + { + "name": "Hit", + "value": 8 + }, + { + "name": "Landing", + "value": 9 + }, + { + "name": "FlyToLandingPosition", + "value": 10 + }, + { + "name": "Gliding", + "value": 11 + }, + { + "name": "Dead", + "value": 12 + }, + { + "name": "ReturnToSpawnPosition", + "value": 13 + }, + { + "name": "FoodBaitPursue", + "value": 14 + }, + { + "name": "FoodBaitEat", + "value": 15 + } + ] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "wildlife.StateCondition", + "qualified_name": "keen::wildlife::StateCondition", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 1586524318, + "hash2": 650440420, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsFinished", + "value": 0 + }, + { + "name": "Alert", + "value": 1 + }, + { + "name": "NeedsToFlee", + "value": 2 + }, + { + "name": "IsInDanger", + "value": 3 + }, + { + "name": "Hit", + "value": 4 + }, + { + "name": "IsStuck", + "value": 5 + }, + { + "name": "Death", + "value": 6 + }, + { + "name": "TooFarAwayFromSpawnPosition", + "value": 7 + }, + { + "name": "HasSensedFoodBait", + "value": 8 + }, + { + "name": "Aborted", + "value": 9 + } + ] + }, + { + "type_name_1": "Feature", + "type_name_2": "wildlife.Feature", + "qualified_name": "keen::wildlife::Feature", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3686397054, + "hash2": 1632509373, + "struct_fields": [], + "enum_fields": [ + { + "name": "Roaming", + "value": 0 + }, + { + "name": "Flee", + "value": 1 + }, + { + "name": "ShowSpawnSequence", + "value": 2 + }, + { + "name": "Tameable", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::wildlife::Feature", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 2191291391, + "hash2": 569698217, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FeatureMask", + "type_name_2": "wildlife.FeatureMask", + "qualified_name": "keen::wildlife::FeatureMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3781846222, + "hash2": 810728438, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MovementSetup", + "type_name_2": "wildlife.MovementSetup", + "qualified_name": "keen::wildlife::MovementSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3650029878, + "hash2": 659922511, + "struct_fields": [ + { + "name": "maxMovementAngleDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxMovementAngleFlee", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxMovementAngleRoaming", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxMovementAngleLanding", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GlidingSetup", + "type_name_2": "wildlife.GlidingSetup", + "qualified_name": "keen::wildlife::GlidingSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 900702999, + "hash2": 523358988, + "struct_fields": [ + { + "name": "minGlidingDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxGlidingDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeSetup", + "type_name_2": "wildlife.PathNodeSetup", + "qualified_name": "keen::wildlife::PathNodeSetup", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3392671240, + "hash2": 84103868, + "struct_fields": [ + { + "name": "defaultCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 0 + }, + { + "name": "roamingCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TamingSetup", + "type_name_2": "wildlife.TamingSetup", + "qualified_name": "keen::wildlife::TamingSetup", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3220061455, + "hash2": 495521997, + "struct_fields": [ + { + "name": "favoriteFood", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "necessaryTamingSteps", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "foodBaitSensorRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "foodBaitAngleCheckMinDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "foodBaitEatMaxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "alertDurationHigh", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "alertDurationMediumFoodEat", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "foodBaitEatAdaptFleeRadiusDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "tamingApproachFinishedFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "foodBaitEatSnoutPivotDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WildlifeTurnSetup", + "type_name_2": "ecs.WildlifeTurnSetup", + "qualified_name": "keen::ecs::WildlifeTurnSetup", + "referenced_type_name": "keen::actor::TurnSetup", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3224284123, + "hash2": 1966206797, + "struct_fields": [ + { + "name": "useTurnSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Wildlife", + "type_name_2": "ecs.Wildlife", + "qualified_name": "keen::ecs::Wildlife", + "referenced_type_name": "keen::ecs::Component", + "class_size": 440, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 1409932849, + "hash2": 4166018817, + "struct_fields": [ + { + "name": "spawnSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "idleAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 16 + }, + { + "name": "minIdleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "maxIdleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "minRoamingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "maxRoamingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "minFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "maxFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "fallbackFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "maxMovementRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "secureIdleAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 72 + }, + { + "name": "minFeelSecureDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "maxFeelSecureDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "callForHelpChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "callForHelpSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 108 + }, + { + "name": "listenRangeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "enabledFeatures", + "type_name": "keen::wildlife::FeatureMask", + "type_hash": 3781846222, + "data_offset": 128 + }, + { + "name": "movementSetup", + "type_name": "keen::wildlife::MovementSetup", + "type_hash": 3650029878, + "data_offset": 132 + }, + { + "name": "glidingSetup", + "type_name": "keen::wildlife::GlidingSetup", + "type_hash": 900702999, + "data_offset": 148 + }, + { + "name": "turnSetup", + "type_name": "keen::ecs::WildlifeTurnSetup", + "type_hash": 3224284123, + "data_offset": 156 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::wildlife::PathNodeSetup", + "type_hash": 3392671240, + "data_offset": 232 + }, + { + "name": "tamingSetup", + "type_name": "keen::wildlife::TamingSetup", + "type_hash": 3220061455, + "data_offset": 336 + }, + { + "name": "tamingPetInteractionSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 408 + }, + { + "name": "tamingPetInteractionVerbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 424 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AlertState", + "type_name_2": "ecs.AlertState", + "qualified_name": "keen::ecs::AlertState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1566768092, + "hash2": 2355752949, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low_Relaxed", + "value": 0 + }, + { + "name": "Medium_Alert", + "value": 1 + }, + { + "name": "High_Danger", + "value": 2 + } + ] + }, + { + "type_name_1": "DynamicWildlife", + "type_name_2": "ecs.DynamicWildlife", + "qualified_name": "keen::ecs::DynamicWildlife", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 2082555066, + "hash2": 2213237878, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::wildlife::State", + "type_hash": 2824709637, + "data_offset": 0 + }, + { + "name": "lastState", + "type_name": "keen::wildlife::State", + "type_hash": 2824709637, + "data_offset": 1 + }, + { + "name": "feelSecureDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastFleeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "spawnPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "idleEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "lastStateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "dangerOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "runAwayDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "currentTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "keepRoamingTargetUntilTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "foodBaitEatTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "previousAlertState", + "type_name": "keen::ecs::AlertState", + "type_hash": 1566768092, + "data_offset": 104 + }, + { + "name": "alertTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "foodBaitNeedinessTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + }, + { + "name": "foodBaitReactionTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "tamingShrinkRadiusTimerStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + }, + { + "name": "foodBaitEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 144 + }, + { + "name": "tamingProgress", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 148 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkWildlife", + "type_name_2": "ecs.NetworkWildlife", + "qualified_name": "keen::ecs::NetworkWildlife", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2464197161, + "hash2": 2007075388, + "struct_fields": [ + { + "name": "alertState", + "type_name": "keen::ecs::AlertState", + "type_hash": 1566768092, + "data_offset": 0 + }, + { + "name": "alertTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "tamingProgress", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "isEatingFoodBait", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WildlifeTransformer", + "type_name_2": "ecs.WildlifeTransformer", + "qualified_name": "keen::ecs::WildlifeTransformer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2699852, + "hash2": 320186563, + "struct_fields": [ + { + "name": "timeWithoutHit", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "minDurationWithoutHit", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEffectPlaybackType", + "type_name_2": "AmbientEffectPlaybackType", + "qualified_name": "keen::AmbientEffectPlaybackType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2125584290, + "hash2": 1835256893, + "struct_fields": [], + "enum_fields": [ + { + "name": "PlayAlways", + "value": 0 + }, + { + "name": "PlayOnlyWhenInBattle", + "value": 1 + }, + { + "name": "PlayOnlyWhenNotInBattle", + "value": 2 + } + ] + }, + { + "type_name_1": "AmbientEffectEntry", + "type_name_2": "AmbientEffectEntry", + "qualified_name": "keen::AmbientEffectEntry", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 526472449, + "hash2": 4202599686, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ObjectReference", + "type_hash": 2283290065, + "data_offset": 16 + }, + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "playbackType", + "type_name": "keen::AmbientEffectPlaybackType", + "type_hash": 2125584290, + "data_offset": 33 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Biome", + "type_name_2": "Biome", + "qualified_name": "keen::Biome", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1417955174, + "hash2": 314334560, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Grassland", + "value": 1 + }, + { + "name": "Desert", + "value": 2 + }, + { + "name": "Wetland", + "value": 3 + }, + { + "name": "Steppes", + "value": 4 + }, + { + "name": "Deepforest", + "value": 5 + }, + { + "name": "ColdHeights", + "value": 6 + } + ] + }, + { + "type_name_1": "AmbientEffect", + "type_name_2": "AmbientEffect", + "qualified_name": "keen::AmbientEffect", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3729930855, + "hash2": 2627760965, + "struct_fields": [ + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 1 + }, + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectEntryResource", + "type_name_2": "AmbientSoundEffectEntryResource", + "qualified_name": "keen::AmbientSoundEffectEntryResource", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 228863504, + "hash2": 2741588009, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::IngameTimeSpanReference", + "type_hash": 1082654783, + "data_offset": 16 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 72 + }, + { + "name": "soundContainerDescription", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 80 + }, + { + "name": "ingameTimeSpanDescription", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 88 + }, + { + "name": "playbackType", + "type_name": "keen::AmbientEffectPlaybackType", + "type_hash": 2125584290, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AmbientSoundEffectEntryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AmbientSoundEffectEntryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4095152685, + "hash2": 3620337531, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectResource", + "type_name_2": "AmbientSoundEffectResource", + "qualified_name": "keen::AmbientSoundEffectResource", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 547659916, + "hash2": 210205946, + "struct_fields": [ + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 2 + }, + { + "name": "effectEntries", + "type_name": "keen::BlobArray", + "type_hash": 4095152685, + "data_offset": 4 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffectEntry", + "type_name_2": "AmbientVfxEffectEntry", + "qualified_name": "keen::AmbientVfxEffectEntry", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2784088737, + "hash2": 1296975424, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::IngameTimeSpanReference", + "type_hash": 1082654783, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffect", + "type_name_2": "AmbientVfxEffect", + "qualified_name": "keen::AmbientVfxEffect", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2782022983, + "hash2": 1015060615, + "struct_fields": [ + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 1 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffectEntryResource", + "type_name_2": "AmbientVfxEffectEntryResource", + "qualified_name": "keen::AmbientVfxEffectEntryResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1594202177, + "hash2": 2487611366, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::IngameTimeSpanReference", + "type_hash": 1082654783, + "data_offset": 16 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 64 + }, + { + "name": "vfxDescription", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 72 + }, + { + "name": "ingameTimeSpanDescription", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AmbientVfxEffectEntryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AmbientVfxEffectEntryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3300829098, + "hash2": 1346277164, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffectResource", + "type_name_2": "AmbientVfxEffectResource", + "qualified_name": "keen::AmbientVfxEffectResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2675461043, + "hash2": 158894441, + "struct_fields": [ + { + "name": "effectEntries", + "type_name": "keen::BlobArray", + "type_hash": 3300829098, + "data_offset": 0 + }, + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 8 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 28 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackEffect2", + "type_name_2": "CollisionFeedbackEffect2", + "qualified_name": "keen::CollisionFeedbackEffect2", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3708667354, + "hash2": 3235032551, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 4 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 20 + }, + { + "name": "ecsOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 36 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "overrideSlot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 78 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 79 + }, + { + "name": "playOnlyLocalSFX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "useRootPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 81 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackEffectCollection2", + "type_name_2": "CollisionFeedbackEffectCollection2", + "qualified_name": "keen::CollisionFeedbackEffectCollection2", + "referenced_type_name": null, + "class_size": 672, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3052609542, + "hash2": 2005358944, + "struct_fields": [ + { + "name": "onHit", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 0 + }, + { + "name": "onCriticalHit", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 84 + }, + { + "name": "onBlock", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 168 + }, + { + "name": "onBrokenBlock", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 252 + }, + { + "name": "onIneffective", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 336 + }, + { + "name": "onImmune", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 420 + }, + { + "name": "onFlattening", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 504 + }, + { + "name": "onPileUp", + "type_name": "keen::CollisionFeedbackEffect2", + "type_hash": 3708667354, + "data_offset": 588 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CollisionFeedbackEffectCollection2", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 681897353, + "hash2": 2609622767, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackEffectCollectionReference", + "type_name_2": "CollisionFeedbackEffectCollectionReference", + "qualified_name": "keen::CollisionFeedbackEffectCollectionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 172199117, + "hash2": 1223761294, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventType", + "type_name_2": "MaterialFeedbackEventType", + "qualified_name": "keen::MaterialFeedbackEventType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1856455888, + "hash2": 2436001920, + "struct_fields": [], + "enum_fields": [ + { + "name": "OnPlace", + "value": 0 + }, + { + "name": "OnPickup", + "value": 1 + }, + { + "name": "OnTearDown", + "value": 2 + }, + { + "name": "OnDestruction", + "value": 3 + }, + { + "name": "OnFlatten", + "value": 4 + }, + { + "name": "OnPileUp", + "value": 5 + }, + { + "name": "Count", + "value": 6 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::MaterialFeedbackEventType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1368366470, + "hash2": 73788854, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventMask", + "type_name_2": "MaterialFeedbackEventMask", + "qualified_name": "keen::MaterialFeedbackEventMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3071773552, + "hash2": 1155958277, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEffectSize", + "type_name_2": "MaterialFeedbackEffectSize", + "qualified_name": "keen::MaterialFeedbackEffectSize", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2332990896, + "hash2": 2206741648, + "struct_fields": [], + "enum_fields": [ + { + "name": "Tiny", + "value": 0 + }, + { + "name": "Small", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "Large", + "value": 3 + }, + { + "name": "Count", + "value": 4 + } + ] + }, + { + "type_name_1": "FoleyEffectCollection", + "type_name_2": "FoleyEffectCollection", + "qualified_name": "keen::FoleyEffectCollection", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1701280708, + "hash2": 4015194171, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 0 + }, + { + "name": "evade", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 40 + }, + { + "name": "jump", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 56 + }, + { + "name": "run", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 72 + }, + { + "name": "sprint", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 88 + }, + { + "name": "walk", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectBase", + "type_name_2": "EnvironmentEffectBase", + "qualified_name": "keen::EnvironmentEffectBase", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3993410347, + "hash2": 2305850606, + "struct_fields": [ + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectType", + "type_name_2": "EnvironmentEffectType", + "qualified_name": "keen::EnvironmentEffectType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 16, + "primitive_type": "Enum", + "hash1": 3366326038, + "hash2": 479871015, + "struct_fields": [], + "enum_fields": [ + { + "name": "PlayerDodgerollStart", + "value": 0 + }, + { + "name": "PlayerDodgerollEnd", + "value": 1 + }, + { + "name": "PlayerFallDamage", + "value": 2 + }, + { + "name": "PlayerJump", + "value": 3 + }, + { + "name": "PlayerJumpLandSoft", + "value": 4 + }, + { + "name": "PlayerJumpLandHard", + "value": 5 + }, + { + "name": "PlayerRun", + "value": 6 + }, + { + "name": "PlayerSprint", + "value": 7 + }, + { + "name": "PlayerWalk", + "value": 8 + }, + { + "name": "PlayerSlide", + "value": 9 + }, + { + "name": "FlyCrashDown", + "value": 10 + }, + { + "name": "FlyLiftOff", + "value": 11 + }, + { + "name": "FlyTouchDown", + "value": 12 + }, + { + "name": "FlyHoverFlap", + "value": 13 + }, + { + "name": "NPCWalk", + "value": 14 + }, + { + "name": "Count", + "value": 15 + } + ] + }, + { + "type_name_1": "EnvironmentEffectPlayerDodgerollStart", + "type_name_2": "EnvironmentEffectPlayerDodgerollStart", + "qualified_name": "keen::EnvironmentEffectPlayerDodgerollStart", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3879546667, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerDodgerollEnd", + "type_name_2": "EnvironmentEffectPlayerDodgerollEnd", + "qualified_name": "keen::EnvironmentEffectPlayerDodgerollEnd", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2009463534, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerFallDamage", + "type_name_2": "EnvironmentEffectPlayerFallDamage", + "qualified_name": "keen::EnvironmentEffectPlayerFallDamage", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1861721691, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerJump", + "type_name_2": "EnvironmentEffectPlayerJump", + "qualified_name": "keen::EnvironmentEffectPlayerJump", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1784561499, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerJumpLand", + "type_name_2": "EnvironmentEffectPlayerJumpLand", + "qualified_name": "keen::EnvironmentEffectPlayerJumpLand", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2279843190, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerJumpLandSmall", + "type_name_2": "EnvironmentEffectPlayerJumpLandSmall", + "qualified_name": "keen::EnvironmentEffectPlayerJumpLandSmall", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 985953397, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerRun", + "type_name_2": "EnvironmentEffectPlayerRun", + "qualified_name": "keen::EnvironmentEffectPlayerRun", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 367481672, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerSprint", + "type_name_2": "EnvironmentEffectPlayerSprint", + "qualified_name": "keen::EnvironmentEffectPlayerSprint", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 204579971, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerWalk", + "type_name_2": "EnvironmentEffectPlayerWalk", + "qualified_name": "keen::EnvironmentEffectPlayerWalk", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2290930218, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerSlide", + "type_name_2": "EnvironmentEffectPlayerSlide", + "qualified_name": "keen::EnvironmentEffectPlayerSlide", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3972127856, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureCrashDown", + "type_name_2": "EnvironmentEffectVultureCrashDown", + "qualified_name": "keen::EnvironmentEffectVultureCrashDown", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 862518974, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureFlyLiftOff", + "type_name_2": "EnvironmentEffectVultureFlyLiftOff", + "qualified_name": "keen::EnvironmentEffectVultureFlyLiftOff", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3470878018, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureFlyTouchDown", + "type_name_2": "EnvironmentEffectVultureFlyTouchDown", + "qualified_name": "keen::EnvironmentEffectVultureFlyTouchDown", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2445672299, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureHoverFlap", + "type_name_2": "EnvironmentEffectVultureHoverFlap", + "qualified_name": "keen::EnvironmentEffectVultureHoverFlap", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4102012144, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectNPCWalk", + "type_name_2": "EnvironmentEffectNPCWalk", + "qualified_name": "keen::EnvironmentEffectNPCWalk", + "referenced_type_name": "keen::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3856684780, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventBase", + "type_name_2": "MaterialFeedbackEventBase", + "qualified_name": "keen::MaterialFeedbackEventBase", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1539503741, + "hash2": 2725355551, + "struct_fields": [ + { + "name": "sfxTiny", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "sfxSmall", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "sfxMedium", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "sfxLarge", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "ecsOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 64 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "useRootPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 105 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnPlace", + "type_name_2": "MaterialFeedbackEventOnPlace", + "qualified_name": "keen::MaterialFeedbackEventOnPlace", + "referenced_type_name": "keen::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2426420464, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::MaterialFeedbackEventType", + "type_hash": 1856455888, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnPickup", + "type_name_2": "MaterialFeedbackEventOnPickup", + "qualified_name": "keen::MaterialFeedbackEventOnPickup", + "referenced_type_name": "keen::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1027611273, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::MaterialFeedbackEventType", + "type_hash": 1856455888, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnTearDown", + "type_name_2": "MaterialFeedbackEventOnTearDown", + "qualified_name": "keen::MaterialFeedbackEventOnTearDown", + "referenced_type_name": "keen::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3469168957, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::MaterialFeedbackEventType", + "type_hash": 1856455888, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnDestruction", + "type_name_2": "MaterialFeedbackEventOnDestruction", + "qualified_name": "keen::MaterialFeedbackEventOnDestruction", + "referenced_type_name": "keen::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 559702575, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::MaterialFeedbackEventType", + "type_hash": 1856455888, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnFlatten", + "type_name_2": "MaterialFeedbackEventOnFlatten", + "qualified_name": "keen::MaterialFeedbackEventOnFlatten", + "referenced_type_name": "keen::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 822156221, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::MaterialFeedbackEventType", + "type_hash": 1856455888, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnPileUp", + "type_name_2": "MaterialFeedbackEventOnPileUp", + "qualified_name": "keen::MaterialFeedbackEventOnPileUp", + "referenced_type_name": "keen::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2643967084, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::MaterialFeedbackEventType", + "type_hash": 1856455888, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackMaterial", + "type_name_2": "CollisionFeedbackMaterial", + "qualified_name": "keen::CollisionFeedbackMaterial", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2727261960, + "hash2": 579385396, + "struct_fields": [ + { + "name": "defaultEffectCollection", + "type_name": "keen::CollisionFeedbackEffectCollectionReference", + "type_hash": 172199117, + "data_offset": 0 + }, + { + "name": "materialItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 16 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::PropDamageSusceptibility", + "type_hash": 3353863451, + "data_offset": 32 + }, + { + "name": "hasFoleyEffects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "foleyEffectImportance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "foleyEffects", + "type_name": "keen::FoleyEffectCollection", + "type_hash": 1701280708, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerMaterial", + "type_name_2": "WeatherLayerMaterial", + "qualified_name": "keen::WeatherLayerMaterial", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3079468762, + "hash2": 130735604, + "struct_fields": [ + { + "name": "defaultEffectCollection", + "type_name": "keen::CollisionFeedbackEffectCollectionReference", + "type_hash": 172199117, + "data_offset": 0 + }, + { + "name": "weather", + "type_name": "keen::WeatherState", + "type_hash": 2953948979, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackRule", + "type_name_2": "CollisionFeedbackRule", + "qualified_name": "keen::CollisionFeedbackRule", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1869374651, + "hash2": 3995312221, + "struct_fields": [ + { + "name": "materialA", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 0 + }, + { + "name": "materialB", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 16 + }, + { + "name": "effectCollection", + "type_name": "keen::CollisionFeedbackEffectCollectionReference", + "type_hash": 172199117, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedback", + "type_name_2": "CollisionFeedback", + "qualified_name": "keen::CollisionFeedback", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2177656381, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFeedbackEffectFlag", + "type_name_2": "ColliderFeedbackEffectFlag", + "qualified_name": "keen::ColliderFeedbackEffectFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2812887030, + "hash2": 1912650399, + "struct_fields": [], + "enum_fields": [ + { + "name": "OrientToNormal", + "value": 0 + }, + { + "name": "ApplyLocally", + "value": 1 + }, + { + "name": "AttachToSlot", + "value": 2 + }, + { + "name": "UseRootPosition", + "value": 3 + }, + { + "name": "SFX_OnlyLocalPlayer", + "value": 4 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ColliderFeedbackEffectFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 491210972, + "hash2": 975505993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFeedbackEffectFlags", + "type_name_2": "ColliderFeedbackEffectFlags", + "qualified_name": "keen::ColliderFeedbackEffectFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1953431135, + "hash2": 1473926158, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobOptional", + "type_name_2": "Optional", + "qualified_name": "keen::BlobOptional", + "referenced_type_name": "keen::VfxUserEffectParameterDataBlock", + "class_size": 4, + "fields_count": 0, + "primitive_type": "BlobOptional", + "hash1": 830078700, + "hash2": 2442131598, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEffect", + "type_name_2": "MaterialFeedbackEffect", + "qualified_name": "keen::MaterialFeedbackEffect", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 64984129, + "hash2": 3952998571, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "ecsOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 8 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 64 + }, + { + "name": "vfxParameters", + "type_name": "keen::BlobOptional", + "type_hash": 830078700, + "data_offset": 80 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 84 + }, + { + "name": "flags", + "type_name": "keen::ColliderFeedbackEffectFlags", + "type_hash": 1953431135, + "data_offset": 85 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackId", + "type_name_2": "MaterialFeedbackId", + "qualified_name": "keen::MaterialFeedbackId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2330768397, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ecs::CollisionType", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 2365519116, + "hash2": 3683363684, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::MaterialFeedbackEffect", + "class_size": 528, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 3485155165, + "hash2": 546240851, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::MaterialFeedbackEffect", + "class_size": 440, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 1303623410, + "hash2": 546682136, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[15]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::MaterialFeedbackEffect", + "class_size": 1320, + "fields_count": 15, + "primitive_type": "StaticArray", + "hash1": 1416572839, + "hash2": 508429835, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::MaterialFeedbackEffect", + "class_size": 704, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3484169427, + "hash2": 614337065, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedback", + "type_name_2": "MaterialFeedback", + "qualified_name": "keen::MaterialFeedback", + "referenced_type_name": null, + "class_size": 4600, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3636079216, + "hash2": 3411943706, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::MaterialFeedbackId", + "type_hash": 2330768397, + "data_offset": 0 + }, + { + "name": "eventTypeMask", + "type_name": "keen::MaterialFeedbackEventMask", + "type_hash": 3071773552, + "data_offset": 4 + }, + { + "name": "eventEffectsTiny", + "type_name": "keen::StaticArray", + "type_hash": 3485155165, + "data_offset": 8 + }, + { + "name": "eventEffectsSmall", + "type_name": "keen::StaticArray", + "type_hash": 3485155165, + "data_offset": 536 + }, + { + "name": "eventEffectsMedium", + "type_name": "keen::StaticArray", + "type_hash": 3485155165, + "data_offset": 1064 + }, + { + "name": "eventEffectsLarge", + "type_name": "keen::StaticArray", + "type_hash": 3485155165, + "data_offset": 1592 + }, + { + "name": "hasFoleyEffects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2120 + }, + { + "name": "foleyEffectImportance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2124 + }, + { + "name": "foleyMaterialFeedbackEffects", + "type_name": "keen::StaticArray", + "type_hash": 1303623410, + "data_offset": 2128 + }, + { + "name": "hasEnvironmentEffects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2568 + }, + { + "name": "environmentMaterialFeedbackEffects", + "type_name": "keen::StaticArray", + "type_hash": 1416572839, + "data_offset": 2572 + }, + { + "name": "collisionTypeMask", + "type_name": "keen::Bitmask16", + "type_hash": 2365519116, + "data_offset": 3892 + }, + { + "name": "collisionTypeEffects", + "type_name": "keen::StaticArray", + "type_hash": 3484169427, + "data_offset": 3896 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MaterialFeedback", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1829064479, + "hash2": 3019896882, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackReference", + "type_name_2": "MaterialFeedbackReference", + "qualified_name": "keen::MaterialFeedbackReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1389415149, + "hash2": 1231334107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackMatrixEntry", + "type_name_2": "CollisionFeedbackMatrixEntry", + "qualified_name": "keen::CollisionFeedbackMatrixEntry", + "referenced_type_name": null, + "class_size": 720, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3619655992, + "hash2": 51485179, + "struct_fields": [ + { + "name": "materialPairId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "effects", + "type_name": "keen::StaticArray", + "type_hash": 3484169427, + "data_offset": 8 + }, + { + "name": "effectMask", + "type_name": "keen::Bitmask16", + "type_hash": 2365519116, + "data_offset": 712 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackSubDirectory", + "type_name_2": "MaterialFeedbackSubDirectory", + "qualified_name": "keen::MaterialFeedbackSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2974634129, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackDirectory", + "type_name_2": "MaterialFeedbackDirectory", + "qualified_name": "keen::MaterialFeedbackDirectory", + "referenced_type_name": "keen::MaterialFeedbackSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3874841651, + "hash2": 685368050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CollisionFeedbackMatrixEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CollisionFeedbackMatrixEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3144544783, + "hash2": 477739764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "MaterialFeedbackReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::MaterialFeedbackReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 383018446, + "hash2": 150256558, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackCollectionResource", + "type_name_2": "MaterialFeedbackCollectionResource", + "qualified_name": "keen::MaterialFeedbackCollectionResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1170291536, + "hash2": 3761399579, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "collisionEffectMatrixEntry", + "type_name": "keen::BlobArray", + "type_hash": 3144544783, + "data_offset": 24 + }, + { + "name": "materials", + "type_name": "keen::BlobArray", + "type_hash": 383018446, + "data_offset": 32 + }, + { + "name": "rainMaterialLayeredEffects", + "type_name": "keen::MaterialFeedbackReference", + "type_hash": 1389415149, + "data_offset": 40 + }, + { + "name": "snowMaterialLayeredEffects", + "type_name": "keen::MaterialFeedbackReference", + "type_hash": 1389415149, + "data_offset": 56 + }, + { + "name": "blizzardMaterialLayeredEffects", + "type_name": "keen::MaterialFeedbackReference", + "type_hash": 1389415149, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugEnvironmentEffectType", + "type_name_2": "DebugEnvironmentEffectType", + "qualified_name": "keen::DebugEnvironmentEffectType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2012338531, + "hash2": 3030451432, + "struct_fields": [], + "enum_fields": [ + { + "name": "DebugHitEffect", + "value": 0 + }, + { + "name": "DebugEnvironmentOrFootdownEffect", + "value": 1 + }, + { + "name": "DebugFoleyEffect", + "value": 2 + }, + { + "name": "DebugPropEffect", + "value": 3 + }, + { + "name": "Count", + "value": 4 + } + ] + }, + { + "type_name_1": "FoleyType", + "type_name_2": "FoleyType", + "qualified_name": "keen::FoleyType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2294451513, + "hash2": 2940223001, + "struct_fields": [], + "enum_fields": [ + { + "name": "Evade", + "value": 0 + }, + { + "name": "Jump", + "value": 1 + }, + { + "name": "Run", + "value": 2 + }, + { + "name": "Sprint", + "value": 3 + }, + { + "name": "Walk", + "value": 4 + }, + { + "name": "Count", + "value": 5 + } + ] + }, + { + "type_name_1": "DebugEnvironmentEffect", + "type_name_2": "DebugEnvironmentEffect", + "qualified_name": "keen::DebugEnvironmentEffect", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 2094685275, + "hash2": 2133100919, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::DebugEnvironmentEffectType", + "type_hash": 2012338531, + "data_offset": 0 + }, + { + "name": "foleyType", + "type_name": "keen::FoleyType", + "type_hash": 2294451513, + "data_offset": 1 + }, + { + "name": "environmentEffectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 2 + }, + { + "name": "collisionType", + "type_name": "keen::ecs::CollisionType", + "type_hash": 297128561, + "data_offset": 3 + }, + { + "name": "eventType", + "type_name": "keen::MaterialFeedbackEventType", + "type_hash": 1856455888, + "data_offset": 4 + }, + { + "name": "effectSize", + "type_name": "keen::MaterialFeedbackEffectSize", + "type_hash": 2332990896, + "data_offset": 5 + }, + { + "name": "weatherState", + "type_name": "keen::WeatherState", + "type_hash": 2953948979, + "data_offset": 6 + }, + { + "name": "collisionRuleFound", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "materialA", + "type_name": "keen::MaterialFeedbackId", + "type_hash": 2330768397, + "data_offset": 8 + }, + { + "name": "materialB", + "type_name": "keen::MaterialFeedbackId", + "type_hash": 2330768397, + "data_offset": 12 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "sfx", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 32 + }, + { + "name": "vfx", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "eventSendTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "eventReceiveTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "entityFootWorldHeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "effectWorldHeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MajorDirection", + "type_name_2": "impact.MajorDirection", + "qualified_name": "keen::impact::MajorDirection", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 2919617410, + "hash2": 3893948311, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "SourceTarget", + "value": 1 + }, + { + "name": "RightToLeft", + "value": 2 + }, + { + "name": "LeftToRight", + "value": 3 + }, + { + "name": "UpToDown", + "value": 4 + }, + { + "name": "DownToUp", + "value": 5 + }, + { + "name": "BackToFront", + "value": 6 + } + ] + }, + { + "type_name_1": "ActorSequence", + "type_name_2": "actor.ActorSequence", + "qualified_name": "keen::actor::ActorSequence", + "referenced_type_name": "keen::Sequence", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3433476993, + "hash2": 3354215813, + "struct_fields": [ + { + "name": "majorDirection", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 12, + "fields_count": 91, + "primitive_type": "BlobVariant", + "hash1": 1435187098, + "hash2": 2731933277, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 235581997, + "hash2": 1809602902, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEvents", + "type_name_2": "SequenceEvents", + "qualified_name": "keen::SequenceEvents", + "referenced_type_name": "keen::BlobArray>", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 349850082, + "hash2": 4198858766, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceResource", + "type_name_2": "SequenceResource", + "qualified_name": "keen::SequenceResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4171163923, + "hash2": 3739196105, + "struct_fields": [ + { + "name": "events", + "type_name": "keen::SequenceEvents", + "type_hash": 349850082, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceResource", + "type_name_2": "actor.ActorSequenceResource", + "qualified_name": "keen::actor::ActorSequenceResource", + "referenced_type_name": "keen::SequenceResource", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2681513313, + "hash2": 2846452447, + "struct_fields": [ + { + "name": "resourceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 32 + }, + { + "name": "majorDirection", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::EntityTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1667074215, + "hash2": 3371530755, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagReference", + "type_name_2": "ecs.EntityTagReference", + "qualified_name": "keen::ecs::EntityTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 663489085, + "hash2": 388931364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagReferenceEntry", + "type_name_2": "ecs.EntityTagReferenceEntry", + "qualified_name": "keen::ecs::EntityTagReferenceEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3967661307, + "hash2": 3525837086, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityTagReferenceEntry[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityTagReferenceEntry", + "class_size": 64, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3764964429, + "hash2": 3561596685, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEvent", + "type_name_2": "SequenceEvent", + "qualified_name": "keen::SequenceEvent", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1803731877, + "hash2": 2247059108, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "requiredEntityTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 16 + }, + { + "name": "forbiddenTags", + "type_name": "keen::StaticArray", + "type_hash": 3764964429, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAnimationEvent", + "type_name_2": "actor.SetAnimationEvent", + "qualified_name": "keen::actor::SetAnimationEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1301588519, + "hash2": 307841743, + "struct_fields": [ + { + "name": "animationName", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 96 + }, + { + "name": "usePureLveLocomotion", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "alignLveLocomotionToFloor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 113 + }, + { + "name": "scaleLveWithMovementInput", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 114 + }, + { + "name": "retriggerAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 115 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionWarpEvent", + "type_name_2": "actor.RootMotionWarpEvent", + "qualified_name": "keen::actor::RootMotionWarpEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3540519585, + "hash2": 4204058516, + "struct_fields": [ + { + "name": "minDistanceToTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "abortWarpAboveMaxScale", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreserveVelocity", + "type_name_2": "actor.PreserveVelocity", + "qualified_name": "keen::actor::PreserveVelocity", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2282839572, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpulseEvent", + "type_name_2": "actor.ImpulseEvent", + "qualified_name": "keen::actor::ImpulseEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 128, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2180446290, + "hash2": 3573551112, + "struct_fields": [ + { + "name": "worldDistance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "localDistance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 108 + }, + { + "name": "impulseType", + "type_name": "keen::ecs::ImpulseType", + "type_hash": 805419934, + "data_offset": 120 + }, + { + "name": "applyOnlyHorizontally", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyImpulseEvent", + "type_name_2": "actor.ApplyImpulseEvent", + "qualified_name": "keen::actor::ApplyImpulseEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2865532384, + "hash2": 1358305260, + "struct_fields": [ + { + "name": "worldImpulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "localImpulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAnimationOverlayEvent", + "type_name_2": "actor.SetAnimationOverlayEvent", + "qualified_name": "keen::actor::SetAnimationOverlayEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2147957849, + "hash2": 3800954702, + "struct_fields": [ + { + "name": "overlayName", + "type_name": "keen::animationgraph::OverlayIdReference", + "type_hash": 2721499566, + "data_offset": 96 + }, + { + "name": "jointMaskStart", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KeepAliveEvent", + "type_name_2": "actor.KeepAliveEvent", + "qualified_name": "keen::actor::KeepAliveEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3333647781, + "hash2": 3746616521, + "struct_fields": [ + { + "name": "keepAliveMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 96 + }, + { + "name": "abortMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LoopEvent", + "type_name_2": "actor.LoopEvent", + "qualified_name": "keen::actor::LoopEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3039751999, + "hash2": 2560368507, + "struct_fields": [ + { + "name": "keepAliveMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 96 + }, + { + "name": "abortMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 104 + }, + { + "name": "jumpToLoopEndOnAbort", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScopeEndBehavior", + "type_name_2": "actor.ScopeEndBehavior", + "qualified_name": "keen::actor::ScopeEndBehavior", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1050728324, + "hash2": 842041815, + "struct_fields": [], + "enum_fields": [ + { + "name": "LoopScope", + "value": 0 + }, + { + "name": "ExitScope", + "value": 1 + } + ] + }, + { + "type_name_1": "ScopeEvent", + "type_name_2": "actor.ScopeEvent", + "qualified_name": "keen::actor::ScopeEvent", + "referenced_type_name": "keen::actor::LoopEvent", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1867293479, + "hash2": 4101884693, + "struct_fields": [ + { + "name": "scopeEndBehavior", + "type_name": "keen::actor::ScopeEndBehavior", + "type_hash": 1050728324, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeColliderSetup", + "type_name_2": "actor.ChangeColliderSetup", + "qualified_name": "keen::actor::ChangeColliderSetup", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 185684120, + "hash2": 2555984282, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ecs::ColliderMode", + "type_hash": 4112969876, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleInteractionActionEvent", + "type_name_2": "actor.ToggleInteractionActionEvent", + "qualified_name": "keen::actor::ToggleInteractionActionEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2926621577, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootInteractionActionEvent", + "type_name_2": "actor.LootInteractionActionEvent", + "qualified_name": "keen::actor::LootInteractionActionEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3442840919, + "hash2": 154818948, + "struct_fields": [ + { + "name": "lootAll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "forAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResetFallAltitudeOnApexEvent", + "type_name_2": "actor.ResetFallAltitudeOnApexEvent", + "qualified_name": "keen::actor::ResetFallAltitudeOnApexEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2030743268, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SnapType", + "type_name_2": "actor.SnapType", + "qualified_name": "keen::actor::SnapType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2843677711, + "hash2": 3781854544, + "struct_fields": [], + "enum_fields": [ + { + "name": "Stick", + "value": 0 + }, + { + "name": "Target", + "value": 1 + }, + { + "name": "TargetOrStick", + "value": 2 + }, + { + "name": "TargetOrSetting", + "value": 3 + }, + { + "name": "TargetOrCursor", + "value": 4 + }, + { + "name": "Cursor", + "value": 5 + } + ] + }, + { + "type_name_1": "InterpolationMode", + "type_name_2": "actor.InterpolationMode", + "qualified_name": "keen::actor::InterpolationMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 3642673216, + "hash2": 1558319117, + "struct_fields": [], + "enum_fields": [ + { + "name": "LinearAxisRotation", + "value": 0 + }, + { + "name": "ExponentialLerp", + "value": 1 + }, + { + "name": "LerpWithConstantSpeed", + "value": 2 + }, + { + "name": "LerpSmooth", + "value": 3 + }, + { + "name": "LerpSmoother", + "value": 4 + }, + { + "name": "RotateLeft", + "value": 5 + }, + { + "name": "RotateRight", + "value": 6 + } + ] + }, + { + "type_name_1": "SnapEvent", + "type_name_2": "actor.SnapEvent", + "qualified_name": "keen::actor::SnapEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 549916501, + "hash2": 1417402685, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::actor::SnapType", + "type_hash": 2843677711, + "data_offset": 96 + }, + { + "name": "targetType", + "type_name": "keen::ecs::TargetType", + "type_hash": 1671000586, + "data_offset": 97 + }, + { + "name": "rotationInterpolationMode", + "type_name": "keen::actor::InterpolationMode", + "type_hash": 3642673216, + "data_offset": 98 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAbortByMovement", + "type_name_2": "actor.SetAbortByMovement", + "qualified_name": "keen::actor::SetAbortByMovement", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3387610253, + "hash2": 3862723811, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushEvent", + "type_name_2": "actor.PushEvent", + "qualified_name": "keen::actor::PushEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4226756057, + "hash2": 149793044, + "struct_fields": [ + { + "name": "force", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JumpType", + "type_name_2": "actor.JumpType", + "qualified_name": "keen::actor::JumpType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 18, + "primitive_type": "Enum", + "hash1": 1821672963, + "hash2": 677711145, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Default", + "value": 1 + }, + { + "name": "DoubleDefault", + "value": 2 + }, + { + "name": "DoubleSprint", + "value": 3 + }, + { + "name": "Sprint", + "value": 4 + }, + { + "name": "DefaultSubmerged", + "value": 5 + }, + { + "name": "StruggleSubmerged", + "value": 6 + }, + { + "name": "Glider", + "value": 7 + }, + { + "name": "HookSwingEnter", + "value": 8 + }, + { + "name": "HookSwingDefaultExit", + "value": 9 + }, + { + "name": "HookSwingSprintExit", + "value": 10 + }, + { + "name": "LadderClimbing", + "value": 11 + }, + { + "name": "FreeClimbing", + "value": 12 + }, + { + "name": "Slide", + "value": 13 + }, + { + "name": "Attack", + "value": 14 + }, + { + "name": "Airwolf", + "value": 15 + }, + { + "name": "NpcMovement", + "value": 16 + }, + { + "name": "JumpPad", + "value": 17 + } + ] + }, + { + "type_name_1": "JumpEvent", + "type_name_2": "actor.JumpEvent", + "qualified_name": "keen::actor::JumpEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1977446569, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HookEvent", + "type_name_2": "actor.HookEvent", + "qualified_name": "keen::actor::HookEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3101798400, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SelfDestructEvent", + "type_name_2": "actor.SelfDestructEvent", + "qualified_name": "keen::actor::SelfDestructEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1765355913, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraId", + "type_name_2": "CameraId", + "qualified_name": "keen::CameraId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 31, + "primitive_type": "Enum", + "hash1": 1313581408, + "hash2": 2673249211, + "struct_fields": [], + "enum_fields": [ + { + "name": "EntityCamera", + "value": 0 + }, + { + "name": "PlayerCameraCustomizationBody", + "value": 1 + }, + { + "name": "PlayerCameraCustomizationFace", + "value": 2 + }, + { + "name": "PlayerCameraSpawning", + "value": 3 + }, + { + "name": "PlayerCameraSpawningDolly", + "value": 4 + }, + { + "name": "PlayerCameraRespawning", + "value": 5 + }, + { + "name": "PlayerCameraDefault", + "value": 6 + }, + { + "name": "PlayerCameraDefaultTarget", + "value": 7 + }, + { + "name": "PlayerCameraSprinting", + "value": 8 + }, + { + "name": "PlayerCameraRangedBowDefault", + "value": 9 + }, + { + "name": "PlayerCameraRangedBowDefaultTarget", + "value": 10 + }, + { + "name": "PlayerCameraRangedBowSneaking", + "value": 11 + }, + { + "name": "PlayerCameraRangedBowSneakingTarget", + "value": 12 + }, + { + "name": "PlayerCameraRangedStaffDefault", + "value": 13 + }, + { + "name": "PlayerCameraRangedStaffDefaultTarget", + "value": 14 + }, + { + "name": "PlayerCameraRangedStaffSneaking", + "value": 15 + }, + { + "name": "PlayerCameraRangedStaffSneakingTarget", + "value": 16 + }, + { + "name": "PlayerCameraHipfire", + "value": 17 + }, + { + "name": "PlayerCameraExecute", + "value": 18 + }, + { + "name": "PlayerCameraIdle", + "value": 19 + }, + { + "name": "PlayerCameraSneaking", + "value": 20 + }, + { + "name": "PlayerCameraSitting", + "value": 21 + }, + { + "name": "PlayerCameraCooking", + "value": 22 + }, + { + "name": "PlayerCameraClimbing", + "value": 23 + }, + { + "name": "PlayerCameraHookShot", + "value": 24 + }, + { + "name": "PlayerCameraGlider", + "value": 25 + }, + { + "name": "PlayerCameraDialogue", + "value": 26 + }, + { + "name": "PlayerCameraAltar", + "value": 27 + }, + { + "name": "PlayerCameraBuilding", + "value": 28 + }, + { + "name": "PlayerCameraBuildingModeOrbit", + "value": 29 + }, + { + "name": "PlayerCameraBuildingModeFree", + "value": 30 + } + ] + }, + { + "type_name_1": "LockCameraIdEvent", + "type_name_2": "actor.LockCameraIdEvent", + "qualified_name": "keen::actor::LockCameraIdEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2220077254, + "hash2": 1667505559, + "struct_fields": [ + { + "name": "cameraId", + "type_name": "keen::CameraId", + "type_hash": 1313581408, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockCameraIdEvent", + "type_name_2": "actor.UnlockCameraIdEvent", + "qualified_name": "keen::actor::UnlockCameraIdEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4158606255, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraOverride", + "type_name_2": "CameraOverride", + "qualified_name": "keen::CameraOverride", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2285807293, + "hash2": 3394900201, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "BlinkLerpSpeed", + "value": 1 + }, + { + "name": "CameraTransitionLerpSpeed", + "value": 2 + } + ] + }, + { + "type_name_1": "SetCameraOverrideEvent", + "type_name_2": "actor.SetCameraOverrideEvent", + "qualified_name": "keen::actor::SetCameraOverrideEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 407806186, + "hash2": 3786240283, + "struct_fields": [ + { + "name": "cameraOverride", + "type_name": "keen::CameraOverride", + "type_hash": 2285807293, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeEvent", + "type_name_2": "actor.CameraShakeEvent", + "qualified_name": "keen::actor::CameraShakeEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1342840178, + "hash2": 1849367441, + "struct_fields": [ + { + "name": "trauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeImpulseEvent", + "type_name_2": "actor.CameraShakeImpulseEvent", + "qualified_name": "keen::actor::CameraShakeImpulseEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3708828379, + "hash2": 1408621737, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "additionalTrauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HudScreenType", + "type_name_2": "HudScreenType", + "qualified_name": "keen::HudScreenType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 37, + "primitive_type": "Enum", + "hash1": 1386014447, + "hash2": 865441575, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "InGame", + "value": 1 + }, + { + "name": "SystemMenu", + "value": 2 + }, + { + "name": "SettingsMenu", + "value": 3 + }, + { + "name": "InGameMenu", + "value": 4 + }, + { + "name": "Map", + "value": 5 + }, + { + "name": "Journal", + "value": 6 + }, + { + "name": "Character", + "value": 7 + }, + { + "name": "PlayerCrafting", + "value": 8 + }, + { + "name": "Backpack", + "value": 9 + }, + { + "name": "SkillTree", + "value": 10 + }, + { + "name": "FlameAltar", + "value": 11 + }, + { + "name": "AltarUpgrade", + "value": 12 + }, + { + "name": "FlameUpgrade", + "value": 13 + }, + { + "name": "AltarDeactivate", + "value": 14 + }, + { + "name": "SkillRespec", + "value": 15 + }, + { + "name": "LoreReading", + "value": 16 + }, + { + "name": "Signpost", + "value": 17 + }, + { + "name": "ReadOnlyLootChest", + "value": 18 + }, + { + "name": "StorageChest", + "value": 19 + }, + { + "name": "Collection", + "value": 20 + }, + { + "name": "FeedingStation", + "value": 21 + }, + { + "name": "StationBasedCrafting", + "value": 22 + }, + { + "name": "NpcDialog", + "value": 23 + }, + { + "name": "NpcCrafting", + "value": 24 + }, + { + "name": "FactoryCrafting", + "value": 25 + }, + { + "name": "BlueprintSideMenu", + "value": 26 + }, + { + "name": "TerraformingSideMenu", + "value": 27 + }, + { + "name": "NpcSummonerSideMenu", + "value": 28 + }, + { + "name": "UserFeedback", + "value": 29 + }, + { + "name": "TwitchDrops", + "value": 30 + }, + { + "name": "NoUi", + "value": 31 + }, + { + "name": "TechGallery", + "value": 32 + }, + { + "name": "FelixPlayground", + "value": 33 + }, + { + "name": "LukasPlayground", + "value": 34 + }, + { + "name": "NicPlayground", + "value": 35 + }, + { + "name": "YcPlayground", + "value": 36 + } + ] + }, + { + "type_name_1": "OpenUi", + "type_name_2": "actor.OpenUi", + "qualified_name": "keen::actor::OpenUi", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 821206529, + "hash2": 4044968879, + "struct_fields": [ + { + "name": "hudScreen", + "type_name": "keen::HudScreenType", + "type_hash": 1386014447, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NegativeFeedbackEvent", + "type_name_2": "actor.NegativeFeedbackEvent", + "qualified_name": "keen::actor::NegativeFeedbackEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 930162509, + "hash2": 486562469, + "struct_fields": [ + { + "name": "messageLocaTag", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyEventType", + "type_name_2": "ecs.EnemyEventType", + "qualified_name": "keen::ecs::EnemyEventType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3493751559, + "hash2": 1910930748, + "struct_fields": [], + "enum_fields": [ + { + "name": "CallForHelp", + "value": 0 + }, + { + "name": "LaunchProjectiles", + "value": 1 + }, + { + "name": "DestroyProjectiles", + "value": 2 + }, + { + "name": "CalcDashMovement", + "value": 3 + }, + { + "name": "RemoveAttackAttachment", + "value": 4 + } + ] + }, + { + "type_name_1": "EnemyCommandEvent", + "type_name_2": "actor.EnemyCommandEvent", + "qualified_name": "keen::actor::EnemyCommandEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3187022118, + "hash2": 2585585441, + "struct_fields": [ + { + "name": "eventType", + "type_name": "keen::ecs::EnemyEventType", + "type_hash": 3493751559, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerNoiseEvent", + "type_name_2": "actor.TriggerNoiseEvent", + "qualified_name": "keen::actor::TriggerNoiseEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3979242935, + "hash2": 570281638, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedAttackType", + "type_name_2": "ecs.SyncedAttackType", + "qualified_name": "keen::ecs::SyncedAttackType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 247910673, + "hash2": 4225049701, + "struct_fields": [], + "enum_fields": [ + { + "name": "Execute", + "value": 0 + }, + { + "name": "SneakExecute", + "value": 1 + } + ] + }, + { + "type_name_1": "SyncAttackEvent", + "type_name_2": "actor.SyncAttackEvent", + "qualified_name": "keen::actor::SyncAttackEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3274774476, + "hash2": 3489042643, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ecs::SyncedAttackType", + "type_hash": 247910673, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedSequenceEvent", + "type_name_2": "actor.SyncedSequenceEvent", + "qualified_name": "keen::actor::SyncedSequenceEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2513734684, + "hash2": 4248816011, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerKnowledge", + "type_name_2": "actor.TriggerKnowledge", + "qualified_name": "keen::actor::TriggerKnowledge", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1245713679, + "hash2": 2800201532, + "struct_fields": [ + { + "name": "unlockForGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AbilityFlag", + "type_name_2": "actor.AbilityFlag", + "qualified_name": "keen::actor::AbilityFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 25, + "primitive_type": "Enum", + "hash1": 3642327549, + "hash2": 1207632332, + "struct_fields": [], + "enum_fields": [ + { + "name": "CanTriggerPrimary", + "value": 0 + }, + { + "name": "CanTriggerSecondary", + "value": 1 + }, + { + "name": "CanRangedCombatShoot", + "value": 2 + }, + { + "name": "CanUseTool", + "value": 3 + }, + { + "name": "CanEvade", + "value": 4 + }, + { + "name": "CanBlock", + "value": 5 + }, + { + "name": "CanUseLongerStunParry", + "value": 6 + }, + { + "name": "CanJump", + "value": 7 + }, + { + "name": "CanTriggerGlider", + "value": 8 + }, + { + "name": "CanInteract", + "value": 9 + }, + { + "name": "CanSprint", + "value": 10 + }, + { + "name": "CanSneak", + "value": 11 + }, + { + "name": "CanSit", + "value": 12 + }, + { + "name": "CanClimb", + "value": 13 + }, + { + "name": "CanExternallyAbortSequence", + "value": 14 + }, + { + "name": "CanAbortSequenceByDeath", + "value": 15 + }, + { + "name": "CanShowHitReaction", + "value": 16 + }, + { + "name": "CanChangeCombatTargetOrHardLockCandidate", + "value": 17 + }, + { + "name": "CanChangeVisceralTarget", + "value": 18 + }, + { + "name": "CanChangeInteractionTarget", + "value": 19 + }, + { + "name": "CanChangeBuildingCursor", + "value": 20 + }, + { + "name": "CanRecharge", + "value": 21 + }, + { + "name": "CanMove", + "value": 22 + }, + { + "name": "CanRotate", + "value": 23 + }, + { + "name": "CanCancel", + "value": 24 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::actor::AbilityFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3916109990, + "hash2": 1722907103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityMask", + "type_name_2": "actor.AbilityMask", + "qualified_name": "keen::actor::AbilityMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3470695687, + "hash2": 616022977, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MovementFactors", + "type_name_2": "actor.MovementFactors", + "qualified_name": "keen::actor::MovementFactors", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1704295110, + "hash2": 843537563, + "struct_fields": [ + { + "name": "forward", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "backward", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lateral", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::skilltree_nodes::Node", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3945641922, + "hash2": 3141745728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeReference", + "type_name_2": "skilltree_nodes.NodeReference", + "qualified_name": "keen::skilltree_nodes::NodeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2647095454, + "hash2": 543270080, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DisableAbilityEvent", + "type_name_2": "actor.DisableAbilityEvent", + "qualified_name": "keen::actor::DisableAbilityEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3148628255, + "hash2": 3372816692, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::actor::AbilityMask", + "type_hash": 3470695687, + "data_offset": 96 + }, + { + "name": "overrideSkill", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnableAbilityEvent", + "type_name_2": "actor.EnableAbilityEvent", + "qualified_name": "keen::actor::EnableAbilityEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 201637018, + "hash2": 3372816692, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::actor::AbilityMask", + "type_hash": 3470695687, + "data_offset": 96 + }, + { + "name": "overrideSkill", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetStateEvent", + "type_name_2": "actor.SetStateEvent", + "qualified_name": "keen::actor::SetStateEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1169840434, + "hash2": 1471040333, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearStateEvent", + "type_name_2": "actor.ClearStateEvent", + "qualified_name": "keen::actor::ClearStateEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1432109423, + "hash2": 1471040333, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RequestUiCover", + "type_name_2": "actor.RequestUiCover", + "qualified_name": "keen::actor::RequestUiCover", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1571332273, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetGravityEvent", + "type_name_2": "actor.SetGravityEvent", + "qualified_name": "keen::actor::SetGravityEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 242257935, + "hash2": 1643720556, + "struct_fields": [ + { + "name": "gravityModifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResetGravityEvent", + "type_name_2": "actor.ResetGravityEvent", + "qualified_name": "keen::actor::ResetGravityEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 249746908, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LerpMovementFactorEvent", + "type_name_2": "actor.LerpMovementFactorEvent", + "qualified_name": "keen::actor::LerpMovementFactorEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1705719584, + "hash2": 2322243134, + "struct_fields": [ + { + "name": "desiredMovementFactors", + "type_name": "keen::actor::MovementFactors", + "type_hash": 1704295110, + "data_offset": 96 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpRotationFactorEvent", + "type_name_2": "actor.LerpRotationFactorEvent", + "qualified_name": "keen::actor::LerpRotationFactorEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1137662917, + "hash2": 3431805595, + "struct_fields": [ + { + "name": "desiredRotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransformEvent", + "type_name_2": "actor.LerpTransformEvent", + "qualified_name": "keen::actor::LerpTransformEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1685494570, + "hash2": 3332007920, + "struct_fields": [ + { + "name": "lerpTarget", + "type_name": "keen::ecs::LerpTransformTarget", + "type_hash": 3630153111, + "data_offset": 96 + }, + { + "name": "lerpPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + }, + { + "name": "lerpOrientation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 98 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpSubmergeDepthEvent", + "type_name_2": "actor.LerpSubmergeDepthEvent", + "qualified_name": "keen::actor::LerpSubmergeDepthEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 66908967, + "hash2": 1267009275, + "struct_fields": [ + { + "name": "submergeDelta", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartClimbing", + "type_name_2": "actor.StartClimbing", + "qualified_name": "keen::actor::StartClimbing", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4011169558, + "hash2": 2038345003, + "struct_fields": [ + { + "name": "isLadder", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopClimbing", + "type_name_2": "actor.StopClimbing", + "qualified_name": "keen::actor::StopClimbing", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1817612456, + "hash2": 2038345003, + "struct_fields": [ + { + "name": "isLadder", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayInstrumentEvent", + "type_name_2": "actor.PlayInstrumentEvent", + "qualified_name": "keen::actor::PlayInstrumentEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 138120656, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TeleportToTargetEvent", + "type_name_2": "actor.TeleportToTargetEvent", + "qualified_name": "keen::actor::TeleportToTargetEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1551325228, + "hash2": 3616912801, + "struct_fields": [ + { + "name": "targetType", + "type_name": "keen::ecs::TargetType", + "type_hash": 1671000586, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PetAnimalEvent", + "type_name_2": "actor.PetAnimalEvent", + "qualified_name": "keen::actor::PetAnimalEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 939478356, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UpgradeAnimalEvent", + "type_name_2": "actor.UpgradeAnimalEvent", + "qualified_name": "keen::actor::UpgradeAnimalEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3907042031, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceTrigger", + "type_name_2": "actor.ActionSequenceTrigger", + "qualified_name": "keen::actor::ActionSequenceTrigger", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 22, + "primitive_type": "Enum", + "hash1": 4018170100, + "hash2": 3448429089, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Primary", + "value": 1 + }, + { + "name": "Secondary", + "value": 2 + }, + { + "name": "Tool", + "value": 3 + }, + { + "name": "Evade", + "value": 4 + }, + { + "name": "Block", + "value": 5 + }, + { + "name": "Parry", + "value": 6 + }, + { + "name": "Jump", + "value": 7 + }, + { + "name": "Glider", + "value": 8 + }, + { + "name": "Interact", + "value": 9 + }, + { + "name": "InteractHold", + "value": 10 + }, + { + "name": "Sneak", + "value": 11 + }, + { + "name": "Sit", + "value": 12 + }, + { + "name": "Climb", + "value": 13 + }, + { + "name": "HitReaction", + "value": 14 + }, + { + "name": "Respawn", + "value": 15 + }, + { + "name": "ExternalTrigger", + "value": 16 + }, + { + "name": "Parried", + "value": 17 + }, + { + "name": "ExternalAbortAndOverride", + "value": 18 + }, + { + "name": "Death", + "value": 19 + }, + { + "name": "ParriedOverride", + "value": 20 + }, + { + "name": "ClearAll", + "value": 65535 + } + ] + }, + { + "type_name_1": "SetOpportunity", + "type_name_2": "actor.SetOpportunity", + "qualified_name": "keen::actor::SetOpportunity", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 152, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1228590698, + "hash2": 1180497443, + "struct_fields": [ + { + "name": "triggeredBy", + "type_name": "keen::actor::ActionSequenceTrigger", + "type_hash": 4018170100, + "data_offset": 96 + }, + { + "name": "requiredSkill", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 100 + }, + { + "name": "followUpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 128 + }, + { + "name": "override", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ImpactDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2045981496, + "hash2": 4047713435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactProgramReference", + "type_name_2": "ImpactProgramReference", + "qualified_name": "keen::ImpactProgramReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3976528037, + "hash2": 1403928781, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 12, + "fields_count": 24, + "primitive_type": "BlobVariant", + "hash1": 737187187, + "hash2": 788080581, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2300797600, + "hash2": 858383166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Configurations", + "type_name_2": "impact.Configurations", + "qualified_name": "keen::impact::Configurations", + "referenced_type_name": "keen::BlobArray>", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 257030171, + "hash2": 4236421032, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetActionOportunity", + "type_name_2": "actor.SetActionOportunity", + "qualified_name": "keen::actor::SetActionOportunity", + "referenced_type_name": "keen::actor::SetOpportunity", + "class_size": 192, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4140032184, + "hash2": 4020454015, + "struct_fields": [ + { + "name": "followUp", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 152 + }, + { + "name": "costImpact", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 168 + }, + { + "name": "impactValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearActionOportunity", + "type_name_2": "actor.ClearActionOportunity", + "qualified_name": "keen::actor::ClearActionOportunity", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2710886733, + "hash2": 2504844741, + "struct_fields": [ + { + "name": "triggeredBy", + "type_name": "keen::actor::ActionSequenceTrigger", + "type_hash": 4018170100, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityTransform", + "type_name_2": "actor.SpawnEntityTransform", + "qualified_name": "keen::actor::SpawnEntityTransform", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 909855679, + "hash2": 307337436, + "struct_fields": [], + "enum_fields": [ + { + "name": "Spawner", + "value": 0 + }, + { + "name": "Cursor", + "value": 1 + }, + { + "name": "Crosshair", + "value": 2 + }, + { + "name": "RangedCrosshairOrTowardsCombatTarget", + "value": 3 + }, + { + "name": "Teleport", + "value": 4 + }, + { + "name": "CombatTarget", + "value": 5 + }, + { + "name": "InteractionTarget", + "value": 6 + }, + { + "name": "SafePlayerPosition", + "value": 7 + }, + { + "name": "Unit", + "value": 8 + }, + { + "name": "BetweenCombatTargetAndSpawner", + "value": 9 + } + ] + }, + { + "type_name_1": "RadiusRange", + "type_name_2": "actor.RadiusRange", + "qualified_name": "keen::actor::RadiusRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2712358714, + "hash2": 1451226624, + "struct_fields": [ + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomOrientationOffset", + "type_name_2": "actor.RandomOrientationOffset", + "qualified_name": "keen::actor::RandomOrientationOffset", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3548817789, + "hash2": 3726721032, + "struct_fields": [ + { + "name": "minX", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 0 + }, + { + "name": "maxX", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "minY", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + }, + { + "name": "maxY", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 12 + }, + { + "name": "minZ", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 16 + }, + { + "name": "maxZ", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityBaseEvent", + "type_name_2": "actor.SpawnEntityBaseEvent", + "qualified_name": "keen::actor::SpawnEntityBaseEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 264, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 495164860, + "hash2": 1676507869, + "struct_fields": [ + { + "name": "requiredSkill", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 96 + }, + { + "name": "templateReference", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 112 + }, + { + "name": "spawnTransform", + "type_name": "keen::actor::SpawnEntityTransform", + "type_hash": 909855679, + "data_offset": 128 + }, + { + "name": "attachmentSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 129 + }, + { + "name": "spawnSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 130 + }, + { + "name": "spawnOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 132 + }, + { + "name": "vfxDirection", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 172 + }, + { + "name": "providedTarget", + "type_name": "keen::ecs::TargetType", + "type_hash": 1671000586, + "data_offset": 173 + }, + { + "name": "consume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 174 + }, + { + "name": "onConsumeExchange", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 176 + }, + { + "name": "addWeaponReference", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 192 + }, + { + "name": "despawnAfterSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 193 + }, + { + "name": "endSequenceOnDespawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 194 + }, + { + "name": "transferUsedItem", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 195 + }, + { + "name": "copyCustomString", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 196 + }, + { + "name": "randomSpawnRadius", + "type_name": "keen::actor::RadiusRange", + "type_hash": 2712358714, + "data_offset": 200 + }, + { + "name": "randomOrientationOffset", + "type_name": "keen::actor::RandomOrientationOffset", + "type_hash": 3548817789, + "data_offset": 208 + }, + { + "name": "minSpawnRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 232 + }, + { + "name": "maxSpawnRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + }, + { + "name": "minSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 240 + }, + { + "name": "maxSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 241 + }, + { + "name": "breakImpactHierarchy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 242 + }, + { + "name": "ignoreSpawnVelocity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 243 + }, + { + "name": "spawnVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 244 + }, + { + "name": "applyRandomLoot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 256 + }, + { + "name": "copyCombatAttributes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 257 + }, + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 260 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RefillBurner", + "type_name_2": "actor.RefillBurner", + "qualified_name": "keen::actor::RefillBurner", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1798165397, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityEvent", + "type_name_2": "actor.SpawnEntityEvent", + "qualified_name": "keen::actor::SpawnEntityEvent", + "referenced_type_name": "keen::actor::SpawnEntityBaseEvent", + "class_size": 272, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1373768691, + "hash2": 2416831839, + "struct_fields": [ + { + "name": "isProjectile", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 264 + }, + { + "name": "clearProjectiles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 265 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerMartyrSkills", + "type_name_2": "actor.TriggerMartyrSkills", + "qualified_name": "keen::actor::TriggerMartyrSkills", + "referenced_type_name": "keen::actor::SpawnEntityBaseEvent", + "class_size": 264, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3127326372, + "hash2": 1623201615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityPerAggroTargetEvent", + "type_name_2": "actor.SpawnEntityPerAggroTargetEvent", + "qualified_name": "keen::actor::SpawnEntityPerAggroTargetEvent", + "referenced_type_name": "keen::actor::SpawnEntityBaseEvent", + "class_size": 288, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3155278217, + "hash2": 2289744757, + "struct_fields": [ + { + "name": "excludedTargetStates", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 264 + }, + { + "name": "isProjectile", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 272 + }, + { + "name": "clearProjectiles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 273 + }, + { + "name": "onlyPlayerTargets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 274 + }, + { + "name": "randomPerTargetSpawnRadius", + "type_name": "keen::actor::RadiusRange", + "type_hash": 2712358714, + "data_offset": 276 + }, + { + "name": "maxTargets", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 284 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageDistribution", + "type_name_2": "impact.DamageDistribution", + "qualified_name": "keen::impact::DamageDistribution", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3046348591, + "hash2": 598131995, + "struct_fields": [ + { + "name": "physicalCutDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "physicalPierceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "physicalBluntDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "magicalFireDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "magicalIceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "magicalFogDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "magicalLightningDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "healing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "poisonDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "woodDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "stoneDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "metalDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "explosionDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnImpact", + "type_name_2": "actor.SpawnImpact", + "qualified_name": "keen::actor::SpawnImpact", + "referenced_type_name": "keen::actor::SpawnEntityBaseEvent", + "class_size": 384, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1689639968, + "hash2": 2115902917, + "struct_fields": [ + { + "name": "impact", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 264 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 280 + }, + { + "name": "damageDistribution", + "type_name": "keen::impact::DamageDistribution", + "type_hash": 3046348591, + "data_offset": 296 + }, + { + "name": "colliderData", + "type_name": "keen::ecs::ColliderResourceData", + "type_hash": 3538928751, + "data_offset": 348 + }, + { + "name": "impactValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 368 + }, + { + "name": "damageDistributionIsSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 376 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BuffType", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3840807626, + "hash2": 1734086965, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeReference", + "type_name_2": "BuffTypeReference", + "qualified_name": "keen::BuffTypeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1088735824, + "hash2": 1769353870, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ApplyBuffEvent", + "type_name_2": "actor.ApplyBuffEvent", + "qualified_name": "keen::actor::ApplyBuffEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 184, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4029408456, + "hash2": 4265136807, + "struct_fields": [ + { + "name": "buffTypeOverride", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 96 + }, + { + "name": "consume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "impactValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 116 + }, + { + "name": "damageDistribution", + "type_name": "keen::impact::DamageDistribution", + "type_hash": 3046348591, + "data_offset": 124 + }, + { + "name": "damageDistributionIsSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlaceVoxelObjectEvent", + "type_name_2": "actor.PlaceVoxelObjectEvent", + "qualified_name": "keen::actor::PlaceVoxelObjectEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3730993703, + "hash2": 467928741, + "struct_fields": [ + { + "name": "subtract", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "consume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Matrix33", + "type_name_2": "Matrix33", + "qualified_name": "keen::Matrix33", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1122138521, + "hash2": 4011656497, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "z", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Matrix43", + "type_name_2": "Matrix43", + "qualified_name": "keen::Matrix43", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1257492306, + "hash2": 439861822, + "struct_fields": [ + { + "name": "rot", + "type_name": "keen::Matrix33", + "type_hash": 1122138521, + "data_offset": 0 + }, + { + "name": "pos", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetachEntityEvent", + "type_name_2": "actor.DetachEntityEvent", + "qualified_name": "keen::actor::DetachEntityEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 208, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 778186761, + "hash2": 2018400388, + "struct_fields": [ + { + "name": "force", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 96 + }, + { + "name": "randomAngleByAxis", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 112 + }, + { + "name": "launchTransform", + "type_name": "keen::Matrix43", + "type_hash": 1257492306, + "data_offset": 128 + }, + { + "name": "addGravity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetachProjectileEntityEvent", + "type_name_2": "actor.DetachProjectileEntityEvent", + "qualified_name": "keen::actor::DetachProjectileEntityEvent", + "referenced_type_name": "keen::actor::DetachEntityEvent", + "class_size": 208, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 310734632, + "hash2": 677974046, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetTriggerStateEvent", + "type_name_2": "actor.SetTriggerStateEvent", + "qualified_name": "keen::actor::SetTriggerStateEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 508060764, + "hash2": 510598221, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 96 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShowAmmunition", + "type_name_2": "actor.ShowAmmunition", + "qualified_name": "keen::actor::ShowAmmunition", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 796039289, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetVisualAmmunition", + "type_name_2": "actor.SetVisualAmmunition", + "qualified_name": "keen::actor::SetVisualAmmunition", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3131697014, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResetVisualAmmunition", + "type_name_2": "actor.ResetVisualAmmunition", + "qualified_name": "keen::actor::ResetVisualAmmunition", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3114161209, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StartCookEvent", + "type_name_2": "actor.StartCookEvent", + "qualified_name": "keen::actor::StartCookEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 210628419, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnCookEntitesEvent", + "type_name_2": "actor.SpawnCookEntitesEvent", + "qualified_name": "keen::actor::SpawnCookEntitesEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 963612290, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActivateCombatStanceEvent", + "type_name_2": "actor.ActivateCombatStanceEvent", + "qualified_name": "keen::actor::ActivateCombatStanceEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4231062742, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::DefaultInventorySetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4113705752, + "hash2": 4006431787, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryReference", + "type_name_2": "ecs.DefaultInventoryReference", + "qualified_name": "keen::ecs::DefaultInventoryReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 685009001, + "hash2": 68063914, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransformToLootEvent", + "type_name_2": "actor.TransformToLootEvent", + "qualified_name": "keen::actor::TransformToLootEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 272, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3365185270, + "hash2": 3250335344, + "struct_fields": [ + { + "name": "defaultInventory", + "type_name": "keen::ecs::DefaultInventoryReference", + "type_hash": 685009001, + "data_offset": 96 + }, + { + "name": "keepDefaultInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "genericSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 113 + }, + { + "name": "availableSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 114 + }, + { + "name": "defaultAction", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 116 + }, + { + "name": "verbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 132 + }, + { + "name": "vfxOnSpawnOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 148 + }, + { + "name": "vfxOnSpawn", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 188 + }, + { + "name": "vfxParameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 204 + }, + { + "name": "lootHealth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 268 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AcceptInteractionEvent", + "type_name_2": "actor.AcceptInteractionEvent", + "qualified_name": "keen::actor::AcceptInteractionEvent", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2713944611, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChangeType", + "type_name_2": "actor.VoxelChangeType", + "qualified_name": "keen::actor::VoxelChangeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2257505365, + "hash2": 733406982, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Add", + "value": 1 + }, + { + "name": "Flatten", + "value": 2 + }, + { + "name": "HorizontalFlatten", + "value": 3 + }, + { + "name": "Undo", + "value": 4 + } + ] + }, + { + "type_name_1": "ChangeVoxel", + "type_name_2": "actor.ChangeVoxel", + "qualified_name": "keen::actor::ChangeVoxel", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2452043785, + "hash2": 4170284781, + "struct_fields": [ + { + "name": "changeType", + "type_name": "keen::actor::VoxelChangeType", + "type_hash": 2257505365, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Dismantle", + "type_name_2": "actor.Dismantle", + "qualified_name": "keen::actor::Dismantle", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3057713722, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcId", + "type_name_2": "NpcId", + "qualified_name": "keen::NpcId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1160524852, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AssignNpc", + "type_name_2": "actor.AssignNpc", + "qualified_name": "keen::actor::AssignNpc", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3359669953, + "hash2": 152442523, + "struct_fields": [ + { + "name": "npcId", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TameWildlifeEvent", + "type_name_2": "actor.TameWildlifeEvent", + "qualified_name": "keen::actor::TameWildlifeEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1400596316, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RotationInterpolation", + "type_name_2": "actor.RotationInterpolation", + "qualified_name": "keen::actor::RotationInterpolation", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 671119153, + "hash2": 2507058291, + "struct_fields": [ + { + "name": "startOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 0 + }, + { + "name": "targetOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 16 + }, + { + "name": "linearRotationAxis", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "interpolationMode", + "type_name": "keen::actor::InterpolationMode", + "type_hash": 3642673216, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RotationData", + "type_name_2": "actor.RotationData", + "qualified_name": "keen::actor::RotationData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2790769185, + "hash2": 3369233041, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "targetOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 8 + }, + { + "name": "snapDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceResourceId", + "type_name_2": "actor.SequenceResourceId", + "qualified_name": "keen::actor::SequenceResourceId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3855998483, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceRuntimeId", + "type_name_2": "actor.SequenceRuntimeId", + "qualified_name": "keen::actor::SequenceRuntimeId", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3494505059, + "hash2": 388712205, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 0 + }, + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "actorEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "callIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventorySlotIndex", + "type_name_2": "InventorySlotIndex", + "qualified_name": "keen::InventorySlotIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3219081530, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventorySlotId", + "type_name_2": "InventorySlotId", + "qualified_name": "keen::InventorySlotId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3135000555, + "hash2": 3984759345, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "slotIndex", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemStateFlag", + "type_name_2": "ItemStateFlag", + "qualified_name": "keen::ItemStateFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 441549208, + "hash2": 415944065, + "struct_fields": [], + "enum_fields": [ + { + "name": "Broken", + "value": 0 + }, + { + "name": "DurabilityInitialized", + "value": 1 + }, + { + "name": "ContinuousDurabilityLoss", + "value": 2 + }, + { + "name": "IsEquipped", + "value": 3 + }, + { + "name": "HasLevel", + "value": 4 + }, + { + "name": "HasDamage", + "value": 5 + }, + { + "name": "IsNew", + "value": 6 + }, + { + "name": "HasContinuousDurability", + "value": 7 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ItemStateFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2482811486, + "hash2": 113165113, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemStateMask", + "type_name_2": "ItemStateMask", + "qualified_name": "keen::ItemStateMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3237604966, + "hash2": 3540437983, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemInstanceInfo", + "type_name_2": "ItemInstanceInfo", + "qualified_name": "keen::ItemInstanceInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3145599946, + "hash2": 3812352709, + "struct_fields": [ + { + "name": "slotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 8 + }, + { + "name": "pide", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "stateMask", + "type_name": "keen::ItemStateMask", + "type_hash": 3237604966, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SongId", + "type_name_2": "SongId", + "qualified_name": "keen::SongId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1463321978, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeId", + "type_name_2": "KnowledgeId", + "qualified_name": "keen::KnowledgeId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 969147759, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "KnowledgeId[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::KnowledgeId", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2330520617, + "hash2": 4027311225, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceTriggerContext", + "type_name_2": "actor.ActionSequenceTriggerContext", + "qualified_name": "keen::actor::ActionSequenceTriggerContext", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 110921815, + "hash2": 2095078075, + "struct_fields": [ + { + "name": "sequenceRuntimeId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 0 + }, + { + "name": "triggerType", + "type_name": "keen::actor::ActionSequenceTrigger", + "type_hash": 4018170100, + "data_offset": 24 + }, + { + "name": "costItem", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 28 + }, + { + "name": "usedItem", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 48 + }, + { + "name": "usedAmmunition", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 68 + }, + { + "name": "jumpType", + "type_name": "keen::actor::JumpType", + "type_hash": 1821672963, + "data_offset": 88 + }, + { + "name": "directionOverride", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 92 + }, + { + "name": "songId", + "type_name": "keen::SongId", + "type_hash": 1463321978, + "data_offset": 104 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "interactionHostId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 120 + }, + { + "name": "interactionOfferId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "unlockKnowledgeIds", + "type_name": "keen::StaticArray", + "type_hash": 2330520617, + "data_offset": 128 + }, + { + "name": "entityTags", + "type_name": "keen::StaticArray", + "type_hash": 3764964429, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillNodeId", + "type_name_2": "SkillNodeId", + "qualified_name": "keen::SkillNodeId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 933050386, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FollowUp", + "type_name_2": "actor.FollowUp", + "qualified_name": "keen::actor::FollowUp", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3686640431, + "hash2": 349721746, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::actor::ActionSequenceTriggerContext", + "type_hash": 110921815, + "data_offset": 0 + }, + { + "name": "originalEventSequence", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 224 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 228 + }, + { + "name": "localExecutionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 248 + }, + { + "name": "requiredSkill", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 256 + }, + { + "name": "costImpact", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 260 + }, + { + "name": "wasTriggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 276 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceFlags", + "type_name_2": "actor.ActionSequenceFlags", + "qualified_name": "keen::actor::ActionSequenceFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 854517067, + "hash2": 1590324129, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsActive", + "value": 0 + }, + { + "name": "IsInScope", + "value": 1 + }, + { + "name": "IsInScopeLoop", + "value": 2 + }, + { + "name": "RetriggerAnimation", + "value": 3 + }, + { + "name": "AbortViaMovement", + "value": 4 + }, + { + "name": "SelfDestruct", + "value": 5 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::actor::ActionSequenceFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3222318515, + "hash2": 3929030146, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceState", + "type_name_2": "actor.ActionSequenceState", + "qualified_name": "keen::actor::ActionSequenceState", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3355351645, + "hash2": 1168417900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceSpan", + "type_name_2": "actor.ActionSequenceSpan", + "qualified_name": "keen::actor::ActionSequenceSpan", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1567979848, + "hash2": 363979897, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderModeData", + "type_name_2": "actor.ColliderModeData", + "qualified_name": "keen::actor::ColliderModeData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3291728644, + "hash2": 3828864929, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ecs::ColliderMode", + "type_hash": 4112969876, + "data_offset": 0 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "actor.ActionSequenceSpan[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::actor::ActionSequenceSpan", + "class_size": 32, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2867726506, + "hash2": 380066560, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "actor.FollowUp[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::actor::FollowUp", + "class_size": 1680, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 516896095, + "hash2": 1284665325, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequencePlaybackContext", + "type_name_2": "actor.ActionSequencePlaybackContext", + "qualified_name": "keen::actor::ActionSequencePlaybackContext", + "referenced_type_name": null, + "class_size": 1824, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 2558571792, + "hash2": 1713482839, + "struct_fields": [ + { + "name": "playedTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "currentTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sequenceLength", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "scopeStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "scopeEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "scopeAbortMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 40 + }, + { + "name": "scopeKeepAliveMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 48 + }, + { + "name": "scopeJumpToScopeEndOnAbort", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "state", + "type_name": "keen::actor::ActionSequenceState", + "type_hash": 3355351645, + "data_offset": 57 + }, + { + "name": "playbackSpan", + "type_name": "keen::StaticArray", + "type_hash": 2867726506, + "data_offset": 64 + }, + { + "name": "followUps", + "type_name": "keen::StaticArray", + "type_hash": 516896095, + "data_offset": 96 + }, + { + "name": "abilityMask", + "type_name": "keen::actor::AbilityMask", + "type_hash": 3470695687, + "data_offset": 1776 + }, + { + "name": "setStateMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 1784 + }, + { + "name": "unsetStateMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 1792 + }, + { + "name": "sequenceAbortMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 1800 + }, + { + "name": "sequenceKeepAliveMask", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 1808 + }, + { + "name": "wrapedAround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1816 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "Guid[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::Guid", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 259838053, + "hash2": 830142034, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SignalStates", + "type_name_2": "actor.SignalStates", + "qualified_name": "keen::actor::SignalStates", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3404174817, + "hash2": 2679918492, + "struct_fields": [ + { + "name": "activeSignals", + "type_name": "keen::StaticArray", + "type_hash": 259838053, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequence", + "type_name_2": "actor.ActionSequence", + "qualified_name": "keen::actor::ActionSequence", + "referenced_type_name": null, + "class_size": 2048, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2391369016, + "hash2": 2564935835, + "struct_fields": [ + { + "name": "triggerContext", + "type_name": "keen::actor::ActionSequenceTriggerContext", + "type_hash": 110921815, + "data_offset": 0 + }, + { + "name": "playbackContext", + "type_name": "keen::actor::ActionSequencePlaybackContext", + "type_hash": 2558571792, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlaceItemEvent", + "type_name_2": "actor.PlaceItemEvent", + "qualified_name": "keen::actor::PlaceItemEvent", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1734023671, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetAttackChainVariationEvent", + "type_name_2": "actor.SetAttackChainVariationEvent", + "qualified_name": "keen::actor::SetAttackChainVariationEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1926408853, + "hash2": 4145963108, + "struct_fields": [ + { + "name": "followUpSequenceTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreviewAnimGraph2", + "type_name_2": "PreviewAnimGraph2", + "qualified_name": "keen::PreviewAnimGraph2", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 765329401, + "hash2": 2201675693, + "struct_fields": [ + { + "name": "animGraphId", + "type_name": "keen::ObjectReference", + "type_hash": 2401198865, + "data_offset": 0 + }, + { + "name": "useFemaleAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorActionContainer", + "type_name_2": "ActorActionContainer", + "qualified_name": "keen::ActorActionContainer", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4126041128, + "hash2": 3988336344, + "struct_fields": [ + { + "name": "previewAnimationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 921543191, + "data_offset": 0 + }, + { + "name": "previewAnimationGraph2Info", + "type_name": "keen::PreviewAnimGraph2", + "type_hash": 765329401, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorActionContainerRoot", + "type_name_2": "ActorActionContainerRoot", + "qualified_name": "keen::ActorActionContainerRoot", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2880969824, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::actor::ActorSequenceResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 567872292, + "hash2": 1279891411, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceResourceReference", + "type_name_2": "ActorSequenceResourceReference", + "qualified_name": "keen::ActorSequenceResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3866232891, + "hash2": 43612305, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ActorSequenceResourceReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ActorSequenceResourceReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 127500630, + "hash2": 3985625350, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceCollectionResource", + "type_name_2": "ActorSequenceCollectionResource", + "qualified_name": "keen::ActorSequenceCollectionResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2728896694, + "hash2": 2720173546, + "struct_fields": [ + { + "name": "sequences", + "type_name": "keen::BlobArray", + "type_hash": 127500630, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmmunitionType", + "type_name_2": "AmmunitionType", + "qualified_name": "keen::AmmunitionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3530086269, + "hash2": 3715415728, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Arrow", + "value": 1 + }, + { + "name": "Spell", + "value": 2 + }, + { + "name": "Count", + "value": 2 + } + ] + }, + { + "type_name_1": "Needs", + "type_name_2": "animal.Needs", + "qualified_name": "keen::animal::Needs", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 996475263, + "hash2": 3437424499, + "struct_fields": [], + "enum_fields": [ + { + "name": "Shelter", + "value": 0 + }, + { + "name": "Sleep", + "value": 1 + }, + { + "name": "Food", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::animal::Needs", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3012345583, + "hash2": 1557830513, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NeedsMask", + "type_name_2": "animal.NeedsMask", + "qualified_name": "keen::animal::NeedsMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3913408347, + "hash2": 3177686648, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionState", + "type_name_2": "animal.InteractionState", + "qualified_name": "keen::animal::InteractionState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 639582787, + "hash2": 1398210590, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsTurning", + "value": 0 + }, + { + "name": "IsCloseToPlayer", + "value": 1 + }, + { + "name": "IsPlayingPetSequence", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::animal::InteractionState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1699778083, + "hash2": 2102153061, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionStates", + "type_name_2": "animal.InteractionStates", + "qualified_name": "keen::animal::InteractionStates", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 859124112, + "hash2": 2383915826, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetSearchState", + "type_name_2": "animal.TargetSearchState", + "qualified_name": "keen::animal::TargetSearchState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1785780136, + "hash2": 1368319315, + "struct_fields": [], + "enum_fields": [ + { + "name": "TargetReached", + "value": 0 + }, + { + "name": "NotTryingThisState", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::animal::TargetSearchState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2234218270, + "hash2": 2394959494, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetSearchStates", + "type_name_2": "animal.TargetSearchStates", + "qualified_name": "keen::animal::TargetSearchStates", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1789119937, + "hash2": 1688905593, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "animal.State", + "qualified_name": "keen::animal::State", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 11, + "primitive_type": "Enum", + "hash1": 983460363, + "hash2": 2047397934, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Init", + "value": 1 + }, + { + "name": "Start", + "value": 2 + }, + { + "name": "Idle", + "value": 3 + }, + { + "name": "Roam", + "value": 4 + }, + { + "name": "Sitting", + "value": 5 + }, + { + "name": "Sleep", + "value": 6 + }, + { + "name": "Eating", + "value": 7 + }, + { + "name": "Interested", + "value": 8 + }, + { + "name": "GreetPlayer", + "value": 9 + }, + { + "name": "FinishTask", + "value": 10 + } + ] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "animal.StateCondition", + "qualified_name": "keen::animal::StateCondition", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 3245996860, + "hash2": 1147188829, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsFinished", + "value": 0 + }, + { + "name": "HasFailed", + "value": 1 + }, + { + "name": "WantsToRoam", + "value": 2 + }, + { + "name": "WantsToSit", + "value": 3 + }, + { + "name": "WantsToEat", + "value": 4 + }, + { + "name": "WantsToSleep", + "value": 5 + }, + { + "name": "WantsToGreet", + "value": 6 + }, + { + "name": "WantsToIdle", + "value": 7 + }, + { + "name": "IsInterested", + "value": 8 + } + ] + }, + { + "type_name_1": "Type", + "type_name_2": "animal.Type", + "qualified_name": "keen::animal::Type", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 11, + "primitive_type": "Enum", + "hash1": 2638734726, + "hash2": 3824266419, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "FarmAnimal", + "value": 1 + }, + { + "name": "Bunny", + "value": 2 + }, + { + "name": "Catdeer", + "value": 3 + }, + { + "name": "Goat", + "value": 4 + }, + { + "name": "SandDigger", + "value": 5 + }, + { + "name": "Turkey", + "value": 6 + }, + { + "name": "Yak", + "value": 7 + }, + { + "name": "Pet", + "value": 8 + }, + { + "name": "Cat", + "value": 9 + }, + { + "name": "Dog", + "value": 10 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::animal::Type", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 393260617, + "hash2": 2153923975, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TypeMask", + "type_name_2": "animal.TypeMask", + "qualified_name": "keen::animal::TypeMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 342149110, + "hash2": 3422361499, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IdleSequenceSetup", + "type_name_2": "animal.IdleSequenceSetup", + "qualified_name": "keen::animal::IdleSequenceSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1595801278, + "hash2": 2051284720, + "struct_fields": [ + { + "name": "minSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecisionSetup", + "type_name_2": "animal.DecisionSetup", + "qualified_name": "keen::animal::DecisionSetup", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 29107625, + "hash2": 1246242864, + "struct_fields": [ + { + "name": "idleWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "inspectWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "sitWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "greetWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "roamWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdleSetup", + "type_name_2": "animal.IdleSetup", + "qualified_name": "keen::animal::IdleSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 864957373, + "hash2": 2560349691, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sequenceChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SearchTargetSetup", + "type_name_2": "animal.SearchTargetSetup", + "qualified_name": "keen::animal::SearchTargetSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 426250040, + "hash2": 3675658600, + "struct_fields": [ + { + "name": "targetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetSetup", + "type_name_2": "animal.TargetSetup", + "qualified_name": "keen::animal::TargetSetup", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 430107352, + "hash2": 2511260046, + "struct_fields": [ + { + "name": "isBed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isFood", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "isInteresting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HungerSetup", + "type_name_2": "animal.HungerSetup", + "qualified_name": "keen::animal::HungerSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1403059102, + "hash2": 1382648115, + "struct_fields": [ + { + "name": "timeUntilHungerMinDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "timeUntilHungerMaxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "foodConsumptionRate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReproductionSetup", + "type_name_2": "animal.ReproductionSetup", + "qualified_name": "keen::animal::ReproductionSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 847014777, + "hash2": 2230130992, + "struct_fields": [ + { + "name": "maxReproductionDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "baseReproductionChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "reproductionRate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimalQueryStatus", + "type_name_2": "animal.AnimalQueryStatus", + "qualified_name": "keen::animal::AnimalQueryStatus", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1126254048, + "hash2": 1828275344, + "struct_fields": [], + "enum_fields": [ + { + "name": "Idle", + "value": 0 + }, + { + "name": "Requested", + "value": 1 + }, + { + "name": "WaitForResult", + "value": 2 + }, + { + "name": "Canceled", + "value": 3 + } + ] + }, + { + "type_name_1": "RangeQueryInfo", + "type_name_2": "animal.RangeQueryInfo", + "qualified_name": "keen::animal::RangeQueryInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 783882473, + "hash2": 1252705690, + "struct_fields": [ + { + "name": "status", + "type_name": "keen::animal::AnimalQueryStatus", + "type_hash": 1126254048, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryInfo", + "type_name_2": "animal.PathQueryInfo", + "qualified_name": "keen::animal::PathQueryInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 690699071, + "hash2": 1252705690, + "struct_fields": [ + { + "name": "status", + "type_name": "keen::animal::AnimalQueryStatus", + "type_hash": 1126254048, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ecs::PathQueryId", + "type_hash": 481614841, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReproductionQueryState", + "type_name_2": "animal.ReproductionQueryState", + "qualified_name": "keen::animal::ReproductionQueryState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3340456861, + "hash2": 2640302513, + "struct_fields": [], + "enum_fields": [ + { + "name": "Idle", + "value": 0 + }, + { + "name": "RangeQueries", + "value": 1 + }, + { + "name": "PathQueries", + "value": 2 + }, + { + "name": "Canceled", + "value": 3 + } + ] + }, + { + "type_name_1": "ReproductionState", + "type_name_2": "animal.ReproductionState", + "qualified_name": "keen::animal::ReproductionState", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3080850529, + "hash2": 926218058, + "struct_fields": [ + { + "name": "requirementsFulfilled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "queryState", + "type_name": "keen::animal::ReproductionQueryState", + "type_hash": 3340456861, + "data_offset": 1 + }, + { + "name": "closestFreeBedId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "closestOtherAnimalId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "animalQuery", + "type_name": "keen::animal::RangeQueryInfo", + "type_hash": 783882473, + "data_offset": 12 + }, + { + "name": "bedQuery", + "type_name": "keen::animal::RangeQueryInfo", + "type_hash": 783882473, + "data_offset": 20 + }, + { + "name": "animalPathQuery", + "type_name": "keen::animal::PathQueryInfo", + "type_hash": 690699071, + "data_offset": 28 + }, + { + "name": "bedPathQuery", + "type_name": "keen::animal::PathQueryInfo", + "type_hash": 690699071, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1767329303, + "hash2": 280389292, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HungerState", + "type_name_2": "animal.HungerState", + "qualified_name": "keen::animal::HungerState", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3866853502, + "hash2": 1917266962, + "struct_fields": [ + { + "name": "foodTargets", + "type_name": "keen::StaticArray", + "type_hash": 1767329303, + "data_offset": 0 + }, + { + "name": "foodSourceQueryInfo", + "type_name": "keen::animal::RangeQueryInfo", + "type_hash": 783882473, + "data_offset": 32 + }, + { + "name": "pathfindingQuery", + "type_name": "keen::animal::PathQueryInfo", + "type_hash": 690699071, + "data_offset": 40 + }, + { + "name": "currentPathfindingIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RoamingSetup", + "type_name_2": "active_npc.RoamingSetup", + "qualified_name": "keen::active_npc::RoamingSetup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1997248772, + "hash2": 1045298992, + "struct_fields": [ + { + "name": "minDistanceToCurrentPosition", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxRadiusFromSpawn", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "targetNodeRequirements", + "type_name": "keen::ecs::PathNodeRequirements", + "type_hash": 257535372, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovementSetup", + "type_name_2": "active_npc.MovementSetup", + "qualified_name": "keen::active_npc::MovementSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 795325050, + "hash2": 2659691278, + "struct_fields": [ + { + "name": "maxMovementAngleDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxMovementAngleRoaming", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SleepSetup", + "type_name_2": "active_npc.SleepSetup", + "qualified_name": "keen::active_npc::SleepSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2369493944, + "hash2": 1602865654, + "struct_fields": [ + { + "name": "sleepTime", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 0 + }, + { + "name": "wakeUpTime", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeSetup", + "type_name_2": "active_npc.PathNodeSetup", + "qualified_name": "keen::active_npc::PathNodeSetup", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3002318660, + "hash2": 84103868, + "struct_fields": [ + { + "name": "defaultCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 0 + }, + { + "name": "roamingCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Animal", + "type_name_2": "ecs.Animal", + "qualified_name": "keen::ecs::Animal", + "referenced_type_name": "keen::ecs::Component", + "class_size": 480, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 2411077011, + "hash2": 3610348877, + "struct_fields": [ + { + "name": "turnSetup", + "type_name": "keen::actor::TurnSetup", + "type_hash": 90222665, + "data_offset": 0 + }, + { + "name": "sitSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 72 + }, + { + "name": "sleepSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 88 + }, + { + "name": "inspectSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 104 + }, + { + "name": "beingPetSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 120 + }, + { + "name": "eatingSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 136 + }, + { + "name": "sadIdleSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 152 + }, + { + "name": "greetSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 168 + }, + { + "name": "minDistanceToPlayer", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 184 + }, + { + "name": "type", + "type_name": "keen::animal::Type", + "type_hash": 2638734726, + "data_offset": 188 + }, + { + "name": "decisionSetup", + "type_name": "keen::animal::DecisionSetup", + "type_hash": 29107625, + "data_offset": 192 + }, + { + "name": "idleSetup", + "type_name": "keen::animal::IdleSetup", + "type_hash": 864957373, + "data_offset": 216 + }, + { + "name": "roamingSetup", + "type_name": "keen::active_npc::RoamingSetup", + "type_hash": 1997248772, + "data_offset": 240 + }, + { + "name": "movementSetup", + "type_name": "keen::active_npc::MovementSetup", + "type_hash": 795325050, + "data_offset": 252 + }, + { + "name": "sleepSetup", + "type_name": "keen::active_npc::SleepSetup", + "type_hash": 2369493944, + "data_offset": 260 + }, + { + "name": "searchTargetSetup", + "type_name": "keen::animal::SearchTargetSetup", + "type_hash": 426250040, + "data_offset": 276 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::active_npc::PathNodeSetup", + "type_hash": 3002318660, + "data_offset": 284 + }, + { + "name": "hungerSetup", + "type_name": "keen::animal::HungerSetup", + "type_hash": 1403059102, + "data_offset": 392 + }, + { + "name": "reproductionSetup", + "type_name": "keen::animal::ReproductionSetup", + "type_hash": 847014777, + "data_offset": 416 + }, + { + "name": "babyAnimalVersion", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 432 + }, + { + "name": "defaultInteractionSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 448 + }, + { + "name": "defaultInteractionVerbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 464 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicAnimal", + "type_name_2": "ecs.DynamicAnimal", + "qualified_name": "keen::ecs::DynamicAnimal", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1877002916, + "hash2": 1425918538, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::animal::State", + "type_hash": 983460363, + "data_offset": 0 + }, + { + "name": "previousState", + "type_name": "keen::animal::State", + "type_hash": 983460363, + "data_offset": 1 + }, + { + "name": "standingNextToPlayerTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "targetSearchStates", + "type_name": "keen::animal::TargetSearchStates", + "type_hash": 1789119937, + "data_offset": 16 + }, + { + "name": "beingPetByPlayerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 24 + }, + { + "name": "reproductionState", + "type_name": "keen::animal::ReproductionState", + "type_hash": 3080850529, + "data_offset": 28 + }, + { + "name": "timeUntilHungry", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "eatingCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "hungerState", + "type_name": "keen::animal::HungerState", + "type_hash": 3866853502, + "data_offset": 88 + }, + { + "name": "bedSearched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkAnimal", + "type_name_2": "ecs.NetworkAnimal", + "qualified_name": "keen::ecs::NetworkAnimal", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3714527211, + "hash2": 3297999914, + "struct_fields": [ + { + "name": "needs", + "type_name": "keen::animal::NeedsMask", + "type_hash": 3913408347, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimalSaved", + "type_name_2": "ecs.AnimalSaved", + "qualified_name": "keen::ecs::AnimalSaved", + "referenced_type_name": "keen::ecs::Component", + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2204127774, + "hash2": 2166821382, + "struct_fields": [ + { + "name": "spawnPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "lastFoodConsumptionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lastValidReproduction", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "willConsumeFood", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "nextReproductionCheck", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "needs", + "type_name": "keen::animal::NeedsMask", + "type_hash": 3913408347, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimalTarget", + "type_name_2": "ecs.AnimalTarget", + "qualified_name": "keen::ecs::AnimalTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2809678678, + "hash2": 3281138949, + "struct_fields": [ + { + "name": "setup", + "type_name": "keen::animal::TargetSetup", + "type_hash": 430107352, + "data_offset": 0 + }, + { + "name": "types", + "type_name": "keen::animal::TypeMask", + "type_hash": 342149110, + "data_offset": 4 + }, + { + "name": "targetOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicAnimalTarget", + "type_name_2": "ecs.DynamicAnimalTarget", + "qualified_name": "keen::ecs::DynamicAnimalTarget", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2269741709, + "hash2": 3222106504, + "struct_fields": [ + { + "name": "associatedAnimal", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BabyAnimal", + "type_name_2": "ecs.BabyAnimal", + "qualified_name": "keen::ecs::BabyAnimal", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2092828519, + "hash2": 2829621432, + "struct_fields": [ + { + "name": "growTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "grownUpEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 8 + }, + { + "name": "growUpTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "canGrowUp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeFlags", + "type_name_2": "ecs.AttributeFlags", + "qualified_name": "keen::ecs::AttributeFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 13997028, + "hash2": 58025095, + "struct_fields": [], + "enum_fields": [ + { + "name": "Initialized", + "value": 0 + }, + { + "name": "Break_OnWrite", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ecs::AttributeFlags", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 1116072317, + "hash2": 2559295930, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeComponent", + "type_name_2": "ecs.AttributeComponent", + "qualified_name": "keen::ecs::AttributeComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2169541464, + "hash2": 2357084978, + "struct_fields": [ + { + "name": "rootId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "signature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "storageOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "storageSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::Bitmask16", + "type_hash": 1116072317, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatAttribute", + "type_name_2": "ecs.FloatAttribute", + "qualified_name": "keen::ecs::FloatAttribute", + "referenced_type_name": "keen::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2563961897, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UInt32Attribute", + "type_name_2": "ecs.UInt32Attribute", + "qualified_name": "keen::ecs::UInt32Attribute", + "referenced_type_name": "keen::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 707065030, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SInt32Attribute", + "type_name_2": "ecs.SInt32Attribute", + "qualified_name": "keen::ecs::SInt32Attribute", + "referenced_type_name": "keen::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3548429904, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolAttribute", + "type_name_2": "ecs.BoolAttribute", + "qualified_name": "keen::ecs::BoolAttribute", + "referenced_type_name": "keen::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 530596505, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DurabilityLoad", + "type_name_2": "ecs.DurabilityLoad", + "qualified_name": "keen::ecs::DurabilityLoad", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1542231588, + "hash2": 2867624070, + "struct_fields": [ + { + "name": "percentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DurabilityBurndown", + "type_name_2": "ecs.DurabilityBurndown", + "qualified_name": "keen::ecs::DurabilityBurndown", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1568464069, + "hash2": 2798790253, + "struct_fields": [ + { + "name": "lastUpdate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeType", + "type_name_2": "impact.AttributeType", + "qualified_name": "keen::impact::AttributeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 1750006976, + "hash2": 478815890, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Bool", + "value": 1 + }, + { + "name": "Sint32", + "value": 2 + }, + { + "name": "Uint32", + "value": 3 + }, + { + "name": "Float32", + "value": 4 + } + ] + }, + { + "type_name_1": "AttributeDeclerationBase", + "type_name_2": "impact.AttributeDeclerationBase", + "qualified_name": "keen::impact::AttributeDeclerationBase", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1458899869, + "hash2": 850556667, + "struct_fields": [ + { + "name": "formula", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeDecleration", + "type_name_2": "impact.AttributeDecleration", + "qualified_name": "keen::impact::AttributeDecleration", + "referenced_type_name": "keen::impact::AttributeDeclerationBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 255923096, + "hash2": 72931366, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::impact::AttributeType", + "type_hash": 1750006976, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeIndex", + "type_name_2": "impact.AttributeIndex", + "qualified_name": "keen::impact::AttributeIndex", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 466408996, + "hash2": 301491076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeContainer", + "type_name_2": "AttributeContainer", + "qualified_name": "keen::AttributeContainer", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1822673777, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeCommand", + "type_name_2": "AttributeCommand", + "qualified_name": "keen::AttributeCommand", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1162085843, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeOps", + "type_name_2": "AttributeOps", + "qualified_name": "keen::AttributeOps", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 21, + "primitive_type": "Enum", + "hash1": 2859482482, + "hash2": 3958991199, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Load0", + "value": 1 + }, + { + "name": "Load", + "value": 2 + }, + { + "name": "LoadRef", + "value": 3 + }, + { + "name": "Store", + "value": 4 + }, + { + "name": "Push", + "value": 5 + }, + { + "name": "Add", + "value": 6 + }, + { + "name": "Substract", + "value": 7 + }, + { + "name": "Multiply", + "value": 8 + }, + { + "name": "Divide", + "value": 9 + }, + { + "name": "Pow", + "value": 10 + }, + { + "name": "MulPercentage", + "value": 11 + }, + { + "name": "Clamp", + "value": 12 + }, + { + "name": "ScaleToNewMax", + "value": 13 + }, + { + "name": "Min", + "value": 14 + }, + { + "name": "Max", + "value": 15 + }, + { + "name": "And", + "value": 16 + }, + { + "name": "Or", + "value": 17 + }, + { + "name": "Not", + "value": 18 + }, + { + "name": "NAnd", + "value": 19 + }, + { + "name": "Halt", + "value": 20 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AttributeCommand[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AttributeCommand", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1228470518, + "hash2": 913187891, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeStructure", + "type_name_2": "AttributeStructure", + "qualified_name": "keen::AttributeStructure", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4241761147, + "hash2": 157678592, + "struct_fields": [ + { + "name": "parentIndex", + "type_name": "keen::impact::AttributeIndex", + "type_hash": 466408996, + "data_offset": 0 + }, + { + "name": "childIndex", + "type_name": "keen::impact::AttributeIndex", + "type_hash": 466408996, + "data_offset": 2 + }, + { + "name": "siblingIndex", + "type_name": "keen::impact::AttributeIndex", + "type_hash": 466408996, + "data_offset": 4 + }, + { + "name": "calculation", + "type_name": "keen::BlobArray", + "type_hash": 1228470518, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AttributeStructure[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AttributeStructure", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2284680366, + "hash2": 2255031389, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "string[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::string", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1336097202, + "hash2": 1515747367, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BaseAttributeResource", + "type_name_2": "BaseAttributeResource", + "qualified_name": "keen::BaseAttributeResource", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2490401649, + "hash2": 3846503406, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "ids", + "type_name": "keen::BlobArray", + "type_hash": 516548357, + "data_offset": 4 + }, + { + "name": "structure", + "type_name": "keen::BlobArray", + "type_hash": 2284680366, + "data_offset": 12 + }, + { + "name": "debugNames", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BaseAttributeResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BaseAttributeResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 617799782, + "hash2": 1218771731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeContainerResource", + "type_name_2": "AttributeContainerResource", + "qualified_name": "keen::AttributeContainerResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 369220241, + "hash2": 2349748086, + "struct_fields": [ + { + "name": "attributes", + "type_name": "keen::BlobArray", + "type_hash": 617799782, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::impact::AttributeDecleration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1780937407, + "hash2": 625469470, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeRootReference", + "type_name_2": "AttributeRootReference", + "qualified_name": "keen::AttributeRootReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1015338995, + "hash2": 3615520947, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::impact::AttributeDeclerationBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 523859368, + "hash2": 3965805037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeReference", + "type_name_2": "AttributeReference", + "qualified_name": "keen::AttributeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3127615111, + "hash2": 2994252604, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeValueBase", + "type_name_2": "AttributeValueBase", + "qualified_name": "keen::AttributeValueBase", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1828285766, + "hash2": 3463429067, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatAttributeValue", + "type_name_2": "FloatAttributeValue", + "qualified_name": "keen::FloatAttributeValue", + "referenced_type_name": "keen::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1282333125, + "hash2": 4166761092, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SInt32AttributeValue", + "type_name_2": "SInt32AttributeValue", + "qualified_name": "keen::SInt32AttributeValue", + "referenced_type_name": "keen::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3296015992, + "hash2": 1510671538, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UInt32AttributeValue", + "type_name_2": "UInt32AttributeValue", + "qualified_name": "keen::UInt32AttributeValue", + "referenced_type_name": "keen::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3679875438, + "hash2": 1779457330, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolAttributeValue", + "type_name_2": "BoolAttributeValue", + "qualified_name": "keen::BoolAttributeValue", + "referenced_type_name": "keen::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1657933015, + "hash2": 1566461229, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BalancingAltarCount", + "type_name_2": "BalancingAltarCount", + "qualified_name": "keen::BalancingAltarCount", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3412561998, + "hash2": 4215534330, + "struct_fields": [ + { + "name": "flameLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "altarCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BalancingBuildzoneSize", + "type_name_2": "BalancingBuildzoneSize", + "qualified_name": "keen::BalancingBuildzoneSize", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 206488960, + "hash2": 1314410080, + "struct_fields": [ + { + "name": "altarLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "buildzoneSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExperienceSourceType", + "type_name_2": "ExperienceSourceType", + "qualified_name": "keen::ExperienceSourceType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1322782011, + "hash2": 3378856802, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Exploration", + "value": 1 + }, + { + "name": "Lore", + "value": 2 + }, + { + "name": "Quest", + "value": 3 + }, + { + "name": "Combat", + "value": 4 + }, + { + "name": "Mining", + "value": 5 + } + ] + }, + { + "type_name_1": "ExperienceBalancing", + "type_name_2": "ExperienceBalancing", + "qualified_name": "keen::ExperienceBalancing", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3712476037, + "hash2": 2000156961, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::ExperienceSourceType", + "type_hash": 1322782011, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExperienceBalanceValue", + "type_name_2": "ExperienceBalanceValue", + "qualified_name": "keen::ExperienceBalanceValue", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 581824747, + "hash2": 2489823444, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::ExperienceSourceType", + "type_hash": 1322782011, + "data_offset": 0 + }, + { + "name": "experienceValueId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "experienceGain", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerBalancing", + "type_name_2": "RandomSpawnerBalancing", + "qualified_name": "keen::RandomSpawnerBalancing", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2246497290, + "hash2": 3139756344, + "struct_fields": [ + { + "name": "fewAmountFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "manyAmountFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "extremeAmountFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolThresholdBalancing", + "type_name_2": "AggroPoolThresholdBalancing", + "qualified_name": "keen::AggroPoolThresholdBalancing", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2485926700, + "hash2": 4096807070, + "struct_fields": [ + { + "name": "twoPoolsThreshold", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "threePoolsThreshold", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "maxPoolsThreshold", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolBalancing", + "type_name_2": "AggroPoolBalancing", + "qualified_name": "keen::AggroPoolBalancing", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1261426185, + "hash2": 3873620588, + "struct_fields": [ + { + "name": "fewThresholds", + "type_name": "keen::AggroPoolThresholdBalancing", + "type_hash": 2485926700, + "data_offset": 0 + }, + { + "name": "normalThresholds", + "type_name": "keen::AggroPoolThresholdBalancing", + "type_hash": 2485926700, + "data_offset": 12 + }, + { + "name": "manyThresholds", + "type_name": "keen::AggroPoolThresholdBalancing", + "type_hash": 2485926700, + "data_offset": 24 + }, + { + "name": "extremeThresholds", + "type_name": "keen::AggroPoolThresholdBalancing", + "type_hash": 2485926700, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GameKnowledgeDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2616529598, + "hash2": 3473445872, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ExperienceBalanceValue[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ExperienceBalanceValue", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2135410958, + "hash2": 538774344, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BalancingTable", + "type_name_2": "BalancingTable", + "qualified_name": "keen::BalancingTable", + "referenced_type_name": null, + "class_size": 344, + "fields_count": 64, + "primitive_type": "Struct", + "hash1": 2476271431, + "hash2": 764000684, + "struct_fields": [ + { + "name": "genericWeaponSeed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "flameLevelMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "altarLevelMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerLevelMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "playerLevelCap", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "itemLevelCap", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "damageBoostFlame", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "apPerFlameLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "critBonus", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "baseCritChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "powerCreepWeapon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "htkStartPve", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "htkEndPve", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "damageMod2Handed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "playerBaseHealth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "playerHealthPerAP", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + }, + { + "name": "playerBaseMana", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "playerManaPerAP", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "playerBaseStamina", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "playerStaminaPerAP", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + }, + { + "name": "playerBaseBodyHeat", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "freezeDurationFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "freezeDurationOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "disableFreezingBaseLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "playerBaseFogResistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "playerFogResistancePerFlameLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "htkStartEvp", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + }, + { + "name": "htkEndEvp", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 108 + }, + { + "name": "killToLevelUPStart", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "killToLevelUPEnd", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 116 + }, + { + "name": "epicWeaponBonus", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "xpNeededFromKnowledge", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "parryToDepletion", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "shotsToDepletion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 132 + }, + { + "name": "avarageCharacterMod", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "knowledgeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 2616529598, + "data_offset": 140 + }, + { + "name": "levelDifferenceXpDamper", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "levelDifferenceXpModMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "levelDifferenceXpModMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "groupSizeXpDamper", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + }, + { + "name": "groupSizeXpDamperModMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 172 + }, + { + "name": "skillPointsPerLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 176 + }, + { + "name": "maximumTotalMusicComfortBuff", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 180 + }, + { + "name": "maximumInstrumentsCountedForComfort", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 184 + }, + { + "name": "timePerInstrumentUntilMaxBuff", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 192 + }, + { + "name": "defaultArmorBlowthrough", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + }, + { + "name": "damageScalePerAttributePoint", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "xpSeedEnemy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "xpSharedOther", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 212 + }, + { + "name": "perkPower", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "perkUpgradeCostSeed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "perkCostCreep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "trashStart", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 228 + }, + { + "name": "trashEnd", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 232 + }, + { + "name": "noiseRainFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 236 + }, + { + "name": "buffReapplyPercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 240 + }, + { + "name": "randomSpawnerBalancing", + "type_name": "keen::RandomSpawnerBalancing", + "type_hash": 2246497290, + "data_offset": 244 + }, + { + "name": "aggroPoolBalancing", + "type_name": "keen::AggroPoolBalancing", + "type_hash": 1261426185, + "data_offset": 256 + }, + { + "name": "maximumAnimalsInWorld", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 304 + }, + { + "name": "hookShotCostLevelFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 308 + }, + { + "name": "hookShotCostBase", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 312 + }, + { + "name": "altarsPerFlameLevel", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 316 + }, + { + "name": "buildzoneSizesPerAltarLevel", + "type_name": "keen::BlobArray", + "type_hash": 1594178228, + "data_offset": 324 + }, + { + "name": "experienceValues", + "type_name": "keen::BlobArray", + "type_hash": 2135410958, + "data_offset": 332 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BalancingLocaIds", + "type_name_2": "BalancingLocaIds", + "qualified_name": "keen::BalancingLocaIds", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1664885478, + "hash2": 3140091377, + "struct_fields": [], + "enum_fields": [ + { + "name": "HealthPerAP", + "value": 0 + }, + { + "name": "ManaPerAP", + "value": 1 + }, + { + "name": "StaminaPerAP", + "value": 2 + } + ] + }, + { + "type_name_1": "BuffSlotType", + "type_name_2": "BuffSlotType", + "qualified_name": "keen::BuffSlotType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 179040647, + "hash2": 3892040999, + "struct_fields": [], + "enum_fields": [ + { + "name": "Food", + "value": 0 + }, + { + "name": "Buff", + "value": 1 + }, + { + "name": "Debuff", + "value": 2 + }, + { + "name": "Rested", + "value": 3 + }, + { + "name": "TerrainDebuff", + "value": 4 + } + ] + }, + { + "type_name_1": "BuffApplyType", + "type_name_2": "BuffApplyType", + "qualified_name": "keen::BuffApplyType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1124961933, + "hash2": 1081422391, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "ResetTime", + "value": 1 + }, + { + "name": "ReplaceAtEnd", + "value": 2 + }, + { + "name": "Replace", + "value": 3 + } + ] + }, + { + "type_name_1": "OnCreateHelper", + "type_name_2": "OnCreateHelper", + "qualified_name": "keen::OnCreateHelper", + "referenced_type_name": null, + "class_size": 100, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4169141507, + "hash2": 3232332191, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 4 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 64 + }, + { + "name": "onlyPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "notifier", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhileAppliedHelper", + "type_name_2": "WhileAppliedHelper", + "qualified_name": "keen::WhileAppliedHelper", + "referenced_type_name": null, + "class_size": 140, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1099626524, + "hash2": 2514304886, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 4 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 44 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 60 + }, + { + "name": "parameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeId", + "type_name_2": "BuffTypeId", + "qualified_name": "keen::BuffTypeId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3037687846, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTextureResource", + "type_name_2": "UiTextureResource", + "qualified_name": "keen::UiTextureResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4192758167, + "hash2": 3734950824, + "struct_fields": [ + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Image", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1883756160, + "hash2": 396828358, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImageReference", + "type_name_2": "ImageReference", + "qualified_name": "keen::ImageReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 433836560, + "hash2": 3569045864, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTexture", + "type_name_2": "UiTexture", + "qualified_name": "keen::UiTexture", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2551858555, + "hash2": 2337113227, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::UiTextureResource", + "type_hash": 4192758167, + "data_offset": 0 + }, + { + "name": "image", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactionType", + "type_name_2": "FactionType", + "qualified_name": "keen::FactionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 14, + "primitive_type": "Enum", + "hash1": 1378920410, + "hash2": 556747195, + "struct_fields": [], + "enum_fields": [ + { + "name": "Environment", + "value": 0 + }, + { + "name": "HitAll", + "value": 1 + }, + { + "name": "Fogger", + "value": 2 + }, + { + "name": "Vukah", + "value": 3 + }, + { + "name": "Scavenger", + "value": 4 + }, + { + "name": "Wildlife", + "value": 5 + }, + { + "name": "WildBeast", + "value": 6 + }, + { + "name": "Player", + "value": 7 + }, + { + "name": "AutomatedPlayer", + "value": 8 + }, + { + "name": "HitOthers", + "value": 9 + }, + { + "name": "Skeleton", + "value": 10 + }, + { + "name": "PlayerAlly", + "value": 11 + }, + { + "name": "FarmAnimal", + "value": 12 + }, + { + "name": "Cyclops", + "value": 13 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::FactionType", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 2105964463, + "hash2": 913440191, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FactionMask", + "type_name_2": "FactionMask", + "qualified_name": "keen::FactionMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1546081698, + "hash2": 2685951622, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ImpactUiValue[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ImpactUiValue", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1021582228, + "hash2": 1434133281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffType", + "type_name_2": "BuffType", + "qualified_name": "keen::BuffType", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 2389162635, + "hash2": 2020638848, + "struct_fields": [ + { + "name": "buffTypeId", + "type_name": "keen::BuffTypeId", + "type_hash": 3037687846, + "data_offset": 0 + }, + { + "name": "slot", + "type_name": "keen::BuffSlotType", + "type_hash": 179040647, + "data_offset": 4 + }, + { + "name": "applyType", + "type_name": "keen::BuffApplyType", + "type_hash": 1124961933, + "data_offset": 5 + }, + { + "name": "defaultLifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "name", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 16 + }, + { + "name": "description", + "type_name": "keen::DescriptionLocaTag", + "type_hash": 1719653355, + "data_offset": 32 + }, + { + "name": "hideInUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "icon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 52 + }, + { + "name": "hideDurationInUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "despawnOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 101 + }, + { + "name": "impact", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 104 + }, + { + "name": "factionExcludeMask", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 120 + }, + { + "name": "impactValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 124 + }, + { + "name": "uiValues", + "type_name": "keen::BlobArray", + "type_hash": 1021582228, + "data_offset": 132 + }, + { + "name": "onCreate", + "type_name": "keen::OnCreateHelper", + "type_hash": 4169141507, + "data_offset": 140 + }, + { + "name": "whileApplied", + "type_name": "keen::WhileAppliedHelper", + "type_hash": 1099626524, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeSubDirectory", + "type_name_2": "BuffTypeSubDirectory", + "qualified_name": "keen::BuffTypeSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 962782294, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypDirectory", + "type_name_2": "BuffTypDirectory", + "qualified_name": "keen::BuffTypDirectory", + "referenced_type_name": "keen::BuffTypeSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3628605079, + "hash2": 1054664428, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffInstance", + "type_name_2": "ecs.BuffInstance", + "qualified_name": "keen::ecs::BuffInstance", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2311662101, + "hash2": 2481107784, + "struct_fields": [ + { + "name": "buffEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "typeId", + "type_name": "keen::BuffTypeId", + "type_hash": 3037687846, + "data_offset": 4 + }, + { + "name": "cleansed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuffInstance[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::BuffInstance", + "class_size": 48, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 428277915, + "hash2": 408862171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuffInstance[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::BuffInstance", + "class_size": 192, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 2997684012, + "hash2": 2639773870, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuffInstance[1]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::BuffInstance", + "class_size": 12, + "fields_count": 1, + "primitive_type": "StaticArray", + "hash1": 2541419266, + "hash2": 475531362, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffContainer", + "type_name_2": "ecs.BuffContainer", + "qualified_name": "keen::ecs::BuffContainer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 472, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 968087673, + "hash2": 3199996261, + "struct_fields": [ + { + "name": "foodBuffs", + "type_name": "keen::StaticArray", + "type_hash": 428277915, + "data_offset": 0 + }, + { + "name": "genericBuffs", + "type_name": "keen::StaticArray", + "type_hash": 2997684012, + "data_offset": 48 + }, + { + "name": "genericDebuffs", + "type_name": "keen::StaticArray", + "type_hash": 2997684012, + "data_offset": 240 + }, + { + "name": "restedBuff", + "type_name": "keen::StaticArray", + "type_hash": 2541419266, + "data_offset": 432 + }, + { + "name": "terrainDebuff", + "type_name": "keen::StaticArray", + "type_hash": 2541419266, + "data_offset": 444 + }, + { + "name": "hungerStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 456 + }, + { + "name": "extendedFoodBuffSlots", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 464 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageSetup", + "type_name_2": "impact.DamageSetup", + "qualified_name": "keen::impact::DamageSetup", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 4039031402, + "hash2": 2144341763, + "struct_fields": [ + { + "name": "physicalCutDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "physicalPierceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "physicalBluntDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "magicalFireDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "magicalIceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "magicalFogDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "magicalLightningDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "healing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "poisonDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "woodDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 36 + }, + { + "name": "stoneDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 40 + }, + { + "name": "metalDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 44 + }, + { + "name": "explosionDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffComponent", + "type_name_2": "ecs.BuffComponent", + "qualified_name": "keen::ecs::BuffComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 60, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 410871881, + "hash2": 353244209, + "struct_fields": [ + { + "name": "buffTypeId", + "type_name": "keen::BuffTypeId", + "type_hash": 3037687846, + "data_offset": 0 + }, + { + "name": "damageSetup", + "type_name": "keen::impact::DamageSetup", + "type_hash": 4039031402, + "data_offset": 4 + }, + { + "name": "isDamageSetupSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffNetworkData", + "type_name_2": "ecs.BuffNetworkData", + "qualified_name": "keen::ecs::BuffNetworkData", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2867318768, + "hash2": 723778160, + "struct_fields": [ + { + "name": "restDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "buffTypeId", + "type_name": "keen::BuffTypeId", + "type_hash": 3037687846, + "data_offset": 8 + }, + { + "name": "durationPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiTexture[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiTexture", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 138299164, + "hash2": 3197573732, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTexturePreload", + "type_name_2": "UiTexturePreload", + "qualified_name": "keen::UiTexturePreload", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2348033432, + "hash2": 2963900731, + "struct_fields": [ + { + "name": "textures", + "type_name": "keen::BlobArray", + "type_hash": 138299164, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BuffTypeReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BuffTypeReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2984521189, + "hash2": 2572954486, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeCollectionResource", + "type_name_2": "BuffTypeCollectionResource", + "qualified_name": "keen::BuffTypeCollectionResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 468090095, + "hash2": 1928825399, + "struct_fields": [ + { + "name": "buffs", + "type_name": "keen::BlobArray", + "type_hash": 2984521189, + "data_offset": 0 + }, + { + "name": "uiTextures", + "type_name": "keen::UiTexturePreload", + "type_hash": 2348033432, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InhibitBuildingCheck", + "type_name_2": "InhibitBuildingCheck", + "qualified_name": "keen::InhibitBuildingCheck", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4201156499, + "hash2": 3624848573, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Lenient", + "value": 1 + }, + { + "name": "Strict", + "value": 2 + } + ] + }, + { + "type_name_1": "InhibitBuildType", + "type_name_2": "InhibitBuildType", + "qualified_name": "keen::InhibitBuildType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2673960575, + "hash2": 156726595, + "struct_fields": [], + "enum_fields": [ + { + "name": "Lenient", + "value": 0 + }, + { + "name": "Strict", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::InhibitBuildType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 922961815, + "hash2": 3370372589, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InhibitBuildMask", + "type_name_2": "InhibitBuildMask", + "qualified_name": "keen::InhibitBuildMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 973185379, + "hash2": 3520809761, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Gender", + "type_name_2": "Gender", + "qualified_name": "keen::Gender", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 836747479, + "hash2": 1339649874, + "struct_fields": [], + "enum_fields": [ + { + "name": "Female", + "value": 0 + }, + { + "name": "Male", + "value": 1 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoicePack", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2356769410, + "hash2": 3181913241, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackReference", + "type_name_2": "VoicePackReference", + "qualified_name": "keen::VoicePackReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 754382790, + "hash2": 548939134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ColorPreset", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3892381639, + "hash2": 3126996631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPresetReference", + "type_name_2": "ColorPresetReference", + "qualified_name": "keen::ColorPresetReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4148057855, + "hash2": 1761190497, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPreset", + "type_name_2": "CharacterPreset", + "qualified_name": "keen::CharacterPreset", + "referenced_type_name": null, + "class_size": 404, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 1969176274, + "hash2": 602672190, + "struct_fields": [ + { + "name": "gender", + "type_name": "keen::Gender", + "type_hash": 836747479, + "data_offset": 0 + }, + { + "name": "voicePackId", + "type_name": "keen::VoicePackReference", + "type_hash": 754382790, + "data_offset": 4 + }, + { + "name": "hairGradient", + "type_name": "keen::ColorPresetReference", + "type_hash": 4148057855, + "data_offset": 20 + }, + { + "name": "beardGradient", + "type_name": "keen::ColorPresetReference", + "type_hash": 4148057855, + "data_offset": 36 + }, + { + "name": "skinColor", + "type_name": "keen::PaletteColorReference", + "type_hash": 2252018233, + "data_offset": 52 + }, + { + "name": "eyeBrowColor", + "type_name": "keen::PaletteColorReference", + "type_hash": 2252018233, + "data_offset": 68 + }, + { + "name": "eyeColor", + "type_name": "keen::PaletteColorReference", + "type_hash": 2252018233, + "data_offset": 84 + }, + { + "name": "head", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 100 + }, + { + "name": "hair", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 116 + }, + { + "name": "beard", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 132 + }, + { + "name": "neck", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 148 + }, + { + "name": "collar", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 164 + }, + { + "name": "chest", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 180 + }, + { + "name": "waist", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 196 + }, + { + "name": "crotch", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 212 + }, + { + "name": "upperArms", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 228 + }, + { + "name": "lowerArms", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 244 + }, + { + "name": "hands", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 260 + }, + { + "name": "upperLegs", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 276 + }, + { + "name": "lowerLegs", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 292 + }, + { + "name": "feet", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 308 + }, + { + "name": "armourHead", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 324 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 340 + }, + { + "name": "armourArms", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 356 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 372 + }, + { + "name": "armourFeet", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 388 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ColorGradient", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2377655278, + "hash2": 4162337414, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorGradientReference", + "type_name_2": "ColorGradientReference", + "qualified_name": "keen::ColorGradientReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3340450046, + "hash2": 752321535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPreset", + "type_name_2": "ColorPreset", + "qualified_name": "keen::ColorPreset", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1556074, + "hash2": 67472420, + "struct_fields": [ + { + "name": "colorGradient", + "type_name": "keen::ColorGradientReference", + "type_hash": 3340450046, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorPresetId", + "type_name_2": "ColorPresetId", + "qualified_name": "keen::ColorPresetId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1822443463, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderGradientMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 201749313, + "hash2": 1553243167, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPresetResource", + "type_name_2": "ColorPresetResource", + "qualified_name": "keen::ColorPresetResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1458731106, + "hash2": 2581014613, + "struct_fields": [ + { + "name": "presetId", + "type_name": "keen::ColorPresetId", + "type_hash": 1822443463, + "data_offset": 0 + }, + { + "name": "colorGradient", + "type_name": "keen::ObjectReference", + "type_hash": 201749313, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetSubDirectory", + "type_name_2": "CharacterPresetSubDirectory", + "qualified_name": "keen::CharacterPresetSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1829072467, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetDirectory", + "type_name_2": "CharacterPresetDirectory", + "qualified_name": "keen::CharacterPresetDirectory", + "referenced_type_name": "keen::CharacterPresetSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2671665617, + "hash2": 3175576473, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CharacterPresetDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3214275076, + "hash2": 3686563286, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetCollectionReference", + "type_name_2": "CharacterPresetCollectionReference", + "qualified_name": "keen::CharacterPresetCollectionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 617535799, + "hash2": 350725309, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetId", + "type_name_2": "CharacterPresetId", + "qualified_name": "keen::CharacterPresetId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1797073151, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackId", + "type_name_2": "VoicePackId", + "qualified_name": "keen::VoicePackId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1050523180, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetResource", + "type_name_2": "CharacterPresetResource", + "qualified_name": "keen::CharacterPresetResource", + "referenced_type_name": null, + "class_size": 512, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 272057626, + "hash2": 2137799539, + "struct_fields": [ + { + "name": "references", + "type_name": "keen::CharacterPreset", + "type_hash": 1969176274, + "data_offset": 0 + }, + { + "name": "presetId", + "type_name": "keen::CharacterPresetId", + "type_hash": 1797073151, + "data_offset": 404 + }, + { + "name": "gender", + "type_name": "keen::Gender", + "type_hash": 836747479, + "data_offset": 408 + }, + { + "name": "voicePackId", + "type_name": "keen::VoicePackId", + "type_hash": 1050523180, + "data_offset": 412 + }, + { + "name": "hairColorId", + "type_name": "keen::ColorPresetId", + "type_hash": 1822443463, + "data_offset": 416 + }, + { + "name": "beardColorId", + "type_name": "keen::ColorPresetId", + "type_hash": 1822443463, + "data_offset": 420 + }, + { + "name": "skinColor", + "type_name": "keen::PaletteColorId", + "type_hash": 813650825, + "data_offset": 424 + }, + { + "name": "eyeBrowColor", + "type_name": "keen::PaletteColorId", + "type_hash": 813650825, + "data_offset": 428 + }, + { + "name": "eyeColor", + "type_name": "keen::PaletteColorId", + "type_hash": 813650825, + "data_offset": 432 + }, + { + "name": "head", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 436 + }, + { + "name": "hair", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 440 + }, + { + "name": "beard", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 444 + }, + { + "name": "neck", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 448 + }, + { + "name": "collar", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 452 + }, + { + "name": "chest", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 456 + }, + { + "name": "waist", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 460 + }, + { + "name": "crotch", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 464 + }, + { + "name": "upperArms", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 468 + }, + { + "name": "lowerArms", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 472 + }, + { + "name": "hands", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 476 + }, + { + "name": "upperLegs", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 480 + }, + { + "name": "lowerLegs", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 484 + }, + { + "name": "feet", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 488 + }, + { + "name": "armourHead", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 492 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 496 + }, + { + "name": "armourArms", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 500 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 504 + }, + { + "name": "armourFeet", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 508 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombination", + "type_name_2": "ColorCombination", + "qualified_name": "keen::ColorCombination", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1980700892, + "hash2": 2116579741, + "struct_fields": [ + { + "name": "color0", + "type_name": "keen::PaletteColorReference", + "type_hash": 2252018233, + "data_offset": 0 + }, + { + "name": "color1", + "type_name": "keen::PaletteColorReference", + "type_hash": 2252018233, + "data_offset": 16 + }, + { + "name": "color2", + "type_name": "keen::PaletteColorReference", + "type_hash": 2252018233, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderBlendShapeSlot[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderBlendShapeSlot", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1601524733, + "hash2": 3457966931, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetPreviewModelInfo", + "type_name_2": "CharacterPresetPreviewModelInfo", + "qualified_name": "keen::CharacterPresetPreviewModelInfo", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 570485855, + "hash2": 1877352117, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "colorCombination", + "type_name": "keen::ColorCombination", + "type_hash": 1980700892, + "data_offset": 16 + }, + { + "name": "gradient", + "type_name": "keen::ObjectReference", + "type_hash": 201749313, + "data_offset": 64 + }, + { + "name": "blendShapes", + "type_name": "keen::BlobArray", + "type_hash": 1601524733, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CharacterPreset", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3933027511, + "hash2": 3825966155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetReference", + "type_name_2": "CharacterPresetReference", + "qualified_name": "keen::CharacterPresetReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2346815751, + "hash2": 3710939110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendShapeFlags", + "type_name_2": "BlendShapeFlags", + "qualified_name": "keen::BlendShapeFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 18, + "primitive_type": "Enum", + "hash1": 235161697, + "hash2": 3373180598, + "struct_fields": [], + "enum_fields": [ + { + "name": "Female", + "value": 0 + }, + { + "name": "Hat", + "value": 1 + }, + { + "name": "Hood", + "value": 2 + }, + { + "name": "Jaw01", + "value": 3 + }, + { + "name": "Jaw02", + "value": 4 + }, + { + "name": "Jaw03", + "value": 5 + }, + { + "name": "Jaw04", + "value": 6 + }, + { + "name": "Jaw05", + "value": 7 + }, + { + "name": "Jaw06", + "value": 8 + }, + { + "name": "Jaw07", + "value": 9 + }, + { + "name": "Jaw08", + "value": 10 + }, + { + "name": "NoArmor", + "value": 11 + }, + { + "name": "Shield", + "value": 12 + }, + { + "name": "Tight", + "value": 13 + }, + { + "name": "ArmsTight01", + "value": 14 + }, + { + "name": "LegsBeltTight", + "value": 15 + }, + { + "name": "LegsFeetTight", + "value": 16 + }, + { + "name": "LegsFeetTight01", + "value": 17 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::BlendShapeFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3957746200, + "hash2": 4052282774, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendShapeMask", + "type_name_2": "BlendShapeMask", + "qualified_name": "keen::BlendShapeMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3366010678, + "hash2": 2163357640, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CharacterPresetPreviewModelInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CharacterPresetPreviewModelInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3853139904, + "hash2": 4058053224, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetPreview", + "type_name_2": "CharacterPresetPreview", + "qualified_name": "keen::CharacterPresetPreview", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4163134894, + "hash2": 538669306, + "struct_fields": [ + { + "name": "preset", + "type_name": "keen::CharacterPresetReference", + "type_hash": 2346815751, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 3853139904, + "data_offset": 16 + }, + { + "name": "activeBlendShapes", + "type_name": "keen::BlendShapeMask", + "type_hash": 3366010678, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetObjectReference", + "type_name_2": "CharacterPresetObjectReference", + "qualified_name": "keen::CharacterPresetObjectReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 924631974, + "hash2": 3710939110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CharacterPresetResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CharacterPresetResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1283436447, + "hash2": 3812519664, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ColorPresetResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ColorPresetResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1152345623, + "hash2": 454280442, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetCollection", + "type_name_2": "CharacterPresetCollection", + "qualified_name": "keen::CharacterPresetCollection", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2590808546, + "hash2": 2879224118, + "struct_fields": [ + { + "name": "presets", + "type_name": "keen::BlobArray", + "type_hash": 1283436447, + "data_offset": 0 + }, + { + "name": "colorGradients", + "type_name": "keen::BlobArray", + "type_hash": 1152345623, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationId", + "type_name_2": "ColorCombinationId", + "qualified_name": "keen::ColorCombinationId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1225959409, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ColorCombination", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3325548159, + "hash2": 2253894164, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationReference", + "type_name_2": "ColorCombinationReference", + "qualified_name": "keen::ColorCombinationReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3144042481, + "hash2": 1508509343, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationResource", + "type_name_2": "ColorCombinationResource", + "qualified_name": "keen::ColorCombinationResource", + "referenced_type_name": "keen::StaticArray", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3797391648, + "hash2": 930501107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationSubDirectory", + "type_name_2": "ColorCombinationSubDirectory", + "qualified_name": "keen::ColorCombinationSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 26129461, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationDirectory", + "type_name_2": "ColorCombinationDirectory", + "qualified_name": "keen::ColorCombinationDirectory", + "referenced_type_name": "keen::ColorCombinationSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1647986055, + "hash2": 3737966731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ComfortQuery", + "type_name_2": "ecs.ComfortQuery", + "qualified_name": "keen::ecs::ComfortQuery", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2574100323, + "hash2": 885371591, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "nextQuery", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "nearWarmth", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "warmthEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComfortCategory", + "type_name_2": "ecs.ComfortCategory", + "qualified_name": "keen::ecs::ComfortCategory", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 17, + "primitive_type": "Enum", + "hash1": 2792309489, + "hash2": 108535716, + "struct_fields": [], + "enum_fields": [ + { + "name": "Hearth", + "value": 0 + }, + { + "name": "Bed", + "value": 1 + }, + { + "name": "Chair", + "value": 2 + }, + { + "name": "Table", + "value": 3 + }, + { + "name": "Bench", + "value": 4 + }, + { + "name": "Throne", + "value": 5 + }, + { + "name": "Bathtub", + "value": 6 + }, + { + "name": "Sink", + "value": 7 + }, + { + "name": "Toilet", + "value": 8 + }, + { + "name": "Shower", + "value": 9 + }, + { + "name": "Carpet", + "value": 10 + }, + { + "name": "Illumination", + "value": 11 + }, + { + "name": "Flame", + "value": 12 + }, + { + "name": "Trophy", + "value": 13 + }, + { + "name": "Stool", + "value": 14 + }, + { + "name": "Kitchen", + "value": 15 + }, + { + "name": "Wellness", + "value": 16 + } + ] + }, + { + "type_name_1": "ComfortProvider", + "type_name_2": "ecs.ComfortProvider", + "qualified_name": "keen::ecs::ComfortProvider", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2399190076, + "hash2": 230148807, + "struct_fields": [ + { + "name": "comfort", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "category", + "type_name": "keen::ecs::ComfortCategory", + "type_hash": 2792309489, + "data_offset": 4 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "freezingResistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkComfort", + "type_name_2": "ecs.NetworkComfort", + "qualified_name": "keen::ecs::NetworkComfort", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2268793661, + "hash2": 133628736, + "struct_fields": [ + { + "name": "hearthEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShelterQueryState", + "type_name_2": "ecs.ShelterQueryState", + "qualified_name": "keen::ecs::ShelterQueryState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2175730601, + "hash2": 1356309530, + "struct_fields": [], + "enum_fields": [ + { + "name": "Waiting", + "value": 0 + }, + { + "name": "Startup", + "value": 1 + }, + { + "name": "WaitForResults", + "value": 2 + }, + { + "name": "Finished", + "value": 3 + } + ] + }, + { + "type_name_1": "Shelter", + "type_name_2": "ecs.Shelter", + "qualified_name": "keen::ecs::Shelter", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 792884784, + "hash2": 4195861347, + "struct_fields": [ + { + "name": "checkRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "requiredShelterPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShelterRay", + "type_name_2": "ecs.ShelterRay", + "qualified_name": "keen::ecs::ShelterRay", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 16, + "primitive_type": "Enum", + "hash1": 2248011540, + "hash2": 98472090, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ray00", + "value": 0 + }, + { + "name": "Ray01", + "value": 1 + }, + { + "name": "Ray02", + "value": 2 + }, + { + "name": "Ray03", + "value": 3 + }, + { + "name": "Ray04", + "value": 4 + }, + { + "name": "Ray05", + "value": 5 + }, + { + "name": "Ray06", + "value": 6 + }, + { + "name": "Ray07", + "value": 7 + }, + { + "name": "Ray08", + "value": 8 + }, + { + "name": "Ray09", + "value": 9 + }, + { + "name": "Ray10", + "value": 10 + }, + { + "name": "Ray11", + "value": 11 + }, + { + "name": "Ray12", + "value": 12 + }, + { + "name": "Ray13", + "value": 13 + }, + { + "name": "Ray14", + "value": 14 + }, + { + "name": "Ray15", + "value": 15 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ecs::ShelterRay", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 204653465, + "hash2": 1938549823, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RayHitMask", + "type_name_2": "ecs.RayHitMask", + "qualified_name": "keen::ecs::RayHitMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3804917406, + "hash2": 3419264490, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicShelter", + "type_name_2": "ecs.DynamicShelter", + "qualified_name": "keen::ecs::DynamicShelter", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2780651169, + "hash2": 1356041584, + "struct_fields": [ + { + "name": "nextQueryTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "shelterPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "queryHits", + "type_name": "keen::ecs::RayHitMask", + "type_hash": 3804917406, + "data_offset": 8 + }, + { + "name": "queryState", + "type_name": "keen::ecs::ShelterQueryState", + "type_hash": 2175730601, + "data_offset": 10 + }, + { + "name": "sheltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "shelterStateSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Resting", + "type_name_2": "ecs.Resting", + "qualified_name": "keen::ecs::Resting", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3982705223, + "hash2": 2676226670, + "struct_fields": [ + { + "name": "waitTime0", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "waitTime1", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "waitTime2", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "waitTime3", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "waitTime4", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingWorkshopDirectory", + "type_name_2": "CraftingWorkshopDirectory", + "qualified_name": "keen::CraftingWorkshopDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3436230188, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingWorkshopSubDirectory", + "type_name_2": "CraftingWorkshopSubDirectory", + "qualified_name": "keen::CraftingWorkshopSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3554662764, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiWorkshopRenderingOptions", + "type_name_2": "UiWorkshopRenderingOptions", + "qualified_name": "keen::UiWorkshopRenderingOptions", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 677537699, + "hash2": 1512291427, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "defaultAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 16 + }, + { + "name": "defaultAnimationStateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 32 + }, + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 921543191, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeRequirementType", + "type_name_2": "KnowledgeRequirementType", + "qualified_name": "keen::KnowledgeRequirementType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 3347283501, + "hash2": 3015149043, + "struct_fields": [], + "enum_fields": [ + { + "name": "World", + "value": 0 + }, + { + "name": "Player", + "value": 1 + }, + { + "name": "PredefinedKnowledge", + "value": 2 + }, + { + "name": "Item", + "value": 3 + }, + { + "name": "Dialog", + "value": 4 + }, + { + "name": "Query", + "value": 5 + } + ] + }, + { + "type_name_1": "PredefinedKnowledgeTypes", + "type_name_2": "PredefinedKnowledgeTypes", + "qualified_name": "keen::PredefinedKnowledgeTypes", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 40762613, + "hash2": 3418576282, + "struct_fields": [], + "enum_fields": [ + { + "name": "SkillpointsSpent", + "value": 0 + }, + { + "name": "FastTravelWorld", + "value": 1 + }, + { + "name": "FastTravelHomeBase", + "value": 2 + }, + { + "name": "AnyBaseVisited", + "value": 3 + }, + { + "name": "ItemTrashed", + "value": 4 + }, + { + "name": "PerkUnlocked", + "value": 5 + }, + { + "name": "BuildingHammerUsed", + "value": 6 + } + ] + }, + { + "type_name_1": "ItemKnowledgeTrigger", + "type_name_2": "ItemKnowledgeTrigger", + "qualified_name": "keen::ItemKnowledgeTrigger", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 416233877, + "hash2": 1642064034, + "struct_fields": [], + "enum_fields": [ + { + "name": "Pickup", + "value": 0 + }, + { + "name": "Use", + "value": 1 + }, + { + "name": "Inspect", + "value": 2 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WorldKnowledgeObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1672737556, + "hash2": 2823665076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PlayerKnowledgeObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3719821963, + "hash2": 2662057897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::NpcDialogOptionBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3565713274, + "hash2": 2494597758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GameKnowledgeQuery", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 665658595, + "hash2": 1438973791, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::FbUiWorldEvent", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 667925287, + "hash2": 154925051, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeRequirementBase", + "type_name_2": "GameKnowledgeRequirementBase", + "qualified_name": "keen::GameKnowledgeRequirementBase", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2456035390, + "hash2": 2640734591, + "struct_fields": [ + { + "name": "queryType", + "type_name": "keen::KnowledgeRequirementType", + "type_hash": 3347283501, + "data_offset": 0 + }, + { + "name": "knowledge", + "type_name": "keen::ObjectReference", + "type_hash": 1672737556, + "data_offset": 4 + }, + { + "name": "playerKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 3719821963, + "data_offset": 20 + }, + { + "name": "predefinedKnowledge", + "type_name": "keen::PredefinedKnowledgeTypes", + "type_hash": 40762613, + "data_offset": 36 + }, + { + "name": "itemKnowledge", + "type_name": "keen::ItemKnowledgeTrigger", + "type_hash": 416233877, + "data_offset": 37 + }, + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 40 + }, + { + "name": "dialogOption", + "type_name": "keen::ObjectReference", + "type_hash": 3565713274, + "data_offset": 56 + }, + { + "name": "query", + "type_name": "keen::ObjectReference", + "type_hash": 665658595, + "data_offset": 72 + }, + { + "name": "triggerUiEvent", + "type_name": "keen::ObjectReference", + "type_hash": 667925287, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeRequirement", + "type_name_2": "GameKnowledgeRequirement", + "qualified_name": "keen::GameKnowledgeRequirement", + "referenced_type_name": "keen::GameKnowledgeRequirementBase", + "class_size": 104, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1698837267, + "hash2": 3988461596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopDefinition", + "type_name_2": "WorkshopDefinition", + "qualified_name": "keen::WorkshopDefinition", + "referenced_type_name": null, + "class_size": 140, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 195724970, + "hash2": 2696495909, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 16 + }, + { + "name": "isNpc", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "ignoreInJournalUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "unlockRequirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WorkshopDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2160258773, + "hash2": 2771806287, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopReference", + "type_name_2": "WorkshopReference", + "qualified_name": "keen::WorkshopReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1698049444, + "hash2": 2613955830, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropDefinition", + "type_name_2": "CraftingPropDefinition", + "qualified_name": "keen::CraftingPropDefinition", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3097591204, + "hash2": 1228587107, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopId", + "type_name_2": "WorkshopId", + "qualified_name": "keen::WorkshopId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 815159514, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopResource", + "type_name_2": "WorkshopResource", + "qualified_name": "keen::WorkshopResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3996821219, + "hash2": 3489855502, + "struct_fields": [ + { + "name": "isNpc", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "ignoreInJournalUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "workshopGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 20 + }, + { + "name": "name", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 24 + }, + { + "name": "item", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 28 + }, + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropMask", + "type_name_2": "CraftingPropMask", + "qualified_name": "keen::CraftingPropMask", + "referenced_type_name": "keen::uint64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 664590845, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropId", + "type_name_2": "CraftingPropId", + "qualified_name": "keen::CraftingPropId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1996460724, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropResource", + "type_name_2": "CraftingPropResource", + "qualified_name": "keen::CraftingPropResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2213030689, + "hash2": 2395455551, + "struct_fields": [ + { + "name": "craftingPropGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "craftingPropId", + "type_name": "keen::CraftingPropId", + "type_hash": 1996460724, + "data_offset": 16 + }, + { + "name": "craftingPropIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "name", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 24 + }, + { + "name": "item", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 28 + }, + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WorkshopResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WorkshopResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 770475338, + "hash2": 3147320048, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CraftingPropResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CraftingPropResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3196234380, + "hash2": 1470010323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopRegistryResource", + "type_name_2": "WorkshopRegistryResource", + "qualified_name": "keen::WorkshopRegistryResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2833930532, + "hash2": 1242767307, + "struct_fields": [ + { + "name": "npcs", + "type_name": "keen::BlobArray", + "type_hash": 770475338, + "data_offset": 0 + }, + { + "name": "workshops", + "type_name": "keen::BlobArray", + "type_hash": 770475338, + "data_offset": 8 + }, + { + "name": "craftingProps", + "type_name": "keen::BlobArray", + "type_hash": 3196234380, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomStringId", + "type_name_2": "CustomStringId", + "qualified_name": "keen::CustomStringId", + "referenced_type_name": "keen::HashKey64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2919298509, + "hash2": 3449401850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemySpawnEntry", + "type_name_2": "debug.EnemySpawnEntry", + "qualified_name": "keen::debug::EnemySpawnEntry", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 332261362, + "hash2": 2641378041, + "struct_fields": [ + { + "name": "displayName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "entity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 8 + }, + { + "name": "sortPriority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyDebugMenuFilterEntry", + "type_name_2": "debug.EnemyDebugMenuFilterEntry", + "qualified_name": "keen::debug::EnemyDebugMenuFilterEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3480664125, + "hash2": 2955576299, + "struct_fields": [ + { + "name": "displayName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "filter", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "debug.EnemySpawnEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::debug::EnemySpawnEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3062788829, + "hash2": 87227149, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "debug.EnemyDebugMenuFilterEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::debug::EnemyDebugMenuFilterEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1956035356, + "hash2": 3111885072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyDebugMenu", + "type_name_2": "debug.EnemyDebugMenu", + "qualified_name": "keen::debug::EnemyDebugMenu", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3373227409, + "hash2": 3337409014, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 3062788829, + "data_offset": 0 + }, + { + "name": "filters", + "type_name": "keen::BlobArray", + "type_hash": 1956035356, + "data_offset": 8 + }, + { + "name": "maxLevel", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DialogOptionId", + "type_name_2": "DialogOptionId", + "qualified_name": "keen::DialogOptionId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1362352550, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogDirectory", + "type_name_2": "NpcDialogDirectory", + "qualified_name": "keen::NpcDialogDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2314487880, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogDefinition", + "type_name_2": "NpcDialogDefinition", + "qualified_name": "keen::NpcDialogDefinition", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1957037152, + "hash2": 3947970007, + "struct_fields": [ + { + "name": "defaultSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "missingRequirementSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + }, + { + "name": "headline", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 32 + }, + { + "name": "craftingOption", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 48 + }, + { + "name": "itemUpgradeOption", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 64 + }, + { + "name": "itemRecyclingOption", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 80 + }, + { + "name": "sendBackToFlameOption", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogGroup", + "type_name_2": "NpcDialogGroup", + "qualified_name": "keen::NpcDialogGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3456434764, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOptionBase", + "type_name_2": "NpcDialogOptionBase", + "qualified_name": "keen::NpcDialogOptionBase", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1557742145, + "hash2": 1984641178, + "struct_fields": [ + { + "name": "overrideSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogInitLine", + "type_name_2": "NpcDialogInitLine", + "qualified_name": "keen::NpcDialogInitLine", + "referenced_type_name": "keen::NpcDialogOptionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1064780761, + "hash2": 588997827, + "struct_fields": [ + { + "name": "isWakeup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogFarewellLine", + "type_name_2": "NpcDialogFarewellLine", + "qualified_name": "keen::NpcDialogFarewellLine", + "referenced_type_name": "keen::NpcDialogOptionBase", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3978655863, + "hash2": 1377385789, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogTransitionLine", + "type_name_2": "NpcDialogTransitionLine", + "qualified_name": "keen::NpcDialogTransitionLine", + "referenced_type_name": "keen::NpcDialogOptionBase", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2746074224, + "hash2": 1377385789, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOption", + "type_name_2": "NpcDialogOption", + "qualified_name": "keen::NpcDialogOption", + "referenced_type_name": "keen::NpcDialogOptionBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2995232852, + "hash2": 1329687300, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogResponseBase", + "type_name_2": "NpcDialogResponseBase", + "qualified_name": "keen::NpcDialogResponseBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 702187747, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogText", + "type_name_2": "NpcDialogText", + "qualified_name": "keen::NpcDialogText", + "referenced_type_name": "keen::NpcDialogResponseBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 928630526, + "hash2": 2179055780, + "struct_fields": [ + { + "name": "body", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LocaTagId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LocaTagId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3713793341, + "hash2": 1733252374, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOptionResourceBase", + "type_name_2": "NpcDialogOptionResourceBase", + "qualified_name": "keen::NpcDialogOptionResourceBase", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1998232909, + "hash2": 3526545065, + "struct_fields": [ + { + "name": "optionId", + "type_name": "keen::DialogOptionId", + "type_hash": 1362352550, + "data_offset": 0 + }, + { + "name": "overrideSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 8 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 24 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 28 + }, + { + "name": "bodyTexts", + "type_name": "keen::BlobArray", + "type_hash": 3713793341, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogInitLineResource", + "type_name_2": "NpcDialogInitLineResource", + "qualified_name": "keen::NpcDialogInitLineResource", + "referenced_type_name": "keen::NpcDialogOptionResourceBase", + "class_size": 44, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2777769417, + "hash2": 1169584111, + "struct_fields": [ + { + "name": "isWakeup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogTransitionLineResource", + "type_name_2": "NpcDialogTransitionLineResource", + "qualified_name": "keen::NpcDialogTransitionLineResource", + "referenced_type_name": "keen::NpcDialogOptionResourceBase", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3687161828, + "hash2": 3570745617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogFarewellResource", + "type_name_2": "NpcDialogFarewellResource", + "qualified_name": "keen::NpcDialogFarewellResource", + "referenced_type_name": "keen::NpcDialogOptionResourceBase", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1848270149, + "hash2": 3570745617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOptionResource", + "type_name_2": "NpcDialogOptionResource", + "qualified_name": "keen::NpcDialogOptionResource", + "referenced_type_name": "keen::NpcDialogOptionResourceBase", + "class_size": 44, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1395711912, + "hash2": 1578264567, + "struct_fields": [ + { + "name": "optionText", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NpcDialogInitLineResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NpcDialogInitLineResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1598403822, + "hash2": 3380171694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NpcDialogTransitionLineResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NpcDialogTransitionLineResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 448957477, + "hash2": 2775561598, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NpcDialogFarewellResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NpcDialogFarewellResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1338245234, + "hash2": 1753566961, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NpcDialogOptionResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NpcDialogOptionResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1934741397, + "hash2": 3861790066, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogResource", + "type_name_2": "NpcDialogResource", + "qualified_name": "keen::NpcDialogResource", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 913956789, + "hash2": 852680221, + "struct_fields": [ + { + "name": "headline", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "crafting", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 4 + }, + { + "name": "itemUpgrade", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 8 + }, + { + "name": "itemRecycling", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 12 + }, + { + "name": "sendBackToFlame", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 16 + }, + { + "name": "defaultSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 20 + }, + { + "name": "missingRequirementSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 36 + }, + { + "name": "initLines", + "type_name": "keen::BlobArray", + "type_hash": 1598403822, + "data_offset": 52 + }, + { + "name": "transitionLines", + "type_name": "keen::BlobArray", + "type_hash": 448957477, + "data_offset": 60 + }, + { + "name": "farewellLines", + "type_name": "keen::BlobArray", + "type_hash": 1338245234, + "data_offset": 68 + }, + { + "name": "dialogOptions", + "type_name": "keen::BlobArray", + "type_hash": 1934741397, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentSlotType", + "type_name_2": "EquipmentSlotType", + "qualified_name": "keen::EquipmentSlotType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 39, + "primitive_type": "Enum", + "hash1": 723518746, + "hash2": 4138585032, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "MeleeWeapon", + "value": 1 + }, + { + "name": "Tool", + "value": 2 + }, + { + "name": "BuildTool", + "value": 3 + }, + { + "name": "MidRangeWeapon", + "value": 4 + }, + { + "name": "RangeWeapon", + "value": 5 + }, + { + "name": "Arrow", + "value": 6 + }, + { + "name": "Spell", + "value": 7 + }, + { + "name": "TerrainMaterial", + "value": 8 + }, + { + "name": "BlueprintMaterial_Default", + "value": 9 + }, + { + "name": "BlueprintMaterial_Roof", + "value": 10 + }, + { + "name": "Armour_Head", + "value": 11 + }, + { + "name": "Armour_UpperBody", + "value": 12 + }, + { + "name": "Armour_Arms", + "value": 13 + }, + { + "name": "Armour_LowerBody", + "value": 14 + }, + { + "name": "Armour_Feet", + "value": 15 + }, + { + "name": "Shield", + "value": 16 + }, + { + "name": "BodyPart_Head", + "value": 17 + }, + { + "name": "BodyPart_Hair", + "value": 18 + }, + { + "name": "BodyPart_EyeBrow", + "value": 19 + }, + { + "name": "BodyPart_Beard", + "value": 20 + }, + { + "name": "BodyPart_Neck", + "value": 21 + }, + { + "name": "BodyPart_Collar", + "value": 22 + }, + { + "name": "BodyPart_Chest", + "value": 23 + }, + { + "name": "BodyPart_Waist", + "value": 24 + }, + { + "name": "BodyPart_Crotch", + "value": 25 + }, + { + "name": "BodyPart_UpperArms", + "value": 26 + }, + { + "name": "BodyPart_LowerArms", + "value": 27 + }, + { + "name": "BodyPart_Hands", + "value": 28 + }, + { + "name": "BodyPart_UpperLegs", + "value": 29 + }, + { + "name": "BodyPart_LowerLegs", + "value": 30 + }, + { + "name": "BodyPart_Feet", + "value": 31 + }, + { + "name": "HookShot", + "value": 32 + }, + { + "name": "Glider", + "value": 33 + }, + { + "name": "ClimbWall", + "value": 34 + }, + { + "name": "Consumable", + "value": 35 + }, + { + "name": "Armour_Accessory", + "value": 36 + }, + { + "name": "Armour_Ring", + "value": 37 + }, + { + "name": "Backpack", + "value": 38 + } + ] + }, + { + "type_name_1": "EquipmentSlot", + "type_name_2": "EquipmentSlot", + "qualified_name": "keen::EquipmentSlot", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 43, + "primitive_type": "Enum", + "hash1": 2267233658, + "hash2": 2082766864, + "struct_fields": [], + "enum_fields": [ + { + "name": "Vanity_Head", + "value": 0 + }, + { + "name": "Vanity_UpperBody", + "value": 1 + }, + { + "name": "Vanity_Arms", + "value": 2 + }, + { + "name": "Vanity_LowerBody", + "value": 3 + }, + { + "name": "Vanity_Feet", + "value": 4 + }, + { + "name": "Armour_Head", + "value": 5 + }, + { + "name": "Armour_UpperBody", + "value": 6 + }, + { + "name": "Armour_Arms", + "value": 7 + }, + { + "name": "Armour_LowerBody", + "value": 8 + }, + { + "name": "Armour_Feet", + "value": 9 + }, + { + "name": "BodyPart_Head", + "value": 10 + }, + { + "name": "BodyPart_Hair", + "value": 11 + }, + { + "name": "BodyPart_EyeBrow", + "value": 12 + }, + { + "name": "BodyPart_Beard", + "value": 13 + }, + { + "name": "BodyPart_Neck", + "value": 14 + }, + { + "name": "BodyPart_Collar", + "value": 15 + }, + { + "name": "BodyPart_Chest", + "value": 16 + }, + { + "name": "BodyPart_Waist", + "value": 17 + }, + { + "name": "BodyPart_Crotch", + "value": 18 + }, + { + "name": "BodyPart_UpperArms", + "value": 19 + }, + { + "name": "BodyPart_LowerArms", + "value": 20 + }, + { + "name": "BodyPart_Hands", + "value": 21 + }, + { + "name": "BodyPart_UpperLegs", + "value": 22 + }, + { + "name": "BodyPart_LowerLegs", + "value": 23 + }, + { + "name": "BodyPart_Feet", + "value": 24 + }, + { + "name": "Ring0", + "value": 25 + }, + { + "name": "Ring1", + "value": 26 + }, + { + "name": "Accessory0", + "value": 27 + }, + { + "name": "Accessory1", + "value": 28 + }, + { + "name": "RangedWeapon", + "value": 29 + }, + { + "name": "Shield", + "value": 30 + }, + { + "name": "Arrow", + "value": 31 + }, + { + "name": "Spell", + "value": 32 + }, + { + "name": "TerrainMaterial", + "value": 33 + }, + { + "name": "BlueprintMaterial_Default", + "value": 34 + }, + { + "name": "BlueprintMaterial_Roof", + "value": 35 + }, + { + "name": "HookShot", + "value": 36 + }, + { + "name": "Glider", + "value": 37 + }, + { + "name": "ClimbWall", + "value": 38 + }, + { + "name": "Backpack", + "value": 39 + }, + { + "name": "Count", + "value": 40 + }, + { + "name": "Invalid", + "value": 40 + }, + { + "name": "MainHand", + "value": 41 + } + ] + }, + { + "type_name_1": "VisualEquippedItems", + "type_name_2": "VisualEquippedItems", + "qualified_name": "keen::VisualEquippedItems", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 25, + "primitive_type": "Enum", + "hash1": 1133498593, + "hash2": 3916064035, + "struct_fields": [], + "enum_fields": [ + { + "name": "BodyPart_Head", + "value": 0 + }, + { + "name": "BodyPart_Hair", + "value": 1 + }, + { + "name": "BodyPart_EyeBrow", + "value": 2 + }, + { + "name": "BodyPart_Beard", + "value": 3 + }, + { + "name": "BodyPart_Neck", + "value": 4 + }, + { + "name": "BodyPart_Collar", + "value": 5 + }, + { + "name": "BodyPart_Chest", + "value": 6 + }, + { + "name": "BodyPart_Waist", + "value": 7 + }, + { + "name": "BodyPart_Crotch", + "value": 8 + }, + { + "name": "BodyPart_UpperArms", + "value": 9 + }, + { + "name": "BodyPart_LowerArms", + "value": 10 + }, + { + "name": "BodyPart_Hands", + "value": 11 + }, + { + "name": "BodyPart_UpperLegs", + "value": 12 + }, + { + "name": "BodyPart_LowerLegs", + "value": 13 + }, + { + "name": "BodyPart_Feet", + "value": 14 + }, + { + "name": "Armour_Head", + "value": 15 + }, + { + "name": "Armour_UpperBody", + "value": 16 + }, + { + "name": "Armour_Arms", + "value": 17 + }, + { + "name": "Armour_LowerBody", + "value": 18 + }, + { + "name": "Armour_Feet", + "value": 19 + }, + { + "name": "Ring0", + "value": 20 + }, + { + "name": "Ring1", + "value": 21 + }, + { + "name": "Shield", + "value": 22 + }, + { + "name": "MainHand", + "value": 23 + }, + { + "name": "Count", + "value": 24 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::VisualEquippedItems", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1629449480, + "hash2": 2638630229, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisualEquipmentMask", + "type_name_2": "VisualEquipmentMask", + "qualified_name": "keen::VisualEquipmentMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 185284386, + "hash2": 2287540229, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactEquippedItems", + "type_name_2": "ImpactEquippedItems", + "qualified_name": "keen::ImpactEquippedItems", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 12, + "primitive_type": "Enum", + "hash1": 471283571, + "hash2": 693286159, + "struct_fields": [], + "enum_fields": [ + { + "name": "MainHand", + "value": 0 + }, + { + "name": "Shield", + "value": 1 + }, + { + "name": "Armour_Head", + "value": 2 + }, + { + "name": "Armour_UpperBody", + "value": 3 + }, + { + "name": "Armour_Arms", + "value": 4 + }, + { + "name": "Armour_LowerBody", + "value": 5 + }, + { + "name": "Armour_Feet", + "value": 6 + }, + { + "name": "Ring0", + "value": 7 + }, + { + "name": "Ring1", + "value": 8 + }, + { + "name": "Accessory0", + "value": 9 + }, + { + "name": "Accessory1", + "value": 10 + }, + { + "name": "Count", + "value": 11 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::ImpactEquippedItems", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1813088962, + "hash2": 3859248185, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactEquipmentMask", + "type_name_2": "ImpactEquipmentMask", + "qualified_name": "keen::ImpactEquipmentMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 222211324, + "hash2": 1801483409, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkId", + "type_name_2": "PerkId", + "qualified_name": "keen::PerkId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3171794423, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 20, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3883030510, + "hash2": 3570523829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PerkId[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::PerkId", + "class_size": 20, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3270583016, + "hash2": 1826290638, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemImpact", + "type_name_2": "ecs.ItemImpact", + "qualified_name": "keen::ecs::ItemImpact", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3898188818, + "hash2": 4157590172, + "struct_fields": [ + { + "name": "itemInstance", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "perkEntities", + "type_name": "keen::StaticArray", + "type_hash": 3883030510, + "data_offset": 24 + }, + { + "name": "perkIds", + "type_name": "keen::StaticArray", + "type_hash": 3270583016, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemVisual", + "type_name_2": "ecs.ItemVisual", + "qualified_name": "keen::ecs::ItemVisual", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2555583228, + "hash2": 2066677912, + "struct_fields": [ + { + "name": "itemInstance", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentSlotData", + "type_name_2": "ecs.EquipmentSlotData", + "qualified_name": "keen::ecs::EquipmentSlotData", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 9938445, + "hash2": 3543895534, + "struct_fields": [ + { + "name": "vanityHead", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 0 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 8 + }, + { + "name": "vanityArms", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 16 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 24 + }, + { + "name": "vanityFeet", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 32 + }, + { + "name": "armourHead", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 40 + }, + { + "name": "armourUpperBody", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 48 + }, + { + "name": "armourArms", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 56 + }, + { + "name": "armourLowerBody", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 64 + }, + { + "name": "armourFeet", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 72 + }, + { + "name": "bodyPartHead", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 80 + }, + { + "name": "bodyPartHair", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 88 + }, + { + "name": "bodyPartEyeBrow", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 96 + }, + { + "name": "bodyPartBeard", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 104 + }, + { + "name": "bodyPartNeck", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 112 + }, + { + "name": "bodyPartCollar", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 120 + }, + { + "name": "bodyPartChest", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 128 + }, + { + "name": "bodyPartWaist", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 136 + }, + { + "name": "bodyPartCrotch", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 144 + }, + { + "name": "bodyPartUpperArms", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 152 + }, + { + "name": "bodyPartLowerArms", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 160 + }, + { + "name": "bodyPartHands", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 168 + }, + { + "name": "bodyPartUpperLegs", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 176 + }, + { + "name": "bodyPartLowerLegs", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 184 + }, + { + "name": "bodyPartFeet", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 192 + }, + { + "name": "ring0", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 200 + }, + { + "name": "ring1", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 208 + }, + { + "name": "accessory0", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 216 + }, + { + "name": "accessory1", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 224 + }, + { + "name": "rangedWeapon", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 232 + }, + { + "name": "shield", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 240 + }, + { + "name": "arrow", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 248 + }, + { + "name": "spell", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 256 + }, + { + "name": "terrainMaterial", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 264 + }, + { + "name": "blueprintMaterialDefault", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 272 + }, + { + "name": "blueprintMaterialRoof", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 280 + }, + { + "name": "hookShot", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 288 + }, + { + "name": "glider", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 296 + }, + { + "name": "climbWall", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 304 + }, + { + "name": "backpack", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 312 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CspItemIsBroken", + "type_name_2": "ecs.CspItemIsBroken", + "qualified_name": "keen::ecs::CspItemIsBroken", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 18, + "primitive_type": "Enum", + "hash1": 3990358509, + "hash2": 2982189098, + "struct_fields": [], + "enum_fields": [ + { + "name": "ActionbarSlot0", + "value": 0 + }, + { + "name": "ActionbarSlot1", + "value": 1 + }, + { + "name": "ActionbarSlot2", + "value": 2 + }, + { + "name": "ActionbarSlot3", + "value": 3 + }, + { + "name": "ActionbarSlot4", + "value": 4 + }, + { + "name": "ActionbarSlot5", + "value": 5 + }, + { + "name": "ActionbarSlot6", + "value": 6 + }, + { + "name": "ActionbarSlot7", + "value": 7 + }, + { + "name": "ActionbarSlot8", + "value": 8 + }, + { + "name": "ActionbarSlot9", + "value": 9 + }, + { + "name": "ActionbarSlot10", + "value": 10 + }, + { + "name": "ActionbarSlot11", + "value": 11 + }, + { + "name": "ActionbarSlot12", + "value": 12 + }, + { + "name": "ActionbarSlot13", + "value": 13 + }, + { + "name": "ActionbarSlot14", + "value": 14 + }, + { + "name": "ActionbarSlot15", + "value": 15 + }, + { + "name": "ShieldItem", + "value": 16 + }, + { + "name": "RangedWeapon", + "value": 17 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::ecs::CspItemIsBroken", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1677393090, + "hash2": 3846462753, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CspItemIsBrokenMask", + "type_name_2": "ecs.CspItemIsBrokenMask", + "qualified_name": "keen::ecs::CspItemIsBrokenMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3747188753, + "hash2": 2466480257, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionbarSlotSelection", + "type_name_2": "ActionbarSlotSelection", + "qualified_name": "keen::ActionbarSlotSelection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 612424829, + "hash2": 2312760663, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3916438653, + "hash2": 348485506, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlotSelection", + "type_name_2": "ecs.SlotSelection", + "qualified_name": "keen::ecs::SlotSelection", + "referenced_type_name": "keen::ecs::Component", + "class_size": 360, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 884751919, + "hash2": 3824596411, + "struct_fields": [ + { + "name": "equipment", + "type_name": "keen::ecs::EquipmentSlotData", + "type_hash": 9938445, + "data_offset": 0 + }, + { + "name": "actionbarEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 3916438653, + "data_offset": 320 + }, + { + "name": "actionItem", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 328 + }, + { + "name": "disabledEquipment", + "type_name": "keen::ImpactEquipmentMask", + "type_hash": 222211324, + "data_offset": 348 + }, + { + "name": "actionbarSlotSelection", + "type_name": "keen::ActionbarSlotSelection", + "type_hash": 612424829, + "data_offset": 352 + }, + { + "name": "cspItemIsBrokenHelper", + "type_name": "keen::ecs::CspItemIsBrokenMask", + "type_hash": 3747188753, + "data_offset": 356 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FinishedActionbarInit", + "type_name_2": "ecs.FinishedActionbarInit", + "qualified_name": "keen::ecs::FinishedActionbarInit", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1151239086, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PackedEquipmentSlotEntityIds", + "type_name_2": "ecs.PackedEquipmentSlotEntityIds", + "qualified_name": "keen::ecs::PackedEquipmentSlotEntityIds", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 4257251904, + "hash2": 3714607696, + "struct_fields": [ + { + "name": "vanityHead", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "vanityArms", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "vanityFeet", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "armourHead", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "armourArms", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 28 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 32 + }, + { + "name": "armourFeet", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 36 + }, + { + "name": "bodyPartHead", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 40 + }, + { + "name": "bodyPartHair", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 44 + }, + { + "name": "bodyPartEyeBrow", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 48 + }, + { + "name": "bodyPartBeard", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 52 + }, + { + "name": "bodyPartNeck", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 56 + }, + { + "name": "bodyPartCollar", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 60 + }, + { + "name": "bodyPartChest", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 64 + }, + { + "name": "bodyPartWaist", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 68 + }, + { + "name": "bodyPartCrotch", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 72 + }, + { + "name": "bodyPartUpperArms", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 76 + }, + { + "name": "bodyPartLowerArms", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 80 + }, + { + "name": "bodyPartHands", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 84 + }, + { + "name": "bodyPartUpperLegs", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 88 + }, + { + "name": "bodyPartLowerLegs", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 92 + }, + { + "name": "bodyPartFeet", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 96 + }, + { + "name": "ring0", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 100 + }, + { + "name": "ring1", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 104 + }, + { + "name": "accessory0", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 108 + }, + { + "name": "accessory1", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 112 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 116 + }, + { + "name": "shield", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 120 + }, + { + "name": "arrow", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 124 + }, + { + "name": "spell", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 128 + }, + { + "name": "terrainMaterial", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 132 + }, + { + "name": "blueprintMaterialDefault", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 136 + }, + { + "name": "blueprintMaterialRoof", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 140 + }, + { + "name": "hookShot", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 144 + }, + { + "name": "glider", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 148 + }, + { + "name": "climbWall", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 152 + }, + { + "name": "backpack", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedEquipmentSlotIndices", + "type_name_2": "ecs.PackedEquipmentSlotIndices", + "qualified_name": "keen::ecs::PackedEquipmentSlotIndices", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 1292128182, + "hash2": 2118612198, + "struct_fields": [ + { + "name": "vanityHead", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 0 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 1 + }, + { + "name": "vanityArms", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 2 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 3 + }, + { + "name": "vanityFeet", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 4 + }, + { + "name": "armourHead", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 5 + }, + { + "name": "armourUpperBody", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 6 + }, + { + "name": "armourArms", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 7 + }, + { + "name": "armourLowerBody", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 8 + }, + { + "name": "armourFeet", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 9 + }, + { + "name": "bodyPartHead", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 10 + }, + { + "name": "bodyPartHair", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 11 + }, + { + "name": "bodyPartEyeBrow", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 12 + }, + { + "name": "bodyPartBeard", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 13 + }, + { + "name": "bodyPartNeck", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 14 + }, + { + "name": "bodyPartCollar", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 15 + }, + { + "name": "bodyPartChest", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 16 + }, + { + "name": "bodyPartWaist", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 17 + }, + { + "name": "bodyPartCrotch", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 18 + }, + { + "name": "bodyPartUpperArms", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 19 + }, + { + "name": "bodyPartLowerArms", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 20 + }, + { + "name": "bodyPartHands", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 21 + }, + { + "name": "bodyPartUpperLegs", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 22 + }, + { + "name": "bodyPartLowerLegs", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 23 + }, + { + "name": "bodyPartFeet", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 24 + }, + { + "name": "ring0", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 25 + }, + { + "name": "ring1", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 26 + }, + { + "name": "accessory0", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 27 + }, + { + "name": "accessory1", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 28 + }, + { + "name": "rangedWeapon", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 29 + }, + { + "name": "shield", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 30 + }, + { + "name": "arrow", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 31 + }, + { + "name": "spell", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 32 + }, + { + "name": "terrainMaterial", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 33 + }, + { + "name": "blueprintMaterialDefault", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 34 + }, + { + "name": "blueprintMaterialRoof", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 35 + }, + { + "name": "hookShot", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 36 + }, + { + "name": "glider", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 37 + }, + { + "name": "climbWall", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 38 + }, + { + "name": "backpack", + "type_name": "keen::InventorySlotIndex", + "type_hash": 3219081530, + "data_offset": 39 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedSlotSelection", + "type_name_2": "ecs.PackedSlotSelection", + "qualified_name": "keen::ecs::PackedSlotSelection", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2371442299, + "hash2": 2497357568, + "struct_fields": [ + { + "name": "equipmentEntityIds", + "type_name": "keen::ecs::PackedEquipmentSlotEntityIds", + "type_hash": 4257251904, + "data_offset": 0 + }, + { + "name": "equipmentIndices", + "type_name": "keen::ecs::PackedEquipmentSlotIndices", + "type_hash": 1292128182, + "data_offset": 160 + }, + { + "name": "actionbarEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 3916438653, + "data_offset": 200 + }, + { + "name": "actionItem", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 208 + }, + { + "name": "disabledEquipment", + "type_name": "keen::ImpactEquipmentMask", + "type_hash": 222211324, + "data_offset": 228 + }, + { + "name": "actionbarSlotSelection", + "type_name": "keen::ActionbarSlotSelection", + "type_hash": 612424829, + "data_offset": 232 + }, + { + "name": "cspItemIsBrokenHelper", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 236 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint16[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint16", + "class_size": 10, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3067990966, + "hash2": 3913114387, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CspHackInventoryStockSelection", + "type_name_2": "ecs.CspHackInventoryStockSelection", + "qualified_name": "keen::ecs::CspHackInventoryStockSelection", + "referenced_type_name": "keen::ecs::Component", + "class_size": 10, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1576844566, + "hash2": 2965107473, + "struct_fields": [ + { + "name": "versions", + "type_name": "keen::StaticArray", + "type_hash": 3067990966, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ItemImpact[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::ItemImpact", + "class_size": 704, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 2584553136, + "hash2": 1602929768, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ItemVisual[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::ItemVisual", + "class_size": 576, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 680124734, + "hash2": 1375521879, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Equipment", + "type_name_2": "ecs.Equipment", + "qualified_name": "keen::ecs::Equipment", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1320, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1664875465, + "hash2": 605324854, + "struct_fields": [ + { + "name": "visualMask", + "type_name": "keen::VisualEquipmentMask", + "type_hash": 185284386, + "data_offset": 0 + }, + { + "name": "impactMask", + "type_name": "keen::ImpactEquipmentMask", + "type_hash": 222211324, + "data_offset": 4 + }, + { + "name": "equipmentImpacts", + "type_name": "keen::StaticArray", + "type_hash": 2584553136, + "data_offset": 8 + }, + { + "name": "equipmentVisuals", + "type_name": "keen::StaticArray", + "type_hash": 680124734, + "data_offset": 712 + }, + { + "name": "blockMaterial", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 1288 + }, + { + "name": "bodyMaterial", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 1304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint32[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint32", + "class_size": 96, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 4039406613, + "hash2": 931494654, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray,24>", + "type_name_2": "Reference[24]", + "qualified_name": "keen::StaticArray,24>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 384, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 3196613114, + "hash2": 533763617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ColorCombinationResource[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ColorCombinationResource", + "class_size": 288, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 4013304402, + "hash2": 2482241197, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderEquipment", + "type_name_2": "ecs.RenderEquipment", + "qualified_name": "keen::ecs::RenderEquipment", + "referenced_type_name": "keen::ecs::Component", + "class_size": 780, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1103444725, + "hash2": 1339272976, + "struct_fields": [ + { + "name": "modelHandles", + "type_name": "keen::StaticArray", + "type_hash": 4039406613, + "data_offset": 0 + }, + { + "name": "lastModels", + "type_name": "keen::StaticArray,24>", + "type_hash": 3196613114, + "data_offset": 96 + }, + { + "name": "colors", + "type_name": "keen::StaticArray", + "type_hash": 4013304402, + "data_offset": 480 + }, + { + "name": "hideMask", + "type_name": "keen::VisualEquipmentMask", + "type_hash": 185284386, + "data_offset": 768 + }, + { + "name": "foleyMaterialId", + "type_name": "keen::MaterialFeedbackId", + "type_hash": 2330768397, + "data_offset": 772 + }, + { + "name": "blendShapeMask", + "type_name": "keen::BlendShapeMask", + "type_hash": 3366010678, + "data_offset": 776 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryAnimationSet", + "type_name_2": "PrimaryAnimationSet", + "qualified_name": "keen::PrimaryAnimationSet", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 412986446, + "hash2": 4003191377, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "SingleAndShield", + "value": 1 + }, + { + "name": "SingleNoShield", + "value": 2 + }, + { + "name": "DualWield", + "value": 3 + }, + { + "name": "TwoHanded", + "value": 4 + }, + { + "name": "Bow", + "value": 5 + }, + { + "name": "Staff", + "value": 6 + }, + { + "name": "Wand", + "value": 7 + } + ] + }, + { + "type_name_1": "SecondaryAnimationSet", + "type_name_2": "SecondaryAnimationSet", + "qualified_name": "keen::SecondaryAnimationSet", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2488496510, + "hash2": 3931434858, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Bow", + "value": 1 + }, + { + "name": "StaffCast", + "value": 2 + }, + { + "name": "WandCast", + "value": 3 + } + ] + }, + { + "type_name_1": "EquipmentAnimationSets", + "type_name_2": "ecs.EquipmentAnimationSets", + "qualified_name": "keen::ecs::EquipmentAnimationSets", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2209110492, + "hash2": 1717995459, + "struct_fields": [ + { + "name": "primaryAnimationSet", + "type_name": "keen::PrimaryAnimationSet", + "type_hash": 412986446, + "data_offset": 0 + }, + { + "name": "secondaryAnimationSet", + "type_name": "keen::SecondaryAnimationSet", + "type_hash": 2488496510, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderSettingsGpuPresets", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 329367664, + "hash2": 3620666437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Scene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1245075483, + "hash2": 2114971763, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3160244061, + "hash2": 1537444523, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::KnowledgeQueryDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1237951914, + "hash2": 3653379382, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GameKnowledgeQueryTriggerResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2327852349, + "hash2": 2957140039, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DefaultLootLabelCollectionRootDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 136541545, + "hash2": 2093877364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RecipeList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4041607215, + "hash2": 2456542027, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BalancingTable", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 641663926, + "hash2": 2953379755, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CraftingWorkshopDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3649618557, + "hash2": 3342439284, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BuffTypDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2585585394, + "hash2": 231858382, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MidiSongDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3907392854, + "hash2": 3612254114, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ImpactDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3372789228, + "hash2": 1178051005, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AttributeContainer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1511538368, + "hash2": 64745103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ActorActionContainerRoot", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 774036243, + "hash2": 511781147, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::TerraformingEfficiencyRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3909485047, + "hash2": 3904585040, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelBlueprintRegistryFolder", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3065377441, + "hash2": 2438028727, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelBlueprintItemRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4060630096, + "hash2": 3291300422, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelBlueprintMaterialPoolRegistryFolder", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 785933228, + "hash2": 2873920145, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy::EnemyArsenalDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 42009718, + "hash2": 2295060517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PerkDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2263608286, + "hash2": 1413942434, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::IngameTimeConfig", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3498744567, + "hash2": 289663957, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SkillTreeDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1680274347, + "hash2": 1433986423, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::TemplateDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3044448863, + "hash2": 1917232863, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::FbUiBundle", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3255214919, + "hash2": 885614356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::JournalDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2857881923, + "hash2": 2653937998, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MapMarkerRegistryTool", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 579221420, + "hash2": 1011360018, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MaterialFeedbackDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2844182220, + "hash2": 1632007779, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::LocaTagCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3052714558, + "hash2": 4003236140, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoicePackDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 402264943, + "hash2": 2213426615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AmbientCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2081749367, + "hash2": 4070238991, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::FbUiMap", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 270437431, + "hash2": 1209835819, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::UiFont", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3946183968, + "hash2": 3913070313, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderSystemResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3413885118, + "hash2": 2133509642, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GpcResourceList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2726994943, + "hash2": 3076446586, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VolumetricFogInitializationMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2824321436, + "hash2": 11908650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelMaterialList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1638742808, + "hash2": 1843705419, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WorldMaterial2", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3107678598, + "hash2": 1502128492, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VolumetricFog2ResourceData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3065535295, + "hash2": 3204283394, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VolumetricFogGridRenderParameters", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2868015171, + "hash2": 3173311161, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::debug::EnemyDebugMenu", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3844231542, + "hash2": 1934863820, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CharacterPresetCollectionReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3619469034, + "hash2": 1167314445, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::TwitchDropCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1624651607, + "hash2": 4123709464, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CommerceProductDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 873243394, + "hash2": 3590320617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AchievementDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1876300171, + "hash2": 758111772, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PreloadVfxList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3349150032, + "hash2": 4101336652, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ColorPaletteCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1197953575, + "hash2": 2133317856, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WeatherSystemConfiguration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1101209998, + "hash2": 855008252, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Game38RootObjects", + "type_name_2": "Game38RootObjects", + "qualified_name": "keen::Game38RootObjects", + "referenced_type_name": null, + "class_size": 1040, + "fields_count": 65, + "primitive_type": "Struct", + "hash1": 2298344897, + "hash2": 623003903, + "struct_fields": [ + { + "name": "renderSettingsGpuPresets", + "type_name": "keen::ObjectReference", + "type_hash": 329367664, + "data_offset": 0 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 16 + }, + { + "name": "itemDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 3160244061, + "data_offset": 32 + }, + { + "name": "gameKnowledgeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 2616529598, + "data_offset": 48 + }, + { + "name": "gameKnowledgeQueryResourceDb", + "type_name": "keen::ObjectReference", + "type_hash": 1237951914, + "data_offset": 64 + }, + { + "name": "gameKnowledgeQueryTriggerResource", + "type_name": "keen::ObjectReference", + "type_hash": 2327852349, + "data_offset": 80 + }, + { + "name": "lootLabelCollection", + "type_name": "keen::ObjectReference", + "type_hash": 136541545, + "data_offset": 96 + }, + { + "name": "recipeRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 4041607215, + "data_offset": 112 + }, + { + "name": "balancingTable", + "type_name": "keen::ObjectReference", + "type_hash": 641663926, + "data_offset": 128 + }, + { + "name": "workshopRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3649618557, + "data_offset": 144 + }, + { + "name": "buffTypeCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2585585394, + "data_offset": 160 + }, + { + "name": "midiSongCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3907392854, + "data_offset": 176 + }, + { + "name": "impactRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3372789228, + "data_offset": 192 + }, + { + "name": "attributeContainer", + "type_name": "keen::ObjectReference", + "type_hash": 1511538368, + "data_offset": 208 + }, + { + "name": "actorSequenceCollection", + "type_name": "keen::ObjectReference", + "type_hash": 774036243, + "data_offset": 224 + }, + { + "name": "terraformingEfficiencyRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3909485047, + "data_offset": 240 + }, + { + "name": "voxelBlueprintConfig", + "type_name": "keen::ObjectReference", + "type_hash": 3065377441, + "data_offset": 256 + }, + { + "name": "voxelBlueprintItemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 4060630096, + "data_offset": 272 + }, + { + "name": "voxelBlueprintMaterialPoolRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 785933228, + "data_offset": 288 + }, + { + "name": "enemyArsenalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 42009718, + "data_offset": 304 + }, + { + "name": "perkCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2263608286, + "data_offset": 320 + }, + { + "name": "ingameTimeConfig", + "type_name": "keen::ObjectReference", + "type_hash": 3498744567, + "data_offset": 336 + }, + { + "name": "skillTree", + "type_name": "keen::ObjectReference", + "type_hash": 1680274347, + "data_offset": 352 + }, + { + "name": "templateCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3044448863, + "data_offset": 368 + }, + { + "name": "fbUiBundle", + "type_name": "keen::ObjectReference", + "type_hash": 3255214919, + "data_offset": 384 + }, + { + "name": "journalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 2857881923, + "data_offset": 400 + }, + { + "name": "mapMarkerRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 579221420, + "data_offset": 416 + }, + { + "name": "materialFeedbackCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2844182220, + "data_offset": 432 + }, + { + "name": "locaTagCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3052714558, + "data_offset": 448 + }, + { + "name": "voicePacks", + "type_name": "keen::ObjectReference", + "type_hash": 402264943, + "data_offset": 464 + }, + { + "name": "ambientCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2081749367, + "data_offset": 480 + }, + { + "name": "fbUiMapResource", + "type_name": "keen::ObjectReference", + "type_hash": 270437431, + "data_offset": 496 + }, + { + "name": "uiFontDefault", + "type_name": "keen::ObjectReference", + "type_hash": 3946183968, + "data_offset": 512 + }, + { + "name": "uiFontFancy", + "type_name": "keen::ObjectReference", + "type_hash": 3946183968, + "data_offset": 528 + }, + { + "name": "grassVfx", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 544 + }, + { + "name": "buildingBlockDamageDecalVfx", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 560 + }, + { + "name": "blueprintHoverHighlightVfx", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 576 + }, + { + "name": "maleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 592 + }, + { + "name": "femaleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 608 + }, + { + "name": "staminaDrainNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 1156900411, + "data_offset": 624 + }, + { + "name": "exhaustedNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 1156900411, + "data_offset": 640 + }, + { + "name": "pickupLootNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 1156900411, + "data_offset": 656 + }, + { + "name": "itemBrokenNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 1156900411, + "data_offset": 672 + }, + { + "name": "renderSystem", + "type_name": "keen::ObjectReference", + "type_hash": 3413885118, + "data_offset": 688 + }, + { + "name": "gpcResourceList", + "type_name": "keen::ObjectReference", + "type_hash": 2726994943, + "data_offset": 704 + }, + { + "name": "analyticFog", + "type_name": "keen::ObjectReference", + "type_hash": 2824321436, + "data_offset": 720 + }, + { + "name": "buildingMaterialBlending", + "type_name": "keen::ObjectReference", + "type_hash": 1638742808, + "data_offset": 736 + }, + { + "name": "worldMaterial2", + "type_name": "keen::ObjectReference", + "type_hash": 3107678598, + "data_offset": 752 + }, + { + "name": "volumetricFog2", + "type_name": "keen::ObjectReference", + "type_hash": 3065535295, + "data_offset": 768 + }, + { + "name": "volumetricFogGridParameters", + "type_name": "keen::ObjectReference", + "type_hash": 2868015171, + "data_offset": 784 + }, + { + "name": "pregameMusic", + "type_name": "keen::ObjectReference", + "type_hash": 1882157339, + "data_offset": 800 + }, + { + "name": "loreIntroMusic", + "type_name": "keen::ObjectReference", + "type_hash": 1882157339, + "data_offset": 816 + }, + { + "name": "spellChargeFullSfx", + "type_name": "keen::ObjectReference", + "type_hash": 1882157339, + "data_offset": 832 + }, + { + "name": "enemyDebugMenu", + "type_name": "keen::ObjectReference", + "type_hash": 3844231542, + "data_offset": 848 + }, + { + "name": "characterPresetCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3619469034, + "data_offset": 864 + }, + { + "name": "twitchDropCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1624651607, + "data_offset": 880 + }, + { + "name": "characterScenePlayer", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 896 + }, + { + "name": "characterScenePlayerPortrait", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 912 + }, + { + "name": "characterScenePlayerPregame", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 928 + }, + { + "name": "characterSceneNpc", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 944 + }, + { + "name": "commerceProducts", + "type_name": "keen::ObjectReference", + "type_hash": 873243394, + "data_offset": 960 + }, + { + "name": "achievements", + "type_name": "keen::ObjectReference", + "type_hash": 1876300171, + "data_offset": 976 + }, + { + "name": "preloadVfxList", + "type_name": "keen::ObjectReference", + "type_hash": 3349150032, + "data_offset": 992 + }, + { + "name": "colorPaletteCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1197953575, + "data_offset": 1008 + }, + { + "name": "weatherSystemResource", + "type_name": "keen::ObjectReference", + "type_hash": 1101209998, + "data_offset": 1024 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3129538903, + "hash2": 3201792469, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemKnowledgeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 137400928, + "hash2": 4028709093, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GameKnowledgeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 937010357, + "hash2": 1080666696, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GameKnowledgeQueryResourceDb", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2309991625, + "hash2": 2845636579, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1218481157, + "hash2": 3595735669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::JournalRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 814946803, + "hash2": 1480050521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DevItemRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1093908006, + "hash2": 3060997989, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RecipeRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1653583378, + "hash2": 2824486354, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WorkshopRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1255901519, + "hash2": 2507716713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::NpcCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 404956594, + "hash2": 1300005993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DefaultLootLabelCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2512150380, + "hash2": 1790810107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::LootableItemsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3258483605, + "hash2": 2914541920, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::LootDistributionTreeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2034369073, + "hash2": 1565373002, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BuffTypeCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 822220842, + "hash2": 1916888090, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MidiSongCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3534867905, + "hash2": 2275174079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ImpactRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 60803450, + "hash2": 1046258943, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AttributeContainerResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1486219560, + "hash2": 2665555535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ActorSequenceCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1799615351, + "hash2": 2096540938, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GuidRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2304631439, + "hash2": 1496744553, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelBlueprintMaterialPoolRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2637169708, + "hash2": 744465694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::enemy::EnemyArsenalRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1729415868, + "hash2": 986728695, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PerkCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 747138345, + "hash2": 977425517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SkillTreeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3804821928, + "hash2": 396531390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::NotifierResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 456746935, + "hash2": 4128745999, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CharacterPresetCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 263545263, + "hash2": 899443783, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::animationgraph::AnimationGraphDebugInfo", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 150275666, + "hash2": 2214584371, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ColorPaletteCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2007523171, + "hash2": 3555084776, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GameSettingsPresetsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 572055108, + "hash2": 1622020351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WeatherSystemResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1110684984, + "hash2": 4186240309, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Game38SharedResources", + "type_name_2": "Game38SharedResources", + "qualified_name": "keen::Game38SharedResources", + "referenced_type_name": null, + "class_size": 624, + "fields_count": 39, + "primitive_type": "Struct", + "hash1": 2009836151, + "hash2": 2887131809, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 3129538903, + "data_offset": 0 + }, + { + "name": "gameKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 137400928, + "data_offset": 16 + }, + { + "name": "gameKnowledgeResource", + "type_name": "keen::ObjectReference", + "type_hash": 937010357, + "data_offset": 32 + }, + { + "name": "gameKnowledgeQueryResourceDb", + "type_name": "keen::ObjectReference", + "type_hash": 2309991625, + "data_offset": 48 + }, + { + "name": "itemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 1218481157, + "data_offset": 64 + }, + { + "name": "journalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 814946803, + "data_offset": 80 + }, + { + "name": "devItemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 1093908006, + "data_offset": 96 + }, + { + "name": "recipeRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 1653583378, + "data_offset": 112 + }, + { + "name": "balancingTable", + "type_name": "keen::ObjectReference", + "type_hash": 641663926, + "data_offset": 128 + }, + { + "name": "workshopRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 1255901519, + "data_offset": 144 + }, + { + "name": "npcCollection", + "type_name": "keen::ObjectReference", + "type_hash": 404956594, + "data_offset": 160 + }, + { + "name": "lootLabelCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2512150380, + "data_offset": 176 + }, + { + "name": "lootableItems", + "type_name": "keen::ObjectReference", + "type_hash": 3258483605, + "data_offset": 192 + }, + { + "name": "lootDistribution", + "type_name": "keen::ObjectReference", + "type_hash": 2034369073, + "data_offset": 208 + }, + { + "name": "buffTypeCollection", + "type_name": "keen::ObjectReference", + "type_hash": 822220842, + "data_offset": 224 + }, + { + "name": "midiSongCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3534867905, + "data_offset": 240 + }, + { + "name": "impactRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 60803450, + "data_offset": 256 + }, + { + "name": "attributeContainer", + "type_name": "keen::ObjectReference", + "type_hash": 1486219560, + "data_offset": 272 + }, + { + "name": "actorSequenceCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1799615351, + "data_offset": 288 + }, + { + "name": "terraformingEfficiencyRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3909485047, + "data_offset": 304 + }, + { + "name": "voxelBlueprintConfig", + "type_name": "keen::ObjectReference", + "type_hash": 2304631439, + "data_offset": 320 + }, + { + "name": "voxelBlueprintItemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 4060630096, + "data_offset": 336 + }, + { + "name": "voxelBlueprintMaterialPoolRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 2637169708, + "data_offset": 352 + }, + { + "name": "enemyArsenalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 1729415868, + "data_offset": 368 + }, + { + "name": "perkCollection", + "type_name": "keen::ObjectReference", + "type_hash": 747138345, + "data_offset": 384 + }, + { + "name": "ingameTimeConfig", + "type_name": "keen::ObjectReference", + "type_hash": 3498744567, + "data_offset": 400 + }, + { + "name": "skillTree", + "type_name": "keen::ObjectReference", + "type_hash": 3804821928, + "data_offset": 416 + }, + { + "name": "templateCollection", + "type_name": "keen::ObjectReference", + "type_hash": 4138442978, + "data_offset": 432 + }, + { + "name": "twitchDropCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1624651607, + "data_offset": 448 + }, + { + "name": "staminaDrainNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 456746935, + "data_offset": 464 + }, + { + "name": "exhaustedNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 456746935, + "data_offset": 480 + }, + { + "name": "pickupLootNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 456746935, + "data_offset": 496 + }, + { + "name": "itemBrokenNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 456746935, + "data_offset": 512 + }, + { + "name": "characterPresetCollection", + "type_name": "keen::ObjectReference", + "type_hash": 263545263, + "data_offset": 528 + }, + { + "name": "animationGraphDebugInfo", + "type_name": "keen::ObjectReference", + "type_hash": 150275666, + "data_offset": 544 + }, + { + "name": "commerceProducts", + "type_name": "keen::ObjectReference", + "type_hash": 1114648849, + "data_offset": 560 + }, + { + "name": "colorPaletteCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2007523171, + "data_offset": 576 + }, + { + "name": "gameSettingPresets", + "type_name": "keen::ObjectReference", + "type_hash": 572055108, + "data_offset": 592 + }, + { + "name": "weatherSystemResource", + "type_name": "keen::ObjectReference", + "type_hash": 1110684984, + "data_offset": 608 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderSettingsGpuPresetsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1497219864, + "hash2": 2627877403, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MapMarkerRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 524931422, + "hash2": 4267974897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoicePackDirectoryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3459985307, + "hash2": 3969575368, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MaterialFeedbackCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3690959251, + "hash2": 994209718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::LocaTagCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3206025282, + "hash2": 3573449977, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderColorGradingMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2852580572, + "hash2": 2313027336, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::FbUiMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1216274867, + "hash2": 1525049742, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::UiFontResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1782793672, + "hash2": 971255743, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VfxResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 728052363, + "hash2": 957653592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PreloadVfxListResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1427840184, + "hash2": 2235868575, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Game38ClientResources", + "type_name_2": "Game38ClientResources", + "qualified_name": "keen::Game38ClientResources", + "referenced_type_name": null, + "class_size": 1088, + "fields_count": 30, + "primitive_type": "Struct", + "hash1": 3483826245, + "hash2": 1893334410, + "struct_fields": [ + { + "name": "shared", + "type_name": "keen::Game38SharedResources", + "type_hash": 2009836151, + "data_offset": 0 + }, + { + "name": "renderSettingsGpuPresets", + "type_name": "keen::ObjectReference", + "type_hash": 1497219864, + "data_offset": 624 + }, + { + "name": "fbUiBundle", + "type_name": "keen::ObjectReference", + "type_hash": 3255214919, + "data_offset": 640 + }, + { + "name": "mapMarkerRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 524931422, + "data_offset": 656 + }, + { + "name": "itemKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 137400928, + "data_offset": 672 + }, + { + "name": "voicePacks", + "type_name": "keen::ObjectReference", + "type_hash": 3459985307, + "data_offset": 688 + }, + { + "name": "materialFeedbackCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3690959251, + "data_offset": 704 + }, + { + "name": "locaTagCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3206025282, + "data_offset": 720 + }, + { + "name": "colorGradingFogRegular", + "type_name": "keen::ObjectReference", + "type_hash": 2852580572, + "data_offset": 736 + }, + { + "name": "colorGradingFogDangerous", + "type_name": "keen::ObjectReference", + "type_hash": 2852580572, + "data_offset": 752 + }, + { + "name": "colorGradingLowHealth", + "type_name": "keen::ObjectReference", + "type_hash": 2852580572, + "data_offset": 768 + }, + { + "name": "maleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 319145755, + "data_offset": 784 + }, + { + "name": "femaleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 319145755, + "data_offset": 800 + }, + { + "name": "fbUiMapResource", + "type_name": "keen::ObjectReference", + "type_hash": 1216274867, + "data_offset": 816 + }, + { + "name": "uiFontDefault", + "type_name": "keen::ObjectReference", + "type_hash": 1782793672, + "data_offset": 832 + }, + { + "name": "uiFontFancy", + "type_name": "keen::ObjectReference", + "type_hash": 1782793672, + "data_offset": 848 + }, + { + "name": "grassVfx", + "type_name": "keen::ObjectReference", + "type_hash": 728052363, + "data_offset": 864 + }, + { + "name": "buildingBlockDamageDecalVfx", + "type_name": "keen::ObjectReference", + "type_hash": 728052363, + "data_offset": 880 + }, + { + "name": "blueprintHoverHighlightVfx", + "type_name": "keen::ObjectReference", + "type_hash": 728052363, + "data_offset": 896 + }, + { + "name": "pregameMusic", + "type_name": "keen::ObjectReference", + "type_hash": 2297180759, + "data_offset": 912 + }, + { + "name": "loreIntroMusic", + "type_name": "keen::ObjectReference", + "type_hash": 2297180759, + "data_offset": 928 + }, + { + "name": "spellChargeFullSfx", + "type_name": "keen::ObjectReference", + "type_hash": 2297180759, + "data_offset": 944 + }, + { + "name": "ambientCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2081749367, + "data_offset": 960 + }, + { + "name": "enemyDebugMenu", + "type_name": "keen::ObjectReference", + "type_hash": 3844231542, + "data_offset": 976 + }, + { + "name": "characterScenePlayer", + "type_name": "keen::ObjectReference", + "type_hash": 3129538903, + "data_offset": 992 + }, + { + "name": "characterScenePlayerPortrait", + "type_name": "keen::ObjectReference", + "type_hash": 3129538903, + "data_offset": 1008 + }, + { + "name": "characterScenePlayerPregame", + "type_name": "keen::ObjectReference", + "type_hash": 3129538903, + "data_offset": 1024 + }, + { + "name": "characterSceneNpc", + "type_name": "keen::ObjectReference", + "type_hash": 3129538903, + "data_offset": 1040 + }, + { + "name": "achievements", + "type_name": "keen::ObjectReference", + "type_hash": 2021088001, + "data_offset": 1056 + }, + { + "name": "preloadVfxList", + "type_name": "keen::ObjectReference", + "type_hash": 1427840184, + "data_offset": 1072 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Game38ServerResources", + "type_name_2": "Game38ServerResources", + "qualified_name": "keen::Game38ServerResources", + "referenced_type_name": null, + "class_size": 640, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3895836273, + "hash2": 483283649, + "struct_fields": [ + { + "name": "shared", + "type_name": "keen::Game38SharedResources", + "type_hash": 2009836151, + "data_offset": 0 + }, + { + "name": "gameKnowledgeQueryTriggerResource", + "type_name": "keen::ObjectReference", + "type_hash": 2327852349, + "data_offset": 624 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Midi", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2083195042, + "hash2": 3677376831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiReference", + "type_name_2": "MidiReference", + "qualified_name": "keen::MidiReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 659549540, + "hash2": 2568030727, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiInstrumentType", + "type_name_2": "MidiInstrumentType", + "qualified_name": "keen::MidiInstrumentType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 867779258, + "hash2": 1738709157, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Lute", + "value": 1 + }, + { + "name": "Flute", + "value": 2 + }, + { + "name": "Harp", + "value": 3 + }, + { + "name": "DounDoun", + "value": 4 + } + ] + }, + { + "type_name_1": "MidiSong", + "type_name_2": "MidiSong", + "qualified_name": "keen::MidiSong", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1607776342, + "hash2": 718637439, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 0 + }, + { + "name": "midiSong", + "type_name": "keen::MidiReference", + "type_hash": 659549540, + "data_offset": 16 + }, + { + "name": "defaultForInstrument", + "type_name": "keen::MidiInstrumentType", + "type_hash": 867779258, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongSubDirectory", + "type_name_2": "MidiSongSubDirectory", + "qualified_name": "keen::MidiSongSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2131391711, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongDirectory", + "type_name_2": "MidiSongDirectory", + "qualified_name": "keen::MidiSongDirectory", + "referenced_type_name": "keen::MidiSongSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1180826013, + "hash2": 1000312270, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongResource", + "type_name_2": "MidiSongResource", + "qualified_name": "keen::MidiSongResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3871003886, + "hash2": 1269226049, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "midiSong", + "type_name": "keen::MidiReference", + "type_hash": 659549540, + "data_offset": 16 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 32 + }, + { + "name": "defaultForInstrument", + "type_name": "keen::MidiInstrumentType", + "type_hash": 867779258, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SamplerInstrumentResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1856841256, + "hash2": 2916732010, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSampleCollectionResource", + "type_name_2": "InstrumentSampleCollectionResource", + "qualified_name": "keen::InstrumentSampleCollectionResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 279826193, + "hash2": 786683196, + "struct_fields": [ + { + "name": "samplesLute", + "type_name": "keen::ObjectReference", + "type_hash": 1856841256, + "data_offset": 0 + }, + { + "name": "samplesLuteChord", + "type_name": "keen::ObjectReference", + "type_hash": 1856841256, + "data_offset": 16 + }, + { + "name": "samplesFlute", + "type_name": "keen::ObjectReference", + "type_hash": 1856841256, + "data_offset": 32 + }, + { + "name": "samplesHarp", + "type_name": "keen::ObjectReference", + "type_hash": 1856841256, + "data_offset": 48 + }, + { + "name": "samplesDounDoun", + "type_name": "keen::ObjectReference", + "type_hash": 1856841256, + "data_offset": 64 + }, + { + "name": "samplesTambourin", + "type_name": "keen::ObjectReference", + "type_hash": 1856841256, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2349754766, + "hash2": 4245938046, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongCollection", + "type_name_2": "MidiSongCollection", + "qualified_name": "keen::MidiSongCollection", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 176063118, + "hash2": 460279141, + "struct_fields": [ + { + "name": "songCollection", + "type_name": "keen::BlobArray>", + "type_hash": 2349754766, + "data_offset": 0 + }, + { + "name": "sampleCollection", + "type_name": "keen::InstrumentSampleCollectionResource", + "type_hash": 279826193, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38TestSuite", + "type_name_2": "ecs.G38TestSuite", + "qualified_name": "keen::ecs::G38TestSuite", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 13, + "primitive_type": "Enum", + "hash1": 4180952281, + "hash2": 2963361761, + "struct_fields": [], + "enum_fields": [ + { + "name": "Fail", + "value": 0 + }, + { + "name": "CookingTests", + "value": 1 + }, + { + "name": "FallDamage", + "value": 2 + }, + { + "name": "Sliding", + "value": 3 + }, + { + "name": "ClimbLadder", + "value": 4 + }, + { + "name": "ClimbWall", + "value": 5 + }, + { + "name": "HookShotSwing", + "value": 6 + }, + { + "name": "HookShotPull", + "value": 7 + }, + { + "name": "Glider", + "value": 8 + }, + { + "name": "InventoryTest", + "value": 9 + }, + { + "name": "EnemyTests", + "value": 10 + }, + { + "name": "DungeonTriggerTests", + "value": 11 + }, + { + "name": "KnowledgeTests", + "value": 12 + } + ] + }, + { + "type_name_1": "FailTest", + "type_name_2": "ecs.FailTest", + "qualified_name": "keen::ecs::FailTest", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2745359943, + "hash2": 134831520, + "struct_fields": [], + "enum_fields": [ + { + "name": "Init", + "value": 0 + }, + { + "name": "Setup", + "value": 1 + }, + { + "name": "Exit", + "value": 2 + } + ] + }, + { + "type_name_1": "InventoryTest", + "type_name_2": "ecs.InventoryTest", + "qualified_name": "keen::ecs::InventoryTest", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 724921025, + "hash2": 3301952279, + "struct_fields": [], + "enum_fields": [ + { + "name": "InvalidInventory", + "value": 0 + }, + { + "name": "TransferHalfToFullStack", + "value": 1 + }, + { + "name": "TransferFullToHalfStack", + "value": 2 + }, + { + "name": "TransferHalfToHalfStack", + "value": 3 + }, + { + "name": "TransferOneFromFullToHalfStack", + "value": 4 + }, + { + "name": "TransferStack", + "value": 5 + }, + { + "name": "EquipmentSlotTransferAmmunition", + "value": 6 + }, + { + "name": "FillStack", + "value": 7 + }, + { + "name": "ExpandInventory", + "value": 8 + }, + { + "name": "AbortExpand", + "value": 9 + }, + { + "name": "ExpandInventoryAgain", + "value": 10 + }, + { + "name": "ShrinkInventory", + "value": 11 + }, + { + "name": "ExpandAndTransferItems", + "value": 12 + }, + { + "name": "ShrinkAndTransferItems", + "value": 13 + }, + { + "name": "ShrinkNotEnoughFreeSpace", + "value": 14 + } + ] + }, + { + "type_name_1": "DungeonTriggerTest", + "type_name_2": "ecs.DungeonTriggerTest", + "qualified_name": "keen::ecs::DungeonTriggerTest", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1756425949, + "hash2": 3588416661, + "struct_fields": [], + "enum_fields": [ + { + "name": "PressurePlate", + "value": 0 + }, + { + "name": "BasicButton", + "value": 1 + }, + { + "name": "AndConnection", + "value": 2 + }, + { + "name": "OrConnection", + "value": 3 + } + ] + }, + { + "type_name_1": "KnowledgeTest", + "type_name_2": "ecs.KnowledgeTest", + "qualified_name": "keen::ecs::KnowledgeTest", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 3440539685, + "hash2": 1636011566, + "struct_fields": [], + "enum_fields": [ + { + "name": "Queries", + "value": 0 + } + ] + }, + { + "type_name_1": "CookingTest", + "type_name_2": "ecs.CookingTest", + "qualified_name": "keen::ecs::CookingTest", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2881545645, + "hash2": 3102542052, + "struct_fields": [], + "enum_fields": [ + { + "name": "CreateCookingTestComponent", + "value": 0 + }, + { + "name": "CreateCookingItems", + "value": 1 + }, + { + "name": "PlaceCampfire", + "value": 2 + }, + { + "name": "SitAtCampfire", + "value": 3 + }, + { + "name": "CookFood", + "value": 4 + }, + { + "name": "CleanupCookingTest", + "value": 5 + } + ] + }, + { + "type_name_1": "FallDamageTestId", + "type_name_2": "ecs.FallDamageTestId", + "qualified_name": "keen::ecs::FallDamageTestId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1920068794, + "hash2": 1302378120, + "struct_fields": [], + "enum_fields": [ + { + "name": "NoFallDamage", + "value": 0 + }, + { + "name": "MediumFallDamage", + "value": 1 + }, + { + "name": "LethalFallDamageAbortsTeleport", + "value": 2 + }, + { + "name": "TeleportWithoutLethalFallDamage", + "value": 3 + }, + { + "name": "LethalFallDamage", + "value": 4 + }, + { + "name": "LethalSwipeAgainstSlopes", + "value": 5 + }, + { + "name": "NoFallDamageSwipeAgainstSlidingMaterialSlopes", + "value": 6 + } + ] + }, + { + "type_name_1": "SlidingTestId", + "type_name_2": "ecs.SlidingTestId", + "qualified_name": "keen::ecs::SlidingTestId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1442696938, + "hash2": 1358084208, + "struct_fields": [], + "enum_fields": [ + { + "name": "WalkUpShallowSlope", + "value": 0 + }, + { + "name": "WalkDownShallowSlope", + "value": 1 + }, + { + "name": "DontWalkUpSteepSlope", + "value": 2 + }, + { + "name": "SlideDownSteepSlope", + "value": 3 + }, + { + "name": "DontWalkUpShallowSlidingMaterialSlope", + "value": 4 + }, + { + "name": "SlideDownShallowSlidingMaterialSlope", + "value": 5 + } + ] + }, + { + "type_name_1": "ClimbLadderTestId", + "type_name_2": "ecs.ClimbLadderTestId", + "qualified_name": "keen::ecs::ClimbLadderTestId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 18, + "primitive_type": "Enum", + "hash1": 2276387997, + "hash2": 3093771534, + "struct_fields": [], + "enum_fields": [ + { + "name": "ClimbUpFlawless", + "value": 0 + }, + { + "name": "ClimbDownFlawless", + "value": 1 + }, + { + "name": "ClimbUpTiltedLadder", + "value": 2 + }, + { + "name": "ClimbDownTiltedLadder", + "value": 3 + }, + { + "name": "ClimbUpSubsequentStaggeredLadders", + "value": 4 + }, + { + "name": "ClimbDownSubsequentStaggeredLadders", + "value": 5 + }, + { + "name": "ClimbUpSubsequentAlignedLadders", + "value": 6 + }, + { + "name": "ClimbDownSubsequentAlignedLadders", + "value": 7 + }, + { + "name": "ClimbNonStop", + "value": 8 + }, + { + "name": "ClimbUpExitBlocked", + "value": 9 + }, + { + "name": "ClimbUpStepBlocked", + "value": 10 + }, + { + "name": "ClimbDownStepBlocked", + "value": 11 + }, + { + "name": "LadderInsideFloorCollisionA", + "value": 12 + }, + { + "name": "LadderInsideFloorCollisionB", + "value": 13 + }, + { + "name": "LadderInsideFloorCollisionC", + "value": 14 + }, + { + "name": "WalkAgainstLadderBack", + "value": 15 + }, + { + "name": "InterruptByJump", + "value": 16 + }, + { + "name": "InterruptByHitEvent", + "value": 17 + } + ] + }, + { + "type_name_1": "ClimbWallTestId", + "type_name_2": "ecs.ClimbWallTestId", + "qualified_name": "keen::ecs::ClimbWallTestId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 523629117, + "hash2": 2636504716, + "struct_fields": [], + "enum_fields": [ + { + "name": "ClimbUpFlawless", + "value": 0 + }, + { + "name": "ClimbDownFlawless", + "value": 1 + }, + { + "name": "ClimbUpSubsequentAlignedWalls", + "value": 2 + }, + { + "name": "ClimbDownSubsequentAlignedWalls", + "value": 3 + }, + { + "name": "InterruptByJump", + "value": 4 + }, + { + "name": "InterruptByHitEvent", + "value": 5 + } + ] + }, + { + "type_name_1": "HookShotSwingTestId", + "type_name_2": "ecs.HookShotSwingTestId", + "qualified_name": "keen::ecs::HookShotSwingTestId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2293661699, + "hash2": 2053119673, + "struct_fields": [], + "enum_fields": [ + { + "name": "SwingGeneral", + "value": 0 + }, + { + "name": "SwingEnterManualJump", + "value": 1 + }, + { + "name": "SwingEnterAutoJump", + "value": 2 + }, + { + "name": "SwingExitAutoRelease", + "value": 3 + }, + { + "name": "DoubleSwingChain", + "value": 4 + }, + { + "name": "InterruptByHitEvent", + "value": 5 + } + ] + }, + { + "type_name_1": "HookShotPullTestId", + "type_name_2": "ecs.HookShotPullTestId", + "qualified_name": "keen::ecs::HookShotPullTestId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 3798295894, + "hash2": 77095509, + "struct_fields": [], + "enum_fields": [ + { + "name": "PullGeneral", + "value": 0 + }, + { + "name": "PullEnterManualJump", + "value": 1 + }, + { + "name": "PullEnterNoJump", + "value": 2 + }, + { + "name": "PullUp", + "value": 3 + }, + { + "name": "PullFlat", + "value": 4 + }, + { + "name": "PullDown", + "value": 5 + }, + { + "name": "InterruptByHitEvent", + "value": 6 + } + ] + }, + { + "type_name_1": "GliderTestId", + "type_name_2": "ecs.GliderTestId", + "qualified_name": "keen::ecs::GliderTestId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 407077359, + "hash2": 3445441675, + "struct_fields": [], + "enum_fields": [ + { + "name": "GliderGeneral", + "value": 0 + }, + { + "name": "GliderEnterManualJump", + "value": 1 + }, + { + "name": "GliderEnterNoJump", + "value": 2 + }, + { + "name": "GliderExitFloorCollision", + "value": 3 + }, + { + "name": "GliderAccelerate", + "value": 4 + }, + { + "name": "GliderDecelerate", + "value": 5 + }, + { + "name": "GliderTurn", + "value": 6 + }, + { + "name": "InterruptByHitEvent", + "value": 7 + } + ] + }, + { + "type_name_1": "CookingTestComponent", + "type_name_2": "ecs.CookingTestComponent", + "qualified_name": "keen::ecs::CookingTestComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3627507912, + "hash2": 1530001694, + "struct_fields": [ + { + "name": "campfireEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "cookTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "postCookWaitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "sitWaitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "standWaitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "campfireEntityDeletionTryCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 40 + }, + { + "name": "cookingTestComponentDeletionTryCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 41 + }, + { + "name": "sitToggled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "standToggled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "cookingToggled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestValueMemory", + "type_name_2": "ecs.TestValueMemory", + "qualified_name": "keen::ecs::TestValueMemory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1670867539, + "hash2": 1843844937, + "struct_fields": [ + { + "name": "vectorValue", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "floatValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FakePlayerSpawner", + "type_name_2": "ecs.FakePlayerSpawner", + "qualified_name": "keen::ecs::FakePlayerSpawner", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4090272445, + "hash2": 1403068622, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialType", + "type_name_2": "VoxelMaterialType", + "qualified_name": "keen::VoxelMaterialType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1186815059, + "hash2": 210236354, + "struct_fields": [], + "enum_fields": [ + { + "name": "Terrain", + "value": 0 + }, + { + "name": "Building", + "value": 1 + } + ] + }, + { + "type_name_1": "BaseVoxelMaterial", + "type_name_2": "BaseVoxelMaterial", + "qualified_name": "keen::BaseVoxelMaterial", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3426393220, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SolidVoxelMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 457524793, + "hash2": 2639020187, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BiomeVoxelMaterial", + "type_name_2": "BiomeVoxelMaterial", + "qualified_name": "keen::BiomeVoxelMaterial", + "referenced_type_name": "keen::BaseVoxelMaterial", + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 521882251, + "hash2": 2933009741, + "struct_fields": [ + { + "name": "grassland", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 0 + }, + { + "name": "desert", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 16 + }, + { + "name": "wetland", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 32 + }, + { + "name": "steppes", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 48 + }, + { + "name": "deepforest", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 64 + }, + { + "name": "coldheights", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HardnessCategory", + "type_name_2": "HardnessCategory", + "qualified_name": "keen::HardnessCategory", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2436939280, + "hash2": 32421891, + "struct_fields": [], + "enum_fields": [ + { + "name": "Soft", + "value": 0 + }, + { + "name": "SlightlyHard", + "value": 1 + }, + { + "name": "ModeratelyHard", + "value": 2 + }, + { + "name": "Hard", + "value": 3 + }, + { + "name": "VeryHard", + "value": 4 + }, + { + "name": "Unbreakable", + "value": 5 + } + ] + }, + { + "type_name_1": "VoxelWorldDisplacement", + "type_name_2": "VoxelWorldDisplacement", + "qualified_name": "keen::VoxelWorldDisplacement", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1483496761, + "hash2": 2802636577, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "origin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "uvScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxMaterialType", + "type_name_2": "VfxMaterialType", + "qualified_name": "keen::VfxMaterialType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 3963764619, + "hash2": 1703648250, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Mud", + "value": 1 + }, + { + "name": "Tar", + "value": 2 + }, + { + "name": "Lava", + "value": 3 + }, + { + "name": "Ice", + "value": 4 + }, + { + "name": "Snow", + "value": 5 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Recipe", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2306513255, + "hash2": 654644661, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ExperienceBalanceValue", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3835756290, + "hash2": 4265409822, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PbrBuildingMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1876585368, + "hash2": 3419315411, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelObjectDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3707186949, + "hash2": 2579041392, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SolidVoxelMaterial", + "type_name_2": "SolidVoxelMaterial", + "qualified_name": "keen::SolidVoxelMaterial", + "referenced_type_name": "keen::BaseVoxelMaterial", + "class_size": 256, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 2235736426, + "hash2": 1878020359, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::VoxelMaterialType", + "type_hash": 1186815059, + "data_offset": 0 + }, + { + "name": "materialItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 4 + }, + { + "name": "hardness", + "type_name": "keen::HardnessCategory", + "type_hash": 2436939280, + "data_offset": 20 + }, + { + "name": "healthPoints", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + }, + { + "name": "blockCraftingRecipe", + "type_name": "keen::ObjectReference", + "type_hash": 2306513255, + "data_offset": 28 + }, + { + "name": "voxelsPerLootItemExchangeRate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "experienceGain", + "type_name": "keen::ObjectReference", + "type_hash": 3835756290, + "data_offset": 48 + }, + { + "name": "canBeFlattened", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "isSlidingMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + }, + { + "name": "sideDisplacement", + "type_name": "keen::VoxelWorldDisplacement", + "type_hash": 1483496761, + "data_offset": 68 + }, + { + "name": "topDisplacement", + "type_name": "keen::VoxelWorldDisplacement", + "type_hash": 1483496761, + "data_offset": 96 + }, + { + "name": "stoneMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 124 + }, + { + "name": "canReceiveFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + }, + { + "name": "pbrBuildingMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1876585368, + "data_offset": 144 + }, + { + "name": "collisionFeedbackMaterial", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 160 + }, + { + "name": "ambientEnvironment", + "type_name": "keen::AmbientEnvironment", + "type_hash": 876159495, + "data_offset": 176 + }, + { + "name": "buffType", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 180 + }, + { + "name": "previewVoxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 3707186949, + "data_offset": 196 + }, + { + "name": "isDangerous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 212 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 216 + }, + { + "name": "maxSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 220 + }, + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 224 + }, + { + "name": "maxSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 228 + }, + { + "name": "vfxMaterialType", + "type_name": "keen::VfxMaterialType", + "type_hash": 3963764619, + "data_offset": 232 + }, + { + "name": "entityTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 236 + }, + { + "name": "pathNodeType", + "type_name": "keen::ecs::PathNodeType", + "type_hash": 2759560692, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseFogVoxelMaterial", + "type_name_2": "BaseFogVoxelMaterial", + "qualified_name": "keen::BaseFogVoxelMaterial", + "referenced_type_name": "keen::BaseVoxelMaterial", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1486503766, + "hash2": 1654876809, + "struct_fields": [ + { + "name": "sideDisplacement", + "type_name": "keen::VoxelWorldDisplacement", + "type_hash": 1483496761, + "data_offset": 0 + }, + { + "name": "topDisplacement", + "type_name": "keen::VoxelWorldDisplacement", + "type_hash": 1483496761, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMaterial", + "type_name_2": "FogVoxelMaterial", + "qualified_name": "keen::FogVoxelMaterial", + "referenced_type_name": "keen::BaseFogVoxelMaterial", + "class_size": 60, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4023160899, + "hash2": 2945205845, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecorativeFogVoxelMaterial", + "type_name_2": "DecorativeFogVoxelMaterial", + "qualified_name": "keen::DecorativeFogVoxelMaterial", + "referenced_type_name": "keen::BaseFogVoxelMaterial", + "class_size": 56, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3466138297, + "hash2": 2643430666, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WaterVoxelMaterial", + "type_name_2": "WaterVoxelMaterial", + "qualified_name": "keen::WaterVoxelMaterial", + "referenced_type_name": "keen::BaseVoxelMaterial", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2012618610, + "hash2": 622136359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemperatureVoxelType", + "type_name_2": "TemperatureVoxelType", + "qualified_name": "keen::TemperatureVoxelType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1022501608, + "hash2": 1343948502, + "struct_fields": [], + "enum_fields": [ + { + "name": "Normal", + "value": 0 + }, + { + "name": "Freezing", + "value": 1 + } + ] + }, + { + "type_name_1": "TemperatureVoxelMaterial", + "type_name_2": "TemperatureVoxelMaterial", + "qualified_name": "keen::TemperatureVoxelMaterial", + "referenced_type_name": "keen::BaseVoxelMaterial", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2914383225, + "hash2": 2406575937, + "struct_fields": [ + { + "name": "temperature", + "type_name": "keen::TemperatureVoxelType", + "type_hash": 1022501608, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialTerraformingInfo", + "type_name_2": "VoxelMaterialTerraformingInfo", + "qualified_name": "keen::VoxelMaterialTerraformingInfo", + "referenced_type_name": null, + "class_size": 260, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1139732959, + "hash2": 2204040358, + "struct_fields": [ + { + "name": "solidVoxelMaterial", + "type_name": "keen::SolidVoxelMaterial", + "type_hash": 2235736426, + "data_offset": 0 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::PropDamageSusceptibility", + "type_hash": 3353863451, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatteringNoise", + "type_name_2": "VoxelMaterialScatteringNoise", + "qualified_name": "keen::VoxelMaterialScatteringNoise", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3209446661, + "hash2": 3703617017, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "persistence", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "outMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "outMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AbstractScatterImage", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1580845530, + "hash2": 2698399345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScattering", + "type_name_2": "VoxelMaterialScattering", + "qualified_name": "keen::VoxelMaterialScattering", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 213344761, + "hash2": 902128996, + "struct_fields": [ + { + "name": "densityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 0 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "densityNoise", + "type_name": "keen::VoxelMaterialScatteringNoise", + "type_hash": 3209446661, + "data_offset": 20 + }, + { + "name": "depthNoise", + "type_name": "keen::VoxelMaterialScatteringNoise", + "type_hash": 3209446661, + "data_offset": 36 + }, + { + "name": "maxWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "detailNoise", + "type_name": "keen::VoxelMaterialScatteringNoise", + "type_hash": 3209446661, + "data_offset": 56 + }, + { + "name": "dirtDetailNoise", + "type_name": "keen::VoxelMaterialScatteringNoise", + "type_hash": 3209446661, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatteringShape", + "type_name_2": "VoxelMaterialScatteringShape", + "qualified_name": "keen::VoxelMaterialScatteringShape", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 1924633962, + "hash2": 3512447552, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "NoiseBlob", + "value": 1 + }, + { + "name": "Shaft", + "value": 2 + }, + { + "name": "EmissiveSphere", + "value": 3 + }, + { + "name": "Geodes", + "value": 4 + } + ] + }, + { + "type_name_1": "VoxelMaterialScatterTargetMaterial", + "type_name_2": "VoxelMaterialScatterTargetMaterial", + "qualified_name": "keen::VoxelMaterialScatterTargetMaterial", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 4004837527, + "hash2": 101820289, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 0 + }, + { + "name": "enableScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "shape", + "type_name": "keen::VoxelMaterialScatteringShape", + "type_hash": 1924633962, + "data_offset": 17 + }, + { + "name": "modulationInputScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "shapeNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "structureScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "structureFadeSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "outerRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "geodesScattterRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "geodesCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "geodesRadiusRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "geodesShellWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelMaterialScatterTargetMaterial[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelMaterialScatterTargetMaterial", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4059940170, + "hash2": 3891373023, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatterTargetMaterialList", + "type_name_2": "VoxelMaterialScatterTargetMaterialList", + "qualified_name": "keen::VoxelMaterialScatterTargetMaterialList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 424707391, + "hash2": 3726626241, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::BlobArray", + "type_hash": 4059940170, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "Guid[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::Guid", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1582301590, + "hash2": 4090993723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelMaterialScattering[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelMaterialScattering", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3873034390, + "hash2": 602378885, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelMaterialScatterTargetMaterialList[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelMaterialScatterTargetMaterialList", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1006513298, + "hash2": 3515924239, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatteringList", + "type_name_2": "VoxelMaterialScatteringList", + "qualified_name": "keen::VoxelMaterialScatteringList", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 345897509, + "hash2": 3256346625, + "struct_fields": [ + { + "name": "materialGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + }, + { + "name": "settings", + "type_name": "keen::BlobArray", + "type_hash": 3873034390, + "data_offset": 8 + }, + { + "name": "targetMaterials", + "type_name": "keen::BlobArray", + "type_hash": 1006513298, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Health", + "type_name_2": "ecs.Health", + "qualified_name": "keen::ecs::Health", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3692040337, + "hash2": 1878684132, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Stamina", + "type_name_2": "ecs.Stamina", + "qualified_name": "keen::ecs::Stamina", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2453735012, + "hash2": 1878684132, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 16, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 2095198959, + "hash2": 906281690, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaminaDepletionMod", + "type_name_2": "ecs.StaminaDepletionMod", + "qualified_name": "keen::ecs::StaminaDepletionMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2450289360, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaminaDamageMod", + "type_name_2": "ecs.StaminaDamageMod", + "qualified_name": "keen::ecs::StaminaDamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3920856883, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Mana", + "type_name_2": "ecs.Mana", + "qualified_name": "keen::ecs::Mana", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1299327400, + "hash2": 1878684132, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 24, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 2095493149, + "hash2": 4060665084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Revive", + "type_name_2": "ecs.Revive", + "qualified_name": "keen::ecs::Revive", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3291102014, + "hash2": 2840613028, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095493149, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "sint32[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::sint32", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 465813225, + "hash2": 3597277532, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Durability", + "type_name_2": "ecs.Durability", + "qualified_name": "keen::ecs::Durability", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3757774344, + "hash2": 2782860143, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 465813225, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 48, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 2917037748, + "hash2": 377382997, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Movement", + "type_name_2": "ecs.Movement", + "qualified_name": "keen::ecs::Movement", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 84, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2222555902, + "hash2": 1911883632, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2917037748, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 20, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 4208928690, + "hash2": 4060223799, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RangedCombat", + "type_name_2": "ecs.RangedCombat", + "qualified_name": "keen::ecs::RangedCombat", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1872716216, + "hash2": 2645990823, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4208928690, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "sint32[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::sint32", + "class_size": 20, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 431125154, + "hash2": 3597424627, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogResistance", + "type_name_2": "ecs.FogResistance", + "qualified_name": "keen::ecs::FogResistance", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1599010068, + "hash2": 1735778634, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 431125154, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint32[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint32", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 294905339, + "hash2": 843336268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Level", + "type_name_2": "ecs.Level", + "qualified_name": "keen::ecs::Level", + "referenced_type_name": "keen::ecs::UInt32Attribute", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3847281207, + "hash2": 1471537240, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 294905339, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint32[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint32", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 2408635070, + "hash2": 910299649, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Experience", + "type_name_2": "ecs.Experience", + "qualified_name": "keen::ecs::Experience", + "referenced_type_name": "keen::ecs::UInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2756112959, + "hash2": 3399919800, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2408635070, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[14]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 56, + "fields_count": 14, + "primitive_type": "StaticArray", + "hash1": 2916052010, + "hash2": 309286783, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Threat", + "type_name_2": "ecs.Threat", + "qualified_name": "keen::ecs::Threat", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 92, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2876756023, + "hash2": 2073530879, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2916052010, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 4209914428, + "hash2": 4128320013, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ThreatBonus", + "type_name_2": "ecs.ThreatBonus", + "qualified_name": "keen::ecs::ThreatBonus", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2254757018, + "hash2": 3435325964, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209914428, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageMod", + "type_name_2": "ecs.DamageMod", + "qualified_name": "keen::ecs::DamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1174250618, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToolDamageMod", + "type_name_2": "ecs.ToolDamageMod", + "qualified_name": "keen::ecs::ToolDamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2147818976, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModBackstab", + "type_name_2": "ecs.DamageModBackstab", + "qualified_name": "keen::ecs::DamageModBackstab", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1944034829, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModSkillShot", + "type_name_2": "ecs.DamageModSkillShot", + "qualified_name": "keen::ecs::DamageModSkillShot", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 42491979, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModSneak", + "type_name_2": "ecs.DamageModSneak", + "qualified_name": "keen::ecs::DamageModSneak", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2451110082, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModMerciless", + "type_name_2": "ecs.DamageModMerciless", + "qualified_name": "keen::ecs::DamageModMerciless", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2116574075, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModAgainst", + "type_name_2": "ecs.DamageModAgainst", + "qualified_name": "keen::ecs::DamageModAgainst", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3541671101, + "hash2": 2840613028, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095493149, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealingMod", + "type_name_2": "ecs.HealingMod", + "qualified_name": "keen::ecs::HealingMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1608008457, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[19]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 76, + "fields_count": 19, + "primitive_type": "StaticArray", + "hash1": 2951725819, + "hash2": 375852806, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DamageSusceptibility", + "type_name_2": "ecs.DamageSusceptibility", + "qualified_name": "keen::ecs::DamageSusceptibility", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1884538203, + "hash2": 2797867305, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2951725819, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CritChance", + "type_name_2": "ecs.CritChance", + "qualified_name": "keen::ecs::CritChance", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 484946295, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CritDamageMod", + "type_name_2": "ecs.CritDamageMod", + "qualified_name": "keen::ecs::CritDamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1180556666, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "sint32[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::sint32", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 432110892, + "hash2": 2590473297, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Strength", + "type_name_2": "ecs.Strength", + "qualified_name": "keen::ecs::Strength", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 601645970, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Intelligence", + "type_name_2": "ecs.Intelligence", + "qualified_name": "keen::ecs::Intelligence", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1832219468, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Dexterity", + "type_name_2": "ecs.Dexterity", + "qualified_name": "keen::ecs::Dexterity", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 270012313, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Endurance", + "type_name_2": "ecs.Endurance", + "qualified_name": "keen::ecs::Endurance", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1516720732, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Constitution", + "type_name_2": "ecs.Constitution", + "qualified_name": "keen::ecs::Constitution", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 383730096, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Spirit", + "type_name_2": "ecs.Spirit", + "qualified_name": "keen::ecs::Spirit", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2387538626, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Armor", + "type_name_2": "ecs.Armor", + "qualified_name": "keen::ecs::Armor", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 346949614, + "hash2": 2645990823, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4208928690, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint32[28]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint32", + "class_size": 112, + "fields_count": 28, + "primitive_type": "StaticArray", + "hash1": 1893842857, + "hash2": 2003290794, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ArmorPoints", + "type_name_2": "ecs.ArmorPoints", + "qualified_name": "keen::ecs::ArmorPoints", + "referenced_type_name": "keen::ecs::UInt32Attribute", + "class_size": 148, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1050417769, + "hash2": 646463728, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 1893842857, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "sint32[1]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 1, + "primitive_type": "StaticArray", + "hash1": 2579248766, + "hash2": 3596836247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Block", + "type_name_2": "ecs.Block", + "qualified_name": "keen::ecs::Block", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2115612760, + "hash2": 4111189624, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2579248766, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParryProficiency", + "type_name_2": "ecs.ParryProficiency", + "qualified_name": "keen::ecs::ParryProficiency", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3183561808, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Comfort", + "type_name_2": "ecs.Comfort", + "qualified_name": "keen::ecs::Comfort", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3922660965, + "hash2": 4111189624, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2579248766, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Rested", + "type_name_2": "ecs.Rested", + "qualified_name": "keen::ecs::Rested", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 622199280, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MeleeDamageMod", + "type_name_2": "ecs.MeleeDamageMod", + "qualified_name": "keen::ecs::MeleeDamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2594861560, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RangedDamageMod", + "type_name_2": "ecs.RangedDamageMod", + "qualified_name": "keen::ecs::RangedDamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3612518471, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MagicDamageMod", + "type_name_2": "ecs.MagicDamageMod", + "qualified_name": "keen::ecs::MagicDamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2753348157, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[1]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 4, + "fields_count": 1, + "primitive_type": "StaticArray", + "hash1": 4209620238, + "hash2": 4060812179, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AllyAggroMultiplier", + "type_name_2": "ecs.AllyAggroMultiplier", + "qualified_name": "keen::ecs::AllyAggroMultiplier", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2929972906, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaminaRechargeMod", + "type_name_2": "ecs.StaminaRechargeMod", + "qualified_name": "keen::ecs::StaminaRechargeMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4253780127, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthRechargeMod", + "type_name_2": "ecs.HealthRechargeMod", + "qualified_name": "keen::ecs::HealthRechargeMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1207422628, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManaRechargeMod", + "type_name_2": "ecs.ManaRechargeMod", + "qualified_name": "keen::ecs::ManaRechargeMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3307864363, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float32[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float32", + "class_size": 36, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 2060805078, + "hash2": 840892427, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryDamageMod", + "type_name_2": "ecs.WeaponCategoryDamageMod", + "qualified_name": "keen::ecs::WeaponCategoryDamageMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3080686654, + "hash2": 2412254269, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2060805078, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeatMaxMod", + "type_name_2": "ecs.BodyHeatMaxMod", + "qualified_name": "keen::ecs::BodyHeatMaxMod", + "referenced_type_name": "keen::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1375679015, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeat", + "type_name_2": "ecs.BodyHeat", + "qualified_name": "keen::ecs::BodyHeat", + "referenced_type_name": "keen::ecs::UInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 794556021, + "hash2": 2287892843, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 293919601, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FreezingResistance", + "type_name_2": "ecs.FreezingResistance", + "qualified_name": "keen::ecs::FreezingResistance", + "referenced_type_name": "keen::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 367740562, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionId", + "type_name_2": "ItemCollectionId", + "qualified_name": "keen::ItemCollectionId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3570932004, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SignalId", + "type_name_2": "SignalId", + "qualified_name": "keen::SignalId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1676995411, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerId", + "type_name_2": "LootContainerId", + "qualified_name": "keen::LootContainerId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1134415354, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntryId", + "type_name_2": "JournalEntryId", + "qualified_name": "keen::JournalEntryId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3084175954, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Signal", + "type_name_2": "Signal", + "qualified_name": "keen::Signal", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3034818350, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CaptionLocaTag", + "type_name_2": "CaptionLocaTag", + "qualified_name": "keen::CaptionLocaTag", + "referenced_type_name": "keen::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 993848003, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LoreLocaTag", + "type_name_2": "LoreLocaTag", + "qualified_name": "keen::LoreLocaTag", + "referenced_type_name": "keen::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2405621525, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeFlag", + "type_name_2": "ItemKnowledgeFlag", + "qualified_name": "keen::ItemKnowledgeFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 525592517, + "hash2": 370223067, + "struct_fields": [], + "enum_fields": [ + { + "name": "Name", + "value": 0 + }, + { + "name": "Description", + "value": 1 + }, + { + "name": "Lore", + "value": 2 + }, + { + "name": "Recipes", + "value": 3 + }, + { + "name": "Inspected", + "value": 4 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ItemKnowledgeFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 4163408213, + "hash2": 1171945104, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeMask", + "type_name_2": "ItemKnowledgeMask", + "qualified_name": "keen::ItemKnowledgeMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3417964127, + "hash2": 3339249972, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeItemStackResource", + "type_name_2": "RecipeItemStackResource", + "qualified_name": "keen::RecipeItemStackResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1792722973, + "hash2": 2039906177, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryActionType", + "type_name_2": "InventoryActionType", + "qualified_name": "keen::InventoryActionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3916390888, + "hash2": 2190188089, + "struct_fields": [], + "enum_fields": [ + { + "name": "One", + "value": 0 + }, + { + "name": "Half", + "value": 1 + }, + { + "name": "All", + "value": 2 + }, + { + "name": "CustomAmount", + "value": 3 + }, + { + "name": "Destroy", + "value": 4 + } + ] + }, + { + "type_name_1": "VersionedData", + "type_name_2": "VersionedData", + "qualified_name": "keen::VersionedData", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2568626243, + "hash2": 3900687393, + "struct_fields": [ + { + "name": "changeCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiState", + "type_name_2": "UiState", + "qualified_name": "keen::UiState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 211099573, + "hash2": 2103387029, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Preload", + "value": 1 + }, + { + "name": "PreGame", + "value": 2 + }, + { + "name": "Load", + "value": 3 + }, + { + "name": "LoreIntro", + "value": 4 + }, + { + "name": "Play", + "value": 5 + } + ] + }, + { + "type_name_1": "WheelMenuType", + "type_name_2": "WheelMenuType", + "qualified_name": "keen::WheelMenuType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2270486090, + "hash2": 3968621347, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "WeaponWheel", + "value": 1 + }, + { + "name": "ToolWheel", + "value": 2 + } + ] + }, + { + "type_name_1": "InputMode", + "type_name_2": "InputMode", + "qualified_name": "keen::InputMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2461075969, + "hash2": 2913199792, + "struct_fields": [], + "enum_fields": [ + { + "name": "KeyboardMouse", + "value": 0 + }, + { + "name": "Gamepad", + "value": 1 + } + ] + }, + { + "type_name_1": "AttackDirectionInput", + "type_name_2": "AttackDirectionInput", + "qualified_name": "keen::AttackDirectionInput", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3043738149, + "hash2": 3894897215, + "struct_fields": [], + "enum_fields": [ + { + "name": "UseCamera", + "value": 0 + }, + { + "name": "UseMovement", + "value": 1 + } + ] + }, + { + "type_name_1": "ControllerButtonStyle", + "type_name_2": "ControllerButtonStyle", + "qualified_name": "keen::ControllerButtonStyle", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2099590459, + "hash2": 693763451, + "struct_fields": [], + "enum_fields": [ + { + "name": "Xbox", + "value": 0 + }, + { + "name": "Playstation", + "value": 1 + }, + { + "name": "NintendoSwitch", + "value": 2 + } + ] + }, + { + "type_name_1": "UiInputId", + "type_name_2": "UiInputId", + "qualified_name": "keen::UiInputId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 102, + "primitive_type": "Enum", + "hash1": 662937257, + "hash2": 553355701, + "struct_fields": [], + "enum_fields": [ + { + "name": "Confirm", + "value": 0 + }, + { + "name": "ConfirmExcludingKeyboard", + "value": 1 + }, + { + "name": "Back", + "value": 2 + }, + { + "name": "Close", + "value": 3 + }, + { + "name": "CloseKeyboardEscapeOnly", + "value": 4 + }, + { + "name": "SecondaryAction", + "value": 5 + }, + { + "name": "TertiaryAction", + "value": 6 + }, + { + "name": "ScreenButtonTrigger", + "value": 7 + }, + { + "name": "NavigationDirections", + "value": 8 + }, + { + "name": "Left", + "value": 9 + }, + { + "name": "Right", + "value": 10 + }, + { + "name": "Up", + "value": 11 + }, + { + "name": "Down", + "value": 12 + }, + { + "name": "LeftHold", + "value": 13 + }, + { + "name": "RightHold", + "value": 14 + }, + { + "name": "UpHold", + "value": 15 + }, + { + "name": "DownHold", + "value": 16 + }, + { + "name": "NextTab", + "value": 17 + }, + { + "name": "PreviousTab", + "value": 18 + }, + { + "name": "NextSubTab", + "value": 19 + }, + { + "name": "PreviousSubTab", + "value": 20 + }, + { + "name": "PageContentScrollBackward", + "value": 21 + }, + { + "name": "PageContentScrollForward", + "value": 22 + }, + { + "name": "PreviousServerPage", + "value": 23 + }, + { + "name": "NextServerPage", + "value": 24 + }, + { + "name": "ZoomIn", + "value": 25 + }, + { + "name": "ZoomOut", + "value": 26 + }, + { + "name": "MapWaypointQuickAction", + "value": 27 + }, + { + "name": "MapSnapToWaypoint", + "value": 28 + }, + { + "name": "MapSnapToPlayerPos", + "value": 29 + }, + { + "name": "MapSnapToHomeBase", + "value": 30 + }, + { + "name": "MapWorldSidebar", + "value": 31 + }, + { + "name": "MapFilterSidebar", + "value": 32 + }, + { + "name": "MapFilterFocusType", + "value": 33 + }, + { + "name": "ClearMapFilter", + "value": 34 + }, + { + "name": "MapPlayersSidebar", + "value": 35 + }, + { + "name": "MapActionsMenu", + "value": 36 + }, + { + "name": "FastTravel", + "value": 37 + }, + { + "name": "GoToJournalEntry", + "value": 38 + }, + { + "name": "ShowOnMap", + "value": 39 + }, + { + "name": "GoToReferencedJournalPage", + "value": 40 + }, + { + "name": "ToggleWaypoint", + "value": 41 + }, + { + "name": "CreateCustomMarker", + "value": 42 + }, + { + "name": "RemoveCustomMarker", + "value": 43 + }, + { + "name": "Ping", + "value": 44 + }, + { + "name": "ItemUseFromBackpack", + "value": 45 + }, + { + "name": "ItemDeleteInBackpack", + "value": 46 + }, + { + "name": "ItemActionsMenu", + "value": 47 + }, + { + "name": "ItemViewerVisibilityToggle", + "value": 48 + }, + { + "name": "SplitStack", + "value": 49 + }, + { + "name": "CharacterDelete", + "value": 50 + }, + { + "name": "SalvageItem", + "value": 51 + }, + { + "name": "LootTakeAll", + "value": 52 + }, + { + "name": "GrabItemEntireStack", + "value": 53 + }, + { + "name": "GrabItemPartialStackBegin", + "value": 54 + }, + { + "name": "GrabItemPartialStackEnd", + "value": 55 + }, + { + "name": "DropItemStackIntoSlot", + "value": 56 + }, + { + "name": "ItemQuickMoveOtherInventory", + "value": 57 + }, + { + "name": "ItemQuickMoveActionbarBackpack", + "value": 58 + }, + { + "name": "ItemQuickMoveContextSensitive", + "value": 59 + }, + { + "name": "RefillStacks", + "value": 60 + }, + { + "name": "SplitStackAdjustMin", + "value": 61 + }, + { + "name": "SplitStackAdjustDecrement", + "value": 62 + }, + { + "name": "SplitStackAdjustHalf", + "value": 63 + }, + { + "name": "SplitStackAdjustIncrement", + "value": 64 + }, + { + "name": "SplitStackAdjustMax", + "value": 65 + }, + { + "name": "BeginStorageStacksActions", + "value": 66 + }, + { + "name": "EndStorageStacksActions", + "value": 67 + }, + { + "name": "BeginStorageAllActions", + "value": 68 + }, + { + "name": "EndStorageAllActions", + "value": 69 + }, + { + "name": "StorageDepositStacks", + "value": 70 + }, + { + "name": "StorageDepositAll", + "value": 71 + }, + { + "name": "StorageRefillStacks", + "value": 72 + }, + { + "name": "StorageTakeAll", + "value": 73 + }, + { + "name": "SortInventory", + "value": 74 + }, + { + "name": "SortStorage", + "value": 75 + }, + { + "name": "EquipAtTargetSlot", + "value": 76 + }, + { + "name": "UnequipAtTargetSlot", + "value": 77 + }, + { + "name": "EquipFromBackpack", + "value": 78 + }, + { + "name": "EquipVanityFromBackpack", + "value": 79 + }, + { + "name": "UnequipFromBackpack", + "value": 80 + }, + { + "name": "Craft", + "value": 81 + }, + { + "name": "CraftFail", + "value": 82 + }, + { + "name": "CraftMultiple", + "value": 83 + }, + { + "name": "CraftMultipleFail", + "value": 84 + }, + { + "name": "Pin", + "value": 85 + }, + { + "name": "Unpin", + "value": 86 + }, + { + "name": "ToggleContentViewerPage", + "value": 87 + }, + { + "name": "Gift", + "value": 88 + }, + { + "name": "ShowTutorial", + "value": 89 + }, + { + "name": "CharacterRename", + "value": 90 + }, + { + "name": "HidePassword", + "value": 91 + }, + { + "name": "TogglePersonalProgressionMode", + "value": 92 + }, + { + "name": "IncreaseSettingsValue", + "value": 93 + }, + { + "name": "DecreaseSettingsValue", + "value": 94 + }, + { + "name": "IncreaseSettingsValueGamepadAlternative", + "value": 95 + }, + { + "name": "DecreaseSettingsValueGamepadAlternative", + "value": 96 + }, + { + "name": "ResetSettings", + "value": 97 + }, + { + "name": "KickPlayer", + "value": 98 + }, + { + "name": "ConfigureHostSettings", + "value": 99 + }, + { + "name": "RenameAltar", + "value": 100 + }, + { + "name": "Count", + "value": 101 + } + ] + }, + { + "type_name_1": "CharacterState", + "type_name_2": "CharacterState", + "qualified_name": "keen::CharacterState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 172006946, + "hash2": 1320917698, + "struct_fields": [], + "enum_fields": [ + { + "name": "NewlyCreated", + "value": 0 + }, + { + "name": "MarkedForDelete", + "value": 1 + }, + { + "name": "DontUploadToCloud", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::CharacterState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2917837912, + "hash2": 3932880276, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterStateMask", + "type_name_2": "CharacterStateMask", + "qualified_name": "keen::CharacterStateMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 417038090, + "hash2": 3301007697, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterId", + "type_name_2": "CharacterId", + "qualified_name": "keen::CharacterId", + "referenced_type_name": "keen::Guid", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 580679108, + "hash2": 2967885044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SaveGameSlotIndex", + "type_name_2": "SaveGameSlotIndex", + "qualified_name": "keen::SaveGameSlotIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1400056475, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerId", + "type_name_2": "PlayerId", + "qualified_name": "keen::PlayerId", + "referenced_type_name": "keen::Guid", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1079046466, + "hash2": 2967885044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BaseId", + "type_name_2": "BaseId", + "qualified_name": "keen::BaseId", + "referenced_type_name": "keen::Guid", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1672287174, + "hash2": 2967885044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyPhase", + "type_name_2": "EnemyPhase", + "qualified_name": "keen::EnemyPhase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2798606625, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JumpToObject", + "type_name_2": "JumpToObject", + "qualified_name": "keen::JumpToObject", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2635509704, + "hash2": 1888311474, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpecialInteraction", + "type_name_2": "ecs.SpecialInteraction", + "qualified_name": "keen::ecs::SpecialInteraction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2473498030, + "hash2": 4079187489, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Enemy_Execution", + "value": 1 + }, + { + "name": "Sneak_Attack", + "value": 2 + }, + { + "name": "StartGuarding", + "value": 3 + }, + { + "name": "StopGuarding", + "value": 4 + } + ] + }, + { + "type_name_1": "PlayerLoginState", + "type_name_2": "PlayerLoginState", + "qualified_name": "keen::PlayerLoginState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 2602052569, + "hash2": 3350409881, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "SendLoginResponseData", + "value": 1 + }, + { + "name": "WaitingForMachineReady", + "value": 2 + }, + { + "name": "LoginOk", + "value": 3 + }, + { + "name": "LogoutPending", + "value": 4 + }, + { + "name": "Logout", + "value": 5 + }, + { + "name": "Failed", + "value": 6 + } + ] + }, + { + "type_name_1": "GameClientInitState", + "type_name_2": "GameClientInitState", + "qualified_name": "keen::GameClientInitState", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 876972806, + "hash2": 598845044, + "struct_fields": [], + "enum_fields": [ + { + "name": "NotInitialized", + "value": 0 + }, + { + "name": "Init", + "value": 1 + }, + { + "name": "Login", + "value": 2 + }, + { + "name": "LoadScene", + "value": 3 + }, + { + "name": "LoadVoxelWorld", + "value": 4 + }, + { + "name": "SyncCharacterSaveGame", + "value": 5 + }, + { + "name": "TitleScreen", + "value": 6 + }, + { + "name": "Ready", + "value": 7 + } + ] + }, + { + "type_name_1": "PlayerPermissions", + "type_name_2": "PlayerPermissions", + "qualified_name": "keen::PlayerPermissions", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 362518105, + "hash2": 3653907521, + "struct_fields": [], + "enum_fields": [ + { + "name": "CanKickBan", + "value": 0 + }, + { + "name": "CanAccessInventories", + "value": 1 + }, + { + "name": "CanEditBase", + "value": 2 + }, + { + "name": "CanExtendBase", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::PlayerPermissions", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1551959641, + "hash2": 3221403831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerPermissionsMask", + "type_name_2": "PlayerPermissionsMask", + "qualified_name": "keen::PlayerPermissionsMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 914819445, + "hash2": 3528400932, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelConstraint", + "type_name_2": "VoxelConstraint", + "qualified_name": "keen::VoxelConstraint", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2807518573, + "hash2": 3812898834, + "struct_fields": [], + "enum_fields": [ + { + "name": "HasSubmergeDepth", + "value": 0 + }, + { + "name": "IsDangerous", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::VoxelConstraint", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3094956965, + "hash2": 3803898347, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelConstraintMask", + "type_name_2": "VoxelConstraintMask", + "qualified_name": "keen::VoxelConstraintMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2120356753, + "hash2": 1874476330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRequirements", + "type_name_2": "VoxelRequirements", + "qualified_name": "keen::VoxelRequirements", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2274251022, + "hash2": 73358372, + "struct_fields": [ + { + "name": "required", + "type_name": "keen::VoxelConstraintMask", + "type_hash": 2120356753, + "data_offset": 0 + }, + { + "name": "forbidden", + "type_name": "keen::VoxelConstraintMask", + "type_hash": 2120356753, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerProgressSystem", + "type_name_2": "ecs.ServerProgressSystem", + "qualified_name": "keen::ecs::ServerProgressSystem", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3645612630, + "hash2": 2375466244, + "struct_fields": [ + { + "name": "progressEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "progressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "currentAltarCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "currentHighestAltarLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseIdComponent", + "type_name_2": "ecs.BaseIdComponent", + "qualified_name": "keen::ecs::BaseIdComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1227355362, + "hash2": 294724084, + "struct_fields": [ + { + "name": "baseId", + "type_name": "keen::BaseId", + "type_hash": 1672287174, + "data_offset": 0 + }, + { + "name": "buildZoneSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "endOfTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "wasAbandoned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientBaseIdComponent", + "type_name_2": "ecs.ClientBaseIdComponent", + "qualified_name": "keen::ecs::ClientBaseIdComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4159408263, + "hash2": 1688167698, + "struct_fields": [ + { + "name": "endOfTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "wasAbandoned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "farmingAnimalCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "hungryFarmingAnimalCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "animalsWithoutBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "npcBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "farmingAnimalBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "occupiedFarmingAnimalBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoBuildZone", + "type_name_2": "ecs.NoBuildZone", + "qualified_name": "keen::ecs::NoBuildZone", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1411239450, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedJournalEntries", + "type_name_2": "ecs.UnlockedJournalEntries", + "qualified_name": "keen::ecs::UnlockedJournalEntries", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3294957231, + "hash2": 3214334773, + "struct_fields": [ + { + "name": "knowledgeChangeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "journalChangeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthBar", + "type_name_2": "ecs.HealthBar", + "qualified_name": "keen::ecs::HealthBar", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1482096926, + "hash2": 547574384, + "struct_fields": [ + { + "name": "lastChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnergyProvider", + "type_name_2": "ecs.EnergyProvider", + "qualified_name": "keen::ecs::EnergyProvider", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 738507874, + "hash2": 2411117881, + "struct_fields": [ + { + "name": "energyPerSecond", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnergyQuery", + "type_name_2": "ecs.EnergyQuery", + "qualified_name": "keen::ecs::EnergyQuery", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1829708385, + "hash2": 1530200944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "energyPerSecond", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "entityDistanceSquared", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CookingState", + "type_name_2": "ecs.CookingState", + "qualified_name": "keen::ecs::CookingState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 3683965582, + "hash2": 3475028488, + "struct_fields": [], + "enum_fields": [ + { + "name": "CookingRequirementsNotMet", + "value": 0 + }, + { + "name": "NotCooking", + "value": 1 + }, + { + "name": "CurrentlyCooking", + "value": 2 + }, + { + "name": "StartedCooking", + "value": 3 + }, + { + "name": "StoppedCooking", + "value": 4 + }, + { + "name": "SwitchToFoodBurnedEntity", + "value": 5 + }, + { + "name": "WaitForFoodEntityDestruction", + "value": 6 + }, + { + "name": "WaitForEvents", + "value": 7 + } + ] + }, + { + "type_name_1": "CookingFlags", + "type_name_2": "ecs.CookingFlags", + "qualified_name": "keen::ecs::CookingFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2559600980, + "hash2": 225218473, + "struct_fields": [], + "enum_fields": [ + { + "name": "ReceivedSpawnCookEvent", + "value": 0 + }, + { + "name": "ReceivedStartCookEvent", + "value": 1 + }, + { + "name": "IsCooking", + "value": 2 + }, + { + "name": "CanCook", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::CookingFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2048077970, + "hash2": 1437914456, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CookingMask", + "type_name_2": "ecs.CookingMask", + "qualified_name": "keen::ecs::CookingMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4149698225, + "hash2": 2460995806, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CookingData", + "type_name_2": "ecs.CookingData", + "qualified_name": "keen::ecs::CookingData", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2687238925, + "hash2": 956511269, + "struct_fields": [ + { + "name": "cookingHearthEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "skewerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "burnedFoodEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "cookFoodEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "baseItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "cookingItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 20 + }, + { + "name": "nextCookingItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 24 + }, + { + "name": "nextKnowledgeTriggerId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 28 + }, + { + "name": "cookingKnowledgeTriggerId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 32 + }, + { + "name": "cookingEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "requiredEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "mask", + "type_name": "keen::ecs::CookingMask", + "type_hash": 4149698225, + "data_offset": 44 + }, + { + "name": "state", + "type_name": "keen::ecs::CookingState", + "type_hash": 3683965582, + "data_offset": 45 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkCookingData", + "type_name_2": "ecs.NetworkCookingData", + "qualified_name": "keen::ecs::NetworkCookingData", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3139645925, + "hash2": 1403762047, + "struct_fields": [ + { + "name": "cookingHearthEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "mask", + "type_name": "keen::ecs::CookingMask", + "type_hash": 4149698225, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CookingNotifier", + "type_name_2": "ecs.CookingNotifier", + "qualified_name": "keen::ecs::CookingNotifier", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 532847267, + "hash2": 2018809137, + "struct_fields": [ + { + "name": "onFoodStateChange", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 0 + }, + { + "name": "onFoodBurned", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeRegeneration", + "type_name_2": "ecs.AttributeRegeneration", + "qualified_name": "keen::ecs::AttributeRegeneration", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3482526350, + "hash2": 744763285, + "struct_fields": [ + { + "name": "lastNegativeChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "lastValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthRecharge", + "type_name_2": "ecs.HealthRecharge", + "qualified_name": "keen::ecs::HealthRecharge", + "referenced_type_name": "keen::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 131161568, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaminaRecharge", + "type_name_2": "ecs.StaminaRecharge", + "qualified_name": "keen::ecs::StaminaRecharge", + "referenced_type_name": "keen::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 492153553, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ManaRegeneration", + "type_name_2": "ecs.ManaRegeneration", + "qualified_name": "keen::ecs::ManaRegeneration", + "referenced_type_name": "keen::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 817089083, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeatRecharge", + "type_name_2": "ecs.BodyHeatRecharge", + "qualified_name": "keen::ecs::BodyHeatRecharge", + "referenced_type_name": "keen::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 468624108, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaminaDepletion", + "type_name_2": "ecs.StaminaDepletion", + "qualified_name": "keen::ecs::StaminaDepletion", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2472066412, + "hash2": 348735389, + "struct_fields": [ + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeatDepletion", + "type_name_2": "ecs.BodyHeatDepletion", + "qualified_name": "keen::ecs::BodyHeatDepletion", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3420870507, + "hash2": 348735389, + "struct_fields": [ + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovementVector", + "type_name_2": "ecs.MovementVector", + "qualified_name": "keen::ecs::MovementVector", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1694025045, + "hash2": 3939610258, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "movement", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Projectile", + "type_name_2": "ecs.Projectile", + "qualified_name": "keen::ecs::Projectile", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1203927708, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParriableProjectile", + "type_name_2": "ecs.ParriableProjectile", + "qualified_name": "keen::ecs::ParriableProjectile", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2364962884, + "hash2": 1547853161, + "struct_fields": [ + { + "name": "parriedProjectileTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "launchPitchAngleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 16 + }, + { + "name": "launchSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParriedProjectile", + "type_name_2": "ecs.ParriedProjectile", + "qualified_name": "keen::ecs::ParriedProjectile", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3355420089, + "hash2": 3214262615, + "struct_fields": [ + { + "name": "originalFaction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 0 + }, + { + "name": "originalSpawnerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProjectileMode", + "type_name_2": "ecs.ProjectileMode", + "qualified_name": "keen::ecs::ProjectileMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2794674335, + "hash2": 1676473697, + "struct_fields": [], + "enum_fields": [ + { + "name": "Direct", + "value": 0 + }, + { + "name": "Ballistic", + "value": 1 + } + ] + }, + { + "type_name_1": "CirclingTargetSettings", + "type_name_2": "ecs.CirclingTargetSettings", + "qualified_name": "keen::ecs::CirclingTargetSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3038502252, + "hash2": 2093171428, + "struct_fields": [ + { + "name": "angleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "heightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "Angle[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::Angle", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3974176818, + "hash2": 1190389928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyProjectile", + "type_name_2": "ecs.EnemyProjectile", + "qualified_name": "keen::ecs::EnemyProjectile", + "referenced_type_name": "keen::ecs::Component", + "class_size": 100, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 3721652378, + "hash2": 411596888, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ecs::ProjectileMode", + "type_hash": 2794674335, + "data_offset": 0 + }, + { + "name": "targetOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxTries", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "force", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "addGravity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "useLowAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "lockTargetPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "hitAngles", + "type_name": "keen::BlobArray", + "type_hash": 3974176818, + "data_offset": 20 + }, + { + "name": "minPitch", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 28 + }, + { + "name": "maxPitch", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 32 + }, + { + "name": "maxHorizontalAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 36 + }, + { + "name": "useFixedTargetOffset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "targetOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 44 + }, + { + "name": "useCirclingTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "circlingTargetSettings", + "type_name": "keen::ecs::CirclingTargetSettings", + "type_hash": 3038502252, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticUsedItem", + "type_name_2": "ecs.StaticUsedItem", + "qualified_name": "keen::ecs::StaticUsedItem", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1036430471, + "hash2": 2614334813, + "struct_fields": [ + { + "name": "itemReference", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UsedItem", + "type_name_2": "ecs.UsedItem", + "qualified_name": "keen::ecs::UsedItem", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 184694301, + "hash2": 2775363502, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "bool[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::bool", + "class_size": 5, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3536054655, + "hash2": 3159321681, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkContainer", + "type_name_2": "ecs.PerkContainer", + "qualified_name": "keen::ecs::PerkContainer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3146402722, + "hash2": 1712814049, + "struct_fields": [ + { + "name": "perkIds", + "type_name": "keen::StaticArray", + "type_hash": 3270583016, + "data_offset": 0 + }, + { + "name": "perkIsUnlocked", + "type_name": "keen::StaticArray", + "type_hash": 3536054655, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DismantleVolumeClass", + "type_name_2": "ecs.DismantleVolumeClass", + "qualified_name": "keen::ecs::DismantleVolumeClass", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3504458572, + "hash2": 86020655, + "struct_fields": [], + "enum_fields": [ + { + "name": "Tiny", + "value": 0 + }, + { + "name": "Small", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "Large", + "value": 3 + } + ] + }, + { + "type_name_1": "DismantleMethod", + "type_name_2": "ecs.DismantleMethod", + "qualified_name": "keen::ecs::DismantleMethod", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3342760351, + "hash2": 2170268095, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "PickUp", + "value": 1 + }, + { + "name": "TearDown", + "value": 2 + } + ] + }, + { + "type_name_1": "DismantleOverride", + "type_name_2": "ecs.DismantleOverride", + "qualified_name": "keen::ecs::DismantleOverride", + "referenced_type_name": "keen::ecs::Component", + "class_size": 6, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1634803194, + "hash2": 2673796773, + "struct_fields": [ + { + "name": "overrideMethod", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "method", + "type_name": "keen::ecs::DismantleMethod", + "type_hash": 3342760351, + "data_offset": 1 + }, + { + "name": "overrideVolumeClass", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "volumeClass", + "type_name": "keen::ecs::DismantleVolumeClass", + "type_hash": 3504458572, + "data_offset": 3 + }, + { + "name": "ignoreBuildZoneChecks", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "preventDismantlingWithFilledInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientDismantleOverride", + "type_name_2": "ecs.ClientDismantleOverride", + "qualified_name": "keen::ecs::ClientDismantleOverride", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 913105223, + "hash2": 2246930220, + "struct_fields": [ + { + "name": "forceImmediateDismantlePrompt", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntitySpawnInfo", + "type_name_2": "ecs.SubEntitySpawnInfo", + "qualified_name": "keen::ecs::SubEntitySpawnInfo", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3701298031, + "hash2": 2086965207, + "struct_fields": [ + { + "name": "templateRef", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 56 + }, + { + "name": "hasKnowledgeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 60 + }, + { + "name": "knowledgeRequirementId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 164 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 168 + }, + { + "name": "despawnOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 169 + }, + { + "name": "addDespawnLink", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 170 + }, + { + "name": "addOwnerRelationship", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 171 + }, + { + "name": "doNotSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 172 + }, + { + "name": "copyConditionalDespawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 173 + }, + { + "name": "copyLevel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 174 + }, + { + "name": "addImpactHierarchy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 175 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SubEntitySpawnInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SubEntitySpawnInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 35620320, + "hash2": 3893011926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SubEntities", + "type_name_2": "ecs.SubEntities", + "qualified_name": "keen::ecs::SubEntities", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2321904032, + "hash2": 1519607572, + "struct_fields": [ + { + "name": "subEntities", + "type_name": "keen::BlobArray", + "type_hash": 35620320, + "data_offset": 0 + }, + { + "name": "hasSavedChildren", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 4122265852, + "hash2": 4206811103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSubEntities", + "type_name_2": "ecs.DynamicSubEntities", + "qualified_name": "keen::ecs::DynamicSubEntities", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3180674705, + "hash2": 2098835778, + "struct_fields": [ + { + "name": "subEntities", + "type_name": "keen::StaticArray", + "type_hash": 4122265852, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntitiesStop", + "type_name_2": "ecs.SubEntitiesStop", + "qualified_name": "keen::ecs::SubEntitiesStop", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 600250648, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleSubEntities", + "type_name_2": "ecs.ToggleSubEntities", + "qualified_name": "keen::ecs::ToggleSubEntities", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 970257964, + "hash2": 1133931085, + "struct_fields": [ + { + "name": "toggleModifier", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicToggleSubEntities", + "type_name_2": "ecs.DynamicToggleSubEntities", + "qualified_name": "keen::ecs::DynamicToggleSubEntities", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1322054581, + "hash2": 1118348789, + "struct_fields": [ + { + "name": "dontSpawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntityAttachmentMask", + "type_name_2": "ecs.SubEntityAttachmentMask", + "qualified_name": "keen::ecs::SubEntityAttachmentMask", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 571186045, + "hash2": 3310132884, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::AttachmentSlotMask", + "type_hash": 3578532875, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityAnimation", + "type_name_2": "ecs.EntityAnimation", + "qualified_name": "keen::ecs::EntityAnimation", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4133198510, + "hash2": 1134829799, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::JointAnimationReference", + "type_hash": 2415978205, + "data_offset": 0 + }, + { + "name": "animationHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "sampleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DespawnAfterSequence", + "type_name_2": "ecs.DespawnAfterSequence", + "qualified_name": "keen::ecs::DespawnAfterSequence", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2885138354, + "hash2": 1668254277, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponReference", + "type_name_2": "ecs.WeaponReference", + "qualified_name": "keen::ecs::WeaponReference", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3963203860, + "hash2": 3302326149, + "struct_fields": [ + { + "name": "weaponEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "weaponOwnerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionConfig", + "type_name_2": "ecs.HitReactionConfig", + "qualified_name": "keen::ecs::HitReactionConfig", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1553053041, + "hash2": 3019834338, + "struct_fields": [ + { + "name": "hitReactionOverlay", + "type_name": "keen::animationgraph::OverlayIdReference", + "type_hash": 2721499566, + "data_offset": 0 + }, + { + "name": "hitSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionBehavior", + "type_name_2": "ecs.HitReactionBehavior", + "qualified_name": "keen::ecs::HitReactionBehavior", + "referenced_type_name": "keen::ecs::Component", + "class_size": 288, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3345811349, + "hash2": 3274977210, + "struct_fields": [ + { + "name": "hitReactionBlockLightAttack", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 0 + }, + { + "name": "hitReactionLight", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 32 + }, + { + "name": "hitReactionHeavy", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 64 + }, + { + "name": "hitReactionBoss", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 96 + }, + { + "name": "hitReactionLongStun", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 128 + }, + { + "name": "hitReactionTrapStun", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 160 + }, + { + "name": "hitReactionShortStunBeGoneSkill", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 192 + }, + { + "name": "hitReactionThrowIntoAir", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 224 + }, + { + "name": "hitReactionWhileFlying", + "type_name": "keen::ecs::HitReactionConfig", + "type_hash": 1553053041, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityReferenceType", + "type_name_2": "ecs.EntityReferenceType", + "qualified_name": "keen::ecs::EntityReferenceType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 931428149, + "hash2": 3394777203, + "struct_fields": [], + "enum_fields": [ + { + "name": "Self", + "value": 0 + }, + { + "name": "Parent", + "value": 1 + }, + { + "name": "Weapon", + "value": 2 + } + ] + }, + { + "type_name_1": "LerpRenderTransform", + "type_name_2": "ecs.LerpRenderTransform", + "qualified_name": "keen::ecs::LerpRenderTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1453803914, + "hash2": 755248693, + "struct_fields": [ + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "entityReferenceType", + "type_name": "keen::ecs::EntityReferenceType", + "type_hash": 931428149, + "data_offset": 1 + }, + { + "name": "attachmentSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 2 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lerpValueStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "lerpValueEnd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "lerpTimeStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "translateDelta", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HomeToTarget", + "type_name_2": "ecs.HomeToTarget", + "qualified_name": "keen::ecs::HomeToTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 52, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2242648168, + "hash2": 1172912983, + "struct_fields": [ + { + "name": "targetLocalOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "turnSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "turnSpeedMinDistanceFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "turnSpeedMaxDistanceFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "turnSpeedMinDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "turnSpeedMaxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "acceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "maxSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "homeToCollisionTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "accelerateDependsOnAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHomeToTarget", + "type_name_2": "ecs.DynamicHomeToTarget", + "qualified_name": "keen::ecs::DynamicHomeToTarget", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2258092391, + "hash2": 4100078598, + "struct_fields": [ + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Boomerang", + "type_name_2": "ecs.Boomerang", + "qualified_name": "keen::ecs::Boomerang", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3562789753, + "hash2": 3865929004, + "struct_fields": [ + { + "name": "returnToSpawnerDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "destroyOnApproachSpawnerDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroTargetState", + "type_name_2": "ecs.AggroTargetState", + "qualified_name": "keen::ecs::AggroTargetState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1933201819, + "hash2": 1929169035, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unknown", + "value": 0 + }, + { + "name": "Aborted", + "value": 1 + }, + { + "name": "Noticed", + "value": 2 + }, + { + "name": "Alarmed", + "value": 3 + } + ] + }, + { + "type_name_1": "AggroPool", + "type_name_2": "ecs.AggroPool", + "qualified_name": "keen::ecs::AggroPool", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1067243281, + "hash2": 2798553701, + "struct_fields": [], + "enum_fields": [ + { + "name": "Senses", + "value": 0 + }, + { + "name": "Friends", + "value": 1 + }, + { + "name": "Enemies", + "value": 2 + }, + { + "name": "Count", + "value": 3 + } + ] + }, + { + "type_name_1": "AggroPoolData", + "type_name_2": "ecs.AggroPoolData", + "qualified_name": "keen::ecs::AggroPoolData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 562755521, + "hash2": 3124242308, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lastGain", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LineOfSightState", + "type_name_2": "ecs.LineOfSightState", + "qualified_name": "keen::ecs::LineOfSightState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2734496114, + "hash2": 928608119, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "InSight", + "value": 1 + }, + { + "name": "OutOfSight", + "value": 2 + }, + { + "name": "Count", + "value": 3 + } + ] + }, + { + "type_name_1": "TargetReachableState", + "type_name_2": "ecs.TargetReachableState", + "qualified_name": "keen::ecs::TargetReachableState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4166160274, + "hash2": 160355692, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unknown", + "value": 0 + }, + { + "name": "Reachable", + "value": 1 + }, + { + "name": "NotReachable", + "value": 2 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.AggroPoolData[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::AggroPoolData", + "class_size": 48, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 2537113556, + "hash2": 2531542142, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AggroTarget", + "type_name_2": "ecs.AggroTarget", + "qualified_name": "keen::ecs::AggroTarget", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3005013094, + "hash2": 3973975329, + "struct_fields": [ + { + "name": "aggroPools", + "type_name": "keen::StaticArray", + "type_hash": 2537113556, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::ecs::AggroTargetState", + "type_hash": 1933201819, + "data_offset": 48 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 52 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "lastLineOfSightQueryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "lineOfSightState", + "type_name": "keen::ecs::LineOfSightState", + "type_hash": 2734496114, + "data_offset": 72 + }, + { + "name": "lastStateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "faction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 88 + }, + { + "name": "pathLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "reachableState", + "type_name": "keen::ecs::TargetReachableState", + "type_hash": 4166160274, + "data_offset": 96 + }, + { + "name": "distanceToTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "enemyValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroTargetPathQuery", + "type_name_2": "ecs.AggroTargetPathQuery", + "qualified_name": "keen::ecs::AggroTargetPathQuery", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 934526347, + "hash2": 1244541218, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::PathQueryId", + "type_hash": 481614841, + "data_offset": 0 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastStart", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "lastTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.AggroTarget[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::AggroTarget", + "class_size": 672, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 1341650160, + "hash2": 2589011430, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.AggroTargetPathQuery[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::AggroTargetPathQuery", + "class_size": 240, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 1332324443, + "hash2": 207105744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Aggro", + "type_name_2": "ecs.Aggro", + "qualified_name": "keen::ecs::Aggro", + "referenced_type_name": "keen::ecs::Component", + "class_size": 928, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3833936707, + "hash2": 4207459696, + "struct_fields": [ + { + "name": "targets", + "type_name": "keen::StaticArray", + "type_hash": 1341650160, + "data_offset": 0 + }, + { + "name": "pathQueries", + "type_name": "keen::StaticArray", + "type_hash": 1332324443, + "data_offset": 672 + }, + { + "name": "nextAllowedTargetChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 912 + }, + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 920 + }, + { + "name": "applyEnemyValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 924 + }, + { + "name": "allowTargetSwitches", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 925 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerNoise", + "type_name_2": "ecs.TriggerNoise", + "qualified_name": "keen::ecs::TriggerNoise", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1252067765, + "hash2": 2047573578, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "nextTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "triggerInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerWalkingNoise", + "type_name_2": "ecs.TriggerWalkingNoise", + "qualified_name": "keen::ecs::TriggerWalkingNoise", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1628015542, + "hash2": 4050775535, + "struct_fields": [ + { + "name": "sneakRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "walkRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "runRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "sprintRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "nextTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "triggerInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray,8>", + "type_name_2": "Reference[8]", + "qualified_name": "keen::StaticArray,8>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1426844816, + "hash2": 841799110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyPhases", + "type_name_2": "ecs.EnemyPhases", + "qualified_name": "keen::ecs::EnemyPhases", + "referenced_type_name": "keen::ecs::Component", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 705152977, + "hash2": 3632298310, + "struct_fields": [ + { + "name": "phases", + "type_name": "keen::StaticArray,8>", + "type_hash": 1426844816, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyPhases", + "type_name_2": "ecs.DynamicEnemyPhases", + "qualified_name": "keen::ecs::DynamicEnemyPhases", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 161049516, + "hash2": 448338406, + "struct_fields": [ + { + "name": "lastPhase", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "currentPhase", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "currentPhaseStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "bool[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::bool", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1014403065, + "hash2": 25749605, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAiming", + "type_name_2": "ecs.EnemyAiming", + "qualified_name": "keen::ecs::EnemyAiming", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3749472858, + "hash2": 1440335497, + "struct_fields": [ + { + "name": "hitPattern", + "type_name": "keen::BlobArray", + "type_hash": 1014403065, + "data_offset": 0 + }, + { + "name": "minDistanceToMissTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyAiming", + "type_name_2": "ecs.DynamicEnemyAiming", + "qualified_name": "keen::ecs::DynamicEnemyAiming", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 646501799, + "hash2": 878450274, + "struct_fields": [ + { + "name": "hitIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "hitAngleIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "projectiles", + "type_name": "keen::StaticArray", + "type_hash": 1767329303, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContextualVector2Context", + "type_name_2": "ecs.ContextualVector2Context", + "qualified_name": "keen::ecs::ContextualVector2Context", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1781218250, + "hash2": 2122830593, + "struct_fields": [], + "enum_fields": [ + { + "name": "PositionDelta", + "value": 0 + }, + { + "name": "Velocity", + "value": 1 + } + ] + }, + { + "type_name_1": "ContextualVector2", + "type_name_2": "ecs.ContextualVector2", + "qualified_name": "keen::ecs::ContextualVector2", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 97166467, + "hash2": 1268272817, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::ecs::ContextualVector2Context", + "type_hash": 1781218250, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExecutionTarget", + "type_name_2": "ecs.ExecutionTarget", + "qualified_name": "keen::ecs::ExecutionTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1719344178, + "hash2": 1652194934, + "struct_fields": [ + { + "name": "executionRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "enableSneackAttackExecution", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "enableMercilessAttackExecution", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "minMercilessAttackHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "allowMercilessAttackRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "canMercilessAttackBeExecuted", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "waitForHealthAboveThreshold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "waitForStaminaRecharge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransferItemToInventoryFlag", + "type_name_2": "ecs.TransferItemToInventoryFlag", + "qualified_name": "keen::ecs::TransferItemToInventoryFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 389981620, + "hash2": 1628744215, + "struct_fields": [], + "enum_fields": [ + { + "name": "Gifting", + "value": 0 + }, + { + "name": "RefillStacks", + "value": 1 + }, + { + "name": "MoveAllStacks", + "value": 2 + }, + { + "name": "ToActionbar", + "value": 3 + }, + { + "name": "ToBackpack", + "value": 4 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::TransferItemToInventoryFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 789995330, + "hash2": 2681088585, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransferItemToInventoryFlags", + "type_name_2": "ecs.TransferItemToInventoryFlags", + "qualified_name": "keen::ecs::TransferItemToInventoryFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1587476549, + "hash2": 1078969413, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventoryTransferAction", + "type_name_2": "ecs.InventoryTransferAction", + "qualified_name": "keen::ecs::InventoryTransferAction", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1907837384, + "hash2": 4001242583, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "sourceSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + }, + { + "name": "targetSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 20 + }, + { + "name": "type", + "type_name": "keen::InventoryActionType", + "type_hash": 3916390888, + "data_offset": 28 + }, + { + "name": "flags", + "type_name": "keen::ecs::TransferItemToInventoryFlags", + "type_hash": 1587476549, + "data_offset": 29 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 30 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectSongAction", + "type_name_2": "ecs.SelectSongAction", + "qualified_name": "keen::ecs::SelectSongAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2883181932, + "hash2": 1346404210, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "songId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SortInventoryAction", + "type_name_2": "ecs.SortInventoryAction", + "qualified_name": "keen::ecs::SortInventoryAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 685593603, + "hash2": 2550258388, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "targetInventoryId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateBuildingItemAction", + "type_name_2": "ecs.CreateBuildingItemAction", + "qualified_name": "keen::ecs::CreateBuildingItemAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1316319950, + "hash2": 1172123838, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "selectedIndex", + "type_name": "keen::ActionbarSlotSelection", + "type_hash": 612424829, + "data_offset": 2 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateNpcItemAction", + "type_name_2": "ecs.CreateNpcItemAction", + "qualified_name": "keen::ecs::CreateNpcItemAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3307963799, + "hash2": 1808934986, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionbarSelectionAction", + "type_name_2": "ecs.ActionbarSelectionAction", + "qualified_name": "keen::ecs::ActionbarSelectionAction", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3448145334, + "hash2": 4292372756, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "selectedIndex", + "type_name": "keen::ActionbarSlotSelection", + "type_hash": 612424829, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryStockCycleAction", + "type_name_2": "ecs.InventoryStockCycleAction", + "qualified_name": "keen::ecs::InventoryStockCycleAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1707218351, + "hash2": 303749183, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "selectedItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 16, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3916732843, + "hash2": 3503560448, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParryAction", + "type_name_2": "ecs.ParryAction", + "qualified_name": "keen::ecs::ParryAction", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3565368849, + "hash2": 1193105332, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "targetEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 3916732843, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KickPlayerAction", + "type_name_2": "ecs.KickPlayerAction", + "qualified_name": "keen::ecs::KickPlayerAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2007982698, + "hash2": 2844546607, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropRewardAction", + "type_name_2": "ecs.TwitchDropRewardAction", + "qualified_name": "keen::ecs::TwitchDropRewardAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2624083644, + "hash2": 3215710453, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TombstoneMode", + "type_name_2": "ecs.TombstoneMode", + "qualified_name": "keen::ecs::TombstoneMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1086393673, + "hash2": 1589975205, + "struct_fields": [], + "enum_fields": [ + { + "name": "AddBackpackMaterials", + "value": 0 + }, + { + "name": "Everything", + "value": 1 + }, + { + "name": "NoTombstone", + "value": 2 + } + ] + }, + { + "type_name_1": "WeatherFrequency", + "type_name_2": "ecs.WeatherFrequency", + "qualified_name": "keen::ecs::WeatherFrequency", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 225883469, + "hash2": 2053486737, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Rare", + "value": 1 + }, + { + "name": "Normal", + "value": 2 + }, + { + "name": "Often", + "value": 3 + } + ] + }, + { + "type_name_1": "AggroPoolAmount", + "type_name_2": "ecs.AggroPoolAmount", + "qualified_name": "keen::ecs::AggroPoolAmount", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3980993373, + "hash2": 2475013914, + "struct_fields": [], + "enum_fields": [ + { + "name": "Few", + "value": 0 + }, + { + "name": "Normal", + "value": 1 + }, + { + "name": "Many", + "value": 2 + }, + { + "name": "Extreme", + "value": 3 + } + ] + }, + { + "type_name_1": "TamingStartleRepercussion", + "type_name_2": "ecs.TamingStartleRepercussion", + "qualified_name": "keen::ecs::TamingStartleRepercussion", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 719662340, + "hash2": 398786076, + "struct_fields": [], + "enum_fields": [ + { + "name": "KeepProgress", + "value": 0 + }, + { + "name": "LoseSomeProgress", + "value": 1 + }, + { + "name": "LoseAllProgress", + "value": 2 + } + ] + }, + { + "type_name_1": "GameSettings", + "type_name_2": "ecs.GameSettings", + "qualified_name": "keen::ecs::GameSettings", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 2298714128, + "hash2": 3864105846, + "struct_fields": [ + { + "name": "playerHealthFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "playerManaFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "playerStaminaFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "playerBodyHeatFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "enableDurability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "enableStarvingDebuff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "foodBuffDurationFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "fromHungerToStarving", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "shroudTimeFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "tombstoneMode", + "type_name": "keen::ecs::TombstoneMode", + "type_hash": 1086393673, + "data_offset": 36 + }, + { + "name": "enableGliderTurbulences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "weatherFrequency", + "type_name": "keen::ecs::WeatherFrequency", + "type_hash": 225883469, + "data_offset": 38 + }, + { + "name": "miningDamageFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "plantGrowthSpeedFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "resourceDropStackAmountFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "factoryProductionSpeedFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + }, + { + "name": "perkUpgradeRecyclingFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "perkCostFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "experienceCombatFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "experienceMiningFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "experienceExplorationQuestsFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "randomSpawnerAmount", + "type_name": "keen::ecs::RandomSpawnerAmount", + "type_hash": 1712700864, + "data_offset": 76 + }, + { + "name": "aggroPoolAmount", + "type_name": "keen::ecs::AggroPoolAmount", + "type_hash": 3980993373, + "data_offset": 77 + }, + { + "name": "enemyDamageFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "enemyHealthFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "enemyStaminaFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "enemyPerceptionRangeFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "bossDamageFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "bossHealthFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "threatBonus", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "pacifyAllEnemies", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 108 + }, + { + "name": "tamingStartleRepercussion", + "type_name": "keen::ecs::TamingStartleRepercussion", + "type_hash": 719662340, + "data_offset": 109 + }, + { + "name": "dayTimeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "nightTimeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminChangeGameSettingsAction", + "type_name_2": "ecs.AdminChangeGameSettingsAction", + "qualified_name": "keen::ecs::AdminChangeGameSettingsAction", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2925255943, + "hash2": 172681143, + "struct_fields": [ + { + "name": "gameSettings", + "type_name": "keen::ecs::GameSettings", + "type_hash": 2298714128, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminApplyInventoryCommand", + "type_name_2": "ecs.AdminApplyInventoryCommand", + "qualified_name": "keen::ecs::AdminApplyInventoryCommand", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1258219595, + "hash2": 4126136241, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "inventoryGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "clearInventories", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSpawnCommand", + "type_name_2": "ecs.AdminSpawnCommand", + "qualified_name": "keen::ecs::AdminSpawnCommand", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 115080354, + "hash2": 728146138, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "optionalDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "count", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 21 + }, + { + "name": "useRoaming", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "showSpawnSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "spawnAsGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "spawnAsFakePlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "followPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "autoDestroyTicks", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 27 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminKillFactionCommand", + "type_name_2": "ecs.AdminKillFactionCommand", + "qualified_name": "keen::ecs::AdminKillFactionCommand", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2425948247, + "hash2": 628873261, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "factionMask", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 2 + }, + { + "name": "playerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemRarity", + "type_name_2": "ItemRarity", + "qualified_name": "keen::ItemRarity", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1738713322, + "hash2": 766127095, + "struct_fields": [], + "enum_fields": [ + { + "name": "Common", + "value": 0 + }, + { + "name": "Uncommon", + "value": 1 + }, + { + "name": "Rare", + "value": 2 + }, + { + "name": "Epic", + "value": 3 + }, + { + "name": "Legendary", + "value": 4 + }, + { + "name": "Count", + "value": 5 + } + ] + }, + { + "type_name_1": "AdminInventoryCreateAction", + "type_name_2": "ecs.AdminInventoryCreateAction", + "qualified_name": "keen::ecs::AdminInventoryCreateAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3054946460, + "hash2": 2471483918, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 4 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "rarity", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 8 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "createForAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "createFullStack", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "fillEmptyStacks", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "maximizeCharacter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "cleanupInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "flameLevelUpgrade", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminTeleportAction", + "type_name_2": "ecs.AdminTeleportAction", + "qualified_name": "keen::ecs::AdminTeleportAction", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2765921627, + "hash2": 4038976086, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::ecs::Transform", + "type_hash": 3337399369, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSetDayTimeAction", + "type_name_2": "ecs.AdminSetDayTimeAction", + "qualified_name": "keen::ecs::AdminSetDayTimeAction", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3509188615, + "hash2": 891067119, + "struct_fields": [ + { + "name": "syncDaytime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "syncDaytimeTick", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminDestroyItemAction", + "type_name_2": "ecs.AdminDestroyItemAction", + "qualified_name": "keen::ecs::AdminDestroyItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 393061997, + "hash2": 48177226, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSetFlameLevel", + "type_name_2": "ecs.AdminSetFlameLevel", + "qualified_name": "keen::ecs::AdminSetFlameLevel", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4035714569, + "hash2": 2780847942, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "flameLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSetCharacterLevel", + "type_name_2": "ecs.AdminSetCharacterLevel", + "qualified_name": "keen::ecs::AdminSetCharacterLevel", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3044075409, + "hash2": 3963280932, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminPerkAction", + "type_name_2": "ecs.AdminPerkAction", + "qualified_name": "keen::ecs::AdminPerkAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4124002824, + "hash2": 3956263770, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 4 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminDebugCameraDisplayAction", + "type_name_2": "ecs.AdminDebugCameraDisplayAction", + "qualified_name": "keen::ecs::AdminDebugCameraDisplayAction", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3725953242, + "hash2": 613411796, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeCustomizationAction", + "type_name_2": "ecs.ChangeCustomizationAction", + "qualified_name": "keen::ecs::ChangeCustomizationAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 994245874, + "hash2": 674261881, + "struct_fields": [ + { + "name": "targetSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 8 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarActionType", + "type_name_2": "ecs.FlameAltarActionType", + "qualified_name": "keen::ecs::FlameAltarActionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2241584764, + "hash2": 180780295, + "struct_fields": [], + "enum_fields": [ + { + "name": "Abandon", + "value": 0 + }, + { + "name": "Reclaim", + "value": 1 + } + ] + }, + { + "type_name_1": "FlameAltarAction", + "type_name_2": "ecs.FlameAltarAction", + "qualified_name": "keen::ecs::FlameAltarAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3421683252, + "hash2": 2070732735, + "struct_fields": [ + { + "name": "baseEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::ecs::FlameAltarActionType", + "type_hash": 2241584764, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportAction", + "type_name_2": "ecs.TeleportAction", + "qualified_name": "keen::ecs::TeleportAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 501102874, + "hash2": 4162900443, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockSkillAction", + "type_name_2": "ecs.UnlockSkillAction", + "qualified_name": "keen::ecs::UnlockSkillAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2865354966, + "hash2": 1821976122, + "struct_fields": [ + { + "name": "skillId", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 0 + }, + { + "name": "resetSkills", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminUnlearnSkillAction", + "type_name_2": "ecs.AdminUnlearnSkillAction", + "qualified_name": "keen::ecs::AdminUnlearnSkillAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 445790716, + "hash2": 1251830122, + "struct_fields": [ + { + "name": "skillId", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerKnowledgeAction", + "type_name_2": "ecs.TriggerKnowledgeAction", + "qualified_name": "keen::ecs::TriggerKnowledgeAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 276998701, + "hash2": 1032497089, + "struct_fields": [ + { + "name": "dialogOptionId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetPersonalProgressionAction", + "type_name_2": "ecs.SetPersonalProgressionAction", + "qualified_name": "keen::ecs::SetPersonalProgressionAction", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1172661442, + "hash2": 3765248944, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientHelper", + "type_name_2": "ecs.AmbientHelper", + "qualified_name": "keen::ecs::AmbientHelper", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1493371633, + "hash2": 2351831954, + "struct_fields": [ + { + "name": "ambientMask", + "type_name": "keen::AmbientMask", + "type_hash": 1661550082, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaypointAction", + "type_name_2": "ecs.WaypointAction", + "qualified_name": "keen::ecs::WaypointAction", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2112834362, + "hash2": 2555050897, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "isPing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 26 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectDialogOptionAction", + "type_name_2": "ecs.SelectDialogOptionAction", + "qualified_name": "keen::ecs::SelectDialogOptionAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1349378068, + "hash2": 2241135210, + "struct_fields": [ + { + "name": "dialogOptionId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "targetNpc", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcInputAction", + "type_name_2": "ecs.NpcInputAction", + "qualified_name": "keen::ecs::NpcInputAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4047895352, + "hash2": 87932984, + "struct_fields": [ + { + "name": "targetNpc", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 0 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeId", + "type_name_2": "RecipeId", + "qualified_name": "keen::RecipeId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3262568217, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftRecipeAction", + "type_name_2": "ecs.CraftRecipeAction", + "qualified_name": "keen::ecs::CraftRecipeAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 698644935, + "hash2": 3262185078, + "struct_fields": [ + { + "name": "craftingStationId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 4 + }, + { + "name": "recipeAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AutomaticTransferAction", + "type_name_2": "ecs.AutomaticTransferAction", + "qualified_name": "keen::ecs::AutomaticTransferAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4278758379, + "hash2": 1981224862, + "struct_fields": [ + { + "name": "craftingStationId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 4 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 8 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectCraftingStationRecipeAction", + "type_name_2": "ecs.SelectCraftingStationRecipeAction", + "qualified_name": "keen::ecs::SelectCraftingStationRecipeAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2657341639, + "hash2": 983844758, + "struct_fields": [ + { + "name": "craftingStationId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkUnlockAction", + "type_name_2": "ecs.PerkUnlockAction", + "qualified_name": "keen::ecs::PerkUnlockAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2410065301, + "hash2": 48177226, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TrashItemAction", + "type_name_2": "ecs.TrashItemAction", + "qualified_name": "keen::ecs::TrashItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1334806262, + "hash2": 48177226, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeEquipment", + "type_name_2": "ecs.ChangeEquipment", + "qualified_name": "keen::ecs::ChangeEquipment", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3164312973, + "hash2": 2143660374, + "struct_fields": [], + "enum_fields": [ + { + "name": "Equip", + "value": 0 + }, + { + "name": "Unequip", + "value": 1 + } + ] + }, + { + "type_name_1": "ChangeEquipmentAction", + "type_name_2": "ecs.ChangeEquipmentAction", + "qualified_name": "keen::ecs::ChangeEquipmentAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3541661911, + "hash2": 2602170915, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 8 + }, + { + "name": "equipmentSlot", + "type_name": "keen::EquipmentSlot", + "type_hash": 2267233658, + "data_offset": 10 + }, + { + "name": "type", + "type_name": "keen::ecs::ChangeEquipment", + "type_hash": 3164312973, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SwapEquipmentTarget", + "type_name_2": "ecs.SwapEquipmentTarget", + "qualified_name": "keen::ecs::SwapEquipmentTarget", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 383536097, + "hash2": 3485183568, + "struct_fields": [], + "enum_fields": [ + { + "name": "ActiveEquipment", + "value": 0 + }, + { + "name": "Vanity", + "value": 1 + } + ] + }, + { + "type_name_1": "SwapEquipmentSetAction", + "type_name_2": "ecs.SwapEquipmentSetAction", + "qualified_name": "keen::ecs::SwapEquipmentSetAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3777836962, + "hash2": 1741593455, + "struct_fields": [ + { + "name": "targetInventoryId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "target", + "type_name": "keen::ecs::SwapEquipmentTarget", + "type_hash": 383536097, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConsumeItemAction", + "type_name_2": "ecs.ConsumeItemAction", + "qualified_name": "keen::ecs::ConsumeItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3582924314, + "hash2": 1231375514, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InspectItemAction", + "type_name_2": "ecs.InspectItemAction", + "qualified_name": "keen::ecs::InspectItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 485246312, + "hash2": 1231375514, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RepairAllItemsAction", + "type_name_2": "ecs.RepairAllItemsAction", + "qualified_name": "keen::ecs::RepairAllItemsAction", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2549431245, + "hash2": 90914664, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CraftingPropDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1206665003, + "hash2": 2898126960, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RequiredCraftingProp", + "type_name_2": "ecs.RequiredCraftingProp", + "qualified_name": "keen::ecs::RequiredCraftingProp", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3298094549, + "hash2": 1049303936, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ObjectReference", + "type_hash": 1206665003, + "data_offset": 0 + }, + { + "name": "craftingPropId", + "type_name": "keen::CraftingPropId", + "type_hash": 1996460724, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactoryStationState", + "type_name_2": "ecs.FactoryStationState", + "qualified_name": "keen::ecs::FactoryStationState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2011803866, + "hash2": 2708231925, + "struct_fields": [], + "enum_fields": [ + { + "name": "NoRecipe", + "value": 0 + }, + { + "name": "MissingMaterials", + "value": 1 + }, + { + "name": "Running", + "value": 2 + }, + { + "name": "MissingOutputSpace", + "value": 3 + } + ] + }, + { + "type_name_1": "FactoryStation", + "type_name_2": "ecs.FactoryStation", + "qualified_name": "keen::ecs::FactoryStation", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 89757305, + "hash2": 1239335492, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ecs::FactoryStationState", + "type_hash": 2011803866, + "data_offset": 0 + }, + { + "name": "runningRecipe", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 4 + }, + { + "name": "nextRecipe", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 8 + }, + { + "name": "recipeStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactoryStationClient", + "type_name_2": "ecs.FactoryStationClient", + "qualified_name": "keen::ecs::FactoryStationClient", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1174076562, + "hash2": 3455599497, + "struct_fields": [ + { + "name": "soundLoopRunning", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "soundLoopRunningHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiBlueprintShapeSelection", + "type_name_2": "ecs.UiBlueprintShapeSelection", + "qualified_name": "keen::ecs::UiBlueprintShapeSelection", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2765075325, + "hash2": 4072871582, + "struct_fields": [ + { + "name": "selectionIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "sint8", + "type_name_2": "sint8", + "qualified_name": "keen::sint8", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Sint8", + "hash1": 1490579016, + "hash2": 2052203321, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPlayerInput", + "type_name_2": "ecs.UiPlayerInput", + "qualified_name": "keen::ecs::UiPlayerInput", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 4128231644, + "hash2": 1748680067, + "struct_fields": [ + { + "name": "lootSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 0 + }, + { + "name": "blueprintPageSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 1 + }, + { + "name": "blueprintShapeSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 2 + }, + { + "name": "blueprintShapeSelection", + "type_name": "keen::ecs::UiBlueprintShapeSelection", + "type_hash": 2765075325, + "data_offset": 3 + }, + { + "name": "dismantleHoldProgress", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "canCycleInventoryStock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "isInventoryStockCyclingDisabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "isBlueprintPageSelectionModifierActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "isTertiaryActionAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "showTutorial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "showInventoryStock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "showActionbarWheel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "showQuickEquipWheel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "jumpToNotification", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerInput", + "type_name_2": "ecs.ClientOnlyPlayerInput", + "qualified_name": "keen::ecs::ClientOnlyPlayerInput", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3632233777, + "hash2": 729342669, + "struct_fields": [ + { + "name": "actionbarSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 0 + }, + { + "name": "inventoryStockCycleDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 1 + }, + { + "name": "songSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 2 + }, + { + "name": "zoomInputDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCamera", + "type_name_2": "ecs.ClientCamera", + "qualified_name": "keen::ecs::ClientCamera", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3611330567, + "hash2": 3312312296, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 24 + }, + { + "name": "distance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "fovY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "aspectRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "nearPlane", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "farPlane", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerState", + "type_name_2": "ecs.ClientPlayerState", + "qualified_name": "keen::ecs::ClientPlayerState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1788222174, + "hash2": 1163619290, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsInBlueprintMenu", + "value": 0 + }, + { + "name": "IsInLootingMenu", + "value": 1 + }, + { + "name": "IsInFreeCam", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::ClientPlayerState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1032868268, + "hash2": 1870378490, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerStateMask", + "type_name_2": "ecs.ClientPlayerStateMask", + "qualified_name": "keen::ecs::ClientPlayerStateMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2888378478, + "hash2": 1880956916, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerInputType", + "type_name_2": "ecs.PlayerInputType", + "qualified_name": "keen::ecs::PlayerInputType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 40, + "primitive_type": "Enum", + "hash1": 685034554, + "hash2": 3022579865, + "struct_fields": [], + "enum_fields": [ + { + "name": "MainhandAction", + "value": 0 + }, + { + "name": "MainhandAction_Release", + "value": 1 + }, + { + "name": "ContextualAction", + "value": 2 + }, + { + "name": "ContextualAction_Tap", + "value": 3 + }, + { + "name": "ContextualAction_Hold", + "value": 4 + }, + { + "name": "CancelAction", + "value": 5 + }, + { + "name": "QuickUse0", + "value": 6 + }, + { + "name": "QuickUse1", + "value": 7 + }, + { + "name": "QuickUse2", + "value": 8 + }, + { + "name": "QuickUse3", + "value": 9 + }, + { + "name": "QuickUse4", + "value": 10 + }, + { + "name": "QuickUse5", + "value": 11 + }, + { + "name": "QuickUse6", + "value": 12 + }, + { + "name": "QuickUse7", + "value": 13 + }, + { + "name": "QuickUse0_Release", + "value": 14 + }, + { + "name": "QuickUse1_Release", + "value": 15 + }, + { + "name": "QuickUse2_Release", + "value": 16 + }, + { + "name": "QuickUse3_Release", + "value": 17 + }, + { + "name": "QuickUse4_Release", + "value": 18 + }, + { + "name": "QuickUse5_Release", + "value": 19 + }, + { + "name": "QuickUse6_Release", + "value": 20 + }, + { + "name": "QuickUse7_Release", + "value": 21 + }, + { + "name": "Block", + "value": 22 + }, + { + "name": "Evade", + "value": 23 + }, + { + "name": "Jump", + "value": 24 + }, + { + "name": "Jump_Hold", + "value": 25 + }, + { + "name": "Glider", + "value": 26 + }, + { + "name": "Respawn", + "value": 27 + }, + { + "name": "BuildingUndo", + "value": 28 + }, + { + "name": "BuildingBlueprintSnapping", + "value": 29 + }, + { + "name": "BuildingVoxelGridSnapping", + "value": 30 + }, + { + "name": "LockCombatTarget", + "value": 31 + }, + { + "name": "CombatTargetSelectPrevious", + "value": 32 + }, + { + "name": "CombatTargetSelectNext", + "value": 33 + }, + { + "name": "RangedCombatArm", + "value": 34 + }, + { + "name": "RangedCombatShoot", + "value": 35 + }, + { + "name": "Sprint", + "value": 36 + }, + { + "name": "Sneak", + "value": 37 + }, + { + "name": "Sit", + "value": 38 + }, + { + "name": "Count", + "value": 39 + } + ] + }, + { + "type_name_1": "Bitmask64", + "type_name_2": "Bitmask64", + "qualified_name": "keen::Bitmask64", + "referenced_type_name": "keen::ecs::PlayerInputType", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Bitmask64", + "hash1": 2206149208, + "hash2": 1099503109, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerDigitalInput", + "type_name_2": "ecs.PlayerDigitalInput", + "qualified_name": "keen::ecs::PlayerDigitalInput", + "referenced_type_name": "keen::Bitmask64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 128955298, + "hash2": 3332763646, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInputData", + "type_name_2": "ecs.ClientPlayerInputData", + "qualified_name": "keen::ecs::ClientPlayerInputData", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 39, + "primitive_type": "Struct", + "hash1": 2256376715, + "hash2": 3748115871, + "struct_fields": [ + { + "name": "inventoryTransferAction", + "type_name": "keen::ecs::InventoryTransferAction", + "type_hash": 1907837384, + "data_offset": 0 + }, + { + "name": "camera", + "type_name": "keen::ecs::ClientCamera", + "type_hash": 3611330567, + "data_offset": 32 + }, + { + "name": "actionbarSelectionAction", + "type_name": "keen::ecs::ActionbarSelectionAction", + "type_hash": 3448145334, + "data_offset": 96 + }, + { + "name": "sortInventoryAction", + "type_name": "keen::ecs::SortInventoryAction", + "type_hash": 685593603, + "data_offset": 100 + }, + { + "name": "selectSongAction", + "type_name": "keen::ecs::SelectSongAction", + "type_hash": 2883181932, + "data_offset": 108 + }, + { + "name": "inventoryStockCycleAction", + "type_name": "keen::ecs::InventoryStockCycleAction", + "type_hash": 1707218351, + "data_offset": 116 + }, + { + "name": "craftRecipeAction", + "type_name": "keen::ecs::CraftRecipeAction", + "type_hash": 698644935, + "data_offset": 124 + }, + { + "name": "automaticTransferAction", + "type_name": "keen::ecs::AutomaticTransferAction", + "type_hash": 4278758379, + "data_offset": 136 + }, + { + "name": "selectCraftingStationRecipeAction", + "type_name": "keen::ecs::SelectCraftingStationRecipeAction", + "type_hash": 2657341639, + "data_offset": 152 + }, + { + "name": "changeCustomizationAction", + "type_name": "keen::ecs::ChangeCustomizationAction", + "type_hash": 994245874, + "data_offset": 164 + }, + { + "name": "teleportAction", + "type_name": "keen::ecs::TeleportAction", + "type_hash": 501102874, + "data_offset": 180 + }, + { + "name": "unlockSkillAction", + "type_name": "keen::ecs::UnlockSkillAction", + "type_hash": 2865354966, + "data_offset": 188 + }, + { + "name": "triggerKnowledgeAction", + "type_name": "keen::ecs::TriggerKnowledgeAction", + "type_hash": 276998701, + "data_offset": 196 + }, + { + "name": "setPersonalProgressionAction", + "type_name": "keen::ecs::SetPersonalProgressionAction", + "type_hash": 1172661442, + "data_offset": 208 + }, + { + "name": "selectDialogOptionAction", + "type_name": "keen::ecs::SelectDialogOptionAction", + "type_hash": 1349378068, + "data_offset": 212 + }, + { + "name": "npcInputAction", + "type_name": "keen::ecs::NpcInputAction", + "type_hash": 4047895352, + "data_offset": 224 + }, + { + "name": "changeEquipmentAction", + "type_name": "keen::ecs::ChangeEquipmentAction", + "type_hash": 3541661911, + "data_offset": 236 + }, + { + "name": "swapEquipmentSetAction", + "type_name": "keen::ecs::SwapEquipmentSetAction", + "type_hash": 3777836962, + "data_offset": 248 + }, + { + "name": "consumeItemAction", + "type_name": "keen::ecs::ConsumeItemAction", + "type_hash": 3582924314, + "data_offset": 256 + }, + { + "name": "inspectItemAction", + "type_name": "keen::ecs::InspectItemAction", + "type_hash": 485246312, + "data_offset": 268 + }, + { + "name": "repairAllItemsAction", + "type_name": "keen::ecs::RepairAllItemsAction", + "type_hash": 2549431245, + "data_offset": 280 + }, + { + "name": "createBuildingItemAction", + "type_name": "keen::ecs::CreateBuildingItemAction", + "type_hash": 1316319950, + "data_offset": 284 + }, + { + "name": "createNpcItemAction", + "type_name": "keen::ecs::CreateNpcItemAction", + "type_hash": 3307963799, + "data_offset": 292 + }, + { + "name": "perkUnlockAction", + "type_name": "keen::ecs::PerkUnlockAction", + "type_hash": 2410065301, + "data_offset": 300 + }, + { + "name": "trashItemAction", + "type_name": "keen::ecs::TrashItemAction", + "type_hash": 1334806262, + "data_offset": 312 + }, + { + "name": "flameAltarAction", + "type_name": "keen::ecs::FlameAltarAction", + "type_hash": 3421683252, + "data_offset": 324 + }, + { + "name": "waypointAction", + "type_name": "keen::ecs::WaypointAction", + "type_hash": 2112834362, + "data_offset": 336 + }, + { + "name": "parryAction", + "type_name": "keen::ecs::ParryAction", + "type_hash": 3565368849, + "data_offset": 368 + }, + { + "name": "kickPlayerAction", + "type_name": "keen::ecs::KickPlayerAction", + "type_hash": 2007982698, + "data_offset": 388 + }, + { + "name": "twitchDropRewardAction", + "type_name": "keen::ecs::TwitchDropRewardAction", + "type_hash": 2624083644, + "data_offset": 396 + }, + { + "name": "movementStick", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 408 + }, + { + "name": "cameraRotationInput", + "type_name": "keen::ecs::ContextualVector2", + "type_hash": 97166467, + "data_offset": 416 + }, + { + "name": "buildingRotation", + "type_name": "keen::sint16", + "type_hash": 1285853487, + "data_offset": 428 + }, + { + "name": "buildingDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 430 + }, + { + "name": "mask", + "type_name": "keen::ecs::ClientPlayerStateMask", + "type_hash": 2888378478, + "data_offset": 431 + }, + { + "name": "digitalInput", + "type_name": "keen::ecs::PlayerDigitalInput", + "type_hash": 128955298, + "data_offset": 432 + }, + { + "name": "respawnActionHoldDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 440 + }, + { + "name": "debugEventTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 448 + }, + { + "name": "debugUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 456 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminClientPlayerInputData", + "type_name_2": "ecs.AdminClientPlayerInputData", + "qualified_name": "keen::ecs::AdminClientPlayerInputData", + "referenced_type_name": null, + "class_size": 328, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3188697164, + "hash2": 4048814207, + "struct_fields": [ + { + "name": "adminInventoryCreateAction", + "type_name": "keen::ecs::AdminInventoryCreateAction", + "type_hash": 3054946460, + "data_offset": 0 + }, + { + "name": "adminSpawnCommand", + "type_name": "keen::ecs::AdminSpawnCommand", + "type_hash": 115080354, + "data_offset": 16 + }, + { + "name": "adminKillFaction", + "type_name": "keen::ecs::AdminKillFactionCommand", + "type_hash": 2425948247, + "data_offset": 44 + }, + { + "name": "adminTeleport", + "type_name": "keen::ecs::AdminTeleportAction", + "type_hash": 2765921627, + "data_offset": 52 + }, + { + "name": "adminApplyInventory", + "type_name": "keen::ecs::AdminApplyInventoryCommand", + "type_hash": 1258219595, + "data_offset": 84 + }, + { + "name": "adminSetDaytime", + "type_name": "keen::ecs::AdminSetDayTimeAction", + "type_hash": 3509188615, + "data_offset": 112 + }, + { + "name": "adminDestroyItemAction", + "type_name": "keen::ecs::AdminDestroyItemAction", + "type_hash": 393061997, + "data_offset": 136 + }, + { + "name": "adminSetFlameLevel", + "type_name": "keen::ecs::AdminSetFlameLevel", + "type_hash": 4035714569, + "data_offset": 148 + }, + { + "name": "adminSetCharacterLevel", + "type_name": "keen::ecs::AdminSetCharacterLevel", + "type_hash": 3044075409, + "data_offset": 152 + }, + { + "name": "adminPerkAction", + "type_name": "keen::ecs::AdminPerkAction", + "type_hash": 4124002824, + "data_offset": 164 + }, + { + "name": "adminDebugCameraDisplayAction", + "type_name": "keen::ecs::AdminDebugCameraDisplayAction", + "type_hash": 3725953242, + "data_offset": 180 + }, + { + "name": "adminUnlearnSkillAction", + "type_name": "keen::ecs::AdminUnlearnSkillAction", + "type_hash": 445790716, + "data_offset": 184 + }, + { + "name": "adminChangeGameSettingsAction", + "type_name": "keen::ecs::AdminChangeGameSettingsAction", + "type_hash": 2925255943, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DoubleInputBindings", + "type_name_2": "ecs.DoubleInputBindings", + "qualified_name": "keen::ecs::DoubleInputBindings", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 3147542368, + "hash2": 3940555192, + "struct_fields": [], + "enum_fields": [ + { + "name": "SprintAndSneak", + "value": 0 + }, + { + "name": "BlockAndEvade", + "value": 1 + }, + { + "name": "UndoAndEvade", + "value": 2 + }, + { + "name": "JumpAndGlider", + "value": 3 + }, + { + "name": "BuildingSnappingAndSitting", + "value": 4 + }, + { + "name": "BuildingMenuAndLockTarget", + "value": 5 + }, + { + "name": "BuildingMenuAndSitting", + "value": 6 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::DoubleInputBindings", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3542484718, + "hash2": 2207063325, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DoubleInputBindingsMask", + "type_name_2": "ecs.DoubleInputBindingsMask", + "qualified_name": "keen::ecs::DoubleInputBindingsMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4119075992, + "hash2": 2196058218, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInputHistoryEntry", + "type_name_2": "ecs.ClientPlayerInputHistoryEntry", + "qualified_name": "keen::ecs::ClientPlayerInputHistoryEntry", + "referenced_type_name": null, + "class_size": 472, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 508391067, + "hash2": 3416001971, + "struct_fields": [ + { + "name": "frameTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::ecs::ClientPlayerInputData", + "type_hash": 2256376715, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSettingFlags", + "type_name_2": "ecs.PlayerSettingFlags", + "qualified_name": "keen::ecs::PlayerSettingFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1629013997, + "hash2": 601841930, + "struct_fields": [], + "enum_fields": [ + { + "name": "KeepTargetLockWhenSprinting", + "value": 0 + }, + { + "name": "KeepTargetLockWhenInvalid", + "value": 1 + }, + { + "name": "HideHelmet", + "value": 2 + }, + { + "name": "HideGloves", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::PlayerSettingFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3375206389, + "hash2": 3619836831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSettingMask", + "type_name_2": "ecs.PlayerSettingMask", + "qualified_name": "keen::ecs::PlayerSettingMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1893728122, + "hash2": 525424668, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerSettings", + "type_name_2": "ecs.ClientPlayerSettings", + "qualified_name": "keen::ecs::ClientPlayerSettings", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3333447328, + "hash2": 1595488472, + "struct_fields": [ + { + "name": "attackDirectionInput", + "type_name": "keen::AttackDirectionInput", + "type_hash": 3043738149, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ecs::PlayerSettingMask", + "type_hash": 1893728122, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInputToggleConfig", + "type_name_2": "ecs.ClientPlayerInputToggleConfig", + "qualified_name": "keen::ecs::ClientPlayerInputToggleConfig", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3180431621, + "hash2": 3553911399, + "struct_fields": [ + { + "name": "configuredAsToggle", + "type_name": "keen::ecs::PlayerDigitalInput", + "type_hash": 128955298, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInput", + "type_name_2": "ecs.ClientPlayerInput", + "qualified_name": "keen::ecs::ClientPlayerInput", + "referenced_type_name": "keen::ecs::Component", + "class_size": 832, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2518803651, + "hash2": 3827001526, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::ecs::ClientPlayerInputData", + "type_hash": 2256376715, + "data_offset": 0 + }, + { + "name": "adminCommands", + "type_name": "keen::ecs::AdminClientPlayerInputData", + "type_hash": 3188697164, + "data_offset": 464 + }, + { + "name": "toggleConfig", + "type_name": "keen::ecs::ClientPlayerInputToggleConfig", + "type_hash": 3180431621, + "data_offset": 792 + }, + { + "name": "doubleInputBindings", + "type_name": "keen::ecs::DoubleInputBindingsMask", + "type_hash": 4119075992, + "data_offset": 800 + }, + { + "name": "inputMode", + "type_name": "keen::InputMode", + "type_hash": 2461075969, + "data_offset": 801 + }, + { + "name": "clientOnlyPlayerInput", + "type_name": "keen::ecs::ClientOnlyPlayerInput", + "type_hash": 3632233777, + "data_offset": 802 + }, + { + "name": "uiPlayerInput", + "type_name": "keen::ecs::UiPlayerInput", + "type_hash": 4128231644, + "data_offset": 808 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerInput", + "type_name_2": "ecs.PlayerInput", + "qualified_name": "keen::ecs::PlayerInput", + "referenced_type_name": "keen::ecs::Component", + "class_size": 816, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4216296538, + "hash2": 1215830632, + "struct_fields": [ + { + "name": "serverTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "fromClient", + "type_name": "keen::ecs::ClientPlayerInputData", + "type_hash": 2256376715, + "data_offset": 8 + }, + { + "name": "fromAdminClient", + "type_name": "keen::ecs::AdminClientPlayerInputData", + "type_hash": 3188697164, + "data_offset": 472 + }, + { + "name": "fromClientToggleConfig", + "type_name": "keen::ecs::ClientPlayerInputToggleConfig", + "type_hash": 3180431621, + "data_offset": 800 + }, + { + "name": "fromClientDoubleInputBindings", + "type_name": "keen::ecs::DoubleInputBindingsMask", + "type_hash": 4119075992, + "data_offset": 808 + }, + { + "name": "fromClientInputMode", + "type_name": "keen::InputMode", + "type_hash": 2461075969, + "data_offset": 809 + }, + { + "name": "fromClientSettings", + "type_name": "keen::ecs::ClientPlayerSettings", + "type_hash": 3333447328, + "data_offset": 810 + }, + { + "name": "fromClientIsReadyForGameplay", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 812 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerInputConsumer", + "type_name_2": "ecs.ServerInputConsumer", + "qualified_name": "keen::ecs::ServerInputConsumer", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3957594332, + "hash2": 1912271883, + "struct_fields": [ + { + "name": "consumedInputs", + "type_name": "keen::ecs::PlayerDigitalInput", + "type_hash": 128955298, + "data_offset": 0 + }, + { + "name": "logicalStates", + "type_name": "keen::ecs::PlayerDigitalInput", + "type_hash": 128955298, + "data_offset": 8 + }, + { + "name": "totalPreviousInputs", + "type_name": "keen::ecs::PlayerDigitalInput", + "type_hash": 128955298, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerConsumedPlayerInput", + "type_name_2": "ecs.ServerConsumedPlayerInput", + "qualified_name": "keen::ecs::ServerConsumedPlayerInput", + "referenced_type_name": "keen::ecs::Component", + "class_size": 112, + "fields_count": 43, + "primitive_type": "Struct", + "hash1": 4026068313, + "hash2": 2427458248, + "struct_fields": [ + { + "name": "inputConsumer", + "type_name": "keen::ecs::ServerInputConsumer", + "type_hash": 3957594332, + "data_offset": 0 + }, + { + "name": "consumedInventoryTransferAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 24 + }, + { + "name": "consumedSortInventoryAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 26 + }, + { + "name": "consumedSelectSongAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 28 + }, + { + "name": "consumedCreateBuildingItemAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 30 + }, + { + "name": "consumedCreateNpcItemAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 32 + }, + { + "name": "consumedActionbarSelectionAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 34 + }, + { + "name": "consumedInventoryStockCycleAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 36 + }, + { + "name": "consumedCraftRecipeAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 38 + }, + { + "name": "consumedAutomaticTransferAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 40 + }, + { + "name": "consumedSelectCraftingStationRecipeAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 42 + }, + { + "name": "consumedChangeCustomizationAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 44 + }, + { + "name": "consumedTeleportAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 46 + }, + { + "name": "consumedUnlockSkillAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 48 + }, + { + "name": "consumedTriggerKnowledgeAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 50 + }, + { + "name": "consumedSetPersonalProgressionAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 52 + }, + { + "name": "consumedWaypointAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 54 + }, + { + "name": "consumedSelectDialogOptionAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 56 + }, + { + "name": "consumedNpcInputAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 58 + }, + { + "name": "consumedChangeEquipmentAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 60 + }, + { + "name": "consumedSwapEquipmentSetAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 62 + }, + { + "name": "consumedConsumeItemAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 64 + }, + { + "name": "consumedInspectItemAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 66 + }, + { + "name": "consumedRepairAllItemsActionn", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 68 + }, + { + "name": "consumedPerkUnlockAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 70 + }, + { + "name": "consumedTrashItemAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 72 + }, + { + "name": "consumedFlameAltarAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 74 + }, + { + "name": "consumedParryAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 76 + }, + { + "name": "consumedKickPlayerAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 78 + }, + { + "name": "consumedtwitchDropAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 80 + }, + { + "name": "consumedAdminInventoryCreateAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 82 + }, + { + "name": "consumedAdminSpawnAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 84 + }, + { + "name": "consumedAdminKillFactionAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 86 + }, + { + "name": "consumedAdminTeleport", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 88 + }, + { + "name": "consumedAdminApplyInventory", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 90 + }, + { + "name": "consumedAdminSetDaytime", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 92 + }, + { + "name": "consumedAdminDestroyItemAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 94 + }, + { + "name": "consumedAdminSetFlameLevel", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 96 + }, + { + "name": "consumedAdminSetCharacterLevel", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 98 + }, + { + "name": "consumedAdminPerkAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 100 + }, + { + "name": "consumedAdminDebugCameraDisplayAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 102 + }, + { + "name": "consumedAdminUnlearnSkillAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 104 + }, + { + "name": "consumedAdminChangeGameSettingsAction", + "type_name": "keen::VersionedData", + "type_hash": 2568626243, + "data_offset": 106 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InputRepeater", + "type_name_2": "ecs.InputRepeater", + "qualified_name": "keen::ecs::InputRepeater", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3600565917, + "hash2": 2399979493, + "struct_fields": [ + { + "name": "isAfterFirstRepetition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "nextRepeatTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.InputRepeater[47]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::InputRepeater", + "class_size": 752, + "fields_count": 47, + "primitive_type": "StaticArray", + "hash1": 2172961886, + "hash2": 18655810, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerInputRepeater", + "type_name_2": "ecs.ClientOnlyPlayerInputRepeater", + "qualified_name": "keen::ecs::ClientOnlyPlayerInputRepeater", + "referenced_type_name": "keen::StaticArray", + "class_size": 752, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2949174441, + "hash2": 2942891781, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerInputType", + "type_name_2": "ecs.ClientOnlyPlayerInputType", + "qualified_name": "keen::ecs::ClientOnlyPlayerInputType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 48, + "primitive_type": "Enum", + "hash1": 2660175865, + "hash2": 1844863119, + "struct_fields": [], + "enum_fields": [ + { + "name": "ActionbarSwapPage", + "value": 0 + }, + { + "name": "ActionbarPreviousSlot", + "value": 1 + }, + { + "name": "ActionbarNextSlot", + "value": 2 + }, + { + "name": "AmmunitionSelectPrevious", + "value": 3 + }, + { + "name": "AmmunitionSelectNext", + "value": 4 + }, + { + "name": "ShowTutorial", + "value": 5 + }, + { + "name": "BlueprintDistanceIncrease", + "value": 6 + }, + { + "name": "BlueprintDistanceDecrease", + "value": 7 + }, + { + "name": "BlueprintMaterialSelectPrevious", + "value": 8 + }, + { + "name": "BlueprintMaterialSelectNext", + "value": 9 + }, + { + "name": "BlueprintPageSelectPrevious", + "value": 10 + }, + { + "name": "BlueprintPageSelectNext", + "value": 11 + }, + { + "name": "BlueprintShapeSelectPrevious", + "value": 12 + }, + { + "name": "BlueprintShapeSelectNext", + "value": 13 + }, + { + "name": "BlueprintShapeSelect0", + "value": 14 + }, + { + "name": "BlueprintShapeSelect1", + "value": 15 + }, + { + "name": "BlueprintShapeSelect2", + "value": 16 + }, + { + "name": "BlueprintShapeSelect3", + "value": 17 + }, + { + "name": "BlueprintShapeSelect4", + "value": 18 + }, + { + "name": "BlueprintShapeSelect5", + "value": 19 + }, + { + "name": "BlueprintShapeSelect6", + "value": 20 + }, + { + "name": "BlueprintShapeSelect7", + "value": 21 + }, + { + "name": "BlueprintShapeSelect8", + "value": 22 + }, + { + "name": "BlueprintShapeSelect9", + "value": 23 + }, + { + "name": "BuildingRotateLittleClockwise", + "value": 24 + }, + { + "name": "BuildingRotateLittleCounterClockwise", + "value": 25 + }, + { + "name": "BuildingRotateFarClockwise", + "value": 26 + }, + { + "name": "BuildingRotateFarCounterClockwise", + "value": 27 + }, + { + "name": "LootSelectPrevious", + "value": 28 + }, + { + "name": "LootSelectNext", + "value": 29 + }, + { + "name": "SongSelectOpen", + "value": 30 + }, + { + "name": "SongSelectPrevious", + "value": 31 + }, + { + "name": "SongSelectNext", + "value": 32 + }, + { + "name": "CameraZoomIn", + "value": 33 + }, + { + "name": "CameraZoomOut", + "value": 34 + }, + { + "name": "UiSystemMenu", + "value": 35 + }, + { + "name": "UiInGameMenu", + "value": 36 + }, + { + "name": "UiBackpack", + "value": 37 + }, + { + "name": "UiBuildingMenu", + "value": 38 + }, + { + "name": "UiCharacter", + "value": 39 + }, + { + "name": "UiCrafting", + "value": 40 + }, + { + "name": "UiJournal", + "value": 41 + }, + { + "name": "UiJumpToNotification", + "value": 42 + }, + { + "name": "UiMap", + "value": 43 + }, + { + "name": "UiSkills", + "value": 44 + }, + { + "name": "UiUserFeedback", + "value": 45 + }, + { + "name": "Parry", + "value": 46 + }, + { + "name": "Count", + "value": 47 + } + ] + }, + { + "type_name_1": "Bitmask64", + "type_name_2": "Bitmask64", + "qualified_name": "keen::Bitmask64", + "referenced_type_name": "keen::ecs::ClientOnlyPlayerInputType", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Bitmask64", + "hash1": 565816937, + "hash2": 1122061700, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerDigitalInput", + "type_name_2": "ecs.ClientOnlyPlayerDigitalInput", + "qualified_name": "keen::ecs::ClientOnlyPlayerDigitalInput", + "referenced_type_name": "keen::Bitmask64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2586071015, + "hash2": 3301048517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientInputConsumer", + "type_name_2": "ecs.ClientInputConsumer", + "qualified_name": "keen::ecs::ClientInputConsumer", + "referenced_type_name": null, + "class_size": 768, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4176988528, + "hash2": 2401085444, + "struct_fields": [ + { + "name": "consumedInputs", + "type_name": "keen::ecs::ClientOnlyPlayerDigitalInput", + "type_hash": 2586071015, + "data_offset": 0 + }, + { + "name": "logicalStates", + "type_name": "keen::ecs::ClientOnlyPlayerDigitalInput", + "type_hash": 2586071015, + "data_offset": 8 + }, + { + "name": "inputRepeaters", + "type_name": "keen::ecs::ClientOnlyPlayerInputRepeater", + "type_hash": 2949174441, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerTestInput", + "type_name_2": "ecs.PlayerTestInput", + "qualified_name": "keen::ecs::PlayerTestInput", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1626397202, + "hash2": 1668771032, + "struct_fields": [ + { + "name": "digitalInput", + "type_name": "keen::ecs::PlayerDigitalInput", + "type_hash": 128955298, + "data_offset": 0 + }, + { + "name": "movementStick", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 8 + }, + { + "name": "cameraDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "ranged_weapon.State", + "qualified_name": "keen::ranged_weapon::State", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3349570807, + "hash2": 2093806708, + "struct_fields": [], + "enum_fields": [ + { + "name": "Holster", + "value": 0 + }, + { + "name": "Aim", + "value": 1 + }, + { + "name": "AimAndCharge", + "value": 2 + }, + { + "name": "Fire", + "value": 3 + }, + { + "name": "FireEaseOut", + "value": 4 + } + ] + }, + { + "type_name_1": "Input", + "type_name_2": "ranged_weapon.Input", + "qualified_name": "keen::ranged_weapon::Input", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 162348630, + "hash2": 2469175838, + "struct_fields": [ + { + "name": "aim", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "charge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "fire", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponParameters", + "type_name_2": "ranged_weapon.WeaponParameters", + "qualified_name": "keen::ranged_weapon::WeaponParameters", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2137498114, + "hash2": 1663379204, + "struct_fields": [ + { + "name": "chargeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "fireDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "isChanneling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "doesNeedAmmunition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "canQueueFireBeforeFullyCharged", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "restartChargeOnAmmunitionSwitch", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachine", + "type_name_2": "ranged_weapon.StateMachine", + "qualified_name": "keen::ranged_weapon::StateMachine", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3059477716, + "hash2": 3530339805, + "struct_fields": [ + { + "name": "currentState", + "type_name": "keen::ranged_weapon::State", + "type_hash": 3349570807, + "data_offset": 0 + }, + { + "name": "stateStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "previousInput", + "type_name": "keen::ranged_weapon::Input", + "type_hash": 162348630, + "data_offset": 16 + }, + { + "name": "weaponParameters", + "type_name": "keen::ranged_weapon::WeaponParameters", + "type_hash": 2137498114, + "data_offset": 24 + }, + { + "name": "isInitialUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "isFireQueued", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceTypes", + "type_name_2": "ResourceTypes", + "qualified_name": "keen::ResourceTypes", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 2039401719, + "hash2": 3911990915, + "struct_fields": [], + "enum_fields": [ + { + "name": "Health", + "value": 0 + }, + { + "name": "Mana", + "value": 1 + }, + { + "name": "Stamina", + "value": 2 + }, + { + "name": "FogResistance", + "value": 3 + }, + { + "name": "Ammunition", + "value": 4 + }, + { + "name": "FoodBuff", + "value": 5 + }, + { + "name": "GenericBuff", + "value": 6 + }, + { + "name": "Debuff", + "value": 7 + }, + { + "name": "RestedBuff", + "value": 8 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ResourceTypes", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 343809988, + "hash2": 882998157, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResourceTypesMask", + "type_name_2": "ResourceTypesMask", + "qualified_name": "keen::ResourceTypesMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3302170035, + "hash2": 188342834, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RangedWeapon", + "type_name_2": "ecs.RangedWeapon", + "qualified_name": "keen::ecs::RangedWeapon", + "referenced_type_name": "keen::ecs::Component", + "class_size": 128, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3277834492, + "hash2": 3646497974, + "struct_fields": [ + { + "name": "stateMachine", + "type_name": "keen::ranged_weapon::StateMachine", + "type_hash": 3059477716, + "data_offset": 0 + }, + { + "name": "originalTrigger", + "type_name": "keen::ecs::PlayerInputType", + "type_hash": 685034554, + "data_offset": 56 + }, + { + "name": "currentTrigger", + "type_name": "keen::ecs::PlayerInputType", + "type_hash": 685034554, + "data_offset": 57 + }, + { + "name": "triggerWeaponInstance", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 60 + }, + { + "name": "triggerAmmunitionInstance", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 80 + }, + { + "name": "missingResourceMask", + "type_name": "keen::ResourceTypesMask", + "type_hash": 3302170035, + "data_offset": 100 + }, + { + "name": "lastMissingResourceEvent", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "lastVisualAmmoItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 112 + }, + { + "name": "visualAmmoItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 116 + }, + { + "name": "visualAmmoEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 120 + }, + { + "name": "shallPlayerTurnTowardsTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + }, + { + "name": "previousSneakState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkRangedWeapon", + "type_name_2": "ecs.NetworkRangedWeapon", + "qualified_name": "keen::ecs::NetworkRangedWeapon", + "referenced_type_name": "keen::ecs::Component", + "class_size": 72, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2509838532, + "hash2": 2486915808, + "struct_fields": [ + { + "name": "currentState", + "type_name": "keen::ranged_weapon::State", + "type_hash": 3349570807, + "data_offset": 0 + }, + { + "name": "weaponParameters", + "type_name": "keen::ranged_weapon::WeaponParameters", + "type_hash": 2137498114, + "data_offset": 8 + }, + { + "name": "stateStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "weaponInstance", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 40 + }, + { + "name": "ammunitionItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 60 + }, + { + "name": "shallPlayerTurnTowardsTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientRangedWeapon", + "type_name_2": "ecs.ClientRangedWeapon", + "qualified_name": "keen::ecs::ClientRangedWeapon", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4271591371, + "hash2": 3284462679, + "struct_fields": [ + { + "name": "previousState", + "type_name": "keen::ranged_weapon::State", + "type_hash": 3349570807, + "data_offset": 0 + }, + { + "name": "isInitialUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RangedWeaponRender", + "type_name_2": "ecs.RangedWeaponRender", + "qualified_name": "keen::ecs::RangedWeaponRender", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3505756620, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpellChargeSfx", + "type_name_2": "ecs.SpellChargeSfx", + "qualified_name": "keen::ecs::SpellChargeSfx", + "referenced_type_name": "keen::ecs::Component", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1688282958, + "hash2": 2339101629, + "struct_fields": [ + { + "name": "buildUpChargeSfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "sustainChargeSfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "hasHandledFullyCharged", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerFlags", + "type_name_2": "ecs.PlayerFlags", + "qualified_name": "keen::ecs::PlayerFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 16, + "primitive_type": "Enum", + "hash1": 1859738977, + "hash2": 272247963, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsSpawned", + "value": 0 + }, + { + "name": "InFullScreenUi", + "value": 1 + }, + { + "name": "UiCoverRequest", + "value": 2 + }, + { + "name": "CanTriggerHookShot", + "value": 3 + }, + { + "name": "CanTriggerGlider", + "value": 4 + }, + { + "name": "InBlueprintSnappingMode", + "value": 5 + }, + { + "name": "InVoxelGridSnappingMode", + "value": 6 + }, + { + "name": "WantsToSprint", + "value": 7 + }, + { + "name": "IsSprinting", + "value": 8 + }, + { + "name": "InTargetLockCombatMode", + "value": 9 + }, + { + "name": "QueueFireRangedShot", + "value": 10 + }, + { + "name": "HasRangedWeaponFeedbackBeenSent", + "value": 11 + }, + { + "name": "IsOutsideSafeZone", + "value": 12 + }, + { + "name": "IsInBigDungeon", + "value": 13 + }, + { + "name": "HideHelmet", + "value": 14 + }, + { + "name": "HideGloves", + "value": 15 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ecs::PlayerFlags", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 1331259180, + "hash2": 4154872090, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerStateMask", + "type_name_2": "ecs.PlayerStateMask", + "qualified_name": "keen::ecs::PlayerStateMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3460707823, + "hash2": 12753291, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParryProjectile", + "type_name_2": "ecs.ParryProjectile", + "qualified_name": "keen::ecs::ParryProjectile", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3784009888, + "hash2": 979974414, + "struct_fields": [ + { + "name": "projectileEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "anticipationSequenceResourceId", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerState", + "type_name_2": "ecs.PlayerState", + "qualified_name": "keen::ecs::PlayerState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1878615995, + "hash2": 1825301774, + "struct_fields": [ + { + "name": "previousActorState", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 0 + }, + { + "name": "lastSprintEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastBlockEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "noMovementInputDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "outsideSafeZoneCountdown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "sprintTurnSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "playerStateMask", + "type_name": "keen::ecs::PlayerStateMask", + "type_hash": 3460707823, + "data_offset": 44 + }, + { + "name": "dungeonZoneMapMarkerId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 48 + }, + { + "name": "rangedWeaponArmedViaInput", + "type_name": "keen::ecs::PlayerInputType", + "type_hash": 685034554, + "data_offset": 52 + }, + { + "name": "parryProjectile", + "type_name": "keen::ecs::ParryProjectile", + "type_hash": 3784009888, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerTracking", + "type_name_2": "ecs.PlayerTracking", + "qualified_name": "keen::ecs::PlayerTracking", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2663274699, + "hash2": 2119726614, + "struct_fields": [ + { + "name": "levelUpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "playtimeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerDebugServer", + "type_name_2": "ecs.PlayerDebugServer", + "qualified_name": "keen::ecs::PlayerDebugServer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 803257030, + "hash2": 4028386978, + "struct_fields": [ + { + "name": "debugEventTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "clientUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "serverRecvTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "serverUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerDebugClient", + "type_name_2": "ecs.PlayerDebugClient", + "qualified_name": "keen::ecs::PlayerDebugClient", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2407545834, + "hash2": 1119680274, + "struct_fields": [ + { + "name": "debugEventTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "debugEventDelta", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "debugEventMappingDelta", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerStaminaHints", + "type_name_2": "ecs.ClientPlayerStaminaHints", + "qualified_name": "keen::ecs::ClientPlayerStaminaHints", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4244815304, + "hash2": 3262356032, + "struct_fields": [ + { + "name": "firstSprintUtteranceDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "sprintUtteranceInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "nextUtterance", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerQuestProgressionMode", + "type_name_2": "ecs.PlayerQuestProgressionMode", + "qualified_name": "keen::ecs::PlayerQuestProgressionMode", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3612363776, + "hash2": 3948742858, + "struct_fields": [ + { + "name": "isInPersonalProgressionMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "changeCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerPinnedRecipes", + "type_name_2": "ecs.PlayerPinnedRecipes", + "qualified_name": "keen::ecs::PlayerPinnedRecipes", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1857243063, + "hash2": 3214703581, + "struct_fields": [ + { + "name": "pinnedRecipe", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 0 + }, + { + "name": "questEntryId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerWaypoint", + "type_name_2": "ecs.PlayerWaypoint", + "qualified_name": "keen::ecs::PlayerWaypoint", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1440688121, + "hash2": 3878729755, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "waypointPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillState", + "type_name_2": "ecs.SkillState", + "qualified_name": "keen::ecs::SkillState", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1008316753, + "hash2": 3836063285, + "struct_fields": [ + { + "name": "impcatEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "isUnlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillUnlockMask", + "type_name_2": "ecs.SkillUnlockMask", + "qualified_name": "keen::ecs::SkillUnlockMask", + "referenced_type_name": "keen::uint64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2954067200, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.SkillUnlockMask[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::SkillUnlockMask", + "class_size": 32, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3056335948, + "hash2": 3692034870, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedSkillsMask", + "type_name_2": "ecs.UnlockedSkillsMask", + "qualified_name": "keen::ecs::UnlockedSkillsMask", + "referenced_type_name": "keen::StaticArray", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3820275212, + "hash2": 1824641101, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SkillNodeId[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::SkillNodeId", + "class_size": 1024, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 475767981, + "hash2": 348560963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::EntityId", + "class_size": 1024, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 1970455152, + "hash2": 797999867, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedSkillNodes", + "type_name_2": "ecs.UnlockedSkillNodes", + "qualified_name": "keen::ecs::UnlockedSkillNodes", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2052, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2832326780, + "hash2": 3727423517, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::StaticArray", + "type_hash": 475767981, + "data_offset": 0 + }, + { + "name": "activeSkillImpacts", + "type_name": "keen::StaticArray", + "type_hash": 1970455152, + "data_offset": 1024 + }, + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSkillsUi", + "type_name_2": "ecs.PlayerSkillsUi", + "qualified_name": "keen::ecs::PlayerSkillsUi", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 122693310, + "hash2": 2999585717, + "struct_fields": [ + { + "name": "skillUnlockMasks", + "type_name": "keen::ecs::UnlockedSkillsMask", + "type_hash": 3820275212, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerGroupMember", + "type_name_2": "ecs.PlayerGroupMember", + "qualified_name": "keen::ecs::PlayerGroupMember", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2638395063, + "hash2": 3850974768, + "struct_fields": [ + { + "name": "lastUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.PlayerGroupMember[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::PlayerGroupMember", + "class_size": 256, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 3092912398, + "hash2": 648074390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerPlayerGroupMembers", + "type_name_2": "ecs.ServerPlayerGroupMembers", + "qualified_name": "keen::ecs::ServerPlayerGroupMembers", + "referenced_type_name": "keen::ecs::Component", + "class_size": 256, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1252344843, + "hash2": 2697474746, + "struct_fields": [ + { + "name": "groupMembers", + "type_name": "keen::StaticArray", + "type_hash": 3092912398, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickingTarget", + "type_name_2": "ecs.PickingTarget", + "qualified_name": "keen::ecs::PickingTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 46492503, + "hash2": 3859034701, + "struct_fields": [ + { + "name": "rayQueryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 0 + }, + { + "name": "nextUpdate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CursorFlag", + "type_name_2": "ecs.CursorFlag", + "qualified_name": "keen::ecs::CursorFlag", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 279035751, + "hash2": 2519322502, + "struct_fields": [], + "enum_fields": [ + { + "name": "InvalidCursorTransform", + "value": 0 + }, + { + "name": "CursorOutsideBuildingZone", + "value": 1 + }, + { + "name": "CursorInsideFogZone", + "value": 2 + }, + { + "name": "CursorTooFarAway", + "value": 3 + }, + { + "name": "CursorInsideLenientBuildInhibitorZone", + "value": 4 + }, + { + "name": "CursorInsideStrictBuildInhibitorZone", + "value": 5 + }, + { + "name": "MaxAltarCountReached", + "value": 6 + }, + { + "name": "AreaOccupied", + "value": 7 + }, + { + "name": "EnemiesNearby", + "value": 8 + }, + { + "name": "InvalidSurfaceNormal", + "value": 9 + }, + { + "name": "InvalidCursorVoxelMaterial", + "value": 10 + }, + { + "name": "MissingMaterials", + "value": 11 + }, + { + "name": "ItemNotUnlocked", + "value": 12 + }, + { + "name": "NoPermission", + "value": 13 + }, + { + "name": "MaxTameAnimalCountReached", + "value": 14 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ecs::CursorFlag", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 4059699052, + "hash2": 499548413, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CursorFlags", + "type_name_2": "ecs.CursorFlags", + "qualified_name": "keen::ecs::CursorFlags", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1117768828, + "hash2": 2086049752, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.QueryId[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::QueryId", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 943613150, + "hash2": 2013749191, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerCursor", + "type_name_2": "ecs.ServerCursor", + "qualified_name": "keen::ecs::ServerCursor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 120, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2191242526, + "hash2": 935848920, + "struct_fields": [ + { + "name": "rayQueryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 0 + }, + { + "name": "placementBlockerQueryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 4 + }, + { + "name": "solidCollisionsQueryIds", + "type_name": "keen::StaticArray", + "type_hash": 943613150, + "data_offset": 8 + }, + { + "name": "enemiesQueryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 16 + }, + { + "name": "pointerInfoPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "hoveredVoxelMaterialId", + "type_name": "keen::VoxelMaterialId", + "type_hash": 63742278, + "data_offset": 32 + }, + { + "name": "secondaryActionTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 40 + }, + { + "name": "randomYawAngleOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "snapToPlaneDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "hoverVoxelBlueprintOverlayEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientServerCursor", + "type_name_2": "ecs.ClientServerCursor", + "qualified_name": "keen::ecs::ClientServerCursor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 136, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 885343537, + "hash2": 2543131583, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "cursorEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 56 + }, + { + "name": "hoveredEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 60 + }, + { + "name": "selectedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 64 + }, + { + "name": "selectedEntityDismantleMethod", + "type_name": "keen::ecs::DismantleMethod", + "type_hash": 3342760351, + "data_offset": 68 + }, + { + "name": "isBlueprintSelected", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 69 + }, + { + "name": "isDismantleAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 70 + }, + { + "name": "hoverPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "hoverNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 84 + }, + { + "name": "currentBuildingItemInstance", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 96 + }, + { + "name": "previousBuildingItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 116 + }, + { + "name": "effectivePlacementVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "maxPlacementVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "cursorFlagsPrimary", + "type_name": "keen::ecs::CursorFlags", + "type_hash": 1117768828, + "data_offset": 128 + }, + { + "name": "cursorFlagsSecondary", + "type_name": "keen::ecs::CursorFlags", + "type_hash": 1117768828, + "data_offset": 130 + }, + { + "name": "wasLastActionSecondary", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "isSnappingToBoxes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 133 + }, + { + "name": "isNearBuildingZone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 134 + }, + { + "name": "canUndoBuildingAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 135 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCursorVfx", + "type_name_2": "ecs.ClientCursorVfx", + "qualified_name": "keen::ecs::ClientCursorVfx", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 273319354, + "hash2": 197895696, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "fxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ClientCursorVfx[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::ClientCursorVfx", + "class_size": 4096, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 2589065405, + "hash2": 4116585435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientCursor", + "type_name_2": "ecs.ClientCursor", + "qualified_name": "keen::ecs::ClientCursor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4120, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3538345370, + "hash2": 2478586687, + "struct_fields": [ + { + "name": "hoveredEntityHightlightPhase", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "previousSelectedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "previousSelectedEntityTintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + }, + { + "name": "previousBuildingItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "highlightColorValid", + "type_name": "keen::HighlightColorIndex", + "type_hash": 4224638355, + "data_offset": 20 + }, + { + "name": "highlightColorInvalid", + "type_name": "keen::HighlightColorIndex", + "type_hash": 4224638355, + "data_offset": 21 + }, + { + "name": "highlightColorMuted", + "type_name": "keen::HighlightColorIndex", + "type_hash": 4224638355, + "data_offset": 22 + }, + { + "name": "blueprintHoverVfx", + "type_name": "keen::StaticArray", + "type_hash": 2589065405, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Terraforming", + "type_name_2": "ecs.Terraforming", + "qualified_name": "keen::ecs::Terraforming", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 891318927, + "hash2": 2049236799, + "struct_fields": [ + { + "name": "snappingQueryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "temporaryMiningQueryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxZone", + "type_name_2": "ecs.VfxZone", + "qualified_name": "keen::ecs::VfxZone", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4279111911, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Destructible", + "type_name_2": "ecs.Destructible", + "qualified_name": "keen::ecs::Destructible", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1823599309, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeParams", + "type_name_2": "ecs.CameraShakeParams", + "qualified_name": "keen::ecs::CameraShakeParams", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3277279044, + "hash2": 3423219450, + "struct_fields": [ + { + "name": "trauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierComponent", + "type_name_2": "ecs.NotifierComponent", + "qualified_name": "keen::ecs::NotifierComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 92, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3094471232, + "hash2": 2868825592, + "struct_fields": [ + { + "name": "notifierOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 0 + }, + { + "name": "notifier", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 40 + }, + { + "name": "cameraShake", + "type_name": "keen::ecs::CameraShakeParams", + "type_hash": 3277279044, + "data_offset": 56 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 60 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnCreate", + "type_name_2": "ecs.OnCreate", + "qualified_name": "keen::ecs::OnCreate", + "referenced_type_name": "keen::ecs::NotifierComponent", + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 549335190, + "hash2": 4162417702, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 92 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 93 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnDestroy", + "type_name_2": "ecs.OnDestroy", + "qualified_name": "keen::ecs::OnDestroy", + "referenced_type_name": "keen::ecs::NotifierComponent", + "class_size": 108, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 597157452, + "hash2": 4152884178, + "struct_fields": [ + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityOnDestroy", + "type_name_2": "ecs.SpawnEntityOnDestroy", + "qualified_name": "keen::ecs::SpawnEntityOnDestroy", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2226530478, + "hash2": 3062228885, + "struct_fields": [ + { + "name": "spawnEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "keepDespawnLink", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "triggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyEntityOnParentRespawn", + "type_name_2": "ecs.DestroyEntityOnParentRespawn", + "qualified_name": "keen::ecs::DestroyEntityOnParentRespawn", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1895899443, + "hash2": 3164993309, + "struct_fields": [ + { + "name": "checkParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalId", + "type_name_2": "FogRemovalId", + "qualified_name": "keen::FogRemovalId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2854608235, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalIdComponent", + "type_name_2": "ecs.FogRemovalIdComponent", + "qualified_name": "keen::ecs::FogRemovalIdComponent", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3896826165, + "hash2": 437749519, + "struct_fields": [ + { + "name": "fogRemovalId", + "type_name": "keen::FogRemovalId", + "type_hash": 2854608235, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RemoveFog", + "type_name_2": "ecs.RemoveFog", + "qualified_name": "keen::ecs::RemoveFog", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3059982045, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EasingType", + "type_name_2": "ecs.EasingType", + "qualified_name": "keen::ecs::EasingType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 325728638, + "hash2": 378117323, + "struct_fields": [], + "enum_fields": [ + { + "name": "Linear", + "value": 0 + }, + { + "name": "QuadraticIn", + "value": 1 + }, + { + "name": "CubicIn", + "value": 2 + }, + { + "name": "QuadraticOut", + "value": 3 + }, + { + "name": "CubicOut", + "value": 4 + }, + { + "name": "Count", + "value": 5 + } + ] + }, + { + "type_name_1": "Dissolve", + "type_name_2": "ecs.Dissolve", + "qualified_name": "keen::ecs::Dissolve", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3438179676, + "hash2": 1200226039, + "struct_fields": [ + { + "name": "rotationOriginOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "rotationAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "calculateOffsets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "dissolveEasing", + "type_name": "keen::ecs::EasingType", + "type_hash": 325728638, + "data_offset": 29 + }, + { + "name": "translationEasing", + "type_name": "keen::ecs::EasingType", + "type_hash": 325728638, + "data_offset": 30 + }, + { + "name": "rotationEasing", + "type_name": "keen::ecs::EasingType", + "type_hash": 325728638, + "data_offset": 31 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicDissolve", + "type_name_2": "ecs.DynamicDissolve", + "qualified_name": "keen::ecs::DynamicDissolve", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3209294851, + "hash2": 1037136159, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "alignmentTarget", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "started", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientDissolve", + "type_name_2": "ecs.ClientDissolve", + "qualified_name": "keen::ecs::ClientDissolve", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 419548871, + "hash2": 4049666645, + "struct_fields": [ + { + "name": "renderModelUpdateCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "modelCenter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "boundingBoxHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FadeState", + "type_name_2": "ecs.FadeState", + "qualified_name": "keen::ecs::FadeState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3293894762, + "hash2": 3092217416, + "struct_fields": [], + "enum_fields": [ + { + "name": "Visible", + "value": 0 + }, + { + "name": "FadeIn", + "value": 1 + }, + { + "name": "FadeOut", + "value": 2 + }, + { + "name": "Invisible", + "value": 3 + } + ] + }, + { + "type_name_1": "Fade", + "type_name_2": "ecs.Fade", + "qualified_name": "keen::ecs::Fade", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 402025161, + "hash2": 3255918685, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "dissolveMaskOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "dissolveMaskRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "initialState", + "type_name": "keen::ecs::FadeState", + "type_hash": 3293894762, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicFade", + "type_name_2": "ecs.DynamicFade", + "qualified_name": "keen::ecs::DynamicFade", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2372481706, + "hash2": 1242547166, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::ecs::FadeState", + "type_hash": 3293894762, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorInput", + "type_name_2": "ecs.ActorInput", + "qualified_name": "keen::ecs::ActorInput", + "referenced_type_name": "keen::ecs::Component", + "class_size": 280, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1547464152, + "hash2": 3240873457, + "struct_fields": [ + { + "name": "defaultAnimationStateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 0 + }, + { + "name": "triggerContext", + "type_name": "keen::actor::ActionSequenceTriggerContext", + "type_hash": 110921815, + "data_offset": 8 + }, + { + "name": "triggerCallCounter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 232 + }, + { + "name": "sequenceTriggerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 236 + }, + { + "name": "desiredLocalMoveInput", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 240 + }, + { + "name": "desiredWorldMoveInput", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 252 + }, + { + "name": "desiredWorldLookDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 264 + }, + { + "name": "locomotionSpeed", + "type_name": "keen::ecs::LocomotionSpeedSelector", + "type_hash": 3172215288, + "data_offset": 276 + }, + { + "name": "lastLocomotionSpeed", + "type_name": "keen::ecs::LocomotionSpeedSelector", + "type_hash": 3172215288, + "data_offset": 277 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlapSetup", + "type_name_2": "ecs.FlapSetup", + "qualified_name": "keen::ecs::FlapSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2677214425, + "hash2": 2206619912, + "struct_fields": [ + { + "name": "minFlapDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxFlapDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "minFlapPauseDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxFlapPauseDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Flying", + "type_name_2": "ecs.Flying", + "qualified_name": "keen::ecs::Flying", + "referenced_type_name": "keen::ecs::Component", + "class_size": 160, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2406529724, + "hash2": 2507013939, + "struct_fields": [ + { + "name": "maxAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "startFlyingSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 4 + }, + { + "name": "stopFlyingSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 20 + }, + { + "name": "flyingSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 36 + }, + { + "name": "hoverSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 52 + }, + { + "name": "flappingSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 68 + }, + { + "name": "hitInAirSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 84 + }, + { + "name": "stuckOnGroundSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 100 + }, + { + "name": "flapSetup", + "type_name": "keen::ecs::FlapSetup", + "type_hash": 2677214425, + "data_offset": 120 + }, + { + "name": "useFlyAnimationHandling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 152 + }, + { + "name": "fallOnHit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 153 + }, + { + "name": "fallOnParryStun", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 154 + }, + { + "name": "flyAfterSpawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 155 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlyingState", + "type_name_2": "ecs.FlyingState", + "qualified_name": "keen::ecs::FlyingState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 610653057, + "hash2": 2250459297, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "NotFlying", + "value": 1 + }, + { + "name": "Flying", + "value": 2 + }, + { + "name": "Flapping", + "value": 3 + }, + { + "name": "Hovering", + "value": 4 + }, + { + "name": "StartFlying", + "value": 5 + }, + { + "name": "StopFlying", + "value": 6 + }, + { + "name": "Fall", + "value": 7 + }, + { + "name": "StuckOnGround", + "value": 8 + } + ] + }, + { + "type_name_1": "DynamicFlying", + "type_name_2": "ecs.DynamicFlying", + "qualified_name": "keen::ecs::DynamicFlying", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 985505827, + "hash2": 1068673113, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ecs::FlyingState", + "type_hash": 610653057, + "data_offset": 0 + }, + { + "name": "nextCheckFlappingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "isSequenceHandlingPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "wasSequenceHandlingPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "isFlappingAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "fallOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CSPDummy", + "type_name_2": "ecs.CSPDummy", + "qualified_name": "keen::ecs::CSPDummy", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2062934769, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlotAttachmentBase", + "type_name_2": "ecs.SlotAttachmentBase", + "qualified_name": "keen::ecs::SlotAttachmentBase", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1911196219, + "hash2": 3328289108, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 0 + }, + { + "name": "attachmentSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 40 + }, + { + "name": "attachedToEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerSlotAttachment", + "type_name_2": "ecs.ServerSlotAttachment", + "qualified_name": "keen::ecs::ServerSlotAttachment", + "referenced_type_name": "keen::ecs::SlotAttachmentBase", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1125062189, + "hash2": 1107650372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlotAttachment", + "type_name_2": "ecs.SlotAttachment", + "qualified_name": "keen::ecs::SlotAttachment", + "referenced_type_name": "keen::ecs::SlotAttachmentBase", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 156636214, + "hash2": 1107650372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Friction", + "type_name_2": "ecs.Friction", + "qualified_name": "keen::ecs::Friction", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1815867865, + "hash2": 3944505628, + "struct_fields": [ + { + "name": "isSliding", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "frictionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RotationSpeedEntry", + "type_name_2": "ecs.RotationSpeedEntry", + "qualified_name": "keen::ecs::RotationSpeedEntry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3108722296, + "hash2": 3852987658, + "struct_fields": [ + { + "name": "rotationSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "interpolationMode", + "type_name": "keen::actor::InterpolationMode", + "type_hash": 3642673216, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorRotation", + "type_name_2": "ecs.ActorRotation", + "qualified_name": "keen::ecs::ActorRotation", + "referenced_type_name": "keen::ecs::Component", + "class_size": 84, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1731846994, + "hash2": 3222772194, + "struct_fields": [ + { + "name": "standingRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 0 + }, + { + "name": "movingRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 8 + }, + { + "name": "runningRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 16 + }, + { + "name": "slidingRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 24 + }, + { + "name": "inAirRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 32 + }, + { + "name": "dodgingAroundTargetRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 40 + }, + { + "name": "hookPullingRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 48 + }, + { + "name": "hookSwingingRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 56 + }, + { + "name": "climbingRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 64 + }, + { + "name": "gliderRotationSpeed", + "type_name": "keen::ecs::RotationSpeedEntry", + "type_hash": 3108722296, + "data_offset": 72 + }, + { + "name": "minLinearAxisRotationAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionState", + "type_name_2": "ecs.LocomotionState", + "qualified_name": "keen::ecs::LocomotionState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 1436281227, + "hash2": 1314642622, + "struct_fields": [], + "enum_fields": [ + { + "name": "Walking", + "value": 0 + }, + { + "name": "Sliding", + "value": 1 + }, + { + "name": "Falling", + "value": 2 + }, + { + "name": "Flying", + "value": 3 + }, + { + "name": "HangGliding", + "value": 4 + }, + { + "name": "HookPulling", + "value": 5 + }, + { + "name": "HookSwinging", + "value": 6 + }, + { + "name": "ClimbingWall", + "value": 7 + }, + { + "name": "ClimbingLadder", + "value": 8 + } + ] + }, + { + "type_name_1": "LocomotionFlags", + "type_name_2": "ecs.LocomotionFlags", + "qualified_name": "keen::ecs::LocomotionFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1737578225, + "hash2": 3125038636, + "struct_fields": [], + "enum_fields": [ + { + "name": "LveRunning", + "value": 0 + }, + { + "name": "Sprinting", + "value": 1 + }, + { + "name": "OffBalance", + "value": 2 + }, + { + "name": "MovingTowardsHole", + "value": 3 + }, + { + "name": "AirwolfActive", + "value": 4 + }, + { + "name": "IsUpdraftDepleted", + "value": 5 + }, + { + "name": "WantsToMove", + "value": 6 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::LocomotionFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 41512969, + "hash2": 510916300, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionMask", + "type_name_2": "ecs.LocomotionMask", + "qualified_name": "keen::ecs::LocomotionMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3600553062, + "hash2": 2735265409, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionAccelerationConfig", + "type_name_2": "ecs.LocomotionAccelerationConfig", + "qualified_name": "keen::ecs::LocomotionAccelerationConfig", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 767750464, + "hash2": 1060817200, + "struct_fields": [ + { + "name": "minTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxWalkAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxRunAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxSprintAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "groundFrictionSusceptibility", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionSlideConfig", + "type_name_2": "ecs.LocomotionSlideConfig", + "qualified_name": "keen::ecs::LocomotionSlideConfig", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3314373401, + "hash2": 2733284437, + "struct_fields": [ + { + "name": "downhillAccelerationFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "downhillAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lateralAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "uphillAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "maxUphillSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionTurnConfig", + "type_name_2": "ecs.LocomotionTurnConfig", + "qualified_name": "keen::ecs::LocomotionTurnConfig", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2324306447, + "hash2": 2176611933, + "struct_fields": [ + { + "name": "useTurnSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "minTurnAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "minVelocity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "minRequiredVelocityDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "minTimeSinceRequiredVelocityWasReached", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "leftTurnSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 32 + }, + { + "name": "rightTurnSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionAvoidHolesConfig", + "type_name_2": "ecs.LocomotionAvoidHolesConfig", + "qualified_name": "keen::ecs::LocomotionAvoidHolesConfig", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1752344, + "hash2": 4293480002, + "struct_fields": [ + { + "name": "avoidHoles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "checkLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minHoleDepth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Locomotion", + "type_name_2": "ecs.Locomotion", + "qualified_name": "keen::ecs::Locomotion", + "referenced_type_name": "keen::ecs::Component", + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1091416790, + "hash2": 1086545310, + "struct_fields": [ + { + "name": "accelerationConfig", + "type_name": "keen::ecs::LocomotionAccelerationConfig", + "type_hash": 767750464, + "data_offset": 0 + }, + { + "name": "slideConfig", + "type_name": "keen::ecs::LocomotionSlideConfig", + "type_hash": 3314373401, + "data_offset": 20 + }, + { + "name": "turnConfig", + "type_name": "keen::ecs::LocomotionTurnConfig", + "type_hash": 2324306447, + "data_offset": 40 + }, + { + "name": "avoidHolesConfig", + "type_name": "keen::ecs::LocomotionAvoidHolesConfig", + "type_hash": 1752344, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JumpRuntimeType", + "type_name_2": "ecs.JumpRuntimeType", + "qualified_name": "keen::ecs::JumpRuntimeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 109625981, + "hash2": 1734680312, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Double", + "value": 1 + }, + { + "name": "Sprint", + "value": 2 + }, + { + "name": "Glider", + "value": 3 + }, + { + "name": "HookSwingDefaultExit", + "value": 4 + }, + { + "name": "HookSwingSprintExit", + "value": 5 + }, + { + "name": "LadderClimbing", + "value": 6 + }, + { + "name": "FreeClimbing", + "value": 7 + }, + { + "name": "Slide", + "value": 8 + }, + { + "name": "Attack", + "value": 9 + } + ] + }, + { + "type_name_1": "GliderTurbulence", + "type_name_2": "ecs.GliderTurbulence", + "qualified_name": "keen::ecs::GliderTurbulence", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 182493275, + "hash2": 774772254, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "remainingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicLocomotion", + "type_name_2": "ecs.DynamicLocomotion", + "qualified_name": "keen::ecs::DynamicLocomotion", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 31, + "primitive_type": "Struct", + "hash1": 1277380501, + "hash2": 633850606, + "struct_fields": [ + { + "name": "inputVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "floorNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "slopeNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "movementFactors", + "type_name": "keen::actor::MovementFactors", + "type_hash": 1704295110, + "data_offset": 36 + }, + { + "name": "rootMotion", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "rootMotionMode", + "type_name": "keen::animationgraph::RootMotionMask", + "type_hash": 2647428094, + "data_offset": 60 + }, + { + "name": "state", + "type_name": "keen::ecs::LocomotionState", + "type_hash": 1436281227, + "data_offset": 61 + }, + { + "name": "lastStateSwitchTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "slideDetected", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "takeOffTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "spheroidCollisionDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "rotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "isGliderForwardInputDeliberate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "isNearGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 101 + }, + { + "name": "wasTurning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 102 + }, + { + "name": "sprintJumpRunUpTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "airwolfTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "flags", + "type_name": "keen::ecs::LocomotionMask", + "type_hash": 3600553062, + "data_offset": 120 + }, + { + "name": "isFastEnoughForTurn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + }, + { + "name": "speedForTurnSequenceReachedStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "speedForTurnSequenceReachedEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + }, + { + "name": "slideJumpAirControlSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 144 + }, + { + "name": "jumpType", + "type_name": "keen::actor::JumpType", + "type_hash": 1821672963, + "data_offset": 148 + }, + { + "name": "jumpCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 149 + }, + { + "name": "previousJumpTakeOffPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 152 + }, + { + "name": "airControlMinVelocity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 176 + }, + { + "name": "airControlMaxVelocity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 180 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 184 + }, + { + "name": "effectiveMovementMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 188 + }, + { + "name": "gliderUpstreamFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 192 + }, + { + "name": "gliderTurbulence", + "type_name": "keen::ecs::GliderTurbulence", + "type_hash": 182493275, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkLocomotion", + "type_name_2": "ecs.NetworkLocomotion", + "qualified_name": "keen::ecs::NetworkLocomotion", + "referenced_type_name": "keen::ecs::Component", + "class_size": 52, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 3021539470, + "hash2": 336855655, + "struct_fields": [ + { + "name": "hasSlideAnimations", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "hasJumpAnimations", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "hasWalkAnimations", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "hasMoveAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "leanTowardsMoveDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "leanFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "maxLeanYawAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "maxLeanPitchAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "leanFadeOutSpeedFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "minLeanYawInterpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "maxLeanYawInterpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "leanYawSpeedInterpolationStartAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "leanYawSpeedInterpolationEndAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "leanPitchInterpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "leanYawStartAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "pitchAngleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNetworkLocomotion", + "type_name_2": "ecs.DynamicNetworkLocomotion", + "qualified_name": "keen::ecs::DynamicNetworkLocomotion", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2427608859, + "hash2": 1569734219, + "struct_fields": [ + { + "name": "floorNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "desiredWorldLookDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "desiredLeanDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "state", + "type_name": "keen::ecs::LocomotionState", + "type_hash": 1436281227, + "data_offset": 36 + }, + { + "name": "flags", + "type_name": "keen::ecs::LocomotionMask", + "type_hash": 3600553062, + "data_offset": 37 + }, + { + "name": "currentIdleAnimation", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 40 + }, + { + "name": "currentWalkAnimation", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 44 + }, + { + "name": "gliderTurbulenceScreenShakeIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientLocomotion", + "type_name_2": "ecs.ClientLocomotion", + "qualified_name": "keen::ecs::ClientLocomotion", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4038657761, + "hash2": 328257968, + "struct_fields": [ + { + "name": "runSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "sprintSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "currentLocalRollAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "currentLocalPitchAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "currentLocalYawAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "currentLeanYawAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "currentLeanPitchAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "lastAnimationInputSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GliderUpstreamZone", + "type_name_2": "ecs.GliderUpstreamZone", + "qualified_name": "keen::ecs::GliderUpstreamZone", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3606354157, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JumpParameters", + "type_name_2": "ecs.JumpParameters", + "qualified_name": "keen::ecs::JumpParameters", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4043905067, + "hash2": 2895802067, + "struct_fields": [ + { + "name": "jumpDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "jumpHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "launchOffset", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlopeAlignment", + "type_name_2": "ecs.SlopeAlignment", + "qualified_name": "keen::ecs::SlopeAlignment", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2081656427, + "hash2": 635776506, + "struct_fields": [ + { + "name": "defaultLongitudinalFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "defaultLateralFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "currentLongitudinalFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "currentLateralFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseActor", + "type_name_2": "ecs.BaseActor", + "qualified_name": "keen::ecs::BaseActor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2088, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1280761467, + "hash2": 1067618792, + "struct_fields": [ + { + "name": "currentAction", + "type_name": "keen::actor::ActionSequence", + "type_hash": 2391369016, + "data_offset": 0 + }, + { + "name": "currentState", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 2048 + }, + { + "name": "currentAbilityMask", + "type_name": "keen::actor::AbilityMask", + "type_hash": 3470695687, + "data_offset": 2056 + }, + { + "name": "sequenceRuntimeId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 2064 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerActionSequenceData", + "type_name_2": "ecs.ServerActionSequenceData", + "qualified_name": "keen::ecs::ServerActionSequenceData", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 644803655, + "hash2": 4207021329, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 0 + }, + { + "name": "signalStates", + "type_name": "keen::actor::SignalStates", + "type_hash": 3404174817, + "data_offset": 24 + }, + { + "name": "colliderModeOverride", + "type_name": "keen::actor::ColliderModeData", + "type_hash": 3291728644, + "data_offset": 152 + }, + { + "name": "rotationInterpolation", + "type_name": "keen::actor::RotationInterpolation", + "type_hash": 671119153, + "data_offset": 168 + }, + { + "name": "rotationInterpolationStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 224 + }, + { + "name": "rotationInterpolationEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 232 + }, + { + "name": "animationStateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 240 + }, + { + "name": "animationRootMotionMask", + "type_name": "keen::animationgraph::RootMotionMask", + "type_hash": 2647428094, + "data_offset": 244 + }, + { + "name": "lastSpawnedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 248 + }, + { + "name": "stopEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 252 + }, + { + "name": "positionLerpEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "positionLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 272 + }, + { + "name": "positionLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 280 + }, + { + "name": "orientationLerpEnd", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 288 + }, + { + "name": "orientationLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 304 + }, + { + "name": "orientationLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 312 + }, + { + "name": "movementFactors", + "type_name": "keen::actor::MovementFactors", + "type_hash": 1704295110, + "data_offset": 320 + }, + { + "name": "movementFactorsLerpStart", + "type_name": "keen::actor::MovementFactors", + "type_hash": 1704295110, + "data_offset": 332 + }, + { + "name": "movementFactorsLerpEnd", + "type_name": "keen::actor::MovementFactors", + "type_hash": 1704295110, + "data_offset": 344 + }, + { + "name": "movementFactorsLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 360 + }, + { + "name": "movementFactorsLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 368 + }, + { + "name": "rotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 376 + }, + { + "name": "rotationFactorLerpStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 380 + }, + { + "name": "rotationFactorLerpEnd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 384 + }, + { + "name": "rotationFactorLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 392 + }, + { + "name": "rotationFactorLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 400 + }, + { + "name": "gravityModifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 408 + }, + { + "name": "isGravityModified", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 412 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Actor", + "type_name_2": "ecs.Actor", + "qualified_name": "keen::ecs::Actor", + "referenced_type_name": "keen::ecs::BaseActor", + "class_size": 2584, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 10390324, + "hash2": 377238369, + "struct_fields": [ + { + "name": "currentServerAction", + "type_name": "keen::ecs::ServerActionSequenceData", + "type_hash": 644803655, + "data_offset": 2088 + }, + { + "name": "deathSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 2504 + }, + { + "name": "deathSequenceWaitsForGroundedState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2520 + }, + { + "name": "defaultVisibleState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2521 + }, + { + "name": "sendDeathEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2522 + }, + { + "name": "deathSequenceId", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 2524 + }, + { + "name": "currentColliderMode", + "type_name": "keen::ecs::ColliderMode", + "type_hash": 4112969876, + "data_offset": 2528 + }, + { + "name": "rotationInterpolation", + "type_name": "keen::actor::RotationInterpolation", + "type_hash": 671119153, + "data_offset": 2532 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisableColliderModeChanges", + "type_name_2": "ecs.DisableColliderModeChanges", + "qualified_name": "keen::ecs::DisableColliderModeChanges", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1981598275, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NetworkActor", + "type_name_2": "ecs.NetworkActor", + "qualified_name": "keen::ecs::NetworkActor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 120, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 437546476, + "hash2": 1110410191, + "struct_fields": [ + { + "name": "sequenceRuntimeId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 0 + }, + { + "name": "currentAbilityMask", + "type_name": "keen::actor::AbilityMask", + "type_hash": 3470695687, + "data_offset": 24 + }, + { + "name": "currentState", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 32 + }, + { + "name": "interactionHostId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 40 + }, + { + "name": "currentActionEntityTags", + "type_name": "keen::StaticArray", + "type_hash": 3764964429, + "data_offset": 44 + }, + { + "name": "usedItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 108 + }, + { + "name": "currentActionState", + "type_name": "keen::actor::ActionSequenceState", + "type_hash": 3355351645, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientActor", + "type_name_2": "ecs.ClientActor", + "qualified_name": "keen::ecs::ClientActor", + "referenced_type_name": "keen::ecs::BaseActor", + "class_size": 2112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 999370041, + "hash2": 102002712, + "struct_fields": [ + { + "name": "lastReceivedSequenceRuntimeId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 2088 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleActorInput", + "type_name_2": "ecs.SimpleActorInput", + "qualified_name": "keen::ecs::SimpleActorInput", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 81074070, + "hash2": 812761728, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "usedItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 16 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleToggleActor", + "type_name_2": "ecs.SimpleToggleActor", + "qualified_name": "keen::ecs::SimpleToggleActor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 406971890, + "hash2": 3556321572, + "struct_fields": [ + { + "name": "on", + "type_name": "keen::ecs::SimpleActorInput", + "type_hash": 81074070, + "data_offset": 0 + }, + { + "name": "off", + "type_name": "keen::ecs::SimpleActorInput", + "type_hash": 81074070, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSimpleToggleActor", + "type_name_2": "ecs.DynamicSimpleToggleActor", + "qualified_name": "keen::ecs::DynamicSimpleToggleActor", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1340211279, + "hash2": 1666350909, + "struct_fields": [ + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TrapState", + "type_name_2": "ecs.TrapState", + "qualified_name": "keen::ecs::TrapState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 593042853, + "hash2": 3956909118, + "struct_fields": [], + "enum_fields": [ + { + "name": "Armed", + "value": 0 + }, + { + "name": "Disarmed", + "value": 1 + }, + { + "name": "Triggered", + "value": 2 + } + ] + }, + { + "type_name_1": "AttackCategory", + "type_name_2": "impact.AttackCategory", + "qualified_name": "keen::impact::AttackCategory", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 2430381548, + "hash2": 4218998917, + "struct_fields": [], + "enum_fields": [ + { + "name": "Melee", + "value": 0 + }, + { + "name": "Ranged", + "value": 1 + }, + { + "name": "Magic", + "value": 2 + }, + { + "name": "Tool", + "value": 3 + }, + { + "name": "Other", + "value": 4 + }, + { + "name": "AoE", + "value": 5 + }, + { + "name": "SkillShot", + "value": 6 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::impact::AttackCategory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3787739074, + "hash2": 1699104389, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCategoryMask", + "type_name_2": "impact.AttackCategoryMask", + "qualified_name": "keen::impact::AttackCategoryMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 237693500, + "hash2": 3857599703, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SimpleTrapActor", + "type_name_2": "ecs.SimpleTrapActor", + "qualified_name": "keen::ecs::SimpleTrapActor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 192, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4076903755, + "hash2": 1590567426, + "struct_fields": [ + { + "name": "onTriggerEnter", + "type_name": "keen::ecs::SimpleActorInput", + "type_hash": 81074070, + "data_offset": 0 + }, + { + "name": "onTriggerLeave", + "type_name": "keen::ecs::SimpleActorInput", + "type_hash": 81074070, + "data_offset": 36 + }, + { + "name": "onArm", + "type_name": "keen::ecs::SimpleActorInput", + "type_hash": 81074070, + "data_offset": 72 + }, + { + "name": "onDisarm", + "type_name": "keen::ecs::SimpleActorInput", + "type_hash": 81074070, + "data_offset": 108 + }, + { + "name": "triggerCooldownTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 144 + }, + { + "name": "triggerOnHit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 152 + }, + { + "name": "disabledDamageTypes", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 153 + }, + { + "name": "idleArmedAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 156 + }, + { + "name": "idleDisarmedAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSimpleTrapActor", + "type_name_2": "ecs.DynamicSimpleTrapActor", + "qualified_name": "keen::ecs::DynamicSimpleTrapActor", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3466652946, + "hash2": 3021796936, + "struct_fields": [ + { + "name": "lastArmedTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::ecs::TrapState", + "type_hash": 593042853, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportZone", + "type_name_2": "ecs.TeleportZone", + "qualified_name": "keen::ecs::TeleportZone", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1643815686, + "hash2": 1783462610, + "struct_fields": [ + { + "name": "zoneTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportZoneConnection", + "type_name_2": "ecs.TeleportZoneConnection", + "qualified_name": "keen::ecs::TeleportZoneConnection", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2638390914, + "hash2": 3963421689, + "struct_fields": [ + { + "name": "teleporterId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "targetTeleporterId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Teleport", + "type_name_2": "ecs.Teleport", + "qualified_name": "keen::ecs::Teleport", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 590892352, + "hash2": 4161867829, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 56 + }, + { + "name": "applied", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "searchBestSpawnPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FallDamage", + "type_name_2": "ecs.FallDamage", + "qualified_name": "keen::ecs::FallDamage", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3967212387, + "hash2": 3071913806, + "struct_fields": [ + { + "name": "fallDamageStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "fallDamageLethalDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "fallDamageSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicFallDamage", + "type_name_2": "ecs.DynamicFallDamage", + "qualified_name": "keen::ecs::DynamicFallDamage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4145546520, + "hash2": 1340552674, + "struct_fields": [ + { + "name": "wasFalling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "resetFallAltitudeOnApex", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "fallStartAltitude", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "detectedFallDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "detectedFallDamagePercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerCameraControl", + "type_name_2": "ecs.ServerCameraControl", + "qualified_name": "keen::ecs::ServerCameraControl", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2584819900, + "hash2": 672746130, + "struct_fields": [ + { + "name": "isCameraIdLocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lockedCameraId", + "type_name": "keen::CameraId", + "type_hash": 1313581408, + "data_offset": 1 + }, + { + "name": "unlockTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "cameraOverride", + "type_name": "keen::CameraOverride", + "type_hash": 2285807293, + "data_offset": 16 + }, + { + "name": "overrideEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkCameraControl", + "type_name_2": "ecs.NetworkCameraControl", + "qualified_name": "keen::ecs::NetworkCameraControl", + "referenced_type_name": "keen::ecs::Component", + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3536398261, + "hash2": 3182463373, + "struct_fields": [ + { + "name": "isCameraIdLocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lockedCameraId", + "type_name": "keen::CameraId", + "type_hash": 1313581408, + "data_offset": 1 + }, + { + "name": "cameraOverride", + "type_name": "keen::CameraOverride", + "type_hash": 2285807293, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCameraControl", + "type_name_2": "ecs.ClientCameraControl", + "qualified_name": "keen::ecs::ClientCameraControl", + "referenced_type_name": "keen::ecs::Component", + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 576241480, + "hash2": 780920878, + "struct_fields": [ + { + "name": "activeCameraId", + "type_name": "keen::CameraId", + "type_hash": 1313581408, + "data_offset": 0 + }, + { + "name": "idleCameraTriggerDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "buildingCameraSwitchDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "hipfireCameraSwitchDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "entityCameraPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 16 + }, + { + "name": "entityCameraOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LockedTargetFlags", + "type_name_2": "ecs.LockedTargetFlags", + "qualified_name": "keen::ecs::LockedTargetFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 746661399, + "hash2": 482633219, + "struct_fields": [], + "enum_fields": [ + { + "name": "Static", + "value": 0 + }, + { + "name": "Updated", + "value": 1 + }, + { + "name": "VelocityUpdated", + "value": 2 + }, + { + "name": "SupportsHardLock", + "value": 3 + }, + { + "name": "WasHit", + "value": 4 + } + ] + }, + { + "type_name_1": "TargetSelector", + "type_name_2": "ecs.TargetSelector", + "qualified_name": "keen::ecs::TargetSelector", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1899335567, + "hash2": 285132533, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetImportance", + "type_name_2": "ecs.TargetImportance", + "qualified_name": "keen::ecs::TargetImportance", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1087139072, + "hash2": 162807920, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "VeryLow", + "value": 1 + }, + { + "name": "Low", + "value": 2 + }, + { + "name": "Normal", + "value": 3 + }, + { + "name": "High", + "value": 4 + }, + { + "name": "VeryHigh", + "value": 5 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::LockedTargetFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2968991783, + "hash2": 789329334, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetInfo", + "type_name_2": "ecs.TargetInfo", + "qualified_name": "keen::ecs::TargetInfo", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2784948786, + "hash2": 413252409, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "targetingOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 56 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 96 + }, + { + "name": "targetImportance", + "type_name": "keen::ecs::TargetImportance", + "type_hash": 1087139072, + "data_offset": 100 + }, + { + "name": "colliderId", + "type_name": "keen::ecs::ColliderId", + "type_hash": 4154344934, + "data_offset": 104 + }, + { + "name": "changeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 112 + }, + { + "name": "flags", + "type_name": "keen::Bitmask8", + "type_hash": 2968991783, + "data_offset": 114 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.TargetInfo[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::TargetInfo", + "class_size": 1920, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 3278142643, + "hash2": 950409255, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SelectedTargets", + "type_name_2": "ecs.SelectedTargets", + "qualified_name": "keen::ecs::SelectedTargets", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1928, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1214995788, + "hash2": 2623395694, + "struct_fields": [ + { + "name": "targets", + "type_name": "keen::StaticArray", + "type_hash": 3278142643, + "data_offset": 0 + }, + { + "name": "interactionSequencePredictionHelper", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 1920 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkSelectedTargets", + "type_name_2": "ecs.NetworkSelectedTargets", + "qualified_name": "keen::ecs::NetworkSelectedTargets", + "referenced_type_name": "keen::ecs::Component", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3280269092, + "hash2": 2051477000, + "struct_fields": [ + { + "name": "targetIds", + "type_name": "keen::StaticArray", + "type_hash": 4122265852, + "data_offset": 0 + }, + { + "name": "combatTargetSupportsHardLock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParentTargets", + "type_name_2": "ecs.ParentTargets", + "qualified_name": "keen::ecs::ParentTargets", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4247762715, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerTarget", + "type_name_2": "ecs.ServerTarget", + "qualified_name": "keen::ecs::ServerTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 146295077, + "hash2": 1249264999, + "struct_fields": [ + { + "name": "hardLockTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "targetImportance", + "type_name": "keen::ecs::TargetImportance", + "type_hash": 1087139072, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HardLockTarget", + "type_name_2": "ecs.HardLockTarget", + "qualified_name": "keen::ecs::HardLockTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 937068464, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClearPathToTarget", + "type_name_2": "ecs.ClearPathToTarget", + "qualified_name": "keen::ecs::ClearPathToTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3985914859, + "hash2": 1918627969, + "struct_fields": [ + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 4 + }, + { + "name": "hasHitSolidCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "hasHitSteeringCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Loot", + "type_name_2": "ecs.Loot", + "qualified_name": "keen::ecs::Loot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3788430017, + "hash2": 944409383, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "awaitingDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Orb", + "type_name_2": "ecs.Orb", + "qualified_name": "keen::ecs::Orb", + "referenced_type_name": "keen::ecs::Component", + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2990220148, + "hash2": 1379947220, + "struct_fields": [ + { + "name": "pickupNotifier", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 0 + }, + { + "name": "pickupTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 16 + }, + { + "name": "program", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 32 + }, + { + "name": "awaitingDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 52 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLootNodeId", + "type_name_2": "ecs.SceneLootNodeId", + "qualified_name": "keen::ecs::SceneLootNodeId", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1754089498, + "hash2": 3316252219, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DefaultLootLabelCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 645302084, + "hash2": 3975484359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomLoot", + "type_name_2": "ecs.RandomLoot", + "qualified_name": "keen::ecs::RandomLoot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2133492994, + "hash2": 2122747167, + "struct_fields": [ + { + "name": "defaultLabels", + "type_name": "keen::ObjectReference", + "type_hash": 645302084, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootProbability", + "type_name_2": "ecs.RandomLootProbability", + "qualified_name": "keen::ecs::RandomLootProbability", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2388676805, + "hash2": 3457387032, + "struct_fields": [ + { + "name": "spawnProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootSlotCount", + "type_name_2": "ecs.RandomLootSlotCount", + "qualified_name": "keen::ecs::RandomLootSlotCount", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4222335893, + "hash2": 2009765806, + "struct_fields": [ + { + "name": "slotsMin", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "slotsMax", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootContainer", + "type_name_2": "ecs.RandomLootContainer", + "qualified_name": "keen::ecs::RandomLootContainer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 102619649, + "hash2": 2265309534, + "struct_fields": [ + { + "name": "spawnedLootVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "parentNodeId", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 4 + }, + { + "name": "defaultLabelsId", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootPlayerScale", + "type_name_2": "ecs.RandomLootPlayerScale", + "qualified_name": "keen::ecs::RandomLootPlayerScale", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3144160403, + "hash2": 866782983, + "struct_fields": [ + { + "name": "playerCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootLock", + "type_name_2": "ecs.RandomLootLock", + "qualified_name": "keen::ecs::RandomLootLock", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1408818989, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PickupLootSlot", + "type_name_2": "ecs.PickupLootSlot", + "qualified_name": "keen::ecs::PickupLootSlot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3315311765, + "hash2": 2045909678, + "struct_fields": [ + { + "name": "genericPickupItem", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "spawnedPickupEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootInventory", + "type_name_2": "ecs.RandomLootInventory", + "qualified_name": "keen::ecs::RandomLootInventory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3332305942, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootOnDestroy", + "type_name_2": "ecs.RandomLootOnDestroy", + "qualified_name": "keen::ecs::RandomLootOnDestroy", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1550868259, + "hash2": 3687577488, + "struct_fields": [ + { + "name": "triggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisableRandomLootOnDestroy", + "type_name_2": "ecs.DisableRandomLootOnDestroy", + "qualified_name": "keen::ecs::DisableRandomLootOnDestroy", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1917201633, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootEntitySpawner", + "type_name_2": "ecs.RandomLootEntitySpawner", + "qualified_name": "keen::ecs::RandomLootEntitySpawner", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3363392843, + "hash2": 3180650568, + "struct_fields": [ + { + "name": "lootEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "spawnedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagComponent", + "type_name_2": "ecs.LocaTagComponent", + "qualified_name": "keen::ecs::LocaTagComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1507595773, + "hash2": 3250987651, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTag", + "type_name_2": "LocaTag", + "qualified_name": "keen::LocaTag", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2237453265, + "hash2": 401042608, + "struct_fields": [ + { + "name": "keenglish", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerLocaTag", + "type_name_2": "ecs.MapMarkerLocaTag", + "qualified_name": "keen::ecs::MapMarkerLocaTag", + "referenced_type_name": "keen::LocaTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1683746364, + "hash2": 3253535038, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MapMarkerType", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4032521043, + "hash2": 3966829931, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerTypeReference", + "type_name_2": "MapMarkerTypeReference", + "qualified_name": "keen::MapMarkerTypeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 855653551, + "hash2": 1323791043, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarker", + "type_name_2": "ecs.MapMarker", + "qualified_name": "keen::ecs::MapMarker", + "referenced_type_name": "keen::ecs::Component", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2331013317, + "hash2": 252719658, + "struct_fields": [ + { + "name": "markerId", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "markerType", + "type_name": "keen::MapMarkerTypeReference", + "type_hash": 855653551, + "data_offset": 16 + }, + { + "name": "rangeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerVisibilityType", + "type_name_2": "ecs.MapMarkerVisibilityType", + "qualified_name": "keen::ecs::MapMarkerVisibilityType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3169608621, + "hash2": 1607890034, + "struct_fields": [], + "enum_fields": [ + { + "name": "Hidden", + "value": 0 + }, + { + "name": "Hint", + "value": 1 + }, + { + "name": "Visible", + "value": 2 + }, + { + "name": "Completed", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::MapMarkerVisibilityType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1912180973, + "hash2": 2473124913, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerVisibilityStateMask", + "type_name_2": "ecs.MapMarkerVisibilityStateMask", + "qualified_name": "keen::ecs::MapMarkerVisibilityStateMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4230891878, + "hash2": 240214828, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerVisibilityState", + "type_name_2": "ecs.MapMarkerVisibilityState", + "qualified_name": "keen::ecs::MapMarkerVisibilityState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2411108310, + "hash2": 2511461165, + "struct_fields": [ + { + "name": "visibility", + "type_name": "keen::ecs::MapMarkerVisibilityType", + "type_hash": 3169608621, + "data_offset": 0 + }, + { + "name": "lastChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "knowledgeChangeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerToggleState", + "type_name_2": "ecs.MapMarkerToggleState", + "qualified_name": "keen::ecs::MapMarkerToggleState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1574725942, + "hash2": 3049934393, + "struct_fields": [ + { + "name": "visibilityMap", + "type_name": "keen::ecs::MapMarkerVisibilityStateMask", + "type_hash": 4230891878, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Location", + "type_name_2": "ecs.Location", + "qualified_name": "keen::ecs::Location", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 177638800, + "hash2": 1754624751, + "struct_fields": [ + { + "name": "isInLocation", + "type_name": "keen::ecs::LocalPlayerMask", + "type_hash": 2480285131, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsPlayerInRange", + "type_name_2": "ecs.IsPlayerInRange", + "qualified_name": "keen::ecs::IsPlayerInRange", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2720146434, + "hash2": 3750073634, + "struct_fields": [ + { + "name": "onlyPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "ignoreStates", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 8 + }, + { + "name": "updateDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "deactivateRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "minRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicIsPlayerInRange", + "type_name_2": "ecs.DynamicIsPlayerInRange", + "qualified_name": "keen::ecs::DynamicIsPlayerInRange", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3480830311, + "hash2": 4094941915, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "closestActorId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleType", + "type_name_2": "ecs.ToggleType", + "qualified_name": "keen::ecs::ToggleType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 659455523, + "hash2": 597733147, + "struct_fields": [], + "enum_fields": [ + { + "name": "On", + "value": 0 + }, + { + "name": "Off", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::ToggleType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2992251139, + "hash2": 236534878, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleMask", + "type_name_2": "ecs.ToggleMask", + "qualified_name": "keen::ecs::ToggleMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 569923983, + "hash2": 1545932005, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleInShape", + "type_name_2": "ecs.ToggleInShape", + "qualified_name": "keen::ecs::ToggleInShape", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3063762621, + "hash2": 841454321, + "struct_fields": [ + { + "name": "ignoreState", + "type_name": "keen::ecs::ToggleMask", + "type_hash": 569923983, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InertialFrame", + "type_name_2": "ecs.InertialFrame", + "qualified_name": "keen::ecs::InertialFrame", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4208970114, + "hash2": 51423476, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlopeDefinition", + "type_name_2": "SlopeDefinition", + "qualified_name": "keen::SlopeDefinition", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2437673868, + "hash2": 3678271062, + "struct_fields": [ + { + "name": "steepFloorAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 0 + }, + { + "name": "slidingAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "fallDamageAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + }, + { + "name": "slidingMaterialMinAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SlopeDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2576850241, + "hash2": 3815548791, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlopeConfig", + "type_name_2": "ecs.SlopeConfig", + "qualified_name": "keen::ecs::SlopeConfig", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 20884096, + "hash2": 1353913318, + "struct_fields": [ + { + "name": "slopeDefinition", + "type_name": "keen::SlopeDefinition", + "type_hash": 2437673868, + "data_offset": 0 + }, + { + "name": "slopeDefinitionObject", + "type_name": "keen::ObjectReference", + "type_hash": 2576850241, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotType", + "type_name_2": "ecs.HookShotType", + "qualified_name": "keen::ecs::HookShotType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2881708600, + "hash2": 3127680325, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "PullTarget", + "value": 1 + }, + { + "name": "PullSelf", + "value": 2 + }, + { + "name": "SwingSelf", + "value": 3 + }, + { + "name": "Count", + "value": 4 + }, + { + "name": "Auto", + "value": 4 + } + ] + }, + { + "type_name_1": "PlayerFx", + "type_name_2": "ecs.PlayerFx", + "qualified_name": "keen::ecs::PlayerFx", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3635217256, + "hash2": 20521297, + "struct_fields": [ + { + "name": "fxEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "attachEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerFxSpawner", + "type_name_2": "ecs.PlayerFxSpawner", + "qualified_name": "keen::ecs::PlayerFxSpawner", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3875022764, + "hash2": 3698690337, + "struct_fields": [ + { + "name": "hookShotTargetFx", + "type_name": "keen::ecs::PlayerFx", + "type_hash": 3635217256, + "data_offset": 0 + }, + { + "name": "hookShotRopeFx", + "type_name": "keen::ecs::PlayerFx", + "type_hash": 3635217256, + "data_offset": 8 + }, + { + "name": "gliderUpstreamFx", + "type_name": "keen::ecs::PlayerFx", + "type_hash": 3635217256, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotState", + "type_name_2": "ecs.HookShotState", + "qualified_name": "keen::ecs::HookShotState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3675200133, + "hash2": 2929975402, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Enter", + "value": 1 + }, + { + "name": "Update", + "value": 2 + }, + { + "name": "Exit", + "value": 3 + } + ] + }, + { + "type_name_1": "HookShot", + "type_name_2": "ecs.HookShot", + "qualified_name": "keen::ecs::HookShot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 168, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 338445584, + "hash2": 2164612171, + "struct_fields": [ + { + "name": "triggerAnchorEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sequenceTrigger", + "type_name": "keen::actor::ActionSequenceTrigger", + "type_hash": 4018170100, + "data_offset": 16 + }, + { + "name": "triggerItemInstance", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 20 + }, + { + "name": "hookShotType", + "type_name": "keen::ecs::HookShotType", + "type_hash": 2881708600, + "data_offset": 40 + }, + { + "name": "hookShotState", + "type_name": "keen::ecs::HookShotState", + "type_hash": 3675200133, + "data_offset": 41 + }, + { + "name": "sequenceResourceId", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 44 + }, + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 48 + }, + { + "name": "anchorEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 72 + }, + { + "name": "anchorPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 80 + }, + { + "name": "hookPullActorTargetOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 104 + }, + { + "name": "hookPullAnchorNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 116 + }, + { + "name": "hookPullOriginalVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "hookSwingOriginalHorizontalDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 140 + }, + { + "name": "hookSwingEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 152 + }, + { + "name": "hookSwingRopeLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "isEnemyHookAnchor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 164 + }, + { + "name": "useHookShotCamera", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 165 + }, + { + "name": "hasTouchedGroundAfterHook", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 166 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientHookShot", + "type_name_2": "ecs.ClientHookShot", + "qualified_name": "keen::ecs::ClientHookShot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1554831463, + "hash2": 356019021, + "struct_fields": [ + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "anchorPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "useHookShotCamera", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "hookShotType", + "type_name": "keen::ecs::HookShotType", + "type_hash": 2881708600, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotDiscoverMemory", + "type_name_2": "ecs.HookShotDiscoverMemory", + "qualified_name": "keen::ecs::HookShotDiscoverMemory", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1535453912, + "hash2": 1425250100, + "struct_fields": [ + { + "name": "entityIds", + "type_name": "keen::StaticArray", + "type_hash": 4122265852, + "data_offset": 0 + }, + { + "name": "discoveredMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotInteractionOffer", + "type_name_2": "ecs.HookShotInteractionOffer", + "qualified_name": "keen::ecs::HookShotInteractionOffer", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 757746062, + "hash2": 904353589, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "actorTargetOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "anchorEntityLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "hookShotType", + "type_name": "keen::ecs::HookShotType", + "type_hash": 2881708600, + "data_offset": 72 + }, + { + "name": "index", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 73 + }, + { + "name": "hasPriority", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 74 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotTargeting", + "type_name_2": "ecs.HookShotTargeting", + "qualified_name": "keen::ecs::HookShotTargeting", + "referenced_type_name": "keen::ecs::Component", + "class_size": 152, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3238193223, + "hash2": 2350201619, + "struct_fields": [ + { + "name": "bestInteractionOffer", + "type_name": "keen::ecs::HookShotInteractionOffer", + "type_hash": 757746062, + "data_offset": 0 + }, + { + "name": "discoverMemory", + "type_name": "keen::ecs::HookShotDiscoverMemory", + "type_hash": 1535453912, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotAnchor", + "type_name_2": "ecs.HookShotAnchor", + "qualified_name": "keen::ecs::HookShotAnchor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1934762401, + "hash2": 2603005821, + "struct_fields": [ + { + "name": "hookShotType", + "type_name": "keen::ecs::HookShotType", + "type_hash": 2881708600, + "data_offset": 0 + }, + { + "name": "targetOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotAnchorSubEntity", + "type_name_2": "ecs.HookShotAnchorSubEntity", + "qualified_name": "keen::ecs::HookShotAnchorSubEntity", + "referenced_type_name": "keen::ecs::Component", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2553848166, + "hash2": 2754362003, + "struct_fields": [ + { + "name": "anchorEntityTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "attachmentOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookPullImpulse", + "type_name_2": "ecs.HookPullImpulse", + "qualified_name": "keen::ecs::HookPullImpulse", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2650969574, + "hash2": 3768746122, + "struct_fields": [ + { + "name": "impulseData", + "type_name": "keen::ecs::ImpulseData", + "type_hash": 2406929918, + "data_offset": 0 + }, + { + "name": "pullingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClimbType", + "type_name_2": "ecs.ClimbType", + "qualified_name": "keen::ecs::ClimbType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4107690968, + "hash2": 188482858, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Wall", + "value": 1 + }, + { + "name": "Ladder", + "value": 2 + } + ] + }, + { + "type_name_1": "ClimbState", + "type_name_2": "ecs.ClimbState", + "qualified_name": "keen::ecs::ClimbState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1458451365, + "hash2": 1636647944, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Enter", + "value": 1 + }, + { + "name": "Climb", + "value": 2 + }, + { + "name": "Exit", + "value": 3 + } + ] + }, + { + "type_name_1": "LadderQueryType", + "type_name_2": "ecs.LadderQueryType", + "qualified_name": "keen::ecs::LadderQueryType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3617805389, + "hash2": 525029045, + "struct_fields": [], + "enum_fields": [ + { + "name": "StepUp", + "value": 0 + }, + { + "name": "StepDown", + "value": 1 + }, + { + "name": "ExitTop", + "value": 2 + }, + { + "name": "Count", + "value": 3 + } + ] + }, + { + "type_name_1": "LadderQuery", + "type_name_2": "ecs.LadderQuery", + "qualified_name": "keen::ecs::LadderQuery", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3730297061, + "hash2": 1528820180, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 0 + }, + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.LadderQuery[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::LadderQuery", + "class_size": 24, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 3804792968, + "hash2": 1642632742, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Climb", + "type_name_2": "ecs.Climb", + "qualified_name": "keen::ecs::Climb", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1378525936, + "hash2": 156223083, + "struct_fields": [ + { + "name": "climbType", + "type_name": "keen::ecs::ClimbType", + "type_hash": 4107690968, + "data_offset": 0 + }, + { + "name": "climbState", + "type_name": "keen::ecs::ClimbState", + "type_hash": 1458451365, + "data_offset": 1 + }, + { + "name": "climbNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "climbBlockingTimeEnd", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "ladderCollisionQueries", + "type_name": "keen::StaticArray", + "type_hash": 3804792968, + "data_offset": 24 + }, + { + "name": "ladderEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 48 + }, + { + "name": "laddersQueryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 52 + }, + { + "name": "ladderStepPhase", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Ladder", + "type_name_2": "ecs.Ladder", + "qualified_name": "keen::ecs::Ladder", + "referenced_type_name": "keen::ecs::Component", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1482777951, + "hash2": 2201981883, + "struct_fields": [ + { + "name": "topOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "bottomOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransformData", + "type_name_2": "ecs.LerpTransformData", + "qualified_name": "keen::ecs::LerpTransformData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1106869574, + "hash2": 3547412945, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ecs::LerpTransformTarget", + "type_hash": 3630153111, + "data_offset": 0 + }, + { + "name": "localTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "WorldTransform[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::WorldTransform", + "class_size": 168, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 3946645593, + "hash2": 4242160551, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransform", + "type_name_2": "ecs.LerpTransform", + "qualified_name": "keen::ecs::LerpTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 216, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 237284966, + "hash2": 547196944, + "struct_fields": [ + { + "name": "targetTransforms", + "type_name": "keen::StaticArray", + "type_hash": 3946645593, + "data_offset": 0 + }, + { + "name": "positionLerpData", + "type_name": "keen::ecs::LerpTransformData", + "type_hash": 1106869574, + "data_offset": 168 + }, + { + "name": "orientationLerpData", + "type_name": "keen::ecs::LerpTransformData", + "type_hash": 1106869574, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BasicSpawnerComponent", + "type_name_2": "ecs.BasicSpawnerComponent", + "qualified_name": "keen::ecs::BasicSpawnerComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4164031528, + "hash2": 1403068622, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerSpawner", + "type_name_2": "ecs.TriggerSpawner", + "qualified_name": "keen::ecs::TriggerSpawner", + "referenced_type_name": "keen::ecs::BasicSpawnerComponent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 747504691, + "hash2": 3224393473, + "struct_fields": [ + { + "name": "isTriggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "spawnedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "spawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "nextAllowedSpawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerBoxMultiSpawner", + "type_name_2": "ecs.TriggerBoxMultiSpawner", + "qualified_name": "keen::ecs::TriggerBoxMultiSpawner", + "referenced_type_name": "keen::ecs::BasicSpawnerComponent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2309813053, + "hash2": 2643356781, + "struct_fields": [ + { + "name": "linkDestroyToEventSender", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "randomizeOrientation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "lastTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "minDistanceToEventSender", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTarget", + "type_name_2": "ecs.SpawnTarget", + "qualified_name": "keen::ecs::SpawnTarget", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 733168291, + "hash2": 124605193, + "struct_fields": [], + "enum_fields": [ + { + "name": "SpawnerCenter", + "value": 0 + }, + { + "name": "Player", + "value": 1 + } + ] + }, + { + "type_name_1": "SpawnMode", + "type_name_2": "ecs.SpawnMode", + "qualified_name": "keen::ecs::SpawnMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 4246963305, + "hash2": 2363450008, + "struct_fields": [], + "enum_fields": [ + { + "name": "Random", + "value": 0 + }, + { + "name": "Grouped", + "value": 1 + } + ] + }, + { + "type_name_1": "SpawnOrientationMode", + "type_name_2": "ecs.SpawnOrientationMode", + "qualified_name": "keen::ecs::SpawnOrientationMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3991367367, + "hash2": 85350301, + "struct_fields": [], + "enum_fields": [ + { + "name": "LookAtTarget", + "value": 0 + }, + { + "name": "LookAwayFromTarget", + "value": 1 + }, + { + "name": "LookAtPlayer", + "value": 2 + } + ] + }, + { + "type_name_1": "SpawnCondition", + "type_name_2": "ecs.SpawnCondition", + "qualified_name": "keen::ecs::SpawnCondition", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3651099975, + "hash2": 2077380481, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsDay", + "value": 0 + }, + { + "name": "IsNight", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::SpawnCondition", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1600728151, + "hash2": 1418292390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnConditionFlags", + "type_name_2": "ecs.SpawnConditionFlags", + "qualified_name": "keen::ecs::SpawnConditionFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2418443134, + "hash2": 663948589, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnGroupId", + "type_name_2": "ecs.SpawnGroupId", + "qualified_name": "keen::ecs::SpawnGroupId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2752369232, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::SpawnGroupId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2154123021, + "hash2": 2827239515, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnGroup", + "type_name_2": "ecs.SpawnGroup", + "qualified_name": "keen::ecs::SpawnGroup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1818308181, + "hash2": 2503245333, + "struct_fields": [ + { + "name": "spawnGroupId", + "type_name": "keen::ObjectReference", + "type_hash": 2154123021, + "data_offset": 0 + }, + { + "name": "minSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "maxSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnerEntry", + "type_name_2": "ecs.SpawnerEntry", + "qualified_name": "keen::ecs::SpawnerEntry", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1416978051, + "hash2": 1202202261, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "spawnGroupId", + "type_name": "keen::ObjectReference", + "type_hash": 2154123021, + "data_offset": 16 + }, + { + "name": "spawnConditions", + "type_name": "keen::ecs::SpawnConditionFlags", + "type_hash": 2418443134, + "data_offset": 32 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnPositionSettings", + "type_name_2": "ecs.SpawnPositionSettings", + "qualified_name": "keen::ecs::SpawnPositionSettings", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3608131328, + "hash2": 3757495717, + "struct_fields": [ + { + "name": "horizontalSearchDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "verticalSearchDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "nodeRequirements", + "type_name": "keen::ecs::PathNodeRequirements", + "type_hash": 257535372, + "data_offset": 16 + }, + { + "name": "pathGridType", + "type_name": "keen::ecs::PathGridType", + "type_hash": 3868916840, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SpawnerEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SpawnerEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3870292412, + "hash2": 64540648, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.SpawnGroup[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::SpawnGroup", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 515287482, + "hash2": 1009514055, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawner", + "type_name_2": "ecs.RandomSpawner", + "qualified_name": "keen::ecs::RandomSpawner", + "referenced_type_name": "keen::ecs::Component", + "class_size": 136, + "fields_count": 32, + "primitive_type": "Struct", + "hash1": 1628390092, + "hash2": 1276665352, + "struct_fields": [ + { + "name": "spawnEntries", + "type_name": "keen::BlobArray", + "type_hash": 3870292412, + "data_offset": 0 + }, + { + "name": "spawnGroups", + "type_name": "keen::BlobArray", + "type_hash": 515287482, + "data_offset": 8 + }, + { + "name": "minSpawnRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "maxSpawnRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "initialSpawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "minSpawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "maxSpawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "minSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 48 + }, + { + "name": "maxSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 49 + }, + { + "name": "minSpawnDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "maxSpawnDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "maxTotalSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 72 + }, + { + "name": "destroyOnSpawnFinished", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "spawnMode", + "type_name": "keen::ecs::SpawnMode", + "type_hash": 4246963305, + "data_offset": 74 + }, + { + "name": "spawnTarget", + "type_name": "keen::ecs::SpawnTarget", + "type_hash": 733168291, + "data_offset": 75 + }, + { + "name": "spawnOrientationMode", + "type_name": "keen::ecs::SpawnOrientationMode", + "type_hash": 3991367367, + "data_offset": 76 + }, + { + "name": "minEntityDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "maxEntityDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "maxSpawnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "waitUntilEntitiesAreDestroyed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "allowRespawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 93 + }, + { + "name": "useKeepAliveConditions", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 94 + }, + { + "name": "searchForGroundPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 95 + }, + { + "name": "spawnPositionSettings", + "type_name": "keen::ecs::SpawnPositionSettings", + "type_hash": 3608131328, + "data_offset": 96 + }, + { + "name": "spawnAsUnitGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 120 + }, + { + "name": "despawnEntities", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + }, + { + "name": "checkDeathState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 122 + }, + { + "name": "conditionalDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "defaultDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "useUpScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "useDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 133 + }, + { + "name": "minSpawnerAmount", + "type_name": "keen::ecs::RandomSpawnerAmount", + "type_hash": 1712700864, + "data_offset": 134 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerCommand", + "type_name_2": "ecs.RandomSpawnerCommand", + "qualified_name": "keen::ecs::RandomSpawnerCommand", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1565065189, + "hash2": 4154698624, + "struct_fields": [ + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::ecs::Transform", + "type_hash": 3337399369, + "data_offset": 8 + }, + { + "name": "spawnEntryIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 36 + }, + { + "name": "isAdditionalScalingCommand", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.RandomSpawnerCommand[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::RandomSpawnerCommand", + "class_size": 480, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 699396140, + "hash2": 4059068139, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicRandomSpawner", + "type_name_2": "ecs.DynamicRandomSpawner", + "qualified_name": "keen::ecs::DynamicRandomSpawner", + "referenced_type_name": null, + "class_size": 544, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3344258577, + "hash2": 2746059753, + "struct_fields": [ + { + "name": "nextSpawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "currentGroupId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "spawnedEntities", + "type_name": "keen::StaticArray", + "type_hash": 1767329303, + "data_offset": 12 + }, + { + "name": "spawnCommands", + "type_name": "keen::StaticArray", + "type_hash": 699396140, + "data_offset": 48 + }, + { + "name": "wasSpawnedEntityAlive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 528 + }, + { + "name": "wasAnySpawnedEntityKilled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 529 + }, + { + "name": "totalSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 530 + }, + { + "name": "spawnCommandCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 531 + }, + { + "name": "trySpawnDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 536 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConditionalDespawn", + "type_name_2": "ecs.ConditionalDespawn", + "qualified_name": "keen::ecs::ConditionalDespawn", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4064489873, + "hash2": 3915806939, + "struct_fields": [ + { + "name": "conditionalDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "defaultDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "keepAliveConditions", + "type_name": "keen::ecs::SpawnConditionFlags", + "type_hash": 2418443134, + "data_offset": 8 + }, + { + "name": "nextQueryUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientToggleFromActorState", + "type_name_2": "ecs.ClientToggleFromActorState", + "qualified_name": "keen::ecs::ClientToggleFromActorState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1318550374, + "hash2": 824672673, + "struct_fields": [ + { + "name": "entityReferenceType", + "type_name": "keen::ecs::EntityReferenceType", + "type_hash": 931428149, + "data_offset": 0 + }, + { + "name": "setIf", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 8 + }, + { + "name": "setIfNot", + "type_name": "keen::actor::StateMask", + "type_hash": 834708408, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkHealth", + "type_name_2": "ecs.NetworkHealth", + "qualified_name": "keen::ecs::NetworkHealth", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 560903673, + "hash2": 4167248228, + "struct_fields": [ + { + "name": "health", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "healthMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkStamina", + "type_name_2": "ecs.NetworkStamina", + "qualified_name": "keen::ecs::NetworkStamina", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2983246140, + "hash2": 2378807394, + "struct_fields": [ + { + "name": "stamina", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "staminaMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkLevel", + "type_name_2": "ecs.NetworkLevel", + "qualified_name": "keen::ecs::NetworkLevel", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2941390655, + "hash2": 2047531286, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkServerProgress", + "type_name_2": "ecs.NetworkServerProgress", + "qualified_name": "keen::ecs::NetworkServerProgress", + "referenced_type_name": "keen::ecs::Component", + "class_size": 6, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1211754655, + "hash2": 153222675, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "currentAltarCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "currentHighestAltarLevel", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseAttributesData", + "type_name_2": "ecs.BaseAttributesData", + "qualified_name": "keen::ecs::BaseAttributesData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3954852839, + "hash2": 692873054, + "struct_fields": [ + { + "name": "strength", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "strengthFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "dexterity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "dexterityFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 3 + }, + { + "name": "intelligence", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "intelligenceFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 5 + }, + { + "name": "constitution", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 6 + }, + { + "name": "constitutionFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 7 + }, + { + "name": "endurance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "enduranceFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "spirit", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 10 + }, + { + "name": "spiritFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ArmorAttributes", + "type_name_2": "ecs.ArmorAttributes", + "qualified_name": "keen::ecs::ArmorAttributes", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 879672235, + "hash2": 785901271, + "struct_fields": [ + { + "name": "physicalBlowthrough", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "magicalBlowthrough", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "physicalArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "cutArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "bluntArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "pierceArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "magicalArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "fireArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "iceArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "fogArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 22 + }, + { + "name": "lightningArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReviveState", + "type_name_2": "ecs.ReviveState", + "qualified_name": "keen::ecs::ReviveState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4222075299, + "hash2": 2859678473, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Reviving", + "value": 1 + }, + { + "name": "GettingRevived", + "value": 2 + } + ] + }, + { + "type_name_1": "NetworkReviveData", + "type_name_2": "ecs.NetworkReviveData", + "qualified_name": "keen::ecs::NetworkReviveData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1764805894, + "hash2": 96948260, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ecs::ReviveState", + "type_hash": 4222075299, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "left", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkPlayerAttributes", + "type_name_2": "ecs.NetworkPlayerAttributes", + "qualified_name": "keen::ecs::NetworkPlayerAttributes", + "referenced_type_name": "keen::ecs::Component", + "class_size": 184, + "fields_count": 59, + "primitive_type": "Struct", + "hash1": 196908539, + "hash2": 4163986411, + "struct_fields": [ + { + "name": "armorAttributes", + "type_name": "keen::ecs::ArmorAttributes", + "type_hash": 879672235, + "data_offset": 0 + }, + { + "name": "baseAttributes", + "type_name": "keen::ecs::BaseAttributesData", + "type_hash": 3954852839, + "data_offset": 28 + }, + { + "name": "revivieData", + "type_name": "keen::ecs::NetworkReviveData", + "type_hash": 1764805894, + "data_offset": 40 + }, + { + "name": "movementNormal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "movementSprint", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "movementSneak", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "reviveDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "reviveHealth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "critChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "critChanceMagic", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "critChanceMelee", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "critChanceRanged", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "critDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 88 + }, + { + "name": "damageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 90 + }, + { + "name": "meleeDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 92 + }, + { + "name": "rangedDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 94 + }, + { + "name": "magicDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 96 + }, + { + "name": "damageModSneak", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 98 + }, + { + "name": "damageModMerciless", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 100 + }, + { + "name": "damageModBackstab", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 102 + }, + { + "name": "damageModSkillshot", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 104 + }, + { + "name": "poisonSusceptibility", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 106 + }, + { + "name": "health", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 108 + }, + { + "name": "healthMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 110 + }, + { + "name": "healthReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 112 + }, + { + "name": "healthRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 114 + }, + { + "name": "stamina", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 116 + }, + { + "name": "staminaMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 118 + }, + { + "name": "staminaReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 120 + }, + { + "name": "staminaRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 122 + }, + { + "name": "mana", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 124 + }, + { + "name": "manaMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 126 + }, + { + "name": "manaReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 128 + }, + { + "name": "manaRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 130 + }, + { + "name": "bodyHeat", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 132 + }, + { + "name": "bodyHeatMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 134 + }, + { + "name": "bodyHeatReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 136 + }, + { + "name": "bodyHeatRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 138 + }, + { + "name": "experience", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 140 + }, + { + "name": "experienceRequired", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 142 + }, + { + "name": "fogResistance", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 144 + }, + { + "name": "fogResistanceMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 146 + }, + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 148 + }, + { + "name": "staffDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 150 + }, + { + "name": "wandDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 152 + }, + { + "name": "oneHandedDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 154 + }, + { + "name": "twoHandedDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 156 + }, + { + "name": "bowDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 158 + }, + { + "name": "daggerDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 160 + }, + { + "name": "throwableDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 162 + }, + { + "name": "unarmedDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 164 + }, + { + "name": "magicalFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 166 + }, + { + "name": "meleeFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 168 + }, + { + "name": "rangedFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 170 + }, + { + "name": "flyingFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 172 + }, + { + "name": "skeletonFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 174 + }, + { + "name": "healing", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 176 + }, + { + "name": "freezingResistance", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 178 + }, + { + "name": "comfortLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GatherResourceType", + "type_name_2": "ecs.GatherResourceType", + "qualified_name": "keen::ecs::GatherResourceType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 107980920, + "hash2": 3772593047, + "struct_fields": [], + "enum_fields": [ + { + "name": "Wood", + "value": 0 + }, + { + "name": "Stone", + "value": 1 + } + ] + }, + { + "type_name_1": "MiningNode", + "type_name_2": "ecs.MiningNode", + "qualified_name": "keen::ecs::MiningNode", + "referenced_type_name": "keen::ecs::Component", + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1592031199, + "hash2": 2658203293, + "struct_fields": [ + { + "name": "resourceType", + "type_name": "keen::ecs::GatherResourceType", + "type_hash": 107980920, + "data_offset": 0 + }, + { + "name": "onResourceDepletion", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 20 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 60 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 76 + }, + { + "name": "aliveDropCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 92 + }, + { + "name": "numberOfDrops", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 93 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicMiningNode", + "type_name_2": "ecs.DynamicMiningNode", + "qualified_name": "keen::ecs::DynamicMiningNode", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1868829172, + "hash2": 1018140805, + "struct_fields": [ + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "canBeDestroyed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "remainingDropCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WiggleComponent", + "type_name_2": "ecs.WiggleComponent", + "qualified_name": "keen::ecs::WiggleComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1650736477, + "hash2": 1300943078, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "rotationAxis", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "bounciness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthBasedScale", + "type_name_2": "ecs.HealthBasedScale", + "qualified_name": "keen::ecs::HealthBasedScale", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2059553290, + "hash2": 1182753860, + "struct_fields": [ + { + "name": "minSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "percentage", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryEmptyState", + "type_name_2": "ecs.InventoryEmptyState", + "qualified_name": "keen::ecs::InventoryEmptyState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 935645159, + "hash2": 3320710003, + "struct_fields": [ + { + "name": "toggleVFX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isEmpty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyInventoryEmptyStateFromParent", + "type_name_2": "ecs.CopyInventoryEmptyStateFromParent", + "qualified_name": "keen::ecs::CopyInventoryEmptyStateFromParent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 676806024, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransformHistoryEntry", + "type_name_2": "ecs.TransformHistoryEntry", + "qualified_name": "keen::ecs::TransformHistoryEntry", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3651427237, + "hash2": 1133922299, + "struct_fields": [ + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.TransformHistoryEntry[60]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::TransformHistoryEntry", + "class_size": 3840, + "fields_count": 60, + "primitive_type": "StaticArray", + "hash1": 606774111, + "hash2": 3085272139, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransformationHistory", + "type_name_2": "ecs.TransformationHistory", + "qualified_name": "keen::ecs::TransformationHistory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 3856, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1836489842, + "hash2": 1365111246, + "struct_fields": [ + { + "name": "history", + "type_name": "keen::StaticArray", + "type_hash": 606774111, + "data_offset": 0 + }, + { + "name": "lastSampleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 3840 + }, + { + "name": "lastIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3848 + }, + { + "name": "maxIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3852 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerTransformationHistory", + "type_name_2": "ecs.ServerTransformationHistory", + "qualified_name": "keen::ecs::ServerTransformationHistory", + "referenced_type_name": "keen::ecs::TransformationHistory", + "class_size": 3856, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2835958511, + "hash2": 3877821044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientTransformationHistory", + "type_name_2": "ecs.ClientTransformationHistory", + "qualified_name": "keen::ecs::ClientTransformationHistory", + "referenced_type_name": "keen::ecs::TransformationHistory", + "class_size": 3856, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2039951683, + "hash2": 3877821044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameEvent", + "type_name_2": "ecs.GameEvent", + "qualified_name": "keen::ecs::GameEvent", + "referenced_type_name": "keen::ecs::Event", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2357288711, + "hash2": 2641507721, + "struct_fields": [ + { + "name": "timeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseHitEvent", + "type_name_2": "ecs.BaseHitEvent", + "qualified_name": "keen::ecs::BaseHitEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 184, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 221184697, + "hash2": 3737966414, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "hasVolume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "miningDamagedVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "miningRemovedVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "hasMiningVolume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "materialA", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 104 + }, + { + "name": "materialB", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 120 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 136 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 148 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 160 + }, + { + "name": "rootSourceId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 172 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 176 + }, + { + "name": "flags", + "type_name": "keen::ecs::HitEventFlagMask", + "type_hash": 2204135162, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactId", + "type_name_2": "impact.ImpactId", + "qualified_name": "keen::impact::ImpactId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1745970775, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushBackForce", + "type_name_2": "impact.PushBackForce", + "qualified_name": "keen::impact::PushBackForce", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1564332290, + "hash2": 2555738474, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Small", + "value": 1 + }, + { + "name": "Normal", + "value": 2 + }, + { + "name": "Big", + "value": 3 + }, + { + "name": "VeryBig", + "value": 4 + }, + { + "name": "VerySmall", + "value": 5 + } + ] + }, + { + "type_name_1": "WeaponCategoryId", + "type_name_2": "WeaponCategoryId", + "qualified_name": "keen::WeaponCategoryId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1331783283, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitEvent", + "type_name_2": "ecs.HitEvent", + "qualified_name": "keen::ecs::HitEvent", + "referenced_type_name": "keen::ecs::BaseHitEvent", + "class_size": 248, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3423426528, + "hash2": 1076292016, + "struct_fields": [ + { + "name": "rootTargetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 184 + }, + { + "name": "sourceId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 188 + }, + { + "name": "permissionSourceId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 192 + }, + { + "name": "weaponPideId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 196 + }, + { + "name": "armorPideId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 200 + }, + { + "name": "hitAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 208 + }, + { + "name": "healthChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 212 + }, + { + "name": "staminaChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 216 + }, + { + "name": "aggro", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "impactId", + "type_name": "keen::impact::ImpactId", + "type_hash": 1745970775, + "data_offset": 228 + }, + { + "name": "pushBackForce", + "type_name": "keen::impact::PushBackForce", + "type_hash": 1564332290, + "data_offset": 232 + }, + { + "name": "hitReaction", + "type_name": "keen::impact::HitReactionType", + "type_hash": 3443959442, + "data_offset": 234 + }, + { + "name": "hitDirectionConfig", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 236 + }, + { + "name": "attackCategory", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 237 + }, + { + "name": "weaponCategory", + "type_name": "keen::WeaponCategoryId", + "type_hash": 1331783283, + "data_offset": 240 + }, + { + "name": "targetFaction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 244 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.HitEvent[10]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::HitEvent", + "class_size": 2480, + "fields_count": 10, + "primitive_type": "StaticArray", + "hash1": 3655211859, + "hash2": 2816755911, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "WorldTransform[10]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::WorldTransform", + "class_size": 560, + "fields_count": 10, + "primitive_type": "StaticArray", + "hash1": 1572946017, + "hash2": 3750243629, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitHistory", + "type_name_2": "ecs.HitHistory", + "qualified_name": "keen::ecs::HitHistory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 3048, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 749831552, + "hash2": 1010719570, + "struct_fields": [ + { + "name": "history", + "type_name": "keen::StaticArray", + "type_hash": 3655211859, + "data_offset": 0 + }, + { + "name": "targetTransform", + "type_name": "keen::StaticArray", + "type_hash": 1572946017, + "data_offset": 2480 + }, + { + "name": "lastIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3040 + }, + { + "name": "maxIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3044 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExperienceSource", + "type_name_2": "ecs.ExperienceSource", + "qualified_name": "keen::ecs::ExperienceSource", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2726826170, + "hash2": 771163077, + "struct_fields": [ + { + "name": "lastHitPlayerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "xpMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogOfWarDiscovery", + "type_name_2": "ecs.FogOfWarDiscovery", + "qualified_name": "keen::ecs::FogOfWarDiscovery", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1303045248, + "hash2": 2594115433, + "struct_fields": [ + { + "name": "discoveryRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogType", + "type_name_2": "FogType", + "qualified_name": "keen::FogType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2957253934, + "hash2": 3083105105, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "NoneTemporary", + "value": 1 + }, + { + "name": "Dangerous", + "value": 2 + }, + { + "name": "Death", + "value": 3 + } + ] + }, + { + "type_name_1": "EnvironmentSensor", + "type_name_2": "ecs.EnvironmentSensor", + "qualified_name": "keen::ecs::EnvironmentSensor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1433180014, + "hash2": 2146271016, + "struct_fields": [ + { + "name": "fogType", + "type_name": "keen::FogType", + "type_hash": 2957253934, + "data_offset": 0 + }, + { + "name": "temperature", + "type_name": "keen::TemperatureVoxelType", + "type_hash": 1022501608, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleAnimation", + "type_name_2": "ecs.ToggleAnimation", + "qualified_name": "keen::ecs::ToggleAnimation", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3503416355, + "hash2": 3712797994, + "struct_fields": [ + { + "name": "animationStateOn", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + }, + { + "name": "animationStateOff", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleOnHit", + "type_name_2": "ecs.ToggleOnHit", + "qualified_name": "keen::ecs::ToggleOnHit", + "referenced_type_name": "keen::ecs::Component", + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2742305191, + "hash2": 3819618564, + "struct_fields": [ + { + "name": "disabledDamageTypes", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 0 + }, + { + "name": "canToggleOn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "canToggleOff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToSignalState", + "type_name_2": "ecs.LinkToggleStateToSignalState", + "qualified_name": "keen::ecs::LinkToggleStateToSignalState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 48886, + "hash2": 121181021, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToParentSignalState", + "type_name_2": "ecs.LinkToggleStateToParentSignalState", + "qualified_name": "keen::ecs::LinkToggleStateToParentSignalState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4019601158, + "hash2": 121181021, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToParentToggleState", + "type_name_2": "ecs.LinkToggleStateToParentToggleState", + "qualified_name": "keen::ecs::LinkToggleStateToParentToggleState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4154676298, + "hash2": 1498692295, + "struct_fields": [ + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkClientToggleStateToParentToggleState", + "type_name_2": "ecs.LinkClientToggleStateToParentToggleState", + "qualified_name": "keen::ecs::LinkClientToggleStateToParentToggleState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2212014197, + "hash2": 1498692295, + "struct_fields": [ + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SendToggleStateToParentToggleState", + "type_name_2": "ecs.SendToggleStateToParentToggleState", + "qualified_name": "keen::ecs::SendToggleStateToParentToggleState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2828684876, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToEnemyPhase", + "type_name_2": "ecs.LinkToggleStateToEnemyPhase", + "qualified_name": "keen::ecs::LinkToggleStateToEnemyPhase", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 182500498, + "hash2": 1764431433, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 1041958340, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToParentEnemyPhase", + "type_name_2": "ecs.LinkToggleStateToParentEnemyPhase", + "qualified_name": "keen::ecs::LinkToggleStateToParentEnemyPhase", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3852334434, + "hash2": 1764431433, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 1041958340, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SignalTransmitter", + "type_name_2": "ecs.SignalTransmitter", + "qualified_name": "keen::ecs::SignalTransmitter", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1175765522, + "hash2": 2453455836, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 0 + }, + { + "name": "signalId", + "type_name": "keen::SignalId", + "type_hash": 1676995411, + "data_offset": 16 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "sendActivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "sendDeactivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SignalReceiver", + "type_name_2": "ecs.SignalReceiver", + "qualified_name": "keen::ecs::SignalReceiver", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 463553954, + "hash2": 1554703965, + "struct_fields": [ + { + "name": "signalId", + "type_name": "keen::SignalId", + "type_hash": 1676995411, + "data_offset": 0 + }, + { + "name": "lastSenderId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "signal", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DelayFlags", + "type_name_2": "DelayFlags", + "qualified_name": "keen::DelayFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 744348544, + "hash2": 597733147, + "struct_fields": [], + "enum_fields": [ + { + "name": "On", + "value": 0 + }, + { + "name": "Off", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::DelayFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3043094294, + "hash2": 1014994052, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DelayMask", + "type_name_2": "DelayMask", + "qualified_name": "keen::DelayMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 730872933, + "hash2": 3471065124, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SignalDelay", + "type_name_2": "ecs.SignalDelay", + "qualified_name": "keen::ecs::SignalDelay", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3873219310, + "hash2": 3454440904, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "filterMask", + "type_name": "keen::DelayMask", + "type_hash": 730872933, + "data_offset": 8 + }, + { + "name": "toggleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "nextState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "initialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MagicalBarrier", + "type_name_2": "ecs.MagicalBarrier", + "qualified_name": "keen::ecs::MagicalBarrier", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2872220494, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ecs::TemplateReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4039558961, + "hash2": 1540566014, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MagicalBarrierConnection", + "type_name_2": "ecs.MagicalBarrierConnection", + "qualified_name": "keen::ecs::MagicalBarrierConnection", + "referenced_type_name": "keen::ecs::Component", + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 58054730, + "hash2": 2670315821, + "struct_fields": [ + { + "name": "initialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "barrierEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "spawnedSubentityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "spawnEntity", + "type_name": "keen::ObjectReference", + "type_hash": 4039558961, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocalSignalReceiver", + "type_name_2": "ecs.LocalSignalReceiver", + "qualified_name": "keen::ecs::LocalSignalReceiver", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3691439819, + "hash2": 3211888462, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::SignalReference", + "type_hash": 3731309403, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AttributeCommand[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::AttributeCommand", + "class_size": 128, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 3510309628, + "hash2": 1291998583, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SignalId[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::SignalId", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1088722726, + "hash2": 3125555926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "bool[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::bool", + "class_size": 16, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 3199495751, + "hash2": 1899555955, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MultiSignalReceiver", + "type_name_2": "ecs.MultiSignalReceiver", + "qualified_name": "keen::ecs::MultiSignalReceiver", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 216, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2988332673, + "hash2": 1739093744, + "struct_fields": [ + { + "name": "evaluate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "calculation", + "type_name": "keen::StaticArray", + "type_hash": 3510309628, + "data_offset": 4 + }, + { + "name": "signalIds", + "type_name": "keen::StaticArray", + "type_hash": 1088722726, + "data_offset": 132 + }, + { + "name": "signalStates", + "type_name": "keen::StaticArray", + "type_hash": 3199495751, + "data_offset": 196 + }, + { + "name": "receiveActivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 212 + }, + { + "name": "receiveDeactivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 213 + }, + { + "name": "hasEvaluatedToTrueOnce", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 214 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MultiSignalReceiverCounter", + "type_name_2": "ecs.MultiSignalReceiverCounter", + "qualified_name": "keen::ecs::MultiSignalReceiverCounter", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2755579631, + "hash2": 325491105, + "struct_fields": [ + { + "name": "activeCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "requiredCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LoreReading", + "type_name_2": "ecs.LoreReading", + "qualified_name": "keen::ecs::LoreReading", + "referenced_type_name": "keen::ecs::Component", + "class_size": 68, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 436715405, + "hash2": 3819759837, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "displayedItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "entryName", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 20 + }, + { + "name": "unlockMapMarker", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 36 + }, + { + "name": "displayedItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NonModalHint", + "type_name_2": "ecs.NonModalHint", + "qualified_name": "keen::ecs::NonModalHint", + "referenced_type_name": "keen::ecs::Component", + "class_size": 136, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1393565622, + "hash2": 891118966, + "struct_fields": [ + { + "name": "hasCloseRangeActivation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "fullTextActivation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "description", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 8 + }, + { + "name": "hasKnowledeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "useSceneKnowledgeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 28 + }, + { + "name": "queryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNonModalHint", + "type_name_2": "ecs.DynamicNonModalHint", + "qualified_name": "keen::ecs::DynamicNonModalHint", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 818689953, + "hash2": 4046373121, + "struct_fields": [ + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isInCloseRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "squaredPlayerDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetingTransform", + "type_name_2": "ecs.TargetingTransform", + "qualified_name": "keen::ecs::TargetingTransform", + "referenced_type_name": "keen::ecs::Component", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2155021422, + "hash2": 3967656519, + "struct_fields": [ + { + "name": "attachmentSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiOffsets", + "type_name_2": "ecs.UiOffsets", + "qualified_name": "keen::ecs::UiOffsets", + "referenced_type_name": "keen::ecs::Component", + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1948839395, + "hash2": 1033461821, + "struct_fields": [ + { + "name": "healthBarOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 0 + }, + { + "name": "interactionPromptOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Boss", + "type_name_2": "ecs.Boss", + "qualified_name": "keen::ecs::Boss", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2490720670, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BossHealthBar", + "type_name_2": "ecs.BossHealthBar", + "qualified_name": "keen::ecs::BossHealthBar", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4133102473, + "hash2": 554530027, + "struct_fields": [ + { + "name": "displayName", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "maxPlayerDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BossDisplay", + "type_name_2": "ecs.BossDisplay", + "qualified_name": "keen::ecs::BossDisplay", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2831382252, + "hash2": 1138548059, + "struct_fields": [ + { + "name": "rangeQueryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "bossEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "displayHealthBar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "isEngagedWithPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "displayName", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BossMusicTag", + "type_name_2": "ecs.BossMusicTag", + "qualified_name": "keen::ecs::BossMusicTag", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1853122931, + "hash2": 1935585425, + "struct_fields": [ + { + "name": "bossMusic", + "type_name": "keen::BossMusicType", + "type_hash": 1538638250, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Faction", + "type_name_2": "ecs.Faction", + "qualified_name": "keen::ecs::Faction", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2717060897, + "hash2": 1428119214, + "struct_fields": [ + { + "name": "faction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ControlCombatTarget", + "type_name_2": "ecs.ControlCombatTarget", + "qualified_name": "keen::ecs::ControlCombatTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 678849057, + "hash2": 2871811453, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "attackSequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemState", + "type_name_2": "ecs.ItemState", + "qualified_name": "keen::ecs::ItemState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 976202869, + "hash2": 425907482, + "struct_fields": [ + { + "name": "containedInSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 8 + }, + { + "name": "baseDamageUi", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "itemState", + "type_name": "keen::ItemStateMask", + "type_hash": 3237604966, + "data_offset": 14 + }, + { + "name": "itemRarityUi", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 15 + }, + { + "name": "itemLevelUi", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "durabilityRatioUi", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateItemLootState", + "type_name_2": "ecs.CreateItemLootState", + "qualified_name": "keen::ecs::CreateItemLootState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2938725351, + "hash2": 2488789961, + "struct_fields": [], + "enum_fields": [ + { + "name": "Start", + "value": 0 + }, + { + "name": "WaitForInventorySetup", + "value": 1 + }, + { + "name": "WaitForPlayerRevive", + "value": 2 + }, + { + "name": "LootCreated", + "value": 3 + } + ] + }, + { + "type_name_1": "CreateItemLoot", + "type_name_2": "ecs.CreateItemLoot", + "qualified_name": "keen::ecs::CreateItemLoot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3742200770, + "hash2": 1616346294, + "struct_fields": [ + { + "name": "lootCreationState", + "type_name": "keen::ecs::CreateItemLootState", + "type_hash": 2938725351, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemEquippedLifetime", + "type_name_2": "ecs.ItemEquippedLifetime", + "qualified_name": "keen::ecs::ItemEquippedLifetime", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1627959590, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnedCollectionItem", + "type_name_2": "ecs.SpawnedCollectionItem", + "qualified_name": "keen::ecs::SpawnedCollectionItem", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3407967084, + "hash2": 3765928597, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "modelHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemCollectionSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1080894947, + "hash2": 956358330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemCollectionSlotResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemCollectionSlotResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2692793828, + "hash2": 1054901713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionComponent", + "type_name_2": "ecs.ItemCollectionComponent", + "qualified_name": "keen::ecs::ItemCollectionComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 112, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3095770427, + "hash2": 835983205, + "struct_fields": [ + { + "name": "uiMenuName", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "uiSlottingVerb", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 16 + }, + { + "name": "spawnCollectionModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "collection", + "type_name": "keen::ObjectReference", + "type_hash": 1080894947, + "data_offset": 36 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 109196461, + "data_offset": 52 + }, + { + "name": "pose", + "type_name": "keen::ObjectReference", + "type_hash": 4217773149, + "data_offset": 68 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 84 + }, + { + "name": "slots", + "type_name": "keen::BlobArray", + "type_hash": 2692793828, + "data_offset": 100 + }, + { + "name": "poseId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.SpawnedCollectionItem[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::SpawnedCollectionItem", + "class_size": 64, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3453325956, + "hash2": 3376913524, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicItemCollectionComponent", + "type_name_2": "ecs.DynamicItemCollectionComponent", + "qualified_name": "keen::ecs::DynamicItemCollectionComponent", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2637362038, + "hash2": 2431835132, + "struct_fields": [ + { + "name": "spawnedCollectionItems", + "type_name": "keen::StaticArray", + "type_hash": 3453325956, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerCollectionCompletionKnowledge", + "type_name_2": "ecs.TriggerCollectionCompletionKnowledge", + "qualified_name": "keen::ecs::TriggerCollectionCompletionKnowledge", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3921084077, + "hash2": 3237181849, + "struct_fields": [ + { + "name": "completionKnowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovementSensor", + "type_name_2": "ecs.MovementSensor", + "qualified_name": "keen::ecs::MovementSensor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 343603496, + "hash2": 1351588975, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FleeSensor", + "type_name_2": "ecs.FleeSensor", + "qualified_name": "keen::ecs::FleeSensor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 72, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 451774761, + "hash2": 1334871144, + "struct_fields": [ + { + "name": "viewConeHalfAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "alertZoneMediumWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "originalFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "fleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "checkViewCone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "checkBackCone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "ignoreCalmEnemiesUntilTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "alertState", + "type_name": "keen::ecs::AlertState", + "type_hash": 1566768092, + "data_offset": 32 + }, + { + "name": "highestDangerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 36 + }, + { + "name": "highestDangerPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 40 + }, + { + "name": "forceUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FriendSensor", + "type_name_2": "ecs.FriendSensor", + "qualified_name": "keen::ecs::FriendSensor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1064336325, + "hash2": 1888700324, + "struct_fields": [ + { + "name": "checkRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "friendsInRange", + "type_name": "keen::StaticArray", + "type_hash": 1767329303, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemySensor", + "type_name_2": "ecs.EnemySensor", + "qualified_name": "keen::ecs::EnemySensor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3186622587, + "hash2": 607278739, + "struct_fields": [ + { + "name": "checkRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "enemiesInRange", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CheckLineAboveSensor", + "type_name_2": "ecs.CheckLineAboveSensor", + "qualified_name": "keen::ecs::CheckLineAboveSensor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3123872422, + "hash2": 1468215164, + "struct_fields": [ + { + "name": "lineCheckHeightAbove", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SafePlayerPosition", + "type_name_2": "ecs.SafePlayerPosition", + "qualified_name": "keen::ecs::SafePlayerPosition", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2660850904, + "hash2": 3074253615, + "struct_fields": [ + { + "name": "minSafeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "minFallHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSafePlayerPosition", + "type_name_2": "ecs.DynamicSafePlayerPosition", + "qualified_name": "keen::ecs::DynamicSafePlayerPosition", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 628364055, + "hash2": 3188160514, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "currentSafeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Crafting", + "type_name_2": "ecs.Crafting", + "qualified_name": "keen::ecs::Crafting", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2910283125, + "hash2": 1129739686, + "struct_fields": [ + { + "name": "workshop", + "type_name": "keen::ObjectReference", + "type_hash": 2160258773, + "data_offset": 0 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelBasedModel", + "type_name_2": "ecs.LevelBasedModel", + "qualified_name": "keen::ecs::LevelBasedModel", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4141899063, + "hash2": 1883878054, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelBasedBuildingRange", + "type_name_2": "ecs.LevelBasedBuildingRange", + "qualified_name": "keen::ecs::LevelBasedBuildingRange", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2242358283, + "hash2": 3924036403, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "box", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UpgradableBuildingRange", + "type_name_2": "ecs.UpgradableBuildingRange", + "qualified_name": "keen::ecs::UpgradableBuildingRange", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 481293359, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UpgradeData", + "type_name_2": "ecs.UpgradeData", + "qualified_name": "keen::ecs::UpgradeData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 380046085, + "hash2": 549828920, + "struct_fields": [ + { + "name": "upgradeEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.UpgradeData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::UpgradeData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1673823612, + "hash2": 3773695410, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Upgrade", + "type_name_2": "ecs.Upgrade", + "qualified_name": "keen::ecs::Upgrade", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4054134021, + "hash2": 4123830201, + "struct_fields": [ + { + "name": "levels", + "type_name": "keen::BlobArray", + "type_hash": 1673823612, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicUpgrade", + "type_name_2": "ecs.DynamicUpgrade", + "qualified_name": "keen::ecs::DynamicUpgrade", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2428741376, + "hash2": 931371860, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "spawnedLevel", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StoreAttributes", + "type_name_2": "ecs.StoreAttributes", + "qualified_name": "keen::ecs::StoreAttributes", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1841927145, + "hash2": 254228010, + "struct_fields": [ + { + "name": "health", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "stamina", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "mana", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "bodyHeat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "restoreAttributes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassEffector", + "type_name_2": "ecs.GrassEffector", + "qualified_name": "keen::ecs::GrassEffector", + "referenced_type_name": "keen::ecs::VfxComponent", + "class_size": 52, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1865254571, + "hash2": 3696544978, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SnappingBoxWorld", + "type_name_2": "ecs.SnappingBoxWorld", + "qualified_name": "keen::ecs::SnappingBoxWorld", + "referenced_type_name": "keen::ecs::Component", + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 697138496, + "hash2": 564173664, + "struct_fields": [ + { + "name": "worldBox", + "type_name": "keen::ecs::AlignedBox", + "type_hash": 2958995098, + "data_offset": 0 + }, + { + "name": "snappingBox", + "type_name": "keen::ecs::AlignedBox", + "type_hash": 2958995098, + "data_offset": 24 + }, + { + "name": "containedItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 48 + }, + { + "name": "version", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnappingBoxLocal", + "type_name_2": "ecs.SnappingBoxLocal", + "qualified_name": "keen::ecs::SnappingBoxLocal", + "referenced_type_name": "keen::ecs::Component", + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 295889935, + "hash2": 1789103617, + "struct_fields": [ + { + "name": "localBox", + "type_name": "keen::ecs::AlignedBox", + "type_hash": 2958995098, + "data_offset": 0 + }, + { + "name": "containedItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemporaryMining", + "type_name_2": "ecs.TemporaryMining", + "qualified_name": "keen::ecs::TemporaryMining", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3700821518, + "hash2": 2741889539, + "struct_fields": [ + { + "name": "voxelPosition", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "relativeHealth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCycleInventoryStock", + "type_name_2": "ecs.ClientCycleInventoryStock", + "qualified_name": "keen::ecs::ClientCycleInventoryStock", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1834854964, + "hash2": 1288566004, + "struct_fields": [ + { + "name": "inventoryStockType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "canCycle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "isCyclingDisabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "showStock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientLineOfSightState", + "type_name_2": "ecs.ClientLineOfSightState", + "qualified_name": "keen::ecs::ClientLineOfSightState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1083626373, + "hash2": 103479257, + "struct_fields": [ + { + "name": "lineOfSightState", + "type_name": "keen::ecs::LineOfSightState", + "type_hash": 2734496114, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiNpcRenderingOptions", + "type_name_2": "UiNpcRenderingOptions", + "qualified_name": "keen::UiNpcRenderingOptions", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2227643213, + "hash2": 1512291427, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "defaultAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 16 + }, + { + "name": "defaultAnimationStateId", + "type_name": "keen::animationgraph::StateIdHash", + "type_hash": 1675294988, + "data_offset": 32 + }, + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 921543191, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcSetup", + "type_name_2": "ecs.NpcSetup", + "qualified_name": "keen::ecs::NpcSetup", + "referenced_type_name": "keen::ecs::Component", + "class_size": 224, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3268612947, + "hash2": 133964771, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "includeInNpcRegistry", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "isCraftingAssistant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "workshopLabel", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 20 + }, + { + "name": "preset", + "type_name": "keen::CharacterPresetReference", + "type_hash": 2346815751, + "data_offset": 36 + }, + { + "name": "unlockRequirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 52 + }, + { + "name": "placementItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 156 + }, + { + "name": "uiRendering", + "type_name": "keen::UiNpcRenderingOptions", + "type_hash": 2227643213, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterSetup", + "type_name_2": "ecs.CharacterSetup", + "qualified_name": "keen::ecs::CharacterSetup", + "referenced_type_name": "keen::ecs::Component", + "class_size": 44, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 4243465579, + "hash2": 552365329, + "struct_fields": [ + { + "name": "gender", + "type_name": "keen::Gender", + "type_hash": 836747479, + "data_offset": 0 + }, + { + "name": "voicePackId", + "type_name": "keen::VoicePackId", + "type_hash": 1050523180, + "data_offset": 4 + }, + { + "name": "presetId", + "type_name": "keen::CharacterPresetId", + "type_hash": 1797073151, + "data_offset": 8 + }, + { + "name": "hair", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 12 + }, + { + "name": "beard", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "hairColorId", + "type_name": "keen::ColorPresetId", + "type_hash": 1822443463, + "data_offset": 20 + }, + { + "name": "beardColorId", + "type_name": "keen::ColorPresetId", + "type_hash": 1822443463, + "data_offset": 24 + }, + { + "name": "skinColor", + "type_name": "keen::PaletteColorId", + "type_hash": 813650825, + "data_offset": 28 + }, + { + "name": "eyeBrowColor", + "type_name": "keen::PaletteColorId", + "type_hash": 813650825, + "data_offset": 32 + }, + { + "name": "eyeColor", + "type_name": "keen::PaletteColorId", + "type_hash": 813650825, + "data_offset": 36 + }, + { + "name": "versionHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NewCharacterSetup", + "type_name_2": "ecs.NewCharacterSetup", + "qualified_name": "keen::ecs::NewCharacterSetup", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2937567403, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentCheck", + "type_name_2": "ecs.EquipmentCheck", + "qualified_name": "keen::ecs::EquipmentCheck", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 42930683, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerLowHealth", + "type_name_2": "ecs.PlayerLowHealth", + "qualified_name": "keen::ecs::PlayerLowHealth", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 925699450, + "hash2": 395862060, + "struct_fields": [ + { + "name": "blendOutDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "lastTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GroundCheck", + "type_name_2": "ecs.GroundCheck", + "qualified_name": "keen::ecs::GroundCheck", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2438414368, + "hash2": 2901946219, + "struct_fields": [ + { + "name": "groundPositionFound", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProcShuffleBag", + "type_name_2": "ecs.ProcShuffleBag", + "qualified_name": "keen::ecs::ProcShuffleBag", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1430443038, + "hash2": 2302118629, + "struct_fields": [ + { + "name": "procEarlyCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "procOnTimeCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "procLateCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "nextHitCountOffset", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainLootMemory", + "type_name_2": "ecs.TerrainLootMemory", + "qualified_name": "keen::ecs::TerrainLootMemory", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3007273445, + "hash2": 369222283, + "struct_fields": [ + { + "name": "procShuffleBag", + "type_name": "keen::ecs::ProcShuffleBag", + "type_hash": 1430443038, + "data_offset": 0 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "restVolumeAfterPayout", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingLootMemory", + "type_name_2": "ecs.BuildingLootMemory", + "qualified_name": "keen::ecs::BuildingLootMemory", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1907922422, + "hash2": 2128369672, + "struct_fields": [ + { + "name": "volume", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MinerSkillMemory", + "type_name_2": "ecs.MinerSkillMemory", + "qualified_name": "keen::ecs::MinerSkillMemory", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3225613092, + "hash2": 1922124045, + "struct_fields": [ + { + "name": "procShuffleBag", + "type_name": "keen::ecs::ProcShuffleBag", + "type_hash": 1430443038, + "data_offset": 0 + }, + { + "name": "payoutCounter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.TerrainLootMemory[128]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::TerrainLootMemory", + "class_size": 1536, + "fields_count": 128, + "primitive_type": "StaticArray", + "hash1": 959182096, + "hash2": 813114754, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuildingLootMemory[128]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::BuildingLootMemory", + "class_size": 512, + "fields_count": 128, + "primitive_type": "StaticArray", + "hash1": 3522309585, + "hash2": 1776321592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingLootMemory", + "type_name_2": "ecs.TerraformingLootMemory", + "qualified_name": "keen::ecs::TerraformingLootMemory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 2056, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 344160594, + "hash2": 3783262493, + "struct_fields": [ + { + "name": "terrainMemory", + "type_name": "keen::StaticArray", + "type_hash": 959182096, + "data_offset": 0 + }, + { + "name": "buildingMemory", + "type_name": "keen::StaticArray", + "type_hash": 3522309585, + "data_offset": 1536 + }, + { + "name": "minerSkillMemory", + "type_name": "keen::ecs::MinerSkillMemory", + "type_hash": 3225613092, + "data_offset": 2048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransformToLoot", + "type_name_2": "ecs.TransformToLoot", + "qualified_name": "keen::ecs::TransformToLoot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 176, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1813928050, + "hash2": 3337378627, + "struct_fields": [ + { + "name": "vfxOnSpawnOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 0 + }, + { + "name": "defaultInventory", + "type_name": "keen::ecs::DefaultInventoryReference", + "type_hash": 685009001, + "data_offset": 40 + }, + { + "name": "defaultAction", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 56 + }, + { + "name": "verbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 72 + }, + { + "name": "vfxOnSpawn", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 88 + }, + { + "name": "vfxParameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 104 + }, + { + "name": "genericSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 168 + }, + { + "name": "availableSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 169 + }, + { + "name": "keepDefaultInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 170 + }, + { + "name": "lootHealth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerStateIndicatorComponent", + "type_name_2": "ecs.PlayerStateIndicatorComponent", + "qualified_name": "keen::ecs::PlayerStateIndicatorComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4225065487, + "hash2": 1194009170, + "struct_fields": [ + { + "name": "soundContainerLowHealth", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "soundContainerLowFogPower", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "sfxLowHealthHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "sfxLowFogPowerHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Pacify", + "type_name_2": "ecs.Pacify", + "qualified_name": "keen::ecs::Pacify", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2976701125, + "hash2": 3173371298, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "pacifyFactions", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PacifiedState", + "type_name_2": "ecs.PacifiedState", + "qualified_name": "keen::ecs::PacifiedState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3445284737, + "hash2": 1606591798, + "struct_fields": [ + { + "name": "canBePacified", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isPacified", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "wasPacifyAborted", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "pacifiedBy", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "pacifyEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallFactionsForHelp", + "type_name_2": "ecs.CallFactionsForHelp", + "qualified_name": "keen::ecs::CallFactionsForHelp", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3185712050, + "hash2": 1337007898, + "struct_fields": [ + { + "name": "callForHelpRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "callForHelpFactions", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 4 + }, + { + "name": "currentGuardingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugCameraDisplay", + "type_name_2": "ecs.DebugCameraDisplay", + "qualified_name": "keen::ecs::DebugCameraDisplay", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 218403557, + "hash2": 1338117903, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::float3x4", + "type_hash": 1949183617, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatFlags", + "type_name_2": "ecs.CombatFlags", + "qualified_name": "keen::ecs::CombatFlags", + "referenced_type_name": "keen::ecs::Component", + "class_size": 11, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2365163782, + "hash2": 665518348, + "struct_fields": [ + { + "name": "immune", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "propagateHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "handleHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "canBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "ignoreMagic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "ignoreMelee", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "ignoreRanged", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "ignoreTool", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "ignoreOther", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "ignoreAoE", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "canBeBackstabbed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleImmunity", + "type_name_2": "ecs.ToggleImmunity", + "qualified_name": "keen::ecs::ToggleImmunity", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3093807081, + "hash2": 1133931085, + "struct_fields": [ + { + "name": "toggleModifier", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomOrientation", + "type_name_2": "ecs.RandomOrientation", + "qualified_name": "keen::ecs::RandomOrientation", + "referenced_type_name": "keen::ecs::Component", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1027651490, + "hash2": 3804685383, + "struct_fields": [ + { + "name": "randomOrientationOffset", + "type_name": "keen::actor::RandomOrientationOffset", + "type_hash": 3548817789, + "data_offset": 0 + }, + { + "name": "needsTargetEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "adjustVelocity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomDurationScale", + "type_name_2": "ecs.RandomDurationScale", + "qualified_name": "keen::ecs::RandomDurationScale", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1258400858, + "hash2": 2881449500, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelRequirement[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelRequirement", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 463919364, + "hash2": 3267497206, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Growth", + "type_name_2": "ecs.Growth", + "qualified_name": "keen::ecs::Growth", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3738195816, + "hash2": 738335309, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "randomDurationScale", + "type_name": "keen::ecs::RandomDurationScale", + "type_hash": 1258400858, + "data_offset": 8 + }, + { + "name": "allowedSoil", + "type_name": "keen::BlobArray", + "type_hash": 463919364, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrowthHint", + "type_name_2": "ecs.GrowthHint", + "qualified_name": "keen::ecs::GrowthHint", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3533742321, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicGrowth", + "type_name_2": "ecs.DynamicGrowth", + "qualified_name": "keen::ecs::DynamicGrowth", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1218558347, + "hash2": 1145879536, + "struct_fields": [ + { + "name": "nextLevelTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.EntityTagReferenceEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::EntityTagReferenceEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1303084930, + "hash2": 2384401250, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagContainer", + "type_name_2": "ecs.EntityTagContainer", + "qualified_name": "keen::ecs::EntityTagContainer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 348574919, + "hash2": 1749914547, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1303084930, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatStance", + "type_name_2": "ecs.CombatStance", + "qualified_name": "keen::ecs::CombatStance", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 835246315, + "hash2": 2578041978, + "struct_fields": [ + { + "name": "combatStanceDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "combatStanceEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BenchmarkPoint", + "type_name_2": "ecs.BenchmarkPoint", + "qualified_name": "keen::ecs::BenchmarkPoint", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1796923304, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CopyParentDamageSusceptibility", + "type_name_2": "ecs.CopyParentDamageSusceptibility", + "qualified_name": "keen::ecs::CopyParentDamageSusceptibility", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3969206450, + "hash2": 4277288041, + "struct_fields": [ + { + "name": "keepSkillShotAttribute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetachAction", + "type_name_2": "ecs.DetachAction", + "qualified_name": "keen::ecs::DetachAction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1659562450, + "hash2": 531553318, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Destroy", + "value": 1 + }, + { + "name": "AddGravity", + "value": 2 + } + ] + }, + { + "type_name_1": "AttachmentDirection", + "type_name_2": "ecs.AttachmentDirection", + "qualified_name": "keen::ecs::AttachmentDirection", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 806334087, + "hash2": 3716233053, + "struct_fields": [], + "enum_fields": [ + { + "name": "Down", + "value": 0 + }, + { + "name": "Up", + "value": 1 + }, + { + "name": "Left", + "value": 2 + }, + { + "name": "Right", + "value": 3 + }, + { + "name": "Forward", + "value": 4 + }, + { + "name": "Backward", + "value": 5 + } + ] + }, + { + "type_name_1": "AttachToSurface", + "type_name_2": "ecs.AttachToSurface", + "qualified_name": "keen::ecs::AttachToSurface", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2845274562, + "hash2": 3258108395, + "struct_fields": [ + { + "name": "detachAction", + "type_name": "keen::ecs::DetachAction", + "type_hash": 1659562450, + "data_offset": 0 + }, + { + "name": "detachActionInBase", + "type_name": "keen::ecs::DetachAction", + "type_hash": 1659562450, + "data_offset": 1 + }, + { + "name": "attachDirection", + "type_name": "keen::ecs::AttachmentDirection", + "type_hash": 806334087, + "data_offset": 2 + }, + { + "name": "searchLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "colliderMask", + "type_name": "keen::ecs::ColliderMask", + "type_hash": 2434446047, + "data_offset": 8 + }, + { + "name": "yOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "spawnFalling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicAttachToSurface", + "type_name_2": "ecs.DynamicAttachToSurface", + "qualified_name": "keen::ecs::DynamicAttachToSurface", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4128500139, + "hash2": 665481511, + "struct_fields": [ + { + "name": "searchStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "attachmentContainerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "hasFoundContainer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "shouldDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "hasAddedGravity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DangerousArea", + "type_name_2": "ecs.DangerousArea", + "qualified_name": "keen::ecs::DangerousArea", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2292393196, + "hash2": 2830092889, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DangerSensor", + "type_name_2": "ecs.DangerSensor", + "qualified_name": "keen::ecs::DangerSensor", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4239215994, + "hash2": 1888653390, + "struct_fields": [ + { + "name": "checkRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicDangerSensor", + "type_name_2": "ecs.DynamicDangerSensor", + "qualified_name": "keen::ecs::DynamicDangerSensor", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1678509553, + "hash2": 4682563, + "struct_fields": [ + { + "name": "hasFoundDangerousEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyParentLevel", + "type_name_2": "ecs.CopyParentLevel", + "qualified_name": "keen::ecs::CopyParentLevel", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1241424804, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerSubmerge", + "type_name_2": "ecs.ServerSubmerge", + "qualified_name": "keen::ecs::ServerSubmerge", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 330087998, + "hash2": 726964297, + "struct_fields": [ + { + "name": "submergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "maxMaterialSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "lerpStartValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "lerpEndValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkSubmerge", + "type_name_2": "ecs.NetworkSubmerge", + "qualified_name": "keen::ecs::NetworkSubmerge", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4241535297, + "hash2": 3527118783, + "struct_fields": [ + { + "name": "submergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientSubmerge", + "type_name_2": "ecs.ClientSubmerge", + "qualified_name": "keen::ecs::ClientSubmerge", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2436428578, + "hash2": 3968937508, + "struct_fields": [ + { + "name": "submergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "interpolationSource", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "interpolationTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "interpolationNewestTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SongState", + "type_name_2": "ecs.SongState", + "qualified_name": "keen::ecs::SongState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1323462075, + "hash2": 817306385, + "struct_fields": [ + { + "name": "joinTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "songStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "songId", + "type_name": "keen::SongId", + "type_hash": 1463321978, + "data_offset": 16 + }, + { + "name": "songClusterId", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomPlayerString", + "type_name_2": "ecs.CustomPlayerString", + "qualified_name": "keen::ecs::CustomPlayerString", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 241800548, + "hash2": 2799867681, + "struct_fields": [ + { + "name": "stringId", + "type_name": "keen::CustomStringId", + "type_hash": 2919298509, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SongSelection", + "type_name_2": "ecs.SongSelection", + "qualified_name": "keen::ecs::SongSelection", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3347137664, + "hash2": 3413083545, + "struct_fields": [ + { + "name": "selectedSongId", + "type_name": "keen::SongId", + "type_hash": 1463321978, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Extinguish", + "type_name_2": "ecs.Extinguish", + "qualified_name": "keen::ecs::Extinguish", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3361286019, + "hash2": 3280331194, + "struct_fields": [ + { + "name": "extinguishSfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicExtinguish", + "type_name_2": "ecs.DynamicExtinguish", + "qualified_name": "keen::ecs::DynamicExtinguish", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 157930948, + "hash2": 3265829246, + "struct_fields": [ + { + "name": "extinguishDetectionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "lastToggle", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "extinguishValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "switchedToggleOff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientExtinguish", + "type_name_2": "ecs.ClientExtinguish", + "qualified_name": "keen::ecs::ClientExtinguish", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 695175832, + "hash2": 1390255575, + "struct_fields": [ + { + "name": "lastNotifyTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "visualizedExtinguishValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedExtinguish", + "type_name_2": "ecs.PackedExtinguish", + "qualified_name": "keen::ecs::PackedExtinguish", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 107634055, + "hash2": 191520359, + "struct_fields": [ + { + "name": "lastToggleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "extinguishValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "switchedToggleOff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoodBait", + "type_name_2": "ecs.FoodBait", + "qualified_name": "keen::ecs::FoodBait", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4219960591, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RayCastSpawner", + "type_name_2": "ecs.RayCastSpawner", + "qualified_name": "keen::ecs::RayCastSpawner", + "referenced_type_name": "keen::ecs::Component", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 985195850, + "hash2": 501035384, + "struct_fields": [ + { + "name": "spawnTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "rayOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + }, + { + "name": "requiredDistanceToSpawnEntity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "minLifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "maxLifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicRayCastSpawner", + "type_name_2": "ecs.DynamicRayCastSpawner", + "qualified_name": "keen::ecs::DynamicRayCastSpawner", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1868422373, + "hash2": 1277239563, + "struct_fields": [ + { + "name": "lastSpawnPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterSurfaceFX", + "type_name_2": "ecs.WaterSurfaceFX", + "qualified_name": "keen::ecs::WaterSurfaceFX", + "referenced_type_name": "keen::ecs::Component", + "class_size": 72, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4154905363, + "hash2": 4176548348, + "struct_fields": [ + { + "name": "standingVfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + }, + { + "name": "movingVfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 16 + }, + { + "name": "waterSfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "vfxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "sfxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "previousPlayerPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "playerWasMoving", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveColliderWithRay", + "type_name_2": "ecs.MoveColliderWithRay", + "qualified_name": "keen::ecs::MoveColliderWithRay", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1869691174, + "hash2": 3368302907, + "struct_fields": [ + { + "name": "targetLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "increaseLengthDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicMoveColliderWithRay", + "type_name_2": "ecs.DynamicMoveColliderWithRay", + "qualified_name": "keen::ecs::DynamicMoveColliderWithRay", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1672456311, + "hash2": 3581260137, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterDispenser", + "type_name_2": "ecs.WaterDispenser", + "qualified_name": "keen::ecs::WaterDispenser", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2897250989, + "hash2": 2520595721, + "struct_fields": [ + { + "name": "visualOnly", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterDrain", + "type_name_2": "ecs.WaterDrain", + "qualified_name": "keen::ecs::WaterDrain", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2553582700, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameMessageChannelId", + "type_name_2": "GameMessageChannelId", + "qualified_name": "keen::GameMessageChannelId", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 415794863, + "hash2": 3323240171, + "struct_fields": [], + "enum_fields": [ + { + "name": "Login", + "value": 0 + }, + { + "name": "ServerInfo", + "value": 1 + }, + { + "name": "VoxelWorld", + "value": 2 + }, + { + "name": "EcsClient", + "value": 3 + }, + { + "name": "EcsPrediction", + "value": 4 + }, + { + "name": "Input", + "value": 5 + }, + { + "name": "SaveGame", + "value": 6 + }, + { + "name": "Knowledge", + "value": 7 + }, + { + "name": "Debug", + "value": 8 + }, + { + "name": "EcsReset", + "value": 9 + }, + { + "name": "VoiceChat", + "value": 10 + }, + { + "name": "CustomPlayerStrings", + "value": 11 + }, + { + "name": "Water", + "value": 12 + }, + { + "name": "TwitchDrop", + "value": 13 + }, + { + "name": "Weather", + "value": 14 + } + ] + }, + { + "type_name_1": "GameMessageLoginType", + "type_name_2": "GameMessageLoginType", + "qualified_name": "keen::GameMessageLoginType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2868857504, + "hash2": 3399791569, + "struct_fields": [], + "enum_fields": [ + { + "name": "Login", + "value": 0 + }, + { + "name": "SystemsReady", + "value": 1 + }, + { + "name": "GameplayReady", + "value": 2 + }, + { + "name": "Logout", + "value": 3 + } + ] + }, + { + "type_name_1": "GameMessageLoginErrors", + "type_name_2": "GameMessageLoginErrors", + "qualified_name": "keen::GameMessageLoginErrors", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2327563335, + "hash2": 3557224783, + "struct_fields": [], + "enum_fields": [ + { + "name": "Authentication", + "value": 0 + }, + { + "name": "Version", + "value": 1 + }, + { + "name": "Full", + "value": 2 + }, + { + "name": "Shutdown", + "value": 3 + }, + { + "name": "SaveDataIssue", + "value": 4 + }, + { + "name": "Generic", + "value": 5 + } + ] + }, + { + "type_name_1": "GameMessageLoginResult", + "type_name_2": "GameMessageLoginResult", + "qualified_name": "keen::GameMessageLoginResult", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2244920113, + "hash2": 2137270096, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ok", + "value": 0 + }, + { + "name": "Failed", + "value": 1 + } + ] + }, + { + "type_name_1": "DaytimeSync", + "type_name_2": "DaytimeSync", + "qualified_name": "keen::DaytimeSync", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 424032138, + "hash2": 4274597090, + "struct_fields": [ + { + "name": "ecsTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "gameTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "gameTimeScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugMessage", + "type_name_2": "DebugMessage", + "qualified_name": "keen::DebugMessage", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2856958968, + "hash2": 522634650, + "struct_fields": [ + { + "name": "cameraTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnownUserData", + "type_name_2": "KnownUserData", + "qualified_name": "keen::KnownUserData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1406581514, + "hash2": 1856293382, + "struct_fields": [ + { + "name": "characterId", + "type_name": "keen::CharacterId", + "type_hash": 580679108, + "data_offset": 0 + }, + { + "name": "baseId", + "type_name": "keen::BaseId", + "type_hash": 1672287174, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "KnownUserData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::KnownUserData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 332111371, + "hash2": 3541566261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnownUsers", + "type_name_2": "KnownUsers", + "qualified_name": "keen::KnownUsers", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3408916619, + "hash2": 2054011815, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "users", + "type_name": "keen::BlobArray", + "type_hash": 332111371, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseState", + "type_name_2": "BaseState", + "qualified_name": "keen::BaseState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3357755500, + "hash2": 2958289638, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Abandoned", + "value": 1 + } + ] + }, + { + "type_name_1": "EntitySaveData", + "type_name_2": "EntitySaveData", + "qualified_name": "keen::EntitySaveData", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2862257856, + "hash2": 1712675127, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "forcedSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "entityData", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseSaveData", + "type_name_2": "BaseSaveData", + "qualified_name": "keen::BaseSaveData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1667618502, + "hash2": 1683944932, + "struct_fields": [ + { + "name": "baseId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "buildZone", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 16 + }, + { + "name": "voxel", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 48 + }, + { + "name": "water", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BaseSaveData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BaseSaveData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 776752049, + "hash2": 1801120373, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "EntitySaveData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::EntitySaveData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 451230531, + "hash2": 3831132666, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerSaveGame", + "type_name_2": "ServerSaveGame", + "qualified_name": "keen::ServerSaveGame", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4286073182, + "hash2": 253210794, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "bases", + "type_name": "keen::BlobArray", + "type_hash": 776752049, + "data_offset": 4 + }, + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 451230531, + "data_offset": 12 + }, + { + "name": "progressEntity", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 20 + }, + { + "name": "entitySerializationContext", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 28 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerSaveGameVersion", + "type_name_2": "ServerSaveGameVersion", + "qualified_name": "keen::ServerSaveGameVersion", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 4244106914, + "hash2": 3325940829, + "struct_fields": [], + "enum_fields": [ + { + "name": "V_0", + "value": 0 + }, + { + "name": "V_1", + "value": 1 + }, + { + "name": "V_2", + "value": 2 + }, + { + "name": "V_3_FirstWorldOffset", + "value": 3 + }, + { + "name": "V_4_DeduplicateEntitiesOnLoad", + "value": 4 + }, + { + "name": "V_5_UnlockWorldDialogKnowledge", + "value": 5 + }, + { + "name": "V_6_KnowledgeRename", + "value": 6 + }, + { + "name": "V_7_Water", + "value": 7 + } + ] + }, + { + "type_name_1": "ExtendedServerSaveGame", + "type_name_2": "ExtendedServerSaveGame", + "qualified_name": "keen::ExtendedServerSaveGame", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2287984855, + "hash2": 3750063922, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sceneOffsetChangeCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "dayTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExtendedServerSaveGameVersion", + "type_name_2": "ExtendedServerSaveGameVersion", + "qualified_name": "keen::ExtendedServerSaveGameVersion", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2205711417, + "hash2": 3608657732, + "struct_fields": [], + "enum_fields": [ + { + "name": "V_0", + "value": 0 + }, + { + "name": "V_1_DayTime", + "value": 1 + } + ] + }, + { + "type_name_1": "GameSettingsPreset", + "type_name_2": "ecs.GameSettingsPreset", + "qualified_name": "keen::ecs::GameSettingsPreset", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 770884095, + "hash2": 344586110, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Relaxed", + "value": 1 + }, + { + "name": "Hard", + "value": 2 + }, + { + "name": "Survival", + "value": 3 + }, + { + "name": "Custom", + "value": 4 + } + ] + }, + { + "type_name_1": "ServerSaveGameMeta", + "type_name_2": "ServerSaveGameMeta", + "qualified_name": "keen::ServerSaveGameMeta", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3734859395, + "hash2": 4148426085, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "lastPlayTime", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 8 + }, + { + "name": "progressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 20 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "gameSettingsPreset", + "type_name": "keen::ecs::GameSettingsPreset", + "type_hash": 770884095, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedItemKnowledgeSave", + "type_name_2": "UnlockedItemKnowledgeSave", + "qualified_name": "keen::UnlockedItemKnowledgeSave", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1625599629, + "hash2": 2443947171, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 4 + }, + { + "name": "knowledge", + "type_name": "keen::ItemKnowledgeMask", + "type_hash": 3417964127, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CustomMapMarker[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CustomMapMarker", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 153294900, + "hash2": 2786579783, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CustomMapMarkerArray", + "type_name_2": "CustomMapMarkerArray", + "qualified_name": "keen::CustomMapMarkerArray", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 94696608, + "hash2": 1923009450, + "struct_fields": [ + { + "name": "mapMarkers", + "type_name": "keen::BlobArray", + "type_hash": 153294900, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterSaveGameEntry", + "type_name_2": "CharacterSaveGameEntry", + "qualified_name": "keen::CharacterSaveGameEntry", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3805165974, + "hash2": 3218810922, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::CharacterId", + "type_hash": 580679108, + "data_offset": 8 + }, + { + "name": "cloudId", + "type_name": "keen::CharacterId", + "type_hash": 580679108, + "data_offset": 24 + }, + { + "name": "lastPlayTime", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 40 + }, + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "stateMask", + "type_name": "keen::CharacterStateMask", + "type_hash": 417038090, + "data_offset": 56 + }, + { + "name": "customMapMarker", + "type_name": "keen::CustomMapMarkerArray", + "type_hash": 94696608, + "data_offset": 60 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemColorSetupInternal", + "type_name_2": "ItemColorSetupInternal", + "qualified_name": "keen::ItemColorSetupInternal", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4270793024, + "hash2": 3024853326, + "struct_fields": [ + { + "name": "colorIds", + "type_name": "keen::ColorCombinationResource", + "type_hash": 3797391648, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OutfitItemData", + "type_name_2": "OutfitItemData", + "qualified_name": "keen::OutfitItemData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3188766626, + "hash2": 11694353, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "colors", + "type_name": "keen::ItemColorSetupInternal", + "type_hash": 4270793024, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "OutfitItemData[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::OutfitItemData", + "class_size": 480, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 4144592232, + "hash2": 1134977848, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OutfitArray", + "type_name_2": "OutfitArray", + "qualified_name": "keen::OutfitArray", + "referenced_type_name": null, + "class_size": 480, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3244981570, + "hash2": 401651462, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 4144592232, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterOutfit", + "type_name_2": "CharacterOutfit", + "qualified_name": "keen::CharacterOutfit", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2775214186, + "hash2": 3487094552, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "items", + "type_name": "keen::OutfitArray", + "type_hash": 3244981570, + "data_offset": 4 + }, + { + "name": "setup", + "type_name": "keen::ecs::CharacterSetup", + "type_hash": 4243465579, + "data_offset": 484 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseSaveDataV6", + "type_name_2": "old_saves.v6.BaseSaveDataV6", + "qualified_name": "keen::old_saves::v6::BaseSaveDataV6", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2175199662, + "hash2": 627684275, + "struct_fields": [ + { + "name": "baseId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "buildZone", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 16 + }, + { + "name": "DEPRECATEDtransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 48 + }, + { + "name": "voxel", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "old_saves.v6.BaseSaveDataV6[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::old_saves::v6::BaseSaveDataV6", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3951472331, + "hash2": 1845808595, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerSaveGameV6", + "type_name_2": "old_saves.v6.ServerSaveGameV6", + "qualified_name": "keen::old_saves::v6::ServerSaveGameV6", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 312438318, + "hash2": 1084433251, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "bases", + "type_name": "keen::BlobArray", + "type_hash": 3951472331, + "data_offset": 4 + }, + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 451230531, + "data_offset": 12 + }, + { + "name": "progressEntity", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 20 + }, + { + "name": "entitySerializationContext", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 28 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShake", + "type_name_2": "ecs.CameraShake", + "qualified_name": "keen::ecs::CameraShake", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3561143678, + "hash2": 2229155896, + "struct_fields": [ + { + "name": "trauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "triggerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeImpulse", + "type_name_2": "ecs.CameraShakeImpulse", + "qualified_name": "keen::ecs::CameraShakeImpulse", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1540304633, + "hash2": 3468790649, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "additionalTrauma", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "triggerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCurrentLocationEvent", + "type_name_2": "ecs.UiCurrentLocationEvent", + "qualified_name": "keen::ecs::UiCurrentLocationEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3990752283, + "hash2": 4002170759, + "struct_fields": [ + { + "name": "location", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiNegativeFeedbackEvent", + "type_name_2": "ecs.UiNegativeFeedbackEvent", + "qualified_name": "keen::ecs::UiNegativeFeedbackEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 600763891, + "hash2": 3850936515, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "messageLocaTag", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiInsufficientResourcesEvent", + "type_name_2": "ecs.UiInsufficientResourcesEvent", + "qualified_name": "keen::ecs::UiInsufficientResourcesEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 557492017, + "hash2": 507730351, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "itemSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::ResourceTypesMask", + "type_hash": 3302170035, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiResourcesFullEvent", + "type_name_2": "ecs.UiResourcesFullEvent", + "qualified_name": "keen::ecs::UiResourcesFullEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1521529697, + "hash2": 1707560674, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "buffEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "itemSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::ResourceTypesMask", + "type_hash": 3302170035, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AppliedBuffEvent", + "type_name_2": "ecs.AppliedBuffEvent", + "qualified_name": "keen::ecs::AppliedBuffEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1762441995, + "hash2": 4213264402, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "slotType", + "type_name": "keen::BuffSlotType", + "type_hash": 179040647, + "data_offset": 12 + }, + { + "name": "slotTypeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiInventoryStockCycleEvent", + "type_name_2": "ecs.UiInventoryStockCycleEvent", + "qualified_name": "keen::ecs::UiInventoryStockCycleEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3794171953, + "hash2": 2139351775, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "selectionResult", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiBuildingEvent", + "type_name_2": "ecs.UiBuildingEvent", + "qualified_name": "keen::ecs::UiBuildingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3148790519, + "hash2": 374800997, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "isUndoAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "isSuccessful", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiItemTriggerFailedEvent", + "type_name_2": "ecs.UiItemTriggerFailedEvent", + "qualified_name": "keen::ecs::UiItemTriggerFailedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4140051029, + "hash2": 3801016905, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "itemSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + }, + { + "name": "equipmentSlotType", + "type_name": "keen::EquipmentSlotType", + "type_hash": 723518746, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockSkillEvent", + "type_name_2": "ecs.UnlockSkillEvent", + "qualified_name": "keen::ecs::UnlockSkillEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 547460620, + "hash2": 2460518219, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "skillId", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlearnSkillEvent", + "type_name_2": "ecs.UnlearnSkillEvent", + "qualified_name": "keen::ecs::UnlearnSkillEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1181444005, + "hash2": 2460518219, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "skillId", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockPerkEvent", + "type_name_2": "ecs.UnlockPerkEvent", + "qualified_name": "keen::ecs::UnlockPerkEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2036917181, + "hash2": 3830961667, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "slotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TrashItemEvent", + "type_name_2": "ecs.TrashItemEvent", + "qualified_name": "keen::ecs::TrashItemEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 613111980, + "hash2": 3830961667, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "slotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectDialogOptionEvent", + "type_name_2": "ecs.SelectDialogOptionEvent", + "qualified_name": "keen::ecs::SelectDialogOptionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3759773354, + "hash2": 2208262038, + "struct_fields": [ + { + "name": "interactingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "selectedOptionId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 12 + }, + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcInputEvent", + "type_name_2": "ecs.NpcInputEvent", + "qualified_name": "keen::ecs::NpcInputEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1947833014, + "hash2": 2635068458, + "struct_fields": [ + { + "name": "npcId", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 8 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerKnowledgeUiEvent", + "type_name_2": "ecs.TriggerKnowledgeUiEvent", + "qualified_name": "keen::ecs::TriggerKnowledgeUiEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2031280695, + "hash2": 2627903567, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetPersonalQuestProgressionEvent", + "type_name_2": "ecs.SetPersonalQuestProgressionEvent", + "qualified_name": "keen::ecs::SetPersonalQuestProgressionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 960069608, + "hash2": 1183474884, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerSelectDialogOptionEvent", + "type_name_2": "ecs.ServerSelectDialogOptionEvent", + "qualified_name": "keen::ecs::ServerSelectDialogOptionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1648400759, + "hash2": 2155496073, + "struct_fields": [ + { + "name": "npcEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "playerEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "selectedOptionId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingPlaceEvent", + "type_name_2": "ecs.BuildingPlaceEvent", + "qualified_name": "keen::ecs::BuildingPlaceEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3070031622, + "hash2": 3668211240, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "material", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 60 + }, + { + "name": "trackingItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingPickUpEvent", + "type_name_2": "ecs.BuildingPickUpEvent", + "qualified_name": "keen::ecs::BuildingPickUpEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2035517929, + "hash2": 2851684223, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "material", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingTearDownEvent", + "type_name_2": "ecs.BuildingTearDownEvent", + "qualified_name": "keen::ecs::BuildingTearDownEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1196142317, + "hash2": 2851684223, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "material", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProhibitedHit", + "type_name_2": "ecs.ProhibitedHit", + "qualified_name": "keen::ecs::ProhibitedHit", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 72, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1953311234, + "hash2": 2330136973, + "struct_fields": [ + { + "name": "materialA", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 8 + }, + { + "name": "materialB", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 24 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 40 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 52 + }, + { + "name": "rootSourceId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 64 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingHitEvent", + "type_name_2": "ecs.TerraformingHitEvent", + "qualified_name": "keen::ecs::TerraformingHitEvent", + "referenced_type_name": "keen::ecs::BaseHitEvent", + "class_size": 192, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 16130968, + "hash2": 1230953367, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitCandidateType", + "type_name_2": "ecs.HitCandidateType", + "qualified_name": "keen::ecs::HitCandidateType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4263999133, + "hash2": 3588979829, + "struct_fields": [], + "enum_fields": [ + { + "name": "Entity", + "value": 0 + }, + { + "name": "Terrain", + "value": 1 + }, + { + "name": "Building", + "value": 2 + } + ] + }, + { + "type_name_1": "HitCandidate", + "type_name_2": "ecs.HitCandidate", + "qualified_name": "keen::ecs::HitCandidate", + "referenced_type_name": "keen::ecs::HitEvent", + "class_size": 328, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1923550293, + "hash2": 1285311820, + "struct_fields": [ + { + "name": "sourceVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 248 + }, + { + "name": "sourceTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 264 + }, + { + "name": "sourceManaCost", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 320 + }, + { + "name": "candidateType", + "type_name": "keen::ecs::HitCandidateType", + "type_hash": 4263999133, + "data_offset": 324 + }, + { + "name": "propagate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 325 + }, + { + "name": "sendHitEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 326 + }, + { + "name": "ignoreConsecutiveHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 327 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceCandidate", + "type_name_2": "ecs.ResourceCandidate", + "qualified_name": "keen::ecs::ResourceCandidate", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1233595924, + "hash2": 1995259756, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "attributeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "change", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceChange", + "type_name_2": "ecs.ResourceChange", + "qualified_name": "keen::ecs::ResourceChange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2784163255, + "hash2": 3769466462, + "struct_fields": [ + { + "name": "gain", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "loss", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceChangeEvent", + "type_name_2": "ecs.ResourceChangeEvent", + "qualified_name": "keen::ecs::ResourceChangeEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3803477013, + "hash2": 3274368001, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "healthChange", + "type_name": "keen::ecs::ResourceChange", + "type_hash": 2784163255, + "data_offset": 12 + }, + { + "name": "manaChange", + "type_name": "keen::ecs::ResourceChange", + "type_hash": 2784163255, + "data_offset": 20 + }, + { + "name": "staminaChange", + "type_name": "keen::ecs::ResourceChange", + "type_hash": 2784163255, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAttackStartedEvent", + "type_name_2": "ecs.EnemyAttackStartedEvent", + "qualified_name": "keen::ecs::EnemyAttackStartedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 5394802, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallForHelpEvent", + "type_name_2": "ecs.CallForHelpEvent", + "qualified_name": "keen::ecs::CallForHelpEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1377400127, + "hash2": 3194941457, + "struct_fields": [ + { + "name": "noticingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "noticingEntityPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "noticedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "noticedEntityPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "checkSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "factions", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 46 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyIsHelpingEvent", + "type_name_2": "ecs.EnemyIsHelpingEvent", + "qualified_name": "keen::ecs::EnemyIsHelpingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3145867458, + "hash2": 1865593814, + "struct_fields": [ + { + "name": "helpingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenericEnemyEvent", + "type_name_2": "ecs.GenericEnemyEvent", + "qualified_name": "keen::ecs::GenericEnemyEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2252637388, + "hash2": 3059498922, + "struct_fields": [ + { + "name": "enemyEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "eventType", + "type_name": "keen::ecs::EnemyEventType", + "type_hash": 3493751559, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoiseEvent", + "type_name_2": "ecs.NoiseEvent", + "qualified_name": "keen::ecs::NoiseEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3497644289, + "hash2": 2989143526, + "struct_fields": [ + { + "name": "senderId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChildDestroyed", + "type_name_2": "ecs.ChildDestroyed", + "qualified_name": "keen::ecs::ChildDestroyed", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3328942486, + "hash2": 1405389224, + "struct_fields": [ + { + "name": "childId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "parentId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupEvent", + "type_name_2": "ecs.PickupEvent", + "qualified_name": "keen::ecs::PickupEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2083650645, + "hash2": 3968940785, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 20 + }, + { + "name": "itemCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "pickedUpByEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 28 + }, + { + "name": "pickedUpFromEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 32 + }, + { + "name": "targetSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryCategory", + "type_name_2": "InventoryCategory", + "qualified_name": "keen::InventoryCategory", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 412881770, + "hash2": 1370135596, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Customization", + "value": 1 + }, + { + "name": "Equipment", + "value": 2 + }, + { + "name": "Currency", + "value": 3 + }, + { + "name": "Generic", + "value": 4 + }, + { + "name": "Virtual", + "value": 5 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::InventoryCategory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1921599904, + "hash2": 856804815, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventoryCategoryMask", + "type_name_2": "InventoryCategoryMask", + "qualified_name": "keen::InventoryCategoryMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3678265138, + "hash2": 1480959290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventoryFull", + "type_name_2": "ecs.InventoryFull", + "qualified_name": "keen::ecs::InventoryFull", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1755234576, + "hash2": 4046907291, + "struct_fields": [ + { + "name": "pickedUpById", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "pickedUpFromId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "mask", + "type_name": "keen::InventoryCategoryMask", + "type_hash": 3678265138, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "XPGainedEvent", + "type_name_2": "ecs.XPGainedEvent", + "qualified_name": "keen::ecs::XPGainedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1565618651, + "hash2": 379065452, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "amount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "source", + "type_name": "keen::ExperienceSourceType", + "type_hash": 1322782011, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PuzzleCompletedEvent", + "type_name_2": "ecs.PuzzleCompletedEvent", + "qualified_name": "keen::ecs::PuzzleCompletedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1513860912, + "hash2": 3110744569, + "struct_fields": [ + { + "name": "clusterPlayerEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 4122265852, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelUpEvent", + "type_name_2": "ecs.LevelUpEvent", + "qualified_name": "keen::ecs::LevelUpEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1099135070, + "hash2": 3242057785, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 32 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AcceptOfferedInteractionEvent", + "type_name_2": "ecs.AcceptOfferedInteractionEvent", + "qualified_name": "keen::ecs::AcceptOfferedInteractionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2195981490, + "hash2": 3929817653, + "struct_fields": [ + { + "name": "guestEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "hostEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAcceptedEvent", + "type_name_2": "ecs.InteractionAcceptedEvent", + "qualified_name": "keen::ecs::InteractionAcceptedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 517032200, + "hash2": 3929817653, + "struct_fields": [ + { + "name": "guestEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "hostEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetToggleStateEvent", + "type_name_2": "ecs.SetToggleStateEvent", + "qualified_name": "keen::ecs::SetToggleStateEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1269917546, + "hash2": 2725832661, + "struct_fields": [ + { + "name": "senderId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "signalId", + "type_name": "keen::SignalId", + "type_hash": 1676995411, + "data_offset": 12 + }, + { + "name": "newState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleInteractionEvent", + "type_name_2": "ecs.ToggleInteractionEvent", + "qualified_name": "keen::ecs::ToggleInteractionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1067442635, + "hash2": 1376535045, + "struct_fields": [ + { + "name": "guestId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "hostId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionbarSelectionEvent", + "type_name_2": "ecs.ActionbarSelectionEvent", + "qualified_name": "keen::ecs::ActionbarSelectionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3582269804, + "hash2": 3211599705, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "selectedIndex", + "type_name": "keen::ActionbarSlotSelection", + "type_hash": 612424829, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryStockSelectionEvent", + "type_name_2": "ecs.InventoryStockSelectionEvent", + "qualified_name": "keen::ecs::InventoryStockSelectionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2505673779, + "hash2": 3413873435, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "inventoryStockType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "selectedItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeEquipmentEvent", + "type_name_2": "ecs.ChangeEquipmentEvent", + "qualified_name": "keen::ecs::ChangeEquipmentEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3960950983, + "hash2": 3765085672, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + }, + { + "name": "equipmentSlot", + "type_name": "keen::EquipmentSlot", + "type_hash": 2267233658, + "data_offset": 20 + }, + { + "name": "type", + "type_name": "keen::ecs::ChangeEquipment", + "type_hash": 3164312973, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SwapEquipmentSetEvent", + "type_name_2": "ecs.SwapEquipmentSetEvent", + "qualified_name": "keen::ecs::SwapEquipmentSetEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 833382528, + "hash2": 971826109, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetInventoryId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::ecs::SwapEquipmentTarget", + "type_hash": 383536097, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HandleEquipmentSlotChangedEvent", + "type_name_2": "ecs.HandleEquipmentSlotChangedEvent", + "qualified_name": "keen::ecs::HandleEquipmentSlotChangedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4216512455, + "hash2": 3077047114, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "equipmentSlot", + "type_name": "keen::EquipmentSlot", + "type_hash": 2267233658, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConsumeItemEvent", + "type_name_2": "ecs.ConsumeItemEvent", + "qualified_name": "keen::ecs::ConsumeItemEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2658074088, + "hash2": 541636991, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InspectItemEvent", + "type_name_2": "ecs.InspectItemEvent", + "qualified_name": "keen::ecs::InspectItemEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 355824294, + "hash2": 3352788121, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCreateBuildingItemEvent", + "type_name_2": "ecs.UiCreateBuildingItemEvent", + "qualified_name": "keen::ecs::UiCreateBuildingItemEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 450773922, + "hash2": 1619064515, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "selectedIndex", + "type_name": "keen::ActionbarSlotSelection", + "type_hash": 612424829, + "data_offset": 12 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCreateNpcItemEvent", + "type_name_2": "ecs.UiCreateNpcItemEvent", + "qualified_name": "keen::ecs::UiCreateNpcItemEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1290543485, + "hash2": 3303099121, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportPlayerEvent", + "type_name_2": "ecs.TeleportPlayerEvent", + "qualified_name": "keen::ecs::TeleportPlayerEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2970452975, + "hash2": 356280408, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "targetWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransferItemToInventoryEvent", + "type_name_2": "ecs.TransferItemToInventoryEvent", + "qualified_name": "keen::ecs::TransferItemToInventoryEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1377157670, + "hash2": 2097098548, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetInventoryId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "targetSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 16 + }, + { + "name": "sourceInventoryId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "sourceSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 28 + }, + { + "name": "type", + "type_name": "keen::InventoryActionType", + "type_hash": 3916390888, + "data_offset": 36 + }, + { + "name": "flags", + "type_name": "keen::ecs::TransferItemToInventoryFlags", + "type_hash": 1587476549, + "data_offset": 37 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 38 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SortInventoryEvent", + "type_name_2": "ecs.SortInventoryEvent", + "qualified_name": "keen::ecs::SortInventoryEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 188238187, + "hash2": 901830852, + "struct_fields": [ + { + "name": "targetInventoryId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootInteractionEvent", + "type_name_2": "ecs.LootInteractionEvent", + "qualified_name": "keen::ecs::LootInteractionEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1930081645, + "hash2": 3911099391, + "struct_fields": [ + { + "name": "guestId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "hostId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "lootAll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "forAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "knowledgeIds", + "type_name": "keen::StaticArray", + "type_hash": 2330520617, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCraftRecipeEvent", + "type_name_2": "ecs.UiCraftRecipeEvent", + "qualified_name": "keen::ecs::UiCraftRecipeEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2795747025, + "hash2": 3594028239, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 16 + }, + { + "name": "recipeAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiAutomaticTransferEvent", + "type_name_2": "ecs.UiAutomaticTransferEvent", + "qualified_name": "keen::ecs::UiAutomaticTransferEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1520226509, + "hash2": 3949634439, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 16 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 20 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSelectCraftingStationRecipeEvent", + "type_name_2": "ecs.UiSelectCraftingStationRecipeEvent", + "qualified_name": "keen::ecs::UiSelectCraftingStationRecipeEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 87458485, + "hash2": 3491918095, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftRecipeEvent", + "type_name_2": "ecs.CraftRecipeEvent", + "qualified_name": "keen::ecs::CraftRecipeEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2759225271, + "hash2": 3594028239, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 16 + }, + { + "name": "recipeAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftRecipeSuccessEvent", + "type_name_2": "ecs.CraftRecipeSuccessEvent", + "qualified_name": "keen::ecs::CraftRecipeSuccessEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2145398304, + "hash2": 1431769655, + "struct_fields": [ + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 8 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPinRecipeEvent", + "type_name_2": "ecs.UiPinRecipeEvent", + "qualified_name": "keen::ecs::UiPinRecipeEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 416450182, + "hash2": 3419649629, + "struct_fields": [ + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 8 + }, + { + "name": "pinRecipe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiWaypointEvent", + "type_name_2": "ecs.UiWaypointEvent", + "qualified_name": "keen::ecs::UiWaypointEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3060459134, + "hash2": 809408999, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 16 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPingEvent", + "type_name_2": "ecs.UiPingEvent", + "qualified_name": "keen::ecs::UiPingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4122035531, + "hash2": 2707245815, + "struct_fields": [ + { + "name": "senderEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPingInputEvent", + "type_name_2": "ecs.UiPingInputEvent", + "qualified_name": "keen::ecs::UiPingInputEvent", + "referenced_type_name": "keen::ecs::UiPingEvent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1109259301, + "hash2": 780980160, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerTypeId", + "type_name_2": "MapMarkerTypeId", + "qualified_name": "keen::MapMarkerTypeId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 63754647, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiAddMapMarkerEvent", + "type_name_2": "ecs.UiAddMapMarkerEvent", + "qualified_name": "keen::ecs::UiAddMapMarkerEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3295651568, + "hash2": 2090954883, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "colorScheme", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 32 + }, + { + "name": "type", + "type_name": "keen::MapMarkerTypeId", + "type_hash": 63754647, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiRemoveMapMarkerEvent", + "type_name_2": "ecs.UiRemoveMapMarkerEvent", + "qualified_name": "keen::ecs::UiRemoveMapMarkerEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2351409153, + "hash2": 849592126, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeCustomizationEvent", + "type_name_2": "ecs.ChangeCustomizationEvent", + "qualified_name": "keen::ecs::ChangeCustomizationEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2497236944, + "hash2": 3027396276, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetSlotId", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 12 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OpenHudScreenEvent", + "type_name_2": "ecs.OpenHudScreenEvent", + "qualified_name": "keen::ecs::OpenHudScreenEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4267735036, + "hash2": 3831469335, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "interactionHostId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "screen", + "type_name": "keen::HudScreenType", + "type_hash": 1386014447, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KillFaction", + "type_name_2": "ecs.KillFaction", + "qualified_name": "keen::ecs::KillFaction", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4129174513, + "hash2": 308474045, + "struct_fields": [ + { + "name": "factionMask", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 8 + }, + { + "name": "playerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartFlyingEvent", + "type_name_2": "ecs.StartFlyingEvent", + "qualified_name": "keen::ecs::StartFlyingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2883287186, + "hash2": 2985926048, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopFlyingEvent", + "type_name_2": "ecs.StopFlyingEvent", + "qualified_name": "keen::ecs::StopFlyingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 780259052, + "hash2": 2985926048, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnterFlyingStateEvent", + "type_name_2": "ecs.EnterFlyingStateEvent", + "qualified_name": "keen::ecs::EnterFlyingStateEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3970522951, + "hash2": 2985926048, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedAttackEvent", + "type_name_2": "ecs.SyncedAttackEvent", + "qualified_name": "keen::ecs::SyncedAttackEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 783492627, + "hash2": 3704917371, + "struct_fields": [ + { + "name": "attackerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "resolveTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "type", + "type_name": "keen::ecs::SyncedAttackType", + "type_hash": 247910673, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedSequenceEvent", + "type_name_2": "ecs.SyncedSequenceEvent", + "qualified_name": "keen::ecs::SyncedSequenceEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1865512388, + "hash2": 251522922, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "triggeringEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackExecutedEvent", + "type_name_2": "ecs.VisceralAttackExecutedEvent", + "qualified_name": "keen::ecs::VisceralAttackExecutedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2539293853, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnDestroyNotifyEvent", + "type_name_2": "ecs.OnDestroyNotifyEvent", + "qualified_name": "keen::ecs::OnDestroyNotifyEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3187486207, + "hash2": 1753790756, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 64 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifyEventType", + "type_name_2": "ecs.NotifyEventType", + "qualified_name": "keen::ecs::NotifyEventType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2079057694, + "hash2": 1350856763, + "struct_fields": [], + "enum_fields": [ + { + "name": "Normal", + "value": 0 + }, + { + "name": "Sfx", + "value": 1 + }, + { + "name": "Vfx", + "value": 2 + } + ] + }, + { + "type_name_1": "NotifyEvent", + "type_name_2": "ecs.NotifyEvent", + "qualified_name": "keen::ecs::NotifyEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 224, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3955191038, + "hash2": 1175399461, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 48 + }, + { + "name": "vfxParameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 104 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 168 + }, + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 176 + }, + { + "name": "slot", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "typeGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 204 + }, + { + "name": "type", + "type_name": "keen::ecs::NotifyEventType", + "type_hash": 2079057694, + "data_offset": 220 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 221 + }, + { + "name": "canBeCanceled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 222 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifyEnvFxEvent", + "type_name_2": "ecs.NotifyEnvFxEvent", + "qualified_name": "keen::ecs::NotifyEnvFxEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 88, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 504715873, + "hash2": 3488511457, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + }, + { + "name": "environmentEffectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 24 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 28 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 32 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 36 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "rayOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FootDown", + "type_name_2": "ecs.FootDown", + "qualified_name": "keen::ecs::FootDown", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 49895387, + "hash2": 1095930374, + "struct_fields": [ + { + "name": "environmentEffectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 8 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 16 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoleyEnvEvent", + "type_name_2": "ecs.FoleyEnvEvent", + "qualified_name": "keen::ecs::FoleyEnvEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2360338503, + "hash2": 501097906, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + }, + { + "name": "foleyFxType", + "type_name": "keen::FoleyType", + "type_hash": 2294451513, + "data_offset": 24 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RegisterControlledCombatTargetEvent", + "type_name_2": "ecs.RegisterControlledCombatTargetEvent", + "qualified_name": "keen::ecs::RegisterControlledCombatTargetEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 237254947, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnregisterControlledCombatTargetEvent", + "type_name_2": "ecs.UnregisterControlledCombatTargetEvent", + "qualified_name": "keen::ecs::UnregisterControlledCombatTargetEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1052446850, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LoreRead", + "type_name_2": "ecs.LoreRead", + "qualified_name": "keen::ecs::LoreRead", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3648438859, + "hash2": 462311078, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemUsed", + "type_name_2": "ecs.ItemUsed", + "qualified_name": "keen::ecs::ItemUsed", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1308890917, + "hash2": 2811414169, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartPlaySongEvent", + "type_name_2": "ecs.StartPlaySongEvent", + "qualified_name": "keen::ecs::StartPlaySongEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1297856094, + "hash2": 825621544, + "struct_fields": [ + { + "name": "playerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "songId", + "type_name": "keen::SongId", + "type_hash": 1463321978, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceTerminationReason", + "type_name_2": "ecs.SequenceTerminationReason", + "qualified_name": "keen::ecs::SequenceTerminationReason", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 3308896500, + "hash2": 231383143, + "struct_fields": [], + "enum_fields": [ + { + "name": "Finished", + "value": 0 + }, + { + "name": "AbortedDefault", + "value": 1 + }, + { + "name": "AbortedDeath", + "value": 2 + }, + { + "name": "AbortedMovement", + "value": 3 + }, + { + "name": "AbortedInteract", + "value": 4 + }, + { + "name": "AbortedFollowUp", + "value": 5 + }, + { + "name": "AbortedExternalOverride", + "value": 6 + }, + { + "name": "AbortedStopEntity", + "value": 7 + } + ] + }, + { + "type_name_1": "ItemKnowledgeGained", + "type_name_2": "ecs.ItemKnowledgeGained", + "qualified_name": "keen::ecs::ItemKnowledgeGained", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2911424342, + "hash2": 3137788844, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "gainedKnowledge", + "type_name": "keen::ItemKnowledgeMask", + "type_hash": 3417964127, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerEvent", + "type_name_2": "ecs.KnowledgeTriggerEvent", + "qualified_name": "keen::ecs::KnowledgeTriggerEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 285804625, + "hash2": 910412281, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "removeKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeUnlockedEvent", + "type_name_2": "ecs.KnowledgeUnlockedEvent", + "qualified_name": "keen::ecs::KnowledgeUnlockedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3108907700, + "hash2": 393439528, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeType", + "type_name_2": "ecs.KnowledgeType", + "qualified_name": "keen::ecs::KnowledgeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1852438413, + "hash2": 2325723958, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Dialog", + "value": 1 + }, + { + "name": "JournalEntry", + "value": 2 + }, + { + "name": "JournalCompletion", + "value": 3 + }, + { + "name": "Recipe", + "value": 4 + }, + { + "name": "MapMarker", + "value": 5 + }, + { + "name": "NpcUnlock", + "value": 6 + } + ] + }, + { + "type_name_1": "KnowledgeGained", + "type_name_2": "ecs.KnowledgeGained", + "qualified_name": "keen::ecs::KnowledgeGained", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2704834879, + "hash2": 1334313451, + "struct_fields": [ + { + "name": "targetType", + "type_name": "keen::ecs::KnowledgeType", + "type_hash": 1852438413, + "data_offset": 8 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 12 + }, + { + "name": "npcId", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 16 + }, + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 20 + }, + { + "name": "journalId", + "type_name": "keen::JournalEntryId", + "type_hash": 3084175954, + "data_offset": 24 + }, + { + "name": "mapMarkerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParryEvent", + "type_name_2": "ecs.ParryEvent", + "qualified_name": "keen::ecs::ParryEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4203998481, + "hash2": 3273194644, + "struct_fields": [ + { + "name": "attackerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "blockerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "staminaDrain", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CookingEvent", + "type_name_2": "ecs.CookingEvent", + "qualified_name": "keen::ecs::CookingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2387233415, + "hash2": 3222177868, + "struct_fields": [ + { + "name": "attachmentOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 8 + }, + { + "name": "cookedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 48 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 52 + }, + { + "name": "attachmentSlot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 56 + }, + { + "name": "burned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerBaseChangeEvent", + "type_name_2": "ecs.PlayerBaseChangeEvent", + "qualified_name": "keen::ecs::PlayerBaseChangeEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2903547789, + "hash2": 825230923, + "struct_fields": [ + { + "name": "playerCharacterId", + "type_name": "keen::CharacterId", + "type_hash": 580679108, + "data_offset": 8 + }, + { + "name": "baseId", + "type_name": "keen::BaseId", + "type_hash": 1672287174, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KickPlayerEvent", + "type_name_2": "ecs.KickPlayerEvent", + "qualified_name": "keen::ecs::KickPlayerEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3982199544, + "hash2": 1211510414, + "struct_fields": [ + { + "name": "playerToKick", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarEvent", + "type_name_2": "ecs.FlameAltarEvent", + "qualified_name": "keen::ecs::FlameAltarEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3985676106, + "hash2": 65210034, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "baseEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::ecs::FlameAltarActionType", + "type_hash": 2241584764, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityDiedEvent", + "type_name_2": "ecs.EntityDiedEvent", + "qualified_name": "keen::ecs::EntityDiedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3639384106, + "hash2": 3709828396, + "struct_fields": [ + { + "name": "deadEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActivateFactionPacifyEvent", + "type_name_2": "ecs.ActivateFactionPacifyEvent", + "qualified_name": "keen::ecs::ActivateFactionPacifyEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 958736112, + "hash2": 1876614816, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "faction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActivateFactionCallForHelpEvent", + "type_name_2": "ecs.ActivateFactionCallForHelpEvent", + "qualified_name": "keen::ecs::ActivateFactionCallForHelpEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1087715954, + "hash2": 1876614816, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "faction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartGuardingEvent", + "type_name_2": "ecs.StartGuardingEvent", + "qualified_name": "keen::ecs::StartGuardingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2962680966, + "hash2": 1436087, + "struct_fields": [ + { + "name": "guardingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "guardedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopGuardingEvent", + "type_name_2": "ecs.StopGuardingEvent", + "qualified_name": "keen::ecs::StopGuardingEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4257912772, + "hash2": 1436087, + "struct_fields": [ + { + "name": "guardingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "guardedEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyedWithoutSurfaceEvent", + "type_name_2": "ecs.DestroyedWithoutSurfaceEvent", + "qualified_name": "keen::ecs::DestroyedWithoutSurfaceEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2591388815, + "hash2": 65582971, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 64 + }, + { + "name": "material", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransformedToLootEvent", + "type_name_2": "ecs.TransformedToLootEvent", + "qualified_name": "keen::ecs::TransformedToLootEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2839721865, + "hash2": 204372571, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "overwriteVfxParameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 12 + }, + { + "name": "useVfxDefaultParameters", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsChangedEvent", + "type_name_2": "ecs.GameSettingsChangedEvent", + "qualified_name": "keen::ecs::GameSettingsChangedEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 136, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2124830812, + "hash2": 302992615, + "struct_fields": [ + { + "name": "newSettings", + "type_name": "keen::ecs::GameSettings", + "type_hash": 2298714128, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetEnemyVariableEvent", + "type_name_2": "ecs.SetEnemyVariableEvent", + "qualified_name": "keen::ecs::SetEnemyVariableEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3645774445, + "hash2": 3867985165, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "variable", + "type_name": "keen::enemy01::EnemyVariableReference", + "type_hash": 3122030124, + "data_offset": 12 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiWorldEvent", + "type_name_2": "ecs.UiWorldEvent", + "qualified_name": "keen::ecs::UiWorldEvent", + "referenced_type_name": "keen::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1130766649, + "hash2": 2782251967, + "struct_fields": [ + { + "name": "worldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugHitRequest", + "type_name_2": "ecs.DebugHitRequest", + "qualified_name": "keen::ecs::DebugHitRequest", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2717949368, + "hash2": 739697808, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "sourceTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "majorHitDirection", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugHitResult", + "type_name_2": "ecs.DebugHitResult", + "qualified_name": "keen::ecs::DebugHitResult", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1186333790, + "hash2": 2024347308, + "struct_fields": [ + { + "name": "hitPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "hitNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "hitAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "hit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GuidRegistryResource", + "type_name_2": "GuidRegistryResource", + "qualified_name": "keen::GuidRegistryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4038895580, + "hash2": 1678264409, + "struct_fields": [ + { + "name": "guids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactFilter", + "type_name_2": "impact.ImpactFilter", + "qualified_name": "keen::impact::ImpactFilter", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 666126612, + "hash2": 2525703160, + "struct_fields": [], + "enum_fields": [ + { + "name": "Player", + "value": 0 + }, + { + "name": "Enemy", + "value": 1 + } + ] + }, + { + "type_name_1": "AttackFlags", + "type_name_2": "impact.AttackFlags", + "qualified_name": "keen::impact::AttackFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 906423111, + "hash2": 37366703, + "struct_fields": [], + "enum_fields": [ + { + "name": "CanBeBlocked", + "value": 0 + } + ] + }, + { + "type_name_1": "DamageData", + "type_name_2": "impact.DamageData", + "qualified_name": "keen::impact::DamageData", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 974289305, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DamageConfig", + "type_name_2": "impact.DamageConfig", + "qualified_name": "keen::impact::DamageConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1197507579, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SphereColliderConfig", + "type_name_2": "impact.SphereColliderConfig", + "qualified_name": "keen::impact::SphereColliderConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1801682391, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactQueryResult", + "type_name_2": "impact.ImpactQueryResult", + "qualified_name": "keen::impact::ImpactQueryResult", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4036805135, + "hash2": 2682714864, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::ecs::QueryResultFlags", + "type_hash": 707028015, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Flags", + "type_name_2": "impact.Flags", + "qualified_name": "keen::impact::Flags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 3988833979, + "hash2": 4120663272, + "struct_fields": [], + "enum_fields": [ + { + "name": "Initialized", + "value": 0 + }, + { + "name": "Executed", + "value": 1 + }, + { + "name": "CleanupDone", + "value": 2 + }, + { + "name": "Halt", + "value": 3 + }, + { + "name": "Error", + "value": 4 + }, + { + "name": "Result_DestroyEntity", + "value": 5 + } + ] + }, + { + "type_name_1": "DebugServerImpactMessage", + "type_name_2": "impact.DebugServerImpactMessage", + "qualified_name": "keen::impact::DebugServerImpactMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2992938501, + "hash2": 3848988443, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::impact::ImpactId", + "type_hash": 1745970775, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpactRequestMessage", + "type_name_2": "impact.DebugImpactRequestMessage", + "qualified_name": "keen::impact::DebugImpactRequestMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 748674521, + "hash2": 3687496867, + "struct_fields": [ + { + "name": "impactGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::impact::Flags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2874968267, + "hash2": 3991678423, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpcatState", + "type_name_2": "impact.DebugImpcatState", + "qualified_name": "keen::impact::DebugImpcatState", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 161406090, + "hash2": 3278176335, + "struct_fields": [ + { + "name": "rPC", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "rSP", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "rFP", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "flags", + "type_name": "keen::Bitmask8", + "type_hash": 2874968267, + "data_offset": 6 + }, + { + "name": "stack", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 8 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpactFunctionCall", + "type_name_2": "impact.DebugImpactFunctionCall", + "qualified_name": "keen::impact::DebugImpactFunctionCall", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3408542861, + "hash2": 3384290954, + "struct_fields": [ + { + "name": "pc", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "beforeUpdate", + "type_name": "keen::impact::DebugImpcatState", + "type_hash": 161406090, + "data_offset": 4 + }, + { + "name": "afterUpdate", + "type_name": "keen::impact::DebugImpcatState", + "type_hash": 161406090, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "impact.DebugImpactFunctionCall[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::impact::DebugImpactFunctionCall", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2820736734, + "hash2": 2243884963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpactData", + "type_name_2": "impact.DebugImpactData", + "qualified_name": "keen::impact::DebugImpactData", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2053589541, + "hash2": 4227017001, + "struct_fields": [ + { + "name": "rootId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "beforeUpdate", + "type_name": "keen::impact::DebugImpcatState", + "type_hash": 161406090, + "data_offset": 4 + }, + { + "name": "afterUpdate", + "type_name": "keen::impact::DebugImpcatState", + "type_hash": 161406090, + "data_offset": 28 + }, + { + "name": "calls", + "type_name": "keen::BlobArray", + "type_hash": 2820736734, + "data_offset": 52 + }, + { + "name": "programCounter", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 60 + }, + { + "name": "appliedConfigurations", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpact", + "type_name_2": "impact.DebugImpact", + "qualified_name": "keen::impact::DebugImpact", + "referenced_type_name": null, + "class_size": 100, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 382831973, + "hash2": 1671637153, + "struct_fields": [ + { + "name": "impactId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "impactEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "data", + "type_name": "keen::impact::DebugImpactData", + "type_hash": 2053589541, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactOps", + "type_name_2": "ImpactOps", + "qualified_name": "keen::ImpactOps", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 31, + "primitive_type": "Enum", + "hash1": 1616257768, + "hash2": 4055588756, + "struct_fields": [], + "enum_fields": [ + { + "name": "INVALID", + "value": 0 + }, + { + "name": "IADD", + "value": 1 + }, + { + "name": "ISUB", + "value": 2 + }, + { + "name": "IMUL", + "value": 3 + }, + { + "name": "IDIV", + "value": 4 + }, + { + "name": "ILT", + "value": 5 + }, + { + "name": "IEQ", + "value": 6 + }, + { + "name": "ILEQ", + "value": 7 + }, + { + "name": "BR", + "value": 8 + }, + { + "name": "BRT", + "value": 9 + }, + { + "name": "BRF", + "value": 10 + }, + { + "name": "ICONST", + "value": 11 + }, + { + "name": "ICONST0", + "value": 12 + }, + { + "name": "ICONST1", + "value": 13 + }, + { + "name": "INC", + "value": 14 + }, + { + "name": "DEC", + "value": 15 + }, + { + "name": "COPY", + "value": 16 + }, + { + "name": "DUP", + "value": 17 + }, + { + "name": "CALL", + "value": 18 + }, + { + "name": "ECALL", + "value": 19 + }, + { + "name": "RET", + "value": 20 + }, + { + "name": "LOAD", + "value": 21 + }, + { + "name": "GLOAD", + "value": 22 + }, + { + "name": "STORE", + "value": 23 + }, + { + "name": "GSTORE", + "value": 24 + }, + { + "name": "LTIME", + "value": 25 + }, + { + "name": "TIMEFF", + "value": 26 + }, + { + "name": "POP", + "value": 27 + }, + { + "name": "RVM", + "value": 28 + }, + { + "name": "DSELF", + "value": 29 + }, + { + "name": "HALT", + "value": 30 + } + ] + }, + { + "type_name_1": "ImpcatValueNumberFormat", + "type_name_2": "impact.ImpcatValueNumberFormat", + "qualified_name": "keen::impact::ImpcatValueNumberFormat", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 828415737, + "hash2": 1483680667, + "struct_fields": [], + "enum_fields": [ + { + "name": "Normal", + "value": 0 + }, + { + "name": "Percentage", + "value": 1 + }, + { + "name": "Duration", + "value": 2 + }, + { + "name": "Numberless", + "value": 3 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::impact::ConfigId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 280978854, + "hash2": 3498915260, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigIdReference", + "type_name_2": "impact.ConfigIdReference", + "qualified_name": "keen::impact::ConfigIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 409960992, + "hash2": 2607321898, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfig", + "type_name_2": "impact.ImpactConfig", + "qualified_name": "keen::impact::ImpactConfig", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 983599188, + "hash2": 1431570823, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "isSigned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "valueFormat", + "type_name": "keen::impact::ImpcatValueNumberFormat", + "type_hash": 828415737, + "data_offset": 17 + }, + { + "name": "id", + "type_name": "keen::impact::ConfigIdReference", + "type_hash": 409960992, + "data_offset": 20 + }, + { + "name": "configId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 36 + }, + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + }, + { + "name": "configGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 44 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffImpactConfig", + "type_name_2": "impact.BuffImpactConfig", + "qualified_name": "keen::impact::BuffImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3478713433, + "hash2": 1767315576, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariableImpactConfig", + "type_name_2": "impact.EnemyVariableImpactConfig", + "qualified_name": "keen::impact::EnemyVariableImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3686607192, + "hash2": 2291358432, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::enemy01::EnemyVariableReference", + "type_hash": 3122030124, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactNode", + "type_name_2": "impact_nodes.ImpactNode", + "qualified_name": "keen::impact_nodes::ImpactNode", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3960767244, + "hash2": 117088101, + "struct_fields": [ + { + "name": "uiPosition", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactValueNode", + "type_name_2": "impact_nodes.ImpactValueNode", + "qualified_name": "keen::impact_nodes::ImpactValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactNode", + "class_size": 60, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1667341273, + "hash2": 4128250987, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::impact::ConfigIdReference", + "type_hash": 409960992, + "data_offset": 8 + }, + { + "name": "locaTag", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 24 + }, + { + "name": "isSigned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "valueFormat", + "type_name": "keen::impact::ImpcatValueNumberFormat", + "type_hash": 828415737, + "data_offset": 41 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffValueNode", + "type_name_2": "impact_nodes.BuffValueNode", + "qualified_name": "keen::impact_nodes::BuffValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2473165200, + "hash2": 3082099846, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactExecutableNode", + "type_name_2": "impact_nodes.ImpactExecutableNode", + "qualified_name": "keen::impact_nodes::ImpactExecutableNode", + "referenced_type_name": "keen::impact_nodes::ImpactNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2802340932, + "hash2": 2509589630, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ApplyBuff", + "type_name_2": "impact_nodes.ApplyBuff", + "qualified_name": "keen::impact_nodes::ApplyBuff", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 927549271, + "hash2": 3326507118, + "struct_fields": [ + { + "name": "buffInput", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "damageSetup", + "type_name": "keen::impact::DamageSetup", + "type_hash": 4039031402, + "data_offset": 28 + }, + { + "name": "durationInput", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactBranchNode", + "type_name_2": "impact_nodes.ImpactBranchNode", + "qualified_name": "keen::impact_nodes::ImpactBranchNode", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3974602460, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactNodeExecutionBranch", + "type_name_2": "impact_nodes.ImpactNodeExecutionBranch", + "qualified_name": "keen::impact_nodes::ImpactNodeExecutionBranch", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 43254562, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IfBranchNode", + "type_name_2": "impact_nodes.IfBranchNode", + "qualified_name": "keen::impact_nodes::IfBranchNode", + "referenced_type_name": "keen::impact_nodes::ImpactBranchNode", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 961202421, + "hash2": 4245573279, + "struct_fields": [ + { + "name": "negate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "ifBranch", + "type_name": "keen::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 43254562, + "data_offset": 9 + }, + { + "name": "elseBranch", + "type_name": "keen::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 43254562, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasBuffNode", + "type_name_2": "impact_nodes.HasBuffNode", + "qualified_name": "keen::impact_nodes::HasBuffNode", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3506142647, + "hash2": 4007879823, + "struct_fields": [ + { + "name": "buffInput", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 12 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RemoveBuff", + "type_name_2": "impact_nodes.RemoveBuff", + "qualified_name": "keen::impact_nodes::RemoveBuff", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3252295611, + "hash2": 603588192, + "struct_fields": [ + { + "name": "buffInput", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "wasRemoved", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactHierarchy", + "type_name_2": "ecs.ImpactHierarchy", + "qualified_name": "keen::ecs::ImpactHierarchy", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3443083232, + "hash2": 3848774665, + "struct_fields": [ + { + "name": "parentImpactId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "rootImpactId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "weaponPideId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "permissionCheckId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactItemConfig", + "type_name_2": "ecs.ImpactItemConfig", + "qualified_name": "keen::ecs::ImpactItemConfig", + "referenced_type_name": "keen::ecs::Component", + "class_size": 44, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1074196984, + "hash2": 3942187550, + "struct_fields": [ + { + "name": "usedItem", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 0 + }, + { + "name": "ammunitionItem", + "type_name": "keen::ItemInstanceInfo", + "type_hash": 3145599946, + "data_offset": 20 + }, + { + "name": "usedPerkId", + "type_name": "keen::PerkId", + "type_hash": 3171794423, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEventCollider", + "type_name_2": "ecs.SequenceEventCollider", + "qualified_name": "keen::ecs::SequenceEventCollider", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 357864866, + "hash2": 620605157, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 0 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEventImpactConfig", + "type_name_2": "ecs.SequenceEventImpactConfig", + "qualified_name": "keen::ecs::SequenceEventImpactConfig", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 236525838, + "hash2": 620605157, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 0 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfiguration", + "type_name_2": "ecs.ImpactConfiguration", + "qualified_name": "keen::ecs::ImpactConfiguration", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3314387953, + "hash2": 1729111234, + "struct_fields": [ + { + "name": "configValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 0 + }, + { + "name": "damageDistribution", + "type_name": "keen::impact::DamageDistribution", + "type_hash": 3046348591, + "data_offset": 8 + }, + { + "name": "damageDistributionIsSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactDirection", + "type_name_2": "ecs.ImpactDirection", + "qualified_name": "keen::ecs::ImpactDirection", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1846858658, + "hash2": 3882171248, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Impact", + "type_name_2": "ecs.Impact", + "qualified_name": "keen::ecs::Impact", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3590875917, + "hash2": 2700374112, + "struct_fields": [ + { + "name": "program", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 0 + }, + { + "name": "impactId", + "type_name": "keen::impact::ImpactId", + "type_hash": 1745970775, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactHalted", + "type_name_2": "ecs.ImpactHalted", + "qualified_name": "keen::ecs::ImpactHalted", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3820577683, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactCommand", + "type_name_2": "ImpactCommand", + "qualified_name": "keen::ImpactCommand", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3189225093, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingType", + "type_name_2": "TerraformingType", + "qualified_name": "keen::TerraformingType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3855488802, + "hash2": 1408776271, + "struct_fields": [], + "enum_fields": [ + { + "name": "Remove", + "value": 0 + }, + { + "name": "Add", + "value": 1 + }, + { + "name": "Flatten", + "value": 2 + }, + { + "name": "FlattenHorizontal", + "value": 3 + } + ] + }, + { + "type_name_1": "WeaponCategoryType", + "type_name_2": "WeaponCategoryType", + "qualified_name": "keen::WeaponCategoryType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 12, + "primitive_type": "Enum", + "hash1": 4047677134, + "hash2": 2621638403, + "struct_fields": [], + "enum_fields": [ + { + "name": "OneHandAxe", + "value": 0 + }, + { + "name": "OneHandClub", + "value": 1 + }, + { + "name": "OneHandSword", + "value": 2 + }, + { + "name": "RangedBow", + "value": 3 + }, + { + "name": "RangedStaff", + "value": 4 + }, + { + "name": "RangedWand", + "value": 5 + }, + { + "name": "TwoHandAxe", + "value": 6 + }, + { + "name": "TwoHandClub", + "value": 7 + }, + { + "name": "TwoHandHammer", + "value": 8 + }, + { + "name": "UnarmedFists", + "value": 9 + }, + { + "name": "Throwable", + "value": 10 + }, + { + "name": "Dagger", + "value": 11 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::WeaponCategoryType", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 2684992569, + "hash2": 1475208924, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryTypeMask", + "type_name_2": "WeaponCategoryTypeMask", + "qualified_name": "keen::WeaponCategoryTypeMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3573038974, + "hash2": 163874860, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackType", + "type_name_2": "VisceralAttackType", + "qualified_name": "keen::VisceralAttackType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1862035335, + "hash2": 3403982851, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Sneak", + "value": 1 + }, + { + "name": "Merciless", + "value": 2 + } + ] + }, + { + "type_name_1": "ProgramId", + "type_name_2": "impact.ProgramId", + "qualified_name": "keen::impact::ProgramId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 934439321, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VariableTypeId", + "type_name_2": "impact.VariableTypeId", + "qualified_name": "keen::impact::VariableTypeId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1329035293, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigId", + "type_name_2": "impact.ConfigId", + "qualified_name": "keen::impact::ConfigId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3939062331, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigIdHash", + "type_name_2": "impact.ConfigIdHash", + "qualified_name": "keen::impact::ConfigIdHash", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3493398779, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigIdCollection", + "type_name_2": "impact.ConfigIdCollection", + "qualified_name": "keen::impact::ConfigIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3174456659, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigValueId", + "type_name_2": "impact.ConfigValueId", + "qualified_name": "keen::impact::ConfigValueId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 358080810, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TypedValue32", + "type_name_2": "impact.TypedValue32", + "qualified_name": "keen::impact::TypedValue32", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 509678800, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloatImpactConfig", + "type_name_2": "impact.FloatImpactConfig", + "qualified_name": "keen::impact::FloatImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 406234054, + "hash2": 2717917354, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Uint32ImpactConfig", + "type_name_2": "impact.Uint32ImpactConfig", + "qualified_name": "keen::impact::Uint32ImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3754965817, + "hash2": 273897704, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Sint32ImpactConfig", + "type_name_2": "impact.Sint32ImpactConfig", + "qualified_name": "keen::impact::Sint32ImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1931053163, + "hash2": 2377786960, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolImpactConfig", + "type_name_2": "impact.BoolImpactConfig", + "qualified_name": "keen::impact::BoolImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4002852356, + "hash2": 304215539, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float2ImpactConfig", + "type_name_2": "impact.Float2ImpactConfig", + "qualified_name": "keen::impact::Float2ImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 84, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1432900316, + "hash2": 3538572131, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float3ImpactConfig", + "type_name_2": "impact.Float3ImpactConfig", + "qualified_name": "keen::impact::Float3ImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 88, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2780692475, + "hash2": 1941608346, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float4ImpactConfig", + "type_name_2": "impact.Float4ImpactConfig", + "qualified_name": "keen::impact::Float4ImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3085758854, + "hash2": 3043710333, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateImpactConfig", + "type_name_2": "impact.TemplateImpactConfig", + "qualified_name": "keen::impact::TemplateImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2302493382, + "hash2": 1996866839, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagImpactConfig", + "type_name_2": "impact.EntityTagImpactConfig", + "qualified_name": "keen::impact::EntityTagImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 753380081, + "hash2": 511231018, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialImpactConfig", + "type_name_2": "impact.MaterialImpactConfig", + "qualified_name": "keen::impact::MaterialImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3487457489, + "hash2": 554742030, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimeImpactConfig", + "type_name_2": "impact.TimeImpactConfig", + "qualified_name": "keen::impact::TimeImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 88, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2816612897, + "hash2": 1597351848, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactionImpactConfig", + "type_name_2": "impact.FactionImpactConfig", + "qualified_name": "keen::impact::FactionImpactConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3266975668, + "hash2": 2087464360, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeReferenceConfig", + "type_name_2": "impact.AttributeReferenceConfig", + "qualified_name": "keen::impact::AttributeReferenceConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4292573895, + "hash2": 2176758600, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackTypeConfig", + "type_name_2": "impact.VisceralAttackTypeConfig", + "qualified_name": "keen::impact::VisceralAttackTypeConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1838073811, + "hash2": 3954853497, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::VisceralAttackType", + "type_hash": 1862035335, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingSetup", + "type_name_2": "impact.DamageTerraformingSetup", + "qualified_name": "keen::impact::DamageTerraformingSetup", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1582999390, + "hash2": 4152129817, + "struct_fields": [ + { + "name": "softDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "slightlyHardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "moderatelyHardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + }, + { + "name": "hardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "veryHardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingRuntimeSetup", + "type_name_2": "impact.DamageTerraformingRuntimeSetup", + "qualified_name": "keen::impact::DamageTerraformingRuntimeSetup", + "referenced_type_name": "keen::impact::DamageTerraformingSetup", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 716394692, + "hash2": 3733315354, + "struct_fields": [ + { + "name": "woodDamageMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "stoneDamageMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "metalDamageMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingSetupConfig", + "type_name_2": "impact.DamageTerraformingSetupConfig", + "qualified_name": "keen::impact::DamageTerraformingSetupConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 96, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1577814824, + "hash2": 3089740207, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::DamageTerraformingSetup", + "type_hash": 1582999390, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ArmorDistribution", + "type_name_2": "impact.ArmorDistribution", + "qualified_name": "keen::impact::ArmorDistribution", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4245569545, + "hash2": 1498259883, + "struct_fields": [ + { + "name": "physical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "blunt", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "pierce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "cut", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "magical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "fire", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "ice", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "fog", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "lightning", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingTypeConfig", + "type_name_2": "impact.TerraformingTypeConfig", + "qualified_name": "keen::impact::TerraformingTypeConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3201176510, + "hash2": 639205375, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::TerraformingType", + "type_hash": 3855488802, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTypeNew", + "type_name_2": "impact.DamageTypeNew", + "qualified_name": "keen::impact::DamageTypeNew", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 13, + "primitive_type": "Enum", + "hash1": 2316926701, + "hash2": 434545731, + "struct_fields": [], + "enum_fields": [ + { + "name": "Physical_Cut", + "value": 0 + }, + { + "name": "Physical_Pierce", + "value": 1 + }, + { + "name": "Physical_Blunt", + "value": 2 + }, + { + "name": "Magical_Fire", + "value": 3 + }, + { + "name": "Magical_Ice", + "value": 4 + }, + { + "name": "Magical_Fog", + "value": 5 + }, + { + "name": "Magical_Lightning", + "value": 6 + }, + { + "name": "Healing", + "value": 7 + }, + { + "name": "Poison", + "value": 8 + }, + { + "name": "Wood", + "value": 9 + }, + { + "name": "Stone", + "value": 10 + }, + { + "name": "Metal", + "value": 11 + }, + { + "name": "Explosion", + "value": 12 + } + ] + }, + { + "type_name_1": "AttackCategoryMaskConfig", + "type_name_2": "impact.AttackCategoryMaskConfig", + "qualified_name": "keen::impact::AttackCategoryMaskConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1720580138, + "hash2": 2466857546, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WeaponCategory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1027645677, + "hash2": 3010036125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryReference", + "type_name_2": "WeaponCategoryReference", + "qualified_name": "keen::WeaponCategoryReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2618276603, + "hash2": 477113583, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryConfig", + "type_name_2": "impact.WeaponCategoryConfig", + "qualified_name": "keen::impact::WeaponCategoryConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1393005362, + "hash2": 3510115575, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MajorDirectionConfig", + "type_name_2": "impact.MajorDirectionConfig", + "qualified_name": "keen::impact::MajorDirectionConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1835669580, + "hash2": 1285879427, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionTypeConfig", + "type_name_2": "impact.HitReactionTypeConfig", + "qualified_name": "keen::impact::HitReactionTypeConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 558734940, + "hash2": 1257800202, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::HitReactionType", + "type_hash": 3443959442, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushBackForceConfig", + "type_name_2": "impact.PushBackForceConfig", + "qualified_name": "keen::impact::PushBackForceConfig", + "referenced_type_name": "keen::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 200681932, + "hash2": 3604747256, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::PushBackForce", + "type_hash": 1564332290, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EventStream", + "type_name_2": "impact.EventStream", + "qualified_name": "keen::impact::EventStream", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3621627024, + "hash2": 1090953663, + "struct_fields": [], + "enum_fields": [ + { + "name": "OnCollision", + "value": 0 + }, + { + "name": "OnHit", + "value": 1 + }, + { + "name": "OnParry", + "value": 2 + }, + { + "name": "OnFootDown", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::impact::EventStream", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3183824590, + "hash2": 3181813607, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EventStreamMask", + "type_name_2": "impact.EventStreamMask", + "qualified_name": "keen::impact::EventStreamMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 264568040, + "hash2": 2899371729, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactUiValue", + "type_name_2": "ImpactUiValue", + "qualified_name": "keen::ImpactUiValue", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1332271095, + "hash2": 2771205126, + "struct_fields": [ + { + "name": "locaId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "isSigned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "valueFormat", + "type_name": "keen::impact::ImpcatValueNumberFormat", + "type_hash": 828415737, + "data_offset": 5 + }, + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::impact_nodes::ImpactNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1211858743, + "hash2": 1111105802, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeReference", + "type_name_2": "impact_nodes.NodeReference", + "qualified_name": "keen::impact_nodes::NodeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2777254995, + "hash2": 1273056441, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResetPoint", + "type_name_2": "impact_nodes.ResetPoint", + "qualified_name": "keen::impact_nodes::ResetPoint", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1808304665, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingTypeValueNode", + "type_name_2": "impact_nodes.TerraformingTypeValueNode", + "qualified_name": "keen::impact_nodes::TerraformingTypeValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3901893471, + "hash2": 2243873001, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::TerraformingType", + "type_hash": 3855488802, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExecutionLink", + "type_name_2": "impact_nodes.ExecutionLink", + "qualified_name": "keen::impact_nodes::ExecutionLink", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3542870568, + "hash2": 402298693, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::impact_nodes::NodeReference", + "type_hash": 2777254995, + "data_offset": 0 + }, + { + "name": "startElementName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 16 + }, + { + "name": "endNode", + "type_name": "keen::impact_nodes::NodeReference", + "type_hash": 2777254995, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DataLink", + "type_name_2": "impact_nodes.DataLink", + "qualified_name": "keen::impact_nodes::DataLink", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3850052562, + "hash2": 1812435450, + "struct_fields": [ + { + "name": "ownerNodeId", + "type_name": "keen::impact_nodes::NodeReference", + "type_hash": 2777254995, + "data_offset": 0 + }, + { + "name": "ownerMemberName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 16 + }, + { + "name": "accessorNodeId", + "type_name": "keen::impact_nodes::NodeReference", + "type_hash": 2777254995, + "data_offset": 24 + }, + { + "name": "accessorMemberName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatValueNode", + "type_name_2": "impact_nodes.FloatValueNode", + "qualified_name": "keen::impact_nodes::FloatValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3868725745, + "hash2": 3681911724, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Uint32ValueNode", + "type_name_2": "impact_nodes.Uint32ValueNode", + "qualified_name": "keen::impact_nodes::Uint32ValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 271320968, + "hash2": 2501855946, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Sint32ValueNode", + "type_name_2": "impact_nodes.Sint32ValueNode", + "qualified_name": "keen::impact_nodes::Sint32ValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1037273014, + "hash2": 2917234538, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolValueNode", + "type_name_2": "impact_nodes.BoolValueNode", + "qualified_name": "keen::impact_nodes::BoolValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 244105799, + "hash2": 1019374053, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float2ValueNode", + "type_name_2": "impact_nodes.Float2ValueNode", + "qualified_name": "keen::impact_nodes::Float2ValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 68, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1036299263, + "hash2": 866574977, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float3ValueNode", + "type_name_2": "impact_nodes.Float3ValueNode", + "qualified_name": "keen::impact_nodes::Float3ValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2001653482, + "hash2": 2995326580, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float4ValueNode", + "type_name_2": "impact_nodes.Float4ValueNode", + "qualified_name": "keen::impact_nodes::Float4ValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2118252453, + "hash2": 3890626247, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateValueNode", + "type_name_2": "impact_nodes.TemplateValueNode", + "qualified_name": "keen::impact_nodes::TemplateValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1574393197, + "hash2": 959873117, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagValueNode", + "type_name_2": "impact_nodes.EntityTagValueNode", + "qualified_name": "keen::impact_nodes::EntityTagValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1288190704, + "hash2": 535028708, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialValueNode", + "type_name_2": "impact_nodes.MaterialValueNode", + "qualified_name": "keen::impact_nodes::MaterialValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2794926048, + "hash2": 34524384, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimeValueNode", + "type_name_2": "impact_nodes.TimeValueNode", + "qualified_name": "keen::impact_nodes::TimeValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3085791060, + "hash2": 3379243354, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactionValueNode", + "type_name_2": "impact_nodes.FactionValueNode", + "qualified_name": "keen::impact_nodes::FactionValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3313012775, + "hash2": 2495707950, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeReferenceValueNode", + "type_name_2": "impact_nodes.AttributeReferenceValueNode", + "qualified_name": "keen::impact_nodes::AttributeReferenceValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2026201420, + "hash2": 1793737090, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageSetupValueNode", + "type_name_2": "impact_nodes.DamageSetupValueNode", + "qualified_name": "keen::impact_nodes::DamageSetupValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2994942641, + "hash2": 2633896862, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::DamageSetup", + "type_hash": 4039031402, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingSetupValueNode", + "type_name_2": "impact_nodes.DamageTerraformingSetupValueNode", + "qualified_name": "keen::impact_nodes::DamageTerraformingSetupValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 754173833, + "hash2": 4219814333, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::DamageTerraformingSetup", + "type_hash": 1582999390, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackCategoryMaskValueNode", + "type_name_2": "impact_nodes.AttackCategoryMaskValueNode", + "qualified_name": "keen::impact_nodes::AttackCategoryMaskValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 935117071, + "hash2": 552533244, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryValueNode", + "type_name_2": "impact_nodes.WeaponCategoryValueNode", + "qualified_name": "keen::impact_nodes::WeaponCategoryValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 759657019, + "hash2": 1528210621, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MajorDirectionValueNode", + "type_name_2": "impact_nodes.MajorDirectionValueNode", + "qualified_name": "keen::impact_nodes::MajorDirectionValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 539745889, + "hash2": 296596133, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionTypeValueNode", + "type_name_2": "impact_nodes.HitReactionTypeValueNode", + "qualified_name": "keen::impact_nodes::HitReactionTypeValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1041369001, + "hash2": 2151899164, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::HitReactionType", + "type_hash": 3443959442, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushBackForceValueNode", + "type_name_2": "impact_nodes.PushBackForceValueNode", + "qualified_name": "keen::impact_nodes::PushBackForceValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2121855201, + "hash2": 2092845962, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::impact::PushBackForce", + "type_hash": 1564332290, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackTypeValueNode", + "type_name_2": "impact_nodes.VisceralAttackTypeValueNode", + "qualified_name": "keen::impact_nodes::VisceralAttackTypeValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 698532252, + "hash2": 3075252499, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::VisceralAttackType", + "type_hash": 1862035335, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HaltNode", + "type_name_2": "impact_nodes.HaltNode", + "qualified_name": "keen::impact_nodes::HaltNode", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3661830965, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DestroySelfNode", + "type_name_2": "impact_nodes.DestroySelfNode", + "qualified_name": "keen::impact_nodes::DestroySelfNode", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3524607138, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResetNode", + "type_name_2": "impact_nodes.ResetNode", + "qualified_name": "keen::impact_nodes::ResetNode", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1513414485, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RVM", + "type_name_2": "impact_nodes.RVM", + "qualified_name": "keen::impact_nodes::RVM", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 303490357, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GetParent", + "type_name_2": "impact_nodes.GetParent", + "qualified_name": "keen::impact_nodes::GetParent", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 126132934, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetRoot", + "type_name_2": "impact_nodes.GetRoot", + "qualified_name": "keen::impact_nodes::GetRoot", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 29440850, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetEntityParent", + "type_name_2": "impact_nodes.GetEntityParent", + "qualified_name": "keen::impact_nodes::GetEntityParent", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1912361133, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetHitTarget", + "type_name_2": "impact_nodes.GetHitTarget", + "qualified_name": "keen::impact_nodes::GetHitTarget", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2000670170, + "hash2": 1432181525, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "hitEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetLockedTarget", + "type_name_2": "impact_nodes.GetLockedTarget", + "qualified_name": "keen::impact_nodes::GetLockedTarget", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3660539217, + "hash2": 2892005237, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ecs::TargetType", + "type_hash": 1671000586, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetSelf", + "type_name_2": "impact_nodes.GetSelf", + "qualified_name": "keen::impact_nodes::GetSelf", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1147442256, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetTransform", + "type_name_2": "impact_nodes.GetTransform", + "qualified_name": "keen::impact_nodes::GetTransform", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3767031038, + "hash2": 2453512691, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetSlotTransform", + "type_name_2": "impact_nodes.GetSlotTransform", + "qualified_name": "keen::impact_nodes::GetSlotTransform", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1997103978, + "hash2": 954360498, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConsumeItem", + "type_name_2": "impact_nodes.ConsumeItem", + "qualified_name": "keen::impact_nodes::ConsumeItem", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3031090699, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyOffset", + "type_name_2": "impact_nodes.ApplyOffset", + "qualified_name": "keen::impact_nodes::ApplyOffset", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3152833477, + "hash2": 2432563178, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "localOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "worldOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "orientationOffset", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 88 + }, + { + "name": "result", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartQuery", + "type_name_2": "impact_nodes.StartQuery", + "qualified_name": "keen::impact_nodes::StartQuery", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 81246494, + "hash2": 3358696140, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 68 + }, + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 80 + }, + { + "name": "colliderFlag", + "type_name": "keen::ecs::ColliderFlags", + "type_hash": 1045555458, + "data_offset": 84 + }, + { + "name": "sortByDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 86 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopQuery", + "type_name_2": "impact_nodes.StopQuery", + "qualified_name": "keen::impact_nodes::StopQuery", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4029394526, + "hash2": 2022554805, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FetchAttribute", + "type_name_2": "impact_nodes.FetchAttribute", + "qualified_name": "keen::impact_nodes::FetchAttribute", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 47604954, + "hash2": 833198311, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "value", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAttribute", + "type_name_2": "impact_nodes.SetAttribute", + "qualified_name": "keen::impact_nodes::SetAttribute", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3199890262, + "hash2": 833198311, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "value", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ValuesMathOperator", + "type_name_2": "impact_nodes.ValuesMathOperator", + "qualified_name": "keen::impact_nodes::ValuesMathOperator", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3168280718, + "hash2": 3684695300, + "struct_fields": [], + "enum_fields": [ + { + "name": "Add", + "value": 0 + }, + { + "name": "Sub", + "value": 1 + }, + { + "name": "Mul", + "value": 2 + }, + { + "name": "Div", + "value": 3 + } + ] + }, + { + "type_name_1": "ApplyChange", + "type_name_2": "impact_nodes.ApplyChange", + "qualified_name": "keen::impact_nodes::ApplyChange", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1101359414, + "hash2": 564606613, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "attributeRefInput", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 28 + }, + { + "name": "operation", + "type_name": "keen::impact_nodes::ValuesMathOperator", + "type_hash": 3168280718, + "data_offset": 44 + }, + { + "name": "valueStorage", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 45 + }, + { + "name": "valueStorageSign", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 46 + }, + { + "name": "value", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 47 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeAttribute", + "type_name_2": "impact_nodes.ChangeAttribute", + "qualified_name": "keen::impact_nodes::ChangeAttribute", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4066753386, + "hash2": 3931305289, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "attributeRefInput", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 28 + }, + { + "name": "operation", + "type_name": "keen::impact_nodes::ValuesMathOperator", + "type_hash": 3168280718, + "data_offset": 44 + }, + { + "name": "valueStorage", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 45 + }, + { + "name": "value", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 46 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AddValues", + "type_name_2": "impact_nodes.AddValues", + "qualified_name": "keen::impact_nodes::AddValues", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1274318743, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::impact_nodes::ValuesMathOperator", + "type_hash": 3168280718, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubValues", + "type_name_2": "impact_nodes.SubValues", + "qualified_name": "keen::impact_nodes::SubValues", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1105644526, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::impact_nodes::ValuesMathOperator", + "type_hash": 3168280718, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MulValues", + "type_name_2": "impact_nodes.MulValues", + "qualified_name": "keen::impact_nodes::MulValues", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 79160442, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::impact_nodes::ValuesMathOperator", + "type_hash": 3168280718, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DivValues", + "type_name_2": "impact_nodes.DivValues", + "qualified_name": "keen::impact_nodes::DivValues", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 536312547, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::impact_nodes::ValuesMathOperator", + "type_hash": 3168280718, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Normalize", + "type_name_2": "impact_nodes.Normalize", + "qualified_name": "keen::impact_nodes::Normalize", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 559402209, + "hash2": 3100420605, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "result", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetLength", + "type_name_2": "impact_nodes.SetLength", + "qualified_name": "keen::impact_nodes::SetLength", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4157987086, + "hash2": 3926554695, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "result", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetLength", + "type_name_2": "impact_nodes.GetLength", + "qualified_name": "keen::impact_nodes::GetLength", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 88652754, + "hash2": 1161190845, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "result", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntity", + "type_name_2": "impact_nodes.SpawnEntity", + "qualified_name": "keen::impact_nodes::SpawnEntity", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 136, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3860421206, + "hash2": 1568040399, + "struct_fields": [ + { + "name": "breakImpactHierarchy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "templateInput", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 12 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 32 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 88 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 100 + }, + { + "name": "targetEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 112 + }, + { + "name": "parentEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 116 + }, + { + "name": "levelOverride", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "factionOverride", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 124 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateDamageSetup", + "type_name_2": "impact_nodes.CreateDamageSetup", + "qualified_name": "keen::impact_nodes::CreateDamageSetup", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 112, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1407630972, + "hash2": 2854094152, + "struct_fields": [ + { + "name": "physicalCutDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + }, + { + "name": "physicalPierceDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "physicalBluntDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + }, + { + "name": "magicalFireDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 20 + }, + { + "name": "magicalIceDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + }, + { + "name": "magicalFogDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "magicalFogLightning", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 32 + }, + { + "name": "healing", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 36 + }, + { + "name": "poisonDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 40 + }, + { + "name": "woodDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 44 + }, + { + "name": "stoneDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + }, + { + "name": "metalDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 52 + }, + { + "name": "explosionDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 56 + }, + { + "name": "damageSetup", + "type_name": "keen::impact::DamageSetup", + "type_hash": 4039031402, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyDamage", + "type_name_2": "impact_nodes.ApplyDamage", + "qualified_name": "keen::impact_nodes::ApplyDamage", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 180, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 814749967, + "hash2": 2964504599, + "struct_fields": [ + { + "name": "sourceId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "hitPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "hitNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "hitDirection", + "type_name": "keen::impact::MajorDirection", + "type_hash": 2919617410, + "data_offset": 44 + }, + { + "name": "attackMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "attackStaminaMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "manaCost", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 60 + }, + { + "name": "damageScaleAttribute", + "type_name": "keen::AttributeRootReference", + "type_hash": 1015338995, + "data_offset": 64 + }, + { + "name": "pushBack", + "type_name": "keen::impact::PushBackForce", + "type_hash": 1564332290, + "data_offset": 80 + }, + { + "name": "hitReaction", + "type_name": "keen::impact::HitReactionType", + "type_hash": 3443959442, + "data_offset": 82 + }, + { + "name": "damageSetup", + "type_name": "keen::impact::DamageSetup", + "type_hash": 4039031402, + "data_offset": 84 + }, + { + "name": "attackCategory", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 136 + }, + { + "name": "weaponCategory", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 140 + }, + { + "name": "materialId", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 156 + }, + { + "name": "canBeBlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 172 + }, + { + "name": "canCrit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 173 + }, + { + "name": "visceralAttackType", + "type_name": "keen::VisceralAttackType", + "type_hash": 1862035335, + "data_offset": 174 + }, + { + "name": "ignoreConsecutiveHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 175 + }, + { + "name": "pusbackDirectionOverride", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + }, + { + "name": "wasBlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 177 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetConsecutiveHitCount", + "type_name_2": "impact_nodes.GetConsecutiveHitCount", + "qualified_name": "keen::impact_nodes::GetConsecutiveHitCount", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2587610892, + "hash2": 476941871, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsConsecutiveHit", + "type_name_2": "impact_nodes.IsConsecutiveHit", + "qualified_name": "keen::impact_nodes::IsConsecutiveHit", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4102722837, + "hash2": 652054533, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsSkillUnlocked", + "type_name_2": "impact_nodes.IsSkillUnlocked", + "qualified_name": "keen::impact_nodes::IsSkillUnlocked", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1299586014, + "hash2": 2228648725, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "skill", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearConsecutiveHits", + "type_name_2": "impact_nodes.ClearConsecutiveHits", + "qualified_name": "keen::impact_nodes::ClearConsecutiveHits", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3047465125, + "hash2": 4127422720, + "struct_fields": [ + { + "name": "clearInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetCursorTransform", + "type_name_2": "impact_nodes.GetCursorTransform", + "qualified_name": "keen::impact_nodes::GetCursorTransform", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3022483520, + "hash2": 1957406716, + "struct_fields": [ + { + "name": "playerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Terraforming", + "type_name_2": "impact_nodes.Terraforming", + "qualified_name": "keen::impact_nodes::Terraforming", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4285954270, + "hash2": 3532960825, + "struct_fields": [ + { + "name": "playerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "terraformingType", + "type_name": "keen::TerraformingType", + "type_hash": 3855488802, + "data_offset": 72 + }, + { + "name": "damageTerraformingSetup", + "type_name": "keen::impact::DamageTerraformingSetup", + "type_hash": 1582999390, + "data_offset": 76 + }, + { + "name": "materialId", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 96 + }, + { + "name": "rangeDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "rangeAdd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "rangeFlatten", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetQueryResultCount", + "type_name_2": "impact_nodes.GetQueryResultCount", + "qualified_name": "keen::impact_nodes::GetQueryResultCount", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4050205234, + "hash2": 2775484770, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FetchQueryResult", + "type_name_2": "impact_nodes.FetchQueryResult", + "qualified_name": "keen::impact_nodes::FetchQueryResult", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 885038379, + "hash2": 571966343, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 8 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "otherEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "hitPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "hitNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "hit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "queryNew", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + }, + { + "name": "updateNew", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 46 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetTransform", + "type_name_2": "impact_nodes.SetTransform", + "qualified_name": "keen::impact_nodes::SetTransform", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4030359858, + "hash2": 757119056, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetOnCollisionEventCount", + "type_name_2": "impact_nodes.GetOnCollisionEventCount", + "qualified_name": "keen::impact_nodes::GetOnCollisionEventCount", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 410364090, + "hash2": 476941871, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Wait", + "type_name_2": "impact_nodes.Wait", + "qualified_name": "keen::impact_nodes::Wait", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 867101647, + "hash2": 1178555436, + "struct_fields": [ + { + "name": "durationInput", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FetchOnCollisionEvent", + "type_name_2": "impact_nodes.FetchOnCollisionEvent", + "qualified_name": "keen::impact_nodes::FetchOnCollisionEvent", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 60, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 729524915, + "hash2": 2138913988, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "ignoreSameRoot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "ignoreWeakspots", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "otherEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "otherEntityRoot", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "combatCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 44 + }, + { + "name": "isWeakSpot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerNoise", + "type_name_2": "impact_nodes.TriggerNoise", + "qualified_name": "keen::impact_nodes::TriggerNoise", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3027229844, + "hash2": 1676535572, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PacifyFaction", + "type_name_2": "impact_nodes.PacifyFaction", + "qualified_name": "keen::impact_nodes::PacifyFaction", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2704069300, + "hash2": 1465930916, + "struct_fields": [ + { + "name": "faction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallFactionForHelp", + "type_name_2": "impact_nodes.CallFactionForHelp", + "qualified_name": "keen::impact_nodes::CallFactionForHelp", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4009356918, + "hash2": 1465930916, + "struct_fields": [ + { + "name": "faction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomBranchNode", + "type_name_2": "impact_nodes.RandomBranchNode", + "qualified_name": "keen::impact_nodes::RandomBranchNode", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1029593709, + "hash2": 1589722397, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomValueNode", + "type_name_2": "impact_nodes.RandomValueNode", + "qualified_name": "keen::impact_nodes::RandomValueNode", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 814177094, + "hash2": 4106616463, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEach", + "type_name_2": "impact_nodes.ForEach", + "qualified_name": "keen::impact_nodes::ForEach", + "referenced_type_name": "keen::impact_nodes::ImpactBranchNode", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 671924868, + "hash2": 1257678181, + "struct_fields": [ + { + "name": "doBranch", + "type_name": "keen::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 43254562, + "data_offset": 8 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhileLoopBranchNode", + "type_name_2": "impact_nodes.WhileLoopBranchNode", + "qualified_name": "keen::impact_nodes::WhileLoopBranchNode", + "referenced_type_name": "keen::impact_nodes::ImpactBranchNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1438702861, + "hash2": 3381929616, + "struct_fields": [ + { + "name": "doBranch", + "type_name": "keen::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 43254562, + "data_offset": 8 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnEvent", + "type_name_2": "impact_nodes.OnEvent", + "qualified_name": "keen::impact_nodes::OnEvent", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3254421393, + "hash2": 3065259308, + "struct_fields": [ + { + "name": "eventType", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterRandom", + "type_name_2": "impact_nodes.FilterRandom", + "qualified_name": "keen::impact_nodes::FilterRandom", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 68324555, + "hash2": 2986946900, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterFriends", + "type_name_2": "impact_nodes.FilterFriends", + "qualified_name": "keen::impact_nodes::FilterFriends", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2316262781, + "hash2": 2645065332, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterSameRoot", + "type_name_2": "impact_nodes.FilterSameRoot", + "qualified_name": "keen::impact_nodes::FilterSameRoot", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 130655494, + "hash2": 2645065332, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterRootEntity", + "type_name_2": "impact_nodes.FilterRootEntity", + "qualified_name": "keen::impact_nodes::FilterRootEntity", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3279040879, + "hash2": 2645065332, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterFaction", + "type_name_2": "impact_nodes.FilterFaction", + "qualified_name": "keen::impact_nodes::FilterFaction", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2747095020, + "hash2": 617974593, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "faction", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterConsecutiveHits", + "type_name_2": "impact_nodes.FilterConsecutiveHits", + "qualified_name": "keen::impact_nodes::FilterConsecutiveHits", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1003628536, + "hash2": 3761697699, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterEntityTag", + "type_name_2": "impact_nodes.FilterEntityTag", + "qualified_name": "keen::impact_nodes::FilterEntityTag", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2845184469, + "hash2": 1141109639, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "entityTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 12 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachCollisionInStream", + "type_name_2": "impact_nodes.ForEachCollisionInStream", + "qualified_name": "keen::impact_nodes::ForEachCollisionInStream", + "referenced_type_name": "keen::impact_nodes::WhileLoopBranchNode", + "class_size": 120, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3268512795, + "hash2": 212933730, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 16 + }, + { + "name": "otherEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "otherRootEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 24 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 40 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 56 + }, + { + "name": "voxelMaterial", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "isCombatTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 116 + }, + { + "name": "isWeakSpot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 117 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachFootDownInStream", + "type_name_2": "impact_nodes.ForEachFootDownInStream", + "qualified_name": "keen::impact_nodes::ForEachFootDownInStream", + "referenced_type_name": "keen::impact_nodes::WhileLoopBranchNode", + "class_size": 44, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2898559843, + "hash2": 695429744, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsStreamEmpty", + "type_name_2": "impact_nodes.IsStreamEmpty", + "qualified_name": "keen::impact_nodes::IsStreamEmpty", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 945879955, + "hash2": 2591164256, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetStreamEventCount", + "type_name_2": "impact_nodes.GetStreamEventCount", + "qualified_name": "keen::impact_nodes::GetStreamEventCount", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1354269801, + "hash2": 2986946900, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::impact::EventStream", + "type_hash": 3621627024, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachCollision", + "type_name_2": "impact_nodes.ForEachCollision", + "qualified_name": "keen::impact_nodes::ForEachCollision", + "referenced_type_name": "keen::impact_nodes::WhileLoopBranchNode", + "class_size": 44, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1089551996, + "hash2": 1885130842, + "struct_fields": [ + { + "name": "otherEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachHitEvent", + "type_name_2": "impact_nodes.ForEachHitEvent", + "qualified_name": "keen::impact_nodes::ForEachHitEvent", + "referenced_type_name": "keen::impact_nodes::WhileLoopBranchNode", + "class_size": 96, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 479046483, + "hash2": 33124903, + "struct_fields": [ + { + "name": "wasParried", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "wasBlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "wasBlockBroken", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "wasBackstab", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "wasCrit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "wasImmune", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "wasKillingBlow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "wasVisceral", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "wasWeakspot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "wasSkillShot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "targetFaction", + "type_name": "keen::FactionType", + "type_hash": 1378920410, + "data_offset": 26 + }, + { + "name": "attackCategory", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 27 + }, + { + "name": "weaponCategory", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 28 + }, + { + "name": "rootEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 44 + }, + { + "name": "sourceEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 48 + }, + { + "name": "targetRootEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 52 + }, + { + "name": "targetEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 56 + }, + { + "name": "weaponEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 60 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "healthChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 88 + }, + { + "name": "staminaChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SendBaseHitEvent", + "type_name_2": "impact_nodes.SendBaseHitEvent", + "qualified_name": "keen::impact_nodes::SendBaseHitEvent", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1316251262, + "hash2": 3150198534, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "impactMaterial", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 32 + }, + { + "name": "voxelMaterial", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "targetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachParryEvent", + "type_name_2": "impact_nodes.ForEachParryEvent", + "qualified_name": "keen::impact_nodes::ForEachParryEvent", + "referenced_type_name": "keen::impact_nodes::WhileLoopBranchNode", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1284190774, + "hash2": 1126904643, + "struct_fields": [ + { + "name": "blockerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "attackerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + }, + { + "name": "staminaDrain", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachItemInBackpack", + "type_name_2": "impact_nodes.ForEachItemInBackpack", + "qualified_name": "keen::impact_nodes::ForEachItemInBackpack", + "referenced_type_name": "keen::impact_nodes::WhileLoopBranchNode", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2859013390, + "hash2": 3745996836, + "struct_fields": [ + { + "name": "ownerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + }, + { + "name": "pideId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolIfBranchNode", + "type_name_2": "impact_nodes.BoolIfBranchNode", + "qualified_name": "keen::impact_nodes::BoolIfBranchNode", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4025166801, + "hash2": 487413529, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ValuesCompareOperator", + "type_name_2": "impact_nodes.ValuesCompareOperator", + "qualified_name": "keen::impact_nodes::ValuesCompareOperator", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1406617711, + "hash2": 285676720, + "struct_fields": [], + "enum_fields": [ + { + "name": "Equal", + "value": 0 + }, + { + "name": "Less", + "value": 1 + } + ] + }, + { + "type_name_1": "IsEqual", + "type_name_2": "impact_nodes.IsEqual", + "qualified_name": "keen::impact_nodes::IsEqual", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4212538146, + "hash2": 1957963, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::impact_nodes::ValuesCompareOperator", + "type_hash": 1406617711, + "data_offset": 12 + }, + { + "name": "valueA", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 13 + }, + { + "name": "valueB", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsLess", + "type_name_2": "impact_nodes.IsLess", + "qualified_name": "keen::impact_nodes::IsLess", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1208448391, + "hash2": 1957963, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::impact_nodes::ValuesCompareOperator", + "type_hash": 1406617711, + "data_offset": 12 + }, + { + "name": "valueA", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 13 + }, + { + "name": "valueB", + "type_name": "keen::impact::TypedValue32", + "type_hash": 509678800, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsInState", + "type_name_2": "impact_nodes.IsInState", + "qualified_name": "keen::impact_nodes::IsInState", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2327271442, + "hash2": 935405841, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "state", + "type_name": "keen::actor::StateFlag", + "type_hash": 2652801490, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasFaction", + "type_name_2": "impact_nodes.HasFaction", + "qualified_name": "keen::impact_nodes::HasFaction", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1018092286, + "hash2": 80274063, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "faction", + "type_name": "keen::FactionMask", + "type_hash": 1546081698, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasEntityTag", + "type_name_2": "impact_nodes.HasEntityTag", + "qualified_name": "keen::impact_nodes::HasEntityTag", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4162410551, + "hash2": 61522590, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "entityTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsValidEntity", + "type_name_2": "impact_nodes.IsValidEntity", + "qualified_name": "keen::impact_nodes::IsValidEntity", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 367532171, + "hash2": 652054533, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsInsideBox", + "type_name_2": "impact_nodes.IsInsideBox", + "qualified_name": "keen::impact_nodes::IsInsideBox", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3216128567, + "hash2": 2902421887, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "box", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 84 + }, + { + "name": "boxOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasAttackCategory", + "type_name_2": "impact_nodes.HasAttackCategory", + "qualified_name": "keen::impact_nodes::HasAttackCategory", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1908134246, + "hash2": 3157234197, + "struct_fields": [ + { + "name": "categoryMask", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 12 + }, + { + "name": "contains", + "type_name": "keen::impact::AttackCategoryMask", + "type_hash": 237693500, + "data_offset": 13 + }, + { + "name": "matchAll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasWeaponCategory", + "type_name_2": "impact_nodes.HasWeaponCategory", + "qualified_name": "keen::impact_nodes::HasWeaponCategory", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2520238586, + "hash2": 3192964926, + "struct_fields": [ + { + "name": "weaponCategory", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 12 + }, + { + "name": "requiredCategory", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasWeaponCategoryType", + "type_name_2": "impact_nodes.HasWeaponCategoryType", + "qualified_name": "keen::impact_nodes::HasWeaponCategoryType", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1611717018, + "hash2": 3713301457, + "struct_fields": [ + { + "name": "weaponCategory", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 12 + }, + { + "name": "allowedCategories", + "type_name": "keen::WeaponCategoryTypeMask", + "type_hash": 3573038974, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetWeaponVisualEntityId", + "type_name_2": "impact_nodes.GetWeaponVisualEntityId", + "qualified_name": "keen::impact_nodes::GetWeaponVisualEntityId", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4292606476, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsSameEntity", + "type_name_2": "impact_nodes.IsSameEntity", + "qualified_name": "keen::impact_nodes::IsSameEntity", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 470363475, + "hash2": 4013334672, + "struct_fields": [ + { + "name": "entityAId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "entityBId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsEnemy", + "type_name_2": "impact_nodes.IsEnemy", + "qualified_name": "keen::impact_nodes::IsEnemy", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4254631666, + "hash2": 4013334672, + "struct_fields": [ + { + "name": "entityAId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "entityBId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsFriend", + "type_name_2": "impact_nodes.IsFriend", + "qualified_name": "keen::impact_nodes::IsFriend", + "referenced_type_name": "keen::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 353652938, + "hash2": 4013334672, + "struct_fields": [ + { + "name": "entityAId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 12 + }, + { + "name": "entityBId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetEnemyCountInRange", + "type_name_2": "impact_nodes.GetEnemyCountInRange", + "qualified_name": "keen::impact_nodes::GetEnemyCountInRange", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3537969599, + "hash2": 1436952397, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetEnemyVariable", + "type_name_2": "impact_nodes.SetEnemyVariable", + "qualified_name": "keen::impact_nodes::SetEnemyVariable", + "referenced_type_name": "keen::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1409172738, + "hash2": 2231198256, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 8 + }, + { + "name": "variable", + "type_name": "keen::enemy01::EnemyVariableReference", + "type_hash": 3122030124, + "data_offset": 12 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactDefinition", + "type_name_2": "ImpactDefinition", + "qualified_name": "keen::ImpactDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1264862389, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactVariable", + "type_name_2": "ImpactVariable", + "qualified_name": "keen::ImpactVariable", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2091941092, + "hash2": 3706871301, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "configId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "offsetInBytes", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "dbgName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ImpactCommand[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ImpactCommand", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1601350222, + "hash2": 245731021, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ImpactVariable[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ImpactVariable", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1043511983, + "hash2": 905757137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactProgram", + "type_name_2": "ImpactProgram", + "qualified_name": "keen::ImpactProgram", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3566349704, + "hash2": 3391078136, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::impact::ProgramId", + "type_hash": 934439321, + "data_offset": 0 + }, + { + "name": "programGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "stackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "usedStreams", + "type_name": "keen::impact::EventStreamMask", + "type_hash": 264568040, + "data_offset": 22 + }, + { + "name": "code", + "type_name": "keen::BlobArray", + "type_hash": 1601350222, + "data_offset": 24 + }, + { + "name": "codeShutdown", + "type_name": "keen::BlobArray", + "type_hash": 1601350222, + "data_offset": 32 + }, + { + "name": "dataLayout", + "type_name": "keen::BlobArray", + "type_hash": 1043511983, + "data_offset": 40 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfigInfoEntry", + "type_name_2": "ImpactConfigInfoEntry", + "qualified_name": "keen::ImpactConfigInfoEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2446161898, + "hash2": 2824450827, + "struct_fields": [ + { + "name": "nodeName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "configId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ExecutionInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ExecutionInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4053419825, + "hash2": 2359619675, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExecutionInfo", + "type_name_2": "ExecutionInfo", + "qualified_name": "keen::ExecutionInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1729196240, + "hash2": 3755221228, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "branch", + "type_name": "keen::BlobArray", + "type_hash": 4053419825, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactFunctionCallDebugInfo", + "type_name_2": "ImpactFunctionCallDebugInfo", + "qualified_name": "keen::ImpactFunctionCallDebugInfo", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 772172775, + "hash2": 1828859681, + "struct_fields": [ + { + "name": "nodeName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "nodeId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + }, + { + "name": "pc", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ImpactConfigInfoEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ImpactConfigInfoEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1708514567, + "hash2": 531295923, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ImpactFunctionCallDebugInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ImpactFunctionCallDebugInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3823555752, + "hash2": 3294205440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactInfo", + "type_name_2": "ImpactInfo", + "qualified_name": "keen::ImpactInfo", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1639557360, + "hash2": 983452790, + "struct_fields": [ + { + "name": "programGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "cmdCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "configs", + "type_name": "keen::BlobArray", + "type_hash": 1708514567, + "data_offset": 20 + }, + { + "name": "programFlow", + "type_name": "keen::BlobArray", + "type_hash": 4053419825, + "data_offset": 28 + }, + { + "name": "dataLayout", + "type_name": "keen::BlobArray", + "type_hash": 1043511983, + "data_offset": 36 + }, + { + "name": "debugInfo", + "type_name": "keen::BlobArray", + "type_hash": 3823555752, + "data_offset": 44 + }, + { + "name": "shutdownlDebugInfo", + "type_name": "keen::BlobArray", + "type_hash": 3823555752, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfigData", + "type_name_2": "ImpactConfigData", + "qualified_name": "keen::ImpactConfigData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1750157002, + "hash2": 2393923300, + "struct_fields": [ + { + "name": "configValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactSubDirectory", + "type_name_2": "ImpactSubDirectory", + "qualified_name": "keen::ImpactSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2286506501, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactDirectory", + "type_name_2": "ImpactDirectory", + "qualified_name": "keen::ImpactDirectory", + "referenced_type_name": "keen::ImpactSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1315458999, + "hash2": 786631840, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ImpactProgramReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ImpactProgramReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2722446360, + "hash2": 2018248235, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactRegistryResource", + "type_name_2": "ImpactRegistryResource", + "qualified_name": "keen::ImpactRegistryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1687520087, + "hash2": 1731272921, + "struct_fields": [ + { + "name": "programs", + "type_name": "keen::BlobArray", + "type_hash": 2722446360, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CelestialBodyDirection", + "type_name_2": "CelestialBodyDirection", + "qualified_name": "keen::CelestialBodyDirection", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 235644685, + "hash2": 728154747, + "struct_fields": [], + "enum_fields": [ + { + "name": "Clockwise", + "value": 0 + }, + { + "name": "Counterclockwise", + "value": 1 + } + ] + }, + { + "type_name_1": "CelestialBodySetup", + "type_name_2": "CelestialBodySetup", + "qualified_name": "keen::CelestialBodySetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 253436345, + "hash2": 3744016371, + "struct_fields": [ + { + "name": "riseAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "setAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "zenithAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "direction", + "type_name": "keen::CelestialBodyDirection", + "type_hash": 235644685, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IngameTimeConfig", + "type_name_2": "IngameTimeConfig", + "qualified_name": "keen::IngameTimeConfig", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2741983892, + "hash2": 1253555966, + "struct_fields": [ + { + "name": "dayStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "dayEnd", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sunSetup", + "type_name": "keen::CelestialBodySetup", + "type_hash": 253436345, + "data_offset": 16 + }, + { + "name": "moonSetup", + "type_name": "keen::CelestialBodySetup", + "type_hash": 253436345, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IngameTimeSpan", + "type_name_2": "IngameTimeSpan", + "qualified_name": "keen::IngameTimeSpan", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1676547242, + "hash2": 1632464715, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "end", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PresetId", + "type_name_2": "input_mapping.PresetId", + "qualified_name": "keen::input_mapping::PresetId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2691484697, + "hash2": 3051997031, + "struct_fields": [], + "enum_fields": [ + { + "name": "Custom", + "value": 0 + }, + { + "name": "PresetA", + "value": 1 + }, + { + "name": "PresetB", + "value": 2 + }, + { + "name": "Default", + "value": 1 + }, + { + "name": "MaxKeyboardMousePreset", + "value": 1 + }, + { + "name": "MaxGamepadPreset", + "value": 2 + } + ] + }, + { + "type_name_1": "ControlOperationType", + "type_name_2": "input_mapping.ControlOperationType", + "qualified_name": "keen::input_mapping::ControlOperationType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 270102885, + "hash2": 4047197721, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Key", + "value": 1 + }, + { + "name": "MouseButton", + "value": 2 + }, + { + "name": "MouseWheel", + "value": 3 + }, + { + "name": "MouseMove", + "value": 4 + }, + { + "name": "GamepadButton", + "value": 5 + }, + { + "name": "Axis", + "value": 6 + }, + { + "name": "AnalogStick", + "value": 7 + } + ] + }, + { + "type_name_1": "InputModality", + "type_name_2": "input_mapping.InputModality", + "qualified_name": "keen::input_mapping::InputModality", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3557742354, + "hash2": 332546810, + "struct_fields": [], + "enum_fields": [ + { + "name": "Press", + "value": 0 + }, + { + "name": "Tap", + "value": 1 + }, + { + "name": "Hold", + "value": 2 + }, + { + "name": "Release", + "value": 3 + } + ] + }, + { + "type_name_1": "AxisDirection", + "type_name_2": "input_mapping.AxisDirection", + "qualified_name": "keen::input_mapping::AxisDirection", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3544927107, + "hash2": 3572585483, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "PositiveX", + "value": 1 + }, + { + "name": "NegativeX", + "value": 2 + }, + { + "name": "PositiveY", + "value": 3 + }, + { + "name": "NegativeY", + "value": 4 + } + ] + }, + { + "type_name_1": "GameplayAction", + "type_name_2": "input_mapping.runtime.GameplayAction", + "qualified_name": "keen::input_mapping::runtime::GameplayAction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 95, + "primitive_type": "Enum", + "hash1": 2570175215, + "hash2": 1730193268, + "struct_fields": [], + "enum_fields": [ + { + "name": "MovementLeft", + "value": 0 + }, + { + "name": "MovementRight", + "value": 1 + }, + { + "name": "MovementUp", + "value": 2 + }, + { + "name": "MovementDown", + "value": 3 + }, + { + "name": "CameraLeft", + "value": 4 + }, + { + "name": "CameraRight", + "value": 5 + }, + { + "name": "CameraUp", + "value": 6 + }, + { + "name": "CameraDown", + "value": 7 + }, + { + "name": "CameraZoomIn", + "value": 8 + }, + { + "name": "CameraZoomOut", + "value": 9 + }, + { + "name": "MainhandAction", + "value": 10 + }, + { + "name": "MainhandAction_Release", + "value": 11 + }, + { + "name": "ContextualAction", + "value": 12 + }, + { + "name": "ContextualAction_Tap", + "value": 13 + }, + { + "name": "ContextualAction_Hold", + "value": 14 + }, + { + "name": "CancelAction", + "value": 15 + }, + { + "name": "AmmunitionSelectPrevious", + "value": 16 + }, + { + "name": "AmmunitionSelectNext", + "value": 17 + }, + { + "name": "ShowTutorial", + "value": 18 + }, + { + "name": "BlueprintDistanceIncrease", + "value": 19 + }, + { + "name": "BlueprintDistanceDecrease", + "value": 20 + }, + { + "name": "BlueprintMaterialSelectPrevious", + "value": 21 + }, + { + "name": "BlueprintMaterialSelectNext", + "value": 22 + }, + { + "name": "BlueprintPageSelectPrevious", + "value": 23 + }, + { + "name": "BlueprintPageSelectNext", + "value": 24 + }, + { + "name": "BlueprintShapeSelectPrevious", + "value": 25 + }, + { + "name": "BlueprintShapeSelectNext", + "value": 26 + }, + { + "name": "BlueprintShapeSelect0", + "value": 27 + }, + { + "name": "BlueprintShapeSelect1", + "value": 28 + }, + { + "name": "BlueprintShapeSelect2", + "value": 29 + }, + { + "name": "BlueprintShapeSelect3", + "value": 30 + }, + { + "name": "BlueprintShapeSelect4", + "value": 31 + }, + { + "name": "BlueprintShapeSelect5", + "value": 32 + }, + { + "name": "BlueprintShapeSelect6", + "value": 33 + }, + { + "name": "BlueprintShapeSelect7", + "value": 34 + }, + { + "name": "BlueprintShapeSelect8", + "value": 35 + }, + { + "name": "BlueprintShapeSelect9", + "value": 36 + }, + { + "name": "QuickUse0", + "value": 37 + }, + { + "name": "QuickUse1", + "value": 38 + }, + { + "name": "QuickUse2", + "value": 39 + }, + { + "name": "QuickUse3", + "value": 40 + }, + { + "name": "QuickUse4", + "value": 41 + }, + { + "name": "QuickUse5", + "value": 42 + }, + { + "name": "QuickUse6", + "value": 43 + }, + { + "name": "QuickUse7", + "value": 44 + }, + { + "name": "QuickUse0_Release", + "value": 45 + }, + { + "name": "QuickUse1_Release", + "value": 46 + }, + { + "name": "QuickUse2_Release", + "value": 47 + }, + { + "name": "QuickUse3_Release", + "value": 48 + }, + { + "name": "QuickUse4_Release", + "value": 49 + }, + { + "name": "QuickUse5_Release", + "value": 50 + }, + { + "name": "QuickUse6_Release", + "value": 51 + }, + { + "name": "QuickUse7_Release", + "value": 52 + }, + { + "name": "Block", + "value": 53 + }, + { + "name": "Evade", + "value": 54 + }, + { + "name": "Jump", + "value": 55 + }, + { + "name": "Jump_Hold", + "value": 56 + }, + { + "name": "Glider", + "value": 57 + }, + { + "name": "Respawn", + "value": 58 + }, + { + "name": "ShowActionbarWheel", + "value": 59 + }, + { + "name": "ActionbarSwapPage", + "value": 60 + }, + { + "name": "ActionbarPreviousSlot", + "value": 61 + }, + { + "name": "ActionbarNextSlot", + "value": 62 + }, + { + "name": "LootSelectPrevious", + "value": 63 + }, + { + "name": "LootSelectNext", + "value": 64 + }, + { + "name": "SongSelectOpen", + "value": 65 + }, + { + "name": "SongSelectPrevious", + "value": 66 + }, + { + "name": "SongSelectNext", + "value": 67 + }, + { + "name": "BuildingRotateLittleClockwise", + "value": 68 + }, + { + "name": "BuildingRotateLittleCounterClockwise", + "value": 69 + }, + { + "name": "BuildingRotateFarClockwise", + "value": 70 + }, + { + "name": "BuildingRotateFarCounterClockwise", + "value": 71 + }, + { + "name": "BuildingUndo", + "value": 72 + }, + { + "name": "BuildingBlueprintSnapping", + "value": 73 + }, + { + "name": "BuildingVoxelGridSnapping", + "value": 74 + }, + { + "name": "LockCombatTarget", + "value": 75 + }, + { + "name": "CombatTargetSelectPrevious", + "value": 76 + }, + { + "name": "CombatTargetSelectNext", + "value": 77 + }, + { + "name": "RangedCombatArm", + "value": 78 + }, + { + "name": "RangedCombatShoot", + "value": 79 + }, + { + "name": "Sprint", + "value": 80 + }, + { + "name": "Sneak", + "value": 81 + }, + { + "name": "Sit", + "value": 82 + }, + { + "name": "UiSystemMenu", + "value": 83 + }, + { + "name": "UiInGameMenu", + "value": 84 + }, + { + "name": "UiBackpack", + "value": 85 + }, + { + "name": "UiBuildingMenu", + "value": 86 + }, + { + "name": "UiCharacter", + "value": 87 + }, + { + "name": "UiCrafting", + "value": 88 + }, + { + "name": "UiJournal", + "value": 89 + }, + { + "name": "UiJumpToNotification", + "value": 90 + }, + { + "name": "UiMap", + "value": 91 + }, + { + "name": "UiSkills", + "value": 92 + }, + { + "name": "UiUserFeedback", + "value": 93 + }, + { + "name": "Count", + "value": 94 + } + ] + }, + { + "type_name_1": "GameplayAction", + "type_name_2": "input_mapping.config.GameplayAction", + "qualified_name": "keen::input_mapping::config::GameplayAction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 80, + "primitive_type": "Enum", + "hash1": 1181418499, + "hash2": 1610178457, + "struct_fields": [], + "enum_fields": [ + { + "name": "MovementLeft", + "value": 0 + }, + { + "name": "MovementRight", + "value": 1 + }, + { + "name": "MovementUp", + "value": 2 + }, + { + "name": "MovementDown", + "value": 3 + }, + { + "name": "CameraLeft", + "value": 4 + }, + { + "name": "CameraRight", + "value": 5 + }, + { + "name": "CameraUp", + "value": 6 + }, + { + "name": "CameraDown", + "value": 7 + }, + { + "name": "CameraZoomIn", + "value": 8 + }, + { + "name": "CameraZoomOut", + "value": 9 + }, + { + "name": "MainhandAction", + "value": 10 + }, + { + "name": "ContextualAction", + "value": 11 + }, + { + "name": "CancelAction", + "value": 12 + }, + { + "name": "AmmunitionSelectPrevious", + "value": 13 + }, + { + "name": "AmmunitionSelectNext", + "value": 14 + }, + { + "name": "ShowTutorial", + "value": 15 + }, + { + "name": "BlueprintDistanceIncrease", + "value": 16 + }, + { + "name": "BlueprintDistanceDecrease", + "value": 17 + }, + { + "name": "BlueprintMaterialSelectPrevious", + "value": 18 + }, + { + "name": "BlueprintMaterialSelectNext", + "value": 19 + }, + { + "name": "BlueprintPageSelectPrevious", + "value": 20 + }, + { + "name": "BlueprintPageSelectNext", + "value": 21 + }, + { + "name": "BlueprintShapeSelectPrevious", + "value": 22 + }, + { + "name": "BlueprintShapeSelectNext", + "value": 23 + }, + { + "name": "BlueprintShapeSelect0", + "value": 24 + }, + { + "name": "BlueprintShapeSelect1", + "value": 25 + }, + { + "name": "BlueprintShapeSelect2", + "value": 26 + }, + { + "name": "BlueprintShapeSelect3", + "value": 27 + }, + { + "name": "BlueprintShapeSelect4", + "value": 28 + }, + { + "name": "BlueprintShapeSelect5", + "value": 29 + }, + { + "name": "BlueprintShapeSelect6", + "value": 30 + }, + { + "name": "BlueprintShapeSelect7", + "value": 31 + }, + { + "name": "BlueprintShapeSelect8", + "value": 32 + }, + { + "name": "BlueprintShapeSelect9", + "value": 33 + }, + { + "name": "QuickUse0", + "value": 34 + }, + { + "name": "QuickUse1", + "value": 35 + }, + { + "name": "QuickUse2", + "value": 36 + }, + { + "name": "QuickUse3", + "value": 37 + }, + { + "name": "QuickUse4", + "value": 38 + }, + { + "name": "QuickUse5", + "value": 39 + }, + { + "name": "QuickUse6", + "value": 40 + }, + { + "name": "QuickUse7", + "value": 41 + }, + { + "name": "Block", + "value": 42 + }, + { + "name": "Evade", + "value": 43 + }, + { + "name": "Jump", + "value": 44 + }, + { + "name": "Glider", + "value": 45 + }, + { + "name": "Respawn", + "value": 46 + }, + { + "name": "ShowActionbarWheel", + "value": 47 + }, + { + "name": "ActionbarSwapPage", + "value": 48 + }, + { + "name": "ActionbarPreviousSlot", + "value": 49 + }, + { + "name": "ActionbarNextSlot", + "value": 50 + }, + { + "name": "SongSelectOpen", + "value": 51 + }, + { + "name": "SongSelectPrevious", + "value": 52 + }, + { + "name": "SongSelectNext", + "value": 53 + }, + { + "name": "BuildingRotateLittleClockwise", + "value": 54 + }, + { + "name": "BuildingRotateLittleCounterClockwise", + "value": 55 + }, + { + "name": "BuildingRotateFarClockwise", + "value": 56 + }, + { + "name": "BuildingRotateFarCounterClockwise", + "value": 57 + }, + { + "name": "BuildingUndo", + "value": 58 + }, + { + "name": "BuildingSnapping", + "value": 59 + }, + { + "name": "LockCombatTarget", + "value": 60 + }, + { + "name": "CombatTargetSelectPrevious", + "value": 61 + }, + { + "name": "CombatTargetSelectNext", + "value": 62 + }, + { + "name": "RangedCombatArm", + "value": 63 + }, + { + "name": "RangedCombatShoot", + "value": 64 + }, + { + "name": "Sprint", + "value": 65 + }, + { + "name": "Sneak", + "value": 66 + }, + { + "name": "Sit", + "value": 67 + }, + { + "name": "UiSystemMenu", + "value": 68 + }, + { + "name": "UiInGameMenu", + "value": 69 + }, + { + "name": "UiBackpack", + "value": 70 + }, + { + "name": "UiBuildingMenu", + "value": 71 + }, + { + "name": "UiCharacter", + "value": 72 + }, + { + "name": "UiCrafting", + "value": 73 + }, + { + "name": "UiJournal", + "value": 74 + }, + { + "name": "UiJumpToNotification", + "value": 75 + }, + { + "name": "UiMap", + "value": 76 + }, + { + "name": "UiSkills", + "value": 77 + }, + { + "name": "UiUserFeedback", + "value": 78 + }, + { + "name": "Count", + "value": 79 + } + ] + }, + { + "type_name_1": "ControlOperation", + "type_name_2": "input_mapping.serialize.ControlOperation", + "qualified_name": "keen::input_mapping::serialize::ControlOperation", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3930452553, + "hash2": 1961038295, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::input_mapping::ControlOperationType", + "type_hash": 270102885, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "axis", + "type_name": "keen::input_mapping::AxisDirection", + "type_hash": 3544927107, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "input_mapping.serialize.ControlOperation[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::input_mapping::serialize::ControlOperation", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4097982048, + "hash2": 1511708984, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ControlOperationCombo", + "type_name_2": "input_mapping.serialize.ControlOperationCombo", + "qualified_name": "keen::input_mapping::serialize::ControlOperationCombo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 183363221, + "hash2": 4104442399, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::input_mapping::serialize::ControlOperation", + "type_hash": 3930452553, + "data_offset": 0 + }, + { + "name": "modifiers", + "type_name": "keen::BlobArray", + "type_hash": 4097982048, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KeyboardMouseAction", + "type_name_2": "input_mapping.serialize.KeyboardMouseAction", + "qualified_name": "keen::input_mapping::serialize::KeyboardMouseAction", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1801033631, + "hash2": 194089827, + "struct_fields": [ + { + "name": "primary", + "type_name": "keen::input_mapping::serialize::ControlOperationCombo", + "type_hash": 183363221, + "data_offset": 0 + }, + { + "name": "secondary", + "type_name": "keen::input_mapping::serialize::ControlOperationCombo", + "type_hash": 183363221, + "data_offset": 24 + }, + { + "name": "modality", + "type_name": "keen::input_mapping::InputModality", + "type_hash": 3557742354, + "data_offset": 48 + }, + { + "name": "toggle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GamepadAction", + "type_name_2": "input_mapping.serialize.GamepadAction", + "qualified_name": "keen::input_mapping::serialize::GamepadAction", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2873647992, + "hash2": 194089827, + "struct_fields": [ + { + "name": "primary", + "type_name": "keen::input_mapping::serialize::ControlOperationCombo", + "type_hash": 183363221, + "data_offset": 0 + }, + { + "name": "secondary", + "type_name": "keen::input_mapping::serialize::ControlOperationCombo", + "type_hash": 183363221, + "data_offset": 24 + }, + { + "name": "modality", + "type_name": "keen::input_mapping::InputModality", + "type_hash": 3557742354, + "data_offset": 48 + }, + { + "name": "toggle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionInputBinding", + "type_name_2": "input_mapping.serialize.ActionInputBinding", + "qualified_name": "keen::input_mapping::serialize::ActionInputBinding", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1989267828, + "hash2": 1513990022, + "struct_fields": [ + { + "name": "gameplay", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "keyboardMouse", + "type_name": "keen::input_mapping::serialize::KeyboardMouseAction", + "type_hash": 1801033631, + "data_offset": 8 + }, + { + "name": "gamepad", + "type_name": "keen::input_mapping::serialize::GamepadAction", + "type_hash": 2873647992, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "input_mapping.serialize.ActionInputBinding[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::input_mapping::serialize::ActionInputBinding", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3717523007, + "hash2": 1531562173, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputBindings", + "type_name_2": "input_mapping.serialize.InputBindings", + "qualified_name": "keen::input_mapping::serialize::InputBindings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1742497483, + "hash2": 2920375474, + "struct_fields": [ + { + "name": "customKeyboardMouseBasePresetId", + "type_name": "keen::input_mapping::PresetId", + "type_hash": 2691484697, + "data_offset": 0 + }, + { + "name": "customGamepadBasePresetId", + "type_name": "keen::input_mapping::PresetId", + "type_hash": 2691484697, + "data_offset": 1 + }, + { + "name": "bindings", + "type_name": "keen::BlobArray", + "type_hash": 3717523007, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContextualVector2Context", + "type_name_2": "input_mapping.runtime.ContextualVector2Context", + "qualified_name": "keen::input_mapping::runtime::ContextualVector2Context", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1201056820, + "hash2": 2122830593, + "struct_fields": [], + "enum_fields": [ + { + "name": "PositionDelta", + "value": 0 + }, + { + "name": "Velocity", + "value": 1 + } + ] + }, + { + "type_name_1": "ContextualVector2", + "type_name_2": "input_mapping.runtime.ContextualVector2", + "qualified_name": "keen::input_mapping::runtime::ContextualVector2", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1886972893, + "hash2": 1268272817, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::input_mapping::runtime::ContextualVector2Context", + "type_hash": 1201056820, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionQuery", + "type_name_2": "ecs.InteractionQuery", + "qualified_name": "keen::ecs::InteractionQuery", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 781144643, + "hash2": 1031555002, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "queryRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "queryOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionQuery", + "type_name_2": "ecs.ClientInteractionQuery", + "qualified_name": "keen::ecs::ClientInteractionQuery", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 705437236, + "hash2": 399264633, + "struct_fields": [ + { + "name": "nearestOfferedInteractionOfferId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "specialInteraction", + "type_name": "keen::ecs::SpecialInteraction", + "type_hash": 2473498030, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAcceptData", + "type_name_2": "ecs.InteractionAcceptData", + "qualified_name": "keen::ecs::InteractionAcceptData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1139496953, + "hash2": 2776307671, + "struct_fields": [ + { + "name": "guestId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "usedItem", + "type_name": "keen::InventorySlotId", + "type_hash": 3135000555, + "data_offset": 4 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionOffer", + "type_name_2": "ecs.InteractionOffer", + "qualified_name": "keen::ecs::InteractionOffer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 128, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2945845821, + "hash2": 3657132710, + "struct_fields": [ + { + "name": "defaultAction", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "verbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 16 + }, + { + "name": "lastVerbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 32 + }, + { + "name": "overrideVerbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 48 + }, + { + "name": "overrideSequence", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 64 + }, + { + "name": "lastAttemptData", + "type_name": "keen::ecs::InteractionAcceptData", + "type_hash": 1139496953, + "data_offset": 68 + }, + { + "name": "lastAcceptData", + "type_name": "keen::ecs::InteractionAcceptData", + "type_hash": 1139496953, + "data_offset": 84 + }, + { + "name": "lastAcceptTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "verbId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 116 + }, + { + "name": "isColliderDirty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 120 + }, + { + "name": "isOffered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + }, + { + "name": "reduceInteractionWeight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 122 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionOffer", + "type_name_2": "ecs.ClientInteractionOffer", + "qualified_name": "keen::ecs::ClientInteractionOffer", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2241375622, + "hash2": 290399593, + "struct_fields": [ + { + "name": "verbId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "lastAcceptionId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "isOffered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLockFlag", + "type_name_2": "ecs.InteractionLockFlag", + "qualified_name": "keen::ecs::InteractionLockFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2016716476, + "hash2": 1526333928, + "struct_fields": [], + "enum_fields": [ + { + "name": "Consume", + "value": 0 + }, + { + "name": "DestroyLock", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::InteractionLockFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3112542914, + "hash2": 1066528744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLockMask", + "type_name_2": "ecs.InteractionLockMask", + "qualified_name": "keen::ecs::InteractionLockMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2214466314, + "hash2": 449485960, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLock", + "type_name_2": "ecs.InteractionLock", + "qualified_name": "keen::ecs::InteractionLock", + "referenced_type_name": "keen::ecs::Component", + "class_size": 60, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4221694498, + "hash2": 363642493, + "struct_fields": [ + { + "name": "requiredItemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "requiredItem", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "requiredPermission", + "type_name": "keen::PlayerPermissionsMask", + "type_hash": 914819445, + "data_offset": 20 + }, + { + "name": "lockMask", + "type_name": "keen::ecs::InteractionLockMask", + "type_hash": 2214466314, + "data_offset": 21 + }, + { + "name": "successfulAttempt", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 24 + }, + { + "name": "failedAttempt", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 40 + }, + { + "name": "destroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootRefill", + "type_name_2": "ecs.LootRefill", + "qualified_name": "keen::ecs::LootRefill", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3635816925, + "hash2": 1843111115, + "struct_fields": [ + { + "name": "lootableItemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "refillCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.LootRefill[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::LootRefill", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2309083546, + "hash2": 3119246050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLootRefill", + "type_name_2": "ecs.InteractionLootRefill", + "qualified_name": "keen::ecs::InteractionLootRefill", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2655144451, + "hash2": 1074653016, + "struct_fields": [ + { + "name": "waitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "verbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 8 + }, + { + "name": "defaultSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 24 + }, + { + "name": "items", + "type_name": "keen::BlobArray", + "type_hash": 2309083546, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicInteractionLootRefill", + "type_name_2": "ecs.DynamicInteractionLootRefill", + "qualified_name": "keen::ecs::DynamicInteractionLootRefill", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2286108954, + "hash2": 2761395435, + "struct_fields": [ + { + "name": "nextRefill", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionLock", + "type_name_2": "ecs.ClientInteractionLock", + "qualified_name": "keen::ecs::ClientInteractionLock", + "referenced_type_name": "keen::ecs::Component", + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4095053079, + "hash2": 612795676, + "struct_fields": [ + { + "name": "failedAttempt", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "successfulAttempt", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "requiredItem", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 32 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "requiredPermission", + "type_name": "keen::PlayerPermissionsMask", + "type_hash": 914819445, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionKnowledgeLock", + "type_name_2": "ecs.InteractionKnowledgeLock", + "qualified_name": "keen::ecs::InteractionKnowledgeLock", + "referenced_type_name": "keen::ecs::Component", + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3072305540, + "hash2": 91382055, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::ecs::ToggleModifier", + "type_hash": 2394917594, + "data_offset": 0 + }, + { + "name": "useSpawnKnowledgeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "unlockRequiement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 4 + }, + { + "name": "queryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionToState", + "type_name_2": "ecs.ClientInteractionToState", + "qualified_name": "keen::ecs::ClientInteractionToState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3646622746, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionPause", + "type_name_2": "ecs.InteractionPause", + "qualified_name": "keen::ecs::InteractionPause", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2789688045, + "hash2": 877192313, + "struct_fields": [ + { + "name": "timeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RemoveInteractionOnEmptyInventory", + "type_name_2": "ecs.RemoveInteractionOnEmptyInventory", + "qualified_name": "keen::ecs::RemoveInteractionOnEmptyInventory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2741741143, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DirectionalState", + "type_name_2": "ecs.DirectionalState", + "qualified_name": "keen::ecs::DirectionalState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2422425374, + "hash2": 3299978359, + "struct_fields": [], + "enum_fields": [ + { + "name": "Idle", + "value": 0 + }, + { + "name": "Front", + "value": 1 + }, + { + "name": "Back", + "value": 2 + } + ] + }, + { + "type_name_1": "DirectionalInteractionSetup", + "type_name_2": "ecs.DirectionalInteractionSetup", + "qualified_name": "keen::ecs::DirectionalInteractionSetup", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1037806180, + "hash2": 2684417328, + "struct_fields": [ + { + "name": "backToIdle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "verb", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 4 + }, + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 20 + }, + { + "name": "animationState", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DirectionalInteraction", + "type_name_2": "ecs.DirectionalInteraction", + "qualified_name": "keen::ecs::DirectionalInteraction", + "referenced_type_name": "keen::ecs::Component", + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4058337731, + "hash2": 3017327485, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ecs::DirectionalState", + "type_hash": 2422425374, + "data_offset": 0 + }, + { + "name": "idleState", + "type_name": "keen::ecs::DirectionalInteractionSetup", + "type_hash": 1037806180, + "data_offset": 4 + }, + { + "name": "frontInteraction", + "type_name": "keen::ecs::DirectionalInteractionSetup", + "type_hash": 1037806180, + "data_offset": 56 + }, + { + "name": "backInteraction", + "type_name": "keen::ecs::DirectionalInteractionSetup", + "type_hash": 1037806180, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionToggle", + "type_name_2": "ecs.InteractionToggle", + "qualified_name": "keen::ecs::InteractionToggle", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2910727141, + "hash2": 946387148, + "struct_fields": [ + { + "name": "offToOnVerb", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "offToOnSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + }, + { + "name": "onToOffVerb", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 32 + }, + { + "name": "onToOffSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingInteraction", + "type_name_2": "ecs.CraftingInteraction", + "qualified_name": "keen::ecs::CraftingInteraction", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 304435163, + "hash2": 1962685901, + "struct_fields": [ + { + "name": "craftingPropsInRange", + "type_name": "keen::CraftingPropMask", + "type_hash": 664590845, + "data_offset": 0 + }, + { + "name": "nextRecipeComfortRequirement", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "workshop", + "type_name": "keen::ObjectReference", + "type_hash": 2160258773, + "data_offset": 12 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCraftingInteraction", + "type_name_2": "ecs.ClientCraftingInteraction", + "qualified_name": "keen::ecs::ClientCraftingInteraction", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1540850094, + "hash2": 3678090499, + "struct_fields": [ + { + "name": "craftingPropsInRange", + "type_name": "keen::CraftingPropMask", + "type_hash": 664590845, + "data_offset": 0 + }, + { + "name": "nextRecipeComfortRequirement", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAttachment", + "type_name_2": "ecs.InteractionAttachment", + "qualified_name": "keen::ecs::InteractionAttachment", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3051526984, + "hash2": 3025903335, + "struct_fields": [ + { + "name": "guestOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 0 + }, + { + "name": "lastAttachTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAttachmentGuest", + "type_name_2": "ecs.InteractionAttachmentGuest", + "qualified_name": "keen::ecs::InteractionAttachmentGuest", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1927692952, + "hash2": 1403717288, + "struct_fields": [ + { + "name": "lastHostEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemData", + "type_name_2": "ItemData", + "qualified_name": "keen::ItemData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2164668677, + "hash2": 1963363675, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "pide", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemStack", + "type_name_2": "ItemStack", + "qualified_name": "keen::ItemStack", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 906108383, + "hash2": 2788712062, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::ItemData", + "type_hash": 2164668677, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryDirectory", + "type_name_2": "ecs.DefaultInventoryDirectory", + "qualified_name": "keen::ecs::DefaultInventoryDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3517540191, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryEntry", + "type_name_2": "ecs.DefaultInventoryEntry", + "qualified_name": "keen::ecs::DefaultInventoryEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1881078712, + "hash2": 2303639367, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomDefaultInventoryEntry", + "type_name_2": "ecs.RandomDefaultInventoryEntry", + "qualified_name": "keen::ecs::RandomDefaultInventoryEntry", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1614413641, + "hash2": 2220516528, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "countMin", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "countMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "spawnProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeightedDefaultInventoryEntry", + "type_name_2": "ecs.WeightedDefaultInventoryEntry", + "qualified_name": "keen::ecs::WeightedDefaultInventoryEntry", + "referenced_type_name": "keen::ecs::RandomDefaultInventoryEntry", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 723751615, + "hash2": 829156039, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomDefaultInventoryEntrySelector", + "type_name_2": "ecs.RandomDefaultInventoryEntrySelector", + "qualified_name": "keen::ecs::RandomDefaultInventoryEntrySelector", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3420769400, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventorySetup", + "type_name_2": "ecs.DefaultInventorySetup", + "qualified_name": "keen::ecs::DefaultInventorySetup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2032927777, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemStackInfoResource", + "type_name_2": "ecs.ItemStackInfoResource", + "qualified_name": "keen::ecs::ItemStackInfoResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2349796312, + "hash2": 3821123618, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "countMin", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "countMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "spawnProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemStackInfoResourceWeighted", + "type_name_2": "ecs.ItemStackInfoResourceWeighted", + "qualified_name": "keen::ecs::ItemStackInfoResourceWeighted", + "referenced_type_name": "keen::ecs::ItemStackInfoResource", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 647693113, + "hash2": 3910001217, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ItemStackInfoResourceWeighted[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ItemStackInfoResourceWeighted", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 270017008, + "hash2": 3574427371, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryEntrySelectorResource", + "type_name_2": "ecs.DefaultInventoryEntrySelectorResource", + "qualified_name": "keen::ecs::DefaultInventoryEntrySelectorResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1174123757, + "hash2": 4152593065, + "struct_fields": [ + { + "name": "selectionCandidates", + "type_name": "keen::BlobArray", + "type_hash": 270017008, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ItemStackInfoResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ItemStackInfoResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2419177367, + "hash2": 2088451724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.DefaultInventoryEntrySelectorResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::DefaultInventoryEntrySelectorResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1858924208, + "hash2": 981008110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryResource", + "type_name_2": "ecs.DefaultInventoryResource", + "qualified_name": "keen::ecs::DefaultInventoryResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1051835464, + "hash2": 3749226911, + "struct_fields": [ + { + "name": "stacks", + "type_name": "keen::BlobArray", + "type_hash": 2419177367, + "data_offset": 0 + }, + { + "name": "stackSelectors", + "type_name": "keen::BlobArray", + "type_hash": 1858924208, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventory", + "type_name_2": "ecs.DefaultInventory", + "qualified_name": "keen::ecs::DefaultInventory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 871794740, + "hash2": 3753414331, + "struct_fields": [ + { + "name": "defaultInventory", + "type_name": "keen::ecs::DefaultInventoryReference", + "type_hash": 685009001, + "data_offset": 0 + }, + { + "name": "keepOnRandomLoot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "applied", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryOverrides", + "type_name_2": "ecs.DefaultInventoryOverrides", + "qualified_name": "keen::ecs::DefaultInventoryOverrides", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3179187485, + "hash2": 2685879474, + "struct_fields": [ + { + "name": "slot1", + "type_name": "keen::ecs::DefaultInventoryReference", + "type_hash": 685009001, + "data_offset": 0 + }, + { + "name": "slot2", + "type_name": "keen::ecs::DefaultInventoryReference", + "type_hash": 685009001, + "data_offset": 16 + }, + { + "name": "slot3", + "type_name": "keen::ecs::DefaultInventoryReference", + "type_hash": 685009001, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AffectedByIncreasedPickupSkill", + "type_name_2": "ecs.AffectedByIncreasedPickupSkill", + "qualified_name": "keen::ecs::AffectedByIncreasedPickupSkill", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2828527759, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AdditionalMaterialLoot", + "type_name_2": "ecs.AdditionalMaterialLoot", + "qualified_name": "keen::ecs::AdditionalMaterialLoot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2731517333, + "hash2": 3131221123, + "struct_fields": [ + { + "name": "additionalItemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryLink", + "type_name_2": "ecs.InventoryLink", + "qualified_name": "keen::ecs::InventoryLink", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2988237149, + "hash2": 1851486631, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "category", + "type_name": "keen::InventoryCategory", + "type_hash": 412881770, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryFlags", + "type_name_2": "ecs.InventoryFlags", + "qualified_name": "keen::ecs::InventoryFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1519814400, + "hash2": 1236855047, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsPlayer", + "value": 0 + }, + { + "name": "IsNpc", + "value": 1 + }, + { + "name": "ShowContentPreview", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::InventoryFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 847161918, + "hash2": 502716299, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventorySetupMask", + "type_name_2": "ecs.InventorySetupMask", + "qualified_name": "keen::ecs::InventorySetupMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1125050610, + "hash2": 3772742395, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "InventoryCategory[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::InventoryCategory", + "class_size": 16, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1875798411, + "hash2": 1363279146, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventorySetup", + "type_name_2": "ecs.InventorySetup", + "qualified_name": "keen::ecs::InventorySetup", + "referenced_type_name": "keen::ecs::Component", + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3259889706, + "hash2": 1580479439, + "struct_fields": [ + { + "name": "linksEntities", + "type_name": "keen::StaticArray", + "type_hash": 4122265852, + "data_offset": 0 + }, + { + "name": "linksCategories", + "type_name": "keen::StaticArray", + "type_hash": 1875798411, + "data_offset": 64 + }, + { + "name": "inventoryFlags", + "type_name": "keen::ecs::InventorySetupMask", + "type_hash": 1125050610, + "data_offset": 80 + }, + { + "name": "genericSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 81 + }, + { + "name": "availableSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 82 + }, + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 83 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventorySetupInit", + "type_name_2": "ecs.InventorySetupInit", + "qualified_name": "keen::ecs::InventorySetupInit", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3031260864, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ItemStack[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ItemStack", + "class_size": 96, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3699208945, + "hash2": 4095797734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Inventory", + "type_name_2": "ecs.Inventory", + "qualified_name": "keen::ecs::Inventory", + "referenced_type_name": "keen::ecs::Component", + "class_size": 96, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2979342505, + "hash2": 2126148498, + "struct_fields": [ + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 3699208945, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryCraftingStock", + "type_name_2": "ecs.InventoryCraftingStock", + "qualified_name": "keen::ecs::InventoryCraftingStock", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3826912543, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResourceNodeDropInfo", + "type_name_2": "ecs.ResourceNodeDropInfo", + "qualified_name": "keen::ecs::ResourceNodeDropInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2737722338, + "hash2": 28510843, + "struct_fields": [ + { + "name": "entity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 16 + }, + { + "name": "stackAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 32 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.ResourceNodeDropInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::ResourceNodeDropInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4026316755, + "hash2": 2066896611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResourceNodePickupDrops", + "type_name_2": "ecs.ResourceNodePickupDrops", + "qualified_name": "keen::ecs::ResourceNodePickupDrops", + "referenced_type_name": "keen::ecs::Component", + "class_size": 60, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3384934003, + "hash2": 1071334309, + "struct_fields": [ + { + "name": "pickupItemReference", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "drops", + "type_name": "keen::BlobArray", + "type_hash": 4026316755, + "data_offset": 16 + }, + { + "name": "numberOfDrops", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "dropWhileAlivePercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "dropInWorld", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "yOffsetMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "yOffsetMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "dropRadiusMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "dropRadiusMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "velocityMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "velocityMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MiningNodeKnowledge", + "type_name_2": "ecs.MiningNodeKnowledge", + "qualified_name": "keen::ecs::MiningNodeKnowledge", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3295060589, + "hash2": 757138893, + "struct_fields": [ + { + "name": "useSpawnTriggerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "knowledgeNode", + "type_name": "keen::ObjectReference", + "type_hash": 3719821963, + "data_offset": 4 + }, + { + "name": "unlockForGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupItem", + "type_name_2": "ecs.PickupItem", + "qualified_name": "keen::ecs::PickupItem", + "referenced_type_name": "keen::ecs::Component", + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 142039696, + "hash2": 1061791708, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 4 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "rarity", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 24 + }, + { + "name": "pickupAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 26 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupItemModelSetup", + "type_name_2": "ecs.PickupItemModelSetup", + "qualified_name": "keen::ecs::PickupItemModelSetup", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3128851102, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DestroyOnLoot", + "type_name_2": "ecs.DestroyOnLoot", + "qualified_name": "keen::ecs::DestroyOnLoot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 104, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1633187628, + "hash2": 3587286325, + "struct_fields": [ + { + "name": "despawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "vfxOnDestroy", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 24 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "shouldDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 68 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyOnLootActivated", + "type_name_2": "ecs.DestroyOnLootActivated", + "qualified_name": "keen::ecs::DestroyOnLootActivated", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1381129131, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AddDestructibleOnLoot", + "type_name_2": "ecs.AddDestructibleOnLoot", + "qualified_name": "keen::ecs::AddDestructibleOnLoot", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2351768027, + "hash2": 3178015770, + "struct_fields": [ + { + "name": "health", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCategory", + "type_name_2": "ItemCategory", + "qualified_name": "keen::ItemCategory", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 14, + "primitive_type": "Enum", + "hash1": 2660841681, + "hash2": 3602882354, + "struct_fields": [], + "enum_fields": [ + { + "name": "Customization", + "value": 0 + }, + { + "name": "Equipment", + "value": 1 + }, + { + "name": "Weapons", + "value": 2 + }, + { + "name": "Tools", + "value": 3 + }, + { + "name": "Instrument", + "value": 4 + }, + { + "name": "BuildTools", + "value": 5 + }, + { + "name": "Consumables", + "value": 6 + }, + { + "name": "Ammunition", + "value": 7 + }, + { + "name": "Materials", + "value": 8 + }, + { + "name": "Blueprints", + "value": 9 + }, + { + "name": "Currency", + "value": 10 + }, + { + "name": "Collectibles", + "value": 11 + }, + { + "name": "AnimalFood", + "value": 12 + }, + { + "name": "PetFood", + "value": 13 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ItemCategory", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 3967071896, + "hash2": 2735747751, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCategoryMask", + "type_name_2": "ItemCategoryMask", + "qualified_name": "keen::ItemCategoryMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 650410285, + "hash2": 4085820068, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CrosshairType", + "type_name_2": "CrosshairType", + "qualified_name": "keen::CrosshairType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 499970590, + "hash2": 2042172660, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Bow", + "value": 1 + }, + { + "name": "Wand", + "value": 2 + }, + { + "name": "Staff_Directional", + "value": 3 + }, + { + "name": "Staff_Area", + "value": 4 + }, + { + "name": "Building", + "value": 5 + }, + { + "name": "Terraforming", + "value": 6 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ItemRarity", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2284331208, + "hash2": 2653426218, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemRarityMask", + "type_name_2": "ItemRarityMask", + "qualified_name": "keen::ItemRarityMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1803046066, + "hash2": 246638737, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemFlag", + "type_name_2": "ItemFlag", + "qualified_name": "keen::ItemFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 12, + "primitive_type": "Enum", + "hash1": 2144094007, + "hash2": 2758138531, + "struct_fields": [], + "enum_fields": [ + { + "name": "HasKnowledgeUnlocks", + "value": 0 + }, + { + "name": "HasPIDE", + "value": 1 + }, + { + "name": "IsContainer", + "value": 2 + }, + { + "name": "IsBlueprint", + "value": 3 + }, + { + "name": "IsTerraformer", + "value": 4 + }, + { + "name": "IsNpc", + "value": 5 + }, + { + "name": "IsCookable", + "value": 6 + }, + { + "name": "IsAnimal", + "value": 7 + }, + { + "name": "IsAnimalBait", + "value": 8 + }, + { + "name": "CanTriggerCooking", + "value": 9 + }, + { + "name": "TwitchDrop", + "value": 10 + }, + { + "name": "CommerceItem", + "value": 11 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ItemFlag", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 3125012906, + "hash2": 672303367, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemFlags", + "type_name_2": "ItemFlags", + "qualified_name": "keen::ItemFlags", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1922314252, + "hash2": 3835014297, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTag", + "type_name_2": "ItemTag", + "qualified_name": "keen::ItemTag", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1285420659, + "hash2": 1543921876, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 628940796, + "hash2": 83209510, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagReference", + "type_name_2": "ItemTagReference", + "qualified_name": "keen::ItemTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1501213304, + "hash2": 4047737544, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagWeight", + "type_name_2": "ItemTagWeight", + "qualified_name": "keen::ItemTagWeight", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4244332431, + "hash2": 2519145853, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ItemTagReference", + "type_hash": 1501213304, + "data_offset": 0 + }, + { + "name": "nominator", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "denominator", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagInfo", + "type_name_2": "ItemTagInfo", + "qualified_name": "keen::ItemTagInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1757010343, + "hash2": 933973212, + "struct_fields": [ + { + "name": "tagGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "labelId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemTagInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemTagInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3490068520, + "hash2": 2518199455, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagInfoList", + "type_name_2": "ItemTagInfoList", + "qualified_name": "keen::ItemTagInfoList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2097629583, + "hash2": 1964633981, + "struct_fields": [ + { + "name": "itemTags", + "type_name": "keen::BlobArray", + "type_hash": 3490068520, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnappingToggleMode", + "type_name_2": "SnappingToggleMode", + "qualified_name": "keen::SnappingToggleMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3517421609, + "hash2": 110819448, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "VoxelGrid", + "value": 1 + }, + { + "name": "SnappingBoxes", + "value": 2 + } + ] + }, + { + "type_name_1": "ChangeVoxelData", + "type_name_2": "ChangeVoxelData", + "qualified_name": "keen::ChangeVoxelData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 570416730, + "hash2": 3932715936, + "struct_fields": [ + { + "name": "isBuildingVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "placeVoxelMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 4 + }, + { + "name": "placeVoxelMaterialId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraDistance", + "type_name_2": "CameraDistance", + "qualified_name": "keen::CameraDistance", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4063780578, + "hash2": 4272870037, + "struct_fields": [], + "enum_fields": [ + { + "name": "Near", + "value": 0 + }, + { + "name": "Medium", + "value": 1 + }, + { + "name": "Far", + "value": 2 + } + ] + }, + { + "type_name_1": "CameraDistanceOverride", + "type_name_2": "CameraDistanceOverride", + "qualified_name": "keen::CameraDistanceOverride", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1146894330, + "hash2": 2901687749, + "struct_fields": [ + { + "name": "distance", + "type_name": "keen::CameraDistance", + "type_hash": 4063780578, + "data_offset": 0 + }, + { + "name": "override", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingCameraMode", + "type_name_2": "BuildingCameraMode", + "qualified_name": "keen::BuildingCameraMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3936857166, + "hash2": 99279822, + "struct_fields": [], + "enum_fields": [ + { + "name": "Orbit", + "value": 0 + }, + { + "name": "Free", + "value": 1 + }, + { + "name": "FreeHorizontalWhileUsing", + "value": 2 + } + ] + }, + { + "type_name_1": "CursorFxConfig", + "type_name_2": "CursorFxConfig", + "qualified_name": "keen::CursorFxConfig", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3370146212, + "hash2": 3146016716, + "struct_fields": [ + { + "name": "loopedSfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "oneShotSfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "oneShotVfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 32 + }, + { + "name": "oneShotVfxOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 48 + }, + { + "name": "vfxParameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 88 + }, + { + "name": "vfxParameterOffset_boundingBoxMin", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 152 + }, + { + "name": "vfxParameterOffset_boundingBoxMax", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GliderConfig", + "type_name_2": "GliderConfig", + "qualified_name": "keen::GliderConfig", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 747702173, + "hash2": 2008445781, + "struct_fields": [ + { + "name": "accelerationForward", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "airResistanceLongitudinal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "airResistanceLateral", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "airResistanceVertical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "yawAngleSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "pitchAngleSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rollAngleSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryStockType", + "type_name_2": "InventoryStockType", + "qualified_name": "keen::InventoryStockType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 4294490540, + "hash2": 2534410690, + "struct_fields": [], + "enum_fields": [ + { + "name": "Arrow", + "value": 0 + }, + { + "name": "Spell", + "value": 1 + }, + { + "name": "TerrainMaterial", + "value": 2 + }, + { + "name": "BlueprintMaterial_Default", + "value": 3 + }, + { + "name": "BlueprintMaterial_Roof", + "value": 4 + }, + { + "name": "Count", + "value": 5 + } + ] + }, + { + "type_name_1": "AttachDirection", + "type_name_2": "AttachDirection", + "qualified_name": "keen::AttachDirection", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1399692248, + "hash2": 1188690876, + "struct_fields": [], + "enum_fields": [ + { + "name": "Floor", + "value": 0 + }, + { + "name": "Wall", + "value": 1 + }, + { + "name": "Ceiling", + "value": 2 + } + ] + }, + { + "type_name_1": "AttachAngleRange", + "type_name_2": "AttachAngleRange", + "qualified_name": "keen::AttachAngleRange", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1118780131, + "hash2": 1540763199, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Narrow", + "value": 1 + }, + { + "name": "Wide", + "value": 2 + } + ] + }, + { + "type_name_1": "AttachAngleConfig", + "type_name_2": "AttachAngleConfig", + "qualified_name": "keen::AttachAngleConfig", + "referenced_type_name": null, + "class_size": 7, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 241560016, + "hash2": 1994793223, + "struct_fields": [ + { + "name": "ceilingAngle", + "type_name": "keen::AttachAngleRange", + "type_hash": 1118780131, + "data_offset": 0 + }, + { + "name": "wallAngle", + "type_name": "keen::AttachAngleRange", + "type_hash": 1118780131, + "data_offset": 1 + }, + { + "name": "floorAngle", + "type_name": "keen::AttachAngleRange", + "type_hash": 1118780131, + "data_offset": 2 + }, + { + "name": "defaultAttachDirection", + "type_name": "keen::AttachDirection", + "type_hash": 1399692248, + "data_offset": 3 + }, + { + "name": "secondaryAttachDirection", + "type_name": "keen::AttachDirection", + "type_hash": 1399692248, + "data_offset": 4 + }, + { + "name": "hasSecondaryAttachDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "forceUprightNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRequirement", + "type_name_2": "VoxelRequirement", + "qualified_name": "keen::VoxelRequirement", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 725273353, + "hash2": 3060685303, + "struct_fields": [ + { + "name": "soil", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 0 + }, + { + "name": "soilMaterialId", + "type_name": "keen::VoxelMaterialId", + "type_hash": 63742278, + "data_offset": 16 + }, + { + "name": "factor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRequirementInfo", + "type_name_2": "VoxelRequirementInfo", + "qualified_name": "keen::VoxelRequirementInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2345280849, + "hash2": 1658999915, + "struct_fields": [ + { + "name": "requirements", + "type_name": "keen::BlobArray", + "type_hash": 463919364, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CursorActionConfig", + "type_name_2": "CursorActionConfig", + "qualified_name": "keen::CursorActionConfig", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3138663024, + "hash2": 2674655684, + "struct_fields": [ + { + "name": "snapPositionToAddableVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "snapPositionToRemovableVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CursorConfig", + "type_name_2": "CursorConfig", + "qualified_name": "keen::CursorConfig", + "referenced_type_name": null, + "class_size": 444, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 1065247826, + "hash2": 1935060870, + "struct_fields": [ + { + "name": "customCursorEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "autoCenterPivot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "pivotOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "allowSnapToSnappingBoxes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "forceSnapPositionToVoxelGrid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "snapOrientationToVoxelGrid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 34 + }, + { + "name": "snapToCenterWhenSmallerThanVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 35 + }, + { + "name": "smoothOutTerrainNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "alwaysFacePlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "addRandomYawAngleOffset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 38 + }, + { + "name": "primaryActionConfig", + "type_name": "keen::CursorActionConfig", + "type_hash": 3138663024, + "data_offset": 39 + }, + { + "name": "attachAngleConfig", + "type_name": "keen::AttachAngleConfig", + "type_hash": 241560016, + "data_offset": 41 + }, + { + "name": "checkRequiredMaterialsOnPrimaryAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "secondaryActionConfig", + "type_name": "keen::CursorActionConfig", + "type_hash": 3138663024, + "data_offset": 49 + }, + { + "name": "attachAngleConfigSecondary", + "type_name": "keen::AttachAngleConfig", + "type_hash": 241560016, + "data_offset": 51 + }, + { + "name": "checkRequiredMaterialsOnSecondaryAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 58 + }, + { + "name": "useSphereCast", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 59 + }, + { + "name": "keepSnappedToPlane", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "checkBuildZoneEnemies", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "checkSurfaceTopology", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "allowedVoxels", + "type_name": "keen::BlobArray", + "type_hash": 463919364, + "data_offset": 64 + }, + { + "name": "highlightHoveredEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + }, + { + "name": "showVoxelBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "addFxConfig", + "type_name": "keen::CursorFxConfig", + "type_hash": 3370146212, + "data_offset": 76 + }, + { + "name": "subFxConfig", + "type_name": "keen::CursorFxConfig", + "type_hash": 3370146212, + "data_offset": 236 + }, + { + "name": "defaultCursorStaticModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 396 + }, + { + "name": "defaultCursorSkinnedModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 412 + }, + { + "name": "defaultCursorVfx", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 428 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelSnappingConfigOld", + "type_name_2": "VoxelSnappingConfigOld", + "qualified_name": "keen::VoxelSnappingConfigOld", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1506844809, + "hash2": 1234964739, + "struct_fields": [ + { + "name": "snapBoxOffsetMin", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "snapBoxOffsetMax", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + }, + { + "name": "basementHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentModel", + "type_name_2": "EquipmentModel", + "qualified_name": "keen::EquipmentModel", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4092042763, + "hash2": 4253020177, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::BlendShapeMask", + "type_hash": 3366010678, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceRequirments", + "type_name_2": "SequenceRequirments", + "qualified_name": "keen::SequenceRequirments", + "referenced_type_name": "keen::uint16", + "class_size": 2, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1964078140, + "hash2": 169005429, + "struct_fields": [], + "enum_fields": [ + { + "name": "Combat_Target", + "value": 0 + }, + { + "name": "Combat_Target_Static", + "value": 1 + }, + { + "name": "Combat_Target_Not_Static", + "value": 2 + }, + { + "name": "IsAboveTarget", + "value": 3 + }, + { + "name": "IsEvading", + "value": 4 + }, + { + "name": "IsAirborne", + "value": 5 + }, + { + "name": "HasNpcTarget", + "value": 6 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::SequenceRequirments", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 2631196489, + "hash2": 2329451189, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceRequirmentMask", + "type_name_2": "SequenceRequirmentMask", + "qualified_name": "keen::SequenceRequirmentMask", + "referenced_type_name": "keen::Bitmask16", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2577498051, + "hash2": 1713743500, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerType", + "type_name_2": "KnowledgeTriggerType", + "qualified_name": "keen::KnowledgeTriggerType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 596899026, + "hash2": 2120991863, + "struct_fields": [], + "enum_fields": [ + { + "name": "World", + "value": 0 + }, + { + "name": "Player", + "value": 1 + }, + { + "name": "Item", + "value": 2 + } + ] + }, + { + "type_name_1": "GameKnowledgeTrigger", + "type_name_2": "GameKnowledgeTrigger", + "qualified_name": "keen::GameKnowledgeTrigger", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 73380980, + "hash2": 1886618396, + "struct_fields": [ + { + "name": "triggerType", + "type_name": "keen::KnowledgeTriggerType", + "type_hash": 596899026, + "data_offset": 0 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 1672737556, + "data_offset": 4 + }, + { + "name": "playerKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 3719821963, + "data_offset": 20 + }, + { + "name": "itemKnowledge", + "type_name": "keen::ItemKnowledgeTrigger", + "type_hash": 416233877, + "data_offset": 36 + }, + { + "name": "useWorldItemKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemSequence", + "type_name_2": "ItemSequence", + "qualified_name": "keen::ItemSequence", + "referenced_type_name": null, + "class_size": 148, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2036321224, + "hash2": 1715950630, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::actor::SequenceResourceId", + "type_hash": 3855998483, + "data_offset": 0 + }, + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 4 + }, + { + "name": "triggeredBy", + "type_name": "keen::actor::ActionSequenceTrigger", + "type_hash": 4018170100, + "data_offset": 20 + }, + { + "name": "requirements", + "type_name": "keen::SequenceRequirmentMask", + "type_hash": 2577498051, + "data_offset": 22 + }, + { + "name": "requiredSkill", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 24 + }, + { + "name": "specialInteractionType", + "type_name": "keen::ecs::SpecialInteraction", + "type_hash": 2473498030, + "data_offset": 40 + }, + { + "name": "costOverride", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 44 + }, + { + "name": "triggerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "knowledgeTrigger", + "type_name": "keen::GameKnowledgeTrigger", + "type_hash": 73380980, + "data_offset": 64 + }, + { + "name": "triggerKnowledgeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 120 + }, + { + "name": "sequenceEntityTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 124 + }, + { + "name": "combinedEntityTags", + "type_name": "keen::BlobArray", + "type_hash": 1303084930, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiActionHints", + "type_name_2": "UiActionHints", + "qualified_name": "keen::UiActionHints", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 585023692, + "hash2": 232068395, + "struct_fields": [ + { + "name": "primaryAction", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "secondaryAction", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 16 + }, + { + "name": "tertiaryAction", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 32 + }, + { + "name": "tertiaryGameplayAction", + "type_name": "keen::input_mapping::runtime::GameplayAction", + "type_hash": 2570175215, + "data_offset": 48 + }, + { + "name": "alwaysShow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RecipeItemStackResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RecipeItemStackResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3717410430, + "hash2": 522564497, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::TerrainVoxelObjectDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 516747230, + "hash2": 2976132562, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelBlueprintConfig", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 286954482, + "hash2": 1462173653, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelBlueprintMaterialPool", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1690445613, + "hash2": 2293968976, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "EquipmentModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::EquipmentModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4111073854, + "hash2": 1925229982, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentSetup", + "type_name_2": "EquipmentSetup", + "qualified_name": "keen::EquipmentSetup", + "referenced_type_name": null, + "class_size": 904, + "fields_count": 47, + "primitive_type": "Struct", + "hash1": 3160588027, + "hash2": 1344124073, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::EquipmentSlotType", + "type_hash": 723518746, + "data_offset": 0 + }, + { + "name": "repeatActionWhenPressed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "itemSequencesEntityTag", + "type_name": "keen::ecs::EntityTagReference", + "type_hash": 663489085, + "data_offset": 4 + }, + { + "name": "blendShapeMask", + "type_name": "keen::BlendShapeMask", + "type_hash": 3366010678, + "data_offset": 20 + }, + { + "name": "hideMask", + "type_name": "keen::VisualEquipmentMask", + "type_hash": 185284386, + "data_offset": 24 + }, + { + "name": "disableMask", + "type_name": "keen::ImpactEquipmentMask", + "type_hash": 222211324, + "data_offset": 28 + }, + { + "name": "impactEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 32 + }, + { + "name": "program", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 48 + }, + { + "name": "visualEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 64 + }, + { + "name": "visualModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 80 + }, + { + "name": "primaryAnimationSet", + "type_name": "keen::PrimaryAnimationSet", + "type_hash": 412986446, + "data_offset": 96 + }, + { + "name": "secondaryAnimationSet", + "type_name": "keen::SecondaryAnimationSet", + "type_hash": 2488496510, + "data_offset": 97 + }, + { + "name": "crosshairType", + "type_name": "keen::CrosshairType", + "type_hash": 499970590, + "data_offset": 98 + }, + { + "name": "cursorConfig", + "type_name": "keen::CursorConfig", + "type_hash": 1065247826, + "data_offset": 100 + }, + { + "name": "cursorModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 544 + }, + { + "name": "cursorSkinnedModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 560 + }, + { + "name": "cursorVfx", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 576 + }, + { + "name": "cameraDistanceOverride", + "type_name": "keen::CameraDistanceOverride", + "type_hash": 1146894330, + "data_offset": 592 + }, + { + "name": "buildingCameraMode", + "type_name": "keen::BuildingCameraMode", + "type_hash": 3936857166, + "data_offset": 594 + }, + { + "name": "defaultVerticalPlacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 596 + }, + { + "name": "maxTiltAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 600 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 604 + }, + { + "name": "placedEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 608 + }, + { + "name": "placementAABBmin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 624 + }, + { + "name": "placementAABBmax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 636 + }, + { + "name": "snappingAABBmin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 648 + }, + { + "name": "snappingAABBmax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 660 + }, + { + "name": "placementColliders", + "type_name": "keen::BlobArray", + "type_hash": 2814907092, + "data_offset": 672 + }, + { + "name": "placementNoBuildZones", + "type_name": "keen::ecs::TriggerShapes", + "type_hash": 274548267, + "data_offset": 680 + }, + { + "name": "appliedBuff", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 688 + }, + { + "name": "appliedDebuff", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 704 + }, + { + "name": "allowPlacementBelowFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 720 + }, + { + "name": "checkInhibitBuild", + "type_name": "keen::InhibitBuildingCheck", + "type_hash": 4201156499, + "data_offset": 721 + }, + { + "name": "buildZoneRequired", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 722 + }, + { + "name": "requiresAltarSlot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 723 + }, + { + "name": "requiredCraftingIngredients", + "type_name": "keen::BlobArray", + "type_hash": 3717410430, + "data_offset": 724 + }, + { + "name": "placedEntityLocalSpawnVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 732 + }, + { + "name": "voxelData", + "type_name": "keen::ChangeVoxelData", + "type_hash": 570416730, + "data_offset": 744 + }, + { + "name": "voxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 3707186949, + "data_offset": 768 + }, + { + "name": "terrainVoxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 516747230, + "data_offset": 784 + }, + { + "name": "voxelSnappingConfig", + "type_name": "keen::VoxelSnappingConfigOld", + "type_hash": 1506844809, + "data_offset": 800 + }, + { + "name": "voxelBlueprintConfig", + "type_name": "keen::ObjectReference", + "type_hash": 286954482, + "data_offset": 828 + }, + { + "name": "voxelBlueprintMaterialPool", + "type_name": "keen::ObjectReference", + "type_hash": 1690445613, + "data_offset": 844 + }, + { + "name": "voxelObjectMaterialOverride", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 860 + }, + { + "name": "visualModels", + "type_name": "keen::BlobArray", + "type_hash": 4111073854, + "data_offset": 864 + }, + { + "name": "gliderConfig", + "type_name": "keen::GliderConfig", + "type_hash": 747702173, + "data_offset": 872 + }, + { + "name": "terraformingType", + "type_name": "keen::TerraformingType", + "type_hash": 3855488802, + "data_offset": 900 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ItemKnowledgeTrigger", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3166332613, + "hash2": 3670672254, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeTriggerMask", + "type_name_2": "ItemKnowledgeTriggerMask", + "qualified_name": "keen::ItemKnowledgeTriggerMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 878314361, + "hash2": 1139129683, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeBase", + "type_name_2": "ItemKnowledgeBase", + "qualified_name": "keen::ItemKnowledgeBase", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2843131606, + "hash2": 1980502583, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::ItemKnowledgeTriggerMask", + "type_hash": 878314361, + "data_offset": 0 + }, + { + "name": "triggerTag", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeName", + "type_name_2": "ItemKnowledgeName", + "qualified_name": "keen::ItemKnowledgeName", + "referenced_type_name": "keen::ItemKnowledgeBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2232931600, + "hash2": 475257229, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeDescription", + "type_name_2": "ItemKnowledgeDescription", + "qualified_name": "keen::ItemKnowledgeDescription", + "referenced_type_name": "keen::ItemKnowledgeBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 896217743, + "hash2": 475257229, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::DescriptionLocaTag", + "type_hash": 1719653355, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeLore", + "type_name_2": "ItemKnowledgeLore", + "qualified_name": "keen::ItemKnowledgeLore", + "referenced_type_name": "keen::ItemKnowledgeBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3637497587, + "hash2": 475257229, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::LoreLocaTag", + "type_hash": 2405621525, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeRecipe", + "type_name_2": "ItemKnowledgeRecipe", + "qualified_name": "keen::ItemKnowledgeRecipe", + "referenced_type_name": "keen::ItemKnowledgeBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2103329301, + "hash2": 3297494060, + "struct_fields": [ + { + "name": "unused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemLevelRange", + "type_name_2": "ItemLevelRange", + "qualified_name": "keen::ItemLevelRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1469247018, + "hash2": 3800103808, + "struct_fields": [ + { + "name": "minLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StackSizeRange", + "type_name_2": "StackSizeRange", + "qualified_name": "keen::StackSizeRange", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3622242444, + "hash2": 2843211564, + "struct_fields": [ + { + "name": "minStackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "maxStackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCommerceLink", + "type_name_2": "ItemCommerceLink", + "qualified_name": "keen::ItemCommerceLink", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1701399258, + "hash2": 2596536665, + "struct_fields": [ + { + "name": "product", + "type_name": "keen::CommerceProductReference", + "type_hash": 4130562029, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::CommerceProductId", + "type_hash": 1458987789, + "data_offset": 16 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemDamageSetup", + "type_name_2": "ItemDamageSetup", + "qualified_name": "keen::ItemDamageSetup", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 789855453, + "hash2": 1498782459, + "struct_fields": [ + { + "name": "speedMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "dmgMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "distribution", + "type_name": "keen::impact::DamageDistribution", + "type_hash": 3046348591, + "data_offset": 8 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemPermissionSetup", + "type_name_2": "ItemPermissionSetup", + "qualified_name": "keen::ItemPermissionSetup", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4275158767, + "hash2": 4267064639, + "struct_fields": [ + { + "name": "permissions", + "type_name": "keen::PlayerPermissionsMask", + "type_hash": 914819445, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemArmorSetup", + "type_name_2": "ItemArmorSetup", + "qualified_name": "keen::ItemArmorSetup", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1295216289, + "hash2": 625171468, + "struct_fields": [ + { + "name": "distribution", + "type_name": "keen::impact::ArmorDistribution", + "type_hash": 4245569545, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemBlockSetup", + "type_name_2": "ItemBlockSetup", + "qualified_name": "keen::ItemBlockSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 806506895, + "hash2": 2420676920, + "struct_fields": [ + { + "name": "quality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemScaledCostSetup", + "type_name_2": "ItemScaledCostSetup", + "qualified_name": "keen::ItemScaledCostSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2260768195, + "hash2": 1808142628, + "struct_fields": [ + { + "name": "staminaMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemFuelData", + "type_name_2": "ItemFuelData", + "qualified_name": "keen::ItemFuelData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4185132653, + "hash2": 38020804, + "struct_fields": [ + { + "name": "burnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "energyOutput", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemColorCombination", + "type_name_2": "ItemColorCombination", + "qualified_name": "keen::ItemColorCombination", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2890149103, + "hash2": 3367381986, + "struct_fields": [ + { + "name": "combination", + "type_name": "keen::ColorCombinationReference", + "type_hash": 3144042481, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemComfortSetup", + "type_name_2": "ItemComfortSetup", + "qualified_name": "keen::ItemComfortSetup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3691764372, + "hash2": 4112968792, + "struct_fields": [ + { + "name": "comfortAmount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemInfoExposure", + "type_name_2": "ItemInfoExposure", + "qualified_name": "keen::ItemInfoExposure", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3408525056, + "hash2": 987936497, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemClassAlignmentType", + "type_name_2": "ItemClassAlignmentType", + "qualified_name": "keen::ItemClassAlignmentType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 864255840, + "hash2": 1112634331, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Warrior", + "value": 1 + }, + { + "name": "Mage", + "value": 2 + }, + { + "name": "Ranger", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask16", + "type_name_2": "Bitmask16", + "qualified_name": "keen::Bitmask16", + "referenced_type_name": "keen::ItemKnowledgeTrigger", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Bitmask16", + "hash1": 2049337084, + "hash2": 3141293397, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Perk", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3817266469, + "hash2": 2104576164, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkReference", + "type_name_2": "PerkReference", + "qualified_name": "keen::PerkReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1604568719, + "hash2": 4268045850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemCollectionId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemCollectionId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1242752519, + "hash2": 2309038405, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionInfo", + "type_name_2": "ItemCollectionInfo", + "qualified_name": "keen::ItemCollectionInfo", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2094115369, + "hash2": 1556568407, + "struct_fields": [ + { + "name": "isOverrideModelSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "overrideModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 4 + }, + { + "name": "overrideModelOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 20 + }, + { + "name": "categories", + "type_name": "keen::BlobArray", + "type_hash": 1242752519, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PickupModelOverride[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PickupModelOverride", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 418731876, + "hash2": 4073373171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemSequence[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemSequence", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3505911707, + "hash2": 2502344125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemIconScene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1796376505, + "hash2": 4198477217, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemTagWeight[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemTagWeight", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2307557152, + "hash2": 2854777841, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PerkReference[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::PerkReference", + "class_size": 80, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 510774920, + "hash2": 1617516988, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemInfo", + "type_name_2": "ItemInfo", + "qualified_name": "keen::ItemInfo", + "referenced_type_name": null, + "class_size": 1656, + "fields_count": 52, + "primitive_type": "Struct", + "hash1": 3050211173, + "hash2": 3724483256, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "maxStackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "generateRarity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "rarity", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 23 + }, + { + "name": "disableRarityGeneration", + "type_name": "keen::ItemRarityMask", + "type_hash": 1803046066, + "data_offset": 24 + }, + { + "name": "randomLootStackRange", + "type_name": "keen::StackSizeRange", + "type_hash": 3622242444, + "data_offset": 26 + }, + { + "name": "overridePickupModels", + "type_name": "keen::BlobArray", + "type_hash": 418731876, + "data_offset": 32 + }, + { + "name": "overridePickupEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 40 + }, + { + "name": "pickupFx", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 56 + }, + { + "name": "name", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 72 + }, + { + "name": "caption", + "type_name": "keen::CaptionLocaTag", + "type_hash": 993848003, + "data_offset": 88 + }, + { + "name": "description", + "type_name": "keen::DescriptionLocaTag", + "type_hash": 1719653355, + "data_offset": 104 + }, + { + "name": "lore", + "type_name": "keen::LoreLocaTag", + "type_hash": 2405621525, + "data_offset": 120 + }, + { + "name": "uiActionHints", + "type_name": "keen::UiActionHints", + "type_hash": 585023692, + "data_offset": 136 + }, + { + "name": "category", + "type_name": "keen::ItemCategory", + "type_hash": 2660841681, + "data_offset": 188 + }, + { + "name": "ammunitionType", + "type_name": "keen::AmmunitionType", + "type_hash": 3530086269, + "data_offset": 189 + }, + { + "name": "weaponCategoryReference", + "type_name": "keen::WeaponCategoryReference", + "type_hash": 2618276603, + "data_offset": 192 + }, + { + "name": "itemClassAlignment", + "type_name": "keen::ItemClassAlignmentType", + "type_hash": 864255840, + "data_offset": 208 + }, + { + "name": "midiInstrumentType", + "type_name": "keen::MidiInstrumentType", + "type_hash": 867779258, + "data_offset": 209 + }, + { + "name": "equipment", + "type_name": "keen::EquipmentSetup", + "type_hash": 3160588027, + "data_offset": 212 + }, + { + "name": "sequences", + "type_name": "keen::BlobArray", + "type_hash": 3505911707, + "data_offset": 1116 + }, + { + "name": "pidEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 1124 + }, + { + "name": "exchangeOnBroken", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 1140 + }, + { + "name": "iconImage", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 1156 + }, + { + "name": "iconModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 1172 + }, + { + "name": "iconScene", + "type_name": "keen::ObjectReference", + "type_hash": 1796376505, + "data_offset": 1188 + }, + { + "name": "iconRenderOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 1204 + }, + { + "name": "iconRenderCookingScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1244 + }, + { + "name": "iconRenderGlobalScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1248 + }, + { + "name": "overrideSceneExposure", + "type_name": "keen::ItemInfoExposure", + "type_hash": 3408525056, + "data_offset": 1252 + }, + { + "name": "fitToItemModelBoundingBox", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1260 + }, + { + "name": "flags", + "type_name": "keen::ItemFlags", + "type_hash": 1922314252, + "data_offset": 1262 + }, + { + "name": "overrideKnowledgeGeneration", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1264 + }, + { + "name": "generateKnowledge", + "type_name": "keen::Bitmask16", + "type_hash": 2049337084, + "data_offset": 1266 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 2307557152, + "data_offset": 1268 + }, + { + "name": "uiValues", + "type_name": "keen::BlobArray", + "type_hash": 1021582228, + "data_offset": 1276 + }, + { + "name": "uiBuffValues", + "type_name": "keen::BlobArray", + "type_hash": 1021582228, + "data_offset": 1284 + }, + { + "name": "impactValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 1292 + }, + { + "name": "perkReferences", + "type_name": "keen::StaticArray", + "type_hash": 510774920, + "data_offset": 1300 + }, + { + "name": "itemLevelRange", + "type_name": "keen::ItemLevelRange", + "type_hash": 1469247018, + "data_offset": 1380 + }, + { + "name": "damageSetup", + "type_name": "keen::ItemDamageSetup", + "type_hash": 789855453, + "data_offset": 1388 + }, + { + "name": "armorSetup", + "type_name": "keen::ItemArmorSetup", + "type_hash": 1295216289, + "data_offset": 1452 + }, + { + "name": "fuelSetup", + "type_name": "keen::ItemFuelData", + "type_hash": 4185132653, + "data_offset": 1496 + }, + { + "name": "blockSetup", + "type_name": "keen::ItemBlockSetup", + "type_hash": 806506895, + "data_offset": 1512 + }, + { + "name": "scaledCostSetup", + "type_name": "keen::ItemScaledCostSetup", + "type_hash": 2260768195, + "data_offset": 1520 + }, + { + "name": "commerceLink", + "type_name": "keen::ItemCommerceLink", + "type_hash": 1701399258, + "data_offset": 1528 + }, + { + "name": "permissionSetup", + "type_name": "keen::ItemPermissionSetup", + "type_hash": 4275158767, + "data_offset": 1552 + }, + { + "name": "itemPaletteColorSetup", + "type_name": "keen::ItemColorSetupInternal", + "type_hash": 4270793024, + "data_offset": 1556 + }, + { + "name": "collectionInfo", + "type_name": "keen::ItemCollectionInfo", + "type_hash": 2094115369, + "data_offset": 1572 + }, + { + "name": "comfortSetup", + "type_name": "keen::ItemComfortSetup", + "type_hash": 3691764372, + "data_offset": 1640 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 1644 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::ItemKnowledgeBase", + "class_size": 12, + "fields_count": 5, + "primitive_type": "BlobVariant", + "hash1": 3019617987, + "hash2": 3475373343, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3034859122, + "hash2": 1587712572, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemConvertInfo", + "type_name_2": "ItemConvertInfo", + "qualified_name": "keen::ItemConvertInfo", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2016306596, + "hash2": 3113838148, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + }, + { + "name": "knowledge", + "type_name": "keen::BlobArray>", + "type_hash": 3034859122, + "data_offset": 24 + }, + { + "name": "visualModelGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 32 + }, + { + "name": "visualModels", + "type_name": "keen::BlobArray", + "type_hash": 4111073854, + "data_offset": 48 + }, + { + "name": "hideMask", + "type_name": "keen::VisualEquipmentMask", + "type_hash": 185284386, + "data_offset": 56 + }, + { + "name": "allowedBlendShapeMask", + "type_name": "keen::BlendShapeMask", + "type_hash": 3366010678, + "data_offset": 60 + }, + { + "name": "setBlendShapeMask", + "type_name": "keen::BlendShapeMask", + "type_hash": 3366010678, + "data_offset": 64 + }, + { + "name": "colorCombination", + "type_name": "keen::ColorCombination", + "type_hash": 1980700892, + "data_offset": 68 + }, + { + "name": "voxelMaterialGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 116 + }, + { + "name": "isDevItem", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeGenerationScope", + "type_name_2": "GameKnowledgeGenerationScope", + "qualified_name": "keen::GameKnowledgeGenerationScope", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4040073978, + "hash2": 1317853119, + "struct_fields": [ + { + "name": "knowledgeTypes", + "type_name": "keen::Bitmask16", + "type_hash": 2049337084, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemSubDirectory", + "type_name_2": "ItemSubDirectory", + "qualified_name": "keen::ItemSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1595288056, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemRarityDropSettings", + "type_name_2": "ItemRarityDropSettings", + "qualified_name": "keen::ItemRarityDropSettings", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1133003266, + "hash2": 2960532504, + "struct_fields": [ + { + "name": "common", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "uncommon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "rare", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "legendary", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategory", + "type_name_2": "WeaponCategory", + "qualified_name": "keen::WeaponCategory", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2503396366, + "hash2": 1747625506, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "damageMod", + "type_name": "keen::AttributeReference", + "type_hash": 3127615111, + "data_offset": 16 + }, + { + "name": "categoryType", + "type_name": "keen::WeaponCategoryType", + "type_hash": 4047677134, + "data_offset": 32 + }, + { + "name": "classType", + "type_name": "keen::ItemClassAlignmentType", + "type_hash": 864255840, + "data_offset": 33 + }, + { + "name": "cameraTraumaVerySmall", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "cameraTraumaSmall", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "cameraTraumaNormal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "cameraTraumaBig", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "cameraTraumaVeryBig", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "cameraImpulseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "cameraImpulseDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryResource", + "type_name_2": "WeaponCategoryResource", + "qualified_name": "keen::WeaponCategoryResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2952822038, + "hash2": 3897865103, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "weaponCategory", + "type_name": "keen::WeaponCategory", + "type_hash": 2503396366, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryDirectory", + "type_name_2": "WeaponCategoryDirectory", + "qualified_name": "keen::WeaponCategoryDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1761212117, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WeaponCategoryDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 135065318, + "hash2": 569869426, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemDirectory", + "type_name_2": "ItemDirectory", + "qualified_name": "keen::ItemDirectory", + "referenced_type_name": "keen::ItemSubDirectory", + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 153182824, + "hash2": 648345618, + "struct_fields": [ + { + "name": "defaultIconScene", + "type_name": "keen::ObjectReference", + "type_hash": 1796376505, + "data_offset": 0 + }, + { + "name": "rarityDropWeights", + "type_name": "keen::ItemRarityDropSettings", + "type_hash": 1133003266, + "data_offset": 16 + }, + { + "name": "weaponArmorRatio", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "weaponCategoryDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 135065318, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeaponCategoryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeaponCategoryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2059501177, + "hash2": 2682244898, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryDirectoryResource", + "type_name_2": "WeaponCategoryDirectoryResource", + "qualified_name": "keen::WeaponCategoryDirectoryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 238750437, + "hash2": 1265829144, + "struct_fields": [ + { + "name": "weaponCategories", + "type_name": "keen::BlobArray", + "type_hash": 2059501177, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2680214199, + "hash2": 3629573351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "String[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlobString", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1718442631, + "hash2": 3582705769, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemRegistryResource", + "type_name_2": "ItemRegistryResource", + "qualified_name": "keen::ItemRegistryResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1923824054, + "hash2": 3486931312, + "struct_fields": [ + { + "name": "itemRefs", + "type_name": "keen::BlobArray", + "type_hash": 2680214199, + "data_offset": 0 + }, + { + "name": "itemTags", + "type_name": "keen::BlobArray", + "type_hash": 3490068520, + "data_offset": 8 + }, + { + "name": "weaponCategories", + "type_name": "keen::BlobArray", + "type_hash": 2059501177, + "data_offset": 16 + }, + { + "name": "dbgNames", + "type_name": "keen::BlobArray", + "type_hash": 1718442631, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconRegistryEntryResource", + "type_name_2": "ItemIconRegistryEntryResource", + "qualified_name": "keen::ItemIconRegistryEntryResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3419629649, + "hash2": 56951721, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "uiTexture", + "type_name": "keen::UiTextureResource", + "type_hash": 4192758167, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemIconRegistryEntryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemIconRegistryEntryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2650939750, + "hash2": 3985508937, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconRegistryResource", + "type_name_2": "ItemIconRegistryResource", + "qualified_name": "keen::ItemIconRegistryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2952575875, + "hash2": 857689750, + "struct_fields": [ + { + "name": "icons", + "type_name": "keen::BlobArray", + "type_hash": 2650939750, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DevItemRegistryResource", + "type_name_2": "DevItemRegistryResource", + "qualified_name": "keen::DevItemRegistryResource", + "referenced_type_name": "keen::ItemRegistryResource", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2403488797, + "hash2": 1295335368, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeLock", + "type_name_2": "ItemKnowledgeLock", + "qualified_name": "keen::ItemKnowledgeLock", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3875194372, + "hash2": 572163219, + "struct_fields": [ + { + "name": "unlockedLocaId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "keyLocaId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 4 + }, + { + "name": "unlockTrigger", + "type_name": "keen::ItemKnowledgeTriggerMask", + "type_hash": 878314361, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledge", + "type_name_2": "ItemKnowledge", + "qualified_name": "keen::ItemKnowledge", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1270018251, + "hash2": 2740156080, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "lockedKnowledgeMask", + "type_name": "keen::ItemKnowledgeMask", + "type_hash": 3417964127, + "data_offset": 4 + }, + { + "name": "nameLock", + "type_name": "keen::ItemKnowledgeLock", + "type_hash": 3875194372, + "data_offset": 8 + }, + { + "name": "descriptionLock", + "type_name": "keen::ItemKnowledgeLock", + "type_hash": 3875194372, + "data_offset": 20 + }, + { + "name": "loreLock", + "type_name": "keen::ItemKnowledgeLock", + "type_hash": 3875194372, + "data_offset": 32 + }, + { + "name": "recipeLock", + "type_name": "keen::ItemKnowledgeLock", + "type_hash": 3875194372, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemKnowledge[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemKnowledge", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2268572980, + "hash2": 4230916673, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeResource", + "type_name_2": "ItemKnowledgeResource", + "qualified_name": "keen::ItemKnowledgeResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3396158631, + "hash2": 2246467032, + "struct_fields": [ + { + "name": "knowledgeArray", + "type_name": "keen::BlobArray", + "type_hash": 2268572980, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupFxConfig", + "type_name_2": "PickupFxConfig", + "qualified_name": "keen::PickupFxConfig", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2927957050, + "hash2": 2483357773, + "struct_fields": [ + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupModelOverride", + "type_name_2": "PickupModelOverride", + "qualified_name": "keen::PickupModelOverride", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1569312063, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupEntityOverride", + "type_name_2": "PickupEntityOverride", + "qualified_name": "keen::PickupEntityOverride", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3482556577, + "hash2": 3849560394, + "struct_fields": [ + { + "name": "entity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionOptionBase", + "type_name_2": "ItemCollectionOptionBase", + "qualified_name": "keen::ItemCollectionOptionBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1215608581, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ItemCollectionCategory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1331808684, + "hash2": 536620349, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionCategoryReference", + "type_name_2": "ItemCollectionCategoryReference", + "qualified_name": "keen::ItemCollectionCategoryReference", + "referenced_type_name": "keen::ItemCollectionOptionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2653493602, + "hash2": 3229573237, + "struct_fields": [ + { + "name": "category", + "type_name": "keen::ObjectReference", + "type_hash": 1331808684, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionModelOverride", + "type_name_2": "ItemCollectionModelOverride", + "qualified_name": "keen::ItemCollectionModelOverride", + "referenced_type_name": "keen::ItemCollectionOptionBase", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2106734886, + "hash2": 2246331246, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "modelOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintItem", + "type_name_2": "VoxelBlueprintItem", + "qualified_name": "keen::VoxelBlueprintItem", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 870136466, + "hash2": 587320037, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 4 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 16 + }, + { + "name": "isDataCompressed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelBlueprintItem[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelBlueprintItem", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3212321941, + "hash2": 1627439383, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintItemRegistryResource", + "type_name_2": "VoxelBlueprintItemRegistryResource", + "qualified_name": "keen::VoxelBlueprintItemRegistryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 234670745, + "hash2": 2006459794, + "struct_fields": [ + { + "name": "blueprintItems", + "type_name": "keen::BlobArray", + "type_hash": 3212321941, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemPropsForPropTestResource", + "type_name_2": "ItemPropsForPropTestResource", + "qualified_name": "keen::ItemPropsForPropTestResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 335151021, + "hash2": 148788556, + "struct_fields": [ + { + "name": "propItems", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionDirectory", + "type_name_2": "ItemCollectionDirectory", + "qualified_name": "keen::ItemCollectionDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 681804236, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSubDirectory", + "type_name_2": "ItemCollectionSubDirectory", + "qualified_name": "keen::ItemCollectionSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1239988300, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSetup", + "type_name_2": "ItemCollectionSetup", + "qualified_name": "keen::ItemCollectionSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1284239682, + "hash2": 1715263527, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 109196461, + "data_offset": 0 + }, + { + "name": "completionKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 1672737556, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlot", + "type_name_2": "ItemCollectionSlot", + "qualified_name": "keen::ItemCollectionSlot", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 777366645, + "hash2": 2901912582, + "struct_fields": [ + { + "name": "jointName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotId", + "type_name_2": "ItemCollectionSlotId", + "qualified_name": "keen::ItemCollectionSlotId", + "referenced_type_name": "keen::ItemCollectionSlot", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2981076784, + "hash2": 3989888099, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotCategory", + "type_name_2": "ItemCollectionSlotCategory", + "qualified_name": "keen::ItemCollectionSlotCategory", + "referenced_type_name": "keen::ItemCollectionSlot", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 154280545, + "hash2": 2621155173, + "struct_fields": [ + { + "name": "category", + "type_name": "keen::ObjectReference", + "type_hash": 1331808684, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotEquipment", + "type_name_2": "ItemCollectionSlotEquipment", + "qualified_name": "keen::ItemCollectionSlotEquipment", + "referenced_type_name": "keen::ItemCollectionSlot", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 327037991, + "hash2": 2091601319, + "struct_fields": [ + { + "name": "equipmentSlot", + "type_name": "keen::EquipmentSlot", + "type_hash": 2267233658, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionResource", + "type_name_2": "ItemCollectionResource", + "qualified_name": "keen::ItemCollectionResource", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3886546193, + "hash2": 2751301985, + "struct_fields": [ + { + "name": "slots", + "type_name": "keen::BlobArray", + "type_hash": 2692793828, + "data_offset": 0 + }, + { + "name": "completionKnowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotResource", + "type_name_2": "ItemCollectionSlotResource", + "qualified_name": "keen::ItemCollectionSlotResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2067739717, + "hash2": 3727212332, + "struct_fields": [ + { + "name": "collectionId", + "type_name": "keen::ItemCollectionId", + "type_hash": 3570932004, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 4 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 44 + }, + { + "name": "collectionCategoryId", + "type_name": "keen::ItemCollectionId", + "type_hash": 3570932004, + "data_offset": 48 + }, + { + "name": "equipmentSlot", + "type_name": "keen::EquipmentSlot", + "type_hash": 2267233658, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionCategoryDirectory", + "type_name_2": "ItemCollectionCategoryDirectory", + "qualified_name": "keen::ItemCollectionCategoryDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1937172336, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionCategory", + "type_name_2": "ItemCollectionCategory", + "qualified_name": "keen::ItemCollectionCategory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2048443789, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ScatterSet3", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 217922346, + "hash2": 2522164369, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterData", + "type_name_2": "SceneScatterData", + "qualified_name": "keen::SceneScatterData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1357009852, + "hash2": 2757749499, + "struct_fields": [ + { + "name": "scatterSet", + "type_name": "keen::ObjectReference", + "type_hash": 217922346, + "data_offset": 0 + }, + { + "name": "start", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "disable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "writeDebug", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldDistributionTypeFlag", + "type_name_2": "WorldDistributionTypeFlag", + "qualified_name": "keen::WorldDistributionTypeFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2873305626, + "hash2": 2269318360, + "struct_fields": [], + "enum_fields": [ + { + "name": "Flubber", + "value": 0 + }, + { + "name": "Blub", + "value": 1 + }, + { + "name": "Perry", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::WorldDistributionTypeFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 911826840, + "hash2": 806522107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldDistributionTypeFlags", + "type_name_2": "WorldDistributionTypeFlags", + "qualified_name": "keen::WorldDistributionTypeFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 62636875, + "hash2": 4140503723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ScenePlayableAreaBox[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ScenePlayableAreaBox", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 453961541, + "hash2": 8250625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneResetPlayersOutOfBounds", + "type_name_2": "SceneResetPlayersOutOfBounds", + "qualified_name": "keen::SceneResetPlayersOutOfBounds", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1939661139, + "hash2": 2572685006, + "struct_fields": [ + { + "name": "marginHorizontal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "marginVertical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "playableAreas", + "type_name": "keen::BlobArray", + "type_hash": 453961541, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelWorldObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1163259176, + "hash2": 4267211172, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Ibl", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4243194992, + "hash2": 3625996664, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::render::AtmosphereParameters", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3140740793, + "hash2": 907553985, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BiomeMap", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3130019883, + "hash2": 808554245, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Scene", + "type_name_2": "Scene", + "qualified_name": "keen::Scene", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 404932134, + "hash2": 1786183344, + "struct_fields": [ + { + "name": "voxelWorld", + "type_name": "keen::ObjectReference", + "type_hash": 1163259176, + "data_offset": 0 + }, + { + "name": "worldSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "worldOrigin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 24 + }, + { + "name": "ibl", + "type_name": "keen::ObjectReference", + "type_hash": 4243194992, + "data_offset": 36 + }, + { + "name": "iblIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "atmosphere", + "type_name": "keen::ObjectReference", + "type_hash": 3140740793, + "data_offset": 56 + }, + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 72 + }, + { + "name": "biomeMap", + "type_name": "keen::ObjectReference", + "type_hash": 3130019883, + "data_offset": 76 + }, + { + "name": "scatterData", + "type_name": "keen::SceneScatterData", + "type_hash": 1357009852, + "data_offset": 92 + }, + { + "name": "limitMacroScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "macroScatterStart", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 132 + }, + { + "name": "macroScatterSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 140 + }, + { + "name": "disableVoxelBrushDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 148 + }, + { + "name": "distributionTypeFlags", + "type_name": "keen::WorldDistributionTypeFlags", + "type_hash": 62636875, + "data_offset": 149 + }, + { + "name": "isTestScene", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 150 + }, + { + "name": "distantObjectSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "moveVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "resetPlayersOutOfBounds", + "type_name": "keen::SceneResetPlayersOutOfBounds", + "type_hash": 1939661139, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconScene", + "type_name_2": "ItemIconScene", + "qualified_name": "keen::ItemIconScene", + "referenced_type_name": "keen::Scene", + "class_size": 180, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1909686040, + "hash2": 685345782, + "struct_fields": [ + { + "name": "fixedExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldTransformFlag", + "type_name_2": "WorldTransformFlag", + "qualified_name": "keen::WorldTransformFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3755515724, + "hash2": 2359308164, + "struct_fields": [], + "enum_fields": [ + { + "name": "Translation", + "value": 0 + }, + { + "name": "Orientation", + "value": 1 + }, + { + "name": "UniformScale", + "value": 2 + }, + { + "name": "NonUniformScale", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::WorldTransformFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2049988226, + "hash2": 2130511219, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldTransformFlags", + "type_name_2": "WorldTransformFlags", + "qualified_name": "keen::WorldTransformFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2701307949, + "hash2": 1592972412, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ContentPass", + "type_name_2": "ContentPass", + "qualified_name": "keen::ContentPass", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1212749034, + "hash2": 3976897011, + "struct_fields": [], + "enum_fields": [ + { + "name": "ManualPois", + "value": 0 + }, + { + "name": "LargeStamps", + "value": 1 + }, + { + "name": "PrioPois", + "value": 2 + }, + { + "name": "FillPois", + "value": 3 + }, + { + "name": "DecoStamps", + "value": 4 + }, + { + "name": "Enemies", + "value": 5 + } + ] + }, + { + "type_name_1": "SceneObject", + "type_name_2": "SceneObject", + "qualified_name": "keen::SceneObject", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1465882789, + "hash2": 68377574, + "struct_fields": [ + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "worldTransformFlags", + "type_name": "keen::WorldTransformFlags", + "type_hash": 2701307949, + "data_offset": 56 + }, + { + "name": "contentPass", + "type_name": "keen::ContentPass", + "type_hash": 1212749034, + "data_offset": 57 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCamera", + "type_name_2": "SceneCamera", + "qualified_name": "keen::SceneCamera", + "referenced_type_name": "keen::SceneObject", + "class_size": 104, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 512731269, + "hash2": 2357166166, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 64 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 72 + }, + { + "name": "nearClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "farClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "fovY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconSceneCamera", + "type_name_2": "ItemIconSceneCamera", + "qualified_name": "keen::ItemIconSceneCamera", + "referenced_type_name": "keen::SceneCamera", + "class_size": 104, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1835370679, + "hash2": 1548273728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconSceneSun", + "type_name_2": "ItemIconSceneSun", + "qualified_name": "keen::ItemIconSceneSun", + "referenced_type_name": "keen::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2871444774, + "hash2": 2897731824, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneBaseLight", + "type_name_2": "SceneBaseLight", + "qualified_name": "keen::SceneBaseLight", + "referenced_type_name": "keen::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1756397749, + "hash2": 2897731824, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScenePointLight", + "type_name_2": "ScenePointLight", + "qualified_name": "keen::ScenePointLight", + "referenced_type_name": "keen::SceneBaseLight", + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1592499692, + "hash2": 1808771245, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "castShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconScenePointLight", + "type_name_2": "ItemIconScenePointLight", + "qualified_name": "keen::ItemIconScenePointLight", + "referenced_type_name": "keen::ScenePointLight", + "class_size": 88, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 581209842, + "hash2": 210455096, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraData", + "type_name_2": "CameraData", + "qualified_name": "keen::CameraData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4162880805, + "hash2": 1945202395, + "struct_fields": [ + { + "name": "nearClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "farClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "fovY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AtmosphereParameters", + "type_name_2": "render.AtmosphereParameters", + "qualified_name": "keen::render::AtmosphereParameters", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3451478658, + "hash2": 780195387, + "struct_fields": [ + { + "name": "planetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rayleighScattering", + "type_name": "keen::ColorRgb", + "type_hash": 1807719120, + "data_offset": 4 + }, + { + "name": "rayleighDensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "ozoneExtinction", + "type_name": "keen::ColorRgb", + "type_hash": 1807719120, + "data_offset": 20 + }, + { + "name": "ozoneDensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "rayleightDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "mieScattering", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "mieExtinction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "mieDensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mieDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "mieG", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "yRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::IblResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 13272856, + "hash2": 1274169359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderLight[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderLight", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2010290539, + "hash2": 1637876332, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WorldTransform[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WorldTransform", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 841999713, + "hash2": 1051851897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconSceneInfo", + "type_name_2": "ItemIconSceneInfo", + "qualified_name": "keen::ItemIconSceneInfo", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3736150116, + "hash2": 1153649343, + "struct_fields": [ + { + "name": "camera", + "type_name": "keen::CameraData", + "type_hash": 4162880805, + "data_offset": 0 + }, + { + "name": "cameraTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "ibl", + "type_name": "keen::ObjectReference", + "type_hash": 13272856, + "data_offset": 72 + }, + { + "name": "atmosphereParameters", + "type_name": "keen::render::AtmosphereParameters", + "type_hash": 3451478658, + "data_offset": 88 + }, + { + "name": "fixedExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "iblIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "sunAzimuth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "sunElevation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + }, + { + "name": "sunColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 172 + }, + { + "name": "lights", + "type_name": "keen::BlobArray", + "type_hash": 2010290539, + "data_offset": 184 + }, + { + "name": "lightsTransform", + "type_name": "keen::BlobArray", + "type_hash": 841999713, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalDirectory", + "type_name_2": "JournalDirectory", + "qualified_name": "keen::JournalDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2434008108, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalSubDirectory", + "type_name_2": "JournalSubDirectory", + "qualified_name": "keen::JournalSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1998697324, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalLoreCategory", + "type_name_2": "JournalLoreCategory", + "qualified_name": "keen::JournalLoreCategory", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2050787293, + "hash2": 2357802099, + "struct_fields": [ + { + "name": "categoryName", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalCollectionBase", + "type_name_2": "JournalCollectionBase", + "qualified_name": "keen::JournalCollectionBase", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3064132056, + "hash2": 2142224484, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "referencedDocumentName", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 16 + }, + { + "name": "priority", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalCollection", + "type_name_2": "JournalCollection", + "qualified_name": "keen::JournalCollection", + "referenced_type_name": "keen::JournalCollectionBase", + "class_size": 36, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2928093925, + "hash2": 2170865657, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "QuestSourceType", + "type_name_2": "QuestSourceType", + "qualified_name": "keen::QuestSourceType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 2678780669, + "hash2": 2152052921, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Flame", + "value": 1 + }, + { + "name": "Blacksmith", + "value": 2 + }, + { + "name": "Alchemist", + "value": 3 + }, + { + "name": "Huntress", + "value": 4 + }, + { + "name": "Farmer", + "value": 5 + }, + { + "name": "Carpenter", + "value": 6 + }, + { + "name": "CryptKeeper", + "value": 7 + }, + { + "name": "Bard", + "value": 8 + } + ] + }, + { + "type_name_1": "QuestType", + "type_name_2": "QuestType", + "qualified_name": "keen::QuestType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1487079000, + "hash2": 4061430303, + "struct_fields": [], + "enum_fields": [ + { + "name": "Auto", + "value": 0 + }, + { + "name": "WorldQuest", + "value": 1 + }, + { + "name": "PlayerQuest", + "value": 2 + } + ] + }, + { + "type_name_1": "JournalQuestReward", + "type_name_2": "JournalQuestReward", + "qualified_name": "keen::JournalQuestReward", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 512491206, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalItemReward", + "type_name_2": "JournalItemReward", + "qualified_name": "keen::JournalItemReward", + "referenced_type_name": "keen::JournalQuestReward", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1697861653, + "hash2": 196779842, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalExperienceReward", + "type_name_2": "JournalExperienceReward", + "qualified_name": "keen::JournalExperienceReward", + "referenced_type_name": "keen::JournalQuestReward", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2527821730, + "hash2": 1093822393, + "struct_fields": [ + { + "name": "experience", + "type_name": "keen::ObjectReference", + "type_hash": 3835756290, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CompletableJournalCollection", + "type_name_2": "CompletableJournalCollection", + "qualified_name": "keen::CompletableJournalCollection", + "referenced_type_name": "keen::JournalCollectionBase", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1710237053, + "hash2": 2920904250, + "struct_fields": [ + { + "name": "questSource", + "type_name": "keen::QuestSourceType", + "type_hash": 2678780669, + "data_offset": 36 + }, + { + "name": "type", + "type_name": "keen::QuestType", + "type_hash": 1487079000, + "data_offset": 37 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TutorialJournalCollection", + "type_name_2": "TutorialJournalCollection", + "qualified_name": "keen::TutorialJournalCollection", + "referenced_type_name": "keen::JournalCollectionBase", + "class_size": 36, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 229103511, + "hash2": 2170865657, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntryBase", + "type_name_2": "JournalEntryBase", + "qualified_name": "keen::JournalEntryBase", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3801106466, + "hash2": 2713338486, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 16 + }, + { + "name": "mapMarkerReference", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 32 + }, + { + "name": "itemIcon", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntry", + "type_name_2": "JournalEntry", + "qualified_name": "keen::JournalEntry", + "referenced_type_name": "keen::JournalEntryBase", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1765210687, + "hash2": 1008803072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CompletableJournalEntry", + "type_name_2": "CompletableJournalEntry", + "qualified_name": "keen::CompletableJournalEntry", + "referenced_type_name": "keen::JournalEntryBase", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4190359943, + "hash2": 1008803072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TutorialJournalEntry", + "type_name_2": "TutorialJournalEntry", + "qualified_name": "keen::TutorialJournalEntry", + "referenced_type_name": "keen::JournalEntryBase", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2397126225, + "hash2": 1008803072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalCompletionRequirement", + "type_name_2": "JournalCompletionRequirement", + "qualified_name": "keen::JournalCompletionRequirement", + "referenced_type_name": "keen::GameKnowledgeRequirementBase", + "class_size": 104, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3635493094, + "hash2": 3988461596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntryResource", + "type_name_2": "JournalEntryResource", + "qualified_name": "keen::JournalEntryResource", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 956321115, + "hash2": 2710658843, + "struct_fields": [ + { + "name": "entryId", + "type_name": "keen::JournalEntryId", + "type_hash": 3084175954, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 4 + }, + { + "name": "text", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 8 + }, + { + "name": "mapMarkerReference", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 12 + }, + { + "name": "itemIconId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 20 + }, + { + "name": "completionRequirement", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "JournalEntryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::JournalEntryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1309104218, + "hash2": 992318799, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalCollectionResource", + "type_name_2": "JournalCollectionResource", + "qualified_name": "keen::JournalCollectionResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4226723061, + "hash2": 1005507314, + "struct_fields": [ + { + "name": "entryId", + "type_name": "keen::JournalEntryId", + "type_hash": 3084175954, + "data_offset": 0 + }, + { + "name": "loreCategory", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 4 + }, + { + "name": "name", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 8 + }, + { + "name": "referencedDocumentName", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 12 + }, + { + "name": "priority", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "isTutorial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 1309104218, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QuestRewardResource", + "type_name_2": "QuestRewardResource", + "qualified_name": "keen::QuestRewardResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2136015411, + "hash2": 795492043, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 16 + }, + { + "name": "experienceValueId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "QuestRewardResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::QuestRewardResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1038906668, + "hash2": 3178934609, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalQuestResource", + "type_name_2": "JournalQuestResource", + "qualified_name": "keen::JournalQuestResource", + "referenced_type_name": "keen::JournalCollectionResource", + "class_size": 44, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3597235881, + "hash2": 1407094579, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::QuestSourceType", + "type_hash": 2678780669, + "data_offset": 32 + }, + { + "name": "type", + "type_name": "keen::QuestType", + "type_hash": 1487079000, + "data_offset": 33 + }, + { + "name": "unlockForAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 34 + }, + { + "name": "rewards", + "type_name": "keen::BlobArray", + "type_hash": 1038906668, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "JournalQuestResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::JournalQuestResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3440057364, + "hash2": 3632693818, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "JournalCollectionResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::JournalCollectionResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1112466466, + "hash2": 2847364635, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalRegistryResource", + "type_name_2": "JournalRegistryResource", + "qualified_name": "keen::JournalRegistryResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1622535562, + "hash2": 1549621339, + "struct_fields": [ + { + "name": "quests", + "type_name": "keen::BlobArray", + "type_hash": 3440057364, + "data_offset": 0 + }, + { + "name": "collections", + "type_name": "keen::BlobArray", + "type_hash": 1112466466, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTrigger", + "type_name_2": "ecs.KnowledgeTrigger", + "qualified_name": "keen::ecs::KnowledgeTrigger", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1566215235, + "hash2": 207833103, + "struct_fields": [ + { + "name": "knowledgeIds", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 0 + }, + { + "name": "canActivate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "canDeactivate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntityKnowledgeQuery", + "type_name_2": "SubEntityKnowledgeQuery", + "qualified_name": "keen::SubEntityKnowledgeQuery", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4202183435, + "hash2": 1054917787, + "struct_fields": [ + { + "name": "knowledgeQueryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 0 + }, + { + "name": "subEntityTemplate", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "uiWorldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SubEntityKnowledgeQuery[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::SubEntityKnowledgeQuery", + "class_size": 96, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 647245665, + "hash2": 3220962716, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQuery", + "type_name_2": "ecs.KnowledgeQuery", + "qualified_name": "keen::ecs::KnowledgeQuery", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 108, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4051839779, + "hash2": 3765862704, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "uiWorldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "wasEventTriggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "subEntityQueries", + "type_name": "keen::StaticArray", + "type_hash": 647245665, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerUnlockRequirements", + "type_name_2": "ecs.MapMarkerUnlockRequirements", + "qualified_name": "keen::ecs::MapMarkerUnlockRequirements", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 328, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1280190481, + "hash2": 1851287516, + "struct_fields": [ + { + "name": "hintState", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 0 + }, + { + "name": "visibleState", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 104 + }, + { + "name": "hasCompletedState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 208 + }, + { + "name": "completedState", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 212 + }, + { + "name": "hintStateQueryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 316 + }, + { + "name": "visibleStateQueryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 320 + }, + { + "name": "completedStateQueryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 324 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerToggle", + "type_name_2": "ecs.KnowledgeTriggerToggle", + "qualified_name": "keen::ecs::KnowledgeTriggerToggle", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1631031751, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerRange", + "type_name_2": "ecs.KnowledgeTriggerRange", + "qualified_name": "keen::ecs::KnowledgeTriggerRange", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 568729272, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerOnKill", + "type_name_2": "ecs.KnowledgeTriggerOnKill", + "qualified_name": "keen::ecs::KnowledgeTriggerOnKill", + "referenced_type_name": "keen::ecs::Component", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2819008034, + "hash2": 1465743804, + "struct_fields": [ + { + "name": "useSceneKnowledgeTrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "unlockForGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "triggerKnowledge", + "type_name": "keen::GameKnowledgeTrigger", + "type_hash": 73380980, + "data_offset": 4 + }, + { + "name": "triggerKnowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeUiWorldEvent", + "type_name_2": "ecs.KnowledgeUiWorldEvent", + "qualified_name": "keen::ecs::KnowledgeUiWorldEvent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2390027083, + "hash2": 2816894665, + "struct_fields": [ + { + "name": "triggerEvent", + "type_name": "keen::ObjectReference", + "type_hash": 667925287, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootTreeNodeIntermediate", + "type_name_2": "LootTreeNodeIntermediate", + "qualified_name": "keen::LootTreeNodeIntermediate", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1596597777, + "hash2": 554280624, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 20 + }, + { + "name": "potentialSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "potentialChildSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LootTreeNodeIntermediate[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LootTreeNodeIntermediate", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 875953988, + "hash2": 1455811523, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTreeIntermediate", + "type_name_2": "LootTreeIntermediate", + "qualified_name": "keen::LootTreeIntermediate", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4028680853, + "hash2": 3480127673, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::BlobArray", + "type_hash": 875953988, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootNodeResource", + "type_name_2": "LootNodeResource", + "qualified_name": "keen::LootNodeResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3580657344, + "hash2": 933647342, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerResource", + "type_name_2": "LootContainerResource", + "qualified_name": "keen::LootContainerResource", + "referenced_type_name": "keen::LootNodeResource", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1798576643, + "hash2": 2864199398, + "struct_fields": [ + { + "name": "lootSettingsIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierMode", + "type_name_2": "LootModifierMode", + "qualified_name": "keen::LootModifierMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 878173366, + "hash2": 1342454507, + "struct_fields": [], + "enum_fields": [ + { + "name": "Set", + "value": 0 + }, + { + "name": "Add", + "value": 1 + }, + { + "name": "Multiply", + "value": 2 + }, + { + "name": "None", + "value": 3 + } + ] + }, + { + "type_name_1": "LootModifierValue", + "type_name_2": "LootModifierValue", + "qualified_name": "keen::LootModifierValue", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 458876006, + "hash2": 2289253386, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::LootModifierMode", + "type_hash": 878173366, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "LootModifierValue[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::LootModifierValue", + "class_size": 40, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3793619691, + "hash2": 2754811906, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierInfo", + "type_name_2": "LootModifierInfo", + "qualified_name": "keen::LootModifierInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2377472769, + "hash2": 2235566244, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::LootModifierValue", + "type_hash": 458876006, + "data_offset": 0 + }, + { + "name": "levelOffset", + "type_name": "keen::LootModifierValue", + "type_hash": 458876006, + "data_offset": 8 + }, + { + "name": "levelOffsetRangeMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "levelOffsetRangeMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rarities", + "type_name": "keen::StaticArray", + "type_hash": 3793619691, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LootTagInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LootTagInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1305194633, + "hash2": 2358645226, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootSettingsResource", + "type_name_2": "LootSettingsResource", + "qualified_name": "keen::LootSettingsResource", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1736140605, + "hash2": 3111254882, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::LootModifierInfo", + "type_hash": 2377472769, + "data_offset": 0 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1305194633, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LootSettingsResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LootSettingsResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 131090612, + "hash2": 1735564411, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SpecialItemInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SpecialItemInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 771336175, + "hash2": 815282553, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LootNodeResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LootNodeResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2572914535, + "hash2": 3493840724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LootContainerResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LootContainerResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 587570908, + "hash2": 4130038728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneRandomLootResource", + "type_name_2": "SceneRandomLootResource", + "qualified_name": "keen::SceneRandomLootResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 823674767, + "hash2": 4078322525, + "struct_fields": [ + { + "name": "lootSettings", + "type_name": "keen::BlobArray", + "type_hash": 131090612, + "data_offset": 0 + }, + { + "name": "specialItems", + "type_name": "keen::BlobArray", + "type_hash": 771336175, + "data_offset": 8 + }, + { + "name": "lootNodes", + "type_name": "keen::BlobArray", + "type_hash": 2572914535, + "data_offset": 16 + }, + { + "name": "lootContainer", + "type_name": "keen::BlobArray", + "type_hash": 587570908, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootDistributionBaseNode", + "type_name_2": "LootDistributionBaseNode", + "qualified_name": "keen::LootDistributionBaseNode", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2870379599, + "hash2": 3817926996, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1305194633, + "data_offset": 16 + }, + { + "name": "modifier", + "type_name": "keen::LootModifierInfo", + "type_hash": 2377472769, + "data_offset": 24 + }, + { + "name": "potentialSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + }, + { + "name": "potentialChildSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LootDistributionTreeNode[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LootDistributionTreeNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2191163389, + "hash2": 1474328999, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootDistributionTreeNode", + "type_name_2": "LootDistributionTreeNode", + "qualified_name": "keen::LootDistributionTreeNode", + "referenced_type_name": "keen::LootDistributionBaseNode", + "class_size": 112, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3712382106, + "hash2": 2100719907, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 96 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 100 + }, + { + "name": "childNodes", + "type_name": "keen::BlobArray", + "type_hash": 2191163389, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerInfo", + "type_name_2": "LootContainerInfo", + "qualified_name": "keen::LootContainerInfo", + "referenced_type_name": "keen::LootDistributionBaseNode", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3122533587, + "hash2": 2907895409, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 96 + }, + { + "name": "parentId", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpecialItemInfo", + "type_name_2": "SpecialItemInfo", + "qualified_name": "keen::SpecialItemInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4012601254, + "hash2": 1547573189, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 4 + }, + { + "name": "checkItemLabels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "amount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootDistributionTreeResource", + "type_name_2": "LootDistributionTreeResource", + "qualified_name": "keen::LootDistributionTreeResource", + "referenced_type_name": "keen::LootDistributionTreeNode", + "class_size": 120, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3102685206, + "hash2": 2165174842, + "struct_fields": [ + { + "name": "specialItems", + "type_name": "keen::BlobArray", + "type_hash": 771336175, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityRandomLootInfo", + "type_name_2": "EntityRandomLootInfo", + "qualified_name": "keen::EntityRandomLootInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1678139936, + "hash2": 702912417, + "struct_fields": [ + { + "name": "isLootEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "potentialSlotCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxLootInfo", + "type_name_2": "SceneWhiteboxLootInfo", + "qualified_name": "keen::SceneWhiteboxLootInfo", + "referenced_type_name": null, + "class_size": 108, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1368222542, + "hash2": 3080674954, + "struct_fields": [ + { + "name": "lootNodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "lootContainer", + "type_name": "keen::LootContainerInfo", + "type_hash": 3122533587, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneWhiteboxLootInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneWhiteboxLootInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1480894055, + "hash2": 3979763473, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxLootInfos", + "type_name_2": "SceneWhiteboxLootInfos", + "qualified_name": "keen::SceneWhiteboxLootInfos", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2661273863, + "hash2": 2768610732, + "struct_fields": [ + { + "name": "lootContainer", + "type_name": "keen::BlobArray", + "type_hash": 1480894055, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootSlotInfo", + "type_name_2": "LootSlotInfo", + "qualified_name": "keen::LootSlotInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 678272960, + "hash2": 2850792547, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "stackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "rarity", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 6 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "LootSlotInfo[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::LootSlotInfo", + "class_size": 192, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1780505053, + "hash2": 3621346304, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerFillInfo", + "type_name_2": "LootContainerFillInfo", + "qualified_name": "keen::LootContainerFillInfo", + "referenced_type_name": null, + "class_size": 196, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3815362446, + "hash2": 3103492600, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "filledSlots", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 1780505053, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImportantLootSlotInfo", + "type_name_2": "ImportantLootSlotInfo", + "qualified_name": "keen::ImportantLootSlotInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 241184346, + "hash2": 358103059, + "struct_fields": [ + { + "name": "importantItemIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ImportantLootSlotInfo[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ImportantLootSlotInfo", + "class_size": 128, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 660059055, + "hash2": 1992923091, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImportantLootContainerFillInfo", + "type_name_2": "ImportantLootContainerFillInfo", + "qualified_name": "keen::ImportantLootContainerFillInfo", + "referenced_type_name": null, + "class_size": 132, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3117681460, + "hash2": 1813908245, + "struct_fields": [ + { + "name": "filledSlots", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 660059055, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierBase", + "type_name_2": "LootModifierBase", + "qualified_name": "keen::LootModifierBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1719243908, + "hash2": 3392495109, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::LootModifierMode", + "type_hash": 878173366, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierAmount", + "type_name_2": "LootModifierAmount", + "qualified_name": "keen::LootModifierAmount", + "referenced_type_name": "keen::LootModifierBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 559266389, + "hash2": 199720291, + "struct_fields": [ + { + "name": "amount", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierRarity", + "type_name_2": "LootModifierRarity", + "qualified_name": "keen::LootModifierRarity", + "referenced_type_name": "keen::LootModifierBase", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1061743606, + "hash2": 17046911, + "struct_fields": [ + { + "name": "rarity", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 1 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierItemValue", + "type_name_2": "LootModifierItemValue", + "qualified_name": "keen::LootModifierItemValue", + "referenced_type_name": "keen::LootModifierBase", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2190277115, + "hash2": 50198583, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierLevelOffset", + "type_name_2": "LootModifierLevelOffset", + "qualified_name": "keen::LootModifierLevelOffset", + "referenced_type_name": "keen::LootModifierBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2533801966, + "hash2": 128912942, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierLevelOffsetRange", + "type_name_2": "LootModifierLevelOffsetRange", + "qualified_name": "keen::LootModifierLevelOffsetRange", + "referenced_type_name": "keen::LootModifierBase", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3451989019, + "hash2": 50198583, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootItem", + "type_name_2": "RandomLootItem", + "qualified_name": "keen::RandomLootItem", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2215895620, + "hash2": 1948828840, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "amount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "checkItemLabels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootItemInfo", + "type_name_2": "RandomLootItemInfo", + "qualified_name": "keen::RandomLootItemInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1747951800, + "hash2": 171879041, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 4 + }, + { + "name": "amount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "checkItemLabels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootTagInfo", + "type_name_2": "LootTagInfo", + "qualified_name": "keen::LootTagInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2494918732, + "hash2": 2834474674, + "struct_fields": [ + { + "name": "tagId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RandomLootItemInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RandomLootItemInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1742544171, + "hash2": 3084692895, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectLootSettings", + "type_name_2": "ObjectLootSettings", + "qualified_name": "keen::ObjectLootSettings", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3798070922, + "hash2": 3735104945, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::LootModifierInfo", + "type_hash": 2377472769, + "data_offset": 0 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1305194633, + "data_offset": 64 + }, + { + "name": "specialItems", + "type_name": "keen::BlobArray", + "type_hash": 1742544171, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShufflebagItemType", + "type_name_2": "ShufflebagItemType", + "qualified_name": "keen::ShufflebagItemType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 199409696, + "hash2": 2197031214, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Weapon", + "value": 1 + }, + { + "name": "Armor", + "value": 2 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemLabelGroupResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemLabelGroupResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2970320095, + "hash2": 2527707593, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemLabelGroupResource", + "type_name_2": "ItemLabelGroupResource", + "qualified_name": "keen::ItemLabelGroupResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3146556920, + "hash2": 2062504262, + "struct_fields": [ + { + "name": "labels", + "type_name": "keen::BlobArray", + "type_hash": 1305194633, + "data_offset": 0 + }, + { + "name": "childGroups", + "type_name": "keen::BlobArray", + "type_hash": 2970320095, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootableItemInfo", + "type_name_2": "LootableItemInfo", + "qualified_name": "keen::LootableItemInfo", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3387615299, + "hash2": 3476316249, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "rarities", + "type_name": "keen::ItemRarityMask", + "type_hash": 1803046066, + "data_offset": 4 + }, + { + "name": "useUiRarity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "uiRarity", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 6 + }, + { + "name": "labelGroups", + "type_name": "keen::ItemLabelGroupResource", + "type_hash": 3146556920, + "data_offset": 8 + }, + { + "name": "stackSizeMin", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 24 + }, + { + "name": "stackSizeMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 26 + }, + { + "name": "stackSizeMaxScaled", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 28 + }, + { + "name": "stackSizeScalable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 30 + }, + { + "name": "shufflebagType", + "type_name": "keen::ShufflebagItemType", + "type_hash": 199409696, + "data_offset": 31 + }, + { + "name": "hasWeaponCategory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "weaponCategoryType", + "type_name": "keen::WeaponCategoryType", + "type_hash": 4047677134, + "data_offset": 33 + }, + { + "name": "armorCategoryType", + "type_name": "keen::EquipmentSlotType", + "type_hash": 723518746, + "data_offset": 34 + }, + { + "name": "classAlignmentType", + "type_name": "keen::ItemClassAlignmentType", + "type_hash": 864255840, + "data_offset": 35 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LootableItemInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LootableItemInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 724235618, + "hash2": 3960598379, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootableItemsResource", + "type_name_2": "LootableItemsResource", + "qualified_name": "keen::LootableItemsResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 735589216, + "hash2": 474130208, + "struct_fields": [ + { + "name": "globalRarityDropRates", + "type_name": "keen::StaticArray", + "type_hash": 4208928690, + "data_offset": 0 + }, + { + "name": "weaponArmorRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "items", + "type_name": "keen::BlobArray", + "type_hash": 724235618, + "data_offset": 24 + }, + { + "name": "itemClassCategoryMask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 32 + }, + { + "name": "weaponCategoryMask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "armorCategoryMask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DefaultLootSettingsResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DefaultLootSettingsResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1306310929, + "hash2": 573109170, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollectionResource", + "type_name_2": "DefaultLootLabelCollectionResource", + "qualified_name": "keen::DefaultLootLabelCollectionResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1792578505, + "hash2": 2982557192, + "struct_fields": [ + { + "name": "lootSettings", + "type_name": "keen::BlobArray", + "type_hash": 1306310929, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootSettingsResource", + "type_name_2": "DefaultLootSettingsResource", + "qualified_name": "keen::DefaultLootSettingsResource", + "referenced_type_name": "keen::LootSettingsResource", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 387836796, + "hash2": 614534323, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistributionLootSceneInput", + "type_name_2": "DistributionLootSceneInput", + "qualified_name": "keen::DistributionLootSceneInput", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1147731418, + "hash2": 2459004451, + "struct_fields": [ + { + "name": "scatterSetId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "modifier", + "type_name": "keen::LootModifierInfo", + "type_hash": 2377472769, + "data_offset": 16 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1305194633, + "data_offset": 80 + }, + { + "name": "lootIdsInput", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 88 + }, + { + "name": "lootTreeInput", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DistributionLootSceneInput[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DistributionLootSceneInput", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4170669517, + "hash2": 2785991253, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionLootConverterParameters", + "type_name_2": "DistributionLootConverterParameters", + "qualified_name": "keen::DistributionLootConverterParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2216829094, + "hash2": 2485745566, + "struct_fields": [ + { + "name": "lootSceneInputs", + "type_name": "keen::BlobArray", + "type_hash": 4170669517, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugItemDropInfo", + "type_name_2": "DebugItemDropInfo", + "qualified_name": "keen::DebugItemDropInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3221784011, + "hash2": 3078108522, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugLootSceneInfoMessage", + "type_name_2": "DebugLootSceneInfoMessage", + "qualified_name": "keen::DebugLootSceneInfoMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3232445200, + "hash2": 2250072015, + "struct_fields": [ + { + "name": "sceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 766566047, + "hash2": 874609437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DebugItemDropInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DebugItemDropInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 730570720, + "hash2": 519512883, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugLootContainerInfoMessage", + "type_name_2": "DebugLootContainerInfoMessage", + "qualified_name": "keen::DebugLootContainerInfoMessage", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 247865165, + "hash2": 3103386855, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "droppedItems", + "type_name": "keen::BlobArray", + "type_hash": 766566047, + "data_offset": 4 + }, + { + "name": "weightSum", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "modifierInfo", + "type_name": "keen::LootModifierInfo", + "type_hash": 2377472769, + "data_offset": 16 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1305194633, + "data_offset": 80 + }, + { + "name": "possibleItems", + "type_name": "keen::BlobArray", + "type_hash": 730570720, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobOptional", + "type_name_2": "Optional", + "qualified_name": "keen::BlobOptional", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "BlobOptional", + "hash1": 1438948477, + "hash2": 2664501189, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RegisteredLootContainerParams", + "type_name_2": "RegisteredLootContainerParams", + "qualified_name": "keen::RegisteredLootContainerParams", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2876078797, + "hash2": 1056599061, + "struct_fields": [ + { + "name": "containerId", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 0 + }, + { + "name": "parentNodeId", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 4 + }, + { + "name": "labelDefinitionsId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "baseProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "slotsMin", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "slotsMax", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + }, + { + "name": "level", + "type_name": "keen::BlobOptional", + "type_hash": 1438948477, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RegisteredLootContainerParams[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RegisteredLootContainerParams", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 454960158, + "hash2": 1786734104, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugRegisteredLootContainerMessage", + "type_name_2": "DebugRegisteredLootContainerMessage", + "qualified_name": "keen::DebugRegisteredLootContainerMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1136683073, + "hash2": 1135912706, + "struct_fields": [ + { + "name": "registeredContainer", + "type_name": "keen::BlobArray", + "type_hash": 454960158, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugTrackLootContainerMessage", + "type_name_2": "DebugTrackLootContainerMessage", + "qualified_name": "keen::DebugTrackLootContainerMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3596989992, + "hash2": 177866605, + "struct_fields": [ + { + "name": "isLootContainer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugRefreshLootMessage", + "type_name_2": "DebugRefreshLootMessage", + "qualified_name": "keen::DebugRefreshLootMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 28356257, + "hash2": 3799468233, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GroupedItemLabels", + "type_name_2": "GroupedItemLabels", + "qualified_name": "keen::GroupedItemLabels", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2221198620, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LabelMask", + "type_name_2": "LabelMask", + "qualified_name": "keen::LabelMask", + "referenced_type_name": "keen::uint64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3280771388, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MarkerTypeSorting", + "type_name_2": "MarkerTypeSorting", + "qualified_name": "keen::MarkerTypeSorting", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3045584584, + "hash2": 3887227372, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "FlameRelated", + "value": 1 + }, + { + "name": "Dungeons", + "value": 2 + }, + { + "name": "Locations", + "value": 3 + }, + { + "name": "CustomMarker", + "value": 4 + } + ] + }, + { + "type_name_1": "MapMarkerType", + "type_name_2": "MapMarkerType", + "qualified_name": "keen::MapMarkerType", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 141074234, + "hash2": 3857809613, + "struct_fields": [ + { + "name": "markerId", + "type_name": "keen::MapMarkerTypeId", + "type_hash": 63754647, + "data_offset": 0 + }, + { + "name": "icon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 4 + }, + { + "name": "iconDisplaySize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "isHighlightable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "isFastTravelDestination", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + }, + { + "name": "showAboveFogOfWar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 58 + }, + { + "name": "showLabel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 59 + }, + { + "name": "showRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "isCustomMarkerType", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "canBeFiltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "sortingCategory", + "type_name": "keen::MarkerTypeSorting", + "type_hash": 3045584584, + "data_offset": 63 + }, + { + "name": "minimizeAboveZoomStep", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 64 + }, + { + "name": "hideAboveZoomStep", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 65 + }, + { + "name": "minimizedColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 68 + }, + { + "name": "scaleWithZoom", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerRegistryTool", + "type_name_2": "MapMarkerRegistryTool", + "qualified_name": "keen::MapMarkerRegistryTool", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3525352531, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "MapMarkerType[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::MapMarkerType", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3509200399, + "hash2": 1804987283, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerRegistryResource", + "type_name_2": "MapMarkerRegistryResource", + "qualified_name": "keen::MapMarkerRegistryResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 829155057, + "hash2": 358947054, + "struct_fields": [ + { + "name": "mapMarkers", + "type_name": "keen::BlobArray", + "type_hash": 3509200399, + "data_offset": 0 + }, + { + "name": "texturePreload", + "type_name": "keen::UiTexturePreload", + "type_hash": 2348033432, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomMapMarker", + "type_name_2": "CustomMapMarker", + "qualified_name": "keen::CustomMapMarker", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1454391659, + "hash2": 806232477, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "colorScheme", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "type", + "type_name": "keen::MapMarkerTypeId", + "type_hash": 63754647, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HappinessRequirement", + "type_name_2": "npc.HappinessRequirement", + "qualified_name": "keen::npc::HappinessRequirement", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 97699181, + "hash2": 3040300418, + "struct_fields": [], + "enum_fields": [ + { + "name": "Sheltered", + "value": 0 + }, + { + "name": "Bed", + "value": 1 + }, + { + "name": "Food", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::npc::HappinessRequirement", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 322102045, + "hash2": 3607447721, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HapinessMask", + "type_name_2": "npc.HapinessMask", + "qualified_name": "keen::npc::HapinessMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4253073678, + "hash2": 894339227, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IdleSequenceSetup", + "type_name_2": "npc.IdleSequenceSetup", + "qualified_name": "keen::npc::IdleSequenceSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 428268939, + "hash2": 2051284720, + "struct_fields": [ + { + "name": "minSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseIndex", + "type_name_2": "player_bases.BaseIndex", + "qualified_name": "keen::player_bases::BaseIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2084349729, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlacedNpcInfo", + "type_name_2": "npc.PlacedNpcInfo", + "qualified_name": "keen::npc::PlacedNpcInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 751724791, + "hash2": 1165614127, + "struct_fields": [ + { + "name": "baseIndex", + "type_name": "keen::player_bases::BaseIndex", + "type_hash": 2084349729, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "happiness", + "type_name": "keen::npc::HapinessMask", + "type_hash": 4253073678, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "active_npc.State", + "qualified_name": "keen::active_npc::State", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 14, + "primitive_type": "Enum", + "hash1": 1204670617, + "hash2": 3823564976, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Start", + "value": 1 + }, + { + "name": "FindBed", + "value": 2 + }, + { + "name": "Idle", + "value": 3 + }, + { + "name": "DecideTask", + "value": 4 + }, + { + "name": "FindTarget", + "value": 5 + }, + { + "name": "GoToTarget", + "value": 6 + }, + { + "name": "Work", + "value": 7 + }, + { + "name": "Roam", + "value": 8 + }, + { + "name": "Sleep", + "value": 9 + }, + { + "name": "Sitting", + "value": 10 + }, + { + "name": "Inspecting", + "value": 11 + }, + { + "name": "Eating", + "value": 12 + }, + { + "name": "FinishTask", + "value": 13 + } + ] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "active_npc.StateCondition", + "qualified_name": "keen::active_npc::StateCondition", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2626564698, + "hash2": 3649704910, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsFinished", + "value": 0 + }, + { + "name": "HasFailed", + "value": 1 + } + ] + }, + { + "type_name_1": "Decision", + "type_name_2": "active_npc.Decision", + "qualified_name": "keen::active_npc::Decision", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 3177677322, + "hash2": 2305190585, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "WantsToWork", + "value": 1 + }, + { + "name": "WantsToRoam", + "value": 2 + }, + { + "name": "WantsToSitDown", + "value": 3 + }, + { + "name": "WantsToInspect", + "value": 4 + }, + { + "name": "WantsToSleep", + "value": 5 + }, + { + "name": "WantsToEat", + "value": 6 + }, + { + "name": "WantsToIdle", + "value": 7 + } + ] + }, + { + "type_name_1": "NpcType", + "type_name_2": "active_npc.NpcType", + "qualified_name": "keen::active_npc::NpcType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 1075951571, + "hash2": 2777005378, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "TownFolk", + "value": 1 + }, + { + "name": "Alchemist", + "value": 2 + }, + { + "name": "Bard", + "value": 3 + }, + { + "name": "Blacksmith", + "value": 4 + }, + { + "name": "Carpenter", + "value": 5 + }, + { + "name": "CryptKeeper", + "value": 6 + }, + { + "name": "Hunter", + "value": 7 + }, + { + "name": "Farmer", + "value": 8 + } + ] + }, + { + "type_name_1": "DecisionSetup", + "type_name_2": "active_npc.DecisionSetup", + "qualified_name": "keen::active_npc::DecisionSetup", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1472828807, + "hash2": 416673234, + "struct_fields": [ + { + "name": "idleWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "inspectWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "sitWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "roamWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "workWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdleSetup", + "type_name_2": "active_npc.IdleSetup", + "qualified_name": "keen::active_npc::IdleSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1432298475, + "hash2": 2778551880, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SearchTargetSetup", + "type_name_2": "active_npc.SearchTargetSetup", + "qualified_name": "keen::active_npc::SearchTargetSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3478417394, + "hash2": 3675658600, + "struct_fields": [ + { + "name": "targetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorkSetup", + "type_name_2": "active_npc.WorkSetup", + "qualified_name": "keen::active_npc::WorkSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 162227298, + "hash2": 2778551880, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetSetup", + "type_name_2": "active_npc.TargetSetup", + "qualified_name": "keen::active_npc::TargetSetup", + "referenced_type_name": null, + "class_size": 6, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 428040718, + "hash2": 2897492741, + "struct_fields": [ + { + "name": "isFarmland", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isBed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "isCraftingStation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "isSeating", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "isFood", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "isInteresting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::NpcDialogDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3712490569, + "hash2": 32756065, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialog", + "type_name_2": "ecs.NpcDialog", + "qualified_name": "keen::ecs::NpcDialog", + "referenced_type_name": "keen::ecs::Component", + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2846724326, + "hash2": 1937531253, + "struct_fields": [ + { + "name": "isFlame", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "dialog", + "type_name": "keen::ObjectReference", + "type_hash": 3712490569, + "data_offset": 4 + }, + { + "name": "dialogResource", + "type_name": "keen::NpcDialogResource", + "type_hash": 913956789, + "data_offset": 20 + }, + { + "name": "interactionVerbLoca", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNpcDialog", + "type_name_2": "ecs.DynamicNpcDialog", + "qualified_name": "keen::ecs::DynamicNpcDialog", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1250528863, + "hash2": 530574004, + "struct_fields": [ + { + "name": "syncedKnowledgeQueryCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogPartner", + "type_name_2": "ecs.NpcDialogPartner", + "qualified_name": "keen::ecs::NpcDialogPartner", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3566439040, + "hash2": 26268450, + "struct_fields": [ + { + "name": "isInGreetingRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lastGreetingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcState", + "type_name_2": "ecs.NpcState", + "qualified_name": "keen::ecs::NpcState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 128, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2893704571, + "hash2": 1218825047, + "struct_fields": [ + { + "name": "defaultGreetingSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "attentionGreetingSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + }, + { + "name": "turnSetup", + "type_name": "keen::actor::TurnSetup", + "type_hash": 90222665, + "data_offset": 32 + }, + { + "name": "idleSetup", + "type_name": "keen::npc::IdleSequenceSetup", + "type_hash": 428268939, + "data_offset": 104 + }, + { + "name": "hapinessMask", + "type_name": "keen::npc::HapinessMask", + "type_hash": 4253073678, + "data_offset": 120 + }, + { + "name": "minDistanceToPlayer", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerMask", + "type_name_2": "ecs.PlayerMask", + "qualified_name": "keen::ecs::PlayerMask", + "referenced_type_name": "keen::uint64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3476616758, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcInteractionState", + "type_name_2": "ecs.NpcInteractionState", + "qualified_name": "keen::ecs::NpcInteractionState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2853559475, + "hash2": 3981102775, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsTurning", + "value": 0 + }, + { + "name": "IsGreeting", + "value": 1 + }, + { + "name": "IsCloseToPlayer", + "value": 2 + }, + { + "name": "IsPlayingSequence", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ecs::NpcInteractionState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3134264763, + "hash2": 866567999, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcInteractionStates", + "type_name_2": "ecs.NpcInteractionStates", + "qualified_name": "keen::ecs::NpcInteractionStates", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2154463808, + "hash2": 3658279074, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.QueryId[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::QueryId", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 3005766157, + "hash2": 262153248, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNpcState", + "type_name_2": "ecs.DynamicNpcState", + "qualified_name": "keen::ecs::DynamicNpcState", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 645485508, + "hash2": 3721727269, + "struct_fields": [ + { + "name": "lastSelectedDialogId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "lastInteractingEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 4 + }, + { + "name": "dialogSequenceActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "nextGreetingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lastLookAtPlayerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "nextLookAtPlayerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "remainingNextSequenceTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "queryIds", + "type_name": "keen::StaticArray", + "type_hash": 3005766157, + "data_offset": 48 + }, + { + "name": "playersInSight", + "type_name": "keen::ecs::PlayerMask", + "type_hash": 3476616758, + "data_offset": 112 + }, + { + "name": "greetedPlayers", + "type_name": "keen::ecs::PlayerMask", + "type_hash": 3476616758, + "data_offset": 120 + }, + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "isSpawning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 129 + }, + { + "name": "revertToRotation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActiveNpcState", + "type_name_2": "ecs.ActiveNpcState", + "qualified_name": "keen::ecs::ActiveNpcState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 264, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 445339913, + "hash2": 928013307, + "struct_fields": [ + { + "name": "npcId", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 0 + }, + { + "name": "sitSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 4 + }, + { + "name": "sleepSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 20 + }, + { + "name": "inspectSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 36 + }, + { + "name": "npcType", + "type_name": "keen::active_npc::NpcType", + "type_hash": 1075951571, + "data_offset": 52 + }, + { + "name": "decisionSetup", + "type_name": "keen::active_npc::DecisionSetup", + "type_hash": 1472828807, + "data_offset": 56 + }, + { + "name": "idleSetup", + "type_name": "keen::active_npc::IdleSetup", + "type_hash": 1432298475, + "data_offset": 80 + }, + { + "name": "roamingSetup", + "type_name": "keen::active_npc::RoamingSetup", + "type_hash": 1997248772, + "data_offset": 96 + }, + { + "name": "movementSetup", + "type_name": "keen::active_npc::MovementSetup", + "type_hash": 795325050, + "data_offset": 108 + }, + { + "name": "workSetup", + "type_name": "keen::active_npc::WorkSetup", + "type_hash": 162227298, + "data_offset": 120 + }, + { + "name": "sleepSetup", + "type_name": "keen::active_npc::SleepSetup", + "type_hash": 2369493944, + "data_offset": 136 + }, + { + "name": "searchTargetSetup", + "type_name": "keen::active_npc::SearchTargetSetup", + "type_hash": 3478417394, + "data_offset": 152 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::active_npc::PathNodeSetup", + "type_hash": 3002318660, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicActiveNpcState", + "type_name_2": "ecs.DynamicActiveNpcState", + "qualified_name": "keen::ecs::DynamicActiveNpcState", + "referenced_type_name": null, + "class_size": 5, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2657439866, + "hash2": 4239235693, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::active_npc::State", + "type_hash": 1204670617, + "data_offset": 0 + }, + { + "name": "previousState", + "type_name": "keen::active_npc::State", + "type_hash": 1204670617, + "data_offset": 1 + }, + { + "name": "decision", + "type_name": "keen::active_npc::Decision", + "type_hash": 3177677322, + "data_offset": 2 + }, + { + "name": "happiness", + "type_name": "keen::npc::HapinessMask", + "type_hash": 4253073678, + "data_offset": 3 + }, + { + "name": "wasPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NPCMovement", + "type_name_2": "ecs.NPCMovement", + "qualified_name": "keen::ecs::NPCMovement", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3708594199, + "hash2": 470867349, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "movement", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.NPCMovement[60]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ecs::NPCMovement", + "class_size": 1440, + "fields_count": 60, + "primitive_type": "StaticArray", + "hash1": 1827138409, + "hash2": 764625005, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcCommon", + "type_name_2": "ecs.NpcCommon", + "qualified_name": "keen::ecs::NpcCommon", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1552, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 120438199, + "hash2": 1084966268, + "struct_fields": [ + { + "name": "interactionStates", + "type_name": "keen::ecs::NpcInteractionStates", + "type_hash": 2154463808, + "data_offset": 0 + }, + { + "name": "stateTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "currentStateDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "stuckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "stuckTimeOut", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 40 + }, + { + "name": "closestPlayerId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 44 + }, + { + "name": "currentTargetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 48 + }, + { + "name": "bedId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 52 + }, + { + "name": "previousTargetId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 56 + }, + { + "name": "sleepTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "wakeUpTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "closestPlayerDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "squaredDistanceToTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "currentTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "history", + "type_name": "keen::StaticArray", + "type_hash": 1827138409, + "data_offset": 88 + }, + { + "name": "historyIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1528 + }, + { + "name": "currentSequenceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 1532 + }, + { + "name": "useReducedRoamingSpace", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1548 + }, + { + "name": "shouldBeMoving", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1549 + }, + { + "name": "unstuckTries", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1550 + }, + { + "name": "stateFailures", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1551 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActiveNpcStateSaved", + "type_name_2": "ecs.ActiveNpcStateSaved", + "qualified_name": "keen::ecs::ActiveNpcStateSaved", + "referenced_type_name": "keen::ecs::Component", + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 513739400, + "hash2": 2901925229, + "struct_fields": [ + { + "name": "spawnPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "overrideRoamingRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "teleportPositionAfterFinishing", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientActiveNpcState", + "type_name_2": "ecs.ClientActiveNpcState", + "qualified_name": "keen::ecs::ClientActiveNpcState", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3125961134, + "hash2": 1647281779, + "struct_fields": [ + { + "name": "bedId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 0 + }, + { + "name": "happiness", + "type_name": "keen::npc::HapinessMask", + "type_hash": 4253073678, + "data_offset": 4 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "NpcId[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::NpcId", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 1495877602, + "hash2": 3551065338, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoreAssociatedNpcIds", + "type_name_2": "ecs.StoreAssociatedNpcIds", + "qualified_name": "keen::ecs::StoreAssociatedNpcIds", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3354172489, + "hash2": 843577875, + "struct_fields": [ + { + "name": "initialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "npcIds", + "type_name": "keen::StaticArray", + "type_hash": 1495877602, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActiveNpcTarget", + "type_name_2": "ecs.ActiveNpcTarget", + "qualified_name": "keen::ecs::ActiveNpcTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1261373533, + "hash2": 4252230482, + "struct_fields": [ + { + "name": "setup", + "type_name": "keen::active_npc::TargetSetup", + "type_hash": 428040718, + "data_offset": 0 + }, + { + "name": "npcType", + "type_name": "keen::active_npc::NpcType", + "type_hash": 1075951571, + "data_offset": 6 + }, + { + "name": "associatedNpc", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 8 + }, + { + "name": "targetOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientActiveNpcTarget", + "type_name_2": "ecs.ClientActiveNpcTarget", + "qualified_name": "keen::ecs::ClientActiveNpcTarget", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3314923216, + "hash2": 1499942039, + "struct_fields": [ + { + "name": "associatedNpc", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 0 + }, + { + "name": "isBed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcSequenceEntry", + "type_name_2": "ecs.NpcSequenceEntry", + "qualified_name": "keen::ecs::NpcSequenceEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 692444737, + "hash2": 1847443484, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.NpcSequenceEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::NpcSequenceEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1999494462, + "hash2": 1515449278, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BaseNpcSequences", + "type_name_2": "ecs.BaseNpcSequences", + "qualified_name": "keen::ecs::BaseNpcSequences", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4181372753, + "hash2": 2908796156, + "struct_fields": [ + { + "name": "sequences", + "type_name": "keen::BlobArray", + "type_hash": 1999494462, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcIdleSequences", + "type_name_2": "ecs.NpcIdleSequences", + "qualified_name": "keen::ecs::NpcIdleSequences", + "referenced_type_name": "keen::ecs::BaseNpcSequences", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 387053626, + "hash2": 3518498913, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcWorkSequences", + "type_name_2": "ecs.NpcWorkSequences", + "qualified_name": "keen::ecs::NpcWorkSequences", + "referenced_type_name": "keen::ecs::BaseNpcSequences", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1938663483, + "hash2": 3518498913, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcActionSequences", + "type_name_2": "ecs.NpcActionSequences", + "qualified_name": "keen::ecs::NpcActionSequences", + "referenced_type_name": "keen::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 707827718, + "hash2": 336533305, + "struct_fields": [ + { + "name": "idleSequences", + "type_name": "keen::ecs::NpcIdleSequences", + "type_hash": 387053626, + "data_offset": 0 + }, + { + "name": "workSequences", + "type_name": "keen::ecs::NpcWorkSequences", + "type_hash": 1938663483, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcResource", + "type_name_2": "NpcResource", + "qualified_name": "keen::NpcResource", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3164848289, + "hash2": 4239715000, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 4 + }, + { + "name": "isCraftingAssistant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "unlockRequirement", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 12 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 16 + }, + { + "name": "workshopLabel", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 20 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 24 + }, + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 28 + }, + { + "name": "characterPresetReference", + "type_name": "keen::CharacterPresetReference", + "type_hash": 2346815751, + "data_offset": 44 + }, + { + "name": "characterPresetId", + "type_name": "keen::CharacterPresetId", + "type_hash": 1797073151, + "data_offset": 60 + }, + { + "name": "uiRendering", + "type_name": "keen::UiNpcRenderingOptions", + "type_hash": 2227643213, + "data_offset": 64 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 116 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "NpcResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::NpcResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3460725678, + "hash2": 1495137317, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcCollection", + "type_name_2": "NpcCollection", + "qualified_name": "keen::NpcCollection", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1135487733, + "hash2": 1274033067, + "struct_fields": [ + { + "name": "npcs", + "type_name": "keen::BlobArray", + "type_hash": 3460725678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathFinder", + "type_name_2": "ecs.PathFinder", + "qualified_name": "keen::ecs::PathFinder", + "referenced_type_name": "keen::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1488816616, + "hash2": 1784972229, + "struct_fields": [ + { + "name": "horizontalStartSearchRadius", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 0 + }, + { + "name": "verticalStartSearchRadius", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 4 + }, + { + "name": "settings", + "type_name": "keen::ecs::PathfindingSettings", + "type_hash": 2066076624, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicPathFinder", + "type_name_2": "ecs.DynamicPathFinder", + "qualified_name": "keen::ecs::DynamicPathFinder", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 38, + "primitive_type": "Struct", + "hash1": 3934630783, + "hash2": 3677995580, + "struct_fields": [ + { + "name": "lastQueryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "lastStartPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "lastTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "lastKeepDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "lastParametersHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 48 + }, + { + "name": "lastMaxTargetNodeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "queryId", + "type_name": "keen::ecs::PathQueryId", + "type_hash": 481614841, + "data_offset": 56 + }, + { + "name": "keepDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + }, + { + "name": "horizontalSearchRadius", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 64 + }, + { + "name": "verticalSearchRadius", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 68 + }, + { + "name": "gridType", + "type_name": "keen::ecs::PathGridType", + "type_hash": 3868916840, + "data_offset": 72 + }, + { + "name": "keepLastResults", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "pathQueryCheck", + "type_name": "keen::ecs::PathQueryCheck", + "type_hash": 116485916, + "data_offset": 74 + }, + { + "name": "freePathCheckIgnoreEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 76 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 80 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 84 + }, + { + "name": "maxTargetNodeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "maxWalkDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "targetType", + "type_name": "keen::ecs::PathQueryTargetType", + "type_hash": 3879424597, + "data_offset": 96 + }, + { + "name": "maxIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "horizontalKeepDistanceDirection", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 104 + }, + { + "name": "freePathCheckPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "enableAdditionalSpaceSearch", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + }, + { + "name": "enableJumpUp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + }, + { + "name": "enableJumpDown", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 126 + }, + { + "name": "canOpenDoors", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 127 + }, + { + "name": "maxJumpUpHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 128 + }, + { + "name": "maxJumpDownHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 129 + }, + { + "name": "enforceUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 130 + }, + { + "name": "ignoreWalkableColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 131 + }, + { + "name": "ignoreMovingObjects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "minTargetHorizontalSpace", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 136 + }, + { + "name": "pathNodeRequirements", + "type_name": "keen::ecs::PathNodeRequirements", + "type_hash": 257535372, + "data_offset": 140 + }, + { + "name": "pathNodeCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 144 + }, + { + "name": "horizontalDistanceCostFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "checkFreePathToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 200 + }, + { + "name": "ignoreNodesCloseToHole", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 201 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathWalkerState", + "type_name_2": "ecs.PathWalkerState", + "qualified_name": "keen::ecs::PathWalkerState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 14, + "primitive_type": "Enum", + "hash1": 2413906207, + "hash2": 3954510247, + "struct_fields": [], + "enum_fields": [ + { + "name": "Idle", + "value": 0 + }, + { + "name": "WaitingForQuery", + "value": 1 + }, + { + "name": "Walking", + "value": 2 + }, + { + "name": "TurnBeforeJump", + "value": 3 + }, + { + "name": "WalkToJumpPoint", + "value": 4 + }, + { + "name": "JumpUp", + "value": 5 + }, + { + "name": "JumpDown", + "value": 6 + }, + { + "name": "TargetReached", + "value": 7 + }, + { + "name": "TargetNotReachable", + "value": 8 + }, + { + "name": "Stuck", + "value": 9 + }, + { + "name": "Turn", + "value": 10 + }, + { + "name": "Teleporting", + "value": 11 + }, + { + "name": "WalkToDoor", + "value": 12 + }, + { + "name": "OpenDoor", + "value": 13 + } + ] + }, + { + "type_name_1": "PathWalkerTurnSettings", + "type_name_2": "ecs.PathWalkerTurnSettings", + "qualified_name": "keen::ecs::PathWalkerTurnSettings", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1390792212, + "hash2": 1073004470, + "struct_fields": [ + { + "name": "turnToNextWayPointMinDistanceWalk", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "turnToNextWayPointMinDistanceRun", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathWalker", + "type_name_2": "ecs.PathWalker", + "qualified_name": "keen::ecs::PathWalker", + "referenced_type_name": "keen::ecs::Component", + "class_size": 76, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4171420746, + "hash2": 3964476713, + "struct_fields": [ + { + "name": "jumpSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 0 + }, + { + "name": "openDoorSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 16 + }, + { + "name": "usePathFinding", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "teleportSequence", + "type_name": "keen::actor::ActorSequenceReference", + "type_hash": 1861536478, + "data_offset": 36 + }, + { + "name": "jumpMoveSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "horizontalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "verticalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "pathNodeRequirements", + "type_name": "keen::ecs::PathNodeRequirements", + "type_hash": 257535372, + "data_offset": 64 + }, + { + "name": "turnSettings", + "type_name": "keen::ecs::PathWalkerTurnSettings", + "type_hash": 1390792212, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicPathWalker", + "type_name_2": "ecs.DynamicPathWalker", + "qualified_name": "keen::ecs::DynamicPathWalker", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 56, + "primitive_type": "Struct", + "hash1": 1789955169, + "hash2": 673485257, + "struct_fields": [ + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "upateCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "pathIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "state", + "type_name": "keen::ecs::PathWalkerState", + "type_hash": 2413906207, + "data_offset": 20 + }, + { + "name": "lookAtTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "lookAtMovementTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "setDesiredWorldLookDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "keepDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "horizontalSearchRadius", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 44 + }, + { + "name": "verticalSearchRadius", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 48 + }, + { + "name": "maxArriveWaypointDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "maxArriveTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "shouldOverrideMinArriveDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "overrideMinArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "shouldOverrideMinTurnDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "overrideMinTurnDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "stuckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "keepLastResults", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "pathQueryCheck", + "type_name": "keen::ecs::PathQueryCheck", + "type_hash": 116485916, + "data_offset": 89 + }, + { + "name": "freePathCheckIgnoreEntityId", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 92 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 96 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 100 + }, + { + "name": "standingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "walkingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "maxTargetNodeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "maxWalkDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "targetType", + "type_name": "keen::ecs::PathQueryTargetType", + "type_hash": 3879424597, + "data_offset": 128 + }, + { + "name": "closestWaypointSquareDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 132 + }, + { + "name": "maxIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "currentPathLengthToTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 140 + }, + { + "name": "horizontalKeepDistanceDirection", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "freePathCheckPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 152 + }, + { + "name": "lastReachedTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 164 + }, + { + "name": "isWalkingActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + }, + { + "name": "enableAdditionalSpaceSearch", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 177 + }, + { + "name": "enableJumpUp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 178 + }, + { + "name": "enableJumpDown", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 179 + }, + { + "name": "canOpenDoors", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 180 + }, + { + "name": "maxJumpUpHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 181 + }, + { + "name": "maxJumpDownHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 182 + }, + { + "name": "lastEnforceUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 184 + }, + { + "name": "useTurnSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 192 + }, + { + "name": "turnSequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 200 + }, + { + "name": "teleportSequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 224 + }, + { + "name": "openDoorSequenceId", + "type_name": "keen::actor::SequenceRuntimeId", + "type_hash": 3494505059, + "data_offset": 248 + }, + { + "name": "minTargetHorizontalSpace", + "type_name": "keen::ecs::PathGridDistance", + "type_hash": 751054043, + "data_offset": 272 + }, + { + "name": "enableTeleportMovement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 276 + }, + { + "name": "ignoreWalkableColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 277 + }, + { + "name": "pathNodeCostFactors", + "type_name": "keen::ecs::PathNodeCostFactors", + "type_hash": 1798842315, + "data_offset": 280 + }, + { + "name": "horizontalDistanceCostFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 332 + }, + { + "name": "checkFreePathToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 336 + }, + { + "name": "pathNodeRequirementsOverride", + "type_name": "keen::ecs::PathNodeRequirements", + "type_hash": 257535372, + "data_offset": 338 + }, + { + "name": "useNodeRequirementsOverride", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 342 + }, + { + "name": "ignoreMovingObjects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 343 + }, + { + "name": "tryToReachTargetAsCloseAsPossible", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 344 + }, + { + "name": "ignoreNodesCloseToHole", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 345 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathGridInteractionObjectType", + "type_name_2": "ecs.PathGridInteractionObjectType", + "qualified_name": "keen::ecs::PathGridInteractionObjectType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2964588391, + "hash2": 4245308190, + "struct_fields": [], + "enum_fields": [ + { + "name": "Door", + "value": 0 + }, + { + "name": "MovingObject", + "value": 1 + } + ] + }, + { + "type_name_1": "PathGridInteraction", + "type_name_2": "ecs.PathGridInteraction", + "qualified_name": "keen::ecs::PathGridInteraction", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 122684040, + "hash2": 3232868725, + "struct_fields": [ + { + "name": "interactionObjectType", + "type_name": "keen::ecs::PathGridInteractionObjectType", + "type_hash": 2964588391, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicPathGridInteraction", + "type_name_2": "ecs.DynamicPathGridInteraction", + "qualified_name": "keen::ecs::DynamicPathGridInteraction", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2705063021, + "hash2": 3372151665, + "struct_fields": [ + { + "name": "isRegistered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathFinderTester", + "type_name_2": "ecs.PathFinderTester", + "qualified_name": "keen::ecs::PathFinderTester", + "referenced_type_name": "keen::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3564090267, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathFindingMarkerType", + "type_name_2": "ecs.PathFindingMarkerType", + "qualified_name": "keen::ecs::PathFindingMarkerType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3088191463, + "hash2": 1799705896, + "struct_fields": [], + "enum_fields": [ + { + "name": "Start", + "value": 0 + }, + { + "name": "Target", + "value": 1 + } + ] + }, + { + "type_name_1": "PathFindingMarkerTestMode", + "type_name_2": "ecs.PathFindingMarkerTestMode", + "qualified_name": "keen::ecs::PathFindingMarkerTestMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3482544276, + "hash2": 486913894, + "struct_fields": [], + "enum_fields": [ + { + "name": "PathFound", + "value": 0 + }, + { + "name": "NoPathFound", + "value": 1 + } + ] + }, + { + "type_name_1": "PathFindingMarkerTestState", + "type_name_2": "ecs.PathFindingMarkerTestState", + "qualified_name": "keen::ecs::PathFindingMarkerTestState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 4018722572, + "hash2": 2170069548, + "struct_fields": [], + "enum_fields": [ + { + "name": "NotStarted", + "value": 0 + }, + { + "name": "Running", + "value": 1 + }, + { + "name": "Finished", + "value": 2 + }, + { + "name": "Failed", + "value": 3 + } + ] + }, + { + "type_name_1": "PathFindingTestMarker", + "type_name_2": "ecs.PathFindingTestMarker", + "qualified_name": "keen::ecs::PathFindingTestMarker", + "referenced_type_name": "keen::ecs::Component", + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1462934815, + "hash2": 119068143, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ecs::PathFindingMarkerType", + "type_hash": 3088191463, + "data_offset": 0 + }, + { + "name": "testMode", + "type_name": "keen::ecs::PathFindingMarkerTestMode", + "type_hash": 3482544276, + "data_offset": 1 + }, + { + "name": "state", + "type_name": "keen::ecs::PathFindingMarkerTestState", + "type_hash": 4018722572, + "data_offset": 2 + }, + { + "name": "queryId", + "type_name": "keen::ecs::PathQueryId", + "type_hash": 481614841, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkDamageModifier", + "type_name_2": "PerkDamageModifier", + "qualified_name": "keen::PerkDamageModifier", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 90711262, + "hash2": 2803222564, + "struct_fields": [ + { + "name": "distribution", + "type_name": "keen::impact::DamageDistribution", + "type_hash": 3046348591, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkConfig", + "type_name_2": "PerkConfig", + "qualified_name": "keen::PerkConfig", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 2199331828, + "hash2": 4045993420, + "struct_fields": [], + "enum_fields": [ + { + "name": "MaxPerksPerItem", + "value": 5 + } + ] + }, + { + "type_name_1": "Perk", + "type_name_2": "Perk", + "qualified_name": "keen::Perk", + "referenced_type_name": null, + "class_size": 220, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1619284314, + "hash2": 2855365880, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::DescriptionLocaTag", + "type_hash": 1719653355, + "data_offset": 16 + }, + { + "name": "icon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 32 + }, + { + "name": "impact", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 80 + }, + { + "name": "simpleAttributeBuff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "uiValues", + "type_name": "keen::BlobArray", + "type_hash": 1021582228, + "data_offset": 100 + }, + { + "name": "impactValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 108 + }, + { + "name": "damageModifier", + "type_name": "keen::PerkDamageModifier", + "type_hash": 90711262, + "data_offset": 116 + }, + { + "name": "perkArmorSetup", + "type_name": "keen::ItemArmorSetup", + "type_hash": 1295216289, + "data_offset": 172 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 212 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkSubDirectory", + "type_name_2": "PerkSubDirectory", + "qualified_name": "keen::PerkSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4236107467, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkDirectory", + "type_name_2": "PerkDirectory", + "qualified_name": "keen::PerkDirectory", + "referenced_type_name": "keen::PerkSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4238734073, + "hash2": 450086461, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PerkReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PerkReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1899196132, + "hash2": 652456938, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkCollectionResource", + "type_name_2": "PerkCollectionResource", + "qualified_name": "keen::PerkCollectionResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3876415042, + "hash2": 50285120, + "struct_fields": [ + { + "name": "perks", + "type_name": "keen::BlobArray", + "type_hash": 1899196132, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeLevelRequirement", + "type_name_2": "RecipeLevelRequirement", + "qualified_name": "keen::RecipeLevelRequirement", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1560787117, + "hash2": 1291862984, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "LevelEqual", + "value": 1 + }, + { + "name": "LevelGreaterOrEqual", + "value": 2 + } + ] + }, + { + "type_name_1": "RecipeItemStack", + "type_name_2": "RecipeItemStack", + "qualified_name": "keen::RecipeItemStack", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2470153341, + "hash2": 2303639367, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeInputList", + "type_name_2": "RecipeInputList", + "qualified_name": "keen::RecipeInputList", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 707976128, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeOutputList", + "type_name_2": "RecipeOutputList", + "qualified_name": "keen::RecipeOutputList", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4082679397, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RequiredProp", + "type_name_2": "RequiredProp", + "qualified_name": "keen::RequiredProp", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2386914210, + "hash2": 4056296399, + "struct_fields": [ + { + "name": "craftingProp", + "type_name": "keen::ObjectReference", + "type_hash": 1206665003, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Recipe", + "type_name_2": "Recipe", + "qualified_name": "keen::Recipe", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 688170676, + "hash2": 930935760, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::DescriptionLocaTag", + "type_hash": 1719653355, + "data_offset": 16 + }, + { + "name": "lore", + "type_name": "keen::LoreLocaTag", + "type_hash": 2405621525, + "data_offset": 32 + }, + { + "name": "showIsNewLabel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "useCustomCompletionRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + }, + { + "name": "completionRequirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 52 + }, + { + "name": "requiresSheltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 156 + }, + { + "name": "workshopReference", + "type_name": "keen::ObjectReference", + "type_hash": 2160258773, + "data_offset": 160 + }, + { + "name": "levelRequirement", + "type_name": "keen::RecipeLevelRequirement", + "type_hash": 1560787117, + "data_offset": 176 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 180 + }, + { + "name": "comfortLevelRequirement", + "type_name": "keen::RecipeLevelRequirement", + "type_hash": 1560787117, + "data_offset": 184 + }, + { + "name": "comfortLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 188 + }, + { + "name": "serverProgressLevelRequirement", + "type_name": "keen::RecipeLevelRequirement", + "type_hash": 1560787117, + "data_offset": 192 + }, + { + "name": "serverProgressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 196 + }, + { + "name": "requiredHappyNpcCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "requiredEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 204 + }, + { + "name": "craftingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 208 + }, + { + "name": "isUpgrade", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeList", + "type_name_2": "RecipeList", + "qualified_name": "keen::RecipeList", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1693654716, + "hash2": 4073031701, + "struct_fields": [ + { + "name": "workshopDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 3649618557, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CraftingPropId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CraftingPropId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2553516595, + "hash2": 3365865703, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeInfo", + "type_name_2": "RecipeInfo", + "qualified_name": "keen::RecipeInfo", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 818793448, + "hash2": 3762642696, + "struct_fields": [ + { + "name": "recipeId", + "type_name": "keen::RecipeId", + "type_hash": 3262568217, + "data_offset": 0 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 4 + }, + { + "name": "input", + "type_name": "keen::BlobArray", + "type_hash": 3717410430, + "data_offset": 8 + }, + { + "name": "output", + "type_name": "keen::BlobArray", + "type_hash": 3717410430, + "data_offset": 16 + }, + { + "name": "requiresSheltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "showIsImportantLabel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "levelRequirement", + "type_name": "keen::RecipeLevelRequirement", + "type_hash": 1560787117, + "data_offset": 26 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "comfortLevelRequirement", + "type_name": "keen::RecipeLevelRequirement", + "type_hash": 1560787117, + "data_offset": 32 + }, + { + "name": "comfortLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "serverProgressLevelRequirement", + "type_name": "keen::RecipeLevelRequirement", + "type_hash": 1560787117, + "data_offset": 40 + }, + { + "name": "serverProgressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "requiredHappyNpcCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "requiredEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "craftingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "isCookingRecipe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "isUpgrade", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + }, + { + "name": "requiredProps", + "type_name": "keen::BlobArray", + "type_hash": 2553516595, + "data_offset": 68 + }, + { + "name": "requiredPropsMask", + "type_name": "keen::CraftingPropMask", + "type_hash": 664590845, + "data_offset": 80 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 88 + }, + { + "name": "recipeInspectedKnowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 92 + }, + { + "name": "recipeCraftedKnowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 96 + }, + { + "name": "completionRequirementId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 100 + }, + { + "name": "recipeName", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 104 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RecipeInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RecipeInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3256917407, + "hash2": 1607928808, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeRegistryResource", + "type_name_2": "RecipeRegistryResource", + "qualified_name": "keen::RecipeRegistryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1599308495, + "hash2": 2003774830, + "struct_fields": [ + { + "name": "recipes", + "type_name": "keen::BlobArray", + "type_hash": 3256917407, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillNodeLinkId", + "type_name_2": "SkillNodeLinkId", + "qualified_name": "keen::SkillNodeLinkId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1595668446, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillIdComponent", + "type_name_2": "ecs.SkillIdComponent", + "qualified_name": "keen::ecs::SkillIdComponent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 859283612, + "hash2": 1168619402, + "struct_fields": [ + { + "name": "skillId", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillNodeType", + "type_name_2": "SkillNodeType", + "qualified_name": "keen::SkillNodeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 4288048423, + "hash2": 501413497, + "struct_fields": [], + "enum_fields": [ + { + "name": "Root", + "value": 0 + }, + { + "name": "Attribute", + "value": 1 + }, + { + "name": "ActiveSkill", + "value": 2 + }, + { + "name": "PassiveSkill", + "value": 3 + }, + { + "name": "MartyrSkill", + "value": 4 + } + ] + }, + { + "type_name_1": "ClassType", + "type_name_2": "ClassType", + "qualified_name": "keen::ClassType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2130806166, + "hash2": 1142841548, + "struct_fields": [], + "enum_fields": [ + { + "name": "Warrior", + "value": 0 + }, + { + "name": "Mage", + "value": 1 + }, + { + "name": "Ranger", + "value": 2 + }, + { + "name": "Neutral", + "value": 3 + } + ] + }, + { + "type_name_1": "SkillTreeNodeLink", + "type_name_2": "SkillTreeNodeLink", + "qualified_name": "keen::SkillTreeNodeLink", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 143944119, + "hash2": 3518800587, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::SkillNodeLinkId", + "type_hash": 1595668446, + "data_offset": 0 + }, + { + "name": "sourceNode", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 4 + }, + { + "name": "targetNode", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 8 + }, + { + "name": "isBidirectional", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SkillNodeLinkId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SkillNodeLinkId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2387589291, + "hash2": 3906341050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeNode", + "type_name_2": "SkillTreeNode", + "qualified_name": "keen::SkillTreeNode", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 3182175763, + "hash2": 4204533544, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::SkillNodeId", + "type_hash": 933050386, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::SkillNodeType", + "type_hash": 4288048423, + "data_offset": 4 + }, + { + "name": "uiPosition", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "costs", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "name", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 20 + }, + { + "name": "description", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 24 + }, + { + "name": "classAlignment", + "type_name": "keen::ClassType", + "type_hash": 2130806166, + "data_offset": 28 + }, + { + "name": "activeSkillUnlockRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 32 + }, + { + "name": "activeSkillUnlock", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 48 + }, + { + "name": "iconInactive", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 52 + }, + { + "name": "iconActive", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 100 + }, + { + "name": "impactReference", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 148 + }, + { + "name": "uiValues", + "type_name": "keen::BlobArray", + "type_hash": 1021582228, + "data_offset": 164 + }, + { + "name": "configValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 172 + }, + { + "name": "isDeactivatedForEarlyAccess", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 180 + }, + { + "name": "incomingLinks", + "type_name": "keen::BlobArray", + "type_hash": 2387589291, + "data_offset": 184 + }, + { + "name": "outgoingLinks", + "type_name": "keen::BlobArray", + "type_hash": 2387589291, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SkillTreeNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 896287900, + "hash2": 779762843, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeNodeReference", + "type_name_2": "SkillTreeNodeReference", + "qualified_name": "keen::SkillTreeNodeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1399649240, + "hash2": 2174821601, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SkillTreeNode[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SkillTreeNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3068497656, + "hash2": 3590028264, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SkillTreeNodeLink[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SkillTreeNodeLink", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3959613744, + "hash2": 203748727, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeResource", + "type_name_2": "SkillTreeResource", + "qualified_name": "keen::SkillTreeResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3837172047, + "hash2": 3117814855, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::BlobArray", + "type_hash": 3068497656, + "data_offset": 0 + }, + { + "name": "links", + "type_name": "keen::BlobArray", + "type_hash": 3959613744, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeDefinition", + "type_name_2": "SkillTreeDefinition", + "qualified_name": "keen::SkillTreeDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2061126494, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Node", + "type_name_2": "skilltree_nodes.Node", + "qualified_name": "keen::skilltree_nodes::Node", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2262741313, + "hash2": 1181357019, + "struct_fields": [ + { + "name": "uiPosition", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::NameLocaTag", + "type_hash": 3407103420, + "data_offset": 8 + }, + { + "name": "description", + "type_name": "keen::DescriptionLocaTag", + "type_hash": 1719653355, + "data_offset": 24 + }, + { + "name": "iconInactive", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 40 + }, + { + "name": "iconActive", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 56 + }, + { + "name": "costs", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 72 + }, + { + "name": "classAlignment", + "type_name": "keen::ClassType", + "type_hash": 2130806166, + "data_offset": 74 + }, + { + "name": "isDeactivatedForEarlyAccess", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 75 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartingNode", + "type_name_2": "skilltree_nodes.StartingNode", + "qualified_name": "keen::skilltree_nodes::StartingNode", + "referenced_type_name": "keen::skilltree_nodes::Node", + "class_size": 76, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4288119781, + "hash2": 3295609568, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityNode", + "type_name_2": "skilltree_nodes.AbilityNode", + "qualified_name": "keen::skilltree_nodes::AbilityNode", + "referenced_type_name": "keen::skilltree_nodes::Node", + "class_size": 116, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2151080597, + "hash2": 1075999736, + "struct_fields": [ + { + "name": "abilityItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 76 + }, + { + "name": "impactReference", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 92 + }, + { + "name": "configValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeNode", + "type_name_2": "skilltree_nodes.AttributeNode", + "qualified_name": "keen::skilltree_nodes::AttributeNode", + "referenced_type_name": "keen::skilltree_nodes::Node", + "class_size": 100, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 121344675, + "hash2": 3217410876, + "struct_fields": [ + { + "name": "impactReference", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 76 + }, + { + "name": "configValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PassiveNode", + "type_name_2": "skilltree_nodes.PassiveNode", + "qualified_name": "keen::skilltree_nodes::PassiveNode", + "referenced_type_name": "keen::skilltree_nodes::Node", + "class_size": 100, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4281641606, + "hash2": 3217410876, + "struct_fields": [ + { + "name": "impactReference", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 76 + }, + { + "name": "configValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MartyrNode", + "type_name_2": "skilltree_nodes.MartyrNode", + "qualified_name": "keen::skilltree_nodes::MartyrNode", + "referenced_type_name": "keen::skilltree_nodes::Node", + "class_size": 100, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3780927770, + "hash2": 3217410876, + "struct_fields": [ + { + "name": "impactReference", + "type_name": "keen::ImpactProgramReference", + "type_hash": 3976528037, + "data_offset": 76 + }, + { + "name": "configValues", + "type_name": "keen::impact::Configurations", + "type_hash": 257030171, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeLink", + "type_name_2": "skilltree_nodes.SkillTreeLink", + "qualified_name": "keen::skilltree_nodes::SkillTreeLink", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2738539670, + "hash2": 3811368503, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 0 + }, + { + "name": "startElementName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 16 + }, + { + "name": "endNode", + "type_name": "keen::skilltree_nodes::NodeReference", + "type_hash": 2647095454, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringLocomotion", + "type_name_2": "ecs.SteeringLocomotion", + "qualified_name": "keen::ecs::SteeringLocomotion", + "referenced_type_name": "keen::ecs::Component", + "class_size": 24, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3687464325, + "hash2": 3744453692, + "struct_fields": [ + { + "name": "setRotationFlag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "clearVelocity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "slowDownIfMovementAngleIsTooBig", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "maxRunAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxMovementAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "isCloseToHole", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "lastHookedTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringAgent", + "type_name_2": "ecs.SteeringAgent", + "qualified_name": "keen::ecs::SteeringAgent", + "referenced_type_name": "keen::ecs::Component", + "class_size": 68, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2095052373, + "hash2": 768452340, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::RangeQueryId", + "type_hash": 4137681893, + "data_offset": 0 + }, + { + "name": "active", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "desiredVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "currentVelocityWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "desiredVelocityWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "maxSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "maxForce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "maxAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "separationRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "priority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 60 + }, + { + "name": "ignoredEntity", + "type_name": "keen::ecs::EntityId", + "type_hash": 2979268477, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior", + "type_name_2": "ecs.SteeringBehavior", + "qualified_name": "keen::ecs::SteeringBehavior", + "referenced_type_name": "keen::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1047038606, + "hash2": 1937646558, + "struct_fields": [ + { + "name": "steeringForce", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Seek", + "type_name_2": "ecs.SteeringBehavior_Seek", + "qualified_name": "keen::ecs::SteeringBehavior_Seek", + "referenced_type_name": "keen::ecs::SteeringBehavior", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1470575471, + "hash2": 4119192915, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Flee", + "type_name_2": "ecs.SteeringBehavior_Flee", + "qualified_name": "keen::ecs::SteeringBehavior_Flee", + "referenced_type_name": "keen::ecs::SteeringBehavior", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2609493043, + "hash2": 3994164882, + "struct_fields": [ + { + "name": "viewConeHalfAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "fleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "checkViewCone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Separation", + "type_name_2": "ecs.SteeringBehavior_Separation", + "qualified_name": "keen::ecs::SteeringBehavior_Separation", + "referenced_type_name": "keen::ecs::SteeringBehavior", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2133784947, + "hash2": 3183802136, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "forceActiveDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_LookAhead", + "type_name_2": "ecs.SteeringBehavior_LookAhead", + "qualified_name": "keen::ecs::SteeringBehavior_LookAhead", + "referenced_type_name": "keen::ecs::SteeringBehavior", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1613814841, + "hash2": 1751088546, + "struct_fields": [ + { + "name": "lastQueryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lookAheadAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 24 + }, + { + "name": "lookAheadDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_ObstacleAvoidance", + "type_name_2": "ecs.SteeringBehavior_ObstacleAvoidance", + "qualified_name": "keen::ecs::SteeringBehavior_ObstacleAvoidance", + "referenced_type_name": "keen::ecs::SteeringBehavior", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3432819988, + "hash2": 105096107, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ecs::QueryId", + "type_hash": 3140006392, + "data_offset": 12 + }, + { + "name": "lastCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "minHeightDiff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Cohesion", + "type_name_2": "ecs.SteeringBehavior_Cohesion", + "qualified_name": "keen::ecs::SteeringBehavior_Cohesion", + "referenced_type_name": "keen::ecs::SteeringBehavior", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 437572307, + "hash2": 4119192915, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Alignment", + "type_name_2": "ecs.SteeringBehavior_Alignment", + "qualified_name": "keen::ecs::SteeringBehavior_Alignment", + "referenced_type_name": "keen::ecs::SteeringBehavior", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3160859196, + "hash2": 4119192915, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SteeringAnimator", + "type_name_2": "ecs.SteeringAnimator", + "qualified_name": "keen::ecs::SteeringAnimator", + "referenced_type_name": "keen::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3781294417, + "hash2": 1964273147, + "struct_fields": [ + { + "name": "idleAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 0 + }, + { + "name": "walkAnimation", + "type_name": "keen::animationgraph::StateIdReference", + "type_hash": 985324289, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToolTerraformingEfficiency", + "type_name_2": "ToolTerraformingEfficiency", + "qualified_name": "keen::ToolTerraformingEfficiency", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3932332481, + "hash2": 466210051, + "struct_fields": [ + { + "name": "toolItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "efficiency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConditionalVoxelMaterialBuffType", + "type_name_2": "ConditionalVoxelMaterialBuffType", + "qualified_name": "keen::ConditionalVoxelMaterialBuffType", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3407707326, + "hash2": 2106867373, + "struct_fields": [ + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "buffType", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialType", + "type_name_2": "TerrainMaterialType", + "qualified_name": "keen::TerrainMaterialType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3092343854, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialId", + "type_name_2": "TerrainMaterialId", + "qualified_name": "keen::TerrainMaterialId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 52587987, + "hash2": 1299837430, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::TerrainMaterialType", + "type_hash": 3092343854, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ConditionalVoxelMaterialBuffType[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ConditionalVoxelMaterialBuffType", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3216899177, + "hash2": 121596846, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerrainTerraformingConfig", + "type_name_2": "TerrainTerraformingConfig", + "qualified_name": "keen::TerrainTerraformingConfig", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 3139070413, + "hash2": 1698158999, + "struct_fields": [ + { + "name": "terrainMaterial", + "type_name": "keen::TerrainMaterialId", + "type_hash": 52587987, + "data_offset": 0 + }, + { + "name": "terrainItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 4 + }, + { + "name": "hardness", + "type_name": "keen::HardnessCategory", + "type_hash": 2436939280, + "data_offset": 20 + }, + { + "name": "terrainPerLootItemExchangeRate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "healthPoints", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "canBeFlattened", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "isSlidingMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "experienceGainGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + }, + { + "name": "collisionFeedbackMaterial", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 52 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::PropDamageSusceptibility", + "type_hash": 3353863451, + "data_offset": 68 + }, + { + "name": "buffReference", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 72 + }, + { + "name": "conditionalBuffTypes", + "type_name": "keen::BlobArray", + "type_hash": 3216899177, + "data_offset": 88 + }, + { + "name": "isDangerous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "maxSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 108 + }, + { + "name": "maxSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "entityTag", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 116 + }, + { + "name": "pathNodeType", + "type_name": "keen::ecs::PathNodeType", + "type_hash": 2759560692, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialType", + "type_name_2": "BuildingMaterialType", + "qualified_name": "keen::BuildingMaterialType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3870685631, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialId", + "type_name_2": "BuildingMaterialId", + "qualified_name": "keen::BuildingMaterialId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4101685162, + "hash2": 1299837430, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::BuildingMaterialType", + "type_hash": 3870685631, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingTerraformingConfig", + "type_name_2": "BuildingTerraformingConfig", + "qualified_name": "keen::BuildingTerraformingConfig", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 2599323776, + "hash2": 1564244435, + "struct_fields": [ + { + "name": "buildingMaterial", + "type_name": "keen::BuildingMaterialId", + "type_hash": 4101685162, + "data_offset": 0 + }, + { + "name": "materialItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 4 + }, + { + "name": "hardness", + "type_name": "keen::HardnessCategory", + "type_hash": 2436939280, + "data_offset": 20 + }, + { + "name": "blocksPerLootItemExchangeRate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "healthPoints", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 32 + }, + { + "name": "experienceGainGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + }, + { + "name": "collisionFeedbackMaterial", + "type_name": "keen::CollisionFeedbackMaterialReference", + "type_hash": 115049765, + "data_offset": 52 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::PropDamageSusceptibility", + "type_hash": 3353863451, + "data_offset": 68 + }, + { + "name": "buffReference", + "type_name": "keen::BuffTypeReference", + "type_hash": 1088735824, + "data_offset": 72 + }, + { + "name": "conditionalBuffTypes", + "type_name": "keen::BlobArray", + "type_hash": 3216899177, + "data_offset": 88 + }, + { + "name": "isDangerous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "maxSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 108 + }, + { + "name": "maxSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "entityTag", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 116 + }, + { + "name": "pathNodeType", + "type_name": "keen::ecs::PathNodeType", + "type_hash": 2759560692, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "TerrainTerraformingConfig[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::TerrainTerraformingConfig", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2262873822, + "hash2": 3701913465, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BuildingTerraformingConfig[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BuildingTerraformingConfig", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2096996919, + "hash2": 794796872, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingEfficiencyRegistryResource", + "type_name_2": "TerraformingEfficiencyRegistryResource", + "qualified_name": "keen::TerraformingEfficiencyRegistryResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3385744260, + "hash2": 3608083735, + "struct_fields": [ + { + "name": "terrainConfigs", + "type_name": "keen::BlobArray", + "type_hash": 2262873822, + "data_offset": 0 + }, + { + "name": "buildingConfigs", + "type_name": "keen::BlobArray", + "type_hash": 2096996919, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropId", + "type_name_2": "TwitchDropId", + "qualified_name": "keen::TwitchDropId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3953259433, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropItem", + "type_name_2": "TwitchDropItem", + "qualified_name": "keen::TwitchDropItem", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2022468731, + "hash2": 2618909382, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDrop", + "type_name_2": "TwitchDrop", + "qualified_name": "keen::TwitchDrop", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3025176068, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropSubDirectory", + "type_name_2": "TwitchDropSubDirectory", + "qualified_name": "keen::TwitchDropSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1441725421, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropDirectory", + "type_name_2": "TwitchDropDirectory", + "qualified_name": "keen::TwitchDropDirectory", + "referenced_type_name": "keen::TwitchDropSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1078369167, + "hash2": 3582292618, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropResource", + "type_name_2": "TwitchDropResource", + "qualified_name": "keen::TwitchDropResource", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4238308120, + "hash2": 4238482897, + "struct_fields": [ + { + "name": "dropId", + "type_name": "keen::TwitchDropId", + "type_hash": 3953259433, + "data_offset": 0 + }, + { + "name": "items", + "type_name": "keen::BlobArray", + "type_hash": 766566047, + "data_offset": 4 + }, + { + "name": "itemRefs", + "type_name": "keen::BlobArray", + "type_hash": 2680214199, + "data_offset": 12 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 20 + }, + { + "name": "debugId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "TwitchDropResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::TwitchDropResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1214983311, + "hash2": 2791262842, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropCollection", + "type_name_2": "TwitchDropCollection", + "qualified_name": "keen::TwitchDropCollection", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1271431752, + "hash2": 1781119557, + "struct_fields": [ + { + "name": "drops", + "type_name": "keen::BlobArray", + "type_hash": 1214983311, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintId", + "type_name_2": "VoxelBlueprintId", + "qualified_name": "keen::VoxelBlueprintId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1519883772, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPoolId", + "type_name_2": "VoxelBlueprintMaterialPoolId", + "qualified_name": "keen::VoxelBlueprintMaterialPoolId", + "referenced_type_name": "keen::HashKey32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1119491815, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1454124087, + "hash2": 3469108590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelSnappingRule", + "type_name_2": "VoxelSnappingRule", + "qualified_name": "keen::VoxelSnappingRule", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 648841068, + "hash2": 450567234, + "struct_fields": [ + { + "name": "snappingTargets", + "type_name": "keen::BlobArray>", + "type_hash": 1454124087, + "data_offset": 0 + }, + { + "name": "excludeSnappingTargets", + "type_name": "keen::BlobArray>", + "type_hash": 1454124087, + "data_offset": 8 + }, + { + "name": "maxHorizontalDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "maxVerticalDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + }, + { + "name": "snapHorizontally", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "snapVertically", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "aboveAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "aboveEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "belowAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "belowEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "directionalHorizontalSnapping", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "sideAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "sideEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "lenghtwiseAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 27 + }, + { + "name": "lenghtwiseEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "crosswiseAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 29 + }, + { + "name": "crosswiseEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 30 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterial", + "type_name_2": "VoxelBlueprintMaterial", + "qualified_name": "keen::VoxelBlueprintMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1953449716, + "hash2": 409170093, + "struct_fields": [ + { + "name": "materialItem", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelSnappingRule[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelSnappingRule", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1067010313, + "hash2": 3490701978, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintConfigSnapping", + "type_name_2": "VoxelBlueprintConfigSnapping", + "qualified_name": "keen::VoxelBlueprintConfigSnapping", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4172924143, + "hash2": 565867488, + "struct_fields": [ + { + "name": "rules", + "type_name": "keen::BlobArray", + "type_hash": 1067010313, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPool", + "type_name_2": "VoxelBlueprintMaterialPool", + "qualified_name": "keen::VoxelBlueprintMaterialPool", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2713392970, + "hash2": 146643137, + "struct_fields": [ + { + "name": "equipmentSlot", + "type_name": "keen::EquipmentSlot", + "type_hash": 2267233658, + "data_offset": 0 + }, + { + "name": "poolId", + "type_name": "keen::VoxelBlueprintMaterialPoolId", + "type_hash": 1119491815, + "data_offset": 4 + }, + { + "name": "materials", + "type_name": "keen::BlobArray", + "type_hash": 766566047, + "data_offset": 8 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintConfig", + "type_name_2": "VoxelBlueprintConfig", + "qualified_name": "keen::VoxelBlueprintConfig", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1977365611, + "hash2": 3786899110, + "struct_fields": [ + { + "name": "snappingConfig", + "type_name": "keen::VoxelBlueprintConfigSnapping", + "type_hash": 4172924143, + "data_offset": 0 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintRegistryFolder", + "type_name_2": "VoxelBlueprintRegistryFolder", + "qualified_name": "keen::VoxelBlueprintRegistryFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3194862226, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPoolRegistryFolder", + "type_name_2": "VoxelBlueprintMaterialPoolRegistryFolder", + "qualified_name": "keen::VoxelBlueprintMaterialPoolRegistryFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2498488961, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelBlueprintMaterialPool[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelBlueprintMaterialPool", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1818358633, + "hash2": 1100612165, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPoolRegistryResource", + "type_name_2": "VoxelBlueprintMaterialPoolRegistryResource", + "qualified_name": "keen::VoxelBlueprintMaterialPoolRegistryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2586722561, + "hash2": 489820830, + "struct_fields": [ + { + "name": "materialPools", + "type_name": "keen::BlobArray", + "type_hash": 1818358633, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelScatterImageMode", + "type_name_2": "VoxelScatterImageMode", + "qualified_name": "keen::VoxelScatterImageMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1558604334, + "hash2": 3439728012, + "struct_fields": [], + "enum_fields": [ + { + "name": "HigherThan", + "value": 0 + }, + { + "name": "SurfaceMaterial", + "value": 1 + }, + { + "name": "AboveFog", + "value": 2 + } + ] + }, + { + "type_name_1": "VoxelScatterImageContentPass", + "type_name_2": "VoxelScatterImageContentPass", + "qualified_name": "keen::VoxelScatterImageContentPass", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 2316202087, + "hash2": 2309900695, + "struct_fields": [], + "enum_fields": [ + { + "name": "ManualPois", + "value": 0 + }, + { + "name": "LargeStamps", + "value": 1 + }, + { + "name": "PrioPois", + "value": 2 + }, + { + "name": "FillPois", + "value": 3 + }, + { + "name": "DecoStamps", + "value": 4 + }, + { + "name": "Enemies", + "value": 5 + }, + { + "name": "Final", + "value": 6 + } + ] + }, + { + "type_name_1": "AbstractScatterImage", + "type_name_2": "AbstractScatterImage", + "qualified_name": "keen::AbstractScatterImage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3483175119, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelScatterImage", + "type_name_2": "VoxelScatterImage", + "qualified_name": "keen::VoxelScatterImage", + "referenced_type_name": "keen::AbstractScatterImage", + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2773507761, + "hash2": 3441843190, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 0 + }, + { + "name": "contentPass", + "type_name": "keen::VoxelScatterImageContentPass", + "type_hash": 2316202087, + "data_offset": 16 + }, + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "mode", + "type_name": "keen::VoxelScatterImageMode", + "type_hash": 1558604334, + "data_offset": 24 + }, + { + "name": "referenceHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "referenceMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 457524793, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsVersion", + "type_name_2": "ecs.GameSettingsVersion", + "qualified_name": "keen::ecs::GameSettingsVersion", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 2319848572, + "hash2": 3017454203, + "struct_fields": [], + "enum_fields": [ + { + "name": "V_0", + "value": 0 + }, + { + "name": "V_1", + "value": 1 + }, + { + "name": "V_2", + "value": 2 + }, + { + "name": "V_3", + "value": 3 + }, + { + "name": "V_4_HungerDuration", + "value": 4 + }, + { + "name": "V_5_EnumStrings", + "value": 5 + }, + { + "name": "V_6_PlayerBodyHeat", + "value": 6 + }, + { + "name": "V_7_GliderTurbulences", + "value": 7 + }, + { + "name": "V_8_WeatherFrequency", + "value": 8 + }, + { + "name": "V_9_TamingStartleRepercussion", + "value": 9 + } + ] + }, + { + "type_name_1": "GameSettingsPresetConfig", + "type_name_2": "ecs.GameSettingsPresetConfig", + "qualified_name": "keen::ecs::GameSettingsPresetConfig", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2149350605, + "hash2": 2099215530, + "struct_fields": [ + { + "name": "presetId", + "type_name": "keen::ecs::GameSettingsPreset", + "type_hash": 770884095, + "data_offset": 0 + }, + { + "name": "settings", + "type_name": "keen::ecs::GameSettings", + "type_hash": 2298714128, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.GameSettingsPresetConfig[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::GameSettingsPresetConfig", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1425375178, + "hash2": 3393656024, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsPresetsResource", + "type_name_2": "GameSettingsPresetsResource", + "qualified_name": "keen::GameSettingsPresetsResource", + "referenced_type_name": null, + "class_size": 264, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1878728351, + "hash2": 3145967812, + "struct_fields": [ + { + "name": "minValues", + "type_name": "keen::ecs::GameSettings", + "type_hash": 2298714128, + "data_offset": 0 + }, + { + "name": "maxValues", + "type_name": "keen::ecs::GameSettings", + "type_hash": 2298714128, + "data_offset": 128 + }, + { + "name": "presets", + "type_name": "keen::BlobArray", + "type_hash": 1425375178, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38TestState", + "type_name_2": "G38TestState", + "qualified_name": "keen::G38TestState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 4234200721, + "hash2": 3906505891, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Setup", + "value": 1 + }, + { + "name": "Running", + "value": 2 + }, + { + "name": "Cleanup", + "value": 3 + }, + { + "name": "Finished", + "value": 4 + } + ] + }, + { + "type_name_1": "G38TestResult", + "type_name_2": "G38TestResult", + "qualified_name": "keen::G38TestResult", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2259896469, + "hash2": 1059829576, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "program", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "error", + "type_name": "keen::ErrorId", + "type_hash": 2028696237, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38TestSummary", + "type_name_2": "G38TestSummary", + "qualified_name": "keen::G38TestSummary", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2382058612, + "hash2": 511808138, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "failed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "G38TestResult[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::G38TestResult", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2867051582, + "hash2": 2311520380, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "G38TestReport", + "type_name_2": "G38TestReport", + "qualified_name": "keen::G38TestReport", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4115833342, + "hash2": 2558266116, + "struct_fields": [ + { + "name": "date", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 0 + }, + { + "name": "summary", + "type_name": "keen::G38TestSummary", + "type_hash": 2382058612, + "data_offset": 8 + }, + { + "name": "testResults", + "type_name": "keen::BlobArray", + "type_hash": 2867051582, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiLocaTagReference", + "type_name_2": "UiLocaTagReference", + "qualified_name": "keen::UiLocaTagReference", + "referenced_type_name": "keen::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 646926792, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaCraftingWorkshops", + "type_name_2": "FbUiLocaCraftingWorkshops", + "qualified_name": "keen::FbUiLocaCraftingWorkshops", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1799671199, + "hash2": 954555736, + "struct_fields": [ + { + "name": "player", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "alchemist", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "blacksmith", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "carpenter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "workbench", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "grindingWheel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "oven", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "campfireBarbecue", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "anvil", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "distillery", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "furnace", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "mortar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "sketches", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "flameAltar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaCraftingCategories", + "type_name_2": "FbUiLocaCraftingCategories", + "qualified_name": "keen::FbUiLocaCraftingCategories", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2252151843, + "hash2": 2449007935, + "struct_fields": [ + { + "name": "untaggedRecipeSet", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "customization", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "equipment", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "weapons", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "tools", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "buildTools", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "consumables", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "ammunition", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "materials", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "blueprints", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "currency", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "collectible", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "genericItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaCrafting", + "type_name_2": "FbUiLocaCrafting", + "qualified_name": "keen::FbUiLocaCrafting", + "referenced_type_name": null, + "class_size": 1040, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 2938647343, + "hash2": 2088488975, + "struct_fields": [ + { + "name": "workshops", + "type_name": "keen::FbUiLocaCraftingWorkshops", + "type_hash": 1799671199, + "data_offset": 0 + }, + { + "name": "categories", + "type_name": "keen::FbUiLocaCraftingCategories", + "type_hash": 2252151843, + "data_offset": 224 + }, + { + "name": "browserPinned", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "toggleDirectoryFilter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "itemViewerNoRecipeHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "requirementHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "ingredientsHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "emptyMenuHintShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "emptyMenuHintLong", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "automatedCraftingStatusWaiting", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "automatedCraftingStatusRunning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "automatedCraftingStatusPaused", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "automatedCraftingInsufficientMaterials", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "automatedCraftingAmountCraftableStacks", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "automatedCraftingStart", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + }, + { + "name": "automatedCraftingResume", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 640 + }, + { + "name": "automatedCraftingStop", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 656 + }, + { + "name": "automatedCraftingStopUnavailable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 672 + }, + { + "name": "automatedCraftingPaused", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 688 + }, + { + "name": "automatedCraftingIdle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 704 + }, + { + "name": "automatedCraftingWorking", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 720 + }, + { + "name": "automatedCraftingStorageFull", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 736 + }, + { + "name": "automatedCraftingQueued", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 752 + }, + { + "name": "automatedCraftingInsufficientMaterialsHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 768 + }, + { + "name": "automatedCraftingStorageFullHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 784 + }, + { + "name": "automatedCraftingSourceMaterials", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 800 + }, + { + "name": "changeRecipeHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 816 + }, + { + "name": "factoryNoRecipesAvailable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 832 + }, + { + "name": "factoryMagicChestNoRecipesAvailable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 848 + }, + { + "name": "factoryShowCurrentProduction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 864 + }, + { + "name": "craftingItemInInventory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 880 + }, + { + "name": "noUpgradableItems", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 896 + }, + { + "name": "noIngredientMissing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 912 + }, + { + "name": "ingredientsMissing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 928 + }, + { + "name": "ingredientsNeeds", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 944 + }, + { + "name": "availableOutputs", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 960 + }, + { + "name": "selected", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 976 + }, + { + "name": "recipeViewerTabIngredients", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 992 + }, + { + "name": "recipeViewerTabRecipe", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1008 + }, + { + "name": "recipeViewerTabItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1024 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaItemEquipmentSlots", + "type_name_2": "FbUiLocaItemEquipmentSlots", + "qualified_name": "keen::FbUiLocaItemEquipmentSlots", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1060907227, + "hash2": 2249570310, + "struct_fields": [ + { + "name": "armourHead", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "armourUpperBody", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "armourArms", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "armourLowerBody", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "armourFeet", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "armourAccessory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "armourRing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "armourShield", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "vanityHead", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "vanityArms", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "vanityFeet", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "hookshot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "glider", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "meleeWeapon", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "midRangeWeapon", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "rangedWeapon", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "arrow", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "spell", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "backpackExtender", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaPunctuations", + "type_name_2": "FbUiLocaPunctuations", + "qualified_name": "keen::FbUiLocaPunctuations", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3924913628, + "hash2": 529771998, + "struct_fields": [ + { + "name": "plusSign", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 0 + }, + { + "name": "minusSign", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 16 + }, + { + "name": "multiplySign", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 32 + }, + { + "name": "decimalSeparator", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "thousandsSeparator", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "exclamationMark", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 80 + }, + { + "name": "questionMark", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 96 + }, + { + "name": "questionMarkTriple", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 112 + }, + { + "name": "bulletDot", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 128 + }, + { + "name": "emDash", + "type_name": "keen::LocaTag", + "type_hash": 2237453265, + "data_offset": 144 + }, + { + "name": "action1AndAction2", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaGeneric", + "type_name_2": "FbUiLocaGeneric", + "qualified_name": "keen::FbUiLocaGeneric", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1009143434, + "hash2": 1662518263, + "struct_fields": [ + { + "name": "timeUnitsAbbreviations", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "milliseconds", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "inactiveState", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaInput", + "type_name_2": "FbUiLocaInput", + "qualified_name": "keen::FbUiLocaInput", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 180347979, + "hash2": 2773330220, + "struct_fields": [ + { + "name": "unassigned", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "invalidStick", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "leftMouseButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "rightMouseButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "middleMouseButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "mouse4", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "mouse5", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "mouseWheelLeft", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "mouseWheelRight", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "mouseWheelUp", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "mouseWheelDown", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "mouseMoveLeft", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "mouseMoveRight", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "mouseMoveUp", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "mouseMoveDown", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaAttributeInfo", + "type_name_2": "FbUiLocaAttributeInfo", + "qualified_name": "keen::FbUiLocaAttributeInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3670191115, + "hash2": 3755460710, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "alternativeLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "tooltip", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "impliedBaseMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "relativeToValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaAttributes", + "type_name_2": "FbUiLocaAttributes", + "qualified_name": "keen::FbUiLocaAttributes", + "referenced_type_name": null, + "class_size": 4112, + "fields_count": 87, + "primitive_type": "Struct", + "hash1": 3968129124, + "hash2": 3025043708, + "struct_fields": [ + { + "name": "attributeMenuHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "subTabBasics", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "groupFoundation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "groupPrimary", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "groupSecondary", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "groupVital", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "groupCombat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "groupFogSurvival", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "groupMain", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "groupRegeneration", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "groupProtection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "groupMovement", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "groupDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "groupWeaponDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "groupEnemyDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "groupMisc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "valueExplainer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "valueExplainerWithBuff", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "health", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 288 + }, + { + "name": "mana", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 344 + }, + { + "name": "stamina", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 400 + }, + { + "name": "fogResistance", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 456 + }, + { + "name": "fogResistanceDuration", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 512 + }, + { + "name": "fogResistanceDurationMax", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 568 + }, + { + "name": "freezeResistance", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 624 + }, + { + "name": "bodyHeat", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 680 + }, + { + "name": "strength", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 736 + }, + { + "name": "dexterity", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 792 + }, + { + "name": "intelligence", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 848 + }, + { + "name": "constitution", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 904 + }, + { + "name": "endurance", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 960 + }, + { + "name": "spirit", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1016 + }, + { + "name": "healthRegeneration", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1072 + }, + { + "name": "healthRegenerationDelay", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1128 + }, + { + "name": "manaRegeneration", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1184 + }, + { + "name": "manaRegenerationDelay", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1240 + }, + { + "name": "staminaRegeneration", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1296 + }, + { + "name": "staminaRegenerationDelay", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1352 + }, + { + "name": "bodyHeatRegeneration", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1408 + }, + { + "name": "bodyHeatRegenerationDelay", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1464 + }, + { + "name": "baseMovementSpeed", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1520 + }, + { + "name": "sprintMovementSpeed", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1576 + }, + { + "name": "sneakMovementSpeed", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1632 + }, + { + "name": "critChanceMelee", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1688 + }, + { + "name": "critChanceMagical", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1744 + }, + { + "name": "critChanceRanged", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1800 + }, + { + "name": "skillShotDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1856 + }, + { + "name": "staffDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1912 + }, + { + "name": "wandDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 1968 + }, + { + "name": "oneHandDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2024 + }, + { + "name": "daggerDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2080 + }, + { + "name": "twoHandDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2136 + }, + { + "name": "bowDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2192 + }, + { + "name": "throwableDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2248 + }, + { + "name": "unarmedDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2304 + }, + { + "name": "foeMagicalDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2360 + }, + { + "name": "foeMeleeDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2416 + }, + { + "name": "foeRangedDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2472 + }, + { + "name": "foeFlyingDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2528 + }, + { + "name": "foeSkeletonDamage", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2584 + }, + { + "name": "healing", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2640 + }, + { + "name": "reviveDuration", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2696 + }, + { + "name": "reviveHealth", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2752 + }, + { + "name": "lifeSteal", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2808 + }, + { + "name": "restedDurationBonus", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2864 + }, + { + "name": "offenseBackstab", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2920 + }, + { + "name": "offenseCritical", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 2976 + }, + { + "name": "offenseCritChance", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3032 + }, + { + "name": "damageMelee", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3088 + }, + { + "name": "damageSpell", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3144 + }, + { + "name": "damageRanged", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3200 + }, + { + "name": "blockAttribute", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3256 + }, + { + "name": "parryAttribute", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3312 + }, + { + "name": "resistancePhysical", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3368 + }, + { + "name": "resistancePhysicalCut", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3424 + }, + { + "name": "resistancePhysicalPierce", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3480 + }, + { + "name": "resistancePhysicalBlunt", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3536 + }, + { + "name": "resistanceMagical", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3592 + }, + { + "name": "resistanceMagicalFire", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3648 + }, + { + "name": "resistanceMagicalIce", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3704 + }, + { + "name": "resistanceMagicalFog", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3760 + }, + { + "name": "resistanceMagicalLightning", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3816 + }, + { + "name": "poisonSusceptibility", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3872 + }, + { + "name": "sneakAttack", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3928 + }, + { + "name": "mercilessAttack", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 3984 + }, + { + "name": "ambushAttack", + "type_name": "keen::FbUiLocaAttributeInfo", + "type_hash": 3670191115, + "data_offset": 4040 + }, + { + "name": "numberExplanation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4096 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaPerkAttributes", + "type_name_2": "FbUiLocaPerkAttributes", + "qualified_name": "keen::FbUiLocaPerkAttributes", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2432514732, + "hash2": 1098232147, + "struct_fields": [ + { + "name": "damagePhysicalCut", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "damagePhysicalPierce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "damagePhysicalBlunt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "damagePoison", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "damageMagicalFire", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "damageMagicalIce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "damageMagicalFog", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "damageMagicalLightning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "resistancePhysicalCut", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "resistancePhysicalPierce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "resistancePhysicalBlunt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "resistanceMagicalFire", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "resistanceMagicalIce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "resistanceMagicalFog", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "resistanceMagicalLightning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiNpcNames", + "type_name_2": "FbUiNpcNames", + "qualified_name": "keen::FbUiNpcNames", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 727846085, + "hash2": 4221530313, + "struct_fields": [ + { + "name": "flame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "alchemist", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "blacksmith", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "hunter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "farmer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "carpenter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "cryptKeeper", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "bard", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaRpgTerms", + "type_name_2": "FbUiLocaRpgTerms", + "qualified_name": "keen::FbUiLocaRpgTerms", + "referenced_type_name": null, + "class_size": 5536, + "fields_count": 69, + "primitive_type": "Struct", + "hash1": 3015393035, + "hash2": 3869885163, + "struct_fields": [ + { + "name": "npcNames", + "type_name": "keen::FbUiNpcNames", + "type_hash": 727846085, + "data_offset": 0 + }, + { + "name": "entityLevel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "genericLevelWithArgument", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "characterLevel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "experiencePoints", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "experiencePointsShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "experiencePointsRequired", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "attributes", + "type_name": "keen::FbUiLocaAttributes", + "type_hash": 3968129124, + "data_offset": 224 + }, + { + "name": "perkAttributes", + "type_name": "keen::FbUiLocaPerkAttributes", + "type_hash": 2432514732, + "data_offset": 4336 + }, + { + "name": "durabilityGeneric", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4576 + }, + { + "name": "damagePhysicalCut", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4592 + }, + { + "name": "damagePhysicalPierce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4608 + }, + { + "name": "damagePhysicalBlunt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4624 + }, + { + "name": "damageMagicalFire", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4640 + }, + { + "name": "damageMagicalIce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4656 + }, + { + "name": "damageMagicalFog", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4672 + }, + { + "name": "damageMagicalLightning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4688 + }, + { + "name": "damageHealing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4704 + }, + { + "name": "damagePoison", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4720 + }, + { + "name": "bowDamageBase", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4736 + }, + { + "name": "bowDamageNoBonus", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4752 + }, + { + "name": "bowDamagePhysicalCut", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4768 + }, + { + "name": "bowDamagePhysicalPierce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4784 + }, + { + "name": "bowDamagePhysicalBlunt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4800 + }, + { + "name": "bowDamageMagicalFire", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4816 + }, + { + "name": "bowDamageMagicalIce", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4832 + }, + { + "name": "bowDamageMagicalFog", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4848 + }, + { + "name": "bowDamageMagicalLightning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4864 + }, + { + "name": "bowDamageHealing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4880 + }, + { + "name": "bowDamagePoison", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4896 + }, + { + "name": "armorResistanceCutShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4912 + }, + { + "name": "armorResistancePierceShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4928 + }, + { + "name": "armorResistanceBluntShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4944 + }, + { + "name": "armorResistanceFireShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4960 + }, + { + "name": "armorResistanceIceShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4976 + }, + { + "name": "armorResistanceFogShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4992 + }, + { + "name": "armorResistanceLightningShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5008 + }, + { + "name": "rarityUndefined", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5024 + }, + { + "name": "rarityCommon", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5040 + }, + { + "name": "rarityUncommon", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5056 + }, + { + "name": "rarityRare", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5072 + }, + { + "name": "rarityEpic", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5088 + }, + { + "name": "rarityLegendary", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5104 + }, + { + "name": "rarityVanity", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5120 + }, + { + "name": "restedBuffNone", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5136 + }, + { + "name": "restedBuffCharging", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5152 + }, + { + "name": "restedBuffActive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5168 + }, + { + "name": "restedBuffGenericDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5184 + }, + { + "name": "comfortLevel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5200 + }, + { + "name": "comfort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5216 + }, + { + "name": "statusSitting", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5232 + }, + { + "name": "statusSheltered", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5248 + }, + { + "name": "statusSleeping", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5264 + }, + { + "name": "statusInCombat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5280 + }, + { + "name": "statusWarmth", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5296 + }, + { + "name": "statusShelteredBed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5312 + }, + { + "name": "statusSittingDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5328 + }, + { + "name": "statusShelteredDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5344 + }, + { + "name": "statusSleepingDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5360 + }, + { + "name": "statusWarmthDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5376 + }, + { + "name": "statusSittingNot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5392 + }, + { + "name": "statusShelteredNot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5408 + }, + { + "name": "statusInCombatNot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5424 + }, + { + "name": "statusWarmthNot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5440 + }, + { + "name": "foodTypeAlreadyActive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5456 + }, + { + "name": "foodSlotsAllOccupied", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5472 + }, + { + "name": "npcProps", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5488 + }, + { + "name": "npcUndiscoveredName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5504 + }, + { + "name": "npcUndiscoveredDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 5520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudBuildFeedback", + "type_name_2": "FbUiLocaHudBuildFeedback", + "qualified_name": "keen::FbUiLocaHudBuildFeedback", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1697605717, + "hash2": 1734216995, + "struct_fields": [ + { + "name": "cursorOutsideBuildZone", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "cursorInsideFogZone", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "cursorTooFarAway", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "cursorInsideLenientBuildInhibitor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "cursorInsideStrictBuildInhibitor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "maxAltarCountReached", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "maxAltarCountUpgradeHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "maxAltarCountLimitHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "maxTameAnimalCountReached", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "enemiesNearby", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "areaOccupied", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "invalidSurfaceNormal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "invalidCursorVoxelMaterial", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "missingMaterials", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "noPermission", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "assignNpcToBed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "hintNpcNotPlaced", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "bedUnoccupied", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "bedOccupiedBy", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "bedTooFarAway", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "useStaffToAssignBed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudItemUseMessages", + "type_name_2": "FbUiLocaHudItemUseMessages", + "qualified_name": "keen::FbUiLocaHudItemUseMessages", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2872477776, + "hash2": 1203173705, + "struct_fields": [ + { + "name": "hookshotUseFail", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "doorOpenFail", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "gliderUseFail", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "gliderUseHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "itemMovedToEquipmentSlotByUsing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "itemFailedInsufficientStamina", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHitEventLabels", + "type_name_2": "FbUiLocaHitEventLabels", + "qualified_name": "keen::FbUiLocaHitEventLabels", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3579721213, + "hash2": 2037439224, + "struct_fields": [ + { + "name": "crit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "backstab", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "weakspot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "immune", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "ineffective", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "resist", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaTutorialHints", + "type_name_2": "FbUiLocaTutorialHints", + "qualified_name": "keen::FbUiLocaTutorialHints", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 2656062183, + "hash2": 3587690911, + "struct_fields": [ + { + "name": "quickbuilderMaterialHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "quickbuilderShapeHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "quickbuilderTabsHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "quickbuilderShapeSelectionHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "cookingTutorialHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "craftingRecipeList", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "craftingRecipeCategories", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "craftingRecipeSeries", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "craftingIngredients", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "craftingPinRecipe", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "craftingTabs", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "npcCraftingTabs", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "enhancingItemList", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "enhancingPerks", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "enhancingCurrency", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "factoryInventory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "factoryRecipes", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "factoryFillIngredients", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "factoryInputHints", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "factoryStart", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "actionbarTutorial1", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "actionbarTutorial2", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "summoningStaffTutorialNpcTypes", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "summoningStaffTutorialPlacing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "summoningStaffRoamingRange", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "flameUpgradeHappyNpc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "nextHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudXpSources", + "type_name_2": "FbUiLocaHudXpSources", + "qualified_name": "keen::FbUiLocaHudXpSources", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 6419824, + "hash2": 3183000238, + "struct_fields": [ + { + "name": "xpSourceQuest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "xpSourceCombat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "xpSourceLore", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "xpSourceExploration", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "xpSourceMining", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudHappinessDialog", + "type_name_2": "FbUiLocaHudHappinessDialog", + "qualified_name": "keen::FbUiLocaHudHappinessDialog", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1781240567, + "hash2": 216792487, + "struct_fields": [ + { + "name": "missingBedDialogText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "missingBedDialogLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "missingShelterDialogText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "missingShelterDialogLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "missingFoodDialogText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "missingFoodDialogLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudTemperature", + "type_name_2": "FbUiLocaHudTemperature", + "qualified_name": "keen::FbUiLocaHudTemperature", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4099741836, + "hash2": 723094553, + "struct_fields": [ + { + "name": "resistanceBuffLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "resistanceLowWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "deadlyDebuffLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "deadlyDebuffWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHud", + "type_name_2": "FbUiLocaHud", + "qualified_name": "keen::FbUiLocaHud", + "referenced_type_name": null, + "class_size": 2752, + "fields_count": 101, + "primitive_type": "Struct", + "hash1": 61835926, + "hash2": 704556719, + "struct_fields": [ + { + "name": "buildFeedback", + "type_name": "keen::FbUiLocaHudBuildFeedback", + "type_hash": 1697605717, + "data_offset": 0 + }, + { + "name": "itemUseMessages", + "type_name": "keen::FbUiLocaHudItemUseMessages", + "type_hash": 2872477776, + "data_offset": 336 + }, + { + "name": "hitEventLabels", + "type_name": "keen::FbUiLocaHitEventLabels", + "type_hash": 3579721213, + "data_offset": 432 + }, + { + "name": "tutorialHints", + "type_name": "keen::FbUiLocaTutorialHints", + "type_hash": 2656062183, + "data_offset": 528 + }, + { + "name": "xpSources", + "type_name": "keen::FbUiLocaHudXpSources", + "type_hash": 6419824, + "data_offset": 960 + }, + { + "name": "missingHappinessDialogOptions", + "type_name": "keen::FbUiLocaHudHappinessDialog", + "type_hash": 1781240567, + "data_offset": 1040 + }, + { + "name": "nightSpeed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1136 + }, + { + "name": "freezing", + "type_name": "keen::FbUiLocaHudTemperature", + "type_hash": 4099741836, + "data_offset": 1152 + }, + { + "name": "extremeHeat", + "type_name": "keen::FbUiLocaHudTemperature", + "type_hash": 4099741836, + "data_offset": 1216 + }, + { + "name": "gameProgressSummaryTitle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1280 + }, + { + "name": "ammoLabelNoneEquipped", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1296 + }, + { + "name": "quickBuilderPreUseHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1312 + }, + { + "name": "buildTooltipQuickBuilderInit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1328 + }, + { + "name": "buildTooltipChangeBlueprint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1344 + }, + { + "name": "buildTooltipChangeShovelAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1360 + }, + { + "name": "buildTooltipChangeNpc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1376 + }, + { + "name": "buildTooltipChangeMaterial", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1392 + }, + { + "name": "buildTooltipRotate90", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1408 + }, + { + "name": "buildTooltipRotate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1424 + }, + { + "name": "buildTooltipAreaActions", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1440 + }, + { + "name": "buildTooltipUseSnapping", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1456 + }, + { + "name": "cursorHintSnappingActive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1472 + }, + { + "name": "cursorHintSnappingReady", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1488 + }, + { + "name": "cursorHintSnappingOff", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1504 + }, + { + "name": "buildTooltipMultiToolMaterialHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1520 + }, + { + "name": "buildTooltipMultiToolMaterialActionLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1536 + }, + { + "name": "leaveNpcConversation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1552 + }, + { + "name": "messageFastTravelUnlock", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1568 + }, + { + "name": "messageNpcFound", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1584 + }, + { + "name": "messageSpecialLootAcquired", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1600 + }, + { + "name": "messageLevelUp", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1616 + }, + { + "name": "messageFlameLevelUp", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1632 + }, + { + "name": "messageAllItemsRepaired", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1648 + }, + { + "name": "messagePinnedRecipeReady", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1664 + }, + { + "name": "messageMagicBarrierUnlocked", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1680 + }, + { + "name": "messageDoorUnlocked", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1696 + }, + { + "name": "messageSecretDoorUnlocked", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1712 + }, + { + "name": "messageNewTwitchDropUnlocked", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1728 + }, + { + "name": "knowledgeNotificationGeneral", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1744 + }, + { + "name": "knowledgeNotificationMap", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1760 + }, + { + "name": "knowledgeNotificationJournal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1776 + }, + { + "name": "knowledgeNotificationNewTutorial", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1792 + }, + { + "name": "knowledgeNotificationNewLoreDocument", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1808 + }, + { + "name": "knowledgeNotificationNewLorePage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1824 + }, + { + "name": "knowledgeNotificationNewQuest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1840 + }, + { + "name": "knowledgeNotificationUpdatedQuest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1856 + }, + { + "name": "knowledgeNotificationJournalCompleted", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1872 + }, + { + "name": "knowledgeNotificationCrafting", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1888 + }, + { + "name": "knowledgeNotificationIngredientKnowledge", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1904 + }, + { + "name": "knowledgeNotificationNpcDialog", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1920 + }, + { + "name": "priorityJournalEntryPrompt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1936 + }, + { + "name": "priorityJournalEntryPromptNoBinding", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1952 + }, + { + "name": "priorityJournalLocationReached", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1968 + }, + { + "name": "interactionItemRequirementHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1984 + }, + { + "name": "backpackFullMessage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2000 + }, + { + "name": "storageFullMessage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2016 + }, + { + "name": "compassWaypointReached", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2032 + }, + { + "name": "compassWaypointReachedAbove", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2048 + }, + { + "name": "compassWaypointReachedBelow", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2064 + }, + { + "name": "compassInFog", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2080 + }, + { + "name": "compassInDeadlyFog", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2096 + }, + { + "name": "compassEarlyFogWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2112 + }, + { + "name": "compassFogWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2128 + }, + { + "name": "staminaMax", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2144 + }, + { + "name": "restedBuffConditionHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2160 + }, + { + "name": "markersAdded", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2176 + }, + { + "name": "entriesLogged", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2192 + }, + { + "name": "entriesCompleted", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2208 + }, + { + "name": "oneRecipeLearned", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2224 + }, + { + "name": "recipesLearned", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2240 + }, + { + "name": "recipesLearnedPersonal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2256 + }, + { + "name": "readyToCraft", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2272 + }, + { + "name": "readyToCraftPinned", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2288 + }, + { + "name": "loading", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2304 + }, + { + "name": "reviving", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2320 + }, + { + "name": "beingRevived", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2336 + }, + { + "name": "canBeRevived", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2352 + }, + { + "name": "craftableAmount", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2368 + }, + { + "name": "emptyHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2384 + }, + { + "name": "inventoryCount", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2400 + }, + { + "name": "serverPerformanceBad", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2416 + }, + { + "name": "serverPerformanceBadHost", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2432 + }, + { + "name": "serverPerformanceBadDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2448 + }, + { + "name": "serverPerformanceBadDescHost", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2464 + }, + { + "name": "serverPerformanceCritical", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2480 + }, + { + "name": "serverPerformanceCriticalHost", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2496 + }, + { + "name": "serverPerformanceCriticalDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2512 + }, + { + "name": "serverPerformanceCriticalDescHost", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2528 + }, + { + "name": "currentServerPerformance", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2544 + }, + { + "name": "currentServerPerformanceHost", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2560 + }, + { + "name": "flameUpgradeBaseLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2576 + }, + { + "name": "personalProgressionModeHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2592 + }, + { + "name": "allMissedWorldQuestsCompletedMessage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2608 + }, + { + "name": "interactionNoPermission", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2624 + }, + { + "name": "itemUseNoPermission", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2640 + }, + { + "name": "currentSongPlayingHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2656 + }, + { + "name": "tamingTutorialTitle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2672 + }, + { + "name": "tamingTutorialStep1", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2688 + }, + { + "name": "tamingTutorialStep2", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2704 + }, + { + "name": "tamingTutorialStep3", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2720 + }, + { + "name": "tamingTutorialStep4", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2736 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuFlameAltar", + "type_name_2": "FbUiLocaMenuFlameAltar", + "qualified_name": "keen::FbUiLocaMenuFlameAltar", + "referenced_type_name": null, + "class_size": 640, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 3263394031, + "hash2": 2748247971, + "struct_fields": [ + { + "name": "menuHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "altarLevelLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "altarRangeLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "motherflameLevelLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "lastPlayed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "altarRange", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "flameUpgradeMaxAltarCountLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "flameUpgradeAttributeBonusLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "flameUpgradeFogResistanceLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "flameUpgradeFogResistanceLevel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "flameUpgradeFogResistanceDuration", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "flameCodexDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "flameCodexUpgradeHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "tileAltarUpgradeMainText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "tileAltarUpgradeSecondaryText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "tileMotherflameUpgradeMainText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "tileMotherflameUpgradeSecondaryText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "tileReviveNpcMainText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "tileReviveNpcSecondaryText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "tileRespecMainText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "tileRespecSecondaryText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "respecDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "actionRespecSkills", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "actionDeactivate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "actionDeactivateSecondaryText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "actionReactivate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "deactivateAltarDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + }, + { + "name": "inactiveStateDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "reactivationProhibited", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "altarUpgradeRecipeHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "motherflameUpgradeRecipeHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "actionAltarUpgrade", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "actionMotherflameUpgrade", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "npcReviveSubheader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "deactivationExplanation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "noPermissionHintGeneral", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "noAltarUpgradePermission", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "noFlameUpgradePermission", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "noExtinguishAltarPermission", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "shelteredBedsRequirement", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuPregame", + "type_name_2": "FbUiLocaMenuPregame", + "qualified_name": "keen::FbUiLocaMenuPregame", + "referenced_type_name": null, + "class_size": 2288, + "fields_count": 143, + "primitive_type": "Struct", + "hash1": 1988283793, + "hash2": 201936092, + "struct_fields": [ + { + "name": "mainMenuPlay", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "mainMenuJoinSessionHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "mainMenuInviteHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "mainMenuInviteAccept", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "mainMenuInviteDecline", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "mainMenuJoinSessionFallbackName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "mainMenuCredits", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "mainMenuQuit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "mainMenuGPUDriverWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "thankYouClosedBeta", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "steamCallToAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "discordCallToAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "characterSelectionEnterVerb", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "characterSelectionHeaderCreate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "characterSelectionHeaderSelect", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "characterSelectionEmptySlotHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "characterDeletionConfirmHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "characterBackupRestoreDialogHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "characterBackupRestoreDataLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "characterBackupRestoreButtonLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "playSelectionHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "playSelectionRecent", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "playSelectionJoin", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "playSelectionJoinDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "playSelectionJoinHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "playSelectionHostPublic", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "playSelectionHostPublicDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + }, + { + "name": "playSelectionHostPublicHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "playSelectionPrivate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "playSelectionPrivateDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "playSelectionPrivateHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "party", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "filterFriends", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "filterDedicatedServer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "filterEmpty", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "filterName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "filterPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "filterFreeSlots", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "filterNameHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "sessionSearchEmptyResult", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + }, + { + "name": "sessionSearchOngoing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 640 + }, + { + "name": "errorServerNotFound", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 656 + }, + { + "name": "errorServerNotFoundDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 672 + }, + { + "name": "serverFound", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 688 + }, + { + "name": "noSessionsMatchingFilter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 704 + }, + { + "name": "enterGridSelection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 720 + }, + { + "name": "playVoiceSample", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 736 + }, + { + "name": "customizationOptionNone", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 752 + }, + { + "name": "customizationBodyType", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 768 + }, + { + "name": "customizationPreset", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 784 + }, + { + "name": "customizationSkinColor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 800 + }, + { + "name": "customizationEyeColor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 816 + }, + { + "name": "customizationEyeBrowColor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 832 + }, + { + "name": "customizationHair", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 848 + }, + { + "name": "customizationHairColor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 864 + }, + { + "name": "customizationBeard", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 880 + }, + { + "name": "customizationBeardColor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 896 + }, + { + "name": "customizationVoice", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 912 + }, + { + "name": "customizationName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 928 + }, + { + "name": "customizationCharacter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 944 + }, + { + "name": "customizationNameAndFinish", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 960 + }, + { + "name": "customizationResetPreset", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 976 + }, + { + "name": "customizationFinish", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 992 + }, + { + "name": "refresh", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1008 + }, + { + "name": "newGame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1024 + }, + { + "name": "unnamed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1040 + }, + { + "name": "create", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1056 + }, + { + "name": "edit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1072 + }, + { + "name": "configure", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1088 + }, + { + "name": "myWorld", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1104 + }, + { + "name": "editWorldSave", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1120 + }, + { + "name": "configureWorldSave", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1136 + }, + { + "name": "deleteWorld", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1152 + }, + { + "name": "deleteWorldDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1168 + }, + { + "name": "maxWorldCountReached", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1184 + }, + { + "name": "worldSaveNameTitle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1200 + }, + { + "name": "gameSettings", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1216 + }, + { + "name": "sessionVisibility", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1232 + }, + { + "name": "joinGame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1248 + }, + { + "name": "publicGame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1264 + }, + { + "name": "privateGame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1280 + }, + { + "name": "sessionVisibiltyFriends", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1296 + }, + { + "name": "sessionVisibiltyPublic", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1312 + }, + { + "name": "hidePasswordInput", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1328 + }, + { + "name": "setPasswordProtection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1344 + }, + { + "name": "hostHintHasNoPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1360 + }, + { + "name": "hostSettings", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1376 + }, + { + "name": "hostStartDialogHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1392 + }, + { + "name": "hostStartButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1408 + }, + { + "name": "worldNameEmptyProhibited", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1424 + }, + { + "name": "noPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1440 + }, + { + "name": "sessionPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1456 + }, + { + "name": "rolePassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1472 + }, + { + "name": "setPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1488 + }, + { + "name": "removePassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1504 + }, + { + "name": "enterPasswordHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1520 + }, + { + "name": "sessionSize", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1536 + }, + { + "name": "maxPlayerCount", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1552 + }, + { + "name": "serverFilter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1568 + }, + { + "name": "availableServer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1584 + }, + { + "name": "serverName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1600 + }, + { + "name": "hostedBy", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1616 + }, + { + "name": "currentSessionSize", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1632 + }, + { + "name": "sessionSizeWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1648 + }, + { + "name": "enterPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1664 + }, + { + "name": "searchIPv4", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1680 + }, + { + "name": "addToFavourite", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1696 + }, + { + "name": "renameCharacter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1712 + }, + { + "name": "legalLine", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1728 + }, + { + "name": "gportalLogoDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1744 + }, + { + "name": "gportalLink", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1760 + }, + { + "name": "versionText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1776 + }, + { + "name": "preload", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1792 + }, + { + "name": "compilingShaders", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1808 + }, + { + "name": "addServerCaption", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1824 + }, + { + "name": "serverDidNotResponde", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1840 + }, + { + "name": "serverDidResponde", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1856 + }, + { + "name": "inviteBuildVersionWarningLocalOld", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1872 + }, + { + "name": "inviteBuildVersionWarningInviteOld", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1888 + }, + { + "name": "serverSettingsRolesHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1904 + }, + { + "name": "serverSettingsRolesExplanation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1920 + }, + { + "name": "serverSettingsSelectedSavegameHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1936 + }, + { + "name": "serverSettingsRoleDisabled", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1952 + }, + { + "name": "serverSettingsRolePublic", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1968 + }, + { + "name": "serverSettingsAllRolesDisabledWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1984 + }, + { + "name": "serverRolePermissionsHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2000 + }, + { + "name": "serverRoleSupressed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2016 + }, + { + "name": "serverRolesInvalidHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2032 + }, + { + "name": "warningHostSettingsNotConfigured", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2048 + }, + { + "name": "warningServerRoleSupressed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2064 + }, + { + "name": "warningServerRoleSamePassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2080 + }, + { + "name": "warningPublicServerRole", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2096 + }, + { + "name": "warningAdminPasswordRequired", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2112 + }, + { + "name": "warningFriendPasswordRequired", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2128 + }, + { + "name": "warningNoPasswordPublic", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2144 + }, + { + "name": "forceAllowPublicFriendRole", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2160 + }, + { + "name": "rolePasswordHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2176 + }, + { + "name": "changePassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2192 + }, + { + "name": "publicRole", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2208 + }, + { + "name": "protectedRole", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2224 + }, + { + "name": "disabled", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2240 + }, + { + "name": "joinWithoutPw", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2256 + }, + { + "name": "optionalPwHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2272 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuSystem", + "type_name_2": "FbUiLocaMenuSystem", + "qualified_name": "keen::FbUiLocaMenuSystem", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 4220391731, + "hash2": 612743466, + "struct_fields": [ + { + "name": "returnToGame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "returnToPregame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "showServerRole", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "quitToDesktop", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "networkQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "latencyValue", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "shaderCompileProgress", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "feedbackPopupHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "feedbackIssue", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "feedbackIssueLink", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "bugReport", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "bugReportLink", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "discordServer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "discordServerLink", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "connectTwitch", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "connectTwitchLink", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "steamWishlist", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "steamWishlistLink", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "watermarkLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "watermarkBetaLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "watermarkSecondLine", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "watermarkF1Hint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "hours", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "minutes", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "gamePaused", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuBindingsReset", + "type_name_2": "FbUiLocaMenuBindingsReset", + "qualified_name": "keen::FbUiLocaMenuBindingsReset", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1534020091, + "hash2": 694404095, + "struct_fields": [ + { + "name": "resetHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "resetDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "presetChangeHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "presetChangeDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "presetChangeConfirmButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLongDocParagraph", + "type_name_2": "FbUiLongDocParagraph", + "qualified_name": "keen::FbUiLongDocParagraph", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 240018846, + "hash2": 2582652213, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "hyperLink", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaTagDifficultySettings", + "type_name_2": "FbUiLocaTagDifficultySettings", + "qualified_name": "keen::FbUiLocaTagDifficultySettings", + "referenced_type_name": null, + "class_size": 1536, + "fields_count": 96, + "primitive_type": "Struct", + "hash1": 1725552231, + "hash2": 3593596556, + "struct_fields": [ + { + "name": "presetDefault", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "presetDefaultDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "presetSurvivalist", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "presetSurvivalistDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "presetBuilders", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "presetBuildersDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "presetCombatChallenge", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "presetCombatChallengeDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "presetCustom", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "presetCustomDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "enemySettingsHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "enemyDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "enemyDamageDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "enemyHealth", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "enemyHealthDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "enemyStamina", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "enemyStaminaDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "enemyPerceptionRange", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "enemyPerceptionRangeDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "enemyAttackSimultaneous", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "enemyAttackSimultaneousDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "enemyAttackFrequency", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "enemyAttackFrequencyDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "pacifyEnemies", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "pacifyEnemiesDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "enemySpawnerAmount", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "enemySpawnerAmountDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + }, + { + "name": "enemySpawnerAmountFew", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "enemySpawnerAmountNormal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "enemySpawnerAmountMore", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "enemySpawnerAmountMany", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "bossHealth", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "bossHealthDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "bossDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "bossDamageDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "playerHealth", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "playerHealthDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "playerMana", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "playerManaDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "playerStamina", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + }, + { + "name": "playerStaminaDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 640 + }, + { + "name": "otherSettingsHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 656 + }, + { + "name": "xpGainMining", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 672 + }, + { + "name": "xpGainMiningDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 688 + }, + { + "name": "xpGainQuests", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 704 + }, + { + "name": "xpGainQuestsDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 720 + }, + { + "name": "xpGainCombat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 736 + }, + { + "name": "xpGainCombatDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 752 + }, + { + "name": "shroudTime", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 768 + }, + { + "name": "shroudTimeDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 784 + }, + { + "name": "productionSpeed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 800 + }, + { + "name": "productionSpeedDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 816 + }, + { + "name": "plantGrowSpeed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 832 + }, + { + "name": "plantGrowSpeedDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 848 + }, + { + "name": "weaponUpgradeCosts", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 864 + }, + { + "name": "weaponUpgradeCostsDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 880 + }, + { + "name": "perkUpgradeRecyclingFactor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 896 + }, + { + "name": "perkUpgradeRecyclingFactorDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 912 + }, + { + "name": "backpackDeathBehaviour", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 928 + }, + { + "name": "backpackDeathBehaviourDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 944 + }, + { + "name": "backpackDeathBehaviourKeepAll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 960 + }, + { + "name": "backpackDeathBehaviourDefault", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 976 + }, + { + "name": "backpackDeathBehaviourLoseAll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 992 + }, + { + "name": "durabilityEnabled", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1008 + }, + { + "name": "durabilityEnabledDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1024 + }, + { + "name": "durabilityScaling", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1040 + }, + { + "name": "durabilityScalingDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1056 + }, + { + "name": "worldRefreshTime", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1072 + }, + { + "name": "worldRefreshTimeDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1088 + }, + { + "name": "dayDuration", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1104 + }, + { + "name": "dayDurationDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1120 + }, + { + "name": "nightDuration", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1136 + }, + { + "name": "nightDurationDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1152 + }, + { + "name": "foodDuration", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1168 + }, + { + "name": "foodDurationDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1184 + }, + { + "name": "foodSurvival", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1200 + }, + { + "name": "foodSurvivalDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1216 + }, + { + "name": "starvingTime", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1232 + }, + { + "name": "starvingTimeDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1248 + }, + { + "name": "weatherFrequency", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1264 + }, + { + "name": "weatherFrequencyDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1280 + }, + { + "name": "enableGliderTurbulences", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1296 + }, + { + "name": "enableGliderTurbulencesDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1312 + }, + { + "name": "tamingStartleRepercussion", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1328 + }, + { + "name": "tamingStartleRepercussionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1344 + }, + { + "name": "bodyHeat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1360 + }, + { + "name": "bodyHeatDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1376 + }, + { + "name": "miningDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1392 + }, + { + "name": "miningDamageDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1408 + }, + { + "name": "lootAmount", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1424 + }, + { + "name": "lootAmountDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1440 + }, + { + "name": "resourcesHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1456 + }, + { + "name": "xpModsHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1472 + }, + { + "name": "survivalHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1488 + }, + { + "name": "playerHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1504 + }, + { + "name": "selectedLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiLongDocParagraph[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiLongDocParagraph", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2648965137, + "hash2": 355338634, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuSettings", + "type_name_2": "FbUiLocaMenuSettings", + "qualified_name": "keen::FbUiLocaMenuSettings", + "referenced_type_name": null, + "class_size": 4552, + "fields_count": 186, + "primitive_type": "Struct", + "hash1": 4183817935, + "hash2": 571193526, + "struct_fields": [ + { + "name": "tabGame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "tabDisplay", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "tabSound", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "tabAccessibility", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "tabControls", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "tabLegal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "privacyPolicyParagraphs", + "type_name": "keen::BlobArray", + "type_hash": 2648965137, + "data_offset": 96 + }, + { + "name": "settingAuto", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 104 + }, + { + "name": "settingOff", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 120 + }, + { + "name": "settingOn", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 136 + }, + { + "name": "settingBoost", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 152 + }, + { + "name": "settingLowest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 168 + }, + { + "name": "settingLow", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 184 + }, + { + "name": "settingMedium", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 200 + }, + { + "name": "settingHigh", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 216 + }, + { + "name": "settingUltra", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 232 + }, + { + "name": "settingPerformance", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 248 + }, + { + "name": "settingBalance", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 264 + }, + { + "name": "settingQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 280 + }, + { + "name": "settingUltraQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 296 + }, + { + "name": "settingUltraPerformance", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 312 + }, + { + "name": "settingNative", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 328 + }, + { + "name": "settingRare", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 344 + }, + { + "name": "settingNormal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 360 + }, + { + "name": "settingOften", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 376 + }, + { + "name": "settingKeepProgress", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 392 + }, + { + "name": "settingLoseSomeProgress", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 408 + }, + { + "name": "settingLoseAllProgress", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 424 + }, + { + "name": "difficultyLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 440 + }, + { + "name": "difficultyEasy", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 456 + }, + { + "name": "difficultyDefault", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 472 + }, + { + "name": "difficultyHard", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 488 + }, + { + "name": "difficultyVeryHard", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 504 + }, + { + "name": "difficultyCustom", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 520 + }, + { + "name": "controlsSectionKeyboardMouse", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 536 + }, + { + "name": "controlsSectionGamepad", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 552 + }, + { + "name": "mouseCameraSmoothing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 568 + }, + { + "name": "cameraSensitivity", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 584 + }, + { + "name": "aimingSensitivity", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 600 + }, + { + "name": "cameraInversion", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 616 + }, + { + "name": "cameraInversionValueNone", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 632 + }, + { + "name": "cameraInversionValueX", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 648 + }, + { + "name": "cameraInversionValueY", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 664 + }, + { + "name": "cameraInversionValueXY", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 680 + }, + { + "name": "actionDirection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 696 + }, + { + "name": "actionDirectionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 712 + }, + { + "name": "cameraDirection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 728 + }, + { + "name": "characterDirection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 744 + }, + { + "name": "controlsKeyboardMouseBindingsButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 760 + }, + { + "name": "controlsGamepadBindingsButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 776 + }, + { + "name": "controlScheme", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 792 + }, + { + "name": "controlSchemePresetA", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 808 + }, + { + "name": "controlSchemePresetB", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 824 + }, + { + "name": "controlSchemeCustom", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 840 + }, + { + "name": "controlSchemeEdit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 856 + }, + { + "name": "controlSchemeCreate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 872 + }, + { + "name": "controlSchemeCreateDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 888 + }, + { + "name": "controlSchemeResetButton", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 904 + }, + { + "name": "controlSchemeResetDialog", + "type_name": "keen::FbUiLocaMenuBindingsReset", + "type_hash": 1534020091, + "data_offset": 920 + }, + { + "name": "bindingEntryChange", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1000 + }, + { + "name": "bindingEntryUndo", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1016 + }, + { + "name": "bindingEntryReset", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1032 + }, + { + "name": "bindingEntryDelete", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1048 + }, + { + "name": "bindingEntryCustomize", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1064 + }, + { + "name": "bindingEntryRemapPrompt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1080 + }, + { + "name": "warningHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1096 + }, + { + "name": "warningCriticalDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1112 + }, + { + "name": "warningRecommendedDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1128 + }, + { + "name": "warningContinueEdit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1144 + }, + { + "name": "warningUsePreset", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1160 + }, + { + "name": "warningUseIncompleteBindings", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1176 + }, + { + "name": "bindingCategoryMovements", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1192 + }, + { + "name": "bindingCategoryBasicActions", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1208 + }, + { + "name": "bindingCategoryCamera", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1224 + }, + { + "name": "bindingCategoryActionBar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1240 + }, + { + "name": "bindingCategoryCombat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1256 + }, + { + "name": "bindingCategoryShortcuts", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1272 + }, + { + "name": "bindingCategoryBuildings", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1288 + }, + { + "name": "bindingCategoryUserInterface", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1304 + }, + { + "name": "invalidBindingInput", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1320 + }, + { + "name": "useAnalogStickHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1336 + }, + { + "name": "searchKey", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1352 + }, + { + "name": "pressKey", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1368 + }, + { + "name": "inputKeyToSearch", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1384 + }, + { + "name": "clearSearch", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1400 + }, + { + "name": "volumeMaster", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1416 + }, + { + "name": "volumeMusic", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1432 + }, + { + "name": "volumeUi", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1448 + }, + { + "name": "volumeGame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1464 + }, + { + "name": "volumeVoices", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1480 + }, + { + "name": "audioReverb", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1496 + }, + { + "name": "muteInBackground", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1512 + }, + { + "name": "monitor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1528 + }, + { + "name": "displayMode", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1544 + }, + { + "name": "windowed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1560 + }, + { + "name": "fullscreen", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1576 + }, + { + "name": "resolution", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1592 + }, + { + "name": "renderScale", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1608 + }, + { + "name": "vsync", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1624 + }, + { + "name": "sleepInBackground", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1640 + }, + { + "name": "pointLightShadows", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1656 + }, + { + "name": "fov", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1672 + }, + { + "name": "brightness", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1688 + }, + { + "name": "gamma", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1704 + }, + { + "name": "contrast", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1720 + }, + { + "name": "sharpness", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1736 + }, + { + "name": "quality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1752 + }, + { + "name": "qualityPreset", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1768 + }, + { + "name": "custom", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1784 + }, + { + "name": "antialiasing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1800 + }, + { + "name": "shadowQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1816 + }, + { + "name": "contactShadows", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1832 + }, + { + "name": "fsr2Quality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1848 + }, + { + "name": "fsr3Quality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1864 + }, + { + "name": "dlssQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1880 + }, + { + "name": "nvReflexQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1896 + }, + { + "name": "reflections", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1912 + }, + { + "name": "fogQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1928 + }, + { + "name": "volumetricShadowQuality", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1944 + }, + { + "name": "textureResolution", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1960 + }, + { + "name": "textureFiltering", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1976 + }, + { + "name": "ssao", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1992 + }, + { + "name": "distantObjects", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2008 + }, + { + "name": "decoObjects", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2024 + }, + { + "name": "detailScattering", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2040 + }, + { + "name": "voxelMeshing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2056 + }, + { + "name": "tessellation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2072 + }, + { + "name": "indirectLighting", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2088 + }, + { + "name": "antialiasingFxaa", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2104 + }, + { + "name": "antialiasingFsr2", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2120 + }, + { + "name": "antialiasingFsr3", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2136 + }, + { + "name": "antialiasingDlss", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2152 + }, + { + "name": "antialiasingDlaa", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2168 + }, + { + "name": "language", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2184 + }, + { + "name": "resolutionValue", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2200 + }, + { + "name": "nativeResolutionValue", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2216 + }, + { + "name": "vsyncIntervalValue", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2232 + }, + { + "name": "renderScaleDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2248 + }, + { + "name": "antialiasingDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2264 + }, + { + "name": "fsr2Description", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2280 + }, + { + "name": "fsr3Description", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2296 + }, + { + "name": "dlssDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2312 + }, + { + "name": "nvReflexDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2328 + }, + { + "name": "shadowsDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2344 + }, + { + "name": "contactShadowsDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2360 + }, + { + "name": "reflectionsDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2376 + }, + { + "name": "fogQualityDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2392 + }, + { + "name": "volShadowDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2408 + }, + { + "name": "ssaoDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2424 + }, + { + "name": "indirectLightingDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2440 + }, + { + "name": "useCharacterNameDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2456 + }, + { + "name": "gameplaySectionCamera", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2472 + }, + { + "name": "gameplaySectionCombat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2488 + }, + { + "name": "gameplaySectionUI", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2504 + }, + { + "name": "cameraDistance", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2520 + }, + { + "name": "idleCameraMovement", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2536 + }, + { + "name": "idleCameraMovementDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2552 + }, + { + "name": "reduceDynamicCameraMovement", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2568 + }, + { + "name": "reduceDynamicCameraMovementDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2584 + }, + { + "name": "dynamicCameraGlider", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2600 + }, + { + "name": "dynamicCameraCombat", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2616 + }, + { + "name": "dynamicCameraGrapplingHook", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2632 + }, + { + "name": "dynamicCameraCampfire", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2648 + }, + { + "name": "screenShake", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2664 + }, + { + "name": "screenShakeStrength", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2680 + }, + { + "name": "displayDamageNumbers", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2696 + }, + { + "name": "displayDamagePropertyTexts", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2712 + }, + { + "name": "keepTargetLockWhenSprinting", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2728 + }, + { + "name": "autoChangeTargetLockOnKill", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2744 + }, + { + "name": "textScale", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2760 + }, + { + "name": "hudAspectRatioLimit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2776 + }, + { + "name": "hudAspectRatioLimitNone", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2792 + }, + { + "name": "hideHUD", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2808 + }, + { + "name": "showHUD", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2824 + }, + { + "name": "hideHelmet", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2840 + }, + { + "name": "hideGloves", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2856 + }, + { + "name": "showRarityIcons", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2872 + }, + { + "name": "useCharacterName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2888 + }, + { + "name": "confirmDeletionByRarity", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2904 + }, + { + "name": "confirmDeletionByRarityDescription", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2920 + }, + { + "name": "rarityAndAbove", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2936 + }, + { + "name": "hideSmallSpiders", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2952 + }, + { + "name": "controllerButtonStyle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2968 + }, + { + "name": "controllerDiagramPageGeneral", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2984 + }, + { + "name": "controllerDiagramPageBuilding", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 3000 + }, + { + "name": "difficulty", + "type_name": "keen::FbUiLocaTagDifficultySettings", + "type_hash": 1725552231, + "data_offset": 3016 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiUserPermissions", + "type_name_2": "FbUiUserPermissions", + "qualified_name": "keen::FbUiUserPermissions", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4008683125, + "hash2": 3203430225, + "struct_fields": [ + { + "name": "kickBanPermissionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "accessInventoriesPermissionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "editBasePermissionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "extendBasePermissionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuJournal", + "type_name_2": "FbUiLocaMenuJournal", + "qualified_name": "keen::FbUiLocaMenuJournal", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1257738045, + "hash2": 2820579528, + "struct_fields": [ + { + "name": "emptyMenuHintShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "emptyMenuHintLong", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenus", + "type_name_2": "FbUiLocaMenus", + "qualified_name": "keen::FbUiLocaMenus", + "referenced_type_name": null, + "class_size": 9416, + "fields_count": 96, + "primitive_type": "Struct", + "hash1": 1031288923, + "hash2": 3098304436, + "struct_fields": [ + { + "name": "pregame", + "type_name": "keen::FbUiLocaMenuPregame", + "type_hash": 1988283793, + "data_offset": 0 + }, + { + "name": "system", + "type_name": "keen::FbUiLocaMenuSystem", + "type_hash": 4220391731, + "data_offset": 2288 + }, + { + "name": "settings", + "type_name": "keen::FbUiLocaMenuSettings", + "type_hash": 4183817935, + "data_offset": 2688 + }, + { + "name": "userPermissions", + "type_name": "keen::FbUiUserPermissions", + "type_hash": 4008683125, + "data_offset": 7240 + }, + { + "name": "flameAltar", + "type_name": "keen::FbUiLocaMenuFlameAltar", + "type_hash": 3263394031, + "data_offset": 7304 + }, + { + "name": "journal", + "type_name": "keen::FbUiLocaMenuJournal", + "type_hash": 1257738045, + "data_offset": 7944 + }, + { + "name": "menuHeaderFallbackCollection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 7976 + }, + { + "name": "menuHeaderFallbackFoodStorage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 7992 + }, + { + "name": "menuHeaderSkillTree", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8008 + }, + { + "name": "menuHeaderCharacterCustomization", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8024 + }, + { + "name": "menuHeaderCharacterCreation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8040 + }, + { + "name": "menuHeaderStorageChest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8056 + }, + { + "name": "menuHeaderLootEntity", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8072 + }, + { + "name": "menuHeaderSystem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8088 + }, + { + "name": "bpMenuGettingReady", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8104 + }, + { + "name": "bpMenuSectionActiveBlueprint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8120 + }, + { + "name": "bpMenuSectionAvailableBlueprints", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8136 + }, + { + "name": "bpMenuSectionMaterials", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8152 + }, + { + "name": "bpMenuShapeBarExpansionHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8168 + }, + { + "name": "bpMenuSubCategorySingleBlock", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8184 + }, + { + "name": "bpMenuSubCategoryNonRoof", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8200 + }, + { + "name": "bpMenuSubCategoryNonRoof_4m", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8216 + }, + { + "name": "bpMenuSubCategoryRoof", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8232 + }, + { + "name": "bpMenuSubCategoryRoof_4m", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8248 + }, + { + "name": "bpMenuSubCategoryTerrain", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8264 + }, + { + "name": "terraformerMenuSectionActiveTool", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8280 + }, + { + "name": "terraformerMenuSectionAvailableTool", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8296 + }, + { + "name": "npcSideMenuSectionActiveTool", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8312 + }, + { + "name": "npcSideMenuSectionAvailableTool", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8328 + }, + { + "name": "npcSideMenuNoAvailableNpcs", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8344 + }, + { + "name": "npcSideMenuRoamingRange", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8360 + }, + { + "name": "npcSideMenuRoamingRangeLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8376 + }, + { + "name": "dialogNoChatterHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8392 + }, + { + "name": "repairNotAvailableHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8408 + }, + { + "name": "craftingTabManual", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8424 + }, + { + "name": "craftingTabRepair", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8440 + }, + { + "name": "craftingTabRecycling", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8456 + }, + { + "name": "craftingTabUpgrade", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8472 + }, + { + "name": "playerEntryFallback", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8488 + }, + { + "name": "itemPerksHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8504 + }, + { + "name": "itemPerksAttributeGeneric", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8520 + }, + { + "name": "flame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8536 + }, + { + "name": "theFlame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8552 + }, + { + "name": "activeAltars", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8568 + }, + { + "name": "mapNpcUnplacedHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8584 + }, + { + "name": "attributeValueExplainShort", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8600 + }, + { + "name": "attributeValueExplainLong", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8616 + }, + { + "name": "resistanceAttributeBonusTooltip", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8632 + }, + { + "name": "susceptibilityAttributeTooltip", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8648 + }, + { + "name": "page", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8664 + }, + { + "name": "pageNavigation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8680 + }, + { + "name": "pagesUnlocked", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8696 + }, + { + "name": "rewards", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8712 + }, + { + "name": "activeQuest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8728 + }, + { + "name": "fastTravelDisabled", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8744 + }, + { + "name": "fastTravelDisabledFalling", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8760 + }, + { + "name": "objective", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8776 + }, + { + "name": "location", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8792 + }, + { + "name": "completed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8808 + }, + { + "name": "documentItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8824 + }, + { + "name": "loreCategoryUnsorted", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8840 + }, + { + "name": "loreCategoryUndiscovered", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8856 + }, + { + "name": "noUncompletedQuestsHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8872 + }, + { + "name": "noCompletedQuestsHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8888 + }, + { + "name": "customMapMarkerLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8904 + }, + { + "name": "tombstoneLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8920 + }, + { + "name": "missedWorldQuestsMapHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8936 + }, + { + "name": "questCategoryActive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8952 + }, + { + "name": "questCategoryInactive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8968 + }, + { + "name": "nextQuestHintDocName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8984 + }, + { + "name": "nextQuestHintPageName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9000 + }, + { + "name": "nextQuestHintText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9016 + }, + { + "name": "kickPlayerPopupHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9032 + }, + { + "name": "kickPlayerPopupContent", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9048 + }, + { + "name": "currentPlayerPermissionHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9064 + }, + { + "name": "nextQuestHintTheFlame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9080 + }, + { + "name": "songSelectionHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9096 + }, + { + "name": "showDetailedDiffucultySettings", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9112 + }, + { + "name": "difficultySettingsReadOnlyExplanation", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9128 + }, + { + "name": "difficultySettingsReadOnlyExplanationDedicatedServer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9144 + }, + { + "name": "twitchDropsHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9160 + }, + { + "name": "twitchDropsNoUnlocks", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9176 + }, + { + "name": "npcStatusBed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9192 + }, + { + "name": "npcStatusFood", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9208 + }, + { + "name": "collectionDisplayedHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9224 + }, + { + "name": "collectionAvailableItemsHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9240 + }, + { + "name": "collectionAvailableItemsSubHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9256 + }, + { + "name": "collectionNoAvailableItemsHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9272 + }, + { + "name": "npcCraftingLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9288 + }, + { + "name": "npcAssistantLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9304 + }, + { + "name": "npcTownsfolkLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9320 + }, + { + "name": "basesInfoAnimalsHungry", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9336 + }, + { + "name": "basesInfoAnimalsBeds", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9352 + }, + { + "name": "basesInfoAnimalsBedsObstructed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9368 + }, + { + "name": "basesGenericLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9384 + }, + { + "name": "altarGenericLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 9400 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaEquipmentMenu", + "type_name_2": "FbUiLocaEquipmentMenu", + "qualified_name": "keen::FbUiLocaEquipmentMenu", + "referenced_type_name": null, + "class_size": 896, + "fields_count": 56, + "primitive_type": "Struct", + "hash1": 2953131640, + "hash2": 4180275284, + "struct_fields": [ + { + "name": "mainHand", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "shield", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "rangedWeapon", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "arrow", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "spell", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "backpackExtender", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "climbTool", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "hookshot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "glider", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "accessory0", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "accessory1", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "ring0", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "ring1", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "head", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "upperBody", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "arms", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "lowerBody", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "boots", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "attributes", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "status", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "attributeTileMainhandDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "attributeTileRangedEquipmentDamage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "attributeTileShieldDefense", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "attributeTileBackpackExtender", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "attributeTilePrompt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "statusTilePrompt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "attributeSectionMain", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + }, + { + "name": "attributeSectionOffense", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "attributeSectionDefense", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "attributeBonusHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "attributeTooltipHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "statusNothingHintCondensed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "statusNothingHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "statusSectionFood", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "statusSectionRest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "statusFoodEmptyHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "statusRestConditionHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "statusRestConditionSitOrShelter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "statusRestComfortHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "statusRestComfortLevel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + }, + { + "name": "statusRestComfortLevelNumbered", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 640 + }, + { + "name": "statusRestComfortCondition", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 656 + }, + { + "name": "statusBuffs", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 672 + }, + { + "name": "statusDebuffs", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 688 + }, + { + "name": "statusPlayerState", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 704 + }, + { + "name": "noDebuffActive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 720 + }, + { + "name": "noBuffActive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 736 + }, + { + "name": "noPlayerStateActive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 752 + }, + { + "name": "equipped", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 768 + }, + { + "name": "available", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 784 + }, + { + "name": "slotContentNone", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 800 + }, + { + "name": "vanityModePrompt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 816 + }, + { + "name": "vanityModeGearSection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 832 + }, + { + "name": "vanityModeVisualSection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 848 + }, + { + "name": "vanityModeHideSlotAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 864 + }, + { + "name": "equipmentUsedAsVanityHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 880 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaInventory", + "type_name_2": "FbUiLocaInventory", + "qualified_name": "keen::FbUiLocaInventory", + "referenced_type_name": null, + "class_size": 2256, + "fields_count": 86, + "primitive_type": "Struct", + "hash1": 2262719215, + "hash2": 1961679881, + "struct_fields": [ + { + "name": "actionBar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "actionBarCurrent", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "mainTabBackpack", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "mainTabEquipment", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "mainTabCrafting", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "mainTabJournal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "mainTabMap", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "mainTabSkillTree", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "mainTabSettings", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "mainTabStore", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "giftingMenuTitle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "giftingLimitationHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "giftingActionHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "giftingAmountOne", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "giftingAmountHalf", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "giftingAmountAll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "giftingAmountAdjust", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "giftingTargetStatusCanReceive", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "giftingTargetStatusDead", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "giftingTargetStatusOutOfRange", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "giftingTargetStatusBackpackFull", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "giftingTarget", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "giftingTargetMissingHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "giftingActionConfirm", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "giftingStackNew", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "giftingStackOriginal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "giftedLootLogEntryHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + }, + { + "name": "splitStackNew", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "splitStackOriginal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "deletionConfirmMessage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "deletionConfirmSuppression", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "deletionConfirmSettingHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "salvagingConfirmMessage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "highlightIsCurrentItemHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "codexTileClues", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "codexTileLore", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "codexTilePinnedRecipe", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "codexTileRecipeBook", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "codexTileTutorials", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "codexPageNotDiscovered", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + }, + { + "name": "journalCompletedSectionLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 640 + }, + { + "name": "journalWorldQuestSectionLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 656 + }, + { + "name": "journalMissedWorldQuestSectionLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 672 + }, + { + "name": "journalPersonalQuestSectionLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 688 + }, + { + "name": "journalCompletedSectionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 704 + }, + { + "name": "journalWorldQuestSectionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 720 + }, + { + "name": "journalMissedWorldQuestSectionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 736 + }, + { + "name": "journalPersonalQuestSectionDesc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 752 + }, + { + "name": "codexTileMotherflame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 768 + }, + { + "name": "codexTileNpcs", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 784 + }, + { + "name": "codexTileSurvivors", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 800 + }, + { + "name": "codexTileTownfolk", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 816 + }, + { + "name": "codexTileBases", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 832 + }, + { + "name": "codexTileGroupPersonal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 848 + }, + { + "name": "codexTileGroupWorld", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 864 + }, + { + "name": "freeWaypointLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 880 + }, + { + "name": "mapNodeIsWaypointHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 896 + }, + { + "name": "noItemSelectedHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 912 + }, + { + "name": "noSlotInBackpackHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 928 + }, + { + "name": "skillpointLabelAvailable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 944 + }, + { + "name": "skillpointLabelInUse", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 960 + }, + { + "name": "skillpointLabelRefund", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 976 + }, + { + "name": "skilltreeNodeUnlocked", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 992 + }, + { + "name": "skilltreeNodeOutOfRange", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1008 + }, + { + "name": "skilltreeNodeFutureContent", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1024 + }, + { + "name": "skilltreeNodeActivated", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1040 + }, + { + "name": "cookingHintRelease", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1056 + }, + { + "name": "cookingHintHold", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1072 + }, + { + "name": "sortStacksFromInventory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1088 + }, + { + "name": "sortStacksToInventory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1104 + }, + { + "name": "takeStacks", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1120 + }, + { + "name": "depositStacks", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1136 + }, + { + "name": "takeAll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1152 + }, + { + "name": "depositAll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1168 + }, + { + "name": "sortInventory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1184 + }, + { + "name": "sortStorage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1200 + }, + { + "name": "magicChestTab", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1216 + }, + { + "name": "magicChestAddOne", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1232 + }, + { + "name": "magicChestAddStack", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1248 + }, + { + "name": "magicChestAddAll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1264 + }, + { + "name": "feedingStationStackAdditionMaxPossible", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1280 + }, + { + "name": "factoryAddIngredientsOne", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1296 + }, + { + "name": "factoryAddIngredientsMultiple", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1312 + }, + { + "name": "itemNoTwitchPermission", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1328 + }, + { + "name": "twitchItemLabel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1344 + }, + { + "name": "equipmentMenu", + "type_name": "keen::FbUiLocaEquipmentMenu", + "type_hash": 2953131640, + "data_offset": 1360 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaBuildVerbs", + "type_name_2": "FbUiLocaBuildVerbs", + "qualified_name": "keen::FbUiLocaBuildVerbs", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1926306659, + "hash2": 2115550431, + "struct_fields": [ + { + "name": "genericAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "blockAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "blueprintAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "propAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "terraformAddAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "terraformFlattenAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "terraformRemoveAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaGameplayActionLabels", + "type_name_2": "FbUiLocaGameplayActionLabels", + "qualified_name": "keen::FbUiLocaGameplayActionLabels", + "referenced_type_name": null, + "class_size": 1488, + "fields_count": 87, + "primitive_type": "Struct", + "hash1": 1784702204, + "hash2": 3362720323, + "struct_fields": [ + { + "name": "locomotionMoveLeft", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "locomotionMoveRight", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "locomotionMoveForward", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "locomotionMoveBackward", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "locomotionMove", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "cameraRotateLeft", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "cameraRotateRight", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "cameraRotateUp", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "cameraRotateDown", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "cameraRotate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "cameraZoomIn", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "cameraZoomOut", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "mainHandAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "contextualAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "cancelAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "ammunitionSelectPrevious", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "ammunitionSelectNext", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "blueprintDistanceIncrease", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "blueprintDistanceDecrease", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "blueprintMaterialSelectPrevious", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "blueprintMaterialSelectNext", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "blueprintPageSelectPrevious", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "blueprintPageSelectNext", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "blueprintShapeSelectPrevious", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "blueprintShapeSelectNext", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "actionBarSlot1", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "actionBarSlot2", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + }, + { + "name": "actionBarSlot3", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "actionBarSlot4", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "actionBarSlot5", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "actionBarSlot6", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "actionBarSlot7", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "actionBarSlot8", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "actionBarSlot9", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "actionBarSlot10", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "actionBarWheel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "actionBarSwapPage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "actionBarSwapPageVerbOnly", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "actionBarSlotPrevious", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "actionBarSlotNext", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + }, + { + "name": "guardAndParry", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 640 + }, + { + "name": "guard", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 656 + }, + { + "name": "parry", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 672 + }, + { + "name": "locomotionSprint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 688 + }, + { + "name": "locomotionEvade", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 704 + }, + { + "name": "locomotionJump", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 720 + }, + { + "name": "locomotionSneak", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 736 + }, + { + "name": "locomotionSit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 752 + }, + { + "name": "locomotionGlide", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 768 + }, + { + "name": "locomotionHookshot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 784 + }, + { + "name": "respawn", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 800 + }, + { + "name": "buildingUndo", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 816 + }, + { + "name": "buildingDismantle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 832 + }, + { + "name": "buildingDismantlePickup", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 848 + }, + { + "name": "buildingDismantleNotPossible", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 864 + }, + { + "name": "animalPickupNotPossible", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 880 + }, + { + "name": "buildingSnapping", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 896 + }, + { + "name": "transformRotateClockwiseSmall", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 912 + }, + { + "name": "transformRotateClockwiseBig", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 928 + }, + { + "name": "transformRotateCounterClockwiseSmall", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 944 + }, + { + "name": "transformRotateCounterClockwiseBig", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 960 + }, + { + "name": "transformChangeAngleClockwise", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 976 + }, + { + "name": "transformChangeAngleCounterClockwise", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 992 + }, + { + "name": "combatTargetLock", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1008 + }, + { + "name": "combatTargetLeft", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1024 + }, + { + "name": "combatTargetRight", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1040 + }, + { + "name": "rangedCombatReady", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1056 + }, + { + "name": "rangedCombatShoot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1072 + }, + { + "name": "songSelectOpen", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1088 + }, + { + "name": "songSelectPrevious", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1104 + }, + { + "name": "songSelectNext", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1120 + }, + { + "name": "systemMenuOpen", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1136 + }, + { + "name": "playerMenuOpen", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1152 + }, + { + "name": "playerMenuBackpack", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1168 + }, + { + "name": "playerMenuEquipmentAndStats", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1184 + }, + { + "name": "playerMenuWorld", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1200 + }, + { + "name": "playerMenuJournal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1216 + }, + { + "name": "playerMenuCrafting", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1232 + }, + { + "name": "playerMenuSkills", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1248 + }, + { + "name": "goToCurrentNotificationTab", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1264 + }, + { + "name": "hudMenuBlueprints", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1280 + }, + { + "name": "inputModalityTap", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1296 + }, + { + "name": "inputModalityHold", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1312 + }, + { + "name": "inputModalityRelease", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1328 + }, + { + "name": "inputModalityToggle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1344 + }, + { + "name": "assignBedHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1360 + }, + { + "name": "buildVerbs", + "type_name": "keen::FbUiLocaBuildVerbs", + "type_hash": 1926306659, + "data_offset": 1376 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaUiActionLabels", + "type_name_2": "FbUiLocaUiActionLabels", + "qualified_name": "keen::FbUiLocaUiActionLabels", + "referenced_type_name": null, + "class_size": 2016, + "fields_count": 126, + "primitive_type": "Struct", + "hash1": 923851830, + "hash2": 3807361574, + "struct_fields": [ + { + "name": "recipeUpgrade", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "repairItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "confirm", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "finish", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "cancel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "back", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "openHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "close", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "leave", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "join", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "changeGeneric", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "secondaryAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "tertiaryAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "moveObject", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "changeTab", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "navigationMove", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "navigationScroll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "previousPage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "nextPage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "mapZoom", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "mapFastTravel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "mapSnapToWaypoint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "mapSnapToPlayerPos", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "mapSnapToHomeBase", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "mapLocateGeneric", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + }, + { + "name": "mapWorldSidebar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 400 + }, + { + "name": "mapPlayersSidebar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 416 + }, + { + "name": "mapFilterSidebar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 432 + }, + { + "name": "mapFilterFocusType", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 448 + }, + { + "name": "clearMapFilter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 464 + }, + { + "name": "mapGotoJournal", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 480 + }, + { + "name": "gotoReferencedJournalPage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 496 + }, + { + "name": "gotoReferencedLorePage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 512 + }, + { + "name": "gotoReferencedQuestPage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + }, + { + "name": "mapActions", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 544 + }, + { + "name": "mapSetWaypoint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 560 + }, + { + "name": "mapSetAsWaypoint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 576 + }, + { + "name": "mapRemoveWaypoint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 592 + }, + { + "name": "mapSendPing", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 608 + }, + { + "name": "codexShowOnMap", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 624 + }, + { + "name": "placeNpcInWorld", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 640 + }, + { + "name": "itemViewerVisibilityToggle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 656 + }, + { + "name": "backpackUseItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 672 + }, + { + "name": "backpackActions", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 688 + }, + { + "name": "backpackSplitStack", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 704 + }, + { + "name": "backpackDeleteItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 720 + }, + { + "name": "backpackSalvageItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 736 + }, + { + "name": "splitStackAdjustMin", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 752 + }, + { + "name": "splitStackAdjustDecrement", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 768 + }, + { + "name": "splitStackAdjustHalf", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 784 + }, + { + "name": "splitStackAdjustIncrement", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 800 + }, + { + "name": "splitStackAdjustMax", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 816 + }, + { + "name": "backpackGrabItemForMoving", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 832 + }, + { + "name": "backpackGrabItemForMovingPartial", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 848 + }, + { + "name": "backpackGrabItemForMovingHoldable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 864 + }, + { + "name": "backpackDropItemIntoSlot", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 880 + }, + { + "name": "quickMoveItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 896 + }, + { + "name": "quickMoveItemActionbar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 912 + }, + { + "name": "quickMoveItemStorage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 928 + }, + { + "name": "quickMoveTargetFull", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 944 + }, + { + "name": "refillStacks", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 960 + }, + { + "name": "backpackEquip", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 976 + }, + { + "name": "backpackUnequip", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 992 + }, + { + "name": "backpackReplaceItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1008 + }, + { + "name": "backpackGiftItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1024 + }, + { + "name": "showTutorial", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1040 + }, + { + "name": "changeBlueprint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1056 + }, + { + "name": "lootTakeSingle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1072 + }, + { + "name": "lootTakeAll", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1088 + }, + { + "name": "craftActionSingle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1104 + }, + { + "name": "craftActionMultiple", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1120 + }, + { + "name": "stopAutomatedCraftingNext", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1136 + }, + { + "name": "changeAutomatedCraftingOuput", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1152 + }, + { + "name": "recipePin", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1168 + }, + { + "name": "recipeUnpin", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1184 + }, + { + "name": "showItemViewerTextArea", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1200 + }, + { + "name": "showItemViewerRecipeArea", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1216 + }, + { + "name": "toggleItemViewerRecipeView", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1232 + }, + { + "name": "activate", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1248 + }, + { + "name": "unlock", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1264 + }, + { + "name": "unlockNextPerk", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1280 + }, + { + "name": "rename", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1296 + }, + { + "name": "done", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1312 + }, + { + "name": "refillToInventory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1328 + }, + { + "name": "refillFromInventory", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1344 + }, + { + "name": "increase", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1360 + }, + { + "name": "decrease", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1376 + }, + { + "name": "clear", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1392 + }, + { + "name": "selectSessionSettings", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1408 + }, + { + "name": "selectSavegame", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1424 + }, + { + "name": "selectServerFilter", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1440 + }, + { + "name": "selectServer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1456 + }, + { + "name": "skip", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1472 + }, + { + "name": "select", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1488 + }, + { + "name": "next", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1504 + }, + { + "name": "create", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1520 + }, + { + "name": "continueAction", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1536 + }, + { + "name": "setActiveQuest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1552 + }, + { + "name": "hidePassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1568 + }, + { + "name": "toggleFavourite", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1584 + }, + { + "name": "hideIPAddressInput", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1600 + }, + { + "name": "createMarker", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1616 + }, + { + "name": "removeMarker", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1632 + }, + { + "name": "togglePersonalProgression", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1648 + }, + { + "name": "activatePersonalProgression", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1664 + }, + { + "name": "deactivatePersonalProgression", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1680 + }, + { + "name": "search", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1696 + }, + { + "name": "expandToggle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1712 + }, + { + "name": "toggleTooltip", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1728 + }, + { + "name": "toggleVisibility", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1744 + }, + { + "name": "change", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1760 + }, + { + "name": "kickPlayer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1776 + }, + { + "name": "toggle", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1792 + }, + { + "name": "renameAltar", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1808 + }, + { + "name": "enable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1824 + }, + { + "name": "disable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1840 + }, + { + "name": "instrumentActionTuneIn", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1856 + }, + { + "name": "confirmPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1872 + }, + { + "name": "resetToDefault", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1888 + }, + { + "name": "claimTwitchItem", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1904 + }, + { + "name": "swapArmor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1920 + }, + { + "name": "swapVanity", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1936 + }, + { + "name": "equipCollection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1952 + }, + { + "name": "unequipCollection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1968 + }, + { + "name": "equipAsArmor", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 1984 + }, + { + "name": "equipAsVanity", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 2000 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaLinks", + "type_name_2": "FbUiLocaLinks", + "qualified_name": "keen::FbUiLocaLinks", + "referenced_type_name": null, + "class_size": 25368, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1846746686, + "hash2": 3382641384, + "struct_fields": [ + { + "name": "styleTest", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "invalidUiString", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "closedBetaHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "demoSettingsHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "rpgTerms", + "type_name": "keen::FbUiLocaRpgTerms", + "type_hash": 3015393035, + "data_offset": 64 + }, + { + "name": "genericStrings", + "type_name": "keen::FbUiLocaGeneric", + "type_hash": 1009143434, + "data_offset": 5600 + }, + { + "name": "punctuations", + "type_name": "keen::FbUiLocaPunctuations", + "type_hash": 3924913628, + "data_offset": 5648 + }, + { + "name": "uiActions", + "type_name": "keen::FbUiLocaUiActionLabels", + "type_hash": 923851830, + "data_offset": 5824 + }, + { + "name": "gameplayActions", + "type_name": "keen::FbUiLocaGameplayActionLabels", + "type_hash": 1784702204, + "data_offset": 7840 + }, + { + "name": "inputStrings", + "type_name": "keen::FbUiLocaInput", + "type_hash": 180347979, + "data_offset": 9328 + }, + { + "name": "hudStrings", + "type_name": "keen::FbUiLocaHud", + "type_hash": 61835926, + "data_offset": 9568 + }, + { + "name": "inventory", + "type_name": "keen::FbUiLocaInventory", + "type_hash": 2262719215, + "data_offset": 12320 + }, + { + "name": "menuStrings", + "type_name": "keen::FbUiLocaMenus", + "type_hash": 1031288923, + "data_offset": 14576 + }, + { + "name": "crafting", + "type_name": "keen::FbUiLocaCrafting", + "type_hash": 2938647343, + "data_offset": 23992 + }, + { + "name": "itemEquipmentSlots", + "type_name": "keen::FbUiLocaItemEquipmentSlots", + "type_hash": 1060907227, + "data_offset": 25032 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterView", + "type_name_2": "FbUiCharacterView", + "qualified_name": "keen::FbUiCharacterView", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1461902762, + "hash2": 3718047273, + "struct_fields": [ + { + "name": "lookAt", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "distance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pitch", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "yaw", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "fov", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGamepadButtonImageTagId", + "type_name_2": "FbUiGamepadButtonImageTagId", + "qualified_name": "keen::FbUiGamepadButtonImageTagId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 34, + "primitive_type": "Enum", + "hash1": 3223091309, + "hash2": 3146392516, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Dpad", + "value": 1 + }, + { + "name": "DpadLeft", + "value": 2 + }, + { + "name": "DpadRight", + "value": 3 + }, + { + "name": "DpadUp", + "value": 4 + }, + { + "name": "DpadDown", + "value": 5 + }, + { + "name": "DpadVertical", + "value": 6 + }, + { + "name": "DpadHorizontal", + "value": 7 + }, + { + "name": "LeftStick", + "value": 8 + }, + { + "name": "RightStick", + "value": 9 + }, + { + "name": "LeftStickPress", + "value": 10 + }, + { + "name": "RightStickPress", + "value": 11 + }, + { + "name": "LeftStickUp", + "value": 12 + }, + { + "name": "LeftStickDown", + "value": 13 + }, + { + "name": "LeftStickLeft", + "value": 14 + }, + { + "name": "LeftStickRight", + "value": 15 + }, + { + "name": "LeftStickHorizontal", + "value": 16 + }, + { + "name": "LeftStickVertical", + "value": 17 + }, + { + "name": "RightStickUp", + "value": 18 + }, + { + "name": "RightStickDown", + "value": 19 + }, + { + "name": "RightStickLeft", + "value": 20 + }, + { + "name": "RightStickRight", + "value": 21 + }, + { + "name": "RightStickHorizontal", + "value": 22 + }, + { + "name": "RightStickVertical", + "value": 23 + }, + { + "name": "FaceTop", + "value": 24 + }, + { + "name": "FaceBottom", + "value": 25 + }, + { + "name": "FaceLeft", + "value": 26 + }, + { + "name": "FaceRight", + "value": 27 + }, + { + "name": "ShoulderLeftUpper", + "value": 28 + }, + { + "name": "ShoulderLeftLower", + "value": 29 + }, + { + "name": "ShoulderRightUpper", + "value": 30 + }, + { + "name": "ShoulderRightLower", + "value": 31 + }, + { + "name": "SystemLeft", + "value": 32 + }, + { + "name": "SystemRight", + "value": 33 + } + ] + }, + { + "type_name_1": "FbUiGamepadButtonSet", + "type_name_2": "FbUiGamepadButtonSet", + "qualified_name": "keen::FbUiGamepadButtonSet", + "referenced_type_name": null, + "class_size": 1584, + "fields_count": 33, + "primitive_type": "Struct", + "hash1": 3568244249, + "hash2": 171019169, + "struct_fields": [ + { + "name": "dpad", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "dpadLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "dpadRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "dpadUp", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "dpadDown", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "dpadVertical", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "dpadHorizontal", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "leftStick", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "rightStick", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "leftStickPress", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 432 + }, + { + "name": "rightStickPress", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 480 + }, + { + "name": "leftStickUp", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 528 + }, + { + "name": "leftStickDown", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 576 + }, + { + "name": "leftStickLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 624 + }, + { + "name": "leftStickRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 672 + }, + { + "name": "leftStickDirectionalHorizontal", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 720 + }, + { + "name": "leftStickDirectionalVertical", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 768 + }, + { + "name": "rightStickUp", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 816 + }, + { + "name": "rightStickDown", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 864 + }, + { + "name": "rightStickLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 912 + }, + { + "name": "rightStickRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 960 + }, + { + "name": "rightStickDirectionalHorizontal", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1008 + }, + { + "name": "rightStickDirectionalVertical", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1056 + }, + { + "name": "faceTop", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1104 + }, + { + "name": "faceBottom", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1152 + }, + { + "name": "faceLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1200 + }, + { + "name": "faceRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1248 + }, + { + "name": "shoulderLeftUpper", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1296 + }, + { + "name": "shoulderLeftLower", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1344 + }, + { + "name": "shoulderRightUpper", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1392 + }, + { + "name": "shoulderRightLower", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1440 + }, + { + "name": "systemLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1488 + }, + { + "name": "systemRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1536 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiColor", + "type_name_2": "UiColor", + "qualified_name": "keen::UiColor", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4039690551, + "hash2": 3223212795, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGamepadButtonSets", + "type_name_2": "FbUiGamepadButtonSets", + "qualified_name": "keen::FbUiGamepadButtonSets", + "referenced_type_name": null, + "class_size": 5192, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 966805726, + "hash2": 431102360, + "struct_fields": [ + { + "name": "controllerShape", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "genericController", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "controllerPlaystation", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "controllerNintendoSwitch", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "genericButtonsForms", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "genericButtonsXABY", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "genericButtonsYBAX", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "diagramKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 336 + }, + { + "name": "xbox", + "type_name": "keen::FbUiGamepadButtonSet", + "type_hash": 3568244249, + "data_offset": 344 + }, + { + "name": "playstation", + "type_name": "keen::FbUiGamepadButtonSet", + "type_hash": 3568244249, + "data_offset": 1928 + }, + { + "name": "nintendoSwitch", + "type_name": "keen::FbUiGamepadButtonSet", + "type_hash": 3568244249, + "data_offset": 3512 + }, + { + "name": "twoHeadedArrowHorizontal", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 5096 + }, + { + "name": "twoHeadedArrowVertical", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 5144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiBorder", + "type_name_2": "UiBorder", + "qualified_name": "keen::UiBorder", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2002546014, + "hash2": 4125215339, + "struct_fields": [ + { + "name": "left", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "top", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "right", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "bottom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiNineSliceTexture", + "type_name_2": "UiNineSliceTexture", + "qualified_name": "keen::UiNineSliceTexture", + "referenced_type_name": "keen::UiTexture", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2602606885, + "hash2": 2595104354, + "struct_fields": [ + { + "name": "border", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKeyboardKeys", + "type_name_2": "FbUiKeyboardKeys", + "qualified_name": "keen::FbUiKeyboardKeys", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1029380293, + "hash2": 1739077487, + "struct_fields": [ + { + "name": "standardKey", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "nineSlicedKey", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKeyboardKeyLegends", + "type_name_2": "FbUiKeyboardKeyLegends", + "qualified_name": "keen::FbUiKeyboardKeyLegends", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1299248306, + "hash2": 3309839990, + "struct_fields": [ + { + "name": "up", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "down", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "left", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "right", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMouseHints", + "type_name_2": "FbUiMouseHints", + "qualified_name": "keen::FbUiMouseHints", + "referenced_type_name": null, + "class_size": 672, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 634007115, + "hash2": 2902907897, + "struct_fields": [ + { + "name": "left", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "right", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "middle", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "button4", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "button5", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "wheel", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "wheelUp", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "wheelDown", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "directionalContext", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "move", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 432 + }, + { + "name": "moveUp", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 480 + }, + { + "name": "moveDown", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 528 + }, + { + "name": "moveLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 576 + }, + { + "name": "moveRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 624 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGradients", + "type_name_2": "FbUiGradients", + "qualified_name": "keen::FbUiGradients", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3437737305, + "hash2": 3163506451, + "struct_fields": [ + { + "name": "whiteToBlackTest", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "alphaToRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "alphaToBottom", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "alphaToBottomRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "alphaToTopBottom", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "alphaToLeftRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "alphaToLeftRightSliced", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPrimitives", + "type_name_2": "FbUiPrimitives", + "qualified_name": "keen::FbUiPrimitives", + "referenced_type_name": null, + "class_size": 1232, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 513804118, + "hash2": 2597781962, + "struct_fields": [ + { + "name": "circle", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "circleOutline", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "circleSoftGlow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "ringSoftGlow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "diamond", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "triangle", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "separatorLineHorizontal", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "separatorLineHorizontalLeftHeavy", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "separatorLineVertical", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "gradients", + "type_name": "keen::FbUiGradients", + "type_hash": 3437737305, + "data_offset": 432 + }, + { + "name": "boxInnerGlow", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 784 + }, + { + "name": "glowBoxSmall", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 848 + }, + { + "name": "glowBoxLarge", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 912 + }, + { + "name": "roundedBoxSmall", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 976 + }, + { + "name": "roundedBoxSmallOutline", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 1040 + }, + { + "name": "roundedBoxSmallOutlineThin", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 1104 + }, + { + "name": "roundedBoxOutlineBuildingZone", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 1168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSocialLogos", + "type_name_2": "FbUiSocialLogos", + "qualified_name": "keen::FbUiSocialLogos", + "referenced_type_name": null, + "class_size": 288, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3066066405, + "hash2": 3216411768, + "struct_fields": [ + { + "name": "steam", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "discord", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "qq", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "yooreka", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "twitchText", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "twitchIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoadingSymbol", + "type_name_2": "FbUiLoadingSymbol", + "qualified_name": "keen::FbUiLoadingSymbol", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 826830936, + "hash2": 1823113608, + "struct_fields": [ + { + "name": "logoHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "dotFadeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiStatusIcons", + "type_name_2": "FbUiStatusIcons", + "qualified_name": "keen::FbUiStatusIcons", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4250144340, + "hash2": 240831393, + "struct_fields": [ + { + "name": "happy", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "sheltered", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "bed", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "food", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "warmth", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "location", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "bedStandlone", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "shelteredStandlone", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "fullfilledNpcNeeds", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGenericIcons", + "type_name_2": "FbUiGenericIcons", + "qualified_name": "keen::FbUiGenericIcons", + "referenced_type_name": null, + "class_size": 2976, + "fields_count": 54, + "primitive_type": "Struct", + "hash1": 3602395745, + "hash2": 3816425023, + "struct_fields": [ + { + "name": "attention", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "checkmark", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "fulfilled", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "unfulfilled", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "missing", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "weight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "pin", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "menuAttentionMarker", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "speechBubble", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "speechBubbleImportant", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 432 + }, + { + "name": "speechBubbleDotDotDot", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 480 + }, + { + "name": "hudMarkerFill", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 528 + }, + { + "name": "hudMarkerOutline", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 576 + }, + { + "name": "hudMarkerQuestionMark", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 624 + }, + { + "name": "warningTriangle", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 672 + }, + { + "name": "forbidden", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 720 + }, + { + "name": "store", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 768 + }, + { + "name": "settings", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 816 + }, + { + "name": "arrowRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 864 + }, + { + "name": "arrowLeftRight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 912 + }, + { + "name": "locked", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 960 + }, + { + "name": "star4", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1008 + }, + { + "name": "star5", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1056 + }, + { + "name": "itemRarity", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1104 + }, + { + "name": "privateGame", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1152 + }, + { + "name": "publicGame", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1200 + }, + { + "name": "joinGame", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1248 + }, + { + "name": "networkGood", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1296 + }, + { + "name": "networkAcceptable", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1344 + }, + { + "name": "networkBad", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1392 + }, + { + "name": "infinitySymbol", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1440 + }, + { + "name": "craftingCogwheel", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1488 + }, + { + "name": "craftingInactiveLayer", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1536 + }, + { + "name": "loadingIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1584 + }, + { + "name": "friendServer", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1632 + }, + { + "name": "dedicatedServer", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1680 + }, + { + "name": "nonDedicatedServer", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1728 + }, + { + "name": "favouriteServerSet", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1776 + }, + { + "name": "favouriteServerUnset", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1824 + }, + { + "name": "hide", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1872 + }, + { + "name": "visible", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1920 + }, + { + "name": "hide_selected", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1968 + }, + { + "name": "visible_selected", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2016 + }, + { + "name": "externalLink", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2064 + }, + { + "name": "sort", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2112 + }, + { + "name": "moveStacks", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2160 + }, + { + "name": "moveAll", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2208 + }, + { + "name": "serverSettingProhibited", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2256 + }, + { + "name": "permissionKick", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2304 + }, + { + "name": "permissionEditBase", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2352 + }, + { + "name": "permissionUpgradeBase", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2400 + }, + { + "name": "permissionAccessStorage", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2448 + }, + { + "name": "pwOptional", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 2496 + }, + { + "name": "statusIcons", + "type_name": "keen::FbUiStatusIcons", + "type_hash": 4250144340, + "data_offset": 2544 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCoverStyle", + "type_name_2": "FbUiCoverStyle", + "qualified_name": "keen::FbUiCoverStyle", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 1448959980, + "hash2": 119372724, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "NoneButKeepMenu", + "value": 1 + }, + { + "name": "ImmediateBlack", + "value": 2 + }, + { + "name": "LoadedToGame", + "value": 3 + }, + { + "name": "RespawnToGame", + "value": 4 + }, + { + "name": "TeleportToGame", + "value": 5 + }, + { + "name": "GameToTeleport", + "value": 6 + }, + { + "name": "DeathToRespawn", + "value": 7 + }, + { + "name": "GameToDeath", + "value": 8 + }, + { + "name": "ToTitleScreen", + "value": 9 + } + ] + }, + { + "type_name_1": "FbUiCoverTransition", + "type_name_2": "FbUiCoverTransition", + "qualified_name": "keen::FbUiCoverTransition", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1191239876, + "hash2": 2380771362, + "struct_fields": [ + { + "name": "coverStyle", + "type_name": "keen::FbUiCoverStyle", + "type_hash": 1448959980, + "data_offset": 0 + }, + { + "name": "changeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCursors", + "type_name_2": "FbUiCursors", + "qualified_name": "keen::FbUiCursors", + "referenced_type_name": null, + "class_size": 272, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1899510307, + "hash2": 3661478164, + "struct_fields": [ + { + "name": "lockonColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "lockon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 8 + }, + { + "name": "bow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 56 + }, + { + "name": "bowFalloff", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 104 + }, + { + "name": "spell", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 152 + }, + { + "name": "spellArea", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 200 + }, + { + "name": "crosshairWarningColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 248 + }, + { + "name": "snappingReadyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 256 + }, + { + "name": "snappingActiveColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 264 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTreeNode", + "type_name_2": "UiSkillTreeNode", + "qualified_name": "keen::UiSkillTreeNode", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3118345621, + "hash2": 2113539900, + "struct_fields": [ + { + "name": "pos", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "i", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "isA", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "isL", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTreeConnection", + "type_name_2": "UiSkillTreeConnection", + "qualified_name": "keen::UiSkillTreeConnection", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1269983041, + "hash2": 2298524405, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "b", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiSkillTreeNode[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiSkillTreeNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2792834550, + "hash2": 1073427787, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiSkillTreeConnection[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiSkillTreeConnection", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1971219922, + "hash2": 4171283076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTree", + "type_name_2": "UiSkillTree", + "qualified_name": "keen::UiSkillTree", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2774293101, + "hash2": 573517821, + "struct_fields": [ + { + "name": "sList", + "type_name": "keen::BlobArray", + "type_hash": 2792834550, + "data_offset": 0 + }, + { + "name": "sConList", + "type_name": "keen::BlobArray", + "type_hash": 1971219922, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiInline3SkillDescriptions", + "type_name_2": "FbUiInline3SkillDescriptions", + "qualified_name": "keen::FbUiInline3SkillDescriptions", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1652538404, + "hash2": 3706406412, + "struct_fields": [ + { + "name": "jumpAttack", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "evadeAttack", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "doubleJump", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "attributeStrength", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + }, + { + "name": "attributeDexterity", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 32 + }, + { + "name": "attributeIntelligence", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillTreeFallbackTexts", + "type_name_2": "FbUiSkillTreeFallbackTexts", + "qualified_name": "keen::FbUiSkillTreeFallbackTexts", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 806768581, + "hash2": 2244525574, + "struct_fields": [ + { + "name": "activeSkillName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "activeSkillDesc", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "attributeName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "attributeDesc", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + }, + { + "name": "passiveSkillName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 32 + }, + { + "name": "passiveSkillDesc", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillNode", + "type_name_2": "FbUiSkillNode", + "qualified_name": "keen::FbUiSkillNode", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3488157445, + "hash2": 146233430, + "struct_fields": [ + { + "name": "textureRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "glowScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "contentRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "focusRadiusGrowth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "mutedForEA", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 16 + }, + { + "name": "outOfReach", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 64 + }, + { + "name": "inReach", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 112 + }, + { + "name": "activated", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 160 + }, + { + "name": "glow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillNodes", + "type_name_2": "FbUiSkillNodes", + "qualified_name": "keen::FbUiSkillNodes", + "referenced_type_name": null, + "class_size": 828, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3252901570, + "hash2": 2708083220, + "struct_fields": [ + { + "name": "starter", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "starterRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "skillIconScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "skillIconSubjectTextureReferenceHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "attributes", + "type_name": "keen::FbUiSkillNode", + "type_hash": 3488157445, + "data_offset": 60 + }, + { + "name": "passiveSkill", + "type_name": "keen::FbUiSkillNode", + "type_hash": 3488157445, + "data_offset": 316 + }, + { + "name": "activeSkill", + "type_name": "keen::FbUiSkillNode", + "type_hash": 3488157445, + "data_offset": 572 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillTreeLinkColors", + "type_name_2": "FbUiSkillTreeLinkColors", + "qualified_name": "keen::FbUiSkillTreeLinkColors", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1635209093, + "hash2": 448371506, + "struct_fields": [ + { + "name": "activatedCore", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "activatedGlow", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "adjacent", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "adjacentHover", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "inactive", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "muted", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCanvasParallaxLayer", + "type_name_2": "FbUiCanvasParallaxLayer", + "qualified_name": "keen::FbUiCanvasParallaxLayer", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 279927324, + "hash2": 811294165, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "sizeOnCanvas", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "parallaxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "renderTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillGlowColor", + "type_name_2": "FbUiSkillGlowColor", + "qualified_name": "keen::FbUiSkillGlowColor", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1982683675, + "hash2": 3696754025, + "struct_fields": [ + { + "name": "idle", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "activated", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillGlowColors", + "type_name_2": "FbUiSkillGlowColors", + "qualified_name": "keen::FbUiSkillGlowColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1902465464, + "hash2": 2617019910, + "struct_fields": [ + { + "name": "mage", + "type_name": "keen::FbUiSkillGlowColor", + "type_hash": 1982683675, + "data_offset": 0 + }, + { + "name": "warrior", + "type_name": "keen::FbUiSkillGlowColor", + "type_hash": 1982683675, + "data_offset": 16 + }, + { + "name": "ranger", + "type_name": "keen::FbUiSkillGlowColor", + "type_hash": 1982683675, + "data_offset": 32 + }, + { + "name": "neutral", + "type_name": "keen::FbUiSkillGlowColor", + "type_hash": 1982683675, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTreeClassHint", + "type_name_2": "UiSkillTreeClassHint", + "qualified_name": "keen::UiSkillTreeClassHint", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 695405126, + "hash2": 80890335, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "isPrimary", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 20 + }, + { + "name": "directionDegrees", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "distanceFromRing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiCanvasParallaxLayer[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiCanvasParallaxLayer", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 222548645, + "hash2": 1985272366, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiSkillTreeClassHint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiSkillTreeClassHint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1136685933, + "hash2": 1781246356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillTree", + "type_name_2": "FbUiSkillTree", + "qualified_name": "keen::FbUiSkillTree", + "referenced_type_name": null, + "class_size": 1572, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 2173105261, + "hash2": 1650583234, + "struct_fields": [ + { + "name": "zoomSteps", + "type_name": "keen::BlobArray", + "type_hash": 2669534122, + "data_offset": 0 + }, + { + "name": "bgLayers", + "type_name": "keen::BlobArray", + "type_hash": 222548645, + "data_offset": 8 + }, + { + "name": "skillLayoutHelper", + "type_name": "keen::FbUiCanvasParallaxLayer", + "type_hash": 279927324, + "data_offset": 16 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 84 + }, + { + "name": "linkColors", + "type_name": "keen::FbUiSkillTreeLinkColors", + "type_hash": 1635209093, + "data_offset": 92 + }, + { + "name": "connectionDirectionalPulse", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 140 + }, + { + "name": "connectionCore", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 188 + }, + { + "name": "connectionCoreInactive", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 236 + }, + { + "name": "connectionCoreOneWayStretch", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 284 + }, + { + "name": "connectionCoreOneWayEnd", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 332 + }, + { + "name": "connectionGlow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 380 + }, + { + "name": "connectionPulseColorGeneric", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 428 + }, + { + "name": "nodeHighlight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 436 + }, + { + "name": "cursorHighlight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 484 + }, + { + "name": "glowColors", + "type_name": "keen::FbUiSkillGlowColors", + "type_hash": 1902465464, + "data_offset": 532 + }, + { + "name": "classHints", + "type_name": "keen::BlobArray", + "type_hash": 1136685933, + "data_offset": 596 + }, + { + "name": "mageKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 604 + }, + { + "name": "warriorKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 612 + }, + { + "name": "rangerKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 620 + }, + { + "name": "neutralClassKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 628 + }, + { + "name": "mutedOverlayColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 636 + }, + { + "name": "nodes", + "type_name": "keen::FbUiSkillNodes", + "type_hash": 3252901570, + "data_offset": 644 + }, + { + "name": "centerRing", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1472 + }, + { + "name": "centerRingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1520 + }, + { + "name": "fallbackTexts", + "type_name": "keen::FbUiSkillTreeFallbackTexts", + "type_hash": 806768581, + "data_offset": 1524 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapMarkerIcons", + "type_name_2": "FbUiMapMarkerIcons", + "qualified_name": "keen::FbUiMapMarkerIcons", + "referenced_type_name": null, + "class_size": 488, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3371028186, + "hash2": 99656774, + "struct_fields": [ + { + "name": "waypoint", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "playerCorpse", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "playerCorpseInDungeon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "markerFrame", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "markerSelector", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "investigation", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "investigationOpaque", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "completed", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "playerPing", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "playerMarkerPing", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 432 + }, + { + "name": "playerPingColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 480 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomMapMarkerColorScheme", + "type_name_2": "CustomMapMarkerColorScheme", + "qualified_name": "keen::CustomMapMarkerColorScheme", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Enum", + "hash1": 84660521, + "hash2": 847058322, + "struct_fields": [], + "enum_fields": [ + { + "name": "White", + "value": 0 + }, + { + "name": "Red", + "value": 1 + }, + { + "name": "Green", + "value": 2 + }, + { + "name": "Blue", + "value": 3 + }, + { + "name": "Yellow", + "value": 4 + }, + { + "name": "Purple", + "value": 5 + }, + { + "name": "Turquoise", + "value": 6 + }, + { + "name": "Black", + "value": 7 + }, + { + "name": "Count", + "value": 8 + } + ] + }, + { + "type_name_1": "FbUiCustomMarkerColorScheme", + "type_name_2": "FbUiCustomMarkerColorScheme", + "qualified_name": "keen::FbUiCustomMarkerColorScheme", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3691911179, + "hash2": 1257755127, + "struct_fields": [ + { + "name": "colorSchemeType", + "type_name": "keen::CustomMapMarkerColorScheme", + "type_hash": 84660521, + "data_offset": 0 + }, + { + "name": "baseColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + }, + { + "name": "iconColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "FbUiCustomMarkerColorScheme[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::FbUiCustomMarkerColorScheme", + "class_size": 160, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 210467401, + "hash2": 111345949, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomMapMarker", + "type_name_2": "FbUiCustomMapMarker", + "qualified_name": "keen::FbUiCustomMapMarker", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 370949513, + "hash2": 3589491130, + "struct_fields": [ + { + "name": "colors", + "type_name": "keen::StaticArray", + "type_hash": 210467401, + "data_offset": 0 + }, + { + "name": "markerBase", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 160 + }, + { + "name": "customMarkerSelector", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 208 + }, + { + "name": "customMarkerWaypoint", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 256 + }, + { + "name": "customMarkerHighlight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapIsolineConfig", + "type_name_2": "FbUiMapIsolineConfig", + "qualified_name": "keen::FbUiMapIsolineConfig", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4108606431, + "hash2": 1287522012, + "struct_fields": [ + { + "name": "thickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "alpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "FbUiMapIsolineConfig[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::FbUiMapIsolineConfig", + "class_size": 24, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 3250732518, + "hash2": 4136492946, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapZoomConfig", + "type_name_2": "FbUiMapZoomConfig", + "qualified_name": "keen::FbUiMapZoomConfig", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2135994487, + "hash2": 4102580950, + "struct_fields": [ + { + "name": "zoomScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "isolineConfigs", + "type_name": "keen::StaticArray", + "type_hash": 3250732518, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapInvestigationArea", + "type_name_2": "FbUiMapInvestigationArea", + "qualified_name": "keen::FbUiMapInvestigationArea", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2534241157, + "hash2": 3023401153, + "struct_fields": [ + { + "name": "pattern", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "tileSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mask", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 52 + }, + { + "name": "patternColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "bgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 108 + }, + { + "name": "alphaRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 116 + }, + { + "name": "pulseCycleInSeconds", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiMapZoomConfig[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiMapZoomConfig", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1496109888, + "hash2": 704967947, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiAdventureMap", + "type_name_2": "FbUiAdventureMap", + "qualified_name": "keen::FbUiAdventureMap", + "referenced_type_name": null, + "class_size": 1384, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 675839050, + "hash2": 2374732739, + "struct_fields": [ + { + "name": "playerPosition", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "currentPlayerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "otherPlayerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "fogZoneAlphaRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 64 + }, + { + "name": "fogZonePulseLength", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "outerCornerNominalSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "outerFrame", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 84 + }, + { + "name": "frameInnerGradientNominalSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 148 + }, + { + "name": "frameInnerGradient", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 152 + }, + { + "name": "cursorPiece", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 216 + }, + { + "name": "offscreenIconBubble", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 264 + }, + { + "name": "circularArea", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 312 + }, + { + "name": "markerRipple", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 360 + }, + { + "name": "investigation", + "type_name": "keen::FbUiMapInvestigationArea", + "type_hash": 2534241157, + "data_offset": 408 + }, + { + "name": "markerIcons", + "type_name": "keen::FbUiMapMarkerIcons", + "type_hash": 3371028186, + "data_offset": 536 + }, + { + "name": "zoomConfigs", + "type_name": "keen::BlobArray", + "type_hash": 1496109888, + "data_offset": 1024 + }, + { + "name": "customMarkers", + "type_name": "keen::FbUiCustomMapMarker", + "type_hash": 370949513, + "data_offset": 1032 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeCategoryIcons", + "type_name_2": "FbUiRecipeCategoryIcons", + "qualified_name": "keen::FbUiRecipeCategoryIcons", + "referenced_type_name": null, + "class_size": 288, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2793845728, + "hash2": 3850247786, + "struct_fields": [ + { + "name": "swords", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "ammo", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "potion", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "misc", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "armor", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "magical", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeGroupDefinition", + "type_name_2": "FbUiRecipeGroupDefinition", + "qualified_name": "keen::FbUiRecipeGroupDefinition", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4068822308, + "hash2": 356519257, + "struct_fields": [ + { + "name": "icon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "tagRef", + "type_name": "keen::ItemTagReference", + "type_hash": 1501213304, + "data_offset": 48 + }, + { + "name": "itemCategoryFallback", + "type_name": "keen::ItemCategory", + "type_hash": 2660841681, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiRecipeGroupDefinition[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiRecipeGroupDefinition", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 493754413, + "hash2": 2756493344, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ItemTagReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ItemTagReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1836393415, + "hash2": 663498535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCrafting", + "type_name_2": "FbUiCrafting", + "qualified_name": "keen::FbUiCrafting", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 256163230, + "hash2": 417436209, + "struct_fields": [ + { + "name": "categoryIcons", + "type_name": "keen::FbUiRecipeCategoryIcons", + "type_hash": 2793845728, + "data_offset": 0 + }, + { + "name": "ingredientBgColorDefault", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 288 + }, + { + "name": "sufficientIngredientColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 296 + }, + { + "name": "insufficientIngredientColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 304 + }, + { + "name": "successFlashColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 312 + }, + { + "name": "pinnedRecipeIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 320 + }, + { + "name": "groupDefinitions", + "type_name": "keen::BlobArray", + "type_hash": 493754413, + "data_offset": 368 + }, + { + "name": "recipeSets", + "type_name": "keen::BlobArray", + "type_hash": 1836393415, + "data_offset": 376 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeSetFolder", + "type_name_2": "FbUiRecipeSetFolder", + "qualified_name": "keen::FbUiRecipeSetFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1782984838, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeSet", + "type_name_2": "FbUiRecipeSet", + "qualified_name": "keen::FbUiRecipeSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3693619126, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiWorldEvents", + "type_name_2": "FbUiWorldEvents", + "qualified_name": "keen::FbUiWorldEvents", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1704862877, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiWorldEvent", + "type_name_2": "FbUiWorldEvent", + "qualified_name": "keen::FbUiWorldEvent", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1495654268, + "hash2": 1038851849, + "struct_fields": [ + { + "name": "eventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "mainTexture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 4 + }, + { + "name": "ornament", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 52 + }, + { + "name": "initialColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "secondaryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 108 + }, + { + "name": "rippleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 116 + }, + { + "name": "imageSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "sfx", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "text", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiParagraphAlignment", + "type_name_2": "UiParagraphAlignment", + "qualified_name": "keen::UiParagraphAlignment", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1806570067, + "hash2": 3031852753, + "struct_fields": [], + "enum_fields": [ + { + "name": "Left", + "value": 0 + }, + { + "name": "Center", + "value": 1 + }, + { + "name": "Right", + "value": 2 + } + ] + }, + { + "type_name_1": "UiParagraphStyle", + "type_name_2": "UiParagraphStyle", + "qualified_name": "keen::UiParagraphStyle", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1259009315, + "hash2": 868118714, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "leading", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "enableAlignment", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "alignment", + "type_name": "keen::UiParagraphAlignment", + "type_hash": 1806570067, + "data_offset": 13 + }, + { + "name": "indentLeft", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "indentRight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "lineSpacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuParagraphStyles", + "type_name_2": "FbUiMenuParagraphStyles", + "qualified_name": "keen::FbUiMenuParagraphStyles", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1832572725, + "hash2": 2765719104, + "struct_fields": [ + { + "name": "loreReaderBody", + "type_name": "keen::UiParagraphStyle", + "type_hash": 1259009315, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiEquipmentBodyPartViews", + "type_name_2": "FbUiEquipmentBodyPartViews", + "qualified_name": "keen::FbUiEquipmentBodyPartViews", + "referenced_type_name": null, + "class_size": 196, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 340955069, + "hash2": 1567031591, + "struct_fields": [ + { + "name": "full", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 0 + }, + { + "name": "head", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 28 + }, + { + "name": "chest", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 56 + }, + { + "name": "arm", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 84 + }, + { + "name": "legs", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 112 + }, + { + "name": "feet", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 140 + }, + { + "name": "ring", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudMenuMetrics", + "type_name_2": "FbUiHudMenuMetrics", + "qualified_name": "keen::FbUiHudMenuMetrics", + "referenced_type_name": null, + "class_size": 216, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1266030507, + "hash2": 1661944852, + "struct_fields": [ + { + "name": "lootingMenuWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "centerMessageBottomY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "epicLootLeaveCenterDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "equipmentBodyPartViews", + "type_name": "keen::FbUiEquipmentBodyPartViews", + "type_hash": 340955069, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationViews", + "type_name_2": "FbUiCustomizationViews", + "qualified_name": "keen::FbUiCustomizationViews", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2256817901, + "hash2": 107805901, + "struct_fields": [ + { + "name": "fullBody", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 0 + }, + { + "name": "head", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 28 + }, + { + "name": "presetView", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 56 + }, + { + "name": "hairView", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 84 + }, + { + "name": "beardView", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 112 + }, + { + "name": "hairColorView", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetObject", + "type_name_2": "CharacterPresetObject", + "qualified_name": "keen::CharacterPresetObject", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 51037865, + "hash2": 1824084563, + "struct_fields": [ + { + "name": "presetObject", + "type_name": "keen::CharacterPresetObjectReference", + "type_hash": 924631974, + "data_offset": 0 + }, + { + "name": "previewImage", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterItemReferences", + "type_name_2": "CharacterItemReferences", + "qualified_name": "keen::CharacterItemReferences", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4183003748, + "hash2": 580398484, + "struct_fields": [ + { + "name": "itemReference", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 0 + }, + { + "name": "previewImage", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CharacterPresetObject[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CharacterPresetObject", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1580359654, + "hash2": 3577694289, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ColorPresetReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ColorPresetReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3257779518, + "hash2": 2427883057, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CharacterItemReferences[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CharacterItemReferences", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2394685225, + "hash2": 1801095284, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3116841404, + "hash2": 2857849661, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4187625101, + "hash2": 3035918413, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomization", + "type_name_2": "FbUiCustomization", + "qualified_name": "keen::FbUiCustomization", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 331249105, + "hash2": 693192834, + "struct_fields": [ + { + "name": "characterViews", + "type_name": "keen::FbUiCustomizationViews", + "type_hash": 2256817901, + "data_offset": 0 + }, + { + "name": "presetObjects", + "type_name": "keen::BlobArray", + "type_hash": 1580359654, + "data_offset": 168 + }, + { + "name": "hairColors", + "type_name": "keen::BlobArray", + "type_hash": 3257779518, + "data_offset": 176 + }, + { + "name": "beardColors", + "type_name": "keen::BlobArray", + "type_hash": 3257779518, + "data_offset": 184 + }, + { + "name": "hairItems", + "type_name": "keen::BlobArray", + "type_hash": 2394685225, + "data_offset": 192 + }, + { + "name": "beardItems", + "type_name": "keen::BlobArray", + "type_hash": 2394685225, + "data_offset": 200 + }, + { + "name": "eyeColors", + "type_name": "keen::BlobArray>", + "type_hash": 3116841404, + "data_offset": 208 + }, + { + "name": "eyeBrowColors", + "type_name": "keen::BlobArray>", + "type_hash": 3116841404, + "data_offset": 216 + }, + { + "name": "skinColors", + "type_name": "keen::BlobArray>", + "type_hash": 3116841404, + "data_offset": 224 + }, + { + "name": "voiceItems", + "type_name": "keen::BlobArray>", + "type_hash": 4187625101, + "data_offset": 232 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTileArtConfig", + "type_name_2": "FbUiTileArtConfig", + "qualified_name": "keen::FbUiTileArtConfig", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3856056187, + "hash2": 1195846998, + "struct_fields": [ + { + "name": "pivot", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "scaleTweak", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "texture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiTileArtConfig[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiTileArtConfig", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3934789296, + "hash2": 3290914722, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuTiles", + "type_name_2": "FbUiMenuTiles", + "qualified_name": "keen::FbUiMenuTiles", + "referenced_type_name": null, + "class_size": 736, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 653711328, + "hash2": 3565712013, + "struct_fields": [ + { + "name": "idleAlphaScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "emptyContentAlphaScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lockedContent", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 8 + }, + { + "name": "quests", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 68 + }, + { + "name": "flame", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 128 + }, + { + "name": "craftspeople", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 188 + }, + { + "name": "townsfolk", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 248 + }, + { + "name": "bases", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 308 + }, + { + "name": "workshops", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 368 + }, + { + "name": "lore", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 428 + }, + { + "name": "tutorials", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 488 + }, + { + "name": "altarUpgradeGeneric", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 548 + }, + { + "name": "altarLevels", + "type_name": "keen::BlobArray", + "type_hash": 3934789296, + "data_offset": 608 + }, + { + "name": "flameUpgrade", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 616 + }, + { + "name": "skilltree", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 676 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuButtonTextures", + "type_name_2": "FbUiMenuButtonTextures", + "qualified_name": "keen::FbUiMenuButtonTextures", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3158135935, + "hash2": 1747638578, + "struct_fields": [ + { + "name": "background", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 0 + }, + { + "name": "backgroundDestructive", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 64 + }, + { + "name": "backGlow", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 128 + }, + { + "name": "ornament", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCharacterStyleActivePropertyFlags", + "type_name_2": "UiCharacterStyleActivePropertyFlags", + "qualified_name": "keen::UiCharacterStyleActivePropertyFlags", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1601647542, + "hash2": 101088230, + "struct_fields": [ + { + "name": "font", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "tracking", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "variant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "uppercase", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "color", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "outline", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "dropShadow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCharacterStyle", + "type_name_2": "UiCharacterStyle", + "qualified_name": "keen::UiCharacterStyle", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1203993984, + "hash2": 88109479, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "activeProperties", + "type_name": "keen::UiCharacterStyleActivePropertyFlags", + "type_hash": 1601647542, + "data_offset": 8 + }, + { + "name": "font", + "type_name": "keen::ObjectReference", + "type_hash": 3946183968, + "data_offset": 16 + }, + { + "name": "fontSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "spacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "bold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "italic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + }, + { + "name": "uppercase", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 44 + }, + { + "name": "outline", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "outlineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "outlineSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "dropShadow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "dropShadowColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 72 + }, + { + "name": "dropShadowOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuButton", + "type_name_2": "FbUiMenuButton", + "qualified_name": "keen::FbUiMenuButton", + "referenced_type_name": null, + "class_size": 1440, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1158661783, + "hash2": 1591429457, + "struct_fields": [ + { + "name": "standalone", + "type_name": "keen::FbUiMenuButtonTextures", + "type_hash": 3158135935, + "data_offset": 0 + }, + { + "name": "inGroupLeft", + "type_name": "keen::FbUiMenuButtonTextures", + "type_hash": 3158135935, + "data_offset": 256 + }, + { + "name": "inGroupMiddle", + "type_name": "keen::FbUiMenuButtonTextures", + "type_hash": 3158135935, + "data_offset": 512 + }, + { + "name": "inGroupRight", + "type_name": "keen::FbUiMenuButtonTextures", + "type_hash": 3158135935, + "data_offset": 768 + }, + { + "name": "standaloneSmall", + "type_name": "keen::FbUiMenuButtonTextures", + "type_hash": 3158135935, + "data_offset": 1024 + }, + { + "name": "sliderKnob", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1280 + }, + { + "name": "labelStyle", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1328 + }, + { + "name": "ornamentTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1416 + }, + { + "name": "destructiveTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1424 + }, + { + "name": "textColorDestructive", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1432 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuToggle", + "type_name_2": "FbUiMenuToggle", + "qualified_name": "keen::FbUiMenuToggle", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 864893115, + "hash2": 3741249182, + "struct_fields": [ + { + "name": "toggleOn", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "toggleOff", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "backGlow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuScrollbar", + "type_name_2": "FbUiMenuScrollbar", + "qualified_name": "keen::FbUiMenuScrollbar", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3781977359, + "hash2": 2041081572, + "struct_fields": [ + { + "name": "slider", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 0 + }, + { + "name": "range", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 64 + }, + { + "name": "rangeTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterInventory", + "type_name_2": "FbUiCharacterInventory", + "qualified_name": "keen::FbUiCharacterInventory", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 283347777, + "hash2": 3412335451, + "struct_fields": [ + { + "name": "levelBadgeBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "xpBarLevelBadgeSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMultiToolMenu", + "type_name_2": "FbUiMultiToolMenu", + "qualified_name": "keen::FbUiMultiToolMenu", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3111938408, + "hash2": 3942233514, + "struct_fields": [ + { + "name": "materialHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "tooltipMaterialHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "tooltipMaterialHintWithBlockUnit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "tooltipEmptyMaterialListHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "itemSubInfo", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "preUseHint_QuickBuilder", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "preUseHint_Terraformer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "preUseHint_NpcSummoner", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "preUseHintHud_QuickBuilder", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "preUseHintHud_Terraformer", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "preUseHintHud_NpcSummoner", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "noAltarBuild", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "craftBlocksHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "craftRoofBlocksHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "collectMaterialsHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "noMaterialsAvailable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "needsFlameAltarHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "antiTofuTint_Temp", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 272 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiEquipmentSlotIcons", + "type_name_2": "FbUiEquipmentSlotIcons", + "qualified_name": "keen::FbUiEquipmentSlotIcons", + "referenced_type_name": null, + "class_size": 816, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 2066243938, + "hash2": 2376005040, + "struct_fields": [ + { + "name": "mainHand", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "shield", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "backpackExtender", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "rangedWeapon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "arrow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "spell", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "wallClimber", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "hookshot", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "glider", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "accessory", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 432 + }, + { + "name": "ring", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 480 + }, + { + "name": "head", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 528 + }, + { + "name": "upperBody", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 576 + }, + { + "name": "arms", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 624 + }, + { + "name": "lowerBody", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 672 + }, + { + "name": "boots", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 720 + }, + { + "name": "vanity", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 768 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPerkIcons", + "type_name_2": "FbUiPerkIcons", + "qualified_name": "keen::FbUiPerkIcons", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 147750466, + "hash2": 3481901213, + "struct_fields": [ + { + "name": "nodeOutline", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "genericAttributeNode", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFancyBox", + "type_name_2": "FbUiFancyBox", + "qualified_name": "keen::FbUiFancyBox", + "referenced_type_name": null, + "class_size": 1112, + "fields_count": 23, + "primitive_type": "Struct", + "hash1": 876216670, + "hash2": 3760818985, + "struct_fields": [ + { + "name": "cornerSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "frame", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 4 + }, + { + "name": "frameSimple", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 68 + }, + { + "name": "frameColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 132 + }, + { + "name": "backgroundShape", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 140 + }, + { + "name": "backgroundShapeHalved", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 204 + }, + { + "name": "backgroundShapeGlassMask", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 268 + }, + { + "name": "backgroundShapeHalvedGlassMask", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 332 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 396 + }, + { + "name": "backgroundColorDark", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 404 + }, + { + "name": "backgroundPattern", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 412 + }, + { + "name": "backgroundPatternColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 460 + }, + { + "name": "patternSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 468 + }, + { + "name": "frameFull", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 472 + }, + { + "name": "backgroundShapeFrameFull", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 536 + }, + { + "name": "backgroundShapeGradientToLeft", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 600 + }, + { + "name": "backgroundShapeGradientToTop", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 664 + }, + { + "name": "frameFullSimple", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 728 + }, + { + "name": "backgroundShapeFrameFullSimple", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 792 + }, + { + "name": "frameTopMinimal", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 856 + }, + { + "name": "backgroundShapeTopMinimal", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 920 + }, + { + "name": "frameFullDetailed", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 984 + }, + { + "name": "backgroundShapeFrameFullDetailed", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 1048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFancyLoadingBar", + "type_name_2": "FbUiFancyLoadingBar", + "qualified_name": "keen::FbUiFancyLoadingBar", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1477069948, + "hash2": 3152851631, + "struct_fields": [ + { + "name": "background", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 0 + }, + { + "name": "bar", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 64 + }, + { + "name": "glow", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 128 + }, + { + "name": "sectionCompletedColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiVector", + "type_name_2": "UiVector", + "qualified_name": "keen::UiVector", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1137348591, + "hash2": 3287445737, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSize", + "type_name_2": "UiSize", + "qualified_name": "keen::UiSize", + "referenced_type_name": "keen::UiVector", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2982276529, + "hash2": 523730730, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuExplainer", + "type_name_2": "FbUiMenuExplainer", + "qualified_name": "keen::FbUiMenuExplainer", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3135082425, + "hash2": 547819231, + "struct_fields": [ + { + "name": "darkenerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "areaFeatherSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "areaContentPadding", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 12 + }, + { + "name": "textMaxWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "textColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiJournalBaseInfo", + "type_name_2": "FbUiJournalBaseInfo", + "qualified_name": "keen::FbUiJournalBaseInfo", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 682869986, + "hash2": 864121422, + "struct_fields": [ + { + "name": "iconFlameAltar", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "iconNpc", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "iconNpcBed", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "iconAnimal", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCodexAssets", + "type_name_2": "FbUiCodexAssets", + "qualified_name": "keen::FbUiCodexAssets", + "referenced_type_name": null, + "class_size": 1144, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 3868729302, + "hash2": 3304092003, + "struct_fields": [ + { + "name": "questSourceIconBG", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "repeatedQuestSourceIconBG", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "questIconFlame", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "questIconBlacksmith", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "questIconAlchemist", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "questIconHunter", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "questIconCarpenter", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "questIconFarmer", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "questIconCryptKeeper", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "questIconBard", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 432 + }, + { + "name": "questIconMisc", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 480 + }, + { + "name": "questIconTexture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 528 + }, + { + "name": "questProgressEmpty", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 576 + }, + { + "name": "questProgressFilled", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 624 + }, + { + "name": "questCheckmark", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 672 + }, + { + "name": "lorePageFound", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 720 + }, + { + "name": "lorePageLocked", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 768 + }, + { + "name": "activeQuestIndicator", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 816 + }, + { + "name": "lockedLoreTileImage", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 864 + }, + { + "name": "completedQuestsColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 912 + }, + { + "name": "flameQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 920 + }, + { + "name": "npcQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 928 + }, + { + "name": "miscQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 936 + }, + { + "name": "repeatedQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 944 + }, + { + "name": "baseInfo", + "type_name": "keen::FbUiJournalBaseInfo", + "type_hash": 682869986, + "data_offset": 952 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoreCategory", + "type_name_2": "FbUiLoreCategory", + "qualified_name": "keen::FbUiLoreCategory", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2140664236, + "hash2": 402793847, + "struct_fields": [ + { + "name": "categoryName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "artConfig", + "type_name": "keen::FbUiTileArtConfig", + "type_hash": 3856056187, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuAttributeTabs", + "type_name_2": "FbUiMenuAttributeTabs", + "qualified_name": "keen::FbUiMenuAttributeTabs", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1176490949, + "hash2": 146167860, + "struct_fields": [ + { + "name": "basicsTab", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "damageTab", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "resistanceTab", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCollectionCategoryInfo", + "type_name_2": "FbUiCollectionCategoryInfo", + "qualified_name": "keen::FbUiCollectionCategoryInfo", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4257063592, + "hash2": 2206303562, + "struct_fields": [ + { + "name": "category", + "type_name": "keen::ObjectReference", + "type_hash": 1331808684, + "data_offset": 0 + }, + { + "name": "label", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "icon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "float[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::float", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4201800353, + "hash2": 4280139385, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultyOptionValue", + "type_name_2": "FbUiDifficultyOptionValue", + "qualified_name": "keen::FbUiDifficultyOptionValue", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 591651137, + "hash2": 1778197351, + "struct_fields": [ + { + "name": "isAvailable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "steps", + "type_name": "keen::BlobArray", + "type_hash": 4201800353, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultyOptionValues", + "type_name_2": "FbUiDifficultyOptionValues", + "qualified_name": "keen::FbUiDifficultyOptionValues", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 36, + "primitive_type": "Struct", + "hash1": 3051061686, + "hash2": 896990759, + "struct_fields": [ + { + "name": "enemyDamage", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 0 + }, + { + "name": "enemyHealth", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 12 + }, + { + "name": "enemyStamina", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 24 + }, + { + "name": "enemyPerceptionRange", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 36 + }, + { + "name": "enemyAttackFrequency", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 48 + }, + { + "name": "bossHealth", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 60 + }, + { + "name": "bossDamage", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 72 + }, + { + "name": "miningXp", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 84 + }, + { + "name": "questXp", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 96 + }, + { + "name": "combatXp", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 108 + }, + { + "name": "playerHealth", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 120 + }, + { + "name": "playerStamina", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 132 + }, + { + "name": "playerMana", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 144 + }, + { + "name": "shroudTime", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 156 + }, + { + "name": "durability", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 168 + }, + { + "name": "dayTime", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 180 + }, + { + "name": "nightTime", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 192 + }, + { + "name": "foodDuration", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 204 + }, + { + "name": "productionTime", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 216 + }, + { + "name": "plantGrowTime", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 228 + }, + { + "name": "weaponUpgradeCost", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 240 + }, + { + "name": "perkUpgradeRecyclingFactor", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 252 + }, + { + "name": "worldRefreshTime", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 264 + }, + { + "name": "miningDamage", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 276 + }, + { + "name": "dropAmount", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 288 + }, + { + "name": "starvingTime", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 300 + }, + { + "name": "bodyHeat", + "type_name": "keen::FbUiDifficultyOptionValue", + "type_hash": 591651137, + "data_offset": 312 + }, + { + "name": "tombstoneMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 324 + }, + { + "name": "randomSpawnerAmount", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 325 + }, + { + "name": "aggroPoolAmount", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 326 + }, + { + "name": "enableDurability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 327 + }, + { + "name": "enableStarvingDebuff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 328 + }, + { + "name": "pacifyAllEnemies", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 329 + }, + { + "name": "weatherFrequency", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 330 + }, + { + "name": "enableGliderTurbulences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 331 + }, + { + "name": "tamingStartleRepercussion", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 332 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultyPreset", + "type_name_2": "FbUiDifficultyPreset", + "qualified_name": "keen::FbUiDifficultyPreset", + "referenced_type_name": null, + "class_size": 312, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3118449858, + "hash2": 2667564347, + "struct_fields": [ + { + "name": "presetId", + "type_name": "keen::ecs::GameSettingsPreset", + "type_hash": 770884095, + "data_offset": 0 + }, + { + "name": "label", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4 + }, + { + "name": "desc", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 20 + }, + { + "name": "iconSelected", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 36 + }, + { + "name": "iconUnelected", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 84 + }, + { + "name": "iconSmall", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 132 + }, + { + "name": "settings", + "type_name": "keen::ecs::GameSettings", + "type_hash": 2298714128, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultySettings", + "type_name_2": "FbUiDifficultySettings", + "qualified_name": "keen::FbUiDifficultySettings", + "referenced_type_name": null, + "class_size": 1944, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 275924012, + "hash2": 1137656883, + "struct_fields": [ + { + "name": "settingValues", + "type_name": "keen::FbUiDifficultyOptionValues", + "type_hash": 3051061686, + "data_offset": 0 + }, + { + "name": "presetDefault", + "type_name": "keen::FbUiDifficultyPreset", + "type_hash": 3118449858, + "data_offset": 336 + }, + { + "name": "presetBuilder", + "type_name": "keen::FbUiDifficultyPreset", + "type_hash": 3118449858, + "data_offset": 648 + }, + { + "name": "presetSurvivalist", + "type_name": "keen::FbUiDifficultyPreset", + "type_hash": 3118449858, + "data_offset": 960 + }, + { + "name": "presetCombatChallenge", + "type_name": "keen::FbUiDifficultyPreset", + "type_hash": 3118449858, + "data_offset": 1272 + }, + { + "name": "custom", + "type_name": "keen::FbUiDifficultyPreset", + "type_hash": 3118449858, + "data_offset": 1584 + }, + { + "name": "presetIconHighlight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1896 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiCollectionCategoryInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiCollectionCategoryInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2119775883, + "hash2": 1482772615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiLoreCategory[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiLoreCategory", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3467392807, + "hash2": 3957364067, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenu", + "type_name_2": "FbUiMenu", + "qualified_name": "keen::FbUiMenu", + "referenced_type_name": null, + "class_size": 11240, + "fields_count": 51, + "primitive_type": "Struct", + "hash1": 439360039, + "hash2": 329418734, + "struct_fields": [ + { + "name": "metrics", + "type_name": "keen::FbUiHudMenuMetrics", + "type_hash": 1266030507, + "data_offset": 0 + }, + { + "name": "paragraphStyles", + "type_name": "keen::FbUiMenuParagraphStyles", + "type_hash": 1832572725, + "data_offset": 216 + }, + { + "name": "characterInventory", + "type_name": "keen::FbUiCharacterInventory", + "type_hash": 283347777, + "data_offset": 244 + }, + { + "name": "skilltree", + "type_name": "keen::FbUiSkillTree", + "type_hash": 2173105261, + "data_offset": 300 + }, + { + "name": "map", + "type_name": "keen::FbUiAdventureMap", + "type_hash": 675839050, + "data_offset": 1872 + }, + { + "name": "crafting", + "type_name": "keen::FbUiCrafting", + "type_hash": 256163230, + "data_offset": 3256 + }, + { + "name": "collectionCategories", + "type_name": "keen::BlobArray", + "type_hash": 2119775883, + "data_offset": 3640 + }, + { + "name": "multiTool", + "type_name": "keen::FbUiMultiToolMenu", + "type_hash": 3111938408, + "data_offset": 3648 + }, + { + "name": "equipmentSlots", + "type_name": "keen::FbUiEquipmentSlotIcons", + "type_hash": 2066243938, + "data_offset": 3928 + }, + { + "name": "itemPerkIcons", + "type_name": "keen::FbUiPerkIcons", + "type_hash": 147750466, + "data_offset": 4744 + }, + { + "name": "attributeTabs", + "type_name": "keen::FbUiMenuAttributeTabs", + "type_hash": 1176490949, + "data_offset": 4840 + }, + { + "name": "menuTiles", + "type_name": "keen::FbUiMenuTiles", + "type_hash": 653711328, + "data_offset": 4984 + }, + { + "name": "codexMotherflameIllustration", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 5720 + }, + { + "name": "codexAssets", + "type_name": "keen::FbUiCodexAssets", + "type_hash": 3868729302, + "data_offset": 5768 + }, + { + "name": "loreCategories", + "type_name": "keen::BlobArray", + "type_hash": 3467392807, + "data_offset": 6912 + }, + { + "name": "button", + "type_name": "keen::FbUiMenuButton", + "type_hash": 1158661783, + "data_offset": 6920 + }, + { + "name": "toggle", + "type_name": "keen::FbUiMenuToggle", + "type_hash": 864893115, + "data_offset": 8360 + }, + { + "name": "scrollbar", + "type_name": "keen::FbUiMenuScrollbar", + "type_hash": 3781977359, + "data_offset": 8504 + }, + { + "name": "loadingBar", + "type_name": "keen::FbUiFancyLoadingBar", + "type_hash": 1477069948, + "data_offset": 8640 + }, + { + "name": "frostedGlassDefaultTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8840 + }, + { + "name": "backgroundDarkenerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8848 + }, + { + "name": "topTabBackground", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 8856 + }, + { + "name": "tabLabelIdleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8920 + }, + { + "name": "tabLabelHighlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8928 + }, + { + "name": "tabHighlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8936 + }, + { + "name": "tabHighlight", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 8944 + }, + { + "name": "basicWidgetColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9008 + }, + { + "name": "basicWidgetColorHighlighted", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9016 + }, + { + "name": "tileBackgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9024 + }, + { + "name": "tileHighlightOutlineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9032 + }, + { + "name": "basicWidgetMinimizedShape", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9040 + }, + { + "name": "basicWidgetBackground", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9104 + }, + { + "name": "basicWidgetBackgroundWide", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9168 + }, + { + "name": "basicWidgetBackgroundLarge", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9232 + }, + { + "name": "basicWidgetBackgroundFaded", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9296 + }, + { + "name": "basicWidgetHeader", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9360 + }, + { + "name": "basicWidgetRarityStripe", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9424 + }, + { + "name": "basicWidgetHighlightOutline", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 9488 + }, + { + "name": "fancyBox", + "type_name": "keen::FbUiFancyBox", + "type_hash": 876216670, + "data_offset": 9552 + }, + { + "name": "pillWidgetBackground", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 10664 + }, + { + "name": "flameIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 10728 + }, + { + "name": "moveStacksLeftIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 10776 + }, + { + "name": "moveStacksRightIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 10824 + }, + { + "name": "iconPlayerInventory", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 10872 + }, + { + "name": "iconStorageInventory", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 10920 + }, + { + "name": "iconOpenInventoryTransactions", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 10968 + }, + { + "name": "spatialFactoryInfoBg", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 11016 + }, + { + "name": "actionbarTutorialKeyImage", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 11064 + }, + { + "name": "fancyToggleSmallOff", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 11112 + }, + { + "name": "fancyToggleSmallOn", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 11160 + }, + { + "name": "explainer", + "type_name": "keen::FbUiMenuExplainer", + "type_hash": 3135082425, + "data_offset": 11208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemSlotFrame", + "type_name_2": "FbUiItemSlotFrame", + "qualified_name": "keen::FbUiItemSlotFrame", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 112031400, + "hash2": 3463079720, + "struct_fields": [ + { + "name": "shapeBase", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "shapeSubtle", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "outline", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemSlotMinimal", + "type_name_2": "FbUiItemSlotMinimal", + "qualified_name": "keen::FbUiItemSlotMinimal", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 441373926, + "hash2": 4166516270, + "struct_fields": [ + { + "name": "cookable", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "uncookable", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "empty", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemEquipIndicator", + "type_name_2": "FbUiItemEquipIndicator", + "qualified_name": "keen::FbUiItemEquipIndicator", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2789574106, + "hash2": 1144458985, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "texture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 16 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + }, + { + "name": "useFrame", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemStackProperties", + "type_name_2": "FbUiItemStackProperties", + "qualified_name": "keen::FbUiItemStackProperties", + "referenced_type_name": null, + "class_size": 1288, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 1362222088, + "hash2": 2020375075, + "struct_fields": [ + { + "name": "isNew", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "equippableFrame", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "equipMissingHint", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "initialEquipActionMessage", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "labelEquipped", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "labelUnequipped", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "actionBarHighlight", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 192 + }, + { + "name": "instaUse", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 268 + }, + { + "name": "armor", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 344 + }, + { + "name": "vanityArmor", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 420 + }, + { + "name": "rangedWeapon", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 496 + }, + { + "name": "arrow", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 572 + }, + { + "name": "spell", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 648 + }, + { + "name": "blueprintDefaultShape", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 724 + }, + { + "name": "blueprintDefaultMaterial", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 800 + }, + { + "name": "blueprintRoofShape", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 876 + }, + { + "name": "blueprintRoofMaterial", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 952 + }, + { + "name": "blueprintTerrainShape", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 1028 + }, + { + "name": "blueprintTerrainMaterial", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 1104 + }, + { + "name": "missingTwitchPermission", + "type_name": "keen::FbUiItemEquipIndicator", + "type_hash": 2789574106, + "data_offset": 1180 + }, + { + "name": "durabilityColorDefault", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1256 + }, + { + "name": "durabilityColorLow", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1264 + }, + { + "name": "durabilityColorDraining", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1272 + }, + { + "name": "durabilityColorDrainingLow", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1280 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemSlot", + "type_name_2": "FbUiItemSlot", + "qualified_name": "keen::FbUiItemSlot", + "referenced_type_name": null, + "class_size": 1976, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3486711971, + "hash2": 3453838160, + "struct_fields": [ + { + "name": "properties", + "type_name": "keen::FbUiItemStackProperties", + "type_hash": 1362222088, + "data_offset": 0 + }, + { + "name": "backpack", + "type_name": "keen::FbUiItemSlotFrame", + "type_hash": 112031400, + "data_offset": 1288 + }, + { + "name": "minimal", + "type_name": "keen::FbUiItemSlotMinimal", + "type_hash": 441373926, + "data_offset": 1432 + }, + { + "name": "countNumberStyle", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1576 + }, + { + "name": "grabAmountColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1664 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1672 + }, + { + "name": "backgroundColorBright", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1680 + }, + { + "name": "actionbarPageInactive", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1688 + }, + { + "name": "actionbarPageActive", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1736 + }, + { + "name": "pageHint", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1784 + }, + { + "name": "blueprintBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1832 + }, + { + "name": "blueprintTypeIconMini", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1880 + }, + { + "name": "blueprintIntroItemIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1928 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiBlueprint", + "type_name_2": "FbUiBlueprint", + "qualified_name": "keen::FbUiBlueprint", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2965108091, + "hash2": 4139264216, + "struct_fields": [ + { + "name": "introRecipeName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "introRecipeDescription1", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "introRecipeDescription2", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "introItemSubinfo", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "introItemEmptyHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "introItemUsageHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "materialHeader", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "tooltipMaterialHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "tooltipMaterialHintWithBlockUnit", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "tooltipEmptyMaterialListHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "antiTofuTint_Temp", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiBuffIcons", + "type_name_2": "FbUiBuffIcons", + "qualified_name": "keen::FbUiBuffIcons", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1287936685, + "hash2": 1681784165, + "struct_fields": [ + { + "name": "circularBarMask", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "frameColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "pieFillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "pieFillColorHungry", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + }, + { + "name": "pieFillColorStarving", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 72 + }, + { + "name": "pieLineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 80 + }, + { + "name": "extremeCold", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 88 + }, + { + "name": "extremeHeat", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 136 + }, + { + "name": "restedConditionsBracket", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiAnimatedHealthBarColors", + "type_name_2": "FbUiAnimatedHealthBarColors", + "qualified_name": "keen::FbUiAnimatedHealthBarColors", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2459959432, + "hash2": 2294153668, + "struct_fields": [ + { + "name": "frameColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "rangeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "fillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "fillEndColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "damageColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "healColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudBuffDisplay", + "type_name_2": "FbUiHudBuffDisplay", + "qualified_name": "keen::FbUiHudBuffDisplay", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 701827190, + "hash2": 3080912333, + "struct_fields": [ + { + "name": "textEntriesOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "offsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "iconColumnsDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "restedAnchorSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "restedBarPieceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudPlayerStatus", + "type_name_2": "FbUiHudPlayerStatus", + "qualified_name": "keen::FbUiHudPlayerStatus", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 3266086494, + "hash2": 2673557727, + "struct_fields": [ + { + "name": "widgetBaseOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "flameWarningThresholds", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 8 + }, + { + "name": "buffDisplay", + "type_name": "keen::FbUiHudBuffDisplay", + "type_hash": 701827190, + "data_offset": 24 + }, + { + "name": "barBackground", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 52 + }, + { + "name": "barBorderThickness", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 116 + }, + { + "name": "barGroupOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 132 + }, + { + "name": "xpBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 140 + }, + { + "name": "xpBarOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 148 + }, + { + "name": "xpBarDisplayTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "healthBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 160 + }, + { + "name": "manaBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 168 + }, + { + "name": "staminaCircleMain", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 176 + }, + { + "name": "staminaCircleBuff", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 224 + }, + { + "name": "staminaCircleInner", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 272 + }, + { + "name": "staminaCirlceSizesInner", + "type_name": "keen::BlobArray", + "type_hash": 2669534122, + "data_offset": 320 + }, + { + "name": "staminaCirlceSizesOuter", + "type_name": "keen::BlobArray", + "type_hash": 2669534122, + "data_offset": 328 + }, + { + "name": "xpColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 336 + }, + { + "name": "healthColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 384 + }, + { + "name": "staminaColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 432 + }, + { + "name": "manaColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 480 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiAltarAttentionMarkerAnim", + "type_name_2": "FbUiAltarAttentionMarkerAnim", + "qualified_name": "keen::FbUiAltarAttentionMarkerAnim", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 555827989, + "hash2": 2359791783, + "struct_fields": [ + { + "name": "altarAttentionMarkerFadeIn", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "altarAttentionMarkerFadeOut", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "altarAttentionMarkerSecondPingDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "altarAttentionMarkerAnimDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "altarAttentionMarkerGrow", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "altarAttentionMarkerPingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "altarAttentionMarkerMinAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "altarAttentionMarkerPingStartAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "altarAttentionMarkerPingEndAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHUDSpatial", + "type_name_2": "FbUiHUDSpatial", + "qualified_name": "keen::FbUiHUDSpatial", + "referenced_type_name": null, + "class_size": 888, + "fields_count": 39, + "primitive_type": "Struct", + "hash1": 1453010143, + "hash2": 3410801064, + "struct_fields": [ + { + "name": "lockonBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "lockonArrow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "lockonArrowSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "healthBar", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 100 + }, + { + "name": "critIndicator", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 164 + }, + { + "name": "critIndcatorOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 212 + }, + { + "name": "bonusIndicatorUnitHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "bonusIndicator", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 224 + }, + { + "name": "malusIndicator", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 272 + }, + { + "name": "bonusGroupOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 320 + }, + { + "name": "malusGroupOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 328 + }, + { + "name": "symbolOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 336 + }, + { + "name": "enemyHealthBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 344 + }, + { + "name": "enemyStaminaBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 352 + }, + { + "name": "enemyBarGroupBorder", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 360 + }, + { + "name": "damageTextBonusFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 368 + }, + { + "name": "damageTextBonusOutlineFrom", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 376 + }, + { + "name": "damageTextBonusOutlineTo", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 384 + }, + { + "name": "damageTextMalusFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 392 + }, + { + "name": "damageTextMalusOutlineFrom", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 400 + }, + { + "name": "damageTextMalusOutlineTo", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 408 + }, + { + "name": "attentionMarkerQuestionFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 416 + }, + { + "name": "attentionMarkerFlameInfoFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 424 + }, + { + "name": "coPlayerHealthColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 432 + }, + { + "name": "coPlayerLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 480 + }, + { + "name": "coPlayerLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 488 + }, + { + "name": "enemyLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 496 + }, + { + "name": "enemyLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 504 + }, + { + "name": "enemyHealthColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 512 + }, + { + "name": "enemyStaminaColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 560 + }, + { + "name": "enemyHigherLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 608 + }, + { + "name": "enemyHigherLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 616 + }, + { + "name": "enemyHigherLevelHealthColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 624 + }, + { + "name": "neutralHealthColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 672 + }, + { + "name": "neutralLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 720 + }, + { + "name": "neutralLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 728 + }, + { + "name": "altarAttentionMarkerAnim", + "type_name": "keen::FbUiAltarAttentionMarkerAnim", + "type_hash": 555827989, + "data_offset": 736 + }, + { + "name": "hookshotPullTargetIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 792 + }, + { + "name": "hookshotPullTargetIconLockIn", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 840 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudBuildModeHint", + "type_name_2": "FbUiHudBuildModeHint", + "qualified_name": "keen::FbUiHudBuildModeHint", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3483967273, + "hash2": 926459735, + "struct_fields": [ + { + "name": "slotArc", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "flashGradient", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "flashMask", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "flashColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudTopNotification", + "type_name_2": "FbUiHudTopNotification", + "qualified_name": "keen::FbUiHudTopNotification", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2890456647, + "hash2": 138850871, + "struct_fields": [ + { + "name": "bgTintColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "accentColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "barMinWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "featherWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "fadeWaveWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "fadeInFromX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "offsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "offsetYinPlayerMenu", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudLowHealth", + "type_name_2": "FbUiHudLowHealth", + "qualified_name": "keen::FbUiHudLowHealth", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 203071311, + "hash2": 1646327278, + "struct_fields": [ + { + "name": "vignette", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "vignetteColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "enterLowHealthFlashColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudFreezing", + "type_name_2": "FbUiHudFreezing", + "qualified_name": "keen::FbUiHudFreezing", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1527470945, + "hash2": 2752086806, + "struct_fields": [ + { + "name": "frostBorderCorner", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "frostBorderCornerHeightTop", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "frostBorderCornerHeightBottom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "frostBorderTop", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 56 + }, + { + "name": "creepInGradientTop", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 104 + }, + { + "name": "frostBorderHeightTop", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "frostBorderLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 156 + }, + { + "name": "creepInGradientLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 204 + }, + { + "name": "frostBorderHeightBottom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 252 + }, + { + "name": "frostBorderWidthLeftRight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 256 + }, + { + "name": "frostBorderTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 260 + }, + { + "name": "bgBlurCenterYratio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 268 + }, + { + "name": "bgBlurVignetteTopLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 272 + }, + { + "name": "bgBlurVignetteTop", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 320 + }, + { + "name": "bgBlurVignetteLeft", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 368 + }, + { + "name": "bgBlurCornerWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 416 + }, + { + "name": "bgBlurCornerHeightTop", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 420 + }, + { + "name": "bgBlurCornerHeightBottom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 424 + }, + { + "name": "bgBlurTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 428 + }, + { + "name": "idleAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 436 + }, + { + "name": "criticalAlpha", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 440 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiControlScheme", + "type_name_2": "FbUiControlScheme", + "qualified_name": "keen::FbUiControlScheme", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3230823906, + "hash2": 3616881362, + "struct_fields": [ + { + "name": "game", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "build", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudBarrierUnlock", + "type_name_2": "FbUiHudBarrierUnlock", + "qualified_name": "keen::FbUiHudBarrierUnlock", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4133365760, + "hash2": 1950852768, + "struct_fields": [ + { + "name": "backgroundSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "backgroundOrnamentMask", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 4 + }, + { + "name": "backgroundOrnament", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 52 + }, + { + "name": "ornamentHighlight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 100 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 148 + }, + { + "name": "highlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 156 + }, + { + "name": "glowRippleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 164 + }, + { + "name": "lootDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudMessage", + "type_name_2": "FbUiHudMessage", + "qualified_name": "keen::FbUiHudMessage", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4003175392, + "hash2": 68007631, + "struct_fields": [ + { + "name": "backgroundSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "backgroundOrnamentMask", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 4 + }, + { + "name": "backgroundOrnament", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 52 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "badgeSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "badgeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 112 + }, + { + "name": "glowRippleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 120 + }, + { + "name": "messageDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "lootDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudPartyHealth", + "type_name_2": "FbUiHudPartyHealth", + "qualified_name": "keen::FbUiHudPartyHealth", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2158063517, + "hash2": 2834485018, + "struct_fields": [ + { + "name": "widgetGroupOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "barFillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + }, + { + "name": "barBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 12 + }, + { + "name": "barSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "barSpacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudServerPerformance", + "type_name_2": "FbUiHudServerPerformance", + "qualified_name": "keen::FbUiHudServerPerformance", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 404806024, + "hash2": 3942730228, + "struct_fields": [ + { + "name": "badPerformanceHintDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "badPerformanceHintInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "criticalPerformanceHintDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "criticalPerformanceHintInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "badPerformanceBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "badPerformanceTextColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "criticalPerformanceBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "criticalPerformanceTextColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudOutOfBound", + "type_name_2": "FbUiHudOutOfBound", + "qualified_name": "keen::FbUiHudOutOfBound", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4021864974, + "hash2": 1102125996, + "struct_fields": [ + { + "name": "coverColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "messageString", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8 + }, + { + "name": "messageStyle", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 24 + }, + { + "name": "countdownStyle", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudNightSpeed", + "type_name_2": "FbUiHudNightSpeed", + "qualified_name": "keen::FbUiHudNightSpeed", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 851115056, + "hash2": 2819753165, + "struct_fields": [ + { + "name": "bgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "iconColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "sleeper", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 16 + }, + { + "name": "partyMember", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 64 + }, + { + "name": "nightSpeed", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudGameProgressSummary", + "type_name_2": "FbUiHudGameProgressSummary", + "qualified_name": "keen::FbUiHudGameProgressSummary", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2224597252, + "hash2": 3394861322, + "struct_fields": [ + { + "name": "visibleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "bgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "accentColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "featherWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "widgetWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "contentTintFlame", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "contentTintCrafting", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "illustrationFlame", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "illustrationCrafting", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudMusicBuff", + "type_name_2": "FbUiHudMusicBuff", + "qualified_name": "keen::FbUiHudMusicBuff", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4167013345, + "hash2": 1642401208, + "struct_fields": [ + { + "name": "musicIcon", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "barBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "barFillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "barFillEndColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudAnimalTaming", + "type_name_2": "FbUiHudAnimalTaming", + "qualified_name": "keen::FbUiHudAnimalTaming", + "referenced_type_name": null, + "class_size": 296, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2792428963, + "hash2": 980691484, + "struct_fields": [ + { + "name": "tamingIconEmpty", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "tamingIconPending", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "tamingIconFull", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "tamingAttention", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "tamingAlert", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "tamingAlertOutline", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "tamingIconColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemWheel", + "type_name_2": "FbUiItemWheel", + "qualified_name": "keen::FbUiItemWheel", + "referenced_type_name": null, + "class_size": 376, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1310015686, + "hash2": 214633900, + "struct_fields": [ + { + "name": "slotColor_idle", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "slotColor_selected", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "previewCenterColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "background", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 24 + }, + { + "name": "direction", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 72 + }, + { + "name": "dot_selected", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 120 + }, + { + "name": "dot_unselected", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 168 + }, + { + "name": "wheelRing_complete", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 216 + }, + { + "name": "wheelRing_highlight", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 264 + }, + { + "name": "blurredBackgroundMask", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 312 + }, + { + "name": "highlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 360 + }, + { + "name": "stickOutOfRangeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 368 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCompass", + "type_name_2": "FbUiCompass", + "qualified_name": "keen::FbUiCompass", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3793977264, + "hash2": 1953716469, + "struct_fields": [ + { + "name": "baseSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 0 + }, + { + "name": "background", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 8 + }, + { + "name": "northBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 56 + }, + { + "name": "north", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 104 + }, + { + "name": "east", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 152 + }, + { + "name": "south", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 200 + }, + { + "name": "west", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 248 + }, + { + "name": "mark", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 296 + }, + { + "name": "player", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 344 + }, + { + "name": "priorityMarker", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 392 + }, + { + "name": "fogTimerShape", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 440 + }, + { + "name": "fogMeterFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 504 + }, + { + "name": "fogMeterRange", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 512 + }, + { + "name": "fogMeterDrain", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDialog", + "type_name_2": "FbUiDialog", + "qualified_name": "keen::FbUiDialog", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 491244464, + "hash2": 3334791596, + "struct_fields": [ + { + "name": "dialogMarkerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "floatingBubbleTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "frostedGlassTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "textColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "Time[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::Time", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 652428174, + "hash2": 3384346479, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHUD", + "type_name_2": "FbUiHUD", + "qualified_name": "keen::FbUiHUD", + "referenced_type_name": null, + "class_size": 5208, + "fields_count": 31, + "primitive_type": "Struct", + "hash1": 2673272393, + "hash2": 3986968229, + "struct_fields": [ + { + "name": "screenPosClampingBorderDefault", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 0 + }, + { + "name": "widgetBackgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "cursors", + "type_name": "keen::FbUiCursors", + "type_hash": 1899510307, + "data_offset": 24 + }, + { + "name": "playerStatus", + "type_name": "keen::FbUiHudPlayerStatus", + "type_hash": 3266086494, + "data_offset": 296 + }, + { + "name": "itemWheel", + "type_name": "keen::FbUiItemWheel", + "type_hash": 1310015686, + "data_offset": 824 + }, + { + "name": "levelUp", + "type_name": "keen::FbUiHudMessage", + "type_hash": 4003175392, + "data_offset": 1200 + }, + { + "name": "barrierUnlocked", + "type_name": "keen::FbUiHudBarrierUnlock", + "type_hash": 4133365760, + "data_offset": 1344 + }, + { + "name": "doorUnlocked", + "type_name": "keen::FbUiHudMessage", + "type_hash": 4003175392, + "data_offset": 1528 + }, + { + "name": "secretUnlocked", + "type_name": "keen::FbUiHudMessage", + "type_hash": 4003175392, + "data_offset": 1672 + }, + { + "name": "quickItemBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1816 + }, + { + "name": "equippedItemBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1864 + }, + { + "name": "buildModeHint", + "type_name": "keen::FbUiHudBuildModeHint", + "type_hash": 3483967273, + "data_offset": 1912 + }, + { + "name": "buildingZoneTooltipOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 2064 + }, + { + "name": "nightSpeedHint", + "type_name": "keen::FbUiHudNightSpeed", + "type_hash": 851115056, + "data_offset": 2072 + }, + { + "name": "compass", + "type_name": "keen::FbUiCompass", + "type_hash": 3793977264, + "data_offset": 2232 + }, + { + "name": "bossHealthColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 2760 + }, + { + "name": "bossStaminaColors", + "type_name": "keen::FbUiAnimatedHealthBarColors", + "type_hash": 2459959432, + "data_offset": 2808 + }, + { + "name": "bossBarBorderThickness", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 2856 + }, + { + "name": "dialog", + "type_name": "keen::FbUiDialog", + "type_hash": 491244464, + "data_offset": 2872 + }, + { + "name": "spatial", + "type_name": "keen::FbUiHUDSpatial", + "type_hash": 1453010143, + "data_offset": 2904 + }, + { + "name": "notification", + "type_name": "keen::FbUiHudTopNotification", + "type_hash": 2890456647, + "data_offset": 3792 + }, + { + "name": "gameProgressSummary", + "type_name": "keen::FbUiHudGameProgressSummary", + "type_hash": 2224597252, + "data_offset": 3832 + }, + { + "name": "lowHealthVignette", + "type_name": "keen::FbUiHudLowHealth", + "type_hash": 203071311, + "data_offset": 3976 + }, + { + "name": "blurVignette", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 4040 + }, + { + "name": "freezingVignette", + "type_name": "keen::FbUiHudFreezing", + "type_hash": 1527470945, + "data_offset": 4088 + }, + { + "name": "freezingWarningTimes", + "type_name": "keen::BlobArray", + "type_hash": 652428174, + "data_offset": 4536 + }, + { + "name": "partyHealth", + "type_name": "keen::FbUiHudPartyHealth", + "type_hash": 2158063517, + "data_offset": 4544 + }, + { + "name": "outOfBound", + "type_name": "keen::FbUiHudOutOfBound", + "type_hash": 4021864974, + "data_offset": 4576 + }, + { + "name": "serverPerforamceHint", + "type_name": "keen::FbUiHudServerPerformance", + "type_hash": 404806024, + "data_offset": 4776 + }, + { + "name": "musicBuff", + "type_name": "keen::FbUiHudMusicBuff", + "type_hash": 4167013345, + "data_offset": 4840 + }, + { + "name": "animalTaming", + "type_name": "keen::FbUiHudAnimalTaming", + "type_hash": 2792428963, + "data_offset": 4912 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHeadline", + "type_name_2": "FbUiHeadline", + "qualified_name": "keen::FbUiHeadline", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 969387056, + "hash2": 1897268771, + "struct_fields": [ + { + "name": "background", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 0 + }, + { + "name": "criticalWarningTextColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemWheelDummy", + "type_name_2": "FbUiItemWheelDummy", + "qualified_name": "keen::FbUiItemWheelDummy", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1875966206, + "hash2": 1070948098, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "glow", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiScreenDeath", + "type_name_2": "FbUiScreenDeath", + "qualified_name": "keen::FbUiScreenDeath", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 551743110, + "hash2": 1059818963, + "struct_fields": [ + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "normalDeathHeadline", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8 + }, + { + "name": "fogDeathHeadline", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 24 + }, + { + "name": "fogDeathHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 40 + }, + { + "name": "inventoryLossHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 56 + }, + { + "name": "inventoryLostAllHint", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiScreen", + "type_name_2": "FbUiScreen", + "qualified_name": "keen::FbUiScreen", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2367617348, + "hash2": 413811887, + "struct_fields": [ + { + "name": "titleScreenKeyArt", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "death", + "type_name": "keen::FbUiScreenDeath", + "type_hash": 551743110, + "data_offset": 48 + }, + { + "name": "controlScheme", + "type_name": "keen::FbUiControlScheme", + "type_hash": 3230823906, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuGeneric", + "type_name_2": "FbUiSoundsMenuGeneric", + "qualified_name": "keen::FbUiSoundsMenuGeneric", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 38, + "primitive_type": "Struct", + "hash1": 1772344388, + "hash2": 1755699566, + "struct_fields": [ + { + "name": "flameAltarOpen", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "skillTreeOpen", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "loreOpen", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "loreClose", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "signpostOpen", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "signpostClose", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "systemMenuOpen", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "open", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "close", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "back", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + }, + { + "name": "clickNeutral", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 160 + }, + { + "name": "tabChange", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 176 + }, + { + "name": "highlightChange", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 192 + }, + { + "name": "entryTrigger", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 208 + }, + { + "name": "entryCancel", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 224 + }, + { + "name": "entryTriggerFailed", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 240 + }, + { + "name": "sideMenuFadeIn", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 256 + }, + { + "name": "sideMenuFadeOut", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 272 + }, + { + "name": "equip", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 288 + }, + { + "name": "unequip", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 304 + }, + { + "name": "columnChange", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 320 + }, + { + "name": "leftOpen", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 336 + }, + { + "name": "leftClose", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 352 + }, + { + "name": "rightOpen", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 368 + }, + { + "name": "rightClose", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 384 + }, + { + "name": "settingWidgetToggle", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 400 + }, + { + "name": "settingMenuEnter", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 416 + }, + { + "name": "settingMenuExit", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 432 + }, + { + "name": "repairItems", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 448 + }, + { + "name": "textEnter", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 464 + }, + { + "name": "textDelete", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 480 + }, + { + "name": "mouseClickGeneric", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 496 + }, + { + "name": "mouseHover", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 512 + }, + { + "name": "activatePersonalProgression", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 528 + }, + { + "name": "deactivatePersonalProgression", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 544 + }, + { + "name": "sliderValueChange", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 560 + }, + { + "name": "selectDifficulty", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 576 + }, + { + "name": "mouseHoverTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 592 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuCrafting", + "type_name_2": "FbUiSoundsMenuCrafting", + "qualified_name": "keen::FbUiSoundsMenuCrafting", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 514230425, + "hash2": 948395439, + "struct_fields": [ + { + "name": "recipeMoveWithinEntry", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "highlightChange", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "entryTrigger", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "craftingSuccessful", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "craftingFailed", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "pin", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "unpin", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "pinnedRecipeCraftable", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "pinnedRecipeIngredientCompleted", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "perkUnlocked", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuJournal", + "type_name_2": "FbUiSoundsMenuJournal", + "qualified_name": "keen::FbUiSoundsMenuJournal", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1543541402, + "hash2": 114481765, + "struct_fields": [ + { + "name": "openTile", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuAltar", + "type_name_2": "FbUiSoundsMenuAltar", + "qualified_name": "keen::FbUiSoundsMenuAltar", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 419584469, + "hash2": 478801246, + "struct_fields": [ + { + "name": "highlightChange", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "entryTrigger", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "leave", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsLootAquisition", + "type_name_2": "FbUiSoundsLootAquisition", + "qualified_name": "keen::FbUiSoundsLootAquisition", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4193526996, + "hash2": 4082909906, + "struct_fields": [ + { + "name": "common", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "uncommon", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "rare", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "epic", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "legendary", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "keyItem", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "specialLoot", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "npc", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "pinnedRecipeHint", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "twitchReward", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsSkillTree", + "type_name_2": "FbUiSoundsSkillTree", + "qualified_name": "keen::FbUiSoundsSkillTree", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2298092241, + "hash2": 2477733977, + "struct_fields": [ + { + "name": "attributeIncrease", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "skillUnlock", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "skillModUnlock", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "passivePerkUnlock", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "reactivePerkUnlock", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "nodeFocus", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "zoomIn", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "zoomOut", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsEventMessages", + "type_name_2": "FbUiSoundsEventMessages", + "qualified_name": "keen::FbUiSoundsEventMessages", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 631004008, + "hash2": 1272823653, + "struct_fields": [ + { + "name": "menuUpdateNotification", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "locationDiscovery", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "npcRevived", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "amuletUpgraded", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "giftingSend", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "giftingReceive", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "clueCompleted", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "playerLevelup", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "flameLevelUp", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "magicBarrierUnlocked", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + }, + { + "name": "doorUnlocked", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 160 + }, + { + "name": "secretDoorUnlocked", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 176 + }, + { + "name": "allMissedQuestsCompleted", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 192 + }, + { + "name": "newTwitchDropUnlocked", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsAdventureMap", + "type_name_2": "FbUiSoundsAdventureMap", + "qualified_name": "keen::FbUiSoundsAdventureMap", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3684195742, + "hash2": 980138508, + "struct_fields": [ + { + "name": "waypointSet", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "waypointClear", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "waypointLocate", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "zoomIn", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "zoomOut", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "fastTravelTriggered", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "showOnMap", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "goToHomeBase", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "recenter", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "playerPing", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsDialog", + "type_name_2": "FbUiSoundsDialog", + "qualified_name": "keen::FbUiSoundsDialog", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3939804260, + "hash2": 218641526, + "struct_fields": [ + { + "name": "startDialog", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "changeEntry", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "confirmEntry", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "cancelEntry", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "revealDialogLine", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsActionbar", + "type_name_2": "FbUiSoundsActionbar", + "qualified_name": "keen::FbUiSoundsActionbar", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3181316943, + "hash2": 476034810, + "struct_fields": [ + { + "name": "cantUse", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "moveHighlight", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "cycleActionbar", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsBackpack", + "type_name_2": "FbUiSoundsBackpack", + "qualified_name": "keen::FbUiSoundsBackpack", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2224465018, + "hash2": 1538904133, + "struct_fields": [ + { + "name": "inventoryFull", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "deleteItem", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "dropItemIntoSlot", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "dropItemIntoActionBar", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "grabItem", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "swapItems", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "splitStack", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "salvageItem", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "sortInventory", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsItemWheel", + "type_name_2": "FbUiSoundsItemWheel", + "qualified_name": "keen::FbUiSoundsItemWheel", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 828308314, + "hash2": 2139483215, + "struct_fields": [ + { + "name": "open", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "close", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "changeHighlight", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsHud", + "type_name_2": "FbUiSoundsHud", + "qualified_name": "keen::FbUiSoundsHud", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 2671661269, + "hash2": 3494458684, + "struct_fields": [ + { + "name": "lowHealthLoop", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "enterFog", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "enterFogTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "enterDangerousFog", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 40 + }, + { + "name": "enterFreeze", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 56 + }, + { + "name": "freezeWarning", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 72 + }, + { + "name": "freezeResistanceDepleted", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 88 + }, + { + "name": "flameReminder", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 104 + }, + { + "name": "flameLow", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 120 + }, + { + "name": "flameVeryLow", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 136 + }, + { + "name": "flameDepleted", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 152 + }, + { + "name": "flameLowLoop", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 168 + }, + { + "name": "manaInsufficient", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 184 + }, + { + "name": "manaInsufficientTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 200 + }, + { + "name": "staminaInsufficient", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 208 + }, + { + "name": "staminaInsufficientTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 224 + }, + { + "name": "ammoChanged", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 232 + }, + { + "name": "buildActionFailed", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 248 + }, + { + "name": "buildActionFailedTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 264 + }, + { + "name": "buildUndoSuccessful", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 272 + }, + { + "name": "buildInvMaximize", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 288 + }, + { + "name": "buildInvMinimize", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 304 + }, + { + "name": "buildModeEnter", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 320 + }, + { + "name": "buildModeExit", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 336 + }, + { + "name": "musicBuffProgressed", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsTitleScreen", + "type_name_2": "FbUiSoundsTitleScreen", + "qualified_name": "keen::FbUiSoundsTitleScreen", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1958878590, + "hash2": 2125924639, + "struct_fields": [ + { + "name": "backgroundMusic", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "startTrigger", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSounds", + "type_name_2": "FbUiSounds", + "qualified_name": "keen::FbUiSounds", + "referenced_type_name": null, + "class_size": 2232, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1376002420, + "hash2": 319627876, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "titleScreen", + "type_name": "keen::FbUiSoundsTitleScreen", + "type_hash": 1958878590, + "data_offset": 16 + }, + { + "name": "events", + "type_name": "keen::FbUiSoundsEventMessages", + "type_hash": 631004008, + "data_offset": 48 + }, + { + "name": "menu", + "type_name": "keen::FbUiSoundsMenuGeneric", + "type_hash": 1772344388, + "data_offset": 272 + }, + { + "name": "crafting", + "type_name": "keen::FbUiSoundsMenuCrafting", + "type_hash": 514230425, + "data_offset": 872 + }, + { + "name": "journal", + "type_name": "keen::FbUiSoundsMenuJournal", + "type_hash": 1543541402, + "data_offset": 1032 + }, + { + "name": "altar", + "type_name": "keen::FbUiSoundsMenuAltar", + "type_hash": 419584469, + "data_offset": 1048 + }, + { + "name": "skilltree", + "type_name": "keen::FbUiSoundsSkillTree", + "type_hash": 2298092241, + "data_offset": 1096 + }, + { + "name": "lootGet", + "type_name": "keen::FbUiSoundsLootAquisition", + "type_hash": 4193526996, + "data_offset": 1224 + }, + { + "name": "map", + "type_name": "keen::FbUiSoundsAdventureMap", + "type_hash": 3684195742, + "data_offset": 1384 + }, + { + "name": "dialog", + "type_name": "keen::FbUiSoundsDialog", + "type_hash": 3939804260, + "data_offset": 1544 + }, + { + "name": "itemWheel", + "type_name": "keen::FbUiSoundsItemWheel", + "type_hash": 828308314, + "data_offset": 1624 + }, + { + "name": "hud", + "type_name": "keen::FbUiSoundsHud", + "type_hash": 2671661269, + "data_offset": 1672 + }, + { + "name": "actionbar", + "type_name": "keen::FbUiSoundsActionbar", + "type_hash": 3181316943, + "data_offset": 2040 + }, + { + "name": "backpack", + "type_name": "keen::FbUiSoundsBackpack", + "type_hash": 2224465018, + "data_offset": 2088 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudCharacterStyles", + "type_name_2": "FbUiHudCharacterStyles", + "qualified_name": "keen::FbUiHudCharacterStyles", + "referenced_type_name": null, + "class_size": 1848, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1855635398, + "hash2": 3032603277, + "struct_fields": [ + { + "name": "celebrationMain", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 0 + }, + { + "name": "celebrationLevelNumber", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 88 + }, + { + "name": "specialLootMain", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 176 + }, + { + "name": "specialLootSecondary", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 264 + }, + { + "name": "enemyDamagePoint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 352 + }, + { + "name": "enemyDamageBonusText", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 440 + }, + { + "name": "healingDamagePoint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 528 + }, + { + "name": "playerDamagePoint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 616 + }, + { + "name": "immuneDamagePoint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 704 + }, + { + "name": "restoreManaPoint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 792 + }, + { + "name": "playerName", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 880 + }, + { + "name": "enemyName", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 968 + }, + { + "name": "bossName", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1056 + }, + { + "name": "ammoListEntry", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1144 + }, + { + "name": "staminaInfo", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1232 + }, + { + "name": "compassMarkerDistance", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1320 + }, + { + "name": "compassWayointMessage", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1408 + }, + { + "name": "compassFogTimer", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1496 + }, + { + "name": "compassFogTypeLabel", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1584 + }, + { + "name": "compassLeaveFogWarning", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1672 + }, + { + "name": "nightSpeedHint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1760 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuCharacterStyles", + "type_name_2": "FbUiMenuCharacterStyles", + "qualified_name": "keen::FbUiMenuCharacterStyles", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1017970736, + "hash2": 2372501529, + "struct_fields": [ + { + "name": "topTab", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 0 + }, + { + "name": "header1", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 88 + }, + { + "name": "header2", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 176 + }, + { + "name": "header3", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 264 + }, + { + "name": "buttonHint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 352 + }, + { + "name": "textfieldEmptyHint", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 440 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapCharacterStyles", + "type_name_2": "FbUiMapCharacterStyles", + "qualified_name": "keen::FbUiMapCharacterStyles", + "referenced_type_name": null, + "class_size": 440, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 832526531, + "hash2": 3047161786, + "struct_fields": [ + { + "name": "playerName", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 0 + }, + { + "name": "locationName", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 88 + }, + { + "name": "clusterSizeNumber", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 176 + }, + { + "name": "markerLabel", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 264 + }, + { + "name": "tooltip", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFontSizes", + "type_name_2": "FbUiFontSizes", + "qualified_name": "keen::FbUiFontSizes", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3133659317, + "hash2": 539631559, + "struct_fields": [ + { + "name": "textScaleSteps", + "type_name": "keen::BlobArray", + "type_hash": 4201800353, + "data_offset": 0 + }, + { + "name": "xsmall", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "small", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "medium", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "large", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "xlarge", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "caps_small", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "caps_medium", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "caps_large", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "caps_xlarge", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterStyles", + "type_name_2": "FbUiCharacterStyles", + "qualified_name": "keen::FbUiCharacterStyles", + "referenced_type_name": null, + "class_size": 4928, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 1304760201, + "hash2": 2985009370, + "struct_fields": [ + { + "name": "defaultStyle", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 0 + }, + { + "name": "defaultStyleOutline", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 88 + }, + { + "name": "secondaryText", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 176 + }, + { + "name": "mutedItalic", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 264 + }, + { + "name": "redText", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 352 + }, + { + "name": "greenText", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 440 + }, + { + "name": "h1", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 528 + }, + { + "name": "h2", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 616 + }, + { + "name": "h3", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 704 + }, + { + "name": "legalText", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 792 + }, + { + "name": "warning", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 880 + }, + { + "name": "hyperlink", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 968 + }, + { + "name": "location", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1056 + }, + { + "name": "npc", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1144 + }, + { + "name": "craftingstation", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1232 + }, + { + "name": "keyitem", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1320 + }, + { + "name": "lorename", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1408 + }, + { + "name": "impactAttribute", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1496 + }, + { + "name": "textChatSpeakerNameSelf", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1584 + }, + { + "name": "textChatSpeakerNameOther", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1672 + }, + { + "name": "textChatMessage", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 1760 + }, + { + "name": "hud", + "type_name": "keen::FbUiHudCharacterStyles", + "type_hash": 1855635398, + "data_offset": 1848 + }, + { + "name": "menu", + "type_name": "keen::FbUiMenuCharacterStyles", + "type_hash": 1017970736, + "data_offset": 3696 + }, + { + "name": "map", + "type_name": "keen::FbUiMapCharacterStyles", + "type_hash": 832526531, + "data_offset": 4224 + }, + { + "name": "keyboardLegend", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 4664 + }, + { + "name": "versionWatermark", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 4752 + }, + { + "name": "versionWatermarkSecondLine", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 4840 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiParagraphStyles", + "type_name_2": "FbUiParagraphStyles", + "qualified_name": "keen::FbUiParagraphStyles", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3561354992, + "hash2": 3131410172, + "struct_fields": [ + { + "name": "hudDefault", + "type_name": "keen::UiParagraphStyle", + "type_hash": 1259009315, + "data_offset": 0 + }, + { + "name": "test", + "type_name": "keen::UiParagraphStyle", + "type_hash": 1259009315, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiScrollingLayouts", + "type_name_2": "FbUiScrollingLayouts", + "qualified_name": "keen::FbUiScrollingLayouts", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3515063794, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Curve", + "type_name_2": "Curve", + "qualified_name": "keen::Curve", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1603688425, + "hash2": 59884461, + "struct_fields": [ + { + "name": "sampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPosition", + "type_name_2": "UiPosition", + "qualified_name": "keen::UiPosition", + "referenced_type_name": "keen::UiVector", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3011837091, + "hash2": 523730730, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTestTypes", + "type_name_2": "UiTestTypes", + "qualified_name": "keen::UiTestTypes", + "referenced_type_name": null, + "class_size": 132, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 285417709, + "hash2": 2547727328, + "struct_fields": [ + { + "name": "type_string", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "type_float2", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "type_float3", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "type_uint32", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "type_bool", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "type_Color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 36 + }, + { + "name": "type_SoundContainerReference", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 40 + }, + { + "name": "type_Curve", + "type_name": "keen::Curve", + "type_hash": 1603688425, + "data_offset": 56 + }, + { + "name": "type_UiTexture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 60 + }, + { + "name": "type_UiPosition", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 108 + }, + { + "name": "type_UiSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 116 + }, + { + "name": "type_UiColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiHorizontalAlignment", + "type_name_2": "UiHorizontalAlignment", + "qualified_name": "keen::UiHorizontalAlignment", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 4126005173, + "hash2": 795106658, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Left", + "value": 1 + }, + { + "name": "Center", + "value": 2 + }, + { + "name": "Right", + "value": 3 + } + ] + }, + { + "type_name_1": "UiVerticalAlignment", + "type_name_2": "UiVerticalAlignment", + "qualified_name": "keen::UiVerticalAlignment", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 230801087, + "hash2": 3129590433, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Top", + "value": 1 + }, + { + "name": "Center", + "value": 2 + }, + { + "name": "Bottom", + "value": 3 + } + ] + }, + { + "type_name_1": "UiAlignment", + "type_name_2": "UiAlignment", + "qualified_name": "keen::UiAlignment", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4180054773, + "hash2": 399965286, + "struct_fields": [ + { + "name": "horizontal", + "type_name": "keen::UiHorizontalAlignment", + "type_hash": 4126005173, + "data_offset": 0 + }, + { + "name": "vertical", + "type_name": "keen::UiVerticalAlignment", + "type_hash": 230801087, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiTextLayoutStyle", + "type_name_2": "GameUiTextLayoutStyle", + "qualified_name": "keen::GameUiTextLayoutStyle", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 763755648, + "hash2": 2338757471, + "struct_fields": [], + "enum_fields": [ + { + "name": "Floating", + "value": 0 + }, + { + "name": "Wrap", + "value": 1 + }, + { + "name": "Wrap_ScaleFontSizeToFit", + "value": 2 + }, + { + "name": "Scroll", + "value": 3 + }, + { + "name": "Scroll_FixedPixelPerSecond", + "value": 4 + } + ] + }, + { + "type_name_1": "GameUiTextParameterData", + "type_name_2": "GameUiTextParameterData", + "qualified_name": "keen::GameUiTextParameterData", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 266905496, + "hash2": 1325870315, + "struct_fields": [ + { + "name": "characterStyle", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "paragraphStyle", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "stretch", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "alignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 32 + }, + { + "name": "margin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 36 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 52 + }, + { + "name": "revealTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "textLayoutStyle", + "type_name": "keen::GameUiTextLayoutStyle", + "type_hash": 763755648, + "data_offset": 80 + }, + { + "name": "allowLineBreak", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 81 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiImageSizing", + "type_name_2": "GameUiImageSizing", + "qualified_name": "keen::GameUiImageSizing", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2289284317, + "hash2": 1724681989, + "struct_fields": [], + "enum_fields": [ + { + "name": "Stretched", + "value": 0 + }, + { + "name": "Fit", + "value": 1 + }, + { + "name": "Cropped", + "value": 2 + } + ] + }, + { + "type_name_1": "GameUiImageParameterData", + "type_name_2": "GameUiImageParameterData", + "qualified_name": "keen::GameUiImageParameterData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1649223122, + "hash2": 2522447841, + "struct_fields": [ + { + "name": "sizing", + "type_name": "keen::GameUiImageSizing", + "type_hash": 2289284317, + "data_offset": 0 + }, + { + "name": "alpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "stretch", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "margin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 32 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTestParameters", + "type_name_2": "FbUiTestParameters", + "qualified_name": "keen::FbUiTestParameters", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3931984328, + "hash2": 2312430101, + "struct_fields": [ + { + "name": "_types", + "type_name": "keen::UiTestTypes", + "type_hash": 285417709, + "data_offset": 0 + }, + { + "name": "scrollingLayouts", + "type_name": "keen::FbUiScrollingLayouts", + "type_hash": 3515063794, + "data_offset": 132 + }, + { + "name": "testTextParameter", + "type_name": "keen::GameUiTextParameterData", + "type_hash": 266905496, + "data_offset": 136 + }, + { + "name": "testImageParameter", + "type_name": "keen::GameUiImageParameterData", + "type_hash": 1649223122, + "data_offset": 224 + }, + { + "name": "testNineSliceTexture", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 288 + }, + { + "name": "testNineSliceScreenBorder", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 352 + }, + { + "name": "durationTextTestTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 368 + }, + { + "name": "durationTextShowOnlyBiggestTimeUnit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 376 + }, + { + "name": "durationTextUseLocalizedUnits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 377 + }, + { + "name": "durationTextUseThirdNumber", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 378 + }, + { + "name": "durationTextSubSecondDigits", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 379 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRarityColors", + "type_name_2": "FbUiRarityColors", + "qualified_name": "keen::FbUiRarityColors", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 238214427, + "hash2": 431362732, + "struct_fields": [ + { + "name": "undefined", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "common", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "uncommon", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "rare", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "epic", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "legendary", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "vanity", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "collectible", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "vanityTextColorIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiNetworkQualityColors", + "type_name_2": "FbUiNetworkQualityColors", + "qualified_name": "keen::FbUiNetworkQualityColors", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3598168419, + "hash2": 2172371480, + "struct_fields": [ + { + "name": "good", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "acceptable", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "bad", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGlobalColors", + "type_name_2": "FbUiGlobalColors", + "qualified_name": "keen::FbUiGlobalColors", + "referenced_type_name": null, + "class_size": 164, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 28367039, + "hash2": 2663633242, + "struct_fields": [ + { + "name": "rarity", + "type_name": "keen::FbUiRarityColors", + "type_hash": 238214427, + "data_offset": 0 + }, + { + "name": "priorityColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 68 + }, + { + "name": "priorityBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 76 + }, + { + "name": "attentionColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 84 + }, + { + "name": "checkmarkGreen", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 92 + }, + { + "name": "warningColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "warningColorBackground", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 108 + }, + { + "name": "warningColorFrostedGlassTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 116 + }, + { + "name": "attributeBetterColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 124 + }, + { + "name": "attributeWorseColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 132 + }, + { + "name": "networkQuality", + "type_name": "keen::FbUiNetworkQualityColors", + "type_hash": 3598168419, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderColorGradingMap", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3585068340, + "hash2": 1714211437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFrostedGlassParameters", + "type_name_2": "FbUiFrostedGlassParameters", + "qualified_name": "keen::FbUiFrostedGlassParameters", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3691766597, + "hash2": 2729909993, + "struct_fields": [ + { + "name": "downsampleSteps", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sigma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "colorGradingMap", + "type_name": "keen::ObjectReference", + "type_hash": 3585068340, + "data_offset": 8 + }, + { + "name": "colorGradeBeforeBlur", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiStartUpLogo", + "type_name_2": "FbUiStartUpLogo", + "qualified_name": "keen::FbUiStartUpLogo", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1359804694, + "hash2": 3978946245, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "sound", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 52 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiStartUpLogoSequence", + "type_name_2": "FbUiStartUpLogoSequence", + "qualified_name": "keen::FbUiStartUpLogoSequence", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 765869719, + "hash2": 1541003913, + "struct_fields": [ + { + "name": "logoFadeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "logoIdleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "keenLogo", + "type_name": "keen::FbUiStartUpLogo", + "type_hash": 1359804694, + "data_offset": 16 + }, + { + "name": "bmwiLogo", + "type_name": "keen::FbUiStartUpLogo", + "type_hash": 1359804694, + "data_offset": 92 + }, + { + "name": "postLogoDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 168 + }, + { + "name": "mainMenuFadeInDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPreGameCharacterViews", + "type_name_2": "FbUiPreGameCharacterViews", + "qualified_name": "keen::FbUiPreGameCharacterViews", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1748270584, + "hash2": 41182062, + "struct_fields": [ + { + "name": "mainMenu", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 0 + }, + { + "name": "postMainMenu", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 28 + }, + { + "name": "savePortrait", + "type_name": "keen::FbUiCharacterView", + "type_hash": 1461902762, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationHairColors", + "type_name_2": "FbUiCustomizationHairColors", + "qualified_name": "keen::FbUiCustomizationHairColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 909309697, + "hash2": 4059050998, + "struct_fields": [ + { + "name": "brightBlonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "blonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "red", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "brightBrown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "brown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "black", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "grey", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "white", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationSkinColors", + "type_name_2": "FbUiCustomizationSkinColors", + "qualified_name": "keen::FbUiCustomizationSkinColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2384379184, + "hash2": 3855065573, + "struct_fields": [ + { + "name": "african_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "african_2", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "asian_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "caucasian_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "caucasian_2", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "caucasian_3", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "mixed_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "mixed_2", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationEyeColors", + "type_name_2": "FbUiCustomizationEyeColors", + "qualified_name": "keen::FbUiCustomizationEyeColors", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1434957190, + "hash2": 1241615904, + "struct_fields": [ + { + "name": "blue", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "brightBrown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "brown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "green", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "grey", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationEyeBrowColors", + "type_name_2": "FbUiCustomizationEyeBrowColors", + "qualified_name": "keen::FbUiCustomizationEyeBrowColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3957650892, + "hash2": 4059050998, + "struct_fields": [ + { + "name": "brightBlonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "blonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "red", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "brightBrown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "brown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "black", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "grey", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "white", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationTabIcons", + "type_name_2": "FbUiCustomizationTabIcons", + "qualified_name": "keen::FbUiCustomizationTabIcons", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2194474910, + "hash2": 1688522818, + "struct_fields": [ + { + "name": "iconBodytype", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "iconHair", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 48 + }, + { + "name": "iconBeard", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 96 + }, + { + "name": "iconVoice", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 144 + }, + { + "name": "iconName", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "iconPlay", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "iconHairColor", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 288 + }, + { + "name": "iconBeardColor", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 336 + }, + { + "name": "iconEyeColor", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 384 + }, + { + "name": "iconEyeBrowColor", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 432 + }, + { + "name": "iconSkinColor", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 480 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterCustomization", + "type_name_2": "FbUiCharacterCustomization", + "qualified_name": "keen::FbUiCharacterCustomization", + "referenced_type_name": null, + "class_size": 904, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1641257636, + "hash2": 923173332, + "struct_fields": [ + { + "name": "hairColors", + "type_name": "keen::FbUiCustomizationHairColors", + "type_hash": 909309697, + "data_offset": 0 + }, + { + "name": "skinColors", + "type_name": "keen::FbUiCustomizationSkinColors", + "type_hash": 2384379184, + "data_offset": 64 + }, + { + "name": "eyeColors", + "type_name": "keen::FbUiCustomizationEyeColors", + "type_hash": 1434957190, + "data_offset": 128 + }, + { + "name": "eyeBrowColors", + "type_name": "keen::FbUiCustomizationEyeBrowColors", + "type_hash": 3957650892, + "data_offset": 168 + }, + { + "name": "tabIcons", + "type_name": "keen::FbUiCustomizationTabIcons", + "type_hash": 2194474910, + "data_offset": 232 + }, + { + "name": "widgetSelector", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 760 + }, + { + "name": "voicePreview1", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 808 + }, + { + "name": "voicePreview2", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 856 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPreGame", + "type_name_2": "FbUiPreGame", + "qualified_name": "keen::FbUiPreGame", + "referenced_type_name": null, + "class_size": 1616, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 518756179, + "hash2": 3633594668, + "struct_fields": [ + { + "name": "startUpSequence", + "type_name": "keen::FbUiStartUpLogoSequence", + "type_hash": 765869719, + "data_offset": 0 + }, + { + "name": "startGameFadeOutDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 184 + }, + { + "name": "titleScreenKeyArt", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 192 + }, + { + "name": "mainMenuLogo", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 240 + }, + { + "name": "mainMenuPadding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 288 + }, + { + "name": "logoHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 304 + }, + { + "name": "backgroundScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 308 + }, + { + "name": "backgroundNormalizedOffsetX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 312 + }, + { + "name": "backgroundNormalizedOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 316 + }, + { + "name": "mainMenuEntryHighlightBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 320 + }, + { + "name": "joinTileBg", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 368 + }, + { + "name": "hostPublicTileBg", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 416 + }, + { + "name": "privateTileBg", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 464 + }, + { + "name": "characterViews", + "type_name": "keen::FbUiPreGameCharacterViews", + "type_hash": 1748270584, + "data_offset": 512 + }, + { + "name": "characterCustomization", + "type_name": "keen::FbUiCharacterCustomization", + "type_hash": 1641257636, + "data_offset": 596 + }, + { + "name": "menuEntryHighlightBackground", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1500 + }, + { + "name": "logoGPortal", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 1548 + }, + { + "name": "dedicatedServerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1596 + }, + { + "name": "friendServerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1604 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditsItemType", + "type_name_2": "FbUiCreditsItemType", + "qualified_name": "keen::FbUiCreditsItemType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 673449905, + "hash2": 1792323403, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Title", + "value": 1 + }, + { + "name": "Heading", + "value": 2 + }, + { + "name": "SubHeading", + "value": 3 + }, + { + "name": "Text", + "value": 4 + }, + { + "name": "Image", + "value": 5 + } + ] + }, + { + "type_name_1": "FbUiCreditItemImage", + "type_name_2": "FbUiCreditItemImage", + "qualified_name": "keen::FbUiCreditItemImage", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1156829867, + "hash2": 3523634263, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "texture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 8 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "imageSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditImageRepository", + "type_name_2": "FbUiCreditImageRepository", + "qualified_name": "keen::FbUiCreditImageRepository", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1104097338, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditsItem", + "type_name_2": "FbUiCreditsItem", + "qualified_name": "keen::FbUiCreditsItem", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2123413913, + "hash2": 455843771, + "struct_fields": [ + { + "name": "itemType", + "type_name": "keen::FbUiCreditsItemType", + "type_hash": 673449905, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "image", + "type_name": "keen::FbUiCreditItemImage", + "type_hash": 1156829867, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditStyle", + "type_name_2": "FbUiCreditStyle", + "qualified_name": "keen::FbUiCreditStyle", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1735930326, + "hash2": 1113832411, + "struct_fields": [ + { + "name": "style", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 0 + }, + { + "name": "fontSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "topSpacer", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditStyles", + "type_name_2": "FbUiCreditStyles", + "qualified_name": "keen::FbUiCreditStyles", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2268473023, + "hash2": 22685825, + "struct_fields": [ + { + "name": "h1", + "type_name": "keen::FbUiCreditStyle", + "type_hash": 1735930326, + "data_offset": 0 + }, + { + "name": "h2", + "type_name": "keen::FbUiCreditStyle", + "type_hash": 1735930326, + "data_offset": 96 + }, + { + "name": "h3", + "type_name": "keen::FbUiCreditStyle", + "type_hash": 1735930326, + "data_offset": 192 + }, + { + "name": "text", + "type_name": "keen::FbUiCreditStyle", + "type_hash": 1735930326, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiCreditsItem[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiCreditsItem", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1177919482, + "hash2": 3331833146, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCredits", + "type_name_2": "FbUiCredits", + "qualified_name": "keen::FbUiCredits", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2699990562, + "hash2": 3383026825, + "struct_fields": [ + { + "name": "items", + "type_name": "keen::BlobArray", + "type_hash": 1177919482, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 8 + }, + { + "name": "creditEndText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 24 + }, + { + "name": "creditStyles", + "type_name": "keen::FbUiCreditStyles", + "type_hash": 2268473023, + "data_offset": 40 + }, + { + "name": "scrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 424 + }, + { + "name": "gamepadScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 428 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKnowledgeRequirement", + "type_name_2": "FbUiKnowledgeRequirement", + "qualified_name": "keen::FbUiKnowledgeRequirement", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3035353935, + "hash2": 3158692685, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::GameKnowledgeTrigger", + "type_hash": 73380980, + "data_offset": 0 + }, + { + "name": "triggerId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTutorialKnowledge", + "type_name_2": "FbUiTutorialKnowledge", + "qualified_name": "keen::FbUiTutorialKnowledge", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 86580774, + "hash2": 1497604262, + "struct_fields": [ + { + "name": "quickbuilder", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 0 + }, + { + "name": "summoningStaff", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 60 + }, + { + "name": "crafting", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 120 + }, + { + "name": "factory", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 180 + }, + { + "name": "enhancing", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 240 + }, + { + "name": "cooking", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 300 + }, + { + "name": "actionbar", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 360 + }, + { + "name": "storage", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 420 + }, + { + "name": "taming", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 480 + }, + { + "name": "happyNpcRequirement", + "type_name": "keen::FbUiKnowledgeRequirement", + "type_hash": 3035353935, + "data_offset": 540 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKnowledge", + "type_name_2": "FbUiKnowledge", + "qualified_name": "keen::FbUiKnowledge", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1105272820, + "hash2": 464673673, + "struct_fields": [ + { + "name": "tutorial", + "type_name": "keen::FbUiTutorialKnowledge", + "type_hash": 86580774, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SystemErrorMessages", + "type_name_2": "SystemErrorMessages", + "qualified_name": "keen::SystemErrorMessages", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 1706503519, + "hash2": 1489859351, + "struct_fields": [ + { + "name": "waitingForProcess", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "noInputDevice", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "connectFailed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "connectionLost", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "newVersionRequired", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "playerNotSignedIn", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "playerNoPrivileges", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "playerNoMultiplayerEntitlement", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + }, + { + "name": "createGameFailed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 128 + }, + { + "name": "joinGameFailed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 144 + }, + { + "name": "joinGameFailed_NotFound", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 160 + }, + { + "name": "joinGameFailed_Full", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 176 + }, + { + "name": "joinGameFailed_Reserved", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 192 + }, + { + "name": "joinGameFailed_WrongPassword", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 208 + }, + { + "name": "joinGameFailed_WrongPasswordCooldown", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 224 + }, + { + "name": "sessionFailed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 240 + }, + { + "name": "joinPlayerFailed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 256 + }, + { + "name": "kicked", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 272 + }, + { + "name": "saveGameCorrupt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 288 + }, + { + "name": "settingsCorrupt", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 304 + }, + { + "name": "eraseFailed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 320 + }, + { + "name": "notEnoughSpace", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 336 + }, + { + "name": "createFailed", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 352 + }, + { + "name": "readError", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 368 + }, + { + "name": "writeError", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SystemErrorResponses", + "type_name_2": "SystemErrorResponses", + "qualified_name": "keen::SystemErrorResponses", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 707060213, + "hash2": 2241452092, + "struct_fields": [ + { + "name": "retry", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 0 + }, + { + "name": "disable", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 16 + }, + { + "name": "erase", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 32 + }, + { + "name": "reset", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "deviceSelection", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 64 + }, + { + "name": "overwrite", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 80 + }, + { + "name": "cancel", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 96 + }, + { + "name": "ok", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SystemErrorLoca", + "type_name_2": "SystemErrorLoca", + "qualified_name": "keen::SystemErrorLoca", + "referenced_type_name": null, + "class_size": 544, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1275212542, + "hash2": 3662033226, + "struct_fields": [ + { + "name": "errors", + "type_name": "keen::SystemErrorMessages", + "type_hash": 1706503519, + "data_offset": 0 + }, + { + "name": "responses", + "type_name": "keen::SystemErrorResponses", + "type_hash": 707060213, + "data_offset": 400 + }, + { + "name": "errorTitleWarning", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 528 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultServerRoleType", + "type_name_2": "DefaultServerRoleType", + "qualified_name": "keen::DefaultServerRoleType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1131305808, + "hash2": 2602204802, + "struct_fields": [], + "enum_fields": [ + { + "name": "Guest", + "value": 0 + }, + { + "name": "Friend", + "value": 1 + }, + { + "name": "Admin", + "value": 2 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiServerRole[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiServerRole", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3405660022, + "hash2": 3931164441, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiServerRoleSettings", + "type_name_2": "FbUiServerRoleSettings", + "qualified_name": "keen::FbUiServerRoleSettings", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 460042274, + "hash2": 1432879845, + "struct_fields": [ + { + "name": "defaultServerRoles", + "type_name": "keen::BlobArray", + "type_hash": 3405660022, + "data_offset": 0 + }, + { + "name": "serverRoleIcons", + "type_name": "keen::BlobArray", + "type_hash": 138299164, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiServerRole", + "type_name_2": "FbUiServerRole", + "qualified_name": "keen::FbUiServerRole", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 985613679, + "hash2": 4043089010, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::DefaultServerRoleType", + "type_hash": 1131305808, + "data_offset": 0 + }, + { + "name": "roleName", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 4 + }, + { + "name": "permissions", + "type_name": "keen::PlayerPermissionsMask", + "type_hash": 914819445, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoreSlide", + "type_name_2": "FbUiLoreSlide", + "qualified_name": "keen::FbUiLoreSlide", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 793078009, + "hash2": 1903980610, + "struct_fields": [ + { + "name": "slideImage", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 0 + }, + { + "name": "slideText", + "type_name": "keen::UiLocaTagReference", + "type_hash": 646926792, + "data_offset": 48 + }, + { + "name": "useTextBackground", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "startOffset", + "type_name": "keen::UiVector", + "type_hash": 1137348591, + "data_offset": 68 + }, + { + "name": "endOffset", + "type_name": "keen::UiVector", + "type_hash": 1137348591, + "data_offset": 76 + }, + { + "name": "startScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "endScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "slideDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "textStartDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "textAnimDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "fadeInDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "fadeOutDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "fadeInColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 112 + }, + { + "name": "fadeOutColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLogos", + "type_name_2": "FbUiLogos", + "qualified_name": "keen::FbUiLogos", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1784575020, + "hash2": 1263498073, + "struct_fields": [ + { + "name": "creditsLogos", + "type_name": "keen::BlobArray", + "type_hash": 138299164, + "data_offset": 0 + }, + { + "name": "enshrouded_TraditionalChinese", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 8 + }, + { + "name": "enshrouded_SimplifiedChinese", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 56 + }, + { + "name": "enshrouded_Japanese", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 104 + }, + { + "name": "enshrouded_Korean", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiLoreSlide[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiLoreSlide", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4114324330, + "hash2": 3296029749, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoreIntro", + "type_name_2": "FbUiLoreIntro", + "qualified_name": "keen::FbUiLoreIntro", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2791698630, + "hash2": 1515243967, + "struct_fields": [ + { + "name": "allSlides", + "type_name": "keen::BlobArray", + "type_hash": 4114324330, + "data_offset": 0 + }, + { + "name": "textStyle", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 8 + }, + { + "name": "slideBorder", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiCharacterStyle[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiCharacterStyle", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3607743715, + "hash2": 942680246, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiParagraphStyle[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiParagraphStyle", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 57097170, + "hash2": 1244905365, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiBundle", + "type_name_2": "UiBundle", + "qualified_name": "keen::UiBundle", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3123940024, + "hash2": 205281058, + "struct_fields": [ + { + "name": "texturePreload", + "type_name": "keen::UiTexturePreload", + "type_hash": 2348033432, + "data_offset": 0 + }, + { + "name": "characterStyles", + "type_name": "keen::BlobArray", + "type_hash": 3607743715, + "data_offset": 8 + }, + { + "name": "paragraphStyles", + "type_name": "keen::BlobArray", + "type_hash": 57097170, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FbUiWorldEvent[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FbUiWorldEvent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2506901531, + "hash2": 2817944047, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiBundle", + "type_name_2": "FbUiBundle", + "qualified_name": "keen::FbUiBundle", + "referenced_type_name": "keen::UiBundle", + "class_size": 68680, + "fields_count": 33, + "primitive_type": "Struct", + "hash1": 4277737656, + "hash2": 2879009149, + "struct_fields": [ + { + "name": "locatags", + "type_name": "keen::FbUiLocaLinks", + "type_hash": 1846746686, + "data_offset": 24 + }, + { + "name": "socialLogos", + "type_name": "keen::FbUiSocialLogos", + "type_hash": 3066066405, + "data_offset": 25392 + }, + { + "name": "logos", + "type_name": "keen::FbUiLogos", + "type_hash": 1784575020, + "data_offset": 25680 + }, + { + "name": "genericIcons", + "type_name": "keen::FbUiGenericIcons", + "type_hash": 3602395745, + "data_offset": 25880 + }, + { + "name": "gamepadButtons", + "type_name": "keen::FbUiGamepadButtonSets", + "type_hash": 966805726, + "data_offset": 28856 + }, + { + "name": "keyboardKeys", + "type_name": "keen::FbUiKeyboardKeys", + "type_hash": 1029380293, + "data_offset": 34048 + }, + { + "name": "keyboardKeyLegends", + "type_name": "keen::FbUiKeyboardKeyLegends", + "type_hash": 1299248306, + "data_offset": 34160 + }, + { + "name": "mouseHints", + "type_name": "keen::FbUiMouseHints", + "type_hash": 634007115, + "data_offset": 34352 + }, + { + "name": "primitives", + "type_name": "keen::FbUiPrimitives", + "type_hash": 513804118, + "data_offset": 35024 + }, + { + "name": "loading", + "type_name": "keen::FbUiLoadingSymbol", + "type_hash": 826830936, + "data_offset": 36256 + }, + { + "name": "globalColors", + "type_name": "keen::FbUiGlobalColors", + "type_hash": 28367039, + "data_offset": 36268 + }, + { + "name": "preGame", + "type_name": "keen::FbUiPreGame", + "type_hash": 518756179, + "data_offset": 36432 + }, + { + "name": "hud", + "type_name": "keen::FbUiHUD", + "type_hash": 2673272393, + "data_offset": 38048 + }, + { + "name": "menu", + "type_name": "keen::FbUiMenu", + "type_hash": 439360039, + "data_offset": 43256 + }, + { + "name": "customization", + "type_name": "keen::FbUiCustomization", + "type_hash": 331249105, + "data_offset": 54496 + }, + { + "name": "knowledge", + "type_name": "keen::FbUiKnowledge", + "type_hash": 1105272820, + "data_offset": 54736 + }, + { + "name": "itemSlot", + "type_name": "keen::FbUiItemSlot", + "type_hash": 3486711971, + "data_offset": 55336 + }, + { + "name": "buffIcons", + "type_name": "keen::FbUiBuffIcons", + "type_hash": 1287936685, + "data_offset": 57312 + }, + { + "name": "screen", + "type_name": "keen::FbUiScreen", + "type_hash": 2367617348, + "data_offset": 57544 + }, + { + "name": "headline", + "type_name": "keen::FbUiHeadline", + "type_hash": 969387056, + "data_offset": 57776 + }, + { + "name": "fontSizes", + "type_name": "keen::FbUiFontSizes", + "type_hash": 3133659317, + "data_offset": 57848 + }, + { + "name": "namedStyles", + "type_name": "keen::FbUiCharacterStyles", + "type_hash": 1304760201, + "data_offset": 57892 + }, + { + "name": "namedParagraphStyles", + "type_name": "keen::FbUiParagraphStyles", + "type_hash": 3561354992, + "data_offset": 62820 + }, + { + "name": "sounds", + "type_name": "keen::FbUiSounds", + "type_hash": 1376002420, + "data_offset": 62880 + }, + { + "name": "testParameters", + "type_name": "keen::FbUiTestParameters", + "type_hash": 3931984328, + "data_offset": 65112 + }, + { + "name": "frostedGlass", + "type_name": "keen::FbUiFrostedGlassParameters", + "type_hash": 3691766597, + "data_offset": 65496 + }, + { + "name": "systemErrors", + "type_name": "keen::SystemErrorLoca", + "type_hash": 1275212542, + "data_offset": 65524 + }, + { + "name": "serverRoleSettings", + "type_name": "keen::FbUiServerRoleSettings", + "type_hash": 460042274, + "data_offset": 66068 + }, + { + "name": "difficultySettings", + "type_name": "keen::FbUiDifficultySettings", + "type_hash": 275924012, + "data_offset": 66088 + }, + { + "name": "noRtxWarning", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 68032 + }, + { + "name": "credits", + "type_name": "keen::FbUiCredits", + "type_hash": 2699990562, + "data_offset": 68080 + }, + { + "name": "loreIntro", + "type_name": "keen::FbUiLoreIntro", + "type_hash": 2791698630, + "data_offset": 68512 + }, + { + "name": "worldEvents", + "type_name": "keen::BlobArray", + "type_hash": 2506901531, + "data_offset": 68672 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMap", + "type_name_2": "FbUiMap", + "qualified_name": "keen::FbUiMap", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2329871190, + "hash2": 1908532575, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 0 + }, + { + "name": "isolineSpacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "baseGradient", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 20 + }, + { + "name": "isolineGradient", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 36 + }, + { + "name": "fogNoise", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 52 + }, + { + "name": "fogZoneBorderSdfDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 68 + }, + { + "name": "fogZoneBorderGradient", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 72 + }, + { + "name": "fogZoneTextureNormal", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 88 + }, + { + "name": "fogZoneTextureDangerous", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTexture", + "type_name_2": "FbUiTexture", + "qualified_name": "keen::FbUiTexture", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3675836283, + "hash2": 3322927836, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 5 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 6 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 8 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapResource", + "type_name_2": "FbUiMapResource", + "qualified_name": "keen::FbUiMapResource", + "referenced_type_name": null, + "class_size": 212, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2950922222, + "hash2": 969914427, + "struct_fields": [ + { + "name": "tileSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "tileCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "normalizedTileSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "baseGradientTexture", + "type_name": "keen::FbUiTexture", + "type_hash": 3675836283, + "data_offset": 20 + }, + { + "name": "isolineGradientTexture", + "type_name": "keen::FbUiTexture", + "type_hash": 3675836283, + "data_offset": 52 + }, + { + "name": "fogZoneBorderGradientTexture", + "type_name": "keen::FbUiTexture", + "type_hash": 3675836283, + "data_offset": 84 + }, + { + "name": "fogNoiseTexture", + "type_name": "keen::FbUiTexture", + "type_hash": 3675836283, + "data_offset": 116 + }, + { + "name": "fogZoneTextureNormal", + "type_name": "keen::FbUiTexture", + "type_hash": 3675836283, + "data_offset": 148 + }, + { + "name": "fogZoneTextureDangerous", + "type_name": "keen::FbUiTexture", + "type_hash": 3675836283, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapTileResource", + "type_name_2": "FbUiMapTileResource", + "qualified_name": "keen::FbUiMapTileResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2390882618, + "hash2": 235448154, + "struct_fields": [ + { + "name": "mapTexture", + "type_name": "keen::FbUiTexture", + "type_hash": 3675836283, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FatalErrorId", + "type_name_2": "FatalErrorId", + "qualified_name": "keen::FatalErrorId", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 12, + "primitive_type": "Enum", + "hash1": 697038235, + "hash2": 3871520829, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ok", + "value": 0 + }, + { + "name": "Generic", + "value": 1 + }, + { + "name": "Graphics_InitializationFailed", + "value": 2 + }, + { + "name": "Graphics_DriverTooOld", + "value": 3 + }, + { + "name": "Graphics_NoCompatibleDeviceFound", + "value": 4 + }, + { + "name": "Graphics_NotEnoughDeviceMemory", + "value": 5 + }, + { + "name": "MemorySystem_InitializationFailed", + "value": 6 + }, + { + "name": "MemorySystem_NotEnoughMemory", + "value": 7 + }, + { + "name": "SaveData_InitalizationFailed", + "value": 8 + }, + { + "name": "Online_InitializationFailed", + "value": 9 + }, + { + "name": "Steam_CoreResourcePackageNotFound", + "value": 10 + }, + { + "name": "Steam_NotSubscribed", + "value": 11 + } + ] + }, + { + "type_name_1": "GameBenchmarkSampleZone", + "type_name_2": "GameBenchmarkSampleZone", + "qualified_name": "keen::GameBenchmarkSampleZone", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1814741947, + "hash2": 2327586026, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "valueName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "averageDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "minValue", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "maxValue", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 48 + }, + { + "name": "averageValue", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 56 + }, + { + "name": "sampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GameBenchmarkSampleZone[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GameBenchmarkSampleZone", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3861415668, + "hash2": 1469444369, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkSample", + "type_name_2": "GameBenchmarkSample", + "qualified_name": "keen::GameBenchmarkSample", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3650485649, + "hash2": 3799464933, + "struct_fields": [ + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "sampleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "zones", + "type_name": "keen::BlobArray", + "type_hash": 3861415668, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GameBenchmarkSample[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GameBenchmarkSample", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3401846702, + "hash2": 3182879872, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkPlace", + "type_name_2": "GameBenchmarkPlace", + "qualified_name": "keen::GameBenchmarkPlace", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3383158290, + "hash2": 1519576243, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "instanceHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "samples", + "type_name": "keen::BlobArray", + "type_hash": 3401846702, + "data_offset": 16 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkResource", + "type_name_2": "GameBenchmarkResource", + "qualified_name": "keen::GameBenchmarkResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3798512087, + "hash2": 4068411010, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "bauPath", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "hash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GameBenchmarkResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GameBenchmarkResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3098956336, + "hash2": 1860645922, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GameBenchmarkPlace[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GameBenchmarkPlace", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4203942629, + "hash2": 1102161050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkResult", + "type_name_2": "GameBenchmarkResult", + "qualified_name": "keen::GameBenchmarkResult", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 20579826, + "hash2": 3381266167, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "author", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "machine", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "engineVersion", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + }, + { + "name": "date", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 32 + }, + { + "name": "resources", + "type_name": "keen::BlobArray", + "type_hash": 3098956336, + "data_offset": 40 + }, + { + "name": "places", + "type_name": "keen::BlobArray", + "type_hash": 4203942629, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameFrameworkWindowType", + "type_name_2": "GameFrameworkWindowType", + "qualified_name": "keen::GameFrameworkWindowType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4123993424, + "hash2": 1512602167, + "struct_fields": [], + "enum_fields": [ + { + "name": "Fixed", + "value": 0 + }, + { + "name": "Resizable", + "value": 1 + }, + { + "name": "Fullscreen", + "value": 2 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint8[128]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint8", + "class_size": 128, + "fields_count": 128, + "primitive_type": "StaticArray", + "hash1": 1506709033, + "hash2": 3313047707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameFrameworkGraphicsConfig", + "type_name_2": "GameFrameworkGraphicsConfig", + "qualified_name": "keen::GameFrameworkGraphicsConfig", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4041360763, + "hash2": 1969776728, + "struct_fields": [ + { + "name": "apiName", + "type_name": "keen::StaticArray", + "type_hash": 1506709033, + "data_offset": 0 + }, + { + "name": "windowType", + "type_name": "keen::GameFrameworkWindowType", + "type_hash": 4123993424, + "data_offset": 128 + }, + { + "name": "windowPosX", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 132 + }, + { + "name": "windowPosY", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 136 + }, + { + "name": "windowSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + }, + { + "name": "windowSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "presentationInterval", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 148 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameFrameworkConfig", + "type_name_2": "GameFrameworkConfig", + "qualified_name": "keen::GameFrameworkConfig", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2888269378, + "hash2": 1136028746, + "struct_fields": [ + { + "name": "graphics", + "type_name": "keen::GameFrameworkGraphicsConfig", + "type_hash": 4041360763, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiAxis", + "type_name_2": "GameUiAxis", + "qualified_name": "keen::GameUiAxis", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3601859435, + "hash2": 484263999, + "struct_fields": [], + "enum_fields": [ + { + "name": "Horizontal", + "value": 0 + }, + { + "name": "Vertical", + "value": 1 + } + ] + }, + { + "type_name_1": "GameUiFrameLayout", + "type_name_2": "GameUiFrameLayout", + "qualified_name": "keen::GameUiFrameLayout", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2058093661, + "hash2": 1674326231, + "struct_fields": [], + "enum_fields": [ + { + "name": "Horizontal", + "value": 0 + }, + { + "name": "Vertical", + "value": 1 + }, + { + "name": "Grid", + "value": 2 + } + ] + }, + { + "type_name_1": "GameUiScrollingSliderStyle", + "type_name_2": "GameUiScrollingSliderStyle", + "qualified_name": "keen::GameUiScrollingSliderStyle", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2615749637, + "hash2": 1479656755, + "struct_fields": [], + "enum_fields": [ + { + "name": "Solid", + "value": 0 + }, + { + "name": "Textured", + "value": 1 + } + ] + }, + { + "type_name_1": "GameUiScrollingHotkeyFlag", + "type_name_2": "GameUiScrollingHotkeyFlag", + "qualified_name": "keen::GameUiScrollingHotkeyFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 761582073, + "hash2": 4010836875, + "struct_fields": [], + "enum_fields": [ + { + "name": "MouseWheel", + "value": 0 + }, + { + "name": "Dpad", + "value": 1 + }, + { + "name": "LeftStick", + "value": 2 + }, + { + "name": "RightStick", + "value": 3 + }, + { + "name": "PageKeys", + "value": 4 + }, + { + "name": "ArrowKeys", + "value": 5 + } + ] + }, + { + "type_name_1": "GameUiMouseDragInputFlag", + "type_name_2": "GameUiMouseDragInputFlag", + "qualified_name": "keen::GameUiMouseDragInputFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1987637155, + "hash2": 813227386, + "struct_fields": [], + "enum_fields": [ + { + "name": "MouseLeft", + "value": 0 + }, + { + "name": "MouseRight", + "value": 1 + }, + { + "name": "MouseMiddle", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::GameUiMouseDragInputFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 95920467, + "hash2": 1227707755, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiMouseDragInputMask", + "type_name_2": "GameUiMouseDragInputMask", + "qualified_name": "keen::GameUiMouseDragInputMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3523005685, + "hash2": 4097308762, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::GameUiScrollingHotkeyFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2800296369, + "hash2": 2667930625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollingKeyMask", + "type_name_2": "GameUiScrollingKeyMask", + "qualified_name": "keen::GameUiScrollingKeyMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 15561296, + "hash2": 2178117625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollbarParameterData", + "type_name_2": "GameUiScrollbarParameterData", + "qualified_name": "keen::GameUiScrollbarParameterData", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 3552691599, + "hash2": 2937243941, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::GameUiAxis", + "type_hash": 3601859435, + "data_offset": 0 + }, + { + "name": "rangeRectColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + }, + { + "name": "sliderIdleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 12 + }, + { + "name": "sliderHoverColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 20 + }, + { + "name": "sliderOutlineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 28 + }, + { + "name": "rangeTexture", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 36 + }, + { + "name": "sliderTexture", + "type_name": "keen::UiNineSliceTexture", + "type_hash": 2602606885, + "data_offset": 100 + }, + { + "name": "sliderGripTexture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 164 + }, + { + "name": "sliderStyle", + "type_name": "keen::GameUiScrollingSliderStyle", + "type_hash": 2615749637, + "data_offset": 212 + }, + { + "name": "sliderIdleWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "sliderHoverWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "baseWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "rangeTextureWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 228 + }, + { + "name": "useInverseRangeRect", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 232 + }, + { + "name": "useGlobalFocus", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 233 + }, + { + "name": "enableDrag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 234 + }, + { + "name": "enableTouchDrag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 235 + }, + { + "name": "forceScrollbar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 236 + }, + { + "name": "offset", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 240 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 248 + }, + { + "name": "sliderMargin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 264 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollingLayoutParameterData", + "type_name_2": "GameUiScrollingLayoutParameterData", + "qualified_name": "keen::GameUiScrollingLayoutParameterData", + "referenced_type_name": null, + "class_size": 380, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1121739042, + "hash2": 3842119189, + "struct_fields": [ + { + "name": "borderColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "scrollHintTexture", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 8 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 56 + }, + { + "name": "scrollbarAlignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 72 + }, + { + "name": "showScrollHint", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 74 + }, + { + "name": "enableScrollbar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 75 + }, + { + "name": "useNavigation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "stealCapture", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + }, + { + "name": "doScissorWhenScrolling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 78 + }, + { + "name": "centerChildren", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 79 + }, + { + "name": "enableDrag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "forceScrollbar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 81 + }, + { + "name": "useGlobalFocus", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 82 + }, + { + "name": "useFillerSeperatorLineDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 83 + }, + { + "name": "consumeInput", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "useAutoScrolling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 85 + }, + { + "name": "fillerSeperatorLineDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "spacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "scrollingHotKeyMask", + "type_name": "keen::GameUiScrollingKeyMask", + "type_hash": 15561296, + "data_offset": 96 + }, + { + "name": "mouseDragInputMask", + "type_name": "keen::GameUiMouseDragInputMask", + "type_hash": 3523005685, + "data_offset": 97 + }, + { + "name": "scrollBar", + "type_name": "keen::GameUiScrollbarParameterData", + "type_hash": 3552691599, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlotJointMapping", + "type_name_2": "SlotJointMapping", + "qualified_name": "keen::SlotJointMapping", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 4182255392, + "hash2": 2638182151, + "struct_fields": [ + { + "name": "head", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "chest", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "pelvis", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "footL", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + }, + { + "name": "footR", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 32 + }, + { + "name": "footRL", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 40 + }, + { + "name": "footRR", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 48 + }, + { + "name": "handR", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 56 + }, + { + "name": "handL", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 64 + }, + { + "name": "kneeR", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 72 + }, + { + "name": "kneeL", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 80 + }, + { + "name": "armL", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 88 + }, + { + "name": "block", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelBase", + "type_name_2": "ModelBase", + "qualified_name": "keen::ModelBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2404505982, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchy", + "type_name_2": "ModelHierarchy", + "qualified_name": "keen::ModelHierarchy", + "referenced_type_name": null, + "class_size": 380, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 881531142, + "hash2": 2234206092, + "struct_fields": [ + { + "name": "exportNode", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "xanimScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "rotateY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "slotJointMapping", + "type_name": "keen::SlotJointMapping", + "type_hash": 4182255392, + "data_offset": 20 + }, + { + "name": "previewModels", + "type_name": "keen::PreviewModelArray", + "type_hash": 205171444, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyJointData", + "type_name_2": "ModelHierarchyJointData", + "qualified_name": "keen::ModelHierarchyJointData", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1588764674, + "hash2": 3496925367, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "parentIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "tag", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "defaultPose", + "type_name": "keen::Matrix43", + "type_hash": 1257492306, + "data_offset": 32 + }, + { + "name": "fixPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ModelHierarchyJointData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ModelHierarchyJointData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 846302667, + "hash2": 1363753842, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyData", + "type_name_2": "ModelHierarchyData", + "qualified_name": "keen::ModelHierarchyData", + "referenced_type_name": null, + "class_size": 376, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3829286, + "hash2": 180053185, + "struct_fields": [ + { + "name": "joints", + "type_name": "keen::BlobArray", + "type_hash": 846302667, + "data_offset": 0 + }, + { + "name": "defaultPoseHash", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "slotJointMapping", + "type_name": "keen::SlotJointMapping", + "type_hash": 4182255392, + "data_offset": 16 + }, + { + "name": "previewModels", + "type_name": "keen::PreviewModelArray", + "type_hash": 205171444, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "vf32_data[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::vf32_data", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1324442545, + "hash2": 342480765, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelPose", + "type_name_2": "ModelPose", + "qualified_name": "keen::ModelPose", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2934549458, + "hash2": 3986419443, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 1324442545, + "data_offset": 0 + }, + { + "name": "alignedJointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyJointDescription", + "type_name_2": "ModelHierarchyJointDescription", + "qualified_name": "keen::ModelHierarchyJointDescription", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2586777732, + "hash2": 2364838828, + "struct_fields": [ + { + "name": "jointDescriptions", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "Matrix43[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::Matrix43", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 986258925, + "hash2": 3671495749, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AnimationJoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AnimationJoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1811999507, + "hash2": 2734828148, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyResource", + "type_name_2": "ModelHierarchyResource", + "qualified_name": "keen::ModelHierarchyResource", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 897872094, + "hash2": 4106200618, + "struct_fields": [ + { + "name": "hierarchyId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "jointNames", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 16 + }, + { + "name": "joinParentIndices", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 24 + }, + { + "name": "skinToJointMatrices", + "type_name": "keen::BlobArray", + "type_hash": 986258925, + "data_offset": 32 + }, + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "defaultPose", + "type_name": "keen::ModelPose", + "type_hash": 2934549458, + "data_offset": 44 + }, + { + "name": "defaultPoseJoints", + "type_name": "keen::BlobArray", + "type_hash": 1811999507, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VertexAttribute", + "type_name_2": "VertexAttribute", + "qualified_name": "keen::VertexAttribute", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 356898260, + "hash2": 3510844344, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "format", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcVariantFlag", + "type_name_2": "GpcVariantFlag", + "qualified_name": "keen::GpcVariantFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3758435345, + "hash2": 2042038663, + "struct_fields": [], + "enum_fields": [ + { + "name": "Debug", + "value": 0 + }, + { + "name": "Float16", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::GpcVariantFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3205030609, + "hash2": 1970326141, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcShaderVariant", + "type_name_2": "GpcShaderVariant", + "qualified_name": "keen::GpcShaderVariant", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 189075528, + "hash2": 2960370999, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::Bitmask8", + "type_hash": 3205030609, + "data_offset": 0 + }, + { + "name": "code", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "strippedCode", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GpcShaderVariant[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GpcShaderVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1130620595, + "hash2": 1437280084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcShaderResource", + "type_name_2": "GpcShaderResource", + "qualified_name": "keen::GpcShaderResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3695907571, + "hash2": 3409184745, + "struct_fields": [ + { + "name": "variants", + "type_name": "keen::BlobArray", + "type_hash": 1130620595, + "data_offset": 0 + }, + { + "name": "entryPoint", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcPrimitiveType", + "type_name_2": "GpcPrimitiveType", + "qualified_name": "keen::GpcPrimitiveType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 709865003, + "hash2": 45555124, + "struct_fields": [], + "enum_fields": [ + { + "name": "TriangleList", + "value": 0 + }, + { + "name": "TriangleStrip", + "value": 1 + }, + { + "name": "LineList", + "value": 2 + }, + { + "name": "PatchList", + "value": 3 + } + ] + }, + { + "type_name_1": "GpcCullMode", + "type_name_2": "GpcCullMode", + "qualified_name": "keen::GpcCullMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2173124989, + "hash2": 999002683, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Front", + "value": 1 + }, + { + "name": "Back", + "value": 2 + } + ] + }, + { + "type_name_1": "GpcFillMode", + "type_name_2": "GpcFillMode", + "qualified_name": "keen::GpcFillMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3583139532, + "hash2": 2548221062, + "struct_fields": [], + "enum_fields": [ + { + "name": "Solid", + "value": 0 + }, + { + "name": "Wireframe", + "value": 1 + } + ] + }, + { + "type_name_1": "GpcWindingOrder", + "type_name_2": "GpcWindingOrder", + "qualified_name": "keen::GpcWindingOrder", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3229499916, + "hash2": 1458137694, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ccw", + "value": 0 + }, + { + "name": "Cw", + "value": 1 + } + ] + }, + { + "type_name_1": "GpcBlendOp", + "type_name_2": "GpcBlendOp", + "qualified_name": "keen::GpcBlendOp", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 506974322, + "hash2": 3012454079, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Add", + "value": 1 + }, + { + "name": "Subtract", + "value": 2 + }, + { + "name": "RevSubtract", + "value": 3 + }, + { + "name": "Min", + "value": 4 + }, + { + "name": "Max", + "value": 5 + } + ] + }, + { + "type_name_1": "GpcBlendFactor", + "type_name_2": "GpcBlendFactor", + "qualified_name": "keen::GpcBlendFactor", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 11, + "primitive_type": "Enum", + "hash1": 800016878, + "hash2": 1672896680, + "struct_fields": [], + "enum_fields": [ + { + "name": "Zero", + "value": 0 + }, + { + "name": "One", + "value": 1 + }, + { + "name": "SrcColor", + "value": 2 + }, + { + "name": "InvSrcColor", + "value": 3 + }, + { + "name": "SrcAlpha", + "value": 4 + }, + { + "name": "InvSrcAlpha", + "value": 5 + }, + { + "name": "DestAlpha", + "value": 6 + }, + { + "name": "InvDestAlpha", + "value": 7 + }, + { + "name": "DestColor", + "value": 8 + }, + { + "name": "InvDestColor", + "value": 9 + }, + { + "name": "SrcAlphaSat", + "value": 10 + } + ] + }, + { + "type_name_1": "GpcComparisonFunction", + "type_name_2": "GpcComparisonFunction", + "qualified_name": "keen::GpcComparisonFunction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 2167952367, + "hash2": 4213541594, + "struct_fields": [], + "enum_fields": [ + { + "name": "Never", + "value": 0 + }, + { + "name": "Less", + "value": 1 + }, + { + "name": "Equal", + "value": 2 + }, + { + "name": "LessEqual", + "value": 3 + }, + { + "name": "Greater", + "value": 4 + }, + { + "name": "NotEqual", + "value": 5 + }, + { + "name": "GreaterEqual", + "value": 6 + }, + { + "name": "Always", + "value": 7 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PixelFormat[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PixelFormat", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1920097818, + "hash2": 1593020910, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcRasterPipelineResource", + "type_name_2": "GpcRasterPipelineResource", + "qualified_name": "keen::GpcRasterPipelineResource", + "referenced_type_name": null, + "class_size": 108, + "fields_count": 23, + "primitive_type": "Struct", + "hash1": 2079937745, + "hash2": 3391197159, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "colorTargetFormats", + "type_name": "keen::BlobArray", + "type_hash": 1920097818, + "data_offset": 12 + }, + { + "name": "depthStencilTargetFormat", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 20 + }, + { + "name": "sampleCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 21 + }, + { + "name": "primitiveType", + "type_name": "keen::GpcPrimitiveType", + "type_hash": 709865003, + "data_offset": 22 + }, + { + "name": "patchSize", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 23 + }, + { + "name": "cullMode", + "type_name": "keen::GpcCullMode", + "type_hash": 2173124989, + "data_offset": 24 + }, + { + "name": "fillMode", + "type_name": "keen::GpcFillMode", + "type_hash": 3583139532, + "data_offset": 25 + }, + { + "name": "windingOrder", + "type_name": "keen::GpcWindingOrder", + "type_hash": 3229499916, + "data_offset": 26 + }, + { + "name": "blendOp", + "type_name": "keen::GpcBlendOp", + "type_hash": 506974322, + "data_offset": 27 + }, + { + "name": "blendSourceFactor", + "type_name": "keen::GpcBlendFactor", + "type_hash": 800016878, + "data_offset": 28 + }, + { + "name": "blendDestFactor", + "type_name": "keen::GpcBlendFactor", + "type_hash": 800016878, + "data_offset": 29 + }, + { + "name": "sampleShading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 30 + }, + { + "name": "alphaToCoverage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 31 + }, + { + "name": "depthComparisonFunction", + "type_name": "keen::GpcComparisonFunction", + "type_hash": 2167952367, + "data_offset": 32 + }, + { + "name": "depthWriteEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "constDepthBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "slopeDepthBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "vsShaderCode", + "type_name": "keen::GpcShaderResource", + "type_hash": 3695907571, + "data_offset": 44 + }, + { + "name": "tcShaderCode", + "type_name": "keen::GpcShaderResource", + "type_hash": 3695907571, + "data_offset": 60 + }, + { + "name": "teShaderCode", + "type_name": "keen::GpcShaderResource", + "type_hash": 3695907571, + "data_offset": 76 + }, + { + "name": "fsShaderCode", + "type_name": "keen::GpcShaderResource", + "type_hash": 3695907571, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcComputePipelineResource", + "type_name_2": "GpcComputePipelineResource", + "qualified_name": "keen::GpcComputePipelineResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1283722621, + "hash2": 4032323275, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "groupSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + }, + { + "name": "computeShader", + "type_name": "keen::GpcShaderResource", + "type_hash": 3695907571, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GpcRasterPipelineResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GpcRasterPipelineResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2074058850, + "hash2": 704179231, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GpcComputePipelineResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GpcComputePipelineResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 261454692, + "hash2": 4270139096, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcResource", + "type_name_2": "GpcResource", + "qualified_name": "keen::GpcResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1685465302, + "hash2": 3328871060, + "struct_fields": [ + { + "name": "signatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "rasterPipelines", + "type_name": "keen::BlobArray", + "type_hash": 2074058850, + "data_offset": 4 + }, + { + "name": "computePipelines", + "type_name": "keen::BlobArray", + "type_hash": 261454692, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcResourceList", + "type_name_2": "GpcResourceList", + "qualified_name": "keen::GpcResourceList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1184131714, + "hash2": 3482115209, + "struct_fields": [ + { + "name": "path", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "u32", + "type_name_2": "gpu.u32", + "qualified_name": "keen::gpu::u32", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1536036050, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32", + "type_name_2": "gpu.s32", + "qualified_name": "keen::gpu::s32", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 308893236, + "hash2": 1236258612, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32", + "type_name_2": "gpu.f32", + "qualified_name": "keen::gpu::f32", + "referenced_type_name": "keen::float32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1952277075, + "hash2": 3005136928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_1", + "type_name_2": "gpu.u32_1", + "qualified_name": "keen::gpu::u32_1", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 358091442, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_2", + "type_name_2": "gpu.u32_2", + "qualified_name": "keen::gpu::u32_2", + "referenced_type_name": "keen::uint2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 341313823, + "hash2": 3562711373, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_3", + "type_name_2": "gpu.u32_3", + "qualified_name": "keen::gpu::u32_3", + "referenced_type_name": "keen::uint3", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 324536204, + "hash2": 2706953273, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_4", + "type_name_2": "gpu.u32_4", + "qualified_name": "keen::gpu::u32_4", + "referenced_type_name": "keen::uint4", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 307758585, + "hash2": 3697194186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_1", + "type_name_2": "gpu.s32_1", + "qualified_name": "keen::gpu::s32_1", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 507060928, + "hash2": 1236258612, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_2", + "type_name_2": "gpu.s32_2", + "qualified_name": "keen::gpu::s32_2", + "referenced_type_name": "keen::int2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 557393785, + "hash2": 324423752, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_3", + "type_name_2": "gpu.s32_3", + "qualified_name": "keen::gpu::s32_3", + "referenced_type_name": "keen::int3", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 540616166, + "hash2": 3721286952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_4", + "type_name_2": "gpu.s32_4", + "qualified_name": "keen::gpu::s32_4", + "referenced_type_name": "keen::int4", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 590949023, + "hash2": 1216879167, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_1", + "type_name_2": "gpu.f32_1", + "qualified_name": "keen::gpu::f32_1", + "referenced_type_name": "keen::float32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3089028943, + "hash2": 3005136928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_2", + "type_name_2": "gpu.f32_2", + "qualified_name": "keen::gpu::f32_2", + "referenced_type_name": "keen::float2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3105806562, + "hash2": 771174023, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_3", + "type_name_2": "gpu.f32_3", + "qualified_name": "keen::gpu::f32_3", + "referenced_type_name": "keen::float3", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3122584181, + "hash2": 2023471607, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_4", + "type_name_2": "gpu.f32_4", + "qualified_name": "keen::gpu::f32_4", + "referenced_type_name": "keen::float4", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3005140848, + "hash2": 2398531624, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsMatrix43", + "type_name_2": "GraphicsMatrix43", + "qualified_name": "keen::GraphicsMatrix43", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3292251535, + "hash2": 1772238174, + "struct_fields": [ + { + "name": "row0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "row1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "row2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "f32_3x4", + "type_name_2": "gpu.f32_3x4", + "qualified_name": "keen::gpu::f32_3x4", + "referenced_type_name": "keen::GraphicsMatrix43", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2024492921, + "hash2": 679516559, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsMatrix44", + "type_name_2": "GraphicsMatrix44", + "qualified_name": "keen::GraphicsMatrix44", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3241918678, + "hash2": 984634850, + "struct_fields": [ + { + "name": "row0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "row1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "row2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "row3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "f32_4x4", + "type_name_2": "gpu.f32_4x4", + "qualified_name": "keen::gpu::f32_4x4", + "referenced_type_name": "keen::GraphicsMatrix44", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 140302788, + "hash2": 1883861510, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsDrawIndirectParameter", + "type_name_2": "GraphicsDrawIndirectParameter", + "qualified_name": "keen::GraphicsDrawIndirectParameter", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4064187018, + "hash2": 1832574062, + "struct_fields": [ + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DrawIndirectParameter", + "type_name_2": "gpu.DrawIndirectParameter", + "qualified_name": "keen::gpu::DrawIndirectParameter", + "referenced_type_name": "keen::GraphicsDrawIndirectParameter", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 57000219, + "hash2": 1561969900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsDrawIndexedIndirectParameter", + "type_name_2": "GraphicsDrawIndexedIndirectParameter", + "qualified_name": "keen::GraphicsDrawIndexedIndirectParameter", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1191391463, + "hash2": 2632724189, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DrawIndexedIndirectParameter", + "type_name_2": "gpu.DrawIndexedIndirectParameter", + "qualified_name": "keen::gpu::DrawIndexedIndirectParameter", + "referenced_type_name": "keen::GraphicsDrawIndexedIndirectParameter", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 932030832, + "hash2": 4149940144, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsDispatchIndirectParameter", + "type_name_2": "GraphicsDispatchIndirectParameter", + "qualified_name": "keen::GraphicsDispatchIndirectParameter", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2389807650, + "hash2": 2643941189, + "struct_fields": [ + { + "name": "groupCountX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "groupCountY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "groupCountZ", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DispatchIndirectParameter", + "type_name_2": "gpu.DispatchIndirectParameter", + "qualified_name": "keen::gpu::DispatchIndirectParameter", + "referenced_type_name": "keen::GraphicsDispatchIndirectParameter", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3976660635, + "hash2": 3656507108, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture2D_float4", + "type_name_2": "BindlessTexture2D_float4", + "qualified_name": "keen::BindlessTexture2D_float4", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 239233568, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture2D_float", + "type_name_2": "BindlessTexture2D_float", + "qualified_name": "keen::BindlessTexture2D_float", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2447819092, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture3D_float4", + "type_name_2": "BindlessTexture3D_float4", + "qualified_name": "keen::BindlessTexture3D_float4", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1081650399, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture3D_float", + "type_name_2": "BindlessTexture3D_float", + "qualified_name": "keen::BindlessTexture3D_float", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2581587761, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture3D_uint", + "type_name_2": "BindlessTexture3D_uint", + "qualified_name": "keen::BindlessTexture3D_uint", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 797996397, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessSampler", + "type_name_2": "BindlessSampler", + "qualified_name": "keen::BindlessSampler", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3266652824, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint8[64]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint8", + "class_size": 64, + "fields_count": 64, + "primitive_type": "StaticArray", + "hash1": 2361823656, + "hash2": 4093492572, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuSystemInformation", + "type_name_2": "GpuSystemInformation", + "qualified_name": "keen::GpuSystemInformation", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3408968909, + "hash2": 2938606413, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 64 + }, + { + "name": "videoMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 128 + }, + { + "name": "sharedMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 136 + }, + { + "name": "hasDirectX9", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + }, + { + "name": "hasDirectX11", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 145 + }, + { + "name": "hasGl1", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 146 + }, + { + "name": "hasGl2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 147 + }, + { + "name": "hasGl3", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 148 + }, + { + "name": "hasGl4", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 149 + }, + { + "name": "hasGles2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 150 + }, + { + "name": "hasGles3", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 151 + }, + { + "name": "hasMetal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 152 + }, + { + "name": "hasVulkan", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 153 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisplaySystemInformation", + "type_name_2": "DisplaySystemInformation", + "qualified_name": "keen::DisplaySystemInformation", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1767749917, + "hash2": 2888810204, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 0 + }, + { + "name": "gpuIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "pixelWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "pixelHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "aspectRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "dpi", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuSystemInformation[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::GpuSystemInformation", + "class_size": 640, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 698960903, + "hash2": 390609022, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "DisplaySystemInformation[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::DisplaySystemInformation", + "class_size": 336, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 922809623, + "hash2": 2411539684, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsSystemInformation", + "type_name_2": "GraphicsSystemInformation", + "qualified_name": "keen::GraphicsSystemInformation", + "referenced_type_name": null, + "class_size": 992, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2349327500, + "hash2": 106105592, + "struct_fields": [ + { + "name": "totalPixelWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "totalPixelHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "gpuCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "displayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "gpus", + "type_name": "keen::StaticArray", + "type_hash": 698960903, + "data_offset": 16 + }, + { + "name": "displays", + "type_name": "keen::StaticArray", + "type_hash": 922809623, + "data_offset": 656 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsBlendOperation", + "type_name_2": "GraphicsBlendOperation", + "qualified_name": "keen::GraphicsBlendOperation", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1330028551, + "hash2": 3012454079, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Add", + "value": 1 + }, + { + "name": "Subtract", + "value": 2 + }, + { + "name": "RevSubtract", + "value": 3 + }, + { + "name": "Min", + "value": 4 + }, + { + "name": "Max", + "value": 5 + } + ] + }, + { + "type_name_1": "GraphicsBlendFactor", + "type_name_2": "GraphicsBlendFactor", + "qualified_name": "keen::GraphicsBlendFactor", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 11, + "primitive_type": "Enum", + "hash1": 3171613957, + "hash2": 1672896680, + "struct_fields": [], + "enum_fields": [ + { + "name": "Zero", + "value": 0 + }, + { + "name": "One", + "value": 1 + }, + { + "name": "SrcColor", + "value": 2 + }, + { + "name": "InvSrcColor", + "value": 3 + }, + { + "name": "SrcAlpha", + "value": 4 + }, + { + "name": "InvSrcAlpha", + "value": 5 + }, + { + "name": "DestAlpha", + "value": 6 + }, + { + "name": "InvDestAlpha", + "value": 7 + }, + { + "name": "DestColor", + "value": 8 + }, + { + "name": "InvDestColor", + "value": 9 + }, + { + "name": "SrcAlphaSat", + "value": 10 + } + ] + }, + { + "type_name_1": "GraphicsFillMode", + "type_name_2": "GraphicsFillMode", + "qualified_name": "keen::GraphicsFillMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 174401545, + "hash2": 1818832974, + "struct_fields": [], + "enum_fields": [ + { + "name": "Wireframe", + "value": 0 + }, + { + "name": "Solid", + "value": 1 + } + ] + }, + { + "type_name_1": "GraphicsCullMode", + "type_name_2": "GraphicsCullMode", + "qualified_name": "keen::GraphicsCullMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1131340440, + "hash2": 999002683, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Front", + "value": 1 + }, + { + "name": "Back", + "value": 2 + } + ] + }, + { + "type_name_1": "GraphicsWindingOrder", + "type_name_2": "GraphicsWindingOrder", + "qualified_name": "keen::GraphicsWindingOrder", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 4129928957, + "hash2": 1458137694, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ccw", + "value": 0 + }, + { + "name": "Cw", + "value": 1 + } + ] + }, + { + "type_name_1": "GraphicsSamplerFilterMode", + "type_name_2": "GraphicsSamplerFilterMode", + "qualified_name": "keen::GraphicsSamplerFilterMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 567227004, + "hash2": 3620113230, + "struct_fields": [], + "enum_fields": [ + { + "name": "Nearest", + "value": 0 + }, + { + "name": "Linear", + "value": 1 + } + ] + }, + { + "type_name_1": "GraphicsSamplerAddressMode", + "type_name_2": "GraphicsSamplerAddressMode", + "qualified_name": "keen::GraphicsSamplerAddressMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1436826168, + "hash2": 4000045421, + "struct_fields": [], + "enum_fields": [ + { + "name": "Wrap", + "value": 0 + }, + { + "name": "Mirror", + "value": 1 + }, + { + "name": "Clamp", + "value": 2 + } + ] + }, + { + "type_name_1": "GraphicsComparisonFunction", + "type_name_2": "GraphicsComparisonFunction", + "qualified_name": "keen::GraphicsComparisonFunction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 2455158310, + "hash2": 4213541594, + "struct_fields": [], + "enum_fields": [ + { + "name": "Never", + "value": 0 + }, + { + "name": "Less", + "value": 1 + }, + { + "name": "Equal", + "value": 2 + }, + { + "name": "LessEqual", + "value": 3 + }, + { + "name": "Greater", + "value": 4 + }, + { + "name": "NotEqual", + "value": 5 + }, + { + "name": "GreaterEqual", + "value": 6 + }, + { + "name": "Always", + "value": 7 + } + ] + }, + { + "type_name_1": "GraphicsStencilOperation", + "type_name_2": "GraphicsStencilOperation", + "qualified_name": "keen::GraphicsStencilOperation", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 726967266, + "hash2": 1840381249, + "struct_fields": [], + "enum_fields": [ + { + "name": "Keep", + "value": 0 + }, + { + "name": "Zero", + "value": 1 + }, + { + "name": "Replace", + "value": 2 + }, + { + "name": "Increment", + "value": 3 + }, + { + "name": "Decrement", + "value": 4 + }, + { + "name": "IncrementWrap", + "value": 5 + }, + { + "name": "DecrementWrap", + "value": 6 + }, + { + "name": "Invert", + "value": 7 + } + ] + }, + { + "type_name_1": "GraphicsColorWriteFlag", + "type_name_2": "GraphicsColorWriteFlag", + "qualified_name": "keen::GraphicsColorWriteFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3957965119, + "hash2": 2898886368, + "struct_fields": [], + "enum_fields": [ + { + "name": "Red", + "value": 0 + }, + { + "name": "Green", + "value": 1 + }, + { + "name": "Blue", + "value": 2 + }, + { + "name": "Alpha", + "value": 3 + } + ] + }, + { + "type_name_1": "GraphicsDeviceMemoryPriority", + "type_name_2": "GraphicsDeviceMemoryPriority", + "qualified_name": "keen::GraphicsDeviceMemoryPriority", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2961279078, + "hash2": 664233795, + "struct_fields": [], + "enum_fields": [ + { + "name": "Lowest", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Normal", + "value": 2 + }, + { + "name": "High", + "value": 3 + }, + { + "name": "Highest", + "value": 4 + } + ] + }, + { + "type_name_1": "DlssQualityPreset", + "type_name_2": "DlssQualityPreset", + "qualified_name": "keen::DlssQualityPreset", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 4214245830, + "hash2": 2209358070, + "struct_fields": [], + "enum_fields": [ + { + "name": "MaxPerf", + "value": 0 + }, + { + "name": "Balanced", + "value": 1 + }, + { + "name": "MaxQuality", + "value": 2 + }, + { + "name": "UltraPerformance", + "value": 3 + }, + { + "name": "UltraQuality", + "value": 4 + }, + { + "name": "Dlaa", + "value": 5 + } + ] + }, + { + "type_name_1": "HistogramData", + "type_name_2": "HistogramData", + "qualified_name": "keen::HistogramData", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1071961100, + "hash2": 359172011, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "slots", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 8 + }, + { + "name": "valueCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "valueSum", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 24 + }, + { + "name": "minValue", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 32 + }, + { + "name": "maxValue", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 40 + }, + { + "name": "rangeStart", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 48 + }, + { + "name": "rangeEnd", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 56 + }, + { + "name": "isLinear", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "isTime", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticEngineVersion", + "type_name_2": "HolisticEngineVersion", + "qualified_name": "keen::HolisticEngineVersion", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2448967943, + "hash2": 3404786820, + "struct_fields": [ + { + "name": "gitHash", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneRenderFlag", + "type_name_2": "HolisticSceneRenderFlag", + "qualified_name": "keen::HolisticSceneRenderFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 2077385451, + "hash2": 46402717, + "struct_fields": [], + "enum_fields": [ + { + "name": "Sdf", + "value": 0 + }, + { + "name": "SdfBvh", + "value": 1 + }, + { + "name": "NeutralAlbedo", + "value": 2 + }, + { + "name": "OrientationCoordinateFrame", + "value": 3 + }, + { + "name": "Triggers", + "value": 4 + }, + { + "name": "Grid", + "value": 5 + }, + { + "name": "ScatterRadii", + "value": 6 + }, + { + "name": "OnlyLocalVoxels", + "value": 7 + }, + { + "name": "VisualizeIbl", + "value": 8 + }, + { + "name": "SolidColliders", + "value": 9 + }, + { + "name": "TintSubEntities", + "value": 10 + }, + { + "name": "WhiteboxModelOverlay", + "value": 11 + }, + { + "name": "Cloth", + "value": 12 + }, + { + "name": "ModelChunks", + "value": 13 + }, + { + "name": "DisableCardClusterShadows", + "value": 14 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::HolisticSceneRenderFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3960373962, + "hash2": 1296579398, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneRenderFlags", + "type_name_2": "HolisticSceneRenderFlags", + "qualified_name": "keen::HolisticSceneRenderFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2217817416, + "hash2": 3794322012, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCameraSpeed", + "type_name_2": "SceneCameraSpeed", + "qualified_name": "keen::SceneCameraSpeed", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2905908704, + "hash2": 2226837599, + "struct_fields": [], + "enum_fields": [ + { + "name": "VerySlow", + "value": 0 + }, + { + "name": "Slow", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "Fast", + "value": 3 + }, + { + "name": "VeryFast", + "value": 4 + } + ] + }, + { + "type_name_1": "SceneCameraSpeedBoostFactor", + "type_name_2": "SceneCameraSpeedBoostFactor", + "qualified_name": "keen::SceneCameraSpeedBoostFactor", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1641436756, + "hash2": 1401003744, + "struct_fields": [], + "enum_fields": [ + { + "name": "X4", + "value": 0 + }, + { + "name": "X8", + "value": 1 + }, + { + "name": "X16", + "value": 2 + } + ] + }, + { + "type_name_1": "HolisticSceneCameraSettings", + "type_name_2": "HolisticSceneCameraSettings", + "qualified_name": "keen::HolisticSceneCameraSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1704048295, + "hash2": 3810519820, + "struct_fields": [ + { + "name": "cameraSpeed", + "type_name": "keen::SceneCameraSpeed", + "type_hash": 2905908704, + "data_offset": 0 + }, + { + "name": "cameraSpeedBoost", + "type_name": "keen::SceneCameraSpeedBoostFactor", + "type_hash": 1641436756, + "data_offset": 1 + }, + { + "name": "farClip", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "fovY", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneEditorLighting", + "type_name_2": "HolisticSceneEditorLighting", + "qualified_name": "keen::HolisticSceneEditorLighting", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 587711400, + "hash2": 3868368961, + "struct_fields": [ + { + "name": "sunColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "iblIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "editorFixedExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "forceEditorLighting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSnappingFlag", + "type_name_2": "HolisticSnappingFlag", + "qualified_name": "keen::HolisticSnappingFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3384675633, + "hash2": 177719356, + "struct_fields": [], + "enum_fields": [ + { + "name": "Grid", + "value": 0 + }, + { + "name": "Ground", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::HolisticSnappingFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 4140495250, + "hash2": 3769758938, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSnappingFlags", + "type_name_2": "HolisticSnappingFlags", + "qualified_name": "keen::HolisticSnappingFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3626950374, + "hash2": 91626570, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneViewOverlay", + "type_name_2": "HolisticSceneViewOverlay", + "qualified_name": "keen::HolisticSceneViewOverlay", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 13, + "primitive_type": "Enum", + "hash1": 11474972, + "hash2": 1735066486, + "struct_fields": [], + "enum_fields": [ + { + "name": "Camera", + "value": 0 + }, + { + "name": "Environment", + "value": 1 + }, + { + "name": "RenderGraph", + "value": 2 + }, + { + "name": "RenderFeatures", + "value": 3 + }, + { + "name": "Shading", + "value": 4 + }, + { + "name": "Time", + "value": 5 + }, + { + "name": "Disolve", + "value": 6 + }, + { + "name": "Wind", + "value": 7 + }, + { + "name": "Snapping", + "value": 8 + }, + { + "name": "NonSelectableTypes", + "value": 9 + }, + { + "name": "BlendShape", + "value": 10 + }, + { + "name": "ColorGradient", + "value": 11 + }, + { + "name": "AlbedoTintColors", + "value": 12 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::HolisticSceneViewOverlay", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1907567085, + "hash2": 3298801930, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneViewOverlays", + "type_name_2": "HolisticSceneViewOverlays", + "qualified_name": "keen::HolisticSceneViewOverlays", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2191750845, + "hash2": 2135226500, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneSnappingSettings", + "type_name_2": "HolisticSceneSnappingSettings", + "qualified_name": "keen::HolisticSceneSnappingSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3243121104, + "hash2": 2276201130, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "angleStep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lockedSnappingFlags", + "type_name": "keen::HolisticSnappingFlags", + "type_hash": 3626950374, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "bool[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::bool", + "class_size": 3, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 3537040393, + "hash2": 4166273011, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticOverlaySettings", + "type_name_2": "HolisticOverlaySettings", + "qualified_name": "keen::HolisticOverlaySettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3714676788, + "hash2": 1510727834, + "struct_fields": [ + { + "name": "overlays", + "type_name": "keen::HolisticSceneViewOverlays", + "type_hash": 2191750845, + "data_offset": 0 + }, + { + "name": "showOverlays", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "isNonSelectableOverlayExpanded", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "isCustomLightOverlayExpanded", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "isAlbedoTintLayerOverlayExpanded", + "type_name": "keen::StaticArray", + "type_hash": 3537040393, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneToolboxSettings", + "type_name_2": "HolisticSceneToolboxSettings", + "qualified_name": "keen::HolisticSceneToolboxSettings", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 315001905, + "hash2": 892034822, + "struct_fields": [ + { + "name": "randomRotateY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "alignToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticPersistentSceneSettings", + "type_name_2": "HolisticPersistentSceneSettings", + "qualified_name": "keen::HolisticPersistentSceneSettings", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 745990979, + "hash2": 2649730278, + "struct_fields": [ + { + "name": "camera", + "type_name": "keen::HolisticSceneCameraSettings", + "type_hash": 1704048295, + "data_offset": 0 + }, + { + "name": "lighting", + "type_name": "keen::HolisticSceneEditorLighting", + "type_hash": 587711400, + "data_offset": 12 + }, + { + "name": "snapping", + "type_name": "keen::HolisticSceneSnappingSettings", + "type_hash": 3243121104, + "data_offset": 40 + }, + { + "name": "overlaySettings", + "type_name": "keen::HolisticOverlaySettings", + "type_hash": 3714676788, + "data_offset": 52 + }, + { + "name": "toolbox", + "type_name": "keen::HolisticSceneToolboxSettings", + "type_hash": 315001905, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticPersistentPreviewSettings", + "type_name_2": "HolisticPersistentPreviewSettings", + "qualified_name": "keen::HolisticPersistentPreviewSettings", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1299498799, + "hash2": 429545312, + "struct_fields": [ + { + "name": "camera", + "type_name": "keen::HolisticSceneCameraSettings", + "type_hash": 1704048295, + "data_offset": 0 + }, + { + "name": "lighting", + "type_name": "keen::HolisticSceneEditorLighting", + "type_hash": 587711400, + "data_offset": 12 + }, + { + "name": "overlaySettings", + "type_name": "keen::HolisticOverlaySettings", + "type_hash": 3714676788, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticPersistentUserSettings", + "type_name_2": "HolisticPersistentUserSettings", + "qualified_name": "keen::HolisticPersistentUserSettings", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1771344692, + "hash2": 2197721157, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::HolisticPersistentSceneSettings", + "type_hash": 745990979, + "data_offset": 0 + }, + { + "name": "preview", + "type_name": "keen::HolisticPersistentPreviewSettings", + "type_hash": 1299498799, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticVfxTestParameters", + "type_name_2": "HolisticVfxTestParameters", + "qualified_name": "keen::HolisticVfxTestParameters", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 628846829, + "hash2": 1037016934, + "struct_fields": [ + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilterCollection", + "type_name_2": "HolisticMapFilterCollection", + "qualified_name": "keen::HolisticMapFilterCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2839614193, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilterDirectory", + "type_name_2": "HolisticMapFilterDirectory", + "qualified_name": "keen::HolisticMapFilterDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4231248232, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilter", + "type_name_2": "HolisticMapFilter", + "qualified_name": "keen::HolisticMapFilter", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3647965189, + "hash2": 993286702, + "struct_fields": [ + { + "name": "markerSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 4 + }, + { + "name": "isVisible", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Folder", + "type_name_2": "Folder", + "qualified_name": "keen::Folder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3226952630, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImporterModelConfig", + "type_name_2": "ImporterModelConfig", + "qualified_name": "keen::ImporterModelConfig", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1848133175, + "hash2": 3000218745, + "struct_fields": [ + { + "name": "parentNamePatters", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 0 + }, + { + "name": "nameIncludePatters", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 8 + }, + { + "name": "nameExcludePatters", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImporterTemplate", + "type_name_2": "ImporterTemplate", + "qualified_name": "keen::ImporterTemplate", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2140782514, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImporterTemplateObject", + "type_name_2": "ImporterTemplateObject", + "qualified_name": "keen::ImporterTemplateObject", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2968723273, + "hash2": 4121526228, + "struct_fields": [ + { + "name": "descriptionFormat", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "initialState", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "sortIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "containerId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImporterAction", + "type_name_2": "ImporterAction", + "qualified_name": "keen::ImporterAction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 2659583378, + "hash2": 296688289, + "struct_fields": [], + "enum_fields": [ + { + "name": "Nothing", + "value": 0 + } + ] + }, + { + "type_name_1": "SourceFileHash", + "type_name_2": "SourceFileHash", + "qualified_name": "keen::SourceFileHash", + "referenced_type_name": "keen::string", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 753440401, + "hash2": 58040744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImporterFileTemplate", + "type_name_2": "ImporterFileTemplate", + "qualified_name": "keen::ImporterFileTemplate", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 664067760, + "hash2": 1861879761, + "struct_fields": [ + { + "name": "extension", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "action", + "type_name": "keen::ImporterAction", + "type_hash": 2659583378, + "data_offset": 8 + }, + { + "name": "contentHash", + "type_name": "keen::SourceFileHash", + "type_hash": 753440401, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TagCollection", + "type_name_2": "TagCollection", + "qualified_name": "keen::TagCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2492652398, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectTagGroup", + "type_name_2": "ObjectTagGroup", + "qualified_name": "keen::ObjectTagGroup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3505300394, + "hash2": 2540684284, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectTag", + "type_name_2": "ObjectTag", + "qualified_name": "keen::ObjectTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2721111795, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ObjectTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1464770120, + "hash2": 1336120026, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TagReference", + "type_name_2": "TagReference", + "qualified_name": "keen::TagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2643970115, + "hash2": 3464695810, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ObjectTag[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ObjectTag", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3783280468, + "hash2": 2103259891, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ObjectTagGroup[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ObjectTagGroup", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1240782257, + "hash2": 3666143815, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TagDirectoryContent", + "type_name_2": "TagDirectoryContent", + "qualified_name": "keen::TagDirectoryContent", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3645640186, + "hash2": 3987917911, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 3783280468, + "data_offset": 0 + }, + { + "name": "groups", + "type_name": "keen::BlobArray", + "type_hash": 1240782257, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticImporterObjectType", + "type_name_2": "HolisticImporterObjectType", + "qualified_name": "keen::HolisticImporterObjectType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 16, + "primitive_type": "Enum", + "hash1": 3322317626, + "hash2": 2146802742, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Unknown", + "value": 1 + }, + { + "name": "SourceData", + "value": 2 + }, + { + "name": "Image", + "value": 3 + }, + { + "name": "Model", + "value": 4 + }, + { + "name": "ModelHierarchy", + "value": 5 + }, + { + "name": "Animation", + "value": 6 + }, + { + "name": "Substance", + "value": 7 + }, + { + "name": "ChunkedImage", + "value": 8 + }, + { + "name": "VfxShader", + "value": 9 + }, + { + "name": "VoxelObject", + "value": 10 + }, + { + "name": "VoxelRoadShape", + "value": 11 + }, + { + "name": "Midi", + "value": 12 + }, + { + "name": "Sound", + "value": 13 + }, + { + "name": "InstrumentSample", + "value": 14 + }, + { + "name": "Text", + "value": 15 + } + ] + }, + { + "type_name_1": "SourceFile", + "type_name_2": "SourceFile", + "qualified_name": "keen::SourceFile", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 821083557, + "hash2": 237609660, + "struct_fields": [ + { + "name": "fileHash", + "type_name": "keen::SourceFileHash", + "type_hash": 753440401, + "data_offset": 0 + }, + { + "name": "targetType", + "type_name": "keen::HolisticImporterObjectType", + "type_hash": 3322317626, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SourceFile", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 336548932, + "hash2": 2248577360, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceFileReference", + "type_name_2": "SourceFileReference", + "qualified_name": "keen::SourceFileReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3396304986, + "hash2": 2516799839, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceData", + "type_name_2": "SourceData", + "qualified_name": "keen::SourceData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4231918483, + "hash2": 3516357490, + "struct_fields": [ + { + "name": "dataHash", + "type_name": "keen::SourceFileHash", + "type_hash": 753440401, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SourceData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2436096310, + "hash2": 1831335888, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceDataReference", + "type_name_2": "SourceDataReference", + "qualified_name": "keen::SourceDataReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1576207448, + "hash2": 890719897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagDirectory", + "type_name_2": "WhiteboxTagDirectory", + "qualified_name": "keen::WhiteboxTagDirectory", + "referenced_type_name": "keen::Group", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3285894135, + "hash2": 4244116669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagGroup", + "type_name_2": "WhiteboxTagGroup", + "qualified_name": "keen::WhiteboxTagGroup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3836323679, + "hash2": 2540684284, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTag", + "type_name_2": "WhiteboxTag", + "qualified_name": "keen::WhiteboxTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2799645548, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTagGroup", + "type_name_2": "LootTagGroup", + "qualified_name": "keen::LootTagGroup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1809281107, + "hash2": 2540684284, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootTag", + "type_name_2": "LootTag", + "qualified_name": "keen::LootTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3606234768, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollectionRootDirectory", + "type_name_2": "DefaultLootLabelCollectionRootDirectory", + "qualified_name": "keen::DefaultLootLabelCollectionRootDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 479567740, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollectionDirectory", + "type_name_2": "DefaultLootLabelCollectionDirectory", + "qualified_name": "keen::DefaultLootLabelCollectionDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2423695572, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollection", + "type_name_2": "DefaultLootLabelCollection", + "qualified_name": "keen::DefaultLootLabelCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2214506969, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomContextTag", + "type_name_2": "DungeonRoomContextTag", + "qualified_name": "keen::DungeonRoomContextTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 30093142, + "hash2": 287177585, + "struct_fields": [ + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomGroundContextTag", + "type_name_2": "DungeonRoomGroundContextTag", + "qualified_name": "keen::DungeonRoomGroundContextTag", + "referenced_type_name": "keen::DungeonRoomContextTag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 58622369, + "hash2": 3859565519, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomCeilingContextTag", + "type_name_2": "DungeonRoomCeilingContextTag", + "qualified_name": "keen::DungeonRoomCeilingContextTag", + "referenced_type_name": "keen::DungeonRoomContextTag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1069882067, + "hash2": 3859565519, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WhiteboxTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1188361337, + "hash2": 920679314, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagReference", + "type_name_2": "WhiteboxTagReference", + "qualified_name": "keen::WhiteboxTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2690847329, + "hash2": 901318171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WhiteboxTagGroup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 925972302, + "hash2": 3222625613, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagGroupReference", + "type_name_2": "WhiteboxTagGroupReference", + "qualified_name": "keen::WhiteboxTagGroupReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2764387404, + "hash2": 321133735, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInstance", + "type_name_2": "WhiteboxTagInstance", + "qualified_name": "keen::WhiteboxTagInstance", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1188951543, + "hash2": 2115312390, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::WhiteboxTagReference", + "type_hash": 2690847329, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::LootTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 760650181, + "hash2": 2461958292, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTagReference", + "type_name_2": "LootTagReference", + "qualified_name": "keen::LootTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3921690061, + "hash2": 312508852, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTagInstance", + "type_name_2": "LootTagInstance", + "qualified_name": "keen::LootTagInstance", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2537038699, + "hash2": 3549267788, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::LootTagReference", + "type_hash": 3921690061, + "data_offset": 0 + }, + { + "name": "itemLootWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInfo", + "type_name_2": "WhiteboxTagInfo", + "qualified_name": "keen::WhiteboxTagInfo", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3874441520, + "hash2": 505166370, + "struct_fields": [ + { + "name": "instance", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tag", + "type_name": "keen::WhiteboxTagReference", + "type_hash": 2690847329, + "data_offset": 16 + }, + { + "name": "group", + "type_name": "keen::WhiteboxTagGroupReference", + "type_hash": 2764387404, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInheritanceInfo", + "type_name_2": "WhiteboxTagInheritanceInfo", + "qualified_name": "keen::WhiteboxTagInheritanceInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3661210876, + "hash2": 555961806, + "struct_fields": [ + { + "name": "parentId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tagGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxTagInheritanceInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxTagInheritanceInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 422089175, + "hash2": 2604944165, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInheritanceList", + "type_name_2": "WhiteboxTagInheritanceList", + "qualified_name": "keen::WhiteboxTagInheritanceList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3924671144, + "hash2": 2520570829, + "struct_fields": [ + { + "name": "inheritedTags", + "type_name": "keen::BlobArray", + "type_hash": 422089175, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageType", + "type_name_2": "ImageType", + "qualified_name": "keen::ImageType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3437519347, + "hash2": 673311364, + "struct_fields": [], + "enum_fields": [ + { + "name": "_1d", + "value": 0 + }, + { + "name": "_2d", + "value": 1 + }, + { + "name": "_3d", + "value": 2 + } + ] + }, + { + "type_name_1": "ImageColorSpace", + "type_name_2": "ImageColorSpace", + "qualified_name": "keen::ImageColorSpace", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 899470052, + "hash2": 1006633632, + "struct_fields": [], + "enum_fields": [ + { + "name": "Linear", + "value": 0 + }, + { + "name": "sRGB", + "value": 1 + } + ] + }, + { + "type_name_1": "ImageContentType", + "type_name_2": "ImageContentType", + "qualified_name": "keen::ImageContentType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 11, + "primitive_type": "Enum", + "hash1": 3322375044, + "hash2": 1945525883, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unknown", + "value": 0 + }, + { + "name": "Albedo", + "value": 1 + }, + { + "name": "Normal", + "value": 2 + }, + { + "name": "Opacity", + "value": 3 + }, + { + "name": "Height", + "value": 4 + }, + { + "name": "Roughness", + "value": 5 + }, + { + "name": "Metallic", + "value": 6 + }, + { + "name": "Reflectance", + "value": 7 + }, + { + "name": "AmbientOcclusion", + "value": 8 + }, + { + "name": "Emissive", + "value": 9 + }, + { + "name": "UvDistortion", + "value": 10 + } + ] + }, + { + "type_name_1": "Image", + "type_name_2": "Image", + "qualified_name": "keen::Image", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1118350411, + "hash2": 3505396410, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ImageType", + "type_hash": 3437519347, + "data_offset": 0 + }, + { + "name": "slice", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 4 + }, + { + "name": "alphaChannel", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 12 + }, + { + "name": "colorSpace", + "type_name": "keen::ImageColorSpace", + "type_hash": 899470052, + "data_offset": 20 + }, + { + "name": "contentType", + "type_name": "keen::ImageContentType", + "type_hash": 3322375044, + "data_offset": 24 + }, + { + "name": "sizeDivider", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "slices", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "sliceRows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageInfo", + "type_name_2": "ImageInfo", + "qualified_name": "keen::ImageInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4181973679, + "hash2": 786267884, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "depth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkedImage", + "type_name_2": "ChunkedImage", + "qualified_name": "keen::ChunkedImage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3580922487, + "hash2": 1988945155, + "struct_fields": [ + { + "name": "tileSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "numTiles", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "dimension", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageColorRange", + "type_name_2": "ImageColorRange", + "qualified_name": "keen::ImageColorRange", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2264444247, + "hash2": 1464111587, + "struct_fields": [ + { + "name": "averageColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "minColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "maxColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageType", + "type_name_2": "ScatterImageType", + "qualified_name": "keen::ScatterImageType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 825496521, + "hash2": 4014042951, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Heightmap", + "value": 1 + } + ] + }, + { + "type_name_1": "ScatterImage", + "type_name_2": "ScatterImage", + "qualified_name": "keen::ScatterImage", + "referenced_type_name": "keen::AbstractScatterImage", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3312378017, + "hash2": 607188476, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ScatterImageType", + "type_hash": 825496521, + "data_offset": 0 + }, + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageMetaData", + "type_name_2": "ScatterImageMetaData", + "qualified_name": "keen::ScatterImageMetaData", + "referenced_type_name": "keen::ScatterImage", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2856630484, + "hash2": 4284723349, + "struct_fields": [ + { + "name": "chunkedImage", + "type_name": "keen::ChunkedImage", + "type_hash": 3580922487, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageAreaMetaData", + "type_name_2": "ScatterImageAreaMetaData", + "qualified_name": "keen::ScatterImageAreaMetaData", + "referenced_type_name": "keen::ScatterImageMetaData", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1625058509, + "hash2": 993210197, + "struct_fields": [ + { + "name": "tileRangeX", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 32 + }, + { + "name": "tileRangeY", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageLoadParameters", + "type_name_2": "ScatterImageLoadParameters", + "qualified_name": "keen::ScatterImageLoadParameters", + "referenced_type_name": "keen::ScatterImageAreaMetaData", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2264667873, + "hash2": 1230011598, + "struct_fields": [ + { + "name": "imageGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "channel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::NpcDialogDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 794352867, + "hash2": 4206289707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeDirectory", + "type_name_2": "GameKnowledgeDirectory", + "qualified_name": "keen::GameKnowledgeDirectory", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2993948827, + "hash2": 3702988772, + "struct_fields": [ + { + "name": "itemDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 3160244061, + "data_offset": 0 + }, + { + "name": "dialogDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 794352867, + "data_offset": 16 + }, + { + "name": "recipeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 4041607215, + "data_offset": 32 + }, + { + "name": "journalDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 2857881923, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeSubDirectory", + "type_name_2": "GameKnowledgeSubDirectory", + "qualified_name": "keen::GameKnowledgeSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2937071721, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeObjectBase", + "type_name_2": "GameKnowledgeObjectBase", + "qualified_name": "keen::GameKnowledgeObjectBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2831528338, + "hash2": 611177922, + "struct_fields": [ + { + "name": "sendToAnalytics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldKnowledgeObject", + "type_name_2": "WorldKnowledgeObject", + "qualified_name": "keen::WorldKnowledgeObject", + "referenced_type_name": "keen::GameKnowledgeObjectBase", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1176218541, + "hash2": 4281041663, + "struct_fields": [ + { + "name": "generateAdditionalPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerKnowledgeObject", + "type_name_2": "PlayerKnowledgeObject", + "qualified_name": "keen::PlayerKnowledgeObject", + "referenced_type_name": "keen::GameKnowledgeObjectBase", + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2236158546, + "hash2": 2452850645, + "struct_fields": [ + { + "name": "unlocksSkillPoints", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "unlockedSkillPoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "experienceGain", + "type_name": "keen::ObjectReference", + "type_hash": 3835756290, + "data_offset": 4 + }, + { + "name": "unlockAchievement", + "type_name": "keen::AchievementDataReference", + "type_hash": 406807362, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeRequirement", + "type_name_2": "SceneKnowledgeRequirement", + "qualified_name": "keen::SceneKnowledgeRequirement", + "referenced_type_name": "keen::GameKnowledgeRequirementBase", + "class_size": 120, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 54505829, + "hash2": 3739136633, + "struct_fields": [ + { + "name": "targetSubentity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeObjectInfo", + "type_name_2": "KnowledgeObjectInfo", + "qualified_name": "keen::KnowledgeObjectInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3278337601, + "hash2": 3922352348, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "generateAdditionalPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "sendToAnalytics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "unlockedSkillPoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 15 + }, + { + "name": "experienceGainId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "achievementId", + "type_name": "keen::AchievementId", + "type_hash": 2433048088, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "KnowledgeExperienceCount[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::KnowledgeExperienceCount", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2464252524, + "hash2": 4203400657, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeExperienceCountInfo", + "type_name_2": "KnowledgeExperienceCountInfo", + "qualified_name": "keen::KnowledgeExperienceCountInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3957439137, + "hash2": 3557732852, + "struct_fields": [ + { + "name": "experienceObjects", + "type_name": "keen::BlobArray", + "type_hash": 2464252524, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeExperienceCount", + "type_name_2": "KnowledgeExperienceCount", + "qualified_name": "keen::KnowledgeExperienceCount", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1403042521, + "hash2": 1177204947, + "struct_fields": [ + { + "name": "experienceObjectId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeObjectResource", + "type_name_2": "KnowledgeObjectResource", + "qualified_name": "keen::KnowledgeObjectResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 995177, + "hash2": 1672233257, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 0 + }, + { + "name": "sendToAnalytics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldKnowledgeObjectResource", + "type_name_2": "WorldKnowledgeObjectResource", + "qualified_name": "keen::WorldKnowledgeObjectResource", + "referenced_type_name": "keen::KnowledgeObjectResource", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2939879821, + "hash2": 3766962480, + "struct_fields": [ + { + "name": "hasOptionalPlayerProgression", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerKnowledgeObjectResource", + "type_name_2": "PlayerKnowledgeObjectResource", + "qualified_name": "keen::PlayerKnowledgeObjectResource", + "referenced_type_name": "keen::KnowledgeObjectResource", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2253916314, + "hash2": 3316817189, + "struct_fields": [ + { + "name": "unlockedSkillPoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "experienceGainId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "achievementId", + "type_name": "keen::AchievementId", + "type_hash": 2433048088, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WorldKnowledgeObjectResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WorldKnowledgeObjectResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1583381488, + "hash2": 3244897672, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PlayerKnowledgeObjectResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PlayerKnowledgeObjectResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3736313347, + "hash2": 3992760261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "KnowledgeId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::KnowledgeId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2753852168, + "hash2": 2807317834, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeResource", + "type_name_2": "GameKnowledgeResource", + "qualified_name": "keen::GameKnowledgeResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3158790428, + "hash2": 2756865542, + "struct_fields": [ + { + "name": "worldKnowledge", + "type_name": "keen::BlobArray", + "type_hash": 1583381488, + "data_offset": 0 + }, + { + "name": "playerKnowledge", + "type_name": "keen::BlobArray", + "type_hash": 3736313347, + "data_offset": 8 + }, + { + "name": "dialogKnowledgeIds", + "type_name": "keen::BlobArray", + "type_hash": 2753852168, + "data_offset": 16 + }, + { + "name": "itemKnowledgeIds", + "type_name": "keen::BlobArray", + "type_hash": 2753852168, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "KnowledgeObjectInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::KnowledgeObjectInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1497384326, + "hash2": 1824971737, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeDbInfo", + "type_name_2": "GameKnowledgeDbInfo", + "qualified_name": "keen::GameKnowledgeDbInfo", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2215490234, + "hash2": 4152336873, + "struct_fields": [ + { + "name": "worldKnowledgeObjects", + "type_name": "keen::BlobArray", + "type_hash": 1497384326, + "data_offset": 0 + }, + { + "name": "playerKnowledgeObjects", + "type_name": "keen::BlobArray", + "type_hash": 1497384326, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryDirectory", + "type_name_2": "KnowledgeQueryDirectory", + "qualified_name": "keen::KnowledgeQueryDirectory", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 676933269, + "hash2": 2765532257, + "struct_fields": [ + { + "name": "knowledgeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 2616529598, + "data_offset": 0 + }, + { + "name": "demoKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 1672737556, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQuerySubDirectory", + "type_name_2": "KnowledgeQuerySubDirectory", + "qualified_name": "keen::KnowledgeQuerySubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 927085639, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryOperator", + "type_name_2": "KnowledgeQueryOperator", + "qualified_name": "keen::KnowledgeQueryOperator", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3045911710, + "hash2": 740061878, + "struct_fields": [], + "enum_fields": [ + { + "name": "AND", + "value": 0 + }, + { + "name": "OR", + "value": 1 + }, + { + "name": "XOR", + "value": 2 + } + ] + }, + { + "type_name_1": "GameKnowledgeQuery", + "type_name_2": "GameKnowledgeQuery", + "qualified_name": "keen::GameKnowledgeQuery", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2163471068, + "hash2": 1815500149, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::KnowledgeQueryOperator", + "type_hash": 3045911710, + "data_offset": 0 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseKnowledgeQueryAction", + "type_name_2": "BaseKnowledgeQueryAction", + "qualified_name": "keen::BaseKnowledgeQueryAction", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2734062381, + "hash2": 287177585, + "struct_fields": [ + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryAction", + "type_name_2": "KnowledgeQueryAction", + "qualified_name": "keen::KnowledgeQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3627704164, + "hash2": 56156510, + "struct_fields": [ + { + "name": "usePlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "worldKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 1672737556, + "data_offset": 4 + }, + { + "name": "playerKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 3719821963, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeQueryAction", + "type_name_2": "ItemKnowledgeQueryAction", + "qualified_name": "keen::ItemKnowledgeQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4139227035, + "hash2": 1216206183, + "struct_fields": [ + { + "name": "itemKnowledge", + "type_name": "keen::ItemKnowledgeTrigger", + "type_hash": 416233877, + "data_offset": 1 + }, + { + "name": "worldItemKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DialogKnowledgeQueryAction", + "type_name_2": "DialogKnowledgeQueryAction", + "qualified_name": "keen::DialogKnowledgeQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3026823172, + "hash2": 3760493336, + "struct_fields": [ + { + "name": "dialogOption", + "type_name": "keen::ObjectReference", + "type_hash": 3565713274, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcQueryActionType", + "type_name_2": "NpcQueryActionType", + "qualified_name": "keen::NpcQueryActionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 90795749, + "hash2": 1179447416, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsSpawned", + "value": 0 + }, + { + "name": "CraftingPropPlaced", + "value": 1 + }, + { + "name": "IsSheltered", + "value": 2 + }, + { + "name": "SufficientComfortLevel", + "value": 3 + } + ] + }, + { + "type_name_1": "NpcQueryAction", + "type_name_2": "NpcQueryAction", + "qualified_name": "keen::NpcQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2586306253, + "hash2": 3629073404, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::NpcQueryActionType", + "type_hash": 90795749, + "data_offset": 1 + }, + { + "name": "npc", + "type_name": "keen::ObjectReference", + "type_hash": 2160258773, + "data_offset": 4 + }, + { + "name": "npcEntity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 20 + }, + { + "name": "requiredCraftingProp", + "type_name": "keen::ObjectReference", + "type_hash": 1206665003, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingQueryAction", + "type_name_2": "CraftingQueryAction", + "qualified_name": "keen::CraftingQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2097024198, + "hash2": 821054902, + "struct_fields": [ + { + "name": "recipe", + "type_name": "keen::ObjectReference", + "type_hash": 2306513255, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PredefinedKnowledgeQueryAction", + "type_name_2": "PredefinedKnowledgeQueryAction", + "qualified_name": "keen::PredefinedKnowledgeQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 3, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1429944178, + "hash2": 2397903471, + "struct_fields": [ + { + "name": "usePlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "knowledge", + "type_name": "keen::PredefinedKnowledgeTypes", + "type_hash": 40762613, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CompareOperator", + "type_name_2": "CompareOperator", + "qualified_name": "keen::CompareOperator", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4017630165, + "hash2": 3072109433, + "struct_fields": [], + "enum_fields": [ + { + "name": "GreaterThan", + "value": 0 + }, + { + "name": "LessThan", + "value": 1 + }, + { + "name": "Equals", + "value": 2 + } + ] + }, + { + "type_name_1": "FlameAltarCountQueryAction", + "type_name_2": "FlameAltarCountQueryAction", + "qualified_name": "keen::FlameAltarCountQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1593543916, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::CompareOperator", + "type_hash": 4017630165, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarLevelQueryAction", + "type_name_2": "FlameAltarLevelQueryAction", + "qualified_name": "keen::FlameAltarLevelQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2463115163, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::CompareOperator", + "type_hash": 4017630165, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MotherFlameLevelQueryAction", + "type_name_2": "MotherFlameLevelQueryAction", + "qualified_name": "keen::MotherFlameLevelQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2095981372, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::CompareOperator", + "type_hash": 4017630165, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerLevelQueryAction", + "type_name_2": "PlayerLevelQueryAction", + "qualified_name": "keen::PlayerLevelQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3837993519, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::CompareOperator", + "type_hash": 4017630165, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OtherQueryAction", + "type_name_2": "OtherQueryAction", + "qualified_name": "keen::OtherQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1711139818, + "hash2": 1814231287, + "struct_fields": [ + { + "name": "query", + "type_name": "keen::ObjectReference", + "type_hash": 665658595, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryQueryAction", + "type_name_2": "InventoryQueryAction", + "qualified_name": "keen::InventoryQueryAction", + "referenced_type_name": "keen::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3536566932, + "hash2": 3656496025, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3258808028, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryActionType", + "type_name_2": "KnowledgeQueryActionType", + "qualified_name": "keen::KnowledgeQueryActionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 916012620, + "hash2": 627926021, + "struct_fields": [], + "enum_fields": [ + { + "name": "Knowledge", + "value": 0 + }, + { + "name": "Query", + "value": 1 + }, + { + "name": "Inventory", + "value": 2 + }, + { + "name": "Npc", + "value": 3 + }, + { + "name": "FlameAltarCount", + "value": 4 + }, + { + "name": "FlameAltarLevel", + "value": 5 + }, + { + "name": "MotherFlameLevel", + "value": 6 + }, + { + "name": "PlayerLevel", + "value": 7 + } + ] + }, + { + "type_name_1": "KnowledgeQueryActionInfo", + "type_name_2": "KnowledgeQueryActionInfo", + "qualified_name": "keen::KnowledgeQueryActionInfo", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1934823064, + "hash2": 3652339472, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::KnowledgeQueryActionType", + "type_hash": 916012620, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "queryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 12 + }, + { + "name": "queryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "playerProgressionQueryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "invertResult", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "isPlayerAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryType", + "type_name_2": "KnowledgeQueryType", + "qualified_name": "keen::KnowledgeQueryType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 1593791886, + "hash2": 3917701859, + "struct_fields": [], + "enum_fields": [ + { + "name": "SimpleQuery", + "value": 0 + }, + { + "name": "ANDQuery", + "value": 1 + }, + { + "name": "ORQuery", + "value": 2 + }, + { + "name": "XORQuery", + "value": 3 + }, + { + "name": "InventoryQuery", + "value": 4 + }, + { + "name": "NpcQuery", + "value": 5 + }, + { + "name": "FlameAltarCountQuery", + "value": 6 + }, + { + "name": "FlameAltarLevelQuery", + "value": 7 + }, + { + "name": "MotherFlameLevelQuery", + "value": 8 + }, + { + "name": "PlayerLevelQuery", + "value": 9 + } + ] + }, + { + "type_name_1": "GameKnowledgeQueryResourceBase", + "type_name_2": "GameKnowledgeQueryResourceBase", + "qualified_name": "keen::GameKnowledgeQueryResourceBase", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3437413701, + "hash2": 975765913, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 8 + }, + { + "name": "queryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::KnowledgeQueryType", + "type_hash": 1593791886, + "data_offset": 16 + }, + { + "name": "isPlayerQuery", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "invertResult", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "KnowledgeQueryActionInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::KnowledgeQueryActionInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 136850771, + "hash2": 1357240019, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryResource", + "type_name_2": "GameKnowledgeQueryResource", + "qualified_name": "keen::GameKnowledgeQueryResource", + "referenced_type_name": "keen::GameKnowledgeQueryResourceBase", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3502093088, + "hash2": 2189583229, + "struct_fields": [ + { + "name": "hasOptionalPlayerProgression", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "actions", + "type_name": "keen::BlobArray", + "type_hash": 136850771, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameRuntimeQueryResource", + "type_name_2": "GameRuntimeQueryResource", + "qualified_name": "keen::GameRuntimeQueryResource", + "referenced_type_name": "keen::GameKnowledgeQueryResourceBase", + "class_size": 56, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2827143480, + "hash2": 4163702858, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 20 + }, + { + "name": "itemId", + "type_name": "keen::ItemId", + "type_hash": 1428289088, + "data_offset": 36 + }, + { + "name": "npcActionType", + "type_name": "keen::NpcQueryActionType", + "type_hash": 90795749, + "data_offset": 40 + }, + { + "name": "npcId", + "type_name": "keen::NpcId", + "type_hash": 1160524852, + "data_offset": 44 + }, + { + "name": "craftingProp", + "type_name": "keen::CraftingPropId", + "type_hash": 1996460724, + "data_offset": 48 + }, + { + "name": "compareOperation", + "type_name": "keen::CompareOperator", + "type_hash": 4017630165, + "data_offset": 52 + }, + { + "name": "compareValue", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 54 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GameKnowledgeQueryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GameKnowledgeQueryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1582170051, + "hash2": 2446283281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GameRuntimeQueryResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GameRuntimeQueryResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1617983439, + "hash2": 2128130348, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryResourceDb", + "type_name_2": "GameKnowledgeQueryResourceDb", + "qualified_name": "keen::GameKnowledgeQueryResourceDb", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3860047882, + "hash2": 757903564, + "struct_fields": [ + { + "name": "demoKnowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 0 + }, + { + "name": "playerQueryStartIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "runtimePlayerQueryStartIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "queries", + "type_name": "keen::BlobArray", + "type_hash": 1582170051, + "data_offset": 12 + }, + { + "name": "runtimeQueries", + "type_name": "keen::BlobArray", + "type_hash": 1617983439, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeKnowledgeType", + "type_name_2": "RecipeKnowledgeType", + "qualified_name": "keen::RecipeKnowledgeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3494728344, + "hash2": 229249035, + "struct_fields": [], + "enum_fields": [ + { + "name": "Inspect", + "value": 0 + }, + { + "name": "Craft", + "value": 1 + } + ] + }, + { + "type_name_1": "GameKnowledgeQueryTriggerSubDirectory", + "type_name_2": "GameKnowledgeQueryTriggerSubDirectory", + "qualified_name": "keen::GameKnowledgeQueryTriggerSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4042886913, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryTriggerDirectory", + "type_name_2": "GameKnowledgeQueryTriggerDirectory", + "qualified_name": "keen::GameKnowledgeQueryTriggerDirectory", + "referenced_type_name": "keen::GameKnowledgeQueryTriggerSubDirectory", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3899217923, + "hash2": 2368905675, + "struct_fields": [ + { + "name": "knowledgeQueries", + "type_name": "keen::ObjectReference", + "type_hash": 1237951914, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryTrigger", + "type_name_2": "GameKnowledgeQueryTrigger", + "qualified_name": "keen::GameKnowledgeQueryTrigger", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 542321248, + "hash2": 3907983911, + "struct_fields": [ + { + "name": "canUnlockKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "canRemoveKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "requirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 4 + }, + { + "name": "queryId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 108 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::BlobArray", + "type_hash": 2753852168, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GameKnowledgeQueryTrigger[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GameKnowledgeQueryTrigger", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 927976137, + "hash2": 710146, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryTriggerResource", + "type_name_2": "GameKnowledgeQueryTriggerResource", + "qualified_name": "keen::GameKnowledgeQueryTriggerResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2585851220, + "hash2": 1085487665, + "struct_fields": [ + { + "name": "worldQueries", + "type_name": "keen::BlobArray", + "type_hash": 927976137, + "data_offset": 0 + }, + { + "name": "playerQueries", + "type_name": "keen::BlobArray", + "type_hash": 927976137, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugKnowledgeQuerySource", + "type_name_2": "DebugKnowledgeQuerySource", + "qualified_name": "keen::DebugKnowledgeQuerySource", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 654272568, + "hash2": 4274315151, + "struct_fields": [], + "enum_fields": [ + { + "name": "Server", + "value": 0 + }, + { + "name": "Client", + "value": 1 + } + ] + }, + { + "type_name_1": "DebugServerKnowledgeMessage", + "type_name_2": "DebugServerKnowledgeMessage", + "qualified_name": "keen::DebugServerKnowledgeMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3713823113, + "hash2": 2206582563, + "struct_fields": [ + { + "name": "changeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "playerIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "unlockedKnowledge", + "type_name": "keen::BlobArray", + "type_hash": 2753852168, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugResetKnowledgeMessage", + "type_name_2": "DebugResetKnowledgeMessage", + "qualified_name": "keen::DebugResetKnowledgeMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2320467887, + "hash2": 2058238552, + "struct_fields": [ + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugUnlockFullKnowledgeMessage", + "type_name_2": "DebugUnlockFullKnowledgeMessage", + "qualified_name": "keen::DebugUnlockFullKnowledgeMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1061429067, + "hash2": 1254973064, + "struct_fields": [ + { + "name": "unlockPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugToggleKnowledgeMessage", + "type_name_2": "DebugToggleKnowledgeMessage", + "qualified_name": "keen::DebugToggleKnowledgeMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 656913534, + "hash2": 1456204857, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 0 + }, + { + "name": "resultState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "playerIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugKnowledgeQueryResultType", + "type_name_2": "DebugKnowledgeQueryResultType", + "qualified_name": "keen::DebugKnowledgeQueryResultType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1875968428, + "hash2": 1459613348, + "struct_fields": [], + "enum_fields": [ + { + "name": "World", + "value": 0 + }, + { + "name": "Player", + "value": 1 + }, + { + "name": "RuntimeWorld", + "value": 2 + }, + { + "name": "RuntimePlayer", + "value": 3 + } + ] + }, + { + "type_name_1": "DebugKnowledgeQueryResult", + "type_name_2": "DebugKnowledgeQueryResult", + "qualified_name": "keen::DebugKnowledgeQueryResult", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1484329348, + "hash2": 2634334552, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::DebugKnowledgeQueryResultType", + "type_hash": 1875968428, + "data_offset": 0 + }, + { + "name": "queryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "isPending", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "isPendingPersonal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "result", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "resultPersonal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeOverride", + "type_name_2": "SceneKnowledgeOverride", + "qualified_name": "keen::SceneKnowledgeOverride", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2857186042, + "hash2": 3032261636, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeTriggerOverride", + "type_name_2": "SceneKnowledgeTriggerOverride", + "qualified_name": "keen::SceneKnowledgeTriggerOverride", + "referenced_type_name": "keen::SceneKnowledgeOverride", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1458711002, + "hash2": 1492454079, + "struct_fields": [ + { + "name": "knowledgeTrigger", + "type_name": "keen::GameKnowledgeTrigger", + "type_hash": 73380980, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeRequirementOverride", + "type_name_2": "SceneKnowledgeRequirementOverride", + "qualified_name": "keen::SceneKnowledgeRequirementOverride", + "referenced_type_name": "keen::SceneKnowledgeOverride", + "class_size": 120, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1929076669, + "hash2": 2063430908, + "struct_fields": [ + { + "name": "knowledgeRequirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeMapMarkerOverride", + "type_name_2": "SceneKnowledgeMapMarkerOverride", + "qualified_name": "keen::SceneKnowledgeMapMarkerOverride", + "referenced_type_name": "keen::SceneKnowledgeOverride", + "class_size": 332, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1224948406, + "hash2": 1085397683, + "struct_fields": [ + { + "name": "hintState", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 16 + }, + { + "name": "visibleState", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 120 + }, + { + "name": "hasCompletedState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 224 + }, + { + "name": "completedState", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 228 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeOverrideType", + "type_name_2": "SceneKnowledgeOverrideType", + "qualified_name": "keen::SceneKnowledgeOverrideType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 106156698, + "hash2": 1812516949, + "struct_fields": [], + "enum_fields": [ + { + "name": "KnowledgeTrigger", + "value": 0 + }, + { + "name": "KnowledgeQuery", + "value": 1 + }, + { + "name": "MapMarker", + "value": 2 + } + ] + }, + { + "type_name_1": "SceneKnowledgeOverrideInfo", + "type_name_2": "SceneKnowledgeOverrideInfo", + "qualified_name": "keen::SceneKnowledgeOverrideInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 717745250, + "hash2": 2168754359, + "struct_fields": [ + { + "name": "entityTemplateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::SceneKnowledgeOverrideType", + "type_hash": 106156698, + "data_offset": 16 + }, + { + "name": "knowledgeId", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 20 + }, + { + "name": "knowledgeId2", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 24 + }, + { + "name": "knowledgeId3", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneKnowledgeOverrideInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneKnowledgeOverrideInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 164051677, + "hash2": 3145600524, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeOverrides", + "type_name_2": "SceneKnowledgeOverrides", + "qualified_name": "keen::SceneKnowledgeOverrides", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2693172651, + "hash2": 3854878335, + "struct_fields": [ + { + "name": "knowledgeOverrides", + "type_name": "keen::BlobArray", + "type_hash": 164051677, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DebugKnowledgeQueryResult[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DebugKnowledgeQueryResult", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 75368397, + "hash2": 244728134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugKnowledgeQueryResults", + "type_name_2": "DebugKnowledgeQueryResults", + "qualified_name": "keen::DebugKnowledgeQueryResults", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1033324501, + "hash2": 1161371961, + "struct_fields": [ + { + "name": "results", + "type_name": "keen::BlobArray", + "type_hash": 75368397, + "data_offset": 0 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagGroup", + "type_name_2": "LocaTagGroup", + "qualified_name": "keen::LocaTagGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4059996296, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask64", + "type_name_2": "Bitmask64", + "qualified_name": "keen::Bitmask64", + "referenced_type_name": "keen::LanguageId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Bitmask64", + "hash1": 3329653081, + "hash2": 1918415945, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaLanguages", + "type_name_2": "LocaLanguages", + "qualified_name": "keen::LocaLanguages", + "referenced_type_name": "keen::Bitmask64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1531992066, + "hash2": 1930898820, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::LocaCrowdinProject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1743331511, + "hash2": 1246932237, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaCrowdinProjectReference", + "type_name_2": "LocaCrowdinProjectReference", + "qualified_name": "keen::LocaCrowdinProjectReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3066683489, + "hash2": 2592860433, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaCrowdinProject", + "type_name_2": "LocaCrowdinProject", + "qualified_name": "keen::LocaCrowdinProject", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3076566380, + "hash2": 734542729, + "struct_fields": [ + { + "name": "inputLanguage", + "type_name": "keen::LanguageId", + "type_hash": 1258678121, + "data_offset": 0 + }, + { + "name": "inputProject", + "type_name": "keen::LocaCrowdinProjectReference", + "type_hash": 3066683489, + "data_offset": 4 + }, + { + "name": "outputLanguages", + "type_name": "keen::LocaLanguages", + "type_hash": 1531992066, + "data_offset": 24 + }, + { + "name": "projectId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 32 + }, + { + "name": "fileId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "onlyApproved", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "crowdinCSV", + "type_name": "keen::SourceFileReference", + "type_hash": 3396304986, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollection", + "type_name_2": "LocaTagCollection", + "qualified_name": "keen::LocaTagCollection", + "referenced_type_name": "keen::LocaTagGroup", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 559399461, + "hash2": 530175217, + "struct_fields": [ + { + "name": "crowdinWritingProject", + "type_name": "keen::LocaCrowdinProjectReference", + "type_hash": 3066683489, + "data_offset": 0 + }, + { + "name": "crowdinTranslationProject", + "type_name": "keen::LocaCrowdinProjectReference", + "type_hash": 3066683489, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollectionResourceLanguage", + "type_name_2": "LocaTagCollectionResourceLanguage", + "qualified_name": "keen::LocaTagCollectionResourceLanguage", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 499472107, + "hash2": 1094727927, + "struct_fields": [ + { + "name": "language", + "type_name": "keen::LanguageId", + "type_hash": 1258678121, + "data_offset": 0 + }, + { + "name": "dataHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LocaTagCollectionResourceLanguage[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LocaTagCollectionResourceLanguage", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3440686656, + "hash2": 2529731927, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollectionResource", + "type_name_2": "LocaTagCollectionResource", + "qualified_name": "keen::LocaTagCollectionResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1058275125, + "hash2": 493052310, + "struct_fields": [ + { + "name": "keenglishDataHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "languages", + "type_name": "keen::BlobArray", + "type_hash": 3440686656, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaArgumentType", + "type_name_2": "LocaArgumentType", + "qualified_name": "keen::LocaArgumentType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3338057400, + "hash2": 3135067420, + "struct_fields": [], + "enum_fields": [ + { + "name": "Generic", + "value": 0 + }, + { + "name": "Input", + "value": 1 + }, + { + "name": "Config", + "value": 2 + }, + { + "name": "Balancing", + "value": 3 + } + ] + }, + { + "type_name_1": "LocaTagArgument", + "type_name_2": "LocaTagArgument", + "qualified_name": "keen::LocaTagArgument", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1612098434, + "hash2": 1688822796, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::LocaArgumentType", + "type_hash": 3338057400, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LocaTagArgument[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LocaTagArgument", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2526710431, + "hash2": 83942680, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagResource", + "type_name_2": "LocaTagResource", + "qualified_name": "keen::LocaTagResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2299008561, + "hash2": 264892725, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "arguments", + "type_name": "keen::BlobArray", + "type_hash": 2526710431, + "data_offset": 12 + }, + { + "name": "genericArguments", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "LocaTagResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::LocaTagResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3285411226, + "hash2": 982242931, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollectionResourceData", + "type_name_2": "LocaTagCollectionResourceData", + "qualified_name": "keen::LocaTagCollectionResourceData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1738569941, + "hash2": 2905663487, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 3285411226, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AxisAlignedDirection", + "type_name_2": "AxisAlignedDirection", + "qualified_name": "keen::AxisAlignedDirection", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 1332265686, + "hash2": 3169790153, + "struct_fields": [], + "enum_fields": [ + { + "name": "AxisAlignedDirection_NegX", + "value": 0 + }, + { + "name": "AxisAlignedDirection_PosX", + "value": 1 + }, + { + "name": "AxisAlignedDirection_NegY", + "value": 2 + }, + { + "name": "AxisAlignedDirection_PosY", + "value": 3 + }, + { + "name": "AxisAlignedDirection_NegZ", + "value": 4 + }, + { + "name": "AxisAlignedDirection_PosZ", + "value": 5 + }, + { + "name": "AxisAlignedDirection_Count", + "value": 6 + } + ] + }, + { + "type_name_1": "BSpline", + "type_name_2": "BSpline", + "qualified_name": "keen::BSpline", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 155402133, + "hash2": 716427601, + "struct_fields": [ + { + "name": "controlPoints", + "type_name": "keen::BlobArray", + "type_hash": 2134130439, + "data_offset": 0 + }, + { + "name": "closed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Vector4", + "type_name_2": "Vector4", + "qualified_name": "keen::Vector4", + "referenced_type_name": "keen::float4", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1618255355, + "hash2": 1249438544, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Matrix44", + "type_name_2": "Matrix44", + "qualified_name": "keen::Matrix44", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1173604211, + "hash2": 91689462, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::Vector4", + "type_hash": 1618255355, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::Vector4", + "type_hash": 1618255355, + "data_offset": 16 + }, + { + "name": "z", + "type_name": "keen::Vector4", + "type_hash": 1618255355, + "data_offset": 32 + }, + { + "name": "w", + "type_name": "keen::Vector4", + "type_hash": 1618255355, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Sphere", + "type_name_2": "Sphere", + "qualified_name": "keen::Sphere", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 934771011, + "hash2": 4020592261, + "struct_fields": [ + { + "name": "center", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint8[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint8", + "class_size": 32, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 783834273, + "hash2": 2552919465, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MemorySystemInformationBlock", + "type_name_2": "MemorySystemInformationBlock", + "qualified_name": "keen::MemorySystemInformationBlock", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 635896619, + "hash2": 186000622, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::StaticArray", + "type_hash": 783834273, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "type", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MemorySystemInformationBlock[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::MemorySystemInformationBlock", + "class_size": 1280, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 3523613176, + "hash2": 2101393573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MemorySystemInformation", + "type_name_2": "MemorySystemInformation", + "qualified_name": "keen::MemorySystemInformation", + "referenced_type_name": null, + "class_size": 1312, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 490971886, + "hash2": 169274724, + "struct_fields": [ + { + "name": "totalSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "allocatedSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "freeSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + }, + { + "name": "memoryBlocks", + "type_name": "keen::StaticArray", + "type_hash": 3523613176, + "data_offset": 24 + }, + { + "name": "memoryBlockCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Midi", + "type_name_2": "Midi", + "qualified_name": "keen::Midi", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3745100599, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiInstrumentSampleType", + "type_name_2": "MidiInstrumentSampleType", + "qualified_name": "keen::MidiInstrumentSampleType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 3798763768, + "hash2": 2429698515, + "struct_fields": [], + "enum_fields": [ + { + "name": "Lute", + "value": 0 + }, + { + "name": "LuteChord", + "value": 1 + }, + { + "name": "Flute", + "value": 2 + }, + { + "name": "Harp", + "value": 3 + }, + { + "name": "DounDoun", + "value": 4 + }, + { + "name": "Tambourin", + "value": 5 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SamplerInstrument", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2698566592, + "hash2": 1832388777, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSampleCollection", + "type_name_2": "InstrumentSampleCollection", + "qualified_name": "keen::InstrumentSampleCollection", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3297226737, + "hash2": 851183956, + "struct_fields": [ + { + "name": "samplesLute", + "type_name": "keen::ObjectReference", + "type_hash": 2698566592, + "data_offset": 0 + }, + { + "name": "samplesLuteChord", + "type_name": "keen::ObjectReference", + "type_hash": 2698566592, + "data_offset": 16 + }, + { + "name": "samplesFlute", + "type_name": "keen::ObjectReference", + "type_hash": 2698566592, + "data_offset": 32 + }, + { + "name": "samplesHarp", + "type_name": "keen::ObjectReference", + "type_hash": 2698566592, + "data_offset": 48 + }, + { + "name": "samplesDounDoun", + "type_name": "keen::ObjectReference", + "type_hash": 2698566592, + "data_offset": 64 + }, + { + "name": "samplesTambourin", + "type_name": "keen::ObjectReference", + "type_hash": 2698566592, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSample", + "type_name_2": "InstrumentSample", + "qualified_name": "keen::InstrumentSample", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3297901829, + "hash2": 552335768, + "struct_fields": [ + { + "name": "isPitched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "baseNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "fineTune", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrument", + "type_name_2": "SamplerInstrument", + "qualified_name": "keen::SamplerInstrument", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4277987931, + "hash2": 849227500, + "struct_fields": [ + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "releaseTime", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "isMonophone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "instrument", + "type_name": "keen::MidiInstrumentSampleType", + "type_hash": 3798763768, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::InstrumentSample", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1409810344, + "hash2": 1967257896, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrumentLayer", + "type_name_2": "SamplerInstrumentLayer", + "qualified_name": "keen::SamplerInstrumentLayer", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 988664244, + "hash2": 3466291856, + "struct_fields": [ + { + "name": "sample", + "type_name": "keen::ObjectReference", + "type_hash": 1409810344, + "data_offset": 0 + }, + { + "name": "minNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "maxNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + }, + { + "name": "minVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 18 + }, + { + "name": "maxVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 19 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "sint16[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::sint16", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1829279890, + "hash2": 162076003, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSampleData", + "type_name_2": "InstrumentSampleData", + "qualified_name": "keen::InstrumentSampleData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 529586949, + "hash2": 1862562434, + "struct_fields": [ + { + "name": "isPitched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "tuning", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "samples", + "type_name": "keen::BlobArray", + "type_hash": 1829279890, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrumentResourceSample", + "type_name_2": "SamplerInstrumentResourceSample", + "qualified_name": "keen::SamplerInstrumentResourceSample", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1261629957, + "hash2": 4158634026, + "struct_fields": [ + { + "name": "isPitched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "tuning", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "maxNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "minVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 10 + }, + { + "name": "maxVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 11 + }, + { + "name": "sampleOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "sampleLength", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SamplerInstrumentResourceSample[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SamplerInstrumentResourceSample", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3061216618, + "hash2": 3043294192, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrumentResource", + "type_name_2": "SamplerInstrumentResource", + "qualified_name": "keen::SamplerInstrumentResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3609986743, + "hash2": 3243233849, + "struct_fields": [ + { + "name": "volume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "releaseTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "isMonophone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "samples", + "type_name": "keen::BlobArray", + "type_hash": 3061216618, + "data_offset": 12 + }, + { + "name": "sampleData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 20 + }, + { + "name": "instrument", + "type_name": "keen::MidiInstrumentSampleType", + "type_hash": 3798763768, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiEvent", + "type_name_2": "MidiEvent", + "qualified_name": "keen::MidiEvent", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3232058517, + "hash2": 4115346885, + "struct_fields": [ + { + "name": "timestamp", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "eventType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "subType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 5 + }, + { + "name": "param1", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 6 + }, + { + "name": "param2", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiTrackRole", + "type_name_2": "MidiTrackRole", + "qualified_name": "keen::MidiTrackRole", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3912974574, + "hash2": 2942787558, + "struct_fields": [], + "enum_fields": [ + { + "name": "Lead", + "value": 0 + }, + { + "name": "Chord", + "value": 1 + }, + { + "name": "Back", + "value": 2 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "MidiEvent[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::MidiEvent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2402830726, + "hash2": 3026730965, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiTrack", + "type_name_2": "MidiTrack", + "qualified_name": "keen::MidiTrack", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 559833126, + "hash2": 2502001144, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "instrumentName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 8 + }, + { + "name": "instrument", + "type_name": "keen::MidiInstrumentSampleType", + "type_hash": 3798763768, + "data_offset": 16 + }, + { + "name": "role", + "type_name": "keen::MidiTrackRole", + "type_hash": 3912974574, + "data_offset": 17 + }, + { + "name": "events", + "type_name": "keen::BlobArray", + "type_hash": 2402830726, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiTimeSignature", + "type_name_2": "MidiTimeSignature", + "qualified_name": "keen::MidiTimeSignature", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4113377196, + "hash2": 262207653, + "struct_fields": [ + { + "name": "numerator", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "denominator", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "amountOf32NotesInQN", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "metronomeTicksPQN", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "MidiTrack[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::MidiTrack", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1105444511, + "hash2": 22685735, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiResource", + "type_name_2": "MidiResource", + "qualified_name": "keen::MidiResource", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3821060259, + "hash2": 3080822630, + "struct_fields": [ + { + "name": "timeSignature", + "type_name": "keen::MidiTimeSignature", + "type_hash": 4113377196, + "data_offset": 0 + }, + { + "name": "pulsesPQN", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "isSMPTE", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "tracks", + "type_name": "keen::BlobArray", + "type_hash": 1105444511, + "data_offset": 8 + }, + { + "name": "songDurationMS", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MidiResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 767365238, + "hash2": 2447385952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiResourceReference", + "type_name_2": "MidiResourceReference", + "qualified_name": "keen::MidiResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3260113544, + "hash2": 2767048522, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NotifierContainer", + "type_name_2": "NotifierContainer", + "qualified_name": "keen::NotifierContainer", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1048737191, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterUtterance", + "type_name_2": "CharacterUtterance", + "qualified_name": "keen::CharacterUtterance", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 13, + "primitive_type": "Enum", + "hash1": 776681068, + "hash2": 3664339861, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Attack_Long", + "value": 1 + }, + { + "name": "Attack_Short", + "value": 2 + }, + { + "name": "Attack_Finisher", + "value": 3 + }, + { + "name": "Attack_Chain_Finisher", + "value": 4 + }, + { + "name": "Attack_Roll_Finisher", + "value": 5 + }, + { + "name": "Die", + "value": 6 + }, + { + "name": "Hit", + "value": 7 + }, + { + "name": "Jump", + "value": 8 + }, + { + "name": "Exhausted", + "value": 9 + }, + { + "name": "StaminaDrain", + "value": 10 + }, + { + "name": "Customization", + "value": 11 + }, + { + "name": "Count", + "value": 11 + } + ] + }, + { + "type_name_1": "VoicePack", + "type_name_2": "VoicePack", + "qualified_name": "keen::VoicePack", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 390858761, + "hash2": 1436098609, + "struct_fields": [ + { + "name": "attackShort", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 0 + }, + { + "name": "attackLong", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "attackFinisher", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 32 + }, + { + "name": "attackChainFinisherLong", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 48 + }, + { + "name": "attackRollFinisher", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "die", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "hit", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 96 + }, + { + "name": "jump", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 112 + }, + { + "name": "exhausted", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 128 + }, + { + "name": "staminaDrain", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + }, + { + "name": "customization", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SoundContainerReference[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::SoundContainerReference", + "class_size": 176, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 2750295767, + "hash2": 697699662, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackResource", + "type_name_2": "VoicePackResource", + "qualified_name": "keen::VoicePackResource", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3700412153, + "hash2": 2953858378, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::StaticArray", + "type_hash": 2750295767, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoicePackResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3650565270, + "hash2": 1034961480, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackResourceReference", + "type_name_2": "VoicePackResourceReference", + "qualified_name": "keen::VoicePackResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2184001750, + "hash2": 2506312084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackSubDirectory", + "type_name_2": "VoicePackSubDirectory", + "qualified_name": "keen::VoicePackSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1671683988, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackDirectory", + "type_name_2": "VoicePackDirectory", + "qualified_name": "keen::VoicePackDirectory", + "referenced_type_name": "keen::VoicePackSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1503551460, + "hash2": 2821595519, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoicePackResourceReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoicePackResourceReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1704338385, + "hash2": 2876733944, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackDirectoryResource", + "type_name_2": "VoicePackDirectoryResource", + "qualified_name": "keen::VoicePackDirectoryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1745806008, + "hash2": 1062260745, + "struct_fields": [ + { + "name": "voicePacks", + "type_name": "keen::BlobArray", + "type_hash": 1704338385, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Notifier", + "type_name_2": "Notifier", + "qualified_name": "keen::Notifier", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2154775040, + "hash2": 2450118907, + "struct_fields": [ + { + "name": "defaultVfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + }, + { + "name": "defaultSound", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 16 + }, + { + "name": "playerVoice", + "type_name": "keen::CharacterUtterance", + "type_hash": 776681068, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierResource", + "type_name_2": "NotifierResource", + "qualified_name": "keen::NotifierResource", + "referenced_type_name": null, + "class_size": 100, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2295772468, + "hash2": 3254009847, + "struct_fields": [ + { + "name": "defaultVfx", + "type_name": "keen::ObjectReference", + "type_hash": 728052363, + "data_offset": 0 + }, + { + "name": "defaultVfxInitParameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 16 + }, + { + "name": "defaultSound", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 80 + }, + { + "name": "playerVoice", + "type_name": "keen::CharacterUtterance", + "type_hash": 776681068, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierEventBase", + "type_name_2": "NotifierEventBase", + "qualified_name": "keen::NotifierEventBase", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 144, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3721437517, + "hash2": 61156870, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 96 + }, + { + "name": "notifierOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 100 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + }, + { + "name": "cancelFromActorSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 141 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FootId", + "type_name_2": "FootId", + "qualified_name": "keen::FootId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1746420987, + "hash2": 3576280598, + "struct_fields": [], + "enum_fields": [ + { + "name": "Left", + "value": 0 + }, + { + "name": "Right", + "value": 1 + } + ] + }, + { + "type_name_1": "FootPassingEvent", + "type_name_2": "FootPassingEvent", + "qualified_name": "keen::FootPassingEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3692130107, + "hash2": 721838660, + "struct_fields": [ + { + "name": "foot", + "type_name": "keen::FootId", + "type_hash": 1746420987, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierEvent", + "type_name_2": "NotifierEvent", + "qualified_name": "keen::NotifierEvent", + "referenced_type_name": "keen::NotifierEventBase", + "class_size": 160, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2630788008, + "hash2": 1513332656, + "struct_fields": [ + { + "name": "notifier", + "type_name": "keen::NotifierReference", + "type_hash": 1933263901, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxNotifierEvent", + "type_name_2": "VfxNotifierEvent", + "qualified_name": "keen::VfxNotifierEvent", + "referenced_type_name": "keen::NotifierEventBase", + "class_size": 224, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 149312496, + "hash2": 4273962850, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 144 + }, + { + "name": "vfxParameters", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SfxNotifierEvent", + "type_name_2": "SfxNotifierEvent", + "qualified_name": "keen::SfxNotifierEvent", + "referenced_type_name": "keen::NotifierEventBase", + "class_size": 168, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 812497013, + "hash2": 4187983737, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 144 + }, + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectNotifierEvent", + "type_name_2": "EnvironmentEffectNotifierEvent", + "qualified_name": "keen::EnvironmentEffectNotifierEvent", + "referenced_type_name": "keen::NotifierEventBase", + "class_size": 176, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3669868904, + "hash2": 1559133610, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 144 + }, + { + "name": "environmentEffectType", + "type_name": "keen::EnvironmentEffectType", + "type_hash": 3366326038, + "data_offset": 160 + }, + { + "name": "rayOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoleyEffectNotifierEvent", + "type_name_2": "FoleyEffectNotifierEvent", + "qualified_name": "keen::FoleyEffectNotifierEvent", + "referenced_type_name": "keen::NotifierEventBase", + "class_size": 168, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1495954134, + "hash2": 953622441, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 144 + }, + { + "name": "foleyType", + "type_name": "keen::FoleyType", + "type_hash": 2294451513, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothSimulationEventModel", + "type_name_2": "ClothSimulationEventModel", + "qualified_name": "keen::ClothSimulationEventModel", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1894095224, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothSimulationEvent", + "type_name_2": "ClothSimulationEvent", + "qualified_name": "keen::ClothSimulationEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 160, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 718969787, + "hash2": 2239233833, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 96 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "solverFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 132 + }, + { + "name": "motionConstraintsMaxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 136 + }, + { + "name": "motionConstraintsUnlimitedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 140 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 144 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 148 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothSimulationResetVelocityEvent", + "type_name_2": "ClothSimulationResetVelocityEvent", + "qualified_name": "keen::ClothSimulationResetVelocityEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3200394277, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ChainSimulationEvent", + "type_name_2": "ChainSimulationEvent", + "qualified_name": "keen::ChainSimulationEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 136, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 497393064, + "hash2": 2921946040, + "struct_fields": [ + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "motionConstraintRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuArchitecure", + "type_name_2": "CpuArchitecure", + "qualified_name": "keen::CpuArchitecure", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2266945261, + "hash2": 3381038252, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unknown", + "value": 0 + }, + { + "name": "X86", + "value": 1 + }, + { + "name": "X64", + "value": 2 + }, + { + "name": "Arm7", + "value": 3 + }, + { + "name": "Count", + "value": 4 + } + ] + }, + { + "type_name_1": "CpuSystemInformation", + "type_name_2": "CpuSystemInformation", + "qualified_name": "keen::CpuSystemInformation", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2032731481, + "hash2": 3407346002, + "struct_fields": [ + { + "name": "architecture", + "type_name": "keen::CpuArchitecure", + "type_hash": 2266945261, + "data_offset": 0 + }, + { + "name": "bitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "cpuCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "threadCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "vendorId", + "type_name": "keen::StaticArray", + "type_hash": 1438933023, + "data_offset": 16 + }, + { + "name": "brand", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 32 + }, + { + "name": "hasSSE2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "hasSSE42", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + }, + { + "name": "hasAVX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 98 + }, + { + "name": "hasAVX2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 99 + }, + { + "name": "hasNeon", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DeviceId", + "type_name_2": "DeviceId", + "qualified_name": "keen::DeviceId", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 58, + "primitive_type": "Enum", + "hash1": 2315096869, + "hash2": 3038192842, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unknown", + "value": 0 + }, + { + "name": "iPhone_1G", + "value": 1 + }, + { + "name": "iPhone_3G", + "value": 2 + }, + { + "name": "iPhone_3GS", + "value": 3 + }, + { + "name": "iPhone_4", + "value": 4 + }, + { + "name": "iPhone_4S", + "value": 5 + }, + { + "name": "iPhone_5", + "value": 6 + }, + { + "name": "iPhone_5C", + "value": 7 + }, + { + "name": "iPhone_5S", + "value": 8 + }, + { + "name": "iPhone_6", + "value": 9 + }, + { + "name": "iPhone_6_Plus", + "value": 10 + }, + { + "name": "iPhone_6S", + "value": 11 + }, + { + "name": "iPhone_6S_Plus", + "value": 12 + }, + { + "name": "iPhone_SE", + "value": 13 + }, + { + "name": "iPhone_7", + "value": 14 + }, + { + "name": "iPhone_7_Plus", + "value": 15 + }, + { + "name": "iPhone_8", + "value": 16 + }, + { + "name": "iPhone_8_Plus", + "value": 17 + }, + { + "name": "iPhone_X", + "value": 18 + }, + { + "name": "iPhone_XR", + "value": 19 + }, + { + "name": "iPhone_XS", + "value": 20 + }, + { + "name": "iPhone_XS_Max", + "value": 21 + }, + { + "name": "iPod_Touch_1G", + "value": 22 + }, + { + "name": "iPod_Touch_2G", + "value": 23 + }, + { + "name": "iPod_Touch_3G", + "value": 24 + }, + { + "name": "iPod_Touch_4G", + "value": 25 + }, + { + "name": "iPod_Touch_5G", + "value": 26 + }, + { + "name": "iPod_Touch_6G", + "value": 27 + }, + { + "name": "iPad", + "value": 28 + }, + { + "name": "iPad_2", + "value": 29 + }, + { + "name": "iPad_3", + "value": 30 + }, + { + "name": "iPad_4", + "value": 31 + }, + { + "name": "iPad_Air", + "value": 32 + }, + { + "name": "iPad_Air_2", + "value": 33 + }, + { + "name": "iPad_Mini", + "value": 34 + }, + { + "name": "iPad_Mini_2G", + "value": 35 + }, + { + "name": "iPad_Mini_3", + "value": 36 + }, + { + "name": "iPad_Mini_4", + "value": 37 + }, + { + "name": "iPad_Pro", + "value": 38 + }, + { + "name": "iPad_Pro_LTE", + "value": 39 + }, + { + "name": "iPad_Pro_9_7", + "value": 40 + }, + { + "name": "iPad_Pro_9_7_LTE", + "value": 41 + }, + { + "name": "iPad_5thGen", + "value": 42 + }, + { + "name": "iPad_5thGen_LTE", + "value": 43 + }, + { + "name": "iPad_6thGen", + "value": 44 + }, + { + "name": "iPad_6thGen_LTE", + "value": 45 + }, + { + "name": "iPad_Pro_12_9_2ndGen", + "value": 46 + }, + { + "name": "iPad_Pro_12_9_2ndGen_LTE", + "value": 47 + }, + { + "name": "iPad_Pro_10_5", + "value": 48 + }, + { + "name": "iPad_Pro_10_5_LTE", + "value": 49 + }, + { + "name": "iPad_Pro_11_0", + "value": 50 + }, + { + "name": "iPad_Pro_12_9_3rdGen", + "value": 51 + }, + { + "name": "Apple_TV_2G", + "value": 52 + }, + { + "name": "Apple_TV_3", + "value": 53 + }, + { + "name": "Apple_TV_4", + "value": 54 + }, + { + "name": "Apple_TV_4k", + "value": 55 + }, + { + "name": "Simulator", + "value": 56 + }, + { + "name": "Count", + "value": 57 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint8[18]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint8", + "class_size": 18, + "fields_count": 18, + "primitive_type": "StaticArray", + "hash1": 1438638833, + "hash2": 2973750829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DeviceSystemInformation", + "type_name_2": "DeviceSystemInformation", + "qualified_name": "keen::DeviceSystemInformation", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1493844697, + "hash2": 175279193, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::DeviceId", + "type_hash": 2315096869, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 4 + }, + { + "name": "name", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 68 + }, + { + "name": "macAddress", + "type_name": "keen::StaticArray", + "type_hash": 1438638833, + "data_offset": 132 + }, + { + "name": "isRooted", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 150 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OperatingSystemType", + "type_name_2": "OperatingSystemType", + "qualified_name": "keen::OperatingSystemType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 559981632, + "hash2": 1119256463, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unknown", + "value": 0 + }, + { + "name": "Windows", + "value": 1 + }, + { + "name": "Linux", + "value": 2 + }, + { + "name": "Android", + "value": 3 + }, + { + "name": "Ios", + "value": 4 + }, + { + "name": "Playstation4", + "value": 5 + }, + { + "name": "XboxOne", + "value": 6 + }, + { + "name": "Count", + "value": 7 + } + ] + }, + { + "type_name_1": "OsSystemInformation", + "type_name_2": "OsSystemInformation", + "qualified_name": "keen::OsSystemInformation", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2790877417, + "hash2": 1294207430, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::OperatingSystemType", + "type_hash": 559981632, + "data_offset": 0 + }, + { + "name": "majorVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "minorVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "build", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "versionString", + "type_name": "keen::StaticArray", + "type_hash": 783834273, + "data_offset": 16 + }, + { + "name": "distribution", + "type_name": "keen::StaticArray", + "type_hash": 783834273, + "data_offset": 48 + }, + { + "name": "bitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProcessId", + "type_name_2": "ProcessId", + "qualified_name": "keen::ProcessId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3236326902, + "hash2": 2670994953, + "struct_fields": [ + { + "name": "pid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AtmosphereShaderData", + "type_name_2": "AtmosphereShaderData", + "qualified_name": "keen::AtmosphereShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2465199211, + "hash2": 1420541911, + "struct_fields": [ + { + "name": "isValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "planetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "yToNormalizedHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "rayleighScattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invRayleighDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "rayleighExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "pad3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "mieScattering", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mieExtinction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "mieG", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "invMieDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreintegrateAtmosphereTransmittanceShaderData", + "type_name_2": "PreintegrateAtmosphereTransmittanceShaderData", + "qualified_name": "keen::PreintegrateAtmosphereTransmittanceShaderData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1687337152, + "hash2": 1672153104, + "struct_fields": [ + { + "name": "invTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "pixelToHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "planetRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "cutoffRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "mieExtinction", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "invMieDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "rayleighExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "invRayleighDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComputeAtmosphereScatteringLutShaderData", + "type_name_2": "ComputeAtmosphereScatteringLutShaderData", + "qualified_name": "keen::ComputeAtmosphereScatteringLutShaderData", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2522223787, + "hash2": 4249029871, + "struct_fields": [ + { + "name": "invTextureSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "texcoordToHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "pad1", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "yToNormalizedHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "planetRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "cutoffRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "rayleighExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "invRayleighDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "rayleighScattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "pad2", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "mieExtinction", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "invMieDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "mieScattering", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "mieG", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComputeAtmosphereAmbientIlluminationLutShaderData", + "type_name_2": "ComputeAtmosphereAmbientIlluminationLutShaderData", + "qualified_name": "keen::ComputeAtmosphereAmbientIlluminationLutShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1671503198, + "hash2": 3736304914, + "struct_fields": [ + { + "name": "invTextureSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Material", + "type_name_2": "Material", + "qualified_name": "keen::Material", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3737835291, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BillboardMaterial", + "type_name_2": "BillboardMaterial", + "qualified_name": "keen::BillboardMaterial", + "referenced_type_name": "keen::Material", + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2516411784, + "hash2": 3866811418, + "struct_fields": [ + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "opacityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 16 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 32 + }, + { + "name": "reflectanceMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 48 + }, + { + "name": "metallicMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 64 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 80 + }, + { + "name": "translucencyMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 96 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BillboardRfxTexture", + "type_name_2": "BillboardRfxTexture", + "qualified_name": "keen::BillboardRfxTexture", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 4161627754, + "hash2": 559731761, + "struct_fields": [], + "enum_fields": [ + { + "name": "Opacity", + "value": 0 + }, + { + "name": "Albedo", + "value": 1 + }, + { + "name": "MaterialParams", + "value": 2 + }, + { + "name": "Normal", + "value": 3 + }, + { + "name": "Count", + "value": 4 + } + ] + }, + { + "type_name_1": "StreamedTexture2D_float", + "type_name_2": "StreamedTexture2D_float", + "qualified_name": "keen::StreamedTexture2D_float", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 842896005, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StreamedTexture2D_float4", + "type_name_2": "StreamedTexture2D_float4", + "qualified_name": "keen::StreamedTexture2D_float4", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3354258595, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BillboardRfxRenderMaterial", + "type_name_2": "BillboardRfxRenderMaterial", + "qualified_name": "keen::BillboardRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 314569142, + "hash2": 634262064, + "struct_fields": [ + { + "name": "opacityMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 4 + }, + { + "name": "materialParamsMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 8 + }, + { + "name": "normalMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickVisibilityPassConstants", + "type_name_2": "BrickVisibilityPassConstants", + "qualified_name": "keen::BrickVisibilityPassConstants", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2098405503, + "hash2": 3730991996, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickDebugShadingConstants", + "type_name_2": "BrickDebugShadingConstants", + "qualified_name": "keen::BrickDebugShadingConstants", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1488309981, + "hash2": 3835849685, + "struct_fields": [ + { + "name": "directionalLightDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "directionalLightColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridMaterial", + "type_name_2": "VolumetricFogGridMaterial", + "qualified_name": "keen::VolumetricFogGridMaterial", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3154989435, + "hash2": 2578729368, + "struct_fields": [ + { + "name": "absorption", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "scattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "emission", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridCascadeShaderData", + "type_name_2": "VolumetricFogGridCascadeShaderData", + "qualified_name": "keen::VolumetricFogGridCascadeShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 716682201, + "hash2": 3984818475, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pixelOffset", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 16 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VolumetricFogGridCascadeShaderData[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::VolumetricFogGridCascadeShaderData", + "class_size": 256, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1698111939, + "hash2": 3377496963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridShaderData", + "type_name_2": "VolumetricFogGridShaderData", + "qualified_name": "keen::VolumetricFogGridShaderData", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2062480343, + "hash2": 2916845765, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "size", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "topLevelMaxVoxel", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 32 + }, + { + "name": "none", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 48 + }, + { + "name": "dangerous", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 96 + }, + { + "name": "deadly", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 144 + }, + { + "name": "decorative", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 192 + }, + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 1698111939, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickFillGBufferConstants", + "type_name_2": "BrickFillGBufferConstants", + "qualified_name": "keen::BrickFillGBufferConstants", + "referenced_type_name": null, + "class_size": 624, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1578424822, + "hash2": 2272293796, + "struct_fields": [ + { + "name": "fogGrid", + "type_name": "keen::VolumetricFogGridShaderData", + "type_hash": 2062480343, + "data_offset": 0 + }, + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 496 + }, + { + "name": "showLayerWeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 500 + }, + { + "name": "debugLayerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 504 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 512 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 520 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 528 + }, + { + "name": "isMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 592 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 596 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 608 + }, + { + "name": "time", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 612 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCullingFrustum", + "type_name_2": "GpuCullingFrustum", + "qualified_name": "keen::GpuCullingFrustum", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3873194566, + "hash2": 2673409417, + "struct_fields": [ + { + "name": "plane0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "plane1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "plane2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "plane3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "plane4", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + }, + { + "name": "plane5", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuOcclusionCullingShaderData", + "type_name_2": "GpuOcclusionCullingShaderData", + "qualified_name": "keen::GpuOcclusionCullingShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3965163726, + "hash2": 3498394219, + "struct_fields": [ + { + "name": "depthPyramidResolution", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "screenToDepthPyramidUvScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "P00", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "P11", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "P03", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "P13", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "P22", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "P23", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "zNear", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "zFar", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "orthoProjection", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickCullingShaderParameters", + "type_name_2": "BrickCullingShaderParameters", + "qualified_name": "keen::BrickCullingShaderParameters", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4202431036, + "hash2": 2405385936, + "struct_fields": [ + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "frustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 16 + }, + { + "name": "worldToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 112 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickDrawCommandData", + "type_name_2": "BrickDrawCommandData", + "qualified_name": "keen::BrickDrawCommandData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 553269754, + "hash2": 4238389759, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "firstIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "firstInstance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickSdfBakingShaderParameters", + "type_name_2": "BrickSdfBakingShaderParameters", + "qualified_name": "keen::BrickSdfBakingShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3598825813, + "hash2": 1465091499, + "struct_fields": [ + { + "name": "textureOffset", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "resolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickVoxelCopyShaderParameters", + "type_name_2": "BrickVoxelCopyShaderParameters", + "qualified_name": "keen::BrickVoxelCopyShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1799370153, + "hash2": 319433638, + "struct_fields": [ + { + "name": "dwordCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "brickIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "brickData", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickVoxelDilateShaderParameters", + "type_name_2": "BrickVoxelDilateShaderParameters", + "qualified_name": "keen::BrickVoxelDilateShaderParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 360975299, + "hash2": 1903114648, + "struct_fields": [ + { + "name": "dwordCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "innerSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NewBrickCommandData", + "type_name_2": "NewBrickCommandData", + "qualified_name": "keen::NewBrickCommandData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3460283290, + "hash2": 18764409, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickUploadShaderParameters", + "type_name_2": "BrickUploadShaderParameters", + "qualified_name": "keen::BrickUploadShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2093998115, + "hash2": 85461186, + "struct_fields": [ + { + "name": "newBrickCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMappingType", + "type_name_2": "BuildingMappingType", + "qualified_name": "keen::BuildingMappingType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1467671228, + "hash2": 4031501107, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "Wood", + "value": 1 + }, + { + "name": "Roof", + "value": 2 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DecoObjectRuleSet[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DecoObjectRuleSet", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1880875087, + "hash2": 4147399725, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialParameters", + "type_name_2": "BuildingMaterialParameters", + "qualified_name": "keen::BuildingMaterialParameters", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1572794383, + "hash2": 914848802, + "struct_fields": [ + { + "name": "mapping", + "type_name": "keen::BuildingMappingType", + "type_hash": 1467671228, + "data_offset": 0 + }, + { + "name": "edgeOnlySide", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "decoObjectRules", + "type_name": "keen::BlobArray", + "type_hash": 1880875087, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BuildingMaterialParameters[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BuildingMaterialParameters", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2467734958, + "hash2": 4193223683, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialParametersResource", + "type_name_2": "BuildingMaterialParametersResource", + "qualified_name": "keen::BuildingMaterialParametersResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4148505451, + "hash2": 621750445, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::BlobArray", + "type_hash": 2467734958, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 634425339, + "hash2": 3824118760, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterials", + "type_name_2": "BuildingMaterials", + "qualified_name": "keen::BuildingMaterials", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3302190940, + "hash2": 2443621562, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::BlobArray>", + "type_hash": 634425339, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTexture", + "type_name_2": "RenderTexture", + "qualified_name": "keen::RenderTexture", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2762713085, + "hash2": 3540148345, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "arraySize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 9 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 10 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialLayerImages", + "type_name_2": "BuildingMaterialLayerImages", + "qualified_name": "keen::BuildingMaterialLayerImages", + "referenced_type_name": null, + "class_size": 288, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2201653938, + "hash2": 2099214643, + "struct_fields": [ + { + "name": "emissiveMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 36 + }, + { + "name": "metallicMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 72 + }, + { + "name": "roughnessMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 108 + }, + { + "name": "reflectanceMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 144 + }, + { + "name": "normalMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 180 + }, + { + "name": "heightMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 216 + }, + { + "name": "aoMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialImages", + "type_name_2": "BuildingMaterialImages", + "qualified_name": "keen::BuildingMaterialImages", + "referenced_type_name": null, + "class_size": 1440, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1694999069, + "hash2": 2015046751, + "struct_fields": [ + { + "name": "baseSide", + "type_name": "keen::BuildingMaterialLayerImages", + "type_hash": 2201653938, + "data_offset": 0 + }, + { + "name": "baseTop", + "type_name": "keen::BuildingMaterialLayerImages", + "type_hash": 2201653938, + "data_offset": 288 + }, + { + "name": "baseBottom", + "type_name": "keen::BuildingMaterialLayerImages", + "type_hash": 2201653938, + "data_offset": 576 + }, + { + "name": "edge", + "type_name": "keen::BuildingMaterialLayerImages", + "type_hash": 2201653938, + "data_offset": 864 + }, + { + "name": "noise", + "type_name": "keen::BuildingMaterialLayerImages", + "type_hash": 2201653938, + "data_offset": 1152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_name_2": "BuildingMaterialBlendingMaterialLayerTextureShaderData", + "qualified_name": "keen::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3322461726, + "hash2": 4127508991, + "struct_fields": [ + { + "name": "emissiveMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 0 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "albedoMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 12 + }, + { + "name": "metallicMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 16 + }, + { + "name": "roughnessMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 20 + }, + { + "name": "reflectanceMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 24 + }, + { + "name": "normalMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 28 + }, + { + "name": "heightMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 32 + }, + { + "name": "aoMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 36 + }, + { + "name": "tilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialBlendingMaterialLayerShaderData", + "type_name_2": "BuildingMaterialBlendingMaterialLayerShaderData", + "qualified_name": "keen::BuildingMaterialBlendingMaterialLayerShaderData", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3309892569, + "hash2": 1998038967, + "struct_fields": [ + { + "name": "baseSideTexture", + "type_name": "keen::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3322461726, + "data_offset": 0 + }, + { + "name": "baseTopTexture", + "type_name": "keen::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3322461726, + "data_offset": 56 + }, + { + "name": "baseBottomTexture", + "type_name": "keen::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3322461726, + "data_offset": 112 + }, + { + "name": "edgeTexture", + "type_name": "keen::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3322461726, + "data_offset": 168 + }, + { + "name": "edgeTopTexture", + "type_name": "keen::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3322461726, + "data_offset": 224 + }, + { + "name": "noiseTexture", + "type_name": "keen::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3322461726, + "data_offset": 280 + }, + { + "name": "heightBlendingRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 336 + }, + { + "name": "heightBlendingRangeNoise", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 340 + }, + { + "name": "edgeBlendingCurve", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 344 + }, + { + "name": "edgeOnlySide", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 348 + }, + { + "name": "noiseBlendRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 352 + }, + { + "name": "bevelRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 360 + }, + { + "name": "isRoof", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 364 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderParameterBlockPatchPoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderParameterBlockPatchPoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 40329797, + "hash2": 1807984885, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderTexture[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderTexture", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1691223974, + "hash2": 911031395, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderSampler[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderSampler", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1343119995, + "hash2": 4194092791, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderParameterBlock", + "type_name_2": "RenderParameterBlock", + "qualified_name": "keen::RenderParameterBlock", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1693420474, + "hash2": 2830752337, + "struct_fields": [ + { + "name": "typeSignatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "patchPoints", + "type_name": "keen::BlobArray", + "type_hash": 40329797, + "data_offset": 20 + }, + { + "name": "textures", + "type_name": "keen::BlobArray", + "type_hash": 1691223974, + "data_offset": 28 + }, + { + "name": "samplers", + "type_name": "keen::BlobArray", + "type_hash": 1343119995, + "data_offset": 36 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelImageSizeInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelImageSizeInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 260213472, + "hash2": 1999024980, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialBlendingResource", + "type_name_2": "BuildingMaterialBlendingResource", + "qualified_name": "keen::BuildingMaterialBlendingResource", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3198709898, + "hash2": 78210086, + "struct_fields": [ + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "layerSizeInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "pad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "pad1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "renderingParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 16 + }, + { + "name": "renderingImageSizeInfos", + "type_name": "keen::BlobArray", + "type_hash": 260213472, + "data_offset": 68 + }, + { + "name": "renderingLayerImageSizeInfoStartIndices", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialMapping", + "type_name_2": "BuildingMaterialMapping", + "qualified_name": "keen::BuildingMaterialMapping", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3780425707, + "hash2": 1237011948, + "struct_fields": [ + { + "name": "voxelMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1870839069, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPalette", + "type_name_2": "BuildingMaterialPalette", + "qualified_name": "keen::BuildingMaterialPalette", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3196979742, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPalettesFolder", + "type_name_2": "BuildingMaterialPalettesFolder", + "qualified_name": "keen::BuildingMaterialPalettesFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3333318531, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BuildingMaterialPalette", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 438929135, + "hash2": 296564046, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPaletteId", + "type_name_2": "BuildingMaterialPaletteId", + "qualified_name": "keen::BuildingMaterialPaletteId", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1943868995, + "hash2": 3095110158, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRuleType", + "type_name_2": "DecoObjectRuleType", + "qualified_name": "keen::DecoObjectRuleType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 30, + "primitive_type": "Enum", + "hash1": 2138049862, + "hash2": 3435164143, + "struct_fields": [], + "enum_fields": [ + { + "name": "RoofTop", + "value": 0 + }, + { + "name": "RoofTopSmall", + "value": 1 + }, + { + "name": "RoofSideLeft", + "value": 2 + }, + { + "name": "RoofSideRight", + "value": 3 + }, + { + "name": "RoofBottom", + "value": 4 + }, + { + "name": "RoofBrokenSideLeft", + "value": 5 + }, + { + "name": "RoofBrokenSideRight", + "value": 6 + }, + { + "name": "RoofBrokenTop", + "value": 7 + }, + { + "name": "SupportBeams", + "value": 8 + }, + { + "name": "MaterialEdgeTop", + "value": 9 + }, + { + "name": "MaterialEdgeTopCornerOuter", + "value": 10 + }, + { + "name": "MaterialEdgeBottom", + "value": 11 + }, + { + "name": "MaterialEdgeBottomCornerOuter", + "value": 12 + }, + { + "name": "MaterialEdgeLeft", + "value": 13 + }, + { + "name": "MaterialEdgeRight", + "value": 14 + }, + { + "name": "MaterialEdgeSideBoth", + "value": 15 + }, + { + "name": "WallCornerOuter", + "value": 16 + }, + { + "name": "WallCornerOuterSmall", + "value": 17 + }, + { + "name": "WallCeilingCorner", + "value": 18 + }, + { + "name": "WallCeilingCornerSmall", + "value": 19 + }, + { + "name": "WallCeilingCornerOuter", + "value": 20 + }, + { + "name": "WallCeilingCornerOuterSmall", + "value": 21 + }, + { + "name": "WallFloorCorner", + "value": 22 + }, + { + "name": "WallFloorCornerOuter", + "value": 23 + }, + { + "name": "WallEndSide", + "value": 24 + }, + { + "name": "VoxelEdgeSide", + "value": 25 + }, + { + "name": "VoxelEdgeTop", + "value": 26 + }, + { + "name": "VoxelEdgeBottom", + "value": 27 + }, + { + "name": "Stairs", + "value": 28 + }, + { + "name": "HangingCeilingEdge", + "value": 29 + } + ] + }, + { + "type_name_1": "DecoObjectPartMode", + "type_name_2": "DecoObjectPartMode", + "qualified_name": "keen::DecoObjectPartMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 182293770, + "hash2": 3241471983, + "struct_fields": [], + "enum_fields": [ + { + "name": "MiddleOnly", + "value": 0 + }, + { + "name": "StartEndAdd", + "value": 1 + }, + { + "name": "StartEndReplace", + "value": 2 + } + ] + }, + { + "type_name_1": "DecoObjectPart", + "type_name_2": "DecoObjectPart", + "qualified_name": "keen::DecoObjectPart", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 709807293, + "hash2": 3781435459, + "struct_fields": [], + "enum_fields": [ + { + "name": "Start", + "value": 0 + }, + { + "name": "Middle", + "value": 1 + }, + { + "name": "End", + "value": 2 + } + ] + }, + { + "type_name_1": "DecoObjectInstance", + "type_name_2": "DecoObjectInstance", + "qualified_name": "keen::DecoObjectInstance", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 885443891, + "hash2": 3890073059, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "part", + "type_name": "keen::DecoObjectPart", + "type_hash": 709807293, + "data_offset": 16 + }, + { + "name": "fixedOrderKey", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRule", + "type_name_2": "DecoObjectRule", + "qualified_name": "keen::DecoObjectRule", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1702419478, + "hash2": 3042282322, + "struct_fields": [ + { + "name": "rule", + "type_name": "keen::DecoObjectRuleType", + "type_hash": 2138049862, + "data_offset": 0 + }, + { + "name": "partMode", + "type_name": "keen::DecoObjectPartMode", + "type_hash": 182293770, + "data_offset": 1 + }, + { + "name": "onDestructionEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "limitOnePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "symmetrical", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "rotationVariation", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 32 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3737858023, + "hash2": 4266981596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRuleSet", + "type_name_2": "DecoObjectRuleSet", + "qualified_name": "keen::DecoObjectRuleSet", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3343709326, + "hash2": 1062891296, + "struct_fields": [ + { + "name": "rule", + "type_name": "keen::DecoObjectRuleType", + "type_hash": 2138049862, + "data_offset": 0 + }, + { + "name": "partMode", + "type_name": "keen::DecoObjectPartMode", + "type_hash": 182293770, + "data_offset": 1 + }, + { + "name": "onDestructionEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "limitOnePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "symmetrical", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "rotationVariation", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 32 + }, + { + "name": "fixedOrder", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "startModels", + "type_name": "keen::BlobArray>", + "type_hash": 3737858023, + "data_offset": 52 + }, + { + "name": "middleModels", + "type_name": "keen::BlobArray>", + "type_hash": 3737858023, + "data_offset": 60 + }, + { + "name": "endModels", + "type_name": "keen::BlobArray>", + "type_hash": 3737858023, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRules", + "type_name_2": "DecoObjectRules", + "qualified_name": "keen::DecoObjectRules", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 574812927, + "hash2": 1347534676, + "struct_fields": [ + { + "name": "rules", + "type_name": "keen::BlobArray", + "type_hash": 1880875087, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialListEntry", + "type_name_2": "BuildingMaterialListEntry", + "qualified_name": "keen::BuildingMaterialListEntry", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1647012921, + "hash2": 2563633842, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "pbrBuildingMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1876585368, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BuildingMaterialListEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BuildingMaterialListEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1716979846, + "hash2": 1085094758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialList", + "type_name_2": "BuildingMaterialList", + "qualified_name": "keen::BuildingMaterialList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1616357359, + "hash2": 1156386286, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 1716979846, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float4[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float4", + "class_size": 80, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 1094189225, + "hash2": 2248282559, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FFX_CACAO_Constants", + "type_name_2": "FFX_CACAO_Constants", + "qualified_name": "keen::FFX_CACAO_Constants", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 42, + "primitive_type": "Struct", + "hash1": 3590910158, + "hash2": 3346898323, + "struct_fields": [ + { + "name": "DepthUnpackConsts", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "CameraTanHalfFOV", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "NDCToViewMul", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "NDCToViewAdd", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "DepthBufferUVToViewMul", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "DepthBufferUVToViewAdd", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "EffectRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "EffectShadowStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "EffectShadowPow", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "EffectShadowClamp", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "EffectFadeOutMul", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "EffectFadeOutAdd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "EffectHorizonAngleThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "EffectSamplingRadiusNearLimitRec", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "DepthPrecisionOffsetMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "NegRecEffectRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "LoadCounterAvgDiv", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "AdaptiveSampleCountLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "InvSharpness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "PassIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 100 + }, + { + "name": "BilateralSigmaSquared", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "BilateralSimilarityDistanceSigma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "PatternRotScaleMatrices", + "type_name": "keen::StaticArray", + "type_hash": 1094189225, + "data_offset": 112 + }, + { + "name": "DetailAOStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "Dummy0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "Dummy1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + }, + { + "name": "Dummy2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "SSAOBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 208 + }, + { + "name": "SSAOBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 216 + }, + { + "name": "DepthBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 224 + }, + { + "name": "DepthBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 232 + }, + { + "name": "DepthBufferOffset", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 240 + }, + { + "name": "PerPassFullResUVOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 248 + }, + { + "name": "OutputBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 256 + }, + { + "name": "OutputBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 264 + }, + { + "name": "ImportanceMapDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 272 + }, + { + "name": "ImportanceMapInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 280 + }, + { + "name": "DeinterleavedDepthBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 288 + }, + { + "name": "DeinterleavedDepthBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 296 + }, + { + "name": "DeinterleavedDepthBufferOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 304 + }, + { + "name": "DeinterleavedDepthBufferNormalisedOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 312 + }, + { + "name": "NormalsWorldToViewspaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 320 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkPassType", + "type_name_2": "VoxelChunkPassType", + "qualified_name": "keen::VoxelChunkPassType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3160374838, + "hash2": 1988957401, + "struct_fields": [], + "enum_fields": [ + { + "name": "DepthPrepass", + "value": 0 + }, + { + "name": "GBuffer", + "value": 1 + }, + { + "name": "Shadow", + "value": 2 + } + ] + }, + { + "type_name_1": "PackedShaderWorldTransform", + "type_name_2": "PackedShaderWorldTransform", + "qualified_name": "keen::PackedShaderWorldTransform", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3199707515, + "hash2": 2216665663, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedShaderWorldPositionUniform", + "type_name_2": "PackedShaderWorldPositionUniform", + "qualified_name": "keen::PackedShaderWorldPositionUniform", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1695248566, + "hash2": 3481358976, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 4022223353, + "hash2": 2835248087, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkShaderData", + "type_name_2": "VoxelChunkShaderData", + "qualified_name": "keen::VoxelChunkShaderData", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 2117599790, + "hash2": 1945731781, + "struct_fields": [ + { + "name": "packedTransform", + "type_name": "keen::PackedShaderWorldTransform", + "type_hash": 3199707515, + "data_offset": 0 + }, + { + "name": "worldPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 32 + }, + { + "name": "transform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "triangleIndexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 116 + }, + { + "name": "triangleIndexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 120 + }, + { + "name": "quadIndexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 124 + }, + { + "name": "quadIndexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 132 + }, + { + "name": "bakedTriangleMaterialDataOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 136 + }, + { + "name": "chunkletOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 140 + }, + { + "name": "chunkletCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 144 + }, + { + "name": "chunkletVisibilityOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 148 + }, + { + "name": "highlightColorPaletteIndexTransparency", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 152 + }, + { + "name": "sizeFeedbackIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 156 + }, + { + "name": "pipelineIndices", + "type_name": "keen::StaticArray", + "type_hash": 4022223353, + "data_offset": 160 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderChunkletCullingSubView", + "type_name_2": "ShaderChunkletCullingSubView", + "qualified_name": "keen::ShaderChunkletCullingSubView", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2137469590, + "hash2": 2762515534, + "struct_fields": [ + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "viewDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "cameraCenteredFrustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 48 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 144 + }, + { + "name": "occlusionData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderChunkletCullingPass", + "type_name_2": "ShaderChunkletCullingPass", + "qualified_name": "keen::ShaderChunkletCullingPass", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3604420578, + "hash2": 3138614019, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "subViewIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "passType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderChunkletCullingSubView[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ShaderChunkletCullingSubView", + "class_size": 2304, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 4127586843, + "hash2": 830371589, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderChunkletCullingPass[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ShaderChunkletCullingPass", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2984504334, + "hash2": 2336514733, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderChunkletCullingShaderParameters", + "type_name_2": "RenderChunkletCullingShaderParameters", + "qualified_name": "keen::RenderChunkletCullingShaderParameters", + "referenced_type_name": null, + "class_size": 2448, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4185164641, + "hash2": 923775355, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 4127586843, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 2984504334, + "data_offset": 2304 + }, + { + "name": "subViewCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2432 + }, + { + "name": "passCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2436 + }, + { + "name": "jobCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2440 + }, + { + "name": "stageIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2444 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CulledChunklet", + "type_name_2": "CulledChunklet", + "qualified_name": "keen::CulledChunklet", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1308364409, + "hash2": 3975406112, + "struct_fields": [ + { + "name": "data0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "visibility", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletPrefixSumShaderParameters", + "type_name_2": "ChunkletPrefixSumShaderParameters", + "qualified_name": "keen::ChunkletPrefixSumShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 424610982, + "hash2": 4243238015, + "struct_fields": [ + { + "name": "batchCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "stageIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkArgumentsPrepareShaderParameters", + "type_name_2": "VoxelChunkArgumentsPrepareShaderParameters", + "qualified_name": "keen::VoxelChunkArgumentsPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3204323485, + "hash2": 554516385, + "struct_fields": [ + { + "name": "groupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderChunkletDrawPrepareShaderParameters", + "type_name_2": "RenderChunkletDrawPrepareShaderParameters", + "qualified_name": "keen::RenderChunkletDrawPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3224728672, + "hash2": 1374251416, + "struct_fields": [ + { + "name": "batchCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "batchOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletPipelineInfoShaderData", + "type_name_2": "ChunkletPipelineInfoShaderData", + "qualified_name": "keen::ChunkletPipelineInfoShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1522752347, + "hash2": 1051965600, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletDrawCommand", + "type_name_2": "ChunkletDrawCommand", + "qualified_name": "keen::ChunkletDrawCommand", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 349964391, + "hash2": 3148161500, + "struct_fields": [ + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletPushConstants", + "type_name_2": "ChunkletPushConstants", + "qualified_name": "keen::ChunkletPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1355858949, + "hash2": 1449351613, + "struct_fields": [ + { + "name": "drawIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkSizeFeedbackShaderParameters", + "type_name_2": "VoxelChunkSizeFeedbackShaderParameters", + "qualified_name": "keen::VoxelChunkSizeFeedbackShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3657418000, + "hash2": 801085452, + "struct_fields": [ + { + "name": "viewPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "chunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderChunklet", + "type_name_2": "RenderChunklet", + "qualified_name": "keen::RenderChunklet", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2418749728, + "hash2": 946981863, + "struct_fields": [ + { + "name": "data0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletCullingDebugCounters", + "type_name_2": "ChunkletCullingDebugCounters", + "qualified_name": "keen::ChunkletCullingDebugCounters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 766310926, + "hash2": 799454956, + "struct_fields": [ + { + "name": "culledByOrientation", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "culledByFrustum", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "culledByOcclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "culledByVisibility", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "culledByExclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingCellData", + "type_name_2": "ClusterCullingCellData", + "qualified_name": "keen::ClusterCullingCellData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2927436408, + "hash2": 3489622239, + "struct_fields": [ + { + "name": "lightListCountAndOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "decalListCountAndOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingShaderData", + "type_name_2": "ClusterCullingShaderData", + "qualified_name": "keen::ClusterCullingShaderData", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3277801501, + "hash2": 915420973, + "struct_fields": [ + { + "name": "inverseProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "clusterSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 112 + }, + { + "name": "cellLightListOffsetCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 124 + }, + { + "name": "cellDecalListOffsetCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 132 + }, + { + "name": "tileRatio", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "pointLightCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 152 + }, + { + "name": "maxPointLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 156 + }, + { + "name": "decalCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 160 + }, + { + "name": "maxDecalCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingDebugPushConstants", + "type_name_2": "ClusterCullingDebugPushConstants", + "qualified_name": "keen::ClusterCullingDebugPushConstants", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2520067896, + "hash2": 1032266964, + "struct_fields": [ + { + "name": "debugImageSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2StageId", + "type_name_2": "GpuCulling2StageId", + "qualified_name": "keen::GpuCulling2StageId", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3374809645, + "hash2": 643868312, + "struct_fields": [], + "enum_fields": [ + { + "name": "Early", + "value": 0 + }, + { + "name": "Late", + "value": 1 + } + ] + }, + { + "type_name_1": "GpuCulling2PassType", + "type_name_2": "GpuCulling2PassType", + "qualified_name": "keen::GpuCulling2PassType", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2211772159, + "hash2": 3449133079, + "struct_fields": [], + "enum_fields": [ + { + "name": "DepthPrePass", + "value": 0 + }, + { + "name": "GBuffer", + "value": 1 + }, + { + "name": "Shadow", + "value": 2 + }, + { + "name": "Debug", + "value": 3 + }, + { + "name": "Transparent", + "value": 4 + } + ] + }, + { + "type_name_1": "GpuCulling2PassId", + "type_name_2": "GpuCulling2PassId", + "qualified_name": "keen::GpuCulling2PassId", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 12, + "primitive_type": "Enum", + "hash1": 3005860586, + "hash2": 132797213, + "struct_fields": [], + "enum_fields": [ + { + "name": "Main_DepthPrepass", + "value": 0 + }, + { + "name": "Main_GBuffer", + "value": 1 + }, + { + "name": "Main_Transparent", + "value": 2 + }, + { + "name": "Main_Debug", + "value": 3 + }, + { + "name": "Shadow_Cascade0", + "value": 4 + }, + { + "name": "Shadow_Cascade1", + "value": 5 + }, + { + "name": "Shadow_Cascade2", + "value": 6 + }, + { + "name": "Shadow_Cascade3", + "value": 7 + }, + { + "name": "Shadow_Cascade4", + "value": 8 + }, + { + "name": "Shadow_Cascade5", + "value": 9 + }, + { + "name": "Shadow_Cascade6", + "value": 10 + }, + { + "name": "Shadow_Cascade7", + "value": 11 + } + ] + }, + { + "type_name_1": "GpuCulling2SubViewConstants", + "type_name_2": "GpuCulling2SubViewConstants", + "qualified_name": "keen::GpuCulling2SubViewConstants", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1313650314, + "hash2": 2562248614, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "minObjectSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 32 + }, + { + "name": "cameraCenteredFrustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 80 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PassConstants", + "type_name_2": "GpuCulling2PassConstants", + "qualified_name": "keen::GpuCulling2PassConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3190183632, + "hash2": 3642845224, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "subViewIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "passType", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2SubViewConstants[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::GpuCulling2SubViewConstants", + "class_size": 2640, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 1032041808, + "hash2": 774241720, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2PassConstants[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::GpuCulling2PassConstants", + "class_size": 192, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 722082793, + "hash2": 2626096690, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2ShaderParameters", + "type_name_2": "GpuCulling2ShaderParameters", + "qualified_name": "keen::GpuCulling2ShaderParameters", + "referenced_type_name": null, + "class_size": 2912, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 546439223, + "hash2": 335614306, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 1032041808, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 722082793, + "data_offset": 2640 + }, + { + "name": "subViewCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2832 + }, + { + "name": "passCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2836 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2840 + }, + { + "name": "isLateStage", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2844 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2848 + }, + { + "name": "instanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2852 + }, + { + "name": "batchCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2856 + }, + { + "name": "pixelSizeCullingBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2860 + }, + { + "name": "meshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2864 + }, + { + "name": "maxCulledInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2868 + }, + { + "name": "scanShaderGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2872 + }, + { + "name": "fixupShaderGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2876 + }, + { + "name": "mainViewCameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 2880 + }, + { + "name": "mainViewPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2896 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2SubViewDebugCounters", + "type_name_2": "GpuCulling2SubViewDebugCounters", + "qualified_name": "keen::GpuCulling2SubViewDebugCounters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 867360805, + "hash2": 2557139229, + "struct_fields": [ + { + "name": "notCulled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "culledByFrustum", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "culledByOcclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "culledBySize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "culledByExclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PassDebugCounters", + "type_name_2": "GpuCulling2PassDebugCounters", + "qualified_name": "keen::GpuCulling2PassDebugCounters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 241576159, + "hash2": 1234019123, + "struct_fields": [ + { + "name": "notCulled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2Counters", + "type_name_2": "GpuCulling2Counters", + "qualified_name": "keen::GpuCulling2Counters", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 609634911, + "hash2": 312948533, + "struct_fields": [ + { + "name": "culledInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "leftoverInstances", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "firstInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2DispatchCommandId", + "type_name_2": "GpuCulling2DispatchCommandId", + "qualified_name": "keen::GpuCulling2DispatchCommandId", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 190801676, + "hash2": 1435838482, + "struct_fields": [], + "enum_fields": [ + { + "name": "ScanInstances", + "value": 0 + }, + { + "name": "FixupInstances", + "value": 1 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2SubViewDebugCounters[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::GpuCulling2SubViewDebugCounters", + "class_size": 220, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 2380001923, + "hash2": 320261689, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2PassDebugCounters[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::GpuCulling2PassDebugCounters", + "class_size": 48, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 3490001786, + "hash2": 1765869460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2DebugCounters", + "type_name_2": "GpuCulling2DebugCounters", + "qualified_name": "keen::GpuCulling2DebugCounters", + "referenced_type_name": null, + "class_size": 276, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3952158052, + "hash2": 1289216034, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 2380001923, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 3490001786, + "data_offset": 220 + }, + { + "name": "culledByGroupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 268 + }, + { + "name": "culledByPixelSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 272 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2CulledInstanceData", + "type_name_2": "GpuCulling2CulledInstanceData", + "qualified_name": "keen::GpuCulling2CulledInstanceData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3676219172, + "hash2": 1491376363, + "struct_fields": [ + { + "name": "meshIndexAndBatchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PixelQuery", + "type_name_2": "GpuCulling2PixelQuery", + "qualified_name": "keen::GpuCulling2PixelQuery", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4124931918, + "hash2": 1405740706, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PixelQueryResult", + "type_name_2": "GpuCulling2PixelQueryResult", + "qualified_name": "keen::GpuCulling2PixelQueryResult", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2966098887, + "hash2": 1299472835, + "struct_fields": [ + { + "name": "stageId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "instanceDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "meshIndexAndBatchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2HighlightType", + "type_name_2": "GpuCulling2HighlightType", + "qualified_name": "keen::GpuCulling2HighlightType", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2628243818, + "hash2": 2609836470, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Mesh", + "value": 1 + }, + { + "name": "Model", + "value": 2 + }, + { + "name": "Batch", + "value": 3 + } + ] + }, + { + "type_name_1": "GpuCulling2RenderData", + "type_name_2": "GpuCulling2RenderData", + "qualified_name": "keen::GpuCulling2RenderData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 785744330, + "hash2": 3212208188, + "struct_fields": [ + { + "name": "pixelQuery", + "type_name": "keen::GpuCulling2PixelQuery", + "type_hash": 4124931918, + "data_offset": 0 + }, + { + "name": "pixelQueryResult", + "type_name": "keen::GpuCulling2PixelQueryResult", + "type_hash": 2966098887, + "data_offset": 8 + }, + { + "name": "highlightType", + "type_name": "keen::GpuCulling2HighlightType", + "type_hash": 2628243818, + "data_offset": 24 + }, + { + "name": "highlightValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "highlightValue2", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialMeshShaderData", + "type_name_2": "RenderMaterialMeshShaderData", + "qualified_name": "keen::RenderMaterialMeshShaderData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2509711347, + "hash2": 3399107348, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "modelMaterialData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "skinningDataByteOffsetAndClothMeshIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "blendShapeVertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "blendShapeMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDrawCommandData", + "type_name_2": "RenderDrawCommandData", + "qualified_name": "keen::RenderDrawCommandData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2942568861, + "hash2": 704886977, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "materialMeshIndexAndLodIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDrawData", + "type_name_2": "RenderDrawData", + "qualified_name": "keen::RenderDrawData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2846866172, + "hash2": 801522369, + "struct_fields": [ + { + "name": "modelIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "groupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "_pad", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1332724952, + "hash2": 4294940732, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelDrawData", + "type_name_2": "RenderModelDrawData", + "qualified_name": "keen::RenderModelDrawData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1326964261, + "hash2": 202176760, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "modelLodStartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "modelLodCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "hasCardClusterLod", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "sizeFeedbackIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "lodPixelSizes", + "type_name": "keen::StaticArray", + "type_hash": 1332724952, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLodDrawData", + "type_name_2": "RenderModelLodDrawData", + "qualified_name": "keen::RenderModelLodDrawData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 36509516, + "hash2": 428443400, + "struct_fields": [ + { + "name": "materialMeshStartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "materialMeshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "_pad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "_pad1", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialMeshDrawData", + "type_name_2": "RenderMaterialMeshDrawData", + "qualified_name": "keen::RenderMaterialMeshDrawData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3126354612, + "hash2": 2001362156, + "struct_fields": [ + { + "name": "pipelineIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "indexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCullingDrawCounter", + "type_name_2": "GpuCullingDrawCounter", + "qualified_name": "keen::GpuCullingDrawCounter", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 676829986, + "hash2": 245251724, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCullingDebugCounters", + "type_name_2": "GpuCullingDebugCounters", + "qualified_name": "keen::GpuCullingDebugCounters", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1667418158, + "hash2": 195407976, + "struct_fields": [ + { + "name": "notCulled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "culledByVisibility", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "culledBySize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "culledByFrustum", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "culledByOcclusion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "culledByExclusion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CullingShaderData", + "type_name_2": "CullingShaderData", + "qualified_name": "keen::CullingShaderData", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 698634003, + "hash2": 7752170, + "struct_fields": [ + { + "name": "viewPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "fixedLod", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 12 + }, + { + "name": "viewVisibilityMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "pixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "pixelSizeCullingBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "frustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 32 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "worldToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 144 + }, + { + "name": "projectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 192 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 256 + }, + { + "name": "drawCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 320 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 324 + }, + { + "name": "exclusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 328 + }, + { + "name": "useLastFrameVisibility", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 332 + }, + { + "name": "cpuDrawCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 336 + }, + { + "name": "cullSmallObjects", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 340 + }, + { + "name": "smallObjectRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 344 + }, + { + "name": "forceCardClusterLod", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 348 + }, + { + "name": "useCameraCenteredSpace", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 352 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 368 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UploadRenderInstancesShaderData", + "type_name_2": "UploadRenderInstancesShaderData", + "qualified_name": "keen::UploadRenderInstancesShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1952631368, + "hash2": 575375269, + "struct_fields": [ + { + "name": "uploadInstanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugOcclusionCullingShaderParameters", + "type_name_2": "DebugOcclusionCullingShaderParameters", + "qualified_name": "keen::DebugOcclusionCullingShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3615953547, + "hash2": 2231953567, + "struct_fields": [ + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 0 + }, + { + "name": "viewSpaceSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugOcclusionCullingResultShaderData", + "type_name_2": "DebugOcclusionCullingResultShaderData", + "qualified_name": "keen::DebugOcclusionCullingResultShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 12594414, + "hash2": 1925137144, + "struct_fields": [ + { + "name": "isValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rectMin", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "rectMax", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "uv", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurvePointTangent", + "type_name_2": "CurvePointTangent", + "qualified_name": "keen::CurvePointTangent", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3903715298, + "hash2": 737649421, + "struct_fields": [], + "enum_fields": [ + { + "name": "Free", + "value": 0 + }, + { + "name": "Weighted", + "value": 1 + }, + { + "name": "Linear", + "value": 2 + } + ] + }, + { + "type_name_1": "CurveTangent", + "type_name_2": "CurveTangent", + "qualified_name": "keen::CurveTangent", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2854177214, + "hash2": 88619152, + "struct_fields": [], + "enum_fields": [ + { + "name": "Smooth", + "value": 0 + }, + { + "name": "Broken", + "value": 1 + } + ] + }, + { + "type_name_1": "CurvePoint", + "type_name_2": "CurvePoint", + "qualified_name": "keen::CurvePoint", + "referenced_type_name": "keen::float2", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 166667013, + "hash2": 973767151, + "struct_fields": [ + { + "name": "tangent", + "type_name": "keen::CurveTangent", + "type_hash": 2854177214, + "data_offset": 8 + }, + { + "name": "pointTangent", + "type_name": "keen::CurvePointTangent", + "type_hash": 3903715298, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageDiffShaderParameters", + "type_name_2": "ImageDiffShaderParameters", + "qualified_name": "keen::ImageDiffShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3245597389, + "hash2": 550133537, + "struct_fields": [ + { + "name": "threshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugMagnifierShaderParameters", + "type_name_2": "DebugMagnifierShaderParameters", + "qualified_name": "keen::DebugMagnifierShaderParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2369535198, + "hash2": 3372548314, + "struct_fields": [ + { + "name": "imageWidth", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "imageHeight", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "mousePos", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "borderColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "magnificationAmount", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "magnifierScreenRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "magnifierOffsetX", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 40 + }, + { + "name": "magnifierOffsetY", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 44 + }, + { + "name": "brightness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "contrast", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeTextureOp", + "type_name_2": "VisualizeTextureOp", + "qualified_name": "keen::VisualizeTextureOp", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 3570442352, + "hash2": 3103289365, + "struct_fields": [], + "enum_fields": [ + { + "name": "One", + "value": 0 + }, + { + "name": "Zero", + "value": 1 + }, + { + "name": "Copy", + "value": 2 + }, + { + "name": "IntegerHashR", + "value": 3 + }, + { + "name": "IntegerHashG", + "value": 4 + }, + { + "name": "IntegerHashB", + "value": 5 + } + ] + }, + { + "type_name_1": "VisualizeTextureChannel", + "type_name_2": "VisualizeTextureChannel", + "qualified_name": "keen::VisualizeTextureChannel", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2004358702, + "hash2": 4019713246, + "struct_fields": [], + "enum_fields": [ + { + "name": "Red", + "value": 0 + }, + { + "name": "Green", + "value": 1 + }, + { + "name": "Blue", + "value": 2 + }, + { + "name": "Alpha", + "value": 3 + } + ] + }, + { + "type_name_1": "VisualizeTextureCommandShaderData", + "type_name_2": "VisualizeTextureCommandShaderData", + "qualified_name": "keen::VisualizeTextureCommandShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 619454477, + "hash2": 3475526140, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::VisualizeTextureOp", + "type_hash": 3570442352, + "data_offset": 0 + }, + { + "name": "channel", + "type_name": "keen::VisualizeTextureChannel", + "type_hash": 2004358702, + "data_offset": 4 + }, + { + "name": "scale", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "power", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VisualizeTextureCommandShaderData[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::VisualizeTextureCommandShaderData", + "class_size": 64, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3493704163, + "hash2": 2197322894, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeTextureShaderParameters", + "type_name_2": "VisualizeTextureShaderParameters", + "qualified_name": "keen::VisualizeTextureShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1708651850, + "hash2": 1829330602, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "commands", + "type_name": "keen::StaticArray", + "type_hash": 3493704163, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeOverdrawShaderParameters", + "type_name_2": "VisualizeOverdrawShaderParameters", + "qualified_name": "keen::VisualizeOverdrawShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2000416965, + "hash2": 3455118929, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IblVisualizationData", + "type_name_2": "IblVisualizationData", + "qualified_name": "keen::IblVisualizationData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1807156741, + "hash2": 3286152577, + "struct_fields": [ + { + "name": "ndcToWorldMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "iblIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecalNormalBlendMode", + "type_name_2": "DecalNormalBlendMode", + "qualified_name": "keen::DecalNormalBlendMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1672247832, + "hash2": 2176999847, + "struct_fields": [], + "enum_fields": [ + { + "name": "Linear", + "value": 0 + }, + { + "name": "DetailOriented", + "value": 1 + } + ] + }, + { + "type_name_1": "DecalRoughnessBlendMode", + "type_name_2": "DecalRoughnessBlendMode", + "qualified_name": "keen::DecalRoughnessBlendMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3407402789, + "hash2": 326629063, + "struct_fields": [], + "enum_fields": [ + { + "name": "Multiply", + "value": 0 + }, + { + "name": "Replace", + "value": 1 + } + ] + }, + { + "type_name_1": "Decal", + "type_name_2": "Decal", + "qualified_name": "keen::Decal", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 4276790371, + "hash2": 4227808090, + "struct_fields": [ + { + "name": "affectShading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + }, + { + "name": "opacityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 20 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 36 + }, + { + "name": "normalBlendMode", + "type_name": "keen::DecalNormalBlendMode", + "type_hash": 1672247832, + "data_offset": 52 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 56 + }, + { + "name": "roughnessBlendMode", + "type_name": "keen::DecalRoughnessBlendMode", + "type_hash": 3407402789, + "data_offset": 72 + }, + { + "name": "emissiveMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 76 + }, + { + "name": "emissiveAlphaMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 92 + }, + { + "name": "metallicMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 108 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 124 + }, + { + "name": "affectTerrainVoxelMesh", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + }, + { + "name": "affectBuildingVoxelMesh", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 141 + }, + { + "name": "affectRoofVoxelMesh", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 142 + }, + { + "name": "affectModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 143 + }, + { + "name": "affectSkinnedModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + }, + { + "name": "affectBuildingDecoModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 145 + }, + { + "name": "affectScatterDetailModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 146 + }, + { + "name": "affectScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 147 + }, + { + "name": "scatterScaleMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 148 + }, + { + "name": "scatterScaleFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecalLayer", + "type_name_2": "DecalLayer", + "qualified_name": "keen::DecalLayer", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 3275642956, + "hash2": 3288121809, + "struct_fields": [], + "enum_fields": [ + { + "name": "TerrainVoxelMesh", + "value": 0 + }, + { + "name": "BuildingVoxelMesh", + "value": 1 + }, + { + "name": "RoofVoxelMesh", + "value": 2 + }, + { + "name": "StaticModel", + "value": 3 + }, + { + "name": "SkinnedModel", + "value": 4 + }, + { + "name": "BuildingDecoModel", + "value": 5 + }, + { + "name": "ScatterDecoModel", + "value": 6 + }, + { + "name": "VfxModel", + "value": 7 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::DecalLayer", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1727933253, + "hash2": 1881346833, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecalLayerMask", + "type_name_2": "DecalLayerMask", + "qualified_name": "keen::DecalLayerMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 612127708, + "hash2": 2899962684, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecalMaterialData", + "type_name_2": "DecalMaterialData", + "qualified_name": "keen::DecalMaterialData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2216722570, + "hash2": 3626548413, + "struct_fields": [ + { + "name": "albedoMap", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 0 + }, + { + "name": "normalMap", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 4 + }, + { + "name": "roughnessMap", + "type_name": "keen::BindlessTexture2D_float", + "type_hash": 2447819092, + "data_offset": 8 + }, + { + "name": "metallicMap", + "type_name": "keen::BindlessTexture2D_float", + "type_hash": 2447819092, + "data_offset": 12 + }, + { + "name": "emissiveMap", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 16 + }, + { + "name": "aoMap", + "type_name": "keen::BindlessTexture2D_float", + "type_hash": 2447819092, + "data_offset": 20 + }, + { + "name": "scatterScaleMap", + "type_name": "keen::BindlessTexture2D_float", + "type_hash": 2447819092, + "data_offset": 24 + }, + { + "name": "decalLayerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "scatterScaleFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDecal", + "type_name_2": "RenderDecal", + "qualified_name": "keen::RenderDecal", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1369374583, + "hash2": 3848095235, + "struct_fields": [ + { + "name": "parameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSurfaceMaterialData", + "type_name_2": "WeatherSurfaceMaterialData", + "qualified_name": "keen::WeatherSurfaceMaterialData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2196572688, + "hash2": 233500839, + "struct_fields": [ + { + "name": "snowUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "snowScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "frostUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "frostScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "frostAlbedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "frostRoughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "frostPuddleAlbedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "frostPorosityScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "snowVertexNormalPower", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "snowVertexNormalCutoff", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassMovementData", + "type_name_2": "GrassMovementData", + "qualified_name": "keen::GrassMovementData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2409518953, + "hash2": 831892505, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 0 + }, + { + "name": "reciprocalSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "validData", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TessellatedMaterialConstants", + "type_name_2": "TessellatedMaterialConstants", + "qualified_name": "keen::TessellatedMaterialConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2328535408, + "hash2": 3676951919, + "struct_fields": [ + { + "name": "levelMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "maxLevel", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShaderDebugMode", + "type_name_2": "RenderShaderDebugMode", + "qualified_name": "keen::RenderShaderDebugMode", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 45, + "primitive_type": "Enum", + "hash1": 579651665, + "hash2": 2988695950, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "DiffuseColor", + "value": 1 + }, + { + "name": "SpecularColor", + "value": 2 + }, + { + "name": "Emissive", + "value": 3 + }, + { + "name": "DiffuseResult", + "value": 4 + }, + { + "name": "SpecularResult", + "value": 5 + }, + { + "name": "IndirectSpecularResult", + "value": 6 + }, + { + "name": "IndirectDiffuseResult", + "value": 7 + }, + { + "name": "Normal", + "value": 8 + }, + { + "name": "Albedo", + "value": 9 + }, + { + "name": "Reflectance", + "value": 10 + }, + { + "name": "Metallic", + "value": 11 + }, + { + "name": "Roughness", + "value": 12 + }, + { + "name": "Ao", + "value": 13 + }, + { + "name": "SunVisibility", + "value": 14 + }, + { + "name": "VertexColorRed", + "value": 15 + }, + { + "name": "VertexColorGreen", + "value": 16 + }, + { + "name": "VertexColorBlue", + "value": 17 + }, + { + "name": "VertexColorAlpha", + "value": 18 + }, + { + "name": "VertexColorRgb", + "value": 19 + }, + { + "name": "CodeDebug", + "value": 20 + }, + { + "name": "WorldSpaceTextureDebug", + "value": 21 + }, + { + "name": "WorldSpaceWhiteTextureDebug", + "value": 22 + }, + { + "name": "DissolveMask", + "value": 23 + }, + { + "name": "TerrainMaterialLayer", + "value": 24 + }, + { + "name": "Illuminance", + "value": 25 + }, + { + "name": "Bloom", + "value": 26 + }, + { + "name": "MipLevelMin", + "value": 27 + }, + { + "name": "MipLevelMax", + "value": 28 + }, + { + "name": "Displacement", + "value": 29 + }, + { + "name": "DisplacementSide", + "value": 30 + }, + { + "name": "DisplacementTop", + "value": 31 + }, + { + "name": "DisplacementBottom", + "value": 32 + }, + { + "name": "LodIndex", + "value": 33 + }, + { + "name": "WorldSpaceScatteringTexture", + "value": 34 + }, + { + "name": "SlopeAngle", + "value": 35 + }, + { + "name": "Translucency", + "value": 36 + }, + { + "name": "ObjectSpaceNormal", + "value": 37 + }, + { + "name": "RawReflectance", + "value": 38 + }, + { + "name": "FlagAnisotropicSpecular", + "value": 39 + }, + { + "name": "FlagGiWrapShading", + "value": 40 + }, + { + "name": "FlagGiAdjustNormals", + "value": 41 + }, + { + "name": "FlagAoForDirectLighting", + "value": 42 + }, + { + "name": "DetailScatteringFadeout", + "value": 43 + }, + { + "name": "Freezing", + "value": 44 + } + ] + }, + { + "type_name_1": "RenderDebugConstants", + "type_name_2": "RenderDebugConstants", + "qualified_name": "keen::RenderDebugConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 770195866, + "hash2": 2320987144, + "struct_fields": [ + { + "name": "debugMode", + "type_name": "keen::RenderShaderDebugMode", + "type_hash": 579651665, + "data_offset": 0 + }, + { + "name": "debugNeutralAlbedo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "debugTextureIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "debugTextureAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "debugValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHeightmapSamplingShaderData", + "type_name_2": "DynamicHeightmapSamplingShaderData", + "qualified_name": "keen::DynamicHeightmapSamplingShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 720730302, + "hash2": 1719212957, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "inverseSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "origin", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 8 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "distanceFade", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSampleConstants", + "type_name_2": "WeatherSampleConstants", + "qualified_name": "keen::WeatherSampleConstants", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1964124433, + "hash2": 2637080329, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "texcoordMappingScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 4 + }, + { + "name": "texcoordMappingOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "snowBorderMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "cameraPositionY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "heightMap", + "type_name": "keen::DynamicHeightmapSamplingShaderData", + "type_hash": 720730302, + "data_offset": 48 + }, + { + "name": "heightMapCameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "frostVoxelTexcoordMappingScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "frostVoxelTexcoordMappingOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderLightFactors", + "type_name_2": "RenderLightFactors", + "qualified_name": "keen::RenderLightFactors", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 193351150, + "hash2": 2251353017, + "struct_fields": [ + { + "name": "sun", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "skyGeometrySun", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "pointLights", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "gi", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "emissive", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementData", + "type_name_2": "SnowDisplacementData", + "qualified_name": "keen::SnowDisplacementData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1950947090, + "hash2": 1978804687, + "struct_fields": [ + { + "name": "tileOrigin", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 0 + }, + { + "name": "reciprocalSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "rcpNormalScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "halfWorldSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "heightScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "validData", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float4[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float4", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1058515416, + "hash2": 2314951750, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderGBufferConstants", + "type_name_2": "RenderGBufferConstants", + "qualified_name": "keen::RenderGBufferConstants", + "referenced_type_name": null, + "class_size": 960, + "fields_count": 32, + "primitive_type": "Struct", + "hash1": 2024597802, + "hash2": 3337323233, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 176 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "prevTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "grassMovement", + "type_name": "keen::GrassMovementData", + "type_hash": 2409518953, + "data_offset": 208 + }, + { + "name": "grassMovementPrevious", + "type_name": "keen::GrassMovementData", + "type_hash": 2409518953, + "data_offset": 240 + }, + { + "name": "terrainTessellation", + "type_name": "keen::TessellatedMaterialConstants", + "type_hash": 2328535408, + "data_offset": 272 + }, + { + "name": "buildingTessellation", + "type_name": "keen::TessellatedMaterialConstants", + "type_hash": 2328535408, + "data_offset": 288 + }, + { + "name": "debugData", + "type_name": "keen::RenderDebugConstants", + "type_hash": 770195866, + "data_offset": 304 + }, + { + "name": "enableCloth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 336 + }, + { + "name": "enableLavaShader", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 340 + }, + { + "name": "buildingMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 344 + }, + { + "name": "worldMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 348 + }, + { + "name": "weatherSurfaceMaterialData", + "type_name": "keen::WeatherSurfaceMaterialData", + "type_hash": 2196572688, + "data_offset": 352 + }, + { + "name": "weather", + "type_name": "keen::WeatherSampleConstants", + "type_hash": 1964124433, + "data_offset": 416 + }, + { + "name": "lightFactors", + "type_name": "keen::RenderLightFactors", + "type_hash": 193351150, + "data_offset": 544 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 576 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 580 + }, + { + "name": "isVoxelMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 588 + }, + { + "name": "highlightAmount", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 592 + }, + { + "name": "highlightIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 596 + }, + { + "name": "highlightColorPaletteArray", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 608 + }, + { + "name": "mipBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 736 + }, + { + "name": "useStochasticMaterialSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 740 + }, + { + "name": "cancelJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 744 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 752 + }, + { + "name": "prevCameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 768 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 784 + }, + { + "name": "prevCameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 848 + }, + { + "name": "snowDisplacement", + "type_name": "keen::SnowDisplacementData", + "type_hash": 1950947090, + "data_offset": 912 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CascadeShadowShaderData", + "type_name_2": "CascadeShadowShaderData", + "qualified_name": "keen::CascadeShadowShaderData", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2385627037, + "hash2": 2088626122, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "fadeParameters0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "fadeParameters1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "CascadeShadowShaderData[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::CascadeShadowShaderData", + "class_size": 1024, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 342452771, + "hash2": 1348900467, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowAtlasShaderData", + "type_name_2": "RenderShadowAtlasShaderData", + "qualified_name": "keen::RenderShadowAtlasShaderData", + "referenced_type_name": null, + "class_size": 1088, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2144946804, + "hash2": 816014083, + "struct_fields": [ + { + "name": "viewMatrixRowZ", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "atlasSize", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "cascadeCount", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "firstCascadeDistanceFadeParameters", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 342452771, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardDirectionalLightData", + "type_name_2": "ForwardDirectionalLightData", + "qualified_name": "keen::ForwardDirectionalLightData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1304676027, + "hash2": 2600072839, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "pad1", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardIblData", + "type_name_2": "ForwardIblData", + "qualified_name": "keen::ForwardIblData", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1613276232, + "hash2": 652455612, + "struct_fields": [ + { + "name": "azimuthRotationXZ", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "specularMipLevelCount", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "isValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GraphicsMatrix43[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::GraphicsMatrix43", + "class_size": 192, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 648169813, + "hash2": 3362257787, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ShadowVolumeTransform", + "type_name_2": "Fog2ShadowVolumeTransform", + "qualified_name": "keen::Fog2ShadowVolumeTransform", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2858210314, + "hash2": 2319274094, + "struct_fields": [ + { + "name": "worldToCascadeMatrices", + "type_name": "keen::StaticArray", + "type_hash": 648169813, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ShadowVolumeSampleParameters", + "type_name_2": "Fog2ShadowVolumeSampleParameters", + "qualified_name": "keen::Fog2ShadowVolumeSampleParameters", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3512452636, + "hash2": 4280497972, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::Fog2ShadowVolumeTransform", + "type_hash": 2858210314, + "data_offset": 0 + }, + { + "name": "cascadeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 192 + }, + { + "name": "invCascadeCount", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "halfPixelWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricShadowRuntimeData", + "type_name_2": "VolumetricShadowRuntimeData", + "qualified_name": "keen::VolumetricShadowRuntimeData", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2162928446, + "hash2": 916703719, + "struct_fields": [ + { + "name": "fog2ShadowVolumeSampleParameters", + "type_name": "keen::Fog2ShadowVolumeSampleParameters", + "type_hash": 3512452636, + "data_offset": 0 + }, + { + "name": "directionalLightDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 208 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "cloudMapTexcoordMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 224 + }, + { + "name": "pad0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 232 + }, + { + "name": "pad1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DeferredLightingConstants", + "type_name_2": "DeferredLightingConstants", + "qualified_name": "keen::DeferredLightingConstants", + "referenced_type_name": null, + "class_size": 1824, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 296785462, + "hash2": 1391603429, + "struct_fields": [ + { + "name": "lightFactors", + "type_name": "keen::RenderLightFactors", + "type_hash": 193351150, + "data_offset": 0 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 32 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 176 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 240 + }, + { + "name": "playerWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "clearColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 272 + }, + { + "name": "atlasData", + "type_name": "keen::RenderShadowAtlasShaderData", + "type_hash": 2144946804, + "data_offset": 288 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 1376 + }, + { + "name": "atmosphere", + "type_name": "keen::AtmosphereShaderData", + "type_hash": 2465199211, + "data_offset": 1408 + }, + { + "name": "iblData", + "type_name": "keen::ForwardIblData", + "type_hash": 1613276232, + "data_offset": 1472 + }, + { + "name": "fogDisabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1500 + }, + { + "name": "ssaoEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1504 + }, + { + "name": "useAoMin", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1508 + }, + { + "name": "useAoMaps", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1512 + }, + { + "name": "giEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1516 + }, + { + "name": "pointLightsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1520 + }, + { + "name": "useHorizonBasedSpecularOcclusion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1524 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::VolumetricShadowRuntimeData", + "type_hash": 2162928446, + "data_offset": 1536 + }, + { + "name": "debugData", + "type_name": "keen::RenderDebugConstants", + "type_hash": 770195866, + "data_offset": 1776 + }, + { + "name": "accumulateSceneBrightness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1808 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisibilityMaterialParameters", + "type_name_2": "VisibilityMaterialParameters", + "qualified_name": "keen::VisibilityMaterialParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1382958067, + "hash2": 2206748631, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "drawCommandBufferOffsetEarly", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "drawCommandBufferOffsetEarlyTessellated", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 84 + }, + { + "name": "drawCommandBufferOffsetLate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + }, + { + "name": "drawCommandBufferOffsetLateTessellated", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float4[48]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float4", + "class_size": 768, + "fields_count": 48, + "primitive_type": "StaticArray", + "hash1": 1402398568, + "hash2": 22618108, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float4[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float4", + "class_size": 144, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 3239752981, + "hash2": 2247694179, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DepthOfFieldConstants", + "type_name_2": "DepthOfFieldConstants", + "qualified_name": "keen::DepthOfFieldConstants", + "referenced_type_name": null, + "class_size": 1024, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2857433111, + "hash2": 1555053936, + "struct_fields": [ + { + "name": "focalLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "focalDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "cocScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "kernelScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "sceneImagePixelSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "jitterOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "invProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "samplesHigh", + "type_name": "keen::StaticArray", + "type_hash": 1402398568, + "data_offset": 112 + }, + { + "name": "samplesLow", + "type_name": "keen::StaticArray", + "type_hash": 3239752981, + "data_offset": 880 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DepthPyramidShaderParameters", + "type_name_2": "DepthPyramidShaderParameters", + "qualified_name": "keen::DepthPyramidShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 839957568, + "hash2": 2493058083, + "struct_fields": [ + { + "name": "inverseOutputResolution", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "inputResolution", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterModelAlignmentAxis", + "type_name_2": "DetailScatterModelAlignmentAxis", + "qualified_name": "keen::DetailScatterModelAlignmentAxis", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3116772124, + "hash2": 1061465384, + "struct_fields": [], + "enum_fields": [ + { + "name": "PlusX", + "value": 0 + }, + { + "name": "PlusY", + "value": 1 + } + ] + }, + { + "type_name_1": "DetailScatterModel", + "type_name_2": "DetailScatterModel", + "qualified_name": "keen::DetailScatterModel", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 500981016, + "hash2": 740074124, + "struct_fields": [ + { + "name": "alignmentAxis", + "type_name": "keen::DetailScatterModelAlignmentAxis", + "type_hash": 3116772124, + "data_offset": 0 + }, + { + "name": "spawnInside", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "spawnOutside", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "alignWithNormalStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "randomRotationXStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "randomRotationYStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "randomRotationZStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "minFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "maxFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "minScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "mapScaleStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "materialWeightScaleStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DetailScatterModel", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4041845623, + "hash2": 651988460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterInstance", + "type_name_2": "DetailScatterInstance", + "qualified_name": "keen::DetailScatterInstance", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3529250984, + "hash2": 398020884, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 4041845623, + "data_offset": 0 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "onlyOnWeathered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TextureChannel", + "type_name_2": "TextureChannel", + "qualified_name": "keen::TextureChannel", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1809198816, + "hash2": 2898886368, + "struct_fields": [], + "enum_fields": [ + { + "name": "Red", + "value": 0 + }, + { + "name": "Green", + "value": 1 + }, + { + "name": "Blue", + "value": 2 + }, + { + "name": "Alpha", + "value": 3 + } + ] + }, + { + "type_name_1": "DetailScatterGroup", + "type_name_2": "DetailScatterGroup", + "qualified_name": "keen::DetailScatterGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 61242866, + "hash2": 1908668186, + "struct_fields": [ + { + "name": "mapChannel", + "type_name": "keen::TextureChannel", + "type_hash": 1809198816, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterLayer", + "type_name_2": "DetailScatterLayer", + "qualified_name": "keen::DetailScatterLayer", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2447154420, + "hash2": 1448065803, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "mapTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterLayerShaderData", + "type_name_2": "DetailScatterLayerShaderData", + "qualified_name": "keen::DetailScatterLayerShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2362003333, + "hash2": 3222194390, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 0 + }, + { + "name": "mapTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "pad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "pad1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "edgeNoiseMap", + "type_name": "keen::BindlessTexture2D_float", + "type_hash": 2447819092, + "data_offset": 16 + }, + { + "name": "edgeNoiseTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "edgeNoiseMappingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "pad2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "modelOffset", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 32 + }, + { + "name": "modelCount", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterModelProbabilityCutoffShaderData", + "type_name_2": "DetailScatterModelProbabilityCutoffShaderData", + "qualified_name": "keen::DetailScatterModelProbabilityCutoffShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3008162779, + "hash2": 2767793647, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterModelShaderData", + "type_name_2": "DetailScatterModelShaderData", + "qualified_name": "keen::DetailScatterModelShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2807584569, + "hash2": 4070344890, + "struct_fields": [ + { + "name": "minFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "alignWithNormalStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "params0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "params1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "lodDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterShaderData", + "type_name_2": "DetailScatterShaderData", + "qualified_name": "keen::DetailScatterShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3999083094, + "hash2": 3037759190, + "struct_fields": [ + { + "name": "scatterMapSampler", + "type_name": "keen::BindlessSampler", + "type_hash": 3266652824, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "pad1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "pad2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 178332859, + "hash2": 3641197448, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterResource", + "type_name_2": "DetailScatterResource", + "qualified_name": "keen::DetailScatterResource", + "referenced_type_name": null, + "class_size": 220, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2907528183, + "hash2": 3568504365, + "struct_fields": [ + { + "name": "shaderDataParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 0 + }, + { + "name": "layersShaderDataParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 52 + }, + { + "name": "modelsShaderDataParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 104 + }, + { + "name": "modelProbabilityCutoffsShaderDataParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 156 + }, + { + "name": "models", + "type_name": "keen::BlobArray>", + "type_hash": 178332859, + "data_offset": 208 + }, + { + "name": "largestModelRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DissolveMaterialParameters", + "type_name_2": "DissolveMaterialParameters", + "qualified_name": "keen::DissolveMaterialParameters", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3960633956, + "hash2": 1935557195, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "noiseTiling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "noiseFadeRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "noiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 12 + }, + { + "name": "enableEdgeGlow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "edgeWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "edgeColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHeightmapFillShaderParameters", + "type_name_2": "DynamicHeightmapFillShaderParameters", + "qualified_name": "keen::DynamicHeightmapFillShaderParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 42187482, + "hash2": 3431556126, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "ditherPos", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "origin", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 24 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "worldTop", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHeightmapRasterizeTreesShaderParameters", + "type_name_2": "DynamicHeightmapRasterizeTreesShaderParameters", + "qualified_name": "keen::DynamicHeightmapRasterizeTreesShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 931924185, + "hash2": 1628890984, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollectGpuCullingTreesShaderParameters", + "type_name_2": "CollectGpuCullingTreesShaderParameters", + "qualified_name": "keen::CollectGpuCullingTreesShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2439591618, + "hash2": 1949755582, + "struct_fields": [ + { + "name": "drawCountBufferOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "drawCommandBufferOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FfxShadowDenoiserShaderParameters", + "type_name_2": "FfxShadowDenoiserShaderParameters", + "qualified_name": "keen::FfxShadowDenoiserShaderParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3378827460, + "hash2": 2923282289, + "struct_fields": [ + { + "name": "inverseProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "reprojectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 192 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 240 + }, + { + "name": "packedSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 256 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 264 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 272 + }, + { + "name": "isFirstFrame", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 280 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 284 + }, + { + "name": "depthSigma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FfxShadowDenoiserPushConstants", + "type_name_2": "FfxShadowDenoiserPushConstants", + "qualified_name": "keen::FfxShadowDenoiserPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3753735938, + "hash2": 498494493, + "struct_fields": [ + { + "name": "stepSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogMaterialParameters", + "type_name_2": "FogMaterialParameters", + "qualified_name": "keen::FogMaterialParameters", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 346799499, + "hash2": 1428979014, + "struct_fields": [ + { + "name": "absorption", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "scattering", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 4 + }, + { + "name": "emission", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 8 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoliageAnimationAdvancedParameters", + "type_name_2": "FoliageAnimationAdvancedParameters", + "qualified_name": "keen::FoliageAnimationAdvancedParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3362285663, + "hash2": 2247300380, + "struct_fields": [ + { + "name": "branchPhaseOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "detailFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "edgeAmplitude", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "branchAmplitude", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoliageAnimationModelParameters", + "type_name_2": "FoliageAnimationModelParameters", + "qualified_name": "keen::FoliageAnimationModelParameters", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1192348350, + "hash2": 2802406059, + "struct_fields": [ + { + "name": "assetHeightFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "globalStiffnessFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "advancedParameters", + "type_name": "keen::FoliageAnimationAdvancedParameters", + "type_hash": 3362285663, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassPushbackModelParameters", + "type_name_2": "GrassPushbackModelParameters", + "qualified_name": "keen::GrassPushbackModelParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3923702812, + "hash2": 67403063, + "struct_fields": [ + { + "name": "bounceTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bounceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "bounceDamping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassPushbackShaderParameters", + "type_name_2": "GrassPushbackShaderParameters", + "qualified_name": "keen::GrassPushbackShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4259655718, + "hash2": 2585647714, + "struct_fields": [ + { + "name": "bounceDamping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bounceFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "oneOverBounceTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoliageAnimationShaderParameters", + "type_name_2": "FoliageAnimationShaderParameters", + "qualified_name": "keen::FoliageAnimationShaderParameters", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1736297024, + "hash2": 255099584, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "precomputedBendScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "globalStiffnessFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "advancedParameters", + "type_name": "keen::FoliageAnimationAdvancedParameters", + "type_hash": 3362285663, + "data_offset": 12 + }, + { + "name": "pushBack", + "type_name": "keen::GrassPushbackShaderParameters", + "type_hash": 4259655718, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassAnimationModelParameters", + "type_name_2": "GrassAnimationModelParameters", + "qualified_name": "keen::GrassAnimationModelParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3537533703, + "hash2": 2422626774, + "struct_fields": [ + { + "name": "largeDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "smallDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassAnimationShaderParameters", + "type_name_2": "GrassAnimationShaderParameters", + "qualified_name": "keen::GrassAnimationShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1493835619, + "hash2": 2848698280, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "largeDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "smallDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "oneOverModelHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pushBack", + "type_name": "keen::GrassPushbackShaderParameters", + "type_hash": 4259655718, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForestFogFootprintMaterial", + "type_name_2": "ForestFogFootprintMaterial", + "qualified_name": "keen::ForestFogFootprintMaterial", + "referenced_type_name": "keen::Material", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3862500401, + "hash2": 1505674715, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ForestFogFootprintRenderMaterial", + "type_name_2": "ForestFogFootprintRenderMaterial", + "qualified_name": "keen::ForestFogFootprintRenderMaterial", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2236835793, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderPushConstants2", + "type_name_2": "RenderPushConstants2", + "qualified_name": "keen::RenderPushConstants2", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3913018155, + "hash2": 4191896452, + "struct_fields": [ + { + "name": "drawCommandBufferOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "isLateCullingPass", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "drawIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "isRunningOnSteamDeck", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxDrawPushConstants", + "type_name_2": "VfxDrawPushConstants", + "qualified_name": "keen::VfxDrawPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2760799041, + "hash2": 2154756165, + "struct_fields": [ + { + "name": "baseDrawIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowPassConstants", + "type_name_2": "RenderShadowPassConstants", + "qualified_name": "keen::RenderShadowPassConstants", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 3213603436, + "hash2": 2201468093, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "grassMovement", + "type_name": "keen::GrassMovementData", + "type_hash": 2409518953, + "data_offset": 80 + }, + { + "name": "snowDisplacement", + "type_name": "keen::SnowDisplacementData", + "type_hash": 1950947090, + "data_offset": 112 + }, + { + "name": "enableCloth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "terrainTessellation", + "type_name": "keen::TessellatedMaterialConstants", + "type_hash": 2328535408, + "data_offset": 176 + }, + { + "name": "buildingTessellation", + "type_name": "keen::TessellatedMaterialConstants", + "type_hash": 2328535408, + "data_offset": 192 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 212 + }, + { + "name": "useStochasticMaterialSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "isVoxelMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 224 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 240 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 256 + }, + { + "name": "buildingMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 320 + }, + { + "name": "worldMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 324 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDepthConstants", + "type_name_2": "RenderDepthConstants", + "qualified_name": "keen::RenderDepthConstants", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 3547343164, + "hash2": 1349605078, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "prevTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "grassMovement", + "type_name": "keen::GrassMovementData", + "type_hash": 2409518953, + "data_offset": 96 + }, + { + "name": "grassMovementPrevious", + "type_name": "keen::GrassMovementData", + "type_hash": 2409518953, + "data_offset": 128 + }, + { + "name": "snowDisplacement", + "type_name": "keen::SnowDisplacementData", + "type_hash": 1950947090, + "data_offset": 160 + }, + { + "name": "enableCloth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "terrainTessellation", + "type_name": "keen::TessellatedMaterialConstants", + "type_hash": 2328535408, + "data_offset": 224 + }, + { + "name": "buildingTessellation", + "type_name": "keen::TessellatedMaterialConstants", + "type_hash": 2328535408, + "data_offset": 240 + }, + { + "name": "mipBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 256 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 260 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 264 + }, + { + "name": "useStochasticMaterialSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "isVoxelMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 276 + }, + { + "name": "cancelJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 280 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 288 + }, + { + "name": "prevCameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 304 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 320 + }, + { + "name": "prevCameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 384 + }, + { + "name": "buildingMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 448 + }, + { + "name": "worldMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 452 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderForwardConstants", + "type_name_2": "RenderForwardConstants", + "qualified_name": "keen::RenderForwardConstants", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1078671472, + "hash2": 3421574261, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 176 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 240 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 268 + }, + { + "name": "debugData", + "type_name": "keen::RenderDebugConstants", + "type_hash": 770195866, + "data_offset": 272 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 304 + }, + { + "name": "lightFactors", + "type_name": "keen::RenderLightFactors", + "type_hash": 193351150, + "data_offset": 336 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldShadowCascadeShaderData", + "type_name_2": "VoxelWorldShadowCascadeShaderData", + "qualified_name": "keen::VoxelWorldShadowCascadeShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1251143597, + "hash2": 2674204803, + "struct_fields": [ + { + "name": "worldToShadowMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VoxelWorldShadowCascadeShaderData[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::VoxelWorldShadowCascadeShaderData", + "class_size": 128, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2649366733, + "hash2": 1126795929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldShadowMapShaderData", + "type_name_2": "VoxelWorldShadowMapShaderData", + "qualified_name": "keen::VoxelWorldShadowMapShaderData", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1856726557, + "hash2": 3267012130, + "struct_fields": [ + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 2649366733, + "data_offset": 0 + }, + { + "name": "shadowMapSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 128 + }, + { + "name": "inverseShadowMapSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 136 + }, + { + "name": "isValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTransparentConstants", + "type_name_2": "RenderTransparentConstants", + "qualified_name": "keen::RenderTransparentConstants", + "referenced_type_name": null, + "class_size": 1952, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 581049425, + "hash2": 475724939, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 176 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "debugData", + "type_name": "keen::RenderDebugConstants", + "type_hash": 770195866, + "data_offset": 192 + }, + { + "name": "fogDisabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 224 + }, + { + "name": "shadowsDisabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 228 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 232 + }, + { + "name": "measureOverdraw", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 236 + }, + { + "name": "isFsrEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 240 + }, + { + "name": "atlasData", + "type_name": "keen::RenderShadowAtlasShaderData", + "type_hash": 2144946804, + "data_offset": 256 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 1344 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::VolumetricShadowRuntimeData", + "type_hash": 2162928446, + "data_offset": 1376 + }, + { + "name": "atmosphere", + "type_name": "keen::AtmosphereShaderData", + "type_hash": 2465199211, + "data_offset": 1616 + }, + { + "name": "lightFactors", + "type_name": "keen::RenderLightFactors", + "type_hash": 193351150, + "data_offset": 1680 + }, + { + "name": "voxelWorldShadowMap", + "type_name": "keen::VoxelWorldShadowMapShaderData", + "type_hash": 1856726557, + "data_offset": 1712 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 1872 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 1888 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDebugPassConstants", + "type_name_2": "RenderDebugPassConstants", + "qualified_name": "keen::RenderDebugPassConstants", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3862268501, + "hash2": 998616150, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 64 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::VolumetricShadowRuntimeData", + "type_hash": 2162928446, + "data_offset": 96 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 336 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ViewSpacePositionReconstructionData", + "type_name_2": "ViewSpacePositionReconstructionData", + "qualified_name": "keen::ViewSpacePositionReconstructionData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 285426432, + "hash2": 598741519, + "struct_fields": [ + { + "name": "screenToTargetSpaceTransform", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ViewVolumeTransform", + "type_name_2": "Fog2ViewVolumeTransform", + "qualified_name": "keen::Fog2ViewVolumeTransform", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3033169385, + "hash2": 2630561863, + "struct_fields": [ + { + "name": "depthRemap", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "invDepthRemap", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ViewVolumeSampleParameters", + "type_name_2": "Fog2ViewVolumeSampleParameters", + "qualified_name": "keen::Fog2ViewVolumeSampleParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3003647689, + "hash2": 3155277211, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 0 + }, + { + "name": "viewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderForwardTransparentConstants", + "type_name_2": "RenderForwardTransparentConstants", + "qualified_name": "keen::RenderForwardTransparentConstants", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 727864844, + "hash2": 1500665846, + "struct_fields": [ + { + "name": "viewSpacePositionReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 0 + }, + { + "name": "viewVolumeSampleParameters", + "type_name": "keen::Fog2ViewVolumeSampleParameters", + "type_hash": 3003647689, + "data_offset": 64 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 96 + }, + { + "name": "fogFlags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelMaterialDataType", + "type_name_2": "RenderModelMaterialDataType", + "qualified_name": "keen::RenderModelMaterialDataType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 643651422, + "hash2": 3349349107, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "GrassAnimation", + "value": 1 + }, + { + "name": "FoliageAnimation", + "value": 2 + } + ] + }, + { + "type_name_1": "Fsr3UpscalerConstants", + "type_name_2": "Fsr3UpscalerConstants", + "qualified_name": "keen::Fsr3UpscalerConstants", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 3079492380, + "hash2": 4762807, + "struct_fields": [ + { + "name": "iRenderSize", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + }, + { + "name": "iMaxRenderSize", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 8 + }, + { + "name": "iDisplaySize", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 16 + }, + { + "name": "iInputColorResourceDimensions", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 24 + }, + { + "name": "iLumaMipDimensions", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 32 + }, + { + "name": "iLumaMipLevelToUse", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 40 + }, + { + "name": "iFrameIndex", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 44 + }, + { + "name": "fDeviceToViewDepth", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "fJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 64 + }, + { + "name": "fMotionVectorScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 72 + }, + { + "name": "fDownscaleFactor", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 80 + }, + { + "name": "fMotionVectorJitterCancellation", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 88 + }, + { + "name": "fExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "fPreExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "fPreviousFramePreExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "fTanHalfFOV", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 108 + }, + { + "name": "fJitterSequenceLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "fDeltaTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 116 + }, + { + "name": "fDynamicResChangeFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "fViewSpaceToMetersFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fsr3UpscalerSpdConstants", + "type_name_2": "Fsr3UpscalerSpdConstants", + "qualified_name": "keen::Fsr3UpscalerSpdConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2783416609, + "hash2": 1826394338, + "struct_fields": [ + { + "name": "mips", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "numWorkGroups", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "workGroupOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "renderSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fsr3UpscalerRcasConstants", + "type_name_2": "Fsr3UpscalerRcasConstants", + "qualified_name": "keen::Fsr3UpscalerRcasConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1058186085, + "hash2": 2721044546, + "struct_fields": [ + { + "name": "rcasConfig", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiQuality", + "type_name_2": "GiQuality", + "qualified_name": "keen::GiQuality", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 1788268363, + "hash2": 1041728364, + "struct_fields": [], + "enum_fields": [ + { + "name": "Performance", + "value": 0 + }, + { + "name": "Balance", + "value": 1 + }, + { + "name": "High", + "value": 2 + }, + { + "name": "Ultra", + "value": 3 + }, + { + "name": "GroundTruth", + "value": 4 + } + ] + }, + { + "type_name_1": "GiProbeSize", + "type_name_2": "GiProbeSize", + "qualified_name": "keen::GiProbeSize", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 792682305, + "hash2": 544683631, + "struct_fields": [], + "enum_fields": [ + { + "name": "PixelCount_8", + "value": 0 + }, + { + "name": "PixelCount_16", + "value": 1 + }, + { + "name": "PixelCount_32", + "value": 2 + } + ] + }, + { + "type_name_1": "GiIrradianceProbeSize", + "type_name_2": "GiIrradianceProbeSize", + "qualified_name": "keen::GiIrradianceProbeSize", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3257071983, + "hash2": 439075613, + "struct_fields": [], + "enum_fields": [ + { + "name": "PixelCount_8", + "value": 0 + }, + { + "name": "PixelCount_12", + "value": 1 + }, + { + "name": "PixelCount_16", + "value": 2 + } + ] + }, + { + "type_name_1": "GiDispatchSize", + "type_name_2": "GiDispatchSize", + "qualified_name": "keen::GiDispatchSize", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1323367465, + "hash2": 1614961039, + "struct_fields": [], + "enum_fields": [ + { + "name": "Dispatch_3x3x3", + "value": 0 + }, + { + "name": "Dispatch_7x7x7", + "value": 1 + } + ] + }, + { + "type_name_1": "SdfBvhVariant", + "type_name_2": "SdfBvhVariant", + "qualified_name": "keen::SdfBvhVariant", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2666447604, + "hash2": 3469410370, + "struct_fields": [], + "enum_fields": [ + { + "name": "VoxelWorld", + "value": 0 + }, + { + "name": "VoxelWorldAndModels", + "value": 1 + } + ] + }, + { + "type_name_1": "GiQualitySettings", + "type_name_2": "GiQualitySettings", + "qualified_name": "keen::GiQualitySettings", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 30, + "primitive_type": "Struct", + "hash1": 51083222, + "hash2": 2842845490, + "struct_fields": [ + { + "name": "radianceAndDistancePixelCount", + "type_name": "keen::GiProbeSize", + "type_hash": 792682305, + "data_offset": 0 + }, + { + "name": "irradiancePixelCount", + "type_name": "keen::GiIrradianceProbeSize", + "type_hash": 3257071983, + "data_offset": 4 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "globalRayBudget", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "frustumRaysScaleUpBudgetThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "frustumMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "frustumIncreasedMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "frustumMaxProbeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "frustumRayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "worldCacheRayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "worldCacheMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "worldCacheMaxProbeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "ambientRayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "ambientMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "ambientMaxProbeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + }, + { + "name": "ambientFroxelDepthSliceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + }, + { + "name": "frustumLightCacheStartDiameter", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "worldCacheLightCacheStartDiameter", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "maxNeighboursSharingHistory", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 76 + }, + { + "name": "maxNeighboursSharingRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 80 + }, + { + "name": "neighbourCandidateDispatchSize", + "type_name": "keen::GiDispatchSize", + "type_hash": 1323367465, + "data_offset": 84 + }, + { + "name": "fillAmbientProbeRayCountScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "fillAmbientProbesIteratively", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "minimumFilledRaysToAmbientProbes", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 96 + }, + { + "name": "prefilterRadianceLevelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "prefilterAngleScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 108 + }, + { + "name": "worldCacheRayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 112 + }, + { + "name": "sdfBvhVariant", + "type_name": "keen::SdfBvhVariant", + "type_hash": 2666447604, + "data_offset": 116 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiSunLightShaderData", + "type_name_2": "GiSunLightShaderData", + "qualified_name": "keen::GiSunLightShaderData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3333975069, + "hash2": 2808858769, + "struct_fields": [ + { + "name": "direction0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "directLight0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "indirectLight0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "direction1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "indirectLight1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiShadowShaderData", + "type_name_2": "GiShadowShaderData", + "qualified_name": "keen::GiShadowShaderData", + "referenced_type_name": null, + "class_size": 1344, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4055105807, + "hash2": 1021337118, + "struct_fields": [ + { + "name": "shadowAtlas", + "type_name": "keen::RenderShadowAtlasShaderData", + "type_hash": 2144946804, + "data_offset": 0 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::VolumetricShadowRuntimeData", + "type_hash": 2162928446, + "data_offset": 1088 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbe", + "type_name_2": "GiProbe", + "qualified_name": "keen::GiProbe", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 194000592, + "hash2": 2924810981, + "struct_fields": [ + { + "name": "pushedOutPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "probeDataQuality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "probeRadianceSum", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "rayListStartIndexAndProbeState", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "rayListRayCountAndRequestedRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiMovingAverageEstimatorData", + "type_name_2": "GiMovingAverageEstimatorData", + "qualified_name": "keen::GiMovingAverageEstimatorData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 318174307, + "hash2": 1498616615, + "struct_fields": [ + { + "name": "shortMean", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "vbbr", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "variance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "inconsistency", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiMovingAverageEstimatorDataEncoded", + "type_name_2": "GiMovingAverageEstimatorDataEncoded", + "qualified_name": "keen::GiMovingAverageEstimatorDataEncoded", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4009797759, + "hash2": 2537326575, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeType", + "type_name_2": "GiProbeType", + "qualified_name": "keen::GiProbeType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 875398136, + "hash2": 155257951, + "struct_fields": [], + "enum_fields": [ + { + "name": "FrustumProbe", + "value": 0 + }, + { + "name": "WorldCacheProbe", + "value": 1 + }, + { + "name": "AmbientProbe", + "value": 2 + }, + { + "name": "Invalid", + "value": 3 + } + ] + }, + { + "type_name_1": "GiRayHitType", + "type_name_2": "GiRayHitType", + "qualified_name": "keen::GiRayHitType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3831701099, + "hash2": 2578483995, + "struct_fields": [], + "enum_fields": [ + { + "name": "Terrain", + "value": 0 + }, + { + "name": "Building", + "value": 1 + }, + { + "name": "Sky", + "value": 2 + }, + { + "name": "Invalid", + "value": 3 + } + ] + }, + { + "type_name_1": "GiRayHit", + "type_name_2": "GiRayHit", + "qualified_name": "keen::GiRayHit", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1651705779, + "hash2": 1438497726, + "struct_fields": [ + { + "name": "octahedralNormal", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "rayHitIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "sdfLevelAndHitTypeAndRayIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayHitDecoded", + "type_name_2": "GiRayHitDecoded", + "qualified_name": "keen::GiRayHitDecoded", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3571050643, + "hash2": 1790003270, + "struct_fields": [ + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "rayHitIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "sdfLevel", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "hitType", + "type_name": "keen::GiRayHitType", + "type_hash": 3831701099, + "data_offset": 32 + }, + { + "name": "rayIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayHitCounters", + "type_name_2": "GiRayHitCounters", + "qualified_name": "keen::GiRayHitCounters", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1761533090, + "hash2": 2232351496, + "struct_fields": [ + { + "name": "terrainRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "buildingRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "skyRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayEncoded", + "type_name_2": "GiRayEncoded", + "qualified_name": "keen::GiRayEncoded", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 349514100, + "hash2": 2537326575, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayDecoded", + "type_name_2": "GiRayDecoded", + "qualified_name": "keen::GiRayDecoded", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3983305760, + "hash2": 3104930016, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "hitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "radiance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayListData", + "type_name_2": "GiRayListData", + "qualified_name": "keen::GiRayListData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1621015166, + "hash2": 3122931902, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "probeIndexAndRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "rayStorageIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPrepareVisualisationParameters", + "type_name_2": "GiPrepareVisualisationParameters", + "qualified_name": "keen::GiPrepareVisualisationParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3296176330, + "hash2": 631631906, + "struct_fields": [ + { + "name": "cameraOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "farPlaneOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "farPlaneX", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "farPlaneY", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialBlendingConstants", + "type_name_2": "VoxelMaterialBlendingConstants", + "qualified_name": "keen::VoxelMaterialBlendingConstants", + "referenced_type_name": null, + "class_size": 512, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3924609671, + "hash2": 750681311, + "struct_fields": [ + { + "name": "fogGrid", + "type_name": "keen::VolumetricFogGridShaderData", + "type_hash": 2062480343, + "data_offset": 0 + }, + { + "name": "hasBakingData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 496 + }, + { + "name": "hasSimpleWorldData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 500 + }, + { + "name": "buildingMaterialCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 504 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 508 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheCascadeShaderData", + "type_name_2": "LightCacheCascadeShaderData", + "qualified_name": "keen::LightCacheCascadeShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2731341371, + "hash2": 667445811, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "scrollDelta", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "LightCacheCascadeShaderData[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::LightCacheCascadeShaderData", + "class_size": 384, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 1254258226, + "hash2": 2672061216, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLookupShaderData", + "type_name_2": "LightCacheLookupShaderData", + "qualified_name": "keen::LightCacheLookupShaderData", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 195997631, + "hash2": 2810281343, + "struct_fields": [ + { + "name": "gridOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "cascadeCellStartDiameter", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 1254258226, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVisualisationParameters", + "type_name_2": "GiVisualisationParameters", + "qualified_name": "keen::GiVisualisationParameters", + "referenced_type_name": null, + "class_size": 3056, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 1336613647, + "hash2": 2001105125, + "struct_fields": [ + { + "name": "voxelMaterialBlending", + "type_name": "keen::VoxelMaterialBlendingConstants", + "type_hash": 3924609671, + "data_offset": 0 + }, + { + "name": "atmosphere", + "type_name": "keen::AtmosphereShaderData", + "type_hash": 2465199211, + "data_offset": 512 + }, + { + "name": "shadow", + "type_name": "keen::GiShadowShaderData", + "type_hash": 4055105807, + "data_offset": 576 + }, + { + "name": "primaryLightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 1920 + }, + { + "name": "worldCachelightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 2320 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::WeatherSampleConstants", + "type_hash": 1964124433, + "data_offset": 2720 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 2848 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 2912 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2920 + }, + { + "name": "cameraOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2928 + }, + { + "name": "lightFactorPointLights", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2940 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2944 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2956 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2960 + }, + { + "name": "farPlaneOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2964 + }, + { + "name": "forceNeutralAlbedo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2976 + }, + { + "name": "farPlaneX", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2980 + }, + { + "name": "useWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2992 + }, + { + "name": "farPlaneY", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2996 + }, + { + "name": "useFrustumProbesAsWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3008 + }, + { + "name": "lightFactorSun", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 3012 + }, + { + "name": "lightFactorEmissive", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3024 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 3028 + }, + { + "name": "lightFactorGi", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3040 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3044 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCreateProbeDrawCommandPushConstants", + "type_name_2": "GiCreateProbeDrawCommandPushConstants", + "qualified_name": "keen::GiCreateProbeDrawCommandPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1790893788, + "hash2": 3553563477, + "struct_fields": [ + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrefilterLevels", + "type_name_2": "GiProbePrefilterLevels", + "qualified_name": "keen::GiProbePrefilterLevels", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3850475064, + "hash2": 2387265748, + "struct_fields": [ + { + "name": "probeSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GiProbePrefilterLevels[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::GiProbePrefilterLevels", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 968579052, + "hash2": 3513173974, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeVisualisationParameters", + "type_name_2": "GiProbeVisualisationParameters", + "qualified_name": "keen::GiProbeVisualisationParameters", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3260739493, + "hash2": 813062319, + "struct_fields": [ + { + "name": "radianceMapProbeLevels", + "type_name": "keen::StaticArray", + "type_hash": 968579052, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "sphereBandPower", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 192 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 196 + }, + { + "name": "drawPixelCage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "hoverProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 204 + }, + { + "name": "selectedProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "pushOutByDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 212 + }, + { + "name": "drawIrradiance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 216 + }, + { + "name": "visibleRadianceSpecularMip", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 224 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 228 + }, + { + "name": "debugWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 232 + }, + { + "name": "probeSizeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 236 + }, + { + "name": "drawMovingAverageEstimatorShortMean", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 240 + }, + { + "name": "drawMovingAverageEstimatorVbbr", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 244 + }, + { + "name": "drawMovingAverageEstimatorVariance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 248 + }, + { + "name": "drawMovingAverageEstimatorInconsistency", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiShootShadowRaysParameters", + "type_name_2": "GiShootShadowRaysParameters", + "qualified_name": "keen::GiShootShadowRaysParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1496538060, + "hash2": 883747324, + "struct_fields": [ + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "drawSunShadowRayProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeUpdateParameters", + "type_name_2": "GiProbeUpdateParameters", + "qualified_name": "keen::GiProbeUpdateParameters", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3367753061, + "hash2": 2056581533, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "minMaxRayCount", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 400 + }, + { + "name": "maxDeleteListCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 412 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 416 + }, + { + "name": "drawPushOut", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 420 + }, + { + "name": "framesTillProbeInactive", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 424 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 428 + }, + { + "name": "probeRecycleAgeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 432 + }, + { + "name": "invFramesTillProbeInactive", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 436 + }, + { + "name": "invFramesTillProbeQualityReached", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 440 + }, + { + "name": "useDirectionToOffsetProbes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 444 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheFreeEntriesConstants", + "type_name_2": "LightCacheFreeEntriesConstants", + "qualified_name": "keen::LightCacheFreeEntriesConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 982595943, + "hash2": 519382374, + "struct_fields": [ + { + "name": "maxDeleteListCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeShootRaysParameters", + "type_name_2": "GiProbeShootRaysParameters", + "qualified_name": "keen::GiProbeShootRaysParameters", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 4255300294, + "hash2": 654664957, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 400 + }, + { + "name": "debugScreenSizeInv", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 464 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 472 + }, + { + "name": "rotateRays", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 476 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 480 + }, + { + "name": "writeOutDirection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 484 + }, + { + "name": "traceBvhSdfInstances", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 488 + }, + { + "name": "useSortedBins", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 492 + }, + { + "name": "showRayBins", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 496 + }, + { + "name": "debugSelectedProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 500 + }, + { + "name": "debugMouseScreenPosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 504 + }, + { + "name": "rayBinDirectionIndexRange", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 512 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeSortHitsParameters", + "type_name_2": "GiProbeSortHitsParameters", + "qualified_name": "keen::GiProbeSortHitsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1372186678, + "hash2": 762570081, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeShadeHitsParameters", + "type_name_2": "GiProbeShadeHitsParameters", + "qualified_name": "keen::GiProbeShadeHitsParameters", + "referenced_type_name": null, + "class_size": 3088, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 2543834751, + "hash2": 4024950180, + "struct_fields": [ + { + "name": "voxelMaterialBlending", + "type_name": "keen::VoxelMaterialBlendingConstants", + "type_hash": 3924609671, + "data_offset": 0 + }, + { + "name": "primaryLightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 512 + }, + { + "name": "worldCachelightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 912 + }, + { + "name": "atmosphere", + "type_name": "keen::AtmosphereShaderData", + "type_hash": 2465199211, + "data_offset": 1312 + }, + { + "name": "shadow", + "type_name": "keen::GiShadowShaderData", + "type_hash": 4055105807, + "data_offset": 1376 + }, + { + "name": "sun", + "type_name": "keen::GiSunLightShaderData", + "type_hash": 3333975069, + "data_offset": 2720 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::WeatherSampleConstants", + "type_hash": 1964124433, + "data_offset": 2800 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2928 + }, + { + "name": "lightFactorPointLights", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2940 + }, + { + "name": "sunColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2944 + }, + { + "name": "maxHitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2956 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2960 + }, + { + "name": "lightFactorEmissive", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2972 + }, + { + "name": "debugRaysRange", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 2976 + }, + { + "name": "lightFactorGi", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2984 + }, + { + "name": "enablePointLights", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2988 + }, + { + "name": "enablePointLightShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2992 + }, + { + "name": "pointLightInfluenceScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2996 + }, + { + "name": "traceBvhSdfInstances", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3000 + }, + { + "name": "forceNeutralAlbedo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3004 + }, + { + "name": "isFogEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3008 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3012 + }, + { + "name": "useWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3016 + }, + { + "name": "useFrustumProbesAsWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3020 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3024 + }, + { + "name": "primaryCacheExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3028 + }, + { + "name": "worldCacheExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3032 + }, + { + "name": "drawRaysInRange", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3036 + }, + { + "name": "drawRaysProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3040 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3044 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3048 + }, + { + "name": "applyWetness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3052 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 3056 + }, + { + "name": "applySnow", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3068 + }, + { + "name": "applyCloudMap", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3072 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRasterizeIrradianceParameters", + "type_name_2": "GiRasterizeIrradianceParameters", + "qualified_name": "keen::GiRasterizeIrradianceParameters", + "referenced_type_name": null, + "class_size": 912, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 115692341, + "hash2": 2135704399, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "radianceMapProbeLevels", + "type_name": "keen::StaticArray", + "type_hash": 968579052, + "data_offset": 400 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 528 + }, + { + "name": "previousInvViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 592 + }, + { + "name": "clipSpaceToCameraCenteredMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 656 + }, + { + "name": "previousCameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 720 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 784 + }, + { + "name": "radianceMipsCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 796 + }, + { + "name": "previousCameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 800 + }, + { + "name": "useStochasticSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 812 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 816 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 824 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 832 + }, + { + "name": "previousExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 840 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 844 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 848 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 856 + }, + { + "name": "useStochasticReflectedRadiance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 860 + }, + { + "name": "useStochasticReflectedIrradiance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 864 + }, + { + "name": "stochasticFrameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 868 + }, + { + "name": "useHistory", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 872 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 876 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 880 + }, + { + "name": "colorCodeReprojection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 884 + }, + { + "name": "mousePos", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 888 + }, + { + "name": "drawPixelCage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 896 + }, + { + "name": "groundTruthSpecular", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 900 + }, + { + "name": "writeToSceneBrightness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 904 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVisualizeIrradianceParameters", + "type_name_2": "GiVisualizeIrradianceParameters", + "qualified_name": "keen::GiVisualizeIrradianceParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2884495954, + "hash2": 2739564824, + "struct_fields": [ + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "giLightFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendRadianceParameters", + "type_name_2": "GiProbeBlendRadianceParameters", + "qualified_name": "keen::GiProbeBlendRadianceParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3607582238, + "hash2": 44250263, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "previousExposureInverse", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "maxRayRadiance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "warmupProbeQualityBorderline", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "varianceGuidedRayCountThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendWorldCacheRadianceParameters", + "type_name_2": "GiProbeBlendWorldCacheRadianceParameters", + "qualified_name": "keen::GiProbeBlendWorldCacheRadianceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1660593140, + "hash2": 2400849024, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxRayRadiance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "previousExposureInverse", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiBlendNeighbourRadianceProbesParameters", + "type_name_2": "GiBlendNeighbourRadianceProbesParameters", + "qualified_name": "keen::GiBlendNeighbourRadianceProbesParameters", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 846015554, + "hash2": 2341082214, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 400 + }, + { + "name": "exposureCorrectionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 404 + }, + { + "name": "blendIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 408 + }, + { + "name": "blendRaysIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 412 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 416 + }, + { + "name": "drawNeighbourBlendProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 420 + }, + { + "name": "showBlendPixels", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 424 + }, + { + "name": "onlyShowDebugInfo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 428 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 432 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 436 + }, + { + "name": "allowOccludedPixelsAfterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 440 + }, + { + "name": "occludedPixelsDepthBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 444 + }, + { + "name": "debugNeighbourPixelProjection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 448 + }, + { + "name": "debugPixelProjectionParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 452 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiBlendNeighbourRadianceProbesRootConstantData", + "type_name_2": "GiBlendNeighbourRadianceProbesRootConstantData", + "qualified_name": "keen::GiBlendNeighbourRadianceProbesRootConstantData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3864855358, + "hash2": 2589596097, + "struct_fields": [ + { + "name": "randomSeed", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "doNotShareProbesBelowQuality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "blendIterations", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeShadeHitsPipelineRootConstantData", + "type_name_2": "GiProbeShadeHitsPipelineRootConstantData", + "qualified_name": "keen::GiProbeShadeHitsPipelineRootConstantData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 652261329, + "hash2": 2530629839, + "struct_fields": [ + { + "name": "rayHitType", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "probeType", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrepareShadeIndirectDispatchesParameters", + "type_name_2": "GiProbePrepareShadeIndirectDispatchesParameters", + "qualified_name": "keen::GiProbePrepareShadeIndirectDispatchesParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 427112016, + "hash2": 1087977749, + "struct_fields": [ + { + "name": "dispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "shadowDispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "prepareShadowRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrefilterRadianceParameters", + "type_name_2": "GiProbePrefilterRadianceParameters", + "qualified_name": "keen::GiProbePrefilterRadianceParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1848123246, + "hash2": 2845628628, + "struct_fields": [ + { + "name": "lowResolutionSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "invProbeSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "invSourceProbeSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "sampleScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "linearEnergyScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "cosAngleScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendIrradianceParameters", + "type_name_2": "GiProbeBlendIrradianceParameters", + "qualified_name": "keen::GiProbeBlendIrradianceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 872646409, + "hash2": 2163762324, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "updateFromPreviousExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "highlightNewProbes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendDistanceParameters", + "type_name_2": "GiProbeBlendDistanceParameters", + "qualified_name": "keen::GiProbeBlendDistanceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3596253064, + "hash2": 91593974, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeDebugData", + "type_name_2": "GiProbeDebugData", + "qualified_name": "keen::GiProbeDebugData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4069065983, + "hash2": 209980164, + "struct_fields": [ + { + "name": "isCoveringPixel", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiDebugProbeInfo", + "type_name_2": "GiDebugProbeInfo", + "qualified_name": "keen::GiDebugProbeInfo", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1104208061, + "hash2": 2713573427, + "struct_fields": [ + { + "name": "pushedOutPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "probeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "cellCoordinate", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "requestedRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "rayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "probeQuality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "isNew", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShSpectralCoeffs", + "type_name_2": "ShSpectralCoeffs", + "qualified_name": "keen::ShSpectralCoeffs", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3894441991, + "hash2": 4119586172, + "struct_fields": [ + { + "name": "r", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "g", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "b", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateRayListPrepareIndirectParameters", + "type_name_2": "GiPopulateRayListPrepareIndirectParameters", + "qualified_name": "keen::GiPopulateRayListPrepareIndirectParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1042406781, + "hash2": 1094482154, + "struct_fields": [ + { + "name": "dispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateRayListParameters", + "type_name_2": "GiPopulateRayListParameters", + "qualified_name": "keen::GiPopulateRayListParameters", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 2118989084, + "hash2": 4224507462, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 408 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + }, + { + "name": "rotateRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 416 + }, + { + "name": "randomDirectionScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 420 + }, + { + "name": "useUniformSamplingAfterFrames", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 424 + }, + { + "name": "validRadianceMaps", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 428 + }, + { + "name": "minLuminanceSumForRayGuiding", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 432 + }, + { + "name": "sortRaysIntoBins", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 436 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 440 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 444 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 448 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateWorldCacheRayListParameters", + "type_name_2": "GiPopulateWorldCacheRayListParameters", + "qualified_name": "keen::GiPopulateWorldCacheRayListParameters", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2178916914, + "hash2": 3434391205, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 408 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + }, + { + "name": "rotateRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 416 + }, + { + "name": "randomDirectionScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 420 + }, + { + "name": "sortRaysIntoBins", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 424 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 428 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 432 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 436 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCullRequestedRaysWithRayBudgetParameters", + "type_name_2": "GiCullRequestedRaysWithRayBudgetParameters", + "qualified_name": "keen::GiCullRequestedRaysWithRayBudgetParameters", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3957466712, + "hash2": 4095121606, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "maxRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "frustumRaysScaleUpBudgetThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 408 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 416 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 420 + }, + { + "name": "sortRaysIntoBins", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 424 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 428 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPrepareRayBinsParameters", + "type_name_2": "GiPrepareRayBinsParameters", + "qualified_name": "keen::GiPrepareRayBinsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1774568409, + "hash2": 1428800336, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCalculateBinDirectionOffsetParameters", + "type_name_2": "GiCalculateBinDirectionOffsetParameters", + "qualified_name": "keen::GiCalculateBinDirectionOffsetParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 225893167, + "hash2": 2911581938, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiSortRaysIntoBinsParameters", + "type_name_2": "GiSortRaysIntoBinsParameters", + "qualified_name": "keen::GiSortRaysIntoBinsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2199153899, + "hash2": 3526320518, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "debugSorting", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCullRequestedAmbientRaysWithRayBudgetParameters", + "type_name_2": "GiCullRequestedAmbientRaysWithRayBudgetParameters", + "qualified_name": "keen::GiCullRequestedAmbientRaysWithRayBudgetParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 391026276, + "hash2": 4184148497, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiWorldCacheBlendSphericalHarmonicsIrradianceParameters", + "type_name_2": "GiWorldCacheBlendSphericalHarmonicsIrradianceParameters", + "qualified_name": "keen::GiWorldCacheBlendSphericalHarmonicsIrradianceParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3213625148, + "hash2": 809608939, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCleanupCacheParameters", + "type_name_2": "GiCleanupCacheParameters", + "qualified_name": "keen::GiCleanupCacheParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1404909344, + "hash2": 1115707907, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "int4[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::int4", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 4277195647, + "hash2": 1898587199, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiFillAmbientProbesParameters", + "type_name_2": "GiFillAmbientProbesParameters", + "qualified_name": "keen::GiFillAmbientProbesParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3657536902, + "hash2": 2286699124, + "struct_fields": [ + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 128 + }, + { + "name": "referencePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 268 + }, + { + "name": "maxHitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "maxRayCountScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 276 + }, + { + "name": "minFillRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 280 + }, + { + "name": "useReverseRayReprojection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 284 + }, + { + "name": "debugSelectedProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 288 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 292 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 296 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 300 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientConvergeParameters", + "type_name_2": "GiAmbientConvergeParameters", + "qualified_name": "keen::GiAmbientConvergeParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3511916959, + "hash2": 2756050690, + "struct_fields": [ + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 128 + }, + { + "name": "shouldUseHistory", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 256 + }, + { + "name": "hysteresis", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 260 + }, + { + "name": "minRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 264 + }, + { + "name": "maxRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 268 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 276 + }, + { + "name": "previousExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 280 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 284 + }, + { + "name": "debugProbeHighlightEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 288 + }, + { + "name": "debugSelectedProbeId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 292 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 296 + }, + { + "name": "debugStarvingProbes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 300 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCalculateAmbientProbesVisibilityParameters", + "type_name_2": "GiCalculateAmbientProbesVisibilityParameters", + "qualified_name": "keen::GiCalculateAmbientProbesVisibilityParameters", + "referenced_type_name": null, + "class_size": 576, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1929972441, + "hash2": 3991031554, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "frustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 64 + }, + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 160 + }, + { + "name": "lastCascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 288 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 416 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 544 + }, + { + "name": "shouldUpdateCameraVisibility", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 556 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 560 + }, + { + "name": "debugShowVisibilityRays", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 568 + }, + { + "name": "debugActiveCascade", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 572 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientProbeVisualisationParameters", + "type_name_2": "GiAmbientProbeVisualisationParameters", + "qualified_name": "keen::GiAmbientProbeVisualisationParameters", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3271403865, + "hash2": 4183686639, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 64 + }, + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 192 + }, + { + "name": "sphereBandPower", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 320 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 324 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 328 + }, + { + "name": "debugSelectedProbeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 332 + }, + { + "name": "showVisibilityMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 336 + }, + { + "name": "renderConvergedTexture", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 340 + }, + { + "name": "useGridCoordinatesWithoutOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 344 + }, + { + "name": "showWarmupProbes", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 348 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientDebugProbeInfo", + "type_name_2": "GiAmbientDebugProbeInfo", + "qualified_name": "keen::GiAmbientDebugProbeInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3091518473, + "hash2": 3177444751, + "struct_fields": [ + { + "name": "cellCoordinate", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "probeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "rayIntersectedProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateAmbientRayListParameters", + "type_name_2": "GiPopulateAmbientRayListParameters", + "qualified_name": "keen::GiPopulateAmbientRayListParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2419749460, + "hash2": 2801633219, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rotateRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "randomDirectionScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientRayListData", + "type_name_2": "GiAmbientRayListData", + "qualified_name": "keen::GiAmbientRayListData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1510794570, + "hash2": 389925200, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "rayListStartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "probeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientProbesLookupData", + "type_name_2": "GiAmbientProbesLookupData", + "qualified_name": "keen::GiAmbientProbesLookupData", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1809388635, + "hash2": 991155889, + "struct_fields": [ + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 128 + }, + { + "name": "gridSpaceReferencePosition", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 256 + }, + { + "name": "referencePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientFroxelVolumeParameters", + "type_name_2": "GiAmbientFroxelVolumeParameters", + "qualified_name": "keen::GiAmbientFroxelVolumeParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2546676182, + "hash2": 1609936976, + "struct_fields": [ + { + "name": "depthRemap", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "tileSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "froxelVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "near", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "invFroxelVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "far", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiFillAmbientFroxelVolumeParameters", + "type_name_2": "GiFillAmbientFroxelVolumeParameters", + "qualified_name": "keen::GiFillAmbientFroxelVolumeParameters", + "referenced_type_name": null, + "class_size": 784, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 3915789821, + "hash2": 456811317, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "previousViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "previousInvViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 192 + }, + { + "name": "ambientProbeLookup", + "type_name": "keen::GiAmbientProbesLookupData", + "type_hash": 1809388635, + "data_offset": 256 + }, + { + "name": "froxelData", + "type_name": "keen::GiAmbientFroxelVolumeParameters", + "type_hash": 2546676182, + "data_offset": 656 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 720 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 732 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 736 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 744 + }, + { + "name": "previousCameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 752 + }, + { + "name": "historyValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 764 + }, + { + "name": "previousToCurrentExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 768 + }, + { + "name": "debugShowFroxels", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 772 + }, + { + "name": "debugDrawFroxelZIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 776 + }, + { + "name": "debugColorCodeReprojection", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 780 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrepareFillRaysIndirectDispatchParameters", + "type_name_2": "GiProbePrepareFillRaysIndirectDispatchParameters", + "qualified_name": "keen::GiProbePrepareFillRaysIndirectDispatchParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 809907891, + "hash2": 3736800599, + "struct_fields": [ + { + "name": "dispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "minimumAllowedRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rayCountScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiFillAmbientProbesWithAmbientRaysRootConstantData", + "type_name_2": "GiFillAmbientProbesWithAmbientRaysRootConstantData", + "qualified_name": "keen::GiFillAmbientProbesWithAmbientRaysRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1972393139, + "hash2": 3805752945, + "struct_fields": [ + { + "name": "activeCascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCalculateAmbientProbesVisibilityRootConstantData", + "type_name_2": "GiCalculateAmbientProbesVisibilityRootConstantData", + "qualified_name": "keen::GiCalculateAmbientProbesVisibilityRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 587817925, + "hash2": 3805752945, + "struct_fields": [ + { + "name": "activeCascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientConvergeRootConstantData", + "type_name_2": "GiAmbientConvergeRootConstantData", + "qualified_name": "keen::GiAmbientConvergeRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3969488247, + "hash2": 3805752945, + "struct_fields": [ + { + "name": "activeCascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiDebugStep", + "type_name_2": "GiDebugStep", + "qualified_name": "keen::GiDebugStep", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 24, + "primitive_type": "Enum", + "hash1": 1039972771, + "hash2": 3410059109, + "struct_fields": [], + "enum_fields": [ + { + "name": "UpdateFrustumProbes", + "value": 0 + }, + { + "name": "PopulateCullAndShootFrustumRays", + "value": 1 + }, + { + "name": "UpdateWorldCacheProbes", + "value": 2 + }, + { + "name": "PopulateCullAndShootWorldCacheRays", + "value": 3 + }, + { + "name": "UpdateAmbientProbes", + "value": 4 + }, + { + "name": "PopulateCullAndShootAmbientRays", + "value": 5 + }, + { + "name": "ShootPrimaryShadowRays", + "value": 6 + }, + { + "name": "ShootWorldCacheAndAmbientShadowRays", + "value": 7 + }, + { + "name": "ShadeWorldCacheRayHits", + "value": 8 + }, + { + "name": "BlendWorldCacheRadiance", + "value": 9 + }, + { + "name": "BlendWorldCacheSphericalHarmonics", + "value": 10 + }, + { + "name": "ShadePrimaryAndAmbientRayHits", + "value": 11 + }, + { + "name": "BlendFrustumRadianceAndDistance", + "value": 12 + }, + { + "name": "BlendFrustumNeighbourProbeRays", + "value": 13 + }, + { + "name": "BlendFrustumNeighbourProbes", + "value": 14 + }, + { + "name": "PrefilterFrustumRadiance", + "value": 15 + }, + { + "name": "BlendFrustumIrradiance", + "value": 16 + }, + { + "name": "RasterizeIrradianceAndReflectedRadiance", + "value": 17 + }, + { + "name": "AmbientProbeVisibility", + "value": 18 + }, + { + "name": "FillAmbientProbesWithFrustumRays", + "value": 19 + }, + { + "name": "FillAmbientProbesWithWorldCacheRays", + "value": 20 + }, + { + "name": "FillAmbientProbesWithAmbientRays", + "value": 21 + }, + { + "name": "ConvergeAmbientProbes", + "value": 22 + }, + { + "name": "GiDebugStepNone", + "value": 23 + } + ] + }, + { + "type_name_1": "GiDebugProbeType", + "type_name_2": "GiDebugProbeType", + "qualified_name": "keen::GiDebugProbeType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 539204677, + "hash2": 3676859303, + "struct_fields": [], + "enum_fields": [ + { + "name": "PrimaryProbe", + "value": 0 + }, + { + "name": "WorldCacheProbe", + "value": 1 + }, + { + "name": "AmbientProbe", + "value": 2 + } + ] + }, + { + "type_name_1": "GizmoMaterial", + "type_name_2": "GizmoMaterial", + "qualified_name": "keen::GizmoMaterial", + "referenced_type_name": "keen::Material", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1508256589, + "hash2": 1505674715, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GizmoRfxRenderMaterial", + "type_name_2": "GizmoRfxRenderMaterial", + "qualified_name": "keen::GizmoRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3511646341, + "hash2": 1722531857, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCounterFillCommand", + "type_name_2": "GpuCounterFillCommand", + "qualified_name": "keen::GpuCounterFillCommand", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3963903590, + "hash2": 2361222262, + "struct_fields": [ + { + "name": "byteOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FillBufferParameters", + "type_name_2": "FillBufferParameters", + "qualified_name": "keen::FillBufferParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1608438901, + "hash2": 535296542, + "struct_fields": [ + { + "name": "commandCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheImageStreamingState", + "type_name_2": "GpuDataCacheImageStreamingState", + "qualified_name": "keen::GpuDataCacheImageStreamingState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 64687782, + "hash2": 2325684332, + "struct_fields": [], + "enum_fields": [ + { + "name": "Idle", + "value": 0 + }, + { + "name": "Working", + "value": 1 + }, + { + "name": "Flushing", + "value": 2 + } + ] + }, + { + "type_name_1": "GpuDataCacheImageStreamingMemoryBlockInfo", + "type_name_2": "GpuDataCacheImageStreamingMemoryBlockInfo", + "qualified_name": "keen::GpuDataCacheImageStreamingMemoryBlockInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3780936671, + "hash2": 2572432582, + "struct_fields": [ + { + "name": "sizeInBytes", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheMemoryRangeInfo", + "type_name_2": "GpuDataCacheMemoryRangeInfo", + "qualified_name": "keen::GpuDataCacheMemoryRangeInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2732533966, + "hash2": 4049298342, + "struct_fields": [ + { + "name": "blockIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuImageStreamingDataLoadingState", + "type_name_2": "GpuImageStreamingDataLoadingState", + "qualified_name": "keen::GpuImageStreamingDataLoadingState", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 4198894578, + "hash2": 2475062449, + "struct_fields": [], + "enum_fields": [ + { + "name": "Idle", + "value": 0 + }, + { + "name": "Scheduled", + "value": 1 + }, + { + "name": "CreateHighResTexture", + "value": 2 + }, + { + "name": "AllocateUploadMemory", + "value": 3 + }, + { + "name": "StartContentLoad", + "value": 4 + }, + { + "name": "WaitForContentLoad", + "value": 5 + }, + { + "name": "StartUploadMemoryTransfer", + "value": 6 + }, + { + "name": "WaitForUploadMemoryTransfer", + "value": 7 + }, + { + "name": "WriteDescriptorSet", + "value": 8 + }, + { + "name": "WaitForPendingFrames", + "value": 9 + } + ] + }, + { + "type_name_1": "GpuDataCacheImageStreamingImageInfo", + "type_name_2": "GpuDataCacheImageStreamingImageInfo", + "qualified_name": "keen::GpuDataCacheImageStreamingImageInfo", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 3305974706, + "hash2": 376443626, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 12 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 13 + }, + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + }, + { + "name": "originalSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 32 + }, + { + "name": "mipTailStartLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 44 + }, + { + "name": "requiredLevel", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "currentLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 52 + }, + { + "name": "sampledLevelsMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "state", + "type_name": "keen::GpuImageStreamingDataLoadingState", + "type_hash": 4198894578, + "data_offset": 60 + }, + { + "name": "memoryRange", + "type_name": "keen::GpuDataCacheMemoryRangeInfo", + "type_hash": 2732533966, + "data_offset": 64 + }, + { + "name": "loadingMemoryRange", + "type_name": "keen::GpuDataCacheMemoryRangeInfo", + "type_hash": 2732533966, + "data_offset": 88 + }, + { + "name": "estimatedRequiredMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 112 + }, + { + "name": "actualRequiredMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageStreamingAlgorithm", + "type_name_2": "ImageStreamingAlgorithm", + "qualified_name": "keen::ImageStreamingAlgorithm", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1356237882, + "hash2": 2198166554, + "struct_fields": [], + "enum_fields": [ + { + "name": "ForceUnload", + "value": 0 + }, + { + "name": "ForceFullResolution", + "value": 1 + }, + { + "name": "ForceIdealSolution", + "value": 2 + }, + { + "name": "BudgetAware", + "value": 3 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GpuDataCacheImageStreamingMemoryBlockInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GpuDataCacheImageStreamingMemoryBlockInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3646489728, + "hash2": 3262886723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GpuDataCacheImageStreamingImageInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GpuDataCacheImageStreamingImageInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2797597739, + "hash2": 2347527081, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheImageStreamingStateMessage", + "type_name_2": "GpuDataCacheImageStreamingStateMessage", + "qualified_name": "keen::GpuDataCacheImageStreamingStateMessage", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3463291621, + "hash2": 1482349553, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::GpuDataCacheImageStreamingState", + "type_hash": 64687782, + "data_offset": 0 + }, + { + "name": "isSamplerFeedbackResetEnabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "currentUploadBudget", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "uploadBudget", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + }, + { + "name": "algorithm", + "type_name": "keen::ImageStreamingAlgorithm", + "type_hash": 1356237882, + "data_offset": 24 + }, + { + "name": "memoryBlocks", + "type_name": "keen::BlobArray", + "type_hash": 3646489728, + "data_offset": 28 + }, + { + "name": "totalMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "allocatedMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 48 + }, + { + "name": "loadingMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 56 + }, + { + "name": "images", + "type_name": "keen::BlobArray", + "type_hash": 2797597739, + "data_offset": 64 + }, + { + "name": "estimatedWorkingSetSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 72 + }, + { + "name": "actualWorkingSetSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheSetSamplerFeedbackResetMessage", + "type_name_2": "GpuDataCacheSetSamplerFeedbackResetMessage", + "qualified_name": "keen::GpuDataCacheSetSamplerFeedbackResetMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2612524075, + "hash2": 3993343569, + "struct_fields": [ + { + "name": "enableReset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheSetImageStreamingAlgorithmMessage", + "type_name_2": "GpuDataCacheSetImageStreamingAlgorithmMessage", + "qualified_name": "keen::GpuDataCacheSetImageStreamingAlgorithmMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 702970345, + "hash2": 2703595515, + "struct_fields": [ + { + "name": "algorithm", + "type_name": "keen::ImageStreamingAlgorithm", + "type_hash": 1356237882, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheFlushImageStreamingMemoryMessage", + "type_name_2": "GpuDataCacheFlushImageStreamingMemoryMessage", + "qualified_name": "keen::GpuDataCacheFlushImageStreamingMemoryMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1405379747, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuDebugRendererVertex", + "type_name_2": "GpuDebugRendererVertex", + "qualified_name": "keen::GpuDebugRendererVertex", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2184700346, + "hash2": 3258325592, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDebugRendererContextCounter", + "type_name_2": "GpuDebugRendererContextCounter", + "qualified_name": "keen::GpuDebugRendererContextCounter", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 495022353, + "hash2": 150827053, + "struct_fields": [], + "enum_fields": [ + { + "name": "Lines", + "value": 0 + } + ] + }, + { + "type_name_1": "GpuDebugRendererContextState", + "type_name_2": "GpuDebugRendererContextState", + "qualified_name": "keen::GpuDebugRendererContextState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1740583600, + "hash2": 1178608214, + "struct_fields": [ + { + "name": "lineCounterOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxLineCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDebugRendererDrawParameters", + "type_name_2": "GpuDebugRendererDrawParameters", + "qualified_name": "keen::GpuDebugRendererDrawParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3717216606, + "hash2": 2689906614, + "struct_fields": [ + { + "name": "mvp", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuModel", + "type_name_2": "GpuModel", + "qualified_name": "keen::GpuModel", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4121105745, + "hash2": 1527010183, + "struct_fields": [ + { + "name": "nodeModelIndex0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "nodeModelIndex1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "nodeModelIndex2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "nodeModelIndex3", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "nodeModelIndex4", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "nodeModelIndex5", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassMovementUpdateParameters", + "type_name_2": "GrassMovementUpdateParameters", + "qualified_name": "keen::GrassMovementUpdateParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 30147612, + "hash2": 2656958080, + "struct_fields": [ + { + "name": "textureSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "lastTextureId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "bodyCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "size", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "oneOverSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "currentOrigin", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 32 + }, + { + "name": "historyStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "lastOrigin", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 64 + }, + { + "name": "deltaTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "oneOverTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassMovementBody", + "type_name_2": "GrassMovementBody", + "qualified_name": "keen::GrassMovementBody", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1102666633, + "hash2": 978661522, + "struct_fields": [ + { + "name": "packedPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "outerRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "innerRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GridMaterial", + "type_name_2": "GridMaterial", + "qualified_name": "keen::GridMaterial", + "referenced_type_name": "keen::Material", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3570900387, + "hash2": 3678912779, + "struct_fields": [ + { + "name": "lineSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "axisSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "color0", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 8 + }, + { + "name": "color1", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GridRfxRenderMaterial", + "type_name_2": "GridRfxRenderMaterial", + "qualified_name": "keen::GridRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1596598387, + "hash2": 2179633786, + "struct_fields": [ + { + "name": "axisSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lineSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "color0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 8 + }, + { + "name": "color1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxGridMaterial", + "type_name_2": "VfxGridMaterial", + "qualified_name": "keen::VfxGridMaterial", + "referenced_type_name": "keen::Material", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3865597579, + "hash2": 3346988802, + "struct_fields": [ + { + "name": "cellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxGridRfxRenderMaterial", + "type_name_2": "VfxGridRfxRenderMaterial", + "qualified_name": "keen::VfxGridRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4182236715, + "hash2": 3156328561, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "invCellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IblSourceType", + "type_name_2": "IblSourceType", + "qualified_name": "keen::IblSourceType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1513455574, + "hash2": 3013249687, + "struct_fields": [], + "enum_fields": [ + { + "name": "LatLong", + "value": 0 + }, + { + "name": "Cubemap", + "value": 1 + } + ] + }, + { + "type_name_1": "Ibl", + "type_name_2": "Ibl", + "qualified_name": "keen::Ibl", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3268991251, + "hash2": 4047204548, + "struct_fields": [ + { + "name": "sourceType", + "type_name": "keen::IblSourceType", + "type_hash": 1513455574, + "data_offset": 0 + }, + { + "name": "diffuseOutputSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "diffuseSampleCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "specularSampleCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IblResource", + "type_name_2": "IblResource", + "qualified_name": "keen::IblResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3333185343, + "hash2": 3996560409, + "struct_fields": [ + { + "name": "diffuseSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "diffuseData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "specularSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "specularLevelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 22 + }, + { + "name": "specularData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpecularIblLutResource", + "type_name_2": "SpecularIblLutResource", + "qualified_name": "keen::SpecularIblLutResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3746833597, + "hash2": 3814926757, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateDispatchArgsShaderData", + "type_name_2": "CreateDispatchArgsShaderData", + "qualified_name": "keen::CreateDispatchArgsShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1283881692, + "hash2": 2030578785, + "struct_fields": [ + { + "name": "targetThreadGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "targetBufferOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "threadCountOffsetX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "threadCountPerSourceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheFrustumTestShaderParameters", + "type_name_2": "LightCacheFrustumTestShaderParameters", + "qualified_name": "keen::LightCacheFrustumTestShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4079848375, + "hash2": 3459694855, + "struct_fields": [ + { + "name": "cellCenter", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "cellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheFrustumTestShaderResult", + "type_name_2": "LightCacheFrustumTestShaderResult", + "qualified_name": "keen::LightCacheFrustumTestShaderResult", + "referenced_type_name": null, + "class_size": 148, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1154024358, + "hash2": 2307615910, + "struct_fields": [ + { + "name": "planes", + "type_name": "keen::StaticArray", + "type_hash": 3239752981, + "data_offset": 0 + }, + { + "name": "hits", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheCounters", + "type_name_2": "LightCacheCounters", + "qualified_name": "keen::LightCacheCounters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1819963741, + "hash2": 444423417, + "struct_fields": [ + { + "name": "allocationCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxAllocationCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "freeListIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "visibleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "deleteCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheAllocateGiProbeParameters", + "type_name_2": "LightCacheAllocateGiProbeParameters", + "qualified_name": "keen::LightCacheAllocateGiProbeParameters", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1698352863, + "hash2": 1565494009, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 64 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 464 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 472 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 480 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 492 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 496 + }, + { + "name": "allocateDownsample", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 504 + }, + { + "name": "cascadeCellCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 508 + }, + { + "name": "mousePosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 512 + }, + { + "name": "showCascadeTransitions", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCachePrepareAllocateParameters", + "type_name_2": "LightCachePrepareAllocateParameters", + "qualified_name": "keen::LightCachePrepareAllocateParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2403648356, + "hash2": 531060549, + "struct_fields": [ + { + "name": "maxEntryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCachePrepareEntriesParameters", + "type_name_2": "LightCachePrepareEntriesParameters", + "qualified_name": "keen::LightCachePrepareEntriesParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 929319405, + "hash2": 1266970513, + "struct_fields": [ + { + "name": "entryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheRecycleEntriesParameters", + "type_name_2": "LightCacheRecycleEntriesParameters", + "qualified_name": "keen::LightCacheRecycleEntriesParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 406771819, + "hash2": 277738265, + "struct_fields": [ + { + "name": "maxEntryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entryRecycleAgeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheAllocateEntriesParameters", + "type_name_2": "LightCacheAllocateEntriesParameters", + "qualified_name": "keen::LightCacheAllocateEntriesParameters", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 571663865, + "hash2": 2831998749, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 64 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 464 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 472 + }, + { + "name": "allocateDownsample", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 480 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 484 + }, + { + "name": "cascadeCellCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 488 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheAllocateEntriesAtPositionsParameters", + "type_name_2": "LightCacheAllocateEntriesAtPositionsParameters", + "qualified_name": "keen::LightCacheAllocateEntriesAtPositionsParameters", + "referenced_type_name": null, + "class_size": 832, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1638654620, + "hash2": 4294233407, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "primaryLightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 400 + }, + { + "name": "maxRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 800 + }, + { + "name": "useDirectionBuffer", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 804 + }, + { + "name": "usePrimaryCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 808 + }, + { + "name": "maxEntryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 812 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 816 + }, + { + "name": "minCascade", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 828 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheScrollCascadesParameters", + "type_name_2": "LightCacheScrollCascadesParameters", + "qualified_name": "keen::LightCacheScrollCascadesParameters", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3219223142, + "hash2": 4279630781, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheDebugParameters", + "type_name_2": "LightCacheDebugParameters", + "qualified_name": "keen::LightCacheDebugParameters", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4122896215, + "hash2": 2160992408, + "struct_fields": [ + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 0 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 80 + }, + { + "name": "totalCellCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 480 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 484 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingIndirectCounter", + "type_name_2": "LightCacheLightCullingIndirectCounter", + "qualified_name": "keen::LightCacheLightCullingIndirectCounter", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3865324574, + "hash2": 2008664474, + "struct_fields": [ + { + "name": "activeLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "lightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "lightCacheLightListOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "lightCacheEntryCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingUniformBuffer", + "type_name_2": "LightCacheLightCullingUniformBuffer", + "qualified_name": "keen::LightCacheLightCullingUniformBuffer", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2048115562, + "hash2": 4260815130, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "lightCountOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "maxLightCacheEntries", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 408 + }, + { + "name": "lightCacheEntries", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingResultUniformBuffer", + "type_name_2": "LightCacheLightCullingResultUniformBuffer", + "qualified_name": "keen::LightCacheLightCullingResultUniformBuffer", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 829254805, + "hash2": 1613610853, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 0 + }, + { + "name": "lightCacheDataEntryCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingDebugParameters", + "type_name_2": "LightCacheLightCullingDebugParameters", + "qualified_name": "keen::LightCacheLightCullingDebugParameters", + "referenced_type_name": null, + "class_size": 480, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3578930519, + "hash2": 2526359975, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "invTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 72 + }, + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsQuality", + "type_name_2": "ManyLightsShadowsQuality", + "qualified_name": "keen::ManyLightsShadowsQuality", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 4290742630, + "hash2": 2307858232, + "struct_fields": [], + "enum_fields": [ + { + "name": "UltraPerformance", + "value": 0 + }, + { + "name": "Performance", + "value": 1 + }, + { + "name": "High", + "value": 2 + }, + { + "name": "Ultra", + "value": 3 + } + ] + }, + { + "type_name_1": "ManyLightsShadowsQualitySettings", + "type_name_2": "ManyLightsShadowsQualitySettings", + "qualified_name": "keen::ManyLightsShadowsQualitySettings", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2037362483, + "hash2": 2334427535, + "struct_fields": [ + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "shadowAtlasTextureSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "shadowMapBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "shadowMapNormalBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "gaussianScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "exponentialShadowConstantX", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "exponentialShadowConstantY", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "sdfBvhVariant", + "type_name": "keen::SdfBvhVariant", + "type_hash": 2666447604, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsIndirectCounter", + "type_name_2": "ManyLightsShadowsIndirectCounter", + "qualified_name": "keen::ManyLightsShadowsIndirectCounter", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3482747081, + "hash2": 2922802496, + "struct_fields": [ + { + "name": "activeLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "lightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsIndirectArgument", + "type_name_2": "ManyLightsShadowsIndirectArgument", + "qualified_name": "keen::ManyLightsShadowsIndirectArgument", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 425568676, + "hash2": 1833531990, + "struct_fields": [ + { + "name": "updateShadowAtlas", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "updateLightCache", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + }, + { + "name": "activeLight32", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 24 + }, + { + "name": "atlasBorders", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsPackedSdfShaderData", + "type_name_2": "ManyLightsPackedSdfShaderData", + "qualified_name": "keen::ManyLightsPackedSdfShaderData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1189425382, + "hash2": 3637071116, + "struct_fields": [ + { + "name": "sphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "modelPartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "instancePartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsAtlasParameters", + "type_name_2": "ManyLightsShadowsAtlasParameters", + "qualified_name": "keen::ManyLightsShadowsAtlasParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4293316096, + "hash2": 444606113, + "struct_fields": [ + { + "name": "atlasSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "atlasMaxEntries", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "atlasHashMapSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "atlasElementSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "atlasElementTexelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "atlasElementBorder", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "atlasExponentialShadowConstant", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "atlasExponentialShadowChebyshevConstants", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "atlasNormalBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "atlasShadowMapBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsUniformBuffer", + "type_name_2": "ManyLightsShadowsUniformBuffer", + "qualified_name": "keen::ManyLightsShadowsUniformBuffer", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 1895512201, + "hash2": 425194601, + "struct_fields": [ + { + "name": "invViewProj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "bufferDimensions", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "invBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 120 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + }, + { + "name": "lightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 132 + }, + { + "name": "maxLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 136 + }, + { + "name": "gaussianBlurScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 140 + }, + { + "name": "enableOcclusionCulling", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 144 + }, + { + "name": "occlusionCulling", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 160 + }, + { + "name": "atlasParameters", + "type_name": "keen::ManyLightsShadowsAtlasParameters", + "type_hash": 4293316096, + "data_offset": 224 + }, + { + "name": "mousePosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 288 + }, + { + "name": "outputUseNDotL", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 296 + }, + { + "name": "outputDrawCellBoxes", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 300 + }, + { + "name": "outputShowLightPosition", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 304 + }, + { + "name": "showLighWithRealSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 308 + }, + { + "name": "sizeOfDebugSphere", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 312 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsResultUniformBuffer", + "type_name_2": "ManyLightsShadowsResultUniformBuffer", + "qualified_name": "keen::ManyLightsShadowsResultUniformBuffer", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 379551174, + "hash2": 1291384743, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "atlasParameters", + "type_name": "keen::ManyLightsShadowsAtlasParameters", + "type_hash": 4293316096, + "data_offset": 16 + }, + { + "name": "showLightInfluence", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 80 + }, + { + "name": "useAtlasSampler", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 84 + }, + { + "name": "useAtlasBias", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsGatherSdfShaderParameters", + "type_name_2": "ManyLightsGatherSdfShaderParameters", + "qualified_name": "keen::ManyLightsGatherSdfShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2504162043, + "hash2": 2184176934, + "struct_fields": [ + { + "name": "sdfInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GaussianRootConstantData", + "type_name_2": "GaussianRootConstantData", + "qualified_name": "keen::GaussianRootConstantData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1809476589, + "hash2": 2550149943, + "struct_fields": [ + { + "name": "blurVector", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Material", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 289740446, + "hash2": 1312659359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialReference", + "type_name_2": "MaterialReference", + "qualified_name": "keen::MaterialReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4205887168, + "hash2": 346000348, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelType", + "type_name_2": "ModelType", + "qualified_name": "keen::ModelType", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3987133003, + "hash2": 170176867, + "struct_fields": [], + "enum_fields": [ + { + "name": "Static", + "value": 0 + }, + { + "name": "Skinned", + "value": 1 + } + ] + }, + { + "type_name_1": "ModelTangentSpaceType", + "type_name_2": "ModelTangentSpaceType", + "qualified_name": "keen::ModelTangentSpaceType", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 552148214, + "hash2": 2202325492, + "struct_fields": [], + "enum_fields": [ + { + "name": "Keen", + "value": 0 + }, + { + "name": "Unity3D", + "value": 1 + }, + { + "name": "Mikk", + "value": 2 + } + ] + }, + { + "type_name_1": "ModelMaterialMapEntry", + "type_name_2": "ModelMaterialMapEntry", + "qualified_name": "keen::ModelMaterialMapEntry", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 962914584, + "hash2": 3016373557, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "material", + "type_name": "keen::MaterialReference", + "type_hash": 4205887168, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BlendShapeId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2422339174, + "hash2": 278567051, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendShapeIdReference", + "type_name_2": "ModelBlendShapeIdReference", + "qualified_name": "keen::ModelBlendShapeIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3073466759, + "hash2": 2427488378, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendShapeIdDirectory", + "type_name_2": "ModelBlendShapeIdDirectory", + "qualified_name": "keen::ModelBlendShapeIdDirectory", + "referenced_type_name": "keen::Folder", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3398316625, + "hash2": 1500671239, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendShapeMapEntry", + "type_name_2": "ModelBlendShapeMapEntry", + "qualified_name": "keen::ModelBlendShapeMapEntry", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4244705513, + "hash2": 1694104603, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::ModelBlendShapeIdReference", + "type_hash": 3073466759, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelConverterBlendShapeNames", + "type_name_2": "ModelConverterBlendShapeNames", + "qualified_name": "keen::ModelConverterBlendShapeNames", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 506739, + "hash2": 3692074117, + "struct_fields": [ + { + "name": "names", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 0 + }, + { + "name": "selection", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 8 + }, + { + "name": "ids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelLodGenerationParameters", + "type_name_2": "ModelLodGenerationParameters", + "qualified_name": "keen::ModelLodGenerationParameters", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1477331180, + "hash2": 542026384, + "struct_fields": [ + { + "name": "maxLod", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "triangleReductionPerStep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxErrorPerStep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelDisplacementOverrides", + "type_name_2": "ModelDisplacementOverrides", + "qualified_name": "keen::ModelDisplacementOverrides", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1176723193, + "hash2": 1210846159, + "struct_fields": [ + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderSphere", + "type_name_2": "ModelClothColliderSphere", + "qualified_name": "keen::ModelClothColliderSphere", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 570518368, + "hash2": 740503843, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderSphereInstance", + "type_name_2": "ModelClothColliderSphereInstance", + "qualified_name": "keen::ModelClothColliderSphereInstance", + "referenced_type_name": "keen::ModelClothColliderSphere", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3525193595, + "hash2": 2714709295, + "struct_fields": [ + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderCapsule", + "type_name_2": "ModelClothColliderCapsule", + "qualified_name": "keen::ModelClothColliderCapsule", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3615157156, + "hash2": 4166096513, + "struct_fields": [ + { + "name": "sphere0", + "type_name": "keen::ModelClothColliderSphere", + "type_hash": 570518368, + "data_offset": 0 + }, + { + "name": "sphere1", + "type_name": "keen::ModelClothColliderSphere", + "type_hash": 570518368, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderCapsuleInstance", + "type_name_2": "ModelClothColliderCapsuleInstance", + "qualified_name": "keen::ModelClothColliderCapsuleInstance", + "referenced_type_name": "keen::ModelClothColliderCapsule", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2339416927, + "hash2": 1408807163, + "struct_fields": [ + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothCollider", + "type_name_2": "ClothCollider", + "qualified_name": "keen::ClothCollider", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3854764302, + "hash2": 2256285785, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 109196461, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothSleeveCapsuleCollider", + "type_name_2": "ModelClothSleeveCapsuleCollider", + "qualified_name": "keen::ModelClothSleeveCapsuleCollider", + "referenced_type_name": "keen::ModelClothColliderCapsule", + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3281583296, + "hash2": 3785896522, + "struct_fields": [ + { + "name": "upperBoneName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 32 + }, + { + "name": "lowerBoneName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 40 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelChain", + "type_name_2": "ModelChain", + "qualified_name": "keen::ModelChain", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 2324323768, + "hash2": 185577698, + "struct_fields": [ + { + "name": "rootBoneName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "propagateRotation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "stiffnessFrequencey", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "motionConstraintRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "phasesStiffnessMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelChainBundle", + "type_name_2": "ModelChainBundle", + "qualified_name": "keen::ModelChainBundle", + "referenced_type_name": "keen::ModelChain", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4114878256, + "hash2": 1226632000, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelModelChainBoneConstraintAxis", + "type_name_2": "ModelModelChainBoneConstraintAxis", + "qualified_name": "keen::ModelModelChainBoneConstraintAxis", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 595724233, + "hash2": 2204902549, + "struct_fields": [], + "enum_fields": [ + { + "name": "XAxis", + "value": 0 + }, + { + "name": "YAxis", + "value": 1 + }, + { + "name": "ZAxis", + "value": 2 + } + ] + }, + { + "type_name_1": "ModelChainBoneConstraint", + "type_name_2": "ModelChainBoneConstraint", + "qualified_name": "keen::ModelChainBoneConstraint", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3905587837, + "hash2": 3912703724, + "struct_fields": [ + { + "name": "boneName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "axis", + "type_name": "keen::ModelModelChainBoneConstraintAxis", + "type_hash": 595724233, + "data_offset": 8 + }, + { + "name": "minAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderBoneAttachment", + "type_name_2": "ModelClothColliderBoneAttachment", + "qualified_name": "keen::ModelClothColliderBoneAttachment", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2079318770, + "hash2": 1215842349, + "struct_fields": [ + { + "name": "boneName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelMaterial", + "type_name_2": "ModelMaterial", + "qualified_name": "keen::ModelMaterial", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3511268106, + "hash2": 3016373557, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "material", + "type_name": "keen::MaterialReference", + "type_hash": 4205887168, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendshape", + "type_name_2": "ModelBlendshape", + "qualified_name": "keen::ModelBlendshape", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3858213279, + "hash2": 1694104603, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::ModelBlendShapeIdReference", + "type_hash": 3073466759, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderContainer", + "type_name_2": "ModelClothColliderContainer", + "qualified_name": "keen::ModelClothColliderContainer", + "referenced_type_name": "keen::Folder", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1971107744, + "hash2": 1500671239, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Model", + "type_name_2": "Model", + "qualified_name": "keen::Model", + "referenced_type_name": "keen::ModelBase", + "class_size": 120, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 887294035, + "hash2": 2902284366, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 109196461, + "data_offset": 0 + }, + { + "name": "export_node", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "k3dScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "create_backfaces", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "support_raytracing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "raytrace_node_name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 36 + }, + { + "name": "rotateY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "lodValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "generatedLods", + "type_name": "keen::ModelLodGenerationParameters", + "type_hash": 1477331180, + "data_offset": 52 + }, + { + "name": "ignoreClothCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "enableCardClusterLod", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + }, + { + "name": "cardClusterVersion", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 72 + }, + { + "name": "enableGrassAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "grassAnimation", + "type_name": "keen::GrassAnimationModelParameters", + "type_hash": 3537533703, + "data_offset": 84 + }, + { + "name": "enableGrassPushback", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "grassPushback", + "type_name": "keen::GrassPushbackModelParameters", + "type_hash": 3923702812, + "data_offset": 96 + }, + { + "name": "enableSdf", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CardClusterInfo", + "type_name_2": "CardClusterInfo", + "qualified_name": "keen::CardClusterInfo", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2469045742, + "hash2": 971303469, + "struct_fields": [ + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 4 + }, + { + "name": "materialParamsMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 40 + }, + { + "name": "normalMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 76 + }, + { + "name": "opacityMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 112 + }, + { + "name": "texCoord0Delta", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 148 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "vertexBufferHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 160 + }, + { + "name": "indexBufferHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 176 + }, + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 192 + }, + { + "name": "boundingSphere", + "type_name": "keen::Sphere", + "type_hash": 934771011, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorGradient", + "type_name_2": "ColorGradient", + "qualified_name": "keen::ColorGradient", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 693027681, + "hash2": 2406779250, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkMesh", + "type_name_2": "ShaderModelChunkMesh", + "qualified_name": "keen::ShaderModelChunkMesh", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1540690920, + "hash2": 4099866363, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkPipelineIndex", + "type_name_2": "ShaderModelChunkPipelineIndex", + "qualified_name": "keen::ShaderModelChunkPipelineIndex", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3112394341, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkPipelineIndex[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ShaderModelChunkPipelineIndex", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 2055393732, + "hash2": 1842099781, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkModelMesh", + "type_name_2": "ShaderModelChunkModelMesh", + "qualified_name": "keen::ShaderModelChunkModelMesh", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2102256175, + "hash2": 2513569540, + "struct_fields": [ + { + "name": "meshIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "pipelineIndices", + "type_name": "keen::StaticArray", + "type_hash": 2055393732, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkModelMesh[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ShaderModelChunkModelMesh", + "class_size": 32, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 723928967, + "hash2": 2105853023, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkModel", + "type_name_2": "ShaderModelChunkModel", + "qualified_name": "keen::ShaderModelChunkModel", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4217992358, + "hash2": 2001676031, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "meshes", + "type_name": "keen::StaticArray", + "type_hash": 723928967, + "data_offset": 16 + }, + { + "name": "meshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "modelSizeFeedbackIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkSubView", + "type_name_2": "ShaderModelChunkSubView", + "qualified_name": "keen::ShaderModelChunkSubView", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4152155116, + "hash2": 1890543689, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "minObjectSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 32 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "cameraCenteredFrustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 96 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkPassConstants", + "type_name_2": "ShaderModelChunkPassConstants", + "qualified_name": "keen::ShaderModelChunkPassConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2199877177, + "hash2": 2041163710, + "struct_fields": [ + { + "name": "subViewIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "passType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkSubView[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ShaderModelChunkSubView", + "class_size": 2304, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 2634170045, + "hash2": 2419393229, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkPassConstants[10]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ShaderModelChunkPassConstants", + "class_size": 160, + "fields_count": 10, + "primitive_type": "StaticArray", + "hash1": 319171778, + "hash2": 1145123566, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkInstanceCullingShaderParameters", + "type_name_2": "ShaderModelChunkInstanceCullingShaderParameters", + "qualified_name": "keen::ShaderModelChunkInstanceCullingShaderParameters", + "referenced_type_name": null, + "class_size": 2512, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2900475659, + "hash2": 613100274, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 2634170045, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 319171778, + "data_offset": 2304 + }, + { + "name": "subViewCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2464 + }, + { + "name": "passCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2468 + }, + { + "name": "maxDrawCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2472 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2476 + }, + { + "name": "distanceCullingThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2480 + }, + { + "name": "distanceCullingJitterFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2484 + }, + { + "name": "modelSizeFeedbackPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2488 + }, + { + "name": "smallObjectCulling", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2492 + }, + { + "name": "writeForestFogFootprints", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2496 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelChunkType", + "type_name_2": "ModelChunkType", + "qualified_name": "keen::ModelChunkType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 737647336, + "hash2": 344996620, + "struct_fields": [], + "enum_fields": [ + { + "name": "Deco", + "value": 0 + }, + { + "name": "Distant", + "value": 1 + }, + { + "name": "EditorModels", + "value": 2 + } + ] + }, + { + "type_name_1": "ShaderModelChunk", + "type_name_2": "ShaderModelChunk", + "qualified_name": "keen::ShaderModelChunk", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1686295665, + "hash2": 2157416940, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "worldOrigin", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 16 + }, + { + "name": "extents", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "transform", + "type_name": "keen::PackedShaderWorldTransform", + "type_hash": 3199707515, + "data_offset": 64 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "type", + "type_name": "keen::ModelChunkType", + "type_hash": 737647336, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkInstance", + "type_name_2": "ShaderModelChunkInstance", + "qualified_name": "keen::ShaderModelChunkInstance", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 208517358, + "hash2": 2887158582, + "struct_fields": [ + { + "name": "packedPosition", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "packedOrientation", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "packedScaleModelIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkCandidate", + "type_name_2": "ShaderModelChunkCandidate", + "qualified_name": "keen::ShaderModelChunkCandidate", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2539529766, + "hash2": 2769926509, + "struct_fields": [ + { + "name": "chunkIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "visibilityMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkCullingShaderParameters", + "type_name_2": "ShaderModelChunkCullingShaderParameters", + "qualified_name": "keen::ShaderModelChunkCullingShaderParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 193934466, + "hash2": 952506222, + "struct_fields": [ + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 64 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 80 + }, + { + "name": "candidateCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkInstanceCullingPushConstants", + "type_name_2": "ShaderModelChunkInstanceCullingPushConstants", + "qualified_name": "keen::ShaderModelChunkInstanceCullingPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 78999403, + "hash2": 1577482229, + "struct_fields": [ + { + "name": "chunkCandidateIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkDrawData", + "type_name_2": "ShaderModelChunkDrawData", + "qualified_name": "keen::ShaderModelChunkDrawData", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 991057575, + "hash2": 3523836623, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkDraw", + "type_name_2": "ShaderModelChunkDraw", + "qualified_name": "keen::ShaderModelChunkDraw", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1869391135, + "hash2": 2975395562, + "struct_fields": [ + { + "name": "packedChunkIndexAndMeshCounterIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkRenderInstance", + "type_name_2": "ShaderModelChunkRenderInstance", + "qualified_name": "keen::ShaderModelChunkRenderInstance", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3196209910, + "hash2": 3200752535, + "struct_fields": [ + { + "name": "cameraRelativePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkPushConstant", + "type_name_2": "ShaderModelChunkPushConstant", + "qualified_name": "keen::ShaderModelChunkPushConstant", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2123534041, + "hash2": 437975118, + "struct_fields": [ + { + "name": "baseDrawIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "isRunningOnSteamDeck", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkWriteDrawCommandsPushConstants", + "type_name_2": "ShaderModelChunkWriteDrawCommandsPushConstants", + "qualified_name": "keen::ShaderModelChunkWriteDrawCommandsPushConstants", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1228389681, + "hash2": 892390472, + "struct_fields": [ + { + "name": "batchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkWriteInstanceDataConstants", + "type_name_2": "ShaderModelChunkWriteInstanceDataConstants", + "qualified_name": "keen::ShaderModelChunkWriteInstanceDataConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1146794532, + "hash2": 1114869811, + "struct_fields": [ + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkBatchPrepareShaderParameters", + "type_name_2": "ShaderModelChunkBatchPrepareShaderParameters", + "qualified_name": "keen::ShaderModelChunkBatchPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 326514323, + "hash2": 554516385, + "struct_fields": [ + { + "name": "groupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MotionVectorsShaderParameters", + "type_name_2": "MotionVectorsShaderParameters", + "qualified_name": "keen::MotionVectorsShaderParameters", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 971823109, + "hash2": 1000938324, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "cancelJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MotionVectorsDebugShaderParameters", + "type_name_2": "MotionVectorsDebugShaderParameters", + "qualified_name": "keen::MotionVectorsDebugShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3338378578, + "hash2": 4067373474, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FFX_ParallelSortCB", + "type_name_2": "FFX_ParallelSortCB", + "qualified_name": "keen::FFX_ParallelSortCB", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2205718521, + "hash2": 3133790439, + "struct_fields": [ + { + "name": "NumKeys", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "NumBlocksPerThreadGroup", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 4 + }, + { + "name": "NumThreadGroups", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "NumThreadGroupsWithAdditionalBlocks", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "NumReduceThreadgroupPerBin", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "NumScanValues", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "_pad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "_pad1", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KEEN_VFX_ParallelSortData", + "type_name_2": "KEEN_VFX_ParallelSortData", + "qualified_name": "keen::KEEN_VFX_ParallelSortData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3509665112, + "hash2": 2802858783, + "struct_fields": [ + { + "name": "highSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "lowSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "_pad", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FFX_SetupIndirectCB", + "type_name_2": "FFX_SetupIndirectCB", + "qualified_name": "keen::FFX_SetupIndirectCB", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2274650475, + "hash2": 546788008, + "struct_fields": [ + { + "name": "NumKeysCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "MaxNumKeys", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "MaxThreadGroups", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FFX_RootConstantData", + "type_name_2": "FFX_RootConstantData", + "qualified_name": "keen::FFX_RootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 653241699, + "hash2": 1057531081, + "struct_fields": [ + { + "name": "CShiftBit", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialScalarValue", + "type_name_2": "PbrMaterialScalarValue", + "qualified_name": "keen::PbrMaterialScalarValue", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1543830876, + "hash2": 2392076681, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialColorValue", + "type_name_2": "PbrMaterialColorValue", + "qualified_name": "keen::PbrMaterialColorValue", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1874191315, + "hash2": 3438252326, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + }, + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialParameters", + "type_name_2": "PbrMaterialParameters", + "qualified_name": "keen::PbrMaterialParameters", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 2663818227, + "hash2": 2850425443, + "struct_fields": [ + { + "name": "emissive", + "type_name": "keen::PbrMaterialColorValue", + "type_hash": 1874191315, + "data_offset": 0 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "albedo", + "type_name": "keen::PbrMaterialColorValue", + "type_hash": 1874191315, + "data_offset": 32 + }, + { + "name": "metallic", + "type_name": "keen::PbrMaterialScalarValue", + "type_hash": 1543830876, + "data_offset": 52 + }, + { + "name": "roughness", + "type_name": "keen::PbrMaterialScalarValue", + "type_hash": 1543830876, + "data_offset": 72 + }, + { + "name": "reflectance", + "type_name": "keen::PbrMaterialScalarValue", + "type_hash": 1543830876, + "data_offset": 92 + }, + { + "name": "normal", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 112 + }, + { + "name": "height", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 128 + }, + { + "name": "ao", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 144 + }, + { + "name": "enableLavaShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 160 + }, + { + "name": "distortionMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 164 + }, + { + "name": "lightningMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 180 + }, + { + "name": "gradientMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 196 + }, + { + "name": "distortionMapScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 212 + }, + { + "name": "distortionMapSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "distortionMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "lightningMapScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "lightningMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 228 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VertexColorChannelRgb", + "type_name_2": "VertexColorChannelRgb", + "qualified_name": "keen::VertexColorChannelRgb", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 435168453, + "hash2": 512191609, + "struct_fields": [], + "enum_fields": [ + { + "name": "RGB", + "value": 0 + }, + { + "name": "Red", + "value": 1 + }, + { + "name": "Green", + "value": 2 + }, + { + "name": "Blue", + "value": 3 + }, + { + "name": "Alpha", + "value": 4 + } + ] + }, + { + "type_name_1": "PbrMaterialTintLayer", + "type_name_2": "PbrMaterialTintLayer", + "qualified_name": "keen::PbrMaterialTintLayer", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1506802907, + "hash2": 779867265, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "maskMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSamplerAddressMode", + "type_name_2": "RenderSamplerAddressMode", + "qualified_name": "keen::RenderSamplerAddressMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2320826725, + "hash2": 604276364, + "struct_fields": [], + "enum_fields": [ + { + "name": "Wrap", + "value": 0 + }, + { + "name": "Mirror", + "value": 1 + }, + { + "name": "Clamp", + "value": 2 + }, + { + "name": "ClampToZero", + "value": 3 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PbrMaterialTintLayer[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::PbrMaterialTintLayer", + "class_size": 60, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 397145702, + "hash2": 65759929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialLayer", + "type_name_2": "PbrMaterialLayer", + "qualified_name": "keen::PbrMaterialLayer", + "referenced_type_name": null, + "class_size": 268, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 3839147012, + "hash2": 3269487723, + "struct_fields": [ + { + "name": "emissiveMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 16 + }, + { + "name": "metallicMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 32 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 48 + }, + { + "name": "reflectanceMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 64 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 80 + }, + { + "name": "heightMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 96 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 112 + }, + { + "name": "opacityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 128 + }, + { + "name": "albedoTint", + "type_name": "keen::StaticArray", + "type_hash": 397145702, + "data_offset": 144 + }, + { + "name": "uvSet", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 204 + }, + { + "name": "uvScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 208 + }, + { + "name": "uvScalingYEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 212 + }, + { + "name": "uvScalingY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "addressModeU", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 220 + }, + { + "name": "addressModeV", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 221 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "enableAnisotropy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 228 + }, + { + "name": "anisotropicDirectionMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 232 + }, + { + "name": "anisotropy", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 248 + }, + { + "name": "maskAnisotropy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 252 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 256 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 260 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 264 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialBlendMode", + "type_name_2": "PbrMaterialBlendMode", + "qualified_name": "keen::PbrMaterialBlendMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2753708177, + "hash2": 3838351672, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "VertexValue", + "value": 1 + }, + { + "name": "LocalBlendMap", + "value": 2 + } + ] + }, + { + "type_name_1": "PbrMaterialBlendVertexValue", + "type_name_2": "PbrMaterialBlendVertexValue", + "qualified_name": "keen::PbrMaterialBlendVertexValue", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3294899721, + "hash2": 2874412109, + "struct_fields": [ + { + "name": "blendLayer1Channel", + "type_name": "keen::VertexColorChannel", + "type_hash": 771075410, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialBlendMap", + "type_name_2": "PbrMaterialBlendMap", + "qualified_name": "keen::PbrMaterialBlendMap", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3341842420, + "hash2": 59607900, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "addressModeU", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 16 + }, + { + "name": "addressModeV", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 17 + }, + { + "name": "uvSet", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 18 + }, + { + "name": "uvScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "uvScalingYEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "uvScalingY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialOverlayNormalMap", + "type_name_2": "PbrMaterialOverlayNormalMap", + "qualified_name": "keen::PbrMaterialOverlayNormalMap", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 660871728, + "hash2": 1751520689, + "struct_fields": [ + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 16 + }, + { + "name": "addressModeU", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 32 + }, + { + "name": "addressModeV", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 33 + }, + { + "name": "uvSet", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 34 + }, + { + "name": "uvScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "uvScalingYEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "uvScalingY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "useVertexColorChannelWeight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "vertexColorChannel", + "type_name": "keen::VertexColorChannel", + "type_hash": 771075410, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTranslucency", + "type_name_2": "PbrTranslucency", + "qualified_name": "keen::PbrTranslucency", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 416110947, + "hash2": 4069132925, + "struct_fields": [ + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "thicknessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 20 + }, + { + "name": "viewDependency", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "wrapShadingStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PbrMaterialLayer[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PbrMaterialLayer", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2812866671, + "hash2": 3228414929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterial", + "type_name_2": "PbrMaterial", + "qualified_name": "keen::PbrMaterial", + "referenced_type_name": "keen::Material", + "class_size": 212, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 637525131, + "hash2": 3049997987, + "struct_fields": [ + { + "name": "blendLayers", + "type_name": "keen::BlobArray", + "type_hash": 2812866671, + "data_offset": 0 + }, + { + "name": "blendMode", + "type_name": "keen::PbrMaterialBlendMode", + "type_hash": 2753708177, + "data_offset": 8 + }, + { + "name": "blendVertexVertexValue", + "type_name": "keen::PbrMaterialBlendVertexValue", + "type_hash": 3294899721, + "data_offset": 9 + }, + { + "name": "blendMap", + "type_name": "keen::PbrMaterialBlendMap", + "type_hash": 3341842420, + "data_offset": 12 + }, + { + "name": "overlayNormalLayer", + "type_name": "keen::PbrMaterialOverlayNormalMap", + "type_hash": 660871728, + "data_offset": 44 + }, + { + "name": "multiplyEmissiveByVertexColor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "multiplyEmissiveVertexColorChannel", + "type_name": "keen::VertexColorChannelRgb", + "type_hash": 435168453, + "data_offset": 97 + }, + { + "name": "multiplyAlbedoByVertexColor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 98 + }, + { + "name": "multiplyAlbedoVertexColorChannel", + "type_name": "keen::VertexColorChannelRgb", + "type_hash": 435168453, + "data_offset": 99 + }, + { + "name": "multiplyAoByVertexColorChannel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "multiplyAoVertexColorChannel", + "type_name": "keen::VertexColorChannel", + "type_hash": 771075410, + "data_offset": 101 + }, + { + "name": "multiplyAlphaByVertexAlpha", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 102 + }, + { + "name": "translucency", + "type_name": "keen::PbrTranslucency", + "type_hash": 416110947, + "data_offset": 104 + }, + { + "name": "enableGiWrapShading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 136 + }, + { + "name": "adjustGiNormals", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 137 + }, + { + "name": "enableGiSpecular", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 138 + }, + { + "name": "enableBackfaceCulling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 139 + }, + { + "name": "useFlippedBackfaceNormals", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + }, + { + "name": "enableAlphaBlending", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 141 + }, + { + "name": "enableAlphaTest", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 142 + }, + { + "name": "enableShadowAlphaTest", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 143 + }, + { + "name": "enableHashedAlphaTest", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + }, + { + "name": "disableFrostShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 145 + }, + { + "name": "disableSnowShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 146 + }, + { + "name": "disableWetnessShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 147 + }, + { + "name": "enableFrostShaderGlitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 148 + }, + { + "name": "enableGradientMapSupport", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 149 + }, + { + "name": "enableTessellation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 150 + }, + { + "name": "tessellationStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "tessellationSubdivisions", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "enableShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 168 + }, + { + "name": "enableContactShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 169 + }, + { + "name": "dissolve", + "type_name": "keen::DissolveMaterialParameters", + "type_hash": 3960633956, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialEmissiveMapShaderData", + "type_name_2": "PbrMaterialEmissiveMapShaderData", + "qualified_name": "keen::PbrMaterialEmissiveMapShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3609487063, + "hash2": 2076702463, + "struct_fields": [ + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "exposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "StreamedTexture2D_float[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::StreamedTexture2D_float", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 4016253992, + "hash2": 924530970, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialTintShaderData", + "type_name_2": "PbrMaterialTintShaderData", + "qualified_name": "keen::PbrMaterialTintShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2019519015, + "hash2": 3927551881, + "struct_fields": [ + { + "name": "enableLayerBitMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maskMaps", + "type_name": "keen::StaticArray", + "type_hash": 4016253992, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialDisplacementSettings", + "type_name_2": "PbrMaterialDisplacementSettings", + "qualified_name": "keen::PbrMaterialDisplacementSettings", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1016431749, + "hash2": 4005432109, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialLayer", + "type_name_2": "PbrTerrainMaterialLayer", + "qualified_name": "keen::PbrTerrainMaterialLayer", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4153811091, + "hash2": 2207531504, + "struct_fields": [ + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 16 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 32 + }, + { + "name": "heightMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 48 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 64 + }, + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialBlendingSmoothness", + "type_name_2": "PbrTerrainMaterialBlendingSmoothness", + "qualified_name": "keen::PbrTerrainMaterialBlendingSmoothness", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1281648902, + "hash2": 2545773952, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "smoothness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialCenterBlendingSmoothness", + "type_name_2": "PbrTerrainMaterialCenterBlendingSmoothness", + "qualified_name": "keen::PbrTerrainMaterialCenterBlendingSmoothness", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3736877411, + "hash2": 2876104025, + "struct_fields": [ + { + "name": "smoothness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialDetailNormalBlendMode", + "type_name_2": "PbrTerrainMaterialDetailNormalBlendMode", + "qualified_name": "keen::PbrTerrainMaterialDetailNormalBlendMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 50842972, + "hash2": 964933973, + "struct_fields": [], + "enum_fields": [ + { + "name": "Alpha", + "value": 0 + }, + { + "name": "Overlay", + "value": 1 + } + ] + }, + { + "type_name_1": "PbrTerrainMaterialDisplacementLayer", + "type_name_2": "PbrTerrainMaterialDisplacementLayer", + "qualified_name": "keen::PbrTerrainMaterialDisplacementLayer", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2331995270, + "hash2": 1139230600, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "origin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingNoiseBlendRange", + "type_name_2": "PbrBuildingNoiseBlendRange", + "qualified_name": "keen::PbrBuildingNoiseBlendRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2958767668, + "hash2": 1257767020, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingMaterialDisplacementLayer", + "type_name_2": "PbrBuildingMaterialDisplacementLayer", + "qualified_name": "keen::PbrBuildingMaterialDisplacementLayer", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1835925801, + "hash2": 4005432109, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingMaterial", + "type_name_2": "PbrBuildingMaterial", + "qualified_name": "keen::PbrBuildingMaterial", + "referenced_type_name": null, + "class_size": 1412, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 1912869079, + "hash2": 2550586047, + "struct_fields": [ + { + "name": "baseMaterialSide", + "type_name": "keen::PbrMaterialLayer", + "type_hash": 3839147012, + "data_offset": 0 + }, + { + "name": "baseMaterialSideDisplacement", + "type_name": "keen::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1835925801, + "data_offset": 268 + }, + { + "name": "baseMaterialTop", + "type_name": "keen::PbrMaterialLayer", + "type_hash": 3839147012, + "data_offset": 276 + }, + { + "name": "baseMaterialTopDisplacement", + "type_name": "keen::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1835925801, + "data_offset": 544 + }, + { + "name": "baseMaterialBottom", + "type_name": "keen::PbrMaterialLayer", + "type_hash": 3839147012, + "data_offset": 552 + }, + { + "name": "baseMaterialBottomDisplacement", + "type_name": "keen::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1835925801, + "data_offset": 820 + }, + { + "name": "edgeMaterial", + "type_name": "keen::PbrMaterialLayer", + "type_hash": 3839147012, + "data_offset": 828 + }, + { + "name": "edgeMaterialDisplacement", + "type_name": "keen::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1835925801, + "data_offset": 1096 + }, + { + "name": "edgeMaterialTopDisplacement", + "type_name": "keen::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1835925801, + "data_offset": 1104 + }, + { + "name": "noiseMaterial", + "type_name": "keen::PbrMaterialLayer", + "type_hash": 3839147012, + "data_offset": 1112 + }, + { + "name": "noiseMaterialDisplacement", + "type_name": "keen::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1835925801, + "data_offset": 1380 + }, + { + "name": "edgeBlendingCurve", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1388 + }, + { + "name": "noiseBlendRange", + "type_name": "keen::PbrBuildingNoiseBlendRange", + "type_hash": 2958767668, + "data_offset": 1392 + }, + { + "name": "edgeOnlySide", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1400 + }, + { + "name": "bevelRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1404 + }, + { + "name": "mapping", + "type_name": "keen::BuildingMappingType", + "type_hash": 1467671228, + "data_offset": 1408 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerTop", + "type_name_2": "PbrBuildingDetailScatterLayerTop", + "qualified_name": "keen::PbrBuildingDetailScatterLayerTop", + "referenced_type_name": "keen::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 804565171, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerSide", + "type_name_2": "PbrBuildingDetailScatterLayerSide", + "qualified_name": "keen::PbrBuildingDetailScatterLayerSide", + "referenced_type_name": "keen::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2919752467, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerBottom", + "type_name_2": "PbrBuildingDetailScatterLayerBottom", + "qualified_name": "keen::PbrBuildingDetailScatterLayerBottom", + "referenced_type_name": "keen::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2287359755, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerNoise", + "type_name_2": "PbrBuildingDetailScatterLayerNoise", + "qualified_name": "keen::PbrBuildingDetailScatterLayerNoise", + "referenced_type_name": "keen::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2129282570, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrRfxRenderMaterialFlag", + "type_name_2": "PbrRfxRenderMaterialFlag", + "qualified_name": "keen::PbrRfxRenderMaterialFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 15, + "primitive_type": "Enum", + "hash1": 2995691237, + "hash2": 1774100379, + "struct_fields": [], + "enum_fields": [ + { + "name": "EnableGiWrapShading", + "value": 0 + }, + { + "name": "AdjustGiNormals", + "value": 1 + }, + { + "name": "EnableDissolve", + "value": 2 + }, + { + "name": "EnableHashedAlpha", + "value": 3 + }, + { + "name": "EnableGradientMap", + "value": 4 + }, + { + "name": "SampleAo", + "value": 5 + }, + { + "name": "SampleOpacity", + "value": 6 + }, + { + "name": "EnableContactShadows", + "value": 7 + }, + { + "name": "EnableAnisotropicSpecular", + "value": 8 + }, + { + "name": "FlipBackfaceNormals", + "value": 9 + }, + { + "name": "MultiplyAlphaByVertexAlpha", + "value": 10 + }, + { + "name": "DisableFrostShader", + "value": 11 + }, + { + "name": "DisableSnowShader", + "value": 12 + }, + { + "name": "DisableWetnessShader", + "value": 13 + }, + { + "name": "EnableFrostShaderGlitter", + "value": 14 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::PbrRfxRenderMaterialFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 2182414198, + "hash2": 1641811541, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrRfxRenderMaterialFlagMask", + "type_name_2": "PbrRfxRenderMaterialFlagMask", + "qualified_name": "keen::PbrRfxRenderMaterialFlagMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1783125609, + "hash2": 2012266584, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RfxSampler", + "type_name_2": "RfxSampler", + "qualified_name": "keen::RfxSampler", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2764789758, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "StreamedTexture2D_float4[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::StreamedTexture2D_float4", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 912540299, + "hash2": 2941702918, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "StreamedTexture2D_float[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::StreamedTexture2D_float", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 4049956325, + "hash2": 4078473079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "RfxSampler[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::RfxSampler", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 268667092, + "hash2": 400738747, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float2[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float2", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 1641552836, + "hash2": 3267077425, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 1333710690, + "hash2": 1141734098, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PbrMaterialTintShaderData[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::PbrMaterialTintShaderData", + "class_size": 32, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2605986447, + "hash2": 1251333045, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PbrMaterialEmissiveMapShaderData[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::PbrMaterialEmissiveMapShaderData", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3967769651, + "hash2": 3309515016, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrRfxRenderMaterial", + "type_name_2": "PbrRfxRenderMaterial", + "qualified_name": "keen::PbrRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 244, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 2862354475, + "hash2": 991107181, + "struct_fields": [ + { + "name": "layerParameters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "blendMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 4 + }, + { + "name": "blendMapTexcoordScaling", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "albedoMap", + "type_name": "keen::StaticArray", + "type_hash": 912540299, + "data_offset": 16 + }, + { + "name": "normalMap", + "type_name": "keen::StaticArray", + "type_hash": 912540299, + "data_offset": 24 + }, + { + "name": "emissiveMap", + "type_name": "keen::StaticArray", + "type_hash": 912540299, + "data_offset": 32 + }, + { + "name": "materialParamsMap", + "type_name": "keen::StaticArray", + "type_hash": 912540299, + "data_offset": 40 + }, + { + "name": "heightMap", + "type_name": "keen::StaticArray", + "type_hash": 4049956325, + "data_offset": 48 + }, + { + "name": "layerSampler", + "type_name": "keen::StaticArray", + "type_hash": 268667092, + "data_offset": 56 + }, + { + "name": "texCoordScaling", + "type_name": "keen::StaticArray", + "type_hash": 1641552836, + "data_offset": 64 + }, + { + "name": "anisotropyDirectionMap", + "type_name": "keen::StaticArray", + "type_hash": 912540299, + "data_offset": 80 + }, + { + "name": "anisotropyStrength", + "type_name": "keen::StaticArray", + "type_hash": 1333710690, + "data_offset": 88 + }, + { + "name": "constantReflectance", + "type_name": "keen::StaticArray", + "type_hash": 1333710690, + "data_offset": 96 + }, + { + "name": "albedoTintShaderData", + "type_name": "keen::StaticArray", + "type_hash": 2605986447, + "data_offset": 104 + }, + { + "name": "heightBlendingRange", + "type_name": "keen::StaticArray", + "type_hash": 1333710690, + "data_offset": 136 + }, + { + "name": "multiplyEmissiveVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "multiplyAlbedoVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 148 + }, + { + "name": "multiplyAoVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + }, + { + "name": "blendMapSampler", + "type_name": "keen::RfxSampler", + "type_hash": 2764789758, + "data_offset": 156 + }, + { + "name": "translucencyStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 160 + }, + { + "name": "translucencyMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 164 + }, + { + "name": "emissiveMapShaderData", + "type_name": "keen::StaticArray", + "type_hash": 3967769651, + "data_offset": 168 + }, + { + "name": "overlayNormalMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 184 + }, + { + "name": "overlayAoMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 188 + }, + { + "name": "overlayNormalMapSampler", + "type_name": "keen::RfxSampler", + "type_hash": 2764789758, + "data_offset": 192 + }, + { + "name": "overlayNormalMapVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 196 + }, + { + "name": "overlayNormalMapTexCoordScaling", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 200 + }, + { + "name": "dissolveEdgeGlowColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 208 + }, + { + "name": "dissolveEdgeGlowWidthInv", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "dissolveEdgeGlowParam", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "dissolveNoiseMap", + "type_name": "keen::BindlessTexture3D_float", + "type_hash": 2581587761, + "data_offset": 228 + }, + { + "name": "dissolveNoiseTiling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 232 + }, + { + "name": "dissolveNoiseFadeRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NightAdaptation", + "type_name_2": "post_processing.NightAdaptation", + "qualified_name": "keen::post_processing::NightAdaptation", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3459828913, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteBalance", + "type_name_2": "post_processing.WhiteBalance", + "qualified_name": "keen::post_processing::WhiteBalance", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2670641077, + "hash2": 865582363, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "temperature", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "tint", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChannelMixer", + "type_name_2": "post_processing.ChannelMixer", + "qualified_name": "keen::post_processing::ChannelMixer", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3516532482, + "hash2": 3433578308, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "r", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + }, + { + "name": "g", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 20 + }, + { + "name": "b", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeightedColor", + "type_name_2": "post_processing.WeightedColor", + "qualified_name": "keen::post_processing::WeightedColor", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1932613458, + "hash2": 1142735604, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TonalColors", + "type_name_2": "post_processing.TonalColors", + "qualified_name": "keen::post_processing::TonalColors", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2213378870, + "hash2": 900675206, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "shadows", + "type_name": "keen::post_processing::WeightedColor", + "type_hash": 1932613458, + "data_offset": 4 + }, + { + "name": "midtones", + "type_name": "keen::post_processing::WeightedColor", + "type_hash": 1932613458, + "data_offset": 24 + }, + { + "name": "highlights", + "type_name": "keen::post_processing::WeightedColor", + "type_hash": 1932613458, + "data_offset": 44 + }, + { + "name": "shadowStart", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "midStart", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "midEnd", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "highlightEnd", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorChannelWeights", + "type_name_2": "post_processing.ColorChannelWeights", + "qualified_name": "keen::post_processing::ColorChannelWeights", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2185331885, + "hash2": 3649230166, + "struct_fields": [ + { + "name": "red", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "green", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "blue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlopeOffsetColor", + "type_name_2": "post_processing.SlopeOffsetColor", + "qualified_name": "keen::post_processing::SlopeOffsetColor", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 432166533, + "hash2": 1492077054, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "slope", + "type_name": "keen::post_processing::ColorChannelWeights", + "type_hash": 2185331885, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::post_processing::ColorChannelWeights", + "type_hash": 2185331885, + "data_offset": 16 + }, + { + "name": "power", + "type_name": "keen::post_processing::ColorChannelWeights", + "type_hash": 2185331885, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Contrast", + "type_name_2": "post_processing.Contrast", + "qualified_name": "keen::post_processing::Contrast", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 695539576, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Vibrance", + "type_name_2": "post_processing.Vibrance", + "qualified_name": "keen::post_processing::Vibrance", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3917831312, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Saturation", + "type_name_2": "post_processing.Saturation", + "qualified_name": "keen::post_processing::Saturation", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 410055042, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Curves", + "type_name_2": "post_processing.Curves", + "qualified_name": "keen::post_processing::Curves", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 19397850, + "hash2": 1846705202, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "shadowGamma", + "type_name": "keen::post_processing::ColorChannelWeights", + "type_hash": 2185331885, + "data_offset": 4 + }, + { + "name": "midpoint", + "type_name": "keen::post_processing::ColorChannelWeights", + "type_hash": 2185331885, + "data_offset": 16 + }, + { + "name": "highlightScale", + "type_name": "keen::post_processing::ColorChannelWeights", + "type_hash": 2185331885, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorFilter", + "type_name_2": "post_processing.ColorFilter", + "qualified_name": "keen::post_processing::ColorFilter", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1846103999, + "hash2": 863628346, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorGrading", + "type_name_2": "post_processing.ColorGrading", + "qualified_name": "keen::post_processing::ColorGrading", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 131671007, + "hash2": 2551274583, + "struct_fields": [ + { + "name": "nightAdaptation", + "type_name": "keen::post_processing::NightAdaptation", + "type_hash": 3459828913, + "data_offset": 0 + }, + { + "name": "whiteBalance", + "type_name": "keen::post_processing::WhiteBalance", + "type_hash": 2670641077, + "data_offset": 8 + }, + { + "name": "channelMixer", + "type_name": "keen::post_processing::ChannelMixer", + "type_hash": 3516532482, + "data_offset": 20 + }, + { + "name": "tonalColors", + "type_name": "keen::post_processing::TonalColors", + "type_hash": 2213378870, + "data_offset": 72 + }, + { + "name": "slopeOffsetColor", + "type_name": "keen::post_processing::SlopeOffsetColor", + "type_hash": 432166533, + "data_offset": 152 + }, + { + "name": "contrast", + "type_name": "keen::post_processing::Contrast", + "type_hash": 695539576, + "data_offset": 192 + }, + { + "name": "vibrance", + "type_name": "keen::post_processing::Vibrance", + "type_hash": 3917831312, + "data_offset": 200 + }, + { + "name": "saturation", + "type_name": "keen::post_processing::Saturation", + "type_hash": 410055042, + "data_offset": 208 + }, + { + "name": "curves", + "type_name": "keen::post_processing::Curves", + "type_hash": 19397850, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingParameters", + "type_name_2": "PostProcessingParameters", + "qualified_name": "keen::PostProcessingParameters", + "referenced_type_name": null, + "class_size": 276, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4239627299, + "hash2": 4108371843, + "struct_fields": [ + { + "name": "colorFilter", + "type_name": "keen::post_processing::ColorFilter", + "type_hash": 1846103999, + "data_offset": 0 + }, + { + "name": "colorGrading", + "type_name": "keen::post_processing::ColorGrading", + "type_hash": 131671007, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TonemappingConstants", + "type_name_2": "TonemappingConstants", + "qualified_name": "keen::TonemappingConstants", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 793551605, + "hash2": 1515625131, + "struct_fields": [ + { + "name": "curve", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "crosstalkPreSaturation", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "hdrMax", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "crosstalk", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "crosstalkPostSaturation", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingCompositeFlag", + "type_name_2": "PostProcessingCompositeFlag", + "qualified_name": "keen::PostProcessingCompositeFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 1785824016, + "hash2": 713700321, + "struct_fields": [], + "enum_fields": [ + { + "name": "EnableBilateralGrid", + "value": 0 + }, + { + "name": "EnableColorGrading", + "value": 1 + }, + { + "name": "OverlayDebugColor", + "value": 2 + }, + { + "name": "EnableDithering", + "value": 3 + }, + { + "name": "SkipConversionToSrgb", + "value": 4 + }, + { + "name": "EnableToneMapping", + "value": 5 + }, + { + "name": "OutputFinalHistogram", + "value": 6 + }, + { + "name": "ResetAlphaPreUpscale", + "value": 7 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::PostProcessingCompositeFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3938353907, + "hash2": 2587407731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingCompositeFlags", + "type_name_2": "PostProcessingCompositeFlags", + "qualified_name": "keen::PostProcessingCompositeFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4088517849, + "hash2": 3910559198, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingCompositeConstants", + "type_name_2": "PostProcessingCompositeConstants", + "qualified_name": "keen::PostProcessingCompositeConstants", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 651222031, + "hash2": 4169911743, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "colorFilter", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "bloomStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "temporalNoise", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "lutOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "lutScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "vignetteColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + }, + { + "name": "flashColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 80 + }, + { + "name": "toneMapping", + "type_name": "keen::TonemappingConstants", + "type_hash": 793551605, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingHistogramConstants", + "type_name_2": "PostProcessingHistogramConstants", + "qualified_name": "keen::PostProcessingHistogramConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1982743044, + "hash2": 3519184589, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "inverseExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "useSceneBrightness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint32[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint32", + "class_size": 1024, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 1080334938, + "hash2": 2637027825, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingHistogramResult", + "type_name_2": "PostProcessingHistogramResult", + "qualified_name": "keen::PostProcessingHistogramResult", + "referenced_type_name": null, + "class_size": 1024, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 172499490, + "hash2": 3473794760, + "struct_fields": [ + { + "name": "pixelCount", + "type_name": "keen::StaticArray", + "type_hash": 1080334938, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneHistogramShaderParameters", + "type_name_2": "SceneHistogramShaderParameters", + "qualified_name": "keen::SceneHistogramShaderParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4055558505, + "hash2": 897916377, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BloomConstants", + "type_name_2": "BloomConstants", + "qualified_name": "keen::BloomConstants", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2986121278, + "hash2": 2686230225, + "struct_fields": [ + { + "name": "halfPixelSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "applyBilateralGrid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "bilateralGridDetail", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "thresholdLow", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "thresholdHigh", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "fogContribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "compression", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearBilateralGridConstants", + "type_name_2": "ClearBilateralGridConstants", + "qualified_name": "keen::ClearBilateralGridConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 565743026, + "hash2": 407613826, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FillBilateralGridConstants", + "type_name_2": "FillBilateralGridConstants", + "qualified_name": "keen::FillBilateralGridConstants", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3198990046, + "hash2": 373119869, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "oneOverSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "inverseExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyResultBilateralGridConstants", + "type_name_2": "CopyResultBilateralGridConstants", + "qualified_name": "keen::CopyResultBilateralGridConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 144752107, + "hash2": 407613826, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlurBilateralGridConstants", + "type_name_2": "BlurBilateralGridConstants", + "qualified_name": "keen::BlurBilateralGridConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 481294498, + "hash2": 1816692165, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oneOverGridSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyBilateralGridConstants", + "type_name_2": "ApplyBilateralGridConstants", + "qualified_name": "keen::ApplyBilateralGridConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1157938063, + "hash2": 3819249918, + "struct_fields": [ + { + "name": "oneOverGridSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "inverseExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "midPointLogLuminance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "highlightContrastFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "shadowContrastFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "detailFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefixSumPrepareConstants", + "type_name_2": "PrefixSumPrepareConstants", + "qualified_name": "keen::PrefixSumPrepareConstants", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2248100993, + "hash2": 2867369277, + "struct_fields": [ + { + "name": "maxElementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "counterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SmallPrefixSumShaderParameters", + "type_name_2": "SmallPrefixSumShaderParameters", + "qualified_name": "keen::SmallPrefixSumShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 735605961, + "hash2": 1563141909, + "struct_fields": [ + { + "name": "elementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShaderVertexAttribute", + "type_name_2": "RenderShaderVertexAttribute", + "qualified_name": "keen::RenderShaderVertexAttribute", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2232781343, + "hash2": 3588023354, + "struct_fields": [ + { + "name": "location", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "format", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderVertexFormat", + "type_name_2": "RenderVertexFormat", + "qualified_name": "keen::RenderVertexFormat", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 3380276507, + "hash2": 1586395552, + "struct_fields": [], + "enum_fields": [ + { + "name": "P", + "value": 0 + }, + { + "name": "PC", + "value": 1 + }, + { + "name": "PT", + "value": 2 + }, + { + "name": "PCT", + "value": 3 + }, + { + "name": "PNCT", + "value": 4 + }, + { + "name": "PNTT", + "value": 5 + }, + { + "name": "PNTCT", + "value": 6 + }, + { + "name": "Vfx", + "value": 7 + } + ] + }, + { + "type_name_1": "TextureAlphaMode", + "type_name_2": "TextureAlphaMode", + "qualified_name": "keen::TextureAlphaMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2068301368, + "hash2": 3351663417, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "ExplicitChannel", + "value": 1 + }, + { + "name": "Stencil", + "value": 2 + }, + { + "name": "Smooth", + "value": 3 + } + ] + }, + { + "type_name_1": "TextureContentType", + "type_name_2": "TextureContentType", + "qualified_name": "keen::TextureContentType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2791589646, + "hash2": 1928039817, + "struct_fields": [], + "enum_fields": [ + { + "name": "RgbColors", + "value": 0 + }, + { + "name": "TangentSpaceNormals", + "value": 1 + }, + { + "name": "RgbWithAlphaCoverage", + "value": 2 + }, + { + "name": "AlphaCoverage", + "value": 3 + }, + { + "name": "ObjectSpaceNormal", + "value": 4 + } + ] + }, + { + "type_name_1": "TextureConverterFlag", + "type_name_2": "TextureConverterFlag", + "qualified_name": "keen::TextureConverterFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 226234965, + "hash2": 2187123986, + "struct_fields": [], + "enum_fields": [ + { + "name": "DontCreateMipMapChain", + "value": 0 + }, + { + "name": "DisableSRGBToLinearConversionAtRuntime", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::TextureConverterFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 1987341662, + "hash2": 3125883143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TextureConverterFlags", + "type_name_2": "TextureConverterFlags", + "qualified_name": "keen::TextureConverterFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1615892946, + "hash2": 1671747952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderTextureChannelData", + "type_name_2": "RenderTextureChannelData", + "qualified_name": "keen::RenderTextureChannelData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3788224340, + "hash2": 170105700, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "sourceChannel", + "type_name": "keen::TextureChannel", + "type_hash": 1809198816, + "data_offset": 16 + }, + { + "name": "roughnessNormalMapImage", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 20 + }, + { + "name": "clampRoughnessNormalU", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "clampRoughnessNormalV", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "targetChannel", + "type_name": "keen::TextureChannel", + "type_hash": 1809198816, + "data_offset": 38 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureSamplingInfo", + "type_name_2": "RenderMaterialTextureSamplingInfo", + "qualified_name": "keen::RenderMaterialTextureSamplingInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2148857531, + "hash2": 3323061039, + "struct_fields": [ + { + "name": "vertexAttributeId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "scaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderTextureChannelData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderTextureChannelData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3120552219, + "hash2": 2622914468, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureElement", + "type_name_2": "RenderMaterialTextureElement", + "qualified_name": "keen::RenderMaterialTextureElement", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 24285318, + "hash2": 2413607486, + "struct_fields": [ + { + "name": "textureChannels", + "type_name": "keen::BlobArray", + "type_hash": 3120552219, + "data_offset": 0 + }, + { + "name": "samplingInfo", + "type_name": "keen::RenderMaterialTextureSamplingInfo", + "type_hash": 2148857531, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMaterialTextureElement[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMaterialTextureElement", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 112035169, + "hash2": 2720577311, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureData", + "type_name_2": "RenderMaterialTextureData", + "qualified_name": "keen::RenderMaterialTextureData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3902666670, + "hash2": 3937562036, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "textureType", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 4 + }, + { + "name": "pixelFormat", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 5 + }, + { + "name": "alphaMode", + "type_name": "keen::TextureAlphaMode", + "type_hash": 2068301368, + "data_offset": 6 + }, + { + "name": "textureElements", + "type_name": "keen::BlobArray", + "type_hash": 112035169, + "data_offset": 8 + }, + { + "name": "contentType", + "type_name": "keen::TextureContentType", + "type_hash": 2791589646, + "data_offset": 16 + }, + { + "name": "convertFlags", + "type_name": "keen::TextureConverterFlags", + "type_hash": 1615892946, + "data_offset": 20 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSamplerFilterMode", + "type_name_2": "RenderSamplerFilterMode", + "qualified_name": "keen::RenderSamplerFilterMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2333872675, + "hash2": 3620113230, + "struct_fields": [], + "enum_fields": [ + { + "name": "Nearest", + "value": 0 + }, + { + "name": "Linear", + "value": 1 + } + ] + }, + { + "type_name_1": "RenderComparisonFunction", + "type_name_2": "RenderComparisonFunction", + "qualified_name": "keen::RenderComparisonFunction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 963001915, + "hash2": 4213541594, + "struct_fields": [], + "enum_fields": [ + { + "name": "Never", + "value": 0 + }, + { + "name": "Less", + "value": 1 + }, + { + "name": "Equal", + "value": 2 + }, + { + "name": "LessEqual", + "value": 3 + }, + { + "name": "Greater", + "value": 4 + }, + { + "name": "NotEqual", + "value": 5 + }, + { + "name": "GreaterEqual", + "value": 6 + }, + { + "name": "Always", + "value": 7 + } + ] + }, + { + "type_name_1": "RenderMaterialSamplerData", + "type_name_2": "RenderMaterialSamplerData", + "qualified_name": "keen::RenderMaterialSamplerData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 123443485, + "hash2": 2739927551, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "addressModeU", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 4 + }, + { + "name": "addressModeV", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 5 + }, + { + "name": "addressModeW", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 6 + }, + { + "name": "minFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 7 + }, + { + "name": "magFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 8 + }, + { + "name": "mipFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 9 + }, + { + "name": "comparisonFunction", + "type_name": "keen::RenderComparisonFunction", + "type_hash": 963001915, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderEffectId", + "type_name_2": "RenderEffectId", + "qualified_name": "keen::RenderEffectId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 13, + "primitive_type": "Enum", + "hash1": 1470283450, + "hash2": 2097279993, + "struct_fields": [], + "enum_fields": [ + { + "name": "Simple", + "value": 0 + }, + { + "name": "Billboard", + "value": 1 + }, + { + "name": "Pbr", + "value": 2 + }, + { + "name": "PbrTerrain", + "value": 3 + }, + { + "name": "PbrBuilding", + "value": 4 + }, + { + "name": "PbrRoof", + "value": 5 + }, + { + "name": "Gizmo", + "value": 6 + }, + { + "name": "Grid", + "value": 7 + }, + { + "name": "VfxGrid", + "value": 8 + }, + { + "name": "Transparent", + "value": 9 + }, + { + "name": "TerraformingCursor", + "value": 10 + }, + { + "name": "SkyTexture", + "value": 11 + }, + { + "name": "ForestFogFootprint", + "value": 12 + } + ] + }, + { + "type_name_1": "RenderMaterialFlag", + "type_name_2": "RenderMaterialFlag", + "qualified_name": "keen::RenderMaterialFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2166682289, + "hash2": 2970031141, + "struct_fields": [], + "enum_fields": [ + { + "name": "Tessellated", + "value": 0 + }, + { + "name": "AlphaTested", + "value": 1 + }, + { + "name": "DoubleSided", + "value": 2 + }, + { + "name": "DisableShadows", + "value": 3 + }, + { + "name": "CanDissolve", + "value": 4 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::RenderMaterialFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1353872993, + "hash2": 428996250, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialFlagMask", + "type_name_2": "RenderMaterialFlagMask", + "qualified_name": "keen::RenderMaterialFlagMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 589146061, + "hash2": 847325247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMaterialTextureData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMaterialTextureData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3862317407, + "hash2": 2341655300, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMaterialSamplerData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMaterialSamplerData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3862315994, + "hash2": 1439111390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialConverterData", + "type_name_2": "RenderMaterialConverterData", + "qualified_name": "keen::RenderMaterialConverterData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1357614813, + "hash2": 3210016655, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "effectId", + "type_name": "keen::RenderEffectId", + "type_hash": 1470283450, + "data_offset": 24 + }, + { + "name": "flags", + "type_name": "keen::RenderMaterialFlagMask", + "type_hash": 589146061, + "data_offset": 25 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 28 + }, + { + "name": "dataTypeSignature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 36 + }, + { + "name": "textures", + "type_name": "keen::BlobArray", + "type_hash": 3862317407, + "data_offset": 40 + }, + { + "name": "samplers", + "type_name": "keen::BlobArray", + "type_hash": 3862315994, + "data_offset": 48 + }, + { + "name": "vertexFormat", + "type_name": "keen::RenderVertexFormat", + "type_hash": 3380276507, + "data_offset": 56 + }, + { + "name": "instanceDataTypeNameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorObjectType", + "type_name_2": "RenderMemoryAllocatorObjectType", + "qualified_name": "keen::RenderMemoryAllocatorObjectType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 389274961, + "hash2": 2430139226, + "struct_fields": [], + "enum_fields": [ + { + "name": "Buffer", + "value": 0 + }, + { + "name": "Texture", + "value": 1 + } + ] + }, + { + "type_name_1": "RenderMemoryAllocatorObjectState", + "type_name_2": "RenderMemoryAllocatorObjectState", + "qualified_name": "keen::RenderMemoryAllocatorObjectState", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1349758938, + "hash2": 4091513187, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::RenderMemoryAllocatorObjectType", + "type_hash": 389274961, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "allocationRegionHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "allocationMemoryType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "allocationBlockHandle", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 24 + }, + { + "name": "allocationOffset", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 32 + }, + { + "name": "allocationSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMemoryAllocatorObjectState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMemoryAllocatorObjectState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3166667053, + "hash2": 2845544734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorAllocationState", + "type_name_2": "RenderMemoryAllocatorAllocationState", + "qualified_name": "keen::RenderMemoryAllocatorAllocationState", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 711512589, + "hash2": 1112775278, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "objects", + "type_name": "keen::BlobArray", + "type_hash": 3166667053, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorBlockState", + "type_name_2": "RenderMemoryAllocatorBlockState", + "qualified_name": "keen::RenderMemoryAllocatorBlockState", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 297969768, + "hash2": 454818765, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "sizeInBytes", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "refCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMemoryAllocatorBlockState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMemoryAllocatorBlockState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2402182017, + "hash2": 2835989230, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorRegionMemoryTypeState", + "type_name_2": "RenderMemoryAllocatorRegionMemoryTypeState", + "qualified_name": "keen::RenderMemoryAllocatorRegionMemoryTypeState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1852208706, + "hash2": 1007636918, + "struct_fields": [ + { + "name": "memoryType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "graphicsDeviceMemoryTypeIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "isMapped", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "blocks", + "type_name": "keen::BlobArray", + "type_hash": 2402182017, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMemoryAllocatorRegionMemoryTypeState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMemoryAllocatorRegionMemoryTypeState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3424368409, + "hash2": 4118705553, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorRegionState", + "type_name_2": "RenderMemoryAllocatorRegionState", + "qualified_name": "keen::RenderMemoryAllocatorRegionState", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1221529987, + "hash2": 507461260, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "priority", + "type_name": "keen::GraphicsDeviceMemoryPriority", + "type_hash": 2961279078, + "data_offset": 12 + }, + { + "name": "chunkSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + }, + { + "name": "memoryTypes", + "type_name": "keen::BlobArray", + "type_hash": 3424368409, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMemoryAllocatorAllocationState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMemoryAllocatorAllocationState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2538339652, + "hash2": 1325267166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMemoryAllocatorRegionState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMemoryAllocatorRegionState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4165368114, + "hash2": 133502546, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorState", + "type_name_2": "RenderMemoryAllocatorState", + "qualified_name": "keen::RenderMemoryAllocatorState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2701397031, + "hash2": 1011420778, + "struct_fields": [ + { + "name": "allocations", + "type_name": "keen::BlobArray", + "type_hash": 2538339652, + "data_offset": 0 + }, + { + "name": "regions", + "type_name": "keen::BlobArray", + "type_hash": 4165368114, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WorldMaterialBlending2Resource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2977633467, + "hash2": 451901793, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BuildingMaterialBlendingResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3271050437, + "hash2": 2377691087, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GiVoxelBuildingMaterialResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 320565640, + "hash2": 3676758805, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DetailScatterResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2048461888, + "hash2": 3538001507, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::AnalyticFogResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 935819000, + "hash2": 483046545, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VolumetricFog2Resource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 501053623, + "hash2": 3913184140, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2884876446, + "hash2": 1439572916, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderResources", + "type_name_2": "RenderResources", + "qualified_name": "keen::RenderResources", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1611228611, + "hash2": 887943951, + "struct_fields": [ + { + "name": "renderSystem", + "type_name": "keen::ObjectReference", + "type_hash": 3413885118, + "data_offset": 0 + }, + { + "name": "worldMaterialBlending2", + "type_name": "keen::ObjectReference", + "type_hash": 2977633467, + "data_offset": 16 + }, + { + "name": "buildingMaterialBlending", + "type_name": "keen::ObjectReference", + "type_hash": 3271050437, + "data_offset": 32 + }, + { + "name": "giVoxelBuildingMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 320565640, + "data_offset": 48 + }, + { + "name": "worldDetailScatter", + "type_name": "keen::ObjectReference", + "type_hash": 2048461888, + "data_offset": 64 + }, + { + "name": "buildingDetailScatter", + "type_name": "keen::ObjectReference", + "type_hash": 2048461888, + "data_offset": 80 + }, + { + "name": "analyticFog", + "type_name": "keen::ObjectReference", + "type_hash": 935819000, + "data_offset": 96 + }, + { + "name": "volumetricFog2", + "type_name": "keen::ObjectReference", + "type_hash": 501053623, + "data_offset": 112 + }, + { + "name": "volumetricFogGridParameters", + "type_name": "keen::ObjectReference", + "type_hash": 2868015171, + "data_offset": 128 + }, + { + "name": "gpcResources", + "type_name": "keen::BlobArray>", + "type_hash": 2884876446, + "data_offset": 144 + }, + { + "name": "colorPaletteCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1197953575, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderModel", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3500719928, + "hash2": 315948306, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureModel", + "type_name_2": "RenderSceneCaptureModel", + "qualified_name": "keen::RenderSceneCaptureModel", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 542092805, + "hash2": 3772882771, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "modelResource", + "type_name": "keen::ObjectReference", + "type_hash": 3500719928, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderLightType", + "type_name_2": "RenderLightType", + "qualified_name": "keen::RenderLightType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 1454552302, + "hash2": 587423396, + "struct_fields": [], + "enum_fields": [ + { + "name": "Point", + "value": 0 + } + ] + }, + { + "type_name_1": "RenderLight", + "type_name_2": "RenderLight", + "qualified_name": "keen::RenderLight", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3224147310, + "hash2": 1250244454, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::RenderLightType", + "type_hash": 1454552302, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + }, + { + "name": "castShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureLight", + "type_name_2": "RenderSceneCaptureLight", + "qualified_name": "keen::RenderSceneCaptureLight", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3845350636, + "hash2": 3210857126, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "light", + "type_name": "keen::RenderLight", + "type_hash": 3224147310, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureVfxInstance", + "type_name_2": "RenderSceneCaptureVfxInstance", + "qualified_name": "keen::RenderSceneCaptureVfxInstance", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2044885007, + "hash2": 2775587425, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "vfxResource", + "type_name": "keen::ObjectReference", + "type_hash": 728052363, + "data_offset": 56 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 72 + }, + { + "name": "param0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 88 + }, + { + "name": "param1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 104 + }, + { + "name": "param2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 120 + }, + { + "name": "param3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 136 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 152 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 160 + }, + { + "name": "killWhenCulled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 161 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureChunk", + "type_name_2": "RenderSceneCaptureChunk", + "qualified_name": "keen::RenderSceneCaptureChunk", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4278586997, + "hash2": 4261998147, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "voxelData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderSceneCaptureModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderSceneCaptureModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2021637210, + "hash2": 769101151, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderSceneCaptureLight[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderSceneCaptureLight", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1758552905, + "hash2": 2807039040, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderSceneCaptureVfxInstance[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderSceneCaptureVfxInstance", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 218107736, + "hash2": 449679072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCapture", + "type_name_2": "RenderSceneCapture", + "qualified_name": "keen::RenderSceneCapture", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3384566968, + "hash2": 679613944, + "struct_fields": [ + { + "name": "captureViewTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 2021637210, + "data_offset": 56 + }, + { + "name": "lights", + "type_name": "keen::BlobArray", + "type_hash": 1758552905, + "data_offset": 64 + }, + { + "name": "vfxInstances", + "type_name": "keen::BlobArray", + "type_hash": 218107736, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderAntiAliasingSetting", + "type_name_2": "RenderAntiAliasingSetting", + "qualified_name": "keen::RenderAntiAliasingSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1580471978, + "hash2": 3029849890, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "FXAA", + "value": 1 + }, + { + "name": "Fsr2", + "value": 2 + }, + { + "name": "Fsr3", + "value": 3 + }, + { + "name": "Dlss", + "value": 4 + }, + { + "name": "Dlaa", + "value": 5 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::RenderAntiAliasingSetting", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3583061117, + "hash2": 3544292298, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderAntiAliasingSettingsValidMask", + "type_name_2": "RenderAntiAliasingSettingsValidMask", + "qualified_name": "keen::RenderAntiAliasingSettingsValidMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 447523811, + "hash2": 2305040306, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderTextureQualitySetting", + "type_name_2": "RenderTextureQualitySetting", + "qualified_name": "keen::RenderTextureQualitySetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2664529498, + "hash2": 716830159, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low", + "value": 0 + }, + { + "name": "Medium", + "value": 1 + }, + { + "name": "High", + "value": 2 + }, + { + "name": "Ultra", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::RenderTextureQualitySetting", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3949262149, + "hash2": 1642293335, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderTextureQualitySettingsValidMask", + "type_name_2": "RenderTextureQualitySettingsValidMask", + "qualified_name": "keen::RenderTextureQualitySettingsValidMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4141339123, + "hash2": 1719996812, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsFeatures", + "type_name_2": "RenderSettingsFeatures", + "qualified_name": "keen::RenderSettingsFeatures", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2106407168, + "hash2": 626297340, + "struct_fields": [ + { + "name": "antialiasingValidMask", + "type_name": "keen::RenderAntiAliasingSettingsValidMask", + "type_hash": 447523811, + "data_offset": 0 + }, + { + "name": "textureQualityValidMask", + "type_name": "keen::RenderTextureQualitySettingsValidMask", + "type_hash": 4141339123, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsPreset", + "type_name_2": "RenderSettingsPreset", + "qualified_name": "keen::RenderSettingsPreset", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 2107882200, + "hash2": 884442493, + "struct_fields": [], + "enum_fields": [ + { + "name": "Lowest", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "High", + "value": 3 + }, + { + "name": "Ultra", + "value": 4 + }, + { + "name": "Custom", + "value": 5 + } + ] + }, + { + "type_name_1": "RenderFsr2PresetSetting", + "type_name_2": "RenderFsr2PresetSetting", + "qualified_name": "keen::RenderFsr2PresetSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 254857066, + "hash2": 2278602608, + "struct_fields": [], + "enum_fields": [ + { + "name": "Performance", + "value": 0 + }, + { + "name": "Balance", + "value": 1 + }, + { + "name": "Quality", + "value": 2 + }, + { + "name": "UltraQuality", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderFsr3PresetSetting", + "type_name_2": "RenderFsr3PresetSetting", + "qualified_name": "keen::RenderFsr3PresetSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3888148479, + "hash2": 920790170, + "struct_fields": [], + "enum_fields": [ + { + "name": "UltraPerformance", + "value": 0 + }, + { + "name": "Performance", + "value": 1 + }, + { + "name": "Balance", + "value": 2 + }, + { + "name": "Quality", + "value": 3 + }, + { + "name": "Native", + "value": 4 + } + ] + }, + { + "type_name_1": "RenderDlssPresetSetting", + "type_name_2": "RenderDlssPresetSetting", + "qualified_name": "keen::RenderDlssPresetSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 4245200133, + "hash2": 493985364, + "struct_fields": [], + "enum_fields": [ + { + "name": "Auto", + "value": 0 + }, + { + "name": "Quality", + "value": 1 + }, + { + "name": "Balanced", + "value": 2 + }, + { + "name": "Performance", + "value": 3 + }, + { + "name": "UltraPerformance", + "value": 4 + } + ] + }, + { + "type_name_1": "RenderShadowQualitySetting", + "type_name_2": "RenderShadowQualitySetting", + "qualified_name": "keen::RenderShadowQualitySetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 260963621, + "hash2": 716830159, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low", + "value": 0 + }, + { + "name": "Medium", + "value": 1 + }, + { + "name": "High", + "value": 2 + }, + { + "name": "Ultra", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderContactShadowsSetting", + "type_name_2": "RenderContactShadowsSetting", + "qualified_name": "keen::RenderContactShadowsSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 212792769, + "hash2": 1962725190, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Enabled", + "value": 1 + } + ] + }, + { + "type_name_1": "RenderGiSetting", + "type_name_2": "RenderGiSetting", + "qualified_name": "keen::RenderGiSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1858183382, + "hash2": 3208930610, + "struct_fields": [], + "enum_fields": [ + { + "name": "Performance", + "value": 0 + }, + { + "name": "Balance", + "value": 1 + }, + { + "name": "High", + "value": 2 + }, + { + "name": "Ultra", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderReflectionsSetting", + "type_name_2": "RenderReflectionsSetting", + "qualified_name": "keen::RenderReflectionsSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3166213556, + "hash2": 3412980551, + "struct_fields": [], + "enum_fields": [ + { + "name": "Balance", + "value": 0 + }, + { + "name": "High", + "value": 1 + }, + { + "name": "Ultra", + "value": 2 + } + ] + }, + { + "type_name_1": "RenderFogQualitySetting", + "type_name_2": "RenderFogQualitySetting", + "qualified_name": "keen::RenderFogQualitySetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2867076037, + "hash2": 494568831, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low", + "value": 0 + }, + { + "name": "High", + "value": 1 + } + ] + }, + { + "type_name_1": "RenderFogVolumetricShadowQualitySetting", + "type_name_2": "RenderFogVolumetricShadowQualitySetting", + "qualified_name": "keen::RenderFogVolumetricShadowQualitySetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 4259580917, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "High", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderSsaoSetting", + "type_name_2": "RenderSsaoSetting", + "qualified_name": "keen::RenderSsaoSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3077201736, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "High", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderDistantObjectsSetting", + "type_name_2": "RenderDistantObjectsSetting", + "qualified_name": "keen::RenderDistantObjectsSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3683091083, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "High", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderDecoObjectsSetting", + "type_name_2": "RenderDecoObjectsSetting", + "qualified_name": "keen::RenderDecoObjectsSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 126079043, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "High", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderDetailScatteringSetting", + "type_name_2": "RenderDetailScatteringSetting", + "qualified_name": "keen::RenderDetailScatteringSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 840272207, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "High", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderVoxelMeshQualitySetting", + "type_name_2": "RenderVoxelMeshQualitySetting", + "qualified_name": "keen::RenderVoxelMeshQualitySetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1801429324, + "hash2": 494568831, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low", + "value": 0 + }, + { + "name": "High", + "value": 1 + } + ] + }, + { + "type_name_1": "RenderTessellationSetting", + "type_name_2": "RenderTessellationSetting", + "qualified_name": "keen::RenderTessellationSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 23170465, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Low", + "value": 1 + }, + { + "name": "Medium", + "value": 2 + }, + { + "name": "High", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderPointLightShadowsSetting", + "type_name_2": "RenderPointLightShadowsSetting", + "qualified_name": "keen::RenderPointLightShadowsSetting", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 2423479515, + "hash2": 172854894, + "struct_fields": [], + "enum_fields": [ + { + "name": "Disabled", + "value": 0 + }, + { + "name": "Lowest", + "value": 1 + }, + { + "name": "Low", + "value": 2 + }, + { + "name": "High", + "value": 3 + }, + { + "name": "Ultra", + "value": 4 + } + ] + }, + { + "type_name_1": "RenderSettings", + "type_name_2": "RenderSettings", + "qualified_name": "keen::RenderSettings", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 3971400399, + "hash2": 2695672362, + "struct_fields": [ + { + "name": "preset", + "type_name": "keen::RenderSettingsPreset", + "type_hash": 2107882200, + "data_offset": 0 + }, + { + "name": "antiAliasing", + "type_name": "keen::RenderAntiAliasingSetting", + "type_hash": 1580471978, + "data_offset": 4 + }, + { + "name": "fsr2", + "type_name": "keen::RenderFsr2PresetSetting", + "type_hash": 254857066, + "data_offset": 8 + }, + { + "name": "fsr3", + "type_name": "keen::RenderFsr3PresetSetting", + "type_hash": 3888148479, + "data_offset": 12 + }, + { + "name": "dlss", + "type_name": "keen::RenderDlssPresetSetting", + "type_hash": 4245200133, + "data_offset": 16 + }, + { + "name": "textures", + "type_name": "keen::RenderTextureQualitySetting", + "type_hash": 2664529498, + "data_offset": 20 + }, + { + "name": "shadows", + "type_name": "keen::RenderShadowQualitySetting", + "type_hash": 260963621, + "data_offset": 24 + }, + { + "name": "contactShadows", + "type_name": "keen::RenderContactShadowsSetting", + "type_hash": 212792769, + "data_offset": 28 + }, + { + "name": "dynamicGi", + "type_name": "keen::RenderGiSetting", + "type_hash": 1858183382, + "data_offset": 32 + }, + { + "name": "reflections", + "type_name": "keen::RenderReflectionsSetting", + "type_hash": 3166213556, + "data_offset": 36 + }, + { + "name": "fog", + "type_name": "keen::RenderFogQualitySetting", + "type_hash": 2867076037, + "data_offset": 40 + }, + { + "name": "volumetricShadow", + "type_name": "keen::RenderFogVolumetricShadowQualitySetting", + "type_hash": 4259580917, + "data_offset": 44 + }, + { + "name": "ssao", + "type_name": "keen::RenderSsaoSetting", + "type_hash": 3077201736, + "data_offset": 48 + }, + { + "name": "distantObjects", + "type_name": "keen::RenderDistantObjectsSetting", + "type_hash": 3683091083, + "data_offset": 52 + }, + { + "name": "decoObjects", + "type_name": "keen::RenderDecoObjectsSetting", + "type_hash": 126079043, + "data_offset": 56 + }, + { + "name": "detailScattering", + "type_name": "keen::RenderDetailScatteringSetting", + "type_hash": 840272207, + "data_offset": 60 + }, + { + "name": "voxelMeshQuality", + "type_name": "keen::RenderVoxelMeshQualitySetting", + "type_hash": 1801429324, + "data_offset": 64 + }, + { + "name": "tessellation", + "type_name": "keen::RenderTessellationSetting", + "type_hash": 23170465, + "data_offset": 68 + }, + { + "name": "pointLightShadows", + "type_name": "keen::RenderPointLightShadowsSetting", + "type_hash": 2423479515, + "data_offset": 72 + }, + { + "name": "sharpness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresets", + "type_name_2": "RenderSettingsGpuPresets", + "qualified_name": "keen::RenderSettingsGpuPresets", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2242045353, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuTargetResolution", + "type_name_2": "RenderSettingsGpuTargetResolution", + "qualified_name": "keen::RenderSettingsGpuTargetResolution", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2958571008, + "hash2": 2086485038, + "struct_fields": [], + "enum_fields": [ + { + "name": "Target720p", + "value": 0 + }, + { + "name": "Target1080p", + "value": 1 + }, + { + "name": "Target1440p", + "value": 2 + }, + { + "name": "TargetSteamDeck", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderSettingsGpuTargetFps", + "type_name_2": "RenderSettingsGpuTargetFps", + "qualified_name": "keen::RenderSettingsGpuTargetFps", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2663642829, + "hash2": 1354859166, + "struct_fields": [], + "enum_fields": [ + { + "name": "Target30Fps", + "value": 0 + }, + { + "name": "Target60Fps", + "value": 1 + } + ] + }, + { + "type_name_1": "RenderSettingsGpuMapping", + "type_name_2": "RenderSettingsGpuMapping", + "qualified_name": "keen::RenderSettingsGpuMapping", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3455810299, + "hash2": 3633896557, + "struct_fields": [ + { + "name": "targetResolution", + "type_name": "keen::RenderSettingsGpuTargetResolution", + "type_hash": 2958571008, + "data_offset": 0 + }, + { + "name": "targetFps", + "type_name": "keen::RenderSettingsGpuTargetFps", + "type_hash": 2663642829, + "data_offset": 4 + }, + { + "name": "settings", + "type_name": "keen::RenderSettings", + "type_hash": 3971400399, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuMatch", + "type_name_2": "RenderSettingsGpuMatch", + "qualified_name": "keen::RenderSettingsGpuMatch", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4150868560, + "hash2": 3784919977, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderSettingsGpuPresetsResourceGpu[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderSettingsGpuPresetsResourceGpu", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2537652674, + "hash2": 4192755840, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderSettingsGpuPresetResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderSettingsGpuPresetResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3575272297, + "hash2": 777032918, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresetsResource", + "type_name_2": "RenderSettingsGpuPresetsResource", + "qualified_name": "keen::RenderSettingsGpuPresetsResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 509329753, + "hash2": 2325518962, + "struct_fields": [ + { + "name": "gpus", + "type_name": "keen::BlobArray", + "type_hash": 2537652674, + "data_offset": 0 + }, + { + "name": "presets", + "type_name": "keen::BlobArray", + "type_hash": 3575272297, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresetsResourceGpu", + "type_name_2": "RenderSettingsGpuPresetsResourceGpu", + "qualified_name": "keen::RenderSettingsGpuPresetsResourceGpu", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3204742993, + "hash2": 3577492890, + "struct_fields": [ + { + "name": "nameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "presetIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresetResource", + "type_name_2": "RenderSettingsGpuPresetResource", + "qualified_name": "keen::RenderSettingsGpuPresetResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1113367060, + "hash2": 3702237975, + "struct_fields": [ + { + "name": "settings", + "type_name": "keen::RenderSettings", + "type_hash": 3971400399, + "data_offset": 0 + }, + { + "name": "targetPixelCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "targetFps", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardPointLightData", + "type_name_2": "ForwardPointLightData", + "qualified_name": "keen::ForwardPointLightData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4251448573, + "hash2": 1148459679, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "sqrRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "falloffWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "uniqueId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "enableShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "pad2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardDecalData", + "type_name_2": "ForwardDecalData", + "qualified_name": "keen::ForwardDecalData", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2037523900, + "hash2": 3352474621, + "struct_fields": [ + { + "name": "decalTransform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "worldBoundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + }, + { + "name": "emissiveTintAndAlpha", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 80 + }, + { + "name": "materialDataIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "normalFade", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "layerMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 104 + }, + { + "name": "enableTransparencyCompositionMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingInfo", + "type_name_2": "ClusterCullingInfo", + "qualified_name": "keen::ClusterCullingInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1363181536, + "hash2": 2204194426, + "struct_fields": [ + { + "name": "clusterSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "enableOverdraw", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "inverseViewportSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "zNear", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "zFar", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherMaskResource", + "type_name_2": "RenderWeatherMaskResource", + "qualified_name": "keen::RenderWeatherMaskResource", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3876797210, + "hash2": 2254448011, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherResource", + "type_name_2": "RenderWeatherResource", + "qualified_name": "keen::RenderWeatherResource", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1937517570, + "hash2": 164549487, + "struct_fields": [ + { + "name": "snowBorderRangeMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "snowBorderMask", + "type_name": "keen::RenderWeatherMaskResource", + "type_hash": 3876797210, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherPhenomenonResource", + "type_name_2": "RenderWeatherPhenomenonResource", + "qualified_name": "keen::RenderWeatherPhenomenonResource", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2509039471, + "hash2": 1416880354, + "struct_fields": [ + { + "name": "cloudMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherRasterCouldsParameters", + "type_name_2": "RenderWeatherRasterCouldsParameters", + "qualified_name": "keen::RenderWeatherRasterCouldsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 384757077, + "hash2": 974192649, + "struct_fields": [ + { + "name": "invRenderTargetSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherRasterCloudsInstanceData", + "type_name_2": "RenderWeatherRasterCloudsInstanceData", + "qualified_name": "keen::RenderWeatherRasterCloudsInstanceData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 91325230, + "hash2": 2523263262, + "struct_fields": [ + { + "name": "transformM", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "transformT", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "data", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "cloudMap", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 28 + }, + { + "name": "restrictMask", + "type_name": "keen::BindlessTexture2D_float", + "type_hash": 2447819092, + "data_offset": 32 + }, + { + "name": "excludeMask", + "type_name": "keen::BindlessTexture2D_float", + "type_hash": 2447819092, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherWeatherMapSubtractParameters", + "type_name_2": "RenderWeatherWeatherMapSubtractParameters", + "qualified_name": "keen::RenderWeatherWeatherMapSubtractParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1176278700, + "hash2": 127768913, + "struct_fields": [ + { + "name": "wetnessValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "puddleValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherWeatherMapAddParameters", + "type_name_2": "RenderWeatherWeatherMapAddParameters", + "qualified_name": "keen::RenderWeatherWeatherMapAddParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 601236039, + "hash2": 922890605, + "struct_fields": [ + { + "name": "rainWetnessValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rainPuddleValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDynamicWetnessSampleUpload", + "type_name_2": "RenderWeatherDynamicWetnessSampleUpload", + "qualified_name": "keen::RenderWeatherDynamicWetnessSampleUpload", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2927358261, + "hash2": 388311823, + "struct_fields": [ + { + "name": "pointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "boneIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + }, + { + "name": "localPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDynamicWetnessSample", + "type_name_2": "RenderWeatherDynamicWetnessSample", + "qualified_name": "keen::RenderWeatherDynamicWetnessSample", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2752940308, + "hash2": 3617887697, + "struct_fields": [ + { + "name": "instanceIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "boneIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "localPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDynamicWetnessUpdateConstants", + "type_name_2": "RenderWeatherDynamicWetnessUpdateConstants", + "qualified_name": "keen::RenderWeatherDynamicWetnessUpdateConstants", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3828274136, + "hash2": 2248333559, + "struct_fields": [ + { + "name": "uploadCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "dryWetnessValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "addRainWetnessValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 16 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::WeatherSampleConstants", + "type_hash": 1964124433, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherFilterDynamicHeightmapConstants", + "type_name_2": "RenderWeatherFilterDynamicHeightmapConstants", + "qualified_name": "keen::RenderWeatherFilterDynamicHeightmapConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2553430081, + "hash2": 727807192, + "struct_fields": [ + { + "name": "rcpTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherInstanceFlag", + "type_name_2": "RenderWeatherInstanceFlag", + "qualified_name": "keen::RenderWeatherInstanceFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3626858695, + "hash2": 2707643731, + "struct_fields": [], + "enum_fields": [ + { + "name": "Tiling", + "value": 0 + }, + { + "name": "MaskStrength", + "value": 1 + }, + { + "name": "MaskRainStrength", + "value": 2 + }, + { + "name": "Blizzard", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::RenderWeatherInstanceFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 690821914, + "hash2": 4061578707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherInstanceFlags", + "type_name_2": "RenderWeatherInstanceFlags", + "qualified_name": "keen::RenderWeatherInstanceFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 60097372, + "hash2": 1150728721, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherInstanceParameters", + "type_name_2": "RenderWeatherInstanceParameters", + "qualified_name": "keen::RenderWeatherInstanceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 376505961, + "hash2": 2205128588, + "struct_fields": [ + { + "name": "positionXZ", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + }, + { + "name": "scaleXZ", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rainThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "flags", + "type_name": "keen::RenderWeatherInstanceFlags", + "type_hash": 60097372, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugInstanceState", + "type_name_2": "RenderWeatherDebugInstanceState", + "qualified_name": "keen::RenderWeatherDebugInstanceState", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1627649487, + "hash2": 811333522, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::RenderWeatherInstanceParameters", + "type_hash": 376505961, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderWeatherDebugInstanceState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderWeatherDebugInstanceState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 957619760, + "hash2": 3997783996, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugState", + "type_name_2": "RenderWeatherDebugState", + "qualified_name": "keen::RenderWeatherDebugState", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1621583006, + "hash2": 2274743532, + "struct_fields": [ + { + "name": "debugDrawInstances", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 957619760, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugUpdateDebugDrawInstances", + "type_name_2": "RenderWeatherDebugUpdateDebugDrawInstances", + "qualified_name": "keen::RenderWeatherDebugUpdateDebugDrawInstances", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1921006431, + "hash2": 2176184746, + "struct_fields": [ + { + "name": "debugDrawInstances", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderWeatherPhenomenonResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2687219072, + "hash2": 3932096683, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugAddInstance", + "type_name_2": "RenderWeatherDebugAddInstance", + "qualified_name": "keen::RenderWeatherDebugAddInstance", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3302963303, + "hash2": 691972025, + "struct_fields": [ + { + "name": "phenomenon", + "type_name": "keen::ObjectReference", + "type_hash": 2687219072, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::RenderWeatherInstanceParameters", + "type_hash": 376505961, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugRemoveInstance", + "type_name_2": "RenderWeatherDebugRemoveInstance", + "qualified_name": "keen::RenderWeatherDebugRemoveInstance", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3713854530, + "hash2": 449428500, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugSetInstanceParameters", + "type_name_2": "RenderWeatherDebugSetInstanceParameters", + "qualified_name": "keen::RenderWeatherDebugSetInstanceParameters", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1267990780, + "hash2": 811333522, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::RenderWeatherInstanceParameters", + "type_hash": 376505961, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugMode", + "type_name_2": "RenderWeatherDebugMode", + "qualified_name": "keen::RenderWeatherDebugMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 507297834, + "hash2": 4271135939, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Rain", + "value": 1 + }, + { + "name": "Snow", + "value": 2 + }, + { + "name": "Frost", + "value": 3 + } + ] + }, + { + "type_name_1": "Fsr3QualityPreset", + "type_name_2": "Fsr3QualityPreset", + "qualified_name": "keen::Fsr3QualityPreset", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3489699188, + "hash2": 2911107960, + "struct_fields": [], + "enum_fields": [ + { + "name": "UltraPerformance", + "value": 0 + }, + { + "name": "Performance", + "value": 1 + }, + { + "name": "Balance", + "value": 2 + }, + { + "name": "Quality", + "value": 3 + }, + { + "name": "Native", + "value": 4 + } + ] + }, + { + "type_name_1": "RenderUpscaleTechnique", + "type_name_2": "RenderUpscaleTechnique", + "qualified_name": "keen::RenderUpscaleTechnique", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1981834479, + "hash2": 330530809, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Fsr3", + "value": 1 + }, + { + "name": "Dlss", + "value": 2 + } + ] + }, + { + "type_name_1": "RenderFeatureFlag", + "type_name_2": "RenderFeatureFlag", + "qualified_name": "keen::RenderFeatureFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 26, + "primitive_type": "Enum", + "hash1": 2423244918, + "hash2": 4140818898, + "struct_fields": [], + "enum_fields": [ + { + "name": "Shadows", + "value": 0 + }, + { + "name": "VolumetricShadows", + "value": 1 + }, + { + "name": "Vfx", + "value": 2 + }, + { + "name": "VolumetricFogGrid", + "value": 3 + }, + { + "name": "Fog", + "value": 4 + }, + { + "name": "AnalyticFog", + "value": 5 + }, + { + "name": "Bloom", + "value": 6 + }, + { + "name": "Sdf", + "value": 7 + }, + { + "name": "DetailScattering", + "value": 8 + }, + { + "name": "RayTracing", + "value": 9 + }, + { + "name": "Gi", + "value": 10 + }, + { + "name": "GrassMovement", + "value": 11 + }, + { + "name": "Ssao", + "value": 12 + }, + { + "name": "DynamicHeightmap", + "value": 13 + }, + { + "name": "SdfShadows", + "value": 14 + }, + { + "name": "ContactShadows", + "value": 15 + }, + { + "name": "ContactShadows2", + "value": 16 + }, + { + "name": "Fxaa", + "value": 17 + }, + { + "name": "Fsr3", + "value": 18 + }, + { + "name": "BrickRenderer", + "value": 19 + }, + { + "name": "StochasticScreenSpaceReflections", + "value": 20 + }, + { + "name": "SdfAo", + "value": 21 + }, + { + "name": "ManyLightsShadows", + "value": 22 + }, + { + "name": "Dlss", + "value": 23 + }, + { + "name": "SdfBvh", + "value": 24 + }, + { + "name": "SnowDisplacement", + "value": 25 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::RenderFeatureFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 3496579681, + "hash2": 313007200, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderFeatureFlags", + "type_name_2": "RenderFeatureFlags", + "qualified_name": "keen::RenderFeatureFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1693966303, + "hash2": 2889630867, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendShapeId", + "type_name_2": "BlendShapeId", + "qualified_name": "keen::BlendShapeId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 903144571, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BeaufortWindForce", + "type_name_2": "BeaufortWindForce", + "qualified_name": "keen::BeaufortWindForce", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 13, + "primitive_type": "Enum", + "hash1": 2765619877, + "hash2": 1607882777, + "struct_fields": [], + "enum_fields": [ + { + "name": "Calm", + "value": 0 + }, + { + "name": "LightAir", + "value": 1 + }, + { + "name": "LightBreeze", + "value": 2 + }, + { + "name": "GentleBreeze", + "value": 3 + }, + { + "name": "ModerateBreeze", + "value": 4 + }, + { + "name": "FreshBreeze", + "value": 5 + }, + { + "name": "StrongBreeze", + "value": 6 + }, + { + "name": "HighWind", + "value": 7 + }, + { + "name": "FreshGale", + "value": 8 + }, + { + "name": "StrongGale", + "value": 9 + }, + { + "name": "Storm", + "value": 10 + }, + { + "name": "ViolentStorm", + "value": 11 + }, + { + "name": "Hurricane", + "value": 12 + } + ] + }, + { + "type_name_1": "ShaderDataPrimitiveTypes", + "type_name_2": "ShaderDataPrimitiveTypes", + "qualified_name": "keen::ShaderDataPrimitiveTypes", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3481738085, + "hash2": 1243079934, + "struct_fields": [ + { + "name": "f0", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "f1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "f2", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 8 + }, + { + "name": "f3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "f4", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "f5", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 44 + }, + { + "name": "f6", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 52 + }, + { + "name": "f7", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderColorGradingMap", + "type_name_2": "RenderColorGradingMap", + "qualified_name": "keen::RenderColorGradingMap", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4098827695, + "hash2": 2406779250, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderColorGradingMapResource", + "type_name_2": "RenderColorGradingMapResource", + "qualified_name": "keen::RenderColorGradingMapResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3367103947, + "hash2": 455167378, + "struct_fields": [ + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderColorGradingMapReference", + "type_name_2": "RenderColorGradingMapReference", + "qualified_name": "keen::RenderColorGradingMapReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2983748284, + "hash2": 454224928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderViewDebugDrawMode", + "type_name_2": "RenderViewDebugDrawMode", + "qualified_name": "keen::RenderViewDebugDrawMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 22, + "primitive_type": "Enum", + "hash1": 50289655, + "hash2": 4157154431, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Sdf", + "value": 1 + }, + { + "name": "SdfVoxels", + "value": 2 + }, + { + "name": "Ibl", + "value": 3 + }, + { + "name": "MotionVectors", + "value": 4 + }, + { + "name": "LightCache", + "value": 5 + }, + { + "name": "LightCacheLightCulling", + "value": 6 + }, + { + "name": "Bricks", + "value": 7 + }, + { + "name": "Gi", + "value": 8 + }, + { + "name": "SdfBvh", + "value": 9 + }, + { + "name": "GiIrradianceBuffer", + "value": 10 + }, + { + "name": "ShadowCascades", + "value": 11 + }, + { + "name": "ShadowMask", + "value": 12 + }, + { + "name": "ShadowCascadesWithOcclusion", + "value": 13 + }, + { + "name": "VoxelWorldShadowMap", + "value": 14 + }, + { + "name": "TransparentOverdraw", + "value": 15 + }, + { + "name": "Ssao", + "value": 16 + }, + { + "name": "ReactiveMask", + "value": 17 + }, + { + "name": "TransparencyMask", + "value": 18 + }, + { + "name": "ClusteredDecalOverdraw", + "value": 19 + }, + { + "name": "ClusterCullingDecalBinning", + "value": 20 + }, + { + "name": "SceneBrightness", + "value": 21 + } + ] + }, + { + "type_name_1": "RenderDescriptorSetId", + "type_name_2": "RenderDescriptorSetId", + "qualified_name": "keen::RenderDescriptorSetId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1196880560, + "hash2": 1883829547, + "struct_fields": [], + "enum_fields": [ + { + "name": "Global", + "value": 0 + }, + { + "name": "RenderNode", + "value": 1 + }, + { + "name": "Material", + "value": 2 + } + ] + }, + { + "type_name_1": "RenderSubpassIndex", + "type_name_2": "RenderSubpassIndex", + "qualified_name": "keen::RenderSubpassIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1437275975, + "hash2": 1797893278, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "ExtendedAttributes", + "value": 1 + } + ] + }, + { + "type_name_1": "RenderPipelineStage", + "type_name_2": "RenderPipelineStage", + "qualified_name": "keen::RenderPipelineStage", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 3983594210, + "hash2": 413420118, + "struct_fields": [], + "enum_fields": [ + { + "name": "Vertex", + "value": 0 + }, + { + "name": "TessellationControl", + "value": 1 + }, + { + "name": "TessellationEvaluation", + "value": 2 + }, + { + "name": "Fragment", + "value": 3 + }, + { + "name": "Compute", + "value": 4 + }, + { + "name": "RayTrace", + "value": 5 + } + ] + }, + { + "type_name_1": "ShaderCompileSourceLanguage", + "type_name_2": "ShaderCompileSourceLanguage", + "qualified_name": "keen::ShaderCompileSourceLanguage", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 63866359, + "hash2": 2847363906, + "struct_fields": [], + "enum_fields": [ + { + "name": "Hlsl_2021", + "value": 0 + }, + { + "name": "Hlsl_2018", + "value": 1 + }, + { + "name": "Glsl", + "value": 2 + }, + { + "name": "Pssl", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderPrimitiveType", + "type_name_2": "RenderPrimitiveType", + "qualified_name": "keen::RenderPrimitiveType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3595363023, + "hash2": 45555124, + "struct_fields": [], + "enum_fields": [ + { + "name": "TriangleList", + "value": 0 + }, + { + "name": "TriangleStrip", + "value": 1 + }, + { + "name": "LineList", + "value": 2 + }, + { + "name": "PatchList", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderSampler", + "type_name_2": "RenderSampler", + "qualified_name": "keen::RenderSampler", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3396316118, + "hash2": 2181587106, + "struct_fields": [ + { + "name": "addressModeU", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 0 + }, + { + "name": "addressModeV", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 1 + }, + { + "name": "addressModeW", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 2 + }, + { + "name": "minFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 3 + }, + { + "name": "magFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 4 + }, + { + "name": "mipFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 5 + }, + { + "name": "comparisonFunction", + "type_name": "keen::RenderComparisonFunction", + "type_hash": 963001915, + "data_offset": 6 + }, + { + "name": "anisotropyEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderParameterBlockPatchPointType", + "type_name_2": "RenderParameterBlockPatchPointType", + "qualified_name": "keen::RenderParameterBlockPatchPointType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3411597830, + "hash2": 1619040728, + "struct_fields": [], + "enum_fields": [ + { + "name": "Texture", + "value": 0 + }, + { + "name": "StreamedTexture", + "value": 1 + }, + { + "name": "Sampler", + "value": 2 + } + ] + }, + { + "type_name_1": "RenderParameterBlockPatchPoint", + "type_name_2": "RenderParameterBlockPatchPoint", + "qualified_name": "keen::RenderParameterBlockPatchPoint", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 519853270, + "hash2": 3300793927, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::RenderParameterBlockPatchPointType", + "type_hash": 3411597830, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderVertexAttribute", + "type_name_2": "RenderVertexAttribute", + "qualified_name": "keen::RenderVertexAttribute", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2727820472, + "hash2": 1389033775, + "struct_fields": [ + { + "name": "location", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "format", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "stream", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComputeGroupCountAlgorithm", + "type_name_2": "ComputeGroupCountAlgorithm", + "qualified_name": "keen::ComputeGroupCountAlgorithm", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 471820958, + "hash2": 3750681440, + "struct_fields": [], + "enum_fields": [ + { + "name": "Target2D", + "value": 0 + }, + { + "name": "Target2DHalf", + "value": 1 + }, + { + "name": "Target2DArray", + "value": 2 + }, + { + "name": "Target2DWidthOnly", + "value": 3 + }, + { + "name": "Target3D", + "value": 4 + }, + { + "name": "Target3DArray", + "value": 5 + } + ] + }, + { + "type_name_1": "RenderModelImageSizeInfo", + "type_name_2": "RenderModelImageSizeInfo", + "qualified_name": "keen::RenderModelImageSizeInfo", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 331664917, + "hash2": 294965705, + "struct_fields": [ + { + "name": "texelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialImage", + "type_name_2": "RenderMaterialImage", + "qualified_name": "keen::RenderMaterialImage", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 900041428, + "hash2": 2722487306, + "struct_fields": [ + { + "name": "dataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "arraySize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 13 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 14 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + }, + { + "name": "enableStreaming", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialSampler", + "type_name_2": "RenderMaterialSampler", + "qualified_name": "keen::RenderMaterialSampler", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 573563325, + "hash2": 2343852387, + "struct_fields": [ + { + "name": "dataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "addressModeU", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 4 + }, + { + "name": "addressModeV", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 5 + }, + { + "name": "addressModeW", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 6 + }, + { + "name": "minFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 7 + }, + { + "name": "magFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 8 + }, + { + "name": "mipFilter", + "type_name": "keen::RenderSamplerFilterMode", + "type_hash": 2333872675, + "data_offset": 9 + }, + { + "name": "comparisonFunction", + "type_name": "keen::RenderComparisonFunction", + "type_hash": 963001915, + "data_offset": 10 + }, + { + "name": "anisotropyEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RfxSamplerId", + "type_name_2": "RfxSamplerId", + "qualified_name": "keen::RfxSamplerId", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3030565091, + "hash2": 550444198, + "struct_fields": [], + "enum_fields": [ + { + "name": "Wrap", + "value": 0 + }, + { + "name": "Clamp", + "value": 1 + }, + { + "name": "ClampToZero", + "value": 2 + }, + { + "name": "Mirror", + "value": 3 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMaterialImage[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMaterialImage", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1745097249, + "hash2": 332830011, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMaterialSampler[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMaterialSampler", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3890698162, + "hash2": 3483488294, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialResource", + "type_name_2": "RenderMaterialResource", + "qualified_name": "keen::RenderMaterialResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2934016331, + "hash2": 2726770470, + "struct_fields": [ + { + "name": "effectId", + "type_name": "keen::RenderEffectId", + "type_hash": 1470283450, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::RenderMaterialFlagMask", + "type_hash": 589146061, + "data_offset": 1 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 4 + }, + { + "name": "dataTypeSignature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "images", + "type_name": "keen::BlobArray", + "type_hash": 1745097249, + "data_offset": 16 + }, + { + "name": "samplers", + "type_name": "keen::BlobArray", + "type_hash": 3890698162, + "data_offset": 24 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderMaterialResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1143353770, + "hash2": 1118561981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialResourceReference", + "type_name_2": "RenderMaterialResourceReference", + "qualified_name": "keen::RenderMaterialResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2710935824, + "hash2": 2666697460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureInfo", + "type_name_2": "RenderMaterialTextureInfo", + "qualified_name": "keen::RenderMaterialTextureInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 248940910, + "hash2": 1169741928, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "samplingInfo", + "type_name": "keen::RenderMaterialTextureSamplingInfo", + "type_hash": 2148857531, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMaterialTextureInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMaterialTextureInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2487160059, + "hash2": 3536124230, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialInfo", + "type_name_2": "RenderMaterialInfo", + "qualified_name": "keen::RenderMaterialInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3553833723, + "hash2": 2221423420, + "struct_fields": [ + { + "name": "effectId", + "type_name": "keen::RenderEffectId", + "type_hash": 1470283450, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::RenderMaterialFlagMask", + "type_hash": 589146061, + "data_offset": 1 + }, + { + "name": "dataTypeSignature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "hasStreamedTextures", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "textures", + "type_name": "keen::BlobArray", + "type_hash": 2487160059, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderBlendResourceData", + "type_name_2": "RenderBlendResourceData", + "qualified_name": "keen::RenderBlendResourceData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3829336225, + "hash2": 917903629, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ObjectReference", + "type_hash": 2422339174, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialMesh", + "type_name_2": "RenderMaterialMesh", + "qualified_name": "keen::RenderMaterialMesh", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 4119789186, + "hash2": 181099374, + "struct_fields": [ + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 0 + }, + { + "name": "boundingSphere", + "type_name": "keen::Sphere", + "type_hash": 934771011, + "data_offset": 32 + }, + { + "name": "renderEffectId", + "type_name": "keen::RenderEffectId", + "type_hash": 1470283450, + "data_offset": 48 + }, + { + "name": "clothMeshIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 49 + }, + { + "name": "material", + "type_name": "keen::RenderMaterialResourceReference", + "type_hash": 2710935824, + "data_offset": 52 + }, + { + "name": "materialFlags", + "type_name": "keen::RenderMaterialFlagMask", + "type_hash": 589146061, + "data_offset": 68 + }, + { + "name": "materialImageSizeInfos", + "type_name": "keen::BlobArray", + "type_hash": 260213472, + "data_offset": 72 + }, + { + "name": "materialModelData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 80 + }, + { + "name": "materialModelDataTypeSignatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 96 + }, + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 100 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 128 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 132 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 148 + }, + { + "name": "skinningData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 164 + }, + { + "name": "blendShapeVertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 180 + }, + { + "name": "blendShapeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 196 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLod", + "type_name_2": "RenderModelLod", + "qualified_name": "keen::RenderModelLod", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1617771866, + "hash2": 3012750504, + "struct_fields": [ + { + "name": "firstMeshIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "meshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "pixelSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderRayTraceVertexFormat", + "type_name_2": "RenderRayTraceVertexFormat", + "qualified_name": "keen::RenderRayTraceVertexFormat", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 2030405402, + "hash2": 92644643, + "struct_fields": [], + "enum_fields": [ + { + "name": "Pos3f_Normal3f_Color4ub", + "value": 0 + } + ] + }, + { + "type_name_1": "RenderRayTraceMeshPart", + "type_name_2": "RenderRayTraceMeshPart", + "qualified_name": "keen::RenderRayTraceMeshPart", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1164285671, + "hash2": 3498473176, + "struct_fields": [ + { + "name": "jointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderRayTraceMeshPart[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderRayTraceMeshPart", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1617225706, + "hash2": 3479798472, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderRayTraceMesh", + "type_name_2": "RenderRayTraceMesh", + "qualified_name": "keen::RenderRayTraceMesh", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2659432302, + "hash2": 3225109009, + "struct_fields": [ + { + "name": "vertexFormat", + "type_name": "keen::RenderRayTraceVertexFormat", + "type_hash": 2030405402, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 28 + }, + { + "name": "parts", + "type_name": "keen::BlobArray", + "type_hash": 1617225706, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelClothSleeve", + "type_name_2": "RenderModelClothSleeve", + "qualified_name": "keen::RenderModelClothSleeve", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3498260009, + "hash2": 1208732073, + "struct_fields": [ + { + "name": "center0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "center1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "radius1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "upperJointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "lowerJointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "planes", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 44 + }, + { + "name": "particleIndicies", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelSdfMaterial", + "type_name_2": "RenderModelSdfMaterial", + "qualified_name": "keen::RenderModelSdfMaterial", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1603373871, + "hash2": 595233015, + "struct_fields": [ + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "dummy", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelSdfPart", + "type_name_2": "RenderModelSdfPart", + "qualified_name": "keen::RenderModelSdfPart", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2130578251, + "hash2": 1988425333, + "struct_fields": [ + { + "name": "resolution", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "jointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "mipLevelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "totalSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "pixels", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 44 + }, + { + "name": "material", + "type_name": "keen::RenderModelSdfMaterial", + "type_hash": 1603373871, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelSdfPart[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelSdfPart", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3599604554, + "hash2": 3350594166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelSdfData", + "type_name_2": "RenderModelSdfData", + "qualified_name": "keen::RenderModelSdfData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2732690426, + "hash2": 3382916623, + "struct_fields": [ + { + "name": "parts", + "type_name": "keen::BlobArray", + "type_hash": 3599604554, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderGradientMapResource", + "type_name_2": "RenderGradientMapResource", + "qualified_name": "keen::RenderGradientMapResource", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 302505980, + "hash2": 1744187720, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 3 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderClothColliderSphere[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderClothColliderSphere", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2418390316, + "hash2": 508922457, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderClothColliderCapsule[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderClothColliderCapsule", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 975146132, + "hash2": 2098179671, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelColliderInstanceData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelColliderInstanceData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 572825377, + "hash2": 4207069539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelClothColliderData", + "type_name_2": "RenderModelClothColliderData", + "qualified_name": "keen::RenderModelClothColliderData", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3602859353, + "hash2": 510805160, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "ignoreClothCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "spheres", + "type_name": "keen::BlobArray", + "type_hash": 2418390316, + "data_offset": 4 + }, + { + "name": "capsules", + "type_name": "keen::BlobArray", + "type_hash": 975146132, + "data_offset": 12 + }, + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 572825377, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "uint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::uint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1369584269, + "hash2": 1069966509, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SkinnedTreeModelSpringData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SkinnedTreeModelSpringData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 295120485, + "hash2": 2243924612, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelData", + "type_name_2": "SkinnedTreeModelData", + "qualified_name": "keen::SkinnedTreeModelData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4085534239, + "hash2": 849776245, + "struct_fields": [ + { + "name": "jointMatrix", + "type_name": "keen::BlobArray", + "type_hash": 986258925, + "data_offset": 0 + }, + { + "name": "jointParent", + "type_name": "keen::BlobArray", + "type_hash": 1369584269, + "data_offset": 8 + }, + { + "name": "jointSpringData", + "type_name": "keen::BlobArray", + "type_hash": 295120485, + "data_offset": 16 + }, + { + "name": "leafJoints", + "type_name": "keen::BlobArray", + "type_hash": 1369584269, + "data_offset": 24 + }, + { + "name": "inverseTransformTree", + "type_name": "keen::BlobArray", + "type_hash": 986258925, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderMaterialMesh[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderMaterialMesh", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4163162505, + "hash2": 2902828936, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelLod[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelLod", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2204397197, + "hash2": 3386495476, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobOptional", + "type_name_2": "Optional", + "qualified_name": "keen::BlobOptional", + "referenced_type_name": "keen::RenderModelClothData", + "class_size": 4, + "fields_count": 0, + "primitive_type": "BlobOptional", + "hash1": 4114634911, + "hash2": 1678930698, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobOptional", + "type_name_2": "Optional", + "qualified_name": "keen::BlobOptional", + "referenced_type_name": "keen::RenderModelChainData", + "class_size": 4, + "fields_count": 0, + "primitive_type": "BlobOptional", + "hash1": 2422704224, + "hash2": 342667646, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelClothSleeve[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelClothSleeve", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3961719580, + "hash2": 1571634534, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderBlendResourceData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderBlendResourceData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 508728822, + "hash2": 3213512214, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModel", + "type_name_2": "RenderModel", + "qualified_name": "keen::RenderModel", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 393450695, + "hash2": 2955812853, + "struct_fields": [ + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "meshes", + "type_name": "keen::BlobArray", + "type_hash": 4163162505, + "data_offset": 8 + }, + { + "name": "lods", + "type_name": "keen::BlobArray", + "type_hash": 2204397197, + "data_offset": 16 + }, + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 32 + }, + { + "name": "rayTraceMesh", + "type_name": "keen::RenderRayTraceMesh", + "type_hash": 2659432302, + "data_offset": 64 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2078176141, + "data_offset": 116 + }, + { + "name": "hierarchyJointCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 132 + }, + { + "name": "skinningMap", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 136 + }, + { + "name": "cloth", + "type_name": "keen::BlobOptional", + "type_hash": 4114634911, + "data_offset": 144 + }, + { + "name": "chain", + "type_name": "keen::BlobOptional", + "type_hash": 2422704224, + "data_offset": 148 + }, + { + "name": "collider", + "type_name": "keen::RenderModelClothColliderData", + "type_hash": 3602859353, + "data_offset": 152 + }, + { + "name": "sleeves", + "type_name": "keen::BlobArray", + "type_hash": 3961719580, + "data_offset": 180 + }, + { + "name": "blendShapes", + "type_name": "keen::BlobArray", + "type_hash": 508728822, + "data_offset": 188 + }, + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 196 + }, + { + "name": "instanceDataTypeNameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 200 + }, + { + "name": "hasCardClusterLod", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 204 + }, + { + "name": "sdf", + "type_name": "keen::RenderModelSdfData", + "type_hash": 2732690426, + "data_offset": 208 + }, + { + "name": "skinnedTree", + "type_name": "keen::SkinnedTreeModelData", + "type_hash": 4085534239, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint8[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint8", + "class_size": 4, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 189109066, + "hash2": 3020081968, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothVertexSkinningData", + "type_name_2": "RenderClothVertexSkinningData", + "qualified_name": "keen::RenderClothVertexSkinningData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 939072611, + "hash2": 207703230, + "struct_fields": [ + { + "name": "jointIndices", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 0 + }, + { + "name": "jointWeights", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothFabricResource", + "type_name_2": "RenderClothFabricResource", + "qualified_name": "keen::RenderClothFabricResource", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2794845575, + "hash2": 1005014713, + "struct_fields": [ + { + "name": "numParticles", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "phaseIndices", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 4 + }, + { + "name": "sets", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 12 + }, + { + "name": "restValues", + "type_name": "keen::BlobArray", + "type_hash": 4201800353, + "data_offset": 20 + }, + { + "name": "stiffnessValues", + "type_name": "keen::BlobArray", + "type_hash": 4201800353, + "data_offset": 28 + }, + { + "name": "indices", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 36 + }, + { + "name": "anchors", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 44 + }, + { + "name": "tetherLengths", + "type_name": "keen::BlobArray", + "type_hash": 4201800353, + "data_offset": 52 + }, + { + "name": "triangles", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "uint3[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::uint3", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 859142392, + "hash2": 3996062626, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderClothVertexSkinningData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderClothVertexSkinningData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 713753568, + "hash2": 421987470, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothMeshResource", + "type_name_2": "RenderClothMeshResource", + "qualified_name": "keen::RenderClothMeshResource", + "referenced_type_name": null, + "class_size": 164, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 4195263047, + "hash2": 2614646223, + "struct_fields": [ + { + "name": "fabric", + "type_name": "keen::RenderClothFabricResource", + "type_hash": 2794845575, + "data_offset": 0 + }, + { + "name": "simulationPositions", + "type_name": "keen::BlobArray", + "type_hash": 1594178228, + "data_offset": 68 + }, + { + "name": "simulationInvMasses", + "type_name": "keen::BlobArray", + "type_hash": 2669534122, + "data_offset": 76 + }, + { + "name": "simulationStiffnesses", + "type_name": "keen::BlobArray", + "type_hash": 2669534122, + "data_offset": 84 + }, + { + "name": "simulationVertexWeights", + "type_name": "keen::BlobArray", + "type_hash": 2669534122, + "data_offset": 92 + }, + { + "name": "simulationTriangles", + "type_name": "keen::BlobArray", + "type_hash": 859142392, + "data_offset": 100 + }, + { + "name": "simulationBlendshapeDeltas", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 108 + }, + { + "name": "simulationSkinningData", + "type_name": "keen::BlobArray", + "type_hash": 713753568, + "data_offset": 116 + }, + { + "name": "skinnedVertexIndices", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 124 + }, + { + "name": "renderPositions", + "type_name": "keen::BlobArray", + "type_hash": 1594178228, + "data_offset": 132 + }, + { + "name": "renderUvs", + "type_name": "keen::BlobArray", + "type_hash": 1627880561, + "data_offset": 140 + }, + { + "name": "renderTriangles", + "type_name": "keen::BlobArray", + "type_hash": 859142392, + "data_offset": 148 + }, + { + "name": "renderSimulationVertexIndices", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothMesh", + "type_name_2": "RenderClothMesh", + "qualified_name": "keen::RenderClothMesh", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 1897894571, + "hash2": 1871007372, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "windStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "tetherStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "motionConstraintsStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "solverFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "motionConstraintsUnlimitedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "motionConstraintsMaxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderSkinningData", + "type_name_2": "RenderClothColliderSkinningData", + "qualified_name": "keen::RenderClothColliderSkinningData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1761907733, + "hash2": 207703230, + "struct_fields": [ + { + "name": "jointIndices", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 0 + }, + { + "name": "jointWeights", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderSphere", + "type_name_2": "RenderClothColliderSphere", + "qualified_name": "keen::RenderClothColliderSphere", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1535325047, + "hash2": 3036104060, + "struct_fields": [ + { + "name": "center", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "skinningData", + "type_name": "keen::RenderClothColliderSkinningData", + "type_hash": 1761907733, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderCapsule", + "type_name_2": "RenderClothColliderCapsule", + "qualified_name": "keen::RenderClothColliderCapsule", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 909134149, + "hash2": 195489065, + "struct_fields": [ + { + "name": "center0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "center1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "radius1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "skinningData", + "type_name": "keen::RenderClothColliderSkinningData", + "type_hash": 1761907733, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelColliderData", + "type_name_2": "RenderModelColliderData", + "qualified_name": "keen::RenderModelColliderData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3968554355, + "hash2": 745054098, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "spheres", + "type_name": "keen::BlobArray", + "type_hash": 2418390316, + "data_offset": 4 + }, + { + "name": "capsules", + "type_name": "keen::BlobArray", + "type_hash": 975146132, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelColliderInstanceData", + "type_name_2": "RenderModelColliderInstanceData", + "qualified_name": "keen::RenderModelColliderInstanceData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3255723104, + "hash2": 3255256850, + "struct_fields": [ + { + "name": "sphereIndices", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 0 + }, + { + "name": "capsuleIndices", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderClothMesh[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderClothMesh", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4265532440, + "hash2": 4184885913, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelClothData", + "type_name_2": "RenderModelClothData", + "qualified_name": "keen::RenderModelClothData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 220672745, + "hash2": 181017650, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "meshes", + "type_name": "keen::BlobArray", + "type_hash": 4265532440, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderResource", + "type_name_2": "RenderClothColliderResource", + "qualified_name": "keen::RenderClothColliderResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 95846066, + "hash2": 3021269314, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "maxJointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "spheres", + "type_name": "keen::BlobArray", + "type_hash": 2418390316, + "data_offset": 8 + }, + { + "name": "capsules", + "type_name": "keen::BlobArray", + "type_hash": 975146132, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChainConfig", + "type_name_2": "RenderModelChainConfig", + "qualified_name": "keen::RenderModelChainConfig", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 1716144106, + "hash2": 3799563499, + "struct_fields": [ + { + "name": "propagateRotation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "stiffnessFrequencey", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "motionConstraintRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "phasesStiffnessMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChain", + "type_name_2": "RenderModelChain", + "qualified_name": "keen::RenderModelChain", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3733586940, + "hash2": 3393390303, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "jointBeginIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "jointEndIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "constraintBeginIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "constraintEndIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 22 + }, + { + "name": "configIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "colliderIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelChain[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelChain", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3330488243, + "hash2": 4256744782, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelChainConfig[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelChainConfig", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 760995497, + "hash2": 1819040887, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelColliderData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelColliderData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3680225212, + "hash2": 377379128, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChainData", + "type_name_2": "RenderModelChainData", + "qualified_name": "keen::RenderModelChainData", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2478119108, + "hash2": 4255896225, + "struct_fields": [ + { + "name": "chains", + "type_name": "keen::BlobArray", + "type_hash": 3330488243, + "data_offset": 0 + }, + { + "name": "configs", + "type_name": "keen::BlobArray", + "type_hash": 760995497, + "data_offset": 8 + }, + { + "name": "chainColliders", + "type_name": "keen::BlobArray", + "type_hash": 3680225212, + "data_offset": 16 + }, + { + "name": "anchorHierarchyJoints", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 24 + }, + { + "name": "anchorDefaultPose", + "type_name": "keen::BlobArray", + "type_hash": 986258925, + "data_offset": 32 + }, + { + "name": "anchorRestPosition", + "type_name": "keen::BlobArray", + "type_hash": 1594178228, + "data_offset": 40 + }, + { + "name": "joints", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 48 + }, + { + "name": "modelMatrices", + "type_name": "keen::BlobArray", + "type_hash": 986258925, + "data_offset": 56 + }, + { + "name": "skinToJointMatrix", + "type_name": "keen::BlobArray", + "type_hash": 986258925, + "data_offset": 64 + }, + { + "name": "restPosition", + "type_name": "keen::BlobArray", + "type_hash": 1594178228, + "data_offset": 72 + }, + { + "name": "constraintJoints", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 80 + }, + { + "name": "constraints", + "type_name": "keen::BlobArray", + "type_hash": 1594178228, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelMaterialMeshData", + "type_name_2": "RenderModelMaterialMeshData", + "qualified_name": "keen::RenderModelMaterialMeshData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3174734095, + "hash2": 3572492767, + "struct_fields": [ + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 0 + }, + { + "name": "renderEffectId", + "type_name": "keen::RenderEffectId", + "type_hash": 1470283450, + "data_offset": 32 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 44 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelMaterialMeshData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelMaterialMeshData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3936859116, + "hash2": 1994116787, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLodMeshData", + "type_name_2": "RenderModelLodMeshData", + "qualified_name": "keen::RenderModelLodMeshData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1174250315, + "hash2": 682236397, + "struct_fields": [ + { + "name": "meshes", + "type_name": "keen::BlobArray", + "type_hash": 3936859116, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelLodMeshData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelLodMeshData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4082649242, + "hash2": 1676591400, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelMeshData", + "type_name_2": "RenderModelMeshData", + "qualified_name": "keen::RenderModelMeshData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 631268330, + "hash2": 482462087, + "struct_fields": [ + { + "name": "lods", + "type_name": "keen::BlobArray", + "type_hash": 4082649242, + "data_offset": 0 + }, + { + "name": "instanceDataTypeNameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLodInfo", + "type_name_2": "RenderModelLodInfo", + "qualified_name": "keen::RenderModelLodInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1982125058, + "hash2": 1986886790, + "struct_fields": [ + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelLodInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelLodInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4122409637, + "hash2": 2537410265, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelInfo", + "type_name_2": "RenderModelInfo", + "qualified_name": "keen::RenderModelInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2345408899, + "hash2": 3561507797, + "struct_fields": [ + { + "name": "lods", + "type_name": "keen::BlobArray", + "type_hash": 4122409637, + "data_offset": 0 + }, + { + "name": "modelHierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2078176141, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnalyticFogShapeType", + "type_name_2": "AnalyticFogShapeType", + "qualified_name": "keen::AnalyticFogShapeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 33070628, + "hash2": 4117162735, + "struct_fields": [], + "enum_fields": [ + { + "name": "Sphere", + "value": 0 + }, + { + "name": "Box", + "value": 1 + } + ] + }, + { + "type_name_1": "AnalyticFogShape", + "type_name_2": "AnalyticFogShape", + "qualified_name": "keen::AnalyticFogShape", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2552122828, + "hash2": 914519468, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::AnalyticFogShapeType", + "type_hash": 33070628, + "data_offset": 0 + }, + { + "name": "halfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "falloff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderFogInjection", + "type_name_2": "RenderFogInjection", + "qualified_name": "keen::RenderFogInjection", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1000761363, + "hash2": 1736496044, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::AnalyticFogShape", + "type_hash": 2552122828, + "data_offset": 0 + }, + { + "name": "absorption", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "scattering", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 24 + }, + { + "name": "emission", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 28 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderFogDissolve", + "type_name_2": "RenderFogDissolve", + "qualified_name": "keen::RenderFogDissolve", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2616647193, + "hash2": 2344324341, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::AnalyticFogShape", + "type_hash": 2552122828, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1839411670, + "hash2": 1763304852, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelDrawData2", + "type_name_2": "RenderModelDrawData2", + "qualified_name": "keen::RenderModelDrawData2", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2576522805, + "hash2": 1111395448, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "sizeFeedbackIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "firstMesh", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "lodCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "lodMeshOffsets", + "type_name": "keen::StaticArray", + "type_hash": 1839411670, + "data_offset": 32 + }, + { + "name": "lodMeshCounts", + "type_name": "keen::StaticArray", + "type_hash": 1839411670, + "data_offset": 64 + }, + { + "name": "lodPixelSizes", + "type_name": "keen::StaticArray", + "type_hash": 1332724952, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMeshDrawData2", + "type_name_2": "RenderMeshDrawData2", + "qualified_name": "keen::RenderMeshDrawData2", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1665795577, + "hash2": 3549777710, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "pipelineBits", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "indexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "vertexOffset", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 40 + }, + { + "name": "modelMaterialData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "skinningDataByteOffsetAndClothMeshIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "blendShapeVertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "blendShapeMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint", + "class_size": 16, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3987535282, + "hash2": 2836380920, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderInstanceData", + "type_name_2": "RenderInstanceData", + "qualified_name": "keen::RenderInstanceData", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3386270421, + "hash2": 3073429116, + "struct_fields": [ + { + "name": "packedTransform", + "type_name": "keen::PackedShaderWorldTransform", + "type_hash": 3199707515, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 32 + }, + { + "name": "tintColor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "tintGradientMap", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 84 + }, + { + "name": "highlightColorPaletteIndexTransparency", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + }, + { + "name": "flagsAndEmissiveFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "dissolveParameters", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "alphaClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "activeBlendShapeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "blendShapeWeights", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "clothMeshDataOffsets", + "type_name": "keen::StaticArray", + "type_hash": 3987535282, + "data_offset": 128 + }, + { + "name": "albedoTintColorIndices", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "skinMatrixOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 148 + }, + { + "name": "decalLayerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + }, + { + "name": "dynamicWetnessOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "modelIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "groupMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringInstanceData", + "type_name_2": "DetailScatteringInstanceData", + "qualified_name": "keen::DetailScatteringInstanceData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 991813322, + "hash2": 2697121477, + "struct_fields": [ + { + "name": "packedWorldPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "scaleAndFadeout", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HighlightColorPaletteSettings", + "type_name_2": "HighlightColorPaletteSettings", + "qualified_name": "keen::HighlightColorPaletteSettings", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3199165685, + "hash2": 823765259, + "struct_fields": [ + { + "name": "highlightAmount", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "highlightIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "invalidHighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 8 + }, + { + "name": "validHighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + }, + { + "name": "mutedHighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 16 + }, + { + "name": "group1HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 20 + }, + { + "name": "group2HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 24 + }, + { + "name": "group3HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 28 + }, + { + "name": "group4HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSurfaceMaterialSettings", + "type_name_2": "WeatherSurfaceMaterialSettings", + "qualified_name": "keen::WeatherSurfaceMaterialSettings", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3626862421, + "hash2": 3646515409, + "struct_fields": [ + { + "name": "snowUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "snowScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "snowVertexNormalPower", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "snowVertexNormalCutoff", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "frostUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "frostScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "frostRoughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "frostPorosityScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "frostAlbedo", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + }, + { + "name": "frostPuddleAlbedo", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ZoneVisualizationSettings", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 79393218, + "hash2": 395354449, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSystemResource", + "type_name_2": "RenderSystemResource", + "qualified_name": "keen::RenderSystemResource", + "referenced_type_name": null, + "class_size": 408, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3095915039, + "hash2": 2249264679, + "struct_fields": [ + { + "name": "specularIblLut", + "type_name": "keen::SpecularIblLutResource", + "type_hash": 3746833597, + "data_offset": 0 + }, + { + "name": "blueNoiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 20 + }, + { + "name": "blueNoiseRenderImage", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 36 + }, + { + "name": "globalSlopeDefinition", + "type_name": "keen::ObjectReference", + "type_hash": 2576850241, + "data_offset": 72 + }, + { + "name": "highlightColorPalette", + "type_name": "keen::HighlightColorPaletteSettings", + "type_hash": 3199165685, + "data_offset": 88 + }, + { + "name": "weatherSurfaceMaterialSettings", + "type_name": "keen::WeatherSurfaceMaterialSettings", + "type_hash": 3626862421, + "data_offset": 124 + }, + { + "name": "verifyDecoObjectMeshCountLimit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 164 + }, + { + "name": "verifyDetailScatteringMeshCountLimit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 165 + }, + { + "name": "atmosphere", + "type_name": "keen::ObjectReference", + "type_hash": 3140740793, + "data_offset": 168 + }, + { + "name": "zoneVisualizationSettings", + "type_name": "keen::ObjectReference", + "type_hash": 79393218, + "data_offset": 184 + }, + { + "name": "frostBlendMask", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 200 + }, + { + "name": "snowRoughness", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 216 + }, + { + "name": "snowAlbedo", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 232 + }, + { + "name": "snowNormal", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 248 + }, + { + "name": "frostBlendMaskRenderImage", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 264 + }, + { + "name": "snowRoughnessRenderImage", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 300 + }, + { + "name": "snowAlbedoRenderImage", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 336 + }, + { + "name": "snowNormalRenderImage", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 372 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkInstance", + "type_name_2": "RenderModelChunkInstance", + "qualified_name": "keen::RenderModelChunkInstance", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1365457111, + "hash2": 4012601224, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 16 + }, + { + "name": "modelIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 32 + }, + { + "name": "canBeCulled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 34 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RenderModelChunkInstance[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RenderModelChunkInstance", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 319275102, + "hash2": 2622233361, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkModelData", + "type_name_2": "RenderModelChunkModelData", + "qualified_name": "keen::RenderModelChunkModelData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 886827113, + "hash2": 4111040935, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "extents", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 319275102, + "data_offset": 36 + }, + { + "name": "entityIndexMap", + "type_name": "keen::BlobArray", + "type_hash": 147528548, + "data_offset": 44 + }, + { + "name": "modelGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkModelResource", + "type_name_2": "RenderModelChunkModelResource", + "qualified_name": "keen::RenderModelChunkModelResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1048078217, + "hash2": 1703011167, + "struct_fields": [ + { + "name": "modelData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "modelDataTypeSignatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkGridResource", + "type_name_2": "RenderModelChunkGridResource", + "qualified_name": "keen::RenderModelChunkGridResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2383672032, + "hash2": 2631742769, + "struct_fields": [ + { + "name": "chunkCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GBufferTemporalFilterConstants", + "type_name_2": "GBufferTemporalFilterConstants", + "qualified_name": "keen::GBufferTemporalFilterConstants", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1116914390, + "hash2": 2506646299, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "temporalWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentMergeStartConstants", + "type_name_2": "TransparentMergeStartConstants", + "qualified_name": "keen::TransparentMergeStartConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3756888877, + "hash2": 1393957048, + "struct_fields": [ + { + "name": "instanceCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentMergePrepareConstants", + "type_name_2": "TransparentMergePrepareConstants", + "qualified_name": "keen::TransparentMergePrepareConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2177557368, + "hash2": 3400881324, + "struct_fields": [ + { + "name": "maxTriangleCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunklet", + "type_name_2": "VoxelChunklet", + "qualified_name": "keen::VoxelChunklet", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3699032884, + "hash2": 636999804, + "struct_fields": [ + { + "name": "sphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "normal", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVoxelMaterial", + "type_name_2": "GiVoxelMaterial", + "qualified_name": "keen::GiVoxelMaterial", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3290619427, + "hash2": 3962637693, + "struct_fields": [ + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "roughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "metallic", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "reflectance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVoxelBuildingMaterial", + "type_name_2": "GiVoxelBuildingMaterial", + "qualified_name": "keen::GiVoxelBuildingMaterial", + "referenced_type_name": null, + "class_size": 108, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3031224911, + "hash2": 3426833412, + "struct_fields": [ + { + "name": "top", + "type_name": "keen::GiVoxelMaterial", + "type_hash": 3290619427, + "data_offset": 0 + }, + { + "name": "side", + "type_name": "keen::GiVoxelMaterial", + "type_hash": 3290619427, + "data_offset": 36 + }, + { + "name": "bottom", + "type_name": "keen::GiVoxelMaterial", + "type_hash": 3290619427, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "GiVoxelBuildingMaterial[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::GiVoxelBuildingMaterial", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3625571316, + "hash2": 1109046881, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiVoxelBuildingMaterialResource", + "type_name_2": "GiVoxelBuildingMaterialResource", + "qualified_name": "keen::GiVoxelBuildingMaterialResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 869152171, + "hash2": 1674138043, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::BlobArray", + "type_hash": 3625571316, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BakeWorldTriangleMaterialDataVertexShaderParameters", + "type_name_2": "BakeWorldTriangleMaterialDataVertexShaderParameters", + "qualified_name": "keen::BakeWorldTriangleMaterialDataVertexShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1750210227, + "hash2": 1345629547, + "struct_fields": [ + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "perVertexBakingDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BakeWorldTriangleMaterialDataTriangleShaderParameters", + "type_name_2": "BakeWorldTriangleMaterialDataTriangleShaderParameters", + "qualified_name": "keen::BakeWorldTriangleMaterialDataTriangleShaderParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3346483109, + "hash2": 2605252469, + "struct_fields": [ + { + "name": "triangleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "perVertexBakingDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "bakedTriangleMaterialDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "feedbackDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "debug", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PatchMeshVerticesParameters", + "type_name_2": "PatchMeshVerticesParameters", + "qualified_name": "keen::PatchMeshVerticesParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 625585930, + "hash2": 2703282837, + "struct_fields": [ + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "vertexStride", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderBlendShapeSlot", + "type_name_2": "RenderBlendShapeSlot", + "qualified_name": "keen::RenderBlendShapeSlot", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2311103430, + "hash2": 67966915, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ObjectReference", + "type_hash": 2422339174, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringPass", + "type_name_2": "DetailScatteringPass", + "qualified_name": "keen::DetailScatteringPass", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3569299376, + "hash2": 1346458558, + "struct_fields": [], + "enum_fields": [ + { + "name": "DepthPrePass", + "value": 0 + }, + { + "name": "Geometry", + "value": 1 + } + ] + }, + { + "type_name_1": "DetailScatteringError", + "type_name_2": "DetailScatteringError", + "qualified_name": "keen::DetailScatteringError", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 4135343337, + "hash2": 987663916, + "struct_fields": [], + "enum_fields": [ + { + "name": "OutOfDraws", + "value": 1 + }, + { + "name": "OutOfObjects", + "value": 2 + } + ] + }, + { + "type_name_1": "DetailScatteringDebugMode", + "type_name_2": "DetailScatteringDebugMode", + "qualified_name": "keen::DetailScatteringDebugMode", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1651149075, + "hash2": 162557599, + "struct_fields": [], + "enum_fields": [ + { + "name": "DetailScatteringDebugMode_None", + "value": 0 + }, + { + "name": "DetailScatteringDebugMode_SingleModel", + "value": 1 + }, + { + "name": "DetailScatteringDebugMode_SingleMaterial", + "value": 2 + } + ] + }, + { + "type_name_1": "ScatterModelData", + "type_name_2": "ScatterModelData", + "qualified_name": "keen::ScatterModelData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3461853585, + "hash2": 1762783481, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::GpuModel", + "type_hash": 4121105745, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatteredObjectData", + "type_name_2": "ScatteredObjectData", + "qualified_name": "keen::ScatteredObjectData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1161038218, + "hash2": 3901357076, + "struct_fields": [ + { + "name": "modelIndexAndLodIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "fadeout", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterTriangleCullingShaderParameters", + "type_name_2": "ScatterTriangleCullingShaderParameters", + "qualified_name": "keen::ScatterTriangleCullingShaderParameters", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1430655889, + "hash2": 473376094, + "struct_fields": [ + { + "name": "cameraWorldPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 0 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "triangleBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + }, + { + "name": "frustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 80 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 176 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 240 + }, + { + "name": "chunkletBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 244 + }, + { + "name": "boundingSphereBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 248 + }, + { + "name": "maxScatterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterTriangleCullingPushConstants", + "type_name_2": "ScatterTriangleCullingPushConstants", + "qualified_name": "keen::ScatterTriangleCullingPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 448780157, + "hash2": 2910099366, + "struct_fields": [ + { + "name": "chunkIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterChunkletCullingShaderParameters", + "type_name_2": "ScatterChunkletCullingShaderParameters", + "qualified_name": "keen::ScatterChunkletCullingShaderParameters", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1882973595, + "hash2": 286321879, + "struct_fields": [ + { + "name": "cameraWorldPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 0 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "chunkletBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + }, + { + "name": "frustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 80 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 176 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 240 + }, + { + "name": "boundingSphereBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 244 + }, + { + "name": "maxScatterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 248 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterChunkletCullingPushConstants", + "type_name_2": "ScatterChunkletCullingPushConstants", + "qualified_name": "keen::ScatterChunkletCullingPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3148077595, + "hash2": 1554251739, + "struct_fields": [ + { + "name": "jobCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterObjectPrepareShaderParameters", + "type_name_2": "ScatterObjectPrepareShaderParameters", + "qualified_name": "keen::ScatterObjectPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 881025287, + "hash2": 3827240826, + "struct_fields": [ + { + "name": "targetGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringShaderData", + "type_name_2": "DetailScatteringShaderData", + "qualified_name": "keen::DetailScatteringShaderData", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 29, + "primitive_type": "Struct", + "hash1": 3327463096, + "hash2": 1903671417, + "struct_fields": [ + { + "name": "cameraWorldPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 0 + }, + { + "name": "scatteredObjectCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "scatteredObjectCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "scatteredCandidateCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 32 + }, + { + "name": "cameraCenteredViewProjection", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 80 + }, + { + "name": "frustumPlane0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 144 + }, + { + "name": "frustumPlane1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 160 + }, + { + "name": "frustumPlane2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 176 + }, + { + "name": "frustumPlane3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 192 + }, + { + "name": "frustumPlane4", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 208 + }, + { + "name": "terrainTessellation", + "type_name": "keen::TessellatedMaterialConstants", + "type_hash": 2328535408, + "data_offset": 224 + }, + { + "name": "dynamicHeightmap", + "type_name": "keen::DynamicHeightmapSamplingShaderData", + "type_hash": 720730302, + "data_offset": 240 + }, + { + "name": "dynamicHeightmapValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 272 + }, + { + "name": "debugMode", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 276 + }, + { + "name": "debugValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 280 + }, + { + "name": "densityProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 284 + }, + { + "name": "modelSizeFeedbackPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 288 + }, + { + "name": "distanceCullingThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 292 + }, + { + "name": "sizeCullingPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 296 + }, + { + "name": "permutationBucketCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 300 + }, + { + "name": "maxScatterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 304 + }, + { + "name": "invMaxDistanceFadeLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 308 + }, + { + "name": "displacementFadeoutStart", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 312 + }, + { + "name": "displacementFadeoutEnd", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 316 + }, + { + "name": "displacementStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 320 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 336 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "triangleBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringChunkShaderData", + "type_name_2": "DetailScatteringChunkShaderData", + "qualified_name": "keen::DetailScatteringChunkShaderData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3665217627, + "hash2": 1016214763, + "struct_fields": [ + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "bakedTriangleMaterialDataOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "triangleCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "chunkletOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "chunkletCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterInstanceOffsetShaderData", + "type_name_2": "ScatterInstanceOffsetShaderData", + "qualified_name": "keen::ScatterInstanceOffsetShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1327860741, + "hash2": 4012472272, + "struct_fields": [ + { + "name": "scatterModelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "debugMode", + "type_name": "keen::DetailScatteringDebugMode", + "type_hash": 1651149075, + "data_offset": 8 + }, + { + "name": "debugValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "permutationBucketCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterInstancesShaderData", + "type_name_2": "ScatterInstancesShaderData", + "qualified_name": "keen::ScatterInstancesShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1546454597, + "hash2": 3205689914, + "struct_fields": [ + { + "name": "scatteredObjectCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "debugMode", + "type_name": "keen::DetailScatteringDebugMode", + "type_hash": 1651149075, + "data_offset": 4 + }, + { + "name": "debugValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "permutationBucketCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BiomeMap", + "type_name_2": "BiomeMap", + "qualified_name": "keen::BiomeMap", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3312585984, + "hash2": 1462713688, + "struct_fields": [ + { + "name": "baseBiome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BiomeMapLayer", + "type_name_2": "BiomeMapLayer", + "qualified_name": "keen::BiomeMapLayer", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 349049573, + "hash2": 1231586679, + "struct_fields": [ + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ContentHash[7]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ContentHash", + "class_size": 112, + "fields_count": 7, + "primitive_type": "StaticArray", + "hash1": 3271388114, + "hash2": 3103024584, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BiomeMapInfo", + "type_name_2": "BiomeMapInfo", + "qualified_name": "keen::BiomeMapInfo", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2870633660, + "hash2": 2466262516, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 3271388114, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfCascadeData", + "type_name_2": "SdfCascadeData", + "qualified_name": "keen::SdfCascadeData", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2890151845, + "hash2": 2434733081, + "struct_fields": [ + { + "name": "ndcToSdfMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfShaderData", + "type_name_2": "SdfShaderData", + "qualified_name": "keen::SdfShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 657967168, + "hash2": 3993777353, + "struct_fields": [ + { + "name": "sdfCascadeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sdfInstanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "sdfBaseDescriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "sdfInvGridSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfDebugShaderParameters", + "type_name_2": "SdfDebugShaderParameters", + "qualified_name": "keen::SdfDebugShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4248517149, + "hash2": 3250730594, + "struct_fields": [ + { + "name": "sdf", + "type_name": "keen::SdfShaderData", + "type_hash": 657967168, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfCaptureDebugShaderParameters", + "type_name_2": "SdfCaptureDebugShaderParameters", + "qualified_name": "keen::SdfCaptureDebugShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3304870177, + "hash2": 4228546360, + "struct_fields": [ + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfVoxelRegion", + "type_name_2": "SdfVoxelRegion", + "qualified_name": "keen::SdfVoxelRegion", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 601226031, + "hash2": 3298737731, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "bufferOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfUpdateShaderParameters", + "type_name_2": "SdfUpdateShaderParameters", + "qualified_name": "keen::SdfUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1439250185, + "hash2": 1658258238, + "struct_fields": [ + { + "name": "newVoxelRegion0", + "type_name": "keen::SdfVoxelRegion", + "type_hash": 601226031, + "data_offset": 0 + }, + { + "name": "newVoxelRegion1", + "type_name": "keen::SdfVoxelRegion", + "type_hash": 601226031, + "data_offset": 32 + }, + { + "name": "newVoxelRegion2", + "type_name": "keen::SdfVoxelRegion", + "type_hash": 601226031, + "data_offset": 64 + }, + { + "name": "dirtyVoxelRegion", + "type_name": "keen::SdfVoxelRegion", + "type_hash": 601226031, + "data_offset": 96 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 128 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBakingShaderParameters", + "type_name_2": "SdfBakingShaderParameters", + "qualified_name": "keen::SdfBakingShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2910662678, + "hash2": 3989368914, + "struct_fields": [ + { + "name": "voxelOrigin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "volumeSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "voxelSizeInMeters", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "targetOffset", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfFloodShaderParameters", + "type_name_2": "SdfFloodShaderParameters", + "qualified_name": "keen::SdfFloodShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 617473142, + "hash2": 3825740789, + "struct_fields": [ + { + "name": "stepSize", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfCascadeUpdateShaderParameters", + "type_name_2": "SdfCascadeUpdateShaderParameters", + "qualified_name": "keen::SdfCascadeUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3913591353, + "hash2": 742730152, + "struct_fields": [ + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldChunkVoxelMaterialCopyShaderParameters", + "type_name_2": "WorldChunkVoxelMaterialCopyShaderParameters", + "qualified_name": "keen::WorldChunkVoxelMaterialCopyShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 65204164, + "hash2": 1256955913, + "struct_fields": [ + { + "name": "dwordCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "innerSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "chunkIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "chunkData", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfModelShaderData", + "type_name_2": "SdfModelShaderData", + "qualified_name": "keen::SdfModelShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2571189963, + "hash2": 268424934, + "struct_fields": [ + { + "name": "partCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "partOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfModelPartShaderData", + "type_name_2": "SdfModelPartShaderData", + "qualified_name": "keen::SdfModelPartShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2631650502, + "hash2": 1147701503, + "struct_fields": [ + { + "name": "descriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfInstanceShaderData", + "type_name_2": "SdfInstanceShaderData", + "qualified_name": "keen::SdfInstanceShaderData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4144310931, + "hash2": 3823056095, + "struct_fields": [ + { + "name": "modelIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "partCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "partOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfInstancePartShaderData", + "type_name_2": "SdfInstancePartShaderData", + "qualified_name": "keen::SdfInstancePartShaderData", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 499153870, + "hash2": 1437316670, + "struct_fields": [ + { + "name": "inverseTransform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "aabbMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "aabbMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfImageMaterialShaderData", + "type_name_2": "SdfImageMaterialShaderData", + "qualified_name": "keen::SdfImageMaterialShaderData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3232382586, + "hash2": 2184324444, + "struct_fields": [ + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfSystemUpdateShaderParameters", + "type_name_2": "SdfSystemUpdateShaderParameters", + "qualified_name": "keen::SdfSystemUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1451022932, + "hash2": 2376933682, + "struct_fields": [ + { + "name": "newModelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "newModelPartCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "newMaterialCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfSceneUpdateShaderParameters", + "type_name_2": "SdfSceneUpdateShaderParameters", + "qualified_name": "keen::SdfSceneUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3330481171, + "hash2": 3562612541, + "struct_fields": [ + { + "name": "newInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "newInstancePartCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfSystemShaderData", + "type_name_2": "SdfSystemShaderData", + "qualified_name": "keen::SdfSystemShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2875501581, + "hash2": 421730111, + "struct_fields": [ + { + "name": "activeInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "activeInstancePartCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfAoTraceShaderParameters", + "type_name_2": "SdfAoTraceShaderParameters", + "qualified_name": "keen::SdfAoTraceShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4087477083, + "hash2": 3590171652, + "struct_fields": [ + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 0 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfAoFilterShaderParameters", + "type_name_2": "SdfAoFilterShaderParameters", + "qualified_name": "keen::SdfAoFilterShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 5187558, + "hash2": 3835439753, + "struct_fields": [ + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "isHistoryValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhBuildMethod", + "type_name_2": "SdfBvhBuildMethod", + "qualified_name": "keen::SdfBvhBuildMethod", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2066616540, + "hash2": 2850047145, + "struct_fields": [], + "enum_fields": [ + { + "name": "LBVH", + "value": 0 + }, + { + "name": "LOC", + "value": 1 + } + ] + }, + { + "type_name_1": "SdfBvhCommonInstanceData", + "type_name_2": "SdfBvhCommonInstanceData", + "qualified_name": "keen::SdfBvhCommonInstanceData", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2190384093, + "hash2": 3129303734, + "struct_fields": [ + { + "name": "worldToUvwMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "uvwToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "aabbMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "descriptorIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 108 + }, + { + "name": "aabbMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhNodeShaderData", + "type_name_2": "SdfBvhNodeShaderData", + "qualified_name": "keen::SdfBvhNodeShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3437781534, + "hash2": 2877224338, + "struct_fields": [ + { + "name": "aabbMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "aabbMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "count", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugVisualizeIntersectionShaderParameters", + "type_name_2": "SdfBvhDebugVisualizeIntersectionShaderParameters", + "qualified_name": "keen::SdfBvhDebugVisualizeIntersectionShaderParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 573945148, + "hash2": 702726197, + "struct_fields": [ + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "cameraOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "farPlaneOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "farPlaneX", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "farPlaneY", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugTraversalShaderParameters", + "type_name_2": "SdfBvhDebugTraversalShaderParameters", + "qualified_name": "keen::SdfBvhDebugTraversalShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 495307501, + "hash2": 2210040725, + "struct_fields": [ + { + "name": "rayOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "rayDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "rayLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugStepType", + "type_name_2": "SdfBvhDebugStepType", + "qualified_name": "keen::SdfBvhDebugStepType", + "referenced_type_name": "keen::uint", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3711677440, + "hash2": 3818221415, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Leaf", + "value": 1 + }, + { + "name": "Inner", + "value": 2 + } + ] + }, + { + "type_name_1": "SdfBvhDebugStepLeafShaderData", + "type_name_2": "SdfBvhDebugStepLeafShaderData", + "qualified_name": "keen::SdfBvhDebugStepLeafShaderData", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3811219305, + "hash2": 1427777607, + "struct_fields": [ + { + "name": "instance", + "type_name": "keen::SdfBvhCommonInstanceData", + "type_hash": 2190384093, + "data_offset": 0 + }, + { + "name": "boxHitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "sdfHitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 128 + }, + { + "name": "hitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugStepInnerShaderData", + "type_name_2": "SdfBvhDebugStepInnerShaderData", + "qualified_name": "keen::SdfBvhDebugStepInnerShaderData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 264400457, + "hash2": 3342381725, + "struct_fields": [ + { + "name": "aabbMin0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "aabbMax0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "aabbMin1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "aabbMax1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "hitDistance0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "hitDistance1", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugStepShaderData", + "type_name_2": "SdfBvhDebugStepShaderData", + "qualified_name": "keen::SdfBvhDebugStepShaderData", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2056981385, + "hash2": 3543620486, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::SdfBvhDebugStepType", + "type_hash": 3711677440, + "data_offset": 0 + }, + { + "name": "leaf", + "type_name": "keen::SdfBvhDebugStepLeafShaderData", + "type_hash": 3811219305, + "data_offset": 4 + }, + { + "name": "inner", + "type_name": "keen::SdfBvhDebugStepInnerShaderData", + "type_hash": 264400457, + "data_offset": 140 + }, + { + "name": "closestHit", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 196 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSdfShadowShaderParameters", + "type_name_2": "RenderSdfShadowShaderParameters", + "qualified_name": "keen::RenderSdfShadowShaderParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 782327260, + "hash2": 802332540, + "struct_fields": [ + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 0 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "sunConeAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 80 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 88 + }, + { + "name": "rayBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "isSdfCacheValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RasterShadowQuality", + "type_name_2": "RasterShadowQuality", + "qualified_name": "keen::RasterShadowQuality", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 349918076, + "hash2": 716830159, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low", + "value": 0 + }, + { + "name": "Medium", + "value": 1 + }, + { + "name": "High", + "value": 2 + }, + { + "name": "Ultra", + "value": 3 + } + ] + }, + { + "type_name_1": "RenderShadowAtlasMaskShaderParameters", + "type_name_2": "RenderShadowAtlasMaskShaderParameters", + "qualified_name": "keen::RenderShadowAtlasMaskShaderParameters", + "referenced_type_name": null, + "class_size": 1184, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2750700236, + "hash2": 1844178895, + "struct_fields": [ + { + "name": "cameraCenteredSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 0 + }, + { + "name": "shadowAtlas", + "type_name": "keen::RenderShadowAtlasShaderData", + "type_hash": 2144946804, + "data_offset": 64 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 1152 + }, + { + "name": "texelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 1160 + }, + { + "name": "toLightDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 1168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowAtlasDebugShaderParameters", + "type_name_2": "RenderShadowAtlasDebugShaderParameters", + "qualified_name": "keen::RenderShadowAtlasDebugShaderParameters", + "referenced_type_name": null, + "class_size": 1168, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3100206793, + "hash2": 3531861440, + "struct_fields": [ + { + "name": "cameraCenteredSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 0 + }, + { + "name": "shadowAtlas", + "type_name": "keen::RenderShadowAtlasShaderData", + "type_hash": 2144946804, + "data_offset": 64 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 1152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldShadowDebugShaderParameters", + "type_name_2": "VoxelWorldShadowDebugShaderParameters", + "qualified_name": "keen::VoxelWorldShadowDebugShaderParameters", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1208122684, + "hash2": 320068954, + "struct_fields": [ + { + "name": "voxelWorldShadowMap", + "type_name": "keen::VoxelWorldShadowMapShaderData", + "type_hash": 1856726557, + "data_offset": 0 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 160 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimeShadowMapConstants", + "type_name_2": "PrimeShadowMapConstants", + "qualified_name": "keen::PrimeShadowMapConstants", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2695700730, + "hash2": 1349488396, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "depthPyramidMip", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + }, + { + "name": "depthPyramidAspectRatio", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "tileCountX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + }, + { + "name": "tileCountY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "useCameraCenteredPosition", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "cameraPosition", + "type_name": "keen::PackedShaderWorldPositionUniform", + "type_hash": 1695248566, + "data_offset": 176 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 192 + }, + { + "name": "clipSpaceToCameraCenteredMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowMaskQuality", + "type_name_2": "RenderShadowMaskQuality", + "qualified_name": "keen::RenderShadowMaskQuality", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2752968983, + "hash2": 1135664062, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low", + "value": 0 + }, + { + "name": "Medium", + "value": 1 + }, + { + "name": "High", + "value": 2 + } + ] + }, + { + "type_name_1": "RenderShadowMaskFillShaderParameters", + "type_name_2": "RenderShadowMaskFillShaderParameters", + "qualified_name": "keen::RenderShadowMaskFillShaderParameters", + "referenced_type_name": null, + "class_size": 624, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 123146642, + "hash2": 2208485025, + "struct_fields": [ + { + "name": "sdf", + "type_name": "keen::SdfShaderData", + "type_hash": 657967168, + "data_offset": 0 + }, + { + "name": "lightCache", + "type_name": "keen::LightCacheLookupShaderData", + "type_hash": 195997631, + "data_offset": 16 + }, + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 416 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 480 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 496 + }, + { + "name": "tileRatio", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 560 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 568 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 572 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 576 + }, + { + "name": "sunConeAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 588 + }, + { + "name": "rayBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 592 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 596 + }, + { + "name": "writeDebugOutput", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 600 + }, + { + "name": "enablePixelSdfCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 604 + }, + { + "name": "enableDebugTarget", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 608 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowMaskFilterShaderParameters", + "type_name_2": "RenderShadowMaskFilterShaderParameters", + "qualified_name": "keen::RenderShadowMaskFilterShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2979425961, + "hash2": 721358903, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "historyWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowMaskUpsampleShaderParameters", + "type_name_2": "RenderShadowMaskUpsampleShaderParameters", + "qualified_name": "keen::RenderShadowMaskUpsampleShaderParameters", + "referenced_type_name": null, + "class_size": 1184, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1083679132, + "hash2": 2126838579, + "struct_fields": [ + { + "name": "shadowAtlas", + "type_name": "keen::RenderShadowAtlasShaderData", + "type_hash": 2144946804, + "data_offset": 0 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 1088 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 1096 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 1104 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderContactShadowShaderParameters", + "type_name_2": "RenderContactShadowShaderParameters", + "qualified_name": "keen::RenderContactShadowShaderParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2475246251, + "hash2": 732332331, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "unjitteredProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 128 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 176 + }, + { + "name": "rcpNearPlaneDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 240 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 244 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 256 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 264 + }, + { + "name": "discardContents", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 268 + }, + { + "name": "stepCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 276 + }, + { + "name": "depthThickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 280 + }, + { + "name": "hardness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 284 + }, + { + "name": "combineWithDenoisedShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 288 + }, + { + "name": "enableJitter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 292 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderContactShadow2ShaderParameters", + "type_name_2": "RenderContactShadow2ShaderParameters", + "qualified_name": "keen::RenderContactShadow2ShaderParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2649612589, + "hash2": 3544623102, + "struct_fields": [ + { + "name": "lightCoordinate", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "invDepthTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "waveOffset", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 24 + }, + { + "name": "subSurfaceShadowStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnpackShadowMaskShaderParameters", + "type_name_2": "UnpackShadowMaskShaderParameters", + "qualified_name": "keen::UnpackShadowMaskShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 224382041, + "hash2": 897916377, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackShadowMaskShaderParameters", + "type_name_2": "PackShadowMaskShaderParameters", + "qualified_name": "keen::PackShadowMaskShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 40572430, + "hash2": 897916377, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SharpnessParameters", + "type_name_2": "SharpnessParameters", + "qualified_name": "keen::SharpnessParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 1797536409, + "hash2": 1768268651, + "struct_fields": [ + { + "name": "kDetectRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "kDetectThres", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "kMinContrastRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "kRatioNorm", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "kContrastBoost", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "kEps", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "kSharpStartY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "kSharpScaleY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "kSharpStrengthMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "kSharpStrengthScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "kSharpLimitMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "kSharpLimitScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "kScaleX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "kScaleY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "kDstNormX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "kDstNormY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "kSrcNormX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "kSrcNormY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "kInputViewportOriginX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "kInputViewportOriginY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + }, + { + "name": "kInputViewportWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "kInputViewportHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 84 + }, + { + "name": "kOutputViewportOriginX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + }, + { + "name": "kOutputViewportOriginY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "kOutputViewportWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "kOutputViewportHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleMaterial", + "type_name_2": "SimpleMaterial", + "qualified_name": "keen::SimpleMaterial", + "referenced_type_name": "keen::Material", + "class_size": 52, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 743535125, + "hash2": 1537858418, + "struct_fields": [ + { + "name": "enableTextureStreaming", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "receiveShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "colorMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 20 + }, + { + "name": "tintColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleRfxRenderMaterial", + "type_name_2": "SimpleRfxRenderMaterial", + "qualified_name": "keen::SimpleRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1507416925, + "hash2": 2568341409, + "struct_fields": [ + { + "name": "colorMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 0 + }, + { + "name": "receiveShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "tintColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleVoxelPbrMaterial", + "type_name_2": "SimpleVoxelPbrMaterial", + "qualified_name": "keen::SimpleVoxelPbrMaterial", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 340380165, + "hash2": 1385744075, + "struct_fields": [ + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "roughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "metallic", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "reflectance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleWorldMaterialShaderLayerWeights", + "type_name_2": "SimpleWorldMaterialShaderLayerWeights", + "qualified_name": "keen::SimpleWorldMaterialShaderLayerWeights", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4199565762, + "hash2": 1699045861, + "struct_fields": [ + { + "name": "sideWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "bottomWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "topWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "flatnessWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "map0Weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "map1Weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "flatness", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "sideParameters", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleWorldMaterialBlendMap", + "type_name_2": "SimpleWorldMaterialBlendMap", + "qualified_name": "keen::SimpleWorldMaterialBlendMap", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3480198962, + "hash2": 3188779708, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 0 + }, + { + "name": "tilingFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleVoxelLayerInfo", + "type_name_2": "SimpleVoxelLayerInfo", + "qualified_name": "keen::SimpleVoxelLayerInfo", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4012752485, + "hash2": 598501721, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleWorldMaterialResource", + "type_name_2": "SimpleWorldMaterialResource", + "qualified_name": "keen::SimpleWorldMaterialResource", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3957028593, + "hash2": 3044209545, + "struct_fields": [ + { + "name": "layerInfosParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 0 + }, + { + "name": "layerWeightsParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 52 + }, + { + "name": "layerPbrMaterialsParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 104 + }, + { + "name": "blendMapsParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleBuildingMaterialResource", + "type_name_2": "SimpleBuildingMaterialResource", + "qualified_name": "keen::SimpleBuildingMaterialResource", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3004518693, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeInstanceData", + "type_name_2": "SkinnedTreeInstanceData", + "qualified_name": "keen::SkinnedTreeInstanceData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1720318085, + "hash2": 9277062, + "struct_fields": [ + { + "name": "skinMatrixOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelSpringParameters", + "type_name_2": "SkinnedTreeModelSpringParameters", + "qualified_name": "keen::SkinnedTreeModelSpringParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3985984046, + "hash2": 3806290264, + "struct_fields": [ + { + "name": "mass", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "constant", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "damping", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "drag", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelParameters", + "type_name_2": "SkinnedTreeModelParameters", + "qualified_name": "keen::SkinnedTreeModelParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2209502111, + "hash2": 1721058538, + "struct_fields": [ + { + "name": "trunk", + "type_name": "keen::SkinnedTreeModelSpringParameters", + "type_hash": 3985984046, + "data_offset": 0 + }, + { + "name": "branch", + "type_name": "keen::SkinnedTreeModelSpringParameters", + "type_hash": 3985984046, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelSpringData", + "type_name_2": "SkinnedTreeModelSpringData", + "qualified_name": "keen::SkinnedTreeModelSpringData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2195532910, + "hash2": 3806290264, + "struct_fields": [ + { + "name": "mass", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "constant", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "damping", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "drag", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuSkinVector3", + "type_name_2": "CpuSkinVector3", + "qualified_name": "keen::CpuSkinVector3", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1641656199, + "hash2": 2319093115, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::vf32_data", + "type_hash": 751996476, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::vf32_data", + "type_hash": 751996476, + "data_offset": 16 + }, + { + "name": "z", + "type_name": "keen::vf32_data", + "type_hash": 751996476, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuSkinMatrix33", + "type_name_2": "CpuSkinMatrix33", + "qualified_name": "keen::CpuSkinMatrix33", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1983438614, + "hash2": 2319093115, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::vf32_data", + "type_hash": 751996476, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::vf32_data", + "type_hash": 751996476, + "data_offset": 16 + }, + { + "name": "z", + "type_name": "keen::vf32_data", + "type_hash": 751996476, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuSkinMatrix43", + "type_name_2": "CpuSkinMatrix43", + "qualified_name": "keen::CpuSkinMatrix43", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2117806661, + "hash2": 4286963587, + "struct_fields": [ + { + "name": "rot", + "type_name": "keen::CpuSkinMatrix33", + "type_hash": 1983438614, + "data_offset": 0 + }, + { + "name": "pos", + "type_name": "keen::vf32_data", + "type_hash": 751996476, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkyTextureMaterial", + "type_name_2": "SkyTextureMaterial", + "qualified_name": "keen::SkyTextureMaterial", + "referenced_type_name": "keen::Material", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3409819219, + "hash2": 3015111128, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "textureAddressMode", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkyTextureRfxRenderMaterial", + "type_name_2": "SkyTextureRfxRenderMaterial", + "qualified_name": "keen::SkyTextureRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1243075331, + "hash2": 497185059, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 0 + }, + { + "name": "sampler", + "type_name": "keen::BindlessSampler", + "type_hash": 3266652824, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementUpdateParameters", + "type_name_2": "SnowDisplacementUpdateParameters", + "qualified_name": "keen::SnowDisplacementUpdateParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 4184956579, + "hash2": 1073383135, + "struct_fields": [ + { + "name": "worldPixelSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "worldTextureSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "worldTileTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "worldPositionTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "oldWorldTileTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "oldWorldPositionTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 32 + }, + { + "name": "worldHeightScale", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "rcpHeightScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "fadeOutHeightFill", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "heightMin", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "heightMax", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "oldHeightMin", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + }, + { + "name": "bodyCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementBody", + "type_name_2": "SnowDisplacementBody", + "qualified_name": "keen::SnowDisplacementBody", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3811638950, + "hash2": 1237218975, + "struct_fields": [ + { + "name": "packedPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "rcpMinSoftness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "rcpMaxSoftness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "heightNoiseScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SsaoQuality", + "type_name_2": "SsaoQuality", + "qualified_name": "keen::SsaoQuality", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2545503153, + "hash2": 567243800, + "struct_fields": [], + "enum_fields": [ + { + "name": "Low", + "value": 0 + }, + { + "name": "Medium", + "value": 1 + }, + { + "name": "High", + "value": 2 + } + ] + }, + { + "type_name_1": "SsaoData", + "type_name_2": "SsaoData", + "qualified_name": "keen::SsaoData", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2279127112, + "hash2": 3867170807, + "struct_fields": [ + { + "name": "viewspaceReconstructionData", + "type_name": "keen::ViewSpacePositionReconstructionData", + "type_hash": 285426432, + "data_offset": 0 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 64 + }, + { + "name": "_padding0", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 72 + }, + { + "name": "ssaoIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "ssaoBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "ssaoScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "ssaoSampleRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StochasticScreenSpaceReflectionsConstantData", + "type_name_2": "StochasticScreenSpaceReflectionsConstantData", + "qualified_name": "keen::StochasticScreenSpaceReflectionsConstantData", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 1914204123, + "hash2": 1843471814, + "struct_fields": [ + { + "name": "g_inv_view_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "g_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "g_inv_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "g_view", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 192 + }, + { + "name": "g_inv_view", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 240 + }, + { + "name": "g_prev_view_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 288 + }, + { + "name": "g_camera_world_position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 352 + }, + { + "name": "g_buffer_dimensions", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 368 + }, + { + "name": "g_inv_buffer_dimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 376 + }, + { + "name": "g_render_dimensions", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 384 + }, + { + "name": "g_inv_render_dimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 392 + }, + { + "name": "g_temporal_stability_factor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 400 + }, + { + "name": "g_depth_buffer_thickness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 404 + }, + { + "name": "g_depth_buffer_thickness_far", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 408 + }, + { + "name": "g_roughness_threshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 412 + }, + { + "name": "g_temporal_variance_threshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 416 + }, + { + "name": "g_sdf_ray_max_distance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 420 + }, + { + "name": "g_sdf_ray_start_offset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 424 + }, + { + "name": "g_sdf_hit_offset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 428 + }, + { + "name": "g_frame_index", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 432 + }, + { + "name": "g_max_traversal_intersections", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 436 + }, + { + "name": "g_min_traversal_occupancy", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 440 + }, + { + "name": "g_most_detailed_mip", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 444 + }, + { + "name": "g_samples_per_quad", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 448 + }, + { + "name": "g_temporal_variance_guided_tracing_enabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 452 + }, + { + "name": "g_num_mips", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 456 + }, + { + "name": "g_resolution_downscale", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 460 + }, + { + "name": "g_reflect_background", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 464 + }, + { + "name": "g_debug_reflection_rays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 468 + }, + { + "name": "g_edge_bleeding_max_distance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 472 + }, + { + "name": "g_edge_bleeding_offset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 476 + }, + { + "name": "g_gi_enabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 480 + }, + { + "name": "g_exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 484 + }, + { + "name": "g_ground_truth_specular", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 488 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StochasticScreenSpaceReflectionsUpscaleData", + "type_name_2": "StochasticScreenSpaceReflectionsUpscaleData", + "qualified_name": "keen::StochasticScreenSpaceReflectionsUpscaleData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2337638688, + "hash2": 2067847428, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugRootConstantData", + "type_name_2": "DebugRootConstantData", + "qualified_name": "keen::DebugRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3419126785, + "hash2": 1445851346, + "struct_fields": [ + { + "name": "debug_mode", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyReflectionsConstants", + "type_name_2": "ApplyReflectionsConstants", + "qualified_name": "keen::ApplyReflectionsConstants", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 429294673, + "hash2": 546015496, + "struct_fields": [ + { + "name": "clipSpaceToCameraCenteredMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 72 + }, + { + "name": "specularMax", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "enableHorizonBasedOcclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 84 + }, + { + "name": "giLightFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 92 + }, + { + "name": "specularReflectionsFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "groundTruthSpecular", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "writeToSceneBrightness", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerShaderParameters", + "type_name_2": "SurfacePickerShaderParameters", + "qualified_name": "keen::SurfacePickerShaderParameters", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1038881706, + "hash2": 2415004536, + "struct_fields": [ + { + "name": "fogGrid", + "type_name": "keen::VolumetricFogGridShaderData", + "type_hash": 2062480343, + "data_offset": 0 + }, + { + "name": "focusPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 496 + }, + { + "name": "chunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 508 + }, + { + "name": "seed", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 512 + }, + { + "name": "pickingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 516 + }, + { + "name": "debugDrawPicks", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 520 + }, + { + "name": "enableDisplacement", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 524 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "uint[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::uint", + "class_size": 24, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 1840397408, + "hash2": 1829429590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerShaderData", + "type_name_2": "SurfacePickerShaderData", + "qualified_name": "keen::SurfacePickerShaderData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3023678426, + "hash2": 3921619574, + "struct_fields": [ + { + "name": "binSize", + "type_name": "keen::StaticArray", + "type_hash": 1840397408, + "data_offset": 0 + }, + { + "name": "binOffset", + "type_name": "keen::StaticArray", + "type_hash": 1840397408, + "data_offset": 24 + }, + { + "name": "binPickIndex", + "type_name": "keen::StaticArray", + "type_hash": 1840397408, + "data_offset": 48 + }, + { + "name": "culledChunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 72 + }, + { + "name": "pointCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerPointShaderData", + "type_name_2": "SurfacePickerPointShaderData", + "qualified_name": "keen::SurfacePickerPointShaderData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3444079298, + "hash2": 2731988086, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerBakedDisplacementShaderData", + "type_name_2": "SurfacePickerBakedDisplacementShaderData", + "qualified_name": "keen::SurfacePickerBakedDisplacementShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2697939924, + "hash2": 2260864343, + "struct_fields": [ + { + "name": "displacement", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "displacementTop", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "displacementBottom", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "displacementSide", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingCursorMaterial", + "type_name_2": "TerraformingCursorMaterial", + "qualified_name": "keen::TerraformingCursorMaterial", + "referenced_type_name": "keen::Material", + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3391330217, + "hash2": 670590056, + "struct_fields": [ + { + "name": "noiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "noiseUvScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "ringThickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "ringColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 32 + }, + { + "name": "fillColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingCursorRfxRenderMaterial", + "type_name_2": "TerraformingCursorRfxRenderMaterial", + "qualified_name": "keen::TerraformingCursorRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 332747025, + "hash2": 2693316110, + "struct_fields": [ + { + "name": "noiseUvScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "noiseMap", + "type_name": "keen::BindlessTexture3D_float", + "type_hash": 2581587761, + "data_offset": 12 + }, + { + "name": "ringColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "ringThickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "fillColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TextureInfo", + "type_name_2": "TextureInfo", + "qualified_name": "keen::TextureInfo", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1760347377, + "hash2": 2834389945, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "arraySize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 9 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 10 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TextureSizeInfo", + "type_name_2": "TextureSizeInfo", + "qualified_name": "keen::TextureSizeInfo", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3401953540, + "hash2": 1661279841, + "struct_fields": [ + { + "name": "info", + "type_name": "keen::TextureInfo", + "type_hash": 1760347377, + "data_offset": 0 + }, + { + "name": "sources", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentMaterial", + "type_name_2": "TransparentMaterial", + "qualified_name": "keen::TransparentMaterial", + "referenced_type_name": "keen::Material", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 510395153, + "hash2": 1505674715, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransparentInstanceFlag", + "type_name_2": "TransparentInstanceFlag", + "qualified_name": "keen::TransparentInstanceFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1889785757, + "hash2": 1376702452, + "struct_fields": [], + "enum_fields": [ + { + "name": "IsAdditive", + "value": 0 + }, + { + "name": "EnableLighting", + "value": 1 + }, + { + "name": "EnableAlphaClip", + "value": 2 + }, + { + "name": "UseVertexAlphaForAlphaClip", + "value": 3 + } + ] + }, + { + "type_name_1": "TransparentInstanceData", + "type_name_2": "TransparentInstanceData", + "qualified_name": "keen::TransparentInstanceData", + "referenced_type_name": null, + "class_size": 164, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 1898936187, + "hash2": 1967671498, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "image", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 20 + }, + { + "name": "imageSampler", + "type_name": "keen::BindlessSampler", + "type_hash": 3266652824, + "data_offset": 24 + }, + { + "name": "uvDistortionMapSampler", + "type_name": "keen::BindlessSampler", + "type_hash": 3266652824, + "data_offset": 28 + }, + { + "name": "edgeFadeOutFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "depthFadeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "rotation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 52 + }, + { + "name": "scale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 68 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "alpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "uvOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 96 + }, + { + "name": "uvScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 104 + }, + { + "name": "uvDistortionOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 112 + }, + { + "name": "uvDistortionScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 120 + }, + { + "name": "uvDistortionStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "uvDistortionMap", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 132 + }, + { + "name": "alphaClipValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 136 + }, + { + "name": "alphaClipHalfRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 140 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "motionVectorImage", + "type_name": "keen::BindlessTexture2D_float4", + "type_hash": 239233568, + "data_offset": 148 + }, + { + "name": "motionVectorScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "flipbookTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "encodedFlipbookSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentRfxRenderMaterial", + "type_name_2": "TransparentRfxRenderMaterial", + "qualified_name": "keen::TransparentRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3900788489, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "bool2", + "type_name_2": "bool2", + "qualified_name": "keen::bool2", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 30810088, + "hash2": 451441283, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "bool3", + "type_name_2": "bool3", + "qualified_name": "keen::bool3", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 47587707, + "hash2": 392576634, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "z", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "bool4", + "type_name_2": "bool4", + "qualified_name": "keen::bool4", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 131475802, + "hash2": 286675978, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "z", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "w", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolMask", + "type_name_2": "BoolMask", + "qualified_name": "keen::BoolMask", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3817710130, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxSamplerParameters", + "type_name_2": "VfxSamplerParameters", + "qualified_name": "keen::VfxSamplerParameters", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1403942026, + "hash2": 2908078067, + "struct_fields": [ + { + "name": "addressU", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 0 + }, + { + "name": "addressV", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 1 + }, + { + "name": "addressW", + "type_name": "keen::RenderSamplerAddressMode", + "type_hash": 2320826725, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderVariableComponentType", + "type_name_2": "ShaderVariableComponentType", + "qualified_name": "keen::ShaderVariableComponentType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 1356628798, + "hash2": 2642333783, + "struct_fields": [], + "enum_fields": [ + { + "name": "Float", + "value": 0 + }, + { + "name": "Int", + "value": 1 + }, + { + "name": "Uint", + "value": 2 + }, + { + "name": "Bool", + "value": 3 + }, + { + "name": "Quaternion", + "value": 4 + } + ] + }, + { + "type_name_1": "ShaderVariable", + "type_name_2": "ShaderVariable", + "qualified_name": "keen::ShaderVariable", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2235091619, + "hash2": 2956869512, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "componentType", + "type_name": "keen::ShaderVariableComponentType", + "type_hash": 1356628798, + "data_offset": 8 + }, + { + "name": "componentCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBufferMemberComponentType", + "type_name_2": "VfxBufferMemberComponentType", + "qualified_name": "keen::VfxBufferMemberComponentType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1050275073, + "hash2": 2834974351, + "struct_fields": [], + "enum_fields": [ + { + "name": "Float", + "value": 0 + }, + { + "name": "SignedInt", + "value": 1 + }, + { + "name": "UnsignedInt", + "value": 2 + }, + { + "name": "BoolMask", + "value": 3 + } + ] + }, + { + "type_name_1": "VfxBufferMember", + "type_name_2": "VfxBufferMember", + "qualified_name": "keen::VfxBufferMember", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2713497930, + "hash2": 1445760639, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "componentCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "componentType", + "type_name": "keen::VfxBufferMemberComponentType", + "type_hash": 1050275073, + "data_offset": 12 + }, + { + "name": "offsetInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxBufferMember[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxBufferMember", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2260721431, + "hash2": 778881389, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleStateBufferInfo", + "type_name_2": "VfxParticleStateBufferInfo", + "qualified_name": "keen::VfxParticleStateBufferInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3824418799, + "hash2": 1353914784, + "struct_fields": [ + { + "name": "members", + "type_name": "keen::BlobArray", + "type_hash": 2260721431, + "data_offset": 0 + }, + { + "name": "sizeInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterType", + "type_name_2": "VfxParameterType", + "qualified_name": "keen::VfxParameterType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 3944788225, + "hash2": 3098144724, + "struct_fields": [], + "enum_fields": [ + { + "name": "Float", + "value": 0 + }, + { + "name": "Float2", + "value": 1 + }, + { + "name": "Float3", + "value": 2 + }, + { + "name": "Float4", + "value": 3 + }, + { + "name": "Int", + "value": 4 + }, + { + "name": "Int2", + "value": 5 + }, + { + "name": "Int3", + "value": 6 + }, + { + "name": "Int4", + "value": 7 + }, + { + "name": "Color", + "value": 8 + }, + { + "name": "Quaternion", + "value": 9 + } + ] + }, + { + "type_name_1": "VfxMeshPatchPointData", + "type_name_2": "VfxMeshPatchPointData", + "qualified_name": "keen::VfxMeshPatchPointData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 600930187, + "hash2": 2268573614, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 8 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 24 + }, + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelPatchPointData", + "type_name_2": "VfxModelPatchPointData", + "qualified_name": "keen::VfxModelPatchPointData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 320722287, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Decal", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1693923988, + "hash2": 2119489579, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxDecalPatchPointData", + "type_name_2": "VfxDecalPatchPointData", + "qualified_name": "keen::VfxDecalPatchPointData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2406453471, + "hash2": 3397553792, + "struct_fields": [ + { + "name": "decal", + "type_name": "keen::ObjectReference", + "type_hash": 1693923988, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxImagePatchPointData", + "type_name_2": "VfxImagePatchPointData", + "qualified_name": "keen::VfxImagePatchPointData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1315479863, + "hash2": 3082221184, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "sampler", + "type_name": "keen::VfxSamplerParameters", + "type_hash": 1403942026, + "data_offset": 6 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 10 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 11 + }, + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEmitterPatchPointData", + "type_name_2": "VfxEmitterPatchPointData", + "qualified_name": "keen::VfxEmitterPatchPointData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2777709524, + "hash2": 2075509868, + "struct_fields": [ + { + "name": "childIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCurvePatchPointData", + "type_name_2": "VfxCurvePatchPointData", + "qualified_name": "keen::VfxCurvePatchPointData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1351532769, + "hash2": 3460271874, + "struct_fields": [ + { + "name": "samples", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "startTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "totalTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "sampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleParameterPatchPointType", + "type_name_2": "VfxParticleParameterPatchPointType", + "qualified_name": "keen::VfxParticleParameterPatchPointType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 1273630467, + "hash2": 58554855, + "struct_fields": [], + "enum_fields": [ + { + "name": "Image", + "value": 0 + }, + { + "name": "Mesh", + "value": 1 + }, + { + "name": "Model", + "value": 2 + }, + { + "name": "Curve", + "value": 3 + }, + { + "name": "Decal", + "value": 4 + } + ] + }, + { + "type_name_1": "VfxParticleParameterPatchPoint", + "type_name_2": "VfxParticleParameterPatchPoint", + "qualified_name": "keen::VfxParticleParameterPatchPoint", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2220676155, + "hash2": 3605222882, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::VfxParticleParameterPatchPointType", + "type_hash": 1273630467, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "dataIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxParticleParameterPatchPoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxParticleParameterPatchPoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 835415998, + "hash2": 4235111466, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxImagePatchPointData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxImagePatchPointData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3882338086, + "hash2": 1031415456, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxMeshPatchPointData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxMeshPatchPointData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 515879760, + "hash2": 1705596651, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxModelPatchPointData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxModelPatchPointData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 647105822, + "hash2": 561275734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxEmitterPatchPointData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxEmitterPatchPointData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1555601495, + "hash2": 2879266748, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxCurvePatchPointData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxCurvePatchPointData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 633613916, + "hash2": 287182929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxDecalPatchPointData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxDecalPatchPointData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3524640730, + "hash2": 1722769631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleUniformData", + "type_name_2": "VfxParticleUniformData", + "qualified_name": "keen::VfxParticleUniformData", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3333798944, + "hash2": 1591648268, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "patchPoints", + "type_name": "keen::BlobArray", + "type_hash": 835415998, + "data_offset": 16 + }, + { + "name": "imageData", + "type_name": "keen::BlobArray", + "type_hash": 3882338086, + "data_offset": 24 + }, + { + "name": "meshData", + "type_name": "keen::BlobArray", + "type_hash": 515879760, + "data_offset": 32 + }, + { + "name": "modelData", + "type_name": "keen::BlobArray", + "type_hash": 647105822, + "data_offset": 40 + }, + { + "name": "emitterData", + "type_name": "keen::BlobArray", + "type_hash": 1555601495, + "data_offset": 48 + }, + { + "name": "curveData", + "type_name": "keen::BlobArray", + "type_hash": 633613916, + "data_offset": 56 + }, + { + "name": "decalData", + "type_name": "keen::BlobArray", + "type_hash": 3524640730, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleFeature", + "type_name_2": "VfxParticleFeature", + "qualified_name": "keen::VfxParticleFeature", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 706481262, + "hash2": 3740139109, + "struct_fields": [], + "enum_fields": [ + { + "name": "Emit", + "value": 0 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::VfxParticleFeature", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3527518476, + "hash2": 2588004262, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleFeatureMask", + "type_name_2": "VfxParticleFeatureMask", + "qualified_name": "keen::VfxParticleFeatureMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 180078558, + "hash2": 2349443481, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleResource", + "type_name_2": "VfxParticleResource", + "qualified_name": "keen::VfxParticleResource", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 613450932, + "hash2": 1167060162, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "parent", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "stateSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "code", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 20 + }, + { + "name": "strippedCode", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 36 + }, + { + "name": "uniformData", + "type_name": "keen::VfxParticleUniformData", + "type_hash": 3333798944, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterDescription", + "type_name_2": "VfxUserEffectParameterDescription", + "qualified_name": "keen::VfxUserEffectParameterDescription", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 685008875, + "hash2": 1582455745, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "nameHash", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "sizeInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "inheritanceKey", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxUserEffectParameterDescription[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxUserEffectParameterDescription", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1079413788, + "hash2": 298638390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxParticleResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxParticleResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3828964109, + "hash2": 1708323248, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxParticleStateBufferInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxParticleStateBufferInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3937183962, + "hash2": 3830953183, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxResource", + "type_name_2": "VfxResource", + "qualified_name": "keen::VfxResource", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3863928886, + "hash2": 3600821635, + "struct_fields": [ + { + "name": "parameterHash", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::BlobArray", + "type_hash": 1079413788, + "data_offset": 8 + }, + { + "name": "defaultData", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 16 + }, + { + "name": "particles", + "type_name": "keen::BlobArray", + "type_hash": 3828964109, + "data_offset": 80 + }, + { + "name": "stateInfos", + "type_name": "keen::BlobArray", + "type_hash": 3937183962, + "data_offset": 88 + }, + { + "name": "cullingDistanceMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "cullingDistanceMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "killTimeInSeconds", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VfxParticleDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 848034186, + "hash2": 2290780344, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxNode", + "type_name_2": "VfxNode", + "qualified_name": "keen::VfxNode", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2218059450, + "hash2": 1272198416, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "particle", + "type_name": "keen::ObjectReference", + "type_hash": 848034186, + "data_offset": 4 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxDefinition", + "type_name_2": "VfxDefinition", + "qualified_name": "keen::VfxDefinition", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2716155975, + "hash2": 1216528701, + "struct_fields": [ + { + "name": "cullingDistanceMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "cullingDistanceMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "killTimeInSeconds", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleDefinition", + "type_name_2": "VfxParticleDefinition", + "qualified_name": "keen::VfxParticleDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1575040705, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleValueKind", + "type_name_2": "VfxParticleValueKind", + "qualified_name": "keen::VfxParticleValueKind", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 948367151, + "hash2": 1788056504, + "struct_fields": [], + "enum_fields": [ + { + "name": "Value", + "value": 0 + }, + { + "name": "Expression", + "value": 1 + } + ] + }, + { + "type_name_1": "VfxParameterDefinitionBase", + "type_name_2": "VfxParameterDefinitionBase", + "qualified_name": "keen::VfxParameterDefinitionBase", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4148101721, + "hash2": 3986267505, + "struct_fields": [ + { + "name": "kind", + "type_name": "keen::VfxParticleValueKind", + "type_hash": 948367151, + "data_offset": 0 + }, + { + "name": "expression", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float", + "type_name_2": "VfxParameterDefinition_Float", + "qualified_name": "keen::VfxParameterDefinition_Float", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1275465137, + "hash2": 3116394667, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float2", + "type_name_2": "VfxParameterDefinition_Float2", + "qualified_name": "keen::VfxParameterDefinition_Float2", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 814171449, + "hash2": 2580412310, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float3", + "type_name_2": "VfxParameterDefinition_Float3", + "qualified_name": "keen::VfxParameterDefinition_Float3", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 797393830, + "hash2": 3869197683, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float4", + "type_name_2": "VfxParameterDefinition_Float4", + "qualified_name": "keen::VfxParameterDefinition_Float4", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 847726687, + "hash2": 447732796, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int", + "type_name_2": "VfxParameterDefinition_Int", + "qualified_name": "keen::VfxParameterDefinition_Int", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 376731642, + "hash2": 3744654445, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int2", + "type_name_2": "VfxParameterDefinition_Int2", + "qualified_name": "keen::VfxParameterDefinition_Int2", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 559452120, + "hash2": 3029890537, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int3", + "type_name_2": "VfxParameterDefinition_Int3", + "qualified_name": "keen::VfxParameterDefinition_Int3", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 576229739, + "hash2": 3560907631, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int4", + "type_name_2": "VfxParameterDefinition_Int4", + "qualified_name": "keen::VfxParameterDefinition_Int4", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 660117834, + "hash2": 2422490892, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt", + "type_name_2": "VfxParameterDefinition_UInt", + "qualified_name": "keen::VfxParameterDefinition_UInt", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2272156813, + "hash2": 3593320885, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt2", + "type_name_2": "VfxParameterDefinition_UInt2", + "qualified_name": "keen::VfxParameterDefinition_UInt2", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4055629997, + "hash2": 4098615438, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt3", + "type_name_2": "VfxParameterDefinition_UInt3", + "qualified_name": "keen::VfxParameterDefinition_UInt3", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4038852378, + "hash2": 3840656964, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt4", + "type_name_2": "VfxParameterDefinition_UInt4", + "qualified_name": "keen::VfxParameterDefinition_UInt4", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3954964283, + "hash2": 1994262460, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool", + "type_name_2": "VfxParameterDefinition_Bool", + "qualified_name": "keen::VfxParameterDefinition_Bool", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4049600761, + "hash2": 343518270, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool2", + "type_name_2": "VfxParameterDefinition_Bool2", + "qualified_name": "keen::VfxParameterDefinition_Bool2", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3307290513, + "hash2": 3603864998, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool3", + "type_name_2": "VfxParameterDefinition_Bool3", + "qualified_name": "keen::VfxParameterDefinition_Bool3", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3290512894, + "hash2": 18175111, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool4", + "type_name_2": "VfxParameterDefinition_Bool4", + "qualified_name": "keen::VfxParameterDefinition_Bool4", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3340845751, + "hash2": 328899562, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Color", + "type_name_2": "VfxParameterDefinition_Color", + "qualified_name": "keen::VfxParameterDefinition_Color", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 878737900, + "hash2": 18332030, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Quaternion", + "type_name_2": "VfxParameterDefinition_Quaternion", + "qualified_name": "keen::VfxParameterDefinition_Quaternion", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4061695153, + "hash2": 447732796, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Mesh", + "type_name_2": "VfxParameterDefinition_Mesh", + "qualified_name": "keen::VfxParameterDefinition_Mesh", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 32172800, + "hash2": 3510785326, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Model", + "type_name_2": "VfxParameterDefinition_Model", + "qualified_name": "keen::VfxParameterDefinition_Model", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1146146782, + "hash2": 3510785326, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Decal", + "type_name_2": "VfxParameterDefinition_Decal", + "qualified_name": "keen::VfxParameterDefinition_Decal", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1466149522, + "hash2": 2021699096, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 1693923988, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Emitter", + "type_name_2": "VfxParameterDefinition_Emitter", + "qualified_name": "keen::VfxParameterDefinition_Emitter", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3310164145, + "hash2": 728655815, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Image", + "type_name_2": "VfxParameterDefinition_Image", + "qualified_name": "keen::VfxParameterDefinition_Image", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3492971694, + "hash2": 3002997702, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 12 + }, + { + "name": "sampler", + "type_name": "keen::VfxSamplerParameters", + "type_hash": 1403942026, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinitionBase", + "type_name_2": "VfxStateDefinitionBase", + "qualified_name": "keen::VfxStateDefinitionBase", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3547919571, + "hash2": 3986267505, + "struct_fields": [ + { + "name": "kind", + "type_name": "keen::VfxParticleValueKind", + "type_hash": 948367151, + "data_offset": 0 + }, + { + "name": "expression", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float", + "type_name_2": "VfxStateDefinition_Float", + "qualified_name": "keen::VfxStateDefinition_Float", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2429528103, + "hash2": 1565984400, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float2", + "type_name_2": "VfxStateDefinition_Float2", + "qualified_name": "keen::VfxStateDefinition_Float2", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 199596303, + "hash2": 3188887837, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float3", + "type_name_2": "VfxStateDefinition_Float3", + "qualified_name": "keen::VfxStateDefinition_Float3", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 182818684, + "hash2": 314087184, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float4", + "type_name_2": "VfxStateDefinition_Float4", + "qualified_name": "keen::VfxStateDefinition_Float4", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 166041065, + "hash2": 2368707459, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int", + "type_name_2": "VfxStateDefinition_Int", + "qualified_name": "keen::VfxStateDefinition_Int", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3903832172, + "hash2": 3807957030, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int2", + "type_name_2": "VfxStateDefinition_Int2", + "qualified_name": "keen::VfxStateDefinition_Int2", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2863387642, + "hash2": 2205311810, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int3", + "type_name_2": "VfxStateDefinition_Int3", + "qualified_name": "keen::VfxStateDefinition_Int3", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2880165261, + "hash2": 3318879360, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int4", + "type_name_2": "VfxStateDefinition_Int4", + "qualified_name": "keen::VfxStateDefinition_Int4", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2762721928, + "hash2": 59573815, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt", + "type_name_2": "VfxStateDefinition_UInt", + "qualified_name": "keen::VfxStateDefinition_UInt", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1269174427, + "hash2": 1853475774, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt2", + "type_name_2": "VfxStateDefinition_UInt2", + "qualified_name": "keen::VfxStateDefinition_UInt2", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3211541003, + "hash2": 1617781529, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt3", + "type_name_2": "VfxStateDefinition_UInt3", + "qualified_name": "keen::VfxStateDefinition_UInt3", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3194763384, + "hash2": 2507219815, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt4", + "type_name_2": "VfxStateDefinition_UInt4", + "qualified_name": "keen::VfxStateDefinition_UInt4", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3312206717, + "hash2": 398729563, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool", + "type_name_2": "VfxStateDefinition_Bool", + "qualified_name": "keen::VfxStateDefinition_Bool", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3296067063, + "hash2": 4235523441, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool2", + "type_name_2": "VfxStateDefinition_Bool2", + "qualified_name": "keen::VfxStateDefinition_Bool2", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 180256031, + "hash2": 1716968397, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool3", + "type_name_2": "VfxStateDefinition_Bool3", + "qualified_name": "keen::VfxStateDefinition_Bool3", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 163478412, + "hash2": 3416259548, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool4", + "type_name_2": "VfxStateDefinition_Bool4", + "qualified_name": "keen::VfxStateDefinition_Bool4", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 146700793, + "hash2": 2828829357, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Color", + "type_name_2": "VfxStateDefinition_Color", + "qualified_name": "keen::VfxStateDefinition_Color", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3979854818, + "hash2": 1333393989, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Quaternion", + "type_name_2": "VfxStateDefinition_Quaternion", + "qualified_name": "keen::VfxStateDefinition_Quaternion", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1196090739, + "hash2": 2368707459, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionBase", + "type_name_2": "VfxExpressionBase", + "qualified_name": "keen::VfxExpressionBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3918443993, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float1", + "type_name_2": "VfxExpressionValue_Float1", + "qualified_name": "keen::VfxExpressionValue_Float1", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3964331471, + "hash2": 1167715175, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float2", + "type_name_2": "VfxExpressionValue_Float2", + "qualified_name": "keen::VfxExpressionValue_Float2", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3981109090, + "hash2": 3490202986, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float3", + "type_name_2": "VfxExpressionValue_Float3", + "qualified_name": "keen::VfxExpressionValue_Float3", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3997886709, + "hash2": 863831911, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float4", + "type_name_2": "VfxExpressionValue_Float4", + "qualified_name": "keen::VfxExpressionValue_Float4", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3880443376, + "hash2": 3325215184, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int1", + "type_name_2": "VfxExpressionValue_Int1", + "qualified_name": "keen::VfxExpressionValue_Int1", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3898893674, + "hash2": 2403694257, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int2", + "type_name_2": "VfxExpressionValue_Int2", + "qualified_name": "keen::VfxExpressionValue_Int2", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3882116055, + "hash2": 4107706109, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int3", + "type_name_2": "VfxExpressionValue_Int3", + "qualified_name": "keen::VfxExpressionValue_Int3", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3865338436, + "hash2": 3953169371, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int4", + "type_name_2": "VfxExpressionValue_Int4", + "qualified_name": "keen::VfxExpressionValue_Int4", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3848560817, + "hash2": 915912160, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt1", + "type_name_2": "VfxExpressionValue_UInt1", + "qualified_name": "keen::VfxExpressionValue_UInt1", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1831785929, + "hash2": 1113083057, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt2", + "type_name_2": "VfxExpressionValue_UInt2", + "qualified_name": "keen::VfxExpressionValue_UInt2", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1781453072, + "hash2": 3967647346, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt3", + "type_name_2": "VfxExpressionValue_UInt3", + "qualified_name": "keen::VfxExpressionValue_UInt3", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1798230691, + "hash2": 90698576, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt4", + "type_name_2": "VfxExpressionValue_UInt4", + "qualified_name": "keen::VfxExpressionValue_UInt4", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1882118786, + "hash2": 1786408752, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool", + "type_name_2": "VfxExpressionValue_Bool", + "qualified_name": "keen::VfxExpressionValue_Bool", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1974560002, + "hash2": 2227010274, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool2", + "type_name_2": "VfxExpressionValue_Bool2", + "qualified_name": "keen::VfxExpressionValue_Bool2", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1984055952, + "hash2": 2785586770, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool3", + "type_name_2": "VfxExpressionValue_Bool3", + "qualified_name": "keen::VfxExpressionValue_Bool3", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 3, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2000833571, + "hash2": 3916157739, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool4", + "type_name_2": "VfxExpressionValue_Bool4", + "qualified_name": "keen::VfxExpressionValue_Bool4", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2084721666, + "hash2": 2527713694, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Color", + "type_name_2": "VfxExpressionValue_Color", + "qualified_name": "keen::VfxExpressionValue_Color", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1407387025, + "hash2": 3887891842, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Quaternion", + "type_name_2": "VfxExpressionValue_Quaternion", + "qualified_name": "keen::VfxExpressionValue_Quaternion", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4159676022, + "hash2": 3325215184, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VfxNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2855053199, + "hash2": 221933127, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Particle", + "type_name_2": "VfxExpressionValue_Particle", + "qualified_name": "keen::VfxExpressionValue_Particle", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3685661920, + "hash2": 304594939, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2855053199, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Mesh", + "type_name_2": "VfxExpressionValue_Mesh", + "qualified_name": "keen::VfxExpressionValue_Mesh", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2767111095, + "hash2": 205742826, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Model", + "type_name_2": "VfxExpressionValue_Model", + "qualified_name": "keen::VfxExpressionValue_Model", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 527545307, + "hash2": 205742826, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Decal", + "type_name_2": "VfxExpressionValue_Decal", + "qualified_name": "keen::VfxExpressionValue_Decal", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4065648427, + "hash2": 595826588, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 1693923988, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Image", + "type_name_2": "VfxExpressionValue_Image", + "qualified_name": "keen::VfxExpressionValue_Image", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3597779779, + "hash2": 2016260050, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionType", + "type_name_2": "VfxExpressionType", + "qualified_name": "keen::VfxExpressionType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 392330500, + "hash2": 2005659478, + "struct_fields": [], + "enum_fields": [ + { + "name": "Expression", + "value": 0 + }, + { + "name": "Value", + "value": 1 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4122860416, + "hash2": 1775833400, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::VfxExpressionBase", + "class_size": 12, + "fields_count": 24, + "primitive_type": "BlobVariant", + "hash1": 3881382342, + "hash2": 3458590379, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterExpression", + "type_name_2": "VfxParameterExpression", + "qualified_name": "keen::VfxParameterExpression", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1647544895, + "hash2": 2960134698, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 4122860416, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::VfxExpressionType", + "type_hash": 392330500, + "data_offset": 16 + }, + { + "name": "expression", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 20 + }, + { + "name": "value", + "type_name": "keen::BlobVariant", + "type_hash": 3881382342, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2923902994, + "hash2": 483823015, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateExpression", + "type_name_2": "VfxStateExpression", + "qualified_name": "keen::VfxStateExpression", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4086334725, + "hash2": 2617826409, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ObjectReference", + "type_hash": 2923902994, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::VfxExpressionType", + "type_hash": 392330500, + "data_offset": 16 + }, + { + "name": "expression", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 20 + }, + { + "name": "value", + "type_name": "keen::BlobVariant", + "type_hash": 3881382342, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBase", + "type_name_2": "VfxEffectParameterBase", + "qualified_name": "keen::VfxEffectParameterBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 534593543, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat", + "type_name_2": "VfxEffectParameterFloat", + "qualified_name": "keen::VfxEffectParameterFloat", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1647837624, + "hash2": 1668861800, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat2", + "type_name_2": "VfxEffectParameterFloat2", + "qualified_name": "keen::VfxEffectParameterFloat2", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 673868862, + "hash2": 2428578789, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat3", + "type_name_2": "VfxEffectParameterFloat3", + "qualified_name": "keen::VfxEffectParameterFloat3", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 690646481, + "hash2": 3287616456, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat4", + "type_name_2": "VfxEffectParameterFloat4", + "qualified_name": "keen::VfxEffectParameterFloat4", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 707424100, + "hash2": 2051351403, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool", + "type_name_2": "VfxEffectParameterBool", + "qualified_name": "keen::VfxEffectParameterBool", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 569023558, + "hash2": 3671481465, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool2", + "type_name_2": "VfxEffectParameterBool2", + "qualified_name": "keen::VfxEffectParameterBool2", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3629402780, + "hash2": 2727866277, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool3", + "type_name_2": "VfxEffectParameterBool3", + "qualified_name": "keen::VfxEffectParameterBool3", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 3, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3646180399, + "hash2": 1097327700, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool4", + "type_name_2": "VfxEffectParameterBool4", + "qualified_name": "keen::VfxEffectParameterBool4", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3595847542, + "hash2": 734645349, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt", + "type_name_2": "VfxEffectParameterInt", + "qualified_name": "keen::VfxEffectParameterInt", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1494488275, + "hash2": 3565962190, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt2", + "type_name_2": "VfxEffectParameterInt2", + "qualified_name": "keen::VfxEffectParameterInt2", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 463265331, + "hash2": 3442129642, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt3", + "type_name_2": "VfxEffectParameterInt3", + "qualified_name": "keen::VfxEffectParameterInt3", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 446487712, + "hash2": 2180860504, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt4", + "type_name_2": "VfxEffectParameterInt4", + "qualified_name": "keen::VfxEffectParameterInt4", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 563931045, + "hash2": 75738559, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint", + "type_name_2": "VfxEffectParameterUint", + "qualified_name": "keen::VfxEffectParameterUint", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3993442326, + "hash2": 4170232902, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint2", + "type_name_2": "VfxEffectParameterUint2", + "qualified_name": "keen::VfxEffectParameterUint2", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3643474092, + "hash2": 1895095329, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint3", + "type_name_2": "VfxEffectParameterUint3", + "qualified_name": "keen::VfxEffectParameterUint3", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3660251711, + "hash2": 4158069503, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint4", + "type_name_2": "VfxEffectParameterUint4", + "qualified_name": "keen::VfxEffectParameterUint4", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3609918854, + "hash2": 2430303155, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterQuaternion", + "type_name_2": "VfxEffectParameterQuaternion", + "qualified_name": "keen::VfxEffectParameterQuaternion", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 397286194, + "hash2": 2051351403, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterColor", + "type_name_2": "VfxEffectParameterColor", + "qualified_name": "keen::VfxEffectParameterColor", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 916330813, + "hash2": 4272706685, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterGroup", + "type_name_2": "VfxEffectParameterGroup", + "qualified_name": "keen::VfxEffectParameterGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 242702941, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxGlobalEffectParameterDirectory", + "type_name_2": "VfxGlobalEffectParameterDirectory", + "qualified_name": "keen::VfxGlobalEffectParameterDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2893946422, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxGlobalEffectParameterInfo", + "type_name_2": "VfxGlobalEffectParameterInfo", + "qualified_name": "keen::VfxGlobalEffectParameterInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1801358123, + "hash2": 1823829794, + "struct_fields": [ + { + "name": "inheritanceKey", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "descriptionHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "typeNameHash", + "type_name": "keen::DsTypeId", + "type_hash": 967718650, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxGlobalEffectParameterInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxGlobalEffectParameterInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2823453262, + "hash2": 3292696660, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxGlobalEffectParameterRegistry", + "type_name_2": "VfxGlobalEffectParameterRegistry", + "qualified_name": "keen::VfxGlobalEffectParameterRegistry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3215766712, + "hash2": 1662356503, + "struct_fields": [ + { + "name": "parameters", + "type_name": "keen::BlobArray", + "type_hash": 2823453262, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::VfxEffectParameterBase", + "class_size": 12, + "fields_count": 19, + "primitive_type": "BlobVariant", + "hash1": 910501066, + "hash2": 1518721997, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInfo", + "type_name_2": "VfxEffectParameterInfo", + "qualified_name": "keen::VfxEffectParameterInfo", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3603534130, + "hash2": 184037469, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::VfxUserEffectParameterDescription", + "type_hash": 685008875, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::BlobVariant", + "type_hash": 910501066, + "data_offset": 36 + }, + { + "name": "registerOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxEffectParameterInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxEffectParameterInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 204473273, + "hash2": 4222907625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterInfos", + "type_name_2": "VfxUserEffectParameterInfos", + "qualified_name": "keen::VfxUserEffectParameterInfos", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1471321904, + "hash2": 1172360681, + "struct_fields": [ + { + "name": "parameters", + "type_name": "keen::BlobArray", + "type_hash": 204473273, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxProfileEntry", + "type_name_2": "VfxProfileEntry", + "qualified_name": "keen::VfxProfileEntry", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1183819693, + "hash2": 3234255017, + "struct_fields": [ + { + "name": "effectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "emitterGpuTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "particleGpuTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "chunkCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "dispatchCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "memoryUsage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxProfileEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxProfileEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2229391310, + "hash2": 3012653873, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxProfileMessage", + "type_name_2": "VfxProfileMessage", + "qualified_name": "keen::VfxProfileMessage", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1288812954, + "hash2": 2221061354, + "struct_fields": [ + { + "name": "frameId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "totalGpuTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "totalInstanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "totalMemoryUsage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "totalDispatchCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "viewId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "tickCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 2229391310, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::VfxStateDefinitionBase", + "class_size": 12, + "fields_count": 19, + "primitive_type": "BlobVariant", + "hash1": 569689590, + "hash2": 1120954830, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "float64", + "type_name_2": "float64", + "qualified_name": "keen::float64", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 0, + "primitive_type": "Float64", + "hash1": 1843348718, + "hash2": 2090339911, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParticleStateInfo", + "type_name_2": "vfx_converter.ParticleStateInfo", + "qualified_name": "keen::vfx_converter::ParticleStateInfo", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1832820736, + "hash2": 2434228644, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::BlobVariant", + "type_hash": 569689590, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 12 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 20 + }, + { + "name": "sortKey", + "type_name": "keen::float64", + "type_hash": 1843348718, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::VfxParameterDefinitionBase", + "class_size": 12, + "fields_count": 24, + "primitive_type": "BlobVariant", + "hash1": 1321289660, + "hash2": 2661084439, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "vfx_converter.ParticleParameterInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::vfx_converter::ParticleParameterInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3624366585, + "hash2": 1702514203, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParticleParameterInfo", + "type_name_2": "vfx_converter.ParticleParameterInfo", + "qualified_name": "keen::vfx_converter::ParticleParameterInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3335447738, + "hash2": 3913860120, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::BlobVariant", + "type_hash": 1321289660, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 12 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 20 + }, + { + "name": "sortKey", + "type_name": "keen::float64", + "type_hash": 1843348718, + "data_offset": 40 + }, + { + "name": "spawnParameters", + "type_name": "keen::BlobArray", + "type_hash": 3624366585, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "vfx_converter.ParticleStateInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::vfx_converter::ParticleStateInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3152731391, + "hash2": 2846365641, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParticleDefinitionInfo", + "type_name_2": "vfx_converter.ParticleDefinitionInfo", + "qualified_name": "keen::vfx_converter::ParticleDefinitionInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2547990598, + "hash2": 3737605753, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::BlobArray", + "type_hash": 3152731391, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::BlobArray", + "type_hash": 3624366585, + "data_offset": 8 + }, + { + "name": "isEmitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxConverterConfiguration", + "type_name_2": "VfxConverterConfiguration", + "qualified_name": "keen::VfxConverterConfiguration", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 556665060, + "hash2": 1898185584, + "struct_fields": [ + { + "name": "singleEffect", + "type_name": "keen::VfxReference", + "type_hash": 2742904987, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxNodeInfo", + "type_name_2": "VfxNodeInfo", + "qualified_name": "keen::VfxNodeInfo", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2552018210, + "hash2": 2235118732, + "struct_fields": [ + { + "name": "parentNodeId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "parentNodeDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "childNodeIds", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 32 + }, + { + "name": "isEnabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBufferEntry", + "type_name_2": "VfxBufferEntry", + "qualified_name": "keen::VfxBufferEntry", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 188334908, + "hash2": 3749026873, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 16 + }, + { + "name": "typeNameHash", + "type_name": "keen::DsTypeId", + "type_hash": 967718650, + "data_offset": 24 + }, + { + "name": "registerOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "sizeInRegisters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "hasCurveExpression", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "hlslTypeName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 40 + }, + { + "name": "componentTypeName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 48 + }, + { + "name": "componentCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxBufferEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxBufferEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 253207431, + "hash2": 3137679043, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxBufferInfo", + "type_name_2": "VfxBufferInfo", + "qualified_name": "keen::VfxBufferInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3745085988, + "hash2": 1954795792, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::BlobArray", + "type_hash": 253207431, + "data_offset": 0 + }, + { + "name": "sizeInRegisters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleDefinitionCurveExpression", + "type_name_2": "VfxParticleDefinitionCurveExpression", + "qualified_name": "keen::VfxParticleDefinitionCurveExpression", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1320354514, + "hash2": 2734545775, + "struct_fields": [ + { + "name": "curveId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "referencedParameterId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VfxParticleDefinitionCurveExpression[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VfxParticleDefinitionCurveExpression", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3047399965, + "hash2": 2064723595, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleDefinitionCurveExpressions", + "type_name_2": "VfxParticleDefinitionCurveExpressions", + "qualified_name": "keen::VfxParticleDefinitionCurveExpressions", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2228036467, + "hash2": 2187175164, + "struct_fields": [ + { + "name": "curves", + "type_name": "keen::BlobArray", + "type_hash": 3047399965, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterTypeIndices", + "type_name_2": "VfxParameterTypeIndices", + "qualified_name": "keen::VfxParameterTypeIndices", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 931563902, + "hash2": 3323249038, + "struct_fields": [ + { + "name": "types", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBaseEffectParameters", + "type_name_2": "VfxBaseEffectParameters", + "qualified_name": "keen::VfxBaseEffectParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4033461222, + "hash2": 1149775038, + "struct_fields": [ + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "startTime", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "scale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "isActive", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "cullingDistanceMin", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "cullingDistanceMax", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + }, + { + "name": "isHidden", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "age", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCombinedEffectParameters", + "type_name_2": "VfxCombinedEffectParameters", + "qualified_name": "keen::VfxCombinedEffectParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3312893504, + "hash2": 996251305, + "struct_fields": [ + { + "name": "base", + "type_name": "keen::VfxBaseEffectParameters", + "type_hash": 4033461222, + "data_offset": 0 + }, + { + "name": "user", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxMeshInfo", + "type_name_2": "VfxMeshInfo", + "qualified_name": "keen::VfxMeshInfo", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2682116307, + "hash2": 1960903376, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "packedPipelineIndices", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelInfo", + "type_name_2": "VfxModelInfo", + "qualified_name": "keen::VfxModelInfo", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2032756255, + "hash2": 1757547235, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "modelSizeFeedbackIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "firstMeshOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "meshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelInstanceTransform", + "type_name_2": "VfxModelInstanceTransform", + "qualified_name": "keen::VfxModelInstanceTransform", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3035921940, + "hash2": 3814433841, + "struct_fields": [ + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "packedPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelInstance", + "type_name_2": "VfxModelInstance", + "qualified_name": "keen::VfxModelInstance", + "referenced_type_name": null, + "class_size": 108, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 385938632, + "hash2": 1975921543, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::VfxModelInstanceTransform", + "type_hash": 3035921940, + "data_offset": 0 + }, + { + "name": "previousTransform", + "type_name": "keen::VfxModelInstanceTransform", + "type_hash": 3035921940, + "data_offset": 32 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "alpha", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "dissolveOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "dissolveRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "alphaClip", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "emissiveFactor", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxTerraformingCursorInstance", + "type_name_2": "VfxTerraformingCursorInstance", + "qualified_name": "keen::VfxTerraformingCursorInstance", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4277280275, + "hash2": 2686127524, + "struct_fields": [ + { + "name": "boxSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "sphereRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "isBox", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "uvOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "ringAlpha", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "ringAlphaClip", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "ringAlphaClipHalfRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + }, + { + "name": "fillAlpha", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "fillHardness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullingInstance", + "type_name_2": "VfxCullingInstance", + "qualified_name": "keen::VfxCullingInstance", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 609157925, + "hash2": 1171709159, + "struct_fields": [ + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "modelIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "instanceDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "instanceDataTypeId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "isDissolveActive", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelDrawData", + "type_name_2": "VfxModelDrawData", + "qualified_name": "keen::VfxModelDrawData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2264605945, + "hash2": 503838578, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxIntermediateDraw", + "type_name_2": "VfxIntermediateDraw", + "qualified_name": "keen::VfxIntermediateDraw", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1260863265, + "hash2": 2227622644, + "struct_fields": [ + { + "name": "meshCounterIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullingSubView", + "type_name_2": "VfxCullingSubView", + "qualified_name": "keen::VfxCullingSubView", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1752860393, + "hash2": 2894314298, + "struct_fields": [ + { + "name": "cameraCenteredFrustum", + "type_name": "keen::GpuCullingFrustum", + "type_hash": 3873194566, + "data_offset": 0 + }, + { + "name": "minObjectSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullingPassConstants", + "type_name_2": "VfxCullingPassConstants", + "qualified_name": "keen::VfxCullingPassConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1635575652, + "hash2": 1122630383, + "struct_fields": [ + { + "name": "subViewIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "normalPipelineShift", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "dissolvePipelineShift", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "firstBatchIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VfxCullingSubView[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::VfxCullingSubView", + "class_size": 1008, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 753248558, + "hash2": 2426957481, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VfxCullingPassConstants[10]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::VfxCullingPassConstants", + "class_size": 160, + "fields_count": 10, + "primitive_type": "StaticArray", + "hash1": 2190057259, + "hash2": 1302026549, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullInstancesConstants", + "type_name_2": "VfxCullInstancesConstants", + "qualified_name": "keen::VfxCullInstancesConstants", + "referenced_type_name": null, + "class_size": 1328, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2832577879, + "hash2": 2963810234, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 753248558, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 2190057259, + "data_offset": 1008 + }, + { + "name": "subViewCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1168 + }, + { + "name": "passCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1172 + }, + { + "name": "maxDrawCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1176 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1180 + }, + { + "name": "useOcclusionCulling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1184 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 1188 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 1200 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::GpuOcclusionCullingShaderData", + "type_hash": 3965163726, + "data_offset": 1248 + }, + { + "name": "modelSizeFeedbackPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 1312 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxWriteCulledDrawCommandsPushConstants", + "type_name_2": "VfxWriteCulledDrawCommandsPushConstants", + "qualified_name": "keen::VfxWriteCulledDrawCommandsPushConstants", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 364096289, + "hash2": 3654778192, + "struct_fields": [ + { + "name": "firstBatchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "pipelineCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreloadVfxList", + "type_name_2": "PreloadVfxList", + "qualified_name": "keen::PreloadVfxList", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1606134881, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PreloadVfxListResource", + "type_name_2": "PreloadVfxListResource", + "qualified_name": "keen::PreloadVfxListResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3549977089, + "hash2": 1878292883, + "struct_fields": [ + { + "name": "vfxIds", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialVfxDataResource", + "type_name_2": "VoxelMaterialVfxDataResource", + "qualified_name": "keen::VoxelMaterialVfxDataResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 691299489, + "hash2": 3792486764, + "struct_fields": [ + { + "name": "materialType", + "type_name": "keen::BlobArray", + "type_hash": 1369584269, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuImage2D", + "type_name_2": "GpuImage2D", + "qualified_name": "keen::GpuImage2D", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2082804615, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuImage3D", + "type_name_2": "GpuImage3D", + "qualified_name": "keen::GpuImage3D", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1310887046, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSampler", + "type_name_2": "GpuSampler", + "qualified_name": "keen::GpuSampler", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 952427028, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCombinedImage2D", + "type_name_2": "GpuCombinedImage2D", + "qualified_name": "keen::GpuCombinedImage2D", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1142618830, + "hash2": 1749344749, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::GpuImage2D", + "type_hash": 2082804615, + "data_offset": 0 + }, + { + "name": "sampler", + "type_name": "keen::GpuSampler", + "type_hash": 952427028, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCombinedImage3D", + "type_name_2": "GpuCombinedImage3D", + "qualified_name": "keen::GpuCombinedImage3D", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4062071631, + "hash2": 1749344749, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::GpuImage3D", + "type_hash": 1310887046, + "data_offset": 0 + }, + { + "name": "sampler", + "type_name": "keen::GpuSampler", + "type_hash": 952427028, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuMesh", + "type_name_2": "GpuMesh", + "qualified_name": "keen::GpuMesh", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 112736809, + "hash2": 1056489918, + "struct_fields": [ + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuMeshVertex", + "type_name_2": "GpuMeshVertex", + "qualified_name": "keen::GpuMeshVertex", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3355686683, + "hash2": 3277968298, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "uv", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDecal", + "type_name_2": "GpuDecal", + "qualified_name": "keen::GpuDecal", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2975458425, + "hash2": 1614477319, + "struct_fields": [ + { + "name": "materialDataIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCurve", + "type_name_2": "GpuCurve", + "qualified_name": "keen::GpuCurve", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2916054895, + "hash2": 1267300887, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sampleCountMinusOne", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "startTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "inverseTotalTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "inverseSampleDelta", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBaseParticleState", + "type_name_2": "VfxBaseParticleState", + "qualified_name": "keen::VfxBaseParticleState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 668991758, + "hash2": 851200531, + "struct_fields": [ + { + "name": "myParentEmitterIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rngState", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "tickCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEmitterState", + "type_name_2": "VfxEmitterState", + "qualified_name": "keen::VfxEmitterState", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3489234465, + "hash2": 2923194273, + "struct_fields": [ + { + "name": "particleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "spawnCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "maxParticleCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "maxSpawnCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "particleChunkIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "particleTypeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxChunkState", + "type_name_2": "VfxChunkState", + "qualified_name": "keen::VfxChunkState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2000023740, + "hash2": 1716094370, + "struct_fields": [ + { + "name": "freeParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "currentActiveParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "nextActiveParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "float4[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::float4", + "class_size": 256, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 2394267985, + "hash2": 2350642609, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxUpdateBuffer", + "type_name_2": "VfxUpdateBuffer", + "qualified_name": "keen::VfxUpdateBuffer", + "referenced_type_name": null, + "class_size": 1232, + "fields_count": 44, + "primitive_type": "Struct", + "hash1": 2388088653, + "hash2": 3795190071, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "fixedTimeStep", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "realTimeStep", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "currentTickId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "transparentInstanceBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "transparentInstanceCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "injectInstanceBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "injectInstanceCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "pointLightBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "pointLightCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "decalBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "decalCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "grassMovementBodyCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "grassMovementBodyListCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "timeOfDay", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 80 + }, + { + "name": "cameraOrientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "frustumPlanes", + "type_name": "keen::StaticArray", + "type_hash": 1094189225, + "data_offset": 112 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 192 + }, + { + "name": "sunDirectLightFadeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "moonDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 208 + }, + { + "name": "moonDirectLightFadeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "skipInjectSort", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 224 + }, + { + "name": "worldChunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 228 + }, + { + "name": "useParallelRadixSort", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 232 + }, + { + "name": "dynamicHeightmap", + "type_name": "keen::DynamicHeightmapSamplingShaderData", + "type_hash": 720730302, + "data_offset": 240 + }, + { + "name": "isDynamicHeightmapValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 272 + }, + { + "name": "sdfCascadeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 276 + }, + { + "name": "firstSdfImageIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 280 + }, + { + "name": "sdfInvGridSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 284 + }, + { + "name": "isSdfBvhValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 288 + }, + { + "name": "fogGrid", + "type_name": "keen::VolumetricFogGridShaderData", + "type_hash": 2062480343, + "data_offset": 304 + }, + { + "name": "playerCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 800 + }, + { + "name": "playerPositions", + "type_name": "keen::StaticArray", + "type_hash": 2394267985, + "data_offset": 816 + }, + { + "name": "maxCullingInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1072 + }, + { + "name": "maxModelInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1076 + }, + { + "name": "maxTerraformingCursorInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1080 + }, + { + "name": "hideSpiders", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1084 + }, + { + "name": "snowDisplacementBodyCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1088 + }, + { + "name": "snowDisplacementBodyListCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1092 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::WeatherSampleConstants", + "type_hash": 1964124433, + "data_offset": 1104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxPushConstants", + "type_name_2": "VfxPushConstants", + "qualified_name": "keen::VfxPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3895617079, + "hash2": 598501721, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxPrepareBuffer", + "type_name_2": "VfxPrepareBuffer", + "qualified_name": "keen::VfxPrepareBuffer", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 244456179, + "hash2": 3098058296, + "struct_fields": [ + { + "name": "emitterCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxWorldChunk", + "type_name_2": "VfxWorldChunk", + "qualified_name": "keen::VfxWorldChunk", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4031017223, + "hash2": 1216338882, + "struct_fields": [ + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "indexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSortData", + "type_name_2": "GpuSortData", + "qualified_name": "keen::GpuSortData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4086305480, + "hash2": 407993874, + "struct_fields": [ + { + "name": "highSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "lowSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSortShaderData", + "type_name_2": "GpuSortShaderData", + "qualified_name": "keen::GpuSortShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2212338961, + "hash2": 3237547742, + "struct_fields": [ + { + "name": "elementCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSortWritebackShaderData", + "type_name_2": "GpuSortWritebackShaderData", + "qualified_name": "keen::GpuSortWritebackShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1612387017, + "hash2": 533530118, + "struct_fields": [ + { + "name": "elementCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxChunkUpdateBuffer2", + "type_name_2": "VfxChunkUpdateBuffer2", + "qualified_name": "keen::VfxChunkUpdateBuffer2", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 2227398050, + "hash2": 150153558, + "struct_fields": [ + { + "name": "particleTypeParametersOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "activeParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "nextActiveParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "freeParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "particleStatesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "oldActiveParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "newActiveParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "freeParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "parentStatesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "oldActiveParentParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "childParticleStatesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "childParticleFreeListOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "childActiveParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "chunkId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "explicitPad1", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ViewReprojectionData", + "type_name_2": "ViewReprojectionData", + "qualified_name": "keen::ViewReprojectionData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1971585811, + "hash2": 1761583070, + "struct_fields": [ + { + "name": "ndcToPreviousNdcMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2DownsampleDepthParameters", + "type_name_2": "Fog2DownsampleDepthParameters", + "qualified_name": "keen::Fog2DownsampleDepthParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1289156227, + "hash2": 1268869337, + "struct_fields": [ + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2MinMaxDepthParameters", + "type_name_2": "Fog2MinMaxDepthParameters", + "qualified_name": "keen::Fog2MinMaxDepthParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1590882935, + "hash2": 1668296327, + "struct_fields": [ + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "tileSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2SampleSkyParameters", + "type_name_2": "Fog2SampleSkyParameters", + "qualified_name": "keen::Fog2SampleSkyParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 786561631, + "hash2": 3362617853, + "struct_fields": [ + { + "name": "cloudLayerY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "planetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CloudsErosionParameters", + "type_name_2": "Fog2CloudsErosionParameters", + "qualified_name": "keen::Fog2CloudsErosionParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2481236003, + "hash2": 536250805, + "struct_fields": [ + { + "name": "scrollSpeed", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "tilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "heightTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "noiseTextureIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CloudsParameters", + "type_name_2": "Fog2CloudsParameters", + "qualified_name": "keen::Fog2CloudsParameters", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3593956586, + "hash2": 1241884379, + "struct_fields": [ + { + "name": "yRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "invYRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "texcoordMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "cloudTypes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "erosionPass0", + "type_name": "keen::Fog2CloudsErosionParameters", + "type_hash": 2481236003, + "data_offset": 32 + }, + { + "name": "erosionPass1", + "type_name": "keen::Fog2CloudsErosionParameters", + "type_hash": 2481236003, + "data_offset": 64 + }, + { + "name": "erosionPass2", + "type_name": "keen::Fog2CloudsErosionParameters", + "type_hash": 2481236003, + "data_offset": 96 + }, + { + "name": "emission", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "inScatteringDivExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 144 + }, + { + "name": "extinctionLn2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderSkyParameters", + "type_name_2": "Fog2RenderSkyParameters", + "qualified_name": "keen::Fog2RenderSkyParameters", + "referenced_type_name": null, + "class_size": 544, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3750478093, + "hash2": 2439924982, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "ditherPatternOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + }, + { + "name": "rayMarchSampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "lightFactorSun", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 164 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 176 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 180 + }, + { + "name": "cloudsLight", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 192 + }, + { + "name": "skyLight0", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 224 + }, + { + "name": "skyLight1", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 256 + }, + { + "name": "atmosphere", + "type_name": "keen::AtmosphereShaderData", + "type_hash": 2465199211, + "data_offset": 288 + }, + { + "name": "clouds", + "type_name": "keen::Fog2CloudsParameters", + "type_hash": 3593956586, + "data_offset": 352 + }, + { + "name": "sky", + "type_name": "keen::Fog2SampleSkyParameters", + "type_hash": 786561631, + "data_offset": 512 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 528 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2BlurSkyParameters", + "type_name_2": "Fog2BlurSkyParameters", + "qualified_name": "keen::Fog2BlurSkyParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2185391470, + "hash2": 1891436117, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfSkyParameters", + "type_name_2": "Fog2TfSkyParameters", + "qualified_name": "keen::Fog2TfSkyParameters", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2383469979, + "hash2": 1640622421, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + }, + { + "name": "sky", + "type_name": "keen::Fog2SampleSkyParameters", + "type_hash": 786561631, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudsSampleConstants", + "type_name_2": "CloudsSampleConstants", + "qualified_name": "keen::CloudsSampleConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2458090019, + "hash2": 1525261311, + "struct_fields": [ + { + "name": "texcoordMappingScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "texcoordMappingOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2SampleParameters", + "type_name_2": "Fog2SampleParameters", + "qualified_name": "keen::Fog2SampleParameters", + "referenced_type_name": null, + "class_size": 3424, + "fields_count": 48, + "primitive_type": "Struct", + "hash1": 782223038, + "hash2": 1126173658, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ForwardDirectionalLightData", + "type_hash": 1304676027, + "data_offset": 80 + }, + { + "name": "enableWeather", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::WeatherSampleConstants", + "type_hash": 1964124433, + "data_offset": 128 + }, + { + "name": "cloudsSampleConstants", + "type_name": "keen::CloudsSampleConstants", + "type_hash": 2458090019, + "data_offset": 256 + }, + { + "name": "atmosphere", + "type_name": "keen::AtmosphereShaderData", + "type_hash": 2465199211, + "data_offset": 272 + }, + { + "name": "volumetricShadow", + "type_name": "keen::VolumetricShadowRuntimeData", + "type_hash": 2162928446, + "data_offset": 336 + }, + { + "name": "shadowAtlas", + "type_name": "keen::RenderShadowAtlasShaderData", + "type_hash": 2144946804, + "data_offset": 576 + }, + { + "name": "fogGrid", + "type_name": "keen::VolumetricFogGridShaderData", + "type_hash": 2062480343, + "data_offset": 1664 + }, + { + "name": "fogGridSdf", + "type_name": "keen::SdfShaderData", + "type_hash": 657967168, + "data_offset": 2160 + }, + { + "name": "grassMovement", + "type_name": "keen::GrassMovementData", + "type_hash": 2409518953, + "data_offset": 2176 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2208 + }, + { + "name": "lightFactorEmissive", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2212 + }, + { + "name": "lightFactorSun", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2224 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2240 + }, + { + "name": "lightFactorPointLights", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2252 + }, + { + "name": "giFroxelParameters", + "type_name": "keen::GiAmbientFroxelVolumeParameters", + "type_hash": 2546676182, + "data_offset": 2256 + }, + { + "name": "lightFactorGi", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2320 + }, + { + "name": "surfaceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2324 + }, + { + "name": "surfaceWidthFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2332 + }, + { + "name": "surfaceNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2336 + }, + { + "name": "surfaceNoiseScaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2340 + }, + { + "name": "surfaceNoiseDescriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2344 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2352 + }, + { + "name": "worldSdf", + "type_name": "keen::SdfShaderData", + "type_hash": 657967168, + "data_offset": 2400 + }, + { + "name": "worldHeightPositionMapping", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2416 + }, + { + "name": "groundFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2420 + }, + { + "name": "groundGradientFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2432 + }, + { + "name": "groundHeightFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2440 + }, + { + "name": "groundNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2444 + }, + { + "name": "groundNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2448 + }, + { + "name": "groundNoiseDescriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2452 + }, + { + "name": "groundMaterialAbove", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2464 + }, + { + "name": "groundMaterialBelow", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2512 + }, + { + "name": "heightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2560 + }, + { + "name": "forestExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2564 + }, + { + "name": "heightFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2568 + }, + { + "name": "forestFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2576 + }, + { + "name": "heightMaterial", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2592 + }, + { + "name": "forestMaterial", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2640 + }, + { + "name": "rainMaterial", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2688 + }, + { + "name": "snowMaterial", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2736 + }, + { + "name": "blizzardMaterial", + "type_name": "keen::VolumetricFogGridMaterial", + "type_hash": 3154989435, + "data_offset": 2784 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2832 + }, + { + "name": "voxelWorldShadowMap", + "type_name": "keen::VoxelWorldShadowMapShaderData", + "type_hash": 1856726557, + "data_offset": 2848 + }, + { + "name": "isGiEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3008 + }, + { + "name": "ambientProbesLookupData", + "type_name": "keen::GiAmbientProbesLookupData", + "type_hash": 1809388635, + "data_offset": 3024 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderParameters", + "type_name_2": "Fog2RenderParameters", + "qualified_name": "keen::Fog2RenderParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3314704088, + "hash2": 2289499231, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "sky", + "type_name": "keen::Fog2SampleSkyParameters", + "type_hash": 786561631, + "data_offset": 80 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderBlurResultParameters", + "type_name_2": "Fog2RenderBlurResultParameters", + "qualified_name": "keen::Fog2RenderBlurResultParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2552132016, + "hash2": 1139156457, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TemporalBlendResultParameters", + "type_name_2": "Fog2TemporalBlendResultParameters", + "qualified_name": "keen::Fog2TemporalBlendResultParameters", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2164694956, + "hash2": 2008503685, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "oldDepthDifferenceWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2InitializeShadowVolumeParameters", + "type_name_2": "Fog2InitializeShadowVolumeParameters", + "qualified_name": "keen::Fog2InitializeShadowVolumeParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2361708728, + "hash2": 545173382, + "struct_fields": [ + { + "name": "shadowVolumeResolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "invShadowVolumeResolution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "injectInstanceCounterByteOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "shadowCascadeToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateShadowVolumeCascadeParameters", + "type_name_2": "Fog2IntegrateShadowVolumeCascadeParameters", + "qualified_name": "keen::Fog2IntegrateShadowVolumeCascadeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 671092941, + "hash2": 4176433855, + "struct_fields": [ + { + "name": "shadowVolumeResolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "invShadowVolumeResolution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "shadowCascadeToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "worldToNextShadowCascadeMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "dk", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateLastShadowVolumeCascadeParameters", + "type_name_2": "Fog2IntegrateLastShadowVolumeCascadeParameters", + "qualified_name": "keen::Fog2IntegrateLastShadowVolumeCascadeParameters", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 98016973, + "hash2": 2415214755, + "struct_fields": [ + { + "name": "shadowVolumeResolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "invShadowVolumeResolution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "shadowCascadeToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "dk", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "volumetricShadow", + "type_name": "keen::VolumetricShadowRuntimeData", + "type_hash": 2162928446, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2WriteShadowViewVolumeParameters", + "type_name_2": "Fog2WriteShadowViewVolumeParameters", + "qualified_name": "keen::Fog2WriteShadowViewVolumeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2636225580, + "hash2": 1380479474, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfShadowViewVolumeParameters", + "type_name_2": "Fog2TfShadowViewVolumeParameters", + "qualified_name": "keen::Fog2TfShadowViewVolumeParameters", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3421645249, + "hash2": 1050933338, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "oldViewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2WriteScatteredLightVolumeParameters", + "type_name_2": "Fog2WriteScatteredLightVolumeParameters", + "qualified_name": "keen::Fog2WriteScatteredLightVolumeParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1156002000, + "hash2": 1502247738, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "isShadowViewVolumeValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfScatteredLightVolumeParameters", + "type_name_2": "Fog2TfScatteredLightVolumeParameters", + "qualified_name": "keen::Fog2TfScatteredLightVolumeParameters", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 41121241, + "hash2": 1588533277, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "oldViewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2InitializeParticipatingMediaVolumeParameters", + "type_name_2": "Fog2InitializeParticipatingMediaVolumeParameters", + "qualified_name": "keen::Fog2InitializeParticipatingMediaVolumeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2363664209, + "hash2": 2226076651, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "injectInstanceCounterByteOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2WriteViewVolumeSourceTermParameters", + "type_name_2": "Fog2WriteViewVolumeSourceTermParameters", + "qualified_name": "keen::Fog2WriteViewVolumeSourceTermParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2782529543, + "hash2": 3657674492, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 120 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 128 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 132 + }, + { + "name": "isShadowViewVolumeValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "isScatteredLightVolumeValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfViewVolumeParameters", + "type_name_2": "Fog2TfViewVolumeParameters", + "qualified_name": "keen::Fog2TfViewVolumeParameters", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3304797081, + "hash2": 1588533277, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "oldViewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateViewVolumeParameters", + "type_name_2": "Fog2IntegrateViewVolumeParameters", + "qualified_name": "keen::Fog2IntegrateViewVolumeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 216324672, + "hash2": 2258188406, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateViewVolume2Parameters", + "type_name_2": "Fog2IntegrateViewVolume2Parameters", + "qualified_name": "keen::Fog2IntegrateViewVolume2Parameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2704971418, + "hash2": 1102362908, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "windTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderFogGridIntersectionsParameters", + "type_name_2": "Fog2RenderFogGridIntersectionsParameters", + "qualified_name": "keen::Fog2RenderFogGridIntersectionsParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1926275462, + "hash2": 1800780601, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "sky", + "type_name": "keen::Fog2SampleSkyParameters", + "type_hash": 786561631, + "data_offset": 80 + }, + { + "name": "fogGridMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "fogGridMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "maxStepCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderWeatherMapIntersectionsParameters", + "type_name_2": "Fog2RenderWeatherMapIntersectionsParameters", + "qualified_name": "keen::Fog2RenderWeatherMapIntersectionsParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2233471972, + "hash2": 2774553628, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "sky", + "type_name": "keen::Fog2SampleSkyParameters", + "type_hash": 786561631, + "data_offset": 80 + }, + { + "name": "weatherMapMin", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 96 + }, + { + "name": "weatherMapMax", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 104 + }, + { + "name": "weatherMapVoxelSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 112 + }, + { + "name": "maxStepCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "enableWeather", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderRaymarchParameters", + "type_name_2": "Fog2RenderRaymarchParameters", + "qualified_name": "keen::Fog2RenderRaymarchParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4154049659, + "hash2": 340416642, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 80 + }, + { + "name": "sky", + "type_name": "keen::Fog2SampleSkyParameters", + "type_hash": 786561631, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeViewVolumeDebugParameters", + "type_name_2": "Fog2CompositeViewVolumeDebugParameters", + "qualified_name": "keen::Fog2CompositeViewVolumeDebugParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1493897323, + "hash2": 1205109692, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 80 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::Fog2ViewVolumeTransform", + "type_hash": 3033169385, + "data_offset": 144 + }, + { + "name": "viewVolumeViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 160 + }, + { + "name": "viewVolumeInvViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 224 + }, + { + "name": "dk", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderUpscaleResultParameters", + "type_name_2": "Fog2RenderUpscaleResultParameters", + "qualified_name": "keen::Fog2RenderUpscaleResultParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3706203152, + "hash2": 309443095, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TestParameters", + "type_name_2": "Fog2TestParameters", + "qualified_name": "keen::Fog2TestParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3418502596, + "hash2": 388805256, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeFlag", + "type_name_2": "Fog2CompositeFlag", + "qualified_name": "keen::Fog2CompositeFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 833987305, + "hash2": 2957553176, + "struct_fields": [], + "enum_fields": [ + { + "name": "Sky", + "value": 0 + }, + { + "name": "Result", + "value": 1 + }, + { + "name": "ViewVolume", + "value": 2 + }, + { + "name": "ViewVolumeDither", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::Fog2CompositeFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 2796500672, + "hash2": 1448006830, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeFlags", + "type_name_2": "Fog2CompositeFlags", + "qualified_name": "keen::Fog2CompositeFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3673094254, + "hash2": 3192661405, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeParameters", + "type_name_2": "Fog2CompositeParameters", + "qualified_name": "keen::Fog2CompositeParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 547362655, + "hash2": 3577933862, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "sampleParameters", + "type_name": "keen::Fog2ViewVolumeSampleParameters", + "type_hash": 3003647689, + "data_offset": 32 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2DebugBlitParameters", + "type_name_2": "Fog2DebugBlitParameters", + "qualified_name": "keen::Fog2DebugBlitParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2571104636, + "hash2": 3036896114, + "struct_fields": [ + { + "name": "blitOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "blitSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFog2ResourceData", + "type_name_2": "VolumetricFog2ResourceData", + "qualified_name": "keen::VolumetricFog2ResourceData", + "referenced_type_name": null, + "class_size": 360, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 1286373824, + "hash2": 3724820699, + "struct_fields": [ + { + "name": "initializationMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 2824321436, + "data_offset": 0 + }, + { + "name": "atmosphere", + "type_name": "keen::ObjectReference", + "type_hash": 3140740793, + "data_offset": 16 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 32 + }, + { + "name": "surfaceWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "surfaceNoise", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 64 + }, + { + "name": "surfaceNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "surfaceNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "surfaceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 88 + }, + { + "name": "groundHeightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "groundMaterialAbove", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 100 + }, + { + "name": "groundMaterialBelow", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 128 + }, + { + "name": "groundFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 156 + }, + { + "name": "groundGradientFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 164 + }, + { + "name": "groundNoise", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 172 + }, + { + "name": "groundNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "groundNoiseFlowSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "heightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "heightMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 200 + }, + { + "name": "heightFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 228 + }, + { + "name": "forestExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + }, + { + "name": "forestMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 240 + }, + { + "name": "forestFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 268 + }, + { + "name": "rainMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 276 + }, + { + "name": "snowMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 304 + }, + { + "name": "blizzardMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 332 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFog2Resource", + "type_name_2": "VolumetricFog2Resource", + "qualified_name": "keen::VolumetricFog2Resource", + "referenced_type_name": null, + "class_size": 688, + "fields_count": 29, + "primitive_type": "Struct", + "hash1": 3731527160, + "hash2": 1795294680, + "struct_fields": [ + { + "name": "sampleSkyParameters", + "type_name": "keen::Fog2SampleSkyParameters", + "type_hash": 786561631, + "data_offset": 0 + }, + { + "name": "cloudParameters", + "type_name": "keen::Fog2CloudsParameters", + "type_hash": 3593956586, + "data_offset": 16 + }, + { + "name": "cloudTypes", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 176 + }, + { + "name": "cloudErosionPass0", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 212 + }, + { + "name": "cloudErosionPass1", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 248 + }, + { + "name": "cloudErosionPass2", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 284 + }, + { + "name": "surfaceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 320 + }, + { + "name": "surfaceWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 328 + }, + { + "name": "surfaceNoise", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 332 + }, + { + "name": "surfaceNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 368 + }, + { + "name": "surfaceNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 372 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 376 + }, + { + "name": "groundHeightFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 404 + }, + { + "name": "groundMaterialAbove", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 408 + }, + { + "name": "groundMaterialBelow", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 436 + }, + { + "name": "groundFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 464 + }, + { + "name": "groundGradientFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 472 + }, + { + "name": "groundNoise", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 480 + }, + { + "name": "groundNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 516 + }, + { + "name": "groundNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 520 + }, + { + "name": "heightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 524 + }, + { + "name": "heightMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 528 + }, + { + "name": "heightFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 556 + }, + { + "name": "forestExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 564 + }, + { + "name": "forestMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 568 + }, + { + "name": "forestFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 596 + }, + { + "name": "rainMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 604 + }, + { + "name": "snowMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 632 + }, + { + "name": "blizzardMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 660 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "Matrix43[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::Matrix43", + "class_size": 256, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 1416396990, + "hash2": 1071542280, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ShadowVolumeTransformMatrices", + "type_name_2": "Fog2ShadowVolumeTransformMatrices", + "qualified_name": "keen::Fog2ShadowVolumeTransformMatrices", + "referenced_type_name": "keen::StaticArray", + "class_size": 256, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3278002546, + "hash2": 1664714252, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridRenderParameters", + "type_name_2": "VolumetricFogGridRenderParameters", + "qualified_name": "keen::VolumetricFogGridRenderParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3185457514, + "hash2": 3755056099, + "struct_fields": [ + { + "name": "noneMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 0 + }, + { + "name": "dangerousMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 28 + }, + { + "name": "deadlyMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 56 + }, + { + "name": "decorativeMaterial", + "type_name": "keen::FogMaterialParameters", + "type_hash": 346799499, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridUpdateShaderData", + "type_name_2": "VolumetricFogGridUpdateShaderData", + "qualified_name": "keen::VolumetricFogGridUpdateShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3407054394, + "hash2": 3836815579, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "bufferOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GroundFogParameters", + "type_name_2": "GroundFogParameters", + "qualified_name": "keen::GroundFogParameters", + "referenced_type_name": "keen::FogMaterialParameters", + "class_size": 68, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2113827787, + "hash2": 1426037418, + "struct_fields": [ + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "angleFadeoutPosition", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "angleFadeoutRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "sdfGradientEpsilon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "flowSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "noise", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 48 + }, + { + "name": "noiseTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudErosionPass", + "type_name_2": "CloudErosionPass", + "qualified_name": "keen::CloudErosionPass", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2804749421, + "hash2": 4230475479, + "struct_fields": [ + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "heightTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "scrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "noise", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudParameters", + "type_name_2": "CloudParameters", + "qualified_name": "keen::CloudParameters", + "referenced_type_name": "keen::FogMaterialParameters", + "class_size": 184, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2504890827, + "hash2": 1584137549, + "struct_fields": [ + { + "name": "yMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "yMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "cloudMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 36 + }, + { + "name": "cloudTypes", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 52 + }, + { + "name": "erosionPass0", + "type_name": "keen::CloudErosionPass", + "type_hash": 2804749421, + "data_offset": 68 + }, + { + "name": "erosionPass1", + "type_name": "keen::CloudErosionPass", + "type_hash": 2804749421, + "data_offset": 100 + }, + { + "name": "erosionPass2", + "type_name": "keen::CloudErosionPass", + "type_hash": 2804749421, + "data_offset": 132 + }, + { + "name": "shadowStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "shadowStrengthSlope", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + }, + { + "name": "shadowStrengthOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 172 + }, + { + "name": "fadeoutStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 176 + }, + { + "name": "fadeoutRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogInitializationMaterial", + "type_name_2": "VolumetricFogInitializationMaterial", + "qualified_name": "keen::VolumetricFogInitializationMaterial", + "referenced_type_name": null, + "class_size": 252, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3908035991, + "hash2": 1914232082, + "struct_fields": [ + { + "name": "ground", + "type_name": "keen::GroundFogParameters", + "type_hash": 2113827787, + "data_offset": 0 + }, + { + "name": "clouds", + "type_name": "keen::CloudParameters", + "type_hash": 2504890827, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudLayerShadowParameterBlockData", + "type_name_2": "CloudLayerShadowParameterBlockData", + "qualified_name": "keen::CloudLayerShadowParameterBlockData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 698568512, + "hash2": 1179627517, + "struct_fields": [ + { + "name": "yMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "yMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "invYRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "shadowStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "shadowSampleMap", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnalyticFogShadowParameterBlock", + "type_name_2": "AnalyticFogShadowParameterBlock", + "qualified_name": "keen::AnalyticFogShadowParameterBlock", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3947491967, + "hash2": 2999829893, + "struct_fields": [ + { + "name": "clouds", + "type_name": "keen::CloudLayerShadowParameterBlockData", + "type_hash": 698568512, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnalyticFogResource", + "type_name_2": "AnalyticFogResource", + "qualified_name": "keen::AnalyticFogResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2955607343, + "hash2": 4135090684, + "struct_fields": [ + { + "name": "analyticFogShadowParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 0 + }, + { + "name": "cloudMap", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogInjectionShape", + "type_name_2": "VolumetricFogInjectionShape", + "qualified_name": "keen::VolumetricFogInjectionShape", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 213576184, + "hash2": 3498447587, + "struct_fields": [], + "enum_fields": [ + { + "name": "Box", + "value": 0 + }, + { + "name": "Sphere", + "value": 1 + } + ] + }, + { + "type_name_1": "VolumetricFogInjectInstanceData", + "type_name_2": "VolumetricFogInjectInstanceData", + "qualified_name": "keen::VolumetricFogInjectInstanceData", + "referenced_type_name": null, + "class_size": 116, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 2155625424, + "hash2": 3451940500, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "shape", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "rotation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "densityTexture", + "type_name": "keen::BindlessTexture3D_float", + "type_hash": 2581587761, + "data_offset": 48 + }, + { + "name": "densityTextureSampler", + "type_name": "keen::BindlessSampler", + "type_hash": 3266652824, + "data_offset": 52 + }, + { + "name": "falloff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "uvOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 60 + }, + { + "name": "uvScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "emission", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 84 + }, + { + "name": "extinction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "scattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 100 + }, + { + "name": "g", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSampleFlag", + "type_name_2": "WeatherSampleFlag", + "qualified_name": "keen::WeatherSampleFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2132009062, + "hash2": 973900836, + "struct_fields": [], + "enum_fields": [ + { + "name": "EnableDynamicWetness", + "value": 1 + }, + { + "name": "ApplyWeather", + "value": 2 + } + ] + }, + { + "type_name_1": "VoxelMaterialList", + "type_name_2": "VoxelMaterialList", + "qualified_name": "keen::VoxelMaterialList", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1867987539, + "hash2": 4294092812, + "struct_fields": [ + { + "name": "defaultTerrainMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1870839069, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialReference", + "type_name_2": "VoxelMaterialReference", + "qualified_name": "keen::VoxelMaterialReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3695282416, + "hash2": 1944722722, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::PbrMaterialParameters", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3477633764, + "hash2": 3925381489, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialLayer", + "type_name_2": "TerrainMaterialLayer", + "qualified_name": "keen::TerrainMaterialLayer", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1964547267, + "hash2": 2658634983, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 3477633764, + "data_offset": 0 + }, + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "enableSeparateTilingSizeY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "tilingSizeY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "parallaxDepth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "parallaxMinLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "parallaxMaxLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "parallaxFadeoutStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "parallaxFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "parallaxMinAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "parallaxAngleFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "displacement", + "type_name": "keen::PbrTerrainMaterialDisplacementLayer", + "type_hash": 2331995270, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialOverlayBlendLayer", + "type_name_2": "TerrainMaterialOverlayBlendLayer", + "qualified_name": "keen::TerrainMaterialOverlayBlendLayer", + "referenced_type_name": "keen::TerrainMaterialLayer", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1019652742, + "hash2": 3317508830, + "struct_fields": [ + { + "name": "fadeInDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "fadeInRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialDetailBlendLayer", + "type_name_2": "TerrainMaterialDetailBlendLayer", + "qualified_name": "keen::TerrainMaterialDetailBlendLayer", + "referenced_type_name": "keen::TerrainMaterialOverlayBlendLayer", + "class_size": 84, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2419403339, + "hash2": 3119997919, + "struct_fields": [ + { + "name": "maxOpacity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "maxOpacityNormal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "mode", + "type_name": "keen::PbrTerrainMaterialDetailNormalBlendMode", + "type_hash": 50842972, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialColorVariation", + "type_name_2": "TerrainMaterialColorVariation", + "qualified_name": "keen::TerrainMaterialColorVariation", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 44782610, + "hash2": 2730489200, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "enableMidPoint", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "start", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 24 + }, + { + "name": "mid", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 28 + }, + { + "name": "end", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + }, + { + "name": "midPosition", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MappingDirection", + "type_name_2": "WorldMaterialBlending2MappingDirection", + "qualified_name": "keen::WorldMaterialBlending2MappingDirection", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 787566443, + "hash2": 3680987288, + "struct_fields": [], + "enum_fields": [ + { + "name": "Side", + "value": 1 + }, + { + "name": "Top", + "value": 2 + }, + { + "name": "Bottom", + "value": 4 + }, + { + "name": "All", + "value": 7 + } + ] + }, + { + "type_name_1": "WorldMaterial2Layer", + "type_name_2": "WorldMaterial2Layer", + "qualified_name": "keen::WorldMaterial2Layer", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1324978760, + "hash2": 3246602172, + "struct_fields": [ + { + "name": "mappingDirection", + "type_name": "keen::WorldMaterialBlending2MappingDirection", + "type_hash": 787566443, + "data_offset": 0 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "edgeNoiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 8 + }, + { + "name": "edgeNoiseMapTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "edgeNoiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "frontRightBlendingSmoothness", + "type_name": "keen::PbrTerrainMaterialCenterBlendingSmoothness", + "type_hash": 3736877411, + "data_offset": 32 + }, + { + "name": "enableSnowDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "disableFrostShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + }, + { + "name": "disableSnowShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "disableWetnessShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "enableFrostShaderGlitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2Area", + "type_name_2": "WorldMaterial2Area", + "qualified_name": "keen::WorldMaterial2Area", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 873991610, + "hash2": 1204231578, + "struct_fields": [], + "enum_fields": [ + { + "name": "Surface", + "value": 0 + }, + { + "name": "Underworld", + "value": 1 + } + ] + }, + { + "type_name_1": "WorldMaterial2Side", + "type_name_2": "WorldMaterial2Side", + "qualified_name": "keen::WorldMaterial2Side", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4166446460, + "hash2": 813353156, + "struct_fields": [], + "enum_fields": [ + { + "name": "Top", + "value": 0 + }, + { + "name": "Side", + "value": 1 + }, + { + "name": "Bottom", + "value": 2 + } + ] + }, + { + "type_name_1": "WorldMaterial2BlendingValue", + "type_name_2": "WorldMaterial2BlendingValue", + "qualified_name": "keen::WorldMaterial2BlendingValue", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 1911013803, + "hash2": 3880293064, + "struct_fields": [], + "enum_fields": [ + { + "name": "Flatness", + "value": 0 + } + ] + }, + { + "type_name_1": "WorldMaterial2BlendingValueMapping", + "type_name_2": "WorldMaterial2BlendingValueMapping", + "qualified_name": "keen::WorldMaterial2BlendingValueMapping", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4134638799, + "hash2": 423104532, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2Node", + "type_name_2": "WorldMaterial2Node", + "qualified_name": "keen::WorldMaterial2Node", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2076879335, + "hash2": 90819206, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2AreaNode", + "type_name_2": "WorldMaterial2AreaNode", + "qualified_name": "keen::WorldMaterial2AreaNode", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2606188534, + "hash2": 3259061584, + "struct_fields": [ + { + "name": "area", + "type_name": "keen::WorldMaterial2Area", + "type_hash": 873991610, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2VoxelMaterialNode", + "type_name_2": "WorldMaterial2VoxelMaterialNode", + "qualified_name": "keen::WorldMaterial2VoxelMaterialNode", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 721909268, + "hash2": 2561931835, + "struct_fields": [ + { + "name": "voxelMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1870839069, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2SideSelectorNode", + "type_name_2": "WorldMaterial2SideSelectorNode", + "qualified_name": "keen::WorldMaterial2SideSelectorNode", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1485704865, + "hash2": 3692448395, + "struct_fields": [ + { + "name": "topMapping", + "type_name": "keen::WorldMaterial2BlendingValueMapping", + "type_hash": 4134638799, + "data_offset": 4 + }, + { + "name": "bottomMapping", + "type_name": "keen::WorldMaterial2BlendingValueMapping", + "type_hash": 4134638799, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2SideNode", + "type_name_2": "WorldMaterial2SideNode", + "qualified_name": "keen::WorldMaterial2SideNode", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1413399448, + "hash2": 1691381587, + "struct_fields": [ + { + "name": "side", + "type_name": "keen::WorldMaterial2Side", + "type_hash": 4166446460, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2BlendingValueNode", + "type_name_2": "WorldMaterial2BlendingValueNode", + "qualified_name": "keen::WorldMaterial2BlendingValueNode", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2882069019, + "hash2": 1252651746, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::WorldMaterial2BlendingValue", + "type_hash": 1911013803, + "data_offset": 1 + }, + { + "name": "mapping", + "type_name": "keen::WorldMaterial2BlendingValueMapping", + "type_hash": 4134638799, + "data_offset": 4 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2MapNode", + "type_name_2": "WorldMaterial2MapNode", + "qualified_name": "keen::WorldMaterial2MapNode", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 505174631, + "hash2": 1501886202, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + }, + { + "name": "mapTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WorldMaterial2Layer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 996280901, + "hash2": 2432202655, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2LayerNode", + "type_name_2": "WorldMaterial2LayerNode", + "qualified_name": "keen::WorldMaterial2LayerNode", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2335536532, + "hash2": 2027936582, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 996280901, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2", + "type_name_2": "WorldMaterial2", + "qualified_name": "keen::WorldMaterial2", + "referenced_type_name": "keen::WorldMaterial2Node", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1135949895, + "hash2": 3458691723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2BlendingMode", + "type_name_2": "WorldMaterialBlending2BlendingMode", + "qualified_name": "keen::WorldMaterialBlending2BlendingMode", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2812177010, + "hash2": 3960614907, + "struct_fields": [], + "enum_fields": [ + { + "name": "Blend", + "value": 0 + }, + { + "name": "OverlayNormal", + "value": 1 + } + ] + }, + { + "type_name_1": "WorldMaterialBlending2BakingBlendValueOperationType", + "type_name_2": "WorldMaterialBlending2BakingBlendValueOperationType", + "qualified_name": "keen::WorldMaterialBlending2BakingBlendValueOperationType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 7, + "primitive_type": "Enum", + "hash1": 4152164511, + "hash2": 2626800700, + "struct_fields": [], + "enum_fields": [ + { + "name": "Area", + "value": 1 + }, + { + "name": "VoxelMaterial", + "value": 2 + }, + { + "name": "InputValue", + "value": 3 + }, + { + "name": "Map", + "value": 4 + }, + { + "name": "Top", + "value": 10 + }, + { + "name": "Bottom", + "value": 11 + }, + { + "name": "Side", + "value": 12 + } + ] + }, + { + "type_name_1": "WorldMaterialBlending2BakingInputValue", + "type_name_2": "WorldMaterialBlending2BakingInputValue", + "qualified_name": "keen::WorldMaterialBlending2BakingInputValue", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2601933083, + "hash2": 4288837349, + "struct_fields": [], + "enum_fields": [ + { + "name": "TopSide", + "value": 0 + }, + { + "name": "BottomSide", + "value": 1 + }, + { + "name": "Flatness", + "value": 2 + } + ] + }, + { + "type_name_1": "WorldMaterialBlending2BakingBlendValueOperation", + "type_name_2": "WorldMaterialBlending2BakingBlendValueOperation", + "qualified_name": "keen::WorldMaterialBlending2BakingBlendValueOperation", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1690107879, + "hash2": 2246961142, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "param0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "param1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "param2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "param3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "WorldMaterialBlending2BakingBlendValueOperation[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::WorldMaterialBlending2BakingBlendValueOperation", + "class_size": 160, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 43549493, + "hash2": 2195071399, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2BakingLayerShaderData", + "type_name_2": "WorldMaterialBlending2BakingLayerShaderData", + "qualified_name": "keen::WorldMaterialBlending2BakingLayerShaderData", + "referenced_type_name": null, + "class_size": 164, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2627245646, + "hash2": 936560203, + "struct_fields": [ + { + "name": "ops", + "type_name": "keen::StaticArray", + "type_hash": 43549493, + "data_offset": 0 + }, + { + "name": "opCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialBlendLayerShaderData", + "type_name_2": "WorldMaterialBlending2MaterialBlendLayerShaderData", + "qualified_name": "keen::WorldMaterialBlending2MaterialBlendLayerShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1802770260, + "hash2": 164049241, + "struct_fields": [ + { + "name": "weightFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerFlag", + "type_name_2": "WorldMaterialBlending2MaterialLayerFlag", + "qualified_name": "keen::WorldMaterialBlending2MaterialLayerFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 577990644, + "hash2": 361404233, + "struct_fields": [], + "enum_fields": [ + { + "name": "UsesDetailScattering", + "value": 1 + }, + { + "name": "UsesSnowDisplacement", + "value": 2 + }, + { + "name": "DisableFrostShader", + "value": 4 + }, + { + "name": "DisableSnowShader", + "value": 8 + }, + { + "name": "DisableWetnessShader", + "value": 16 + }, + { + "name": "UsesFrostShaderGlitter", + "value": 32 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "WorldMaterialBlending2MaterialBlendLayerShaderData[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::WorldMaterialBlending2MaterialBlendLayerShaderData", + "class_size": 32, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3945683516, + "hash2": 389123238, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerRenderingShaderData", + "type_name_2": "WorldMaterialBlending2MaterialLayerRenderingShaderData", + "qualified_name": "keen::WorldMaterialBlending2MaterialLayerRenderingShaderData", + "referenced_type_name": null, + "class_size": 156, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 4201115459, + "hash2": 465156649, + "struct_fields": [ + { + "name": "mappingDirection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "baseLayerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "blendLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "detailBlendingMode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "heightBlendingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "edgeNoise", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 20 + }, + { + "name": "edgeNoiseTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "edgeNoiseMappingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "frontRightBlendSmoothness", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "detailWeightFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "detailOpacityMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 56 + }, + { + "name": "blendLayerParameters", + "type_name": "keen::StaticArray", + "type_hash": 3945683516, + "data_offset": 64 + }, + { + "name": "colorVariationStart", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "colorVariationMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 108 + }, + { + "name": "colorVariationMid", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "colorVariationTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "colorVariationEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + }, + { + "name": "colorVariationParams", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerTextureShaderData", + "type_name_2": "WorldMaterialBlending2MaterialLayerTextureShaderData", + "qualified_name": "keen::WorldMaterialBlending2MaterialLayerTextureShaderData", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 4287083704, + "hash2": 3878443000, + "struct_fields": [ + { + "name": "tilingFactor", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "emissiveMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 8 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "albedoMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 20 + }, + { + "name": "roughnessMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 24 + }, + { + "name": "normalMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 28 + }, + { + "name": "heightMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 32 + }, + { + "name": "aoMap", + "type_name": "keen::StreamedTexture2D_float", + "type_hash": 842896005, + "data_offset": 36 + }, + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "parallaxFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "parallaxMinLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "parallaxMaxLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "parallaxFadeoutStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "parallaxInverseFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "parallaxMinAngleSin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "parallaxInverseAngleFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "distortionMapScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "distortionMapSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "distortionMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "lightningMapScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "lightningMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "distortionMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 100 + }, + { + "name": "lightningMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 104 + }, + { + "name": "gradientMap", + "type_name": "keen::StreamedTexture2D_float4", + "type_hash": 3354258595, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerRange", + "type_name_2": "WorldMaterialBlending2MaterialLayerRange", + "qualified_name": "keen::WorldMaterialBlending2MaterialLayerRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3602456887, + "hash2": 752657093, + "struct_fields": [ + { + "name": "firstLayer", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2Resource", + "type_name_2": "WorldMaterialBlending2Resource", + "qualified_name": "keen::WorldMaterialBlending2Resource", + "referenced_type_name": null, + "class_size": 252, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3690731052, + "hash2": 3423953284, + "struct_fields": [ + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "bakingParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 4 + }, + { + "name": "renderingLayerParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 56 + }, + { + "name": "renderingTextureParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 108 + }, + { + "name": "voxelToLayerParameterBlock", + "type_name": "keen::RenderParameterBlock", + "type_hash": 1693420474, + "data_offset": 160 + }, + { + "name": "renderingLayerImageSizeInfos", + "type_name": "keen::BlobArray", + "type_hash": 260213472, + "data_offset": 212 + }, + { + "name": "renderingLayerImageSizeInfoStartIndices", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 220 + }, + { + "name": "renderingTextureImageSizeInfos", + "type_name": "keen::BlobArray", + "type_hash": 260213472, + "data_offset": 228 + }, + { + "name": "renderingTextureImageSizeInfoStartIndices", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 236 + }, + { + "name": "renderingLayerUsesSnowDisplacement", + "type_name": "keen::BlobArray", + "type_hash": 1014403065, + "data_offset": 244 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2DebugResource", + "type_name_2": "WorldMaterialBlending2DebugResource", + "qualified_name": "keen::WorldMaterialBlending2DebugResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3544012155, + "hash2": 2523460928, + "struct_fields": [ + { + "name": "layerGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + }, + { + "name": "layerNames", + "type_name": "keen::BlobArray", + "type_hash": 1336097202, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfBoundingSphere", + "type_name_2": "ZoneVisualizationSdfBoundingSphere", + "qualified_name": "keen::ZoneVisualizationSdfBoundingSphere", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2802428230, + "hash2": 2039727243, + "struct_fields": [ + { + "name": "worldSpacePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "sqrRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfElementType", + "type_name_2": "ZoneVisualizationSdfElementType", + "qualified_name": "keen::ZoneVisualizationSdfElementType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1065848865, + "hash2": 2069191656, + "struct_fields": [], + "enum_fields": [ + { + "name": "BuildZone", + "value": 0 + }, + { + "name": "NoBuildZone", + "value": 1 + } + ] + }, + { + "type_name_1": "ZoneVisualizationSdfElement", + "type_name_2": "ZoneVisualizationSdfElement", + "qualified_name": "keen::ZoneVisualizationSdfElement", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 359230185, + "hash2": 3351062945, + "struct_fields": [ + { + "name": "halfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ZoneVisualizationSdfElementType", + "type_hash": 1065848865, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfShaderData", + "type_name_2": "ZoneVisualizationSdfShaderData", + "qualified_name": "keen::ZoneVisualizationSdfShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3648036578, + "hash2": 2986174411, + "struct_fields": [ + { + "name": "elementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "smoothingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ZoneVisualizationSdfBoundingSphere[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ZoneVisualizationSdfBoundingSphere", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 1616403757, + "hash2": 290680511, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ZoneVisualizationSdfElement[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ZoneVisualizationSdfElement", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 2216152082, + "hash2": 1164558234, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfShaderStorageData", + "type_name_2": "ZoneVisualizationSdfShaderStorageData", + "qualified_name": "keen::ZoneVisualizationSdfShaderStorageData", + "referenced_type_name": null, + "class_size": 1024, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4093034463, + "hash2": 3261617262, + "struct_fields": [ + { + "name": "boundingSpheres", + "type_name": "keen::StaticArray", + "type_hash": 1616403757, + "data_offset": 0 + }, + { + "name": "elements", + "type_name": "keen::StaticArray", + "type_hash": 2216152082, + "data_offset": 512 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfRenderingShaderData", + "type_name_2": "ZoneVisualizationSdfRenderingShaderData", + "qualified_name": "keen::ZoneVisualizationSdfRenderingShaderData", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2616349064, + "hash2": 1734732128, + "struct_fields": [ + { + "name": "borderInverseSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "borderCurveMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "noiseBorderTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "noisePositionTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "noiseOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "buildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "noBuildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "noBuildZoneBuildZoneDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "noBuildZonePreviewDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "buildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "noBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "drawBuildZoneBorder", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "previewBuildZoneBoundingSphere", + "type_name": "keen::ZoneVisualizationSdfBoundingSphere", + "type_hash": 2802428230, + "data_offset": 96 + }, + { + "name": "previewBuildZone", + "type_name": "keen::ZoneVisualizationSdfElement", + "type_hash": 359230185, + "data_offset": 112 + }, + { + "name": "previewBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationRasterizationShaderData", + "type_name_2": "ZoneVisualizationRasterizationShaderData", + "qualified_name": "keen::ZoneVisualizationRasterizationShaderData", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3468576402, + "hash2": 872961583, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 128 + }, + { + "name": "distanceFarFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "distanceNearFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationRasterizationPushConstants", + "type_name_2": "ZoneVisualizationRasterizationPushConstants", + "qualified_name": "keen::ZoneVisualizationRasterizationPushConstants", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1046209916, + "hash2": 4044363367, + "struct_fields": [ + { + "name": "boxCenter", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "boxHalfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSettings", + "type_name_2": "ZoneVisualizationSettings", + "qualified_name": "keen::ZoneVisualizationSettings", + "referenced_type_name": null, + "class_size": 172, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 2504878817, + "hash2": 1401510807, + "struct_fields": [ + { + "name": "smoothingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "buildZoneBorderColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + }, + { + "name": "noBuildZoneBorderColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 20 + }, + { + "name": "previewBuildZoneBorderColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 36 + }, + { + "name": "borderSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "borderCurveMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "noiseTexture", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 60 + }, + { + "name": "noiseBorderTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "noisePositionTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "noiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "buildZoneDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 88 + }, + { + "name": "noBuildZoneDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 96 + }, + { + "name": "noBuildZoneBuildZoneDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 104 + }, + { + "name": "noBuildZonePreviewDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 112 + }, + { + "name": "playableAreaColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 120 + }, + { + "name": "playableAreaAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 136 + }, + { + "name": "playableAreaDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 140 + }, + { + "name": "playableAreaNearFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 148 + }, + { + "name": "playableAreaModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationResource", + "type_name_2": "ZoneVisualizationResource", + "qualified_name": "keen::ZoneVisualizationResource", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 916662080, + "hash2": 3397255787, + "struct_fields": [ + { + "name": "smoothingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "borderInverseSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "borderCurveMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "noiseTexture", + "type_name": "keen::RenderTexture", + "type_hash": 2762713085, + "data_offset": 12 + }, + { + "name": "noiseBorderTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "noisePositionTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "noiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "buildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 60 + }, + { + "name": "noBuildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 68 + }, + { + "name": "noBuildZoneBuildZoneDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 76 + }, + { + "name": "noBuildZonePreviewDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 84 + }, + { + "name": "buildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 92 + }, + { + "name": "noBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 104 + }, + { + "name": "previewBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 116 + }, + { + "name": "playableAreaColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 128 + }, + { + "name": "playableAreaCameraDistanceFarFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "playableAreaCameraDistanceNearFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 152 + }, + { + "name": "playableAreaMeshVertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "playableAreaMeshIndexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 164 + }, + { + "name": "playableAreaMeshData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutMeshPointBrushScatteringSettings", + "type_name_2": "BlockOutMeshPointBrushScatteringSettings", + "qualified_name": "keen::BlockOutMeshPointBrushScatteringSettings", + "referenced_type_name": null, + "class_size": 5, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2222464789, + "hash2": 1431548749, + "struct_fields": [ + { + "name": "disablePoint", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "disableLowerEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "disableUpperEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "disableWallTriangle0", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "disableWallTriangle1", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutMeshPoint", + "type_name_2": "BlockOutMeshPoint", + "qualified_name": "keen::BlockOutMeshPoint", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 844161250, + "hash2": 935101127, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "brushScattering", + "type_name": "keen::BlockOutMeshPointBrushScatteringSettings", + "type_hash": 2222464789, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistributionRule", + "type_name_2": "DistributionRule", + "qualified_name": "keen::DistributionRule", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2184661522, + "hash2": 2640444095, + "struct_fields": [], + "enum_fields": [ + { + "name": "Everywhere", + "value": 0 + }, + { + "name": "AboveFog", + "value": 1 + }, + { + "name": "BelowFog", + "value": 2 + } + ] + }, + { + "type_name_1": "DistributionNodeType", + "type_name_2": "DistributionNodeType", + "qualified_name": "keen::DistributionNodeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3516162496, + "hash2": 981836023, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "VoxelBrush", + "value": 1 + }, + { + "name": "Scene", + "value": 2 + }, + { + "name": "Spawn", + "value": 3 + } + ] + }, + { + "type_name_1": "SceneEntitySpawnData", + "type_name_2": "SceneEntitySpawnData", + "qualified_name": "keen::SceneEntitySpawnData", + "referenced_type_name": null, + "class_size": 228, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 1486311888, + "hash2": 1843958444, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "tintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + }, + { + "name": "triggerRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "triggerRange2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "triggerRange3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "triggerOffset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 28 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 68 + }, + { + "name": "levelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 72 + }, + { + "name": "enemySettings", + "type_name": "keen::ecs::EnemySettings", + "type_hash": 1744721160, + "data_offset": 76 + }, + { + "name": "randomSpawnerSettings", + "type_name": "keen::ecs::RandomSpawnerEntitySettings", + "type_hash": 3540660906, + "data_offset": 140 + }, + { + "name": "enemyTestFlags", + "type_name": "keen::ecs::EnemyTestFlags", + "type_hash": 1314530348, + "data_offset": 144 + }, + { + "name": "ambience", + "type_name": "keen::AmbientEnvironment", + "type_hash": 876159495, + "data_offset": 148 + }, + { + "name": "enemyMarkerTag", + "type_name": "keen::ObjectReference", + "type_hash": 3788723274, + "data_offset": 152 + }, + { + "name": "teleporterId", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 168 + }, + { + "name": "teleportTargetId", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 184 + }, + { + "name": "jumpDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + }, + { + "name": "jumpHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "jumpLaunchOffset", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 208 + }, + { + "name": "mask", + "type_name": "keen::ecs::EntitySpawnValueMask", + "type_hash": 4027299700, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::CompositeScatterImage", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 581134863, + "hash2": 1818771341, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionNode", + "type_name_2": "DistributionNode", + "qualified_name": "keen::DistributionNode", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1166410696, + "hash2": 3039682420, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::DistributionNodeType", + "type_hash": 3516162496, + "data_offset": 0 + }, + { + "name": "voxelBrush", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 4 + }, + { + "name": "voxelBrushScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "voxelBrushScaleVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 28 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 44 + }, + { + "name": "spawnTemplate", + "type_name": "keen::ObjectReference", + "type_hash": 1554074834, + "data_offset": 48 + }, + { + "name": "spawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 64 + }, + { + "name": "alignRotationToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 292 + }, + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 296 + }, + { + "name": "compositeMap", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 312 + }, + { + "name": "rule", + "type_name": "keen::DistributionRule", + "type_hash": 2184661522, + "data_offset": 328 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 332 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 336 + }, + { + "name": "maxHeightDifference", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 340 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 344 + }, + { + "name": "minContentDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 348 + }, + { + "name": "maxRoadDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 352 + }, + { + "name": "onlyAtCrossings", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 356 + }, + { + "name": "snapToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 357 + }, + { + "name": "rotationRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 360 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxTagInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxTagInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1309349269, + "hash2": 2135336573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionNodeGroupEntry", + "type_name_2": "DistributionNodeGroupEntry", + "qualified_name": "keen::DistributionNodeGroupEntry", + "referenced_type_name": null, + "class_size": 332, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 815170133, + "hash2": 2300575422, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::DistributionNodeType", + "type_hash": 3516162496, + "data_offset": 0 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "voxelBrush", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 20 + }, + { + "name": "voxelBrushScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "voxelBrushScaleVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 44 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 60 + }, + { + "name": "spawnTemplate", + "type_name": "keen::ObjectReference", + "type_hash": 1554074834, + "data_offset": 64 + }, + { + "name": "spawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 80 + }, + { + "name": "whiteboxTags", + "type_name": "keen::BlobArray", + "type_hash": 1309349269, + "data_offset": 308 + }, + { + "name": "probabilityWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 316 + }, + { + "name": "alignRotationToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 320 + }, + { + "name": "rotationRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 324 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RoadCrossingNode", + "type_name_2": "RoadCrossingNode", + "qualified_name": "keen::RoadCrossingNode", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1778729224, + "hash2": 182653417, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "keepPlainCrossing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DistributionNodeGroupEntry[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DistributionNodeGroupEntry", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4241432844, + "hash2": 1995050952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConvertedDistributionNode", + "type_name_2": "ConvertedDistributionNode", + "qualified_name": "keen::ConvertedDistributionNode", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3171753946, + "hash2": 2407639109, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 0 + }, + { + "name": "rule", + "type_name": "keen::DistributionRule", + "type_hash": 2184661522, + "data_offset": 16 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "maxHeightDifference", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "minContentDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "maxRoadDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "onlyAtCrossings", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "snapToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "groupEntries", + "type_name": "keen::BlobArray", + "type_hash": 4241432844, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ConvertedDistributionNode[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ConvertedDistributionNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2412414227, + "hash2": 2703736288, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "RoadCrossingNode[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::RoadCrossingNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3601075275, + "hash2": 2753333197, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionNodes", + "type_name_2": "DistributionNodes", + "qualified_name": "keen::DistributionNodes", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 754442081, + "hash2": 3999246477, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::BlobArray", + "type_hash": 2412414227, + "data_offset": 0 + }, + { + "name": "roadCrossings", + "type_name": "keen::BlobArray", + "type_hash": 3601075275, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3607480021, + "hash2": 1394127069, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetImageInfos", + "type_name_2": "ScatterSetImageInfos", + "qualified_name": "keen::ScatterSetImageInfos", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 406806358, + "hash2": 2514427147, + "struct_fields": [ + { + "name": "images", + "type_name": "keen::BlobArray>", + "type_hash": 3607480021, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterResolution", + "type_name_2": "ScatterResolution", + "qualified_name": "keen::ScatterResolution", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 101739598, + "hash2": 1192907433, + "struct_fields": [], + "enum_fields": [ + { + "name": "One", + "value": 0 + }, + { + "name": "Two", + "value": 1 + }, + { + "name": "Four", + "value": 2 + }, + { + "name": "Eight", + "value": 3 + }, + { + "name": "Sixteen", + "value": 4 + } + ] + }, + { + "type_name_1": "ScatterNodeMap", + "type_name_2": "ScatterNodeMap", + "qualified_name": "keen::ScatterNodeMap", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1461988774, + "hash2": 2136632711, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "wrap", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNodeFlag", + "type_name_2": "ScatterNodeFlag", + "qualified_name": "keen::ScatterNodeFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 2172296738, + "hash2": 162077458, + "struct_fields": [], + "enum_fields": [ + { + "name": "UseNormal", + "value": 0 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::ScatterNodeFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 726074056, + "hash2": 2364050951, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNodeFlags", + "type_name_2": "ScatterNodeFlags", + "qualified_name": "keen::ScatterNodeFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 621230467, + "hash2": 1964802372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterLocation", + "type_name_2": "ScatterLocation", + "qualified_name": "keen::ScatterLocation", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 536746883, + "hash2": 1239629854, + "struct_fields": [], + "enum_fields": [ + { + "name": "Surface", + "value": 0 + }, + { + "name": "Cave", + "value": 1 + }, + { + "name": "Ceiling", + "value": 2 + } + ] + }, + { + "type_name_1": "ScatterSetVoxelMap", + "type_name_2": "ScatterSetVoxelMap", + "qualified_name": "keen::ScatterSetVoxelMap", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Enum", + "hash1": 3363946262, + "hash2": 2077434724, + "struct_fields": [], + "enum_fields": [ + { + "name": "FloorHeight", + "value": 0 + }, + { + "name": "CeilHeight", + "value": 1 + }, + { + "name": "CaveHeight", + "value": 2 + }, + { + "name": "FloorPitch", + "value": 3 + }, + { + "name": "CavePitch", + "value": 4 + }, + { + "name": "FloorBuilding", + "value": 5 + }, + { + "name": "FloorFog", + "value": 6 + }, + { + "name": "CaveFog", + "value": 7 + }, + { + "name": "RoadDistance", + "value": 8 + }, + { + "name": "Blockers", + "value": 9 + } + ] + }, + { + "type_name_1": "ScatterSetRule", + "type_name_2": "ScatterSetRule", + "qualified_name": "keen::ScatterSetRule", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 11, + "primitive_type": "Enum", + "hash1": 616865890, + "hash2": 3916992371, + "struct_fields": [], + "enum_fields": [ + { + "name": "Nowhere", + "value": 0 + }, + { + "name": "Everywhere", + "value": 1 + }, + { + "name": "Flat", + "value": 2 + }, + { + "name": "AboveFog", + "value": 3 + }, + { + "name": "BelowFog", + "value": 4 + }, + { + "name": "InCave", + "value": 5 + }, + { + "name": "ForestCore", + "value": 6 + }, + { + "name": "ForestBorder", + "value": 7 + }, + { + "name": "Road", + "value": 8 + }, + { + "name": "RoadBorder", + "value": 9 + }, + { + "name": "Water", + "value": 10 + } + ] + }, + { + "type_name_1": "ScatterSetFootprintMap", + "type_name_2": "ScatterSetFootprintMap", + "qualified_name": "keen::ScatterSetFootprintMap", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 12452679, + "hash2": 2548813905, + "struct_fields": [], + "enum_fields": [ + { + "name": "Two", + "value": 0 + }, + { + "name": "Four", + "value": 1 + }, + { + "name": "Eight", + "value": 2 + }, + { + "name": "Sixteen", + "value": 3 + } + ] + }, + { + "type_name_1": "ScatterSetImageMap", + "type_name_2": "ScatterSetImageMap", + "qualified_name": "keen::ScatterSetImageMap", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 1357635765, + "hash2": 530507395, + "struct_fields": [], + "enum_fields": [ + { + "name": "Forest", + "value": 0 + } + ] + }, + { + "type_name_1": "ScatterScaleRange", + "type_name_2": "ScatterScaleRange", + "qualified_name": "keen::ScatterScaleRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2300027675, + "hash2": 3748655000, + "struct_fields": [ + { + "name": "minValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterYawRange", + "type_name_2": "ScatterYawRange", + "qualified_name": "keen::ScatterYawRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 69395780, + "hash2": 4117673488, + "struct_fields": [ + { + "name": "minValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "maxValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterPitchRange", + "type_name_2": "ScatterPitchRange", + "qualified_name": "keen::ScatterPitchRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3381238151, + "hash2": 3384023376, + "struct_fields": [ + { + "name": "minValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNodeImageType", + "type_name_2": "ScatterNodeImageType", + "qualified_name": "keen::ScatterNodeImageType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3381622533, + "hash2": 3387595560, + "struct_fields": [], + "enum_fields": [ + { + "name": "ScatterNodeMap", + "value": 0 + }, + { + "name": "ScatterImage", + "value": 1 + }, + { + "name": "CompositeScatterImage", + "value": 2 + } + ] + }, + { + "type_name_1": "ScatterNode", + "type_name_2": "ScatterNode", + "qualified_name": "keen::ScatterNode", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 3565316240, + "hash2": 700706274, + "struct_fields": [ + { + "name": "imageType", + "type_name": "keen::ScatterNodeImageType", + "type_hash": 3381622533, + "data_offset": 0 + }, + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 4 + }, + { + "name": "compositeScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 20 + }, + { + "name": "map", + "type_name": "keen::ScatterNodeMap", + "type_hash": 1461988774, + "data_offset": 36 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 72 + }, + { + "name": "entity", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 88 + }, + { + "name": "resolution", + "type_name": "keen::ScatterResolution", + "type_hash": 101739598, + "data_offset": 104 + }, + { + "name": "rule", + "type_name": "keen::ScatterSetRule", + "type_hash": 616865890, + "data_offset": 105 + }, + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 106 + }, + { + "name": "location", + "type_name": "keen::ScatterLocation", + "type_hash": 536746883, + "data_offset": 107 + }, + { + "name": "footprint", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 108 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "scale", + "type_name": "keen::ScatterScaleRange", + "type_hash": 2300027675, + "data_offset": 116 + }, + { + "name": "yaw", + "type_name": "keen::ScatterYawRange", + "type_hash": 69395780, + "data_offset": 124 + }, + { + "name": "pitch", + "type_name": "keen::ScatterPitchRange", + "type_hash": 3381238151, + "data_offset": 132 + }, + { + "name": "flags", + "type_name": "keen::ScatterNodeFlags", + "type_hash": 621230467, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetMaps", + "type_name_2": "ScatterSetMaps", + "qualified_name": "keen::ScatterSetMaps", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1841455683, + "hash2": 483652819, + "struct_fields": [ + { + "name": "imageType", + "type_name": "keen::ScatterNodeImageType", + "type_hash": 3381622533, + "data_offset": 0 + }, + { + "name": "forest", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 4 + }, + { + "name": "forestScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 20 + }, + { + "name": "forestCompositeScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSet3", + "type_name_2": "ScatterSet3", + "qualified_name": "keen::ScatterSet3", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3707686045, + "hash2": 60662329, + "struct_fields": [ + { + "name": "maps", + "type_name": "keen::ScatterSetMaps", + "type_hash": 1841455683, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetObject", + "type_name_2": "ScatterSetObject", + "qualified_name": "keen::ScatterSetObject", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3897745995, + "hash2": 1597168378, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "entity", + "type_name": "keen::ecs::TemplateResourceReference", + "type_hash": 4232341258, + "data_offset": 16 + }, + { + "name": "rule", + "type_name": "keen::ScatterSetRule", + "type_hash": 616865890, + "data_offset": 32 + }, + { + "name": "mapIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "footprint", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "scale", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 48 + }, + { + "name": "yaw", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 56 + }, + { + "name": "pitch", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 64 + }, + { + "name": "flags", + "type_name": "keen::ScatterNodeFlags", + "type_hash": 621230467, + "data_offset": 72 + }, + { + "name": "biome", + "type_name": "keen::Biome", + "type_hash": 1417955174, + "data_offset": 73 + }, + { + "name": "location", + "type_name": "keen::ScatterLocation", + "type_hash": 536746883, + "data_offset": 74 + }, + { + "name": "resolution", + "type_name": "keen::ScatterResolution", + "type_hash": 101739598, + "data_offset": 75 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetMapInfo", + "type_name_2": "ScatterSetMapInfo", + "qualified_name": "keen::ScatterSetMapInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2830414266, + "hash2": 1455743033, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 8 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 24 + }, + { + "name": "bauPath", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetImageData", + "type_name_2": "ScatterSetImageData", + "qualified_name": "keen::ScatterSetImageData", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1903423337, + "hash2": 75439466, + "struct_fields": [ + { + "name": "imageSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "wrap", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "hash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 28 + }, + { + "name": "name", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 44 + }, + { + "name": "bauPath", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 52 + }, + { + "name": "scatterImage", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetLocationObjects", + "type_name_2": "ScatterSetLocationObjects", + "qualified_name": "keen::ScatterSetLocationObjects", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3911304121, + "hash2": 262017875, + "struct_fields": [ + { + "name": "objects", + "type_name": "keen::BlobArray", + "type_hash": 3810745302, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ScatterSetLocationObjects[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ScatterSetLocationObjects", + "class_size": 24, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 2834907444, + "hash2": 2526911424, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetResolutionObjects", + "type_name_2": "ScatterSetResolutionObjects", + "qualified_name": "keen::ScatterSetResolutionObjects", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3788436130, + "hash2": 2859980, + "struct_fields": [ + { + "name": "locations", + "type_name": "keen::StaticArray", + "type_hash": 2834907444, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ScatterSetImageData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ScatterSetImageData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2120415726, + "hash2": 1584478924, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ScatterSetResolutionObjects[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ScatterSetResolutionObjects", + "class_size": 120, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 1405363311, + "hash2": 1944615991, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ScatterSetObject[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ScatterSetObject", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2715589422, + "hash2": 1150517122, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSet3Resource", + "type_name_2": "ScatterSet3Resource", + "qualified_name": "keen::ScatterSet3Resource", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 744828797, + "hash2": 455933636, + "struct_fields": [ + { + "name": "maps", + "type_name": "keen::BlobArray", + "type_hash": 2120415726, + "data_offset": 0 + }, + { + "name": "resolutions", + "type_name": "keen::StaticArray", + "type_hash": 1405363311, + "data_offset": 8 + }, + { + "name": "objects", + "type_name": "keen::BlobArray", + "type_hash": 2715589422, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ScatterSet3Resource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 997030990, + "hash2": 3981297605, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSet3ResourceReference", + "type_name_2": "ScatterSet3ResourceReference", + "qualified_name": "keen::ScatterSet3ResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1843543538, + "hash2": 2517655568, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CompositeOperation", + "type_name_2": "composite_scatter_image.CompositeOperation", + "qualified_name": "keen::composite_scatter_image::CompositeOperation", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 3692169970, + "hash2": 1330698050, + "struct_fields": [], + "enum_fields": [ + { + "name": "Multiply", + "value": 0 + }, + { + "name": "InverseMultiply", + "value": 1 + }, + { + "name": "Min", + "value": 2 + }, + { + "name": "Max", + "value": 3 + }, + { + "name": "Add", + "value": 4 + }, + { + "name": "Sub", + "value": 5 + } + ] + }, + { + "type_name_1": "InputType", + "type_name_2": "composite_scatter_image.InputType", + "qualified_name": "keen::composite_scatter_image::InputType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3809560302, + "hash2": 3314305573, + "struct_fields": [], + "enum_fields": [ + { + "name": "ScatterImage", + "value": 0 + }, + { + "name": "CompositeScatterImage", + "value": 1 + }, + { + "name": "Value", + "value": 2 + } + ] + }, + { + "type_name_1": "InputOperation", + "type_name_2": "composite_scatter_image.InputOperation", + "qualified_name": "keen::composite_scatter_image::InputOperation", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3109680483, + "hash2": 2164031111, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Invert", + "value": 1 + }, + { + "name": "RangeToMask", + "value": 2 + } + ] + }, + { + "type_name_1": "Input", + "type_name_2": "composite_scatter_image.Input", + "qualified_name": "keen::composite_scatter_image::Input", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3051751278, + "hash2": 2143862359, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::composite_scatter_image::InputType", + "type_hash": 3809560302, + "data_offset": 0 + }, + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 4 + }, + { + "name": "compositeScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 20 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "inputOperation", + "type_name": "keen::composite_scatter_image::InputOperation", + "type_hash": 3109680483, + "data_offset": 40 + }, + { + "name": "inputToMaskMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "inputToMaskMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "operation", + "type_name": "keen::composite_scatter_image::CompositeOperation", + "type_hash": 3692169970, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "composite_scatter_image.Input[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::composite_scatter_image::Input", + "class_size": 336, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 2433799084, + "hash2": 1779110980, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CompositeScatterImage", + "type_name_2": "CompositeScatterImage", + "qualified_name": "keen::CompositeScatterImage", + "referenced_type_name": "keen::AbstractScatterImage", + "class_size": 356, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1139335614, + "hash2": 1227507394, + "struct_fields": [ + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "inputs", + "type_name": "keen::StaticArray", + "type_hash": 2433799084, + "data_offset": 4 + }, + { + "name": "remapSourceFrom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 340 + }, + { + "name": "remapSourceTo", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 344 + }, + { + "name": "outputLevelsFrom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 348 + }, + { + "name": "outputLevelsTo", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestCompositeScatterImage", + "type_name_2": "TestCompositeScatterImage", + "qualified_name": "keen::TestCompositeScatterImage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2169860086, + "hash2": 864427338, + "struct_fields": [ + { + "name": "testObjectReference", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerConfiguration", + "type_name_2": "DungeonTriggerConfiguration", + "qualified_name": "keen::DungeonTriggerConfiguration", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1678154954, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerSetup", + "type_name_2": "DungeonTriggerSetup", + "qualified_name": "keen::DungeonTriggerSetup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1292297237, + "hash2": 635671538, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerSlot", + "type_name_2": "DungeonTriggerSlot", + "qualified_name": "keen::DungeonTriggerSlot", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2683287380, + "hash2": 2904399144, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "triggerSlotHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerInput", + "type_name_2": "DungeonTriggerInput", + "qualified_name": "keen::DungeonTriggerInput", + "referenced_type_name": "keen::DungeonTriggerSlot", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2363575164, + "hash2": 2614309175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerOutput", + "type_name_2": "DungeonTriggerOutput", + "qualified_name": "keen::DungeonTriggerOutput", + "referenced_type_name": "keen::DungeonTriggerSlot", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3617875269, + "hash2": 559215482, + "struct_fields": [ + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonTriggerInput[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonTriggerInput", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3436618661, + "hash2": 3492217539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonTriggerOutput[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonTriggerOutput", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1921110264, + "hash2": 989695945, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerInfo", + "type_name_2": "DungeonTriggerInfo", + "qualified_name": "keen::DungeonTriggerInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3922703188, + "hash2": 4064497452, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + }, + { + "name": "inputs", + "type_name": "keen::BlobArray", + "type_hash": 3436618661, + "data_offset": 4 + }, + { + "name": "outputs", + "type_name": "keen::BlobArray", + "type_hash": 1921110264, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTriggerInfo", + "type_name_2": "EntityTriggerInfo", + "qualified_name": "keen::EntityTriggerInfo", + "referenced_type_name": "keen::DungeonTriggerInfo", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2055086311, + "hash2": 686575263, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraph", + "type_name_2": "DungeonTriggerGraph", + "qualified_name": "keen::DungeonTriggerGraph", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 785537740, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNode", + "type_name_2": "DungeonTriggerGraphNode", + "qualified_name": "keen::DungeonTriggerGraphNode", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1513952616, + "hash2": 2306360620, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + }, + { + "name": "roomInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneDungeonRoomWhitebox", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1945367648, + "hash2": 105150775, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DungeonRoomScene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3255385872, + "hash2": 2307917372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneDungeonRoomInstance", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1213352691, + "hash2": 622637033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeEndPoint", + "type_name_2": "DungeonTriggerGraphNodeEndPoint", + "qualified_name": "keen::DungeonTriggerGraphNodeEndPoint", + "referenced_type_name": "keen::DungeonTriggerGraphNode", + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4279757881, + "hash2": 495450734, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::ObjectReference", + "type_hash": 1945367648, + "data_offset": 24 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 3255385872, + "data_offset": 40 + }, + { + "name": "room", + "type_name": "keen::ObjectReference", + "type_hash": 1213352691, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonLogicOperator", + "type_name_2": "DungeonLogicOperator", + "qualified_name": "keen::DungeonLogicOperator", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1405159610, + "hash2": 2504785314, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "And", + "value": 1 + }, + { + "name": "Or", + "value": 2 + }, + { + "name": "Not", + "value": 3 + } + ] + }, + { + "type_name_1": "DungeonTriggerSettingsNode", + "type_name_2": "DungeonTriggerSettingsNode", + "qualified_name": "keen::DungeonTriggerSettingsNode", + "referenced_type_name": "keen::DungeonTriggerGraphNode", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2051889373, + "hash2": 3911803673, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeDungeonLogic", + "type_name_2": "DungeonTriggerGraphNodeDungeonLogic", + "qualified_name": "keen::DungeonTriggerGraphNodeDungeonLogic", + "referenced_type_name": "keen::DungeonTriggerGraphNode", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3880367672, + "hash2": 3911803673, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeBool", + "type_name_2": "DungeonTriggerGraphNodeBool", + "qualified_name": "keen::DungeonTriggerGraphNodeBool", + "referenced_type_name": "keen::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3882857624, + "hash2": 3933022388, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeAnd", + "type_name_2": "DungeonTriggerGraphNodeAnd", + "qualified_name": "keen::DungeonTriggerGraphNodeAnd", + "referenced_type_name": "keen::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 258296193, + "hash2": 4247842562, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::DungeonLogicOperator", + "type_hash": 1405159610, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeOr", + "type_name_2": "DungeonTriggerGraphNodeOr", + "qualified_name": "keen::DungeonTriggerGraphNodeOr", + "referenced_type_name": "keen::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3312437301, + "hash2": 4247842562, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::DungeonLogicOperator", + "type_hash": 1405159610, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeNot", + "type_name_2": "DungeonTriggerGraphNodeNot", + "qualified_name": "keen::DungeonTriggerGraphNodeNot", + "referenced_type_name": "keen::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2812240777, + "hash2": 4247842562, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::DungeonLogicOperator", + "type_hash": 1405159610, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeDelay", + "type_name_2": "DungeonTriggerGraphNodeDelay", + "qualified_name": "keen::DungeonTriggerGraphNodeDelay", + "referenced_type_name": "keen::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4262006279, + "hash2": 3493879281, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "filter", + "type_name": "keen::DelayMask", + "type_hash": 730872933, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeSender", + "type_name_2": "DungeonTriggerGraphNodeSender", + "qualified_name": "keen::DungeonTriggerGraphNodeSender", + "referenced_type_name": "keen::DungeonTriggerGraphNodeEndPoint", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3188153457, + "hash2": 4069930290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeReceiver", + "type_name_2": "DungeonTriggerGraphNodeReceiver", + "qualified_name": "keen::DungeonTriggerGraphNodeReceiver", + "referenced_type_name": "keen::DungeonTriggerGraphNodeEndPoint", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3871016405, + "hash2": 4069930290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeWhitebox", + "type_name_2": "DungeonTriggerGraphNodeWhitebox", + "qualified_name": "keen::DungeonTriggerGraphNodeWhitebox", + "referenced_type_name": "keen::DungeonTriggerGraphNodeEndPoint", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3621255186, + "hash2": 4069930290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DungeonTriggerGraphNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3486805609, + "hash2": 3544154788, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphLink", + "type_name_2": "DungeonTriggerGraphLink", + "qualified_name": "keen::DungeonTriggerGraphLink", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2877227452, + "hash2": 1077548898, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::ObjectReference", + "type_hash": 3486805609, + "data_offset": 0 + }, + { + "name": "endNode", + "type_name": "keen::ObjectReference", + "type_hash": 3486805609, + "data_offset": 16 + }, + { + "name": "startSlot", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 32 + }, + { + "name": "endSlot", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 36 + }, + { + "name": "startIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 40 + }, + { + "name": "endIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 41 + }, + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabTriggerInfo", + "type_name_2": "PrefabTriggerInfo", + "qualified_name": "keen::PrefabTriggerInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1537414276, + "hash2": 1153584136, + "struct_fields": [ + { + "name": "triggerEntityGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "triggerSlotHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContainmentSet", + "type_name_2": "PrefabContainmentSet", + "qualified_name": "keen::PrefabContainmentSet", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1733739360, + "hash2": 2393522187, + "struct_fields": [ + { + "name": "triggerTypes", + "type_name": "keen::BlobArray", + "type_hash": 516548357, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabTriggerSlotType", + "type_name_2": "PrefabTriggerSlotType", + "qualified_name": "keen::PrefabTriggerSlotType", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2824838188, + "hash2": 4025791036, + "struct_fields": [ + { + "name": "slotTypeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "isInput", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "uiColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 8 + }, + { + "name": "identifier", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 12 + }, + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabTriggerInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabTriggerInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2206259257, + "hash2": 1034406713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabTriggerSlotType[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabTriggerSlotType", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2247221277, + "hash2": 2855406969, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabContainmentSet[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabContainmentSet", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 739976135, + "hash2": 60913345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContainment", + "type_name_2": "PrefabContainment", + "qualified_name": "keen::PrefabContainment", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3007208784, + "hash2": 2490496444, + "struct_fields": [ + { + "name": "prefabId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "triggerGuids", + "type_name": "keen::BlobArray", + "type_hash": 2206259257, + "data_offset": 16 + }, + { + "name": "slotDefinitions", + "type_name": "keen::BlobArray", + "type_hash": 2247221277, + "data_offset": 24 + }, + { + "name": "containmentVariations", + "type_name": "keen::BlobArray", + "type_hash": 739976135, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxContainment", + "type_name_2": "WhiteboxContainment", + "qualified_name": "keen::WhiteboxContainment", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 976755008, + "hash2": 3882608795, + "struct_fields": [ + { + "name": "slotDefinitions", + "type_name": "keen::BlobArray", + "type_hash": 2247221277, + "data_offset": 0 + }, + { + "name": "containmentVariations", + "type_name": "keen::BlobArray", + "type_hash": 739976135, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerFlags", + "type_name_2": "WhiteboxTriggerFlags", + "qualified_name": "keen::WhiteboxTriggerFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1645908891, + "hash2": 3284871976, + "struct_fields": [], + "enum_fields": [ + { + "name": "Invalid", + "value": 0 + }, + { + "name": "Settings", + "value": 1 + }, + { + "name": "Sender", + "value": 2 + }, + { + "name": "Receiver", + "value": 3 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::WhiteboxTriggerFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1931148323, + "hash2": 1911637384, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerMask", + "type_name_2": "WhiteboxTriggerMask", + "qualified_name": "keen::WhiteboxTriggerMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3126806880, + "hash2": 2421912748, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "HashKey32[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::HashKey32", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1482374345, + "hash2": 4149694976, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerSetup", + "type_name_2": "WhiteboxTriggerSetup", + "qualified_name": "keen::WhiteboxTriggerSetup", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1352468053, + "hash2": 1547413870, + "struct_fields": [ + { + "name": "triggerFormula", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + }, + { + "name": "triggerDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "triggerDelayMask", + "type_name": "keen::DelayMask", + "type_hash": 730872933, + "data_offset": 16 + }, + { + "name": "triggerIds", + "type_name": "keen::StaticArray", + "type_hash": 1482374345, + "data_offset": 20 + }, + { + "name": "triggerSlot", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 84 + }, + { + "name": "triggerMask", + "type_name": "keen::WhiteboxTriggerMask", + "type_hash": 3126806880, + "data_offset": 88 + }, + { + "name": "triggerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 89 + }, + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 90 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 91 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "initialState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 93 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerInfo", + "type_name_2": "WhiteboxTriggerInfo", + "qualified_name": "keen::WhiteboxTriggerInfo", + "referenced_type_name": "keen::WhiteboxTriggerSetup", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 365916052, + "hash2": 2180185989, + "struct_fields": [ + { + "name": "triggerObjectInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTrigger", + "type_name_2": "DungeonTrigger", + "qualified_name": "keen::DungeonTrigger", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1008262920, + "hash2": 505478729, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "roomSceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 64 + }, + { + "name": "roomInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 80 + }, + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 96 + }, + { + "name": "containmentVariations", + "type_name": "keen::BlobArray", + "type_hash": 739976135, + "data_offset": 112 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonTrigger[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonTrigger", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2326839695, + "hash2": 3873249285, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RoomTriggerList", + "type_name_2": "RoomTriggerList", + "qualified_name": "keen::RoomTriggerList", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1358343347, + "hash2": 1024072747, + "struct_fields": [ + { + "name": "dungeonTriggerGraphId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "slotDefinitions", + "type_name": "keen::BlobArray", + "type_hash": 2247221277, + "data_offset": 16 + }, + { + "name": "trigger", + "type_name": "keen::BlobArray", + "type_hash": 2326839695, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxTriggerSetup[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxTriggerSetup", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2791104128, + "hash2": 3860292177, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerWhitebox", + "type_name_2": "DungeonTriggerWhitebox", + "qualified_name": "keen::DungeonTriggerWhitebox", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2467892466, + "hash2": 1379391170, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "setups", + "type_name": "keen::BlobArray", + "type_hash": 2791104128, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonTriggerWhitebox[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonTriggerWhitebox", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2195431145, + "hash2": 3271617730, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerRoom", + "type_name_2": "DungeonTriggerRoom", + "qualified_name": "keen::DungeonTriggerRoom", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2247867099, + "hash2": 2327964100, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "whiteboxes", + "type_name": "keen::BlobArray", + "type_hash": 2195431145, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonTriggerRoom[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonTriggerRoom", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1541675638, + "hash2": 2045393242, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggers", + "type_name_2": "DungeonTriggers", + "qualified_name": "keen::DungeonTriggers", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 371707553, + "hash2": 3321304546, + "struct_fields": [ + { + "name": "rooms", + "type_name": "keen::BlobArray", + "type_hash": 1541675638, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityAnimationPath", + "type_name_2": "EntityAnimationPath", + "qualified_name": "keen::EntityAnimationPath", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4159264430, + "hash2": 144584353, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityAnimationPathPoint", + "type_name_2": "EntityAnimationPathPoint", + "qualified_name": "keen::EntityAnimationPathPoint", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3853936288, + "hash2": 4246661610, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 12 + }, + { + "name": "enableConstantRotationX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "constantRotationX", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "enableConstantRotationY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "constantRotationY", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "enableConstantRotationZ", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "constantRotationZ", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneTemplate", + "type_name_2": "SceneTemplate", + "qualified_name": "keen::SceneTemplate", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3493336216, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWaterTemplate", + "type_name_2": "SceneWaterTemplate", + "qualified_name": "keen::SceneWaterTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4262512743, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterDataBlockIncludeDummy0", + "type_name_2": "VfxUserEffectParameterDataBlockIncludeDummy0", + "qualified_name": "keen::VfxUserEffectParameterDataBlockIncludeDummy0", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2921256328, + "hash2": 888001253, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::VfxUserEffectParameterDataBlock", + "type_hash": 974495008, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneModel", + "type_name_2": "SceneModel", + "qualified_name": "keen::SceneModel", + "referenced_type_name": "keen::SceneObject", + "class_size": 104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3834170355, + "hash2": 4207947790, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 64 + }, + { + "name": "clothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 1056388999, + "data_offset": 80 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnDefinition", + "type_name_2": "EntitySpawnDefinition", + "qualified_name": "keen::EntitySpawnDefinition", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2895846921, + "hash2": 1175365258, + "struct_fields": [ + { + "name": "templateReference", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 16 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreviewSubEntity", + "type_name_2": "TemplatePreviewSubEntity", + "qualified_name": "keen::TemplatePreviewSubEntity", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 918045165, + "hash2": 4007225324, + "struct_fields": [ + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray>", + "type_hash": 3737858023, + "data_offset": 16 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 24 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreviewVfx", + "type_name_2": "TemplatePreviewVfx", + "qualified_name": "keen::TemplatePreviewVfx", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 686636944, + "hash2": 1574500311, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ecs::Offset", + "type_hash": 935302332, + "data_offset": 16 + }, + { + "name": "slot", + "type_name": "keen::AttachmentSlot", + "type_hash": 573301135, + "data_offset": 56 + }, + { + "name": "initParameters", + "type_name": "keen::BlobOptional", + "type_hash": 830078700, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreviewPart", + "type_name_2": "TemplatePreviewPart", + "qualified_name": "keen::TemplatePreviewPart", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 981030873, + "hash2": 1656245756, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "paletteColors", + "type_name": "keen::ColorCombination", + "type_hash": 1980700892, + "data_offset": 16 + }, + { + "name": "gradient", + "type_name": "keen::ObjectReference", + "type_hash": 201749313, + "data_offset": 64 + }, + { + "name": "blendShapes", + "type_name": "keen::BlobArray", + "type_hash": 1601524733, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "TemplatePreviewPart[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::TemplatePreviewPart", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1708482006, + "hash2": 2418711571, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "TemplatePreviewSubEntity[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::TemplatePreviewSubEntity", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2373043220, + "hash2": 1898735813, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreview", + "type_name_2": "TemplatePreview", + "qualified_name": "keen::TemplatePreview", + "referenced_type_name": null, + "class_size": 172, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2113984156, + "hash2": 445337753, + "struct_fields": [ + { + "name": "parts", + "type_name": "keen::BlobArray", + "type_hash": 1708482006, + "data_offset": 0 + }, + { + "name": "spawnedEntity", + "type_name": "keen::ObjectReference", + "type_hash": 1554074834, + "data_offset": 8 + }, + { + "name": "vfx", + "type_name": "keen::TemplatePreviewVfx", + "type_hash": 686636944, + "data_offset": 24 + }, + { + "name": "subEntities", + "type_name": "keen::BlobArray", + "type_hash": 2373043220, + "data_offset": 88 + }, + { + "name": "subEntityAttachmentMask", + "type_name": "keen::AttachmentSlotMask", + "type_hash": 3578532875, + "data_offset": 96 + }, + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 921543191, + "data_offset": 100 + }, + { + "name": "slotJointIndexMapping", + "type_name": "keen::StaticArray", + "type_hash": 3194336511, + "data_offset": 116 + }, + { + "name": "hierarchyId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 144 + }, + { + "name": "allColliders", + "type_name": "keen::ecs::ColliderDataArray", + "type_hash": 785449800, + "data_offset": 160 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateInfo", + "type_name_2": "TemplateInfo", + "qualified_name": "keen::TemplateInfo", + "referenced_type_name": null, + "class_size": 268, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 1182444932, + "hash2": 1714295625, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "isPlayerSpawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "isMapMarker", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "isFakePlayerSpawner", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "isContainer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "isActor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "isAutomatedPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "isSkinned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "doNotSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "questEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "isNpc", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "isCraftingAssistant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "nameLocaId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 20 + }, + { + "name": "npcRenderingOptions", + "type_name": "keen::UiNpcRenderingOptions", + "type_hash": 2227643213, + "data_offset": 24 + }, + { + "name": "workshopId", + "type_name": "keen::WorkshopId", + "type_hash": 815159514, + "data_offset": 76 + }, + { + "name": "workshopLabel", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 80 + }, + { + "name": "characterPresetReference", + "type_name": "keen::CharacterPresetReference", + "type_hash": 2346815751, + "data_offset": 84 + }, + { + "name": "placementItem", + "type_name": "keen::ItemReference", + "type_hash": 102745210, + "data_offset": 100 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::GameKnowledgeRequirement", + "type_hash": 1698837267, + "data_offset": 116 + }, + { + "name": "containerSlotCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "floorMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1870839069, + "data_offset": 224 + }, + { + "name": "floorMaterialRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 240 + }, + { + "name": "floorMaterialShape", + "type_name": "keen::FloorMaterialShape", + "type_hash": 1069378994, + "data_offset": 244 + }, + { + "name": "floorMaterialNoiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 248 + }, + { + "name": "fallbackModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "TemplateInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::TemplateInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2073377827, + "hash2": 1499564453, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "AxisAlignedBox[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::AxisAlignedBox", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2396399805, + "hash2": 3942984669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateInfoCollection", + "type_name_2": "TemplateInfoCollection", + "qualified_name": "keen::TemplateInfoCollection", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2720572872, + "hash2": 2844600379, + "struct_fields": [ + { + "name": "templateGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + }, + { + "name": "templateInfos", + "type_name": "keen::BlobArray", + "type_hash": 2073377827, + "data_offset": 8 + }, + { + "name": "templateBBoxes", + "type_name": "keen::BlobArray", + "type_hash": 2396399805, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateSubentityIds", + "type_name_2": "TemplateSubentityIds", + "qualified_name": "keen::TemplateSubentityIds", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3006481405, + "hash2": 3962292978, + "struct_fields": [ + { + "name": "subentityTemplateGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::EntitySpawnDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4022635746, + "hash2": 612434603, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntitySpawn", + "type_name_2": "SceneEntitySpawn", + "qualified_name": "keen::SceneEntitySpawn", + "referenced_type_name": "keen::SceneObject", + "class_size": 344, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 64288488, + "hash2": 3700931189, + "struct_fields": [ + { + "name": "entitySpawnDefinition", + "type_name": "keen::ObjectReference", + "type_hash": 4022635746, + "data_offset": 64 + }, + { + "name": "templateReference", + "type_name": "keen::ObjectReference", + "type_hash": 1554074834, + "data_offset": 80 + }, + { + "name": "templatePreviewContentHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 96 + }, + { + "name": "spawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 112 + }, + { + "name": "storeSceneId", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 340 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 341 + }, + { + "name": "enableFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 342 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SubEntityKnowledgeQuery[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SubEntityKnowledgeQuery", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1957969924, + "hash2": 1834264261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnInfo", + "type_name_2": "EntitySpawnInfo", + "qualified_name": "keen::EntitySpawnInfo", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1102741972, + "hash2": 1788951104, + "struct_fields": [ + { + "name": "unlockKnowledge", + "type_name": "keen::KnowledgeId", + "type_hash": 969147759, + "data_offset": 0 + }, + { + "name": "subEntityKnowledgeQueries", + "type_name": "keen::BlobArray", + "type_hash": 1957969924, + "data_offset": 4 + }, + { + "name": "triggerKnowledgeIds", + "type_name": "keen::BlobArray", + "type_hash": 2753852168, + "data_offset": 12 + }, + { + "name": "uiWorldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 20 + }, + { + "name": "knowledgeQuery", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 24 + }, + { + "name": "lootContainerId", + "type_name": "keen::LootContainerId", + "type_hash": 1134415354, + "data_offset": 40 + }, + { + "name": "fogRemovalId", + "type_name": "keen::FogRemovalId", + "type_hash": 2854608235, + "data_offset": 44 + }, + { + "name": "entityAnimation", + "type_name": "keen::JointAnimationReference", + "type_hash": 2415978205, + "data_offset": 48 + }, + { + "name": "entityAnimationSlotMask", + "type_name": "keen::AttachmentSlotMask", + "type_hash": 3578532875, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelObject", + "type_name_2": "SceneVoxelObject", + "qualified_name": "keen::SceneVoxelObject", + "referenced_type_name": "keen::SceneObject", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2979015061, + "hash2": 727787710, + "struct_fields": [ + { + "name": "voxelModel", + "type_name": "keen::ObjectReference", + "type_hash": 3707186949, + "data_offset": 64 + }, + { + "name": "isWeathered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlitFunction", + "type_name_2": "VoxelBlitFunction", + "qualified_name": "keen::VoxelBlitFunction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 1405692353, + "hash2": 610440331, + "struct_fields": [], + "enum_fields": [ + { + "name": "Default", + "value": 0 + }, + { + "name": "KeepBuildings", + "value": 1 + }, + { + "name": "Water", + "value": 2 + }, + { + "name": "DestructionVoxels", + "value": 3 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::FogRemovalSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1947009712, + "hash2": 1585635551, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelBrush", + "type_name_2": "SceneVoxelBrush", + "qualified_name": "keen::SceneVoxelBrush", + "referenced_type_name": "keen::SceneObject", + "class_size": 128, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2372226678, + "hash2": 1337581295, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 64 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 80 + }, + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 84 + }, + { + "name": "disableDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "resolveBiomePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 101 + }, + { + "name": "paintMaterialOnly", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 102 + }, + { + "name": "blitFunction", + "type_name": "keen::VoxelBlitFunction", + "type_hash": 1405692353, + "data_offset": 103 + }, + { + "name": "allowNonManifold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "removableFogId", + "type_name": "keen::ObjectReference", + "type_hash": 1947009712, + "data_offset": 108 + }, + { + "name": "addDestructionEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneBlockOutBrushPoint", + "type_name_2": "SceneBlockOutBrushPoint", + "qualified_name": "keen::SceneBlockOutBrushPoint", + "referenced_type_name": "keen::SceneObject", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4140779211, + "hash2": 2703728390, + "struct_fields": [ + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 68 + }, + { + "name": "brushScattering", + "type_name": "keen::BlockOutMeshPointBrushScatteringSettings", + "type_hash": 2222464789, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::BlockOutBrushScatteringDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2869534565, + "hash2": 2530899998, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneBlockOutBrush", + "type_name_2": "SceneBlockOutBrush", + "qualified_name": "keen::SceneBlockOutBrush", + "referenced_type_name": "keen::SceneObject", + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 47807587, + "hash2": 3976454541, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 64 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 80 + }, + { + "name": "enableTopDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "enableTopBrushScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 85 + }, + { + "name": "negativeVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 86 + }, + { + "name": "ignoreDisplacementBlockers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 87 + }, + { + "name": "resolveBiomePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "scattering", + "type_name": "keen::ObjectReference", + "type_hash": 2869534565, + "data_offset": 92 + }, + { + "name": "removableFogId", + "type_name": "keen::ObjectReference", + "type_hash": 1947009712, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringDefinition", + "type_name_2": "BlockOutBrushScatteringDefinition", + "qualified_name": "keen::BlockOutBrushScatteringDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2380898196, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringPointModel", + "type_name_2": "BlockOutBrushScatteringPointModel", + "qualified_name": "keen::BlockOutBrushScatteringPointModel", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3237753410, + "hash2": 3210909976, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "angleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "heightRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 24 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "nonUniformScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "shearFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringPointModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringPointModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1466214523, + "hash2": 137450861, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringPoint", + "type_name_2": "BlockOutBrushScatteringPoint", + "qualified_name": "keen::BlockOutBrushScatteringPoint", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2588710925, + "hash2": 2260971418, + "struct_fields": [ + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 1466214523, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringLowerEdgeModel", + "type_name_2": "BlockOutBrushScatteringLowerEdgeModel", + "qualified_name": "keen::BlockOutBrushScatteringLowerEdgeModel", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3558174532, + "hash2": 32688497, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "angleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "heightRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 28 + }, + { + "name": "randomScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "scaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "nonUniformScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "shearFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringLowerEdgeModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringLowerEdgeModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1710105217, + "hash2": 4262526190, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringLowEdge", + "type_name_2": "BlockOutBrushScatteringLowEdge", + "qualified_name": "keen::BlockOutBrushScatteringLowEdge", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 717304980, + "hash2": 1939240317, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 1710105217, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringUpperEdgeModel", + "type_name_2": "BlockOutBrushScatteringUpperEdgeModel", + "qualified_name": "keen::BlockOutBrushScatteringUpperEdgeModel", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1563921619, + "hash2": 32688497, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "angleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "heightRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 28 + }, + { + "name": "randomScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "scaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "nonUniformScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "shearFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringUpperEdgeModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringUpperEdgeModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 641921860, + "hash2": 2582240926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringUpperEdge", + "type_name_2": "BlockOutBrushScatteringUpperEdge", + "qualified_name": "keen::BlockOutBrushScatteringUpperEdge", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4069466694, + "hash2": 489811881, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 641921860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringWallModel", + "type_name_2": "BlockOutBrushScatteringWallModel", + "qualified_name": "keen::BlockOutBrushScatteringWallModel", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2927159262, + "hash2": 2498020510, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "normalAngleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "maxOverhangY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringWallModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringWallModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2199370377, + "hash2": 981684864, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringWall", + "type_name_2": "BlockOutBrushScatteringWall", + "qualified_name": "keen::BlockOutBrushScatteringWall", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3438513993, + "hash2": 1247985448, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 2199370377, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringTopModel", + "type_name_2": "BlockOutBrushScatteringTopModel", + "qualified_name": "keen::BlockOutBrushScatteringTopModel", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3221592813, + "hash2": 3445246920, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "normalAngleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "randomScale", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringTopModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringTopModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1593238942, + "hash2": 4213097495, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringTop", + "type_name_2": "BlockOutBrushScatteringTop", + "qualified_name": "keen::BlockOutBrushScatteringTop", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3432284448, + "hash2": 1952551585, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 1593238942, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringPoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringPoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 218505916, + "hash2": 3122493072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringLowEdge[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringLowEdge", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3623489827, + "hash2": 3671335801, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringUpperEdge[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringUpperEdge", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2797302969, + "hash2": 2261783454, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringWall[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringWall", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4222581338, + "hash2": 4134367963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutBrushScatteringTop[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutBrushScatteringTop", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1567459179, + "hash2": 2385731628, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringDefinitionConverterData", + "type_name_2": "BlockOutBrushScatteringDefinitionConverterData", + "qualified_name": "keen::BlockOutBrushScatteringDefinitionConverterData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2694872664, + "hash2": 4163174057, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "points", + "type_name": "keen::BlobArray", + "type_hash": 218505916, + "data_offset": 16 + }, + { + "name": "lowerEdges", + "type_name": "keen::BlobArray", + "type_hash": 3623489827, + "data_offset": 24 + }, + { + "name": "upperEdges", + "type_name": "keen::BlobArray", + "type_hash": 2797302969, + "data_offset": 32 + }, + { + "name": "walls", + "type_name": "keen::BlobArray", + "type_hash": 4222581338, + "data_offset": 40 + }, + { + "name": "tops", + "type_name": "keen::BlobArray", + "type_hash": 1567459179, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringDefinitionConverterDependencies", + "type_name_2": "BlockOutBrushScatteringDefinitionConverterDependencies", + "qualified_name": "keen::BlockOutBrushScatteringDefinitionConverterDependencies", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 989843181, + "hash2": 4176343868, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneVoxelBrush[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneVoxelBrush", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2627614723, + "hash2": 3305456017, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelMultiBrush", + "type_name_2": "SceneVoxelMultiBrush", + "qualified_name": "keen::SceneVoxelMultiBrush", + "referenced_type_name": "keen::SceneObject", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 760833693, + "hash2": 25365898, + "struct_fields": [ + { + "name": "brushes", + "type_name": "keen::BlobArray", + "type_hash": 2627614723, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestructionBubbleMode", + "type_name_2": "DestructionBubbleMode", + "qualified_name": "keen::DestructionBubbleMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 3950791855, + "hash2": 3854044979, + "struct_fields": [], + "enum_fields": [ + { + "name": "SetWeatheredFlag", + "value": 0 + }, + { + "name": "ClearWeatheredFlag", + "value": 1 + }, + { + "name": "Destruction", + "value": 2 + }, + { + "name": "DestructionNoEntities", + "value": 3 + } + ] + }, + { + "type_name_1": "SceneDestructionBubble", + "type_name_2": "SceneDestructionBubble", + "qualified_name": "keen::SceneDestructionBubble", + "referenced_type_name": "keen::SceneObject", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4148673164, + "hash2": 3645000546, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 64 + }, + { + "name": "mode", + "type_name": "keen::DestructionBubbleMode", + "type_hash": 3950791855, + "data_offset": 80 + }, + { + "name": "dontDestroyEntities", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 81 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneSurfaceMaterialBubbleMode", + "type_name_2": "SceneSurfaceMaterialBubbleMode", + "qualified_name": "keen::SceneSurfaceMaterialBubbleMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 371139285, + "hash2": 3813099114, + "struct_fields": [], + "enum_fields": [ + { + "name": "UnderRoads", + "value": 0 + }, + { + "name": "CoverRoads", + "value": 1 + } + ] + }, + { + "type_name_1": "SceneSurfaceMaterialBubble", + "type_name_2": "SceneSurfaceMaterialBubble", + "qualified_name": "keen::SceneSurfaceMaterialBubble", + "referenced_type_name": "keen::SceneObject", + "class_size": 112, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3612650158, + "hash2": 2579843910, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 64 + }, + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 80 + }, + { + "name": "depth", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 96 + }, + { + "name": "height", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "shelteredByTerrain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "mode", + "type_name": "keen::SceneSurfaceMaterialBubbleMode", + "type_hash": 371139285, + "data_offset": 105 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCurvePoint", + "type_name_2": "SceneCurvePoint", + "qualified_name": "keen::SceneCurvePoint", + "referenced_type_name": "keen::SceneObject", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1523316325, + "hash2": 2485018798, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCurve", + "type_name_2": "SceneCurve", + "qualified_name": "keen::SceneCurve", + "referenced_type_name": "keen::SceneObject", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 255700617, + "hash2": 2485018798, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadPoint", + "type_name_2": "SceneRoadPoint", + "qualified_name": "keen::SceneRoadPoint", + "referenced_type_name": "keen::SceneCurvePoint", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2201183530, + "hash2": 2996679495, + "struct_fields": [ + { + "name": "widthScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelRoadShapeDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 20218951, + "hash2": 1941632171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RoadDefinition", + "type_name_2": "RoadDefinition", + "qualified_name": "keen::RoadDefinition", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3216122013, + "hash2": 3117841072, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "snapStepSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "snapAllowedError", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "snapMaxSlopeChange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "roadShape", + "type_name": "keen::ObjectReference", + "type_hash": 20218951, + "data_offset": 20 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 36 + }, + { + "name": "groundMaterial", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 52 + }, + { + "name": "distributionNoise", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "edgeNoiseWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "edgeNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "edgeNoisePersistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RoadDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1986988452, + "hash2": 2761533271, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoad", + "type_name_2": "SceneRoad", + "qualified_name": "keen::SceneRoad", + "referenced_type_name": "keen::SceneCurve", + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 610815444, + "hash2": 3820541848, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ObjectReference", + "type_hash": 1986988452, + "data_offset": 64 + }, + { + "name": "snapToOtherRoads", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CaveVoxelMode", + "type_name_2": "CaveVoxelMode", + "qualified_name": "keen::CaveVoxelMode", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 352593006, + "hash2": 464220489, + "struct_fields": [], + "enum_fields": [ + { + "name": "NegativeWithShell", + "value": 0 + }, + { + "name": "NegativeOnly", + "value": 1 + }, + { + "name": "Lake", + "value": 2 + }, + { + "name": "NegativeWithMaterialOverride", + "value": 3 + }, + { + "name": "LakeWithMaterialOverride", + "value": 4 + } + ] + }, + { + "type_name_1": "SceneDungeonCaveCurvePoint", + "type_name_2": "SceneDungeonCaveCurvePoint", + "qualified_name": "keen::SceneDungeonCaveCurvePoint", + "referenced_type_name": "keen::SceneCurvePoint", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 268659158, + "hash2": 1804937751, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonCaveCurve", + "type_name_2": "SceneDungeonCaveCurve", + "qualified_name": "keen::SceneDungeonCaveCurve", + "referenced_type_name": "keen::SceneCurve", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3061629568, + "hash2": 1725589464, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::CaveVoxelMode", + "type_hash": 352593006, + "data_offset": 64 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneTunnelPoint", + "type_name_2": "SceneTunnelPoint", + "qualified_name": "keen::SceneTunnelPoint", + "referenced_type_name": "keen::SceneCurvePoint", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1610911190, + "hash2": 1804937751, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneTunnel", + "type_name_2": "SceneTunnel", + "qualified_name": "keen::SceneTunnel", + "referenced_type_name": "keen::SceneCurve", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4110995072, + "hash2": 2615931734, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterBlocker", + "type_name_2": "SceneScatterBlocker", + "qualified_name": "keen::SceneScatterBlocker", + "referenced_type_name": "keen::SceneObject", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3306927230, + "hash2": 3750515816, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "fadeInDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisplacementBlockerMode", + "type_name_2": "DisplacementBlockerMode", + "qualified_name": "keen::DisplacementBlockerMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 1226209018, + "hash2": 612615986, + "struct_fields": [], + "enum_fields": [ + { + "name": "SetToZero", + "value": 0 + }, + { + "name": "SetToBlockerHeight", + "value": 1 + } + ] + }, + { + "type_name_1": "SceneDisplacementBlocker", + "type_name_2": "SceneDisplacementBlocker", + "qualified_name": "keen::SceneDisplacementBlocker", + "referenced_type_name": "keen::SceneObject", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1428460941, + "hash2": 1466726445, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "fadeInDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "innerDisplacementFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "mode", + "type_name": "keen::DisplacementBlockerMode", + "type_hash": 1226209018, + "data_offset": 76 + }, + { + "name": "affectFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVfx", + "type_name_2": "SceneVfx", + "qualified_name": "keen::SceneVfx", + "referenced_type_name": "keen::SceneObject", + "class_size": 192, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1733345550, + "hash2": 3913090611, + "struct_fields": [ + { + "name": "effect", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 64 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 80 + }, + { + "name": "param0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "param1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 112 + }, + { + "name": "param2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 128 + }, + { + "name": "param3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 144 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 164 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 176 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneSound", + "type_name_2": "SceneSound", + "qualified_name": "keen::SceneSound", + "referenced_type_name": "keen::SceneObject", + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 701570645, + "hash2": 2053096584, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 64 + }, + { + "name": "activeRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneInstance", + "type_name_2": "SceneInstance", + "qualified_name": "keen::SceneInstance", + "referenced_type_name": "keen::SceneObject", + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1044841889, + "hash2": 1446939744, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 64 + }, + { + "name": "connectToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 84 + }, + { + "name": "whiteboxSeed", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneGroup", + "type_name_2": "SceneGroup", + "qualified_name": "keen::SceneGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4015905497, + "hash2": 1788530279, + "struct_fields": [ + { + "name": "isLocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadAttachmentPoint", + "type_name_2": "SceneRoadAttachmentPoint", + "qualified_name": "keen::SceneRoadAttachmentPoint", + "referenced_type_name": "keen::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3114610077, + "hash2": 2726672772, + "struct_fields": [ + { + "name": "roadDefinition", + "type_name": "keen::ObjectReference", + "type_hash": 1986988452, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ScatterImage", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3791648588, + "hash2": 863756323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterImage", + "type_name_2": "SceneScatterImage", + "qualified_name": "keen::SceneScatterImage", + "referenced_type_name": "keen::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2796087169, + "hash2": 1745663274, + "struct_fields": [ + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 3791648588, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterOrigin", + "type_name_2": "SceneScatterOrigin", + "qualified_name": "keen::SceneScatterOrigin", + "referenced_type_name": "keen::SceneObject", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2949362558, + "hash2": 1945021158, + "struct_fields": [ + { + "name": "distributionRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneAreaFlag", + "type_name_2": "SceneAreaFlag", + "qualified_name": "keen::SceneAreaFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Enum", + "hash1": 4084933005, + "hash2": 501134112, + "struct_fields": [], + "enum_fields": [ + { + "name": "BigDungeon", + "value": 0 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::SceneAreaFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 1593354821, + "hash2": 3738000590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneAreaFlagMask", + "type_name_2": "SceneAreaFlagMask", + "qualified_name": "keen::SceneAreaFlagMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4285494001, + "hash2": 4073296753, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayableArea", + "type_name_2": "ScenePlayableArea", + "qualified_name": "keen::ScenePlayableArea", + "referenced_type_name": "keen::SceneObject", + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1378340553, + "hash2": 757711995, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "flags", + "type_name": "keen::SceneAreaFlagMask", + "type_hash": 4285494001, + "data_offset": 76 + }, + { + "name": "mapMarkerId", + "type_name": "keen::LocaTagReference", + "type_hash": 2413391950, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineEvent", + "type_name_2": "SceneCinematicTimelineEvent", + "qualified_name": "keen::SceneCinematicTimelineEvent", + "referenced_type_name": "keen::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 842239840, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicCameraSmoothing", + "type_name_2": "SceneCinematicCameraSmoothing", + "qualified_name": "keen::SceneCinematicCameraSmoothing", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3728237182, + "hash2": 4058374364, + "struct_fields": [ + { + "name": "enableSmoothing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lerpSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneModel", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 342713070, + "hash2": 4177367570, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineAnimationEvent", + "type_name_2": "SceneCinematicTimeLineAnimationEvent", + "qualified_name": "keen::SceneCinematicTimeLineAnimationEvent", + "referenced_type_name": "keen::SceneCinematicTimelineEvent", + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1051532642, + "hash2": 4243915033, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::AnimationReference", + "type_hash": 1913901017, + "data_offset": 96 + }, + { + "name": "modelObject", + "type_name": "keen::ObjectReference", + "type_hash": 342713070, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineModelAnimationEvent", + "type_name_2": "SceneCinematicTimeLineModelAnimationEvent", + "qualified_name": "keen::SceneCinematicTimeLineModelAnimationEvent", + "referenced_type_name": "keen::SceneCinematicTimeLineAnimationEvent", + "class_size": 128, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 453622711, + "hash2": 2501233355, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineCameraAnimationEvent", + "type_name_2": "SceneCinematicTimeLineCameraAnimationEvent", + "qualified_name": "keen::SceneCinematicTimeLineCameraAnimationEvent", + "referenced_type_name": "keen::SceneCinematicTimeLineAnimationEvent", + "class_size": 136, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2544342877, + "hash2": 2821626987, + "struct_fields": [ + { + "name": "fovY", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineCameraEvent", + "type_name_2": "SceneCinematicTimeLineCameraEvent", + "qualified_name": "keen::SceneCinematicTimeLineCameraEvent", + "referenced_type_name": "keen::SceneCinematicTimelineEvent", + "class_size": 336, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3185449557, + "hash2": 1273378487, + "struct_fields": [ + { + "name": "key", + "type_name": "keen::SceneCamera", + "type_hash": 512731269, + "data_offset": 96 + }, + { + "name": "nextKey", + "type_name": "keen::SceneCamera", + "type_hash": 512731269, + "data_offset": 200 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 304 + }, + { + "name": "smoothing", + "type_name": "keen::SceneCinematicCameraSmoothing", + "type_hash": 3728237182, + "data_offset": 320 + }, + { + "name": "lerpSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 328 + }, + { + "name": "nextLerpSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 332 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneVoxelObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2345703268, + "hash2": 1414589295, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineEventMaterializeVoxelObject", + "type_name_2": "SceneCinematicTimelineEventMaterializeVoxelObject", + "qualified_name": "keen::SceneCinematicTimelineEventMaterializeVoxelObject", + "referenced_type_name": "keen::SceneCinematicTimelineEvent", + "class_size": 200, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3240818976, + "hash2": 2405681189, + "struct_fields": [ + { + "name": "voxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 2345703268, + "data_offset": 96 + }, + { + "name": "voxelData", + "type_name": "keen::SceneVoxelObject", + "type_hash": 2979015061, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceTrack", + "type_name_2": "SequenceTrack", + "qualified_name": "keen::SequenceTrack", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3788578614, + "hash2": 4237681606, + "struct_fields": [ + { + "name": "loopStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "loopEnd", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineTrack", + "type_name_2": "SceneCinematicTimelineTrack", + "qualified_name": "keen::SceneCinematicTimelineTrack", + "referenced_type_name": "keen::SequenceTrack", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2527607423, + "hash2": 2811218349, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineCameraTrack", + "type_name_2": "SceneCinematicTimelineCameraTrack", + "qualified_name": "keen::SceneCinematicTimelineCameraTrack", + "referenced_type_name": "keen::SceneCinematicTimelineTrack", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 456820038, + "hash2": 2699064014, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeline", + "type_name_2": "SceneCinematicTimeline", + "qualified_name": "keen::SceneCinematicTimeline", + "referenced_type_name": "keen::Sequence", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 75238968, + "hash2": 2126466098, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneCinematicTimeline", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 593816959, + "hash2": 2910296818, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematic", + "type_name_2": "SceneCinematic", + "qualified_name": "keen::SceneCinematic", + "referenced_type_name": "keen::SceneGroup", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3531998371, + "hash2": 2860442602, + "struct_fields": [ + { + "name": "timeline", + "type_name": "keen::ObjectReference", + "type_hash": 593816959, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CinematicDynamicModelObject", + "type_name_2": "CinematicDynamicModelObject", + "qualified_name": "keen::CinematicDynamicModelObject", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3068934506, + "hash2": 888983758, + "struct_fields": [ + { + "name": "objectGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "sceneModel", + "type_name": "keen::SceneModel", + "type_hash": 3834170355, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CinematicDynamicModelObject[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CinematicDynamicModelObject", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3272337523, + "hash2": 812841082, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CinematicSequenceResource", + "type_name_2": "CinematicSequenceResource", + "qualified_name": "keen::CinematicSequenceResource", + "referenced_type_name": "keen::SequenceResource", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 330043962, + "hash2": 3100282241, + "struct_fields": [ + { + "name": "dynamicModelObjects", + "type_name": "keen::BlobArray", + "type_hash": 3272337523, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicList", + "type_name_2": "SceneCinematicList", + "qualified_name": "keen::SceneCinematicList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3290039435, + "hash2": 1167881887, + "struct_fields": [ + { + "name": "cinematics", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneModelTemplate", + "type_name_2": "SceneModelTemplate", + "qualified_name": "keen::SceneModelTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3281755265, + "hash2": 1293794575, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelObjectTemplate", + "type_name_2": "SceneVoxelObjectTemplate", + "qualified_name": "keen::SceneVoxelObjectTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3193395291, + "hash2": 2400659345, + "struct_fields": [ + { + "name": "defaultVoxelModel", + "type_name": "keen::ObjectReference", + "type_hash": 3707186949, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelBrushTemplate", + "type_name_2": "SceneVoxelBrushTemplate", + "qualified_name": "keen::SceneVoxelBrushTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 138875976, + "hash2": 1293794575, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDestructionBubbleTemplate", + "type_name_2": "SceneDestructionBubbleTemplate", + "qualified_name": "keen::SceneDestructionBubbleTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3360490550, + "hash2": 1293794575, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneSurfaceMaterialBubbleTemplate", + "type_name_2": "SceneSurfaceMaterialBubbleTemplate", + "qualified_name": "keen::SceneSurfaceMaterialBubbleTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3972356320, + "hash2": 205728834, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "defaultMaterial", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelMultiBrushTemplate", + "type_name_2": "SceneVoxelMultiBrushTemplate", + "qualified_name": "keen::SceneVoxelMultiBrushTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2293204707, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntitySpawnTemplate", + "type_name_2": "SceneEntitySpawnTemplate", + "qualified_name": "keen::SceneEntitySpawnTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3200909618, + "hash2": 3581279217, + "struct_fields": [ + { + "name": "defaultEntityTemplate", + "type_name": "keen::ObjectReference", + "type_hash": 1554074834, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVfxTemplate", + "type_name_2": "SceneVfxTemplate", + "qualified_name": "keen::SceneVfxTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2334531968, + "hash2": 3678577618, + "struct_fields": [ + { + "name": "defaultEffect", + "type_name": "keen::ObjectReference", + "type_hash": 4249755544, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WhiteboxDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1401328988, + "hash2": 1364984695, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxTemplate", + "type_name_2": "SceneWhiteboxTemplate", + "qualified_name": "keen::SceneWhiteboxTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 39065998, + "hash2": 862022090, + "struct_fields": [ + { + "name": "defaultWhitebox", + "type_name": "keen::ObjectReference", + "type_hash": 1401328988, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadTemplate", + "type_name_2": "SceneRoadTemplate", + "qualified_name": "keen::SceneRoadTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1591724062, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterBlockerTemplate", + "type_name_2": "SceneScatterBlockerTemplate", + "qualified_name": "keen::SceneScatterBlockerTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1508108496, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDisplacementBlockerTemplate", + "type_name_2": "SceneDisplacementBlockerTemplate", + "qualified_name": "keen::SceneDisplacementBlockerTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 684754227, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneSoundTemplate", + "type_name_2": "SceneSoundTemplate", + "qualified_name": "keen::SceneSoundTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2954972955, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCameraTemplate", + "type_name_2": "SceneCameraTemplate", + "qualified_name": "keen::SceneCameraTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4028299755, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneInstanceTemplate", + "type_name_2": "SceneInstanceTemplate", + "qualified_name": "keen::SceneInstanceTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 488548327, + "hash2": 1853595404, + "struct_fields": [ + { + "name": "defaultScene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DungeonScene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2997394675, + "hash2": 2396316389, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonInstanceTemplate", + "type_name_2": "DungeonInstanceTemplate", + "qualified_name": "keen::DungeonInstanceTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1362370813, + "hash2": 1252660179, + "struct_fields": [ + { + "name": "defaultDungeon", + "type_name": "keen::ObjectReference", + "type_hash": 2997394675, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomInstanceTemplate", + "type_name_2": "DungeonRoomInstanceTemplate", + "qualified_name": "keen::DungeonRoomInstanceTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2361856038, + "hash2": 236659160, + "struct_fields": [ + { + "name": "defaultDungeonRoom", + "type_name": "keen::ObjectReference", + "type_hash": 3255385872, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadAttachmentPointTemplate", + "type_name_2": "SceneRoadAttachmentPointTemplate", + "qualified_name": "keen::SceneRoadAttachmentPointTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 609037795, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterOriginTemplate", + "type_name_2": "SceneScatterOriginTemplate", + "qualified_name": "keen::SceneScatterOriginTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2301937616, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayableAreaTemplate", + "type_name_2": "ScenePlayableAreaTemplate", + "qualified_name": "keen::ScenePlayableAreaTemplate", + "referenced_type_name": "keen::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1156340271, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterEntity", + "type_name_2": "SceneScatterEntity", + "qualified_name": "keen::SceneScatterEntity", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3966902447, + "hash2": 3636319736, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterChunkDataEntity", + "type_name_2": "SceneScatterChunkDataEntity", + "qualified_name": "keen::SceneScatterChunkDataEntity", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2737177278, + "hash2": 4216488550, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneScatterChunkDataEntity[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneScatterChunkDataEntity", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3404327923, + "hash2": 502657075, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterChunkData", + "type_name_2": "SceneScatterChunkData", + "qualified_name": "keen::SceneScatterChunkData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 494658345, + "hash2": 1043541677, + "struct_fields": [ + { + "name": "templateEntities", + "type_name": "keen::BlobArray", + "type_hash": 3404327923, + "data_offset": 0 + }, + { + "name": "modelEntities", + "type_name": "keen::BlobArray", + "type_hash": 3404327923, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTemplateModel", + "type_name_2": "SpawnTemplateModel", + "qualified_name": "keen::SpawnTemplateModel", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2750030536, + "hash2": 2122479763, + "struct_fields": [ + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "modelsGuid", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SpawnTemplateModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SpawnTemplateModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3018227, + "hash2": 325319731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTemplateModels", + "type_name_2": "SpawnTemplateModels", + "qualified_name": "keen::SpawnTemplateModels", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3298077793, + "hash2": 1462089729, + "struct_fields": [ + { + "name": "templateModels", + "type_name": "keen::BlobArray", + "type_hash": 3018227, + "data_offset": 0 + }, + { + "name": "templateCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTemplateGuids", + "type_name_2": "SpawnTemplateGuids", + "qualified_name": "keen::SpawnTemplateGuids", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1723551527, + "hash2": 4019520166, + "struct_fields": [ + { + "name": "templateGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + }, + { + "name": "templateCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneScatterEntity[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneScatterEntity", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2608300106, + "hash2": 2592233307, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ContentHash[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ContentHash", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1545481144, + "hash2": 1648061632, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterResource", + "type_name_2": "SceneScatterResource", + "qualified_name": "keen::SceneScatterResource", + "referenced_type_name": null, + "class_size": 116, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2619381512, + "hash2": 208102196, + "struct_fields": [ + { + "name": "scatterSet", + "type_name": "keen::ScatterSet3ResourceReference", + "type_hash": 1843543538, + "data_offset": 0 + }, + { + "name": "scatterStart", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "scatterSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "templates", + "type_name": "keen::BlobArray", + "type_hash": 2608300106, + "data_offset": 32 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 2608300106, + "data_offset": 40 + }, + { + "name": "templateGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 48 + }, + { + "name": "modelGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 56 + }, + { + "name": "templateNames", + "type_name": "keen::BlobArray", + "type_hash": 1718442631, + "data_offset": 64 + }, + { + "name": "modelNames", + "type_name": "keen::BlobArray", + "type_hash": 1718442631, + "data_offset": 72 + }, + { + "name": "spawnTemplateModels", + "type_name": "keen::SpawnTemplateModels", + "type_hash": 3298077793, + "data_offset": 80 + }, + { + "name": "debugMapSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 92 + }, + { + "name": "debugMapNames", + "type_name": "keen::BlobArray", + "type_hash": 1718442631, + "data_offset": 100 + }, + { + "name": "debugMaps", + "type_name": "keen::BlobArray", + "type_hash": 1545481144, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneScatterResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2715171339, + "hash2": 1667831718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterResourceReference", + "type_name_2": "SceneScatterResourceReference", + "qualified_name": "keen::SceneScatterResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1414735141, + "hash2": 3534614804, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterChunkResource", + "type_name_2": "SceneScatterChunkResource", + "qualified_name": "keen::SceneScatterChunkResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2989274697, + "hash2": 3519764367, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::BlobArray", + "type_hash": 2608300106, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 2608300106, + "data_offset": 8 + }, + { + "name": "templateGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 16 + }, + { + "name": "modelGuids", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 24 + }, + { + "name": "templateNames", + "type_name": "keen::BlobArray", + "type_hash": 1718442631, + "data_offset": 32 + }, + { + "name": "modelNames", + "type_name": "keen::BlobArray", + "type_hash": 1718442631, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayableAreaBox", + "type_name_2": "ScenePlayableAreaBox", + "qualified_name": "keen::ScenePlayableAreaBox", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2546470726, + "hash2": 948664894, + "struct_fields": [ + { + "name": "areaMin", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "areaMax", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 24 + }, + { + "name": "flags", + "type_name": "keen::SceneAreaFlagMask", + "type_hash": 4285494001, + "data_offset": 48 + }, + { + "name": "mapMarkerId", + "type_name": "keen::LocaTagId", + "type_hash": 186191172, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneProceduralLayer", + "type_name_2": "SceneProceduralLayer", + "qualified_name": "keen::SceneProceduralLayer", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1353797366, + "hash2": 3934253474, + "struct_fields": [ + { + "name": "contentPass", + "type_name": "keen::ContentPass", + "type_hash": 1212749034, + "data_offset": 0 + }, + { + "name": "scatterSet", + "type_name": "keen::ObjectReference", + "type_hash": 217922346, + "data_offset": 4 + }, + { + "name": "distributionTypeMask", + "type_name": "keen::WorldDistributionTypeFlags", + "type_hash": 62636875, + "data_offset": 20 + }, + { + "name": "content", + "type_name": "keen::SourceDataReference", + "type_hash": 1576207448, + "data_offset": 24 + }, + { + "name": "contentTags", + "type_name": "keen::SourceDataReference", + "type_hash": 1576207448, + "data_offset": 40 + }, + { + "name": "connectManualSubscenesToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneObjectType", + "type_name_2": "SceneObjectType", + "qualified_name": "keen::SceneObjectType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 28, + "primitive_type": "Enum", + "hash1": 1104760845, + "hash2": 3223531841, + "struct_fields": [], + "enum_fields": [ + { + "name": "Model", + "value": 0 + }, + { + "name": "PointLight", + "value": 1 + }, + { + "name": "Camera", + "value": 2 + }, + { + "name": "EntitySpawn", + "value": 3 + }, + { + "name": "VoxelObject", + "value": 4 + }, + { + "name": "VoxelBrush", + "value": 5 + }, + { + "name": "VoxelMultiBrush", + "value": 6 + }, + { + "name": "Vfx", + "value": 7 + }, + { + "name": "Sound", + "value": 8 + }, + { + "name": "Road", + "value": 9 + }, + { + "name": "RoadPoint", + "value": 10 + }, + { + "name": "ScatterBlocker", + "value": 11 + }, + { + "name": "DisplacementBlocker", + "value": 12 + }, + { + "name": "SceneInstance", + "value": 13 + }, + { + "name": "ProceduralLayer", + "value": 14 + }, + { + "name": "RoadAttachmentPoint", + "value": 15 + }, + { + "name": "ScatterOrigin", + "value": 16 + }, + { + "name": "PlayableArea", + "value": 17 + }, + { + "name": "Group", + "value": 18 + }, + { + "name": "Whitebox", + "value": 19 + }, + { + "name": "CaveCurve", + "value": 20 + }, + { + "name": "CaveCurvePoint", + "value": 21 + }, + { + "name": "DestructionBubble", + "value": 22 + }, + { + "name": "SurfaceMaterialBubble", + "value": 23 + }, + { + "name": "Tunnel", + "value": 24 + }, + { + "name": "TunnelPoint", + "value": 25 + }, + { + "name": "BlockOutBrush", + "value": 26 + }, + { + "name": "Sun", + "value": 27 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::SceneObjectType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 2504820560, + "hash2": 2448428610, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneObjectTypeMask", + "type_name_2": "SceneObjectTypeMask", + "qualified_name": "keen::SceneObjectTypeMask", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1596066161, + "hash2": 2001125295, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneTreeNode", + "type_name_2": "SceneTreeNode", + "qualified_name": "keen::SceneTreeNode", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1962781734, + "hash2": 338732310, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::SceneObjectType", + "type_hash": 1104760845, + "data_offset": 0 + }, + { + "name": "typeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "childStart", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "childCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDistributionDebugData", + "type_name_2": "SceneDistributionDebugData", + "qualified_name": "keen::SceneDistributionDebugData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 928257315, + "hash2": 1491105418, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDistributionTag", + "type_name_2": "SceneDistributionTag", + "qualified_name": "keen::SceneDistributionTag", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2868726340, + "hash2": 3766251868, + "struct_fields": [ + { + "name": "tagInfo", + "type_name": "keen::WhiteboxTagInfo", + "type_hash": 3874441520, + "data_offset": 0 + }, + { + "name": "sceneIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistributionLootInfo", + "type_name_2": "DistributionLootInfo", + "qualified_name": "keen::DistributionLootInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 878765622, + "hash2": 1407230750, + "struct_fields": [ + { + "name": "scatterSetId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "objectIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneModel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneModel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 128492330, + "hash2": 824797293, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneLightResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneLightResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3685033881, + "hash2": 397534376, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneCamera[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneCamera", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4198288126, + "hash2": 3556631127, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneEntitySpawnResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneEntitySpawnResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3839365795, + "hash2": 2902160879, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneVoxelObject[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneVoxelObject", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3788443440, + "hash2": 3392485165, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneDestructionBubble[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneDestructionBubble", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4225148447, + "hash2": 2078382247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneSurfaceMaterialBubble[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneSurfaceMaterialBubble", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3326284637, + "hash2": 2367159432, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneVfx[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneVfx", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1135201189, + "hash2": 28414083, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneSound[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneSound", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1533938340, + "hash2": 640210256, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentRoad[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentRoad", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2001681812, + "hash2": 648985279, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentCaveCurve[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentCaveCurve", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3319669034, + "hash2": 4064925941, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentTunnel[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentTunnel", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1520471456, + "hash2": 2189381162, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentBlockOut[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentBlockOut", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1906913659, + "hash2": 1990448506, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneScatterBlocker[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneScatterBlocker", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2777569907, + "hash2": 1269879823, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneDisplacementBlocker[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneDisplacementBlocker", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2968470396, + "hash2": 4009164771, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentInstance[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentInstance", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4230490083, + "hash2": 1778675481, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneDistributionTag[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneDistributionTag", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2126648783, + "hash2": 3079841981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DistributionLootInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DistributionLootInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 318638001, + "hash2": 3402082403, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneDistributionDebugData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneDistributionDebugData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1475284434, + "hash2": 596594749, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContent", + "type_name_2": "SceneContent", + "qualified_name": "keen::SceneContent", + "referenced_type_name": null, + "class_size": 212, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 1279732071, + "hash2": 1840719175, + "struct_fields": [ + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 128492330, + "data_offset": 0 + }, + { + "name": "pointLights", + "type_name": "keen::BlobArray", + "type_hash": 3685033881, + "data_offset": 8 + }, + { + "name": "cameras", + "type_name": "keen::BlobArray", + "type_hash": 4198288126, + "data_offset": 16 + }, + { + "name": "spawns", + "type_name": "keen::BlobArray", + "type_hash": 3839365795, + "data_offset": 24 + }, + { + "name": "voxelObjects", + "type_name": "keen::BlobArray", + "type_hash": 3788443440, + "data_offset": 32 + }, + { + "name": "voxelBrushes", + "type_name": "keen::BlobArray", + "type_hash": 2627614723, + "data_offset": 40 + }, + { + "name": "destructionBubbles", + "type_name": "keen::BlobArray", + "type_hash": 4225148447, + "data_offset": 48 + }, + { + "name": "surfaceMaterialBubbles", + "type_name": "keen::BlobArray", + "type_hash": 3326284637, + "data_offset": 56 + }, + { + "name": "vfxs", + "type_name": "keen::BlobArray", + "type_hash": 1135201189, + "data_offset": 64 + }, + { + "name": "sounds", + "type_name": "keen::BlobArray", + "type_hash": 1533938340, + "data_offset": 72 + }, + { + "name": "roads", + "type_name": "keen::BlobArray", + "type_hash": 2001681812, + "data_offset": 80 + }, + { + "name": "pendingRoads", + "type_name": "keen::BlobArray", + "type_hash": 2001681812, + "data_offset": 88 + }, + { + "name": "caves", + "type_name": "keen::BlobArray", + "type_hash": 3319669034, + "data_offset": 96 + }, + { + "name": "tunnels", + "type_name": "keen::BlobArray", + "type_hash": 1520471456, + "data_offset": 104 + }, + { + "name": "blockOuts", + "type_name": "keen::BlobArray", + "type_hash": 1906913659, + "data_offset": 112 + }, + { + "name": "scatterBlockers", + "type_name": "keen::BlobArray", + "type_hash": 2777569907, + "data_offset": 120 + }, + { + "name": "displacementBlockers", + "type_name": "keen::BlobArray", + "type_hash": 2968470396, + "data_offset": 128 + }, + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 4230490083, + "data_offset": 136 + }, + { + "name": "resolvedInstances", + "type_name": "keen::BlobArray", + "type_hash": 4230490083, + "data_offset": 144 + }, + { + "name": "dungeonRoomInstances", + "type_name": "keen::BlobArray", + "type_hash": 4230490083, + "data_offset": 152 + }, + { + "name": "playableAreas", + "type_name": "keen::BlobArray", + "type_hash": 453961541, + "data_offset": 160 + }, + { + "name": "proceduralLayers", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 168 + }, + { + "name": "distributionTags", + "type_name": "keen::BlobArray", + "type_hash": 2126648783, + "data_offset": 176 + }, + { + "name": "spawnLootInfos", + "type_name": "keen::BlobArray", + "type_hash": 318638001, + "data_offset": 184 + }, + { + "name": "sceneLootInfos", + "type_name": "keen::BlobArray", + "type_hash": 318638001, + "data_offset": 192 + }, + { + "name": "distributionDebugData", + "type_name": "keen::BlobArray", + "type_hash": 1475284434, + "data_offset": 200 + }, + { + "name": "isDebugDataDirty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContent[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3316346654, + "hash2": 841614155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentPasses", + "type_name_2": "SceneContentPasses", + "qualified_name": "keen::SceneContentPasses", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2679671690, + "hash2": 577760596, + "struct_fields": [ + { + "name": "passes", + "type_name": "keen::BlobArray", + "type_hash": 3316346654, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDestructionBubbles", + "type_name_2": "SceneDestructionBubbles", + "qualified_name": "keen::SceneDestructionBubbles", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1156276077, + "hash2": 1765940843, + "struct_fields": [ + { + "name": "bubbles", + "type_name": "keen::BlobArray", + "type_hash": 4225148447, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRuntimeContent", + "type_name_2": "SceneRuntimeContent", + "qualified_name": "keen::SceneRuntimeContent", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 11559887, + "hash2": 3192258003, + "struct_fields": [ + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 128492330, + "data_offset": 0 + }, + { + "name": "pointLights", + "type_name": "keen::BlobArray", + "type_hash": 3685033881, + "data_offset": 8 + }, + { + "name": "cameras", + "type_name": "keen::BlobArray", + "type_hash": 4198288126, + "data_offset": 16 + }, + { + "name": "spawns", + "type_name": "keen::BlobArray", + "type_hash": 3839365795, + "data_offset": 24 + }, + { + "name": "vfxs", + "type_name": "keen::BlobArray", + "type_hash": 1135201189, + "data_offset": 32 + }, + { + "name": "sounds", + "type_name": "keen::BlobArray", + "type_hash": 1533938340, + "data_offset": 40 + }, + { + "name": "scatterBlockers", + "type_name": "keen::BlobArray", + "type_hash": 2777569907, + "data_offset": 48 + }, + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 4230490083, + "data_offset": 56 + }, + { + "name": "playableAreas", + "type_name": "keen::BlobArray", + "type_hash": 453961541, + "data_offset": 64 + }, + { + "name": "proceduralLayers", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneVoxelContentPass[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneVoxelContentPass", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 399744155, + "hash2": 1635665079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelContent", + "type_name_2": "SceneVoxelContent", + "qualified_name": "keen::SceneVoxelContent", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2954838039, + "hash2": 2684313285, + "struct_fields": [ + { + "name": "passes", + "type_name": "keen::BlobArray", + "type_hash": 399744155, + "data_offset": 0 + }, + { + "name": "destructionBubbles", + "type_name": "keen::BlobArray", + "type_hash": 4225148447, + "data_offset": 8 + }, + { + "name": "surfaceMaterialBubbles", + "type_name": "keen::BlobArray", + "type_hash": 3326284637, + "data_offset": 16 + }, + { + "name": "nonConnectingRoads", + "type_name": "keen::BlobArray", + "type_hash": 2001681812, + "data_offset": 24 + }, + { + "name": "displacementBlockers", + "type_name": "keen::BlobArray", + "type_hash": 2968470396, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCombinedContent", + "type_name_2": "SceneCombinedContent", + "qualified_name": "keen::SceneCombinedContent", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 621734386, + "hash2": 4166305692, + "struct_fields": [ + { + "name": "runtime", + "type_name": "keen::SceneRuntimeContent", + "type_hash": 11559887, + "data_offset": 0 + }, + { + "name": "voxel", + "type_name": "keen::SceneVoxelContent", + "type_hash": 2954838039, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContentPassIndex", + "type_name_2": "ContentPassIndex", + "qualified_name": "keen::ContentPassIndex", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1054720254, + "hash2": 4143738727, + "struct_fields": [ + { + "name": "indexPath", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "depth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelContentPass", + "type_name_2": "SceneVoxelContentPass", + "qualified_name": "keen::SceneVoxelContentPass", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2262480346, + "hash2": 2956156850, + "struct_fields": [ + { + "name": "passIndex", + "type_name": "keen::ContentPassIndex", + "type_hash": 1054720254, + "data_offset": 0 + }, + { + "name": "blockOuts", + "type_name": "keen::BlobArray", + "type_hash": 1906913659, + "data_offset": 16 + }, + { + "name": "voxelObjects", + "type_name": "keen::BlobArray", + "type_hash": 3788443440, + "data_offset": 24 + }, + { + "name": "voxelBrushes", + "type_name": "keen::BlobArray", + "type_hash": 2627614723, + "data_offset": 32 + }, + { + "name": "caves", + "type_name": "keen::BlobArray", + "type_hash": 3319669034, + "data_offset": 40 + }, + { + "name": "tunnels", + "type_name": "keen::BlobArray", + "type_hash": 1520471456, + "data_offset": 48 + }, + { + "name": "roads", + "type_name": "keen::BlobArray", + "type_hash": 2001681812, + "data_offset": 56 + }, + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 4230490083, + "data_offset": 64 + }, + { + "name": "dungeonRoomInstances", + "type_name": "keen::BlobArray", + "type_hash": 4230490083, + "data_offset": 72 + }, + { + "name": "proceduralLayers", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentRoads", + "type_name_2": "SceneContentRoads", + "qualified_name": "keen::SceneContentRoads", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 835204466, + "hash2": 3890803392, + "struct_fields": [ + { + "name": "roads", + "type_name": "keen::BlobArray", + "type_hash": 2001681812, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadAttachment", + "type_name_2": "SceneRoadAttachment", + "qualified_name": "keen::SceneRoadAttachment", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1619113217, + "hash2": 251616725, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "definitionGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "definition", + "type_name": "keen::RoadDefinition", + "type_hash": 3216122013, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneRoadAttachment[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneRoadAttachment", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2211232174, + "hash2": 24843822, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneAttachments", + "type_name_2": "SceneAttachments", + "qualified_name": "keen::SceneAttachments", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1389264560, + "hash2": 1383123178, + "struct_fields": [ + { + "name": "roadAttachments", + "type_name": "keen::BlobArray", + "type_hash": 2211232174, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLightResource", + "type_name_2": "SceneLightResource", + "qualified_name": "keen::SceneLightResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 665664770, + "hash2": 3210857126, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "light", + "type_name": "keen::RenderLight", + "type_hash": 3224147310, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentRoadPoint", + "type_name_2": "SceneContentRoadPoint", + "qualified_name": "keen::SceneContentRoadPoint", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3950435585, + "hash2": 2239966446, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentRoadPoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentRoadPoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 734337854, + "hash2": 248992330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentRoad", + "type_name_2": "SceneContentRoad", + "qualified_name": "keen::SceneContentRoad", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2112005237, + "hash2": 1284159236, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "points", + "type_name": "keen::BlobArray", + "type_hash": 734337854, + "data_offset": 16 + }, + { + "name": "contentPass", + "type_name": "keen::ContentPass", + "type_hash": 1212749034, + "data_offset": 24 + }, + { + "name": "snapToOtherRoads", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BlockOutMeshPoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BlockOutMeshPoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 872426091, + "hash2": 2078248596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentBlockOut", + "type_name_2": "SceneContentBlockOut", + "qualified_name": "keen::SceneContentBlockOut", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1909933564, + "hash2": 822329289, + "struct_fields": [ + { + "name": "objectGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "points", + "type_name": "keen::BlobArray", + "type_hash": 872426091, + "data_offset": 72 + }, + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 80 + }, + { + "name": "enableTopDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "enableTopBrushScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + }, + { + "name": "negativeVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 98 + }, + { + "name": "ignoreDisplacementBlockers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 99 + }, + { + "name": "resolveBiomePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "scattering", + "type_name": "keen::ObjectReference", + "type_hash": 2869534565, + "data_offset": 104 + }, + { + "name": "removableFogId", + "type_name": "keen::ObjectReference", + "type_hash": 1947009712, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentCaveCurvePoint", + "type_name_2": "SceneContentCaveCurvePoint", + "qualified_name": "keen::SceneContentCaveCurvePoint", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2370107825, + "hash2": 3935749866, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentCaveCurvePoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentCaveCurvePoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3186438760, + "hash2": 4067610175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentCaveCurve", + "type_name_2": "SceneContentCaveCurve", + "qualified_name": "keen::SceneContentCaveCurve", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2789884229, + "hash2": 2021831760, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "mode", + "type_name": "keen::CaveVoxelMode", + "type_hash": 352593006, + "data_offset": 60 + }, + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 64 + }, + { + "name": "points", + "type_name": "keen::BlobArray", + "type_hash": 3186438760, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentTunnelPoint", + "type_name_2": "SceneContentTunnelPoint", + "qualified_name": "keen::SceneContentTunnelPoint", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1854194949, + "hash2": 3935749866, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneContentTunnelPoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneContentTunnelPoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3540039242, + "hash2": 2122702221, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentTunnel", + "type_name_2": "SceneContentTunnel", + "qualified_name": "keen::SceneContentTunnel", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2175929833, + "hash2": 2122499927, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "material", + "type_name": "keen::VoxelMaterialReference", + "type_hash": 3695282416, + "data_offset": 8 + }, + { + "name": "points", + "type_name": "keen::BlobArray", + "type_hash": 3540039242, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::ecs::SpawnComponent", + "class_size": 12, + "fields_count": 19, + "primitive_type": "BlobVariant", + "hash1": 3330388030, + "hash2": 471544569, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 967991881, + "hash2": 3655491970, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntitySpawnResource", + "type_name_2": "SceneEntitySpawnResource", + "qualified_name": "keen::SceneEntitySpawnResource", + "referenced_type_name": null, + "class_size": 312, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1338755596, + "hash2": 2114850434, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "templateReference", + "type_name": "keen::ecs::TemplateReference", + "type_hash": 1698873882, + "data_offset": 56 + }, + { + "name": "spawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 72 + }, + { + "name": "components", + "type_name": "keen::BlobArray>", + "type_hash": 967991881, + "data_offset": 300 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 308 + }, + { + "name": "enableFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 309 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentInstance", + "type_name_2": "SceneContentInstance", + "qualified_name": "keen::SceneContentInstance", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3286831636, + "hash2": 2507597891, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "instanceGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 56 + }, + { + "name": "sceneGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 72 + }, + { + "name": "connectToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneNoBuildZone", + "type_name_2": "SceneNoBuildZone", + "qualified_name": "keen::SceneNoBuildZone", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 561339705, + "hash2": 1206282998, + "struct_fields": [ + { + "name": "worldBoxMin", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "worldBoxMax", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 24 + }, + { + "name": "ambience", + "type_name": "keen::AmbientEnvironment", + "type_hash": 876159495, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneQuestEntity", + "type_name_2": "SceneQuestEntity", + "qualified_name": "keen::SceneQuestEntity", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 220739723, + "hash2": 3883072357, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobOptional", + "type_name_2": "Optional", + "qualified_name": "keen::BlobOptional", + "referenced_type_name": "keen::render::AtmosphereParameters", + "class_size": 4, + "fields_count": 0, + "primitive_type": "BlobOptional", + "hash1": 3468377418, + "hash2": 2204846925, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneTreeNode[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneTreeNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3760383971, + "hash2": 3355686616, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneNoBuildZone[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneNoBuildZone", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 131416064, + "hash2": 3686506907, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneQuestEntity[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneQuestEntity", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2655265622, + "hash2": 3322168113, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneResource", + "type_name_2": "SceneResource", + "qualified_name": "keen::SceneResource", + "referenced_type_name": null, + "class_size": 132, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 734432958, + "hash2": 3496759098, + "struct_fields": [ + { + "name": "ibl", + "type_name": "keen::ObjectReference", + "type_hash": 13272856, + "data_offset": 0 + }, + { + "name": "iblIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "atmosphereParameters", + "type_name": "keen::BlobOptional", + "type_hash": 3468377418, + "data_offset": 20 + }, + { + "name": "nodes", + "type_name": "keen::BlobArray", + "type_hash": 3760383971, + "data_offset": 24 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 128492330, + "data_offset": 32 + }, + { + "name": "lights", + "type_name": "keen::BlobArray", + "type_hash": 3685033881, + "data_offset": 40 + }, + { + "name": "cameras", + "type_name": "keen::BlobArray", + "type_hash": 4198288126, + "data_offset": 48 + }, + { + "name": "vfxs", + "type_name": "keen::BlobArray", + "type_hash": 1135201189, + "data_offset": 56 + }, + { + "name": "sounds", + "type_name": "keen::BlobArray", + "type_hash": 1533938340, + "data_offset": 64 + }, + { + "name": "noBuildZones", + "type_name": "keen::BlobArray", + "type_hash": 131416064, + "data_offset": 72 + }, + { + "name": "questEntities", + "type_name": "keen::BlobArray", + "type_hash": 2655265622, + "data_offset": 80 + }, + { + "name": "entityChunkCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 88 + }, + { + "name": "moveVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "scatterResource", + "type_name": "keen::SceneScatterResourceReference", + "type_hash": 1414735141, + "data_offset": 100 + }, + { + "name": "resetPlayersOutOfBounds", + "type_name": "keen::SceneResetPlayersOutOfBounds", + "type_hash": 1939661139, + "data_offset": 116 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ecs.TemplateReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ecs::TemplateReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2532689893, + "hash2": 3925886335, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneEntityChunkSpawn[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneEntityChunkSpawn", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2256349910, + "hash2": 2421871767, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneEntityExtraData[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneEntityExtraData", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3637134636, + "hash2": 82080307, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkResource", + "type_name_2": "SceneEntityChunkResource", + "qualified_name": "keen::SceneEntityChunkResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3741887066, + "hash2": 2356487510, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::BlobArray", + "type_hash": 2532689893, + "data_offset": 0 + }, + { + "name": "templatesDoNotSave", + "type_name": "keen::BlobArray", + "type_hash": 1014403065, + "data_offset": 8 + }, + { + "name": "models", + "type_name": "keen::BlobArray>", + "type_hash": 3737858023, + "data_offset": 16 + }, + { + "name": "entities", + "type_name": "keen::BlobArray", + "type_hash": 2256349910, + "data_offset": 24 + }, + { + "name": "entityExtraData", + "type_name": "keen::BlobArray", + "type_hash": 3637134636, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityExtraData", + "type_name_2": "SceneEntityExtraData", + "qualified_name": "keen::SceneEntityExtraData", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4141072329, + "hash2": 1461996161, + "struct_fields": [ + { + "name": "spawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 0 + }, + { + "name": "components", + "type_name": "keen::BlobArray>", + "type_hash": 967991881, + "data_offset": 228 + }, + { + "name": "enableFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 236 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkSpawn", + "type_name_2": "SceneEntityChunkSpawn", + "qualified_name": "keen::SceneEntityChunkSpawn", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1762607641, + "hash2": 4216488550, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobOptional", + "type_name_2": "Optional", + "qualified_name": "keen::BlobOptional", + "referenced_type_name": "keen::AxisAlignedBox", + "class_size": 4, + "fields_count": 0, + "primitive_type": "BlobOptional", + "hash1": 206086838, + "hash2": 1021340535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkTemplateInfo", + "type_name_2": "SceneEntityChunkTemplateInfo", + "qualified_name": "keen::SceneEntityChunkTemplateInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 823429800, + "hash2": 1045046480, + "struct_fields": [ + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "boundingBox", + "type_name": "keen::BlobOptional", + "type_hash": 206086838, + "data_offset": 16 + }, + { + "name": "fallbackModel", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 20 + }, + { + "name": "floorMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1870839069, + "data_offset": 36 + }, + { + "name": "floorMaterialRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "floorMaterialNoiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "floorMaterialShape", + "type_name": "keen::FloorMaterialShape", + "type_hash": 1069378994, + "data_offset": 60 + }, + { + "name": "doNotSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "isSkinned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneEntityChunkTemplateInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneEntityChunkTemplateInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1964256439, + "hash2": 3090627617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkTemplateInfos", + "type_name_2": "SceneEntityChunkTemplateInfos", + "qualified_name": "keen::SceneEntityChunkTemplateInfos", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 508991169, + "hash2": 3177314230, + "struct_fields": [ + { + "name": "infos", + "type_name": "keen::BlobArray", + "type_hash": 1964256439, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterBlockerChunk", + "type_name_2": "SceneScatterBlockerChunk", + "qualified_name": "keen::SceneScatterBlockerChunk", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3044141259, + "hash2": 3844610101, + "struct_fields": [ + { + "name": "scatterBlockers", + "type_name": "keen::BlobArray", + "type_hash": 2777569907, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneFloorMaterialInstance", + "type_name_2": "SceneFloorMaterialInstance", + "qualified_name": "keen::SceneFloorMaterialInstance", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3945822206, + "hash2": 993378747, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 1870839069, + "data_offset": 28 + }, + { + "name": "shape", + "type_name": "keen::FloorMaterialShape", + "type_hash": 1069378994, + "data_offset": 44 + }, + { + "name": "noiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneFloorMaterialInstance[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneFloorMaterialInstance", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 387789101, + "hash2": 1898192429, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneFloorMaterialChunk", + "type_name_2": "SceneFloorMaterialChunk", + "qualified_name": "keen::SceneFloorMaterialChunk", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1396776342, + "hash2": 1707839584, + "struct_fields": [ + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 387789101, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneResourceReference", + "type_name_2": "SceneResourceReference", + "qualified_name": "keen::SceneResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2705481355, + "hash2": 2635060362, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneInfo", + "type_name_2": "SceneInfo", + "qualified_name": "keen::SceneInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3580481206, + "hash2": 1531769668, + "struct_fields": [ + { + "name": "pivot", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "distributionTypeFlags", + "type_name": "keen::WorldDistributionTypeFlags", + "type_hash": 62636875, + "data_offset": 16 + }, + { + "name": "hasBuildingVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneBoundingBox", + "type_name_2": "SceneBoundingBox", + "qualified_name": "keen::SceneBoundingBox", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3409745471, + "hash2": 4084133744, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "pivot", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageAlias", + "type_name_2": "ScatterImageAlias", + "qualified_name": "keen::ScatterImageAlias", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 969755587, + "hash2": 412718975, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "replacement", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "ScatterImageAlias[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::ScatterImageAlias", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1486835044, + "hash2": 2331632376, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageAliases", + "type_name_2": "ScatterImageAliases", + "qualified_name": "keen::ScatterImageAliases", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2509034995, + "hash2": 4124725107, + "struct_fields": [ + { + "name": "aliases", + "type_name": "keen::BlobArray", + "type_hash": 1486835044, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScenePreview", + "type_name_2": "ScenePreview", + "qualified_name": "keen::ScenePreview", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2990561466, + "hash2": 2786685270, + "struct_fields": [ + { + "name": "modelIds", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + }, + { + "name": "transforms", + "type_name": "keen::BlobArray", + "type_hash": 841999713, + "data_offset": 8 + }, + { + "name": "objectTypes", + "type_name": "keen::SceneObjectTypeMask", + "type_hash": 1596066161, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneConverterConfig", + "type_name_2": "SceneConverterConfig", + "qualified_name": "keen::SceneConverterConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4220137616, + "hash2": 4026089959, + "struct_fields": [ + { + "name": "validateNonTestScenes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BenchmarkPointDebugContent", + "type_name_2": "BenchmarkPointDebugContent", + "qualified_name": "keen::BenchmarkPointDebugContent", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3501156417, + "hash2": 681855063, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BenchmarkPointDebugContent[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BenchmarkPointDebugContent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 90502900, + "hash2": 1876577099, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneResolvedDebugContent", + "type_name_2": "SceneResolvedDebugContent", + "qualified_name": "keen::SceneResolvedDebugContent", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2799070454, + "hash2": 394109695, + "struct_fields": [ + { + "name": "benchmarkPoints", + "type_name": "keen::BlobArray", + "type_hash": 90502900, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDebugContent", + "type_name_2": "SceneDebugContent", + "qualified_name": "keen::SceneDebugContent", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3153515078, + "hash2": 394109695, + "struct_fields": [ + { + "name": "benchmarkPoints", + "type_name": "keen::BlobArray", + "type_hash": 90502900, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SceneLevelDistributionSet", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4017893803, + "hash2": 3507410531, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistribution", + "type_name_2": "SceneLevelDistribution", + "qualified_name": "keen::SceneLevelDistribution", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 757585830, + "hash2": 1946926279, + "struct_fields": [ + { + "name": "levelDistributionSet", + "type_name": "keen::ObjectReference", + "type_hash": 4017893803, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistributionSet", + "type_name_2": "SceneLevelDistributionSet", + "qualified_name": "keen::SceneLevelDistributionSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 17614398, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelMap", + "type_name_2": "SceneLevelMap", + "qualified_name": "keen::SceneLevelMap", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1073468890, + "hash2": 1900310593, + "struct_fields": [ + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelMapConvertInfo", + "type_name_2": "SceneLevelMapConvertInfo", + "qualified_name": "keen::SceneLevelMapConvertInfo", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3362719489, + "hash2": 1885729911, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "imageId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "imageMetaData", + "type_name": "keen::ScatterImageMetaData", + "type_hash": 2856630484, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneLevelMapConvertInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneLevelMapConvertInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3660303184, + "hash2": 3926806631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistributionConvertParams", + "type_name_2": "SceneLevelDistributionConvertParams", + "qualified_name": "keen::SceneLevelDistributionConvertParams", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2105206899, + "hash2": 229588163, + "struct_fields": [ + { + "name": "sceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "levelDistributionSetObjectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "levelInfos", + "type_name": "keen::BlobArray", + "type_hash": 3660303184, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistributionSetInfo", + "type_name_2": "SceneLevelDistributionSetInfo", + "qualified_name": "keen::SceneLevelDistributionSetInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 668456798, + "hash2": 3990010564, + "struct_fields": [ + { + "name": "mapSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WhiteboxCollisionSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2937515708, + "hash2": 1235007031, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DungeonConnectionsConfig", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1681850462, + "hash2": 3152216819, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabLibrary", + "type_name_2": "PrefabLibrary", + "qualified_name": "keen::PrefabLibrary", + "referenced_type_name": "keen::Group", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1471799679, + "hash2": 3750629941, + "struct_fields": [ + { + "name": "collisions", + "type_name": "keen::ObjectReference", + "type_hash": 2937515708, + "data_offset": 0 + }, + { + "name": "connections", + "type_name": "keen::ObjectReference", + "type_hash": 1681850462, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabLibrarySettings", + "type_name_2": "PrefabLibrarySettings", + "qualified_name": "keen::PrefabLibrarySettings", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 818776114, + "hash2": 4243351682, + "struct_fields": [ + { + "name": "collisions", + "type_name": "keen::ObjectReference", + "type_hash": 2937515708, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonConnectionSetup[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonConnectionSetup", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 452274148, + "hash2": 74375546, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionInfo", + "type_name_2": "DungeonConnectionInfo", + "qualified_name": "keen::DungeonConnectionInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3256682024, + "hash2": 2169804598, + "struct_fields": [ + { + "name": "connectionPoints", + "type_name": "keen::BlobArray", + "type_hash": 452274148, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabDirectory", + "type_name_2": "PrefabDirectory", + "qualified_name": "keen::PrefabDirectory", + "referenced_type_name": "keen::Group", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3546314463, + "hash2": 4244116669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Prefab", + "type_name_2": "Prefab", + "qualified_name": "keen::Prefab", + "referenced_type_name": "keen::SceneInstance", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3397065396, + "hash2": 1659292618, + "struct_fields": [ + { + "name": "replacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabEntitySpawn", + "type_name_2": "PrefabEntitySpawn", + "qualified_name": "keen::PrefabEntitySpawn", + "referenced_type_name": "keen::SceneEntitySpawnResource", + "class_size": 336, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3230798730, + "hash2": 2638131563, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 312 + }, + { + "name": "contentPass", + "type_name": "keen::ContentPass", + "type_hash": 1212749034, + "data_offset": 328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TileContextFlags", + "type_name_2": "TileContextFlags", + "qualified_name": "keen::TileContextFlags", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Enum", + "hash1": 2224789300, + "hash2": 4117277261, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ground", + "value": 0 + }, + { + "name": "Wall", + "value": 1 + }, + { + "name": "Ceiling", + "value": 2 + }, + { + "name": "Stairs", + "value": 3 + }, + { + "name": "CornerLeft", + "value": 4 + }, + { + "name": "CornerRight", + "value": 5 + }, + { + "name": "Corridor", + "value": 6 + }, + { + "name": "Column", + "value": 7 + } + ] + }, + { + "type_name_1": "PrefabObjectContextInfo", + "type_name_2": "PrefabObjectContextInfo", + "qualified_name": "keen::PrefabObjectContextInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3958066898, + "hash2": 4003937762, + "struct_fields": [ + { + "name": "objectType", + "type_name": "keen::SceneObjectType", + "type_hash": 1104760845, + "data_offset": 0 + }, + { + "name": "passIndex", + "type_name": "keen::ContentPassIndex", + "type_hash": 1054720254, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::TileContextFlags", + "type_hash": 2224789300, + "data_offset": 24 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "forbidden", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerScope", + "type_name_2": "WhiteboxTriggerScope", + "qualified_name": "keen::WhiteboxTriggerScope", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 704996492, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabLootEntity", + "type_name_2": "PrefabLootEntity", + "qualified_name": "keen::PrefabLootEntity", + "referenced_type_name": null, + "class_size": 108, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2814784125, + "hash2": 2318741318, + "struct_fields": [ + { + "name": "spawnIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entityLootInfo", + "type_name": "keen::LootContainerInfo", + "type_hash": 3122533587, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabEntitySpawn[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabEntitySpawn", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 816291319, + "hash2": 2029073989, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabLootEntity[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabLootEntity", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3011235252, + "hash2": 127630193, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabObjectContextInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabObjectContextInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1670068803, + "hash2": 928783713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabContentPass[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabContentPass", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1658257913, + "hash2": 2420079828, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContent", + "type_name_2": "PrefabContent", + "qualified_name": "keen::PrefabContent", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2089707777, + "hash2": 1696609441, + "struct_fields": [ + { + "name": "spawns", + "type_name": "keen::BlobArray", + "type_hash": 816291319, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::BlobArray", + "type_hash": 128492330, + "data_offset": 8 + }, + { + "name": "destructionBubbles", + "type_name": "keen::BlobArray", + "type_hash": 4225148447, + "data_offset": 16 + }, + { + "name": "pointLights", + "type_name": "keen::BlobArray", + "type_hash": 3685033881, + "data_offset": 24 + }, + { + "name": "lootInfos", + "type_name": "keen::BlobArray", + "type_hash": 3011235252, + "data_offset": 32 + }, + { + "name": "contextInfos", + "type_name": "keen::BlobArray", + "type_hash": 1670068803, + "data_offset": 40 + }, + { + "name": "roads", + "type_name": "keen::BlobArray", + "type_hash": 2001681812, + "data_offset": 48 + }, + { + "name": "displacementBlockers", + "type_name": "keen::BlobArray", + "type_hash": 2968470396, + "data_offset": 56 + }, + { + "name": "passes", + "type_name": "keen::BlobArray", + "type_hash": 1658257913, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContentPass", + "type_name_2": "PrefabContentPass", + "qualified_name": "keen::PrefabContentPass", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 968741524, + "hash2": 776000605, + "struct_fields": [ + { + "name": "passIndex", + "type_name": "keen::ContentPassIndex", + "type_hash": 1054720254, + "data_offset": 0 + }, + { + "name": "voxelObjects", + "type_name": "keen::BlobArray", + "type_hash": 3788443440, + "data_offset": 16 + }, + { + "name": "voxelBrushes", + "type_name": "keen::BlobArray", + "type_hash": 2627614723, + "data_offset": 24 + }, + { + "name": "tunnels", + "type_name": "keen::BlobArray", + "type_hash": 1520471456, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Prefab", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2810270571, + "hash2": 582409129, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabEntityInfo", + "type_name_2": "PrefabEntityInfo", + "qualified_name": "keen::PrefabEntityInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1080179003, + "hash2": 2177337917, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 0 + }, + { + "name": "prefab", + "type_name": "keen::ObjectReference", + "type_hash": 2810270571, + "data_offset": 8 + }, + { + "name": "templateReference", + "type_name": "keen::ObjectReference", + "type_hash": 1554074834, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneDungeonRoomWhitebox[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneDungeonRoomWhitebox", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1528333476, + "hash2": 2033817694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabVoxelWorldSceneContent", + "type_name_2": "PrefabVoxelWorldSceneContent", + "qualified_name": "keen::PrefabVoxelWorldSceneContent", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3699201361, + "hash2": 1679448988, + "struct_fields": [ + { + "name": "whiteboxes", + "type_name": "keen::BlobArray", + "type_hash": 1528333476, + "data_offset": 0 + }, + { + "name": "voxelObjects", + "type_name": "keen::BlobArray", + "type_hash": 3788443440, + "data_offset": 8 + }, + { + "name": "voxelBrushes", + "type_name": "keen::BlobArray", + "type_hash": 2627614723, + "data_offset": 16 + }, + { + "name": "destructionBubbles", + "type_name": "keen::BlobArray", + "type_hash": 4225148447, + "data_offset": 24 + }, + { + "name": "roads", + "type_name": "keen::BlobArray", + "type_hash": 2001681812, + "data_offset": 32 + }, + { + "name": "tunnels", + "type_name": "keen::BlobArray", + "type_hash": 1520471456, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabWhiteboxResolveInfo", + "type_name_2": "PrefabWhiteboxResolveInfo", + "qualified_name": "keen::PrefabWhiteboxResolveInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3763565422, + "hash2": 2126686963, + "struct_fields": [ + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "contentPass", + "type_name": "keen::ContentPass", + "type_hash": 1212749034, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabEntityInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabEntityInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2347586330, + "hash2": 3725863093, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxEntityList", + "type_name_2": "WhiteboxEntityList", + "qualified_name": "keen::WhiteboxEntityList", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1088433991, + "hash2": 3711966328, + "struct_fields": [ + { + "name": "singleEntityPrefabs", + "type_name": "keen::BlobArray", + "type_hash": 2347586330, + "data_offset": 0 + }, + { + "name": "customPrefabs", + "type_name": "keen::BlobArray", + "type_hash": 2347586330, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "PrefabInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::PrefabInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3960360715, + "hash2": 3119109204, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxOptions", + "type_name_2": "WhiteboxOptions", + "qualified_name": "keen::WhiteboxOptions", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2097903130, + "hash2": 1961013873, + "struct_fields": [ + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "reducePrefabProbability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "prefabs", + "type_name": "keen::BlobArray", + "type_hash": 3960360715, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabInfo", + "type_name_2": "PrefabInfo", + "qualified_name": "keen::PrefabInfo", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3637224, + "hash2": 285057118, + "struct_fields": [ + { + "name": "prefab", + "type_name": "keen::ObjectReference", + "type_hash": 2810270571, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1309349269, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTileType", + "type_name_2": "WhiteboxTileType", + "qualified_name": "keen::WhiteboxTileType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 647932984, + "hash2": 739084085, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Ground", + "value": 1 + }, + { + "name": "Wall", + "value": 2 + }, + { + "name": "Ceiling", + "value": 3 + }, + { + "name": "Stairs", + "value": 4 + }, + { + "name": "Column", + "value": 5 + } + ] + }, + { + "type_name_1": "WhiteboxDefinitionModelVisibility", + "type_name_2": "WhiteboxDefinitionModelVisibility", + "qualified_name": "keen::WhiteboxDefinitionModelVisibility", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3973109642, + "hash2": 1703054222, + "struct_fields": [ + { + "name": "voxelMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "editMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "brushMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxDefinition", + "type_name_2": "WhiteboxDefinition", + "qualified_name": "keen::WhiteboxDefinition", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3605749005, + "hash2": 3014614795, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + }, + { + "name": "modelVisibility", + "type_name": "keen::WhiteboxDefinitionModelVisibility", + "type_hash": 3973109642, + "data_offset": 16 + }, + { + "name": "reducePrefabProbability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "type", + "type_name": "keen::WhiteboxTileType", + "type_hash": 647932984, + "data_offset": 20 + }, + { + "name": "gridSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "tintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + }, + { + "name": "modelScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::TileContextFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 3560512082, + "hash2": 1489572928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TileContextFlagMask", + "type_name_2": "TileContextFlagMask", + "qualified_name": "keen::TileContextFlagMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1098626699, + "hash2": 3343177383, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTileContext", + "type_name_2": "WhiteboxTileContext", + "qualified_name": "keen::WhiteboxTileContext", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1132626243, + "hash2": 1469681889, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::TileContextFlagMask", + "type_hash": 1098626699, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonRoomWhitebox", + "type_name_2": "SceneDungeonRoomWhitebox", + "qualified_name": "keen::SceneDungeonRoomWhitebox", + "referenced_type_name": "keen::SceneObject", + "class_size": 336, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 125844129, + "hash2": 1532120816, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 64 + }, + { + "name": "definition", + "type_name": "keen::ObjectReference", + "type_hash": 1401328988, + "data_offset": 72 + }, + { + "name": "replacementProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "randomRotationOffsetX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "randomRotationOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "randomRotationOffsetZ", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "spawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomDirectory", + "type_name_2": "DungeonRoomDirectory", + "qualified_name": "keen::DungeonRoomDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3298019286, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomScene", + "type_name_2": "DungeonRoomScene", + "qualified_name": "keen::DungeonRoomScene", + "referenced_type_name": "keen::Scene", + "class_size": 188, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1991456797, + "hash2": 55544127, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomRayDedubg", + "type_name_2": "DungeonRoomRayDedubg", + "qualified_name": "keen::DungeonRoomRayDedubg", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2299069802, + "hash2": 319767385, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "end", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "hit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonRoomRayDedubg[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonRoomRayDedubg", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3997830405, + "hash2": 2563287364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomCollisionsDebugInfo", + "type_name_2": "DungeonRoomCollisionsDebugInfo", + "qualified_name": "keen::DungeonRoomCollisionsDebugInfo", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4040442457, + "hash2": 501301844, + "struct_fields": [ + { + "name": "rayChecks", + "type_name": "keen::BlobArray", + "type_hash": 3997830405, + "data_offset": 0 + }, + { + "name": "checkBoundingBoxes", + "type_name": "keen::BlobArray", + "type_hash": 2396399805, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomShapes", + "type_name_2": "DungeonRoomShapes", + "qualified_name": "keen::DungeonRoomShapes", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3867915009, + "hash2": 954145599, + "struct_fields": [ + { + "name": "boundingBoxes", + "type_name": "keen::BlobArray", + "type_hash": 2396399805, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomSceneLayerGroup", + "type_name_2": "DungeonRoomSceneLayerGroup", + "qualified_name": "keen::DungeonRoomSceneLayerGroup", + "referenced_type_name": "keen::SceneGroup", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 765719665, + "hash2": 3110762398, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RoomConnectionPointType", + "type_name_2": "RoomConnectionPointType", + "qualified_name": "keen::RoomConnectionPointType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3117357045, + "hash2": 1757163519, + "struct_fields": [], + "enum_fields": [ + { + "name": "Door", + "value": 0 + }, + { + "name": "RoadPoint", + "value": 1 + } + ] + }, + { + "type_name_1": "DungeonRoomConnectionPoint", + "type_name_2": "DungeonRoomConnectionPoint", + "qualified_name": "keen::DungeonRoomConnectionPoint", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3698683535, + "hash2": 429125095, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "roomInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "roomSceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 32 + }, + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 64 + }, + { + "name": "type", + "type_name": "keen::RoomConnectionPointType", + "type_hash": 3117357045, + "data_offset": 120 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 128 + }, + { + "name": "identifier", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonRoomConnectionPoint[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonRoomConnectionPoint", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 332586626, + "hash2": 4121200518, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomConnectionPoints", + "type_name_2": "DungeonRoomConnectionPoints", + "qualified_name": "keen::DungeonRoomConnectionPoints", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 148747956, + "hash2": 2970643778, + "struct_fields": [ + { + "name": "connections", + "type_name": "keen::BlobArray", + "type_hash": 332586626, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionPointInfo", + "type_name_2": "DungeonConnectionPointInfo", + "qualified_name": "keen::DungeonConnectionPointInfo", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1516376626, + "hash2": 2149534079, + "struct_fields": [ + { + "name": "pointA", + "type_name": "keen::DungeonRoomConnectionPoint", + "type_hash": 3698683535, + "data_offset": 0 + }, + { + "name": "pointB", + "type_name": "keen::DungeonRoomConnectionPoint", + "type_hash": 3698683535, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonConnectionPointInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonConnectionPointInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2475184233, + "hash2": 1361064445, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionPoints", + "type_name_2": "DungeonConnectionPoints", + "qualified_name": "keen::DungeonConnectionPoints", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3961640699, + "hash2": 672724149, + "struct_fields": [ + { + "name": "connections", + "type_name": "keen::BlobArray", + "type_hash": 2475184233, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonWhiteboxReplacement", + "type_name_2": "DungeonWhiteboxReplacement", + "qualified_name": "keen::DungeonWhiteboxReplacement", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3612122618, + "hash2": 4109839116, + "struct_fields": [ + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "newWhiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonWhiteboxReplacement[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonWhiteboxReplacement", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2834838905, + "hash2": 2009946073, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonWhiteboxReplacements", + "type_name_2": "DungeonWhiteboxReplacements", + "qualified_name": "keen::DungeonWhiteboxReplacements", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1989934763, + "hash2": 2614750471, + "struct_fields": [ + { + "name": "replacements", + "type_name": "keen::BlobArray", + "type_hash": 2834838905, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonEntranceInfo", + "type_name_2": "DungeonEntranceInfo", + "qualified_name": "keen::DungeonEntranceInfo", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2550129906, + "hash2": 3366175826, + "struct_fields": [ + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "identifier", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 16 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 24 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "DungeonEntranceInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::DungeonEntranceInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3367314739, + "hash2": 2606041103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomEntranceList", + "type_name_2": "DungeonRoomEntranceList", + "qualified_name": "keen::DungeonRoomEntranceList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 351378521, + "hash2": 3192209640, + "struct_fields": [ + { + "name": "entrances", + "type_name": "keen::BlobArray", + "type_hash": 3367314739, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomEntranceConvertInfo", + "type_name_2": "DungeonRoomEntranceConvertInfo", + "qualified_name": "keen::DungeonRoomEntranceConvertInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3809546172, + "hash2": 1342186764, + "struct_fields": [ + { + "name": "markedEntrances", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionSetup", + "type_name_2": "WhiteboxCollisionSetup", + "qualified_name": "keen::WhiteboxCollisionSetup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1498881177, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionGroup", + "type_name_2": "WhiteboxCollisionGroup", + "qualified_name": "keen::WhiteboxCollisionGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3436526447, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionItem", + "type_name_2": "WhiteboxCollisionItem", + "qualified_name": "keen::WhiteboxCollisionItem", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3834056275, + "hash2": 1365349548, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ObjectReference", + "type_hash": 1401328988, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxCollisionItem[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxCollisionItem", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2658198712, + "hash2": 3102646266, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionGroupInfo", + "type_name_2": "WhiteboxCollisionGroupInfo", + "qualified_name": "keen::WhiteboxCollisionGroupInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 209245499, + "hash2": 3820558492, + "struct_fields": [ + { + "name": "items", + "type_name": "keen::BlobArray", + "type_hash": 2658198712, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxCollisionGroupInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxCollisionGroupInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3752429050, + "hash2": 2795166758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionInfo", + "type_name_2": "WhiteboxCollisionInfo", + "qualified_name": "keen::WhiteboxCollisionInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3608514176, + "hash2": 948377716, + "struct_fields": [ + { + "name": "groups", + "type_name": "keen::BlobArray", + "type_hash": 3752429050, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxContextSetup", + "type_name_2": "WhiteboxContextSetup", + "qualified_name": "keen::WhiteboxContextSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1647450904, + "hash2": 485420372, + "struct_fields": [ + { + "name": "groundTag", + "type_name": "keen::ObjectReference", + "type_hash": 1188361337, + "data_offset": 0 + }, + { + "name": "ceilingTag", + "type_name": "keen::ObjectReference", + "type_hash": 1188361337, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionsConfig", + "type_name_2": "DungeonConnectionsConfig", + "qualified_name": "keen::DungeonConnectionsConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 58459815, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionSetup", + "type_name_2": "DungeonConnectionSetup", + "qualified_name": "keen::DungeonConnectionSetup", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 797527009, + "hash2": 1938821965, + "struct_fields": [ + { + "name": "connectionWhitebox", + "type_name": "keen::ObjectReference", + "type_hash": 1401328988, + "data_offset": 0 + }, + { + "name": "replacementOtherConnection", + "type_name": "keen::ObjectReference", + "type_hash": 1401328988, + "data_offset": 16 + }, + { + "name": "replacementRoadPoint", + "type_name": "keen::ObjectReference", + "type_hash": 1401328988, + "data_offset": 32 + }, + { + "name": "replacementWithoutConnection", + "type_name": "keen::ObjectReference", + "type_hash": 1401328988, + "data_offset": 48 + }, + { + "name": "connectionAABB", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxNodeType", + "type_name_2": "WhiteboxNodeType", + "qualified_name": "keen::WhiteboxNodeType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3894314696, + "hash2": 981607818, + "struct_fields": [], + "enum_fields": [ + { + "name": "SceneInstance", + "value": 0 + }, + { + "name": "Whitebox", + "value": 1 + } + ] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxTriggerInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxTriggerInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1454686825, + "hash2": 2832089386, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxConvertInfo", + "type_name_2": "WhiteboxConvertInfo", + "qualified_name": "keen::WhiteboxConvertInfo", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3179700023, + "hash2": 2932221167, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::WhiteboxNodeType", + "type_hash": 3894314696, + "data_offset": 8 + }, + { + "name": "replacementObjectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + }, + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 28 + }, + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 44 + }, + { + "name": "passIndex", + "type_name": "keen::ContentPassIndex", + "type_hash": 1054720254, + "data_offset": 64 + }, + { + "name": "roomTileContext", + "type_name": "keen::WhiteboxTileContext", + "type_hash": 1132626243, + "data_offset": 80 + }, + { + "name": "requiredRoomTileContext", + "type_name": "keen::WhiteboxTileContext", + "type_hash": 1132626243, + "data_offset": 81 + }, + { + "name": "forbiddenRoomTileContext", + "type_name": "keen::WhiteboxTileContext", + "type_hash": 1132626243, + "data_offset": 82 + }, + { + "name": "requiredTriggers", + "type_name": "keen::BlobArray", + "type_hash": 2791104128, + "data_offset": 84 + }, + { + "name": "triggerInfos", + "type_name": "keen::BlobArray", + "type_hash": 1454686825, + "data_offset": 92 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 104 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1309349269, + "data_offset": 160 + }, + { + "name": "randomRotationOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 168 + }, + { + "name": "replacementProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 180 + }, + { + "name": "entitySpawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 184 + }, + { + "name": "triggerGraphId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 412 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxConvertInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxConvertInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 871272048, + "hash2": 1751807732, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementPass", + "type_name_2": "WhiteboxReplacementPass", + "qualified_name": "keen::WhiteboxReplacementPass", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 929299417, + "hash2": 1880038679, + "struct_fields": [ + { + "name": "replacements", + "type_name": "keen::BlobArray", + "type_hash": 871272048, + "data_offset": 0 + }, + { + "name": "failedReplacements", + "type_name": "keen::BlobArray", + "type_hash": 871272048, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxReplacementInfoPass[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxReplacementInfoPass", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4258776450, + "hash2": 3172312699, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementInfoPasses", + "type_name_2": "WhiteboxReplacementInfoPasses", + "qualified_name": "keen::WhiteboxReplacementInfoPasses", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 814048057, + "hash2": 1401053939, + "struct_fields": [ + { + "name": "passes", + "type_name": "keen::BlobArray", + "type_hash": 4258776450, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WhiteboxReplacementInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WhiteboxReplacementInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 4035963025, + "hash2": 3198881138, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementInfoPass", + "type_name_2": "WhiteboxReplacementInfoPass", + "qualified_name": "keen::WhiteboxReplacementInfoPass", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 658218549, + "hash2": 3442709359, + "struct_fields": [ + { + "name": "passIndex", + "type_name": "keen::ContentPassIndex", + "type_hash": 1054720254, + "data_offset": 0 + }, + { + "name": "replacements", + "type_name": "keen::BlobArray", + "type_hash": 4035963025, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementInfo", + "type_name_2": "WhiteboxReplacementInfo", + "qualified_name": "keen::WhiteboxReplacementInfo", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1102047804, + "hash2": 390219621, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "sceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 24 + }, + { + "name": "triggers", + "type_name": "keen::BlobArray", + "type_hash": 1454686825, + "data_offset": 80 + }, + { + "name": "roomTileContext", + "type_name": "keen::WhiteboxTileContext", + "type_hash": 1132626243, + "data_offset": 88 + }, + { + "name": "entitySpawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxContentInfo", + "type_name_2": "SceneWhiteboxContentInfo", + "qualified_name": "keen::SceneWhiteboxContentInfo", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1074314569, + "hash2": 2580346825, + "struct_fields": [ + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "passIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 40 + }, + { + "name": "randomRotationOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "replacementProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1309349269, + "data_offset": 112 + }, + { + "name": "requiredRoomTileContext", + "type_name": "keen::WhiteboxTileContext", + "type_hash": 1132626243, + "data_offset": 120 + }, + { + "name": "forbiddenRoomTileContext", + "type_name": "keen::WhiteboxTileContext", + "type_hash": 1132626243, + "data_offset": 121 + }, + { + "name": "entitySpawnData", + "type_name": "keen::SceneEntitySpawnData", + "type_hash": 1486311888, + "data_offset": 124 + }, + { + "name": "triggerGraphId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneWhiteboxContentInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneWhiteboxContentInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3320975516, + "hash2": 3281661208, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxInfo", + "type_name_2": "SceneWhiteboxInfo", + "qualified_name": "keen::SceneWhiteboxInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1640202520, + "hash2": 3492721503, + "struct_fields": [ + { + "name": "whiteboxes", + "type_name": "keen::BlobArray", + "type_hash": 3320975516, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxErrorInfo", + "type_name_2": "SceneWhiteboxErrorInfo", + "qualified_name": "keen::SceneWhiteboxErrorInfo", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3442951530, + "hash2": 1570548688, + "struct_fields": [ + { + "name": "failedReplacementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagList", + "type_name_2": "WhiteboxTagList", + "qualified_name": "keen::WhiteboxTagList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2381353396, + "hash2": 907916684, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::BlobArray", + "type_hash": 1309349269, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonRoomInstance", + "type_name_2": "SceneDungeonRoomInstance", + "qualified_name": "keen::SceneDungeonRoomInstance", + "referenced_type_name": "keen::SceneObject", + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 511188092, + "hash2": 96644836, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 64 + }, + { + "name": "room", + "type_name": "keen::ObjectReference", + "type_hash": 3255385872, + "data_offset": 72 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 88 + }, + { + "name": "whiteboxSeed", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::DungeonRoomSceneLayerGroup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1683684972, + "hash2": 423711518, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonRoomLayerGroupInstance", + "type_name_2": "SceneDungeonRoomLayerGroupInstance", + "qualified_name": "keen::SceneDungeonRoomLayerGroupInstance", + "referenced_type_name": "keen::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3118456272, + "hash2": 2291177607, + "struct_fields": [ + { + "name": "layerGroup", + "type_name": "keen::ObjectReference", + "type_hash": 1683684972, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonEntranceDefinition", + "type_name_2": "DungeonEntranceDefinition", + "qualified_name": "keen::DungeonEntranceDefinition", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2461388699, + "hash2": 4225187578, + "struct_fields": [ + { + "name": "whitebox", + "type_name": "keen::ObjectReference", + "type_hash": 1945367648, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionPriority", + "type_name_2": "DungeonConnectionPriority", + "qualified_name": "keen::DungeonConnectionPriority", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1739109948, + "hash2": 3116354927, + "struct_fields": [ + { + "name": "room", + "type_name": "keen::ObjectReference", + "type_hash": 1213352691, + "data_offset": 0 + }, + { + "name": "whitebox", + "type_name": "keen::ObjectReference", + "type_hash": 1945367648, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonDirectory", + "type_name_2": "DungeonDirectory", + "qualified_name": "keen::DungeonDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 816910095, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonScene", + "type_name_2": "DungeonScene", + "qualified_name": "keen::DungeonScene", + "referenced_type_name": "keen::Scene", + "class_size": 176, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2292710332, + "hash2": 2143270963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonInstance", + "type_name_2": "SceneDungeonInstance", + "qualified_name": "keen::SceneDungeonInstance", + "referenced_type_name": "keen::SceneObject", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 451654111, + "hash2": 899530053, + "struct_fields": [ + { + "name": "dungeon", + "type_name": "keen::ObjectReference", + "type_hash": 2997394675, + "data_offset": 64 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 80 + }, + { + "name": "whiteboxSeed", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxPathParameters", + "type_name_2": "SceneWhiteboxPathParameters", + "qualified_name": "keen::SceneWhiteboxPathParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4113493291, + "hash2": 4101032000, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "rootSceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 56 + }, + { + "name": "sceneInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 72 + }, + { + "name": "seed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SceneWhiteboxPathParameters[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SceneWhiteboxPathParameters", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2053879896, + "hash2": 3783179817, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxPathList", + "type_name_2": "SceneWhiteboxPathList", + "qualified_name": "keen::SceneWhiteboxPathList", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1426452251, + "hash2": 1542541410, + "struct_fields": [ + { + "name": "rootScene", + "type_name": "keen::SceneWhiteboxPathParameters", + "type_hash": 4113493291, + "data_offset": 0 + }, + { + "name": "subscenes", + "type_name": "keen::BlobArray", + "type_hash": 2053879896, + "data_offset": 96 + }, + { + "name": "scatterScenes", + "type_name": "keen::BlobArray", + "type_hash": 2053879896, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContentLabelInfo", + "type_name_2": "ContentLabelInfo", + "qualified_name": "keen::ContentLabelInfo", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3849027499, + "hash2": 3273524383, + "struct_fields": [ + { + "name": "whiteboxLabels", + "type_name": "keen::BlobArray", + "type_hash": 1309349269, + "data_offset": 0 + }, + { + "name": "lootSettings", + "type_name": "keen::ObjectLootSettings", + "type_hash": 3798070922, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTag", + "type_name_2": "ecs.EntityTag", + "qualified_name": "keen::ecs::EntityTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 623314400, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ForbiddenEntityTags", + "type_name_2": "ForbiddenEntityTags", + "qualified_name": "keen::ForbiddenEntityTags", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2279675577, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Sequence", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3436576478, + "hash2": 3922729849, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceReference", + "type_name_2": "SequenceReference", + "qualified_name": "keen::SequenceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2396401652, + "hash2": 3720005445, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugAction", + "type_name_2": "SessionDebugAction", + "qualified_name": "keen::SessionDebugAction", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3217275383, + "hash2": 3752359083, + "struct_fields": [], + "enum_fields": [ + { + "name": "Start", + "value": 0 + }, + { + "name": "Stop", + "value": 1 + } + ] + }, + { + "type_name_1": "SessionDebugActionMessage", + "type_name_2": "SessionDebugActionMessage", + "qualified_name": "keen::SessionDebugActionMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1186351510, + "hash2": 2023800139, + "struct_fields": [ + { + "name": "action", + "type_name": "keen::SessionDebugAction", + "type_hash": 3217275383, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugChannelInfo", + "type_name_2": "SessionDebugChannelInfo", + "qualified_name": "keen::SessionDebugChannelInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4017390720, + "hash2": 3784919977, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SessionDebugChannelInfo[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SessionDebugChannelInfo", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3468739237, + "hash2": 4101206064, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugChannelsMessage", + "type_name_2": "SessionDebugChannelsMessage", + "qualified_name": "keen::SessionDebugChannelsMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 816413660, + "hash2": 2221050340, + "struct_fields": [ + { + "name": "channels", + "type_name": "keen::BlobArray", + "type_hash": 3468739237, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketChannel", + "type_name_2": "SessionDebugPacketChannel", + "qualified_name": "keen::SessionDebugPacketChannel", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1779996544, + "hash2": 1016295323, + "struct_fields": [ + { + "name": "messageSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "messageCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketsChannel", + "type_name_2": "SessionDebugPacketsChannel", + "qualified_name": "keen::SessionDebugPacketsChannel", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3506441657, + "hash2": 2457392787, + "struct_fields": [ + { + "name": "totalMessageSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "totalMessageCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "messageSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "messageCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SessionDebugPacketChannel[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::SessionDebugPacketChannel", + "class_size": 128, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 1772934459, + "hash2": 2185599993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketChannels", + "type_name_2": "SessionDebugPacketChannels", + "qualified_name": "keen::SessionDebugPacketChannels", + "referenced_type_name": "keen::StaticArray", + "class_size": 128, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4155978633, + "hash2": 2405662659, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SessionDebugPacketsChannel[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::SessionDebugPacketsChannel", + "class_size": 768, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 3131642886, + "hash2": 4172654535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketsChannels", + "type_name_2": "SessionDebugPacketsChannels", + "qualified_name": "keen::SessionDebugPacketsChannels", + "referenced_type_name": "keen::StaticArray", + "class_size": 768, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3440751870, + "hash2": 2571808141, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacket", + "type_name_2": "SessionDebugPacket", + "qualified_name": "keen::SessionDebugPacket", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2149766857, + "hash2": 2770100300, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "oldestMessageTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "machineId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "packetId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "packetSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "machineIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 28 + }, + { + "name": "channels", + "type_name": "keen::SessionDebugPacketChannels", + "type_hash": 4155978633, + "data_offset": 30 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketMessage", + "type_name_2": "SessionDebugPacketMessage", + "qualified_name": "keen::SessionDebugPacketMessage", + "referenced_type_name": null, + "class_size": 800, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2788845280, + "hash2": 819965805, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "machineId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "packetsChannels", + "type_name": "keen::SessionDebugPacketsChannels", + "type_hash": 3440751870, + "data_offset": 16 + }, + { + "name": "totalPacketsSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 784 + }, + { + "name": "packetsSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 792 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SessionDebugPacket[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SessionDebugPacket", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3884397520, + "hash2": 4294779832, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketSendMessage", + "type_name_2": "SessionDebugPacketSendMessage", + "qualified_name": "keen::SessionDebugPacketSendMessage", + "referenced_type_name": "keen::SessionDebugPacketMessage", + "class_size": 808, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 277419378, + "hash2": 1728820495, + "struct_fields": [ + { + "name": "packets", + "type_name": "keen::BlobArray", + "type_hash": 3884397520, + "data_offset": 800 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketRecvMessage", + "type_name_2": "SessionDebugPacketRecvMessage", + "qualified_name": "keen::SessionDebugPacketRecvMessage", + "referenced_type_name": "keen::SessionDebugPacketMessage", + "class_size": 808, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2805932072, + "hash2": 1728820495, + "struct_fields": [ + { + "name": "packets", + "type_name": "keen::BlobArray", + "type_hash": 3884397520, + "data_offset": 800 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugMachineStats", + "type_name_2": "SessionDebugMachineStats", + "qualified_name": "keen::SessionDebugMachineStats", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3373172605, + "hash2": 415689885, + "struct_fields": [ + { + "name": "machineIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "lostPackets", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "roundTripTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "bandwidthLimitInBps", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SessionDebugMachineStats[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SessionDebugMachineStats", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 565691940, + "hash2": 1307259953, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugStatsMessage", + "type_name_2": "SessionDebugStatsMessage", + "qualified_name": "keen::SessionDebugStatsMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 762441603, + "hash2": 2856180809, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "machineStats", + "type_name": "keen::BlobArray", + "type_hash": 565691940, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameParameters", + "type_name_2": "GameParameters", + "qualified_name": "keen::GameParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2262705312, + "hash2": 1183123561, + "struct_fields": [ + { + "name": "flameLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "gameSettingsPreset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContentType", + "type_name_2": "SoundContentType", + "qualified_name": "keen::SoundContentType", + "referenced_type_name": "keen::sint32", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 4263756994, + "hash2": 2708737334, + "struct_fields": [], + "enum_fields": [ + { + "name": "Unknown", + "value": 0 + }, + { + "name": "Effect", + "value": 1 + }, + { + "name": "Ambience", + "value": 2 + }, + { + "name": "Music", + "value": 3 + } + ] + }, + { + "type_name_1": "Sound", + "type_name_2": "Sound", + "qualified_name": "keen::Sound", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2049558453, + "hash2": 1513785251, + "struct_fields": [ + { + "name": "contentType", + "type_name": "keen::SoundContentType", + "type_hash": 4263756994, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::Sound", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2800226778, + "hash2": 2357989301, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundReference", + "type_name_2": "SoundReference", + "qualified_name": "keen::SoundReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2636991818, + "hash2": 397452906, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainer", + "type_name_2": "SoundContainer", + "qualified_name": "keen::SoundContainer", + "referenced_type_name": "keen::SoundContainerShared", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3383709928, + "hash2": 3279981320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerEntryShared", + "type_name_2": "SoundContainerEntryShared", + "qualified_name": "keen::SoundContainerEntryShared", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2252768793, + "hash2": 4061420768, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerEntry", + "type_name_2": "SoundContainerEntry", + "qualified_name": "keen::SoundContainerEntry", + "referenced_type_name": "keen::SoundContainerEntryShared", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1713983308, + "hash2": 352523155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerSoundEntry", + "type_name_2": "SoundContainerSoundEntry", + "qualified_name": "keen::SoundContainerSoundEntry", + "referenced_type_name": "keen::SoundContainerEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1348308993, + "hash2": 814045522, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::SoundReference", + "type_hash": 2636991818, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerContainerEntry", + "type_name_2": "SoundContainerContainerEntry", + "qualified_name": "keen::SoundContainerContainerEntry", + "referenced_type_name": "keen::SoundContainerEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2427193065, + "hash2": 713435123, + "struct_fields": [ + { + "name": "container", + "type_name": "keen::SoundContainerReference", + "type_hash": 1853525829, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobVariant", + "type_name_2": "Variant", + "qualified_name": "keen::BlobVariant", + "referenced_type_name": "keen::SoundContainerResourceEntry", + "class_size": 12, + "fields_count": 3, + "primitive_type": "BlobVariant", + "hash1": 543387245, + "hash2": 3869116083, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::BlobArray>", + "referenced_type_name": "keen::BlobVariant", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 57019564, + "hash2": 3768851972, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResource", + "type_name_2": "SoundContainerResource", + "qualified_name": "keen::SoundContainerResource", + "referenced_type_name": "keen::SoundContainerShared", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4065813516, + "hash2": 3004949688, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::BlobArray>", + "type_hash": 57019564, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceEntry", + "type_name_2": "SoundContainerResourceEntry", + "qualified_name": "keen::SoundContainerResourceEntry", + "referenced_type_name": "keen::SoundContainerEntryShared", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2981032832, + "hash2": 352523155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SoundResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1862751230, + "hash2": 1014023611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundResourceReference", + "type_name_2": "SoundResourceReference", + "qualified_name": "keen::SoundResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 967371002, + "hash2": 2858726641, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceSoundEntry", + "type_name_2": "SoundContainerResourceSoundEntry", + "qualified_name": "keen::SoundContainerResourceSoundEntry", + "referenced_type_name": "keen::SoundContainerResourceEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 230879949, + "hash2": 2789281766, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::SoundResourceReference", + "type_hash": 967371002, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceContainerEntry", + "type_name_2": "SoundContainerResourceContainerEntry", + "qualified_name": "keen::SoundContainerResourceContainerEntry", + "referenced_type_name": "keen::SoundContainerResourceEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2490149469, + "hash2": 685867781, + "struct_fields": [ + { + "name": "container", + "type_name": "keen::SoundContainerResourceReference", + "type_hash": 3240061633, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SoundReference[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SoundReference", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3407025461, + "hash2": 1175320238, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundMusicPlaylist", + "type_name_2": "SoundMusicPlaylist", + "qualified_name": "keen::SoundMusicPlaylist", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1330168154, + "hash2": 997805132, + "struct_fields": [ + { + "name": "tracks", + "type_name": "keen::BlobArray", + "type_hash": 3407025461, + "data_offset": 0 + }, + { + "name": "shuffle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "fadeDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::SoundMusicPlaylist", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1623963169, + "hash2": 3239731615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundMusicPlaylistReference", + "type_name_2": "SoundMusicPlaylistReference", + "qualified_name": "keen::SoundMusicPlaylistReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3625588367, + "hash2": 1238083464, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundChannelConfiguration", + "type_name_2": "SoundChannelConfiguration", + "qualified_name": "keen::SoundChannelConfiguration", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 722582686, + "hash2": 1994003611, + "struct_fields": [], + "enum_fields": [ + { + "name": "Mono", + "value": 0 + }, + { + "name": "Stereo", + "value": 1 + }, + { + "name": "Quadrophonic", + "value": 2 + }, + { + "name": "FiveDotOne", + "value": 3 + }, + { + "name": "SevenDotOne", + "value": 4 + } + ] + }, + { + "type_name_1": "SoundDataFormat", + "type_name_2": "SoundDataFormat", + "qualified_name": "keen::SoundDataFormat", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2985444226, + "hash2": 1780725970, + "struct_fields": [], + "enum_fields": [ + { + "name": "Uncompressed", + "value": 0 + }, + { + "name": "FramelessQOA", + "value": 1 + } + ] + }, + { + "type_name_1": "SoundResource", + "type_name_2": "SoundResource", + "qualified_name": "keen::SoundResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3748979845, + "hash2": 3097126671, + "struct_fields": [ + { + "name": "channelConfiguration", + "type_name": "keen::SoundChannelConfiguration", + "type_hash": 722582686, + "data_offset": 0 + }, + { + "name": "format", + "type_name": "keen::SoundDataFormat", + "type_hash": 2985444226, + "data_offset": 1 + }, + { + "name": "framesPerSecond", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "frameCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 16 + }, + { + "name": "dataHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 24 + }, + { + "name": "debugName", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuInformation", + "type_name_2": "GpuInformation", + "qualified_name": "keen::GpuInformation", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3998716018, + "hash2": 1354411321, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionStarted", + "type_name_2": "SessionStarted", + "qualified_name": "keen::SessionStarted", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3798200851, + "hash2": 1203013672, + "struct_fields": [ + { + "name": "userId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sessionCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "gpu", + "type_name": "keen::GpuInformation", + "type_hash": 3998716018, + "data_offset": 8 + }, + { + "name": "gameVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "engineVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingAction", + "type_name_2": "CraftingAction", + "qualified_name": "keen::CraftingAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 436947610, + "hash2": 2897297771, + "struct_fields": [ + { + "name": "station", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoodBuffData", + "type_name_2": "FoodBuffData", + "qualified_name": "keen::FoodBuffData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1944871403, + "hash2": 1981628197, + "struct_fields": [ + { + "name": "maxUsedSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "activatedFoodBuffs", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "CraftingAction[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::CraftingAction", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1041749121, + "hash2": 3515178125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionEnded", + "type_name_2": "SessionEnded", + "qualified_name": "keen::SessionEnded", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3930933126, + "hash2": 1767963752, + "struct_fields": [ + { + "name": "userId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxPlayer", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "host", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "saveGameSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "gpu", + "type_name": "keen::GpuInformation", + "type_hash": 3998716018, + "data_offset": 24 + }, + { + "name": "gameVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "engineVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "unlockedKnowledge", + "type_name": "keen::BlobArray", + "type_hash": 516548357, + "data_offset": 40 + }, + { + "name": "crafting", + "type_name": "keen::BlobArray", + "type_hash": 1041749121, + "data_offset": 48 + }, + { + "name": "foodBuffData", + "type_name": "keen::FoodBuffData", + "type_hash": 1944871403, + "data_offset": 56 + }, + { + "name": "didUsePersonelCrafting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "preset", + "type_name": "keen::ecs::GameSettingsPreset", + "type_hash": 770884095, + "data_offset": 65 + }, + { + "name": "settings", + "type_name": "keen::ecs::GameSettings", + "type_hash": 2298714128, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DedicatedSessionStarted", + "type_name_2": "DedicatedSessionStarted", + "qualified_name": "keen::DedicatedSessionStarted", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 330255946, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DedicatedSessionEnded", + "type_name_2": "DedicatedSessionEnded", + "qualified_name": "keen::DedicatedSessionEnded", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2832248399, + "hash2": 2399155725, + "struct_fields": [ + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DeathCause", + "type_name_2": "DeathCause", + "qualified_name": "keen::DeathCause", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 820048791, + "hash2": 2770865079, + "struct_fields": [], + "enum_fields": [ + { + "name": "Impact", + "value": 0 + }, + { + "name": "FallDamage", + "value": 1 + }, + { + "name": "Fog", + "value": 2 + } + ] + }, + { + "type_name_1": "PlayerDeath", + "type_name_2": "PlayerDeath", + "qualified_name": "keen::PlayerDeath", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1718441555, + "hash2": 553349328, + "struct_fields": [ + { + "name": "cause", + "type_name": "keen::DeathCause", + "type_hash": 820048791, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "causeGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "wasDeadlyFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelUp", + "type_name_2": "tracking.LevelUp", + "qualified_name": "keen::tracking::LevelUp", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4080140398, + "hash2": 2385937319, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MinSpecError", + "type_name_2": "tracking.MinSpecError", + "qualified_name": "keen::tracking::MinSpecError", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2940078416, + "hash2": 737691565, + "struct_fields": [], + "enum_fields": [ + { + "name": "Ram", + "value": 0 + }, + { + "name": "VRam", + "value": 1 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::tracking::MinSpecError", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2818383910, + "hash2": 54296967, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MinSpecErrorMask", + "type_name_2": "tracking.MinSpecErrorMask", + "qualified_name": "keen::tracking::MinSpecErrorMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1164801448, + "hash2": 2166969638, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CrashInfo", + "type_name_2": "tracking.CrashInfo", + "qualified_name": "keen::tracking::CrashInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3916896310, + "hash2": 1174756801, + "struct_fields": [ + { + "name": "userId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "gameVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "engineVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "minspecError", + "type_name": "keen::tracking::MinSpecErrorMask", + "type_hash": 1164801448, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontResource", + "type_name_2": "TtfFontResource", + "qualified_name": "keen::TtfFontResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3388831821, + "hash2": 1316658656, + "struct_fields": [ + { + "name": "fontFileHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontInfo", + "type_name_2": "TtfFontInfo", + "qualified_name": "keen::TtfFontInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4291043261, + "hash2": 1401523292, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "fontFileHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TtfFont", + "type_name_2": "TtfFont", + "qualified_name": "keen::TtfFont", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 726986861, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::TtfFont", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2316655314, + "hash2": 3375411796, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontReference", + "type_name_2": "TtfFontReference", + "qualified_name": "keen::TtfFontReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3903504258, + "hash2": 1075730520, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::TtfFontResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 732770726, + "hash2": 1680474028, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontResourceReference", + "type_name_2": "TtfFontResourceReference", + "qualified_name": "keen::TtfFontResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3677109026, + "hash2": 1495160564, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTestStyles", + "type_name_2": "UiTestStyles", + "qualified_name": "keen::UiTestStyles", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2357997070, + "hash2": 1658794137, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::UiCharacterStyle", + "type_hash": 1203993984, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiTestParagraphStyles", + "type_name_2": "UiTestParagraphStyles", + "qualified_name": "keen::UiTestParagraphStyles", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1847542044, + "hash2": 3137853680, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::UiParagraphStyle", + "type_hash": 1259009315, + "data_offset": 0 + }, + { + "name": "test2", + "type_name": "keen::UiParagraphStyle", + "type_hash": 1259009315, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontReference", + "type_name_2": "UiFontReference", + "qualified_name": "keen::UiFontReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3291523682, + "hash2": 196348671, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiBundleTest", + "type_name_2": "UiBundleTest", + "qualified_name": "keen::UiBundleTest", + "referenced_type_name": "keen::UiBundle", + "class_size": 232, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1763415132, + "hash2": 3164985897, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::UiTexture", + "type_hash": 2551858555, + "data_offset": 24 + }, + { + "name": "namedStyles", + "type_name": "keen::UiTestStyles", + "type_hash": 2357997070, + "data_offset": 72 + }, + { + "name": "namedParagraphStyles", + "type_name": "keen::UiTestParagraphStyles", + "type_hash": 1847542044, + "data_offset": 160 + }, + { + "name": "font", + "type_name": "keen::UiFontReference", + "type_hash": 3291523682, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontRange", + "type_name_2": "UiFontRange", + "qualified_name": "keen::UiFontRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 427061242, + "hash2": 1811513182, + "struct_fields": [ + { + "name": "firstRune", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "lastRune", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiGlyphSet", + "type_name_2": "UiGlyphSet", + "qualified_name": "keen::UiGlyphSet", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3926310966, + "hash2": 1097335876, + "struct_fields": [ + { + "name": "font", + "type_name": "keen::TtfFontReference", + "type_hash": 3903504258, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "useForMetrics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "bold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "italic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFont", + "type_name_2": "UiFont", + "qualified_name": "keen::UiFont", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3484364941, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontLanguage", + "type_name_2": "UiFontLanguage", + "qualified_name": "keen::UiFontLanguage", + "referenced_type_name": null, + "class_size": 35, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 667830819, + "hash2": 4184393540, + "struct_fields": [ + { + "name": "En_Us", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "En_Gb", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "De_De", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "Nl_Nl", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "Fr_Fr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "It_It", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "Es_Es", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "Es_Mx", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "Ru_Ru", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "Pl_Pl", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "Ja_Jp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "Id_Id", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "Ko_Kr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "Ms_My", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "Pt_Pt", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "Pt_Br", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "Th_Th", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "Tr_Tr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "Vi_Vn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "Zh_Cn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "Zh_Tw", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "Fr_Ca", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "Es_419", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "Bg_Bg", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "Cs_Cz", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "Da_Dk", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "Fi_Fi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "El_Gr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 27 + }, + { + "name": "Hu_Hu", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "No_No", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 29 + }, + { + "name": "Nb_No", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 30 + }, + { + "name": "Ro_Ro", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 31 + }, + { + "name": "Sv_Se", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "Uk_Ua", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "Default", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 34 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontLanguageMask", + "type_name_2": "UiFontLanguageMask", + "qualified_name": "keen::UiFontLanguageMask", + "referenced_type_name": "keen::Bitmask64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2641474519, + "hash2": 1930898820, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontVariantFlag", + "type_name_2": "UiFontVariantFlag", + "qualified_name": "keen::UiFontVariantFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 2886837520, + "hash2": 2078525279, + "struct_fields": [], + "enum_fields": [ + { + "name": "Normal", + "value": 0 + }, + { + "name": "Bold", + "value": 1 + }, + { + "name": "Italic", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::UiFontVariantFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2173358694, + "hash2": 2816274207, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontVariantMask", + "type_name_2": "UiFontVariantMask", + "qualified_name": "keen::UiFontVariantMask", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 23840526, + "hash2": 1035302926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiFontRange[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiFontRange", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3861555075, + "hash2": 2715074905, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiGlyphSetResource", + "type_name_2": "UiGlyphSetResource", + "qualified_name": "keen::UiGlyphSetResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2716867470, + "hash2": 2624921157, + "struct_fields": [ + { + "name": "fontIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "ranges", + "type_name": "keen::BlobArray", + "type_hash": 3861555075, + "data_offset": 8 + }, + { + "name": "fontVariantMask", + "type_name": "keen::UiFontVariantMask", + "type_hash": 23840526, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiGlyphSetResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiGlyphSetResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2192534589, + "hash2": 1705220977, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontLanguageGroupResource", + "type_name_2": "UiFontLanguageGroupResource", + "qualified_name": "keen::UiFontLanguageGroupResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3962355090, + "hash2": 4136514925, + "struct_fields": [ + { + "name": "groupLanguages", + "type_name": "keen::UiFontLanguageMask", + "type_hash": 2641474519, + "data_offset": 0 + }, + { + "name": "glyphSets", + "type_name": "keen::BlobArray", + "type_hash": 2192534589, + "data_offset": 8 + }, + { + "name": "metricsIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "isDefaultLanguageGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "TtfFontResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::TtfFontResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 487866754, + "hash2": 486497229, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiFontLanguageGroupResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiFontLanguageGroupResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3655772659, + "hash2": 1321785143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontResource", + "type_name_2": "UiFontResource", + "qualified_name": "keen::UiFontResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2274010541, + "hash2": 3347946441, + "struct_fields": [ + { + "name": "fonts", + "type_name": "keen::BlobArray", + "type_hash": 487866754, + "data_offset": 0 + }, + { + "name": "languageGroups", + "type_name": "keen::BlobArray", + "type_hash": 3655772659, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontPreviewLanguageGroupOutput", + "type_name_2": "UiFontPreviewLanguageGroupOutput", + "qualified_name": "keen::UiFontPreviewLanguageGroupOutput", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1822633301, + "hash2": 4141285749, + "struct_fields": [ + { + "name": "fonts", + "type_name": "keen::BlobArray", + "type_hash": 487866754, + "data_offset": 0 + }, + { + "name": "glyphSets", + "type_name": "keen::BlobArray", + "type_hash": 2192534589, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontResourceReference", + "type_name_2": "UiFontResourceReference", + "qualified_name": "keen::UiFontResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1088018882, + "hash2": 297400197, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiRectangle", + "type_name_2": "UiRectangle", + "qualified_name": "keen::UiRectangle", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1317388101, + "hash2": 4083099236, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiTime", + "type_name_2": "UiTime", + "qualified_name": "keen::UiTime", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 895203033, + "hash2": 2333634267, + "struct_fields": [ + { + "name": "m_timeStamp", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiObjectId", + "type_name_2": "UiObjectId", + "qualified_name": "keen::UiObjectId", + "referenced_type_name": "keen::uint64", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2628577946, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeFrameState", + "type_name_2": "UiPassTreeFrameState", + "qualified_name": "keen::UiPassTreeFrameState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3051572615, + "hash2": 2999073198, + "struct_fields": [ + { + "name": "stateId", + "type_name": "keen::UiObjectId", + "type_hash": 2628577946, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameFlag", + "type_name_2": "UiFrameFlag", + "qualified_name": "keen::UiFrameFlag", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Enum", + "hash1": 1824706799, + "hash2": 3185902036, + "struct_fields": [], + "enum_fields": [ + { + "name": "ClampOnXAxisAtParentBorder", + "value": 0 + }, + { + "name": "ClampOnYAxisAtParentBorder", + "value": 1 + }, + { + "name": "EqualStretchInXAxis", + "value": 2 + }, + { + "name": "EqualStretchInYAxis", + "value": 3 + }, + { + "name": "WidthIgnoredForStretch", + "value": 4 + }, + { + "name": "HeightIgnoredForStretch", + "value": 5 + } + ] + }, + { + "type_name_1": "Bitmask8", + "type_name_2": "Bitmask8", + "qualified_name": "keen::Bitmask8", + "referenced_type_name": "keen::UiFrameFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Bitmask8", + "hash1": 2442372767, + "hash2": 618967724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameFlags", + "type_name_2": "UiFrameFlags", + "qualified_name": "keen::UiFrameFlags", + "referenced_type_name": "keen::Bitmask8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3534644628, + "hash2": 354720551, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameSizes", + "type_name_2": "UiFrameSizes", + "qualified_name": "keen::UiFrameSizes", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2084507317, + "hash2": 2629185365, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 0 + }, + { + "name": "minSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 8 + }, + { + "name": "prefSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 16 + }, + { + "name": "maxSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 24 + }, + { + "name": "stretch", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameLayoutType", + "type_name_2": "UiFrameLayoutType", + "qualified_name": "keen::UiFrameLayoutType", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Enum", + "hash1": 3492565007, + "hash2": 2047290405, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Horizontal", + "value": 1 + }, + { + "name": "Vertical", + "value": 2 + }, + { + "name": "Grid", + "value": 3 + }, + { + "name": "Count", + "value": 4 + } + ] + }, + { + "type_name_1": "UiFrameLayout", + "type_name_2": "UiFrameLayout", + "qualified_name": "keen::UiFrameLayout", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 90270455, + "hash2": 2862726513, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::UiFrameLayoutType", + "type_hash": 3492565007, + "data_offset": 0 + }, + { + "name": "horizontalScroll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "verticalScroll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "flow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "splitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "spacing", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 8 + }, + { + "name": "framesPerGridRow", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameBorder", + "type_name_2": "UiFrameBorder", + "qualified_name": "keen::UiFrameBorder", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1938400911, + "hash2": 327803181, + "struct_fields": [ + { + "name": "margin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 0 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameScrollState", + "type_name_2": "UiFrameScrollState", + "qualified_name": "keen::UiFrameScrollState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3504174585, + "hash2": 298026313, + "struct_fields": [ + { + "name": "scrollOffset", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 0 + }, + { + "name": "scrollAreaSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameLayoutState", + "type_name_2": "UiFrameLayoutState", + "qualified_name": "keen::UiFrameLayoutState", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1990912728, + "hash2": 1769218790, + "struct_fields": [ + { + "name": "minSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 0 + }, + { + "name": "prefSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 8 + }, + { + "name": "maxSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 16 + }, + { + "name": "stretch", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 24 + }, + { + "name": "flowChild", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiPassTreeFrame[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiPassTreeFrame", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3516391575, + "hash2": 976698281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiPassTreeFrameState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiPassTreeFrameState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2216902158, + "hash2": 1940323710, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeFrame", + "type_name_2": "UiPassTreeFrame", + "qualified_name": "keen::UiPassTreeFrame", + "referenced_type_name": null, + "class_size": 248, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 2510658338, + "hash2": 4212981871, + "struct_fields": [ + { + "name": "frameId", + "type_name": "keen::UiObjectId", + "type_hash": 2628577946, + "data_offset": 0 + }, + { + "name": "localFrameId", + "type_name": "keen::UiObjectId", + "type_hash": 2628577946, + "data_offset": 8 + }, + { + "name": "highestChildUiFrameId", + "type_name": "keen::UiObjectId", + "type_hash": 2628577946, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::UiFrameFlags", + "type_hash": 3534644628, + "data_offset": 24 + }, + { + "name": "inputMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "sizes", + "type_name": "keen::UiFrameSizes", + "type_hash": 2084507317, + "data_offset": 32 + }, + { + "name": "layout", + "type_name": "keen::UiFrameLayout", + "type_hash": 90270455, + "data_offset": 72 + }, + { + "name": "border", + "type_name": "keen::UiFrameBorder", + "type_hash": 1938400911, + "data_offset": 92 + }, + { + "name": "alignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 124 + }, + { + "name": "childAlignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 126 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 128 + }, + { + "name": "children", + "type_name": "keen::BlobArray", + "type_hash": 3516391575, + "data_offset": 136 + }, + { + "name": "states", + "type_name": "keen::BlobArray", + "type_hash": 2216902158, + "data_offset": 144 + }, + { + "name": "scrollState", + "type_name": "keen::UiFrameScrollState", + "type_hash": 3504174585, + "data_offset": 152 + }, + { + "name": "layoutState", + "type_name": "keen::UiFrameLayoutState", + "type_hash": 1990912728, + "data_offset": 168 + }, + { + "name": "oldRect", + "type_name": "keen::UiRectangle", + "type_hash": 1317388101, + "data_offset": 204 + }, + { + "name": "rect", + "type_name": "keen::UiRectangle", + "type_hash": 1317388101, + "data_offset": 220 + }, + { + "name": "offset", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 236 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobOptional", + "type_name_2": "Optional", + "qualified_name": "keen::BlobOptional", + "referenced_type_name": "keen::UiPassTreeFrame", + "class_size": 4, + "fields_count": 0, + "primitive_type": "BlobOptional", + "hash1": 2744188670, + "hash2": 3256904809, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeFrameOpt", + "type_name_2": "UiPassTreeFrameOpt", + "qualified_name": "keen::UiPassTreeFrameOpt", + "referenced_type_name": "keen::BlobOptional", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3118876163, + "hash2": 1016552024, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeWindow", + "type_name_2": "UiPassTreeWindow", + "qualified_name": "keen::UiPassTreeWindow", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3050551441, + "hash2": 4059649794, + "struct_fields": [ + { + "name": "windowId", + "type_name": "keen::UiObjectId", + "type_hash": 2628577946, + "data_offset": 0 + }, + { + "name": "zOrder", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "inputMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "offset", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 20 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "rootFrame", + "type_name": "keen::UiPassTreeFrameOpt", + "type_hash": 3118876163, + "data_offset": 32 + }, + { + "name": "debugName", + "type_name": "keen::BlobString", + "type_hash": 2086352384, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiPassTreeWindow[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiPassTreeWindow", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3328576080, + "hash2": 1985401818, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeScreen", + "type_name_2": "UiPassTreeScreen", + "qualified_name": "keen::UiPassTreeScreen", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2335598373, + "hash2": 3653057263, + "struct_fields": [ + { + "name": "screenId", + "type_name": "keen::UiObjectId", + "type_hash": 2628577946, + "data_offset": 0 + }, + { + "name": "rect", + "type_name": "keen::UiRectangle", + "type_hash": 1317388101, + "data_offset": 8 + }, + { + "name": "windows", + "type_name": "keen::BlobArray", + "type_hash": 3328576080, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "UiPassTreeScreen[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::UiPassTreeScreen", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3452186720, + "hash2": 3533109780, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTree", + "type_name_2": "UiPassTree", + "qualified_name": "keen::UiPassTree", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3385942577, + "hash2": 2978112518, + "struct_fields": [ + { + "name": "systemUpdateCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "screens", + "type_name": "keen::BlobArray", + "type_hash": 3452186720, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSplitterSizes", + "type_name_2": "UiSplitterSizes", + "qualified_name": "keen::UiSplitterSizes", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2793366363, + "hash2": 1107116583, + "struct_fields": [ + { + "name": "minSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 0 + }, + { + "name": "prefSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 8 + }, + { + "name": "maxSize", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 16 + }, + { + "name": "stretch", + "type_name": "keen::UiSize", + "type_hash": 2982276529, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameSplitterData", + "type_name_2": "UiFrameSplitterData", + "qualified_name": "keen::UiFrameSplitterData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3961006574, + "hash2": 2165303874, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 0 + }, + { + "name": "positionClamped", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 8 + }, + { + "name": "dragSplitterPosition", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 16 + }, + { + "name": "dragMousePosition", + "type_name": "keen::UiPosition", + "type_hash": 3011837091, + "data_offset": 24 + }, + { + "name": "sizes", + "type_name": "keen::UiSplitterSizes", + "type_hash": 2793366363, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "UiFrameSplitterData[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::UiFrameSplitterData", + "class_size": 512, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3546334482, + "hash2": 1901933906, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameSplitterState", + "type_name_2": "UiFrameSplitterState", + "qualified_name": "keen::UiFrameSplitterState", + "referenced_type_name": null, + "class_size": 512, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 410664435, + "hash2": 3150929801, + "struct_fields": [ + { + "name": "splitter", + "type_name": "keen::StaticArray", + "type_hash": 3546334482, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelTemperatureResource", + "type_name_2": "VoxelTemperatureResource", + "qualified_name": "keen::VoxelTemperatureResource", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 565354640, + "hash2": 4181114305, + "struct_fields": [ + { + "name": "worldOrigin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "worldSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + }, + { + "name": "sizeInVoxels", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 24 + }, + { + "name": "voxelData", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelTemperatureResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4021415535, + "hash2": 131288714, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelTemperatureReference", + "type_name_2": "VoxelTemperatureReference", + "qualified_name": "keen::VoxelTemperatureReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 111321089, + "hash2": 2161948039, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldResourceType", + "type_name_2": "VoxelWorldResourceType", + "qualified_name": "keen::VoxelWorldResourceType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 2505049346, + "hash2": 3847032618, + "struct_fields": [], + "enum_fields": [ + { + "name": "Solid", + "value": 0 + }, + { + "name": "Fog", + "value": 1 + }, + { + "name": "Water", + "value": 2 + }, + { + "name": "Temperature", + "value": 3 + } + ] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "Guid[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::Guid", + "class_size": 4096, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 1322905614, + "hash2": 4018124001, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldResource", + "type_name_2": "VoxelWorldResource", + "qualified_name": "keen::VoxelWorldResource", + "referenced_type_name": null, + "class_size": 4144, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1978957938, + "hash2": 1345142239, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::VoxelWorldResourceType", + "type_hash": 2505049346, + "data_offset": 0 + }, + { + "name": "tileCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 12 + }, + { + "name": "lowLODData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 24 + }, + { + "name": "lowLODMaxLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "materialGuids", + "type_name": "keen::StaticArray", + "type_hash": 1322905614, + "data_offset": 44 + }, + { + "name": "defaultTerrainMaterial", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldChunkResource", + "type_name_2": "VoxelWorldChunkResource", + "qualified_name": "keen::VoxelWorldChunkResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2030641307, + "hash2": 1441753421, + "struct_fields": [ + { + "name": "highLODData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "waterTileNotEmptyMask", + "type_name": "keen::BlobArray", + "type_hash": 2231475991, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::VoxelWorldResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2862317541, + "hash2": 3068414586, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldReference", + "type_name_2": "VoxelWorldReference", + "qualified_name": "keen::VoxelWorldReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2786364591, + "hash2": 550385499, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SolidVoxelMaterialWithId", + "type_name_2": "SolidVoxelMaterialWithId", + "qualified_name": "keen::SolidVoxelMaterialWithId", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1454047883, + "hash2": 3568088501, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "stoneMaterialId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "canReceiveFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "Guid[7]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::Guid", + "class_size": 112, + "fields_count": 7, + "primitive_type": "StaticArray", + "hash1": 2375245070, + "hash2": 4050900429, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BiomeVoxelMaterialMapping", + "type_name_2": "BiomeVoxelMaterialMapping", + "qualified_name": "keen::BiomeVoxelMaterialMapping", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 656200815, + "hash2": 143835619, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "biomes", + "type_name": "keen::StaticArray", + "type_hash": 2375245070, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "SolidVoxelMaterialWithId[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::SolidVoxelMaterialWithId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2812802026, + "hash2": 662776917, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BiomeVoxelMaterialMapping[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BiomeVoxelMaterialMapping", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1716932284, + "hash2": 399988788, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialResolvedList", + "type_name_2": "VoxelMaterialResolvedList", + "qualified_name": "keen::VoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1919744667, + "hash2": 1837562622, + "struct_fields": [ + { + "name": "solidMaterials", + "type_name": "keen::BlobArray", + "type_hash": 2812802026, + "data_offset": 0 + }, + { + "name": "buildingMaterials", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 8 + }, + { + "name": "biomeMaterials", + "type_name": "keen::BlobArray", + "type_hash": 1716932284, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialSettings", + "type_name_2": "VoxelMaterialSettings", + "qualified_name": "keen::VoxelMaterialSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1924593462, + "hash2": 980195244, + "struct_fields": [ + { + "name": "defaultTerrainMaterial", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelDisplacementMaterial", + "type_name_2": "VoxelDisplacementMaterial", + "qualified_name": "keen::VoxelDisplacementMaterial", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3431264632, + "hash2": 3769453349, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "side", + "type_name": "keen::VoxelWorldDisplacement", + "type_hash": 1483496761, + "data_offset": 16 + }, + { + "name": "top", + "type_name": "keen::VoxelWorldDisplacement", + "type_hash": 1483496761, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelDisplacementMaterial[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelDisplacementMaterial", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1734665665, + "hash2": 1722156478, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialDisplacement", + "type_name_2": "VoxelMaterialDisplacement", + "qualified_name": "keen::VoxelMaterialDisplacement", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2409050744, + "hash2": 3243118439, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::BlobArray", + "type_hash": 1734665665, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMaterialResolvedType", + "type_name_2": "FogVoxelMaterialResolvedType", + "qualified_name": "keen::FogVoxelMaterialResolvedType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3557293427, + "hash2": 785209775, + "struct_fields": [], + "enum_fields": [ + { + "name": "Gameplay", + "value": 0 + }, + { + "name": "Decorative", + "value": 1 + } + ] + }, + { + "type_name_1": "FogVoxelMaterialResolved", + "type_name_2": "FogVoxelMaterialResolved", + "qualified_name": "keen::FogVoxelMaterialResolved", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1447137227, + "hash2": 3299137271, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::FogVoxelMaterialResolvedType", + "type_hash": 3557293427, + "data_offset": 16 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FogVoxelMaterialResolved[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FogVoxelMaterialResolved", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2521773442, + "hash2": 1086765510, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMaterialResolvedList", + "type_name_2": "FogVoxelMaterialResolvedList", + "qualified_name": "keen::FogVoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3855585139, + "hash2": 3824080137, + "struct_fields": [ + { + "name": "fogMaterials", + "type_name": "keen::BlobArray", + "type_hash": 2521773442, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterVoxelMaterialResolvedList", + "type_name_2": "WaterVoxelMaterialResolvedList", + "qualified_name": "keen::WaterVoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1476017950, + "hash2": 3527132412, + "struct_fields": [ + { + "name": "waterMaterial", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemperatureVoxelMaterialResolvedList", + "type_name_2": "TemperatureVoxelMaterialResolvedList", + "qualified_name": "keen::TemperatureVoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1727900533, + "hash2": 675418621, + "struct_fields": [ + { + "name": "temperatureMaterials", + "type_name": "keen::BlobArray", + "type_hash": 1582301590, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialMappingResource", + "type_name_2": "BuildingMaterialMappingResource", + "qualified_name": "keen::BuildingMaterialMappingResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1302613895, + "hash2": 3650412585, + "struct_fields": [ + { + "name": "localId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "materialId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "BuildingMaterialMappingResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::BuildingMaterialMappingResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3630496616, + "hash2": 3016197175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPaletteResource", + "type_name_2": "BuildingMaterialPaletteResource", + "qualified_name": "keen::BuildingMaterialPaletteResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3016348390, + "hash2": 3927003018, + "struct_fields": [ + { + "name": "mappings", + "type_name": "keen::BlobArray", + "type_hash": 3630496616, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReservedMaterialId", + "type_name_2": "ReservedMaterialId", + "qualified_name": "keen::ReservedMaterialId", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Enum", + "hash1": 500017874, + "hash2": 2999951910, + "struct_fields": [], + "enum_fields": [ + { + "name": "Empty", + "value": 0 + }, + { + "name": "Conservative", + "value": 1 + }, + { + "name": "Dirt", + "value": 2 + }, + { + "name": "Count", + "value": 3 + } + ] + }, + { + "type_name_1": "FogRemovalSetup", + "type_name_2": "FogRemovalSetup", + "qualified_name": "keen::FogRemovalSetup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 469263011, + "hash2": 2622498075, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalDirectory", + "type_name_2": "FogRemovalDirectory", + "qualified_name": "keen::FogRemovalDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3491971709, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalLink", + "type_name_2": "FogRemovalLink", + "qualified_name": "keen::FogRemovalLink", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4140136910, + "hash2": 2206727938, + "struct_fields": [ + { + "name": "fogId", + "type_name": "keen::ObjectReference", + "type_hash": 1947009712, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMappingType", + "type_name_2": "FogVoxelMappingType", + "qualified_name": "keen::FogVoxelMappingType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 22082008, + "hash2": 785209775, + "struct_fields": [], + "enum_fields": [ + { + "name": "Gameplay", + "value": 0 + }, + { + "name": "Decorative", + "value": 1 + } + ] + }, + { + "type_name_1": "FogVoxelMapping", + "type_name_2": "FogVoxelMapping", + "qualified_name": "keen::FogVoxelMapping", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1006129392, + "hash2": 84646689, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::FogVoxelMappingType", + "type_hash": 22082008, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "removalId", + "type_name": "keen::FogRemovalId", + "type_hash": 2854608235, + "data_offset": 4 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "FogVoxelMapping[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::FogVoxelMapping", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3685698385, + "hash2": 1142973874, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMappingResource", + "type_name_2": "FogVoxelMappingResource", + "qualified_name": "keen::FogVoxelMappingResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3825548388, + "hash2": 1503091365, + "struct_fields": [ + { + "name": "mapping", + "type_name": "keen::BlobArray", + "type_hash": 3685698385, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelResource", + "type_name_2": "VoxelModelResource", + "qualified_name": "keen::VoxelModelResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3845847983, + "hash2": 2592438267, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 12 + }, + { + "name": "isTerrain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelInfo", + "type_name_2": "VoxelModelInfo", + "qualified_name": "keen::VoxelModelInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 215773367, + "hash2": 872366566, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "materialMap", + "type_name": "keen::BlobArray", + "type_hash": 3630496616, + "data_offset": 12 + }, + { + "name": "isTerrain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelObjectPreviewMode", + "type_name_2": "VoxelObjectPreviewMode", + "qualified_name": "keen::VoxelObjectPreviewMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3931637376, + "hash2": 3195422324, + "struct_fields": [], + "enum_fields": [ + { + "name": "OnlyBuildingVoxels", + "value": 0 + }, + { + "name": "BuildingAndDirt", + "value": 1 + }, + { + "name": "AllVoxels", + "value": 2 + } + ] + }, + { + "type_name_1": "VoxelObjectDefinition", + "type_name_2": "VoxelObjectDefinition", + "qualified_name": "keen::VoxelObjectDefinition", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4158117328, + "hash2": 353215039, + "struct_fields": [ + { + "name": "materialPalette", + "type_name": "keen::ObjectReference", + "type_hash": 438929135, + "data_offset": 0 + }, + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 289740446, + "data_offset": 16 + }, + { + "name": "invertEmptyConservative", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "previewMode", + "type_name": "keen::VoxelObjectPreviewMode", + "type_hash": 3931637376, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainVoxelObjectDefinition", + "type_name_2": "TerrainVoxelObjectDefinition", + "qualified_name": "keen::TerrainVoxelObjectDefinition", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3541856371, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 211222448, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldObject", + "type_name_2": "VoxelWorldObject", + "qualified_name": "keen::VoxelWorldObject", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2770681585, + "hash2": 3977298781, + "struct_fields": [ + { + "name": "heightmap", + "type_name": "keen::ImageReference", + "type_hash": 433836560, + "data_offset": 0 + }, + { + "name": "compositeHeightmap", + "type_name": "keen::ObjectReference", + "type_hash": 1580845530, + "data_offset": 16 + }, + { + "name": "heightScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "useCompositeScatterImage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "displaceHeightmap", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldInfo", + "type_name_2": "VoxelWorldInfo", + "qualified_name": "keen::VoxelWorldInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2442716578, + "hash2": 1441382391, + "struct_fields": [ + { + "name": "minTile", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + }, + { + "name": "maxTile", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 8 + }, + { + "name": "yOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + }, + { + "name": "heightMapSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 20 + }, + { + "name": "heightMapHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldTerraAction", + "type_name_2": "VoxelWorldTerraAction", + "qualified_name": "keen::VoxelWorldTerraAction", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2936697654, + "hash2": 1955614864, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "mode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "VoxelWorldTerraAction[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::VoxelWorldTerraAction", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1922737187, + "hash2": 1116950093, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldTerraActions", + "type_name_2": "VoxelWorldTerraActions", + "qualified_name": "keen::VoxelWorldTerraActions", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3530782111, + "hash2": 4043869238, + "struct_fields": [ + { + "name": "actions", + "type_name": "keen::BlobArray", + "type_hash": 1922737187, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRoadShapeDefinition", + "type_name_2": "VoxelRoadShapeDefinition", + "qualified_name": "keen::VoxelRoadShapeDefinition", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3092176604, + "hash2": 2575173140, + "struct_fields": [ + { + "name": "roadWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldAutomatedTest", + "type_name_2": "VoxelWorldAutomatedTest", + "qualified_name": "keen::VoxelWorldAutomatedTest", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3109463344, + "hash2": 1902534977, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 0 + }, + { + "name": "referenceVoxelData", + "type_name": "keen::ObjectReference", + "type_hash": 336548932, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestructionVoxelBlockType", + "type_name_2": "DestructionVoxelBlockType", + "qualified_name": "keen::DestructionVoxelBlockType", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 635219647, + "hash2": 953651090, + "struct_fields": [], + "enum_fields": [ + { + "name": "Empty", + "value": 0 + }, + { + "name": "DestructionEdge", + "value": 1 + }, + { + "name": "ModeStart", + "value": 2 + } + ] + }, + { + "type_name_1": "VoxelWorldConverterConfig", + "type_name_2": "VoxelWorldConverterConfig", + "qualified_name": "keen::VoxelWorldConverterConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1591080124, + "hash2": 2993474783, + "struct_fields": [ + { + "name": "buildWaterVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenon", + "type_name_2": "WeatherPhenomenon", + "qualified_name": "keen::WeatherPhenomenon", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4086633943, + "hash2": 839464708, + "struct_fields": [ + { + "name": "cloudMap", + "type_name": "keen::ObjectReference", + "type_hash": 1883756160, + "data_offset": 0 + }, + { + "name": "tiling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSnowBorderConfiguration", + "type_name_2": "WeatherSnowBorderConfiguration", + "qualified_name": "keen::WeatherSnowBorderConfiguration", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2224369843, + "hash2": 3334162775, + "struct_fields": [ + { + "name": "fadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 0 + }, + { + "name": "mask", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 8 + }, + { + "name": "maskResolutionDivisor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemConfiguration", + "type_name_2": "WeatherSystemConfiguration", + "qualified_name": "keen::WeatherSystemConfiguration", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 882363599, + "hash2": 467545831, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 1245075483, + "data_offset": 0 + }, + { + "name": "snowBorder", + "type_name": "keen::WeatherSnowBorderConfiguration", + "type_hash": 2224369843, + "data_offset": 16 + }, + { + "name": "layerMaskResolutionDivisor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherHeightMap", + "type_name_2": "WeatherHeightMap", + "qualified_name": "keen::WeatherHeightMap", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2484002513, + "hash2": 1102154647, + "struct_fields": [ + { + "name": "fadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 0 + }, + { + "name": "mask", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonProbability", + "type_name_2": "WeatherPhenomenonProbability", + "qualified_name": "keen::WeatherPhenomenonProbability", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2401048834, + "hash2": 3523823674, + "struct_fields": [ + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::TimeRange", + "type_hash": 2803725876, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerConfiguration", + "type_name_2": "WeatherLayerConfiguration", + "qualified_name": "keen::WeatherLayerConfiguration", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2964870107, + "hash2": 1578211421, + "struct_fields": [ + { + "name": "useMaskResolutionDivisor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "restrictMask", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 4 + }, + { + "name": "excludeMask", + "type_name": "keen::ObjectReference", + "type_hash": 581134863, + "data_offset": 20 + }, + { + "name": "maskClouds", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "maskRain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "nothingProbability", + "type_name": "keen::WeatherPhenomenonProbability", + "type_hash": 2401048834, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonEffect", + "type_name_2": "WeatherPhenomenonEffect", + "qualified_name": "keen::WeatherPhenomenonEffect", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 4040643314, + "hash2": 427304199, + "struct_fields": [], + "enum_fields": [ + { + "name": "None", + "value": 0 + }, + { + "name": "Rain", + "value": 1 + }, + { + "name": "Blizzard", + "value": 2 + } + ] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::WeatherPhenomenon", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 999623568, + "hash2": 3048893766, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonConfiguration", + "type_name_2": "WeatherPhenomenonConfiguration", + "qualified_name": "keen::WeatherPhenomenonConfiguration", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3129803655, + "hash2": 1662965044, + "struct_fields": [ + { + "name": "probability", + "type_name": "keen::WeatherPhenomenonProbability", + "type_hash": 2401048834, + "data_offset": 0 + }, + { + "name": "phenomenon", + "type_name": "keen::ObjectReference", + "type_hash": 999623568, + "data_offset": 24 + }, + { + "name": "scale", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 40 + }, + { + "name": "rotation", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 48 + }, + { + "name": "moveSpeed", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 56 + }, + { + "name": "alignRotationToMoveSpeed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "spawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "despawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "effect", + "type_name": "keen::WeatherPhenomenonEffect", + "type_hash": 4040643314, + "data_offset": 88 + }, + { + "name": "rainThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemMaskResource", + "type_name_2": "WeatherSystemMaskResource", + "qualified_name": "keen::WeatherSystemMaskResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2344284007, + "hash2": 2491951409, + "struct_fields": [ + { + "name": "bboxMin", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "bboxMax", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "worldToRelative", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "data", + "type_name": "keen::BlobArray", + "type_hash": 893830463, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeatherSystemLayerResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeatherSystemLayerResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1172221159, + "hash2": 1723474176, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeatherSystemLayerMaskResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeatherSystemLayerMaskResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 1064398579, + "hash2": 3561542959, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeatherSystemPhenomenonResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeatherSystemPhenomenonResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2183239411, + "hash2": 1119196647, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeatherSystemMaskResource[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeatherSystemMaskResource", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3462139676, + "hash2": 714542099, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemResource", + "type_name_2": "WeatherSystemResource", + "qualified_name": "keen::WeatherSystemResource", + "referenced_type_name": null, + "class_size": 92, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3289817451, + "hash2": 284633941, + "struct_fields": [ + { + "name": "dataHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "worldSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "snowBorderRangeMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "snowBorderMask", + "type_name": "keen::WeatherSystemMaskResource", + "type_hash": 2344284007, + "data_offset": 20 + }, + { + "name": "layers", + "type_name": "keen::BlobArray", + "type_hash": 1172221159, + "data_offset": 60 + }, + { + "name": "layerMasks", + "type_name": "keen::BlobArray", + "type_hash": 1064398579, + "data_offset": 68 + }, + { + "name": "phenomenons", + "type_name": "keen::BlobArray", + "type_hash": 2183239411, + "data_offset": 76 + }, + { + "name": "rainMasks", + "type_name": "keen::BlobArray", + "type_hash": 3462139676, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerMaskIndex", + "type_name_2": "WeatherLayerMaskIndex", + "qualified_name": "keen::WeatherLayerMaskIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 622022013, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemPhenomenonResourceFlag", + "type_name_2": "WeatherSystemPhenomenonResourceFlag", + "qualified_name": "keen::WeatherSystemPhenomenonResourceFlag", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 3202520216, + "hash2": 2058231365, + "struct_fields": [], + "enum_fields": [ + { + "name": "Tiling", + "value": 0 + }, + { + "name": "MaskCloudMap", + "value": 1 + }, + { + "name": "MaskRain", + "value": 2 + } + ] + }, + { + "type_name_1": "Bitmask32", + "type_name_2": "Bitmask32", + "qualified_name": "keen::Bitmask32", + "referenced_type_name": "keen::WeatherSystemPhenomenonResourceFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Bitmask32", + "hash1": 4144155623, + "hash2": 2319479455, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemPhenomenonResourceFlags", + "type_name_2": "WeatherSystemPhenomenonResourceFlags", + "qualified_name": "keen::WeatherSystemPhenomenonResourceFlags", + "referenced_type_name": "keen::Bitmask32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1773170161, + "hash2": 4145190579, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherRainMaskIndex", + "type_name_2": "WeatherRainMaskIndex", + "qualified_name": "keen::WeatherRainMaskIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2819280096, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemPhenomenonResource", + "type_name_2": "WeatherSystemPhenomenonResource", + "qualified_name": "keen::WeatherSystemPhenomenonResource", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1144508374, + "hash2": 1369902295, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::WeatherSystemPhenomenonResourceFlags", + "type_hash": 1773170161, + "data_offset": 20 + }, + { + "name": "durationMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "durationMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "radiusMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "radiusMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "moveSpeedMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "moveSpeedMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "spawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "despawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "rainThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "rainMaskIndex", + "type_name": "keen::WeatherRainMaskIndex", + "type_hash": 2819280096, + "data_offset": 76 + }, + { + "name": "renderer", + "type_name": "keen::ObjectReference", + "type_hash": 2687219072, + "data_offset": 80 + }, + { + "name": "effect", + "type_name": "keen::WeatherPhenomenonEffect", + "type_hash": 4040643314, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeatherPhenomenonIndex[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeatherPhenomenonIndex", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 105032760, + "hash2": 488390333, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemLayerResource", + "type_name_2": "WeatherSystemLayerResource", + "qualified_name": "keen::WeatherSystemLayerResource", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2167060340, + "hash2": 421774324, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "restrictMaskIndex", + "type_name": "keen::WeatherLayerMaskIndex", + "type_hash": 622022013, + "data_offset": 16 + }, + { + "name": "excludeMaskIndex", + "type_name": "keen::WeatherLayerMaskIndex", + "type_hash": 622022013, + "data_offset": 17 + }, + { + "name": "phenomenonIndices", + "type_name": "keen::BlobArray", + "type_hash": 105032760, + "data_offset": 20 + }, + { + "name": "nothingPhenomenon", + "type_name": "keen::WeatherSystemPhenomenonResource", + "type_hash": 1144508374, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::RenderWeatherMaskResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 419394003, + "hash2": 521459042, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemLayerMaskResource", + "type_name_2": "WeatherSystemLayerMaskResource", + "qualified_name": "keen::WeatherSystemLayerMaskResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 421787932, + "hash2": 613796154, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::WeatherSystemMaskResource", + "type_hash": 2344284007, + "data_offset": 0 + }, + { + "name": "renderer", + "type_name": "keen::ObjectReference", + "type_hash": 419394003, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeatherSystemDebugLayerState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeatherSystemDebugLayerState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 757890167, + "hash2": 1416584614, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "WeatherSystemDebugInstanceState[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::WeatherSystemDebugInstanceState", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 3127189683, + "hash2": 2473386686, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugState", + "type_name_2": "WeatherSystemDebugState", + "qualified_name": "keen::WeatherSystemDebugState", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 427840211, + "hash2": 1448167888, + "struct_fields": [ + { + "name": "currentTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "layers", + "type_name": "keen::BlobArray", + "type_hash": 757890167, + "data_offset": 8 + }, + { + "name": "instances", + "type_name": "keen::BlobArray", + "type_hash": 3127189683, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugLayerState", + "type_name_2": "WeatherSystemDebugLayerState", + "qualified_name": "keen::WeatherSystemDebugLayerState", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1598610484, + "hash2": 2302845002, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "nextPhenomenonTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "currentInstanceHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "previousInstanceHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugInstanceState", + "type_name_2": "WeatherSystemDebugInstanceState", + "qualified_name": "keen::WeatherSystemDebugInstanceState", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3910831994, + "hash2": 1016011565, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "position", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "rotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "moveSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "fade", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugSkipToNextPhenomenonMessage", + "type_name_2": "WeatherSystemDebugSkipToNextPhenomenonMessage", + "qualified_name": "keen::WeatherSystemDebugSkipToNextPhenomenonMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3814153327, + "hash2": 630468873, + "struct_fields": [ + { + "name": "layerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonIndex", + "type_name_2": "WeatherPhenomenonIndex", + "qualified_name": "keen::WeatherPhenomenonIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2387944253, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSavedLayerInstance", + "type_name_2": "weather.save_v0.WeatherSavedLayerInstance", + "qualified_name": "keen::weather::save_v0::WeatherSavedLayerInstance", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1560047965, + "hash2": 1643408102, + "struct_fields": [ + { + "name": "phenomenonIndex", + "type_name": "keen::WeatherPhenomenonIndex", + "type_hash": 2387944253, + "data_offset": 0 + }, + { + "name": "spawnPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "rotation", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 32 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "moveSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "despawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSavedLayer", + "type_name_2": "weather.save_v0.WeatherSavedLayer", + "qualified_name": "keen::weather::save_v0::WeatherSavedLayer", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3913693442, + "hash2": 1595795256, + "struct_fields": [ + { + "name": "nextPhenomenon", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "currentInstance", + "type_name": "keen::weather::save_v0::WeatherSavedLayerInstance", + "type_hash": 1560047965, + "data_offset": 8 + }, + { + "name": "previousInstance", + "type_name": "keen::weather::save_v0::WeatherSavedLayerInstance", + "type_hash": 1560047965, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerIndex", + "type_name_2": "WeatherLayerIndex", + "qualified_name": "keen::WeatherLayerIndex", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2982470777, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSpawnParameters", + "type_name_2": "WeatherSpawnParameters", + "qualified_name": "keen::WeatherSpawnParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3618221969, + "hash2": 1755263658, + "struct_fields": [ + { + "name": "eventProbabilityModifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SettingsHeader", + "type_name_2": "g38_options.SettingsHeader", + "qualified_name": "keen::g38_options::SettingsHeader", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1346038509, + "hash2": 4009960136, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WindowMode", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.WindowMode", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 3200964828, + "hash2": 1634480779, + "struct_fields": [], + "enum_fields": [ + { + "name": "Windowed", + "value": 0 + }, + { + "name": "Fullscreen", + "value": 1 + } + ] + }, + { + "type_name_1": "NvidiaReflexModeSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.NvidiaReflexModeSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings", + "referenced_type_name": "keen::uint32", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Enum", + "hash1": 1323766452, + "hash2": 1954070086, + "struct_fields": [], + "enum_fields": [ + { + "name": "Off", + "value": 0 + }, + { + "name": "On", + "value": 1 + }, + { + "name": "Boost", + "value": 2 + } + ] + }, + { + "type_name_1": "GraphicsSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.GraphicsSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3173951835, + "hash2": 1578792503, + "struct_fields": [ + { + "name": "windowMode", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode", + "type_hash": 3200964828, + "data_offset": 0 + }, + { + "name": "windowPosition", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 4 + }, + { + "name": "windowSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 12 + }, + { + "name": "forceBackbufferResolution", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 20 + }, + { + "name": "renderScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "automaticRenderScale", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "vsync", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "nvidiaReflex", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings", + "type_hash": 1323766452, + "data_offset": 36 + }, + { + "name": "render", + "type_name": "keen::RenderSettings", + "type_hash": 3971400399, + "data_offset": 40 + }, + { + "name": "useDefaultRenderSettings", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 120 + }, + { + "name": "sleepInBackground", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.SoundSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 210669215, + "hash2": 938629099, + "struct_fields": [ + { + "name": "muteInBackground", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.Settings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::Settings", + "referenced_type_name": "keen::g38_options::SettingsHeader", + "class_size": 132, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4286256086, + "hash2": 3149393990, + "struct_fields": [ + { + "name": "graphics", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings", + "type_hash": 3173951835, + "data_offset": 4 + }, + { + "name": "sound", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings", + "type_hash": 210669215, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.GraphicsSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1425554005, + "hash2": 3790296221, + "struct_fields": [ + { + "name": "fov", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.SoundSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1784724313, + "hash2": 149047189, + "struct_fields": [ + { + "name": "masterVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "musicVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "uiVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "gameVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "voiceVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "dynamicReverb", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MouseSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.MouseSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4223788681, + "hash2": 309965868, + "struct_fields": [ + { + "name": "defaultSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rangedCombatSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "invertCameraAxes", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 8 + }, + { + "name": "attackDirection", + "type_name": "keen::AttackDirectionInput", + "type_hash": 3043738149, + "data_offset": 10 + }, + { + "name": "enableSmoothing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GamepadSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.GamepadSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1478460725, + "hash2": 2185197215, + "struct_fields": [ + { + "name": "defaultSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rangedCombatSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "invertCameraAxes", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 8 + }, + { + "name": "attackDirection", + "type_name": "keen::AttackDirectionInput", + "type_hash": 3043738149, + "data_offset": 10 + }, + { + "name": "controllerButtonStyle", + "type_name": "keen::ControllerButtonStyle", + "type_hash": 2099590459, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InputSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.InputSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 476363622, + "hash2": 2013475311, + "struct_fields": [ + { + "name": "selectedKeyboardMousePresetId", + "type_name": "keen::input_mapping::PresetId", + "type_hash": 2691484697, + "data_offset": 0 + }, + { + "name": "selectedGamepadPresetId", + "type_name": "keen::input_mapping::PresetId", + "type_hash": 2691484697, + "data_offset": 1 + }, + { + "name": "customInputBindings", + "type_name": "keen::input_mapping::serialize::InputBindings", + "type_hash": 1742497483, + "data_offset": 4 + }, + { + "name": "mouse", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings", + "type_hash": 4223788681, + "data_offset": 16 + }, + { + "name": "gamepad", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings", + "type_hash": 1478460725, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpiderSetting", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.SpiderSetting", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting", + "referenced_type_name": "keen::uint8", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Enum", + "hash1": 2338800772, + "hash2": 1605161669, + "struct_fields": [], + "enum_fields": [ + { + "name": "Show", + "value": 0 + }, + { + "name": "HideSmall", + "value": 1 + } + ] + }, + { + "type_name_1": "GameplaySettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.GameplaySettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 561775864, + "hash2": 3409590631, + "struct_fields": [ + { + "name": "cameraZoomFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "enableIdleCameraTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "reduceDynamicCameraMovement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "screenShakeStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "displayDamageNumbers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "displayDamagePropertyTexts", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "keepTargetLockWhenSprinting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "breakTargetLockOnKill", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "hudAspectRatioWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "textScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "useAdditionalSymbolsForItemRarity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "hideHUD", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "hideHelmet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "hideGloves", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 27 + }, + { + "name": "showCharacterName", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "itemDeletionProtectionLevel", + "type_name": "keen::ItemRarity", + "type_hash": 1738713322, + "data_offset": 29 + }, + { + "name": "hideSpiders", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting", + "type_hash": 2338800772, + "data_offset": 30 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HostUserGroup", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.HostUserGroup", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 171151215, + "hash2": 3447046423, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "password", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HostSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.HostSettings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 247392258, + "hash2": 4246021933, + "struct_fields": [ + { + "name": "maxSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "password", + "type_name": "keen::string", + "type_hash": 779033687, + "data_offset": 4 + }, + { + "name": "guests", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "type_hash": 171151215, + "data_offset": 12 + }, + { + "name": "friends", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "type_hash": 171151215, + "data_offset": 24 + }, + { + "name": "admins", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "type_hash": 171151215, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.Settings", + "qualified_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings", + "referenced_type_name": "keen::g38_options::SettingsHeader", + "class_size": 156, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3462968744, + "hash2": 2057029166, + "struct_fields": [ + { + "name": "graphics", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings", + "type_hash": 1425554005, + "data_offset": 4 + }, + { + "name": "sound", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings", + "type_hash": 1784724313, + "data_offset": 8 + }, + { + "name": "input", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings", + "type_hash": 476363622, + "data_offset": 32 + }, + { + "name": "gameplay", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings", + "type_hash": 561775864, + "data_offset": 72 + }, + { + "name": "hostSettings", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings", + "type_hash": 247392258, + "data_offset": 104 + }, + { + "name": "playedSessions", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v4_dedicated_glider_binding.machine.Settings", + "qualified_name": "keen::g38_options::pc::v4_dedicated_glider_binding::machine::Settings", + "referenced_type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::Settings", + "class_size": 132, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4137658774, + "hash2": 1245571460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v4_dedicated_glider_binding.user.Settings", + "qualified_name": "keen::g38_options::pc::v4_dedicated_glider_binding::user::Settings", + "referenced_type_name": null, + "class_size": 156, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1523016040, + "hash2": 1109081699, + "struct_fields": [ + { + "name": "legacySettings", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings", + "type_hash": 3462968744, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v3_early_access_release.machine.Settings", + "qualified_name": "keen::g38_options::pc::v3_early_access_release::machine::Settings", + "referenced_type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::Settings", + "class_size": 132, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2152802404, + "hash2": 1245571460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v3_early_access_release.user.Settings", + "qualified_name": "keen::g38_options::pc::v3_early_access_release::user::Settings", + "referenced_type_name": null, + "class_size": 156, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2655355626, + "hash2": 1109081699, + "struct_fields": [ + { + "name": "legacySettings", + "type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings", + "type_hash": 3462968744, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38SupportedFeatures", + "type_name_2": "G38SupportedFeatures", + "qualified_name": "keen::G38SupportedFeatures", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2569450681, + "hash2": 2330763689, + "struct_fields": [ + { + "name": "renderFeatures", + "type_name": "keen::RenderSettingsFeatures", + "type_hash": 2106407168, + "data_offset": 0 + }, + { + "name": "isNvReflexAvailable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraPathKeyframe", + "type_name_2": "debug.CameraPathKeyframe", + "qualified_name": "keen::debug::CameraPathKeyframe", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1536148765, + "hash2": 911770236, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::Matrix43", + "type_hash": 1257492306, + "data_offset": 0 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlobArray", + "type_name_2": "debug.CameraPathKeyframe[]", + "qualified_name": "keen::BlobArray", + "referenced_type_name": "keen::debug::CameraPathKeyframe", + "class_size": 8, + "fields_count": 0, + "primitive_type": "BlobArray", + "hash1": 2399995474, + "hash2": 1033388116, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraRecording", + "type_name_2": "debug.CameraRecording", + "qualified_name": "keen::debug::CameraRecording", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 565849785, + "hash2": 935366085, + "struct_fields": [ + { + "name": "cameraPath", + "type_name": "keen::BlobArray", + "type_hash": 2399995474, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::MidiSongResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2629906141, + "hash2": 324625025, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::GpcResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2724155831, + "hash2": 4146168910, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementId", + "type_name_2": "AchievementId", + "qualified_name": "keen::ds::AchievementId", + "referenced_type_name": "keen::AchievementId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1667801447, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementValue", + "type_name_2": "AchievementValue", + "qualified_name": "keen::ds::AchievementValue", + "referenced_type_name": "keen::AchievementValue", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2514787987, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::LocaTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4082687407, + "hash2": 3545101166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagReference", + "type_name_2": "LocaTagReference", + "qualified_name": "keen::ds::LocaTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1866656307, + "hash2": 2658094440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NameLocaTag", + "type_name_2": "NameLocaTag", + "qualified_name": "keen::ds::NameLocaTag", + "referenced_type_name": "keen::ds::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3622148983, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DescriptionLocaTag", + "type_name_2": "DescriptionLocaTag", + "qualified_name": "keen::ds::DescriptionLocaTag", + "referenced_type_name": "keen::ds::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4249666514, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementData", + "type_name_2": "AchievementData", + "qualified_name": "keen::ds::AchievementData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1953947546, + "hash2": 2487859499, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::ds::DescriptionLocaTag", + "type_hash": 4249666514, + "data_offset": 16 + }, + { + "name": "hasUnlockValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "unlockValue", + "type_name": "keen::ds::AchievementValue", + "type_hash": 2514787987, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AchievementData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 231740163, + "hash2": 3889399636, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDataReference", + "type_name_2": "AchievementDataReference", + "qualified_name": "keen::ds::AchievementDataReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2463221455, + "hash2": 1829113899, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsString", + "type_name_2": "String", + "qualified_name": "keen::DsString", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsString", + "hash1": 937307642, + "hash2": 1615808600, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "string", + "type_name_2": "string", + "qualified_name": "keen::ds::string", + "referenced_type_name": "keen::DsString", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3751226874, + "hash2": 3625431854, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Achievement", + "type_name_2": "Achievement", + "qualified_name": "keen::ds::Achievement", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1184562634, + "hash2": 39906127, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::AchievementId", + "type_hash": 1667801447, + "data_offset": 0 + }, + { + "name": "hasUnlockValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "unlockValue", + "type_name": "keen::ds::AchievementValue", + "type_hash": 2514787987, + "data_offset": 8 + }, + { + "name": "dosId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "steamName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 16 + }, + { + "name": "steamStat", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 56 + }, + { + "name": "npId", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 96 + }, + { + "name": "xsapiId", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 100 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 104 + }, + { + "name": "dbgName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "Achievement[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::Achievement", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2382432461, + "hash2": 3747600262, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDefinitionResource", + "type_name_2": "AchievementDefinitionResource", + "qualified_name": "keen::ds::AchievementDefinitionResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2489585271, + "hash2": 223199278, + "struct_fields": [ + { + "name": "achievements", + "type_name": "keen::DsArray", + "type_hash": 2382432461, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AchievementDefinitionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 993635940, + "hash2": 1215093736, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDefinitionReference", + "type_name_2": "AchievementDefinitionReference", + "qualified_name": "keen::ds::AchievementDefinitionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 971093440, + "hash2": 933835361, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementSubDirectory", + "type_name_2": "AchievementSubDirectory", + "qualified_name": "keen::ds::AchievementSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1762163387, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AchievementDirectory", + "type_name_2": "AchievementDirectory", + "qualified_name": "keen::ds::AchievementDirectory", + "referenced_type_name": "keen::ds::AchievementSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2971977225, + "hash2": 1732187060, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxPlaybackType", + "type_name_2": "AmbientSfxPlaybackType", + "qualified_name": "keen::ds::AmbientSfxPlaybackType", + "referenced_type_name": "keen::AmbientSfxPlaybackType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2029987913, + "hash2": 1835256893, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEitherOrBoth", + "type_name_2": "AmbientEitherOrBoth", + "qualified_name": "keen::ds::AmbientEitherOrBoth", + "referenced_type_name": "keen::AmbientEitherOrBoth", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2568498426, + "hash2": 1918859377, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SoundContainer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3308818580, + "hash2": 2663232324, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerReference", + "type_name_2": "SoundContainerReference", + "qualified_name": "keen::ds::SoundContainerReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1822037770, + "hash2": 567301414, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientMask", + "type_name_2": "AmbientMask", + "qualified_name": "keen::ds::AmbientMask", + "referenced_type_name": "keen::AmbientMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 256807941, + "hash2": 1955604017, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::IngameTimeSpan", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3872620910, + "hash2": 2967091125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectEntry", + "type_name_2": "AmbientSoundEffectEntry", + "qualified_name": "keen::ds::AmbientSoundEffectEntry", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1106275887, + "hash2": 2521226428, + "struct_fields": [ + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "soundContainer", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 8 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ObjectReference", + "type_hash": 3872620910, + "data_offset": 24 + }, + { + "name": "playbackType", + "type_name": "keen::ds::AmbientSfxPlaybackType", + "type_hash": 2029987913, + "data_offset": 40 + }, + { + "name": "additionalTagsInclude", + "type_name": "keen::ds::AmbientMask", + "type_hash": 256807941, + "data_offset": 41 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 42 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEnvironment", + "type_name_2": "AmbientEnvironment", + "qualified_name": "keen::ds::AmbientEnvironment", + "referenced_type_name": "keen::AmbientEnvironment", + "class_size": 1, + "fields_count": 25, + "primitive_type": "Typedef", + "hash1": 1909756702, + "hash2": 83968019, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffect", + "type_name_2": "AmbientSoundEffect", + "qualified_name": "keen::ds::AmbientSoundEffect", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2052696193, + "hash2": 1749407215, + "struct_fields": [ + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "inFog", + "type_name": "keen::ds::AmbientEitherOrBoth", + "type_hash": 2568498426, + "data_offset": 9 + }, + { + "name": "indoors", + "type_name": "keen::ds::AmbientEitherOrBoth", + "type_hash": 2568498426, + "data_offset": 10 + }, + { + "name": "environment", + "type_name": "keen::ds::AmbientEnvironment", + "type_hash": 1909756702, + "data_offset": 11 + }, + { + "name": "ambientTagsInclude", + "type_name": "keen::ds::AmbientMask", + "type_hash": 256807941, + "data_offset": 12 + }, + { + "name": "ambientTagsExclude", + "type_name": "keen::ds::AmbientMask", + "type_hash": 256807941, + "data_offset": 13 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectParameters", + "type_name_2": "AmbientSoundEffectParameters", + "qualified_name": "keen::ds::AmbientSoundEffectParameters", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 1477523605, + "hash2": 762409179, + "struct_fields": [ + { + "name": "sfxLifeTimeInSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "chanceToPlaySound", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "environmentMusicFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "loopFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "musicFadeOutToBattleValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "musicFadeOutToBossValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "bossMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "bossMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "combatMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "combatMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "caveLoopsFadeInPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "caveLoopsFadeOutPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "caveMusicDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "rainIndoorFade", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "rainIndoorLoweredVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "daytimeFadeValuePlusMinusMinutes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "playerIsInFogThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "startFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "stopFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "playerIsInEnvironmentThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "startEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "stopEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "baseAmbienceThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "smallEnvironmentMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "oneshotDistanceMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "temporalSmoothingSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "silenceAfterVictoryDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "fogMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "environmentMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "environmentMusicEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 128 + }, + { + "name": "fogLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + }, + { + "name": "environmentLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 136 + }, + { + "name": "environmentLoopsEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 140 + }, + { + "name": "propsNeededToEnableAmbientTag", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "pauseBetweenBushCollisionSounds", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxSubDirectory", + "type_name_2": "AmbientSfxSubDirectory", + "qualified_name": "keen::ds::AmbientSfxSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3363728385, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxDirectory", + "type_name_2": "AmbientSfxDirectory", + "qualified_name": "keen::ds::AmbientSfxDirectory", + "referenced_type_name": "keen::ds::AmbientSfxSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3989884675, + "hash2": 2358943479, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerMode", + "type_name_2": "SoundContainerMode", + "qualified_name": "keen::ds::SoundContainerMode", + "referenced_type_name": "keen::SoundContainerMode", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Typedef", + "hash1": 1661222818, + "hash2": 5498097, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerScene", + "type_name_2": "SoundContainerScene", + "qualified_name": "keen::ds::SoundContainerScene", + "referenced_type_name": "keen::SoundContainerScene", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 3643239459, + "hash2": 1095480084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerShared", + "type_name_2": "SoundContainerShared", + "qualified_name": "keen::ds::SoundContainerShared", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 3435509988, + "hash2": 923726136, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::SoundContainerMode", + "type_hash": 1661222818, + "data_offset": 0 + }, + { + "name": "scene", + "type_name": "keen::ds::SoundContainerScene", + "type_hash": 3643239459, + "data_offset": 1 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "loopSameChosenEntry", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "avoidRepeatingLastX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "volumeRandomness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pitch", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "pitchRandomness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "sleep", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "sleepRandomness", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "hasPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "hasRandomPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "randomLeftRight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "randomFrontBack", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxResource", + "type_name_2": "AmbientSfxResource", + "qualified_name": "keen::ds::AmbientSfxResource", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 3747742292, + "hash2": 3983673079, + "struct_fields": [ + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "inFog", + "type_name": "keen::ds::AmbientEitherOrBoth", + "type_hash": 2568498426, + "data_offset": 1 + }, + { + "name": "indoors", + "type_name": "keen::ds::AmbientEitherOrBoth", + "type_hash": 2568498426, + "data_offset": 2 + }, + { + "name": "environment", + "type_name": "keen::ds::AmbientEnvironment", + "type_hash": 1909756702, + "data_offset": 3 + }, + { + "name": "playbackType", + "type_name": "keen::ds::AmbientSfxPlaybackType", + "type_hash": 2029987913, + "data_offset": 4 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 5 + }, + { + "name": "ambientTagsInclude", + "type_name": "keen::ds::AmbientMask", + "type_hash": 256807941, + "data_offset": 6 + }, + { + "name": "ambientTagsExclude", + "type_name": "keen::ds::AmbientMask", + "type_hash": 256807941, + "data_offset": 7 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "soundContainerShared", + "type_name": "keen::ds::SoundContainerShared", + "type_hash": 3435509988, + "data_offset": 32 + }, + { + "name": "soundStart", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 96 + }, + { + "name": "soundCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 104 + }, + { + "name": "debugNameEffect", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 120 + }, + { + "name": "debugNameEffectEntry", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AmbientSfxResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AmbientSfxResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3367940053, + "hash2": 2125652689, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SoundResourceReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SoundResourceReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1911542352, + "hash2": 1101660134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSfxCollectionResource", + "type_name_2": "AmbientSfxCollectionResource", + "qualified_name": "keen::ds::AmbientSfxCollectionResource", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1791717152, + "hash2": 1266297842, + "struct_fields": [ + { + "name": "effects", + "type_name": "keen::DsArray", + "type_hash": 3367940053, + "data_offset": 0 + }, + { + "name": "loops", + "type_name": "keen::DsArray", + "type_hash": 3367940053, + "data_offset": 40 + }, + { + "name": "music", + "type_name": "keen::DsArray", + "type_hash": 3367940053, + "data_offset": 80 + }, + { + "name": "sounds", + "type_name": "keen::DsArray", + "type_hash": 1911542352, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEventSounds", + "type_name_2": "AmbientEventSounds", + "qualified_name": "keen::ds::AmbientEventSounds", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2373219395, + "hash2": 4061477909, + "struct_fields": [ + { + "name": "battleStartJingle", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "battleEndJingle", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "bossMusicScavenger", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "bossMusicMonstrosity", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "bossMusicFoggerHeavy", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "bossMusicFoggerMage", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "bossMusicVukahBigfoot", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "bossMusicLurchie", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "bossMusicHollow", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "bossMusicCyclops", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + }, + { + "name": "bossMusicDragon", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 160 + }, + { + "name": "bushCollision", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SoundContainerResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3476113532, + "hash2": 491680028, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceReference", + "type_name_2": "SoundContainerResourceReference", + "qualified_name": "keen::ds::SoundContainerResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4173615034, + "hash2": 1168283961, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEventSoundsResource", + "type_name_2": "AmbientEventSoundsResource", + "qualified_name": "keen::ds::AmbientEventSoundsResource", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 505645999, + "hash2": 119850327, + "struct_fields": [ + { + "name": "battleStartJingle", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 0 + }, + { + "name": "battleEndJingle", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 16 + }, + { + "name": "bossMusicScavenger", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 32 + }, + { + "name": "bossMusicMonstrosity", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 48 + }, + { + "name": "bossMusicFoggerHeavy", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 64 + }, + { + "name": "bossMusicFoggerMage", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 80 + }, + { + "name": "bossMusicVukahBigfoot", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 96 + }, + { + "name": "bossMusicLurchie", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 112 + }, + { + "name": "bossMusicHollow", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 128 + }, + { + "name": "bossMusicCyclops", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 144 + }, + { + "name": "bossMusicDragon", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 160 + }, + { + "name": "bushCollision", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientParameterResource", + "type_name_2": "AmbientParameterResource", + "qualified_name": "keen::ds::AmbientParameterResource", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 2889243984, + "hash2": 1760573176, + "struct_fields": [ + { + "name": "chanceForSilence", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "sfxLifeTimeInSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "environmentMusicFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "loopFadeValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "musicFadeOutToBattleValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "musicFadeOutToBossValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "bossMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "bossMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "combatMusicFadeInValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "combatMusicFadeOutValuePerSecond", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "caveLoopsFadeInPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "caveLoopsFadeOutPerSeconds", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "caveMusicDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "rainIndoorFade", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "rainIndoorLoweredVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "playerIsInFogThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "startFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "stopFogEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "playerIsInEnvironmentThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "startEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "stopEnvironmentEffectsThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "baseAmbienceThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "smallEnvironmentMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "oneshotDistanceMultiplier", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "temporalSmoothingSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "silenceAfterVictoryDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "fogMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "environmentMusicFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 116 + }, + { + "name": "environmentMusicEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "fogLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "environmentLoopsFogVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 128 + }, + { + "name": "environmentLoopsEnvVolumeMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + }, + { + "name": "propsNeededToEnableAmbientTag", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "pauseBetweenBushCollisionSounds", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VfxDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3179453209, + "hash2": 3510978178, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxReference", + "type_name_2": "VfxReference", + "qualified_name": "keen::ds::VfxReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1450134050, + "hash2": 2084808283, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IngameTimeSpanReference", + "type_name_2": "IngameTimeSpanReference", + "qualified_name": "keen::ds::IngameTimeSpanReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 170115480, + "hash2": 1094759743, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVisualEffectEntry", + "type_name_2": "AmbientVisualEffectEntry", + "qualified_name": "keen::ds::AmbientVisualEffectEntry", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1368373560, + "hash2": 3569934856, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ds::IngameTimeSpanReference", + "type_hash": 170115480, + "data_offset": 16 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVisualEffect", + "type_name_2": "AmbientVisualEffect", + "qualified_name": "keen::ds::AmbientVisualEffect", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3515120820, + "hash2": 3560771290, + "struct_fields": [ + { + "name": "environment", + "type_name": "keen::ds::AmbientEnvironment", + "type_hash": 1909756702, + "data_offset": 0 + }, + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "inFog", + "type_name": "keen::ds::AmbientEitherOrBoth", + "type_hash": 2568498426, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxSubDirectory", + "type_name_2": "AmbientVfxSubDirectory", + "qualified_name": "keen::ds::AmbientVfxSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2858090998, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxDirectory", + "type_name_2": "AmbientVfxDirectory", + "qualified_name": "keen::ds::AmbientVfxDirectory", + "referenced_type_name": "keen::ds::AmbientVfxSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2576990154, + "hash2": 1278603829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxResource", + "type_name_2": "AmbientVfxResource", + "qualified_name": "keen::ds::AmbientVfxResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4273377223, + "hash2": 688318595, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "environment", + "type_name": "keen::ds::AmbientEnvironment", + "type_hash": 1909756702, + "data_offset": 32 + }, + { + "name": "inAllEnvironments", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "inFog", + "type_name": "keen::ds::AmbientEitherOrBoth", + "type_hash": 2568498426, + "data_offset": 34 + }, + { + "name": "weather", + "type_name": "keen::Bitmask8", + "type_hash": 1512143339, + "data_offset": 35 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AmbientVfxResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AmbientVfxResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 816593640, + "hash2": 1562495359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxCollectionResource", + "type_name_2": "AmbientVfxCollectionResource", + "qualified_name": "keen::ds::AmbientVfxCollectionResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1229314575, + "hash2": 4220165595, + "struct_fields": [ + { + "name": "effects", + "type_name": "keen::DsArray", + "type_hash": 816593640, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AmbientEnvironment[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AmbientEnvironment", + "class_size": 256, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 1348795361, + "hash2": 854623182, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEnvironmentMapResource", + "type_name_2": "AmbientEnvironmentMapResource", + "qualified_name": "keen::ds::AmbientEnvironmentMapResource", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2758540508, + "hash2": 3436656463, + "struct_fields": [ + { + "name": "voxelIdToAmbientEnvironmentMap", + "type_name": "keen::StaticArray", + "type_hash": 1348795361, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientPPPDawnDuskOffsets", + "type_name_2": "AmbientPPPDawnDuskOffsets", + "qualified_name": "keen::ds::AmbientPPPDawnDuskOffsets", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3013570160, + "hash2": 3428042606, + "struct_fields": [ + { + "name": "nightAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "nightAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "dayAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "dayAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientPostProcessingParameters", + "type_name_2": "AmbientPostProcessingParameters", + "qualified_name": "keen::ds::AmbientPostProcessingParameters", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1993517292, + "hash2": 2695224780, + "struct_fields": [ + { + "name": "rainWeatherSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "nightAdaptationStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "dawnDuskOffset", + "type_name": "keen::ds::AmbientPPPDawnDuskOffsets", + "type_hash": 3013570160, + "data_offset": 8 + }, + { + "name": "deathOnlyDesaturates", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "deathScreenSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 48 + }, + { + "name": "defaultSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientPostProcessingResource", + "type_name_2": "AmbientPostProcessingResource", + "qualified_name": "keen::ds::AmbientPostProcessingResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 464805996, + "hash2": 2655379007, + "struct_fields": [ + { + "name": "rainWeatherSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "nightAdaptationStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "nightAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "nightAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "dayAdaptationStartOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "dayAdaptationEndOffset", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "deathOnlyDesaturates", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "deathScreenSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 48 + }, + { + "name": "defaultSaturation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AmbientSfxCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 836279319, + "hash2": 4097387174, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AmbientVfxCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3819448342, + "hash2": 2362478322, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AmbientParameterResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2284854407, + "hash2": 3920533435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AmbientEnvironmentMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3601703601, + "hash2": 2583894924, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AmbientEventSoundsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 894049650, + "hash2": 1543981388, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AmbientPostProcessingResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2958617765, + "hash2": 3470173511, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientCollectionResource", + "type_name_2": "AmbientCollectionResource", + "qualified_name": "keen::ds::AmbientCollectionResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2511197373, + "hash2": 841762653, + "struct_fields": [ + { + "name": "sfxCollection", + "type_name": "keen::ObjectReference", + "type_hash": 836279319, + "data_offset": 0 + }, + { + "name": "vfxCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3819448342, + "data_offset": 16 + }, + { + "name": "parameters", + "type_name": "keen::ObjectReference", + "type_hash": 2284854407, + "data_offset": 32 + }, + { + "name": "mapping", + "type_name": "keen::ObjectReference", + "type_hash": 3601703601, + "data_offset": 48 + }, + { + "name": "eventSounds", + "type_name": "keen::ObjectReference", + "type_hash": 894049650, + "data_offset": 64 + }, + { + "name": "postProcessing", + "type_name": "keen::ObjectReference", + "type_hash": 2958617765, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReasonThisSoundDoesNotPlay", + "type_name_2": "ambient.ReasonThisSoundDoesNotPlay", + "qualified_name": "keen::ds::ambient::ReasonThisSoundDoesNotPlay", + "referenced_type_name": "keen::ambient::ReasonThisSoundDoesNotPlay", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4251043804, + "hash2": 528309864, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ReasonThisSoundDoesNotPlayMask", + "type_name_2": "ambient.ReasonThisSoundDoesNotPlayMask", + "qualified_name": "keen::ds::ambient::ReasonThisSoundDoesNotPlayMask", + "referenced_type_name": "keen::ambient::ReasonThisSoundDoesNotPlayMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4108126092, + "hash2": 3993180614, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundExplanation", + "type_name_2": "ambient.SoundExplanation", + "qualified_name": "keen::ds::ambient::SoundExplanation", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 613759379, + "hash2": 2473920280, + "struct_fields": [ + { + "name": "reason", + "type_name": "keen::ds::ambient::ReasonThisSoundDoesNotPlayMask", + "type_hash": 4108126092, + "data_offset": 0 + }, + { + "name": "volumeCurrent", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "volumeTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "soundGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EffectsSoundReasonsDebugMessage", + "type_name_2": "ambient.EffectsSoundReasonsDebugMessage", + "qualified_name": "keen::ds::ambient::EffectsSoundReasonsDebugMessage", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1545160679, + "hash2": 4050962008, + "struct_fields": [ + { + "name": "effectGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "explanation", + "type_name": "keen::ds::ambient::SoundExplanation", + "type_hash": 613759379, + "data_offset": 16 + }, + { + "name": "cellIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ambient.EffectsSoundReasonsDebugMessage[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ambient::EffectsSoundReasonsDebugMessage", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 118195876, + "hash2": 174595601, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugMessageBundle", + "type_name_2": "ambient.DebugMessageBundle", + "qualified_name": "keen::ds::ambient::DebugMessageBundle", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1308963939, + "hash2": 4011545511, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 118195876, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BossMusicType", + "type_name_2": "BossMusicType", + "qualified_name": "keen::ds::BossMusicType", + "referenced_type_name": "keen::BossMusicType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1756930053, + "hash2": 1382617570, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Component", + "type_name_2": "ecs.Component", + "qualified_name": "keen::ds::ecs::Component", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1096235463, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsTame", + "type_name_2": "ecs.IsTame", + "qualified_name": "keen::ds::ecs::IsTame", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2321036209, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationLoopType", + "type_name_2": "AnimationLoopType", + "qualified_name": "keen::ds::AnimationLoopType", + "referenced_type_name": "keen::AnimationLoopType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3375322149, + "hash2": 3381688395, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationJointQuality", + "type_name_2": "AnimationJointQuality", + "qualified_name": "keen::ds::AnimationJointQuality", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3049325434, + "hash2": 3001407485, + "struct_fields": [ + { + "name": "trackName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "quality", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttachmentSlot", + "type_name_2": "AttachmentSlot", + "qualified_name": "keen::ds::AttachmentSlot", + "referenced_type_name": "keen::AttachmentSlot", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 976550702, + "hash2": 1652338314, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttachmentSlotMask", + "type_name_2": "AttachmentSlotMask", + "qualified_name": "keen::ds::AttachmentSlotMask", + "referenced_type_name": "keen::AttachmentSlotMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1814507678, + "hash2": 2431243603, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpace", + "type_name_2": "AnimationSpace", + "qualified_name": "keen::ds::AnimationSpace", + "referenced_type_name": "keen::AnimationSpace", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1424367555, + "hash2": 2484578666, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Model", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2206438977, + "hash2": 2126651386, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHintSetEntry", + "type_name_2": "ModelHintSetEntry", + "qualified_name": "keen::ds::ModelHintSetEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1265904045, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelHintSet", + "type_name_2": "ModelHintSet", + "qualified_name": "keen::ds::ModelHintSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4237049267, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ModelHierarchy", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2934938658, + "hash2": 1836936033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ModelHintSet", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 327682386, + "hash2": 2292562586, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ClothCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4263838746, + "hash2": 1089620424, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AnimationJointQuality[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AnimationJointQuality", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2405241361, + "hash2": 637775283, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Animation", + "type_name_2": "Animation", + "qualified_name": "keen::ds::Animation", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 132726599, + "hash2": 2230826251, + "struct_fields": [ + { + "name": "animation_node", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2934938658, + "data_offset": 40 + }, + { + "name": "modelHint", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 56 + }, + { + "name": "modelHintSet", + "type_name": "keen::ObjectReference", + "type_hash": 327682386, + "data_offset": 72 + }, + { + "name": "clothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 88 + }, + { + "name": "startFrame", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + }, + { + "name": "endFrame", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 108 + }, + { + "name": "refFrame", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 112 + }, + { + "name": "space", + "type_name": "keen::ds::AnimationSpace", + "type_hash": 1424367555, + "data_offset": 116 + }, + { + "name": "xanimScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "quality", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "qualityOverrite", + "type_name": "keen::DsArray", + "type_hash": 2405241361, + "data_offset": 128 + }, + { + "name": "loopType", + "type_name": "keen::ds::AnimationLoopType", + "type_hash": 3375322149, + "data_offset": 168 + }, + { + "name": "autoLoopEpsilon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 172 + }, + { + "name": "loopLve", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + }, + { + "name": "exportJointAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 177 + }, + { + "name": "exportLveAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 178 + }, + { + "name": "exportSequenceData", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 179 + }, + { + "name": "exportDebugData", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Animation", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3685036728, + "hash2": 3773858741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationReference", + "type_name_2": "AnimationReference", + "qualified_name": "keen::ds::AnimationReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 572025620, + "hash2": 1442874726, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ModelHierarchyResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 256938998, + "hash2": 507037500, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationInfo", + "type_name_2": "AnimationInfo", + "qualified_name": "keen::ds::AnimationInfo", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3331451907, + "hash2": 3088554304, + "struct_fields": [ + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "frameCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "modelHint", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 12 + }, + { + "name": "modelHintSet", + "type_name": "keen::ObjectReference", + "type_hash": 327682386, + "data_offset": 28 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 256938998, + "data_offset": 44 + }, + { + "name": "hasLve", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "hasSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "loops", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "space", + "type_name": "keen::ds::AnimationSpace", + "type_hash": 1424367555, + "data_offset": 63 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationConverterConfiguration", + "type_name_2": "AnimationConverterConfiguration", + "qualified_name": "keen::ds::AnimationConverterConfiguration", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1728133913, + "hash2": 2519326842, + "struct_fields": [ + { + "name": "checkParentNames", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "checkMatrixDecomposition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Sequence", + "type_name_2": "Sequence", + "qualified_name": "keen::ds::Sequence", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 819026422, + "hash2": 2309444803, + "struct_fields": [ + { + "name": "length", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationEventSequence", + "type_name_2": "AnimationEventSequence", + "qualified_name": "keen::ds::AnimationEventSequence", + "referenced_type_name": "keen::ds::Sequence", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3974873736, + "hash2": 3583232444, + "struct_fields": [ + { + "name": "hierarchyPreviewSettings", + "type_name": "keen::ObjectReference", + "type_hash": 2934938658, + "data_offset": 16 + }, + { + "name": "previewClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SequenceResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3862450193, + "hash2": 3899031709, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationEventSequenceReference", + "type_name_2": "AnimationEventSequenceReference", + "qualified_name": "keen::ds::AnimationEventSequenceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 567111589, + "hash2": 2499120534, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AnimationEventSequenceReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AnimationEventSequenceReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1866815268, + "hash2": 3896788454, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSequenceContainer", + "type_name_2": "AnimationSequenceContainer", + "qualified_name": "keen::ds::AnimationSequenceContainer", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3660238701, + "hash2": 253187659, + "struct_fields": [ + { + "name": "sequences", + "type_name": "keen::DsArray", + "type_hash": 1866815268, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Blend1DInterpolationCurve", + "type_name_2": "Blend1DInterpolationCurve", + "qualified_name": "keen::ds::Blend1DInterpolationCurve", + "referenced_type_name": "keen::Blend1DInterpolationCurve", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 373003810, + "hash2": 685021271, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateId", + "type_name_2": "animationgraph.StateId", + "qualified_name": "keen::ds::animationgraph::StateId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2718562059, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputId", + "type_name_2": "animationgraph.InputId", + "qualified_name": "keen::ds::animationgraph::InputId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3896891190, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloatInputId", + "type_name_2": "animationgraph.FloatInputId", + "qualified_name": "keen::ds::animationgraph::FloatInputId", + "referenced_type_name": "keen::ds::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2939733398, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolInputId", + "type_name_2": "animationgraph.BoolInputId", + "qualified_name": "keen::ds::animationgraph::BoolInputId", + "referenced_type_name": "keen::ds::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 771809518, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IntInputId", + "type_name_2": "animationgraph.IntInputId", + "qualified_name": "keen::ds::animationgraph::IntInputId", + "referenced_type_name": "keen::ds::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1104097135, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UintInputId", + "type_name_2": "animationgraph.UintInputId", + "qualified_name": "keen::ds::animationgraph::UintInputId", + "referenced_type_name": "keen::ds::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1984195482, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IdInputId", + "type_name_2": "animationgraph.IdInputId", + "qualified_name": "keen::ds::animationgraph::IdInputId", + "referenced_type_name": "keen::ds::animationgraph::InputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2587229801, + "hash2": 204313150, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayId", + "type_name_2": "animationgraph.OverlayId", + "qualified_name": "keen::ds::animationgraph::OverlayId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 205067278, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayContextId", + "type_name_2": "animationgraph.OverlayContextId", + "qualified_name": "keen::ds::animationgraph::OverlayContextId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3959980615, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::StateId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1621460828, + "hash2": 2351684786, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateIdReference", + "type_name_2": "animationgraph.StateIdReference", + "qualified_name": "keen::ds::animationgraph::StateIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 356792272, + "hash2": 3346546251, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::InputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 900711775, + "hash2": 118987128, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputIdReference", + "type_name_2": "animationgraph.InputIdReference", + "qualified_name": "keen::ds::animationgraph::InputIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2632351747, + "hash2": 745728606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::OverlayId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2016391235, + "hash2": 2668366538, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayIdReference", + "type_name_2": "animationgraph.OverlayIdReference", + "qualified_name": "keen::ds::animationgraph::OverlayIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2302284539, + "hash2": 634495979, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::OverlayContextId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2506670738, + "hash2": 2812488033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayContextIdReference", + "type_name_2": "animationgraph.OverlayContextIdReference", + "qualified_name": "keen::ds::animationgraph::OverlayContextIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4127523860, + "hash2": 2456214033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateIdHash", + "type_name_2": "animationgraph.StateIdHash", + "qualified_name": "keen::ds::animationgraph::StateIdHash", + "referenced_type_name": "keen::animationgraph::StateIdHash", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2323396395, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputIdHash", + "type_name_2": "animationgraph.InputIdHash", + "qualified_name": "keen::ds::animationgraph::InputIdHash", + "referenced_type_name": "keen::animationgraph::InputIdHash", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2510270234, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationIdCollection", + "type_name_2": "animationgraph.AnimationIdCollection", + "qualified_name": "keen::ds::animationgraph::AnimationIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 159121220, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateIdCollection", + "type_name_2": "animationgraph.StateIdCollection", + "qualified_name": "keen::ds::animationgraph::StateIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1343739139, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputIdCollection", + "type_name_2": "animationgraph.InputIdCollection", + "qualified_name": "keen::ds::animationgraph::InputIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3122675246, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayIdCollection", + "type_name_2": "animationgraph.OverlayIdCollection", + "qualified_name": "keen::ds::animationgraph::OverlayIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2145639174, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayContextIdCollection", + "type_name_2": "animationgraph.OverlayContextIdCollection", + "qualified_name": "keen::ds::animationgraph::OverlayContextIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2640455495, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationDebugEntry", + "type_name_2": "animationgraph.AnimationDebugEntry", + "qualified_name": "keen::ds::animationgraph::AnimationDebugEntry", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 433449236, + "hash2": 2119470942, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph.AnimationDebugEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph::AnimationDebugEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3601123475, + "hash2": 1031561581, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphDebugInfo", + "type_name_2": "animationgraph.AnimationGraphDebugInfo", + "qualified_name": "keen::ds::animationgraph::AnimationGraphDebugInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 787540254, + "hash2": 2585606032, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 3601123475, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionFlag", + "type_name_2": "animationgraph.RootMotionFlag", + "qualified_name": "keen::ds::animationgraph::RootMotionFlag", + "referenced_type_name": "keen::animationgraph::RootMotionFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4192534809, + "hash2": 3256534734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionMask", + "type_name_2": "animationgraph.RootMotionMask", + "qualified_name": "keen::ds::animationgraph::RootMotionMask", + "referenced_type_name": "keen::animationgraph::RootMotionMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2820560387, + "hash2": 917733009, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeBase", + "type_name_2": "animationgraph.NodeBase", + "qualified_name": "keen::ds::animationgraph::NodeBase", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 676447168, + "hash2": 2697252734, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 16 + }, + { + "name": "defaultBlendInDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "pivotOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "isIncompatibleWithOverlays", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientController", + "type_name_2": "animationgraph.AnimationSpeedGradientController", + "qualified_name": "keen::ds::animationgraph::AnimationSpeedGradientController", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3911832752, + "hash2": 1865130147, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 0 + }, + { + "name": "inputValueA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "inputValueB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "speedFactorA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "speedFactorB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationNode", + "type_name_2": "animationgraph.AnimationNode", + "qualified_name": "keen::ds::animationgraph::AnimationNode", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 60, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1925676261, + "hash2": 3284284894, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientNode", + "type_name_2": "animationgraph.AnimationSpeedGradientNode", + "qualified_name": "keen::ds::animationgraph::AnimationSpeedGradientNode", + "referenced_type_name": "keen::ds::animationgraph::AnimationNode", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1302049348, + "hash2": 3497565565, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::ds::animationgraph::AnimationSpeedGradientController", + "type_hash": 3911832752, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendData1DBase", + "type_name_2": "animationgraph.BlendData1DBase", + "qualified_name": "keen::ds::animationgraph::BlendData1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1996475672, + "hash2": 2479394807, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceData1DBase", + "type_name_2": "animationgraph.ChoiceData1DBase", + "qualified_name": "keen::ds::animationgraph::ChoiceData1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 474008830, + "hash2": 2072775733, + "struct_fields": [ + { + "name": "choice", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationBlendData1D", + "type_name_2": "animationgraph.NoAnimationBlendData1D", + "qualified_name": "keen::ds::animationgraph::NoAnimationBlendData1D", + "referenced_type_name": "keen::ds::animationgraph::BlendData1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 690687838, + "hash2": 2466327693, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationChoiceData1D", + "type_name_2": "animationgraph.NoAnimationChoiceData1D", + "qualified_name": "keen::ds::animationgraph::NoAnimationChoiceData1D", + "referenced_type_name": "keen::ds::animationgraph::ChoiceData1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 611618014, + "hash2": 3504976811, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendData1D", + "type_name_2": "animationgraph.AnimationBlendData1D", + "qualified_name": "keen::ds::animationgraph::AnimationBlendData1D", + "referenced_type_name": "keen::ds::animationgraph::BlendData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3361913133, + "hash2": 3503405037, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationChoiceData1D", + "type_name_2": "animationgraph.AnimationChoiceData1D", + "qualified_name": "keen::ds::animationgraph::AnimationChoiceData1D", + "referenced_type_name": "keen::ds::animationgraph::ChoiceData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3640113339, + "hash2": 2110155679, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientBlendData1D", + "type_name_2": "animationgraph.AnimationSpeedGradientBlendData1D", + "qualified_name": "keen::ds::animationgraph::AnimationSpeedGradientBlendData1D", + "referenced_type_name": "keen::ds::animationgraph::AnimationBlendData1D", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3754466590, + "hash2": 3963636510, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::ds::animationgraph::AnimationSpeedGradientController", + "type_hash": 3911832752, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientChoiceData1D", + "type_name_2": "animationgraph.AnimationSpeedGradientChoiceData1D", + "qualified_name": "keen::ds::animationgraph::AnimationSpeedGradientChoiceData1D", + "referenced_type_name": "keen::ds::animationgraph::AnimationChoiceData1D", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1541258142, + "hash2": 2004620137, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::ds::animationgraph::AnimationSpeedGradientController", + "type_hash": 3911832752, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HierarchyBlendData1D", + "type_name_2": "animationgraph.HierarchyBlendData1D", + "qualified_name": "keen::ds::animationgraph::HierarchyBlendData1D", + "referenced_type_name": "keen::ds::animationgraph::BlendData1DBase", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3568352846, + "hash2": 758533396, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 4 + }, + { + "name": "curve", + "type_name": "keen::ds::Blend1DInterpolationCurve", + "type_hash": 373003810, + "data_offset": 20 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendHierarchyDataChoice1D", + "type_name_2": "animationgraph.BlendHierarchyDataChoice1D", + "qualified_name": "keen::ds::animationgraph::BlendHierarchyDataChoice1D", + "referenced_type_name": "keen::ds::animationgraph::ChoiceData1DBase", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2376558309, + "hash2": 1482842854, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 4 + }, + { + "name": "curve", + "type_name": "keen::ds::Blend1DInterpolationCurve", + "type_hash": 373003810, + "data_offset": 20 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyDataBlend1D", + "type_name_2": "animationgraph.ChoiceHierarchyDataBlend1D", + "qualified_name": "keen::ds::animationgraph::ChoiceHierarchyDataBlend1D", + "referenced_type_name": "keen::ds::animationgraph::BlendData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1291650497, + "hash2": 2657738878, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyDataChoice1D", + "type_name_2": "animationgraph.ChoiceHierarchyDataChoice1D", + "qualified_name": "keen::ds::animationgraph::ChoiceHierarchyDataChoice1D", + "referenced_type_name": "keen::ds::animationgraph::ChoiceData1DBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1068444687, + "hash2": 1863595272, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenderAnimationReference", + "type_name_2": "animationgraph.GenderAnimationReference", + "qualified_name": "keen::ds::animationgraph::GenderAnimationReference", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1487091867, + "hash2": 323517167, + "struct_fields": [ + { + "name": "maleAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 0 + }, + { + "name": "femaleAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificAnimationReference", + "type_name_2": "animationgraph.PrimaryItemSpecificAnimationReference", + "qualified_name": "keen::ds::animationgraph::PrimaryItemSpecificAnimationReference", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 975331525, + "hash2": 3882658876, + "struct_fields": [ + { + "name": "unarmedAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 0 + }, + { + "name": "singleAndShieldAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 16 + }, + { + "name": "singleNoShieldAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 32 + }, + { + "name": "dualAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 48 + }, + { + "name": "twoHandedAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 64 + }, + { + "name": "bowPrimaryAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 80 + }, + { + "name": "staffPrimaryAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 96 + }, + { + "name": "wandPrimaryAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificAnimationReference", + "type_name_2": "animationgraph.SecondaryItemSpecificAnimationReference", + "qualified_name": "keen::ds::animationgraph::SecondaryItemSpecificAnimationReference", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4255621357, + "hash2": 258771672, + "struct_fields": [ + { + "name": "bowAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 0 + }, + { + "name": "staffSecondaryAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 16 + }, + { + "name": "wandSecondaryAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificAnimationNode", + "type_name_2": "animationgraph.PrimaryItemSpecificAnimationNode", + "qualified_name": "keen::ds::animationgraph::PrimaryItemSpecificAnimationNode", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 172, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3466174580, + "hash2": 1798680982, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 975331525, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificAnimationNode", + "type_name_2": "animationgraph.SecondaryItemSpecificAnimationNode", + "qualified_name": "keen::ds::animationgraph::SecondaryItemSpecificAnimationNode", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2988981532, + "hash2": 2503667843, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 4255621357, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificBlend1D", + "type_name_2": "animationgraph.PrimaryItemSpecificBlend1D", + "qualified_name": "keen::ds::animationgraph::PrimaryItemSpecificBlend1D", + "referenced_type_name": "keen::ds::animationgraph::BlendData1DBase", + "class_size": 132, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4281948044, + "hash2": 2114037835, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 975331525, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificBlend1D", + "type_name_2": "animationgraph.SecondaryItemSpecificBlend1D", + "qualified_name": "keen::ds::animationgraph::SecondaryItemSpecificBlend1D", + "referenced_type_name": "keen::ds::animationgraph::BlendData1DBase", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2837094772, + "hash2": 2815584902, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 4255621357, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificChoice1D", + "type_name_2": "animationgraph.PrimaryItemSpecificChoice1D", + "qualified_name": "keen::ds::animationgraph::PrimaryItemSpecificChoice1D", + "referenced_type_name": "keen::ds::animationgraph::ChoiceData1DBase", + "class_size": 132, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2415241188, + "hash2": 500278185, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 975331525, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificChoice1D", + "type_name_2": "animationgraph.SecondaryItemSpecificChoice1D", + "qualified_name": "keen::ds::animationgraph::SecondaryItemSpecificChoice1D", + "referenced_type_name": "keen::ds::animationgraph::ChoiceData1DBase", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3383738860, + "hash2": 1451534752, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 4255621357, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VerySpecialBlockNode", + "type_name_2": "animationgraph.VerySpecialBlockNode", + "qualified_name": "keen::ds::animationgraph::VerySpecialBlockNode", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 44, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2615421909, + "hash2": 4014934078, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2008732231, + "hash2": 1865749396, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaskedNode", + "type_name_2": "animationgraph.MaskedNode", + "qualified_name": "keen::ds::animationgraph::MaskedNode", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 160, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2529625164, + "hash2": 3822194867, + "struct_fields": [ + { + "name": "delimiterJoint", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 48 + }, + { + "name": "delimiterInputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 88 + }, + { + "name": "lowerBodyBlendInTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "lowerBodyBlendOutTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "resetLowerBodyOnToggleOn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 120 + }, + { + "name": "upperAnims", + "type_name": "keen::ObjectReference", + "type_hash": 2008732231, + "data_offset": 124 + }, + { + "name": "lowerAnims", + "type_name": "keen::ObjectReference", + "type_hash": 2008732231, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Blend1D", + "type_name_2": "animationgraph.Blend1D", + "qualified_name": "keen::ds::animationgraph::Blend1D", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 326314173, + "hash2": 1966706409, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 44 + }, + { + "name": "curve", + "type_name": "keen::ds::Blend1DInterpolationCurve", + "type_hash": 373003810, + "data_offset": 60 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Choice1D", + "type_name_2": "animationgraph.Choice1D", + "qualified_name": "keen::ds::animationgraph::Choice1D", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 60, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1856979539, + "hash2": 30844677, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayerBase", + "type_name_2": "animationgraph.BlendLayerBase", + "qualified_name": "keen::ds::animationgraph::BlendLayerBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2797935328, + "hash2": 108642760, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendLayer", + "type_name_2": "animationgraph.AnimationBlendLayer", + "qualified_name": "keen::ds::animationgraph::AnimationBlendLayer", + "referenced_type_name": "keen::ds::animationgraph::BlendLayerBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3948291205, + "hash2": 569289340, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HierarchyBlendLayer", + "type_name_2": "animationgraph.HierarchyBlendLayer", + "qualified_name": "keen::ds::animationgraph::HierarchyBlendLayer", + "referenced_type_name": "keen::ds::animationgraph::BlendLayerBase", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 583688220, + "hash2": 513678724, + "struct_fields": [ + { + "name": "blendHierarchy", + "type_name": "keen::ds::animationgraph::HierarchyBlendData1D", + "type_hash": 3568352846, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyBlendLayer", + "type_name_2": "animationgraph.ChoiceHierarchyBlendLayer", + "qualified_name": "keen::ds::animationgraph::ChoiceHierarchyBlendLayer", + "referenced_type_name": "keen::ds::animationgraph::BlendLayerBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 777516817, + "hash2": 163377370, + "struct_fields": [ + { + "name": "choiceHierarchy", + "type_name": "keen::ds::animationgraph::ChoiceHierarchyDataBlend1D", + "type_hash": 1291650497, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryItemSpecificBlendLayer", + "type_name_2": "animationgraph.PrimaryItemSpecificBlendLayer", + "qualified_name": "keen::ds::animationgraph::PrimaryItemSpecificBlendLayer", + "referenced_type_name": "keen::ds::animationgraph::BlendLayerBase", + "class_size": 132, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4214635210, + "hash2": 3554826008, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::PrimaryItemSpecificAnimationReference", + "type_hash": 975331525, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryItemSpecificBlendLayer", + "type_name_2": "animationgraph.SecondaryItemSpecificBlendLayer", + "qualified_name": "keen::ds::animationgraph::SecondaryItemSpecificBlendLayer", + "referenced_type_name": "keen::ds::animationgraph::BlendLayerBase", + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2997734306, + "hash2": 2522926329, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::ds::animationgraph::SecondaryItemSpecificAnimationReference", + "type_hash": 4255621357, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayersNode", + "type_name_2": "animationgraph.BlendLayersNode", + "qualified_name": "keen::ds::animationgraph::BlendLayersNode", + "referenced_type_name": "keen::ds::animationgraph::NodeBase", + "class_size": 44, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3085581718, + "hash2": 4014934078, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeBaseReference", + "type_name_2": "animationgraph.NodeBaseReference", + "qualified_name": "keen::ds::animationgraph::NodeBaseReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3466994397, + "hash2": 2938170057, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransitionBase", + "type_name_2": "animationgraph.TransitionBase", + "qualified_name": "keen::ds::animationgraph::TransitionBase", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3209595327, + "hash2": 4152341687, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::ds::animationgraph::NodeBaseReference", + "type_hash": 3466994397, + "data_offset": 0 + }, + { + "name": "endNode", + "type_name": "keen::ds::animationgraph::NodeBaseReference", + "type_hash": 3466994397, + "data_offset": 16 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinearTransition", + "type_name_2": "animationgraph.LinearTransition", + "qualified_name": "keen::ds::animationgraph::LinearTransition", + "referenced_type_name": "keen::ds::animationgraph::TransitionBase", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2222065219, + "hash2": 1125443065, + "struct_fields": [ + { + "name": "sync", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationTransition", + "type_name_2": "animationgraph.AnimationTransition", + "qualified_name": "keen::ds::animationgraph::AnimationTransition", + "referenced_type_name": "keen::ds::animationgraph::TransitionBase", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 489167050, + "hash2": 2092475644, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 36 + }, + { + "name": "blendIn", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "blendOut", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "simultaneouslyPlayTargetAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph.NodeBaseReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph::NodeBaseReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3592785040, + "hash2": 2889835635, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayBase", + "type_name_2": "animationgraph.OverlayBase", + "qualified_name": "keen::ds::animationgraph::OverlayBase", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 96078894, + "hash2": 2663049342, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::animationgraph::OverlayIdReference", + "type_hash": 2302284539, + "data_offset": 0 + }, + { + "name": "context", + "type_name": "keen::ds::animationgraph::OverlayContextIdReference", + "type_hash": 4127523860, + "data_offset": 16 + }, + { + "name": "abortUnlessInNodes", + "type_name": "keen::DsArray", + "type_hash": 3592785040, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationOverlay", + "type_name_2": "animationgraph.AnimationOverlay", + "qualified_name": "keen::ds::animationgraph::AnimationOverlay", + "referenced_type_name": "keen::ds::animationgraph::OverlayBase", + "class_size": 88, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1509173147, + "hash2": 2816926431, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Group", + "type_name_2": "Group", + "qualified_name": "keen::ds::Group", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2532468918, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphDirectory", + "type_name_2": "AnimationGraphDirectory", + "qualified_name": "keen::ds::AnimationGraphDirectory", + "referenced_type_name": "keen::ds::Group", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 507139736, + "hash2": 4244116669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph.GenderAnimationReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph::GenderAnimationReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4218543300, + "hash2": 3264626182, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraph", + "type_name_2": "AnimationGraph", + "qualified_name": "keen::ds::AnimationGraph", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3831741141, + "hash2": 28243225, + "struct_fields": [ + { + "name": "defaultTransitionTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "genderLookupTable", + "type_name": "keen::DsArray", + "type_hash": 4218543300, + "data_offset": 8 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NodeId", + "type_name_2": "animation.NodeId", + "qualified_name": "keen::ds::animation::NodeId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3601228074, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransitionBase", + "type_name_2": "animationgraph_resource.TransitionBase", + "qualified_name": "keen::ds::animationgraph_resource::TransitionBase", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3181390132, + "hash2": 318818033, + "struct_fields": [ + { + "name": "endNodeIndex", + "type_name": "keen::ds::animation::NodeId", + "type_hash": 3601228074, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinearTransition", + "type_name_2": "animationgraph_resource.LinearTransition", + "qualified_name": "keen::ds::animationgraph_resource::LinearTransition", + "referenced_type_name": "keen::ds::animationgraph_resource::TransitionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2767177620, + "hash2": 2527813822, + "struct_fields": [ + { + "name": "sync", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationId", + "type_name_2": "animation.AnimationId", + "qualified_name": "keen::ds::animation::AnimationId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2525388258, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenderSpecificAnimationIndex", + "type_name_2": "animationgraph_resource.GenderSpecificAnimationIndex", + "qualified_name": "keen::ds::animationgraph_resource::GenderSpecificAnimationIndex", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3982159509, + "hash2": 118516331, + "struct_fields": [ + { + "name": "maleAnimation", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 0 + }, + { + "name": "femaleAnimation", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExitAnimation", + "type_name_2": "animationgraph_resource.ExitAnimation", + "qualified_name": "keen::ds::animationgraph_resource::ExitAnimation", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 215090128, + "hash2": 312659860, + "struct_fields": [ + { + "name": "targetNodeIndex", + "type_name": "keen::ds::animation::NodeId", + "type_hash": 3601228074, + "data_offset": 0 + }, + { + "name": "blendIn", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "blendOut", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "animationIndex", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 24 + }, + { + "name": "simultaneouslyPlayTargetAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientController", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientController", + "qualified_name": "keen::ds::animationgraph_resource::AnimationSpeedGradientController", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 177764707, + "hash2": 1865130147, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 0 + }, + { + "name": "inputValueA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "inputValueB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "speedFactorA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "speedFactorB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph_resource.ExitAnimation[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph_resource::ExitAnimation", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3511915757, + "hash2": 1784244806, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "uint32[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::uint32", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1518945252, + "hash2": 1835616007, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeBase", + "type_name_2": "animationgraph_resource.NodeBase", + "qualified_name": "keen::ds::animationgraph_resource::NodeBase", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3817372299, + "hash2": 339027556, + "struct_fields": [ + { + "name": "stateIdReference", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + }, + { + "name": "stateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 16 + }, + { + "name": "onExits", + "type_name": "keen::DsArray", + "type_hash": 3511915757, + "data_offset": 24 + }, + { + "name": "defaultInboundTransition", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "outgoingTransitions", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 72 + }, + { + "name": "pivotOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "isIncompatibleWithOverlays", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + }, + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + }, + { + "name": "graphCanBePaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 126 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationNode", + "type_name_2": "animationgraph_resource.AnimationNode", + "qualified_name": "keen::ds::animationgraph_resource::AnimationNode", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 136, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1769054228, + "hash2": 1390249871, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientNode", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientNode", + "qualified_name": "keen::ds::animationgraph_resource::AnimationSpeedGradientNode", + "referenced_type_name": "keen::ds::animationgraph_resource::AnimationNode", + "class_size": 168, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1964098751, + "hash2": 1703299928, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::ds::animationgraph_resource::AnimationSpeedGradientController", + "type_hash": 177764707, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendDataFloat1DBase", + "type_name_2": "animationgraph_resource.BlendDataFloat1DBase", + "qualified_name": "keen::ds::animationgraph_resource::BlendDataFloat1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1740082177, + "hash2": 2479394807, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendDataUint1DBase", + "type_name_2": "animationgraph_resource.BlendDataUint1DBase", + "qualified_name": "keen::ds::animationgraph_resource::BlendDataUint1DBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1480815981, + "hash2": 2072775733, + "struct_fields": [ + { + "name": "choice", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationBlendDataFloat1D", + "type_name_2": "animationgraph_resource.NoAnimationBlendDataFloat1D", + "qualified_name": "keen::ds::animationgraph_resource::NoAnimationBlendDataFloat1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2077209795, + "hash2": 3025362920, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendDataFloat1D", + "type_name_2": "animationgraph_resource.AnimationBlendDataFloat1D", + "qualified_name": "keen::ds::animationgraph_resource::AnimationBlendDataFloat1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3453721050, + "hash2": 2446784800, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoAnimationBlendDataUint1D", + "type_name_2": "animationgraph_resource.NoAnimationBlendDataUint1D", + "qualified_name": "keen::ds::animationgraph_resource::NoAnimationBlendDataUint1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataUint1DBase", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2118993289, + "hash2": 40938686, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendDataUint1D", + "type_name_2": "animationgraph_resource.AnimationBlendDataUint1D", + "qualified_name": "keen::ds::animationgraph_resource::AnimationBlendDataUint1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataUint1DBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 50298022, + "hash2": 2740198902, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientBlendDataFloat1D", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientBlendDataFloat1D", + "qualified_name": "keen::ds::animationgraph_resource::AnimationSpeedGradientBlendDataFloat1D", + "referenced_type_name": "keen::ds::animationgraph_resource::AnimationBlendDataFloat1D", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2869602633, + "hash2": 3388685194, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::ds::animationgraph_resource::AnimationSpeedGradientController", + "type_hash": 177764707, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedGradientBlendDataUint1D", + "type_name_2": "animationgraph_resource.AnimationSpeedGradientBlendDataUint1D", + "qualified_name": "keen::ds::animationgraph_resource::AnimationSpeedGradientBlendDataUint1D", + "referenced_type_name": "keen::ds::animationgraph_resource::AnimationBlendDataUint1D", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 961345375, + "hash2": 269516113, + "struct_fields": [ + { + "name": "speedController", + "type_name": "keen::ds::animationgraph_resource::AnimationSpeedGradientController", + "type_hash": 177764707, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 48, + "fields_count": 6, + "primitive_type": "DsVariant", + "hash1": 3041015852, + "hash2": 1322769208, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3197937109, + "hash2": 2865387707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloatHierarchy1D", + "type_name_2": "animationgraph_resource.FloatHierarchy1D", + "qualified_name": "keen::ds::animationgraph_resource::FloatHierarchy1D", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 774276318, + "hash2": 4202008927, + "struct_fields": [ + { + "name": "floatInputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 0 + }, + { + "name": "wrapInputAsAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "curve", + "type_name": "keen::ds::Blend1DInterpolationCurve", + "type_hash": 373003810, + "data_offset": 17 + }, + { + "name": "blendData", + "type_name": "keen::DsArray>", + "type_hash": 3197937109, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataUint1DBase", + "class_size": 48, + "fields_count": 6, + "primitive_type": "DsVariant", + "hash1": 2088046314, + "hash2": 1139093795, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1157696881, + "hash2": 2478428108, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UintHierarchy1D", + "type_name_2": "animationgraph_resource.UintHierarchy1D", + "qualified_name": "keen::ds::animationgraph_resource::UintHierarchy1D", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1180362036, + "hash2": 1717050648, + "struct_fields": [ + { + "name": "uintInputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 0 + }, + { + "name": "blendData", + "type_name": "keen::DsArray>", + "type_hash": 1157696881, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatHierarchyBlendDataFloat1D", + "type_name_2": "animationgraph_resource.FloatHierarchyBlendDataFloat1D", + "qualified_name": "keen::ds::animationgraph_resource::FloatHierarchyBlendDataFloat1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2025820717, + "hash2": 3775304603, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::FloatHierarchy1D", + "type_hash": 774276318, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatHierarchyBlendDataUint1D", + "type_name_2": "animationgraph_resource.FloatHierarchyBlendDataUint1D", + "qualified_name": "keen::ds::animationgraph_resource::FloatHierarchyBlendDataUint1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataUint1DBase", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3179779811, + "hash2": 537801661, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::FloatHierarchy1D", + "type_hash": 774276318, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UintHierarchyBlendDataFloat1D", + "type_name_2": "animationgraph_resource.UintHierarchyBlendDataFloat1D", + "qualified_name": "keen::ds::animationgraph_resource::UintHierarchyBlendDataFloat1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataFloat1DBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 168778443, + "hash2": 4067702754, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::UintHierarchy1D", + "type_hash": 1180362036, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UintHierarchyBlendDataUint1D", + "type_name_2": "animationgraph_resource.UintHierarchyBlendDataUint1D", + "qualified_name": "keen::ds::animationgraph_resource::UintHierarchyBlendDataUint1D", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendDataUint1DBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2506946145, + "hash2": 140512706, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::UintHierarchy1D", + "type_hash": 1180362036, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendFloat1DNode", + "type_name_2": "animationgraph_resource.BlendFloat1DNode", + "qualified_name": "keen::ds::animationgraph_resource::BlendFloat1DNode", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 192, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3766718592, + "hash2": 2293798436, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::FloatHierarchy1D", + "type_hash": 774276318, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendUint1DNode", + "type_name_2": "animationgraph_resource.BlendUint1DNode", + "qualified_name": "keen::ds::animationgraph_resource::BlendUint1DNode", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 184, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3869870532, + "hash2": 4066697919, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::UintHierarchy1D", + "type_hash": 1180362036, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayerBase", + "type_name_2": "animationgraph_resource.BlendLayerBase", + "qualified_name": "keen::ds::animationgraph_resource::BlendLayerBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3259006759, + "hash2": 108642760, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationBlendLayer", + "type_name_2": "animationgraph_resource.AnimationBlendLayer", + "qualified_name": "keen::ds::animationgraph_resource::AnimationBlendLayer", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendLayerBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2733709916, + "hash2": 286291224, + "struct_fields": [ + { + "name": "animationIndex", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendHierarchyBlendLayer", + "type_name_2": "animationgraph_resource.BlendHierarchyBlendLayer", + "qualified_name": "keen::ds::animationgraph_resource::BlendHierarchyBlendLayer", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendLayerBase", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1428008312, + "hash2": 3589069325, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::FloatHierarchy1D", + "type_hash": 774276318, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChoiceHierarchyBlendLayer", + "type_name_2": "animationgraph_resource.ChoiceHierarchyBlendLayer", + "qualified_name": "keen::ds::animationgraph_resource::ChoiceHierarchyBlendLayer", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendLayerBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 765697440, + "hash2": 2193295194, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ds::animationgraph_resource::UintHierarchy1D", + "type_hash": 1180362036, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::animationgraph_resource::BlendLayerBase", + "class_size": 48, + "fields_count": 4, + "primitive_type": "DsVariant", + "hash1": 2125425314, + "hash2": 3255127539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4002326163, + "hash2": 2778296495, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendLayersNode", + "type_name_2": "animationgraph_resource.BlendLayersNode", + "qualified_name": "keen::ds::animationgraph_resource::BlendLayersNode", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 168, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1245502923, + "hash2": 2637534118, + "struct_fields": [ + { + "name": "blendLayers", + "type_name": "keen::DsArray>", + "type_hash": 4002326163, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4085798804, + "hash2": 3568128625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeBaseReference", + "type_name_2": "animationgraph_resource.NodeBaseReference", + "qualified_name": "keen::ds::animationgraph_resource::NodeBaseReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2667252304, + "hash2": 2377064492, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VerySpecialBlockNode", + "type_name_2": "animationgraph_resource.VerySpecialBlockNode", + "qualified_name": "keen::ds::animationgraph_resource::VerySpecialBlockNode", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 288, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2074582022, + "hash2": 2484096275, + "struct_fields": [ + { + "name": "delimiterJoint", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 128 + }, + { + "name": "blockAnimData", + "type_name": "keen::ds::animationgraph_resource::UintHierarchy1D", + "type_hash": 1180362036, + "data_offset": 168 + }, + { + "name": "moveAnimData", + "type_name": "keen::ds::animationgraph_resource::FloatHierarchy1D", + "type_hash": 774276318, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaskedNode", + "type_name_2": "animationgraph_resource.MaskedNode", + "qualified_name": "keen::ds::animationgraph_resource::MaskedNode", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 288, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1409202355, + "hash2": 1941594873, + "struct_fields": [ + { + "name": "delimiterJoint", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 128 + }, + { + "name": "delimiterInputName", + "type_name": "keen::ds::animationgraph::InputIdReference", + "type_hash": 2632351747, + "data_offset": 168 + }, + { + "name": "lowerBodyBlendInTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 184 + }, + { + "name": "lowerBodyBlendOutTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 192 + }, + { + "name": "resetLowerBodyOnToggleOn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 200 + }, + { + "name": "upperLayers", + "type_name": "keen::DsArray>", + "type_hash": 4002326163, + "data_offset": 208 + }, + { + "name": "lowerLayers", + "type_name": "keen::DsArray>", + "type_hash": 4002326163, + "data_offset": 248 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationListEntry", + "type_name_2": "animationgraph_resource.AnimationListEntry", + "qualified_name": "keen::ds::animationgraph_resource::AnimationListEntry", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 596297572, + "hash2": 4033902044, + "struct_fields": [ + { + "name": "reference", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "frameCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "hasLve", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "hasSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 29 + }, + { + "name": "loops", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 30 + }, + { + "name": "space", + "type_name": "keen::ds::AnimationSpace", + "type_hash": 1424367555, + "data_offset": 31 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph_resource.AnimationListEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph_resource::AnimationListEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2683216111, + "hash2": 2973433143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationListResource", + "type_name_2": "animationgraph_resource.AnimationListResource", + "qualified_name": "keen::ds::animationgraph_resource::AnimationListResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1113092196, + "hash2": 546781148, + "struct_fields": [ + { + "name": "animations", + "type_name": "keen::DsArray", + "type_hash": 2683216111, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph.StateIdHash[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph::StateIdHash", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1959642354, + "hash2": 1214239949, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayBase", + "type_name_2": "animationgraph_resource.OverlayBase", + "qualified_name": "keen::ds::animationgraph_resource::OverlayBase", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2214904423, + "hash2": 2005005996, + "struct_fields": [ + { + "name": "stateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::animationgraph::OverlayIdReference", + "type_hash": 2302284539, + "data_offset": 4 + }, + { + "name": "context", + "type_name": "keen::ds::animationgraph::OverlayContextIdReference", + "type_hash": 4127523860, + "data_offset": 20 + }, + { + "name": "abortUnlessInNodes", + "type_name": "keen::DsArray", + "type_hash": 1959642354, + "data_offset": 40 + }, + { + "name": "dbgName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationOverlay", + "type_name_2": "animationgraph_resource.AnimationOverlay", + "qualified_name": "keen::ds::animationgraph_resource::AnimationOverlay", + "referenced_type_name": "keen::ds::animationgraph_resource::OverlayBase", + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2839238648, + "hash2": 850645252, + "struct_fields": [ + { + "name": "maleAnimationIndex", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 120 + }, + { + "name": "femaleAnimationIndex", + "type_name": "keen::ds::animation::AnimationId", + "type_hash": 2525388258, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationJointIndex", + "type_name_2": "AnimationJointIndex", + "qualified_name": "keen::ds::AnimationJointIndex", + "referenced_type_name": "keen::AnimationJointIndex", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3229925375, + "hash2": 301491076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::animationgraph_resource::NodeBase", + "class_size": 48, + "fields_count": 8, + "primitive_type": "DsVariant", + "hash1": 1136401346, + "hash2": 2604116831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3830681703, + "hash2": 489715123, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::animationgraph_resource::TransitionBase", + "class_size": 48, + "fields_count": 2, + "primitive_type": "DsVariant", + "hash1": 3472966891, + "hash2": 765383625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 895179484, + "hash2": 86161299, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::animationgraph_resource::OverlayBase", + "class_size": 48, + "fields_count": 2, + "primitive_type": "DsVariant", + "hash1": 1190250200, + "hash2": 3066641650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 602212715, + "hash2": 3712973474, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationJointIndex[14]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AnimationJointIndex", + "class_size": 28, + "fields_count": 14, + "primitive_type": "StaticArray", + "hash1": 4141771936, + "hash2": 4276927312, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderClothColliderResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3668997726, + "hash2": 1201816641, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResource", + "type_name_2": "AnimationGraphResource", + "qualified_name": "keen::ds::AnimationGraphResource", + "referenced_type_name": null, + "class_size": 288, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2056867557, + "hash2": 844979653, + "struct_fields": [ + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 256938998, + "data_offset": 4 + }, + { + "name": "nodes", + "type_name": "keen::DsArray>", + "type_hash": 3830681703, + "data_offset": 24 + }, + { + "name": "animations", + "type_name": "keen::DsArray", + "type_hash": 2683216111, + "data_offset": 64 + }, + { + "name": "transitions", + "type_name": "keen::DsArray>", + "type_hash": 895179484, + "data_offset": 104 + }, + { + "name": "overlays", + "type_name": "keen::DsArray>", + "type_hash": 602212715, + "data_offset": 144 + }, + { + "name": "globalOverlay", + "type_name": "keen::ds::animationgraph_resource::UintHierarchy1D", + "type_hash": 1180362036, + "data_offset": 184 + }, + { + "name": "slotBoneIndexMapping", + "type_name": "keen::StaticArray", + "type_hash": 4141771936, + "data_offset": 240 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 3668997726, + "data_offset": 268 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AnimationGraph", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2358948672, + "hash2": 3759795271, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphReference", + "type_name_2": "AnimationGraphReference", + "qualified_name": "keen::ds::AnimationGraphReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3493422122, + "hash2": 3553036224, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInputBase", + "type_name_2": "AnimationGraphInputBase", + "qualified_name": "keen::ds::AnimationGraphInputBase", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1193609974, + "hash2": 2992840414, + "struct_fields": [ + { + "name": "hash", + "type_name": "keen::ds::animationgraph::InputIdHash", + "type_hash": 2510270234, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphFloatInput", + "type_name_2": "AnimationGraphFloatInput", + "qualified_name": "keen::ds::AnimationGraphFloatInput", + "referenced_type_name": "keen::ds::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2719148363, + "hash2": 533355805, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphUintInput", + "type_name_2": "AnimationGraphUintInput", + "qualified_name": "keen::ds::AnimationGraphUintInput", + "referenced_type_name": "keen::ds::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3110259847, + "hash2": 3145504943, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphBoolInput", + "type_name_2": "AnimationGraphBoolInput", + "qualified_name": "keen::ds::AnimationGraphBoolInput", + "referenced_type_name": "keen::ds::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3807037011, + "hash2": 1553514536, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphIntInput", + "type_name_2": "AnimationGraphIntInput", + "qualified_name": "keen::ds::AnimationGraphIntInput", + "referenced_type_name": "keen::ds::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3443169490, + "hash2": 1069669463, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphIdInput", + "type_name_2": "AnimationGraphIdInput", + "qualified_name": "keen::ds::AnimationGraphIdInput", + "referenced_type_name": "keen::ds::AnimationGraphInputBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1924898004, + "hash2": 164503147, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WarpToTargetConfig", + "type_name_2": "WarpToTargetConfig", + "qualified_name": "keen::ds::WarpToTargetConfig", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1996268683, + "hash2": 1806439543, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "isTargetSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "abortWarpAboveMaxScale", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionConfig", + "type_name_2": "RootMotionConfig", + "qualified_name": "keen::ds::RootMotionConfig", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1879558019, + "hash2": 964128482, + "struct_fields": [ + { + "name": "movementMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "warpToTargetConfig", + "type_name": "keen::ds::WarpToTargetConfig", + "type_hash": 1996268683, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OverlayInputsEventType", + "type_name_2": "OverlayInputsEventType", + "qualified_name": "keen::ds::OverlayInputsEventType", + "referenced_type_name": "keen::OverlayInputsEventType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3726256408, + "hash2": 3079482342, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OverlayInputsEvent", + "type_name_2": "OverlayInputsEvent", + "qualified_name": "keen::ds::OverlayInputsEvent", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2706843184, + "hash2": 2106590496, + "struct_fields": [ + { + "name": "animationStateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 0 + }, + { + "name": "jointId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::ds::OverlayInputsEventType", + "type_hash": 3726256408, + "data_offset": 8 + }, + { + "name": "changeCounter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphFloatInput[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AnimationGraphFloatInput", + "class_size": 64, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 4243857569, + "hash2": 729979121, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphUintInput[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AnimationGraphUintInput", + "class_size": 64, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2338710333, + "hash2": 3898113305, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphBoolInput[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AnimationGraphBoolInput", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 863124571, + "hash2": 2990201810, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphIntInput[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AnimationGraphIntInput", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2082639008, + "hash2": 4213763958, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AnimationGraphIdInput[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AnimationGraphIdInput", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 4061485230, + "hash2": 1067757968, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "OverlayInputsEvent[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::OverlayInputsEvent", + "class_size": 60, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 1000076729, + "hash2": 1857999459, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInputs", + "type_name_2": "AnimationGraphInputs", + "qualified_name": "keen::ds::AnimationGraphInputs", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2163992200, + "hash2": 3104558421, + "struct_fields": [ + { + "name": "floatInputs", + "type_name": "keen::StaticArray", + "type_hash": 4243857569, + "data_offset": 0 + }, + { + "name": "uintInputs", + "type_name": "keen::StaticArray", + "type_hash": 2338710333, + "data_offset": 64 + }, + { + "name": "boolInputs", + "type_name": "keen::StaticArray", + "type_hash": 863124571, + "data_offset": 128 + }, + { + "name": "intInputs", + "type_name": "keen::StaticArray", + "type_hash": 2082639008, + "data_offset": 144 + }, + { + "name": "idInputs", + "type_name": "keen::StaticArray", + "type_hash": 4061485230, + "data_offset": 160 + }, + { + "name": "overlayInputs", + "type_name": "keen::StaticArray", + "type_hash": 1000076729, + "data_offset": 176 + }, + { + "name": "rootMotionConfig", + "type_name": "keen::ds::RootMotionConfig", + "type_hash": 1879558019, + "data_offset": 240 + }, + { + "name": "currentTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimGraphPreviewEventType", + "type_name_2": "AnimGraphPreviewEventType", + "qualified_name": "keen::ds::AnimGraphPreviewEventType", + "referenced_type_name": "keen::AnimGraphPreviewEventType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3813731726, + "hash2": 3334085899, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimGraphPreviewSeqenceEntry", + "type_name_2": "AnimGraphPreviewSeqenceEntry", + "qualified_name": "keen::ds::AnimGraphPreviewSeqenceEntry", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2749976318, + "hash2": 3576603061, + "struct_fields": [ + { + "name": "eventType", + "type_name": "keen::ds::AnimGraphPreviewEventType", + "type_hash": 3813731726, + "data_offset": 0 + }, + { + "name": "timeFromStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "selectedIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AnimGraphPreviewSeqenceEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AnimGraphPreviewSeqenceEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 730428523, + "hash2": 3681435676, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimGraphPreviewSeqence", + "type_name_2": "AnimGraphPreviewSeqence", + "qualified_name": "keen::ds::AnimGraphPreviewSeqence", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2381840582, + "hash2": 3851071995, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 730428523, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph.StateIdReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph::StateIdReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 173333633, + "hash2": 1384155462, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph.InputIdReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph::InputIdReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1547491296, + "hash2": 3419573540, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "animationgraph.OverlayIdReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::animationgraph::OverlayIdReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1128517852, + "hash2": 1786098435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInfo", + "type_name_2": "AnimationGraphInfo", + "qualified_name": "keen::ds::AnimationGraphInfo", + "referenced_type_name": null, + "class_size": 216, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 338063861, + "hash2": 2840249568, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::DsArray", + "type_hash": 173333633, + "data_offset": 0 + }, + { + "name": "floatInputs", + "type_name": "keen::DsArray", + "type_hash": 1547491296, + "data_offset": 40 + }, + { + "name": "uintInputs", + "type_name": "keen::DsArray", + "type_hash": 1547491296, + "data_offset": 80 + }, + { + "name": "boolInputs", + "type_name": "keen::DsArray", + "type_hash": 1547491296, + "data_offset": 120 + }, + { + "name": "overlays", + "type_name": "keen::DsArray", + "type_hash": 1128517852, + "data_offset": 160 + }, + { + "name": "modelHierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 256938998, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlendMode", + "type_name_2": "anim_graph.LayerBlendMode", + "qualified_name": "keen::ds::anim_graph::LayerBlendMode", + "referenced_type_name": "keen::anim_graph::LayerBlendMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2745302678, + "hash2": 2114314577, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AdditiveType", + "type_name_2": "anim_graph.AdditiveType", + "qualified_name": "keen::ds::anim_graph::AdditiveType", + "referenced_type_name": "keen::anim_graph::AdditiveType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 106661977, + "hash2": 2182093239, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransitionRootMotionMode", + "type_name_2": "anim_graph.TransitionRootMotionMode", + "qualified_name": "keen::ds::anim_graph::TransitionRootMotionMode", + "referenced_type_name": "keen::anim_graph::TransitionRootMotionMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3154843027, + "hash2": 433756765, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::BoneMask", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1607542782, + "hash2": 1373295621, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlendOptions", + "type_name_2": "anim_graph.LayerBlendOptions", + "qualified_name": "keen::ds::anim_graph::LayerBlendOptions", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3005878529, + "hash2": 868080209, + "struct_fields": [ + { + "name": "blendMode", + "type_name": "keen::ds::anim_graph::LayerBlendMode", + "type_hash": 2745302678, + "data_offset": 0 + }, + { + "name": "boneMask", + "type_name": "keen::ObjectReference", + "type_hash": 1607542782, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoneMask", + "type_name_2": "anim_graph.BoneMask", + "qualified_name": "keen::ds::anim_graph::BoneMask", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2757393631, + "hash2": 2256285785, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2934938658, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoneMaskEntry", + "type_name_2": "anim_graph.BoneMaskEntry", + "qualified_name": "keen::ds::anim_graph::BoneMaskEntry", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 289618473, + "hash2": 1215842349, + "struct_fields": [ + { + "name": "boneName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "anim_graph.BoneMaskEntryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::anim_graph::BoneMaskEntryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3946227012, + "hash2": 4205136226, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoneMaskResource", + "type_name_2": "anim_graph.BoneMaskResource", + "qualified_name": "keen::ds::anim_graph::BoneMaskResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3429149499, + "hash2": 3801633762, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 3946227012, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoneMaskEntryResource", + "type_name_2": "anim_graph.BoneMaskEntryResource", + "qualified_name": "keen::ds::anim_graph::BoneMaskEntryResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 568468953, + "hash2": 1727391613, + "struct_fields": [ + { + "name": "boneIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::FloatInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2554853877, + "hash2": 1017171227, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationSpeedController", + "type_name_2": "anim_graph.AnimationSpeedController", + "qualified_name": "keen::ds::anim_graph::AnimationSpeedController", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2589439644, + "hash2": 1823234316, + "struct_fields": [ + { + "name": "inputName", + "type_name": "keen::ObjectReference", + "type_hash": 2554853877, + "data_offset": 0 + }, + { + "name": "inputHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "inputValueA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "inputValueB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "speedFactorA", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "speedFactorB", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenderMappingEntry", + "type_name_2": "anim_graph.GenderMappingEntry", + "qualified_name": "keen::ds::anim_graph::GenderMappingEntry", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1768298546, + "hash2": 2203595055, + "struct_fields": [ + { + "name": "maleAnimation", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "femaleAnimation", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DataType", + "type_name_2": "anim_graph.tool_graph.DataType", + "qualified_name": "keen::ds::anim_graph::tool_graph::DataType", + "referenced_type_name": "keen::anim_graph::tool_graph::DataType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4268173596, + "hash2": 1082449827, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphParameterBase", + "type_name_2": "anim_graph.tool_graph.GraphParameterBase", + "qualified_name": "keen::ds::anim_graph::tool_graph::GraphParameterBase", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2553567058, + "hash2": 495633083, + "struct_fields": [ + { + "name": "inputId", + "type_name": "keen::ObjectReference", + "type_hash": 900711775, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGraphParameter", + "type_name_2": "anim_graph.tool_graph.FloatGraphParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatGraphParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 375449745, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IntGraphParameter", + "type_name_2": "anim_graph.tool_graph.IntGraphParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::IntGraphParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 637392918, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolGraphParameter", + "type_name_2": "anim_graph.tool_graph.BoolGraphParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::BoolGraphParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 735576503, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IDGraphParameterValue", + "type_name_2": "anim_graph.tool_graph.IDGraphParameterValue", + "qualified_name": "keen::ds::anim_graph::tool_graph::IDGraphParameterValue", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3993462739, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IDGraphParameter", + "type_name_2": "anim_graph.tool_graph.IDGraphParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::IDGraphParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::GraphParameterBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 139905802, + "hash2": 2555808356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphParameterSet", + "type_name_2": "anim_graph.tool_graph.GraphParameterSet", + "qualified_name": "keen::ds::anim_graph::tool_graph::GraphParameterSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2797365877, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PinBase", + "type_name_2": "anim_graph.tool_graph.PinBase", + "qualified_name": "keen::ds::anim_graph::tool_graph::PinBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2494375606, + "hash2": 597136646, + "struct_fields": [ + { + "name": "dataType", + "type_name": "keen::ds::anim_graph::tool_graph::DataType", + "type_hash": 4268173596, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InputPin", + "type_name_2": "anim_graph.tool_graph.InputPin", + "qualified_name": "keen::ds::anim_graph::tool_graph::InputPin", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::PinBase", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3684625583, + "hash2": 1493133950, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OutputPin", + "type_name_2": "anim_graph.tool_graph.OutputPin", + "qualified_name": "keen::ds::anim_graph::tool_graph::OutputPin", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::PinBase", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1288357360, + "hash2": 1493133950, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::OutputPin", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2038797129, + "hash2": 4103607263, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::InputPin", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2646445506, + "hash2": 2283257268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Link", + "type_name_2": "anim_graph.tool_graph.Link", + "qualified_name": "keen::ds::anim_graph::tool_graph::Link", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3263867548, + "hash2": 4138681031, + "struct_fields": [ + { + "name": "sourcePin", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 0 + }, + { + "name": "targetPin", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorGraphBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 870796143, + "hash2": 2572742650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EditorNodeBase", + "type_name_2": "anim_graph.tool_graph.EditorNodeBase", + "qualified_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4254173536, + "hash2": 1731458297, + "struct_fields": [ + { + "name": "uiPosition", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + }, + { + "name": "secondaryGraph", + "type_name": "keen::ObjectReference", + "type_hash": 870796143, + "data_offset": 8 + }, + { + "name": "childGraph", + "type_name": "keen::ObjectReference", + "type_hash": 870796143, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatParameter", + "type_name_2": "anim_graph.tool_graph.FloatParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 388651433, + "hash2": 3833056939, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 2554853877, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatConstant", + "type_name_2": "anim_graph.tool_graph.FloatConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1537603862, + "hash2": 3599927588, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatAdd", + "type_name_2": "anim_graph.tool_graph.FloatAdd", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatAdd", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1785434829, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatSubtract", + "type_name_2": "anim_graph.tool_graph.FloatSubtract", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatSubtract", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2209425850, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatMultiply", + "type_name_2": "anim_graph.tool_graph.FloatMultiply", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatMultiply", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4019671574, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThan", + "type_name_2": "anim_graph.tool_graph.FloatGreaterThan", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatGreaterThan", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 444820031, + "hash2": 3686831967, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThan", + "type_name_2": "anim_graph.tool_graph.FloatLessThan", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatLessThan", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2981483928, + "hash2": 3686831967, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEquals", + "type_name_2": "anim_graph.tool_graph.FloatEquals", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatEquals", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4121896659, + "hash2": 3306545286, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThanConstant", + "type_name_2": "anim_graph.tool_graph.FloatGreaterThanConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatGreaterThanConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 36731595, + "hash2": 1945815560, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 60 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThanConstant", + "type_name_2": "anim_graph.tool_graph.FloatLessThanConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatLessThanConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1991599292, + "hash2": 1945815560, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 60 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEqualsConstant", + "type_name_2": "anim_graph.tool_graph.FloatEqualsConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatEqualsConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 112425335, + "hash2": 2318611985, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 60 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatDivide", + "type_name_2": "anim_graph.tool_graph.FloatDivide", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatDivide", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 988401627, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseBase", + "type_name_2": "anim_graph.tool_graph.SelectPoseBase", + "qualified_name": "keen::ds::anim_graph::tool_graph::SelectPoseBase", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 516159308, + "hash2": 3596895848, + "struct_fields": [ + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 40 + }, + { + "name": "blendTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseByBool", + "type_name_2": "anim_graph.tool_graph.SelectPoseByBool", + "qualified_name": "keen::ds::anim_graph::tool_graph::SelectPoseByBool", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::SelectPoseBase", + "class_size": 92, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1628035744, + "hash2": 440944908, + "struct_fields": [ + { + "name": "poseA", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 60 + }, + { + "name": "poseB", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseByBoolParameters", + "type_name_2": "anim_graph.tool_graph.SelectPoseByBoolParameters", + "qualified_name": "keen::ds::anim_graph::tool_graph::SelectPoseByBoolParameters", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 206445140, + "hash2": 2161559550, + "struct_fields": [ + { + "name": "selectA", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatRemap", + "type_name_2": "anim_graph.tool_graph.FloatRemap", + "qualified_name": "keen::ds::anim_graph::tool_graph::FloatRemap", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 328754323, + "hash2": 1136180533, + "struct_fields": [ + { + "name": "inputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 40 + }, + { + "name": "outputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 48 + }, + { + "name": "inputValue", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::IdInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2321328066, + "hash2": 1723397181, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IDParameter", + "type_name_2": "anim_graph.tool_graph.IDParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::IDParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1467395108, + "hash2": 2255422167, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 2321328066, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDConstant", + "type_name_2": "anim_graph.tool_graph.IDConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::IDConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3420164953, + "hash2": 826424812, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 1621460828, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDEquals", + "type_name_2": "anim_graph.tool_graph.IDEquals", + "qualified_name": "keen::ds::anim_graph::tool_graph::IDEquals", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1444605528, + "hash2": 70242104, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "b", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDParameterEqualsConstant", + "type_name_2": "anim_graph.tool_graph.IDParameterEqualsConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::IDParameterEqualsConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3624520205, + "hash2": 1841722988, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 2321328066, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 1621460828, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDEqualsConstant", + "type_name_2": "anim_graph.tool_graph.IDEqualsConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::IDEqualsConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 92, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 982807676, + "hash2": 1960442482, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 1621460828, + "data_offset": 72 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::IntInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1094413526, + "hash2": 3598886896, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IntParameter", + "type_name_2": "anim_graph.tool_graph.IntParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::IntParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 986494048, + "hash2": 892444590, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 1094413526, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntConstant", + "type_name_2": "anim_graph.tool_graph.IntConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::IntConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1066071733, + "hash2": 740280734, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEquals", + "type_name_2": "anim_graph.tool_graph.IntEquals", + "qualified_name": "keen::ds::anim_graph::tool_graph::IntEquals", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3597163556, + "hash2": 70242104, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "b", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEqualsConstant", + "type_name_2": "anim_graph.tool_graph.IntEqualsConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::IntEqualsConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 76, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3991480560, + "hash2": 807019480, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + }, + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsOverlayActive", + "type_name_2": "anim_graph.tool_graph.IsOverlayActive", + "qualified_name": "keen::ds::anim_graph::tool_graph::IsOverlayActive", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 716612382, + "hash2": 480968606, + "struct_fields": [ + { + "name": "active", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2016391235, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::BoolInputId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3767290963, + "hash2": 1684738517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolParameter", + "type_name_2": "anim_graph.tool_graph.BoolParameter", + "qualified_name": "keen::ds::anim_graph::tool_graph::BoolParameter", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1395382299, + "hash2": 1156331303, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3767290963, + "data_offset": 40 + }, + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolConstant", + "type_name_2": "anim_graph.tool_graph.BoolConstant", + "qualified_name": "keen::ds::anim_graph::tool_graph::BoolConstant", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3121447264, + "hash2": 1969409965, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "output", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolNegate", + "type_name_2": "anim_graph.tool_graph.BoolNegate", + "qualified_name": "keen::ds::anim_graph::tool_graph::BoolNegate", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 702471254, + "hash2": 348217549, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolAnd", + "type_name_2": "anim_graph.tool_graph.BoolAnd", + "qualified_name": "keen::ds::anim_graph::tool_graph::BoolAnd", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2870001429, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolOr", + "type_name_2": "anim_graph.tool_graph.BoolOr", + "qualified_name": "keen::ds::anim_graph::tool_graph::BoolOr", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3552597673, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolEquals", + "type_name_2": "anim_graph.tool_graph.BoolEquals", + "qualified_name": "keen::ds::anim_graph::tool_graph::BoolEquals", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2416181933, + "hash2": 787019923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + }, + { + "name": "rhs", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 56 + }, + { + "name": "result", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlend", + "type_name_2": "anim_graph.tool_graph.LayerBlend", + "qualified_name": "keen::ds::anim_graph::tool_graph::LayerBlend", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 108, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3479684212, + "hash2": 2684313122, + "struct_fields": [ + { + "name": "blendOptions", + "type_name": "keen::ds::anim_graph::LayerBlendOptions", + "type_hash": 3005878529, + "data_offset": 40 + }, + { + "name": "base", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 60 + }, + { + "name": "layer", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 76 + }, + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SaveCachedPose", + "type_name_2": "anim_graph.tool_graph.SaveCachedPose", + "qualified_name": "keen::ds::anim_graph::tool_graph::SaveCachedPose", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4127604038, + "hash2": 1245557348, + "struct_fields": [ + { + "name": "inputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::SaveCachedPose", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3306875769, + "hash2": 1500691983, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UseCachedPose", + "type_name_2": "anim_graph.tool_graph.UseCachedPose", + "qualified_name": "keen::ds::anim_graph::tool_graph::UseCachedPose", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 190849340, + "hash2": 1969109982, + "struct_fields": [ + { + "name": "pose", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 40 + }, + { + "name": "cachedPose", + "type_name": "keen::ObjectReference", + "type_hash": 3306875769, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PoseResult", + "type_name_2": "anim_graph.tool_graph.PoseResult", + "qualified_name": "keen::ds::anim_graph::tool_graph::PoseResult", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2507738440, + "hash2": 1245557348, + "struct_fields": [ + { + "name": "inputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachine", + "type_name_2": "anim_graph.tool_graph.StateMachine", + "qualified_name": "keen::ds::anim_graph::tool_graph::StateMachine", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 185966906, + "hash2": 419697542, + "struct_fields": [ + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineState", + "type_name_2": "anim_graph.tool_graph.StateMachineState", + "qualified_name": "keen::ds::anim_graph::tool_graph::StateMachineState", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2080787983, + "hash2": 3439444645, + "struct_fields": [ + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "startAtRandomTime", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransitionAdvancedOptions", + "type_name_2": "anim_graph.tool_graph.TransitionAdvancedOptions", + "qualified_name": "keen::ds::anim_graph::tool_graph::TransitionAdvancedOptions", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 948530001, + "hash2": 818791774, + "struct_fields": [ + { + "name": "priority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "rootMotionMode", + "type_name": "keen::ds::anim_graph::TransitionRootMotionMode", + "type_hash": 3154843027, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::StateMachineState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3587428852, + "hash2": 2663028620, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineTransition", + "type_name_2": "anim_graph.tool_graph.StateMachineTransition", + "qualified_name": "keen::ds::anim_graph::tool_graph::StateMachineTransition", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3972100953, + "hash2": 1438136032, + "struct_fields": [ + { + "name": "fromState", + "type_name": "keen::ObjectReference", + "type_hash": 3587428852, + "data_offset": 40 + }, + { + "name": "toState", + "type_name": "keen::ObjectReference", + "type_hash": 3587428852, + "data_offset": 56 + }, + { + "name": "autoTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "advancedOptions", + "type_name": "keen::ds::anim_graph::tool_graph::TransitionAdvancedOptions", + "type_hash": 948530001, + "data_offset": 80 + }, + { + "name": "isGlobalTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 82 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGlobalTransitions", + "type_name_2": "anim_graph.tool_graph.StateMachineGlobalTransitions", + "qualified_name": "keen::ds::anim_graph::tool_graph::StateMachineGlobalTransitions", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1397772291, + "hash2": 459363323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateInputPin", + "type_name_2": "anim_graph.tool_graph.StateInputPin", + "qualified_name": "keen::ds::anim_graph::tool_graph::StateInputPin", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::InputPin", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3863968494, + "hash2": 414892807, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ObjectReference", + "type_hash": 3587428852, + "data_offset": 4 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rootMotionMode", + "type_name": "keen::ds::anim_graph::TransitionRootMotionMode", + "type_hash": 3154843027, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGlobalTransitionParameters", + "type_name_2": "anim_graph.tool_graph.StateMachineGlobalTransitionParameters", + "qualified_name": "keen::ds::anim_graph::tool_graph::StateMachineGlobalTransitionParameters", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4135488562, + "hash2": 459363323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AdditiveAnimationParameters", + "type_name_2": "anim_graph.tool_graph.AdditiveAnimationParameters", + "qualified_name": "keen::ds::anim_graph::tool_graph::AdditiveAnimationParameters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4151150806, + "hash2": 2162963113, + "struct_fields": [ + { + "name": "useCurrentAnimationAsReference", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationClipSampler", + "type_name_2": "anim_graph.tool_graph.AnimationClipSampler", + "qualified_name": "keen::ds::anim_graph::tool_graph::AnimationClipSampler", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 132, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3497541852, + "hash2": 1538132872, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 40 + }, + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + }, + { + "name": "additiveType", + "type_name": "keen::ds::anim_graph::AdditiveType", + "type_hash": 106661977, + "data_offset": 72 + }, + { + "name": "additiveParameters", + "type_name": "keen::ds::anim_graph::tool_graph::AdditiveAnimationParameters", + "type_hash": 4151150806, + "data_offset": 76 + }, + { + "name": "speedController", + "type_name": "keen::ds::anim_graph::AnimationSpeedController", + "type_hash": 2589439644, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EmptyAdditivePose", + "type_name_2": "anim_graph.tool_graph.EmptyAdditivePose", + "qualified_name": "keen::ds::anim_graph::tool_graph::EmptyAdditivePose", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3080430508, + "hash2": 419697542, + "struct_fields": [ + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1DItem", + "type_name_2": "anim_graph.tool_graph.BlendSpace_1DItem", + "qualified_name": "keen::ds::anim_graph::tool_graph::BlendSpace_1DItem", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3699251394, + "hash2": 611079066, + "struct_fields": [ + { + "name": "parameterValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1D", + "type_name_2": "anim_graph.tool_graph.BlendSpace_1D", + "qualified_name": "keen::ds::anim_graph::tool_graph::BlendSpace_1D", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 136, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1232861737, + "hash2": 1788286502, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 2554853877, + "data_offset": 40 + }, + { + "name": "outputPose", + "type_name": "keen::ObjectReference", + "type_hash": 2038797129, + "data_offset": 56 + }, + { + "name": "additiveType", + "type_name": "keen::ds::anim_graph::AdditiveType", + "type_hash": 106661977, + "data_offset": 72 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 74 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 76 + }, + { + "name": "interpolateInputValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "interpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "speedController", + "type_name": "keen::ds::anim_graph::AnimationSpeedController", + "type_hash": 2589439644, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransitionParameters", + "type_name_2": "anim_graph.tool_graph.TransitionParameters", + "qualified_name": "keen::ds::anim_graph::tool_graph::TransitionParameters", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1595401055, + "hash2": 4043276848, + "struct_fields": [ + { + "name": "condition", + "type_name": "keen::ObjectReference", + "type_hash": 2646445506, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorNodeBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3926139099, + "hash2": 1902997268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EditorGraphBase", + "type_name_2": "anim_graph.tool_graph.EditorGraphBase", + "qualified_name": "keen::ds::anim_graph::tool_graph::EditorGraphBase", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3935997098, + "hash2": 3961090492, + "struct_fields": [ + { + "name": "parentNode", + "type_name": "keen::ObjectReference", + "type_hash": 3926139099, + "data_offset": 0 + }, + { + "name": "mostSignificantNode", + "type_name": "keen::ObjectReference", + "type_hash": 3926139099, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlowGraph", + "type_name_2": "anim_graph.tool_graph.FlowGraph", + "qualified_name": "keen::ds::anim_graph::tool_graph::FlowGraph", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorGraphBase", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1734179224, + "hash2": 1669572974, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::StateMachineGlobalTransitions", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3333902976, + "hash2": 1818535011, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGraph", + "type_name_2": "anim_graph.tool_graph.StateMachineGraph", + "qualified_name": "keen::ds::anim_graph::tool_graph::StateMachineGraph", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::EditorGraphBase", + "class_size": 48, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2019452690, + "hash2": 3493827856, + "struct_fields": [ + { + "name": "globalTransitions", + "type_name": "keen::ObjectReference", + "type_hash": 3333902976, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlendTree", + "type_name_2": "anim_graph.tool_graph.BlendTree", + "qualified_name": "keen::ds::anim_graph::tool_graph::BlendTree", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::FlowGraph", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2205574307, + "hash2": 2935420268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExpressionTree", + "type_name_2": "anim_graph.tool_graph.ExpressionTree", + "qualified_name": "keen::ds::anim_graph::tool_graph::ExpressionTree", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::FlowGraph", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1864063330, + "hash2": 2935420268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultIdInputIdValue", + "type_name_2": "anim_graph.tool_graph.DefaultIdInputIdValue", + "qualified_name": "keen::ds::anim_graph::tool_graph::DefaultIdInputIdValue", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 213526570, + "hash2": 586966640, + "struct_fields": [ + { + "name": "key", + "type_name": "keen::ObjectReference", + "type_hash": 2321328066, + "data_offset": 0 + }, + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 1621460828, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ModelBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1689281682, + "hash2": 4256831174, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PreviewModelReference", + "type_name_2": "PreviewModelReference", + "qualified_name": "keen::ds::PreviewModelReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2065098203, + "hash2": 137162132, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PreviewModelReference[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::PreviewModelReference", + "class_size": 256, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 2053886222, + "hash2": 2501255053, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PreviewModelArray", + "type_name_2": "PreviewModelArray", + "qualified_name": "keen::ds::PreviewModelArray", + "referenced_type_name": "keen::StaticArray", + "class_size": 256, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1415327511, + "hash2": 794518384, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::BlendTree", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3906803704, + "hash2": 3691809260, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "anim_graph.GenderMappingEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::anim_graph::GenderMappingEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 796404411, + "hash2": 2098081900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraph2_0", + "type_name_2": "anim_graph.tool_graph.AnimationGraph2_0", + "qualified_name": "keen::ds::anim_graph::tool_graph::AnimationGraph2_0", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3563173751, + "hash2": 762062280, + "struct_fields": [ + { + "name": "rootGraph", + "type_name": "keen::ObjectReference", + "type_hash": 3906803704, + "data_offset": 0 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 16 + }, + { + "name": "previewModelOverride", + "type_name": "keen::ds::PreviewModelArray", + "type_hash": 1415327511, + "data_offset": 32 + }, + { + "name": "genderPrefix", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 288 + }, + { + "name": "genderMapping", + "type_name": "keen::DsArray", + "type_hash": 796404411, + "data_offset": 328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationNodeType", + "type_name_2": "anim_graph.runtime_graph.AnimationNodeType", + "qualified_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeType", + "referenced_type_name": "keen::anim_graph::runtime_graph::AnimationNodeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 527980346, + "hash2": 2502670306, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.AnimationNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 871892875, + "hash2": 941459465, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeType", + "type_hash": 527980346, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PoseResultNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.PoseResultNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::PoseResultNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2521193273, + "hash2": 266177249, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::JointAnimation", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3443892660, + "hash2": 1058815261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RootMotionAnimation", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1316391642, + "hash2": 989596211, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AnimationSequenceContainer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 740314612, + "hash2": 742434661, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SampleAnimationClipNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.SampleAnimationClipNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::SampleAnimationClipNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 172, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2792656627, + "hash2": 3635307315, + "struct_fields": [ + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "animationDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "animation", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 16 + }, + { + "name": "animationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 32 + }, + { + "name": "rootMotionAnimation", + "type_name": "keen::ObjectReference", + "type_hash": 1316391642, + "data_offset": 48 + }, + { + "name": "rootMotionAnimationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 1316391642, + "data_offset": 64 + }, + { + "name": "eventSequenceContainer", + "type_name": "keen::ObjectReference", + "type_hash": 740314612, + "data_offset": 80 + }, + { + "name": "additiveType", + "type_name": "keen::ds::anim_graph::AdditiveType", + "type_hash": 106661977, + "data_offset": 96 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 100 + }, + { + "name": "additiveReferenceAnimationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 116 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 132 + }, + { + "name": "animationContentAdditive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 134 + }, + { + "name": "speedController", + "type_name": "keen::ds::anim_graph::AnimationSpeedController", + "type_hash": 2589439644, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EmptyAdditivePoseNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.EmptyAdditivePoseNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::EmptyAdditivePoseNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 671930717, + "hash2": 1207962167, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1DItemRuntime", + "type_name_2": "anim_graph.runtime_graph.BlendSpace_1DItemRuntime", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BlendSpace_1DItemRuntime", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3662865702, + "hash2": 354564560, + "struct_fields": [ + { + "name": "parameterValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "animationDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "animation", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 8 + }, + { + "name": "animationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 24 + }, + { + "name": "eventSequenceContainer", + "type_name": "keen::ObjectReference", + "type_hash": 740314612, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "anim_graph.runtime_graph.BlendSpace_1DItemRuntime[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::BlendSpace_1DItemRuntime", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2861144885, + "hash2": 1389351650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendSpace_1DNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BlendSpace_1DNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BlendSpace_1DNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 152, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3074793440, + "hash2": 74511787, + "struct_fields": [ + { + "name": "items", + "type_name": "keen::DsArray", + "type_hash": 2861144885, + "data_offset": 8 + }, + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 2554853877, + "data_offset": 48 + }, + { + "name": "additiveType", + "type_name": "keen::ds::anim_graph::AdditiveType", + "type_hash": 106661977, + "data_offset": 64 + }, + { + "name": "additiveReferenceAnimation", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 68 + }, + { + "name": "additiveReferenceAnimationGenderAlternative", + "type_name": "keen::ObjectReference", + "type_hash": 3443892660, + "data_offset": 84 + }, + { + "name": "additiveReferenceFrame", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 100 + }, + { + "name": "speedController", + "type_name": "keen::ds::anim_graph::AnimationSpeedController", + "type_hash": 2589439644, + "data_offset": 104 + }, + { + "name": "interpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 140 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + }, + { + "name": "animationContentAdditive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 145 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LayerBlendNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.LayerBlendNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::LayerBlendNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1330797357, + "hash2": 1326012899, + "struct_fields": [ + { + "name": "base", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "layer", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "blendOptions", + "type_name": "keen::ds::anim_graph::LayerBlendOptions", + "type_hash": 3005878529, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SaveCachedPoseNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.SaveCachedPoseNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::SaveCachedPoseNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3069120383, + "hash2": 3941028496, + "struct_fields": [ + { + "name": "inputPose", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UseCachedPoseNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.UseCachedPoseNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::UseCachedPoseNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3154220349, + "hash2": 4070768546, + "struct_fields": [ + { + "name": "cachedPose", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3544682655, + "hash2": 2912028204, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatParameterNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatParameterNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3064253872, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineGlobalTransitionInfo", + "type_name_2": "anim_graph.runtime_graph.StateMachineGlobalTransitionInfo", + "qualified_name": "keen::ds::anim_graph::runtime_graph::StateMachineGlobalTransitionInfo", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2167166830, + "hash2": 3335310804, + "struct_fields": [ + { + "name": "toState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "rootMotionMode", + "type_name": "keen::ds::anim_graph::TransitionRootMotionMode", + "type_hash": 3154843027, + "data_offset": 8 + }, + { + "name": "conditionNode", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "HashKey32[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::HashKey32", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3892628011, + "hash2": 779105718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "anim_graph.runtime_graph.StateMachineGlobalTransitionInfo[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::StateMachineGlobalTransitionInfo", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 2283890733, + "hash2": 794459426, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.StateMachineNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::StateMachineNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 656, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3301239547, + "hash2": 2687489502, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::DsArray", + "type_hash": 3892628011, + "data_offset": 8 + }, + { + "name": "transitions", + "type_name": "keen::DsArray", + "type_hash": 3892628011, + "data_offset": 48 + }, + { + "name": "entryState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 88 + }, + { + "name": "globalTransitions", + "type_name": "keen::StaticArray", + "type_hash": 2283890733, + "data_offset": 92 + }, + { + "name": "numGlobalTransitions", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 604 + }, + { + "name": "globalTransitionNodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 608 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 616 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineStateNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.StateMachineStateNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::StateMachineStateNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1973328782, + "hash2": 3020456148, + "struct_fields": [ + { + "name": "poseResult", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + }, + { + "name": "restartOnRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "startAtRandomTime", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineTransitionNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.StateMachineTransitionNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::StateMachineTransitionNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4223995336, + "hash2": 3406530616, + "struct_fields": [ + { + "name": "fromState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "toState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "priority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "conditionNode", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 24 + }, + { + "name": "rootMotionMode", + "type_name": "keen::ds::anim_graph::TransitionRootMotionMode", + "type_hash": 3154843027, + "data_offset": 28 + }, + { + "name": "autoTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 29 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IntConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3188256116, + "hash2": 2147351018, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntParameterNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IntParameterNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4090913137, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BoolConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3534727409, + "hash2": 249490533, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolParameterNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BoolParameterNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3735878530, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IDConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IDConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4100453456, + "hash2": 995874768, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IDParameterNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IDParameterNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IDParameterNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 929933085, + "hash2": 1477506646, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolNegateNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolNegateNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BoolNegateNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3588354047, + "hash2": 266177249, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolAndNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolAndNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BoolAndNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1685022276, + "hash2": 355788923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolOrNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolOrNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BoolOrNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3602132416, + "hash2": 355788923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.BoolEqualsNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::BoolEqualsNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1624470588, + "hash2": 355788923, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatRemapNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatRemapNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatRemapNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1451113722, + "hash2": 3642376648, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "inputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 12 + }, + { + "name": "outputRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThanNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatGreaterThanNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatGreaterThanNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2273756014, + "hash2": 3044100663, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThanNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatLessThanNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatLessThanNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3780137265, + "hash2": 3044100663, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatEqualsNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatEqualsNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3912781178, + "hash2": 1303027646, + "struct_fields": [ + { + "name": "lhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "rhs", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatGreaterThanConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatGreaterThanConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatGreaterThanConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2784706650, + "hash2": 1942136200, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatLessThanConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatLessThanConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatLessThanConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4107540533, + "hash2": 1942136200, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "orEqual", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.FloatEqualsConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::FloatEqualsConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3810964366, + "hash2": 1757887889, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "tolerance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectPoseByBoolNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.SelectPoseByBoolNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::SelectPoseByBoolNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2458023401, + "hash2": 2369953013, + "struct_fields": [ + { + "name": "inputA", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "inputB", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "selectA", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "blendTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdParameterEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IdParameterEqualsConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IdParameterEqualsConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1187105820, + "hash2": 2931021917, + "struct_fields": [ + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "value", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IdEqualsNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IdEqualsNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3548088505, + "hash2": 770598912, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "b", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IdEqualsConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IdEqualsConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2071780173, + "hash2": 2716115073, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "comparatorValue", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "ignoreForAnimationSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEqualsNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntEqualsNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IntEqualsNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1125812349, + "hash2": 770598912, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "b", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IntEqualsConstantNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IntEqualsConstantNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IntEqualsConstantNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 365287913, + "hash2": 1830900013, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "comparatorValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsOverlayActiveNodeDefinition", + "type_name_2": "anim_graph.runtime_graph.IsOverlayActiveNodeDefinition", + "qualified_name": "keen::ds::anim_graph::runtime_graph::IsOverlayActiveNodeDefinition", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2149933607, + "hash2": 3039084605, + "struct_fields": [ + { + "name": "overlay", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParameterList", + "type_name_2": "anim_graph.runtime_graph.ParameterList", + "qualified_name": "keen::ds::anim_graph::runtime_graph::ParameterList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1522666551, + "hash2": 4265857677, + "struct_fields": [ + { + "name": "parameterIds", + "type_name": "keen::DsArray", + "type_hash": 3892628011, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationNodeDefinition", + "class_size": 48, + "fields_count": 37, + "primitive_type": "DsVariant", + "hash1": 3833042192, + "hash2": 3021454962, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2627818551, + "hash2": 3549015557, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResource2_0", + "type_name_2": "anim_graph.runtime_graph.AnimationGraphResource2_0", + "qualified_name": "keen::ds::anim_graph::runtime_graph::AnimationGraphResource2_0", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2298283667, + "hash2": 4195002253, + "struct_fields": [ + { + "name": "floatParameters", + "type_name": "keen::ds::anim_graph::runtime_graph::ParameterList", + "type_hash": 1522666551, + "data_offset": 0 + }, + { + "name": "uintParameters", + "type_name": "keen::ds::anim_graph::runtime_graph::ParameterList", + "type_hash": 1522666551, + "data_offset": 40 + }, + { + "name": "intParameters", + "type_name": "keen::ds::anim_graph::runtime_graph::ParameterList", + "type_hash": 1522666551, + "data_offset": 80 + }, + { + "name": "boolParameters", + "type_name": "keen::ds::anim_graph::runtime_graph::ParameterList", + "type_hash": 1522666551, + "data_offset": 120 + }, + { + "name": "idParameters", + "type_name": "keen::ds::anim_graph::runtime_graph::ParameterList", + "type_hash": 1522666551, + "data_offset": 160 + }, + { + "name": "usedInputIds", + "type_name": "keen::ds::anim_graph::runtime_graph::ParameterList", + "type_hash": 1522666551, + "data_offset": 200 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 256938998, + "data_offset": 240 + }, + { + "name": "slotBoneIndexMapping", + "type_name": "keen::StaticArray", + "type_hash": 4141771936, + "data_offset": 256 + }, + { + "name": "rootNode", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 284 + }, + { + "name": "nodeDefinitions", + "type_name": "keen::DsArray>", + "type_hash": 2627818551, + "data_offset": 288 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 3668997726, + "data_offset": 328 + }, + { + "name": "genderMapping", + "type_name": "keen::DsArray", + "type_hash": 796404411, + "data_offset": 344 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUpdateMessage", + "type_name_2": "anim_graph.GameUpdateMessage", + "qualified_name": "keen::ds::anim_graph::GameUpdateMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4098875833, + "hash2": 3506709543, + "struct_fields": [ + { + "name": "isPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugEntityChangedMessage", + "type_name_2": "anim_graph.DebugEntityChangedMessage", + "qualified_name": "keen::ds::anim_graph::DebugEntityChangedMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 165042748, + "hash2": 3534500872, + "struct_fields": [ + { + "name": "selectedEntity", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugMessageBase", + "type_name_2": "anim_graph.debug.DebugMessageBase", + "qualified_name": "keen::ds::anim_graph::debug::DebugMessageBase", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2040167291, + "hash2": 1414035646, + "struct_fields": [ + { + "name": "timestamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "rootGraphGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + }, + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NodeStateUpdateMessage", + "type_name_2": "anim_graph.debug.NodeStateUpdateMessage", + "qualified_name": "keen::ds::anim_graph::debug::NodeStateUpdateMessage", + "referenced_type_name": "keen::ds::anim_graph::debug::DebugMessageBase", + "class_size": 72, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4058161623, + "hash2": 2488041178, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 48 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "isFrozen", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "progress", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "timeSpentInNode", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "fromState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 64 + }, + { + "name": "toState", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InputIdMessage", + "type_name_2": "anim_graph.debug.InputIdMessage", + "qualified_name": "keen::ds::anim_graph::debug::InputIdMessage", + "referenced_type_name": "keen::ds::anim_graph::debug::DebugMessageBase", + "class_size": 312, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4157063600, + "hash2": 4244163742, + "struct_fields": [ + { + "name": "floatInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 48 + }, + { + "name": "floatInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 80 + }, + { + "name": "intInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 112 + }, + { + "name": "intInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 144 + }, + { + "name": "boolInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 176 + }, + { + "name": "boolInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 208 + }, + { + "name": "idInputIdHashes", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 216 + }, + { + "name": "idInputIdValues", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 248 + }, + { + "name": "overlayIdValues", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 280 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityJointMessage", + "type_name_2": "anim_graph.debug.EntityJointMessage", + "qualified_name": "keen::ds::anim_graph::debug::EntityJointMessage", + "referenced_type_name": "keen::ds::anim_graph::debug::DebugMessageBase", + "class_size": 12352, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 24125484, + "hash2": 3019132022, + "struct_fields": [ + { + "name": "animationJoints", + "type_name": "keen::StaticArray", + "type_hash": 4160119175, + "data_offset": 48 + }, + { + "name": "numJoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12336 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphInstanceInfoMessage", + "type_name_2": "anim_graph.debug.AnimationGraphInstanceInfoMessage", + "qualified_name": "keen::ds::anim_graph::debug::AnimationGraphInstanceInfoMessage", + "referenced_type_name": "keen::ds::anim_graph::debug::DebugMessageBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2540298064, + "hash2": 4086488817, + "struct_fields": [ + { + "name": "retriggerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachineMessage", + "type_name_2": "anim_graph.debug.StateMachineMessage", + "qualified_name": "keen::ds::anim_graph::debug::StateMachineMessage", + "referenced_type_name": "keen::ds::anim_graph::debug::DebugMessageBase", + "class_size": 200, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3309236749, + "hash2": 1411746668, + "struct_fields": [ + { + "name": "stateMachineId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "fromState", + "type_name": "keen::StaticArray", + "type_hash": 293919601, + "data_offset": 52 + }, + { + "name": "toState", + "type_name": "keen::StaticArray", + "type_hash": 293919601, + "data_offset": 84 + }, + { + "name": "duration", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 116 + }, + { + "name": "elapsed", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 148 + }, + { + "name": "priority", + "type_name": "keen::StaticArray", + "type_hash": 191080542, + "data_offset": 180 + }, + { + "name": "frozen", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 188 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::runtime_graph::AnimationGraphResource2_0", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3044461158, + "hash2": 2008372056, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResourceReference", + "type_name_2": "AnimationGraphResourceReference", + "qualified_name": "keen::ds::AnimationGraphResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2023618202, + "hash2": 1975125002, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JointAnimationHeader", + "type_name_2": "JointAnimationHeader", + "qualified_name": "keen::ds::JointAnimationHeader", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3209459900, + "hash2": 2245630093, + "struct_fields": [ + { + "name": "dataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "startTime", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "endTime", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "usedOrientationJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "nonConstOrientationJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "usedPositionJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "nonConstPositionJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "usedScaleJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "nonConstScaleJoints", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "JointAnimationHeader[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::JointAnimationHeader", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3162189245, + "hash2": 3308825618, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JointAnimation", + "type_name_2": "JointAnimation", + "qualified_name": "keen::ds::JointAnimation", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2382562217, + "hash2": 2540854145, + "struct_fields": [ + { + "name": "hierarchyHash", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "positionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "positionTangent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "scaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "headers", + "type_name": "keen::DsArray", + "type_hash": 3162189245, + "data_offset": 24 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 64 + }, + { + "name": "fps", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 80 + }, + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 82 + }, + { + "name": "jointCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 84 + }, + { + "name": "flags", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 86 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JointAnimationReference", + "type_name_2": "JointAnimationReference", + "qualified_name": "keen::ds::JointAnimationReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1988012710, + "hash2": 1846765758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LveOrientationKey", + "type_name_2": "LveOrientationKey", + "qualified_name": "keen::ds::LveOrientationKey", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3535706281, + "hash2": 2597360607, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "values", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 4 + }, + { + "name": "controls", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LvePositionKey", + "type_name_2": "LvePositionKey", + "qualified_name": "keen::ds::LvePositionKey", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3359989506, + "hash2": 1780973315, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "values", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "controls", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LveOrientationKey[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LveOrientationKey", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3179382600, + "hash2": 2085716617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LvePositionKey[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LvePositionKey", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 621888507, + "hash2": 4164654425, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LveAnimation", + "type_name_2": "LveAnimation", + "qualified_name": "keen::ds::LveAnimation", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1020548934, + "hash2": 1511775400, + "struct_fields": [ + { + "name": "trackName", + "type_name": "keen::crc32", + "type_hash": 2540444413, + "data_offset": 0 + }, + { + "name": "orientationKeys", + "type_name": "keen::DsArray", + "type_hash": 3179382600, + "data_offset": 8 + }, + { + "name": "positionKeys", + "type_name": "keen::DsArray", + "type_hash": 621888507, + "data_offset": 48 + }, + { + "name": "startToEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 88 + }, + { + "name": "fps", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 100 + }, + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 102 + }, + { + "name": "flags", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "float4[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::float4", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2653839017, + "hash2": 3411774419, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "float3[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::float3", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2619150946, + "hash2": 3105847268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionAnimation", + "type_name_2": "RootMotionAnimation", + "qualified_name": "keen::ds::RootMotionAnimation", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3448615305, + "hash2": 3866879764, + "struct_fields": [ + { + "name": "orientations", + "type_name": "keen::DsArray", + "type_hash": 2653839017, + "data_offset": 0 + }, + { + "name": "positions", + "type_name": "keen::DsArray", + "type_hash": 2619150946, + "data_offset": 40 + }, + { + "name": "startToEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "fps", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 92 + }, + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 94 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsTypeName", + "type_name_2": "DsTypeName", + "qualified_name": "keen::ds::DsTypeName", + "referenced_type_name": "keen::ds::string", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1127718133, + "hash2": 58040744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "vf32_data", + "type_name_2": "vf32_data", + "qualified_name": "keen::ds::vf32_data", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1323680055, + "hash2": 4154319718, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 1438933023, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContentCategory", + "type_name_2": "ContentCategory", + "qualified_name": "keen::ds::ContentCategory", + "referenced_type_name": "keen::ContentCategory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 421972496, + "hash2": 1676300463, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VertexColorChannel", + "type_name_2": "VertexColorChannel", + "qualified_name": "keen::ds::VertexColorChannel", + "referenced_type_name": "keen::VertexColorChannel", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 968157863, + "hash2": 2898886368, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClothMaterial", + "type_name_2": "ClothMaterial", + "qualified_name": "keen::ds::ClothMaterial", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 1716175532, + "hash2": 2020741446, + "struct_fields": [ + { + "name": "simulationWeightVertexColorChannel", + "type_name": "keen::ds::VertexColorChannel", + "type_hash": 968157863, + "data_offset": 0 + }, + { + "name": "useMass", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "usePerVertexStiffness", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "perVertexStiffnessVertexColorChannel", + "type_name": "keen::ds::VertexColorChannel", + "type_hash": 968157863, + "data_offset": 9 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "windStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "tetherStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "motionConstraintsMaxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "motionConstraintsUnlimitedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "motionConstraintsStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "solverFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BvhTreeNodeData", + "type_name_2": "BvhTreeNodeData", + "qualified_name": "keen::ds::BvhTreeNodeData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2757117585, + "hash2": 274310287, + "struct_fields": [ + { + "name": "boundingBoxMin", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "boundingBoxMax", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BvhTreeNodeData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BvhTreeNodeData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3732769944, + "hash2": 3470858231, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BvhTreeData", + "type_name_2": "BvhTreeData", + "qualified_name": "keen::ds::BvhTreeData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4152418793, + "hash2": 3547907778, + "struct_fields": [ + { + "name": "boundingBoxMin", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "boundingBoxMax", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "nodes", + "type_name": "keen::DsArray", + "type_hash": 3732769944, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionSegmentDirection", + "type_name_2": "CollisionSegmentDirection", + "qualified_name": "keen::ds::CollisionSegmentDirection", + "referenced_type_name": "keen::CollisionSegmentDirection", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1799301567, + "hash2": 253433402, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NavEdge", + "type_name_2": "NavEdge", + "qualified_name": "keen::ds::NavEdge", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3043304597, + "hash2": 3207684803, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "end", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NavPortal", + "type_name_2": "NavPortal", + "qualified_name": "keen::ds::NavPortal", + "referenced_type_name": "keen::ds::NavEdge", + "class_size": 48, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 785266662, + "hash2": 3736110788, + "struct_fields": [ + { + "name": "cellIndices", + "type_name": "keen::StaticArray", + "type_hash": 953863877, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionShapeId", + "type_name_2": "CollisionShapeId", + "qualified_name": "keen::ds::CollisionShapeId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4003652671, + "hash2": 2105545971, + "struct_fields": [ + { + "name": "shapeId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "segmentIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "uint16[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::uint16", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3036009870, + "hash2": 2255196555, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CollisionShapeId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CollisionShapeId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4066483516, + "hash2": 2214740280, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NavCell", + "type_name_2": "NavCell", + "qualified_name": "keen::ds::NavCell", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1487223660, + "hash2": 3849947757, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "minY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "edgeIndices", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 16 + }, + { + "name": "portalIndices", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 56 + }, + { + "name": "collisionShapeIds", + "type_name": "keen::DsArray", + "type_hash": 4066483516, + "data_offset": 96 + }, + { + "name": "extensionPortalIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 136 + }, + { + "name": "centroid", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderShape", + "type_name_2": "ColliderShape", + "qualified_name": "keen::ds::ColliderShape", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2070887132, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SphereColliderShape", + "type_name_2": "SphereColliderShape", + "qualified_name": "keen::ds::SphereColliderShape", + "referenced_type_name": "keen::ds::ColliderShape", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 382525167, + "hash2": 973623130, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpheroidColliderShape", + "type_name_2": "SpheroidColliderShape", + "qualified_name": "keen::ds::SpheroidColliderShape", + "referenced_type_name": "keen::ds::ColliderShape", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1718765490, + "hash2": 1927345696, + "struct_fields": [ + { + "name": "horizontalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "verticalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CapsuleColliderShape", + "type_name_2": "CapsuleColliderShape", + "qualified_name": "keen::ds::CapsuleColliderShape", + "referenced_type_name": "keen::ds::ColliderShape", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 107891031, + "hash2": 83766528, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoxColliderShape", + "type_name_2": "BoxColliderShape", + "qualified_name": "keen::ds::BoxColliderShape", + "referenced_type_name": "keen::ds::ColliderShape", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 786076089, + "hash2": 64654120, + "struct_fields": [ + { + "name": "halfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SegmentColliderShape", + "type_name_2": "SegmentColliderShape", + "qualified_name": "keen::ds::SegmentColliderShape", + "referenced_type_name": "keen::ds::ColliderShape", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3445041433, + "hash2": 1768641945, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFace", + "type_name_2": "CollisionFace", + "qualified_name": "keen::ds::CollisionFace", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 754738536, + "hash2": 3046724639, + "struct_fields": [ + { + "name": "vertices", + "type_name": "keen::StaticArray", + "type_hash": 920161544, + "data_offset": 0 + }, + { + "name": "neighborFaces", + "type_name": "keen::StaticArray", + "type_hash": 920161544, + "data_offset": 6 + }, + { + "name": "neighborEdgeIndices", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "material", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 13 + }, + { + "name": "flags", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "Vector3[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::Vector3", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1781839769, + "hash2": 3912673605, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionObject", + "type_name_2": "CollisionObject", + "qualified_name": "keen::ds::CollisionObject", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2343202590, + "hash2": 3441323229, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "segmentIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "shapeVertices", + "type_name": "keen::DsArray", + "type_hash": 1781839769, + "data_offset": 8 + }, + { + "name": "navCellIndices", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 48 + }, + { + "name": "health", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "y", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionGridCell", + "type_name_2": "CollisionGridCell", + "qualified_name": "keen::ds::CollisionGridCell", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3159799789, + "hash2": 2733624141, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CollisionGridCell[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CollisionGridCell", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2363335348, + "hash2": 3578956976, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionGrid", + "type_name_2": "CollisionGrid", + "qualified_name": "keen::ds::CollisionGrid", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1902229501, + "hash2": 3827320479, + "struct_fields": [ + { + "name": "gridCells", + "type_name": "keen::DsArray", + "type_hash": 2363335348, + "data_offset": 0 + }, + { + "name": "gridIndicies", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 40 + }, + { + "name": "collShapesPerGrid", + "type_name": "keen::DsArray", + "type_hash": 2363335348, + "data_offset": 80 + }, + { + "name": "collShapesPerGridIndicies", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 120 + }, + { + "name": "cellsX", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 160 + }, + { + "name": "origin", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 164 + }, + { + "name": "cellSize", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CollisionFace[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CollisionFace", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 7642247, + "hash2": 924462770, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CollisionObject[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CollisionObject", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2549086861, + "hash2": 967265351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NavCell[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NavCell", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2942907955, + "hash2": 2187635465, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NavEdge[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NavEdge", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2226194064, + "hash2": 3159964225, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NavPortal[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NavPortal", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3729665181, + "hash2": 194467172, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionMeshData", + "type_name_2": "CollisionMeshData", + "qualified_name": "keen::ds::CollisionMeshData", + "referenced_type_name": null, + "class_size": 424, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 571020896, + "hash2": 3248662575, + "struct_fields": [ + { + "name": "m_vertices", + "type_name": "keen::DsArray", + "type_hash": 1781839769, + "data_offset": 0 + }, + { + "name": "m_faces", + "type_name": "keen::DsArray", + "type_hash": 7642247, + "data_offset": 40 + }, + { + "name": "m_grid", + "type_name": "keen::ds::CollisionGrid", + "type_hash": 1902229501, + "data_offset": 80 + }, + { + "name": "m_objects", + "type_name": "keen::DsArray", + "type_hash": 2549086861, + "data_offset": 264 + }, + { + "name": "m_navCells", + "type_name": "keen::DsArray", + "type_hash": 2942907955, + "data_offset": 304 + }, + { + "name": "m_navEdges", + "type_name": "keen::DsArray", + "type_hash": 2226194064, + "data_offset": 344 + }, + { + "name": "m_navPortals", + "type_name": "keen::DsArray", + "type_hash": 3729665181, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollisionBatch", + "type_name_2": "WorldCollisionBatch", + "qualified_name": "keen::ds::WorldCollisionBatch", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2950577033, + "hash2": 1510163517, + "struct_fields": [ + { + "name": "triangleIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "triangleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WorldCollisionBatch[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WorldCollisionBatch", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 309521828, + "hash2": 1129160846, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "float32[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::float32", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2647501488, + "hash2": 2724692923, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "uint8[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::uint8", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1611182641, + "hash2": 1665142157, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollision", + "type_name_2": "WorldCollision", + "qualified_name": "keen::ds::WorldCollision", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4145717783, + "hash2": 876282710, + "struct_fields": [ + { + "name": "triangleBatches", + "type_name": "keen::DsArray", + "type_hash": 309521828, + "data_offset": 0 + }, + { + "name": "vertexPositions", + "type_name": "keen::DsArray", + "type_hash": 2647501488, + "data_offset": 40 + }, + { + "name": "materialIds", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 80 + }, + { + "name": "bvhTreeData", + "type_name": "keen::ds::BvhTreeData", + "type_hash": 4152418793, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColor", + "type_name_2": "PaletteColor", + "qualified_name": "keen::ds::PaletteColor", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3777757577, + "hash2": 2016100642, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PaletteColor", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 952603656, + "hash2": 4123283633, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColorReference", + "type_name_2": "PaletteColorReference", + "qualified_name": "keen::ds::PaletteColorReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1940966470, + "hash2": 1777092426, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPalette", + "type_name_2": "ColorPalette", + "qualified_name": "keen::ds::ColorPalette", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1610723801, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPaletteCollection", + "type_name_2": "ColorPaletteCollection", + "qualified_name": "keen::ds::ColorPaletteCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1322910797, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColorId", + "type_name_2": "PaletteColorId", + "qualified_name": "keen::ds::PaletteColorId", + "referenced_type_name": "keen::PaletteColorId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3143764908, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PaletteColorResource", + "type_name_2": "PaletteColorResource", + "qualified_name": "keen::ds::PaletteColorResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 159742073, + "hash2": 1585768307, + "struct_fields": [ + { + "name": "paletteColorId", + "type_name": "keen::ds::PaletteColorId", + "type_hash": 3143764908, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PaletteColorResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PaletteColorResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 556398790, + "hash2": 3773980041, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPaletteCollectionResource", + "type_name_2": "ColorPaletteCollectionResource", + "qualified_name": "keen::ds::ColorPaletteCollectionResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2057504877, + "hash2": 2830907481, + "struct_fields": [ + { + "name": "colors", + "type_name": "keen::DsArray", + "type_hash": 556398790, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductId", + "type_name_2": "CommerceProductId", + "qualified_name": "keen::ds::CommerceProductId", + "referenced_type_name": "keen::CommerceProductId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4145670446, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProduct", + "type_name_2": "CommerceProduct", + "qualified_name": "keen::ds::CommerceProduct", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 118009155, + "hash2": 1918552845, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::CommerceProductId", + "type_hash": 4145670446, + "data_offset": 0 + }, + { + "name": "platformIdSteam", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CommerceProduct", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3970392124, + "hash2": 3834343355, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductReference", + "type_name_2": "CommerceProductReference", + "qualified_name": "keen::ds::CommerceProductReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1028626152, + "hash2": 3690108428, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductSubDirectory", + "type_name_2": "CommerceProductSubDirectory", + "qualified_name": "keen::ds::CommerceProductSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1776688766, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductDirectory", + "type_name_2": "CommerceProductDirectory", + "qualified_name": "keen::ds::CommerceProductDirectory", + "referenced_type_name": "keen::ds::CommerceProductSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3509786498, + "hash2": 3662679277, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CommerceProduct[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CommerceProduct", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1833253278, + "hash2": 3276649729, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceProductResource", + "type_name_2": "CommerceProductResource", + "qualified_name": "keen::ds::CommerceProductResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1684399279, + "hash2": 3002415828, + "struct_fields": [ + { + "name": "products", + "type_name": "keen::DsArray", + "type_hash": 1833253278, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CommerceProductResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3687873236, + "hash2": 391270972, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CommerceResourceReference", + "type_name_2": "CommerceResourceReference", + "qualified_name": "keen::ds::CommerceResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3384709005, + "hash2": 4008480066, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnComponent", + "type_name_2": "ecs.SpawnComponent", + "qualified_name": "keen::ds::ecs::SpawnComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2823512514, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LastTransform", + "type_name_2": "ecs.LastTransform", + "qualified_name": "keen::ds::ecs::LastTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1057927684, + "hash2": 1844249943, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerFocus", + "type_name_2": "ecs.PlayerFocus", + "qualified_name": "keen::ds::ecs::PlayerFocus", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1538973115, + "hash2": 2118359724, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticTransform", + "type_name_2": "ecs.StaticTransform", + "qualified_name": "keen::ds::ecs::StaticTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2941913542, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticTransformDynamic", + "type_name_2": "ecs.StaticTransformDynamic", + "qualified_name": "keen::ds::ecs::StaticTransformDynamic", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1484255347, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DoNotSave", + "type_name_2": "ecs.DoNotSave", + "qualified_name": "keen::ds::ecs::DoNotSave", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2122254179, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ForceSave", + "type_name_2": "ecs.ForceSave", + "qualified_name": "keen::ds::ecs::ForceSave", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1335862758, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerInRange", + "type_name_2": "ecs.PlayerInRange", + "qualified_name": "keen::ds::ecs::PlayerInRange", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3052475155, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CheckPlayerInRange", + "type_name_2": "ecs.CheckPlayerInRange", + "qualified_name": "keen::ds::ecs::CheckPlayerInRange", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 262981243, + "hash2": 2507906382, + "struct_fields": [ + { + "name": "distanceInMeter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerProgress", + "type_name_2": "ecs.ServerProgress", + "qualified_name": "keen::ds::ecs::ServerProgress", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1532641564, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoredSceneId", + "type_name_2": "ecs.StoredSceneId", + "qualified_name": "keen::ds::ecs::StoredSceneId", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 943884576, + "hash2": 4127762027, + "struct_fields": [ + { + "name": "sceneGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::EnemyMarkerTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2743421163, + "hash2": 727190187, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerSettings", + "type_name_2": "ecs.EnemyMarkerSettings", + "qualified_name": "keen::ds::ecs::EnemyMarkerSettings", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1161795819, + "hash2": 134900705, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ObjectReference", + "type_hash": 2743421163, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportCount", + "type_name_2": "ecs.TeleportCount", + "qualified_name": "keen::ds::ecs::TeleportCount", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3683845346, + "hash2": 1573696161, + "struct_fields": [ + { + "name": "counter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "isWaitingForTeleport", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTeleportCount", + "type_name_2": "ecs.RenderTeleportCount", + "qualified_name": "keen::ds::ecs::RenderTeleportCount", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1167116866, + "hash2": 3846682407, + "struct_fields": [ + { + "name": "counter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "wasTeleported", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScaleComponent", + "type_name_2": "ecs.ScaleComponent", + "qualified_name": "keen::ds::ecs::ScaleComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4180925433, + "hash2": 2600994184, + "struct_fields": [ + { + "name": "uniformScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Velocity", + "type_name_2": "ecs.Velocity", + "qualified_name": "keen::ds::ecs::Velocity", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2494919915, + "hash2": 2474179765, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpulseType", + "type_name_2": "ecs.ImpulseType", + "qualified_name": "keen::ds::ecs::ImpulseType", + "referenced_type_name": "keen::ecs::ImpulseType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2052645203, + "hash2": 662373428, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpulseData", + "type_name_2": "ecs.ImpulseData", + "qualified_name": "keen::ds::ecs::ImpulseData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4187645779, + "hash2": 3092085635, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::ImpulseType", + "type_hash": 2052645203, + "data_offset": 12 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ImpulseData[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::ImpulseData", + "class_size": 128, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 1886272233, + "hash2": 799443554, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Impulse", + "type_name_2": "ecs.Impulse", + "qualified_name": "keen::ds::ecs::Impulse", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 144, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2051784683, + "hash2": 2289665973, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "impulses", + "type_name": "keen::StaticArray", + "type_hash": 1886272233, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OscillateTransform", + "type_name_2": "ecs.OscillateTransform", + "qualified_name": "keen::ds::ecs::OscillateTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4172029906, + "hash2": 2058005966, + "struct_fields": [ + { + "name": "center", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "amplitudeAxis", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "phase", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityId", + "type_name_2": "ecs.EntityId", + "qualified_name": "keen::ds::ecs::EntityId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 824634830, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OwnerRelationship", + "type_name_2": "ecs.OwnerRelationship", + "qualified_name": "keen::ds::ecs::OwnerRelationship", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1528821813, + "hash2": 2583252731, + "struct_fields": [ + { + "name": "ownerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTime", + "type_name_2": "ecs.SpawnTime", + "qualified_name": "keen::ds::ecs::SpawnTime", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4248819286, + "hash2": 3035475040, + "struct_fields": [ + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LifeTime", + "type_name_2": "ecs.LifeTime", + "qualified_name": "keen::ds::ecs::LifeTime", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3164204651, + "hash2": 3026117840, + "struct_fields": [ + { + "name": "lifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "endOfLife", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "enforceDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "triggeredDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Aging", + "type_name_2": "ecs.Aging", + "qualified_name": "keen::ds::ecs::Aging", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1811532964, + "hash2": 3985912859, + "struct_fields": [ + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TintColor", + "type_name_2": "ecs.TintColor", + "qualified_name": "keen::ds::ecs::TintColor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2852965296, + "hash2": 817020290, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PaletteColorId[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::PaletteColorId", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 3200636759, + "hash2": 3834654026, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationComponent", + "type_name_2": "ecs.ColorCombinationComponent", + "qualified_name": "keen::ds::ecs::ColorCombinationComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2344251141, + "hash2": 1737656230, + "struct_fields": [ + { + "name": "colorIds", + "type_name": "keen::StaticArray", + "type_hash": 3200636759, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HighlightColorIndex", + "type_name_2": "HighlightColorIndex", + "qualified_name": "keen::ds::HighlightColorIndex", + "referenced_type_name": "keen::HighlightColorIndex", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Typedef", + "hash1": 624860412, + "hash2": 4214373856, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HighlightColor", + "type_name_2": "ecs.HighlightColor", + "qualified_name": "keen::ds::ecs::HighlightColor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1550664111, + "hash2": 2020631290, + "struct_fields": [ + { + "name": "colorIndex", + "type_name": "keen::ds::HighlightColorIndex", + "type_hash": 624860412, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Transparency", + "type_name_2": "ecs.Transparency", + "qualified_name": "keen::ds::ecs::Transparency", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3618248998, + "hash2": 3551244012, + "struct_fields": [ + { + "name": "transparency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Ao", + "type_name_2": "ecs.Ao", + "qualified_name": "keen::ds::ecs::Ao", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2792328860, + "hash2": 2974310542, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Hide", + "type_name_2": "ecs.Hide", + "qualified_name": "keen::ds::ecs::Hide", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2508267992, + "hash2": 2156577698, + "struct_fields": [ + { + "name": "isHidden", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isLocalyHidden", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelComponent", + "type_name_2": "ecs.ModelComponent", + "qualified_name": "keen::ds::ecs::ModelComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 234317600, + "hash2": 860160989, + "struct_fields": [ + { + "name": "modelHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleModifier", + "type_name_2": "ecs.ToggleModifier", + "qualified_name": "keen::ds::ecs::ToggleModifier", + "referenced_type_name": "keen::ecs::ToggleModifier", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 88264629, + "hash2": 1989447437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelRenderHint", + "type_name_2": "ecs.ModelRenderHint", + "qualified_name": "keen::ds::ecs::ModelRenderHint", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 791701968, + "hash2": 3490903447, + "struct_fields": [ + { + "name": "canReceiveDecals", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "toggleModifier", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelDynamic", + "type_name_2": "ecs.ModelDynamic", + "qualified_name": "keen::ds::ecs::ModelDynamic", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2451109870, + "hash2": 3600409848, + "struct_fields": [ + { + "name": "lastModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelResource", + "type_name_2": "ecs.ModelResource", + "qualified_name": "keen::ds::ecs::ModelResource", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2060041781, + "hash2": 3366187752, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelResourceDynamic", + "type_name_2": "ecs.ModelResourceDynamic", + "qualified_name": "keen::ds::ecs::ModelResourceDynamic", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 182646334, + "hash2": 3366187752, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModel", + "type_name_2": "ecs.VoxelModel", + "qualified_name": "keen::ds::ecs::VoxelModel", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3589587633, + "hash2": 1348061912, + "struct_fields": [ + { + "name": "renderNode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelModelResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3531128829, + "hash2": 289341544, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelVolatile", + "type_name_2": "ecs.VoxelModelVolatile", + "qualified_name": "keen::ds::ecs::VoxelModelVolatile", + "referenced_type_name": "keen::ds::ecs::VoxelModel", + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2997942585, + "hash2": 1698884164, + "struct_fields": [ + { + "name": "pendingRenderNode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "lastModel", + "type_name": "keen::ObjectReference", + "type_hash": 3531128829, + "data_offset": 8 + }, + { + "name": "lastMaterialOverride", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "isVoxelModelChangePending", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelResourceComponent", + "type_name_2": "ecs.VoxelModelResourceComponent", + "qualified_name": "keen::ds::ecs::VoxelModelResourceComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4260729260, + "hash2": 1453916018, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 3531128829, + "data_offset": 0 + }, + { + "name": "materialOverride", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementComponent", + "type_name_2": "ecs.SnowDisplacementComponent", + "qualified_name": "keen::ds::ecs::SnowDisplacementComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 968845439, + "hash2": 4229727645, + "struct_fields": [ + { + "name": "bodyHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "localOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "heightNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DungeonTriggerSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1420284875, + "hash2": 512891516, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerTypeComponent", + "type_name_2": "ecs.DungeonTriggerTypeComponent", + "qualified_name": "keen::ds::ecs::DungeonTriggerTypeComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1154277177, + "hash2": 1361947840, + "struct_fields": [ + { + "name": "triggerSetup", + "type_name": "keen::ObjectReference", + "type_hash": 1420284875, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResourceComponent", + "type_name_2": "ecs.AnimationGraphResourceComponent", + "qualified_name": "keen::ds::ecs::AnimationGraphResourceComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3549198389, + "hash2": 2273995034, + "struct_fields": [ + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 2358948672, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::anim_graph::tool_graph::AnimationGraph2_0", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 687355720, + "hash2": 1723229761, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphResourceComponent2", + "type_name_2": "ecs.AnimationGraphResourceComponent2", + "qualified_name": "keen::ds::ecs::AnimationGraphResourceComponent2", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 220263173, + "hash2": 284222141, + "struct_fields": [ + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 687355720, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxComponentResource", + "type_name_2": "ecs.VfxComponentResource", + "qualified_name": "keen::ds::ecs::VfxComponentResource", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 617212543, + "hash2": 329894565, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxResourceDynamic", + "type_name_2": "ecs.VfxResourceDynamic", + "qualified_name": "keen::ds::ecs::VfxResourceDynamic", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2488837593, + "hash2": 329894565, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterDataBlock", + "type_name_2": "VfxUserEffectParameterDataBlock", + "qualified_name": "keen::ds::VfxUserEffectParameterDataBlock", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1522578755, + "hash2": 3510423688, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 1533723982, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParametersTemplateComponent", + "type_name_2": "ecs.VfxParametersTemplateComponent", + "qualified_name": "keen::ds::ecs::VfxParametersTemplateComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3761549601, + "hash2": 645770821, + "struct_fields": [ + { + "name": "parameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParametersOverwriteComponent", + "type_name_2": "ecs.VfxParametersOverwriteComponent", + "qualified_name": "keen::ds::ecs::VfxParametersOverwriteComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1716313752, + "hash2": 3648519394, + "struct_fields": [ + { + "name": "useVfxDefaultParameters", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OverrideLevel", + "type_name_2": "ecs.OverrideLevel", + "qualified_name": "keen::ds::ecs::OverrideLevel", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2076201854, + "hash2": 3898703356, + "struct_fields": [ + { + "name": "newLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleModifierFlags", + "type_name_2": "ecs.ToggleModifierFlags", + "qualified_name": "keen::ds::ecs::ToggleModifierFlags", + "referenced_type_name": "keen::ecs::ToggleModifierFlags", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2095628156, + "hash2": 534199918, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleTimer", + "type_name_2": "ecs.ToggleTimer", + "qualified_name": "keen::ds::ecs::ToggleTimer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1484136917, + "hash2": 960869777, + "struct_fields": [ + { + "name": "timer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "toggleModifier", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 8 + }, + { + "name": "timerRunning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "lastToggleChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyOnState", + "type_name_2": "ecs.DestroyOnState", + "qualified_name": "keen::ds::ecs::DestroyOnState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2035422076, + "hash2": 791764746, + "struct_fields": [ + { + "name": "wasInOppositeState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "triggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FxComponent", + "type_name_2": "ecs.FxComponent", + "qualified_name": "keen::ds::ecs::FxComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2085672661, + "hash2": 126723245, + "struct_fields": [ + { + "name": "fxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "toggleModifier", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxAnimationIdParameter", + "type_name_2": "ecs.VfxAnimationIdParameter", + "qualified_name": "keen::ds::ecs::VfxAnimationIdParameter", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1637116206, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Offset", + "type_name_2": "ecs.Offset", + "qualified_name": "keen::ds::ecs::Offset", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 826240779, + "hash2": 2308517093, + "struct_fields": [ + { + "name": "localOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "worldOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "orientationOffset", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxComponent", + "type_name_2": "ecs.VfxComponent", + "qualified_name": "keen::ds::ecs::VfxComponent", + "referenced_type_name": "keen::ds::ecs::FxComponent", + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2426095443, + "hash2": 2215016472, + "struct_fields": [ + { + "name": "attachmentOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 8 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 48 + }, + { + "name": "attachToParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetType", + "type_name_2": "ecs.TargetType", + "qualified_name": "keen::ds::ecs::TargetType", + "referenced_type_name": "keen::ecs::TargetType", + "class_size": 1, + "fields_count": 17, + "primitive_type": "Typedef", + "hash1": 168829289, + "hash2": 3651440734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxTargetedComponent", + "type_name_2": "ecs.VfxTargetedComponent", + "qualified_name": "keen::ds::ecs::VfxTargetedComponent", + "referenced_type_name": "keen::ds::ecs::VfxComponent", + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2879681219, + "hash2": 53267208, + "struct_fields": [ + { + "name": "targetType", + "type_name": "keen::ds::ecs::TargetType", + "type_hash": 168829289, + "data_offset": 52 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "updateTargetPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetEntity", + "type_name_2": "ecs.TargetEntity", + "qualified_name": "keen::ds::ecs::TargetEntity", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 697487910, + "hash2": 510627556, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetPosition", + "type_name_2": "ecs.TargetPosition", + "qualified_name": "keen::ds::ecs::TargetPosition", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1958339302, + "hash2": 3117767368, + "struct_fields": [ + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxTargetParameter", + "type_name_2": "ecs.VfxTargetParameter", + "qualified_name": "keen::ds::ecs::VfxTargetParameter", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 55715816, + "hash2": 1646413157, + "struct_fields": [ + { + "name": "targetSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 0 + }, + { + "name": "targetAttachmentOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 4 + }, + { + "name": "attachToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "updateSourcePosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxComponentVolatile", + "type_name_2": "ecs.VfxComponentVolatile", + "qualified_name": "keen::ds::ecs::VfxComponentVolatile", + "referenced_type_name": "keen::ds::ecs::VfxComponent", + "class_size": 68, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3584564091, + "hash2": 1387115929, + "struct_fields": [ + { + "name": "lastVfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Notifier", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3167743292, + "hash2": 3558674918, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NotifierReference", + "type_name_2": "NotifierReference", + "qualified_name": "keen::ds::NotifierReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1060302722, + "hash2": 3671279738, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxOnResourceDrop", + "type_name_2": "ecs.VfxOnResourceDrop", + "qualified_name": "keen::ds::ecs::VfxOnResourceDrop", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3774491252, + "hash2": 1683622589, + "struct_fields": [ + { + "name": "notifier", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 0 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleDelay", + "type_name_2": "ecs.ToggleDelay", + "qualified_name": "keen::ds::ecs::ToggleDelay", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4002063443, + "hash2": 872671869, + "struct_fields": [ + { + "name": "delay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleState", + "type_name_2": "ecs.ToggleState", + "qualified_name": "keen::ds::ecs::ToggleState", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1873256409, + "hash2": 3166687370, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lastChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerToggleState", + "type_name_2": "ecs.ServerToggleState", + "qualified_name": "keen::ds::ecs::ServerToggleState", + "referenced_type_name": "keen::ds::ecs::ToggleState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2517155752, + "hash2": 3385215741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NetworkToggleState", + "type_name_2": "ecs.NetworkToggleState", + "qualified_name": "keen::ds::ecs::NetworkToggleState", + "referenced_type_name": "keen::ds::ecs::ToggleState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 589508155, + "hash2": 3385215741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientToggleState", + "type_name_2": "ecs.ClientToggleState", + "qualified_name": "keen::ds::ecs::ClientToggleState", + "referenced_type_name": "keen::ds::ecs::ToggleState", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 887953644, + "hash2": 3385215741, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleNotifier", + "type_name_2": "ecs.ToggleNotifier", + "qualified_name": "keen::ds::ecs::ToggleNotifier", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 168, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1904159934, + "hash2": 3788210402, + "struct_fields": [ + { + "name": "lastEvent", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 8 + }, + { + "name": "notifier", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "sourceSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 40 + }, + { + "name": "sourceAttachmentOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 44 + }, + { + "name": "attachToSource", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "targetSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 85 + }, + { + "name": "targetAttachmentOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 88 + }, + { + "name": "attachToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 132 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 148 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseAnimationGraphInput", + "type_name_2": "ecs.BaseAnimationGraphInput", + "qualified_name": "keen::ds::ecs::BaseAnimationGraphInput", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 416, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3654918277, + "hash2": 3872304039, + "struct_fields": [ + { + "name": "initialAnimationStateIdReference", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + }, + { + "name": "animationInputs", + "type_name": "keen::ds::AnimationGraphInputs", + "type_hash": 2163992200, + "data_offset": 16 + }, + { + "name": "animationRootMotionMask", + "type_name": "keen::ds::animationgraph::RootMotionMask", + "type_hash": 2820560387, + "data_offset": 400 + }, + { + "name": "animationStateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 404 + }, + { + "name": "retriggerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 408 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphInput", + "type_name_2": "ecs.ServerAnimationGraphInput", + "qualified_name": "keen::ds::ecs::ServerAnimationGraphInput", + "referenced_type_name": "keen::ds::ecs::BaseAnimationGraphInput", + "class_size": 808, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2140281711, + "hash2": 3626891120, + "struct_fields": [ + { + "name": "previousAnimationInputs", + "type_name": "keen::ds::AnimationGraphInputs", + "type_hash": 2163992200, + "data_offset": 416 + }, + { + "name": "overlayRingbufferIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 800 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkAnimationGraphInput", + "type_name_2": "ecs.NetworkAnimationGraphInput", + "qualified_name": "keen::ds::ecs::NetworkAnimationGraphInput", + "referenced_type_name": "keen::ds::ecs::BaseAnimationGraphInput", + "class_size": 416, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2101518724, + "hash2": 4153209521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientAnimationGraphInputLerp", + "type_name_2": "ecs.ClientAnimationGraphInputLerp", + "qualified_name": "keen::ds::ecs::ClientAnimationGraphInputLerp", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 776, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1234312106, + "hash2": 2978279730, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::ds::AnimationGraphInputs", + "type_hash": 2163992200, + "data_offset": 0 + }, + { + "name": "target", + "type_name": "keen::ds::AnimationGraphInputs", + "type_hash": 2163992200, + "data_offset": 384 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 768 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 772 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientAnimationGraphInput", + "type_name_2": "ecs.ClientAnimationGraphInput", + "qualified_name": "keen::ds::ecs::ClientAnimationGraphInput", + "referenced_type_name": "keen::ds::ecs::BaseAnimationGraphInput", + "class_size": 416, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1419593459, + "hash2": 4153209521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphHandleValue", + "type_name_2": "ecs.AnimationGraphHandleValue", + "qualified_name": "keen::ds::ecs::AnimationGraphHandleValue", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4012719097, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderPoseHandleValue", + "type_name_2": "ecs.RenderPoseHandleValue", + "qualified_name": "keen::ds::ecs::RenderPoseHandleValue", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1064924992, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphBaseComponent", + "type_name_2": "ecs.AnimationGraphBaseComponent", + "qualified_name": "keen::ds::ecs::AnimationGraphBaseComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2912258238, + "hash2": 2836721607, + "struct_fields": [ + { + "name": "animationGraphHandle", + "type_name": "keen::ds::ecs::AnimationGraphHandleValue", + "type_hash": 4012719097, + "data_offset": 0 + }, + { + "name": "renderPoseHandle", + "type_name": "keen::ds::ecs::RenderPoseHandleValue", + "type_hash": 1064924992, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphComponent", + "type_name_2": "ecs.AnimationGraphComponent", + "qualified_name": "keen::ds::ecs::AnimationGraphComponent", + "referenced_type_name": "keen::ds::ecs::AnimationGraphBaseComponent", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2187316525, + "hash2": 1498047027, + "struct_fields": [ + { + "name": "usedClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 3668997726, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphSlotComponent", + "type_name_2": "ecs.AnimationGraphSlotComponent", + "qualified_name": "keen::ds::ecs::AnimationGraphSlotComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 676, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2348973369, + "hash2": 3216898776, + "struct_fields": [ + { + "name": "slotsInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 1470016494, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphComponent", + "type_name_2": "ecs.ServerAnimationGraphComponent", + "qualified_name": "keen::ds::ecs::ServerAnimationGraphComponent", + "referenced_type_name": "keen::ds::ecs::AnimationGraphBaseComponent", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 446443620, + "hash2": 2491684745, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphSlotComponent", + "type_name_2": "ecs.ServerAnimationGraphSlotComponent", + "qualified_name": "keen::ds::ecs::ServerAnimationGraphSlotComponent", + "referenced_type_name": "keen::ds::ecs::AnimationGraphSlotComponent", + "class_size": 676, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3375180072, + "hash2": 3762994261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphHandleValue2", + "type_name_2": "ecs.AnimationGraphHandleValue2", + "qualified_name": "keen::ds::ecs::AnimationGraphHandleValue2", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1328881809, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimationGraphComponent2", + "type_name_2": "ecs.AnimationGraphComponent2", + "qualified_name": "keen::ds::ecs::AnimationGraphComponent2", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1540351949, + "hash2": 707050905, + "struct_fields": [ + { + "name": "animationGraphHandle", + "type_name": "keen::ds::ecs::AnimationGraphHandleValue2", + "type_hash": 1328881809, + "data_offset": 0 + }, + { + "name": "renderPoseHandle", + "type_name": "keen::ds::ecs::RenderPoseHandleValue", + "type_hash": 1064924992, + "data_offset": 4 + }, + { + "name": "clothCollider", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerAnimationGraphComponent2", + "type_name_2": "ecs.ServerAnimationGraphComponent2", + "qualified_name": "keen::ds::ecs::ServerAnimationGraphComponent2", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 970987362, + "hash2": 2319078382, + "struct_fields": [ + { + "name": "animationGraphHandle", + "type_name": "keen::ds::ecs::AnimationGraphHandleValue2", + "type_hash": 1328881809, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyParentAnimationGraphState", + "type_name_2": "ecs.CopyParentAnimationGraphState", + "qualified_name": "keen::ds::ecs::CopyParentAnimationGraphState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1781895192, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnimatedCamera", + "type_name_2": "ecs.AnimatedCamera", + "qualified_name": "keen::ds::ecs::AnimatedCamera", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2330309530, + "hash2": 2340713668, + "struct_fields": [ + { + "name": "cameraSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RngState", + "type_name_2": "ecs.RngState", + "qualified_name": "keen::ds::ecs::RngState", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 413681350, + "hash2": 1809003151, + "struct_fields": [ + { + "name": "w", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "z", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialId", + "type_name_2": "VoxelMaterialId", + "qualified_name": "keen::ds::VoxelMaterialId", + "referenced_type_name": "keen::VoxelMaterialId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2701508669, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollisionResults", + "type_name_2": "ecs.WorldCollisionResults", + "qualified_name": "keen::ds::ecs::WorldCollisionResults", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3775514250, + "hash2": 1069541611, + "struct_fields": [ + { + "name": "hasSpheroidCollision", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "spheroidNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "hasGroundCollision", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "isGroundWalkable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "groundNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "areaGroundNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "groundDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "groundVoxelMaterialId", + "type_name": "keen::ds::VoxelMaterialId", + "type_hash": 2701508669, + "data_offset": 48 + }, + { + "name": "preventFallDamage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OptionalWorldCollisionResults", + "type_name_2": "ecs.OptionalWorldCollisionResults", + "qualified_name": "keen::ds::ecs::OptionalWorldCollisionResults", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2744778246, + "hash2": 3393499575, + "struct_fields": [ + { + "name": "m_value", + "type_name": "keen::ds::ecs::WorldCollisionResults", + "type_hash": 3775514250, + "data_offset": 0 + }, + { + "name": "m_isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldCollider", + "type_name_2": "ecs.WorldCollider", + "qualified_name": "keen::ds::ecs::WorldCollider", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 84, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3297140696, + "hash2": 2469839490, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxStepHeightVoxels", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxStepHeightProps", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "onlyCheckPathCollidersWithBundleCheck", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "isWorldColliderReady", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "hasDetectedSafePositionBelow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "results", + "type_name": "keen::ds::ecs::OptionalWorldCollisionResults", + "type_hash": 2744778246, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Gravity", + "type_name_2": "ecs.Gravity", + "qualified_name": "keen::ds::ecs::Gravity", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4208280518, + "hash2": 1698790511, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticGravityModifier", + "type_name_2": "ecs.StaticGravityModifier", + "qualified_name": "keen::ds::ecs::StaticGravityModifier", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 275177093, + "hash2": 3414343791, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Debug", + "type_name_2": "ecs.Debug", + "qualified_name": "keen::ds::ecs::Debug", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1034844015, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::ColliderResponseResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1631740760, + "hash2": 3423398103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseResourceReference", + "type_name_2": "ecs.ColliderResponseResourceReference", + "qualified_name": "keen::ds::ecs::ColliderResponseResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2596211796, + "hash2": 1159182021, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseComponent", + "type_name_2": "ecs.ColliderResponseComponent", + "qualified_name": "keen::ds::ecs::ColliderResponseComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 104918406, + "hash2": 472504292, + "struct_fields": [ + { + "name": "colliderResponse", + "type_name": "keen::ds::ecs::ColliderResponseResourceReference", + "type_hash": 2596211796, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseFlag", + "type_name_2": "ecs.ColliderResponseFlag", + "qualified_name": "keen::ds::ecs::ColliderResponseFlag", + "referenced_type_name": "keen::ecs::ColliderResponseFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 283107493, + "hash2": 3044906968, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseFlags", + "type_name_2": "ecs.ColliderResponseFlags", + "qualified_name": "keen::ds::ecs::ColliderResponseFlags", + "referenced_type_name": "keen::ecs::ColliderResponseFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1718546658, + "hash2": 4263632539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionType", + "type_name_2": "ecs.CollisionType", + "qualified_name": "keen::ds::ecs::CollisionType", + "referenced_type_name": "keen::ecs::CollisionType", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Typedef", + "hash1": 825933560, + "hash2": 3226913021, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseResourceEntry", + "type_name_2": "ecs.ColliderResponseResourceEntry", + "qualified_name": "keen::ds::ecs::ColliderResponseResourceEntry", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3923093473, + "hash2": 3432810092, + "struct_fields": [ + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 16 + }, + { + "name": "sfxDescription", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 32 + }, + { + "name": "vfxDescription", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 72 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 112 + }, + { + "name": "eulerOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 152 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 164 + }, + { + "name": "collisionType", + "type_name": "keen::ds::ecs::CollisionType", + "type_hash": 825933560, + "data_offset": 176 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 177 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::ColliderResponseFlags", + "type_hash": 1718546658, + "data_offset": 178 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ColliderResponseResourceEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ColliderResponseResourceEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2021994070, + "hash2": 3103043998, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponseResource", + "type_name_2": "ecs.ColliderResponseResource", + "qualified_name": "keen::ds::ecs::ColliderResponseResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2887792263, + "hash2": 1685263959, + "struct_fields": [ + { + "name": "responseEntries", + "type_name": "keen::DsArray", + "type_hash": 2021994070, + "data_offset": 0 + }, + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 40 + }, + { + "name": "templateDescription", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResponse", + "type_name_2": "ecs.ColliderResponse", + "qualified_name": "keen::ds::ecs::ColliderResponse", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 603373291, + "hash2": 2850510636, + "struct_fields": [ + { + "name": "collisionType", + "type_name": "keen::ds::ecs::CollisionType", + "type_hash": 825933560, + "data_offset": 0 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 4 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 20 + }, + { + "name": "eulerOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "applyLocally", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "overrideSlot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 63 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ColliderResourceData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ColliderResourceData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 640773983, + "hash2": 1610004844, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResourceComponent", + "type_name_2": "ecs.ColliderResourceComponent", + "qualified_name": "keen::ds::ecs::ColliderResourceComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4156494399, + "hash2": 2335547486, + "struct_fields": [ + { + "name": "colliders", + "type_name": "keen::DsArray", + "type_hash": 640773983, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CollisionFeedbackMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1760238368, + "hash2": 2793825900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackMaterialReference", + "type_name_2": "CollisionFeedbackMaterialReference", + "qualified_name": "keen::ds::CollisionFeedbackMaterialReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2110438552, + "hash2": 3977625692, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemId", + "type_name_2": "ItemId", + "qualified_name": "keen::ds::ItemId", + "referenced_type_name": "keen::ItemId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3072851893, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemInfo", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3662264903, + "hash2": 1965894694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemReference", + "type_name_2": "ItemReference", + "qualified_name": "keen::ds::ItemReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1082407109, + "hash2": 1887274947, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PropDamageSusceptibility", + "type_name_2": "PropDamageSusceptibility", + "qualified_name": "keen::ds::PropDamageSusceptibility", + "referenced_type_name": "keen::PropDamageSusceptibility", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2214423142, + "hash2": 3514391963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackMaterialComponent", + "type_name_2": "ecs.CollisionFeedbackMaterialComponent", + "qualified_name": "keen::ds::ecs::CollisionFeedbackMaterialComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2995951181, + "hash2": 784911834, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 20 + }, + { + "name": "propDamageSusceptibility", + "type_name": "keen::ds::PropDamageSusceptibility", + "type_hash": 2214423142, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderId", + "type_name_2": "ecs.ColliderId", + "qualified_name": "keen::ds::ecs::ColliderId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1408008385, + "hash2": 2094163528, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AbstractCollider", + "type_name_2": "ecs.AbstractCollider", + "qualified_name": "keen::ds::ecs::AbstractCollider", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1489997262, + "hash2": 3350013618, + "struct_fields": [ + { + "name": "toggleModifier", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 0 + }, + { + "name": "colliderId", + "type_name": "keen::ds::ecs::ColliderId", + "type_hash": 1408008385, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticCollider", + "type_name_2": "ecs.StaticCollider", + "qualified_name": "keen::ds::ecs::StaticCollider", + "referenced_type_name": "keen::ds::ecs::AbstractCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3708937678, + "hash2": 625326592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticClientCollider", + "type_name_2": "ecs.StaticClientCollider", + "qualified_name": "keen::ds::ecs::StaticClientCollider", + "referenced_type_name": "keen::ds::ecs::AbstractCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2934533733, + "hash2": 625326592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderMask", + "type_name_2": "ecs.ColliderMask", + "qualified_name": "keen::ds::ecs::ColliderMask", + "referenced_type_name": "keen::ecs::ColliderMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2685334588, + "hash2": 1552508631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderMode", + "type_name_2": "ecs.ColliderMode", + "qualified_name": "keen::ds::ecs::ColliderMode", + "referenced_type_name": "keen::ecs::ColliderMode", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Typedef", + "hash1": 3564049775, + "hash2": 3530260631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Collider", + "type_name_2": "ecs.Collider", + "qualified_name": "keen::ds::ecs::Collider", + "referenced_type_name": "keen::ds::ecs::AbstractCollider", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1379145708, + "hash2": 855008398, + "struct_fields": [ + { + "name": "isPathBlocker", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "disabledCollisions", + "type_name": "keen::ds::ecs::ColliderMask", + "type_hash": 2685334588, + "data_offset": 20 + }, + { + "name": "activeColliderSetup", + "type_name": "keen::ds::ecs::ColliderMode", + "type_hash": 3564049775, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCollider", + "type_name_2": "ecs.ClientCollider", + "qualified_name": "keen::ds::ecs::ClientCollider", + "referenced_type_name": "keen::ds::ecs::AbstractCollider", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3645713051, + "hash2": 625326592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSpawnType", + "type_name_2": "ecs.PlayerSpawnType", + "qualified_name": "keen::ds::ecs::PlayerSpawnType", + "referenced_type_name": "keen::ecs::PlayerSpawnType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4204374760, + "hash2": 332865384, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.Offset[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::Offset", + "class_size": 200, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 560661564, + "hash2": 466547137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSpawnPoint", + "type_name_2": "ecs.PlayerSpawnPoint", + "qualified_name": "keen::ds::ecs::PlayerSpawnPoint", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 204, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2002307382, + "hash2": 939677150, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ds::ecs::PlayerSpawnType", + "type_hash": 4204374760, + "data_offset": 0 + }, + { + "name": "landingPads", + "type_name": "keen::StaticArray", + "type_hash": 560661564, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryId", + "type_name_2": "ecs.QueryId", + "qualified_name": "keen::ds::ecs::QueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2670909649, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsPlayerInSight", + "type_name_2": "ecs.IsPlayerInSight", + "qualified_name": "keen::ds::ecs::IsPlayerInSight", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2547350123, + "hash2": 1733646556, + "struct_fields": [ + { + "name": "isInSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 4 + }, + { + "name": "nextQueryUpdate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sourceOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + }, + { + "name": "targetOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocalPlayerMask", + "type_name_2": "ecs.LocalPlayerMask", + "qualified_name": "keen::ds::ecs::LocalPlayerMask", + "referenced_type_name": "keen::ecs::LocalPlayerMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1991355690, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsLocalPlayerInRange", + "type_name_2": "ecs.IsLocalPlayerInRange", + "qualified_name": "keen::ds::ecs::IsLocalPlayerInRange", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2940698354, + "hash2": 2353905344, + "struct_fields": [ + { + "name": "rangeMargin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "arePlayersInRangeMask", + "type_name": "keen::ds::ecs::LocalPlayerMask", + "type_hash": 1991355690, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerShapeType", + "type_name_2": "ecs.TriggerShapeType", + "qualified_name": "keen::ds::ecs::TriggerShapeType", + "referenced_type_name": "keen::ecs::TriggerShapeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2228772257, + "hash2": 4016636613, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TriggerShape", + "type_name_2": "ecs.TriggerShape", + "qualified_name": "keen::ds::ecs::TriggerShape", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2329960553, + "hash2": 34587336, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::ecs::TriggerShapeType", + "type_hash": 2228772257, + "data_offset": 0 + }, + { + "name": "rangeX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "rangeY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "rangeZ", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloorMaterialShape", + "type_name_2": "FloorMaterialShape", + "qualified_name": "keen::ds::FloorMaterialShape", + "referenced_type_name": "keen::FloorMaterialShape", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 3156412663, + "hash2": 951761826, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BaseVoxelMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2732519224, + "hash2": 2862255911, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloorMaterial", + "type_name_2": "ecs.FloorMaterial", + "qualified_name": "keen::ds::ecs::FloorMaterial", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1250997491, + "hash2": 2569720321, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 2732519224, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "shape", + "type_name": "keen::ds::FloorMaterialShape", + "type_hash": 3156412663, + "data_offset": 20 + }, + { + "name": "noiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TriggerShape[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TriggerShape", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2048924184, + "hash2": 2152587993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TriggerShapes", + "type_name_2": "ecs.TriggerShapes", + "qualified_name": "keen::ds::ecs::TriggerShapes", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3107408110, + "hash2": 2520547822, + "struct_fields": [ + { + "name": "shapes", + "type_name": "keen::DsArray", + "type_hash": 2048924184, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogResistanceState", + "type_name_2": "ecs.FogResistanceState", + "qualified_name": "keen::ds::ecs::FogResistanceState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3322551198, + "hash2": 348735389, + "struct_fields": [ + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AudioResourceComponent", + "type_name_2": "ecs.AudioResourceComponent", + "qualified_name": "keen::ds::ecs::AudioResourceComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3959884873, + "hash2": 292487097, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AudioComponent", + "type_name_2": "ecs.AudioComponent", + "qualified_name": "keen::ds::ecs::AudioComponent", + "referenced_type_name": "keen::ds::ecs::FxComponent", + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3734814913, + "hash2": 1065260771, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 12 + }, + { + "name": "stopOnDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "attachToParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 54 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AudioComponentVolatile", + "type_name_2": "ecs.AudioComponentVolatile", + "qualified_name": "keen::ds::ecs::AudioComponentVolatile", + "referenced_type_name": "keen::ds::ecs::AudioComponent", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 176583561, + "hash2": 2265559479, + "struct_fields": [ + { + "name": "lastSoundContainer", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientQueryId", + "type_name_2": "ecs.AmbientQueryId", + "qualified_name": "keen::ds::ecs::AmbientQueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 609120737, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSystemQuery", + "type_name_2": "ecs.AmbientSystemQuery", + "qualified_name": "keen::ds::ecs::AmbientSystemQuery", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3551700063, + "hash2": 352919125, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::AmbientQueryId", + "type_hash": 609120737, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagId", + "type_name_2": "LocaTagId", + "qualified_name": "keen::ds::LocaTagId", + "referenced_type_name": "keen::LocaTagId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 81225915, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiInteractable", + "type_name_2": "ecs.UiInteractable", + "qualified_name": "keen::ds::ecs::UiInteractable", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2675784500, + "hash2": 2387020804, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "verbId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 4 + }, + { + "name": "hintRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryTest", + "type_name_2": "ecs.QueryTest", + "qualified_name": "keen::ds::ecs::QueryTest", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 488454360, + "hash2": 2311994742, + "struct_fields": [ + { + "name": "queryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DespawnLink", + "type_name_2": "ecs.DespawnLink", + "qualified_name": "keen::ds::ecs::DespawnLink", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1757829598, + "hash2": 4213786230, + "struct_fields": [ + { + "name": "parentEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "despawnOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Transform", + "type_name_2": "ecs.Transform", + "qualified_name": "keen::ds::ecs::Transform", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2200155012, + "hash2": 3570692184, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurrentTransform", + "type_name_2": "ecs.CurrentTransform", + "qualified_name": "keen::ds::ecs::CurrentTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3276400307, + "hash2": 1855930734, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTransform", + "type_name_2": "ecs.RenderTransform", + "qualified_name": "keen::ds::ecs::RenderTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 176, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3732571044, + "hash2": 3771653943, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "interpolationSource", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 56 + }, + { + "name": "interpolationTarget", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 112 + }, + { + "name": "interpolationNewestTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientTags", + "type_name_2": "AmbientTags", + "qualified_name": "keen::ds::AmbientTags", + "referenced_type_name": "keen::AmbientTags", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Typedef", + "hash1": 3442007732, + "hash2": 3754809676, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetDataBreakPointMessage", + "type_name_2": "ecs.SetDataBreakPointMessage", + "qualified_name": "keen::ds::ecs::SetDataBreakPointMessage", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2800504790, + "hash2": 2453010378, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "dynamicType", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 10 + }, + { + "name": "write", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComponentMessageEntry", + "type_name_2": "ecs.ComponentMessageEntry", + "qualified_name": "keen::ds::ecs::ComponentMessageEntry", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1146527870, + "hash2": 2392286851, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "dynamicType", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + }, + { + "name": "templateType", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 44 + }, + { + "name": "affinity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 48 + }, + { + "name": "queryAffinity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ComponentMessageEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ComponentMessageEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2747133271, + "hash2": 608338288, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ComponentMessage", + "type_name_2": "ecs.ComponentMessage", + "qualified_name": "keen::ds::ecs::ComponentMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 350343494, + "hash2": 2442183568, + "struct_fields": [ + { + "name": "components", + "type_name": "keen::DsArray", + "type_hash": 2747133271, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EcsComponentsMask", + "type_name_2": "ecs.EcsComponentsMask", + "qualified_name": "keen::ds::ecs::EcsComponentsMask", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 820245341, + "hash2": 2258408449, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::StaticArray", + "type_hash": 3102136493, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EcsSystemsMask", + "type_name_2": "ecs.EcsSystemsMask", + "qualified_name": "keen::ds::ecs::EcsSystemsMask", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4140962585, + "hash2": 449878329, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EcsEventsMask", + "type_name_2": "ecs.EcsEventsMask", + "qualified_name": "keen::ds::ecs::EcsEventsMask", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 54145836, + "hash2": 1898865111, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::StaticArray", + "type_hash": 3066756874, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateMessageEntry", + "type_name_2": "ecs.TemplateMessageEntry", + "qualified_name": "keen::ds::ecs::TemplateMessageEntry", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 994867943, + "hash2": 242464133, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + }, + { + "name": "componentsMask", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TemplateMessageEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TemplateMessageEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3979743918, + "hash2": 1480669892, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateMessage", + "type_name_2": "ecs.TemplateMessage", + "qualified_name": "keen::ds::ecs::TemplateMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1363853577, + "hash2": 1189517174, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::DsArray", + "type_hash": 3979743918, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityMessageEntry", + "type_name_2": "ecs.EntityMessageEntry", + "qualified_name": "keen::ds::ecs::EntityMessageEntry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2734462530, + "hash2": 1667494644, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "templateIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.EntityMessageEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::EntityMessageEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4209054441, + "hash2": 4002074186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TotalEntityMessage", + "type_name_2": "ecs.TotalEntityMessage", + "qualified_name": "keen::ds::ecs::TotalEntityMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1001845592, + "hash2": 1801206553, + "struct_fields": [ + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 4209054441, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeEntityMessage", + "type_name_2": "ecs.ChangeEntityMessage", + "qualified_name": "keen::ds::ecs::ChangeEntityMessage", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1528537298, + "hash2": 3686320479, + "struct_fields": [ + { + "name": "createdEntities", + "type_name": "keen::DsArray", + "type_hash": 4209054441, + "data_offset": 0 + }, + { + "name": "destroyedEntities", + "type_name": "keen::DsArray", + "type_hash": 4209054441, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TickMessage", + "type_name_2": "ecs.TickMessage", + "qualified_name": "keen::ds::ecs::TickMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2917585236, + "hash2": 2334198112, + "struct_fields": [ + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "entitiesAdded", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entitiesRemoved", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "eventCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "messageCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfoComponentDependencies", + "type_name_2": "ecs.ProgramInfoComponentDependencies", + "qualified_name": "keen::ds::ecs::ProgramInfoComponentDependencies", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2299936962, + "hash2": 3067734039, + "struct_fields": [ + { + "name": "required", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 0 + }, + { + "name": "optional", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfoDependencies", + "type_name_2": "ecs.ProgramInfoDependencies", + "qualified_name": "keen::ds::ecs::ProgramInfoDependencies", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2873982597, + "hash2": 1072001718, + "struct_fields": [ + { + "name": "components", + "type_name": "keen::ds::ecs::ProgramInfoComponentDependencies", + "type_hash": 2299936962, + "data_offset": 0 + }, + { + "name": "templateComponents", + "type_name": "keen::ds::ecs::ProgramInfoComponentDependencies", + "type_hash": 2299936962, + "data_offset": 144 + }, + { + "name": "externalSystems", + "type_name": "keen::ds::ecs::EcsSystemsMask", + "type_hash": 4140962585, + "data_offset": 288 + }, + { + "name": "entityComponents", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 296 + }, + { + "name": "entityTemplates", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 368 + }, + { + "name": "events", + "type_name": "keen::ds::ecs::EcsEventsMask", + "type_hash": 54145836, + "data_offset": 440 + }, + { + "name": "isThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 456 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfoReadWriteDependency", + "type_name_2": "ecs.ProgramInfoReadWriteDependency", + "qualified_name": "keen::ds::ecs::ProgramInfoReadWriteDependency", + "referenced_type_name": null, + "class_size": 1072, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 575116078, + "hash2": 1033503495, + "struct_fields": [ + { + "name": "read", + "type_name": "keen::ds::ecs::ProgramInfoDependencies", + "type_hash": 2873982597, + "data_offset": 0 + }, + { + "name": "write", + "type_name": "keen::ds::ecs::ProgramInfoDependencies", + "type_hash": 2873982597, + "data_offset": 464 + }, + { + "name": "forbiddenComponents", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 928 + }, + { + "name": "requiredComponents", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 1000 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramId", + "type_name_2": "ecs.ProgramId", + "qualified_name": "keen::ds::ecs::ProgramId", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1998100361, + "hash2": 3239020597, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProgramInfo", + "type_name_2": "ecs.ProgramInfo", + "qualified_name": "keen::ds::ecs::ProgramInfo", + "referenced_type_name": null, + "class_size": 1128, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3151947352, + "hash2": 1844562398, + "struct_fields": [ + { + "name": "programId", + "type_name": "keen::ds::ecs::ProgramId", + "type_hash": 1998100361, + "data_offset": 0 + }, + { + "name": "programName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 8 + }, + { + "name": "isPresentation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "isDisabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + }, + { + "name": "isSystem", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 50 + }, + { + "name": "isInit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 51 + }, + { + "name": "noPrediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "isDeactivated", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "isDeactivatedPrediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 54 + }, + { + "name": "dependencies", + "type_name": "keen::ds::ecs::ProgramInfoReadWriteDependency", + "type_hash": 575116078, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ProgramInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ProgramInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2586639321, + "hash2": 3009885134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ProgramsMessage", + "type_name_2": "ecs.ProgramsMessage", + "qualified_name": "keen::ds::ecs::ProgramsMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1772915412, + "hash2": 699876151, + "struct_fields": [ + { + "name": "programs", + "type_name": "keen::DsArray", + "type_hash": 2586639321, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EventTypesMessageEntry", + "type_name_2": "ecs.EventTypesMessageEntry", + "qualified_name": "keen::ds::ecs::EventTypesMessageEntry", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 297226908, + "hash2": 2962153764, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 40 + }, + { + "name": "serverRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "serverWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "clientRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "clientWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.EventTypesMessageEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::EventTypesMessageEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 440145495, + "hash2": 1679325979, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EventTypesMessage", + "type_name_2": "ecs.EventTypesMessage", + "qualified_name": "keen::ds::ecs::EventTypesMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 643281144, + "hash2": 2492667990, + "struct_fields": [ + { + "name": "events", + "type_name": "keen::DsArray", + "type_hash": 440145495, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExternalSystemsMessageEntry", + "type_name_2": "ecs.ExternalSystemsMessageEntry", + "qualified_name": "keen::ds::ecs::ExternalSystemsMessageEntry", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3550918750, + "hash2": 1007838968, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "readThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "writeThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + }, + { + "name": "serverRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "serverWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "clientRead", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "clientWrite", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ExternalSystemsMessageEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ExternalSystemsMessageEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1062707647, + "hash2": 2905563518, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExternalSystemsMessage", + "type_name_2": "ecs.ExternalSystemsMessage", + "qualified_name": "keen::ds::ecs::ExternalSystemsMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1674013926, + "hash2": 2408759172, + "struct_fields": [ + { + "name": "systems", + "type_name": "keen::DsArray", + "type_hash": 1062707647, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TaskSlotsMessageProgram", + "type_name_2": "ecs.TaskSlotsMessageProgram", + "qualified_name": "keen::ds::ecs::TaskSlotsMessageProgram", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2897797507, + "hash2": 102579566, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "storageCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "chunkCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "entityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TaskSlotsMessageProgram[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TaskSlotsMessageProgram", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 960996456, + "hash2": 2578605921, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TaskSlotsMessageEntry", + "type_name_2": "ecs.TaskSlotsMessageEntry", + "qualified_name": "keen::ds::ecs::TaskSlotsMessageEntry", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2609310059, + "hash2": 2891945824, + "struct_fields": [ + { + "name": "componentsRead", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 0 + }, + { + "name": "componentsWrite", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 72 + }, + { + "name": "systemsRead", + "type_name": "keen::ds::ecs::EcsSystemsMask", + "type_hash": 4140962585, + "data_offset": 144 + }, + { + "name": "systemsWrite", + "type_name": "keen::ds::ecs::EcsSystemsMask", + "type_hash": 4140962585, + "data_offset": 152 + }, + { + "name": "entitiesRead", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 160 + }, + { + "name": "entitiesWrite", + "type_name": "keen::ds::ecs::EcsComponentsMask", + "type_hash": 820245341, + "data_offset": 232 + }, + { + "name": "isThreadSafe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 304 + }, + { + "name": "programs", + "type_name": "keen::DsArray", + "type_hash": 960996456, + "data_offset": 312 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TaskSlotsMessageEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TaskSlotsMessageEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 200506224, + "hash2": 2551778187, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TaskSlotsMessage", + "type_name_2": "ecs.TaskSlotsMessage", + "qualified_name": "keen::ds::ecs::TaskSlotsMessage", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1274442733, + "hash2": 1203076016, + "struct_fields": [ + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 200506224, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SendTaskSlotsMessage", + "type_name_2": "ecs.SendTaskSlotsMessage", + "qualified_name": "keen::ds::ecs::SendTaskSlotsMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3167141483, + "hash2": 1935913025, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartEntityUpdateMessage", + "type_name_2": "ecs.StartEntityUpdateMessage", + "qualified_name": "keen::ds::ecs::StartEntityUpdateMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3189713325, + "hash2": 2954624264, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopEntityUpdateMessage", + "type_name_2": "ecs.StopEntityUpdateMessage", + "qualified_name": "keen::ds::ecs::StopEntityUpdateMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 477543009, + "hash2": 2954624264, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityComponentEntry", + "type_name_2": "ecs.EntityComponentEntry", + "qualified_name": "keen::ds::ecs::EntityComponentEntry", + "referenced_type_name": null, + "class_size": 6, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3892156678, + "hash2": 2423561260, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.EntityComponentEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::EntityComponentEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 473560585, + "hash2": 311543975, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "uint64[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::uint64", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 366634009, + "hash2": 1522504461, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityComponentMessage", + "type_name_2": "ecs.EntityComponentMessage", + "qualified_name": "keen::ds::ecs::EntityComponentMessage", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1318130941, + "hash2": 3394555390, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "components", + "type_name": "keen::DsArray", + "type_hash": 473560585, + "data_offset": 8 + }, + { + "name": "buffer", + "type_name": "keen::DsArray", + "type_hash": 366634009, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTemplateMessage", + "type_name_2": "ecs.EntityTemplateMessage", + "qualified_name": "keen::ds::ecs::EntityTemplateMessage", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 803465672, + "hash2": 3947064425, + "struct_fields": [ + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "templateData", + "type_name": "keen::DsArray", + "type_hash": 366634009, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.EntityId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 978468837, + "hash2": 3054095861, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StartTimelineMessage", + "type_name_2": "ecs.StartTimelineMessage", + "qualified_name": "keen::ds::ecs::StartTimelineMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 71796294, + "hash2": 4222818662, + "struct_fields": [ + { + "name": "entityIds", + "type_name": "keen::DsArray", + "type_hash": 978468837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopTimelineMessage", + "type_name_2": "ecs.StopTimelineMessage", + "qualified_name": "keen::ds::ecs::StopTimelineMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1653617194, + "hash2": 1935913025, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdjustTick", + "type_name_2": "ecs.AdjustTick", + "qualified_name": "keen::ds::ecs::AdjustTick", + "referenced_type_name": "keen::ecs::AdjustTick", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3263474790, + "hash2": 855351105, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineFrameMessage", + "type_name_2": "ecs.TimelineFrameMessage", + "qualified_name": "keen::ds::ecs::TimelineFrameMessage", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3723215527, + "hash2": 1323312213, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "systemTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastSystemTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "tickCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "currentTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "lastTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "frameDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "frameTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "nextTickTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "tickInterpolationFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "adjustTick", + "type_name": "keen::ds::ecs::AdjustTick", + "type_hash": 3263474790, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UpdateGameTimeMessage", + "type_name_2": "ecs.UpdateGameTimeMessage", + "qualified_name": "keen::ds::ecs::UpdateGameTimeMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 93918257, + "hash2": 2072246051, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugQueryMessage", + "type_name_2": "ecs.DebugQueryMessage", + "qualified_name": "keen::ds::ecs::DebugQueryMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2793142132, + "hash2": 352919125, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityStateComponent", + "type_name_2": "ecs.EntityStateComponent", + "qualified_name": "keen::ds::ecs::EntityStateComponent", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2085942195, + "hash2": 110740880, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "offset0", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "offset1", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityStateData", + "type_name_2": "ecs.TimelineEntityStateData", + "qualified_name": "keen::ds::ecs::TimelineEntityStateData", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2267980825, + "hash2": 3076391585, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "gridCellId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "dirtyValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "dataTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "isCulled", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 76 + }, + { + "name": "isCulledPrediction", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 78 + }, + { + "name": "playerMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.EntityStateComponent[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::EntityStateComponent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 255625422, + "hash2": 2907108333, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityState", + "type_name_2": "ecs.TimelineEntityState", + "qualified_name": "keen::ds::ecs::TimelineEntityState", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4088865897, + "hash2": 3335419922, + "struct_fields": [ + { + "name": "entity0", + "type_name": "keen::ds::ecs::TimelineEntityStateData", + "type_hash": 2267980825, + "data_offset": 0 + }, + { + "name": "entity1", + "type_name": "keen::ds::ecs::TimelineEntityStateData", + "type_hash": 2267980825, + "data_offset": 88 + }, + { + "name": "components", + "type_name": "keen::DsArray", + "type_hash": 255625422, + "data_offset": 176 + }, + { + "name": "buffer", + "type_name": "keen::DsArray", + "type_hash": 366634009, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineSystemCounts", + "type_name_2": "ecs.TimelineSystemCounts", + "qualified_name": "keen::ds::ecs::TimelineSystemCounts", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 386102974, + "hash2": 3338445672, + "struct_fields": [ + { + "name": "entities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sceneEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "activeSceneChunks", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineCamera", + "type_name_2": "ecs.TimelineCamera", + "qualified_name": "keen::ds::ecs::TimelineCamera", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 725848412, + "hash2": 1334860837, + "struct_fields": [ + { + "name": "transform0", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "transform1", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TimelineEntityState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TimelineEntityState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1089367894, + "hash2": 2343315670, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineSystemUpdateMessage", + "type_name_2": "ecs.TimelineSystemUpdateMessage", + "qualified_name": "keen::ds::ecs::TimelineSystemUpdateMessage", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3634886514, + "hash2": 3649757314, + "struct_fields": [ + { + "name": "time0", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "time1", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "frameTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "frameDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "lastTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "tickFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "startCounts", + "type_name": "keen::ds::ecs::TimelineSystemCounts", + "type_hash": 386102974, + "data_offset": 44 + }, + { + "name": "endCounts", + "type_name": "keen::ds::ecs::TimelineSystemCounts", + "type_hash": 386102974, + "data_offset": 56 + }, + { + "name": "createdEntities", + "type_name": "keen::DsArray", + "type_hash": 4209054441, + "data_offset": 72 + }, + { + "name": "destroyedEntities", + "type_name": "keen::DsArray", + "type_hash": 4209054441, + "data_offset": 112 + }, + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 1089367894, + "data_offset": 152 + }, + { + "name": "camera", + "type_name": "keen::ds::ecs::TimelineCamera", + "type_hash": 725848412, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationPriorityEntry", + "type_name_2": "ecs.TimelineReplicationPriorityEntry", + "qualified_name": "keen::ds::ecs::TimelineReplicationPriorityEntry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1529334621, + "hash2": 540485162, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "priority", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TimelineReplicationPriorityEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TimelineReplicationPriorityEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3280410028, + "hash2": 3248638052, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationPriorityMessage", + "type_name_2": "ecs.TimelineReplicationPriorityMessage", + "qualified_name": "keen::ds::ecs::TimelineReplicationPriorityMessage", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3199470890, + "hash2": 777867956, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "clientEntries", + "type_name": "keen::DsArray", + "type_hash": 3280410028, + "data_offset": 16 + }, + { + "name": "predictionEntries", + "type_name": "keen::DsArray", + "type_hash": 3280410028, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntitySkipReason", + "type_name_2": "ecs.TimelineEntitySkipReason", + "qualified_name": "keen::ds::ecs::TimelineEntitySkipReason", + "referenced_type_name": "keen::ecs::TimelineEntitySkipReason", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2515389519, + "hash2": 2492902046, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntitySkipMessage", + "type_name_2": "ecs.TimelineEntitySkipMessage", + "qualified_name": "keen::ds::ecs::TimelineEntitySkipMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 445501138, + "hash2": 2274396318, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "reason", + "type_name": "keen::ds::ecs::TimelineEntitySkipReason", + "type_hash": 2515389519, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntitySendMessage", + "type_name_2": "ecs.TimelineEntitySendMessage", + "qualified_name": "keen::ds::ecs::TimelineEntitySendMessage", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 382362801, + "hash2": 3983847265, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "create", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "messageData", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityRecvMessage", + "type_name_2": "ecs.TimelineEntityRecvMessage", + "qualified_name": "keen::ds::ecs::TimelineEntityRecvMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 189681051, + "hash2": 2400107157, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "create", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineEntityProcessMessage", + "type_name_2": "ecs.TimelineEntityProcessMessage", + "qualified_name": "keen::ds::ecs::TimelineEntityProcessMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3240489440, + "hash2": 2400107157, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "prediction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "create", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineInputSendMessage", + "type_name_2": "ecs.TimelineInputSendMessage", + "qualified_name": "keen::ds::ecs::TimelineInputSendMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2431870754, + "hash2": 1435023992, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineInputRecvMessage", + "type_name_2": "ecs.TimelineInputRecvMessage", + "qualified_name": "keen::ds::ecs::TimelineInputRecvMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1876035576, + "hash2": 1435023992, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationComponent", + "type_name_2": "ecs.TimelineReplicationComponent", + "qualified_name": "keen::ds::ecs::TimelineReplicationComponent", + "referenced_type_name": null, + "class_size": 6, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2323963926, + "hash2": 2585086176, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "deltaSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TimelineReplicationComponent[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TimelineReplicationComponent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3776299161, + "hash2": 3522714121, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationTemplate", + "type_name_2": "ecs.TimelineReplicationTemplate", + "qualified_name": "keen::ds::ecs::TimelineReplicationTemplate", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4011101033, + "hash2": 3898592405, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "checkedEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "updatedEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "components", + "type_name": "keen::DsArray", + "type_hash": 3776299161, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationEvent", + "type_name_2": "ecs.TimelineReplicationEvent", + "qualified_name": "keen::ds::ecs::TimelineReplicationEvent", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3656964617, + "hash2": 3486796529, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TimelineReplicationTemplate[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TimelineReplicationTemplate", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1266141914, + "hash2": 3154033247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TimelineReplicationEvent[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TimelineReplicationEvent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1181702028, + "hash2": 3891732034, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationStatisticsData", + "type_name_2": "ecs.TimelineReplicationStatisticsData", + "qualified_name": "keen::ds::ecs::TimelineReplicationStatisticsData", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2585124760, + "hash2": 3274613999, + "struct_fields": [ + { + "name": "prioQueueSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "dirtyEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "changedEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "createdEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "destroyedEntities", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "messageCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "messageSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "totalEventCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "totalEventSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "templates", + "type_name": "keen::DsArray", + "type_hash": 1266141914, + "data_offset": 40 + }, + { + "name": "events", + "type_name": "keen::DsArray", + "type_hash": 1181702028, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelineReplicationStatisticsMessage", + "type_name_2": "ecs.TimelineReplicationStatisticsMessage", + "qualified_name": "keen::ds::ecs::TimelineReplicationStatisticsMessage", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2107994599, + "hash2": 1676928290, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "playerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "client", + "type_name": "keen::ds::ecs::TimelineReplicationStatisticsData", + "type_hash": 2585124760, + "data_offset": 16 + }, + { + "name": "prediction", + "type_name": "keen::ds::ecs::TimelineReplicationStatisticsData", + "type_hash": 2585124760, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelinePredictionEntityState", + "type_name_2": "ecs.TimelinePredictionEntityState", + "qualified_name": "keen::ds::ecs::TimelinePredictionEntityState", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 565897346, + "hash2": 898591234, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "dataTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "isDirty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "isDestroyed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "components", + "type_name": "keen::DsArray", + "type_hash": 473560585, + "data_offset": 16 + }, + { + "name": "buffer", + "type_name": "keen::DsArray", + "type_hash": 366634009, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TimelinePredictionEntityState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TimelinePredictionEntityState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1580511427, + "hash2": 451636330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TimelinePredictionUpdateMessage", + "type_name_2": "ecs.TimelinePredictionUpdateMessage", + "qualified_name": "keen::ds::ecs::TimelinePredictionUpdateMessage", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1021618386, + "hash2": 925538581, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "startTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "clientTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "lastTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "sourceTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 1580511427, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimelinePredictionTickMessage", + "type_name_2": "ecs.TimelinePredictionTickMessage", + "qualified_name": "keen::ds::ecs::TimelinePredictionTickMessage", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3623819542, + "hash2": 1352447290, + "struct_fields": [ + { + "name": "time0", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "time1", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 1580511427, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCellEntity", + "type_name_2": "ecs.SceneCellEntity", + "qualified_name": "keen::ds::ecs::SceneCellEntity", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3543004439, + "hash2": 3781762973, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "templateIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "clientCulledMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "predictionCulledMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "isUncullable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "hasPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "isDynamic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SceneCellEntity[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SceneCellEntity", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3766182056, + "hash2": 838140905, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCellMessage", + "type_name_2": "ecs.SceneCellMessage", + "qualified_name": "keen::ds::ecs::SceneCellMessage", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 125139083, + "hash2": 3216114537, + "struct_fields": [ + { + "name": "cellPosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "cellIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 3766182056, + "data_offset": 16 + }, + { + "name": "sceneEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneChunkState", + "type_name_2": "ecs.SceneChunkState", + "qualified_name": "keen::ds::ecs::SceneChunkState", + "referenced_type_name": "keen::ecs::SceneChunkState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4115000606, + "hash2": 1546770610, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneChunkEntry", + "type_name_2": "ecs.SceneChunkEntry", + "qualified_name": "keen::ds::ecs::SceneChunkEntry", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4071276443, + "hash2": 3525504055, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::ecs::SceneChunkState", + "type_hash": 4115000606, + "data_offset": 0 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "entityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "destroyedEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "unloadAge", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SceneChunkEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SceneChunkEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2072914728, + "hash2": 1038769904, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneChunksMessage", + "type_name_2": "ecs.SceneChunksMessage", + "qualified_name": "keen::ds::ecs::SceneChunksMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3853293009, + "hash2": 2341166217, + "struct_fields": [ + { + "name": "chunks", + "type_name": "keen::DsArray", + "type_hash": 2072914728, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneZoneBox", + "type_name_2": "ecs.SceneZoneBox", + "qualified_name": "keen::ds::ecs::SceneZoneBox", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1705445075, + "hash2": 2556180932, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SceneZoneBox[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SceneZoneBox", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2792628494, + "hash2": 3128612564, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneBuildZonesMessage", + "type_name_2": "ecs.SceneBuildZonesMessage", + "qualified_name": "keen::ds::ecs::SceneBuildZonesMessage", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1119890478, + "hash2": 3156490809, + "struct_fields": [ + { + "name": "allowedZones", + "type_name": "keen::DsArray", + "type_hash": 2792628494, + "data_offset": 0 + }, + { + "name": "forbiddenZones", + "type_name": "keen::DsArray", + "type_hash": 2792628494, + "data_offset": 40 + }, + { + "name": "activeZones", + "type_name": "keen::DsArray", + "type_hash": 2792628494, + "data_offset": 80 + }, + { + "name": "playableZones", + "type_name": "keen::DsArray", + "type_hash": 2792628494, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneMessage", + "type_name_2": "ecs.SceneMessage", + "qualified_name": "keen::ds::ecs::SceneMessage", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1372620183, + "hash2": 776022433, + "struct_fields": [ + { + "name": "sceneGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "sceneChunkSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "entityGridSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "entityGridCellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneControlMessageType", + "type_name_2": "ecs.SceneControlMessageType", + "qualified_name": "keen::ds::ecs::SceneControlMessageType", + "referenced_type_name": "keen::ecs::SceneControlMessageType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 235357644, + "hash2": 3752359083, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneControlMessage", + "type_name_2": "ecs.SceneControlMessage", + "qualified_name": "keen::ds::ecs::SceneControlMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2836328164, + "hash2": 2002882345, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::ecs::SceneControlMessageType", + "type_hash": 235357644, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "float2[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::float2", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2652853279, + "hash2": 4179773848, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneHotPointsMessage", + "type_name_2": "ecs.SceneHotPointsMessage", + "qualified_name": "keen::ds::ecs::SceneHotPointsMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1055631855, + "hash2": 3237681335, + "struct_fields": [ + { + "name": "hotPoints", + "type_name": "keen::DsArray", + "type_hash": 2652853279, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneHotPointsFile", + "type_name_2": "ecs.SceneHotPointsFile", + "qualified_name": "keen::ds::ecs::SceneHotPointsFile", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2453656686, + "hash2": 3237681335, + "struct_fields": [ + { + "name": "hotPoints", + "type_name": "keen::DsArray", + "type_hash": 2652853279, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayerCamera", + "type_name_2": "ecs.ScenePlayerCamera", + "qualified_name": "keen::ds::ecs::ScenePlayerCamera", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 836985214, + "hash2": 438593012, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "yRotation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ScenePlayerCamera[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::ScenePlayerCamera", + "class_size": 256, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 3006744675, + "hash2": 3874380362, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayerCamerasMessage", + "type_name_2": "ecs.ScenePlayerCamerasMessage", + "qualified_name": "keen::ds::ecs::ScenePlayerCamerasMessage", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1312261654, + "hash2": 3935665130, + "struct_fields": [ + { + "name": "cameras", + "type_name": "keen::StaticArray", + "type_hash": 3006744675, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneChunkResetMessage", + "type_name_2": "ecs.SceneChunkResetMessage", + "qualified_name": "keen::ds::ecs::SceneChunkResetMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1870248479, + "hash2": 3246602957, + "struct_fields": [ + { + "name": "chunkIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryFlags", + "type_name_2": "ecs.QueryFlags", + "qualified_name": "keen::ds::ecs::QueryFlags", + "referenced_type_name": "keen::ecs::QueryFlags", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1491675279, + "hash2": 2852785162, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneColliderQueryEntry", + "type_name_2": "ecs.SceneColliderQueryEntry", + "qualified_name": "keen::ds::ecs::SceneColliderQueryEntry", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1199058660, + "hash2": 641216330, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "programId", + "type_name": "keen::ds::ecs::ProgramId", + "type_hash": 1998100361, + "data_offset": 8 + }, + { + "name": "templateIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::QueryFlags", + "type_hash": 1491675279, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "colliderAabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 32 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 64 + }, + { + "name": "resultCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + }, + { + "name": "checkWorldTriangles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RangeQueryId", + "type_name_2": "ecs.RangeQueryId", + "qualified_name": "keen::ds::ecs::RangeQueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3652733094, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRangeQueryEntry", + "type_name_2": "ecs.SceneRangeQueryEntry", + "qualified_name": "keen::ds::ecs::SceneRangeQueryEntry", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 723358573, + "hash2": 1142334784, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "programId", + "type_name": "keen::ds::ecs::ProgramId", + "type_hash": 1998100361, + "data_offset": 8 + }, + { + "name": "templateIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "componentId", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 32 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 72 + }, + { + "name": "resultCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SceneColliderQueryEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SceneColliderQueryEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2672367077, + "hash2": 1233476084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SceneRangeQueryEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SceneRangeQueryEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1019090212, + "hash2": 3840034753, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneQueriesMessage", + "type_name_2": "ecs.SceneQueriesMessage", + "qualified_name": "keen::ds::ecs::SceneQueriesMessage", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1816897959, + "hash2": 922156655, + "struct_fields": [ + { + "name": "triangleQueryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "colliderQueries", + "type_name": "keen::DsArray", + "type_hash": 2672367077, + "data_offset": 8 + }, + { + "name": "rangeQueries", + "type_name": "keen::DsArray", + "type_hash": 1019090212, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimeControlMessage", + "type_name_2": "ecs.TimeControlMessage", + "qualified_name": "keen::ds::ecs::TimeControlMessage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 905676289, + "hash2": 2580032478, + "struct_fields": [ + { + "name": "tickDelta", + "type_name": "keen::sint16", + "type_hash": 1285853487, + "data_offset": 0 + }, + { + "name": "sleep", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sleepOnce", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyEntityMessage", + "type_name_2": "ecs.DestroyEntityMessage", + "qualified_name": "keen::ds::ecs::DestroyEntityMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1781617112, + "hash2": 2954624264, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::Template", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 678219975, + "hash2": 2695120807, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateReference", + "type_name_2": "ecs.TemplateReference", + "qualified_name": "keen::ds::ecs::TemplateReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1306919895, + "hash2": 807489489, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilterTemplateEntry", + "type_name_2": "HolisticMapFilterTemplateEntry", + "qualified_name": "keen::ds::HolisticMapFilterTemplateEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2661863248, + "hash2": 3220060687, + "struct_fields": [ + { + "name": "templateReference", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "showChildTemplates", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestState", + "type_name_2": "ecs.TestState", + "qualified_name": "keen::ds::ecs::TestState", + "referenced_type_name": "keen::ecs::TestState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1406462401, + "hash2": 2240469631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TestA", + "type_name_2": "ecs.TestA", + "qualified_name": "keen::ds::ecs::TestA", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 989723783, + "hash2": 248541072, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "stateB", + "type_name": "keen::ds::ecs::TestState", + "type_hash": 1406462401, + "data_offset": 12 + }, + { + "name": "stateC", + "type_name": "keen::ds::ecs::TestState", + "type_hash": 1406462401, + "data_offset": 13 + }, + { + "name": "stateD", + "type_name": "keen::ds::ecs::TestState", + "type_hash": 1406462401, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestB", + "type_name_2": "ecs.TestB", + "qualified_name": "keen::ds::ecs::TestB", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1006501402, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestC", + "type_name_2": "ecs.TestC", + "qualified_name": "keen::ds::ecs::TestC", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1023279021, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestD", + "type_name_2": "ecs.TestD", + "qualified_name": "keen::ds::ecs::TestD", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 905835688, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestTemplateA", + "type_name_2": "ecs.TestTemplateA", + "qualified_name": "keen::ds::ecs::TestTemplateA", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1931795909, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTestTemplateA", + "type_name_2": "ecs.DynamicTestTemplateA", + "qualified_name": "keen::ds::ecs::DynamicTestTemplateA", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2025296242, + "hash2": 4166791629, + "struct_fields": [ + { + "name": "defValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestTemplateB", + "type_name_2": "ecs.TestTemplateB", + "qualified_name": "keen::ds::ecs::TestTemplateB", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1881463052, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTestTemplateB", + "type_name_2": "ecs.DynamicTestTemplateB", + "qualified_name": "keen::ds::ecs::DynamicTestTemplateB", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2008518623, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTypeTestTemplate", + "type_name_2": "ecs.DynamicTypeTestTemplate", + "qualified_name": "keen::ds::ecs::DynamicTypeTestTemplate", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4280126719, + "hash2": 1341587613, + "struct_fields": [ + { + "name": "values", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBase", + "type_name_2": "ecs.TestBase", + "qualified_name": "keen::ds::ecs::TestBase", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1012240265, + "hash2": 3570984610, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicTestBase", + "type_name_2": "ecs.DynamicTestBase", + "qualified_name": "keen::ds::ecs::DynamicTestBase", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2087191052, + "hash2": 3841622627, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "notSave", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "mainEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "start", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntry", + "type_name_2": "ecs.TestBaseEntry", + "qualified_name": "keen::ds::ecs::TestBaseEntry", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4182591079, + "hash2": 255300104, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "spouseId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntryServer", + "type_name_2": "ecs.TestBaseEntryServer", + "qualified_name": "keen::ds::ecs::TestBaseEntryServer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3383615228, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntryTemplateClient", + "type_name_2": "ecs.TestBaseEntryTemplateClient", + "qualified_name": "keen::ds::ecs::TestBaseEntryTemplateClient", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 373328830, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntrySpawnClient", + "type_name_2": "ecs.TestBaseEntrySpawnClient", + "qualified_name": "keen::ds::ecs::TestBaseEntrySpawnClient", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4274577297, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestBaseEntryAddClient", + "type_name_2": "ecs.TestBaseEntryAddClient", + "qualified_name": "keen::ds::ecs::TestBaseEntryAddClient", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 957191489, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Event", + "type_name_2": "ecs.Event", + "qualified_name": "keen::ds::ecs::Event", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 529683200, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TestEvent1", + "type_name_2": "ecs.TestEvent1", + "qualified_name": "keen::ds::ecs::TestEvent1", + "referenced_type_name": "keen::ds::ecs::Event", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1580991679, + "hash2": 1872430613, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestEvent2", + "type_name_2": "ecs.TestEvent2", + "qualified_name": "keen::ds::ecs::TestEvent2", + "referenced_type_name": "keen::ds::ecs::Event", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1597769298, + "hash2": 1872430613, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestEventCreate", + "type_name_2": "ecs.TestEventCreate", + "qualified_name": "keen::ds::ecs::TestEventCreate", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1519717888, + "hash2": 2732046651, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GridId", + "type_name_2": "ecs.GridId", + "qualified_name": "keen::ds::ecs::GridId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1935925061, + "hash2": 2094163528, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryId", + "type_name_2": "ecs.PathQueryId", + "qualified_name": "keen::ds::ecs::PathQueryId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2909815120, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QueryFlag", + "type_name_2": "ecs.QueryFlag", + "qualified_name": "keen::ds::ecs::QueryFlag", + "referenced_type_name": "keen::ecs::QueryFlag", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Typedef", + "hash1": 370510566, + "hash2": 4097704143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "QueryResultFlag", + "type_name_2": "ecs.QueryResultFlag", + "qualified_name": "keen::ds::ecs::QueryResultFlag", + "referenced_type_name": "keen::ecs::QueryResultFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3713033975, + "hash2": 1664201208, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "QueryResultFlags", + "type_name_2": "ecs.QueryResultFlags", + "qualified_name": "keen::ds::ecs::QueryResultFlags", + "referenced_type_name": "keen::ecs::QueryResultFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3918619084, + "hash2": 3429382302, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionCheckFlag", + "type_name_2": "ecs.CollisionCheckFlag", + "qualified_name": "keen::ds::ecs::CollisionCheckFlag", + "referenced_type_name": "keen::ecs::CollisionCheckFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1045887658, + "hash2": 3204247010, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionCheckFlags", + "type_name_2": "ecs.CollisionCheckFlags", + "qualified_name": "keen::ds::ecs::CollisionCheckFlags", + "referenced_type_name": "keen::ecs::CollisionCheckFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4226605979, + "hash2": 1101761351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Template", + "type_name_2": "ecs.Template", + "qualified_name": "keen::ds::ecs::Template", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1278155202, + "hash2": 381031143, + "struct_fields": [ + { + "name": "predictEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "farCulling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "questEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 553, + "primitive_type": "DsVariant", + "hash1": 2691005196, + "hash2": 3024838576, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3448266459, + "hash2": 2919574693, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateResource", + "type_name_2": "ecs.TemplateResource", + "qualified_name": "keen::ds::ecs::TemplateResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4177384586, + "hash2": 2774462614, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "predictEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "farCulling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + }, + { + "name": "components", + "type_name": "keen::DsArray>", + "type_hash": 3448266459, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::TemplateResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2211194179, + "hash2": 1466118183, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateResourceReference", + "type_name_2": "ecs.TemplateResourceReference", + "qualified_name": "keen::ds::ecs::TemplateResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2516828895, + "hash2": 4013280964, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateSubDirectory", + "type_name_2": "ecs.TemplateSubDirectory", + "qualified_name": "keen::ds::ecs::TemplateSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4051218883, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateDirectory", + "type_name_2": "ecs.TemplateDirectory", + "qualified_name": "keen::ds::ecs::TemplateDirectory", + "referenced_type_name": "keen::ds::ecs::TemplateSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 196758497, + "hash2": 1796214361, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TemplateResourceReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TemplateResourceReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2684660936, + "hash2": 51822837, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateCollectionResource", + "type_name_2": "ecs.TemplateCollectionResource", + "qualified_name": "keen::ds::ecs::TemplateCollectionResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2704456762, + "hash2": 3307692909, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::DsArray", + "type_hash": 2684660936, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::TemplateCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2612335371, + "hash2": 21394067, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateCollectionReference", + "type_name_2": "ecs.TemplateCollectionReference", + "qualified_name": "keen::ds::ecs::TemplateCollectionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1371912871, + "hash2": 4140227246, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerInfo", + "type_name_2": "ecs.ServerInfo", + "qualified_name": "keen::ds::ecs::ServerInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3716226295, + "hash2": 3176264116, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "avgDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "sceneEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "dynamicEntityCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "sceneChunkCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "bandwidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFlags", + "type_name_2": "ecs.ColliderFlags", + "qualified_name": "keen::ds::ecs::ColliderFlags", + "referenced_type_name": "keen::ecs::ColliderFlags", + "class_size": 2, + "fields_count": 17, + "primitive_type": "Typedef", + "hash1": 2421469055, + "hash2": 2514020848, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFlagData", + "type_name_2": "ecs.ColliderFlagData", + "qualified_name": "keen::ds::ecs::ColliderFlagData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3057582678, + "hash2": 2168056516, + "struct_fields": [ + { + "name": "isA", + "type_name": "keen::ds::ecs::ColliderMask", + "type_hash": 2685334588, + "data_offset": 0 + }, + { + "name": "checkAgainst", + "type_name": "keen::ds::ecs::ColliderMask", + "type_hash": 2685334588, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderModeSetup", + "type_name_2": "ecs.ColliderModeSetup", + "qualified_name": "keen::ds::ecs::ColliderModeSetup", + "referenced_type_name": null, + "class_size": 7, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1081224688, + "hash2": 1211421298, + "struct_fields": [ + { + "name": "defaultMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "sitting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "lying", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "evading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "climbingWall", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "death", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "invisible", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderData", + "type_name_2": "ecs.ColliderData", + "qualified_name": "keen::ds::ecs::ColliderData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2535308948, + "hash2": 1929414066, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::ColliderFlagData", + "type_hash": 3057582678, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 24 + }, + { + "name": "stickyness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "colliderModeSetup", + "type_name": "keen::ds::ecs::ColliderModeSetup", + "type_hash": 1081224688, + "data_offset": 44 + }, + { + "name": "preventFallDamage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 51 + }, + { + "name": "isSnappingBox", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SphereColliderData", + "type_name_2": "ecs.SphereColliderData", + "qualified_name": "keen::ds::ecs::SphereColliderData", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3143898661, + "hash2": 2911214538, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::SphereColliderShape", + "type_hash": 382525167, + "data_offset": 56 + }, + { + "name": "continuous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpheroidColliderData", + "type_name_2": "ecs.SpheroidColliderData", + "qualified_name": "keen::ds::ecs::SpheroidColliderData", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 441866442, + "hash2": 2850001672, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::SpheroidColliderShape", + "type_hash": 1718765490, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CapsuleColliderData", + "type_name_2": "ecs.CapsuleColliderData", + "qualified_name": "keen::ds::ecs::CapsuleColliderData", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3852299891, + "hash2": 3976907803, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::CapsuleColliderShape", + "type_hash": 107891031, + "data_offset": 56 + }, + { + "name": "continuous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SegmentColliderData", + "type_name_2": "ecs.SegmentColliderData", + "qualified_name": "keen::ds::ecs::SegmentColliderData", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2866515017, + "hash2": 2762779913, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::SegmentColliderShape", + "type_hash": 3445041433, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovingSphereColliderData", + "type_name_2": "ecs.MovingSphereColliderData", + "qualified_name": "keen::ds::ecs::MovingSphereColliderData", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 76, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1832993487, + "hash2": 1935935126, + "struct_fields": [ + { + "name": "sphereShape", + "type_name": "keen::ds::SphereColliderShape", + "type_hash": 382525167, + "data_offset": 56 + }, + { + "name": "segmentShape", + "type_name": "keen::ds::SegmentColliderShape", + "type_hash": 3445041433, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoxColliderData", + "type_name_2": "ecs.BoxColliderData", + "qualified_name": "keen::ds::ecs::BoxColliderData", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3265316497, + "hash2": 3641532832, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::BoxColliderShape", + "type_hash": 786076089, + "data_offset": 56 + }, + { + "name": "continuous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LineSegment", + "type_name_2": "ecs.LineSegment", + "qualified_name": "keen::ds::ecs::LineSegment", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1240523507, + "hash2": 1908857753, + "struct_fields": [ + { + "name": "p0", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "p1", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.LineSegment[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::LineSegment", + "class_size": 128, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 103176837, + "hash2": 3420757440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SegmentBundleColliderData", + "type_name_2": "ecs.SegmentBundleColliderData", + "qualified_name": "keen::ds::ecs::SegmentBundleColliderData", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 192, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 49240161, + "hash2": 2758020379, + "struct_fields": [ + { + "name": "segments", + "type_name": "keen::StaticArray", + "type_hash": 103176837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::ecs::ColliderData", + "class_size": 48, + "fields_count": 8, + "primitive_type": "DsVariant", + "hash1": 3829067471, + "hash2": 304083722, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4164503428, + "hash2": 525072220, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderDataArray", + "type_name_2": "ecs.ColliderDataArray", + "qualified_name": "keen::ds::ecs::ColliderDataArray", + "referenced_type_name": "keen::DsArray>", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4258904265, + "hash2": 2603417491, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResolveFlag", + "type_name_2": "ecs.ColliderResolveFlag", + "qualified_name": "keen::ds::ecs::ColliderResolveFlag", + "referenced_type_name": "keen::ecs::ColliderResolveFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 324686442, + "hash2": 2756253941, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResolveMask", + "type_name_2": "ecs.ColliderResolveMask", + "qualified_name": "keen::ds::ecs::ColliderResolveMask", + "referenced_type_name": "keen::ecs::ColliderResolveMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 900591392, + "hash2": 1938774658, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderResourceData", + "type_name_2": "ecs.ColliderResourceData", + "qualified_name": "keen::ds::ecs::ColliderResourceData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3255136696, + "hash2": 453800355, + "struct_fields": [ + { + "name": "dataArray", + "type_name": "keen::ds::ecs::ColliderDataArray", + "type_hash": 4258904265, + "data_offset": 0 + }, + { + "name": "combinedFlags", + "type_name": "keen::ds::ecs::ColliderFlagData", + "type_hash": 3057582678, + "data_offset": 40 + }, + { + "name": "resolveMask", + "type_name": "keen::ds::ecs::ColliderResolveMask", + "type_hash": 900591392, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionEvent", + "type_name_2": "ecs.CollisionEvent", + "qualified_name": "keen::ds::ecs::CollisionEvent", + "referenced_type_name": "keen::ds::ecs::Event", + "class_size": 52, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3284616152, + "hash2": 1157406380, + "struct_fields": [ + { + "name": "entityA", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "entityB", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "sqrDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "overlap", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "colliderFlagsA", + "type_name": "keen::ds::ecs::ColliderMask", + "type_hash": 2685334588, + "data_offset": 40 + }, + { + "name": "colliderFlagsB", + "type_name": "keen::ds::ecs::ColliderMask", + "type_hash": 2685334588, + "data_offset": 44 + }, + { + "name": "voxelMaterialId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnValue", + "type_name_2": "ecs.EntitySpawnValue", + "qualified_name": "keen::ds::ecs::EntitySpawnValue", + "referenced_type_name": "keen::ecs::EntitySpawnValue", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4135648167, + "hash2": 3580876705, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnValueMask", + "type_name_2": "ecs.EntitySpawnValueMask", + "qualified_name": "keen::ds::ecs::EntitySpawnValueMask", + "referenced_type_name": "keen::ecs::EntitySpawnValueMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3360711491, + "hash2": 3349656648, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyFeature", + "type_name_2": "ecs.EnemyFeature", + "qualified_name": "keen::ds::ecs::EnemyFeature", + "referenced_type_name": "keen::ecs::EnemyFeature", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3731511282, + "hash2": 226249293, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyFeatureMask", + "type_name_2": "ecs.EnemyFeatureMask", + "qualified_name": "keen::ds::ecs::EnemyFeatureMask", + "referenced_type_name": "keen::ecs::EnemyFeatureMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2397660346, + "hash2": 3712357158, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerTag", + "type_name_2": "ecs.EnemyMarkerTag", + "qualified_name": "keen::ds::ecs::EnemyMarkerTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1668030, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::actor::ActorSequence", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 852168779, + "hash2": 3518690736, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceReference", + "type_name_2": "actor.ActorSequenceReference", + "qualified_name": "keen::ds::actor::ActorSequenceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4203113657, + "hash2": 2991769303, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemySettings", + "type_name_2": "ecs.EnemySettings", + "qualified_name": "keen::ds::ecs::EnemySettings", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2624997497, + "hash2": 3205619750, + "struct_fields": [ + { + "name": "idleAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + }, + { + "name": "enabledFeatures", + "type_name": "keen::ds::ecs::EnemyFeatureMask", + "type_hash": 2397660346, + "data_offset": 16 + }, + { + "name": "disabledFeatures", + "type_name": "keen::ds::ecs::EnemyFeatureMask", + "type_hash": 2397660346, + "data_offset": 20 + }, + { + "name": "checkDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "requiredMarkerTag", + "type_name": "keen::ObjectReference", + "type_hash": 2743421163, + "data_offset": 28 + }, + { + "name": "spawnSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 44 + }, + { + "name": "maxTargetDistanceToHomeZone", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerSetting", + "type_name_2": "ecs.RandomSpawnerSetting", + "qualified_name": "keen::ds::ecs::RandomSpawnerSetting", + "referenced_type_name": "keen::ecs::RandomSpawnerSetting", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3589774899, + "hash2": 2436363824, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerSettingMask", + "type_name_2": "ecs.RandomSpawnerSettingMask", + "qualified_name": "keen::ds::ecs::RandomSpawnerSettingMask", + "referenced_type_name": "keen::ecs::RandomSpawnerSettingMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1365697671, + "hash2": 4066251701, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerAmount", + "type_name_2": "ecs.RandomSpawnerAmount", + "qualified_name": "keen::ds::ecs::RandomSpawnerAmount", + "referenced_type_name": "keen::ecs::RandomSpawnerAmount", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 3516509841, + "hash2": 2475013914, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerSettings", + "type_name_2": "ecs.RandomSpawnerSettings", + "qualified_name": "keen::ds::ecs::RandomSpawnerSettings", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 349052608, + "hash2": 1593485705, + "struct_fields": [ + { + "name": "allowUpScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "allowDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "minSpawnerAmount", + "type_name": "keen::ds::ecs::RandomSpawnerAmount", + "type_hash": 3516509841, + "data_offset": 2 + }, + { + "name": "changedSettings", + "type_name": "keen::ds::ecs::RandomSpawnerSettingMask", + "type_hash": 1365697671, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerEntitySettings", + "type_name_2": "ecs.RandomSpawnerEntitySettings", + "qualified_name": "keen::ds::ecs::RandomSpawnerEntitySettings", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2340220583, + "hash2": 2185744345, + "struct_fields": [ + { + "name": "allowUpScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "allowDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "minSpawnerAmount", + "type_name": "keen::ds::ecs::RandomSpawnerAmount", + "type_hash": 3516509841, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnData", + "type_name_2": "ecs.EntitySpawnData", + "qualified_name": "keen::ds::ecs::EntitySpawnData", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 537670278, + "hash2": 671220384, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 12 + }, + { + "name": "parentEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 28 + }, + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "randomSeed", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "tintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 60 + }, + { + "name": "triggerRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "triggerRange2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "triggerRange3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "itemId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 76 + }, + { + "name": "enemySettings", + "type_name": "keen::ds::ecs::EnemySettings", + "type_hash": 2624997497, + "data_offset": 80 + }, + { + "name": "randomSpawnerSettings", + "type_name": "keen::ds::ecs::RandomSpawnerEntitySettings", + "type_hash": 2340220583, + "data_offset": 144 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 148 + }, + { + "name": "mask", + "type_name": "keen::ds::ecs::EntitySpawnValueMask", + "type_hash": 3360711491, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathGridType", + "type_name_2": "ecs.PathGridType", + "qualified_name": "keen::ds::ecs::PathGridType", + "referenced_type_name": "keen::ecs::PathGridType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4273691163, + "hash2": 1110040287, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeType", + "type_name_2": "ecs.PathNodeType", + "qualified_name": "keen::ds::ecs::PathNodeType", + "referenced_type_name": "keen::ecs::PathNodeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3295458615, + "hash2": 2586195430, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeCostFactors", + "type_name_2": "ecs.PathNodeCostFactors", + "qualified_name": "keen::ds::ecs::PathNodeCostFactors", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1797145270, + "hash2": 4206344189, + "struct_fields": [ + { + "name": "none", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "building", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "collider", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "walkablePlatform", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "tar", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "mud", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "road", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "fog", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "deadlyFog", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "lava", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "noNpcMovement", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "npcAvoid", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "closedDoor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeTypeMask", + "type_name_2": "ecs.PathNodeTypeMask", + "qualified_name": "keen::ds::ecs::PathNodeTypeMask", + "referenced_type_name": "keen::ecs::PathNodeTypeMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1332536051, + "hash2": 3206700635, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathGridMaterialSettings", + "type_name_2": "ecs.PathGridMaterialSettings", + "qualified_name": "keen::ds::ecs::PathGridMaterialSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2337100767, + "hash2": 143690148, + "struct_fields": [ + { + "name": "pathNodeType", + "type_name": "keen::ds::ecs::PathNodeType", + "type_hash": 3295458615, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathGridMaterialSettingsArray", + "type_name_2": "ecs.PathGridMaterialSettingsArray", + "qualified_name": "keen::ds::ecs::PathGridMaterialSettingsArray", + "referenced_type_name": "keen::ecs::PathGridMaterialSettingsArray", + "class_size": 256, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1896911996, + "hash2": 3638002012, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeRequirements", + "type_name_2": "ecs.PathNodeRequirements", + "qualified_name": "keen::ds::ecs::PathNodeRequirements", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3849890651, + "hash2": 3391090672, + "struct_fields": [ + { + "name": "requiredTypes", + "type_name": "keen::ds::ecs::PathNodeTypeMask", + "type_hash": 1332536051, + "data_offset": 0 + }, + { + "name": "forbiddenTypes", + "type_name": "keen::ds::ecs::PathNodeTypeMask", + "type_hash": 1332536051, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryTargetType", + "type_name_2": "ecs.PathQueryTargetType", + "qualified_name": "keen::ds::ecs::PathQueryTargetType", + "referenced_type_name": "keen::ecs::PathQueryTargetType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3626046128, + "hash2": 705084659, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathMoveType", + "type_name_2": "ecs.PathMoveType", + "qualified_name": "keen::ds::ecs::PathMoveType", + "referenced_type_name": "keen::ecs::PathMoveType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3440056534, + "hash2": 2649354894, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathMoveTypeMask", + "type_name_2": "ecs.PathMoveTypeMask", + "qualified_name": "keen::ds::ecs::PathMoveTypeMask", + "referenced_type_name": "keen::ecs::PathMoveTypeMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 109697638, + "hash2": 1297723499, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryCheck", + "type_name_2": "ecs.PathQueryCheck", + "qualified_name": "keen::ds::ecs::PathQueryCheck", + "referenced_type_name": "keen::ecs::PathQueryCheck", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1698592983, + "hash2": 2835931187, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathGridDistance", + "type_name_2": "ecs.PathGridDistance", + "qualified_name": "keen::ds::ecs::PathGridDistance", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4227161756, + "hash2": 2912293233, + "struct_fields": [ + { + "name": "halfMeters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathGridInteractionType", + "type_name_2": "ecs.PathGridInteractionType", + "qualified_name": "keen::ds::ecs::PathGridInteractionType", + "referenced_type_name": "keen::ecs::PathGridInteractionType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2166284337, + "hash2": 2715277066, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathfindingHeightDifferenceSettings", + "type_name_2": "ecs.PathfindingHeightDifferenceSettings", + "qualified_name": "keen::ds::ecs::PathfindingHeightDifferenceSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1190424245, + "hash2": 1317248371, + "struct_fields": [ + { + "name": "terrain", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "building", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "collider", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathfindingSettings", + "type_name_2": "ecs.PathfindingSettings", + "qualified_name": "keen::ds::ecs::PathfindingSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3742226121, + "hash2": 3052836522, + "struct_fields": [ + { + "name": "maxHeightDifferenceSettings", + "type_name": "keen::ds::ecs::PathfindingHeightDifferenceSettings", + "type_hash": 1190424245, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransformTarget", + "type_name_2": "ecs.LerpTransformTarget", + "qualified_name": "keen::ds::ecs::LerpTransformTarget", + "referenced_type_name": "keen::ecs::LerpTransformTarget", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2188652394, + "hash2": 579685182, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AlignedBox", + "type_name_2": "ecs.AlignedBox", + "qualified_name": "keen::ds::ecs::AlignedBox", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2353925061, + "hash2": 2556180932, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatState", + "type_name_2": "enemy01.CombatState", + "qualified_name": "keen::ds::enemy01::CombatState", + "referenced_type_name": "keen::enemy01::CombatState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4009252271, + "hash2": 1017838706, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatStateMask", + "type_name_2": "enemy01.CombatStateMask", + "qualified_name": "keen::ds::enemy01::CombatStateMask", + "referenced_type_name": "keen::enemy01::CombatStateMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 751112939, + "hash2": 2491994599, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "enemy01.State", + "qualified_name": "keen::ds::enemy01::State", + "referenced_type_name": "keen::enemy01::State", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4076949739, + "hash2": 2036205569, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyClass", + "type_name_2": "enemy01.EnemyClass", + "qualified_name": "keen::ds::enemy01::EnemyClass", + "referenced_type_name": "keen::enemy01::EnemyClass", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3715263482, + "hash2": 2892172772, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateMask", + "type_name_2": "enemy01.StateMask", + "qualified_name": "keen::ds::enemy01::StateMask", + "referenced_type_name": "keen::enemy01::StateMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 828510783, + "hash2": 3685101393, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateUpdateType", + "type_name_2": "enemy01.StateUpdateType", + "qualified_name": "keen::ds::enemy01::StateUpdateType", + "referenced_type_name": "keen::enemy01::StateUpdateType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 450786634, + "hash2": 2130112151, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "enemy01.StateCondition", + "qualified_name": "keen::ds::enemy01::StateCondition", + "referenced_type_name": "keen::enemy01::StateCondition", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1866630492, + "hash2": 3685172232, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariable", + "type_name_2": "enemy01.EnemyVariable", + "qualified_name": "keen::ds::enemy01::EnemyVariable", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2980162030, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy01::EnemyVariable", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1367493729, + "hash2": 3967555585, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariableReference", + "type_name_2": "enemy01.EnemyVariableReference", + "qualified_name": "keen::ds::enemy01::EnemyVariableReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2888651035, + "hash2": 548345775, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityConstrain", + "type_name_2": "enemy01.AbilityConstrain", + "qualified_name": "keen::ds::enemy01::AbilityConstrain", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2821449973, + "hash2": 3447089573, + "struct_fields": [ + { + "name": "negated", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistanceConstrain", + "type_name_2": "enemy01.DistanceConstrain", + "qualified_name": "keen::ds::enemy01::DistanceConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 694440274, + "hash2": 2626733391, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VerticalDistanceConstraint", + "type_name_2": "enemy01.VerticalDistanceConstraint", + "qualified_name": "keen::ds::enemy01::VerticalDistanceConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2510009276, + "hash2": 30602981, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HorizontalDistanceConstraint", + "type_name_2": "enemy01.HorizontalDistanceConstraint", + "qualified_name": "keen::ds::enemy01::HorizontalDistanceConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2102711374, + "hash2": 30602981, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearPathConstrain", + "type_name_2": "enemy01.ClearPathConstrain", + "qualified_name": "keen::ds::enemy01::ClearPathConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 3, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 227928297, + "hash2": 1303179557, + "struct_fields": [ + { + "name": "checkSolidColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "checkSteeringColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CooldownConstrain", + "type_name_2": "enemy01.CooldownConstrain", + "qualified_name": "keen::ds::enemy01::CooldownConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1258828200, + "hash2": 7764049, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateConstrain", + "type_name_2": "enemy01.StateConstrain", + "qualified_name": "keen::ds::enemy01::StateConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2250888364, + "hash2": 1673361504, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::ds::enemy01::StateMask", + "type_hash": 828510783, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatStateConstrain", + "type_name_2": "enemy01.CombatStateConstrain", + "qualified_name": "keen::ds::enemy01::CombatStateConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1781683512, + "hash2": 1942723055, + "struct_fields": [ + { + "name": "combatStates", + "type_name": "keen::ds::enemy01::CombatStateMask", + "type_hash": 751112939, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateDurationConstrain", + "type_name_2": "enemy01.StateDurationConstrain", + "qualified_name": "keen::ds::enemy01::StateDurationConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3672095224, + "hash2": 7764049, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurrentCombatStateDurationConstrain", + "type_name_2": "enemy01.CurrentCombatStateDurationConstrain", + "qualified_name": "keen::ds::enemy01::CurrentCombatStateDurationConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 524292241, + "hash2": 7764049, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsRetaliateAllowedConstrain", + "type_name_2": "enemy01.IsRetaliateAllowedConstrain", + "qualified_name": "keen::ds::enemy01::IsRetaliateAllowedConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 303596044, + "hash2": 1629180970, + "struct_fields": [ + { + "name": "isAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsTargetOfMyTargetConstrain", + "type_name_2": "enemy01.IsTargetOfMyTargetConstrain", + "qualified_name": "keen::ds::enemy01::IsTargetOfMyTargetConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2950463510, + "hash2": 1965154869, + "struct_fields": [ + { + "name": "isTargetOfMyTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LastHitReceivedConstrain", + "type_name_2": "enemy01.LastHitReceivedConstrain", + "qualified_name": "keen::ds::enemy01::LastHitReceivedConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3065624229, + "hash2": 1675044631, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ThreatConstrain", + "type_name_2": "enemy01.ThreatConstrain", + "qualified_name": "keen::ds::enemy01::ThreatConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3404390303, + "hash2": 1844406399, + "struct_fields": [ + { + "name": "minThreat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AngleToTargetConstrain", + "type_name_2": "enemy01.AngleToTargetConstrain", + "qualified_name": "keen::ds::enemy01::AngleToTargetConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2891082890, + "hash2": 2794172503, + "struct_fields": [ + { + "name": "minAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AngleFromSlotToTargetConstraint", + "type_name_2": "enemy01.AngleFromSlotToTargetConstraint", + "qualified_name": "keen::ds::enemy01::AngleFromSlotToTargetConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3105363486, + "hash2": 3147363688, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 1 + }, + { + "name": "minAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsInAttackRangeConstrain", + "type_name_2": "enemy01.IsInAttackRangeConstrain", + "qualified_name": "keen::ds::enemy01::IsInAttackRangeConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 788376823, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::EnemyPhase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3058028847, + "hash2": 3471486231, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsInPhaseConstrain", + "type_name_2": "enemy01.IsInPhaseConstrain", + "qualified_name": "keen::ds::enemy01::IsInPhaseConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1385895809, + "hash2": 476752981, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 3058028847, + "data_offset": 4 + }, + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsLastPhaseConstraint", + "type_name_2": "enemy01.IsLastPhaseConstraint", + "qualified_name": "keen::ds::enemy01::IsLastPhaseConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 172135162, + "hash2": 196419561, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 3058028847, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitEventFlagMask", + "type_name_2": "ecs.HitEventFlagMask", + "qualified_name": "keen::ds::ecs::HitEventFlagMask", + "referenced_type_name": "keen::ecs::HitEventFlagMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2040110021, + "hash2": 2262307601, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HasBeenHitInCurrentPhaseConstrain", + "type_name_2": "enemy01.HasBeenHitInCurrentPhaseConstrain", + "qualified_name": "keen::ds::enemy01::HasBeenHitInCurrentPhaseConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 668805171, + "hash2": 3273009802, + "struct_fields": [ + { + "name": "requiredHitEventFlags", + "type_name": "keen::ds::ecs::HitEventFlagMask", + "type_hash": 2040110021, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMask", + "type_name_2": "actor.StateMask", + "qualified_name": "keen::ds::actor::StateMask", + "referenced_type_name": "keen::actor::StateMask", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 793396929, + "hash2": 3774090707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatTargetStateFlagsConstrain", + "type_name_2": "enemy01.CombatTargetStateFlagsConstrain", + "qualified_name": "keen::ds::enemy01::CombatTargetStateFlagsConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 175282328, + "hash2": 712948226, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsAttackSelectedConstrain", + "type_name_2": "enemy01.IsAttackSelectedConstrain", + "qualified_name": "keen::ds::enemy01::IsAttackSelectedConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2267180216, + "hash2": 2863406259, + "struct_fields": [ + { + "name": "attackSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsAnyAttackSelectedConstraint", + "type_name_2": "enemy01.IsAnyAttackSelectedConstraint", + "qualified_name": "keen::ds::enemy01::IsAnyAttackSelectedConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1277411614, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyHealthPercentageConstrain", + "type_name_2": "enemy01.EnemyHealthPercentageConstrain", + "qualified_name": "keen::ds::enemy01::EnemyHealthPercentageConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3333361257, + "hash2": 306622879, + "struct_fields": [ + { + "name": "minPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurrentTargetHealthPercentageConstrain", + "type_name_2": "enemy01.CurrentTargetHealthPercentageConstrain", + "qualified_name": "keen::ds::enemy01::CurrentTargetHealthPercentageConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3895837761, + "hash2": 306622879, + "struct_fields": [ + { + "name": "minPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsPlayerTargetConstrain", + "type_name_2": "enemy01.IsPlayerTargetConstrain", + "qualified_name": "keen::ds::enemy01::IsPlayerTargetConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 212129899, + "hash2": 1882252307, + "struct_fields": [ + { + "name": "isPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetActorStatesConstrain", + "type_name_2": "enemy01.TargetActorStatesConstrain", + "qualified_name": "keen::ds::enemy01::TargetActorStatesConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3734048499, + "hash2": 2640415810, + "struct_fields": [ + { + "name": "requiredStates", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 8 + }, + { + "name": "excludedStates", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorStatesConstrain", + "type_name_2": "enemy01.ActorStatesConstrain", + "qualified_name": "keen::ds::enemy01::ActorStatesConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 855009094, + "hash2": 2640415810, + "struct_fields": [ + { + "name": "requiredStates", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 8 + }, + { + "name": "excludedStates", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasCombatTargetConstrain", + "type_name_2": "enemy01.HasCombatTargetConstrain", + "qualified_name": "keen::ds::enemy01::HasCombatTargetConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 918789852, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NeedsToFlee", + "type_name_2": "enemy01.NeedsToFlee", + "qualified_name": "keen::ds::enemy01::NeedsToFlee", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2914747158, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomChanceConstrain", + "type_name_2": "enemy01.RandomChanceConstrain", + "qualified_name": "keen::ds::enemy01::RandomChanceConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3058477122, + "hash2": 2097397607, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsGroupLeaderConstrain", + "type_name_2": "enemy01.IsGroupLeaderConstrain", + "qualified_name": "keen::ds::enemy01::IsGroupLeaderConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 803202733, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsGroupMemberConstrain", + "type_name_2": "enemy01.IsGroupMemberConstrain", + "qualified_name": "keen::ds::enemy01::IsGroupMemberConstrain", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4017382444, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsGuardingPlayerConstraint", + "type_name_2": "enemy01.IsGuardingPlayerConstraint", + "qualified_name": "keen::ds::enemy01::IsGuardingPlayerConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2713713271, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsTargetInHomeZoneConstraint", + "type_name_2": "enemy01.IsTargetInHomeZoneConstraint", + "qualified_name": "keen::ds::enemy01::IsTargetInHomeZoneConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 148340594, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetDistanceToHomeZoneConstraint", + "type_name_2": "enemy01.TargetDistanceToHomeZoneConstraint", + "qualified_name": "keen::ds::enemy01::TargetDistanceToHomeZoneConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 417528835, + "hash2": 30602981, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsTargetReachableConstraint", + "type_name_2": "enemy01.IsTargetReachableConstraint", + "qualified_name": "keen::ds::enemy01::IsTargetReachableConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1815519797, + "hash2": 861568345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsVariableSetConstraint", + "type_name_2": "enemy01.IsVariableSetConstraint", + "qualified_name": "keen::ds::enemy01::IsVariableSetConstraint", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2245513725, + "hash2": 333069997, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::ds::enemy01::EnemyVariableReference", + "type_hash": 2888651035, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Ability", + "type_name_2": "enemy01.Ability", + "qualified_name": "keen::ds::enemy01::Ability", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3570009652, + "hash2": 2257246094, + "struct_fields": [ + { + "name": "actionSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AbilitySelectionContrains", + "type_name_2": "enemy01.AbilitySelectionContrains", + "qualified_name": "keen::ds::enemy01::AbilitySelectionContrains", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3469126637, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityExecutionContrains", + "type_name_2": "enemy01.AbilityExecutionContrains", + "qualified_name": "keen::ds::enemy01::AbilityExecutionContrains", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2274216437, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityAbortConstraints", + "type_name_2": "enemy01.AbilityAbortConstraints", + "qualified_name": "keen::ds::enemy01::AbilityAbortConstraints", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2967927330, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::enemy01::AbilityConstrain", + "class_size": 48, + "fields_count": 38, + "primitive_type": "DsVariant", + "hash1": 2189438080, + "hash2": 1692297633, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1672210337, + "hash2": 1383905060, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityConstrains", + "type_name_2": "enemy01.AbilityConstrains", + "qualified_name": "keen::ds::enemy01::AbilityConstrains", + "referenced_type_name": "keen::DsArray>", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1126107890, + "hash2": 2626714330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackStyle", + "type_name_2": "enemy01.AttackStyle", + "qualified_name": "keen::ds::enemy01::AttackStyle", + "referenced_type_name": "keen::enemy01::AttackStyle", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3304789799, + "hash2": 979905588, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackStyleMask", + "type_name_2": "enemy01.AttackStyleMask", + "qualified_name": "keen::ds::enemy01::AttackStyleMask", + "referenced_type_name": "keen::enemy01::AttackStyleMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1160820419, + "hash2": 1271802105, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackFlag", + "type_name_2": "enemy01.AttackFlag", + "qualified_name": "keen::ds::enemy01::AttackFlag", + "referenced_type_name": "keen::enemy01::AttackFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 798171484, + "hash2": 158535349, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackFlagMask", + "type_name_2": "enemy01.AttackFlagMask", + "qualified_name": "keen::ds::enemy01::AttackFlagMask", + "referenced_type_name": "keen::enemy01::AttackFlagMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3509221644, + "hash2": 723664153, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatTargetChangeMode", + "type_name_2": "enemy01.CombatTargetChangeMode", + "qualified_name": "keen::ds::enemy01::CombatTargetChangeMode", + "referenced_type_name": "keen::enemy01::CombatTargetChangeMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3831613400, + "hash2": 2977479201, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockRotationDuration", + "type_name_2": "enemy01.BlockRotationDuration", + "qualified_name": "keen::ds::enemy01::BlockRotationDuration", + "referenced_type_name": "keen::enemy01::BlockRotationDuration", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2989399045, + "hash2": 1465199495, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Action", + "type_name_2": "enemy01.Action", + "qualified_name": "keen::ds::enemy01::Action", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1012612796, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 48, + "fields_count": 43, + "primitive_type": "DsVariant", + "hash1": 707106627, + "hash2": 1834436994, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionVariant", + "type_name_2": "enemy01.ActionVariant", + "qualified_name": "keen::ds::enemy01::ActionVariant", + "referenced_type_name": "keen::DsVariant", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1753969277, + "hash2": 3288052401, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "enemy01.ActionVariant[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::enemy01::ActionVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1892260214, + "hash2": 867822248, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionVariants", + "type_name_2": "enemy01.ActionVariants", + "qualified_name": "keen::ds::enemy01::ActionVariants", + "referenced_type_name": "keen::DsArray", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2709818378, + "hash2": 1324283451, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackActions", + "type_name_2": "enemy01.AttackActions", + "qualified_name": "keen::ds::enemy01::AttackActions", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3847360857, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackConstraints", + "type_name_2": "enemy01.AttackConstraints", + "qualified_name": "keen::ds::enemy01::AttackConstraints", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2198379686, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandMode", + "type_name_2": "enemy01.AttackCommandMode", + "qualified_name": "keen::ds::enemy01::AttackCommandMode", + "referenced_type_name": "keen::enemy01::AttackCommandMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3656982092, + "hash2": 2584606011, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandData", + "type_name_2": "enemy01.AttackCommandData", + "qualified_name": "keen::ds::enemy01::AttackCommandData", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2189860587, + "hash2": 3188311501, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::enemy01::AttackCommandMode", + "type_hash": 3656982092, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandDescription", + "type_name_2": "enemy01.AttackCommandDescription", + "qualified_name": "keen::ds::enemy01::AttackCommandDescription", + "referenced_type_name": "keen::ds::enemy01::AttackCommandData", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3300254327, + "hash2": 3747997272, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommand", + "type_name_2": "enemy01.AttackCommand", + "qualified_name": "keen::ds::enemy01::AttackCommand", + "referenced_type_name": "keen::ds::enemy01::AttackCommandData", + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 120414051, + "hash2": 2033482611, + "struct_fields": [ + { + "name": "constraints", + "type_name": "keen::ds::enemy01::AbilityConstrains", + "type_hash": 1126107890, + "data_offset": 8 + }, + { + "name": "actions", + "type_name": "keen::ds::enemy01::ActionVariants", + "type_hash": 2709818378, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "enemy01.AttackCommand[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::enemy01::AttackCommand", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 527833792, + "hash2": 1083036430, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandArray", + "type_name_2": "enemy01.AttackCommandArray", + "qualified_name": "keen::ds::enemy01::AttackCommandArray", + "referenced_type_name": "keen::DsArray", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1046133944, + "hash2": 1821270765, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCommandContainerDescription", + "type_name_2": "enemy01.AttackCommandContainerDescription", + "qualified_name": "keen::ds::enemy01::AttackCommandContainerDescription", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4185343536, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackData", + "type_name_2": "enemy01.AttackData", + "qualified_name": "keen::ds::enemy01::AttackData", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3626276210, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JumpAttackData", + "type_name_2": "enemy01.JumpAttackData", + "qualified_name": "keen::ds::enemy01::JumpAttackData", + "referenced_type_name": "keen::ds::enemy01::AttackData", + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3898304554, + "hash2": 3419528095, + "struct_fields": [ + { + "name": "distanceFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "minForce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxForce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "forwardMomentum", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DashAttackData", + "type_name_2": "enemy01.DashAttackData", + "qualified_name": "keen::ds::enemy01::DashAttackData", + "referenced_type_name": "keen::ds::enemy01::AttackData", + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2582022298, + "hash2": 3771826968, + "struct_fields": [ + { + "name": "overshootDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lookAheadLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "collisionAvoidanceLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "collisionOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "decelerateDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "decelerateEnforceDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportAttackData", + "type_name_2": "enemy01.TeleportAttackData", + "qualified_name": "keen::ds::enemy01::TeleportAttackData", + "referenced_type_name": "keen::ds::enemy01::AttackData", + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 578410481, + "hash2": 4104320160, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "verticalSearchDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "checkLineOfSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "targetNodeRequirements", + "type_name": "keen::ds::ecs::PathNodeRequirements", + "type_hash": 3849890651, + "data_offset": 14 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::enemy01::AttackData", + "class_size": 48, + "fields_count": 4, + "primitive_type": "DsVariant", + "hash1": 2268946953, + "hash2": 1363906336, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDataVariant", + "type_name_2": "enemy01.AttackDataVariant", + "qualified_name": "keen::ds::enemy01::AttackDataVariant", + "referenced_type_name": "keen::DsVariant", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2896717683, + "hash2": 1536785861, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDataDescription", + "type_name_2": "enemy01.AttackDataDescription", + "qualified_name": "keen::ds::enemy01::AttackDataDescription", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3125396612, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy01::AttackCooldownGroupId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 849644370, + "hash2": 2985108919, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDesscription", + "type_name_2": "enemy01.AttackDesscription", + "qualified_name": "keen::ds::enemy01::AttackDesscription", + "referenced_type_name": "keen::ds::enemy01::Ability", + "class_size": 88, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1456500441, + "hash2": 2035942916, + "struct_fields": [ + { + "name": "attackStyle", + "type_name": "keen::ds::enemy01::AttackStyleMask", + "type_hash": 1160820419, + "data_offset": 16 + }, + { + "name": "selectionChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "flags", + "type_name": "keen::ds::enemy01::AttackFlagMask", + "type_hash": 3509221644, + "data_offset": 24 + }, + { + "name": "threat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "minRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "maxRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "maxVerticalRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "cooldownGroupID", + "type_name": "keen::ObjectReference", + "type_hash": 849644370, + "data_offset": 44 + }, + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "acceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "executionAttackSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 68 + }, + { + "name": "blockRotationDuration", + "type_name": "keen::ds::enemy01::BlockRotationDuration", + "type_hash": 2989399045, + "data_offset": 84 + }, + { + "name": "combatTargetChangeMode", + "type_name": "keen::ds::enemy01::CombatTargetChangeMode", + "type_hash": 3831613400, + "data_offset": 85 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackDesscriptionResource", + "type_name_2": "enemy01.AttackDesscriptionResource", + "qualified_name": "keen::ds::enemy01::AttackDesscriptionResource", + "referenced_type_name": null, + "class_size": 296, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 168095945, + "hash2": 657937757, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::ds::enemy01::AttackDesscription", + "type_hash": 1456500441, + "data_offset": 0 + }, + { + "name": "selectionConstrain", + "type_name": "keen::ds::enemy01::AbilityConstrains", + "type_hash": 1126107890, + "data_offset": 88 + }, + { + "name": "executionConstrain", + "type_name": "keen::ds::enemy01::AbilityConstrains", + "type_hash": 1126107890, + "data_offset": 128 + }, + { + "name": "abortConstraints", + "type_name": "keen::ds::enemy01::AbilityConstrains", + "type_hash": 1126107890, + "data_offset": 168 + }, + { + "name": "commands", + "type_name": "keen::ds::enemy01::AttackCommandArray", + "type_hash": 1046133944, + "data_offset": 208 + }, + { + "name": "data", + "type_name": "keen::ds::enemy01::AttackDataVariant", + "type_hash": 2896717683, + "data_offset": 248 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorMode", + "type_name_2": "enemy01.BehaviorMode", + "qualified_name": "keen::ds::enemy01::BehaviorMode", + "referenced_type_name": "keen::enemy01::BehaviorMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3323516003, + "hash2": 2720204622, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorExecutionContrains", + "type_name_2": "enemy01.BehaviorExecutionContrains", + "qualified_name": "keen::ds::enemy01::BehaviorExecutionContrains", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3937903825, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorAbortConstraints", + "type_name_2": "enemy01.BehaviorAbortConstraints", + "qualified_name": "keen::ds::enemy01::BehaviorAbortConstraints", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1215080726, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorActions", + "type_name_2": "enemy01.BehaviorActions", + "qualified_name": "keen::ds::enemy01::BehaviorActions", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 222386011, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorSettings", + "type_name_2": "enemy01.BehaviorSettings", + "qualified_name": "keen::ds::enemy01::BehaviorSettings", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3606784509, + "hash2": 4249203794, + "struct_fields": [ + { + "name": "checkIntervalMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "checkIntervalMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "cooldownMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "cooldownMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorDesscription", + "type_name_2": "enemy01.BehaviorDesscription", + "qualified_name": "keen::ds::enemy01::BehaviorDesscription", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3622389727, + "hash2": 2809786678, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::enemy01::BehaviorMode", + "type_hash": 3323516003, + "data_offset": 0 + }, + { + "name": "settings", + "type_name": "keen::ds::enemy01::BehaviorSettings", + "type_hash": 3606784509, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorDesscriptionResource", + "type_name_2": "enemy01.BehaviorDesscriptionResource", + "qualified_name": "keen::ds::enemy01::BehaviorDesscriptionResource", + "referenced_type_name": "keen::ds::enemy01::BehaviorDesscription", + "class_size": 168, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1512166971, + "hash2": 2553196782, + "struct_fields": [ + { + "name": "executionConstrain", + "type_name": "keen::ds::enemy01::AbilityConstrains", + "type_hash": 1126107890, + "data_offset": 48 + }, + { + "name": "abortConstraints", + "type_name": "keen::ds::enemy01::AbilityConstrains", + "type_hash": 1126107890, + "data_offset": 88 + }, + { + "name": "actions", + "type_name": "keen::ds::enemy01::ActionVariants", + "type_hash": 2709818378, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy01::BehaviorDesscription", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3439266168, + "hash2": 1847244175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorDescriptionReference", + "type_name_2": "enemy01.BehaviorDescriptionReference", + "qualified_name": "keen::ds::enemy01::BehaviorDescriptionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4212298255, + "hash2": 983963850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BehaviorReferenceDescription", + "type_name_2": "enemy01.BehaviorReferenceDescription", + "qualified_name": "keen::ds::enemy01::BehaviorReferenceDescription", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3800178177, + "hash2": 2110738040, + "struct_fields": [ + { + "name": "behavior", + "type_name": "keen::ds::enemy01::BehaviorDescriptionReference", + "type_hash": 4212298255, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackCooldownGroupId", + "type_name_2": "enemy01.AttackCooldownGroupId", + "qualified_name": "keen::ds::enemy01::AttackCooldownGroupId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1236605783, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCooldownGroup", + "type_name_2": "enemy01.AttackCooldownGroup", + "qualified_name": "keen::ds::enemy01::AttackCooldownGroup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1712730362, + "hash2": 1600006702, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ObjectReference", + "type_hash": 849644370, + "data_offset": 0 + }, + { + "name": "cooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockRotationSettings", + "type_name_2": "enemy01.BlockRotationSettings", + "qualified_name": "keen::ds::enemy01::BlockRotationSettings", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1554013040, + "hash2": 3039205072, + "struct_fields": [ + { + "name": "shortBlockRotationDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "mediumBlockRotationDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "longBlockRotationDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatTurnConditions", + "type_name_2": "enemy01.CombatTurnConditions", + "qualified_name": "keen::ds::enemy01::CombatTurnConditions", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1987678155, + "hash2": 1596691362, + "struct_fields": [ + { + "name": "minSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "minWalkDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LeaningSettings", + "type_name_2": "enemy01.LeaningSettings", + "qualified_name": "keen::ds::enemy01::LeaningSettings", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3152666899, + "hash2": 4064261619, + "struct_fields": [ + { + "name": "combatStates", + "type_name": "keen::ds::enemy01::CombatStateMask", + "type_hash": 751112939, + "data_offset": 0 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatJumpMoveSettings", + "type_name_2": "enemy01.CombatJumpMoveSettings", + "qualified_name": "keen::ds::enemy01::CombatJumpMoveSettings", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1433825922, + "hash2": 505570828, + "struct_fields": [ + { + "name": "useJumpMoveIfTargetIsNotReachable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "minJumpMoveDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxJumpMoveDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxJumpUpHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "maxJumpDownHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackMoveSettings", + "type_name_2": "enemy01.AttackMoveSettings", + "qualified_name": "keen::ds::enemy01::AttackMoveSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 724111730, + "hash2": 3204623267, + "struct_fields": [ + { + "name": "alwaysLookAtCombatTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SleepDaytimeSetting", + "type_name_2": "enemy01.SleepDaytimeSetting", + "qualified_name": "keen::ds::enemy01::SleepDaytimeSetting", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2397576388, + "hash2": 2327396482, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "minSleepDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxSleepDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SleepSetup", + "type_name_2": "enemy01.SleepSetup", + "qualified_name": "keen::ds::enemy01::SleepSetup", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1217063802, + "hash2": 1837720596, + "struct_fields": [ + { + "name": "daySettings", + "type_name": "keen::ds::enemy01::SleepDaytimeSetting", + "type_hash": 2397576388, + "data_offset": 0 + }, + { + "name": "nightSettings", + "type_name": "keen::ds::enemy01::SleepDaytimeSetting", + "type_hash": 2397576388, + "data_offset": 24 + }, + { + "name": "minInitialCheckDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "maxInitialCheckDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "minCheckInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "maxCheckInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "sleepAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "enemy01.AttackCooldownGroup[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::enemy01::AttackCooldownGroup", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1736599811, + "hash2": 3012723257, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatSetup", + "type_name_2": "enemy01.CombatSetup", + "qualified_name": "keen::ds::enemy01::CombatSetup", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 4178850167, + "hash2": 1398192591, + "struct_fields": [ + { + "name": "preferedDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "preferedDistanceVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "preferedDistanceEngaged", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "preferedDistanceEngagedVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "maxVerticalDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "maxPlayerTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "maxNonPlayerTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "retaliateCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 28 + }, + { + "name": "cooldownGroups", + "type_name": "keen::DsArray", + "type_hash": 1736599811, + "data_offset": 32 + }, + { + "name": "walkStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "runStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "runEndDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "combatRotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "combatIdleAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 88 + }, + { + "name": "blockRotationSettings", + "type_name": "keen::ds::enemy01::BlockRotationSettings", + "type_hash": 1554013040, + "data_offset": 104 + }, + { + "name": "minAttackDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "maxAttackDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + }, + { + "name": "turnConditions", + "type_name": "keen::ds::enemy01::CombatTurnConditions", + "type_hash": 1987678155, + "data_offset": 144 + }, + { + "name": "leaningSettings", + "type_name": "keen::ds::enemy01::LeaningSettings", + "type_hash": 3152666899, + "data_offset": 160 + }, + { + "name": "jumpMoveSettings", + "type_name": "keen::ds::enemy01::CombatJumpMoveSettings", + "type_hash": 1433825922, + "data_offset": 168 + }, + { + "name": "attackMoveSettings", + "type_name": "keen::ds::enemy01::AttackMoveSettings", + "type_hash": 724111730, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockingSetup", + "type_name_2": "enemy01.BlockingSetup", + "qualified_name": "keen::ds::enemy01::BlockingSetup", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3710739510, + "hash2": 1683424013, + "struct_fields": [ + { + "name": "blockSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "minBlockDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxBlockDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "maxTotalBlockDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "minBlockHitExtendDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "maxBlockHitExtendDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "blockAfterHitChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "activateBlockAtStart", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "autoToggleBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "autoToggleBlockMaxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "useBlockWalk", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "blockWalkAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 72 + }, + { + "name": "minBlockProjectileDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "maxBlockProjectileDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HomeZoneSetup", + "type_name_2": "enemy01.HomeZoneSetup", + "qualified_name": "keen::ds::enemy01::HomeZoneSetup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2987854324, + "hash2": 674663014, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolSetup", + "type_name_2": "enemy01.AggroPoolSetup", + "qualified_name": "keen::ds::enemy01::AggroPoolSetup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3887480503, + "hash2": 2350754275, + "struct_fields": [ + { + "name": "maxValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPools", + "type_name_2": "enemy01.AggroPools", + "qualified_name": "keen::ds::enemy01::AggroPools", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4020229003, + "hash2": 2973196442, + "struct_fields": [ + { + "name": "senses", + "type_name": "keen::ds::enemy01::AggroPoolSetup", + "type_hash": 3887480503, + "data_offset": 0 + }, + { + "name": "friends", + "type_name": "keen::ds::enemy01::AggroPoolSetup", + "type_hash": 3887480503, + "data_offset": 4 + }, + { + "name": "enemies", + "type_name": "keen::ds::enemy01::AggroPoolSetup", + "type_hash": 3887480503, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroSetup", + "type_name_2": "enemy01.AggroSetup", + "qualified_name": "keen::ds::enemy01::AggroSetup", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1563524657, + "hash2": 3185160070, + "struct_fields": [ + { + "name": "viewRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "nightViewRangeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "viewConeHalfAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "aggroFromAttack", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "aggroInRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "aggroLossOutOfSight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "aggroLossUnreachable", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "aggroDiminishSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "noticedAggro", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "initialAggro", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "alarmedAggroThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "aggroRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "aggroRangeWhileMoving", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "checkPathToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "checkLineOfSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + }, + { + "name": "pools", + "type_name": "keen::ds::enemy01::AggroPools", + "type_hash": 4020229003, + "data_offset": 56 + }, + { + "name": "preferCloserTargets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "preferCloserTargetsDistanceThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "preferShortestPath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "preferShortestPathDistanceThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "preferTargetsWithLessAttackers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallForHelpSetup", + "type_name_2": "enemy01.CallForHelpSetup", + "qualified_name": "keen::ds::enemy01::CallForHelpSetup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3414083467, + "hash2": 3324816223, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "minRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RoamingSetup", + "type_name_2": "enemy01.RoamingSetup", + "qualified_name": "keen::ds::enemy01::RoamingSetup", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 103804634, + "hash2": 3688165669, + "struct_fields": [ + { + "name": "minInitialStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxInitialStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "minStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxStartDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "maxHomeZoneDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "minLoopUpdateDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "targetNodeRequirements", + "type_name": "keen::ds::ecs::PathNodeRequirements", + "type_hash": 3849890651, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FleeSetup", + "type_name_2": "enemy01.FleeSetup", + "qualified_name": "keen::ds::enemy01::FleeSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3359250175, + "hash2": 4114011193, + "struct_fields": [ + { + "name": "minFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "fleeAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 8 + }, + { + "name": "maxFleeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoiseListenerSetup", + "type_name_2": "enemy01.NoiseListenerSetup", + "qualified_name": "keen::ds::enemy01::NoiseListenerSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1580078645, + "hash2": 1935818812, + "struct_fields": [ + { + "name": "reactToNoiseSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "listenRangeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "listenRangeFactorWhileSleeping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringSetup", + "type_name_2": "enemy01.SteeringSetup", + "qualified_name": "keen::ds::enemy01::SteeringSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4120683630, + "hash2": 1720312355, + "struct_fields": [ + { + "name": "defaultSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "roamingSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "closeCombatSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "farCombatSteeringWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProwlSetup", + "type_name_2": "enemy01.ProwlSetup", + "qualified_name": "keen::ds::enemy01::ProwlSetup", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 827138147, + "hash2": 348807415, + "struct_fields": [ + { + "name": "minProwlDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxProwlDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxHeightDifference", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "minProwlDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxProwlDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "minProwlCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "maxProwlCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "checkClearPath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParrySetup", + "type_name_2": "enemy01.ParrySetup", + "qualified_name": "keen::ds::enemy01::ParrySetup", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1267410189, + "hash2": 1089720445, + "struct_fields": [ + { + "name": "parriedSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "parriedStunSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + }, + { + "name": "parriedStunLongDurationSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 32 + }, + { + "name": "addedThreatAfterParry", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionSpeedSelector", + "type_name_2": "ecs.LocomotionSpeedSelector", + "qualified_name": "keen::ds::ecs::LocomotionSpeedSelector", + "referenced_type_name": "keen::ecs::LocomotionSpeedSelector", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Typedef", + "hash1": 2850176745, + "hash2": 375772971, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MovementSetup", + "type_name_2": "enemy01.MovementSetup", + "qualified_name": "keen::ds::enemy01::MovementSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 353564152, + "hash2": 894172967, + "struct_fields": [ + { + "name": "maxMovementAngleDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxMovementAngleProwl", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxMovementAngleCombat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxMovementAngleCombatWithoutRoation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "maxMovementAngleRoaming", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "returnHomeSpeed", + "type_name": "keen::ds::ecs::LocomotionSpeedSelector", + "type_hash": 2850176745, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GuardSetup", + "type_name_2": "enemy01.GuardSetup", + "qualified_name": "keen::ds::enemy01::GuardSetup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3167352496, + "hash2": 2062456702, + "struct_fields": [ + { + "name": "startDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "targetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "guardParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "canGuardPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PatrolSetup", + "type_name_2": "enemy01.PatrolSetup", + "qualified_name": "keen::ds::enemy01::PatrolSetup", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2977473681, + "hash2": 2870968512, + "struct_fields": [ + { + "name": "initialStartTimeMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "initialStartTimeMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "patrolStartMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "patrolStartMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "patrolPauseMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "patrolPauseMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "startTurnDistamce", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "patrolAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionSetup", + "type_name_2": "enemy01.InteractionSetup", + "qualified_name": "keen::ds::enemy01::InteractionSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 629471963, + "hash2": 2561864072, + "struct_fields": [ + { + "name": "interactionPauseMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "interactionPauseMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TauntSetup", + "type_name_2": "enemy01.TauntSetup", + "qualified_name": "keen::ds::enemy01::TauntSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1107675335, + "hash2": 943812675, + "struct_fields": [ + { + "name": "tauntSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "tauntChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "cooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TurnSetup", + "type_name_2": "actor.TurnSetup", + "qualified_name": "keen::ds::actor::TurnSetup", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1637349768, + "hash2": 2777049089, + "struct_fields": [ + { + "name": "turnLeftSmallSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "turnLeftBigSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + }, + { + "name": "turnRightSmallSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 32 + }, + { + "name": "turnRightBigSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 48 + }, + { + "name": "minSmallTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "minBigTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TurnSetup", + "type_name_2": "enemy01.TurnSetup", + "qualified_name": "keen::ds::enemy01::TurnSetup", + "referenced_type_name": "keen::ds::actor::TurnSetup", + "class_size": 104, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3421658110, + "hash2": 1275896460, + "struct_fields": [ + { + "name": "minIdleTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "minIdleTurnCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "maxIdleTurnCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SearchForCoverSetup", + "type_name_2": "enemy01.SearchForCoverSetup", + "qualified_name": "keen::ds::enemy01::SearchForCoverSetup", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 105014485, + "hash2": 713177876, + "struct_fields": [ + { + "name": "minCoverDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "maxCoverDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "minCoverDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxCoverDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "minCoverCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "maxCoverCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RunAroundSetup", + "type_name_2": "enemy01.RunAroundSetup", + "qualified_name": "keen::ds::enemy01::RunAroundSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3163784343, + "hash2": 479629030, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeSetup", + "type_name_2": "enemy01.PathNodeSetup", + "qualified_name": "keen::ds::enemy01::PathNodeSetup", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3313797174, + "hash2": 84103868, + "struct_fields": [ + { + "name": "defaultCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 0 + }, + { + "name": "roamingCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CirclingDirection", + "type_name_2": "enemy01.CirclingDirection", + "qualified_name": "keen::ds::enemy01::CirclingDirection", + "referenced_type_name": "keen::enemy01::CirclingDirection", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2179036366, + "hash2": 3576280598, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CirclingSetup", + "type_name_2": "enemy01.CirclingSetup", + "qualified_name": "keen::ds::enemy01::CirclingSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3406359882, + "hash2": 475693088, + "struct_fields": [ + { + "name": "initialRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "initialHeightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "useOuterCircleAsCombatPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "initialDirection", + "type_name": "keen::ds::enemy01::CirclingDirection", + "type_hash": 2179036366, + "data_offset": 9 + }, + { + "name": "changeDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "minDirectionChangeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxDirectionChangeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy01::CombatSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 723334570, + "hash2": 4057541852, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatSetupReference", + "type_name_2": "enemy01.CombatSetupReference", + "qualified_name": "keen::ds::enemy01::CombatSetupReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3591315108, + "hash2": 1377062837, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LookAtMovementTargetState", + "type_name_2": "enemy01.LookAtMovementTargetState", + "qualified_name": "keen::ds::enemy01::LookAtMovementTargetState", + "referenced_type_name": "keen::enemy01::LookAtMovementTargetState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1934124525, + "hash2": 2793603626, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnreachableJumpMoveState", + "type_name_2": "enemy01.UnreachableJumpMoveState", + "qualified_name": "keen::ds::enemy01::UnreachableJumpMoveState", + "referenced_type_name": "keen::enemy01::UnreachableJumpMoveState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1453003162, + "hash2": 1225255998, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariableStateEntry", + "type_name_2": "enemy01.EnemyVariableStateEntry", + "qualified_name": "keen::ds::enemy01::EnemyVariableStateEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3915512717, + "hash2": 1728071178, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::ds::enemy01::EnemyVariableReference", + "type_hash": 2888651035, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.EnemyVariableStateEntry[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::enemy01::EnemyVariableStateEntry", + "class_size": 80, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 1291837823, + "hash2": 274247942, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariableStates", + "type_name_2": "enemy01.EnemyVariableStates", + "qualified_name": "keen::ds::enemy01::EnemyVariableStates", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3171922144, + "hash2": 3004127351, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::StaticArray", + "type_hash": 1291837823, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionType", + "type_name_2": "impact.HitReactionType", + "qualified_name": "keen::ds::impact::HitReactionType", + "referenced_type_name": "keen::impact::HitReactionType", + "class_size": 2, + "fields_count": 9, + "primitive_type": "Typedef", + "hash1": 194263173, + "hash2": 4207934300, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CombatData", + "type_name_2": "enemy01.CombatData", + "qualified_name": "keen::ds::enemy01::CombatData", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 44, + "primitive_type": "Struct", + "hash1": 1404422602, + "hash2": 2436739469, + "struct_fields": [ + { + "name": "selectedAttackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "lastAttackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "toTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "horizontalKeepDistanceDirection", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "threatPoolId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 24 + }, + { + "name": "lastChangeEvaluation", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "stateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "stateMinTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "stateMaxTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "lastAttackTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "lastHitReceived", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "lastHitReactionType", + "type_name": "keen::ds::impact::HitReactionType", + "type_hash": 194263173, + "data_offset": 80 + }, + { + "name": "lastHitEventFlags", + "type_name": "keen::ds::ecs::HitEventFlagMask", + "type_hash": 2040110021, + "data_offset": 84 + }, + { + "name": "targetEnteredPrivateSpace", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "prowlAngleChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "selectedPreferedDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "preferedDistanceMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "preferedDistanceMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "prowlAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "distanceToTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "state", + "type_name": "keen::ds::enemy01::CombatState", + "type_hash": 4009252271, + "data_offset": 124 + }, + { + "name": "targetOfMyTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + }, + { + "name": "hitsReceivedWhileBlocking", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 126 + }, + { + "name": "lastBlockChanceEvaluationTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "shouldBlockLastHit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 136 + }, + { + "name": "attackExecutionCount", + "type_name": "keen::StaticArray", + "type_hash": 1438933023, + "data_offset": 137 + }, + { + "name": "nextAllowedAttackGroupTime", + "type_name": "keen::StaticArray", + "type_hash": 11174793, + "data_offset": 160 + }, + { + "name": "closestReachableTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 224 + }, + { + "name": "nextReachablePositionUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 240 + }, + { + "name": "isTargetReachable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 248 + }, + { + "name": "isTargetInsideLeash", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 249 + }, + { + "name": "lastTargetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 252 + }, + { + "name": "commandIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 256 + }, + { + "name": "actionIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 257 + }, + { + "name": "lastActionStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 264 + }, + { + "name": "lastAttackAbortCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 272 + }, + { + "name": "nextAllowedProwlTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 280 + }, + { + "name": "nextAllowedSearchForCoverTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 288 + }, + { + "name": "nextSearchForCoverChangeDistanceTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 296 + }, + { + "name": "currentSearchForCoverDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 304 + }, + { + "name": "lookAtMovementTargetState", + "type_name": "keen::ds::enemy01::LookAtMovementTargetState", + "type_hash": 1934124525, + "data_offset": 305 + }, + { + "name": "unreachableJumpMoveStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 312 + }, + { + "name": "unreachableJumpMoveEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 320 + }, + { + "name": "unreachableJumpMoveState", + "type_name": "keen::ds::enemy01::UnreachableJumpMoveState", + "type_hash": 1453003162, + "data_offset": 328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CirclingState", + "type_name_2": "enemy01.CirclingState", + "qualified_name": "keen::ds::enemy01::CirclingState", + "referenced_type_name": "keen::enemy01::CirclingState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4014767786, + "hash2": 1583681094, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CirclingData", + "type_name_2": "enemy01.CirclingData", + "qualified_name": "keen::ds::enemy01::CirclingData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2022306041, + "hash2": 2075335134, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::enemy01::CirclingState", + "type_hash": 4014767786, + "data_offset": 0 + }, + { + "name": "targetAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "centerPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "direction", + "type_name": "keen::ds::enemy01::CirclingDirection", + "type_hash": 2179036366, + "data_offset": 36 + }, + { + "name": "nextDirectionChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "centerHeightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerType", + "type_name_2": "enemy01.EnemyMarkerType", + "qualified_name": "keen::ds::enemy01::EnemyMarkerType", + "referenced_type_name": "keen::enemy01::EnemyMarkerType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4281954376, + "hash2": 3162702729, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerTypeMask", + "type_name_2": "enemy01.EnemyMarkerTypeMask", + "qualified_name": "keen::ds::enemy01::EnemyMarkerTypeMask", + "referenced_type_name": "keen::enemy01::EnemyMarkerTypeMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1514410336, + "hash2": 2359164882, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetCombatStateAction", + "type_name_2": "enemy01.SetCombatStateAction", + "qualified_name": "keen::ds::enemy01::SetCombatStateAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1313655757, + "hash2": 2813375699, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::enemy01::CombatState", + "type_hash": 4009252271, + "data_offset": 0 + }, + { + "name": "minTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "maxTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetPhaseAction", + "type_name_2": "enemy01.SetPhaseAction", + "qualified_name": "keen::ds::enemy01::SetPhaseAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1944770863, + "hash2": 3455503718, + "struct_fields": [ + { + "name": "newPhase", + "type_name": "keen::ObjectReference", + "type_hash": 3058028847, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SwitchToLastPhaseAction", + "type_name_2": "enemy01.SwitchToLastPhaseAction", + "qualified_name": "keen::ds::enemy01::SwitchToLastPhaseAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1611863076, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SelectAttackAction", + "type_name_2": "enemy01.SelectAttackAction", + "qualified_name": "keen::ds::enemy01::SelectAttackAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1320288136, + "hash2": 3328932239, + "struct_fields": [ + { + "name": "attackStyle", + "type_name": "keen::ds::enemy01::AttackStyle", + "type_hash": 3304789799, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetStunnedAction", + "type_name_2": "enemy01.GetStunnedAction", + "qualified_name": "keen::ds::enemy01::GetStunnedAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1559964631, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetImmuneAction", + "type_name_2": "enemy01.SetImmuneAction", + "qualified_name": "keen::ds::enemy01::SetImmuneAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1759033381, + "hash2": 868052658, + "struct_fields": [ + { + "name": "immune", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Signal", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1957463142, + "hash2": 3052974441, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SignalReference", + "type_name_2": "SignalReference", + "qualified_name": "keen::ds::SignalReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1236084180, + "hash2": 4158088573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SendToggleEventAction", + "type_name_2": "enemy01.SendToggleEventAction", + "qualified_name": "keen::ds::enemy01::SendToggleEventAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3095674426, + "hash2": 267713591, + "struct_fields": [ + { + "name": "triggerId", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerStateConditionAction", + "type_name_2": "enemy01.TriggerStateConditionAction", + "qualified_name": "keen::ds::enemy01::TriggerStateConditionAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4198785574, + "hash2": 1785876203, + "struct_fields": [ + { + "name": "condition", + "type_name": "keen::ds::enemy01::StateCondition", + "type_hash": 1866630492, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RunAwayAction", + "type_name_2": "enemy01.RunAwayAction", + "qualified_name": "keen::ds::enemy01::RunAwayAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3896684995, + "hash2": 634194904, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveForwardAction", + "type_name_2": "enemy01.MoveForwardAction", + "qualified_name": "keen::ds::enemy01::MoveForwardAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1439768818, + "hash2": 315939874, + "struct_fields": [ + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "speed", + "type_name": "keen::ds::ecs::LocomotionSpeedSelector", + "type_hash": 2850176745, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PauseAction", + "type_name_2": "enemy01.PauseAction", + "qualified_name": "keen::ds::enemy01::PauseAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2796037306, + "hash2": 3133419478, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lookAtCombatTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetIdleAnimationAction", + "type_name_2": "enemy01.SetIdleAnimationAction", + "qualified_name": "keen::ds::enemy01::SetIdleAnimationAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 93214940, + "hash2": 4197555255, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetWalkAnimationAction", + "type_name_2": "enemy01.SetWalkAnimationAction", + "qualified_name": "keen::ds::enemy01::SetWalkAnimationAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1187590405, + "hash2": 4197555255, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetMovementSpeedAction", + "type_name_2": "enemy01.SetMovementSpeedAction", + "qualified_name": "keen::ds::enemy01::SetMovementSpeedAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1389701560, + "hash2": 1663519865, + "struct_fields": [ + { + "name": "movementType", + "type_name": "keen::ds::ecs::LocomotionSpeedSelector", + "type_hash": 2850176745, + "data_offset": 0 + }, + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayActionSequenceAction", + "type_name_2": "enemy01.PlayActionSequenceAction", + "qualified_name": "keen::ds::enemy01::PlayActionSequenceAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 710240089, + "hash2": 226340222, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "waitUntilFinished", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeSlopeAlignmentAction", + "type_name_2": "enemy01.ChangeSlopeAlignmentAction", + "qualified_name": "keen::ds::enemy01::ChangeSlopeAlignmentAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3642233892, + "hash2": 3621191883, + "struct_fields": [ + { + "name": "longitudinalFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lateralFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartFlyingAction", + "type_name_2": "enemy01.StartFlyingAction", + "qualified_name": "keen::ds::enemy01::StartFlyingAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1212321555, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnterFlyingStateAction", + "type_name_2": "enemy01.EnterFlyingStateAction", + "qualified_name": "keen::ds::enemy01::EnterFlyingStateAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3086358866, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StopFlyingAction", + "type_name_2": "enemy01.StopFlyingAction", + "qualified_name": "keen::ds::enemy01::StopFlyingAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 467396587, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleAllowFallDownAction", + "type_name_2": "enemy01.ToggleAllowFallDownAction", + "qualified_name": "keen::ds::enemy01::ToggleAllowFallDownAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 134824432, + "hash2": 3890881761, + "struct_fields": [ + { + "name": "allowFallDown", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GuardParentAction", + "type_name_2": "enemy01.GuardParentAction", + "qualified_name": "keen::ds::enemy01::GuardParentAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1931208837, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GuardGroupLeaderAction", + "type_name_2": "enemy01.GuardGroupLeaderAction", + "qualified_name": "keen::ds::enemy01::GuardGroupLeaderAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1392203881, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StopGuardAction", + "type_name_2": "enemy01.StopGuardAction", + "qualified_name": "keen::ds::enemy01::StopGuardAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1940634301, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnableFeatureAction", + "type_name_2": "enemy01.EnableFeatureAction", + "qualified_name": "keen::ds::enemy01::EnableFeatureAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1143352087, + "hash2": 13982769, + "struct_fields": [ + { + "name": "feature", + "type_name": "keen::ds::ecs::EnemyFeature", + "type_hash": 3731511282, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisableFeatureAction", + "type_name_2": "enemy01.DisableFeatureAction", + "qualified_name": "keen::ds::enemy01::DisableFeatureAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2955632218, + "hash2": 13982769, + "struct_fields": [ + { + "name": "feature", + "type_name": "keen::ds::ecs::EnemyFeature", + "type_hash": 3731511282, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetFleeRadiusAction", + "type_name_2": "enemy01.SetFleeRadiusAction", + "qualified_name": "keen::ds::enemy01::SetFleeRadiusAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2174601474, + "hash2": 3911989476, + "struct_fields": [ + { + "name": "fleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectFriendAction", + "type_name_2": "enemy01.SelectFriendAction", + "qualified_name": "keen::ds::enemy01::SelectFriendAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1624999896, + "hash2": 4286938066, + "struct_fields": [ + { + "name": "minHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectEnemyAction", + "type_name_2": "enemy01.SelectEnemyAction", + "qualified_name": "keen::ds::enemy01::SelectEnemyAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3998163920, + "hash2": 4286938066, + "struct_fields": [ + { + "name": "minHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveToTargetAction", + "type_name_2": "enemy01.MoveToTargetAction", + "qualified_name": "keen::ds::enemy01::MoveToTargetAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 452014021, + "hash2": 3835829662, + "struct_fields": [ + { + "name": "targetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "targetType", + "type_name": "keen::ds::ecs::TargetType", + "type_hash": 168829289, + "data_offset": 4 + }, + { + "name": "speed", + "type_name": "keen::ds::ecs::LocomotionSpeedSelector", + "type_hash": 2850176745, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateFlag", + "type_name_2": "actor.StateFlag", + "qualified_name": "keen::ds::actor::StateFlag", + "referenced_type_name": "keen::actor::StateFlag", + "class_size": 1, + "fields_count": 46, + "primitive_type": "Typedef", + "hash1": 200374815, + "hash2": 982131506, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WaitUntilActorStateIsFinished", + "type_name_2": "enemy01.WaitUntilActorStateIsFinished", + "qualified_name": "keen::ds::enemy01::WaitUntilActorStateIsFinished", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 945748949, + "hash2": 1434457326, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::actor::StateFlag", + "type_hash": 200374815, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaitUntilSequenceIsFinished", + "type_name_2": "enemy01.WaitUntilSequenceIsFinished", + "qualified_name": "keen::ds::enemy01::WaitUntilSequenceIsFinished", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3388199446, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetWorldColliderYOffsetAction", + "type_name_2": "enemy01.SetWorldColliderYOffsetAction", + "qualified_name": "keen::ds::enemy01::SetWorldColliderYOffsetAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1847952940, + "hash2": 3808691996, + "struct_fields": [ + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleBlockAction", + "type_name_2": "enemy01.ToggleBlockAction", + "qualified_name": "keen::ds::enemy01::ToggleBlockAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 850569625, + "hash2": 1382960413, + "struct_fields": [ + { + "name": "shouldBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleVerticalLeaningAction", + "type_name_2": "enemy01.ToggleVerticalLeaningAction", + "qualified_name": "keen::ds::enemy01::ToggleVerticalLeaningAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3660910150, + "hash2": 26325731, + "struct_fields": [ + { + "name": "shouldUseVerticalLeaning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetVariableAction", + "type_name_2": "enemy01.SetVariableAction", + "qualified_name": "keen::ds::enemy01::SetVariableAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3805677112, + "hash2": 2474808528, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::ds::enemy01::EnemyVariableReference", + "type_hash": 2888651035, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearVariableAction", + "type_name_2": "enemy01.ClearVariableAction", + "qualified_name": "keen::ds::enemy01::ClearVariableAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1811150329, + "hash2": 1766415084, + "struct_fields": [ + { + "name": "variable", + "type_name": "keen::ds::enemy01::EnemyVariableReference", + "type_hash": 2888651035, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetCirclingRadiusAction", + "type_name_2": "enemy01.SetCirclingRadiusAction", + "qualified_name": "keen::ds::enemy01::SetCirclingRadiusAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 907160581, + "hash2": 2056850052, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetCirclingHeightOffsetAction", + "type_name_2": "enemy01.SetCirclingHeightOffsetAction", + "qualified_name": "keen::ds::enemy01::SetCirclingHeightOffsetAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3818330771, + "hash2": 15715694, + "struct_fields": [ + { + "name": "heightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveToCirclingTargetAction", + "type_name_2": "enemy01.MoveToCirclingTargetAction", + "qualified_name": "keen::ds::enemy01::MoveToCirclingTargetAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 764955286, + "hash2": 1162545752, + "struct_fields": [ + { + "name": "speed", + "type_name": "keen::ds::ecs::LocomotionSpeedSelector", + "type_hash": 2850176745, + "data_offset": 0 + }, + { + "name": "maxArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "keepCurrentDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TurnToCirclingTargetAction", + "type_name_2": "enemy01.TurnToCirclingTargetAction", + "qualified_name": "keen::ds::enemy01::TurnToCirclingTargetAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3680616564, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoreCurrentCirclingTargetAngleAction", + "type_name_2": "enemy01.StoreCurrentCirclingTargetAngleAction", + "qualified_name": "keen::ds::enemy01::StoreCurrentCirclingTargetAngleAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2811207891, + "hash2": 3490585186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoreCirclingPositionAsTargetAction", + "type_name_2": "enemy01.StoreCirclingPositionAsTargetAction", + "qualified_name": "keen::ds::enemy01::StoreCirclingPositionAsTargetAction", + "referenced_type_name": "keen::ds::enemy01::Action", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3008456856, + "hash2": 2130939792, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ds::ecs::TargetType", + "type_hash": 168829289, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "angleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy01::AttackDesscriptionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 594594314, + "hash2": 4254720584, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackReference", + "type_name_2": "ecs.AttackReference", + "qualified_name": "keen::ds::ecs::AttackReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2992688761, + "hash2": 2501879858, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy01::AttackDesscription", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3088426582, + "hash2": 3373678604, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDescriptionReference", + "type_name_2": "ecs.AttackDescriptionReference", + "qualified_name": "keen::ds::ecs::AttackDescriptionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3458772539, + "hash2": 440573484, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackReferenceDescription", + "type_name_2": "ecs.AttackReferenceDescription", + "qualified_name": "keen::ds::ecs::AttackReferenceDescription", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 691920653, + "hash2": 4273070047, + "struct_fields": [ + { + "name": "attack", + "type_name": "keen::ds::ecs::AttackDescriptionReference", + "type_hash": 3458772539, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenal", + "type_name_2": "ecs.EnemyArsenal", + "qualified_name": "keen::ds::ecs::EnemyArsenal", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3964301490, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionTypeMask", + "type_name_2": "ecs.HitReactionTypeMask", + "qualified_name": "keen::ds::ecs::HitReactionTypeMask", + "referenced_type_name": "keen::ecs::HitReactionTypeMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1389116490, + "hash2": 799551981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Enemy01BehaviorState", + "type_name_2": "ecs.Enemy01BehaviorState", + "qualified_name": "keen::ds::ecs::Enemy01BehaviorState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1280, + "fields_count": 31, + "primitive_type": "Struct", + "hash1": 3252028194, + "hash2": 1264739913, + "struct_fields": [ + { + "name": "combatSetup", + "type_name": "keen::ds::enemy01::CombatSetup", + "type_hash": 4178850167, + "data_offset": 0 + }, + { + "name": "homeZoneSetup", + "type_name": "keen::ds::enemy01::HomeZoneSetup", + "type_hash": 2987854324, + "data_offset": 208 + }, + { + "name": "aggroSetup", + "type_name": "keen::ds::enemy01::AggroSetup", + "type_hash": 1563524657, + "data_offset": 212 + }, + { + "name": "callForHelpSetup", + "type_name": "keen::ds::enemy01::CallForHelpSetup", + "type_hash": 3414083467, + "data_offset": 300 + }, + { + "name": "roamingSetup", + "type_name": "keen::ds::enemy01::RoamingSetup", + "type_hash": 103804634, + "data_offset": 312 + }, + { + "name": "fleeSetup", + "type_name": "keen::ds::enemy01::FleeSetup", + "type_hash": 3359250175, + "data_offset": 376 + }, + { + "name": "blockingSetup", + "type_name": "keen::ds::enemy01::BlockingSetup", + "type_hash": 3710739510, + "data_offset": 408 + }, + { + "name": "noiseListenerSetup", + "type_name": "keen::ds::enemy01::NoiseListenerSetup", + "type_hash": 1580078645, + "data_offset": 504 + }, + { + "name": "steeringSetup", + "type_name": "keen::ds::enemy01::SteeringSetup", + "type_hash": 4120683630, + "data_offset": 528 + }, + { + "name": "prowlSetup", + "type_name": "keen::ds::enemy01::ProwlSetup", + "type_hash": 827138147, + "data_offset": 544 + }, + { + "name": "parrySetup", + "type_name": "keen::ds::enemy01::ParrySetup", + "type_hash": 1267410189, + "data_offset": 600 + }, + { + "name": "movementSetup", + "type_name": "keen::ds::enemy01::MovementSetup", + "type_hash": 353564152, + "data_offset": 652 + }, + { + "name": "guardSetup", + "type_name": "keen::ds::enemy01::GuardSetup", + "type_hash": 3167352496, + "data_offset": 676 + }, + { + "name": "interactionSetup", + "type_name": "keen::ds::enemy01::InteractionSetup", + "type_hash": 629471963, + "data_offset": 688 + }, + { + "name": "patrolSetup", + "type_name": "keen::ds::enemy01::PatrolSetup", + "type_hash": 2977473681, + "data_offset": 704 + }, + { + "name": "tauntSetup", + "type_name": "keen::ds::enemy01::TauntSetup", + "type_hash": 1107675335, + "data_offset": 776 + }, + { + "name": "turnSetup", + "type_name": "keen::ds::enemy01::TurnSetup", + "type_hash": 3421658110, + "data_offset": 808 + }, + { + "name": "searchForCoverSetup", + "type_name": "keen::ds::enemy01::SearchForCoverSetup", + "type_hash": 105014485, + "data_offset": 912 + }, + { + "name": "sleepSetup", + "type_name": "keen::ds::enemy01::SleepSetup", + "type_hash": 1217063802, + "data_offset": 952 + }, + { + "name": "runAroundSetup", + "type_name": "keen::ds::enemy01::RunAroundSetup", + "type_hash": 3163784343, + "data_offset": 1048 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::ds::enemy01::PathNodeSetup", + "type_hash": 3313797174, + "data_offset": 1072 + }, + { + "name": "circlingSetup", + "type_name": "keen::ds::enemy01::CirclingSetup", + "type_hash": 3406359882, + "data_offset": 1176 + }, + { + "name": "callForHelpSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 1208 + }, + { + "name": "spawnSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 1224 + }, + { + "name": "enemyClass", + "type_name": "keen::ds::enemy01::EnemyClass", + "type_hash": 3715263482, + "data_offset": 1240 + }, + { + "name": "enabledFeatures", + "type_name": "keen::ds::ecs::EnemyFeatureMask", + "type_hash": 2397660346, + "data_offset": 1244 + }, + { + "name": "threatFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1248 + }, + { + "name": "deathSignal", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 1252 + }, + { + "name": "pushBackScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1268 + }, + { + "name": "disabledHitReactions", + "type_name": "keen::ds::ecs::HitReactionTypeMask", + "type_hash": 1389116490, + "data_offset": 1272 + }, + { + "name": "maxHeightDiff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1276 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlyingEnemy", + "type_name_2": "ecs.FlyingEnemy", + "qualified_name": "keen::ds::ecs::FlyingEnemy", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 977213501, + "hash2": 989835186, + "struct_fields": [ + { + "name": "minRoamingHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxRoamingHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minFlyHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxFlyHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "landingHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "attackHeightOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "combatIdleHeightOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "defaultArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "attackArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "attackWhileGrounded", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "idleAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemy01BehaviorState", + "type_name_2": "ecs.DynamicEnemy01BehaviorState", + "qualified_name": "keen::ds::ecs::DynamicEnemy01BehaviorState", + "referenced_type_name": null, + "class_size": 1016, + "fields_count": 51, + "primitive_type": "Struct", + "hash1": 3885715875, + "hash2": 48398320, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::enemy01::State", + "type_hash": 4076949739, + "data_offset": 0 + }, + { + "name": "stateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "homeZonePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "movementTargetIsValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "movementTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "movementStartPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 44 + }, + { + "name": "movementStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "combatData", + "type_name": "keen::ds::enemy01::CombatData", + "type_hash": 1404422602, + "data_offset": 64 + }, + { + "name": "circlingData", + "type_name": "keen::ds::enemy01::CirclingData", + "type_hash": 2022306041, + "data_offset": 400 + }, + { + "name": "variableStates", + "type_name": "keen::ds::enemy01::EnemyVariableStates", + "type_hash": 3171922144, + "data_offset": 456 + }, + { + "name": "nextAllowedRoamingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 536 + }, + { + "name": "targetCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 544 + }, + { + "name": "lastBehaviorCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 552 + }, + { + "name": "lastBehaviorExecutionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 560 + }, + { + "name": "nextBehaviorCheckTime", + "type_name": "keen::StaticArray", + "type_hash": 2461234204, + "data_offset": 568 + }, + { + "name": "currentBehaviorIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 824 + }, + { + "name": "currentBehaviorActionIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 825 + }, + { + "name": "callForHelpQueryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 828 + }, + { + "name": "callForHelpTargetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 832 + }, + { + "name": "lastHelpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 840 + }, + { + "name": "returnHomeStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 848 + }, + { + "name": "executedStates", + "type_name": "keen::ds::enemy01::StateMask", + "type_hash": 828510783, + "data_offset": 856 + }, + { + "name": "dashQueryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 860 + }, + { + "name": "noiseEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 864 + }, + { + "name": "projectileEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 868 + }, + { + "name": "controlledByAttacks", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 872 + }, + { + "name": "nextAllowedCombatIdleRotationTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 880 + }, + { + "name": "teleportPositionFound", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 888 + }, + { + "name": "currentIdleAnimation", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 892 + }, + { + "name": "currentWalkAnimation", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 896 + }, + { + "name": "currentLongitudinalSlopeAlignmentFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 900 + }, + { + "name": "currentLateralSlopeAlignmentFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 904 + }, + { + "name": "guardEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 908 + }, + { + "name": "currentGuardTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 912 + }, + { + "name": "currentMarkerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 916 + }, + { + "name": "nextAllowedInteractionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 920 + }, + { + "name": "nextAllowedPatrolTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 928 + }, + { + "name": "nextCheckGuardTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 936 + }, + { + "name": "nextCheckTauntTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 944 + }, + { + "name": "nextAllowedCombatIdleTurnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 952 + }, + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 960 + }, + { + "name": "lastNoisePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 964 + }, + { + "name": "shouldBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 976 + }, + { + "name": "isWalkBlockActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 977 + }, + { + "name": "isAttackMove", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 978 + }, + { + "name": "isVerticalLeaningActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 979 + }, + { + "name": "enabledFeatures", + "type_name": "keen::ds::ecs::EnemyFeatureMask", + "type_hash": 2397660346, + "data_offset": 980 + }, + { + "name": "disabledFeatures", + "type_name": "keen::ds::ecs::EnemyFeatureMask", + "type_hash": 2397660346, + "data_offset": 984 + }, + { + "name": "nextSleepCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 992 + }, + { + "name": "sleepEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 1000 + }, + { + "name": "parriedByEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 1008 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnitMode", + "type_name_2": "ecs.UnitMode", + "qualified_name": "keen::ds::ecs::UnitMode", + "referenced_type_name": "keen::ecs::UnitMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3252883789, + "hash2": 1325224341, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnitTransformer", + "type_name_2": "ecs.UnitTransformer", + "qualified_name": "keen::ds::ecs::UnitTransformer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 712465737, + "hash2": 3293014542, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::ecs::UnitMode", + "type_hash": 3252883789, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerCountScaling", + "type_name_2": "ecs.PlayerCountScaling", + "qualified_name": "keen::ds::ecs::PlayerCountScaling", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2775438897, + "hash2": 767406744, + "struct_fields": [ + { + "name": "scaleHealth", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "scaleDamage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "scaleStamina", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "healthScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "damageScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "staminaScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "allowDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "minPlayerCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyLevelScaling", + "type_name_2": "ecs.EnemyLevelScaling", + "qualified_name": "keen::ds::ecs::EnemyLevelScaling", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 675336827, + "hash2": 890164757, + "struct_fields": [ + { + "name": "healthScaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "staminaScaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyScaling", + "type_name_2": "ecs.EnemyScaling", + "qualified_name": "keen::ds::ecs::EnemyScaling", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2405365689, + "hash2": 3795694214, + "struct_fields": [ + { + "name": "updateInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "playerCountScaling", + "type_name": "keen::ds::ecs::PlayerCountScaling", + "type_hash": 2775438897, + "data_offset": 8 + }, + { + "name": "enemyLevelScaling", + "type_name": "keen::ds::ecs::EnemyLevelScaling", + "type_hash": 675336827, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyScaling", + "type_name_2": "ecs.DynamicEnemyScaling", + "qualified_name": "keen::ds::ecs::DynamicEnemyScaling", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3051797808, + "hash2": 3098758859, + "struct_fields": [ + { + "name": "nextUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "lastTargets", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "lastLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "lastDamageMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "initialBaseMaxHealth", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 20 + }, + { + "name": "initialBaseStrength", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + }, + { + "name": "initialBaseDexterity", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "initialBaseIntelligence", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerEntry", + "type_name_2": "ecs.EnemyMarkerEntry", + "qualified_name": "keen::ds::ecs::EnemyMarkerEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1137225702, + "hash2": 2332689893, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "markerType", + "type_name": "keen::ds::enemy01::EnemyMarkerType", + "type_hash": 4281954376, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EnemyMarkerEntry[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EnemyMarkerEntry", + "class_size": 160, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 4277176518, + "hash2": 1491651185, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarkerCheck", + "type_name_2": "ecs.EnemyMarkerCheck", + "qualified_name": "keen::ds::ecs::EnemyMarkerCheck", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 176, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 137764462, + "hash2": 1453930317, + "struct_fields": [ + { + "name": "checkDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 4 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "markers", + "type_name": "keen::StaticArray", + "type_hash": 4277176518, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyMarker", + "type_name_2": "ecs.EnemyMarker", + "qualified_name": "keen::ds::ecs::EnemyMarker", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 80, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3768785662, + "hash2": 2210152281, + "struct_fields": [ + { + "name": "markerType", + "type_name": "keen::ds::enemy01::EnemyMarkerType", + "type_hash": 4281954376, + "data_offset": 0 + }, + { + "name": "defaultInteractSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 4 + }, + { + "name": "useTargetOffset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "targetOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 24 + }, + { + "name": "arriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "alarmRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "usePatrolPointDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + }, + { + "name": "attackTargets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "maxUsers", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 74 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 75 + }, + { + "name": "minTargetHorizontalSpace", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LastEnemyValue", + "type_name_2": "ecs.LastEnemyValue", + "qualified_name": "keen::ds::ecs::LastEnemyValue", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 473397741, + "hash2": 2918699507, + "struct_fields": [ + { + "name": "lastEnemyValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyMarker", + "type_name_2": "ecs.DynamicEnemyMarker", + "qualified_name": "keen::ds::ecs::DynamicEnemyMarker", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1552556645, + "hash2": 1050616713, + "struct_fields": [ + { + "name": "users", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::EnemyArsenal", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2219351763, + "hash2": 3799593922, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalReference", + "type_name_2": "ecs.EnemyArsenalReference", + "qualified_name": "keen::ds::ecs::EnemyArsenalReference", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3886029863, + "hash2": 631899938, + "struct_fields": [ + { + "name": "arsenal", + "type_name": "keen::ObjectReference", + "type_hash": 2219351763, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAttackAttachment", + "type_name_2": "ecs.EnemyAttackAttachment", + "qualified_name": "keen::ds::ecs::EnemyAttackAttachment", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2168758813, + "hash2": 249389136, + "struct_fields": [ + { + "name": "initialSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAttackAttachmentState", + "type_name_2": "ecs.EnemyAttackAttachmentState", + "qualified_name": "keen::ds::ecs::EnemyAttackAttachmentState", + "referenced_type_name": "keen::ecs::EnemyAttackAttachmentState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1543823646, + "hash2": 225182130, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyAttackAttachment", + "type_name_2": "ecs.DynamicEnemyAttackAttachment", + "qualified_name": "keen::ds::ecs::DynamicEnemyAttackAttachment", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 186668970, + "hash2": 3924723855, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::ecs::EnemyAttackAttachmentState", + "type_hash": 1543823646, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "enemy01.AttackDesscriptionResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::enemy01::AttackDesscriptionResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1759725904, + "hash2": 3788880280, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "enemy01.BehaviorDesscriptionResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::enemy01::BehaviorDesscriptionResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 146948246, + "hash2": 3847832611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenal", + "type_name_2": "enemy.EnemyArsenal", + "qualified_name": "keen::ds::enemy::EnemyArsenal", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 52498655, + "hash2": 3332995162, + "struct_fields": [ + { + "name": "attacks", + "type_name": "keen::DsArray", + "type_hash": 1759725904, + "data_offset": 0 + }, + { + "name": "behaviors", + "type_name": "keen::DsArray", + "type_hash": 146948246, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalResource", + "type_name_2": "enemy.EnemyArsenalResource", + "qualified_name": "keen::ds::enemy::EnemyArsenalResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3370762043, + "hash2": 3600204805, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "attacks", + "type_name": "keen::DsArray", + "type_hash": 1759725904, + "data_offset": 16 + }, + { + "name": "behaviors", + "type_name": "keen::DsArray", + "type_hash": 146948246, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalSubDirectory", + "type_name_2": "enemy.EnemyArsenalSubDirectory", + "qualified_name": "keen::ds::enemy::EnemyArsenalSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3883792850, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalDirectory", + "type_name_2": "enemy.EnemyArsenalDirectory", + "qualified_name": "keen::ds::enemy::EnemyArsenalDirectory", + "referenced_type_name": "keen::ds::enemy::EnemyArsenalSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2912344374, + "hash2": 3769759096, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "enemy.EnemyArsenalResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::enemy::EnemyArsenalResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3201449346, + "hash2": 4045148716, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyArsenalRegistryResource", + "type_name_2": "enemy.EnemyArsenalRegistryResource", + "qualified_name": "keen::ds::enemy::EnemyArsenalRegistryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2110033692, + "hash2": 1566783400, + "struct_fields": [ + { + "name": "arsenals", + "type_name": "keen::DsArray", + "type_hash": 3201449346, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KillEnemyMessage", + "type_name_2": "enemy01_debug.KillEnemyMessage", + "qualified_name": "keen::ds::enemy01_debug::KillEnemyMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2615864777, + "hash2": 1812712381, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnforceEnemyAttackMessage", + "type_name_2": "enemy01_debug.EnforceEnemyAttackMessage", + "qualified_name": "keen::ds::enemy01_debug::EnforceEnemyAttackMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1384997271, + "hash2": 3165672796, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "attackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleDisableEnemyAttackMessage", + "type_name_2": "enemy01_debug.ToggleDisableEnemyAttackMessage", + "qualified_name": "keen::ds::enemy01_debug::ToggleDisableEnemyAttackMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1443032937, + "hash2": 2068399319, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "attackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "disabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetTameStateMessage", + "type_name_2": "enemy01_debug.SetTameStateMessage", + "qualified_name": "keen::ds::enemy01_debug::SetTameStateMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2643552595, + "hash2": 1088689385, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "tamed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetFrozenStateMessage", + "type_name_2": "enemy01_debug.SetFrozenStateMessage", + "qualified_name": "keen::ds::enemy01_debug::SetFrozenStateMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 468574556, + "hash2": 1186317032, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "frozen", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugAnimationGraphMessage", + "type_name_2": "enemy01_debug.DebugAnimationGraphMessage", + "qualified_name": "keen::ds::enemy01_debug::DebugAnimationGraphMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 75531606, + "hash2": 1812712381, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetStateMessage", + "type_name_2": "enemy01_debug.SetStateMessage", + "qualified_name": "keen::ds::enemy01_debug::SetStateMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3057494382, + "hash2": 2732319797, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::ds::enemy01::State", + "type_hash": 4076949739, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnforcePhaseMessage", + "type_name_2": "enemy01_debug.EnforcePhaseMessage", + "qualified_name": "keen::ds::enemy01_debug::EnforcePhaseMessage", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 931677422, + "hash2": 1442430713, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "phaseId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugAttackState", + "type_name_2": "enemy01.DebugAttackState", + "qualified_name": "keen::ds::enemy01::DebugAttackState", + "referenced_type_name": null, + "class_size": 9, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2578481130, + "hash2": 262817833, + "struct_fields": [ + { + "name": "constraintStates", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 0 + }, + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugBehaviorState", + "type_name_2": "enemy01.DebugBehaviorState", + "qualified_name": "keen::ds::enemy01::DebugBehaviorState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3250481340, + "hash2": 734363312, + "struct_fields": [ + { + "name": "constraintStates", + "type_name": "keen::StaticArray", + "type_hash": 3501660774, + "data_offset": 0 + }, + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "executionCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateEntry", + "type_name_2": "enemy01.StateEntry", + "qualified_name": "keen::ds::enemy01::StateEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1723317493, + "hash2": 1947457209, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::enemy01::State", + "type_hash": 4076949739, + "data_offset": 0 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatStateEntry", + "type_name_2": "enemy01.CombatStateEntry", + "qualified_name": "keen::ds::enemy01::CombatStateEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2661390585, + "hash2": 1521061716, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::enemy01::CombatState", + "type_hash": 4009252271, + "data_offset": 0 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.DebugAttackState[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::enemy01::DebugAttackState", + "class_size": 144, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1847824219, + "hash2": 1108931281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.DebugBehaviorState[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::enemy01::DebugBehaviorState", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 482185611, + "hash2": 1714451533, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.StateEntry[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::enemy01::StateEntry", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3914573143, + "hash2": 3222039842, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "enemy01.CombatStateEntry[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::enemy01::CombatStateEntry", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1694757343, + "hash2": 4271368850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyDebug", + "type_name_2": "ecs.EnemyDebug", + "qualified_name": "keen::ds::ecs::EnemyDebug", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 960, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4103128691, + "hash2": 3586130071, + "struct_fields": [ + { + "name": "enforcedAttackIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "disabledAttacks", + "type_name": "keen::StaticArray", + "type_hash": 953321333, + "data_offset": 8 + }, + { + "name": "tamed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "frozen", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "attackStates", + "type_name": "keen::StaticArray", + "type_hash": 1847824219, + "data_offset": 18 + }, + { + "name": "behaviorStates", + "type_name": "keen::StaticArray", + "type_hash": 482185611, + "data_offset": 164 + }, + { + "name": "stateHistory", + "type_name": "keen::StaticArray", + "type_hash": 3914573143, + "data_offset": 680 + }, + { + "name": "combatStateHistory", + "type_name": "keen::StaticArray", + "type_hash": 1694757343, + "data_offset": 808 + }, + { + "name": "nextState", + "type_name": "keen::ds::enemy01::State", + "type_hash": 4076949739, + "data_offset": 936 + }, + { + "name": "enforcedPhase", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 940 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyTest", + "type_name_2": "ecs.EnemyTest", + "qualified_name": "keen::ds::ecs::EnemyTest", + "referenced_type_name": "keen::ecs::EnemyTest", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3599935856, + "hash2": 4285579275, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyTestFlags", + "type_name_2": "ecs.EnemyTestFlags", + "qualified_name": "keen::ds::ecs::EnemyTestFlags", + "referenced_type_name": "keen::ecs::EnemyTestFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 557893283, + "hash2": 1086428236, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyPatrolTest", + "type_name_2": "ecs.EnemyPatrolTest", + "qualified_name": "keen::ds::ecs::EnemyPatrolTest", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3050498402, + "hash2": 4109626927, + "struct_fields": [ + { + "name": "hasReachedPatrolPoint0", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "hasReachedPatrolPoint1", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyTestToggle", + "type_name_2": "ecs.EnemyTestToggle", + "qualified_name": "keen::ds::ecs::EnemyTestToggle", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2076155740, + "hash2": 1470336245, + "struct_fields": [ + { + "name": "tests", + "type_name": "keen::ds::ecs::EnemyTestFlags", + "type_hash": 557893283, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 96, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 2376844352, + "hash2": 2386634224, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnitGroup", + "type_name_2": "ecs.UnitGroup", + "qualified_name": "keen::ds::ecs::UnitGroup", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1682507225, + "hash2": 1695758903, + "struct_fields": [ + { + "name": "members", + "type_name": "keen::StaticArray", + "type_hash": 2376844352, + "data_offset": 0 + }, + { + "name": "nextUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnitGroupMember", + "type_name_2": "ecs.UnitGroupMember", + "qualified_name": "keen::ds::ecs::UnitGroupMember", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2240306327, + "hash2": 1155303410, + "struct_fields": [ + { + "name": "groupId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "groupLeaderId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "memberIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "wildlife.State", + "qualified_name": "keen::ds::wildlife::State", + "referenced_type_name": "keen::wildlife::State", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4163313946, + "hash2": 2527549943, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "wildlife.StateCondition", + "qualified_name": "keen::ds::wildlife::StateCondition", + "referenced_type_name": "keen::wildlife::StateCondition", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 339048431, + "hash2": 650440420, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Feature", + "type_name_2": "wildlife.Feature", + "qualified_name": "keen::ds::wildlife::Feature", + "referenced_type_name": "keen::wildlife::Feature", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3713142273, + "hash2": 1632509373, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FeatureMask", + "type_name_2": "wildlife.FeatureMask", + "qualified_name": "keen::ds::wildlife::FeatureMask", + "referenced_type_name": "keen::wildlife::FeatureMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 243547581, + "hash2": 810728438, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MovementSetup", + "type_name_2": "wildlife.MovementSetup", + "qualified_name": "keen::ds::wildlife::MovementSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4012143113, + "hash2": 659922511, + "struct_fields": [ + { + "name": "maxMovementAngleDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxMovementAngleFlee", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxMovementAngleRoaming", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxMovementAngleLanding", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GlidingSetup", + "type_name_2": "wildlife.GlidingSetup", + "qualified_name": "keen::ds::wildlife::GlidingSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1022319146, + "hash2": 523358988, + "struct_fields": [ + { + "name": "minGlidingDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxGlidingDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeSetup", + "type_name_2": "wildlife.PathNodeSetup", + "qualified_name": "keen::ds::wildlife::PathNodeSetup", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1368034779, + "hash2": 84103868, + "struct_fields": [ + { + "name": "defaultCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 0 + }, + { + "name": "roamingCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TamingSetup", + "type_name_2": "wildlife.TamingSetup", + "qualified_name": "keen::ds::wildlife::TamingSetup", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3584626948, + "hash2": 495521997, + "struct_fields": [ + { + "name": "favoriteFood", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "necessaryTamingSteps", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "foodBaitSensorRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "foodBaitAngleCheckMinDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "foodBaitEatMaxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "alertDurationHigh", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "alertDurationMediumFoodEat", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "foodBaitEatAdaptFleeRadiusDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "tamingApproachFinishedFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "foodBaitEatSnoutPivotDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WildlifeTurnSetup", + "type_name_2": "ecs.WildlifeTurnSetup", + "qualified_name": "keen::ds::ecs::WildlifeTurnSetup", + "referenced_type_name": "keen::ds::actor::TurnSetup", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2436897774, + "hash2": 1966206797, + "struct_fields": [ + { + "name": "useTurnSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Wildlife", + "type_name_2": "ecs.Wildlife", + "qualified_name": "keen::ds::ecs::Wildlife", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 440, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 3211717926, + "hash2": 4166018817, + "struct_fields": [ + { + "name": "spawnSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "idleAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 16 + }, + { + "name": "minIdleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "maxIdleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "minRoamingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "maxRoamingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "minFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "maxFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "fallbackFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "maxMovementRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "secureIdleAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 72 + }, + { + "name": "minFeelSecureDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "maxFeelSecureDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "callForHelpChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "callForHelpSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 108 + }, + { + "name": "listenRangeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "enabledFeatures", + "type_name": "keen::ds::wildlife::FeatureMask", + "type_hash": 243547581, + "data_offset": 128 + }, + { + "name": "movementSetup", + "type_name": "keen::ds::wildlife::MovementSetup", + "type_hash": 4012143113, + "data_offset": 132 + }, + { + "name": "glidingSetup", + "type_name": "keen::ds::wildlife::GlidingSetup", + "type_hash": 1022319146, + "data_offset": 148 + }, + { + "name": "turnSetup", + "type_name": "keen::ds::ecs::WildlifeTurnSetup", + "type_hash": 2436897774, + "data_offset": 156 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::ds::wildlife::PathNodeSetup", + "type_hash": 1368034779, + "data_offset": 232 + }, + { + "name": "tamingSetup", + "type_name": "keen::ds::wildlife::TamingSetup", + "type_hash": 3584626948, + "data_offset": 336 + }, + { + "name": "tamingPetInteractionSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 408 + }, + { + "name": "tamingPetInteractionVerbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 424 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AlertState", + "type_name_2": "ecs.AlertState", + "qualified_name": "keen::ds::ecs::AlertState", + "referenced_type_name": "keen::ecs::AlertState", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 529349931, + "hash2": 2355752949, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicWildlife", + "type_name_2": "ecs.DynamicWildlife", + "qualified_name": "keen::ds::ecs::DynamicWildlife", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 4193107203, + "hash2": 2213237878, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::wildlife::State", + "type_hash": 4163313946, + "data_offset": 0 + }, + { + "name": "lastState", + "type_name": "keen::ds::wildlife::State", + "type_hash": 4163313946, + "data_offset": 1 + }, + { + "name": "feelSecureDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastFleeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "spawnPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "idleEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "lastStateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "dangerOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "runAwayDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "currentTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "keepRoamingTargetUntilTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "foodBaitEatTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "previousAlertState", + "type_name": "keen::ds::ecs::AlertState", + "type_hash": 529349931, + "data_offset": 104 + }, + { + "name": "alertTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "foodBaitNeedinessTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + }, + { + "name": "foodBaitReactionTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "tamingShrinkRadiusTimerStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + }, + { + "name": "foodBaitEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 144 + }, + { + "name": "tamingProgress", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 148 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkWildlife", + "type_name_2": "ecs.NetworkWildlife", + "qualified_name": "keen::ds::ecs::NetworkWildlife", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3672697100, + "hash2": 2007075388, + "struct_fields": [ + { + "name": "alertState", + "type_name": "keen::ds::ecs::AlertState", + "type_hash": 529349931, + "data_offset": 0 + }, + { + "name": "alertTimeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "tamingProgress", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "isEatingFoodBait", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WildlifeTransformer", + "type_name_2": "ecs.WildlifeTransformer", + "qualified_name": "keen::ds::ecs::WildlifeTransformer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2228393801, + "hash2": 320186563, + "struct_fields": [ + { + "name": "timeWithoutHit", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "minDurationWithoutHit", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEffectPlaybackType", + "type_name_2": "AmbientEffectPlaybackType", + "qualified_name": "keen::ds::AmbientEffectPlaybackType", + "referenced_type_name": "keen::AmbientEffectPlaybackType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2877901577, + "hash2": 1835256893, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEffectEntry", + "type_name_2": "AmbientEffectEntry", + "qualified_name": "keen::ds::AmbientEffectEntry", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2439892564, + "hash2": 4202599686, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ObjectReference", + "type_hash": 3872620910, + "data_offset": 16 + }, + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "playbackType", + "type_name": "keen::ds::AmbientEffectPlaybackType", + "type_hash": 2877901577, + "data_offset": 33 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Biome", + "type_name_2": "Biome", + "qualified_name": "keen::ds::Biome", + "referenced_type_name": "keen::Biome", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Typedef", + "hash1": 3017524025, + "hash2": 314334560, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientEffect", + "type_name_2": "AmbientEffect", + "qualified_name": "keen::ds::AmbientEffect", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 819695904, + "hash2": 2627760965, + "struct_fields": [ + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 1 + }, + { + "name": "mute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectEntryResource", + "type_name_2": "AmbientSoundEffectEntryResource", + "qualified_name": "keen::ds::AmbientSoundEffectEntryResource", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2632173131, + "hash2": 2741588009, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ds::IngameTimeSpanReference", + "type_hash": 170115480, + "data_offset": 16 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 72 + }, + { + "name": "soundContainerDescription", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 112 + }, + { + "name": "ingameTimeSpanDescription", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 152 + }, + { + "name": "playbackType", + "type_name": "keen::ds::AmbientEffectPlaybackType", + "type_hash": 2877901577, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AmbientSoundEffectEntryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AmbientSoundEffectEntryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3959376710, + "hash2": 3620337531, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientSoundEffectResource", + "type_name_2": "AmbientSoundEffectResource", + "qualified_name": "keen::ds::AmbientSoundEffectResource", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1104231009, + "hash2": 210205946, + "struct_fields": [ + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 2 + }, + { + "name": "effectEntries", + "type_name": "keen::DsArray", + "type_hash": 3959376710, + "data_offset": 8 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffectEntry", + "type_name_2": "AmbientVfxEffectEntry", + "qualified_name": "keen::ds::AmbientVfxEffectEntry", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3972402518, + "hash2": 1296975424, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ds::IngameTimeSpanReference", + "type_hash": 170115480, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffect", + "type_name_2": "AmbientVfxEffect", + "qualified_name": "keen::ds::AmbientVfxEffect", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3930390446, + "hash2": 1015060615, + "struct_fields": [ + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 1 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffectEntryResource", + "type_name_2": "AmbientVfxEffectEntryResource", + "qualified_name": "keen::ds::AmbientVfxEffectEntryResource", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3579955694, + "hash2": 2487611366, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + }, + { + "name": "ingameTimeSpan", + "type_name": "keen::ds::IngameTimeSpanReference", + "type_hash": 170115480, + "data_offset": 16 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 64 + }, + { + "name": "vfxDescription", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 104 + }, + { + "name": "ingameTimeSpanDescription", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AmbientVfxEffectEntryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AmbientVfxEffectEntryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2409824169, + "hash2": 1346277164, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AmbientVfxEffectResource", + "type_name_2": "AmbientVfxEffectResource", + "qualified_name": "keen::ds::AmbientVfxEffectResource", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4120922230, + "hash2": 158894441, + "struct_fields": [ + { + "name": "effectEntries", + "type_name": "keen::DsArray", + "type_hash": 2409824169, + "data_offset": 0 + }, + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 40 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 44 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 64 + }, + { + "name": "whenInFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "inAllBiomes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 105 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackEffect2", + "type_name_2": "CollisionFeedbackEffect2", + "qualified_name": "keen::ds::CollisionFeedbackEffect2", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 273582275, + "hash2": 3235032551, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 4 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 20 + }, + { + "name": "ecsOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 36 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "overrideSlot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 78 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 79 + }, + { + "name": "playOnlyLocalSFX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "useRootPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 81 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackEffectCollection2", + "type_name_2": "CollisionFeedbackEffectCollection2", + "qualified_name": "keen::ds::CollisionFeedbackEffectCollection2", + "referenced_type_name": null, + "class_size": 672, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3613082507, + "hash2": 2005358944, + "struct_fields": [ + { + "name": "onHit", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 0 + }, + { + "name": "onCriticalHit", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 84 + }, + { + "name": "onBlock", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 168 + }, + { + "name": "onBrokenBlock", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 252 + }, + { + "name": "onIneffective", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 336 + }, + { + "name": "onImmune", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 420 + }, + { + "name": "onFlattening", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 504 + }, + { + "name": "onPileUp", + "type_name": "keen::ds::CollisionFeedbackEffect2", + "type_hash": 273582275, + "data_offset": 588 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CollisionFeedbackEffectCollection2", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4007448378, + "hash2": 2609622767, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackEffectCollectionReference", + "type_name_2": "CollisionFeedbackEffectCollectionReference", + "qualified_name": "keen::ds::CollisionFeedbackEffectCollectionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1237257408, + "hash2": 1223761294, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventType", + "type_name_2": "MaterialFeedbackEventType", + "qualified_name": "keen::ds::MaterialFeedbackEventType", + "referenced_type_name": "keen::MaterialFeedbackEventType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 888338015, + "hash2": 2436001920, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventMask", + "type_name_2": "MaterialFeedbackEventMask", + "qualified_name": "keen::ds::MaterialFeedbackEventMask", + "referenced_type_name": "keen::MaterialFeedbackEventMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3482530115, + "hash2": 1155958277, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEffectSize", + "type_name_2": "MaterialFeedbackEffectSize", + "qualified_name": "keen::ds::MaterialFeedbackEffectSize", + "referenced_type_name": "keen::MaterialFeedbackEffectSize", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1023202709, + "hash2": 2206741648, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FoleyEffectCollection", + "type_name_2": "FoleyEffectCollection", + "qualified_name": "keen::ds::FoleyEffectCollection", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1304895487, + "hash2": 4015194171, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 0 + }, + { + "name": "evade", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 40 + }, + { + "name": "jump", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 56 + }, + { + "name": "run", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 72 + }, + { + "name": "sprint", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 88 + }, + { + "name": "walk", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectBase", + "type_name_2": "EnvironmentEffectBase", + "qualified_name": "keen::ds::EnvironmentEffectBase", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2511144788, + "hash2": 2305850606, + "struct_fields": [ + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectType", + "type_name_2": "EnvironmentEffectType", + "qualified_name": "keen::ds::EnvironmentEffectType", + "referenced_type_name": "keen::EnvironmentEffectType", + "class_size": 1, + "fields_count": 16, + "primitive_type": "Typedef", + "hash1": 548314785, + "hash2": 479871015, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerDodgerollStart", + "type_name_2": "EnvironmentEffectPlayerDodgerollStart", + "qualified_name": "keen::ds::EnvironmentEffectPlayerDodgerollStart", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4197075808, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerDodgerollEnd", + "type_name_2": "EnvironmentEffectPlayerDodgerollEnd", + "qualified_name": "keen::ds::EnvironmentEffectPlayerDodgerollEnd", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 742500897, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerFallDamage", + "type_name_2": "EnvironmentEffectPlayerFallDamage", + "qualified_name": "keen::ds::EnvironmentEffectPlayerFallDamage", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 498497392, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerJump", + "type_name_2": "EnvironmentEffectPlayerJump", + "qualified_name": "keen::ds::EnvironmentEffectPlayerJump", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3930953984, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerJumpLand", + "type_name_2": "EnvironmentEffectPlayerJumpLand", + "qualified_name": "keen::ds::EnvironmentEffectPlayerJumpLand", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2910364549, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerJumpLandSmall", + "type_name_2": "EnvironmentEffectPlayerJumpLandSmall", + "qualified_name": "keen::ds::EnvironmentEffectPlayerJumpLandSmall", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 177013740, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerRun", + "type_name_2": "EnvironmentEffectPlayerRun", + "qualified_name": "keen::ds::EnvironmentEffectPlayerRun", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1640035409, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerSprint", + "type_name_2": "EnvironmentEffectPlayerSprint", + "qualified_name": "keen::ds::EnvironmentEffectPlayerSprint", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3092753704, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerWalk", + "type_name_2": "EnvironmentEffectPlayerWalk", + "qualified_name": "keen::ds::EnvironmentEffectPlayerWalk", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2323612261, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectPlayerSlide", + "type_name_2": "EnvironmentEffectPlayerSlide", + "qualified_name": "keen::ds::EnvironmentEffectPlayerSlide", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4047603065, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureCrashDown", + "type_name_2": "EnvironmentEffectVultureCrashDown", + "qualified_name": "keen::ds::EnvironmentEffectVultureCrashDown", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1983497753, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureFlyLiftOff", + "type_name_2": "EnvironmentEffectVultureFlyLiftOff", + "qualified_name": "keen::ds::EnvironmentEffectVultureFlyLiftOff", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4038811391, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureFlyTouchDown", + "type_name_2": "EnvironmentEffectVultureFlyTouchDown", + "qualified_name": "keen::ds::EnvironmentEffectVultureFlyTouchDown", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2250815566, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectVultureHoverFlap", + "type_name_2": "EnvironmentEffectVultureHoverFlap", + "qualified_name": "keen::ds::EnvironmentEffectVultureHoverFlap", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3595806323, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectNPCWalk", + "type_name_2": "EnvironmentEffectNPCWalk", + "qualified_name": "keen::ds::EnvironmentEffectNPCWalk", + "referenced_type_name": "keen::ds::EnvironmentEffectBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2329123285, + "hash2": 2382343039, + "struct_fields": [ + { + "name": "effectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventBase", + "type_name_2": "MaterialFeedbackEventBase", + "qualified_name": "keen::ds::MaterialFeedbackEventBase", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 115838346, + "hash2": 2725355551, + "struct_fields": [ + { + "name": "sfxTiny", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "sfxSmall", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "sfxMedium", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "sfxLarge", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "ecsOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 64 + }, + { + "name": "orientToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "useRootPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 105 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnPlace", + "type_name_2": "MaterialFeedbackEventOnPlace", + "qualified_name": "keen::ds::MaterialFeedbackEventOnPlace", + "referenced_type_name": "keen::ds::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 956438637, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::MaterialFeedbackEventType", + "type_hash": 888338015, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnPickup", + "type_name_2": "MaterialFeedbackEventOnPickup", + "qualified_name": "keen::ds::MaterialFeedbackEventOnPickup", + "referenced_type_name": "keen::ds::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4276114694, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::MaterialFeedbackEventType", + "type_hash": 888338015, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnTearDown", + "type_name_2": "MaterialFeedbackEventOnTearDown", + "qualified_name": "keen::ds::MaterialFeedbackEventOnTearDown", + "referenced_type_name": "keen::ds::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 942513074, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::MaterialFeedbackEventType", + "type_hash": 888338015, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnDestruction", + "type_name_2": "MaterialFeedbackEventOnDestruction", + "qualified_name": "keen::ds::MaterialFeedbackEventOnDestruction", + "referenced_type_name": "keen::ds::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 753369174, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::MaterialFeedbackEventType", + "type_hash": 888338015, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnFlatten", + "type_name_2": "MaterialFeedbackEventOnFlatten", + "qualified_name": "keen::ds::MaterialFeedbackEventOnFlatten", + "referenced_type_name": "keen::ds::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3935723540, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::MaterialFeedbackEventType", + "type_hash": 888338015, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEventOnPileUp", + "type_name_2": "MaterialFeedbackEventOnPileUp", + "qualified_name": "keen::ds::MaterialFeedbackEventOnPileUp", + "referenced_type_name": "keen::ds::MaterialFeedbackEventBase", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2876720895, + "hash2": 3039602046, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::MaterialFeedbackEventType", + "type_hash": 888338015, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackMaterial", + "type_name_2": "CollisionFeedbackMaterial", + "qualified_name": "keen::ds::CollisionFeedbackMaterial", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1490843859, + "hash2": 579385396, + "struct_fields": [ + { + "name": "defaultEffectCollection", + "type_name": "keen::ds::CollisionFeedbackEffectCollectionReference", + "type_hash": 1237257408, + "data_offset": 0 + }, + { + "name": "materialItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 16 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::ds::PropDamageSusceptibility", + "type_hash": 2214423142, + "data_offset": 32 + }, + { + "name": "hasFoleyEffects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "foleyEffectImportance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "foleyEffects", + "type_name": "keen::ds::FoleyEffectCollection", + "type_hash": 1304895487, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherState", + "type_name_2": "WeatherState", + "qualified_name": "keen::ds::WeatherState", + "referenced_type_name": "keen::WeatherState", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1384808874, + "hash2": 2989704336, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerMaterial", + "type_name_2": "WeatherLayerMaterial", + "qualified_name": "keen::ds::WeatherLayerMaterial", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2597785287, + "hash2": 130735604, + "struct_fields": [ + { + "name": "defaultEffectCollection", + "type_name": "keen::ds::CollisionFeedbackEffectCollectionReference", + "type_hash": 1237257408, + "data_offset": 0 + }, + { + "name": "weather", + "type_name": "keen::ds::WeatherState", + "type_hash": 1384808874, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackRule", + "type_name_2": "CollisionFeedbackRule", + "qualified_name": "keen::ds::CollisionFeedbackRule", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 900407512, + "hash2": 3995312221, + "struct_fields": [ + { + "name": "materialA", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 0 + }, + { + "name": "materialB", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 16 + }, + { + "name": "effectCollection", + "type_name": "keen::ds::CollisionFeedbackEffectCollectionReference", + "type_hash": 1237257408, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedback", + "type_name_2": "CollisionFeedback", + "qualified_name": "keen::ds::CollisionFeedback", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1270867886, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFeedbackEffectFlag", + "type_name_2": "ColliderFeedbackEffectFlag", + "qualified_name": "keen::ds::ColliderFeedbackEffectFlag", + "referenced_type_name": "keen::ColliderFeedbackEffectFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1724718547, + "hash2": 1912650399, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColliderFeedbackEffectFlags", + "type_name_2": "ColliderFeedbackEffectFlags", + "qualified_name": "keen::ds::ColliderFeedbackEffectFlags", + "referenced_type_name": "keen::ColliderFeedbackEffectFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1961206496, + "hash2": 1473926158, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsOptional", + "type_name_2": "Optional", + "qualified_name": "keen::DsOptional", + "referenced_type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "class_size": 16, + "fields_count": 0, + "primitive_type": "DsOptional", + "hash1": 1131162835, + "hash2": 2442131598, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackEffect", + "type_name_2": "MaterialFeedbackEffect", + "qualified_name": "keen::ds::MaterialFeedbackEffect", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4223853340, + "hash2": 3952998571, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "ecsOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 40 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 96 + }, + { + "name": "vfxParameters", + "type_name": "keen::DsOptional", + "type_hash": 1131162835, + "data_offset": 112 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 128 + }, + { + "name": "flags", + "type_name": "keen::ds::ColliderFeedbackEffectFlags", + "type_hash": 1961206496, + "data_offset": 129 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackId", + "type_name_2": "MaterialFeedbackId", + "qualified_name": "keen::ds::MaterialFeedbackId", + "referenced_type_name": "keen::MaterialFeedbackId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2434074776, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::MaterialFeedbackEffect", + "class_size": 816, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 1187751614, + "hash2": 546240851, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::MaterialFeedbackEffect", + "class_size": 680, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3369283369, + "hash2": 546682136, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[15]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::MaterialFeedbackEffect", + "class_size": 2040, + "fields_count": 15, + "primitive_type": "StaticArray", + "hash1": 100158566, + "hash2": 508429835, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MaterialFeedbackEffect[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::MaterialFeedbackEffect", + "class_size": 1088, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3333609560, + "hash2": 614337065, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedback", + "type_name_2": "MaterialFeedback", + "qualified_name": "keen::ds::MaterialFeedback", + "referenced_type_name": null, + "class_size": 7104, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2128776493, + "hash2": 3411943706, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::MaterialFeedbackId", + "type_hash": 2434074776, + "data_offset": 0 + }, + { + "name": "eventTypeMask", + "type_name": "keen::ds::MaterialFeedbackEventMask", + "type_hash": 3482530115, + "data_offset": 4 + }, + { + "name": "eventEffectsTiny", + "type_name": "keen::StaticArray", + "type_hash": 1187751614, + "data_offset": 8 + }, + { + "name": "eventEffectsSmall", + "type_name": "keen::StaticArray", + "type_hash": 1187751614, + "data_offset": 824 + }, + { + "name": "eventEffectsMedium", + "type_name": "keen::StaticArray", + "type_hash": 1187751614, + "data_offset": 1640 + }, + { + "name": "eventEffectsLarge", + "type_name": "keen::StaticArray", + "type_hash": 1187751614, + "data_offset": 2456 + }, + { + "name": "hasFoleyEffects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3272 + }, + { + "name": "foleyEffectImportance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3276 + }, + { + "name": "foleyMaterialFeedbackEffects", + "type_name": "keen::StaticArray", + "type_hash": 3369283369, + "data_offset": 3280 + }, + { + "name": "hasEnvironmentEffects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3960 + }, + { + "name": "environmentMaterialFeedbackEffects", + "type_name": "keen::StaticArray", + "type_hash": 100158566, + "data_offset": 3968 + }, + { + "name": "collisionTypeMask", + "type_name": "keen::Bitmask16", + "type_hash": 2365519116, + "data_offset": 6008 + }, + { + "name": "collisionTypeEffects", + "type_name": "keen::StaticArray", + "type_hash": 3333609560, + "data_offset": 6016 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MaterialFeedback", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2101036624, + "hash2": 3019896882, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackReference", + "type_name_2": "MaterialFeedbackReference", + "qualified_name": "keen::ds::MaterialFeedbackReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2464847938, + "hash2": 1231334107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CollisionFeedbackMatrixEntry", + "type_name_2": "CollisionFeedbackMatrixEntry", + "qualified_name": "keen::ds::CollisionFeedbackMatrixEntry", + "referenced_type_name": null, + "class_size": 1104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1014837925, + "hash2": 51485179, + "struct_fields": [ + { + "name": "materialPairId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "effects", + "type_name": "keen::StaticArray", + "type_hash": 3333609560, + "data_offset": 8 + }, + { + "name": "effectMask", + "type_name": "keen::Bitmask16", + "type_hash": 2365519116, + "data_offset": 1096 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackSubDirectory", + "type_name_2": "MaterialFeedbackSubDirectory", + "qualified_name": "keen::ds::MaterialFeedbackSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 575007280, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackDirectory", + "type_name_2": "MaterialFeedbackDirectory", + "qualified_name": "keen::ds::MaterialFeedbackDirectory", + "referenced_type_name": "keen::ds::MaterialFeedbackSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1041687120, + "hash2": 685368050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CollisionFeedbackMatrixEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CollisionFeedbackMatrixEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 386962934, + "hash2": 477739764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "MaterialFeedbackReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::MaterialFeedbackReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 146710341, + "hash2": 150256558, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialFeedbackCollectionResource", + "type_name_2": "MaterialFeedbackCollectionResource", + "qualified_name": "keen::ds::MaterialFeedbackCollectionResource", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1714579977, + "hash2": 3761399579, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 16 + }, + { + "name": "collisionEffectMatrixEntry", + "type_name": "keen::DsArray", + "type_hash": 386962934, + "data_offset": 56 + }, + { + "name": "materials", + "type_name": "keen::DsArray", + "type_hash": 146710341, + "data_offset": 96 + }, + { + "name": "rainMaterialLayeredEffects", + "type_name": "keen::ds::MaterialFeedbackReference", + "type_hash": 2464847938, + "data_offset": 136 + }, + { + "name": "snowMaterialLayeredEffects", + "type_name": "keen::ds::MaterialFeedbackReference", + "type_hash": 2464847938, + "data_offset": 152 + }, + { + "name": "blizzardMaterialLayeredEffects", + "type_name": "keen::ds::MaterialFeedbackReference", + "type_hash": 2464847938, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugEnvironmentEffectType", + "type_name_2": "DebugEnvironmentEffectType", + "qualified_name": "keen::ds::DebugEnvironmentEffectType", + "referenced_type_name": "keen::DebugEnvironmentEffectType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4268713598, + "hash2": 3030451432, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FoleyType", + "type_name_2": "FoleyType", + "qualified_name": "keen::ds::FoleyType", + "referenced_type_name": "keen::FoleyType", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 1750450690, + "hash2": 2940223001, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugEnvironmentEffect", + "type_name_2": "DebugEnvironmentEffect", + "qualified_name": "keen::ds::DebugEnvironmentEffect", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 3519421214, + "hash2": 2133100919, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::DebugEnvironmentEffectType", + "type_hash": 4268713598, + "data_offset": 0 + }, + { + "name": "foleyType", + "type_name": "keen::ds::FoleyType", + "type_hash": 1750450690, + "data_offset": 1 + }, + { + "name": "environmentEffectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 2 + }, + { + "name": "collisionType", + "type_name": "keen::ds::ecs::CollisionType", + "type_hash": 825933560, + "data_offset": 3 + }, + { + "name": "eventType", + "type_name": "keen::ds::MaterialFeedbackEventType", + "type_hash": 888338015, + "data_offset": 4 + }, + { + "name": "effectSize", + "type_name": "keen::ds::MaterialFeedbackEffectSize", + "type_hash": 1023202709, + "data_offset": 5 + }, + { + "name": "weatherState", + "type_name": "keen::ds::WeatherState", + "type_hash": 1384808874, + "data_offset": 6 + }, + { + "name": "collisionRuleFound", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "materialA", + "type_name": "keen::ds::MaterialFeedbackId", + "type_hash": 2434074776, + "data_offset": 8 + }, + { + "name": "materialB", + "type_name": "keen::ds::MaterialFeedbackId", + "type_hash": 2434074776, + "data_offset": 12 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "sfx", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 32 + }, + { + "name": "vfx", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "eventSendTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "eventReceiveTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "entityFootWorldHeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "effectWorldHeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MajorDirection", + "type_name_2": "impact.MajorDirection", + "qualified_name": "keen::ds::impact::MajorDirection", + "referenced_type_name": "keen::impact::MajorDirection", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Typedef", + "hash1": 1780141079, + "hash2": 3893948311, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequence", + "type_name_2": "actor.ActorSequence", + "qualified_name": "keen::ds::actor::ActorSequence", + "referenced_type_name": "keen::ds::Sequence", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1760092068, + "hash2": 3354215813, + "struct_fields": [ + { + "name": "majorDirection", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 48, + "fields_count": 91, + "primitive_type": "DsVariant", + "hash1": 147648537, + "hash2": 2731933277, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2413544482, + "hash2": 1809602902, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEvents", + "type_name_2": "SequenceEvents", + "qualified_name": "keen::ds::SequenceEvents", + "referenced_type_name": "keen::DsArray>", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4114111011, + "hash2": 4198858766, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceResource", + "type_name_2": "SequenceResource", + "qualified_name": "keen::ds::SequenceResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3392625486, + "hash2": 3739196105, + "struct_fields": [ + { + "name": "events", + "type_name": "keen::ds::SequenceEvents", + "type_hash": 4114111011, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceResource", + "type_name_2": "actor.ActorSequenceResource", + "qualified_name": "keen::ds::actor::ActorSequenceResource", + "referenced_type_name": "keen::ds::SequenceResource", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4261574520, + "hash2": 2846452447, + "struct_fields": [ + { + "name": "resourceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 96 + }, + { + "name": "majorDirection", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::EntityTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1648303532, + "hash2": 3371530755, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagReference", + "type_name_2": "ecs.EntityTagReference", + "qualified_name": "keen::ds::ecs::EntityTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2100437758, + "hash2": 388931364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagReferenceEntry", + "type_name_2": "ecs.EntityTagReferenceEntry", + "qualified_name": "keen::ds::ecs::EntityTagReferenceEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1744029670, + "hash2": 3525837086, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityTagReferenceEntry[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityTagReferenceEntry", + "class_size": 64, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3561009266, + "hash2": 3561596685, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEvent", + "type_name_2": "SequenceEvent", + "qualified_name": "keen::ds::SequenceEvent", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2640568130, + "hash2": 2247059108, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "requiredEntityTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 16 + }, + { + "name": "forbiddenTags", + "type_name": "keen::StaticArray", + "type_hash": 3561009266, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAnimationEvent", + "type_name_2": "actor.SetAnimationEvent", + "qualified_name": "keen::ds::actor::SetAnimationEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 120, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3911481026, + "hash2": 307841743, + "struct_fields": [ + { + "name": "animationName", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 96 + }, + { + "name": "usePureLveLocomotion", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "alignLveLocomotionToFloor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 113 + }, + { + "name": "scaleLveWithMovementInput", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 114 + }, + { + "name": "retriggerAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 115 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RootMotionWarpEvent", + "type_name_2": "actor.RootMotionWarpEvent", + "qualified_name": "keen::ds::actor::RootMotionWarpEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4018370144, + "hash2": 4204058516, + "struct_fields": [ + { + "name": "minDistanceToTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "abortWarpAboveMaxScale", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreserveVelocity", + "type_name_2": "actor.PreserveVelocity", + "qualified_name": "keen::ds::actor::PreserveVelocity", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3653968547, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpulseEvent", + "type_name_2": "actor.ImpulseEvent", + "qualified_name": "keen::ds::actor::ImpulseEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 128, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3552484793, + "hash2": 3573551112, + "struct_fields": [ + { + "name": "worldDistance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "localDistance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 108 + }, + { + "name": "impulseType", + "type_name": "keen::ds::ecs::ImpulseType", + "type_hash": 2052645203, + "data_offset": 120 + }, + { + "name": "applyOnlyHorizontally", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyImpulseEvent", + "type_name_2": "actor.ApplyImpulseEvent", + "qualified_name": "keen::ds::actor::ApplyImpulseEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3694749605, + "hash2": 1358305260, + "struct_fields": [ + { + "name": "worldImpulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "localImpulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAnimationOverlayEvent", + "type_name_2": "actor.SetAnimationOverlayEvent", + "qualified_name": "keen::ds::actor::SetAnimationOverlayEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 152, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4062689226, + "hash2": 3800954702, + "struct_fields": [ + { + "name": "overlayName", + "type_name": "keen::ds::animationgraph::OverlayIdReference", + "type_hash": 2302284539, + "data_offset": 96 + }, + { + "name": "jointMaskStart", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KeepAliveEvent", + "type_name_2": "actor.KeepAliveEvent", + "qualified_name": "keen::ds::actor::KeepAliveEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4103580326, + "hash2": 3746616521, + "struct_fields": [ + { + "name": "keepAliveMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 96 + }, + { + "name": "abortMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LoopEvent", + "type_name_2": "actor.LoopEvent", + "qualified_name": "keen::ds::actor::LoopEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 721163794, + "hash2": 2560368507, + "struct_fields": [ + { + "name": "keepAliveMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 96 + }, + { + "name": "abortMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 104 + }, + { + "name": "jumpToLoopEndOnAbort", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScopeEndBehavior", + "type_name_2": "actor.ScopeEndBehavior", + "qualified_name": "keen::ds::actor::ScopeEndBehavior", + "referenced_type_name": "keen::actor::ScopeEndBehavior", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2999258843, + "hash2": 842041815, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScopeEvent", + "type_name_2": "actor.ScopeEvent", + "qualified_name": "keen::ds::actor::ScopeEvent", + "referenced_type_name": "keen::ds::actor::LoopEvent", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3267528020, + "hash2": 4101884693, + "struct_fields": [ + { + "name": "scopeEndBehavior", + "type_name": "keen::ds::actor::ScopeEndBehavior", + "type_hash": 2999258843, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeColliderSetup", + "type_name_2": "actor.ChangeColliderSetup", + "qualified_name": "keen::ds::actor::ChangeColliderSetup", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 992311921, + "hash2": 2555984282, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::ecs::ColliderMode", + "type_hash": 3564049775, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleInteractionActionEvent", + "type_name_2": "actor.ToggleInteractionActionEvent", + "qualified_name": "keen::ds::actor::ToggleInteractionActionEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 959710898, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootInteractionActionEvent", + "type_name_2": "actor.LootInteractionActionEvent", + "qualified_name": "keen::ds::actor::LootInteractionActionEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1848833000, + "hash2": 154818948, + "struct_fields": [ + { + "name": "lootAll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "forAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResetFallAltitudeOnApexEvent", + "type_name_2": "actor.ResetFallAltitudeOnApexEvent", + "qualified_name": "keen::ds::actor::ResetFallAltitudeOnApexEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 250104835, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SnapType", + "type_name_2": "actor.SnapType", + "qualified_name": "keen::ds::actor::SnapType", + "referenced_type_name": "keen::actor::SnapType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2866168564, + "hash2": 3781854544, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InterpolationMode", + "type_name_2": "actor.InterpolationMode", + "qualified_name": "keen::ds::actor::InterpolationMode", + "referenced_type_name": "keen::actor::InterpolationMode", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Typedef", + "hash1": 2215548277, + "hash2": 1558319117, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SnapEvent", + "type_name_2": "actor.SnapEvent", + "qualified_name": "keen::ds::actor::SnapEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 93064724, + "hash2": 1417402685, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::actor::SnapType", + "type_hash": 2866168564, + "data_offset": 96 + }, + { + "name": "targetType", + "type_name": "keen::ds::ecs::TargetType", + "type_hash": 168829289, + "data_offset": 97 + }, + { + "name": "rotationInterpolationMode", + "type_name": "keen::ds::actor::InterpolationMode", + "type_hash": 2215548277, + "data_offset": 98 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAbortByMovement", + "type_name_2": "actor.SetAbortByMovement", + "qualified_name": "keen::ds::actor::SetAbortByMovement", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2321395322, + "hash2": 3862723811, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushEvent", + "type_name_2": "actor.PushEvent", + "qualified_name": "keen::ds::actor::PushEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 502582020, + "hash2": 149793044, + "struct_fields": [ + { + "name": "force", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JumpType", + "type_name_2": "actor.JumpType", + "qualified_name": "keen::ds::actor::JumpType", + "referenced_type_name": "keen::actor::JumpType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2555313004, + "hash2": 677711145, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JumpEvent", + "type_name_2": "actor.JumpEvent", + "qualified_name": "keen::ds::actor::JumpEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 695251740, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HookEvent", + "type_name_2": "actor.HookEvent", + "qualified_name": "keen::ds::actor::HookEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3500552501, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SelfDestructEvent", + "type_name_2": "actor.SelfDestructEvent", + "qualified_name": "keen::ds::actor::SelfDestructEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4034994104, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraId", + "type_name_2": "CameraId", + "qualified_name": "keen::ds::CameraId", + "referenced_type_name": "keen::CameraId", + "class_size": 1, + "fields_count": 31, + "primitive_type": "Typedef", + "hash1": 3072105309, + "hash2": 2673249211, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LockCameraIdEvent", + "type_name_2": "actor.LockCameraIdEvent", + "qualified_name": "keen::ds::actor::LockCameraIdEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 65430167, + "hash2": 1667505559, + "struct_fields": [ + { + "name": "cameraId", + "type_name": "keen::ds::CameraId", + "type_hash": 3072105309, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockCameraIdEvent", + "type_name_2": "actor.UnlockCameraIdEvent", + "qualified_name": "keen::ds::actor::UnlockCameraIdEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 945044842, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraOverride", + "type_name_2": "CameraOverride", + "qualified_name": "keen::ds::CameraOverride", + "referenced_type_name": "keen::CameraOverride", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 1844508176, + "hash2": 3394900201, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetCameraOverrideEvent", + "type_name_2": "actor.SetCameraOverrideEvent", + "qualified_name": "keen::ds::actor::SetCameraOverrideEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3378488037, + "hash2": 3786240283, + "struct_fields": [ + { + "name": "cameraOverride", + "type_name": "keen::ds::CameraOverride", + "type_hash": 1844508176, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeEvent", + "type_name_2": "actor.CameraShakeEvent", + "qualified_name": "keen::ds::actor::CameraShakeEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 347940049, + "hash2": 1849367441, + "struct_fields": [ + { + "name": "trauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeImpulseEvent", + "type_name_2": "actor.CameraShakeImpulseEvent", + "qualified_name": "keen::ds::actor::CameraShakeImpulseEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3681984478, + "hash2": 1408621737, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "additionalTrauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HudScreenType", + "type_name_2": "HudScreenType", + "qualified_name": "keen::ds::HudScreenType", + "referenced_type_name": "keen::HudScreenType", + "class_size": 1, + "fields_count": 37, + "primitive_type": "Typedef", + "hash1": 3628016720, + "hash2": 865441575, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OpenUi", + "type_name_2": "actor.OpenUi", + "qualified_name": "keen::ds::actor::OpenUi", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 915453810, + "hash2": 4044968879, + "struct_fields": [ + { + "name": "hudScreen", + "type_name": "keen::ds::HudScreenType", + "type_hash": 3628016720, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NegativeFeedbackEvent", + "type_name_2": "actor.NegativeFeedbackEvent", + "qualified_name": "keen::ds::actor::NegativeFeedbackEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3035991188, + "hash2": 486562469, + "struct_fields": [ + { + "name": "messageLocaTag", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyEventType", + "type_name_2": "ecs.EnemyEventType", + "qualified_name": "keen::ds::ecs::EnemyEventType", + "referenced_type_name": "keen::ecs::EnemyEventType", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 3711715940, + "hash2": 1910930748, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyCommandEvent", + "type_name_2": "actor.EnemyCommandEvent", + "qualified_name": "keen::ds::actor::EnemyCommandEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 404413495, + "hash2": 2585585441, + "struct_fields": [ + { + "name": "eventType", + "type_name": "keen::ds::ecs::EnemyEventType", + "type_hash": 3711715940, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerNoiseEvent", + "type_name_2": "actor.TriggerNoiseEvent", + "qualified_name": "keen::ds::actor::TriggerNoiseEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2814117298, + "hash2": 570281638, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedAttackType", + "type_name_2": "ecs.SyncedAttackType", + "qualified_name": "keen::ds::ecs::SyncedAttackType", + "referenced_type_name": "keen::ecs::SyncedAttackType", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 1300552158, + "hash2": 4225049701, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SyncAttackEvent", + "type_name_2": "actor.SyncAttackEvent", + "qualified_name": "keen::ds::actor::SyncAttackEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 115881529, + "hash2": 3489042643, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::ecs::SyncedAttackType", + "type_hash": 1300552158, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedSequenceEvent", + "type_name_2": "actor.SyncedSequenceEvent", + "qualified_name": "keen::ds::actor::SyncedSequenceEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 135849, + "hash2": 4248816011, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerKnowledge", + "type_name_2": "actor.TriggerKnowledge", + "qualified_name": "keen::ds::actor::TriggerKnowledge", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1980265552, + "hash2": 2800201532, + "struct_fields": [ + { + "name": "unlockForGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AbilityFlag", + "type_name_2": "actor.AbilityFlag", + "qualified_name": "keen::ds::actor::AbilityFlag", + "referenced_type_name": "keen::actor::AbilityFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1172150624, + "hash2": 1207632332, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityMask", + "type_name_2": "actor.AbilityMask", + "qualified_name": "keen::ds::actor::AbilityMask", + "referenced_type_name": "keen::actor::AbilityMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3023355518, + "hash2": 616022977, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MovementFactors", + "type_name_2": "actor.MovementFactors", + "qualified_name": "keen::ds::actor::MovementFactors", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1831018167, + "hash2": 843537563, + "struct_fields": [ + { + "name": "forward", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "backward", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lateral", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::skilltree_nodes::Node", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 539780319, + "hash2": 3141745728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeReference", + "type_name_2": "skilltree_nodes.NodeReference", + "qualified_name": "keen::ds::skilltree_nodes::NodeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1101428235, + "hash2": 543270080, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DisableAbilityEvent", + "type_name_2": "actor.DisableAbilityEvent", + "qualified_name": "keen::ds::actor::DisableAbilityEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 975893790, + "hash2": 3372816692, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::actor::AbilityMask", + "type_hash": 3023355518, + "data_offset": 96 + }, + { + "name": "overrideSkill", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnableAbilityEvent", + "type_name_2": "actor.EnableAbilityEvent", + "qualified_name": "keen::ds::actor::EnableAbilityEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2727904281, + "hash2": 3372816692, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::actor::AbilityMask", + "type_hash": 3023355518, + "data_offset": 96 + }, + { + "name": "overrideSkill", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetStateEvent", + "type_name_2": "actor.SetStateEvent", + "qualified_name": "keen::ds::actor::SetStateEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 696535351, + "hash2": 1471040333, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearStateEvent", + "type_name_2": "actor.ClearStateEvent", + "qualified_name": "keen::ds::actor::ClearStateEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1757363042, + "hash2": 1471040333, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RequestUiCover", + "type_name_2": "actor.RequestUiCover", + "qualified_name": "keen::ds::actor::RequestUiCover", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3887329070, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetGravityEvent", + "type_name_2": "actor.SetGravityEvent", + "qualified_name": "keen::ds::actor::SetGravityEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1679686610, + "hash2": 1643720556, + "struct_fields": [ + { + "name": "gravityModifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResetGravityEvent", + "type_name_2": "actor.ResetGravityEvent", + "qualified_name": "keen::ds::actor::ResetGravityEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 72117037, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LerpMovementFactorEvent", + "type_name_2": "actor.LerpMovementFactorEvent", + "qualified_name": "keen::ds::actor::LerpMovementFactorEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3268853181, + "hash2": 2322243134, + "struct_fields": [ + { + "name": "desiredMovementFactors", + "type_name": "keen::ds::actor::MovementFactors", + "type_hash": 1831018167, + "data_offset": 96 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpRotationFactorEvent", + "type_name_2": "actor.LerpRotationFactorEvent", + "qualified_name": "keen::ds::actor::LerpRotationFactorEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 857655908, + "hash2": 3431805595, + "struct_fields": [ + { + "name": "desiredRotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransformEvent", + "type_name_2": "actor.LerpTransformEvent", + "qualified_name": "keen::ds::actor::LerpTransformEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3113483301, + "hash2": 3332007920, + "struct_fields": [ + { + "name": "lerpTarget", + "type_name": "keen::ds::ecs::LerpTransformTarget", + "type_hash": 2188652394, + "data_offset": 96 + }, + { + "name": "lerpPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + }, + { + "name": "lerpOrientation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 98 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpSubmergeDepthEvent", + "type_name_2": "actor.LerpSubmergeDepthEvent", + "qualified_name": "keen::ds::actor::LerpSubmergeDepthEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3795687100, + "hash2": 1267009275, + "struct_fields": [ + { + "name": "submergeDelta", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartClimbing", + "type_name_2": "actor.StartClimbing", + "qualified_name": "keen::ds::actor::StartClimbing", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2982806199, + "hash2": 2038345003, + "struct_fields": [ + { + "name": "isLadder", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopClimbing", + "type_name_2": "actor.StopClimbing", + "qualified_name": "keen::ds::actor::StopClimbing", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1790454275, + "hash2": 2038345003, + "struct_fields": [ + { + "name": "isLadder", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayInstrumentEvent", + "type_name_2": "actor.PlayInstrumentEvent", + "qualified_name": "keen::ds::actor::PlayInstrumentEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4159394833, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TeleportToTargetEvent", + "type_name_2": "actor.TeleportToTargetEvent", + "qualified_name": "keen::ds::actor::TeleportToTargetEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1370427837, + "hash2": 3616912801, + "struct_fields": [ + { + "name": "targetType", + "type_name": "keen::ds::ecs::TargetType", + "type_hash": 168829289, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PetAnimalEvent", + "type_name_2": "actor.PetAnimalEvent", + "qualified_name": "keen::ds::actor::PetAnimalEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1504928851, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UpgradeAnimalEvent", + "type_name_2": "actor.UpgradeAnimalEvent", + "qualified_name": "keen::ds::actor::UpgradeAnimalEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 954272708, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceTrigger", + "type_name_2": "actor.ActionSequenceTrigger", + "qualified_name": "keen::ds::actor::ActionSequenceTrigger", + "referenced_type_name": "keen::actor::ActionSequenceTrigger", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 259047605, + "hash2": 3448429089, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetOpportunity", + "type_name_2": "actor.SetOpportunity", + "qualified_name": "keen::ds::actor::SetOpportunity", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 152, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 768873149, + "hash2": 1180497443, + "struct_fields": [ + { + "name": "triggeredBy", + "type_name": "keen::ds::actor::ActionSequenceTrigger", + "type_hash": 259047605, + "data_offset": 96 + }, + { + "name": "requiredSkill", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 100 + }, + { + "name": "followUpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 128 + }, + { + "name": "override", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ImpactDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2633197599, + "hash2": 4047713435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactProgramReference", + "type_name_2": "ImpactProgramReference", + "qualified_name": "keen::ds::ImpactProgramReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2221948960, + "hash2": 1403928781, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 48, + "fields_count": 24, + "primitive_type": "DsVariant", + "hash1": 3257462006, + "hash2": 788080581, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2384949865, + "hash2": 858383166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Configurations", + "type_name_2": "impact.Configurations", + "qualified_name": "keen::ds::impact::Configurations", + "referenced_type_name": "keen::DsArray>", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 524317822, + "hash2": 4236421032, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetActionOportunity", + "type_name_2": "actor.SetActionOportunity", + "qualified_name": "keen::ds::actor::SetActionOportunity", + "referenced_type_name": "keen::ds::actor::SetOpportunity", + "class_size": 224, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 800191653, + "hash2": 4020454015, + "struct_fields": [ + { + "name": "followUp", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 152 + }, + { + "name": "costImpact", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 168 + }, + { + "name": "impactValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearActionOportunity", + "type_name_2": "actor.ClearActionOportunity", + "qualified_name": "keen::ds::actor::ClearActionOportunity", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3463222824, + "hash2": 2504844741, + "struct_fields": [ + { + "name": "triggeredBy", + "type_name": "keen::ds::actor::ActionSequenceTrigger", + "type_hash": 259047605, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityTransform", + "type_name_2": "actor.SpawnEntityTransform", + "qualified_name": "keen::ds::actor::SpawnEntityTransform", + "referenced_type_name": "keen::actor::SpawnEntityTransform", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1144779500, + "hash2": 307337436, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RadiusRange", + "type_name_2": "actor.RadiusRange", + "qualified_name": "keen::ds::actor::RadiusRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 983449659, + "hash2": 1451226624, + "struct_fields": [ + { + "name": "minRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomOrientationOffset", + "type_name_2": "actor.RandomOrientationOffset", + "qualified_name": "keen::ds::actor::RandomOrientationOffset", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2922133248, + "hash2": 3726721032, + "struct_fields": [ + { + "name": "minX", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 0 + }, + { + "name": "maxX", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "minY", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + }, + { + "name": "maxY", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 12 + }, + { + "name": "minZ", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 16 + }, + { + "name": "maxZ", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityBaseEvent", + "type_name_2": "actor.SpawnEntityBaseEvent", + "qualified_name": "keen::ds::actor::SpawnEntityBaseEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 264, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 323812767, + "hash2": 1676507869, + "struct_fields": [ + { + "name": "requiredSkill", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 96 + }, + { + "name": "templateReference", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 112 + }, + { + "name": "spawnTransform", + "type_name": "keen::ds::actor::SpawnEntityTransform", + "type_hash": 1144779500, + "data_offset": 128 + }, + { + "name": "attachmentSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 129 + }, + { + "name": "spawnSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 130 + }, + { + "name": "spawnOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 132 + }, + { + "name": "vfxDirection", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 172 + }, + { + "name": "providedTarget", + "type_name": "keen::ds::ecs::TargetType", + "type_hash": 168829289, + "data_offset": 173 + }, + { + "name": "consume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 174 + }, + { + "name": "onConsumeExchange", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 176 + }, + { + "name": "addWeaponReference", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 192 + }, + { + "name": "despawnAfterSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 193 + }, + { + "name": "endSequenceOnDespawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 194 + }, + { + "name": "transferUsedItem", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 195 + }, + { + "name": "copyCustomString", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 196 + }, + { + "name": "randomSpawnRadius", + "type_name": "keen::ds::actor::RadiusRange", + "type_hash": 983449659, + "data_offset": 200 + }, + { + "name": "randomOrientationOffset", + "type_name": "keen::ds::actor::RandomOrientationOffset", + "type_hash": 2922133248, + "data_offset": 208 + }, + { + "name": "minSpawnRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 232 + }, + { + "name": "maxSpawnRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + }, + { + "name": "minSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 240 + }, + { + "name": "maxSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 241 + }, + { + "name": "breakImpactHierarchy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 242 + }, + { + "name": "ignoreSpawnVelocity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 243 + }, + { + "name": "spawnVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 244 + }, + { + "name": "applyRandomLoot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 256 + }, + { + "name": "copyCombatAttributes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 257 + }, + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 260 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RefillBurner", + "type_name_2": "actor.RefillBurner", + "qualified_name": "keen::ds::actor::RefillBurner", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4142349986, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityEvent", + "type_name_2": "actor.SpawnEntityEvent", + "qualified_name": "keen::ds::actor::SpawnEntityEvent", + "referenced_type_name": "keen::ds::actor::SpawnEntityBaseEvent", + "class_size": 272, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3230266920, + "hash2": 2416831839, + "struct_fields": [ + { + "name": "isProjectile", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 264 + }, + { + "name": "clearProjectiles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 265 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerMartyrSkills", + "type_name_2": "actor.TriggerMartyrSkills", + "qualified_name": "keen::ds::actor::TriggerMartyrSkills", + "referenced_type_name": "keen::ds::actor::SpawnEntityBaseEvent", + "class_size": 264, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 706249665, + "hash2": 1623201615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityPerAggroTargetEvent", + "type_name_2": "actor.SpawnEntityPerAggroTargetEvent", + "qualified_name": "keen::ds::actor::SpawnEntityPerAggroTargetEvent", + "referenced_type_name": "keen::ds::actor::SpawnEntityBaseEvent", + "class_size": 288, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3455028626, + "hash2": 2289744757, + "struct_fields": [ + { + "name": "excludedTargetStates", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 264 + }, + { + "name": "isProjectile", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 272 + }, + { + "name": "clearProjectiles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 273 + }, + { + "name": "onlyPlayerTargets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 274 + }, + { + "name": "randomPerTargetSpawnRadius", + "type_name": "keen::ds::actor::RadiusRange", + "type_hash": 983449659, + "data_offset": 276 + }, + { + "name": "maxTargets", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 284 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageDistribution", + "type_name_2": "impact.DamageDistribution", + "qualified_name": "keen::ds::impact::DamageDistribution", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1212686402, + "hash2": 598131995, + "struct_fields": [ + { + "name": "physicalCutDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "physicalPierceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "physicalBluntDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "magicalFireDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "magicalIceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "magicalFogDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "magicalLightningDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "healing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "poisonDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "woodDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "stoneDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "metalDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "explosionDamage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnImpact", + "type_name_2": "actor.SpawnImpact", + "qualified_name": "keen::ds::actor::SpawnImpact", + "referenced_type_name": "keen::ds::actor::SpawnEntityBaseEvent", + "class_size": 456, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3071737325, + "hash2": 2115902917, + "struct_fields": [ + { + "name": "impact", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 264 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 280 + }, + { + "name": "damageDistribution", + "type_name": "keen::ds::impact::DamageDistribution", + "type_hash": 1212686402, + "data_offset": 296 + }, + { + "name": "colliderData", + "type_name": "keen::ds::ecs::ColliderResourceData", + "type_hash": 3255136696, + "data_offset": 352 + }, + { + "name": "impactValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 408 + }, + { + "name": "damageDistributionIsSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 448 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BuffType", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2187015613, + "hash2": 1734086965, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeReference", + "type_name_2": "BuffTypeReference", + "qualified_name": "keen::ds::BuffTypeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2448793303, + "hash2": 1769353870, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ApplyBuffEvent", + "type_name_2": "actor.ApplyBuffEvent", + "qualified_name": "keen::ds::actor::ApplyBuffEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 216, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3191573791, + "hash2": 4265136807, + "struct_fields": [ + { + "name": "buffTypeOverride", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 96 + }, + { + "name": "consume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "impactValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 120 + }, + { + "name": "damageDistribution", + "type_name": "keen::ds::impact::DamageDistribution", + "type_hash": 1212686402, + "data_offset": 160 + }, + { + "name": "damageDistributionIsSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 212 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlaceVoxelObjectEvent", + "type_name_2": "actor.PlaceVoxelObjectEvent", + "qualified_name": "keen::ds::actor::PlaceVoxelObjectEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3932809074, + "hash2": 467928741, + "struct_fields": [ + { + "name": "subtract", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "consume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetachEntityEvent", + "type_name_2": "actor.DetachEntityEvent", + "qualified_name": "keen::ds::actor::DetachEntityEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 208, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3879419280, + "hash2": 2018400388, + "struct_fields": [ + { + "name": "force", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 96 + }, + { + "name": "randomAngleByAxis", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 112 + }, + { + "name": "launchTransform", + "type_name": "keen::Matrix43", + "type_hash": 1257492306, + "data_offset": 128 + }, + { + "name": "addGravity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetachProjectileEntityEvent", + "type_name_2": "actor.DetachProjectileEntityEvent", + "qualified_name": "keen::ds::actor::DetachProjectileEntityEvent", + "referenced_type_name": "keen::ds::actor::DetachEntityEvent", + "class_size": 208, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 153124525, + "hash2": 677974046, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetTriggerStateEvent", + "type_name_2": "actor.SetTriggerStateEvent", + "qualified_name": "keen::ds::actor::SetTriggerStateEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 908131747, + "hash2": 510598221, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 96 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShowAmmunition", + "type_name_2": "actor.ShowAmmunition", + "qualified_name": "keen::ds::actor::ShowAmmunition", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1115615726, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetVisualAmmunition", + "type_name_2": "actor.SetVisualAmmunition", + "qualified_name": "keen::ds::actor::SetVisualAmmunition", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3507124863, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResetVisualAmmunition", + "type_name_2": "actor.ResetVisualAmmunition", + "qualified_name": "keen::ds::actor::ResetVisualAmmunition", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2380359340, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StartCookEvent", + "type_name_2": "actor.StartCookEvent", + "qualified_name": "keen::ds::actor::StartCookEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2745011008, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnCookEntitesEvent", + "type_name_2": "actor.SpawnCookEntitesEvent", + "qualified_name": "keen::ds::actor::SpawnCookEntitesEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1085909635, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActivateCombatStanceEvent", + "type_name_2": "actor.ActivateCombatStanceEvent", + "qualified_name": "keen::ds::actor::ActivateCombatStanceEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 43564455, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::DefaultInventorySetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1041644035, + "hash2": 4006431787, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryReference", + "type_name_2": "ecs.DefaultInventoryReference", + "qualified_name": "keen::ds::ecs::DefaultInventoryReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2114403164, + "hash2": 68063914, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransformToLootEvent", + "type_name_2": "actor.TransformToLootEvent", + "qualified_name": "keen::ds::actor::TransformToLootEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 272, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2858810125, + "hash2": 3250335344, + "struct_fields": [ + { + "name": "defaultInventory", + "type_name": "keen::ds::ecs::DefaultInventoryReference", + "type_hash": 2114403164, + "data_offset": 96 + }, + { + "name": "keepDefaultInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "genericSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 113 + }, + { + "name": "availableSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 114 + }, + { + "name": "defaultAction", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 116 + }, + { + "name": "verbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 132 + }, + { + "name": "vfxOnSpawnOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 148 + }, + { + "name": "vfxOnSpawn", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 188 + }, + { + "name": "vfxParameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 204 + }, + { + "name": "lootHealth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 268 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AcceptInteractionEvent", + "type_name_2": "actor.AcceptInteractionEvent", + "qualified_name": "keen::ds::actor::AcceptInteractionEvent", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 833097248, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChangeType", + "type_name_2": "actor.VoxelChangeType", + "qualified_name": "keen::ds::actor::VoxelChangeType", + "referenced_type_name": "keen::actor::VoxelChangeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1510583324, + "hash2": 733406982, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ChangeVoxel", + "type_name_2": "actor.ChangeVoxel", + "qualified_name": "keen::ds::actor::ChangeVoxel", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1751712124, + "hash2": 4170284781, + "struct_fields": [ + { + "name": "changeType", + "type_name": "keen::ds::actor::VoxelChangeType", + "type_hash": 1510583324, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Dismantle", + "type_name_2": "actor.Dismantle", + "qualified_name": "keen::ds::actor::Dismantle", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4242116263, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcId", + "type_name_2": "NpcId", + "qualified_name": "keen::ds::NpcId", + "referenced_type_name": "keen::NpcId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 135613395, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AssignNpc", + "type_name_2": "actor.AssignNpc", + "qualified_name": "keen::ds::actor::AssignNpc", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3035377380, + "hash2": 152442523, + "struct_fields": [ + { + "name": "npcId", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TameWildlifeEvent", + "type_name_2": "actor.TameWildlifeEvent", + "qualified_name": "keen::ds::actor::TameWildlifeEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3402445137, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RotationInterpolation", + "type_name_2": "actor.RotationInterpolation", + "qualified_name": "keen::ds::actor::RotationInterpolation", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1629416548, + "hash2": 2507058291, + "struct_fields": [ + { + "name": "startOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 0 + }, + { + "name": "targetOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 16 + }, + { + "name": "linearRotationAxis", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "speed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "interpolationMode", + "type_name": "keen::ds::actor::InterpolationMode", + "type_hash": 2215548277, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RotationData", + "type_name_2": "actor.RotationData", + "qualified_name": "keen::ds::actor::RotationData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3938780702, + "hash2": 3369233041, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "targetOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 8 + }, + { + "name": "snapDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceResourceId", + "type_name_2": "actor.SequenceResourceId", + "qualified_name": "keen::ds::actor::SequenceResourceId", + "referenced_type_name": "keen::actor::SequenceResourceId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 247312112, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceRuntimeId", + "type_name_2": "actor.SequenceRuntimeId", + "qualified_name": "keen::ds::actor::SequenceRuntimeId", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3686080710, + "hash2": 388712205, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 0 + }, + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "actorEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "callIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventorySlotIndex", + "type_name_2": "InventorySlotIndex", + "qualified_name": "keen::ds::InventorySlotIndex", + "referenced_type_name": "keen::InventorySlotIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 668129947, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventorySlotId", + "type_name_2": "InventorySlotId", + "qualified_name": "keen::ds::InventorySlotId", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4243837072, + "hash2": 3984759345, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "slotIndex", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemStateMask", + "type_name_2": "ItemStateMask", + "qualified_name": "keen::ds::ItemStateMask", + "referenced_type_name": "keen::ItemStateMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4153915441, + "hash2": 3540437983, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemInstanceInfo", + "type_name_2": "ItemInstanceInfo", + "qualified_name": "keen::ds::ItemInstanceInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1277281831, + "hash2": 3812352709, + "struct_fields": [ + { + "name": "slotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 8 + }, + { + "name": "pide", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "stateMask", + "type_name": "keen::ds::ItemStateMask", + "type_hash": 4153915441, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SongId", + "type_name_2": "SongId", + "qualified_name": "keen::ds::SongId", + "referenced_type_name": "keen::SongId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 687496403, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeId", + "type_name_2": "KnowledgeId", + "qualified_name": "keen::ds::KnowledgeId", + "referenced_type_name": "keen::KnowledgeId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3248251560, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "KnowledgeId[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::KnowledgeId", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2923098708, + "hash2": 4027311225, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceTriggerContext", + "type_name_2": "actor.ActionSequenceTriggerContext", + "qualified_name": "keen::ds::actor::ActionSequenceTriggerContext", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1751864012, + "hash2": 2095078075, + "struct_fields": [ + { + "name": "sequenceRuntimeId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 0 + }, + { + "name": "triggerType", + "type_name": "keen::ds::actor::ActionSequenceTrigger", + "type_hash": 259047605, + "data_offset": 24 + }, + { + "name": "costItem", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 28 + }, + { + "name": "usedItem", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 48 + }, + { + "name": "usedAmmunition", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 68 + }, + { + "name": "jumpType", + "type_name": "keen::ds::actor::JumpType", + "type_hash": 2555313004, + "data_offset": 88 + }, + { + "name": "directionOverride", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 92 + }, + { + "name": "songId", + "type_name": "keen::ds::SongId", + "type_hash": 687496403, + "data_offset": 104 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "interactionHostId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 120 + }, + { + "name": "interactionOfferId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "unlockKnowledgeIds", + "type_name": "keen::StaticArray", + "type_hash": 2923098708, + "data_offset": 128 + }, + { + "name": "entityTags", + "type_name": "keen::StaticArray", + "type_hash": 3561009266, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillNodeId", + "type_name_2": "SkillNodeId", + "qualified_name": "keen::ds::SkillNodeId", + "referenced_type_name": "keen::SkillNodeId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 114463325, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FollowUp", + "type_name_2": "actor.FollowUp", + "qualified_name": "keen::ds::actor::FollowUp", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 393566544, + "hash2": 349721746, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::ds::actor::ActionSequenceTriggerContext", + "type_hash": 1751864012, + "data_offset": 0 + }, + { + "name": "originalEventSequence", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 224 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 228 + }, + { + "name": "localExecutionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 248 + }, + { + "name": "requiredSkill", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 256 + }, + { + "name": "costImpact", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 260 + }, + { + "name": "wasTriggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 276 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceFlags", + "type_name_2": "actor.ActionSequenceFlags", + "qualified_name": "keen::ds::actor::ActionSequenceFlags", + "referenced_type_name": "keen::actor::ActionSequenceFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2367263394, + "hash2": 1590324129, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceState", + "type_name_2": "actor.ActionSequenceState", + "qualified_name": "keen::ds::actor::ActionSequenceState", + "referenced_type_name": "keen::actor::ActionSequenceState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 537121452, + "hash2": 1168417900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequenceSpan", + "type_name_2": "actor.ActionSequenceSpan", + "qualified_name": "keen::ds::actor::ActionSequenceSpan", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2487125247, + "hash2": 363979897, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColliderModeData", + "type_name_2": "actor.ColliderModeData", + "qualified_name": "keen::ds::actor::ColliderModeData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3688854231, + "hash2": 3828864929, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::ecs::ColliderMode", + "type_hash": 3564049775, + "data_offset": 0 + }, + { + "name": "endTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "actor.ActionSequenceSpan[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::actor::ActionSequenceSpan", + "class_size": 32, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2128843751, + "hash2": 380066560, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "actor.FollowUp[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::actor::FollowUp", + "class_size": 1680, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 2424592346, + "hash2": 1284665325, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequencePlaybackContext", + "type_name_2": "actor.ActionSequencePlaybackContext", + "qualified_name": "keen::ds::actor::ActionSequencePlaybackContext", + "referenced_type_name": null, + "class_size": 1824, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 645129497, + "hash2": 1713482839, + "struct_fields": [ + { + "name": "playedTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "currentTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sequenceLength", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "scopeStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "scopeEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "scopeAbortMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 40 + }, + { + "name": "scopeKeepAliveMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 48 + }, + { + "name": "scopeJumpToScopeEndOnAbort", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "state", + "type_name": "keen::ds::actor::ActionSequenceState", + "type_hash": 537121452, + "data_offset": 57 + }, + { + "name": "playbackSpan", + "type_name": "keen::StaticArray", + "type_hash": 2128843751, + "data_offset": 64 + }, + { + "name": "followUps", + "type_name": "keen::StaticArray", + "type_hash": 2424592346, + "data_offset": 96 + }, + { + "name": "abilityMask", + "type_name": "keen::ds::actor::AbilityMask", + "type_hash": 3023355518, + "data_offset": 1776 + }, + { + "name": "setStateMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 1784 + }, + { + "name": "unsetStateMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 1792 + }, + { + "name": "sequenceAbortMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 1800 + }, + { + "name": "sequenceKeepAliveMask", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 1808 + }, + { + "name": "wrapedAround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1816 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SignalStates", + "type_name_2": "actor.SignalStates", + "qualified_name": "keen::ds::actor::SignalStates", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1115169014, + "hash2": 2679918492, + "struct_fields": [ + { + "name": "activeSignals", + "type_name": "keen::StaticArray", + "type_hash": 259838053, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionSequence", + "type_name_2": "actor.ActionSequence", + "qualified_name": "keen::ds::actor::ActionSequence", + "referenced_type_name": null, + "class_size": 2048, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 418130347, + "hash2": 2564935835, + "struct_fields": [ + { + "name": "triggerContext", + "type_name": "keen::ds::actor::ActionSequenceTriggerContext", + "type_hash": 1751864012, + "data_offset": 0 + }, + { + "name": "playbackContext", + "type_name": "keen::ds::actor::ActionSequencePlaybackContext", + "type_hash": 645129497, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlaceItemEvent", + "type_name_2": "actor.PlaceItemEvent", + "qualified_name": "keen::ds::actor::PlaceItemEvent", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2757523332, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SetAttackChainVariationEvent", + "type_name_2": "actor.SetAttackChainVariationEvent", + "qualified_name": "keen::ds::actor::SetAttackChainVariationEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3306131330, + "hash2": 4145963108, + "struct_fields": [ + { + "name": "followUpSequenceTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreviewAnimGraph2", + "type_name_2": "PreviewAnimGraph2", + "qualified_name": "keen::ds::PreviewAnimGraph2", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2318634398, + "hash2": 2201675693, + "struct_fields": [ + { + "name": "animGraphId", + "type_name": "keen::ObjectReference", + "type_hash": 687355720, + "data_offset": 0 + }, + { + "name": "useFemaleAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorActionContainer", + "type_name_2": "ActorActionContainer", + "qualified_name": "keen::ds::ActorActionContainer", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2628159613, + "hash2": 3988336344, + "struct_fields": [ + { + "name": "previewAnimationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 2358948672, + "data_offset": 0 + }, + { + "name": "previewAnimationGraph2Info", + "type_name": "keen::ds::PreviewAnimGraph2", + "type_hash": 2318634398, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorActionContainerRoot", + "type_name_2": "ActorActionContainerRoot", + "qualified_name": "keen::ds::ActorActionContainerRoot", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4126272861, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::actor::ActorSequenceResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2252950023, + "hash2": 1279891411, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceResourceReference", + "type_name_2": "ActorSequenceResourceReference", + "qualified_name": "keen::ds::ActorSequenceResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 299054302, + "hash2": 43612305, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ActorSequenceResourceReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ActorSequenceResourceReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 994433547, + "hash2": 3985625350, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActorSequenceCollectionResource", + "type_name_2": "ActorSequenceCollectionResource", + "qualified_name": "keen::ds::ActorSequenceCollectionResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2416131813, + "hash2": 2720173546, + "struct_fields": [ + { + "name": "sequences", + "type_name": "keen::DsArray", + "type_hash": 994433547, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmmunitionType", + "type_name_2": "AmmunitionType", + "qualified_name": "keen::ds::AmmunitionType", + "referenced_type_name": "keen::AmmunitionType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3066785408, + "hash2": 3715415728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Needs", + "type_name_2": "animal.Needs", + "qualified_name": "keen::ds::animal::Needs", + "referenced_type_name": "keen::animal::Needs", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3545160468, + "hash2": 3437424499, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NeedsMask", + "type_name_2": "animal.NeedsMask", + "qualified_name": "keen::ds::animal::NeedsMask", + "referenced_type_name": "keen::animal::NeedsMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2872240580, + "hash2": 3177686648, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionState", + "type_name_2": "animal.InteractionState", + "qualified_name": "keen::ds::animal::InteractionState", + "referenced_type_name": "keen::animal::InteractionState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2350093330, + "hash2": 1398210590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionStates", + "type_name_2": "animal.InteractionStates", + "qualified_name": "keen::ds::animal::InteractionStates", + "referenced_type_name": "keen::animal::InteractionStates", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3822228659, + "hash2": 2383915826, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetSearchState", + "type_name_2": "animal.TargetSearchState", + "qualified_name": "keen::ds::animal::TargetSearchState", + "referenced_type_name": "keen::animal::TargetSearchState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2297030595, + "hash2": 1368319315, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetSearchStates", + "type_name_2": "animal.TargetSearchStates", + "qualified_name": "keen::ds::animal::TargetSearchStates", + "referenced_type_name": "keen::animal::TargetSearchStates", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 943176208, + "hash2": 1688905593, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "animal.State", + "qualified_name": "keen::ds::animal::State", + "referenced_type_name": "keen::animal::State", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4116668204, + "hash2": 2047397934, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "animal.StateCondition", + "qualified_name": "keen::ds::animal::StateCondition", + "referenced_type_name": "keen::animal::StateCondition", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3106096665, + "hash2": 1147188829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Type", + "type_name_2": "animal.Type", + "qualified_name": "keen::ds::animal::Type", + "referenced_type_name": "keen::animal::Type", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1766727059, + "hash2": 3824266419, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TypeMask", + "type_name_2": "animal.TypeMask", + "qualified_name": "keen::ds::animal::TypeMask", + "referenced_type_name": "keen::animal::TypeMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3492581671, + "hash2": 3422361499, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IdleSequenceSetup", + "type_name_2": "animal.IdleSequenceSetup", + "qualified_name": "keen::ds::animal::IdleSequenceSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 998127465, + "hash2": 2051284720, + "struct_fields": [ + { + "name": "minSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecisionSetup", + "type_name_2": "animal.DecisionSetup", + "qualified_name": "keen::ds::animal::DecisionSetup", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2330385874, + "hash2": 1246242864, + "struct_fields": [ + { + "name": "idleWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "inspectWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "sitWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "greetWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "roamWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdleSetup", + "type_name_2": "animal.IdleSetup", + "qualified_name": "keen::ds::animal::IdleSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1846121298, + "hash2": 2560349691, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sequenceChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SearchTargetSetup", + "type_name_2": "animal.SearchTargetSetup", + "qualified_name": "keen::ds::animal::SearchTargetSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 146874051, + "hash2": 3675658600, + "struct_fields": [ + { + "name": "targetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetSetup", + "type_name_2": "animal.TargetSetup", + "qualified_name": "keen::ds::animal::TargetSetup", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3516305163, + "hash2": 2511260046, + "struct_fields": [ + { + "name": "isBed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isFood", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "isInteresting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HungerSetup", + "type_name_2": "animal.HungerSetup", + "qualified_name": "keen::ds::animal::HungerSetup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3542964357, + "hash2": 1382648115, + "struct_fields": [ + { + "name": "timeUntilHungerMinDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "timeUntilHungerMaxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "foodConsumptionRate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReproductionSetup", + "type_name_2": "animal.ReproductionSetup", + "qualified_name": "keen::ds::animal::ReproductionSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1982474362, + "hash2": 2230130992, + "struct_fields": [ + { + "name": "maxReproductionDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "baseReproductionChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "reproductionRate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimalQueryStatus", + "type_name_2": "animal.AnimalQueryStatus", + "qualified_name": "keen::ds::animal::AnimalQueryStatus", + "referenced_type_name": "keen::animal::AnimalQueryStatus", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2451189023, + "hash2": 1828275344, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RangeQueryInfo", + "type_name_2": "animal.RangeQueryInfo", + "qualified_name": "keen::ds::animal::RangeQueryInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3712812056, + "hash2": 1252705690, + "struct_fields": [ + { + "name": "status", + "type_name": "keen::ds::animal::AnimalQueryStatus", + "type_hash": 2451189023, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathQueryInfo", + "type_name_2": "animal.PathQueryInfo", + "qualified_name": "keen::ds::animal::PathQueryInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 963067396, + "hash2": 1252705690, + "struct_fields": [ + { + "name": "status", + "type_name": "keen::ds::animal::AnimalQueryStatus", + "type_hash": 2451189023, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::PathQueryId", + "type_hash": 2909815120, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReproductionQueryState", + "type_name_2": "animal.ReproductionQueryState", + "qualified_name": "keen::ds::animal::ReproductionQueryState", + "referenced_type_name": "keen::animal::ReproductionQueryState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 913765792, + "hash2": 2640302513, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ReproductionState", + "type_name_2": "animal.ReproductionState", + "qualified_name": "keen::ds::animal::ReproductionState", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3624799674, + "hash2": 926218058, + "struct_fields": [ + { + "name": "requirementsFulfilled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "queryState", + "type_name": "keen::ds::animal::ReproductionQueryState", + "type_hash": 913765792, + "data_offset": 1 + }, + { + "name": "closestFreeBedId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "closestOtherAnimalId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "animalQuery", + "type_name": "keen::ds::animal::RangeQueryInfo", + "type_hash": 3712812056, + "data_offset": 12 + }, + { + "name": "bedQuery", + "type_name": "keen::ds::animal::RangeQueryInfo", + "type_hash": 3712812056, + "data_offset": 20 + }, + { + "name": "animalPathQuery", + "type_name": "keen::ds::animal::PathQueryInfo", + "type_hash": 963067396, + "data_offset": 28 + }, + { + "name": "bedPathQuery", + "type_name": "keen::ds::animal::PathQueryInfo", + "type_hash": 963067396, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 32, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 872988250, + "hash2": 280389292, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HungerState", + "type_name_2": "animal.HungerState", + "qualified_name": "keen::ds::animal::HungerState", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 878746813, + "hash2": 1917266962, + "struct_fields": [ + { + "name": "foodTargets", + "type_name": "keen::StaticArray", + "type_hash": 872988250, + "data_offset": 0 + }, + { + "name": "foodSourceQueryInfo", + "type_name": "keen::ds::animal::RangeQueryInfo", + "type_hash": 3712812056, + "data_offset": 32 + }, + { + "name": "pathfindingQuery", + "type_name": "keen::ds::animal::PathQueryInfo", + "type_hash": 963067396, + "data_offset": 40 + }, + { + "name": "currentPathfindingIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RoamingSetup", + "type_name_2": "active_npc.RoamingSetup", + "qualified_name": "keen::ds::active_npc::RoamingSetup", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2479807301, + "hash2": 1045298992, + "struct_fields": [ + { + "name": "minDistanceToCurrentPosition", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxRadiusFromSpawn", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "targetNodeRequirements", + "type_name": "keen::ds::ecs::PathNodeRequirements", + "type_hash": 3849890651, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovementSetup", + "type_name_2": "active_npc.MovementSetup", + "qualified_name": "keen::ds::active_npc::MovementSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3411606789, + "hash2": 2659691278, + "struct_fields": [ + { + "name": "maxMovementAngleDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxMovementAngleRoaming", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SleepSetup", + "type_name_2": "active_npc.SleepSetup", + "qualified_name": "keen::ds::active_npc::SleepSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2593280021, + "hash2": 1602865654, + "struct_fields": [ + { + "name": "sleepTime", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 0 + }, + { + "name": "wakeUpTime", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathNodeSetup", + "type_name_2": "active_npc.PathNodeSetup", + "qualified_name": "keen::ds::active_npc::PathNodeSetup", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3569282287, + "hash2": 84103868, + "struct_fields": [ + { + "name": "defaultCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 0 + }, + { + "name": "roamingCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Animal", + "type_name_2": "ecs.Animal", + "qualified_name": "keen::ds::ecs::Animal", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 480, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 3429588280, + "hash2": 3610348877, + "struct_fields": [ + { + "name": "turnSetup", + "type_name": "keen::ds::actor::TurnSetup", + "type_hash": 1637349768, + "data_offset": 0 + }, + { + "name": "sitSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 72 + }, + { + "name": "sleepSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 88 + }, + { + "name": "inspectSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 104 + }, + { + "name": "beingPetSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 120 + }, + { + "name": "eatingSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 136 + }, + { + "name": "sadIdleSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 152 + }, + { + "name": "greetSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 168 + }, + { + "name": "minDistanceToPlayer", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 184 + }, + { + "name": "type", + "type_name": "keen::ds::animal::Type", + "type_hash": 1766727059, + "data_offset": 188 + }, + { + "name": "decisionSetup", + "type_name": "keen::ds::animal::DecisionSetup", + "type_hash": 2330385874, + "data_offset": 192 + }, + { + "name": "idleSetup", + "type_name": "keen::ds::animal::IdleSetup", + "type_hash": 1846121298, + "data_offset": 216 + }, + { + "name": "roamingSetup", + "type_name": "keen::ds::active_npc::RoamingSetup", + "type_hash": 2479807301, + "data_offset": 240 + }, + { + "name": "movementSetup", + "type_name": "keen::ds::active_npc::MovementSetup", + "type_hash": 3411606789, + "data_offset": 252 + }, + { + "name": "sleepSetup", + "type_name": "keen::ds::active_npc::SleepSetup", + "type_hash": 2593280021, + "data_offset": 260 + }, + { + "name": "searchTargetSetup", + "type_name": "keen::ds::animal::SearchTargetSetup", + "type_hash": 146874051, + "data_offset": 276 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::ds::active_npc::PathNodeSetup", + "type_hash": 3569282287, + "data_offset": 284 + }, + { + "name": "hungerSetup", + "type_name": "keen::ds::animal::HungerSetup", + "type_hash": 3542964357, + "data_offset": 392 + }, + { + "name": "reproductionSetup", + "type_name": "keen::ds::animal::ReproductionSetup", + "type_hash": 1982474362, + "data_offset": 416 + }, + { + "name": "babyAnimalVersion", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 432 + }, + { + "name": "defaultInteractionSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 448 + }, + { + "name": "defaultInteractionVerbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 464 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicAnimal", + "type_name_2": "ecs.DynamicAnimal", + "qualified_name": "keen::ds::ecs::DynamicAnimal", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3142813145, + "hash2": 1425918538, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::animal::State", + "type_hash": 4116668204, + "data_offset": 0 + }, + { + "name": "previousState", + "type_name": "keen::ds::animal::State", + "type_hash": 4116668204, + "data_offset": 1 + }, + { + "name": "standingNextToPlayerTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "targetSearchStates", + "type_name": "keen::ds::animal::TargetSearchStates", + "type_hash": 943176208, + "data_offset": 16 + }, + { + "name": "beingPetByPlayerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 24 + }, + { + "name": "reproductionState", + "type_name": "keen::ds::animal::ReproductionState", + "type_hash": 3624799674, + "data_offset": 28 + }, + { + "name": "timeUntilHungry", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "eatingCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "hungerState", + "type_name": "keen::ds::animal::HungerState", + "type_hash": 878746813, + "data_offset": 88 + }, + { + "name": "bedSearched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkAnimal", + "type_name_2": "ecs.NetworkAnimal", + "qualified_name": "keen::ds::ecs::NetworkAnimal", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3364354650, + "hash2": 3297999914, + "struct_fields": [ + { + "name": "needs", + "type_name": "keen::ds::animal::NeedsMask", + "type_hash": 2872240580, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimalSaved", + "type_name_2": "ecs.AnimalSaved", + "qualified_name": "keen::ds::ecs::AnimalSaved", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3504892995, + "hash2": 2166821382, + "struct_fields": [ + { + "name": "spawnPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "lastFoodConsumptionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lastValidReproduction", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "willConsumeFood", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "nextReproductionCheck", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "needs", + "type_name": "keen::ds::animal::NeedsMask", + "type_hash": 2872240580, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnimalTarget", + "type_name_2": "ecs.AnimalTarget", + "qualified_name": "keen::ds::ecs::AnimalTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3986988001, + "hash2": 3281138949, + "struct_fields": [ + { + "name": "setup", + "type_name": "keen::ds::animal::TargetSetup", + "type_hash": 3516305163, + "data_offset": 0 + }, + { + "name": "types", + "type_name": "keen::ds::animal::TypeMask", + "type_hash": 3492581671, + "data_offset": 4 + }, + { + "name": "targetOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicAnimalTarget", + "type_name_2": "ecs.DynamicAnimalTarget", + "qualified_name": "keen::ds::ecs::DynamicAnimalTarget", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1216872268, + "hash2": 3222106504, + "struct_fields": [ + { + "name": "associatedAnimal", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BabyAnimal", + "type_name_2": "ecs.BabyAnimal", + "qualified_name": "keen::ds::ecs::BabyAnimal", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1423521172, + "hash2": 2829621432, + "struct_fields": [ + { + "name": "growTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "grownUpEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 8 + }, + { + "name": "growUpTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "canGrowUp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeFlags", + "type_name_2": "ecs.AttributeFlags", + "qualified_name": "keen::ds::ecs::AttributeFlags", + "referenced_type_name": "keen::ecs::AttributeFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2693824395, + "hash2": 58025095, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeComponent", + "type_name_2": "ecs.AttributeComponent", + "qualified_name": "keen::ds::ecs::AttributeComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2673870183, + "hash2": 2357084978, + "struct_fields": [ + { + "name": "rootId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "signature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "storageOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "storageSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::Bitmask16", + "type_hash": 1116072317, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatAttribute", + "type_name_2": "ecs.FloatAttribute", + "qualified_name": "keen::ds::ecs::FloatAttribute", + "referenced_type_name": "keen::ds::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1539232206, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UInt32Attribute", + "type_name_2": "ecs.UInt32Attribute", + "qualified_name": "keen::ds::ecs::UInt32Attribute", + "referenced_type_name": "keen::ds::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1171342195, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SInt32Attribute", + "type_name_2": "ecs.SInt32Attribute", + "qualified_name": "keen::ds::ecs::SInt32Attribute", + "referenced_type_name": "keen::ds::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1791446745, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolAttribute", + "type_name_2": "ecs.BoolAttribute", + "qualified_name": "keen::ds::ecs::BoolAttribute", + "referenced_type_name": "keen::ds::ecs::AttributeComponent", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2244532136, + "hash2": 1548142339, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DurabilityLoad", + "type_name_2": "ecs.DurabilityLoad", + "qualified_name": "keen::ds::ecs::DurabilityLoad", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1337973415, + "hash2": 2867624070, + "struct_fields": [ + { + "name": "percentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DurabilityBurndown", + "type_name_2": "ecs.DurabilityBurndown", + "qualified_name": "keen::ds::ecs::DurabilityBurndown", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4061329502, + "hash2": 2798790253, + "struct_fields": [ + { + "name": "lastUpdate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeType", + "type_name_2": "impact.AttributeType", + "qualified_name": "keen::ds::impact::AttributeType", + "referenced_type_name": "keen::impact::AttributeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 819793719, + "hash2": 478815890, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeDeclerationBase", + "type_name_2": "impact.AttributeDeclerationBase", + "qualified_name": "keen::ds::impact::AttributeDeclerationBase", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 648456432, + "hash2": 850556667, + "struct_fields": [ + { + "name": "formula", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeDecleration", + "type_name_2": "impact.AttributeDecleration", + "qualified_name": "keen::ds::impact::AttributeDecleration", + "referenced_type_name": "keen::ds::impact::AttributeDeclerationBase", + "class_size": 48, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 510170685, + "hash2": 72931366, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::impact::AttributeType", + "type_hash": 819793719, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeIndex", + "type_name_2": "impact.AttributeIndex", + "qualified_name": "keen::ds::impact::AttributeIndex", + "referenced_type_name": "keen::impact::AttributeIndex", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2489558677, + "hash2": 301491076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeContainer", + "type_name_2": "AttributeContainer", + "qualified_name": "keen::ds::AttributeContainer", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2114012440, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeCommand", + "type_name_2": "AttributeCommand", + "qualified_name": "keen::ds::AttributeCommand", + "referenced_type_name": "keen::AttributeCommand", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2117393746, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeOps", + "type_name_2": "AttributeOps", + "qualified_name": "keen::ds::AttributeOps", + "referenced_type_name": "keen::AttributeOps", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 861708091, + "hash2": 3958991199, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AttributeCommand[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AttributeCommand", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1047504507, + "hash2": 913187891, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeStructure", + "type_name_2": "AttributeStructure", + "qualified_name": "keen::ds::AttributeStructure", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 116276326, + "hash2": 157678592, + "struct_fields": [ + { + "name": "parentIndex", + "type_name": "keen::ds::impact::AttributeIndex", + "type_hash": 2489558677, + "data_offset": 0 + }, + { + "name": "childIndex", + "type_name": "keen::ds::impact::AttributeIndex", + "type_hash": 2489558677, + "data_offset": 2 + }, + { + "name": "siblingIndex", + "type_name": "keen::ds::impact::AttributeIndex", + "type_hash": 2489558677, + "data_offset": 4 + }, + { + "name": "calculation", + "type_name": "keen::DsArray", + "type_hash": 1047504507, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AttributeStructure[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::AttributeStructure", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3278848115, + "hash2": 2255031389, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "string[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::string", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 491901079, + "hash2": 1515747367, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BaseAttributeResource", + "type_name_2": "BaseAttributeResource", + "qualified_name": "keen::ds::BaseAttributeResource", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2473298598, + "hash2": 3846503406, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "ids", + "type_name": "keen::DsArray", + "type_hash": 3892628011, + "data_offset": 8 + }, + { + "name": "structure", + "type_name": "keen::DsArray", + "type_hash": 3278848115, + "data_offset": 48 + }, + { + "name": "debugNames", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BaseAttributeResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BaseAttributeResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2421551337, + "hash2": 1218771731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeContainerResource", + "type_name_2": "AttributeContainerResource", + "qualified_name": "keen::ds::AttributeContainerResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3944785852, + "hash2": 2349748086, + "struct_fields": [ + { + "name": "attributes", + "type_name": "keen::DsArray", + "type_hash": 2421551337, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::impact::AttributeDecleration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4206262848, + "hash2": 625469470, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeRootReference", + "type_name_2": "AttributeRootReference", + "qualified_name": "keen::ds::AttributeRootReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1132379930, + "hash2": 3615520947, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::impact::AttributeDeclerationBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 112060423, + "hash2": 3965805037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeReference", + "type_name_2": "AttributeReference", + "qualified_name": "keen::ds::AttributeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2039267642, + "hash2": 2994252604, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttributeValueBase", + "type_name_2": "AttributeValueBase", + "qualified_name": "keen::ds::AttributeValueBase", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1973479079, + "hash2": 3463429067, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatAttributeValue", + "type_name_2": "FloatAttributeValue", + "qualified_name": "keen::ds::FloatAttributeValue", + "referenced_type_name": "keen::ds::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1875215022, + "hash2": 4166761092, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SInt32AttributeValue", + "type_name_2": "SInt32AttributeValue", + "qualified_name": "keen::ds::SInt32AttributeValue", + "referenced_type_name": "keen::ds::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3605126761, + "hash2": 1510671538, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UInt32AttributeValue", + "type_name_2": "UInt32AttributeValue", + "qualified_name": "keen::ds::UInt32AttributeValue", + "referenced_type_name": "keen::ds::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 936701167, + "hash2": 1779457330, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolAttributeValue", + "type_name_2": "BoolAttributeValue", + "qualified_name": "keen::ds::BoolAttributeValue", + "referenced_type_name": "keen::ds::AttributeValueBase", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3833881438, + "hash2": 1566461229, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BalancingAltarCount", + "type_name_2": "BalancingAltarCount", + "qualified_name": "keen::ds::BalancingAltarCount", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1758403609, + "hash2": 4215534330, + "struct_fields": [ + { + "name": "flameLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "altarCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BalancingBuildzoneSize", + "type_name_2": "BalancingBuildzoneSize", + "qualified_name": "keen::ds::BalancingBuildzoneSize", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3680565745, + "hash2": 1314410080, + "struct_fields": [ + { + "name": "altarLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "buildzoneSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExperienceSourceType", + "type_name_2": "ExperienceSourceType", + "qualified_name": "keen::ds::ExperienceSourceType", + "referenced_type_name": "keen::ExperienceSourceType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 323858578, + "hash2": 3378856802, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExperienceBalancing", + "type_name_2": "ExperienceBalancing", + "qualified_name": "keen::ds::ExperienceBalancing", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3451166798, + "hash2": 2000156961, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::ds::ExperienceSourceType", + "type_hash": 323858578, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExperienceBalanceValue", + "type_name_2": "ExperienceBalanceValue", + "qualified_name": "keen::ds::ExperienceBalanceValue", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 194810650, + "hash2": 2489823444, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::ds::ExperienceSourceType", + "type_hash": 323858578, + "data_offset": 0 + }, + { + "name": "experienceValueId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "experienceGain", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerBalancing", + "type_name_2": "RandomSpawnerBalancing", + "qualified_name": "keen::ds::RandomSpawnerBalancing", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1809401875, + "hash2": 3139756344, + "struct_fields": [ + { + "name": "fewAmountFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "manyAmountFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "extremeAmountFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolThresholdBalancing", + "type_name_2": "AggroPoolThresholdBalancing", + "qualified_name": "keen::ds::AggroPoolThresholdBalancing", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3688686091, + "hash2": 4096807070, + "struct_fields": [ + { + "name": "twoPoolsThreshold", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "threePoolsThreshold", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "maxPoolsThreshold", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolBalancing", + "type_name_2": "AggroPoolBalancing", + "qualified_name": "keen::ds::AggroPoolBalancing", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2740632824, + "hash2": 3873620588, + "struct_fields": [ + { + "name": "fewThresholds", + "type_name": "keen::ds::AggroPoolThresholdBalancing", + "type_hash": 3688686091, + "data_offset": 0 + }, + { + "name": "normalThresholds", + "type_name": "keen::ds::AggroPoolThresholdBalancing", + "type_hash": 3688686091, + "data_offset": 12 + }, + { + "name": "manyThresholds", + "type_name": "keen::ds::AggroPoolThresholdBalancing", + "type_hash": 3688686091, + "data_offset": 24 + }, + { + "name": "extremeThresholds", + "type_name": "keen::ds::AggroPoolThresholdBalancing", + "type_hash": 3688686091, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GameKnowledgeDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1236278225, + "hash2": 3473445872, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ExperienceBalanceValue[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ExperienceBalanceValue", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 392954691, + "hash2": 538774344, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BalancingTable", + "type_name_2": "BalancingTable", + "qualified_name": "keen::ds::BalancingTable", + "referenced_type_name": null, + "class_size": 440, + "fields_count": 64, + "primitive_type": "Struct", + "hash1": 2704929962, + "hash2": 764000684, + "struct_fields": [ + { + "name": "genericWeaponSeed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "flameLevelMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "altarLevelMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "playerLevelMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "playerLevelCap", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "itemLevelCap", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "damageBoostFlame", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "apPerFlameLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "critBonus", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "baseCritChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "powerCreepWeapon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "htkStartPve", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "htkEndPve", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "damageMod2Handed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "playerBaseHealth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "playerHealthPerAP", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + }, + { + "name": "playerBaseMana", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "playerManaPerAP", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "playerBaseStamina", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "playerStaminaPerAP", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + }, + { + "name": "playerBaseBodyHeat", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "freezeDurationFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "freezeDurationOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "disableFreezingBaseLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "playerBaseFogResistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "playerFogResistancePerFlameLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "htkStartEvp", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + }, + { + "name": "htkEndEvp", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 108 + }, + { + "name": "killToLevelUPStart", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "killToLevelUPEnd", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 116 + }, + { + "name": "epicWeaponBonus", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "xpNeededFromKnowledge", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "parryToDepletion", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "shotsToDepletion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 132 + }, + { + "name": "avarageCharacterMod", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "knowledgeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 1236278225, + "data_offset": 140 + }, + { + "name": "levelDifferenceXpDamper", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "levelDifferenceXpModMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "levelDifferenceXpModMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "groupSizeXpDamper", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + }, + { + "name": "groupSizeXpDamperModMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 172 + }, + { + "name": "skillPointsPerLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 176 + }, + { + "name": "maximumTotalMusicComfortBuff", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 180 + }, + { + "name": "maximumInstrumentsCountedForComfort", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 184 + }, + { + "name": "timePerInstrumentUntilMaxBuff", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 192 + }, + { + "name": "defaultArmorBlowthrough", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + }, + { + "name": "damageScalePerAttributePoint", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "xpSeedEnemy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "xpSharedOther", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 212 + }, + { + "name": "perkPower", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "perkUpgradeCostSeed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "perkCostCreep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "trashStart", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 228 + }, + { + "name": "trashEnd", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 232 + }, + { + "name": "noiseRainFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 236 + }, + { + "name": "buffReapplyPercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 240 + }, + { + "name": "randomSpawnerBalancing", + "type_name": "keen::ds::RandomSpawnerBalancing", + "type_hash": 1809401875, + "data_offset": 244 + }, + { + "name": "aggroPoolBalancing", + "type_name": "keen::ds::AggroPoolBalancing", + "type_hash": 2740632824, + "data_offset": 256 + }, + { + "name": "maximumAnimalsInWorld", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 304 + }, + { + "name": "hookShotCostLevelFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 308 + }, + { + "name": "hookShotCostBase", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 312 + }, + { + "name": "altarsPerFlameLevel", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 320 + }, + { + "name": "buildzoneSizesPerAltarLevel", + "type_name": "keen::DsArray", + "type_hash": 2619150946, + "data_offset": 360 + }, + { + "name": "experienceValues", + "type_name": "keen::DsArray", + "type_hash": 392954691, + "data_offset": 400 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BalancingLocaIds", + "type_name_2": "BalancingLocaIds", + "qualified_name": "keen::ds::BalancingLocaIds", + "referenced_type_name": "keen::BalancingLocaIds", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 796023591, + "hash2": 3140091377, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffSlotType", + "type_name_2": "BuffSlotType", + "qualified_name": "keen::ds::BuffSlotType", + "referenced_type_name": "keen::BuffSlotType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3951183014, + "hash2": 3892040999, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffApplyType", + "type_name_2": "BuffApplyType", + "qualified_name": "keen::ds::BuffApplyType", + "referenced_type_name": "keen::BuffApplyType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2665386810, + "hash2": 1081422391, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OnCreateHelper", + "type_name_2": "OnCreateHelper", + "qualified_name": "keen::ds::OnCreateHelper", + "referenced_type_name": null, + "class_size": 100, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 954032410, + "hash2": 3232332191, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 4 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 64 + }, + { + "name": "onlyPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "notifier", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhileAppliedHelper", + "type_name_2": "WhileAppliedHelper", + "qualified_name": "keen::ds::WhileAppliedHelper", + "referenced_type_name": null, + "class_size": 140, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2645167581, + "hash2": 2514304886, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 4 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 44 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 60 + }, + { + "name": "parameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeId", + "type_name_2": "BuffTypeId", + "qualified_name": "keen::ds::BuffTypeId", + "referenced_type_name": "keen::BuffTypeId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 619277551, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTextureResource", + "type_name_2": "UiTextureResource", + "qualified_name": "keen::ds::UiTextureResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3702388360, + "hash2": 3734950824, + "struct_fields": [ + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Image", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1074810881, + "hash2": 396828358, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImageReference", + "type_name_2": "ImageReference", + "qualified_name": "keen::ds::ImageReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3047280905, + "hash2": 3569045864, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTexture", + "type_name_2": "UiTexture", + "qualified_name": "keen::ds::UiTexture", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1666396020, + "hash2": 2337113227, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::ds::UiTextureResource", + "type_hash": 3702388360, + "data_offset": 0 + }, + { + "name": "image", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactionMask", + "type_name_2": "FactionMask", + "qualified_name": "keen::ds::FactionMask", + "referenced_type_name": "keen::FactionMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 897935557, + "hash2": 2685951622, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ImpactUiValue[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ImpactUiValue", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3612751759, + "hash2": 1434133281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffType", + "type_name_2": "BuffType", + "qualified_name": "keen::ds::BuffType", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 17814210, + "hash2": 2020638848, + "struct_fields": [ + { + "name": "buffTypeId", + "type_name": "keen::ds::BuffTypeId", + "type_hash": 619277551, + "data_offset": 0 + }, + { + "name": "slot", + "type_name": "keen::ds::BuffSlotType", + "type_hash": 3951183014, + "data_offset": 4 + }, + { + "name": "applyType", + "type_name": "keen::ds::BuffApplyType", + "type_hash": 2665386810, + "data_offset": 5 + }, + { + "name": "defaultLifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "name", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 16 + }, + { + "name": "description", + "type_name": "keen::ds::DescriptionLocaTag", + "type_hash": 4249666514, + "data_offset": 32 + }, + { + "name": "hideInUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "icon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 52 + }, + { + "name": "hideDurationInUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "despawnOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 101 + }, + { + "name": "impact", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 104 + }, + { + "name": "factionExcludeMask", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 120 + }, + { + "name": "impactValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 128 + }, + { + "name": "uiValues", + "type_name": "keen::DsArray", + "type_hash": 3612751759, + "data_offset": 168 + }, + { + "name": "onCreate", + "type_name": "keen::ds::OnCreateHelper", + "type_hash": 954032410, + "data_offset": 208 + }, + { + "name": "whileApplied", + "type_name": "keen::ds::WhileAppliedHelper", + "type_hash": 2645167581, + "data_offset": 308 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeSubDirectory", + "type_name_2": "BuffTypeSubDirectory", + "qualified_name": "keen::ds::BuffTypeSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 225188547, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypDirectory", + "type_name_2": "BuffTypDirectory", + "qualified_name": "keen::ds::BuffTypDirectory", + "referenced_type_name": "keen::ds::BuffTypeSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1639819058, + "hash2": 1054664428, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffInstance", + "type_name_2": "ecs.BuffInstance", + "qualified_name": "keen::ds::ecs::BuffInstance", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3549684070, + "hash2": 2481107784, + "struct_fields": [ + { + "name": "buffEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "typeId", + "type_name": "keen::ds::BuffTypeId", + "type_hash": 619277551, + "data_offset": 4 + }, + { + "name": "cleansed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuffInstance[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::BuffInstance", + "class_size": 48, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 712364574, + "hash2": 408862171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuffInstance[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::BuffInstance", + "class_size": 192, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 2998656523, + "hash2": 2639773870, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuffInstance[1]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::BuffInstance", + "class_size": 12, + "fields_count": 1, + "primitive_type": "StaticArray", + "hash1": 2892910591, + "hash2": 475531362, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffContainer", + "type_name_2": "ecs.BuffContainer", + "qualified_name": "keen::ds::ecs::BuffContainer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 472, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 962762412, + "hash2": 3199996261, + "struct_fields": [ + { + "name": "foodBuffs", + "type_name": "keen::StaticArray", + "type_hash": 712364574, + "data_offset": 0 + }, + { + "name": "genericBuffs", + "type_name": "keen::StaticArray", + "type_hash": 2998656523, + "data_offset": 48 + }, + { + "name": "genericDebuffs", + "type_name": "keen::StaticArray", + "type_hash": 2998656523, + "data_offset": 240 + }, + { + "name": "restedBuff", + "type_name": "keen::StaticArray", + "type_hash": 2892910591, + "data_offset": 432 + }, + { + "name": "terrainDebuff", + "type_name": "keen::StaticArray", + "type_hash": 2892910591, + "data_offset": 444 + }, + { + "name": "hungerStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 456 + }, + { + "name": "extendedFoodBuffSlots", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 464 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageSetup", + "type_name_2": "impact.DamageSetup", + "qualified_name": "keen::ds::impact::DamageSetup", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3674396349, + "hash2": 2144341763, + "struct_fields": [ + { + "name": "physicalCutDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "physicalPierceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "physicalBluntDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "magicalFireDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "magicalIceDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "magicalFogDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "magicalLightningDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "healing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "poisonDamage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "woodDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 36 + }, + { + "name": "stoneDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 40 + }, + { + "name": "metalDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 44 + }, + { + "name": "explosionDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffComponent", + "type_name_2": "ecs.BuffComponent", + "qualified_name": "keen::ds::ecs::BuffComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 60, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3634435188, + "hash2": 353244209, + "struct_fields": [ + { + "name": "buffTypeId", + "type_name": "keen::ds::BuffTypeId", + "type_hash": 619277551, + "data_offset": 0 + }, + { + "name": "damageSetup", + "type_name": "keen::ds::impact::DamageSetup", + "type_hash": 3674396349, + "data_offset": 4 + }, + { + "name": "isDamageSetupSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffNetworkData", + "type_name_2": "ecs.BuffNetworkData", + "qualified_name": "keen::ds::ecs::BuffNetworkData", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2410025, + "hash2": 723778160, + "struct_fields": [ + { + "name": "restDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "buffTypeId", + "type_name": "keen::ds::BuffTypeId", + "type_hash": 619277551, + "data_offset": 8 + }, + { + "name": "durationPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiTexture[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiTexture", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2155159947, + "hash2": 3197573732, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTexturePreload", + "type_name_2": "UiTexturePreload", + "qualified_name": "keen::ds::UiTexturePreload", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3300318481, + "hash2": 2963900731, + "struct_fields": [ + { + "name": "textures", + "type_name": "keen::DsArray", + "type_hash": 2155159947, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BuffTypeReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BuffTypeReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4150314062, + "hash2": 2572954486, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuffTypeCollectionResource", + "type_name_2": "BuffTypeCollectionResource", + "qualified_name": "keen::ds::BuffTypeCollectionResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2286083386, + "hash2": 1928825399, + "struct_fields": [ + { + "name": "buffs", + "type_name": "keen::DsArray", + "type_hash": 4150314062, + "data_offset": 0 + }, + { + "name": "uiTextures", + "type_name": "keen::ds::UiTexturePreload", + "type_hash": 3300318481, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InhibitBuildingCheck", + "type_name_2": "InhibitBuildingCheck", + "qualified_name": "keen::ds::InhibitBuildingCheck", + "referenced_type_name": "keen::InhibitBuildingCheck", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3925522342, + "hash2": 3624848573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InhibitBuildType", + "type_name_2": "InhibitBuildType", + "qualified_name": "keen::ds::InhibitBuildType", + "referenced_type_name": "keen::InhibitBuildType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 49054266, + "hash2": 156726595, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InhibitBuildMask", + "type_name_2": "InhibitBuildMask", + "qualified_name": "keen::ds::InhibitBuildMask", + "referenced_type_name": "keen::InhibitBuildMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 216318722, + "hash2": 3520809761, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Gender", + "type_name_2": "Gender", + "qualified_name": "keen::ds::Gender", + "referenced_type_name": "keen::Gender", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 4279931246, + "hash2": 1339649874, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoicePack", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4222818095, + "hash2": 3181913241, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackReference", + "type_name_2": "VoicePackReference", + "qualified_name": "keen::ds::VoicePackReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2449571131, + "hash2": 548939134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ColorPreset", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3270700114, + "hash2": 3126996631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPresetReference", + "type_name_2": "ColorPresetReference", + "qualified_name": "keen::ds::ColorPresetReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4000034690, + "hash2": 1761190497, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPreset", + "type_name_2": "CharacterPreset", + "qualified_name": "keen::ds::CharacterPreset", + "referenced_type_name": null, + "class_size": 404, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 1165932741, + "hash2": 602672190, + "struct_fields": [ + { + "name": "gender", + "type_name": "keen::ds::Gender", + "type_hash": 4279931246, + "data_offset": 0 + }, + { + "name": "voicePackId", + "type_name": "keen::ds::VoicePackReference", + "type_hash": 2449571131, + "data_offset": 4 + }, + { + "name": "hairGradient", + "type_name": "keen::ds::ColorPresetReference", + "type_hash": 4000034690, + "data_offset": 20 + }, + { + "name": "beardGradient", + "type_name": "keen::ds::ColorPresetReference", + "type_hash": 4000034690, + "data_offset": 36 + }, + { + "name": "skinColor", + "type_name": "keen::ds::PaletteColorReference", + "type_hash": 1940966470, + "data_offset": 52 + }, + { + "name": "eyeBrowColor", + "type_name": "keen::ds::PaletteColorReference", + "type_hash": 1940966470, + "data_offset": 68 + }, + { + "name": "eyeColor", + "type_name": "keen::ds::PaletteColorReference", + "type_hash": 1940966470, + "data_offset": 84 + }, + { + "name": "head", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 100 + }, + { + "name": "hair", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 116 + }, + { + "name": "beard", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 132 + }, + { + "name": "neck", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 148 + }, + { + "name": "collar", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 164 + }, + { + "name": "chest", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 180 + }, + { + "name": "waist", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 196 + }, + { + "name": "crotch", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 212 + }, + { + "name": "upperArms", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 228 + }, + { + "name": "lowerArms", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 244 + }, + { + "name": "hands", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 260 + }, + { + "name": "upperLegs", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 276 + }, + { + "name": "lowerLegs", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 292 + }, + { + "name": "feet", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 308 + }, + { + "name": "armourHead", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 324 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 340 + }, + { + "name": "armourArms", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 356 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 372 + }, + { + "name": "armourFeet", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 388 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ColorGradient", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2736486615, + "hash2": 4162337414, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorGradientReference", + "type_name_2": "ColorGradientReference", + "qualified_name": "keen::ds::ColorGradientReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 552547823, + "hash2": 752321535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPreset", + "type_name_2": "ColorPreset", + "qualified_name": "keen::ds::ColorPreset", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1363951725, + "hash2": 67472420, + "struct_fields": [ + { + "name": "colorGradient", + "type_name": "keen::ds::ColorGradientReference", + "type_hash": 552547823, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorPresetId", + "type_name_2": "ColorPresetId", + "qualified_name": "keen::ds::ColorPresetId", + "referenced_type_name": "keen::ColorPresetId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2736759512, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderGradientMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 11905800, + "hash2": 1553243167, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorPresetResource", + "type_name_2": "ColorPresetResource", + "qualified_name": "keen::ds::ColorPresetResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3314468941, + "hash2": 2581014613, + "struct_fields": [ + { + "name": "presetId", + "type_name": "keen::ds::ColorPresetId", + "type_hash": 2736759512, + "data_offset": 0 + }, + { + "name": "colorGradient", + "type_name": "keen::ObjectReference", + "type_hash": 11905800, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetSubDirectory", + "type_name_2": "CharacterPresetSubDirectory", + "qualified_name": "keen::ds::CharacterPresetSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 933484216, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetDirectory", + "type_name_2": "CharacterPresetDirectory", + "qualified_name": "keen::ds::CharacterPresetDirectory", + "referenced_type_name": "keen::ds::CharacterPresetSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 696388392, + "hash2": 3175576473, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CharacterPresetDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1918154407, + "hash2": 3686563286, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetCollectionReference", + "type_name_2": "CharacterPresetCollectionReference", + "qualified_name": "keen::ds::CharacterPresetCollectionReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 866975854, + "hash2": 350725309, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetId", + "type_name_2": "CharacterPresetId", + "qualified_name": "keen::ds::CharacterPresetId", + "referenced_type_name": "keen::CharacterPresetId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3120811008, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackId", + "type_name_2": "VoicePackId", + "qualified_name": "keen::ds::VoicePackId", + "referenced_type_name": "keen::VoicePackId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 949852083, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetResource", + "type_name_2": "CharacterPresetResource", + "qualified_name": "keen::ds::CharacterPresetResource", + "referenced_type_name": null, + "class_size": 512, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 391861013, + "hash2": 2137799539, + "struct_fields": [ + { + "name": "references", + "type_name": "keen::ds::CharacterPreset", + "type_hash": 1165932741, + "data_offset": 0 + }, + { + "name": "presetId", + "type_name": "keen::ds::CharacterPresetId", + "type_hash": 3120811008, + "data_offset": 404 + }, + { + "name": "gender", + "type_name": "keen::ds::Gender", + "type_hash": 4279931246, + "data_offset": 408 + }, + { + "name": "voicePackId", + "type_name": "keen::ds::VoicePackId", + "type_hash": 949852083, + "data_offset": 412 + }, + { + "name": "hairColorId", + "type_name": "keen::ds::ColorPresetId", + "type_hash": 2736759512, + "data_offset": 416 + }, + { + "name": "beardColorId", + "type_name": "keen::ds::ColorPresetId", + "type_hash": 2736759512, + "data_offset": 420 + }, + { + "name": "skinColor", + "type_name": "keen::ds::PaletteColorId", + "type_hash": 3143764908, + "data_offset": 424 + }, + { + "name": "eyeBrowColor", + "type_name": "keen::ds::PaletteColorId", + "type_hash": 3143764908, + "data_offset": 428 + }, + { + "name": "eyeColor", + "type_name": "keen::ds::PaletteColorId", + "type_hash": 3143764908, + "data_offset": 432 + }, + { + "name": "head", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 436 + }, + { + "name": "hair", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 440 + }, + { + "name": "beard", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 444 + }, + { + "name": "neck", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 448 + }, + { + "name": "collar", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 452 + }, + { + "name": "chest", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 456 + }, + { + "name": "waist", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 460 + }, + { + "name": "crotch", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 464 + }, + { + "name": "upperArms", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 468 + }, + { + "name": "lowerArms", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 472 + }, + { + "name": "hands", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 476 + }, + { + "name": "upperLegs", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 480 + }, + { + "name": "lowerLegs", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 484 + }, + { + "name": "feet", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 488 + }, + { + "name": "armourHead", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 492 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 496 + }, + { + "name": "armourArms", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 500 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 504 + }, + { + "name": "armourFeet", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 508 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombination", + "type_name_2": "ColorCombination", + "qualified_name": "keen::ds::ColorCombination", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 406724265, + "hash2": 2116579741, + "struct_fields": [ + { + "name": "color0", + "type_name": "keen::ds::PaletteColorReference", + "type_hash": 1940966470, + "data_offset": 0 + }, + { + "name": "color1", + "type_name": "keen::ds::PaletteColorReference", + "type_hash": 1940966470, + "data_offset": 16 + }, + { + "name": "color2", + "type_name": "keen::ds::PaletteColorReference", + "type_hash": 1940966470, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderBlendShapeSlot[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderBlendShapeSlot", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1170336748, + "hash2": 3457966931, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetPreviewModelInfo", + "type_name_2": "CharacterPresetPreviewModelInfo", + "qualified_name": "keen::ds::CharacterPresetPreviewModelInfo", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2890941448, + "hash2": 1877352117, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "colorCombination", + "type_name": "keen::ds::ColorCombination", + "type_hash": 406724265, + "data_offset": 16 + }, + { + "name": "gradient", + "type_name": "keen::ObjectReference", + "type_hash": 11905800, + "data_offset": 64 + }, + { + "name": "blendShapes", + "type_name": "keen::DsArray", + "type_hash": 1170336748, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CharacterPreset", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 845977306, + "hash2": 3825966155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetReference", + "type_name_2": "CharacterPresetReference", + "qualified_name": "keen::ds::CharacterPresetReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1126720570, + "hash2": 3710939110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendShapeMask", + "type_name_2": "BlendShapeMask", + "qualified_name": "keen::ds::BlendShapeMask", + "referenced_type_name": "keen::BlendShapeMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3013485815, + "hash2": 2163357640, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CharacterPresetPreviewModelInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CharacterPresetPreviewModelInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3767299031, + "hash2": 4058053224, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetPreview", + "type_name_2": "CharacterPresetPreview", + "qualified_name": "keen::ds::CharacterPresetPreview", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3267282423, + "hash2": 538669306, + "struct_fields": [ + { + "name": "preset", + "type_name": "keen::ds::CharacterPresetReference", + "type_hash": 1126720570, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 3767299031, + "data_offset": 16 + }, + { + "name": "activeBlendShapes", + "type_name": "keen::ds::BlendShapeMask", + "type_hash": 3013485815, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetObjectReference", + "type_name_2": "CharacterPresetObjectReference", + "qualified_name": "keen::ds::CharacterPresetObjectReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 909042191, + "hash2": 3710939110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CharacterPresetResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CharacterPresetResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2725954720, + "hash2": 3812519664, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ColorPresetResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ColorPresetResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1812097984, + "hash2": 454280442, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetCollection", + "type_name_2": "CharacterPresetCollection", + "qualified_name": "keen::ds::CharacterPresetCollection", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2354715569, + "hash2": 2879224118, + "struct_fields": [ + { + "name": "presets", + "type_name": "keen::DsArray", + "type_hash": 2725954720, + "data_offset": 0 + }, + { + "name": "colorGradients", + "type_name": "keen::DsArray", + "type_hash": 1812097984, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationId", + "type_name_2": "ColorCombinationId", + "qualified_name": "keen::ds::ColorCombinationId", + "referenced_type_name": "keen::ColorCombinationId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 770810508, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ColorCombination", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2600600472, + "hash2": 2253894164, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationReference", + "type_name_2": "ColorCombinationReference", + "qualified_name": "keen::ds::ColorCombinationReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2564377510, + "hash2": 1508509343, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationResource", + "type_name_2": "ColorCombinationResource", + "qualified_name": "keen::ds::ColorCombinationResource", + "referenced_type_name": "keen::ColorCombinationResource", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 931469913, + "hash2": 930501107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationSubDirectory", + "type_name_2": "ColorCombinationSubDirectory", + "qualified_name": "keen::ds::ColorCombinationSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3182476468, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ColorCombinationDirectory", + "type_name_2": "ColorCombinationDirectory", + "qualified_name": "keen::ds::ColorCombinationDirectory", + "referenced_type_name": "keen::ds::ColorCombinationSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1125196228, + "hash2": 3737966731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ComfortQuery", + "type_name_2": "ecs.ComfortQuery", + "qualified_name": "keen::ds::ecs::ComfortQuery", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2801546664, + "hash2": 885371591, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "nextQuery", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "nearWarmth", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "warmthEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComfortCategory", + "type_name_2": "ecs.ComfortCategory", + "qualified_name": "keen::ds::ecs::ComfortCategory", + "referenced_type_name": "keen::ecs::ComfortCategory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1789136004, + "hash2": 108535716, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ComfortProvider", + "type_name_2": "ecs.ComfortProvider", + "qualified_name": "keen::ds::ecs::ComfortProvider", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 47690809, + "hash2": 230148807, + "struct_fields": [ + { + "name": "comfort", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "category", + "type_name": "keen::ds::ecs::ComfortCategory", + "type_hash": 1789136004, + "data_offset": 4 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "freezingResistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkComfort", + "type_name_2": "ecs.NetworkComfort", + "qualified_name": "keen::ds::ecs::NetworkComfort", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1736242410, + "hash2": 133628736, + "struct_fields": [ + { + "name": "hearthEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShelterQueryState", + "type_name_2": "ecs.ShelterQueryState", + "qualified_name": "keen::ds::ecs::ShelterQueryState", + "referenced_type_name": "keen::ecs::ShelterQueryState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 427976356, + "hash2": 1356309530, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Shelter", + "type_name_2": "ecs.Shelter", + "qualified_name": "keen::ds::ecs::Shelter", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 832146325, + "hash2": 4195861347, + "struct_fields": [ + { + "name": "checkRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "requiredShelterPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShelterRay", + "type_name_2": "ecs.ShelterRay", + "qualified_name": "keen::ds::ecs::ShelterRay", + "referenced_type_name": "keen::ecs::ShelterRay", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3996160335, + "hash2": 98472090, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RayHitMask", + "type_name_2": "ecs.RayHitMask", + "qualified_name": "keen::ds::ecs::RayHitMask", + "referenced_type_name": "keen::ecs::RayHitMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3471074333, + "hash2": 3419264490, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicShelter", + "type_name_2": "ecs.DynamicShelter", + "qualified_name": "keen::ds::ecs::DynamicShelter", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3306185774, + "hash2": 1356041584, + "struct_fields": [ + { + "name": "nextQueryTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "shelterPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "queryHits", + "type_name": "keen::ds::ecs::RayHitMask", + "type_hash": 3471074333, + "data_offset": 8 + }, + { + "name": "queryState", + "type_name": "keen::ds::ecs::ShelterQueryState", + "type_hash": 427976356, + "data_offset": 10 + }, + { + "name": "sheltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "shelterStateSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Resting", + "type_name_2": "ecs.Resting", + "qualified_name": "keen::ds::ecs::Resting", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2658985962, + "hash2": 2676226670, + "struct_fields": [ + { + "name": "waitTime0", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "waitTime1", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "waitTime2", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "waitTime3", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "waitTime4", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingWorkshopDirectory", + "type_name_2": "CraftingWorkshopDirectory", + "qualified_name": "keen::ds::CraftingWorkshopDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2042378223, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingWorkshopSubDirectory", + "type_name_2": "CraftingWorkshopSubDirectory", + "qualified_name": "keen::ds::CraftingWorkshopSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3764296077, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiWorkshopRenderingOptions", + "type_name_2": "UiWorkshopRenderingOptions", + "qualified_name": "keen::ds::UiWorkshopRenderingOptions", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1439194818, + "hash2": 1512291427, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "defaultAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 16 + }, + { + "name": "defaultAnimationStateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 32 + }, + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 2358948672, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeRequirementType", + "type_name_2": "KnowledgeRequirementType", + "qualified_name": "keen::ds::KnowledgeRequirementType", + "referenced_type_name": "keen::KnowledgeRequirementType", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 2010022536, + "hash2": 3015149043, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PredefinedKnowledgeTypes", + "type_name_2": "PredefinedKnowledgeTypes", + "qualified_name": "keen::ds::PredefinedKnowledgeTypes", + "referenced_type_name": "keen::PredefinedKnowledgeTypes", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Typedef", + "hash1": 2716114960, + "hash2": 3418576282, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeTrigger", + "type_name_2": "ItemKnowledgeTrigger", + "qualified_name": "keen::ds::ItemKnowledgeTrigger", + "referenced_type_name": "keen::ItemKnowledgeTrigger", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 3476630128, + "hash2": 1642064034, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WorldKnowledgeObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 223212227, + "hash2": 2823665076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PlayerKnowledgeObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3956008818, + "hash2": 2662057897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::NpcDialogOptionBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3200857631, + "hash2": 2494597758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GameKnowledgeQuery", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3535380964, + "hash2": 1438973791, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::FbUiWorldEvent", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2154239764, + "hash2": 154925051, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeRequirementBase", + "type_name_2": "GameKnowledgeRequirementBase", + "qualified_name": "keen::ds::GameKnowledgeRequirementBase", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1468375963, + "hash2": 2640734591, + "struct_fields": [ + { + "name": "queryType", + "type_name": "keen::ds::KnowledgeRequirementType", + "type_hash": 2010022536, + "data_offset": 0 + }, + { + "name": "knowledge", + "type_name": "keen::ObjectReference", + "type_hash": 223212227, + "data_offset": 4 + }, + { + "name": "playerKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 3956008818, + "data_offset": 20 + }, + { + "name": "predefinedKnowledge", + "type_name": "keen::ds::PredefinedKnowledgeTypes", + "type_hash": 2716114960, + "data_offset": 36 + }, + { + "name": "itemKnowledge", + "type_name": "keen::ds::ItemKnowledgeTrigger", + "type_hash": 3476630128, + "data_offset": 37 + }, + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 40 + }, + { + "name": "dialogOption", + "type_name": "keen::ObjectReference", + "type_hash": 3200857631, + "data_offset": 56 + }, + { + "name": "query", + "type_name": "keen::ObjectReference", + "type_hash": 3535380964, + "data_offset": 72 + }, + { + "name": "triggerUiEvent", + "type_name": "keen::ObjectReference", + "type_hash": 2154239764, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeRequirement", + "type_name_2": "GameKnowledgeRequirement", + "qualified_name": "keen::ds::GameKnowledgeRequirement", + "referenced_type_name": "keen::ds::GameKnowledgeRequirementBase", + "class_size": 104, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3603873110, + "hash2": 3988461596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopDefinition", + "type_name_2": "WorkshopDefinition", + "qualified_name": "keen::ds::WorkshopDefinition", + "referenced_type_name": null, + "class_size": 140, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1209006031, + "hash2": 2696495909, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 16 + }, + { + "name": "isNpc", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "ignoreInJournalUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "unlockRequirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WorkshopDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 224738262, + "hash2": 2771806287, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopReference", + "type_name_2": "WorkshopReference", + "qualified_name": "keen::ds::WorkshopReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1486761283, + "hash2": 2613955830, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropDefinition", + "type_name_2": "CraftingPropDefinition", + "qualified_name": "keen::ds::CraftingPropDefinition", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1613991105, + "hash2": 1228587107, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopId", + "type_name_2": "WorkshopId", + "qualified_name": "keen::ds::WorkshopId", + "referenced_type_name": "keen::WorkshopId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1406855915, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopResource", + "type_name_2": "WorkshopResource", + "qualified_name": "keen::ds::WorkshopResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3453352142, + "hash2": 3489855502, + "struct_fields": [ + { + "name": "isNpc", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "ignoreInJournalUi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "workshopGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 20 + }, + { + "name": "name", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 24 + }, + { + "name": "item", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 28 + }, + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropMask", + "type_name_2": "CraftingPropMask", + "qualified_name": "keen::ds::CraftingPropMask", + "referenced_type_name": "keen::CraftingPropMask", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3066136568, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropId", + "type_name_2": "CraftingPropId", + "qualified_name": "keen::ds::CraftingPropId", + "referenced_type_name": "keen::CraftingPropId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3108973213, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftingPropResource", + "type_name_2": "CraftingPropResource", + "qualified_name": "keen::ds::CraftingPropResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 791243444, + "hash2": 2395455551, + "struct_fields": [ + { + "name": "craftingPropGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "craftingPropId", + "type_name": "keen::ds::CraftingPropId", + "type_hash": 3108973213, + "data_offset": 16 + }, + { + "name": "craftingPropIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "name", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 24 + }, + { + "name": "item", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 28 + }, + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WorkshopResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WorkshopResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3727761843, + "hash2": 3147320048, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CraftingPropResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CraftingPropResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1761285689, + "hash2": 1470010323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorkshopRegistryResource", + "type_name_2": "WorkshopRegistryResource", + "qualified_name": "keen::ds::WorkshopRegistryResource", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 393851333, + "hash2": 1242767307, + "struct_fields": [ + { + "name": "npcs", + "type_name": "keen::DsArray", + "type_hash": 3727761843, + "data_offset": 0 + }, + { + "name": "workshops", + "type_name": "keen::DsArray", + "type_hash": 3727761843, + "data_offset": 40 + }, + { + "name": "craftingProps", + "type_name": "keen::DsArray", + "type_hash": 1761285689, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomStringId", + "type_name_2": "CustomStringId", + "qualified_name": "keen::ds::CustomStringId", + "referenced_type_name": "keen::CustomStringId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 240298568, + "hash2": 3449401850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemySpawnEntry", + "type_name_2": "debug.EnemySpawnEntry", + "qualified_name": "keen::ds::debug::EnemySpawnEntry", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 594281563, + "hash2": 2641378041, + "struct_fields": [ + { + "name": "displayName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "entity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 40 + }, + { + "name": "sortPriority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyDebugMenuFilterEntry", + "type_name_2": "debug.EnemyDebugMenuFilterEntry", + "qualified_name": "keen::ds::debug::EnemyDebugMenuFilterEntry", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2961559452, + "hash2": 2955576299, + "struct_fields": [ + { + "name": "displayName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "filter", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "debug.EnemySpawnEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::debug::EnemySpawnEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2325122976, + "hash2": 87227149, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "debug.EnemyDebugMenuFilterEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::debug::EnemyDebugMenuFilterEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1621078773, + "hash2": 3111885072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyDebugMenu", + "type_name_2": "debug.EnemyDebugMenu", + "qualified_name": "keen::ds::debug::EnemyDebugMenu", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 628909182, + "hash2": 3337409014, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 2325122976, + "data_offset": 0 + }, + { + "name": "filters", + "type_name": "keen::DsArray", + "type_hash": 1621078773, + "data_offset": 40 + }, + { + "name": "maxLevel", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DialogOptionId", + "type_name_2": "DialogOptionId", + "qualified_name": "keen::ds::DialogOptionId", + "referenced_type_name": "keen::DialogOptionId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3817676075, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogDirectory", + "type_name_2": "NpcDialogDirectory", + "qualified_name": "keen::ds::NpcDialogDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2352024485, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogDefinition", + "type_name_2": "NpcDialogDefinition", + "qualified_name": "keen::ds::NpcDialogDefinition", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3877591863, + "hash2": 3947970007, + "struct_fields": [ + { + "name": "defaultSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "missingRequirementSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + }, + { + "name": "headline", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 32 + }, + { + "name": "craftingOption", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 48 + }, + { + "name": "itemUpgradeOption", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 64 + }, + { + "name": "itemRecyclingOption", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 80 + }, + { + "name": "sendBackToFlameOption", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogGroup", + "type_name_2": "NpcDialogGroup", + "qualified_name": "keen::ds::NpcDialogGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 340912017, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOptionBase", + "type_name_2": "NpcDialogOptionBase", + "qualified_name": "keen::ds::NpcDialogOptionBase", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 447170254, + "hash2": 1984641178, + "struct_fields": [ + { + "name": "overrideSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogInitLine", + "type_name_2": "NpcDialogInitLine", + "qualified_name": "keen::ds::NpcDialogInitLine", + "referenced_type_name": "keen::ds::NpcDialogOptionBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2656688726, + "hash2": 588997827, + "struct_fields": [ + { + "name": "isWakeup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogFarewellLine", + "type_name_2": "NpcDialogFarewellLine", + "qualified_name": "keen::ds::NpcDialogFarewellLine", + "referenced_type_name": "keen::ds::NpcDialogOptionBase", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2155920012, + "hash2": 1377385789, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogTransitionLine", + "type_name_2": "NpcDialogTransitionLine", + "qualified_name": "keen::ds::NpcDialogTransitionLine", + "referenced_type_name": "keen::ds::NpcDialogOptionBase", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1912954855, + "hash2": 1377385789, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOption", + "type_name_2": "NpcDialogOption", + "qualified_name": "keen::ds::NpcDialogOption", + "referenced_type_name": "keen::ds::NpcDialogOptionBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 434481603, + "hash2": 1329687300, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogResponseBase", + "type_name_2": "NpcDialogResponseBase", + "qualified_name": "keen::ds::NpcDialogResponseBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 626260876, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogText", + "type_name_2": "NpcDialogText", + "qualified_name": "keen::ds::NpcDialogText", + "referenced_type_name": "keen::ds::NpcDialogResponseBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3919184957, + "hash2": 2179055780, + "struct_fields": [ + { + "name": "body", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LocaTagId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LocaTagId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1569575410, + "hash2": 1733252374, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOptionResourceBase", + "type_name_2": "NpcDialogOptionResourceBase", + "qualified_name": "keen::ds::NpcDialogOptionResourceBase", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4228741682, + "hash2": 3526545065, + "struct_fields": [ + { + "name": "optionId", + "type_name": "keen::ds::DialogOptionId", + "type_hash": 3817676075, + "data_offset": 0 + }, + { + "name": "overrideSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 8 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 24 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 28 + }, + { + "name": "bodyTexts", + "type_name": "keen::DsArray", + "type_hash": 1569575410, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogInitLineResource", + "type_name_2": "NpcDialogInitLineResource", + "qualified_name": "keen::ds::NpcDialogInitLineResource", + "referenced_type_name": "keen::ds::NpcDialogOptionResourceBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1065498350, + "hash2": 1169584111, + "struct_fields": [ + { + "name": "isWakeup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogTransitionLineResource", + "type_name_2": "NpcDialogTransitionLineResource", + "qualified_name": "keen::ds::NpcDialogTransitionLineResource", + "referenced_type_name": "keen::ds::NpcDialogOptionResourceBase", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 381738771, + "hash2": 3570745617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogFarewellResource", + "type_name_2": "NpcDialogFarewellResource", + "qualified_name": "keen::ds::NpcDialogFarewellResource", + "referenced_type_name": "keen::ds::NpcDialogOptionResourceBase", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1139149246, + "hash2": 3570745617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogOptionResource", + "type_name_2": "NpcDialogOptionResource", + "qualified_name": "keen::ds::NpcDialogOptionResource", + "referenced_type_name": "keen::ds::NpcDialogOptionResourceBase", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 18215215, + "hash2": 1578264567, + "struct_fields": [ + { + "name": "optionText", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NpcDialogInitLineResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NpcDialogInitLineResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 604027393, + "hash2": 3380171694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NpcDialogTransitionLineResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NpcDialogTransitionLineResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 135457538, + "hash2": 2775561598, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NpcDialogFarewellResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NpcDialogFarewellResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2897393765, + "hash2": 1753566961, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NpcDialogOptionResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NpcDialogOptionResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2111280118, + "hash2": 3861790066, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogResource", + "type_name_2": "NpcDialogResource", + "qualified_name": "keen::ds::NpcDialogResource", + "referenced_type_name": null, + "class_size": 216, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3312134918, + "hash2": 852680221, + "struct_fields": [ + { + "name": "headline", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "crafting", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 4 + }, + { + "name": "itemUpgrade", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 8 + }, + { + "name": "itemRecycling", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 12 + }, + { + "name": "sendBackToFlame", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 16 + }, + { + "name": "defaultSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 20 + }, + { + "name": "missingRequirementSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 36 + }, + { + "name": "initLines", + "type_name": "keen::DsArray", + "type_hash": 604027393, + "data_offset": 56 + }, + { + "name": "transitionLines", + "type_name": "keen::DsArray", + "type_hash": 135457538, + "data_offset": 96 + }, + { + "name": "farewellLines", + "type_name": "keen::DsArray", + "type_hash": 2897393765, + "data_offset": 136 + }, + { + "name": "dialogOptions", + "type_name": "keen::DsArray", + "type_hash": 2111280118, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentSlotType", + "type_name_2": "EquipmentSlotType", + "qualified_name": "keen::ds::EquipmentSlotType", + "referenced_type_name": "keen::EquipmentSlotType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1809869085, + "hash2": 4138585032, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentSlot", + "type_name_2": "EquipmentSlot", + "qualified_name": "keen::ds::EquipmentSlot", + "referenced_type_name": "keen::EquipmentSlot", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 253613781, + "hash2": 2082766864, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisualEquippedItems", + "type_name_2": "VisualEquippedItems", + "qualified_name": "keen::ds::VisualEquippedItems", + "referenced_type_name": "keen::VisualEquippedItems", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4079524490, + "hash2": 3916064035, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisualEquipmentMask", + "type_name_2": "VisualEquipmentMask", + "qualified_name": "keen::ds::VisualEquipmentMask", + "referenced_type_name": "keen::VisualEquipmentMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4212121825, + "hash2": 2287540229, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendShapeFlags", + "type_name_2": "BlendShapeFlags", + "qualified_name": "keen::ds::BlendShapeFlags", + "referenced_type_name": "keen::BlendShapeFlags", + "class_size": 1, + "fields_count": 18, + "primitive_type": "Typedef", + "hash1": 3715860186, + "hash2": 3373180598, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactEquippedItems", + "type_name_2": "ImpactEquippedItems", + "qualified_name": "keen::ds::ImpactEquippedItems", + "referenced_type_name": "keen::ImpactEquippedItems", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1058930964, + "hash2": 693286159, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactEquipmentMask", + "type_name_2": "ImpactEquipmentMask", + "qualified_name": "keen::ds::ImpactEquipmentMask", + "referenced_type_name": "keen::ImpactEquipmentMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2598936803, + "hash2": 1801483409, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkId", + "type_name_2": "PerkId", + "qualified_name": "keen::ds::PerkId", + "referenced_type_name": "keen::PerkId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2199025218, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 20, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3056094123, + "hash2": 3570523829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PerkId[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::PerkId", + "class_size": 20, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 2880309647, + "hash2": 1826290638, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemImpact", + "type_name_2": "ecs.ItemImpact", + "qualified_name": "keen::ds::ecs::ItemImpact", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1281164429, + "hash2": 4157590172, + "struct_fields": [ + { + "name": "itemInstance", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "perkEntities", + "type_name": "keen::StaticArray", + "type_hash": 3056094123, + "data_offset": 24 + }, + { + "name": "perkIds", + "type_name": "keen::StaticArray", + "type_hash": 2880309647, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemVisual", + "type_name_2": "ecs.ItemVisual", + "qualified_name": "keen::ds::ecs::ItemVisual", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 731237291, + "hash2": 2066677912, + "struct_fields": [ + { + "name": "itemInstance", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentSlotData", + "type_name_2": "ecs.EquipmentSlotData", + "qualified_name": "keen::ds::ecs::EquipmentSlotData", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 921126532, + "hash2": 3543895534, + "struct_fields": [ + { + "name": "vanityHead", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 0 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 8 + }, + { + "name": "vanityArms", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 16 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 24 + }, + { + "name": "vanityFeet", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 32 + }, + { + "name": "armourHead", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 40 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 48 + }, + { + "name": "armourArms", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 56 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 64 + }, + { + "name": "armourFeet", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 72 + }, + { + "name": "bodyPartHead", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 80 + }, + { + "name": "bodyPartHair", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 88 + }, + { + "name": "bodyPartEyeBrow", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 96 + }, + { + "name": "bodyPartBeard", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 104 + }, + { + "name": "bodyPartNeck", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 112 + }, + { + "name": "bodyPartCollar", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 120 + }, + { + "name": "bodyPartChest", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 128 + }, + { + "name": "bodyPartWaist", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 136 + }, + { + "name": "bodyPartCrotch", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 144 + }, + { + "name": "bodyPartUpperArms", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 152 + }, + { + "name": "bodyPartLowerArms", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 160 + }, + { + "name": "bodyPartHands", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 168 + }, + { + "name": "bodyPartUpperLegs", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 176 + }, + { + "name": "bodyPartLowerLegs", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 184 + }, + { + "name": "bodyPartFeet", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 192 + }, + { + "name": "ring0", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 200 + }, + { + "name": "ring1", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 208 + }, + { + "name": "accessory0", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 216 + }, + { + "name": "accessory1", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 224 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 232 + }, + { + "name": "shield", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 240 + }, + { + "name": "arrow", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 248 + }, + { + "name": "spell", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 256 + }, + { + "name": "terrainMaterial", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 264 + }, + { + "name": "blueprintMaterialDefault", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 272 + }, + { + "name": "blueprintMaterialRoof", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 280 + }, + { + "name": "hookShot", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 288 + }, + { + "name": "glider", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 296 + }, + { + "name": "climbWall", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 304 + }, + { + "name": "backpack", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 312 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CspItemIsBroken", + "type_name_2": "ecs.CspItemIsBroken", + "qualified_name": "keen::ds::ecs::CspItemIsBroken", + "referenced_type_name": "keen::ecs::CspItemIsBroken", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3578285068, + "hash2": 2982189098, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CspItemIsBrokenMask", + "type_name_2": "ecs.CspItemIsBrokenMask", + "qualified_name": "keen::ds::ecs::CspItemIsBrokenMask", + "referenced_type_name": "keen::ecs::CspItemIsBrokenMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3542459548, + "hash2": 2466480257, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ActionbarSlotSelection", + "type_name_2": "ActionbarSlotSelection", + "qualified_name": "keen::ds::ActionbarSlotSelection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 250768632, + "hash2": 2312760663, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 874562368, + "hash2": 348485506, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlotSelection", + "type_name_2": "ecs.SlotSelection", + "qualified_name": "keen::ds::ecs::SlotSelection", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 360, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3900524874, + "hash2": 3824596411, + "struct_fields": [ + { + "name": "equipment", + "type_name": "keen::ds::ecs::EquipmentSlotData", + "type_hash": 921126532, + "data_offset": 0 + }, + { + "name": "actionbarEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 874562368, + "data_offset": 320 + }, + { + "name": "actionItem", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 328 + }, + { + "name": "disabledEquipment", + "type_name": "keen::ds::ImpactEquipmentMask", + "type_hash": 2598936803, + "data_offset": 348 + }, + { + "name": "actionbarSlotSelection", + "type_name": "keen::ds::ActionbarSlotSelection", + "type_hash": 250768632, + "data_offset": 352 + }, + { + "name": "cspItemIsBrokenHelper", + "type_name": "keen::ds::ecs::CspItemIsBrokenMask", + "type_hash": 3542459548, + "data_offset": 356 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FinishedActionbarInit", + "type_name_2": "ecs.FinishedActionbarInit", + "qualified_name": "keen::ds::ecs::FinishedActionbarInit", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3970412103, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PackedEquipmentSlotEntityIds", + "type_name_2": "ecs.PackedEquipmentSlotEntityIds", + "qualified_name": "keen::ds::ecs::PackedEquipmentSlotEntityIds", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 3322299875, + "hash2": 3714607696, + "struct_fields": [ + { + "name": "vanityHead", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "vanityArms", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "vanityFeet", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "armourHead", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "armourArms", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 28 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 32 + }, + { + "name": "armourFeet", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 36 + }, + { + "name": "bodyPartHead", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 40 + }, + { + "name": "bodyPartHair", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 44 + }, + { + "name": "bodyPartEyeBrow", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 48 + }, + { + "name": "bodyPartBeard", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 52 + }, + { + "name": "bodyPartNeck", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 56 + }, + { + "name": "bodyPartCollar", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 60 + }, + { + "name": "bodyPartChest", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 64 + }, + { + "name": "bodyPartWaist", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 68 + }, + { + "name": "bodyPartCrotch", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 72 + }, + { + "name": "bodyPartUpperArms", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 76 + }, + { + "name": "bodyPartLowerArms", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 80 + }, + { + "name": "bodyPartHands", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 84 + }, + { + "name": "bodyPartUpperLegs", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 88 + }, + { + "name": "bodyPartLowerLegs", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 92 + }, + { + "name": "bodyPartFeet", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 96 + }, + { + "name": "ring0", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 100 + }, + { + "name": "ring1", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 104 + }, + { + "name": "accessory0", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 108 + }, + { + "name": "accessory1", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 112 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 116 + }, + { + "name": "shield", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 120 + }, + { + "name": "arrow", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 124 + }, + { + "name": "spell", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 128 + }, + { + "name": "terrainMaterial", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 132 + }, + { + "name": "blueprintMaterialDefault", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 136 + }, + { + "name": "blueprintMaterialRoof", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 140 + }, + { + "name": "hookShot", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 144 + }, + { + "name": "glider", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 148 + }, + { + "name": "climbWall", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 152 + }, + { + "name": "backpack", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedEquipmentSlotIndices", + "type_name_2": "ecs.PackedEquipmentSlotIndices", + "qualified_name": "keen::ds::ecs::PackedEquipmentSlotIndices", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 3867369105, + "hash2": 2118612198, + "struct_fields": [ + { + "name": "vanityHead", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 0 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 1 + }, + { + "name": "vanityArms", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 2 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 3 + }, + { + "name": "vanityFeet", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 4 + }, + { + "name": "armourHead", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 5 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 6 + }, + { + "name": "armourArms", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 7 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 8 + }, + { + "name": "armourFeet", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 9 + }, + { + "name": "bodyPartHead", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 10 + }, + { + "name": "bodyPartHair", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 11 + }, + { + "name": "bodyPartEyeBrow", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 12 + }, + { + "name": "bodyPartBeard", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 13 + }, + { + "name": "bodyPartNeck", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 14 + }, + { + "name": "bodyPartCollar", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 15 + }, + { + "name": "bodyPartChest", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 16 + }, + { + "name": "bodyPartWaist", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 17 + }, + { + "name": "bodyPartCrotch", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 18 + }, + { + "name": "bodyPartUpperArms", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 19 + }, + { + "name": "bodyPartLowerArms", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 20 + }, + { + "name": "bodyPartHands", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 21 + }, + { + "name": "bodyPartUpperLegs", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 22 + }, + { + "name": "bodyPartLowerLegs", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 23 + }, + { + "name": "bodyPartFeet", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 24 + }, + { + "name": "ring0", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 25 + }, + { + "name": "ring1", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 26 + }, + { + "name": "accessory0", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 27 + }, + { + "name": "accessory1", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 28 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 29 + }, + { + "name": "shield", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 30 + }, + { + "name": "arrow", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 31 + }, + { + "name": "spell", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 32 + }, + { + "name": "terrainMaterial", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 33 + }, + { + "name": "blueprintMaterialDefault", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 34 + }, + { + "name": "blueprintMaterialRoof", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 35 + }, + { + "name": "hookShot", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 36 + }, + { + "name": "glider", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 37 + }, + { + "name": "climbWall", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 38 + }, + { + "name": "backpack", + "type_name": "keen::ds::InventorySlotIndex", + "type_hash": 668129947, + "data_offset": 39 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedSlotSelection", + "type_name_2": "ecs.PackedSlotSelection", + "qualified_name": "keen::ds::ecs::PackedSlotSelection", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3897508818, + "hash2": 2497357568, + "struct_fields": [ + { + "name": "equipmentEntityIds", + "type_name": "keen::ds::ecs::PackedEquipmentSlotEntityIds", + "type_hash": 3322299875, + "data_offset": 0 + }, + { + "name": "equipmentIndices", + "type_name": "keen::ds::ecs::PackedEquipmentSlotIndices", + "type_hash": 3867369105, + "data_offset": 160 + }, + { + "name": "actionbarEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 874562368, + "data_offset": 200 + }, + { + "name": "actionItem", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 208 + }, + { + "name": "disabledEquipment", + "type_name": "keen::ds::ImpactEquipmentMask", + "type_hash": 2598936803, + "data_offset": 228 + }, + { + "name": "actionbarSlotSelection", + "type_name": "keen::ds::ActionbarSlotSelection", + "type_hash": 250768632, + "data_offset": 232 + }, + { + "name": "cspItemIsBrokenHelper", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 236 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CspHackInventoryStockSelection", + "type_name_2": "ecs.CspHackInventoryStockSelection", + "qualified_name": "keen::ds::ecs::CspHackInventoryStockSelection", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 10, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3949587357, + "hash2": 2965107473, + "struct_fields": [ + { + "name": "versions", + "type_name": "keen::StaticArray", + "type_hash": 3067990966, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ItemImpact[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::ItemImpact", + "class_size": 704, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 3452341483, + "hash2": 1602929768, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ItemVisual[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::ItemVisual", + "class_size": 576, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 2688378617, + "hash2": 1375521879, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Equipment", + "type_name_2": "ecs.Equipment", + "qualified_name": "keen::ds::ecs::Equipment", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1320, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2071496592, + "hash2": 605324854, + "struct_fields": [ + { + "name": "visualMask", + "type_name": "keen::ds::VisualEquipmentMask", + "type_hash": 4212121825, + "data_offset": 0 + }, + { + "name": "impactMask", + "type_name": "keen::ds::ImpactEquipmentMask", + "type_hash": 2598936803, + "data_offset": 4 + }, + { + "name": "equipmentImpacts", + "type_name": "keen::StaticArray", + "type_hash": 3452341483, + "data_offset": 8 + }, + { + "name": "equipmentVisuals", + "type_name": "keen::StaticArray", + "type_hash": 2688378617, + "data_offset": 712 + }, + { + "name": "blockMaterial", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 1288 + }, + { + "name": "bodyMaterial", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 1304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray,24>", + "type_name_2": "Reference[24]", + "qualified_name": "keen::StaticArray,24>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 384, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 1691751975, + "hash2": 533763617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ColorCombinationResource[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ColorCombinationResource", + "class_size": 288, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 406422919, + "hash2": 2482241197, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderEquipment", + "type_name_2": "ecs.RenderEquipment", + "qualified_name": "keen::ds::ecs::RenderEquipment", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 780, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2824077232, + "hash2": 1339272976, + "struct_fields": [ + { + "name": "modelHandles", + "type_name": "keen::StaticArray", + "type_hash": 4039406613, + "data_offset": 0 + }, + { + "name": "lastModels", + "type_name": "keen::StaticArray,24>", + "type_hash": 1691751975, + "data_offset": 96 + }, + { + "name": "colors", + "type_name": "keen::StaticArray", + "type_hash": 406422919, + "data_offset": 480 + }, + { + "name": "hideMask", + "type_name": "keen::ds::VisualEquipmentMask", + "type_hash": 4212121825, + "data_offset": 768 + }, + { + "name": "foleyMaterialId", + "type_name": "keen::ds::MaterialFeedbackId", + "type_hash": 2434074776, + "data_offset": 772 + }, + { + "name": "blendShapeMask", + "type_name": "keen::ds::BlendShapeMask", + "type_hash": 3013485815, + "data_offset": 776 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimaryAnimationSet", + "type_name_2": "PrimaryAnimationSet", + "qualified_name": "keen::ds::PrimaryAnimationSet", + "referenced_type_name": "keen::PrimaryAnimationSet", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Typedef", + "hash1": 3816206845, + "hash2": 4003191377, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SecondaryAnimationSet", + "type_name_2": "SecondaryAnimationSet", + "qualified_name": "keen::ds::SecondaryAnimationSet", + "referenced_type_name": "keen::SecondaryAnimationSet", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2600125905, + "hash2": 3931434858, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentAnimationSets", + "type_name_2": "ecs.EquipmentAnimationSets", + "qualified_name": "keen::ds::ecs::EquipmentAnimationSets", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4219780015, + "hash2": 1717995459, + "struct_fields": [ + { + "name": "primaryAnimationSet", + "type_name": "keen::ds::PrimaryAnimationSet", + "type_hash": 3816206845, + "data_offset": 0 + }, + { + "name": "secondaryAnimationSet", + "type_name": "keen::ds::SecondaryAnimationSet", + "type_hash": 2600125905, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderSettingsGpuPresets", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1985943291, + "hash2": 3620666437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Scene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4110039674, + "hash2": 2114971763, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 597246720, + "hash2": 1537444523, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::KnowledgeQueryDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2400941759, + "hash2": 3653379382, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GameKnowledgeQueryTriggerResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1267771436, + "hash2": 2957140039, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DefaultLootLabelCollectionRootDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3425306580, + "hash2": 2093877364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RecipeList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2982649396, + "hash2": 2456542027, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BalancingTable", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2812666717, + "hash2": 2953379755, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CraftingWorkshopDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3521558688, + "hash2": 3342439284, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BuffTypDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2481921553, + "hash2": 231858382, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MidiSongDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3067692463, + "hash2": 3612254114, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ImpactDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2538645237, + "hash2": 1178051005, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AttributeContainer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3047780259, + "hash2": 64745103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ActorActionContainerRoot", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2965422372, + "hash2": 511781147, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::TerraformingEfficiencyRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4247960068, + "hash2": 3904585040, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelBlueprintRegistryFolder", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1841848166, + "hash2": 2438028727, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelBlueprintItemRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3818919007, + "hash2": 3291300422, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelBlueprintMaterialPoolRegistryFolder", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1965996563, + "hash2": 2873920145, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy::EnemyArsenalDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2319495557, + "hash2": 2295060517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PerkDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 934199051, + "hash2": 1413942434, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::IngameTimeConfig", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2470013500, + "hash2": 289663957, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SkillTreeDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1718205930, + "hash2": 1433986423, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::TemplateDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3237161972, + "hash2": 1917232863, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::FbUiBundle", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 997191508, + "hash2": 885614356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::JournalDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 65665368, + "hash2": 2653937998, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MapMarkerRegistryTool", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3603540233, + "hash2": 1011360018, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MaterialFeedbackDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 183658161, + "hash2": 1632007779, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::LocaTagCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 129432903, + "hash2": 4003236140, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoicePackDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1745622524, + "hash2": 2213426615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AmbientCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2784923634, + "hash2": 4070238991, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::FbUiMap", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1451802334, + "hash2": 1209835819, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::UiFont", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 215669135, + "hash2": 3913070313, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderSystemResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2159092373, + "hash2": 2133509642, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GpcResourceList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2607541138, + "hash2": 3076446586, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VolumetricFogInitializationMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4015466577, + "hash2": 11908650, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelMaterialList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2062014741, + "hash2": 1843705419, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WorldMaterial2", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 15618225, + "hash2": 1502128492, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VolumetricFog2ResourceData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2487157760, + "hash2": 3204283394, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VolumetricFogGridRenderParameters", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2514016430, + "hash2": 3173311161, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::debug::EnemyDebugMenu", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 567230475, + "hash2": 1934863820, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CharacterPresetCollectionReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 268186941, + "hash2": 1167314445, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::TwitchDropCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3041663648, + "hash2": 4123709464, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CommerceProductDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 581887093, + "hash2": 3590320617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AchievementDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3780111968, + "hash2": 758111772, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PreloadVfxList", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 342184563, + "hash2": 4101336652, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ColorPaletteCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1125136640, + "hash2": 2133317856, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WeatherSystemConfiguration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1137379997, + "hash2": 855008252, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Game38RootObjects", + "type_name_2": "Game38RootObjects", + "qualified_name": "keen::ds::Game38RootObjects", + "referenced_type_name": null, + "class_size": 1040, + "fields_count": 65, + "primitive_type": "Struct", + "hash1": 3592666470, + "hash2": 623003903, + "struct_fields": [ + { + "name": "renderSettingsGpuPresets", + "type_name": "keen::ObjectReference", + "type_hash": 1985943291, + "data_offset": 0 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 16 + }, + { + "name": "itemDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 597246720, + "data_offset": 32 + }, + { + "name": "gameKnowledgeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 1236278225, + "data_offset": 48 + }, + { + "name": "gameKnowledgeQueryResourceDb", + "type_name": "keen::ObjectReference", + "type_hash": 2400941759, + "data_offset": 64 + }, + { + "name": "gameKnowledgeQueryTriggerResource", + "type_name": "keen::ObjectReference", + "type_hash": 1267771436, + "data_offset": 80 + }, + { + "name": "lootLabelCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3425306580, + "data_offset": 96 + }, + { + "name": "recipeRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 2982649396, + "data_offset": 112 + }, + { + "name": "balancingTable", + "type_name": "keen::ObjectReference", + "type_hash": 2812666717, + "data_offset": 128 + }, + { + "name": "workshopRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3521558688, + "data_offset": 144 + }, + { + "name": "buffTypeCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2481921553, + "data_offset": 160 + }, + { + "name": "midiSongCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3067692463, + "data_offset": 176 + }, + { + "name": "impactRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 2538645237, + "data_offset": 192 + }, + { + "name": "attributeContainer", + "type_name": "keen::ObjectReference", + "type_hash": 3047780259, + "data_offset": 208 + }, + { + "name": "actorSequenceCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2965422372, + "data_offset": 224 + }, + { + "name": "terraformingEfficiencyRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 4247960068, + "data_offset": 240 + }, + { + "name": "voxelBlueprintConfig", + "type_name": "keen::ObjectReference", + "type_hash": 1841848166, + "data_offset": 256 + }, + { + "name": "voxelBlueprintItemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3818919007, + "data_offset": 272 + }, + { + "name": "voxelBlueprintMaterialPoolRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 1965996563, + "data_offset": 288 + }, + { + "name": "enemyArsenalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 2319495557, + "data_offset": 304 + }, + { + "name": "perkCollection", + "type_name": "keen::ObjectReference", + "type_hash": 934199051, + "data_offset": 320 + }, + { + "name": "ingameTimeConfig", + "type_name": "keen::ObjectReference", + "type_hash": 2470013500, + "data_offset": 336 + }, + { + "name": "skillTree", + "type_name": "keen::ObjectReference", + "type_hash": 1718205930, + "data_offset": 352 + }, + { + "name": "templateCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3237161972, + "data_offset": 368 + }, + { + "name": "fbUiBundle", + "type_name": "keen::ObjectReference", + "type_hash": 997191508, + "data_offset": 384 + }, + { + "name": "journalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 65665368, + "data_offset": 400 + }, + { + "name": "mapMarkerRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3603540233, + "data_offset": 416 + }, + { + "name": "materialFeedbackCollection", + "type_name": "keen::ObjectReference", + "type_hash": 183658161, + "data_offset": 432 + }, + { + "name": "locaTagCollection", + "type_name": "keen::ObjectReference", + "type_hash": 129432903, + "data_offset": 448 + }, + { + "name": "voicePacks", + "type_name": "keen::ObjectReference", + "type_hash": 1745622524, + "data_offset": 464 + }, + { + "name": "ambientCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2784923634, + "data_offset": 480 + }, + { + "name": "fbUiMapResource", + "type_name": "keen::ObjectReference", + "type_hash": 1451802334, + "data_offset": 496 + }, + { + "name": "uiFontDefault", + "type_name": "keen::ObjectReference", + "type_hash": 215669135, + "data_offset": 512 + }, + { + "name": "uiFontFancy", + "type_name": "keen::ObjectReference", + "type_hash": 215669135, + "data_offset": 528 + }, + { + "name": "grassVfx", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 544 + }, + { + "name": "buildingBlockDamageDecalVfx", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 560 + }, + { + "name": "blueprintHoverHighlightVfx", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 576 + }, + { + "name": "maleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 592 + }, + { + "name": "femaleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 608 + }, + { + "name": "staminaDrainNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 3167743292, + "data_offset": 624 + }, + { + "name": "exhaustedNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 3167743292, + "data_offset": 640 + }, + { + "name": "pickupLootNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 3167743292, + "data_offset": 656 + }, + { + "name": "itemBrokenNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 3167743292, + "data_offset": 672 + }, + { + "name": "renderSystem", + "type_name": "keen::ObjectReference", + "type_hash": 2159092373, + "data_offset": 688 + }, + { + "name": "gpcResourceList", + "type_name": "keen::ObjectReference", + "type_hash": 2607541138, + "data_offset": 704 + }, + { + "name": "analyticFog", + "type_name": "keen::ObjectReference", + "type_hash": 4015466577, + "data_offset": 720 + }, + { + "name": "buildingMaterialBlending", + "type_name": "keen::ObjectReference", + "type_hash": 2062014741, + "data_offset": 736 + }, + { + "name": "worldMaterial2", + "type_name": "keen::ObjectReference", + "type_hash": 15618225, + "data_offset": 752 + }, + { + "name": "volumetricFog2", + "type_name": "keen::ObjectReference", + "type_hash": 2487157760, + "data_offset": 768 + }, + { + "name": "volumetricFogGridParameters", + "type_name": "keen::ObjectReference", + "type_hash": 2514016430, + "data_offset": 784 + }, + { + "name": "pregameMusic", + "type_name": "keen::ObjectReference", + "type_hash": 3308818580, + "data_offset": 800 + }, + { + "name": "loreIntroMusic", + "type_name": "keen::ObjectReference", + "type_hash": 3308818580, + "data_offset": 816 + }, + { + "name": "spellChargeFullSfx", + "type_name": "keen::ObjectReference", + "type_hash": 3308818580, + "data_offset": 832 + }, + { + "name": "enemyDebugMenu", + "type_name": "keen::ObjectReference", + "type_hash": 567230475, + "data_offset": 848 + }, + { + "name": "characterPresetCollection", + "type_name": "keen::ObjectReference", + "type_hash": 268186941, + "data_offset": 864 + }, + { + "name": "twitchDropCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3041663648, + "data_offset": 880 + }, + { + "name": "characterScenePlayer", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 896 + }, + { + "name": "characterScenePlayerPortrait", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 912 + }, + { + "name": "characterScenePlayerPregame", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 928 + }, + { + "name": "characterSceneNpc", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 944 + }, + { + "name": "commerceProducts", + "type_name": "keen::ObjectReference", + "type_hash": 581887093, + "data_offset": 960 + }, + { + "name": "achievements", + "type_name": "keen::ObjectReference", + "type_hash": 3780111968, + "data_offset": 976 + }, + { + "name": "preloadVfxList", + "type_name": "keen::ObjectReference", + "type_hash": 342184563, + "data_offset": 992 + }, + { + "name": "colorPaletteCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1125136640, + "data_offset": 1008 + }, + { + "name": "weatherSystemResource", + "type_name": "keen::ObjectReference", + "type_hash": 1137379997, + "data_offset": 1024 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3739840094, + "hash2": 3201792469, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemKnowledgeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 799995537, + "hash2": 4028709093, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GameKnowledgeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4020673880, + "hash2": 1080666696, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GameKnowledgeQueryResourceDb", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4150252450, + "hash2": 2845636579, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2818615518, + "hash2": 3595735669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::JournalRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3674539078, + "hash2": 1480050521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DevItemRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 936361679, + "hash2": 3060997989, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RecipeRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 184128577, + "hash2": 2824486354, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WorkshopRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1704476772, + "hash2": 2507716713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::NpcCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 930340931, + "hash2": 1300005993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DefaultLootLabelCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 474245631, + "hash2": 1790810107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::LootableItemsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3603488732, + "hash2": 2914541920, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::LootDistributionTreeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3001070542, + "hash2": 1565373002, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BuffTypeCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 858293969, + "hash2": 1916888090, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MidiSongCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3952448302, + "hash2": 2275174079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ImpactRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3569029709, + "hash2": 1046258943, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AttributeContainerResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1455446351, + "hash2": 2665555535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ActorSequenceCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2825163958, + "hash2": 2096540938, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GuidRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1713111752, + "hash2": 1496744553, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelBlueprintMaterialPoolRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 859898315, + "hash2": 744465694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::enemy::EnemyArsenalRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2983772701, + "hash2": 986728695, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PerkCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1575715470, + "hash2": 977425517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SkillTreeResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1972601889, + "hash2": 396531390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::NotifierResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 710780884, + "hash2": 4128745999, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CharacterPresetCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2066465766, + "hash2": 899443783, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::animationgraph::AnimationGraphDebugInfo", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2641041147, + "hash2": 2214584371, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ColorPaletteCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 499952744, + "hash2": 3555084776, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GameSettingsPresetsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3289106173, + "hash2": 1622020351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WeatherSystemResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1247783081, + "hash2": 4186240309, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Game38SharedResources", + "type_name_2": "Game38SharedResources", + "qualified_name": "keen::ds::Game38SharedResources", + "referenced_type_name": null, + "class_size": 624, + "fields_count": 39, + "primitive_type": "Struct", + "hash1": 3822161588, + "hash2": 2887131809, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 3739840094, + "data_offset": 0 + }, + { + "name": "gameKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 799995537, + "data_offset": 16 + }, + { + "name": "gameKnowledgeResource", + "type_name": "keen::ObjectReference", + "type_hash": 4020673880, + "data_offset": 32 + }, + { + "name": "gameKnowledgeQueryResourceDb", + "type_name": "keen::ObjectReference", + "type_hash": 4150252450, + "data_offset": 48 + }, + { + "name": "itemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 2818615518, + "data_offset": 64 + }, + { + "name": "journalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3674539078, + "data_offset": 80 + }, + { + "name": "devItemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 936361679, + "data_offset": 96 + }, + { + "name": "recipeRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 184128577, + "data_offset": 112 + }, + { + "name": "balancingTable", + "type_name": "keen::ObjectReference", + "type_hash": 2812666717, + "data_offset": 128 + }, + { + "name": "workshopRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 1704476772, + "data_offset": 144 + }, + { + "name": "npcCollection", + "type_name": "keen::ObjectReference", + "type_hash": 930340931, + "data_offset": 160 + }, + { + "name": "lootLabelCollection", + "type_name": "keen::ObjectReference", + "type_hash": 474245631, + "data_offset": 176 + }, + { + "name": "lootableItems", + "type_name": "keen::ObjectReference", + "type_hash": 3603488732, + "data_offset": 192 + }, + { + "name": "lootDistribution", + "type_name": "keen::ObjectReference", + "type_hash": 3001070542, + "data_offset": 208 + }, + { + "name": "buffTypeCollection", + "type_name": "keen::ObjectReference", + "type_hash": 858293969, + "data_offset": 224 + }, + { + "name": "midiSongCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3952448302, + "data_offset": 240 + }, + { + "name": "impactRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3569029709, + "data_offset": 256 + }, + { + "name": "attributeContainer", + "type_name": "keen::ObjectReference", + "type_hash": 1455446351, + "data_offset": 272 + }, + { + "name": "actorSequenceCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2825163958, + "data_offset": 288 + }, + { + "name": "terraformingEfficiencyRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 4247960068, + "data_offset": 304 + }, + { + "name": "voxelBlueprintConfig", + "type_name": "keen::ObjectReference", + "type_hash": 1713111752, + "data_offset": 320 + }, + { + "name": "voxelBlueprintItemRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 3818919007, + "data_offset": 336 + }, + { + "name": "voxelBlueprintMaterialPoolRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 859898315, + "data_offset": 352 + }, + { + "name": "enemyArsenalRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 2983772701, + "data_offset": 368 + }, + { + "name": "perkCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1575715470, + "data_offset": 384 + }, + { + "name": "ingameTimeConfig", + "type_name": "keen::ObjectReference", + "type_hash": 2470013500, + "data_offset": 400 + }, + { + "name": "skillTree", + "type_name": "keen::ObjectReference", + "type_hash": 1972601889, + "data_offset": 416 + }, + { + "name": "templateCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2612335371, + "data_offset": 432 + }, + { + "name": "twitchDropCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3041663648, + "data_offset": 448 + }, + { + "name": "staminaDrainNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 710780884, + "data_offset": 464 + }, + { + "name": "exhaustedNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 710780884, + "data_offset": 480 + }, + { + "name": "pickupLootNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 710780884, + "data_offset": 496 + }, + { + "name": "itemBrokenNotifier", + "type_name": "keen::ObjectReference", + "type_hash": 710780884, + "data_offset": 512 + }, + { + "name": "characterPresetCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2066465766, + "data_offset": 528 + }, + { + "name": "animationGraphDebugInfo", + "type_name": "keen::ObjectReference", + "type_hash": 2641041147, + "data_offset": 544 + }, + { + "name": "commerceProducts", + "type_name": "keen::ObjectReference", + "type_hash": 3687873236, + "data_offset": 560 + }, + { + "name": "colorPaletteCollection", + "type_name": "keen::ObjectReference", + "type_hash": 499952744, + "data_offset": 576 + }, + { + "name": "gameSettingPresets", + "type_name": "keen::ObjectReference", + "type_hash": 3289106173, + "data_offset": 592 + }, + { + "name": "weatherSystemResource", + "type_name": "keen::ObjectReference", + "type_hash": 1247783081, + "data_offset": 608 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderSettingsGpuPresetsResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2206253175, + "hash2": 2627877403, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MapMarkerRegistryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 162529763, + "hash2": 4267974897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoicePackDirectoryResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1412507540, + "hash2": 3969575368, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MaterialFeedbackCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3938563424, + "hash2": 994209718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::LocaTagCollectionResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 794780099, + "hash2": 3573449977, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderColorGradingMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 994815669, + "hash2": 2313027336, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::FbUiMapResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1940271394, + "hash2": 1525049742, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::UiFontResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3780836731, + "hash2": 971255743, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VfxResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1469622978, + "hash2": 957653592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PreloadVfxListResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 972819487, + "hash2": 2235868575, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Game38ClientResources", + "type_name_2": "Game38ClientResources", + "qualified_name": "keen::ds::Game38ClientResources", + "referenced_type_name": null, + "class_size": 1088, + "fields_count": 30, + "primitive_type": "Struct", + "hash1": 1905664538, + "hash2": 1893334410, + "struct_fields": [ + { + "name": "shared", + "type_name": "keen::ds::Game38SharedResources", + "type_hash": 3822161588, + "data_offset": 0 + }, + { + "name": "renderSettingsGpuPresets", + "type_name": "keen::ObjectReference", + "type_hash": 2206253175, + "data_offset": 624 + }, + { + "name": "fbUiBundle", + "type_name": "keen::ObjectReference", + "type_hash": 997191508, + "data_offset": 640 + }, + { + "name": "mapMarkerRegistry", + "type_name": "keen::ObjectReference", + "type_hash": 162529763, + "data_offset": 656 + }, + { + "name": "itemKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 799995537, + "data_offset": 672 + }, + { + "name": "voicePacks", + "type_name": "keen::ObjectReference", + "type_hash": 1412507540, + "data_offset": 688 + }, + { + "name": "materialFeedbackCollection", + "type_name": "keen::ObjectReference", + "type_hash": 3938563424, + "data_offset": 704 + }, + { + "name": "locaTagCollection", + "type_name": "keen::ObjectReference", + "type_hash": 794780099, + "data_offset": 720 + }, + { + "name": "colorGradingFogRegular", + "type_name": "keen::ObjectReference", + "type_hash": 994815669, + "data_offset": 736 + }, + { + "name": "colorGradingFogDangerous", + "type_name": "keen::ObjectReference", + "type_hash": 994815669, + "data_offset": 752 + }, + { + "name": "colorGradingLowHealth", + "type_name": "keen::ObjectReference", + "type_hash": 994815669, + "data_offset": 768 + }, + { + "name": "maleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 3668997726, + "data_offset": 784 + }, + { + "name": "femaleClothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 3668997726, + "data_offset": 800 + }, + { + "name": "fbUiMapResource", + "type_name": "keen::ObjectReference", + "type_hash": 1940271394, + "data_offset": 816 + }, + { + "name": "uiFontDefault", + "type_name": "keen::ObjectReference", + "type_hash": 3780836731, + "data_offset": 832 + }, + { + "name": "uiFontFancy", + "type_name": "keen::ObjectReference", + "type_hash": 3780836731, + "data_offset": 848 + }, + { + "name": "grassVfx", + "type_name": "keen::ObjectReference", + "type_hash": 1469622978, + "data_offset": 864 + }, + { + "name": "buildingBlockDamageDecalVfx", + "type_name": "keen::ObjectReference", + "type_hash": 1469622978, + "data_offset": 880 + }, + { + "name": "blueprintHoverHighlightVfx", + "type_name": "keen::ObjectReference", + "type_hash": 1469622978, + "data_offset": 896 + }, + { + "name": "pregameMusic", + "type_name": "keen::ObjectReference", + "type_hash": 3476113532, + "data_offset": 912 + }, + { + "name": "loreIntroMusic", + "type_name": "keen::ObjectReference", + "type_hash": 3476113532, + "data_offset": 928 + }, + { + "name": "spellChargeFullSfx", + "type_name": "keen::ObjectReference", + "type_hash": 3476113532, + "data_offset": 944 + }, + { + "name": "ambientCollection", + "type_name": "keen::ObjectReference", + "type_hash": 2784923634, + "data_offset": 960 + }, + { + "name": "enemyDebugMenu", + "type_name": "keen::ObjectReference", + "type_hash": 567230475, + "data_offset": 976 + }, + { + "name": "characterScenePlayer", + "type_name": "keen::ObjectReference", + "type_hash": 3739840094, + "data_offset": 992 + }, + { + "name": "characterScenePlayerPortrait", + "type_name": "keen::ObjectReference", + "type_hash": 3739840094, + "data_offset": 1008 + }, + { + "name": "characterScenePlayerPregame", + "type_name": "keen::ObjectReference", + "type_hash": 3739840094, + "data_offset": 1024 + }, + { + "name": "characterSceneNpc", + "type_name": "keen::ObjectReference", + "type_hash": 3739840094, + "data_offset": 1040 + }, + { + "name": "achievements", + "type_name": "keen::ObjectReference", + "type_hash": 993635940, + "data_offset": 1056 + }, + { + "name": "preloadVfxList", + "type_name": "keen::ObjectReference", + "type_hash": 972819487, + "data_offset": 1072 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Game38ServerResources", + "type_name_2": "Game38ServerResources", + "qualified_name": "keen::ds::Game38ServerResources", + "referenced_type_name": null, + "class_size": 640, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3549388446, + "hash2": 483283649, + "struct_fields": [ + { + "name": "shared", + "type_name": "keen::ds::Game38SharedResources", + "type_hash": 3822161588, + "data_offset": 0 + }, + { + "name": "gameKnowledgeQueryTriggerResource", + "type_name": "keen::ObjectReference", + "type_hash": 1267771436, + "data_offset": 624 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Midi", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4240971293, + "hash2": 3677376831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiReference", + "type_name_2": "MidiReference", + "qualified_name": "keen::ds::MidiReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3758007107, + "hash2": 2568030727, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiInstrumentType", + "type_name_2": "MidiInstrumentType", + "qualified_name": "keen::ds::MidiInstrumentType", + "referenced_type_name": "keen::MidiInstrumentType", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 244748223, + "hash2": 1738709157, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiSong", + "type_name_2": "MidiSong", + "qualified_name": "keen::ds::MidiSong", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2418905063, + "hash2": 718637439, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 0 + }, + { + "name": "midiSong", + "type_name": "keen::ds::MidiReference", + "type_hash": 3758007107, + "data_offset": 16 + }, + { + "name": "defaultForInstrument", + "type_name": "keen::ds::MidiInstrumentType", + "type_hash": 244748223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongSubDirectory", + "type_name_2": "MidiSongSubDirectory", + "qualified_name": "keen::ds::MidiSongSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2143783978, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongDirectory", + "type_name_2": "MidiSongDirectory", + "qualified_name": "keen::ds::MidiSongDirectory", + "referenced_type_name": "keen::ds::MidiSongSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4184813662, + "hash2": 1000312270, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongResource", + "type_name_2": "MidiSongResource", + "qualified_name": "keen::ds::MidiSongResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 331288339, + "hash2": 1269226049, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "midiSong", + "type_name": "keen::ds::MidiReference", + "type_hash": 3758007107, + "data_offset": 16 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 32 + }, + { + "name": "defaultForInstrument", + "type_name": "keen::ds::MidiInstrumentType", + "type_hash": 244748223, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SamplerInstrumentResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 172575941, + "hash2": 2916732010, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSampleCollectionResource", + "type_name_2": "InstrumentSampleCollectionResource", + "qualified_name": "keen::ds::InstrumentSampleCollectionResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 888951192, + "hash2": 786683196, + "struct_fields": [ + { + "name": "samplesLute", + "type_name": "keen::ObjectReference", + "type_hash": 172575941, + "data_offset": 0 + }, + { + "name": "samplesLuteChord", + "type_name": "keen::ObjectReference", + "type_hash": 172575941, + "data_offset": 16 + }, + { + "name": "samplesFlute", + "type_name": "keen::ObjectReference", + "type_hash": 172575941, + "data_offset": 32 + }, + { + "name": "samplesHarp", + "type_name": "keen::ObjectReference", + "type_hash": 172575941, + "data_offset": 48 + }, + { + "name": "samplesDounDoun", + "type_name": "keen::ObjectReference", + "type_hash": 172575941, + "data_offset": 64 + }, + { + "name": "samplesTambourin", + "type_name": "keen::ObjectReference", + "type_hash": 172575941, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1463366373, + "hash2": 4245938046, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiSongCollection", + "type_name_2": "MidiSongCollection", + "qualified_name": "keen::ds::MidiSongCollection", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 546669479, + "hash2": 460279141, + "struct_fields": [ + { + "name": "songCollection", + "type_name": "keen::DsArray>", + "type_hash": 1463366373, + "data_offset": 0 + }, + { + "name": "sampleCollection", + "type_name": "keen::ds::InstrumentSampleCollectionResource", + "type_hash": 888951192, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38TestSuite", + "type_name_2": "ecs.G38TestSuite", + "qualified_name": "keen::ds::ecs::G38TestSuite", + "referenced_type_name": "keen::ecs::G38TestSuite", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 792668634, + "hash2": 2963361761, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FailTest", + "type_name_2": "ecs.FailTest", + "qualified_name": "keen::ds::ecs::FailTest", + "referenced_type_name": "keen::ecs::FailTest", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4252580248, + "hash2": 134831520, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventoryTest", + "type_name_2": "ecs.InventoryTest", + "qualified_name": "keen::ds::ecs::InventoryTest", + "referenced_type_name": "keen::ecs::InventoryTest", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 700071512, + "hash2": 3301952279, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerTest", + "type_name_2": "ecs.DungeonTriggerTest", + "qualified_name": "keen::ds::ecs::DungeonTriggerTest", + "referenced_type_name": "keen::ecs::DungeonTriggerTest", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1439001082, + "hash2": 3588416661, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTest", + "type_name_2": "ecs.KnowledgeTest", + "qualified_name": "keen::ds::ecs::KnowledgeTest", + "referenced_type_name": "keen::ecs::KnowledgeTest", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3200523768, + "hash2": 1636011566, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CookingTest", + "type_name_2": "ecs.CookingTest", + "qualified_name": "keen::ds::ecs::CookingTest", + "referenced_type_name": "keen::ecs::CookingTest", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2173485880, + "hash2": 3102542052, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FallDamageTestId", + "type_name_2": "ecs.FallDamageTestId", + "qualified_name": "keen::ds::ecs::FallDamageTestId", + "referenced_type_name": "keen::ecs::FallDamageTestId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 951176629, + "hash2": 1302378120, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlidingTestId", + "type_name_2": "ecs.SlidingTestId", + "qualified_name": "keen::ds::ecs::SlidingTestId", + "referenced_type_name": "keen::ecs::SlidingTestId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1339921283, + "hash2": 1358084208, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClimbLadderTestId", + "type_name_2": "ecs.ClimbLadderTestId", + "qualified_name": "keen::ds::ecs::ClimbLadderTestId", + "referenced_type_name": "keen::ecs::ClimbLadderTestId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1980511396, + "hash2": 3093771534, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClimbWallTestId", + "type_name_2": "ecs.ClimbWallTestId", + "qualified_name": "keen::ds::ecs::ClimbWallTestId", + "referenced_type_name": "keen::ecs::ClimbWallTestId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3421980256, + "hash2": 2636504716, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HookShotSwingTestId", + "type_name_2": "ecs.HookShotSwingTestId", + "qualified_name": "keen::ds::ecs::HookShotSwingTestId", + "referenced_type_name": "keen::ecs::HookShotSwingTestId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2456957830, + "hash2": 2053119673, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HookShotPullTestId", + "type_name_2": "ecs.HookShotPullTestId", + "qualified_name": "keen::ds::ecs::HookShotPullTestId", + "referenced_type_name": "keen::ecs::HookShotPullTestId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4137277121, + "hash2": 77095509, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GliderTestId", + "type_name_2": "ecs.GliderTestId", + "qualified_name": "keen::ds::ecs::GliderTestId", + "referenced_type_name": "keen::ecs::GliderTestId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1600491412, + "hash2": 3445441675, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CookingTestComponent", + "type_name_2": "ecs.CookingTestComponent", + "qualified_name": "keen::ds::ecs::CookingTestComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3756739623, + "hash2": 1530001694, + "struct_fields": [ + { + "name": "campfireEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "cookTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "postCookWaitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "sitWaitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "standWaitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "campfireEntityDeletionTryCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 40 + }, + { + "name": "cookingTestComponentDeletionTryCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 41 + }, + { + "name": "sitToggled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "standToggled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "cookingToggled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestValueMemory", + "type_name_2": "ecs.TestValueMemory", + "qualified_name": "keen::ds::ecs::TestValueMemory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2795072990, + "hash2": 1843844937, + "struct_fields": [ + { + "name": "vectorValue", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "floatValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FakePlayerSpawner", + "type_name_2": "ecs.FakePlayerSpawner", + "qualified_name": "keen::ds::ecs::FakePlayerSpawner", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1750848384, + "hash2": 1403068622, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialType", + "type_name_2": "VoxelMaterialType", + "qualified_name": "keen::ds::VoxelMaterialType", + "referenced_type_name": "keen::VoxelMaterialType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4006772392, + "hash2": 210236354, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BaseVoxelMaterial", + "type_name_2": "BaseVoxelMaterial", + "qualified_name": "keen::ds::BaseVoxelMaterial", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2230056623, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SolidVoxelMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1526200410, + "hash2": 2639020187, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BiomeVoxelMaterial", + "type_name_2": "BiomeVoxelMaterial", + "qualified_name": "keen::ds::BiomeVoxelMaterial", + "referenced_type_name": "keen::ds::BaseVoxelMaterial", + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1625803290, + "hash2": 2933009741, + "struct_fields": [ + { + "name": "grassland", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 0 + }, + { + "name": "desert", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 16 + }, + { + "name": "wetland", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 32 + }, + { + "name": "steppes", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 48 + }, + { + "name": "deepforest", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 64 + }, + { + "name": "coldheights", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HardnessCategory", + "type_name_2": "HardnessCategory", + "qualified_name": "keen::ds::HardnessCategory", + "referenced_type_name": "keen::HardnessCategory", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 1147349709, + "hash2": 32421891, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldDisplacement", + "type_name_2": "VoxelWorldDisplacement", + "qualified_name": "keen::ds::VoxelWorldDisplacement", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2454984800, + "hash2": 2802636577, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "origin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "uvScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxMaterialType", + "type_name_2": "VfxMaterialType", + "qualified_name": "keen::ds::VfxMaterialType", + "referenced_type_name": "keen::VfxMaterialType", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 4281964592, + "hash2": 1703648250, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Recipe", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1669828728, + "hash2": 654644661, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ExperienceBalanceValue", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3680746805, + "hash2": 4265409822, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PbrBuildingMaterial", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4193108473, + "hash2": 3419315411, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelObjectDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 504881936, + "hash2": 2579041392, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SolidVoxelMaterial", + "type_name_2": "SolidVoxelMaterial", + "qualified_name": "keen::ds::SolidVoxelMaterial", + "referenced_type_name": "keen::ds::BaseVoxelMaterial", + "class_size": 256, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 659858055, + "hash2": 1878020359, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::VoxelMaterialType", + "type_hash": 4006772392, + "data_offset": 0 + }, + { + "name": "materialItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 4 + }, + { + "name": "hardness", + "type_name": "keen::ds::HardnessCategory", + "type_hash": 1147349709, + "data_offset": 20 + }, + { + "name": "healthPoints", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + }, + { + "name": "blockCraftingRecipe", + "type_name": "keen::ObjectReference", + "type_hash": 1669828728, + "data_offset": 28 + }, + { + "name": "voxelsPerLootItemExchangeRate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "experienceGain", + "type_name": "keen::ObjectReference", + "type_hash": 3680746805, + "data_offset": 48 + }, + { + "name": "canBeFlattened", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "isSlidingMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + }, + { + "name": "sideDisplacement", + "type_name": "keen::ds::VoxelWorldDisplacement", + "type_hash": 2454984800, + "data_offset": 68 + }, + { + "name": "topDisplacement", + "type_name": "keen::ds::VoxelWorldDisplacement", + "type_hash": 2454984800, + "data_offset": 96 + }, + { + "name": "stoneMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 124 + }, + { + "name": "canReceiveFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + }, + { + "name": "pbrBuildingMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 4193108473, + "data_offset": 144 + }, + { + "name": "collisionFeedbackMaterial", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 160 + }, + { + "name": "ambientEnvironment", + "type_name": "keen::ds::AmbientEnvironment", + "type_hash": 1909756702, + "data_offset": 176 + }, + { + "name": "buffType", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 180 + }, + { + "name": "previewVoxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 504881936, + "data_offset": 196 + }, + { + "name": "isDangerous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 212 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 216 + }, + { + "name": "maxSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 220 + }, + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 224 + }, + { + "name": "maxSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 228 + }, + { + "name": "vfxMaterialType", + "type_name": "keen::ds::VfxMaterialType", + "type_hash": 4281964592, + "data_offset": 232 + }, + { + "name": "entityTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 236 + }, + { + "name": "pathNodeType", + "type_name": "keen::ds::ecs::PathNodeType", + "type_hash": 3295458615, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseFogVoxelMaterial", + "type_name_2": "BaseFogVoxelMaterial", + "qualified_name": "keen::ds::BaseFogVoxelMaterial", + "referenced_type_name": "keen::ds::BaseVoxelMaterial", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1040698743, + "hash2": 1654876809, + "struct_fields": [ + { + "name": "sideDisplacement", + "type_name": "keen::ds::VoxelWorldDisplacement", + "type_hash": 2454984800, + "data_offset": 0 + }, + { + "name": "topDisplacement", + "type_name": "keen::ds::VoxelWorldDisplacement", + "type_hash": 2454984800, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMaterial", + "type_name_2": "FogVoxelMaterial", + "qualified_name": "keen::ds::FogVoxelMaterial", + "referenced_type_name": "keen::ds::BaseFogVoxelMaterial", + "class_size": 60, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3221941346, + "hash2": 2945205845, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecorativeFogVoxelMaterial", + "type_name_2": "DecorativeFogVoxelMaterial", + "qualified_name": "keen::ds::DecorativeFogVoxelMaterial", + "referenced_type_name": "keen::ds::BaseFogVoxelMaterial", + "class_size": 56, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2235262000, + "hash2": 2643430666, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WaterVoxelMaterial", + "type_name_2": "WaterVoxelMaterial", + "qualified_name": "keen::ds::WaterVoxelMaterial", + "referenced_type_name": "keen::ds::BaseVoxelMaterial", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1820026291, + "hash2": 622136359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemperatureVoxelType", + "type_name_2": "TemperatureVoxelType", + "qualified_name": "keen::ds::TemperatureVoxelType", + "referenced_type_name": "keen::TemperatureVoxelType", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 1997707137, + "hash2": 1343948502, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemperatureVoxelMaterial", + "type_name_2": "TemperatureVoxelMaterial", + "qualified_name": "keen::ds::TemperatureVoxelMaterial", + "referenced_type_name": "keen::ds::BaseVoxelMaterial", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1631824676, + "hash2": 2406575937, + "struct_fields": [ + { + "name": "temperature", + "type_name": "keen::ds::TemperatureVoxelType", + "type_hash": 1997707137, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialTerraformingInfo", + "type_name_2": "VoxelMaterialTerraformingInfo", + "qualified_name": "keen::ds::VoxelMaterialTerraformingInfo", + "referenced_type_name": null, + "class_size": 260, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2422041164, + "hash2": 2204040358, + "struct_fields": [ + { + "name": "solidVoxelMaterial", + "type_name": "keen::ds::SolidVoxelMaterial", + "type_hash": 659858055, + "data_offset": 0 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::ds::PropDamageSusceptibility", + "type_hash": 2214423142, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatteringNoise", + "type_name_2": "VoxelMaterialScatteringNoise", + "qualified_name": "keen::ds::VoxelMaterialScatteringNoise", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 26755436, + "hash2": 3703617017, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "persistence", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "outMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "outMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AbstractScatterImage", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1218034581, + "hash2": 2698399345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScattering", + "type_name_2": "VoxelMaterialScattering", + "qualified_name": "keen::ds::VoxelMaterialScattering", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3639657346, + "hash2": 902128996, + "struct_fields": [ + { + "name": "densityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 0 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "densityNoise", + "type_name": "keen::ds::VoxelMaterialScatteringNoise", + "type_hash": 26755436, + "data_offset": 20 + }, + { + "name": "depthNoise", + "type_name": "keen::ds::VoxelMaterialScatteringNoise", + "type_hash": 26755436, + "data_offset": 36 + }, + { + "name": "maxWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "detailNoise", + "type_name": "keen::ds::VoxelMaterialScatteringNoise", + "type_hash": 26755436, + "data_offset": 56 + }, + { + "name": "dirtDetailNoise", + "type_name": "keen::ds::VoxelMaterialScatteringNoise", + "type_hash": 26755436, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatteringShape", + "type_name_2": "VoxelMaterialScatteringShape", + "qualified_name": "keen::ds::VoxelMaterialScatteringShape", + "referenced_type_name": "keen::VoxelMaterialScatteringShape", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3938601663, + "hash2": 3512447552, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatterTargetMaterial", + "type_name_2": "VoxelMaterialScatterTargetMaterial", + "qualified_name": "keen::ds::VoxelMaterialScatterTargetMaterial", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3625581862, + "hash2": 101820289, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 0 + }, + { + "name": "enableScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "shape", + "type_name": "keen::ds::VoxelMaterialScatteringShape", + "type_hash": 3938601663, + "data_offset": 17 + }, + { + "name": "modulationInputScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "shapeNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "structureScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "structureFadeSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "outerRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "geodesScattterRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "geodesCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "geodesRadiusRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "geodesShellWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelMaterialScatterTargetMaterial[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelMaterialScatterTargetMaterial", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3416225735, + "hash2": 3891373023, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatterTargetMaterialList", + "type_name_2": "VoxelMaterialScatterTargetMaterialList", + "qualified_name": "keen::ds::VoxelMaterialScatterTargetMaterialList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 854776082, + "hash2": 3726626241, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::DsArray", + "type_hash": 3416225735, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "Guid[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::Guid", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1002382108, + "hash2": 4090993723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelMaterialScattering[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelMaterialScattering", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3944504889, + "hash2": 602378885, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelMaterialScatterTargetMaterialList[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelMaterialScatterTargetMaterialList", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2220310991, + "hash2": 3515924239, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialScatteringList", + "type_name_2": "VoxelMaterialScatteringList", + "qualified_name": "keen::ds::VoxelMaterialScatteringList", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3979856798, + "hash2": 3256346625, + "struct_fields": [ + { + "name": "materialGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + }, + { + "name": "settings", + "type_name": "keen::DsArray", + "type_hash": 3944504889, + "data_offset": 40 + }, + { + "name": "targetMaterials", + "type_name": "keen::DsArray", + "type_hash": 2220310991, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Health", + "type_name_2": "ecs.Health", + "qualified_name": "keen::ds::ecs::Health", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4186276398, + "hash2": 1878684132, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Stamina", + "type_name_2": "ecs.Stamina", + "qualified_name": "keen::ds::ecs::Stamina", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2489054397, + "hash2": 1878684132, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaminaDepletionMod", + "type_name_2": "ecs.StaminaDepletionMod", + "qualified_name": "keen::ds::ecs::StaminaDepletionMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3402568929, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaminaDamageMod", + "type_name_2": "ecs.StaminaDamageMod", + "qualified_name": "keen::ds::ecs::StaminaDamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3768333660, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Mana", + "type_name_2": "ecs.Mana", + "qualified_name": "keen::ds::ecs::Mana", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 877687127, + "hash2": 1878684132, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2611671171, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Revive", + "type_name_2": "ecs.Revive", + "qualified_name": "keen::ds::ecs::Revive", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 405920761, + "hash2": 2840613028, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095493149, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Durability", + "type_name_2": "ecs.Durability", + "qualified_name": "keen::ds::ecs::Durability", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2461200527, + "hash2": 2782860143, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 465813225, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Movement", + "type_name_2": "ecs.Movement", + "qualified_name": "keen::ds::ecs::Movement", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 84, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3232363213, + "hash2": 1911883632, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2917037748, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RangedCombat", + "type_name_2": "ecs.RangedCombat", + "qualified_name": "keen::ds::ecs::RangedCombat", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3306516891, + "hash2": 2645990823, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4208928690, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogResistance", + "type_name_2": "ecs.FogResistance", + "qualified_name": "keen::ds::ecs::FogResistance", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2785105309, + "hash2": 1735778634, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 431125154, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Level", + "type_name_2": "ecs.Level", + "qualified_name": "keen::ds::ecs::Level", + "referenced_type_name": "keen::ds::ecs::UInt32Attribute", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3434155374, + "hash2": 1471537240, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 294905339, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Experience", + "type_name_2": "ecs.Experience", + "qualified_name": "keen::ds::ecs::Experience", + "referenced_type_name": "keen::ds::ecs::UInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3831386980, + "hash2": 3399919800, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2408635070, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Threat", + "type_name_2": "ecs.Threat", + "qualified_name": "keen::ds::ecs::Threat", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 92, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2172389064, + "hash2": 2073530879, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2916052010, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ThreatBonus", + "type_name_2": "ecs.ThreatBonus", + "qualified_name": "keen::ds::ecs::ThreatBonus", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 400027247, + "hash2": 3435325964, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209914428, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageMod", + "type_name_2": "ecs.DamageMod", + "qualified_name": "keen::ds::ecs::DamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3177180919, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToolDamageMod", + "type_name_2": "ecs.ToolDamageMod", + "qualified_name": "keen::ds::ecs::ToolDamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3612222717, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModBackstab", + "type_name_2": "ecs.DamageModBackstab", + "qualified_name": "keen::ds::ecs::DamageModBackstab", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 377388144, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModSkillShot", + "type_name_2": "ecs.DamageModSkillShot", + "qualified_name": "keen::ds::ecs::DamageModSkillShot", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 287019196, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModSneak", + "type_name_2": "ecs.DamageModSneak", + "qualified_name": "keen::ds::ecs::DamageModSneak", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3860970073, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModMerciless", + "type_name_2": "ecs.DamageModMerciless", + "qualified_name": "keen::ds::ecs::DamageModMerciless", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2739144056, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageModAgainst", + "type_name_2": "ecs.DamageModAgainst", + "qualified_name": "keen::ds::ecs::DamageModAgainst", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2656689858, + "hash2": 2840613028, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095493149, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealingMod", + "type_name_2": "ecs.HealingMod", + "qualified_name": "keen::ds::ecs::HealingMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 573140434, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageSusceptibility", + "type_name_2": "ecs.DamageSusceptibility", + "qualified_name": "keen::ds::ecs::DamageSusceptibility", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2530083240, + "hash2": 2797867305, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2951725819, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CritChance", + "type_name_2": "ecs.CritChance", + "qualified_name": "keen::ds::ecs::CritChance", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 341509464, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CritDamageMod", + "type_name_2": "ecs.CritDamageMod", + "qualified_name": "keen::ds::ecs::CritDamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 91840619, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Strength", + "type_name_2": "ecs.Strength", + "qualified_name": "keen::ds::ecs::Strength", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3742765529, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Intelligence", + "type_name_2": "ecs.Intelligence", + "qualified_name": "keen::ds::ecs::Intelligence", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2382462391, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Dexterity", + "type_name_2": "ecs.Dexterity", + "qualified_name": "keen::ds::ecs::Dexterity", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4231897472, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Endurance", + "type_name_2": "ecs.Endurance", + "qualified_name": "keen::ds::ecs::Endurance", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2435850161, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Constitution", + "type_name_2": "ecs.Constitution", + "qualified_name": "keen::ds::ecs::Constitution", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2035667651, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Spirit", + "type_name_2": "ecs.Spirit", + "qualified_name": "keen::ds::ecs::Spirit", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 28656777, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Armor", + "type_name_2": "ecs.Armor", + "qualified_name": "keen::ds::ecs::Armor", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1914429103, + "hash2": 2645990823, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4208928690, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ArmorPoints", + "type_name_2": "ecs.ArmorPoints", + "qualified_name": "keen::ds::ecs::ArmorPoints", + "referenced_type_name": "keen::ds::ecs::UInt32Attribute", + "class_size": 148, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2451803804, + "hash2": 646463728, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 1893842857, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Block", + "type_name_2": "ecs.Block", + "qualified_name": "keen::ds::ecs::Block", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2780865865, + "hash2": 4111189624, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2579248766, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParryProficiency", + "type_name_2": "ecs.ParryProficiency", + "qualified_name": "keen::ds::ecs::ParryProficiency", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4107872163, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Comfort", + "type_name_2": "ecs.Comfort", + "qualified_name": "keen::ds::ecs::Comfort", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 147143212, + "hash2": 4111189624, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2579248766, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Rested", + "type_name_2": "ecs.Rested", + "qualified_name": "keen::ds::ecs::Rested", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3988031271, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MeleeDamageMod", + "type_name_2": "ecs.MeleeDamageMod", + "qualified_name": "keen::ds::ecs::MeleeDamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1753372083, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RangedDamageMod", + "type_name_2": "ecs.RangedDamageMod", + "qualified_name": "keen::ds::ecs::RangedDamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3385480526, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MagicDamageMod", + "type_name_2": "ecs.MagicDamageMod", + "qualified_name": "keen::ds::ecs::MagicDamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3044864798, + "hash2": 1673815708, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2094507411, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AllyAggroMultiplier", + "type_name_2": "ecs.AllyAggroMultiplier", + "qualified_name": "keen::ds::ecs::AllyAggroMultiplier", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1093021547, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaminaRechargeMod", + "type_name_2": "ecs.StaminaRechargeMod", + "qualified_name": "keen::ds::ecs::StaminaRechargeMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3598431896, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthRechargeMod", + "type_name_2": "ecs.HealthRechargeMod", + "qualified_name": "keen::ds::ecs::HealthRechargeMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 924091505, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManaRechargeMod", + "type_name_2": "ecs.ManaRechargeMod", + "qualified_name": "keen::ds::ecs::ManaRechargeMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3910674162, + "hash2": 3714238063, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 4209620238, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryDamageMod", + "type_name_2": "ecs.WeaponCategoryDamageMod", + "qualified_name": "keen::ds::ecs::WeaponCategoryDamageMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1840412019, + "hash2": 2412254269, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2060805078, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeatMaxMod", + "type_name_2": "ecs.BodyHeatMaxMod", + "qualified_name": "keen::ds::ecs::BodyHeatMaxMod", + "referenced_type_name": "keen::ds::ecs::FloatAttribute", + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3615421132, + "hash2": 61376412, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 2095198959, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeat", + "type_name_2": "ecs.BodyHeat", + "qualified_name": "keen::ds::ecs::BodyHeat", + "referenced_type_name": "keen::ds::ecs::UInt32Attribute", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3097806822, + "hash2": 2287892843, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 293919601, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FreezingResistance", + "type_name_2": "ecs.FreezingResistance", + "qualified_name": "keen::ds::ecs::FreezingResistance", + "referenced_type_name": "keen::ds::ecs::SInt32Attribute", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1389891353, + "hash2": 1016264807, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 20 + }, + { + "name": "dataStorage", + "type_name": "keen::StaticArray", + "type_hash": 432110892, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionId", + "type_name_2": "ItemCollectionId", + "qualified_name": "keen::ds::ItemCollectionId", + "referenced_type_name": "keen::ItemCollectionId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2018188905, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SignalId", + "type_name_2": "SignalId", + "qualified_name": "keen::ds::SignalId", + "referenced_type_name": "keen::SignalId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3676606186, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerId", + "type_name_2": "LootContainerId", + "qualified_name": "keen::ds::LootContainerId", + "referenced_type_name": "keen::LootContainerId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2290570849, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntryId", + "type_name_2": "JournalEntryId", + "qualified_name": "keen::ds::JournalEntryId", + "referenced_type_name": "keen::JournalEntryId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1338464771, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Signal", + "type_name_2": "Signal", + "qualified_name": "keen::ds::Signal", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3385071367, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemStateFlag", + "type_name_2": "ItemStateFlag", + "qualified_name": "keen::ds::ItemStateFlag", + "referenced_type_name": "keen::ItemStateFlag", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Typedef", + "hash1": 1322938159, + "hash2": 415944065, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CaptionLocaTag", + "type_name_2": "CaptionLocaTag", + "qualified_name": "keen::ds::CaptionLocaTag", + "referenced_type_name": "keen::ds::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1672201430, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LoreLocaTag", + "type_name_2": "LoreLocaTag", + "qualified_name": "keen::ds::LoreLocaTag", + "referenced_type_name": "keen::ds::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3467428038, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeFlag", + "type_name_2": "ItemKnowledgeFlag", + "qualified_name": "keen::ds::ItemKnowledgeFlag", + "referenced_type_name": "keen::ItemKnowledgeFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3366649686, + "hash2": 370223067, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeMask", + "type_name_2": "ItemKnowledgeMask", + "qualified_name": "keen::ds::ItemKnowledgeMask", + "referenced_type_name": "keen::ItemKnowledgeMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 824525052, + "hash2": 3339249972, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeItemStackResource", + "type_name_2": "RecipeItemStackResource", + "qualified_name": "keen::ds::RecipeItemStackResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 876407258, + "hash2": 2039906177, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryActionType", + "type_name_2": "InventoryActionType", + "qualified_name": "keen::ds::InventoryActionType", + "referenced_type_name": "keen::InventoryActionType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3203061659, + "hash2": 2190188089, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VersionedData", + "type_name_2": "VersionedData", + "qualified_name": "keen::ds::VersionedData", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 428769936, + "hash2": 3900687393, + "struct_fields": [ + { + "name": "changeCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiState", + "type_name_2": "UiState", + "qualified_name": "keen::ds::UiState", + "referenced_type_name": "keen::UiState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 737146230, + "hash2": 2103387029, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WheelMenuType", + "type_name_2": "WheelMenuType", + "qualified_name": "keen::ds::WheelMenuType", + "referenced_type_name": "keen::WheelMenuType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 602298353, + "hash2": 3968621347, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FactionType", + "type_name_2": "FactionType", + "qualified_name": "keen::ds::FactionType", + "referenced_type_name": "keen::FactionType", + "class_size": 1, + "fields_count": 14, + "primitive_type": "Typedef", + "hash1": 515941569, + "hash2": 556747195, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputMode", + "type_name_2": "InputMode", + "qualified_name": "keen::ds::InputMode", + "referenced_type_name": "keen::InputMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1909745898, + "hash2": 2913199792, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackDirectionInput", + "type_name_2": "AttackDirectionInput", + "qualified_name": "keen::ds::AttackDirectionInput", + "referenced_type_name": "keen::AttackDirectionInput", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1389958292, + "hash2": 3894897215, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ControllerButtonStyle", + "type_name_2": "ControllerButtonStyle", + "qualified_name": "keen::ds::ControllerButtonStyle", + "referenced_type_name": "keen::ControllerButtonStyle", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3331607868, + "hash2": 693763451, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiInputId", + "type_name_2": "UiInputId", + "qualified_name": "keen::ds::UiInputId", + "referenced_type_name": "keen::UiInputId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 739664406, + "hash2": 553355701, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterState", + "type_name_2": "CharacterState", + "qualified_name": "keen::ds::CharacterState", + "referenced_type_name": "keen::CharacterState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 749094059, + "hash2": 1320917698, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterStateMask", + "type_name_2": "CharacterStateMask", + "qualified_name": "keen::ds::CharacterStateMask", + "referenced_type_name": "keen::CharacterStateMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2366221823, + "hash2": 3301007697, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterId", + "type_name_2": "CharacterId", + "qualified_name": "keen::ds::CharacterId", + "referenced_type_name": "keen::CharacterId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1186517035, + "hash2": 2967885044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SaveGameSlotIndex", + "type_name_2": "SaveGameSlotIndex", + "qualified_name": "keen::ds::SaveGameSlotIndex", + "referenced_type_name": "keen::SaveGameSlotIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 798075520, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerId", + "type_name_2": "PlayerId", + "qualified_name": "keen::ds::PlayerId", + "referenced_type_name": "keen::PlayerId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 109993811, + "hash2": 2967885044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BaseId", + "type_name_2": "BaseId", + "qualified_name": "keen::ds::BaseId", + "referenced_type_name": "keen::BaseId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 296553055, + "hash2": 2967885044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyPhase", + "type_name_2": "EnemyPhase", + "qualified_name": "keen::ds::EnemyPhase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3694777824, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JumpToObject", + "type_name_2": "JumpToObject", + "qualified_name": "keen::ds::JumpToObject", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3258956309, + "hash2": 1888311474, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpecialInteraction", + "type_name_2": "ecs.SpecialInteraction", + "qualified_name": "keen::ds::ecs::SpecialInteraction", + "referenced_type_name": "keen::ecs::SpecialInteraction", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 832903769, + "hash2": 4079187489, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerLoginState", + "type_name_2": "PlayerLoginState", + "qualified_name": "keen::ds::PlayerLoginState", + "referenced_type_name": "keen::PlayerLoginState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2569041212, + "hash2": 3350409881, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameClientInitState", + "type_name_2": "GameClientInitState", + "qualified_name": "keen::ds::GameClientInitState", + "referenced_type_name": "keen::GameClientInitState", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3510877081, + "hash2": 598845044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerPermissions", + "type_name_2": "PlayerPermissions", + "qualified_name": "keen::ds::PlayerPermissions", + "referenced_type_name": "keen::PlayerPermissions", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1187353686, + "hash2": 3653907521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerPermissionsMask", + "type_name_2": "PlayerPermissionsMask", + "qualified_name": "keen::ds::PlayerPermissionsMask", + "referenced_type_name": "keen::PlayerPermissionsMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 978357734, + "hash2": 3528400932, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelConstraint", + "type_name_2": "VoxelConstraint", + "qualified_name": "keen::ds::VoxelConstraint", + "referenced_type_name": "keen::VoxelConstraint", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3016301146, + "hash2": 3812898834, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelConstraintMask", + "type_name_2": "VoxelConstraintMask", + "qualified_name": "keen::ds::VoxelConstraintMask", + "referenced_type_name": "keen::VoxelConstraintMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1658385154, + "hash2": 1874476330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRequirements", + "type_name_2": "VoxelRequirements", + "qualified_name": "keen::ds::VoxelRequirements", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3749015873, + "hash2": 73358372, + "struct_fields": [ + { + "name": "required", + "type_name": "keen::ds::VoxelConstraintMask", + "type_hash": 1658385154, + "data_offset": 0 + }, + { + "name": "forbidden", + "type_name": "keen::ds::VoxelConstraintMask", + "type_hash": 1658385154, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerProgressSystem", + "type_name_2": "ecs.ServerProgressSystem", + "qualified_name": "keen::ds::ecs::ServerProgressSystem", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2013703669, + "hash2": 2375466244, + "struct_fields": [ + { + "name": "progressEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "progressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "currentAltarCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "currentHighestAltarLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseIdComponent", + "type_name_2": "ecs.BaseIdComponent", + "qualified_name": "keen::ds::ecs::BaseIdComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3978457623, + "hash2": 294724084, + "struct_fields": [ + { + "name": "baseId", + "type_name": "keen::ds::BaseId", + "type_hash": 296553055, + "data_offset": 0 + }, + { + "name": "buildZoneSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "endOfTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "wasAbandoned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientBaseIdComponent", + "type_name_2": "ecs.ClientBaseIdComponent", + "qualified_name": "keen::ds::ecs::ClientBaseIdComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2010248978, + "hash2": 1688167698, + "struct_fields": [ + { + "name": "endOfTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "wasAbandoned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "farmingAnimalCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "hungryFarmingAnimalCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "animalsWithoutBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "npcBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "farmingAnimalBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "occupiedFarmingAnimalBedCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoBuildZone", + "type_name_2": "ecs.NoBuildZone", + "qualified_name": "keen::ds::ecs::NoBuildZone", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 931819279, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedJournalEntries", + "type_name_2": "ecs.UnlockedJournalEntries", + "qualified_name": "keen::ds::ecs::UnlockedJournalEntries", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 375278728, + "hash2": 3214334773, + "struct_fields": [ + { + "name": "knowledgeChangeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "journalChangeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthBar", + "type_name_2": "ecs.HealthBar", + "qualified_name": "keen::ds::ecs::HealthBar", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3192285175, + "hash2": 547574384, + "struct_fields": [ + { + "name": "lastChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnergyProvider", + "type_name_2": "ecs.EnergyProvider", + "qualified_name": "keen::ds::ecs::EnergyProvider", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2928015929, + "hash2": 2411117881, + "struct_fields": [ + { + "name": "energyPerSecond", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnergyQuery", + "type_name_2": "ecs.EnergyQuery", + "qualified_name": "keen::ds::ecs::EnergyQuery", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1096107944, + "hash2": 1530200944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "energyPerSecond", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "entityDistanceSquared", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CookingState", + "type_name_2": "ecs.CookingState", + "qualified_name": "keen::ds::ecs::CookingState", + "referenced_type_name": "keen::ecs::CookingState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 771600033, + "hash2": 3475028488, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CookingFlags", + "type_name_2": "ecs.CookingFlags", + "qualified_name": "keen::ds::ecs::CookingFlags", + "referenced_type_name": "keen::ecs::CookingFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 768415599, + "hash2": 225218473, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CookingMask", + "type_name_2": "ecs.CookingMask", + "qualified_name": "keen::ds::ecs::CookingMask", + "referenced_type_name": "keen::ecs::CookingMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3771927756, + "hash2": 2460995806, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CookingData", + "type_name_2": "ecs.CookingData", + "qualified_name": "keen::ds::ecs::CookingData", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3622005284, + "hash2": 956511269, + "struct_fields": [ + { + "name": "cookingHearthEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "skewerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "burnedFoodEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "cookFoodEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "baseItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "cookingItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 20 + }, + { + "name": "nextCookingItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 24 + }, + { + "name": "nextKnowledgeTriggerId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 28 + }, + { + "name": "cookingKnowledgeTriggerId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 32 + }, + { + "name": "cookingEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "requiredEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "mask", + "type_name": "keen::ds::ecs::CookingMask", + "type_hash": 3771927756, + "data_offset": 44 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::CookingState", + "type_hash": 771600033, + "data_offset": 45 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkCookingData", + "type_name_2": "ecs.NetworkCookingData", + "qualified_name": "keen::ds::ecs::NetworkCookingData", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 163247366, + "hash2": 1403762047, + "struct_fields": [ + { + "name": "cookingHearthEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "mask", + "type_name": "keen::ds::ecs::CookingMask", + "type_hash": 3771927756, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CookingNotifier", + "type_name_2": "ecs.CookingNotifier", + "qualified_name": "keen::ds::ecs::CookingNotifier", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 450653494, + "hash2": 2018809137, + "struct_fields": [ + { + "name": "onFoodStateChange", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 0 + }, + { + "name": "onFoodBurned", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeRegeneration", + "type_name_2": "ecs.AttributeRegeneration", + "qualified_name": "keen::ds::ecs::AttributeRegeneration", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4169468907, + "hash2": 744763285, + "struct_fields": [ + { + "name": "lastNegativeChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "lastValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthRecharge", + "type_name_2": "ecs.HealthRecharge", + "qualified_name": "keen::ds::ecs::HealthRecharge", + "referenced_type_name": "keen::ds::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 318622867, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaminaRecharge", + "type_name_2": "ecs.StaminaRecharge", + "qualified_name": "keen::ds::ecs::StaminaRecharge", + "referenced_type_name": "keen::ds::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 741317604, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ManaRegeneration", + "type_name_2": "ecs.ManaRegeneration", + "qualified_name": "keen::ds::ecs::ManaRegeneration", + "referenced_type_name": "keen::ds::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1770101584, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeatRecharge", + "type_name_2": "ecs.BodyHeatRecharge", + "qualified_name": "keen::ds::ecs::BodyHeatRecharge", + "referenced_type_name": "keen::ds::ecs::AttributeRegeneration", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1222158811, + "hash2": 683421320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaminaDepletion", + "type_name_2": "ecs.StaminaDepletion", + "qualified_name": "keen::ds::ecs::StaminaDepletion", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3873551587, + "hash2": 348735389, + "struct_fields": [ + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BodyHeatDepletion", + "type_name_2": "ecs.BodyHeatDepletion", + "qualified_name": "keen::ds::ecs::BodyHeatDepletion", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3159368234, + "hash2": 348735389, + "struct_fields": [ + { + "name": "accumulatedValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovementVector", + "type_name_2": "ecs.MovementVector", + "qualified_name": "keen::ds::ecs::MovementVector", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3331473402, + "hash2": 3939610258, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "movement", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Projectile", + "type_name_2": "ecs.Projectile", + "qualified_name": "keen::ds::ecs::Projectile", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 164044255, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParriableProjectile", + "type_name_2": "ecs.ParriableProjectile", + "qualified_name": "keen::ds::ecs::ParriableProjectile", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2408056065, + "hash2": 1547853161, + "struct_fields": [ + { + "name": "parriedProjectileTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "launchPitchAngleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 16 + }, + { + "name": "launchSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParriedProjectile", + "type_name_2": "ecs.ParriedProjectile", + "qualified_name": "keen::ds::ecs::ParriedProjectile", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1450972204, + "hash2": 3214262615, + "struct_fields": [ + { + "name": "originalFaction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 0 + }, + { + "name": "originalSpawnerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProjectileMode", + "type_name_2": "ecs.ProjectileMode", + "qualified_name": "keen::ds::ecs::ProjectileMode", + "referenced_type_name": "keen::ecs::ProjectileMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4006566712, + "hash2": 1676473697, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CirclingTargetSettings", + "type_name_2": "ecs.CirclingTargetSettings", + "qualified_name": "keen::ds::ecs::CirclingTargetSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2411771703, + "hash2": 2093171428, + "struct_fields": [ + { + "name": "angleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "heightOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "Angle[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::Angle", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 308834328, + "hash2": 1190389928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyProjectile", + "type_name_2": "ecs.EnemyProjectile", + "qualified_name": "keen::ds::ecs::EnemyProjectile", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 136, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2964646467, + "hash2": 411596888, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::ecs::ProjectileMode", + "type_hash": 4006566712, + "data_offset": 0 + }, + { + "name": "targetOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxTries", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "force", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "addGravity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "useLowAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "lockTargetPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "hitAngles", + "type_name": "keen::DsArray", + "type_hash": 308834328, + "data_offset": 24 + }, + { + "name": "minPitch", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 64 + }, + { + "name": "maxPitch", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 68 + }, + { + "name": "maxHorizontalAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 72 + }, + { + "name": "useFixedTargetOffset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "targetOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 80 + }, + { + "name": "useCirclingTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 120 + }, + { + "name": "circlingTargetSettings", + "type_name": "keen::ds::ecs::CirclingTargetSettings", + "type_hash": 2411771703, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticUsedItem", + "type_name_2": "ecs.StaticUsedItem", + "qualified_name": "keen::ds::ecs::StaticUsedItem", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 371314128, + "hash2": 2614334813, + "struct_fields": [ + { + "name": "itemReference", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UsedItem", + "type_name_2": "ecs.UsedItem", + "qualified_name": "keen::ds::ecs::UsedItem", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1922151038, + "hash2": 2775363502, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkContainer", + "type_name_2": "ecs.PerkContainer", + "qualified_name": "keen::ds::ecs::PerkContainer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2899957667, + "hash2": 1712814049, + "struct_fields": [ + { + "name": "perkIds", + "type_name": "keen::StaticArray", + "type_hash": 2880309647, + "data_offset": 0 + }, + { + "name": "perkIsUnlocked", + "type_name": "keen::StaticArray", + "type_hash": 3536054655, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DismantleVolumeClass", + "type_name_2": "ecs.DismantleVolumeClass", + "qualified_name": "keen::ds::ecs::DismantleVolumeClass", + "referenced_type_name": "keen::ecs::DismantleVolumeClass", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 544168155, + "hash2": 86020655, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DismantleMethod", + "type_name_2": "ecs.DismantleMethod", + "qualified_name": "keen::ds::ecs::DismantleMethod", + "referenced_type_name": "keen::ecs::DismantleMethod", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 1951382894, + "hash2": 2170268095, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DismantleOverride", + "type_name_2": "ecs.DismantleOverride", + "qualified_name": "keen::ds::ecs::DismantleOverride", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 6, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4111353623, + "hash2": 2673796773, + "struct_fields": [ + { + "name": "overrideMethod", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "method", + "type_name": "keen::ds::ecs::DismantleMethod", + "type_hash": 1951382894, + "data_offset": 1 + }, + { + "name": "overrideVolumeClass", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "volumeClass", + "type_name": "keen::ds::ecs::DismantleVolumeClass", + "type_hash": 544168155, + "data_offset": 3 + }, + { + "name": "ignoreBuildZoneChecks", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "preventDismantlingWithFilledInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientDismantleOverride", + "type_name_2": "ecs.ClientDismantleOverride", + "qualified_name": "keen::ds::ecs::ClientDismantleOverride", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2239761066, + "hash2": 2246930220, + "struct_fields": [ + { + "name": "forceImmediateDismantlePrompt", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntitySpawnInfo", + "type_name_2": "ecs.SubEntitySpawnInfo", + "qualified_name": "keen::ds::ecs::SubEntitySpawnInfo", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1462230440, + "hash2": 2086965207, + "struct_fields": [ + { + "name": "templateRef", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 56 + }, + { + "name": "hasKnowledgeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 60 + }, + { + "name": "knowledgeRequirementId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 164 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 168 + }, + { + "name": "despawnOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 169 + }, + { + "name": "addDespawnLink", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 170 + }, + { + "name": "addOwnerRelationship", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 171 + }, + { + "name": "doNotSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 172 + }, + { + "name": "copyConditionalDespawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 173 + }, + { + "name": "copyLevel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 174 + }, + { + "name": "addImpactHierarchy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 175 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SubEntitySpawnInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SubEntitySpawnInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3117414551, + "hash2": 3893011926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SubEntities", + "type_name_2": "ecs.SubEntities", + "qualified_name": "keen::ds::ecs::SubEntities", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 32388021, + "hash2": 1519607572, + "struct_fields": [ + { + "name": "subEntities", + "type_name": "keen::DsArray", + "type_hash": 3117414551, + "data_offset": 0 + }, + { + "name": "hasSavedChildren", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 589531163, + "hash2": 4206811103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSubEntities", + "type_name_2": "ecs.DynamicSubEntities", + "qualified_name": "keen::ds::ecs::DynamicSubEntities", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1669236150, + "hash2": 2098835778, + "struct_fields": [ + { + "name": "subEntities", + "type_name": "keen::StaticArray", + "type_hash": 589531163, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntitiesStop", + "type_name_2": "ecs.SubEntitiesStop", + "qualified_name": "keen::ds::ecs::SubEntitiesStop", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 31125909, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleSubEntities", + "type_name_2": "ecs.ToggleSubEntities", + "qualified_name": "keen::ds::ecs::ToggleSubEntities", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 521008617, + "hash2": 1133931085, + "struct_fields": [ + { + "name": "toggleModifier", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicToggleSubEntities", + "type_name_2": "ecs.DynamicToggleSubEntities", + "qualified_name": "keen::ds::ecs::DynamicToggleSubEntities", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2693440758, + "hash2": 1118348789, + "struct_fields": [ + { + "name": "dontSpawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntityAttachmentMask", + "type_name_2": "ecs.SubEntityAttachmentMask", + "qualified_name": "keen::ds::ecs::SubEntityAttachmentMask", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 626634732, + "hash2": 3310132884, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::AttachmentSlotMask", + "type_hash": 1814507678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityAnimation", + "type_name_2": "ecs.EntityAnimation", + "qualified_name": "keen::ds::ecs::EntityAnimation", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 182193755, + "hash2": 1134829799, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::JointAnimationReference", + "type_hash": 1988012710, + "data_offset": 0 + }, + { + "name": "animationHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "sampleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DespawnAfterSequence", + "type_name_2": "ecs.DespawnAfterSequence", + "qualified_name": "keen::ds::ecs::DespawnAfterSequence", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 52138801, + "hash2": 1668254277, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponReference", + "type_name_2": "ecs.WeaponReference", + "qualified_name": "keen::ds::ecs::WeaponReference", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2611114689, + "hash2": 3302326149, + "struct_fields": [ + { + "name": "weaponEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "weaponOwnerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionConfig", + "type_name_2": "ecs.HitReactionConfig", + "qualified_name": "keen::ds::ecs::HitReactionConfig", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3117780572, + "hash2": 3019834338, + "struct_fields": [ + { + "name": "hitReactionOverlay", + "type_name": "keen::ds::animationgraph::OverlayIdReference", + "type_hash": 2302284539, + "data_offset": 0 + }, + { + "name": "hitSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionBehavior", + "type_name_2": "ecs.HitReactionBehavior", + "qualified_name": "keen::ds::ecs::HitReactionBehavior", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 288, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3120393700, + "hash2": 3274977210, + "struct_fields": [ + { + "name": "hitReactionBlockLightAttack", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 0 + }, + { + "name": "hitReactionLight", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 32 + }, + { + "name": "hitReactionHeavy", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 64 + }, + { + "name": "hitReactionBoss", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 96 + }, + { + "name": "hitReactionLongStun", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 128 + }, + { + "name": "hitReactionTrapStun", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 160 + }, + { + "name": "hitReactionShortStunBeGoneSkill", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 192 + }, + { + "name": "hitReactionThrowIntoAir", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 224 + }, + { + "name": "hitReactionWhileFlying", + "type_name": "keen::ds::ecs::HitReactionConfig", + "type_hash": 3117780572, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityReferenceType", + "type_name_2": "ecs.EntityReferenceType", + "qualified_name": "keen::ds::ecs::EntityReferenceType", + "referenced_type_name": "keen::ecs::EntityReferenceType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2889645312, + "hash2": 3394777203, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LerpRenderTransform", + "type_name_2": "ecs.LerpRenderTransform", + "qualified_name": "keen::ds::ecs::LerpRenderTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2823593951, + "hash2": 755248693, + "struct_fields": [ + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "entityReferenceType", + "type_name": "keen::ds::ecs::EntityReferenceType", + "type_hash": 2889645312, + "data_offset": 1 + }, + { + "name": "attachmentSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 2 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lerpValueStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "lerpValueEnd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "lerpTimeStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "translateDelta", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HomeToTarget", + "type_name_2": "ecs.HomeToTarget", + "qualified_name": "keen::ds::ecs::HomeToTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 52, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 168310523, + "hash2": 1172912983, + "struct_fields": [ + { + "name": "targetLocalOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "turnSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "turnSpeedMinDistanceFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "turnSpeedMaxDistanceFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "turnSpeedMinDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "turnSpeedMaxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "acceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "maxSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "homeToCollisionTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "accelerateDependsOnAngle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHomeToTarget", + "type_name_2": "ecs.DynamicHomeToTarget", + "qualified_name": "keen::ds::ecs::DynamicHomeToTarget", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 815735010, + "hash2": 4100078598, + "struct_fields": [ + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Boomerang", + "type_name_2": "ecs.Boomerang", + "qualified_name": "keen::ds::ecs::Boomerang", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2164229080, + "hash2": 3865929004, + "struct_fields": [ + { + "name": "returnToSpawnerDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "destroyOnApproachSpawnerDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroTargetState", + "type_name_2": "ecs.AggroTargetState", + "qualified_name": "keen::ds::ecs::AggroTargetState", + "referenced_type_name": "keen::ecs::AggroTargetState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2637141804, + "hash2": 1929169035, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AggroPool", + "type_name_2": "ecs.AggroPool", + "qualified_name": "keen::ds::ecs::AggroPool", + "referenced_type_name": "keen::ecs::AggroPool", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4269663720, + "hash2": 2798553701, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolData", + "type_name_2": "ecs.AggroPoolData", + "qualified_name": "keen::ds::ecs::AggroPoolData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2761961680, + "hash2": 3124242308, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lastGain", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LineOfSightState", + "type_name_2": "ecs.LineOfSightState", + "qualified_name": "keen::ds::ecs::LineOfSightState", + "referenced_type_name": "keen::ecs::LineOfSightState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1566349941, + "hash2": 928608119, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetReachableState", + "type_name_2": "ecs.TargetReachableState", + "qualified_name": "keen::ds::ecs::TargetReachableState", + "referenced_type_name": "keen::ecs::TargetReachableState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4104583665, + "hash2": 160355692, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.AggroPoolData[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::AggroPoolData", + "class_size": 48, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 810882755, + "hash2": 2531542142, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AggroTarget", + "type_name_2": "ecs.AggroTarget", + "qualified_name": "keen::ds::ecs::AggroTarget", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3049884459, + "hash2": 3973975329, + "struct_fields": [ + { + "name": "aggroPools", + "type_name": "keen::StaticArray", + "type_hash": 810882755, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::AggroTargetState", + "type_hash": 2637141804, + "data_offset": 48 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 52 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "lastLineOfSightQueryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "lineOfSightState", + "type_name": "keen::ds::ecs::LineOfSightState", + "type_hash": 1566349941, + "data_offset": 72 + }, + { + "name": "lastStateChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "faction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 88 + }, + { + "name": "pathLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "reachableState", + "type_name": "keen::ds::ecs::TargetReachableState", + "type_hash": 4104583665, + "data_offset": 96 + }, + { + "name": "distanceToTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "enemyValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AggroTargetPathQuery", + "type_name_2": "ecs.AggroTargetPathQuery", + "qualified_name": "keen::ds::ecs::AggroTargetPathQuery", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1779994104, + "hash2": 1244541218, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::PathQueryId", + "type_hash": 2909815120, + "data_offset": 0 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastStart", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "lastTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.AggroTarget[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::AggroTarget", + "class_size": 672, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 3936631007, + "hash2": 2589011430, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.AggroTargetPathQuery[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::AggroTargetPathQuery", + "class_size": 240, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 3962441450, + "hash2": 207105744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Aggro", + "type_name_2": "ecs.Aggro", + "qualified_name": "keen::ds::ecs::Aggro", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 928, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 609965290, + "hash2": 4207459696, + "struct_fields": [ + { + "name": "targets", + "type_name": "keen::StaticArray", + "type_hash": 3936631007, + "data_offset": 0 + }, + { + "name": "pathQueries", + "type_name": "keen::StaticArray", + "type_hash": 3962441450, + "data_offset": 672 + }, + { + "name": "nextAllowedTargetChangeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 912 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 920 + }, + { + "name": "applyEnemyValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 924 + }, + { + "name": "allowTargetSwitches", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 925 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerNoise", + "type_name_2": "ecs.TriggerNoise", + "qualified_name": "keen::ds::ecs::TriggerNoise", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3467665990, + "hash2": 2047573578, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "nextTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "triggerInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerWalkingNoise", + "type_name_2": "ecs.TriggerWalkingNoise", + "qualified_name": "keen::ds::ecs::TriggerWalkingNoise", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1621636663, + "hash2": 4050775535, + "struct_fields": [ + { + "name": "sneakRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "walkRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "runRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "sprintRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "nextTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "triggerInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray,8>", + "type_name_2": "Reference[8]", + "qualified_name": "keen::StaticArray,8>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2780636241, + "hash2": 841799110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyPhases", + "type_name_2": "ecs.EnemyPhases", + "qualified_name": "keen::ds::ecs::EnemyPhases", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 128, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3740922856, + "hash2": 3632298310, + "struct_fields": [ + { + "name": "phases", + "type_name": "keen::StaticArray,8>", + "type_hash": 2780636241, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyPhases", + "type_name_2": "ecs.DynamicEnemyPhases", + "qualified_name": "keen::ds::ecs::DynamicEnemyPhases", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3466264387, + "hash2": 448338406, + "struct_fields": [ + { + "name": "lastPhase", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "currentPhase", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "currentPhaseStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "bool[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::bool", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1920420223, + "hash2": 25749605, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAiming", + "type_name_2": "ecs.EnemyAiming", + "qualified_name": "keen::ds::ecs::EnemyAiming", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 554604403, + "hash2": 1440335497, + "struct_fields": [ + { + "name": "hitPattern", + "type_name": "keen::DsArray", + "type_hash": 1920420223, + "data_offset": 0 + }, + { + "name": "minDistanceToMissTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicEnemyAiming", + "type_name_2": "ecs.DynamicEnemyAiming", + "qualified_name": "keen::ds::ecs::DynamicEnemyAiming", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2482233908, + "hash2": 878450274, + "struct_fields": [ + { + "name": "hitIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "hitAngleIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "projectiles", + "type_name": "keen::StaticArray", + "type_hash": 872988250, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContextualVector2Context", + "type_name_2": "ecs.ContextualVector2Context", + "qualified_name": "keen::ds::ecs::ContextualVector2Context", + "referenced_type_name": "keen::ecs::ContextualVector2Context", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1776248397, + "hash2": 2122830593, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ContextualVector2", + "type_name_2": "ecs.ContextualVector2", + "qualified_name": "keen::ds::ecs::ContextualVector2", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2044976546, + "hash2": 1268272817, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::ds::ecs::ContextualVector2Context", + "type_hash": 1776248397, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExecutionTarget", + "type_name_2": "ecs.ExecutionTarget", + "qualified_name": "keen::ds::ecs::ExecutionTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2160296175, + "hash2": 1652194934, + "struct_fields": [ + { + "name": "executionRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "enableSneackAttackExecution", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "enableMercilessAttackExecution", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "minMercilessAttackHealthPercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "allowMercilessAttackRetrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "canMercilessAttackBeExecuted", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "waitForHealthAboveThreshold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "waitForStaminaRecharge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransferItemToInventoryFlags", + "type_name_2": "ecs.TransferItemToInventoryFlags", + "qualified_name": "keen::ds::ecs::TransferItemToInventoryFlags", + "referenced_type_name": "keen::ecs::TransferItemToInventoryFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3568319190, + "hash2": 1078969413, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventoryTransferAction", + "type_name_2": "ecs.InventoryTransferAction", + "qualified_name": "keen::ds::ecs::InventoryTransferAction", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1246688453, + "hash2": 4001242583, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "sourceSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + }, + { + "name": "targetSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 20 + }, + { + "name": "type", + "type_name": "keen::ds::InventoryActionType", + "type_hash": 3203061659, + "data_offset": 28 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::TransferItemToInventoryFlags", + "type_hash": 3568319190, + "data_offset": 29 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 30 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectSongAction", + "type_name_2": "ecs.SelectSongAction", + "qualified_name": "keen::ds::ecs::SelectSongAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2730493243, + "hash2": 1346404210, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "songId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SortInventoryAction", + "type_name_2": "ecs.SortInventoryAction", + "qualified_name": "keen::ds::ecs::SortInventoryAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 496246826, + "hash2": 2550258388, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "targetInventoryId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateBuildingItemAction", + "type_name_2": "ecs.CreateBuildingItemAction", + "qualified_name": "keen::ds::ecs::CreateBuildingItemAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2787711457, + "hash2": 1172123838, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "selectedIndex", + "type_name": "keen::ds::ActionbarSlotSelection", + "type_hash": 250768632, + "data_offset": 2 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateNpcItemAction", + "type_name_2": "ecs.CreateNpcItemAction", + "qualified_name": "keen::ds::ecs::CreateNpcItemAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3316774342, + "hash2": 1808934986, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionbarSelectionAction", + "type_name_2": "ecs.ActionbarSelectionAction", + "qualified_name": "keen::ds::ecs::ActionbarSelectionAction", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2601083309, + "hash2": 4292372756, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "selectedIndex", + "type_name": "keen::ds::ActionbarSlotSelection", + "type_hash": 250768632, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryStockCycleAction", + "type_name_2": "ecs.InventoryStockCycleAction", + "qualified_name": "keen::ds::ecs::InventoryStockCycleAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3659326638, + "hash2": 303749183, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "selectedItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 16, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 3022391790, + "hash2": 3503560448, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParryAction", + "type_name_2": "ecs.ParryAction", + "qualified_name": "keen::ds::ecs::ParryAction", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1804636908, + "hash2": 1193105332, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "targetEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 3022391790, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KickPlayerAction", + "type_name_2": "ecs.KickPlayerAction", + "qualified_name": "keen::ds::ecs::KickPlayerAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1348682917, + "hash2": 2844546607, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropRewardAction", + "type_name_2": "ecs.TwitchDropRewardAction", + "qualified_name": "keen::ds::ecs::TwitchDropRewardAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1375828139, + "hash2": 3215710453, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TombstoneMode", + "type_name_2": "ecs.TombstoneMode", + "qualified_name": "keen::ds::ecs::TombstoneMode", + "referenced_type_name": "keen::ecs::TombstoneMode", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 3128570488, + "hash2": 1589975205, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherFrequency", + "type_name_2": "ecs.WeatherFrequency", + "qualified_name": "keen::ds::ecs::WeatherFrequency", + "referenced_type_name": "keen::ecs::WeatherFrequency", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 698500370, + "hash2": 2053486737, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AggroPoolAmount", + "type_name_2": "ecs.AggroPoolAmount", + "qualified_name": "keen::ds::ecs::AggroPoolAmount", + "referenced_type_name": "keen::ecs::AggroPoolAmount", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2508493364, + "hash2": 2475013914, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TamingStartleRepercussion", + "type_name_2": "ecs.TamingStartleRepercussion", + "qualified_name": "keen::ds::ecs::TamingStartleRepercussion", + "referenced_type_name": "keen::ecs::TamingStartleRepercussion", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 603339977, + "hash2": 398786076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameSettings", + "type_name_2": "ecs.GameSettings", + "qualified_name": "keen::ds::ecs::GameSettings", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 4190741839, + "hash2": 3864105846, + "struct_fields": [ + { + "name": "playerHealthFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "playerManaFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "playerStaminaFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "playerBodyHeatFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "enableDurability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "enableStarvingDebuff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "foodBuffDurationFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "fromHungerToStarving", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "shroudTimeFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "tombstoneMode", + "type_name": "keen::ds::ecs::TombstoneMode", + "type_hash": 3128570488, + "data_offset": 36 + }, + { + "name": "enableGliderTurbulences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "weatherFrequency", + "type_name": "keen::ds::ecs::WeatherFrequency", + "type_hash": 698500370, + "data_offset": 38 + }, + { + "name": "miningDamageFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "plantGrowthSpeedFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "resourceDropStackAmountFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "factoryProductionSpeedFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + }, + { + "name": "perkUpgradeRecyclingFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "perkCostFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "experienceCombatFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "experienceMiningFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "experienceExplorationQuestsFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "randomSpawnerAmount", + "type_name": "keen::ds::ecs::RandomSpawnerAmount", + "type_hash": 3516509841, + "data_offset": 76 + }, + { + "name": "aggroPoolAmount", + "type_name": "keen::ds::ecs::AggroPoolAmount", + "type_hash": 2508493364, + "data_offset": 77 + }, + { + "name": "enemyDamageFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "enemyHealthFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "enemyStaminaFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "enemyPerceptionRangeFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "bossDamageFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "bossHealthFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "threatBonus", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "pacifyAllEnemies", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 108 + }, + { + "name": "tamingStartleRepercussion", + "type_name": "keen::ds::ecs::TamingStartleRepercussion", + "type_hash": 603339977, + "data_offset": 109 + }, + { + "name": "dayTimeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "nightTimeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminChangeGameSettingsAction", + "type_name_2": "ecs.AdminChangeGameSettingsAction", + "qualified_name": "keen::ds::ecs::AdminChangeGameSettingsAction", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1713858726, + "hash2": 172681143, + "struct_fields": [ + { + "name": "gameSettings", + "type_name": "keen::ds::ecs::GameSettings", + "type_hash": 4190741839, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminApplyInventoryCommand", + "type_name_2": "ecs.AdminApplyInventoryCommand", + "qualified_name": "keen::ds::ecs::AdminApplyInventoryCommand", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1401344480, + "hash2": 4126136241, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "inventoryGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "clearInventories", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSpawnCommand", + "type_name_2": "ecs.AdminSpawnCommand", + "qualified_name": "keen::ds::ecs::AdminSpawnCommand", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 501786699, + "hash2": 728146138, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "optionalDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "count", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 21 + }, + { + "name": "useRoaming", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "showSpawnSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "spawnAsGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "spawnAsFakePlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "followPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "autoDestroyTicks", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 27 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminKillFactionCommand", + "type_name_2": "ecs.AdminKillFactionCommand", + "qualified_name": "keen::ds::ecs::AdminKillFactionCommand", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1398584134, + "hash2": 628873261, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "factionMask", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 2 + }, + { + "name": "playerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemRarity", + "type_name_2": "ItemRarity", + "qualified_name": "keen::ds::ItemRarity", + "referenced_type_name": "keen::ItemRarity", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 1041437011, + "hash2": 766127095, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AdminInventoryCreateAction", + "type_name_2": "ecs.AdminInventoryCreateAction", + "qualified_name": "keen::ds::ecs::AdminInventoryCreateAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2687493347, + "hash2": 2471483918, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 4 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "rarity", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 8 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "createForAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "createFullStack", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "fillEmptyStacks", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "maximizeCharacter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "cleanupInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "flameLevelUpgrade", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminTeleportAction", + "type_name_2": "ecs.AdminTeleportAction", + "qualified_name": "keen::ds::ecs::AdminTeleportAction", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 904961058, + "hash2": 4038976086, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::ds::ecs::Transform", + "type_hash": 2200155012, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSetDayTimeAction", + "type_name_2": "ecs.AdminSetDayTimeAction", + "qualified_name": "keen::ds::ecs::AdminSetDayTimeAction", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1747433070, + "hash2": 891067119, + "struct_fields": [ + { + "name": "syncDaytime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "syncDaytimeTick", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminDestroyItemAction", + "type_name_2": "ecs.AdminDestroyItemAction", + "qualified_name": "keen::ds::ecs::AdminDestroyItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2924427186, + "hash2": 48177226, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSetFlameLevel", + "type_name_2": "ecs.AdminSetFlameLevel", + "qualified_name": "keen::ds::ecs::AdminSetFlameLevel", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2087467718, + "hash2": 2780847942, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "flameLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminSetCharacterLevel", + "type_name_2": "ecs.AdminSetCharacterLevel", + "qualified_name": "keen::ds::ecs::AdminSetCharacterLevel", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 620999510, + "hash2": 3963280932, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminPerkAction", + "type_name_2": "ecs.AdminPerkAction", + "qualified_name": "keen::ds::ecs::AdminPerkAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2864556197, + "hash2": 3956263770, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 4 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminDebugCameraDisplayAction", + "type_name_2": "ecs.AdminDebugCameraDisplayAction", + "qualified_name": "keen::ds::ecs::AdminDebugCameraDisplayAction", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2063779591, + "hash2": 613411796, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeCustomizationAction", + "type_name_2": "ecs.ChangeCustomizationAction", + "qualified_name": "keen::ds::ecs::ChangeCustomizationAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3853994739, + "hash2": 674261881, + "struct_fields": [ + { + "name": "targetSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 8 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarActionType", + "type_name_2": "ecs.FlameAltarActionType", + "qualified_name": "keen::ds::ecs::FlameAltarActionType", + "referenced_type_name": "keen::ecs::FlameAltarActionType", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 1641255463, + "hash2": 180780295, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarAction", + "type_name_2": "ecs.FlameAltarAction", + "qualified_name": "keen::ds::ecs::FlameAltarAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1486309887, + "hash2": 2070732735, + "struct_fields": [ + { + "name": "baseEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::FlameAltarActionType", + "type_hash": 1641255463, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportAction", + "type_name_2": "ecs.TeleportAction", + "qualified_name": "keen::ds::ecs::TeleportAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1942248817, + "hash2": 4162900443, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockSkillAction", + "type_name_2": "ecs.UnlockSkillAction", + "qualified_name": "keen::ds::ecs::UnlockSkillAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 589578331, + "hash2": 1821976122, + "struct_fields": [ + { + "name": "skillId", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 0 + }, + { + "name": "resetSkills", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminUnlearnSkillAction", + "type_name_2": "ecs.AdminUnlearnSkillAction", + "qualified_name": "keen::ds::ecs::AdminUnlearnSkillAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2886420981, + "hash2": 1251830122, + "struct_fields": [ + { + "name": "skillId", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerKnowledgeAction", + "type_name_2": "ecs.TriggerKnowledgeAction", + "qualified_name": "keen::ds::ecs::TriggerKnowledgeAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3515004490, + "hash2": 1032497089, + "struct_fields": [ + { + "name": "dialogOptionId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetPersonalProgressionAction", + "type_name_2": "ecs.SetPersonalProgressionAction", + "qualified_name": "keen::ds::ecs::SetPersonalProgressionAction", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2692457205, + "hash2": 3765248944, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AmbientHelper", + "type_name_2": "ecs.AmbientHelper", + "qualified_name": "keen::ds::ecs::AmbientHelper", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1350279928, + "hash2": 2351831954, + "struct_fields": [ + { + "name": "ambientMask", + "type_name": "keen::ds::AmbientMask", + "type_hash": 256807941, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaypointAction", + "type_name_2": "ecs.WaypointAction", + "qualified_name": "keen::ds::ecs::WaypointAction", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 19457301, + "hash2": 2555050897, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "isPing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 26 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectDialogOptionAction", + "type_name_2": "ecs.SelectDialogOptionAction", + "qualified_name": "keen::ds::ecs::SelectDialogOptionAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 668194363, + "hash2": 2241135210, + "struct_fields": [ + { + "name": "dialogOptionId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "targetNpc", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcInputAction", + "type_name_2": "ecs.NpcInputAction", + "qualified_name": "keen::ds::ecs::NpcInputAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2568613191, + "hash2": 87932984, + "struct_fields": [ + { + "name": "targetNpc", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 0 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeId", + "type_name_2": "RecipeId", + "qualified_name": "keen::ds::RecipeId", + "referenced_type_name": "keen::RecipeId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3806331756, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CraftRecipeAction", + "type_name_2": "ecs.CraftRecipeAction", + "qualified_name": "keen::ds::ecs::CraftRecipeAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1026288834, + "hash2": 3262185078, + "struct_fields": [ + { + "name": "craftingStationId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 4 + }, + { + "name": "recipeAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AutomaticTransferAction", + "type_name_2": "ecs.AutomaticTransferAction", + "qualified_name": "keen::ds::ecs::AutomaticTransferAction", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1074957390, + "hash2": 1981224862, + "struct_fields": [ + { + "name": "craftingStationId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 4 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 8 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectCraftingStationRecipeAction", + "type_name_2": "ecs.SelectCraftingStationRecipeAction", + "qualified_name": "keen::ds::ecs::SelectCraftingStationRecipeAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2762319210, + "hash2": 983844758, + "struct_fields": [ + { + "name": "craftingStationId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkUnlockAction", + "type_name_2": "ecs.PerkUnlockAction", + "qualified_name": "keen::ds::ecs::PerkUnlockAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1040150226, + "hash2": 48177226, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TrashItemAction", + "type_name_2": "ecs.TrashItemAction", + "qualified_name": "keen::ds::ecs::TrashItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2382553851, + "hash2": 48177226, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + }, + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeEquipment", + "type_name_2": "ecs.ChangeEquipment", + "qualified_name": "keen::ds::ecs::ChangeEquipment", + "referenced_type_name": "keen::ecs::ChangeEquipment", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 1783599432, + "hash2": 2143660374, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ChangeEquipmentAction", + "type_name_2": "ecs.ChangeEquipmentAction", + "qualified_name": "keen::ds::ecs::ChangeEquipmentAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1185041330, + "hash2": 2602170915, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 8 + }, + { + "name": "equipmentSlot", + "type_name": "keen::ds::EquipmentSlot", + "type_hash": 253613781, + "data_offset": 10 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::ChangeEquipment", + "type_hash": 1783599432, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SwapEquipmentTarget", + "type_name_2": "ecs.SwapEquipmentTarget", + "qualified_name": "keen::ds::ecs::SwapEquipmentTarget", + "referenced_type_name": "keen::ecs::SwapEquipmentTarget", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 4285618248, + "hash2": 3485183568, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SwapEquipmentSetAction", + "type_name_2": "ecs.SwapEquipmentSetAction", + "qualified_name": "keen::ds::ecs::SwapEquipmentSetAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1106224657, + "hash2": 1741593455, + "struct_fields": [ + { + "name": "targetInventoryId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "target", + "type_name": "keen::ds::ecs::SwapEquipmentTarget", + "type_hash": 4285618248, + "data_offset": 4 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConsumeItemAction", + "type_name_2": "ecs.ConsumeItemAction", + "qualified_name": "keen::ds::ecs::ConsumeItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1348425911, + "hash2": 1231375514, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InspectItemAction", + "type_name_2": "ecs.InspectItemAction", + "qualified_name": "keen::ds::ecs::InspectItemAction", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3765292641, + "hash2": 1231375514, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 0 + }, + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RepairAllItemsAction", + "type_name_2": "ecs.RepairAllItemsAction", + "qualified_name": "keen::ds::ecs::RepairAllItemsAction", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1016293418, + "hash2": 90914664, + "struct_fields": [ + { + "name": "versionData", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CraftingPropDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1009443420, + "hash2": 2898126960, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RequiredCraftingProp", + "type_name_2": "ecs.RequiredCraftingProp", + "qualified_name": "keen::ds::ecs::RequiredCraftingProp", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2199547078, + "hash2": 1049303936, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ObjectReference", + "type_hash": 1009443420, + "data_offset": 0 + }, + { + "name": "craftingPropId", + "type_name": "keen::ds::CraftingPropId", + "type_hash": 3108973213, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactoryStationState", + "type_name_2": "ecs.FactoryStationState", + "qualified_name": "keen::ds::ecs::FactoryStationState", + "referenced_type_name": "keen::ecs::FactoryStationState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1900042735, + "hash2": 2708231925, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FactoryStation", + "type_name_2": "ecs.FactoryStation", + "qualified_name": "keen::ds::ecs::FactoryStation", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3179271770, + "hash2": 1239335492, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::ecs::FactoryStationState", + "type_hash": 1900042735, + "data_offset": 0 + }, + { + "name": "runningRecipe", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 4 + }, + { + "name": "nextRecipe", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 8 + }, + { + "name": "recipeStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactoryStationClient", + "type_name_2": "ecs.FactoryStationClient", + "qualified_name": "keen::ds::ecs::FactoryStationClient", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3601275993, + "hash2": 3455599497, + "struct_fields": [ + { + "name": "soundLoopRunning", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "soundLoopRunningHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiBlueprintShapeSelection", + "type_name_2": "ecs.UiBlueprintShapeSelection", + "qualified_name": "keen::ds::ecs::UiBlueprintShapeSelection", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3444611016, + "hash2": 4072871582, + "struct_fields": [ + { + "name": "selectionIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPlayerInput", + "type_name_2": "ecs.UiPlayerInput", + "qualified_name": "keen::ds::ecs::UiPlayerInput", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3244952945, + "hash2": 1748680067, + "struct_fields": [ + { + "name": "lootSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 0 + }, + { + "name": "blueprintPageSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 1 + }, + { + "name": "blueprintShapeSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 2 + }, + { + "name": "blueprintShapeSelection", + "type_name": "keen::ds::ecs::UiBlueprintShapeSelection", + "type_hash": 3444611016, + "data_offset": 3 + }, + { + "name": "dismantleHoldProgress", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "canCycleInventoryStock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "isInventoryStockCyclingDisabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "isBlueprintPageSelectionModifierActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "isTertiaryActionAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "showTutorial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "showInventoryStock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "showActionbarWheel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "showQuickEquipWheel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "jumpToNotification", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerInput", + "type_name_2": "ecs.ClientOnlyPlayerInput", + "qualified_name": "keen::ds::ecs::ClientOnlyPlayerInput", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3687169608, + "hash2": 729342669, + "struct_fields": [ + { + "name": "actionbarSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 0 + }, + { + "name": "inventoryStockCycleDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 1 + }, + { + "name": "songSelectionDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 2 + }, + { + "name": "zoomInputDelta", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCamera", + "type_name_2": "ecs.ClientCamera", + "qualified_name": "keen::ds::ecs::ClientCamera", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1048827480, + "hash2": 3312312296, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 24 + }, + { + "name": "distance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "fovY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "aspectRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "nearPlane", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "farPlane", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerState", + "type_name_2": "ecs.ClientPlayerState", + "qualified_name": "keen::ds::ecs::ClientPlayerState", + "referenced_type_name": "keen::ecs::ClientPlayerState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1544008075, + "hash2": 1163619290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerStateMask", + "type_name_2": "ecs.ClientPlayerStateMask", + "qualified_name": "keen::ds::ecs::ClientPlayerStateMask", + "referenced_type_name": "keen::ecs::ClientPlayerStateMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3900782367, + "hash2": 1880956916, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerDigitalInput", + "type_name_2": "ecs.PlayerDigitalInput", + "qualified_name": "keen::ds::ecs::PlayerDigitalInput", + "referenced_type_name": "keen::ecs::PlayerDigitalInput", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1184657857, + "hash2": 3332763646, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInputData", + "type_name_2": "ecs.ClientPlayerInputData", + "qualified_name": "keen::ds::ecs::ClientPlayerInputData", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 39, + "primitive_type": "Struct", + "hash1": 4220971834, + "hash2": 3748115871, + "struct_fields": [ + { + "name": "inventoryTransferAction", + "type_name": "keen::ds::ecs::InventoryTransferAction", + "type_hash": 1246688453, + "data_offset": 0 + }, + { + "name": "camera", + "type_name": "keen::ds::ecs::ClientCamera", + "type_hash": 1048827480, + "data_offset": 32 + }, + { + "name": "actionbarSelectionAction", + "type_name": "keen::ds::ecs::ActionbarSelectionAction", + "type_hash": 2601083309, + "data_offset": 96 + }, + { + "name": "sortInventoryAction", + "type_name": "keen::ds::ecs::SortInventoryAction", + "type_hash": 496246826, + "data_offset": 100 + }, + { + "name": "selectSongAction", + "type_name": "keen::ds::ecs::SelectSongAction", + "type_hash": 2730493243, + "data_offset": 108 + }, + { + "name": "inventoryStockCycleAction", + "type_name": "keen::ds::ecs::InventoryStockCycleAction", + "type_hash": 3659326638, + "data_offset": 116 + }, + { + "name": "craftRecipeAction", + "type_name": "keen::ds::ecs::CraftRecipeAction", + "type_hash": 1026288834, + "data_offset": 124 + }, + { + "name": "automaticTransferAction", + "type_name": "keen::ds::ecs::AutomaticTransferAction", + "type_hash": 1074957390, + "data_offset": 136 + }, + { + "name": "selectCraftingStationRecipeAction", + "type_name": "keen::ds::ecs::SelectCraftingStationRecipeAction", + "type_hash": 2762319210, + "data_offset": 152 + }, + { + "name": "changeCustomizationAction", + "type_name": "keen::ds::ecs::ChangeCustomizationAction", + "type_hash": 3853994739, + "data_offset": 164 + }, + { + "name": "teleportAction", + "type_name": "keen::ds::ecs::TeleportAction", + "type_hash": 1942248817, + "data_offset": 180 + }, + { + "name": "unlockSkillAction", + "type_name": "keen::ds::ecs::UnlockSkillAction", + "type_hash": 589578331, + "data_offset": 188 + }, + { + "name": "triggerKnowledgeAction", + "type_name": "keen::ds::ecs::TriggerKnowledgeAction", + "type_hash": 3515004490, + "data_offset": 196 + }, + { + "name": "setPersonalProgressionAction", + "type_name": "keen::ds::ecs::SetPersonalProgressionAction", + "type_hash": 2692457205, + "data_offset": 208 + }, + { + "name": "selectDialogOptionAction", + "type_name": "keen::ds::ecs::SelectDialogOptionAction", + "type_hash": 668194363, + "data_offset": 212 + }, + { + "name": "npcInputAction", + "type_name": "keen::ds::ecs::NpcInputAction", + "type_hash": 2568613191, + "data_offset": 224 + }, + { + "name": "changeEquipmentAction", + "type_name": "keen::ds::ecs::ChangeEquipmentAction", + "type_hash": 1185041330, + "data_offset": 236 + }, + { + "name": "swapEquipmentSetAction", + "type_name": "keen::ds::ecs::SwapEquipmentSetAction", + "type_hash": 1106224657, + "data_offset": 248 + }, + { + "name": "consumeItemAction", + "type_name": "keen::ds::ecs::ConsumeItemAction", + "type_hash": 1348425911, + "data_offset": 256 + }, + { + "name": "inspectItemAction", + "type_name": "keen::ds::ecs::InspectItemAction", + "type_hash": 3765292641, + "data_offset": 268 + }, + { + "name": "repairAllItemsAction", + "type_name": "keen::ds::ecs::RepairAllItemsAction", + "type_hash": 1016293418, + "data_offset": 280 + }, + { + "name": "createBuildingItemAction", + "type_name": "keen::ds::ecs::CreateBuildingItemAction", + "type_hash": 2787711457, + "data_offset": 284 + }, + { + "name": "createNpcItemAction", + "type_name": "keen::ds::ecs::CreateNpcItemAction", + "type_hash": 3316774342, + "data_offset": 292 + }, + { + "name": "perkUnlockAction", + "type_name": "keen::ds::ecs::PerkUnlockAction", + "type_hash": 1040150226, + "data_offset": 300 + }, + { + "name": "trashItemAction", + "type_name": "keen::ds::ecs::TrashItemAction", + "type_hash": 2382553851, + "data_offset": 312 + }, + { + "name": "flameAltarAction", + "type_name": "keen::ds::ecs::FlameAltarAction", + "type_hash": 1486309887, + "data_offset": 324 + }, + { + "name": "waypointAction", + "type_name": "keen::ds::ecs::WaypointAction", + "type_hash": 19457301, + "data_offset": 336 + }, + { + "name": "parryAction", + "type_name": "keen::ds::ecs::ParryAction", + "type_hash": 1804636908, + "data_offset": 368 + }, + { + "name": "kickPlayerAction", + "type_name": "keen::ds::ecs::KickPlayerAction", + "type_hash": 1348682917, + "data_offset": 388 + }, + { + "name": "twitchDropRewardAction", + "type_name": "keen::ds::ecs::TwitchDropRewardAction", + "type_hash": 1375828139, + "data_offset": 396 + }, + { + "name": "movementStick", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 408 + }, + { + "name": "cameraRotationInput", + "type_name": "keen::ds::ecs::ContextualVector2", + "type_hash": 2044976546, + "data_offset": 416 + }, + { + "name": "buildingRotation", + "type_name": "keen::sint16", + "type_hash": 1285853487, + "data_offset": 428 + }, + { + "name": "buildingDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 430 + }, + { + "name": "mask", + "type_name": "keen::ds::ecs::ClientPlayerStateMask", + "type_hash": 3900782367, + "data_offset": 431 + }, + { + "name": "digitalInput", + "type_name": "keen::ds::ecs::PlayerDigitalInput", + "type_hash": 1184657857, + "data_offset": 432 + }, + { + "name": "respawnActionHoldDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 440 + }, + { + "name": "debugEventTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 448 + }, + { + "name": "debugUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 456 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AdminClientPlayerInputData", + "type_name_2": "ecs.AdminClientPlayerInputData", + "qualified_name": "keen::ds::ecs::AdminClientPlayerInputData", + "referenced_type_name": null, + "class_size": 328, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1764925379, + "hash2": 4048814207, + "struct_fields": [ + { + "name": "adminInventoryCreateAction", + "type_name": "keen::ds::ecs::AdminInventoryCreateAction", + "type_hash": 2687493347, + "data_offset": 0 + }, + { + "name": "adminSpawnCommand", + "type_name": "keen::ds::ecs::AdminSpawnCommand", + "type_hash": 501786699, + "data_offset": 16 + }, + { + "name": "adminKillFaction", + "type_name": "keen::ds::ecs::AdminKillFactionCommand", + "type_hash": 1398584134, + "data_offset": 44 + }, + { + "name": "adminTeleport", + "type_name": "keen::ds::ecs::AdminTeleportAction", + "type_hash": 904961058, + "data_offset": 52 + }, + { + "name": "adminApplyInventory", + "type_name": "keen::ds::ecs::AdminApplyInventoryCommand", + "type_hash": 1401344480, + "data_offset": 84 + }, + { + "name": "adminSetDaytime", + "type_name": "keen::ds::ecs::AdminSetDayTimeAction", + "type_hash": 1747433070, + "data_offset": 112 + }, + { + "name": "adminDestroyItemAction", + "type_name": "keen::ds::ecs::AdminDestroyItemAction", + "type_hash": 2924427186, + "data_offset": 136 + }, + { + "name": "adminSetFlameLevel", + "type_name": "keen::ds::ecs::AdminSetFlameLevel", + "type_hash": 2087467718, + "data_offset": 148 + }, + { + "name": "adminSetCharacterLevel", + "type_name": "keen::ds::ecs::AdminSetCharacterLevel", + "type_hash": 620999510, + "data_offset": 152 + }, + { + "name": "adminPerkAction", + "type_name": "keen::ds::ecs::AdminPerkAction", + "type_hash": 2864556197, + "data_offset": 164 + }, + { + "name": "adminDebugCameraDisplayAction", + "type_name": "keen::ds::ecs::AdminDebugCameraDisplayAction", + "type_hash": 2063779591, + "data_offset": 180 + }, + { + "name": "adminUnlearnSkillAction", + "type_name": "keen::ds::ecs::AdminUnlearnSkillAction", + "type_hash": 2886420981, + "data_offset": 184 + }, + { + "name": "adminChangeGameSettingsAction", + "type_name": "keen::ds::ecs::AdminChangeGameSettingsAction", + "type_hash": 1713858726, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DoubleInputBindings", + "type_name_2": "ecs.DoubleInputBindings", + "qualified_name": "keen::ds::ecs::DoubleInputBindings", + "referenced_type_name": "keen::ecs::DoubleInputBindings", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2220342437, + "hash2": 3940555192, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DoubleInputBindingsMask", + "type_name_2": "ecs.DoubleInputBindingsMask", + "qualified_name": "keen::ds::ecs::DoubleInputBindingsMask", + "referenced_type_name": "keen::ecs::DoubleInputBindingsMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4272733225, + "hash2": 2196058218, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInputHistoryEntry", + "type_name_2": "ecs.ClientPlayerInputHistoryEntry", + "qualified_name": "keen::ds::ecs::ClientPlayerInputHistoryEntry", + "referenced_type_name": null, + "class_size": 472, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1668300882, + "hash2": 3416001971, + "struct_fields": [ + { + "name": "frameTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::ds::ecs::ClientPlayerInputData", + "type_hash": 4220971834, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSettingFlags", + "type_name_2": "ecs.PlayerSettingFlags", + "qualified_name": "keen::ds::ecs::PlayerSettingFlags", + "referenced_type_name": "keen::ecs::PlayerSettingFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 720149466, + "hash2": 601841930, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSettingMask", + "type_name_2": "ecs.PlayerSettingMask", + "qualified_name": "keen::ds::ecs::PlayerSettingMask", + "referenced_type_name": "keen::ecs::PlayerSettingMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1823071223, + "hash2": 525424668, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerSettings", + "type_name_2": "ecs.ClientPlayerSettings", + "qualified_name": "keen::ds::ecs::ClientPlayerSettings", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2828643555, + "hash2": 1595488472, + "struct_fields": [ + { + "name": "attackDirectionInput", + "type_name": "keen::ds::AttackDirectionInput", + "type_hash": 1389958292, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::PlayerSettingMask", + "type_hash": 1823071223, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInputToggleConfig", + "type_name_2": "ecs.ClientPlayerInputToggleConfig", + "qualified_name": "keen::ds::ecs::ClientPlayerInputToggleConfig", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2116207244, + "hash2": 3553911399, + "struct_fields": [ + { + "name": "configuredAsToggle", + "type_name": "keen::ds::ecs::PlayerDigitalInput", + "type_hash": 1184657857, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerInput", + "type_name_2": "ecs.ClientPlayerInput", + "qualified_name": "keen::ds::ecs::ClientPlayerInput", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 832, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1188293546, + "hash2": 3827001526, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::ds::ecs::ClientPlayerInputData", + "type_hash": 4220971834, + "data_offset": 0 + }, + { + "name": "adminCommands", + "type_name": "keen::ds::ecs::AdminClientPlayerInputData", + "type_hash": 1764925379, + "data_offset": 464 + }, + { + "name": "toggleConfig", + "type_name": "keen::ds::ecs::ClientPlayerInputToggleConfig", + "type_hash": 2116207244, + "data_offset": 792 + }, + { + "name": "doubleInputBindings", + "type_name": "keen::ds::ecs::DoubleInputBindingsMask", + "type_hash": 4272733225, + "data_offset": 800 + }, + { + "name": "inputMode", + "type_name": "keen::ds::InputMode", + "type_hash": 1909745898, + "data_offset": 801 + }, + { + "name": "clientOnlyPlayerInput", + "type_name": "keen::ds::ecs::ClientOnlyPlayerInput", + "type_hash": 3687169608, + "data_offset": 802 + }, + { + "name": "uiPlayerInput", + "type_name": "keen::ds::ecs::UiPlayerInput", + "type_hash": 3244952945, + "data_offset": 808 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerInput", + "type_name_2": "ecs.PlayerInput", + "qualified_name": "keen::ds::ecs::PlayerInput", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 816, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3497183731, + "hash2": 1215830632, + "struct_fields": [ + { + "name": "serverTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "fromClient", + "type_name": "keen::ds::ecs::ClientPlayerInputData", + "type_hash": 4220971834, + "data_offset": 8 + }, + { + "name": "fromAdminClient", + "type_name": "keen::ds::ecs::AdminClientPlayerInputData", + "type_hash": 1764925379, + "data_offset": 472 + }, + { + "name": "fromClientToggleConfig", + "type_name": "keen::ds::ecs::ClientPlayerInputToggleConfig", + "type_hash": 2116207244, + "data_offset": 800 + }, + { + "name": "fromClientDoubleInputBindings", + "type_name": "keen::ds::ecs::DoubleInputBindingsMask", + "type_hash": 4272733225, + "data_offset": 808 + }, + { + "name": "fromClientInputMode", + "type_name": "keen::ds::InputMode", + "type_hash": 1909745898, + "data_offset": 809 + }, + { + "name": "fromClientSettings", + "type_name": "keen::ds::ecs::ClientPlayerSettings", + "type_hash": 2828643555, + "data_offset": 810 + }, + { + "name": "fromClientIsReadyForGameplay", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 812 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerInputConsumer", + "type_name_2": "ecs.ServerInputConsumer", + "qualified_name": "keen::ds::ecs::ServerInputConsumer", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3504512221, + "hash2": 1912271883, + "struct_fields": [ + { + "name": "consumedInputs", + "type_name": "keen::ds::ecs::PlayerDigitalInput", + "type_hash": 1184657857, + "data_offset": 0 + }, + { + "name": "logicalStates", + "type_name": "keen::ds::ecs::PlayerDigitalInput", + "type_hash": 1184657857, + "data_offset": 8 + }, + { + "name": "totalPreviousInputs", + "type_name": "keen::ds::ecs::PlayerDigitalInput", + "type_hash": 1184657857, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerConsumedPlayerInput", + "type_name_2": "ecs.ServerConsumedPlayerInput", + "qualified_name": "keen::ds::ecs::ServerConsumedPlayerInput", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 112, + "fields_count": 43, + "primitive_type": "Struct", + "hash1": 115799476, + "hash2": 2427458248, + "struct_fields": [ + { + "name": "inputConsumer", + "type_name": "keen::ds::ecs::ServerInputConsumer", + "type_hash": 3504512221, + "data_offset": 0 + }, + { + "name": "consumedInventoryTransferAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 24 + }, + { + "name": "consumedSortInventoryAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 26 + }, + { + "name": "consumedSelectSongAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 28 + }, + { + "name": "consumedCreateBuildingItemAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 30 + }, + { + "name": "consumedCreateNpcItemAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 32 + }, + { + "name": "consumedActionbarSelectionAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 34 + }, + { + "name": "consumedInventoryStockCycleAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 36 + }, + { + "name": "consumedCraftRecipeAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 38 + }, + { + "name": "consumedAutomaticTransferAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 40 + }, + { + "name": "consumedSelectCraftingStationRecipeAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 42 + }, + { + "name": "consumedChangeCustomizationAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 44 + }, + { + "name": "consumedTeleportAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 46 + }, + { + "name": "consumedUnlockSkillAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 48 + }, + { + "name": "consumedTriggerKnowledgeAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 50 + }, + { + "name": "consumedSetPersonalProgressionAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 52 + }, + { + "name": "consumedWaypointAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 54 + }, + { + "name": "consumedSelectDialogOptionAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 56 + }, + { + "name": "consumedNpcInputAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 58 + }, + { + "name": "consumedChangeEquipmentAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 60 + }, + { + "name": "consumedSwapEquipmentSetAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 62 + }, + { + "name": "consumedConsumeItemAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 64 + }, + { + "name": "consumedInspectItemAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 66 + }, + { + "name": "consumedRepairAllItemsActionn", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 68 + }, + { + "name": "consumedPerkUnlockAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 70 + }, + { + "name": "consumedTrashItemAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 72 + }, + { + "name": "consumedFlameAltarAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 74 + }, + { + "name": "consumedParryAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 76 + }, + { + "name": "consumedKickPlayerAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 78 + }, + { + "name": "consumedtwitchDropAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 80 + }, + { + "name": "consumedAdminInventoryCreateAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 82 + }, + { + "name": "consumedAdminSpawnAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 84 + }, + { + "name": "consumedAdminKillFactionAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 86 + }, + { + "name": "consumedAdminTeleport", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 88 + }, + { + "name": "consumedAdminApplyInventory", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 90 + }, + { + "name": "consumedAdminSetDaytime", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 92 + }, + { + "name": "consumedAdminDestroyItemAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 94 + }, + { + "name": "consumedAdminSetFlameLevel", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 96 + }, + { + "name": "consumedAdminSetCharacterLevel", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 98 + }, + { + "name": "consumedAdminPerkAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 100 + }, + { + "name": "consumedAdminDebugCameraDisplayAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 102 + }, + { + "name": "consumedAdminUnlearnSkillAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 104 + }, + { + "name": "consumedAdminChangeGameSettingsAction", + "type_name": "keen::ds::VersionedData", + "type_hash": 428769936, + "data_offset": 106 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InputRepeater", + "type_name_2": "ecs.InputRepeater", + "qualified_name": "keen::ds::ecs::InputRepeater", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3452028448, + "hash2": 2399979493, + "struct_fields": [ + { + "name": "isAfterFirstRepetition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "nextRepeatTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerInputRepeater", + "type_name_2": "ecs.ClientOnlyPlayerInputRepeater", + "qualified_name": "keen::ds::ecs::ClientOnlyPlayerInputRepeater", + "referenced_type_name": "keen::ecs::ClientOnlyPlayerInputRepeater", + "class_size": 752, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2472707372, + "hash2": 2942891781, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerDigitalInput", + "type_name_2": "ecs.ClientOnlyPlayerDigitalInput", + "qualified_name": "keen::ds::ecs::ClientOnlyPlayerDigitalInput", + "referenced_type_name": "keen::ecs::ClientOnlyPlayerDigitalInput", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1417428736, + "hash2": 3301048517, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientInputConsumer", + "type_name_2": "ecs.ClientInputConsumer", + "qualified_name": "keen::ds::ecs::ClientInputConsumer", + "referenced_type_name": null, + "class_size": 768, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2077010233, + "hash2": 2401085444, + "struct_fields": [ + { + "name": "consumedInputs", + "type_name": "keen::ds::ecs::ClientOnlyPlayerDigitalInput", + "type_hash": 1417428736, + "data_offset": 0 + }, + { + "name": "logicalStates", + "type_name": "keen::ds::ecs::ClientOnlyPlayerDigitalInput", + "type_hash": 1417428736, + "data_offset": 8 + }, + { + "name": "inputRepeaters", + "type_name": "keen::ds::ecs::ClientOnlyPlayerInputRepeater", + "type_hash": 2472707372, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerTestInput", + "type_name_2": "ecs.PlayerTestInput", + "qualified_name": "keen::ds::ecs::PlayerTestInput", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1428688019, + "hash2": 1668771032, + "struct_fields": [ + { + "name": "digitalInput", + "type_name": "keen::ds::ecs::PlayerDigitalInput", + "type_hash": 1184657857, + "data_offset": 0 + }, + { + "name": "movementStick", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 8 + }, + { + "name": "cameraDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "ranged_weapon.State", + "qualified_name": "keen::ds::ranged_weapon::State", + "referenced_type_name": "keen::ranged_weapon::State", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 1227405482, + "hash2": 2093806708, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Input", + "type_name_2": "ranged_weapon.Input", + "qualified_name": "keen::ds::ranged_weapon::Input", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1683115183, + "hash2": 2469175838, + "struct_fields": [ + { + "name": "aim", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "charge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "fire", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponParameters", + "type_name_2": "ranged_weapon.WeaponParameters", + "qualified_name": "keen::ds::ranged_weapon::WeaponParameters", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 498659801, + "hash2": 1663379204, + "struct_fields": [ + { + "name": "chargeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "fireDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "isChanneling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "doesNeedAmmunition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "canQueueFireBeforeFullyCharged", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "restartChargeOnAmmunitionSwitch", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StateMachine", + "type_name_2": "ranged_weapon.StateMachine", + "qualified_name": "keen::ds::ranged_weapon::StateMachine", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1495869379, + "hash2": 3530339805, + "struct_fields": [ + { + "name": "currentState", + "type_name": "keen::ds::ranged_weapon::State", + "type_hash": 1227405482, + "data_offset": 0 + }, + { + "name": "stateStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "previousInput", + "type_name": "keen::ds::ranged_weapon::Input", + "type_hash": 1683115183, + "data_offset": 16 + }, + { + "name": "weaponParameters", + "type_name": "keen::ds::ranged_weapon::WeaponParameters", + "type_hash": 498659801, + "data_offset": 24 + }, + { + "name": "isInitialUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "isFireQueued", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerInputType", + "type_name_2": "ecs.PlayerInputType", + "qualified_name": "keen::ds::ecs::PlayerInputType", + "referenced_type_name": "keen::ecs::PlayerInputType", + "class_size": 1, + "fields_count": 40, + "primitive_type": "Typedef", + "hash1": 2112881067, + "hash2": 3022579865, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResourceTypesMask", + "type_name_2": "ResourceTypesMask", + "qualified_name": "keen::ds::ResourceTypesMask", + "referenced_type_name": "keen::ResourceTypesMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1030713656, + "hash2": 188342834, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RangedWeapon", + "type_name_2": "ecs.RangedWeapon", + "qualified_name": "keen::ds::ecs::RangedWeapon", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 128, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1165206203, + "hash2": 3646497974, + "struct_fields": [ + { + "name": "stateMachine", + "type_name": "keen::ds::ranged_weapon::StateMachine", + "type_hash": 1495869379, + "data_offset": 0 + }, + { + "name": "originalTrigger", + "type_name": "keen::ds::ecs::PlayerInputType", + "type_hash": 2112881067, + "data_offset": 56 + }, + { + "name": "currentTrigger", + "type_name": "keen::ds::ecs::PlayerInputType", + "type_hash": 2112881067, + "data_offset": 57 + }, + { + "name": "triggerWeaponInstance", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 60 + }, + { + "name": "triggerAmmunitionInstance", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 80 + }, + { + "name": "missingResourceMask", + "type_name": "keen::ds::ResourceTypesMask", + "type_hash": 1030713656, + "data_offset": 100 + }, + { + "name": "lastMissingResourceEvent", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "lastVisualAmmoItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 112 + }, + { + "name": "visualAmmoItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 116 + }, + { + "name": "visualAmmoEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 120 + }, + { + "name": "shallPlayerTurnTowardsTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + }, + { + "name": "previousSneakState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkRangedWeapon", + "type_name_2": "ecs.NetworkRangedWeapon", + "qualified_name": "keen::ds::ecs::NetworkRangedWeapon", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 72, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1873843001, + "hash2": 2486915808, + "struct_fields": [ + { + "name": "currentState", + "type_name": "keen::ds::ranged_weapon::State", + "type_hash": 1227405482, + "data_offset": 0 + }, + { + "name": "weaponParameters", + "type_name": "keen::ds::ranged_weapon::WeaponParameters", + "type_hash": 498659801, + "data_offset": 8 + }, + { + "name": "stateStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "weaponInstance", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 40 + }, + { + "name": "ammunitionItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 60 + }, + { + "name": "shallPlayerTurnTowardsTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientRangedWeapon", + "type_name_2": "ecs.ClientRangedWeapon", + "qualified_name": "keen::ds::ecs::ClientRangedWeapon", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 420002892, + "hash2": 3284462679, + "struct_fields": [ + { + "name": "previousState", + "type_name": "keen::ds::ranged_weapon::State", + "type_hash": 1227405482, + "data_offset": 0 + }, + { + "name": "isInitialUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RangedWeaponRender", + "type_name_2": "ecs.RangedWeaponRender", + "qualified_name": "keen::ds::ecs::RangedWeaponRender", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1931382863, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpellChargeSfx", + "type_name_2": "ecs.SpellChargeSfx", + "qualified_name": "keen::ds::ecs::SpellChargeSfx", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 885403717, + "hash2": 2339101629, + "struct_fields": [ + { + "name": "buildUpChargeSfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "sustainChargeSfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "hasHandledFullyCharged", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerFlags", + "type_name_2": "ecs.PlayerFlags", + "qualified_name": "keen::ds::ecs::PlayerFlags", + "referenced_type_name": "keen::ecs::PlayerFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2836874004, + "hash2": 272247963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerStateMask", + "type_name_2": "ecs.PlayerStateMask", + "qualified_name": "keen::ds::ecs::PlayerStateMask", + "referenced_type_name": "keen::ecs::PlayerStateMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 766672638, + "hash2": 12753291, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParryProjectile", + "type_name_2": "ecs.ParryProjectile", + "qualified_name": "keen::ds::ecs::ParryProjectile", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3527334181, + "hash2": 979974414, + "struct_fields": [ + { + "name": "projectileEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "anticipationSequenceResourceId", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerState", + "type_name_2": "ecs.PlayerState", + "qualified_name": "keen::ds::ecs::PlayerState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2794450510, + "hash2": 1825301774, + "struct_fields": [ + { + "name": "previousActorState", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 0 + }, + { + "name": "lastSprintEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "lastBlockEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "noMovementInputDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "outsideSafeZoneCountdown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "sprintTurnSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "playerStateMask", + "type_name": "keen::ds::ecs::PlayerStateMask", + "type_hash": 766672638, + "data_offset": 44 + }, + { + "name": "dungeonZoneMapMarkerId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 48 + }, + { + "name": "rangedWeaponArmedViaInput", + "type_name": "keen::ds::ecs::PlayerInputType", + "type_hash": 2112881067, + "data_offset": 52 + }, + { + "name": "parryProjectile", + "type_name": "keen::ds::ecs::ParryProjectile", + "type_hash": 3527334181, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerTracking", + "type_name_2": "ecs.PlayerTracking", + "qualified_name": "keen::ds::ecs::PlayerTracking", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2880585556, + "hash2": 2119726614, + "struct_fields": [ + { + "name": "levelUpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "playtimeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerDebugServer", + "type_name_2": "ecs.PlayerDebugServer", + "qualified_name": "keen::ds::ecs::PlayerDebugServer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2620794171, + "hash2": 4028386978, + "struct_fields": [ + { + "name": "debugEventTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "clientUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "serverRecvTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "serverUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerDebugClient", + "type_name_2": "ecs.PlayerDebugClient", + "qualified_name": "keen::ds::ecs::PlayerDebugClient", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3826741599, + "hash2": 1119680274, + "struct_fields": [ + { + "name": "debugEventTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "debugEventDelta", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "debugEventMappingDelta", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientPlayerStaminaHints", + "type_name_2": "ecs.ClientPlayerStaminaHints", + "qualified_name": "keen::ds::ecs::ClientPlayerStaminaHints", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1916887391, + "hash2": 3262356032, + "struct_fields": [ + { + "name": "firstSprintUtteranceDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "sprintUtteranceInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "nextUtterance", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerQuestProgressionMode", + "type_name_2": "ecs.PlayerQuestProgressionMode", + "qualified_name": "keen::ds::ecs::PlayerQuestProgressionMode", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2283037323, + "hash2": 3948742858, + "struct_fields": [ + { + "name": "isInPersonalProgressionMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "changeCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerPinnedRecipes", + "type_name_2": "ecs.PlayerPinnedRecipes", + "qualified_name": "keen::ds::ecs::PlayerPinnedRecipes", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1485562086, + "hash2": 3214703581, + "struct_fields": [ + { + "name": "pinnedRecipe", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 0 + }, + { + "name": "questEntryId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerWaypoint", + "type_name_2": "ecs.PlayerWaypoint", + "qualified_name": "keen::ds::ecs::PlayerWaypoint", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3663602434, + "hash2": 3878729755, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "waypointPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillState", + "type_name_2": "ecs.SkillState", + "qualified_name": "keen::ds::ecs::SkillState", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1229653846, + "hash2": 3836063285, + "struct_fields": [ + { + "name": "impcatEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "isUnlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillUnlockMask", + "type_name_2": "ecs.SkillUnlockMask", + "qualified_name": "keen::ds::ecs::SkillUnlockMask", + "referenced_type_name": "keen::ecs::SkillUnlockMask", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3158286041, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedSkillsMask", + "type_name_2": "ecs.UnlockedSkillsMask", + "qualified_name": "keen::ds::ecs::UnlockedSkillsMask", + "referenced_type_name": "keen::ecs::UnlockedSkillsMask", + "class_size": 32, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2823679547, + "hash2": 1824641101, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SkillNodeId[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::SkillNodeId", + "class_size": 1024, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 1885973088, + "hash2": 348560963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.EntityId[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::EntityId", + "class_size": 1024, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 4078747329, + "hash2": 797999867, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedSkillNodes", + "type_name_2": "ecs.UnlockedSkillNodes", + "qualified_name": "keen::ds::ecs::UnlockedSkillNodes", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2052, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 475406659, + "hash2": 3727423517, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::StaticArray", + "type_hash": 1885973088, + "data_offset": 0 + }, + { + "name": "activeSkillImpacts", + "type_name": "keen::StaticArray", + "type_hash": 4078747329, + "data_offset": 1024 + }, + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerSkillsUi", + "type_name_2": "ecs.PlayerSkillsUi", + "qualified_name": "keen::ds::ecs::PlayerSkillsUi", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1922442189, + "hash2": 2999585717, + "struct_fields": [ + { + "name": "skillUnlockMasks", + "type_name": "keen::ds::ecs::UnlockedSkillsMask", + "type_hash": 2823679547, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerGroupMember", + "type_name_2": "ecs.PlayerGroupMember", + "qualified_name": "keen::ds::ecs::PlayerGroupMember", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3379209478, + "hash2": 3850974768, + "struct_fields": [ + { + "name": "lastUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.PlayerGroupMember[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::PlayerGroupMember", + "class_size": 256, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 538762291, + "hash2": 648074390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerPlayerGroupMembers", + "type_name_2": "ecs.ServerPlayerGroupMembers", + "qualified_name": "keen::ds::ecs::ServerPlayerGroupMembers", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 256, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2726471120, + "hash2": 2697474746, + "struct_fields": [ + { + "name": "groupMembers", + "type_name": "keen::StaticArray", + "type_hash": 538762291, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickingTarget", + "type_name_2": "ecs.PickingTarget", + "qualified_name": "keen::ds::ecs::PickingTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 752303378, + "hash2": 3859034701, + "struct_fields": [ + { + "name": "rayQueryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 0 + }, + { + "name": "nextUpdate", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CursorFlag", + "type_name_2": "ecs.CursorFlag", + "qualified_name": "keen::ds::ecs::CursorFlag", + "referenced_type_name": "keen::ecs::CursorFlag", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4260639476, + "hash2": 2519322502, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CursorFlags", + "type_name_2": "ecs.CursorFlags", + "qualified_name": "keen::ds::ecs::CursorFlags", + "referenced_type_name": "keen::ecs::CursorFlags", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1315670661, + "hash2": 2086049752, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.QueryId[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::QueryId", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3269036601, + "hash2": 2013749191, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerCursor", + "type_name_2": "ecs.ServerCursor", + "qualified_name": "keen::ds::ecs::ServerCursor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 120, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3047715393, + "hash2": 935848920, + "struct_fields": [ + { + "name": "rayQueryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 0 + }, + { + "name": "placementBlockerQueryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 4 + }, + { + "name": "solidCollisionsQueryIds", + "type_name": "keen::StaticArray", + "type_hash": 3269036601, + "data_offset": 8 + }, + { + "name": "enemiesQueryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 16 + }, + { + "name": "pointerInfoPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "hoveredVoxelMaterialId", + "type_name": "keen::ds::VoxelMaterialId", + "type_hash": 2701508669, + "data_offset": 32 + }, + { + "name": "secondaryActionTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 40 + }, + { + "name": "randomYawAngleOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "snapToPlaneDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "hoverVoxelBlueprintOverlayEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientServerCursor", + "type_name_2": "ecs.ClientServerCursor", + "qualified_name": "keen::ds::ecs::ClientServerCursor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 136, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 264710990, + "hash2": 2543131583, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "cursorEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 56 + }, + { + "name": "hoveredEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 60 + }, + { + "name": "selectedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 64 + }, + { + "name": "selectedEntityDismantleMethod", + "type_name": "keen::ds::ecs::DismantleMethod", + "type_hash": 1951382894, + "data_offset": 68 + }, + { + "name": "isBlueprintSelected", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 69 + }, + { + "name": "isDismantleAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 70 + }, + { + "name": "hoverPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "hoverNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 84 + }, + { + "name": "currentBuildingItemInstance", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 96 + }, + { + "name": "previousBuildingItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 116 + }, + { + "name": "effectivePlacementVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "maxPlacementVolume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "cursorFlagsPrimary", + "type_name": "keen::ds::ecs::CursorFlags", + "type_hash": 1315670661, + "data_offset": 128 + }, + { + "name": "cursorFlagsSecondary", + "type_name": "keen::ds::ecs::CursorFlags", + "type_hash": 1315670661, + "data_offset": 130 + }, + { + "name": "wasLastActionSecondary", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "isSnappingToBoxes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 133 + }, + { + "name": "isNearBuildingZone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 134 + }, + { + "name": "canUndoBuildingAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 135 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCursorVfx", + "type_name_2": "ecs.ClientCursorVfx", + "qualified_name": "keen::ds::ecs::ClientCursorVfx", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3818726815, + "hash2": 197895696, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "fxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.ClientCursorVfx[256]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::ClientCursorVfx", + "class_size": 4096, + "fields_count": 256, + "primitive_type": "StaticArray", + "hash1": 1272005090, + "hash2": 4116585435, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientCursor", + "type_name_2": "ecs.ClientCursor", + "qualified_name": "keen::ds::ecs::ClientCursor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4120, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1668516261, + "hash2": 2478586687, + "struct_fields": [ + { + "name": "hoveredEntityHightlightPhase", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "previousSelectedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "previousSelectedEntityTintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + }, + { + "name": "previousBuildingItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "highlightColorValid", + "type_name": "keen::ds::HighlightColorIndex", + "type_hash": 624860412, + "data_offset": 20 + }, + { + "name": "highlightColorInvalid", + "type_name": "keen::ds::HighlightColorIndex", + "type_hash": 624860412, + "data_offset": 21 + }, + { + "name": "highlightColorMuted", + "type_name": "keen::ds::HighlightColorIndex", + "type_hash": 624860412, + "data_offset": 22 + }, + { + "name": "blueprintHoverVfx", + "type_name": "keen::StaticArray", + "type_hash": 1272005090, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Terraforming", + "type_name_2": "ecs.Terraforming", + "qualified_name": "keen::ds::ecs::Terraforming", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2065434632, + "hash2": 2049236799, + "struct_fields": [ + { + "name": "snappingQueryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "temporaryMiningQueryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxZone", + "type_name_2": "ecs.VfxZone", + "qualified_name": "keen::ds::ecs::VfxZone", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 937402418, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Destructible", + "type_name_2": "ecs.Destructible", + "qualified_name": "keen::ds::ecs::Destructible", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2482630614, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeParams", + "type_name_2": "ecs.CameraShakeParams", + "qualified_name": "keen::ds::ecs::CameraShakeParams", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2409377737, + "hash2": 3423219450, + "struct_fields": [ + { + "name": "trauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierComponent", + "type_name_2": "ecs.NotifierComponent", + "qualified_name": "keen::ds::ecs::NotifierComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 92, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2604078761, + "hash2": 2868825592, + "struct_fields": [ + { + "name": "notifierOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 0 + }, + { + "name": "notifier", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 40 + }, + { + "name": "cameraShake", + "type_name": "keen::ds::ecs::CameraShakeParams", + "type_hash": 2409377737, + "data_offset": 56 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 60 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnCreate", + "type_name_2": "ecs.OnCreate", + "qualified_name": "keen::ds::ecs::OnCreate", + "referenced_type_name": "keen::ds::ecs::NotifierComponent", + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1420241457, + "hash2": 4162417702, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 92 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 93 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnDestroy", + "type_name_2": "ecs.OnDestroy", + "qualified_name": "keen::ds::ecs::OnDestroy", + "referenced_type_name": "keen::ds::ecs::NotifierComponent", + "class_size": 108, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1621757065, + "hash2": 4152884178, + "struct_fields": [ + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntityOnDestroy", + "type_name_2": "ecs.SpawnEntityOnDestroy", + "qualified_name": "keen::ds::ecs::SpawnEntityOnDestroy", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1799271329, + "hash2": 3062228885, + "struct_fields": [ + { + "name": "spawnEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "keepDespawnLink", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "triggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyEntityOnParentRespawn", + "type_name_2": "ecs.DestroyEntityOnParentRespawn", + "qualified_name": "keen::ds::ecs::DestroyEntityOnParentRespawn", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4273391416, + "hash2": 3164993309, + "struct_fields": [ + { + "name": "checkParent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalId", + "type_name_2": "FogRemovalId", + "qualified_name": "keen::ds::FogRemovalId", + "referenced_type_name": "keen::FogRemovalId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 935929886, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalIdComponent", + "type_name_2": "ecs.FogRemovalIdComponent", + "qualified_name": "keen::ds::ecs::FogRemovalIdComponent", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3462993464, + "hash2": 437749519, + "struct_fields": [ + { + "name": "fogRemovalId", + "type_name": "keen::ds::FogRemovalId", + "type_hash": 935929886, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RemoveFog", + "type_name_2": "ecs.RemoveFog", + "qualified_name": "keen::ds::ecs::RemoveFog", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1568735712, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EasingType", + "type_name_2": "ecs.EasingType", + "qualified_name": "keen::ds::ecs::EasingType", + "referenced_type_name": "keen::ecs::EasingType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3050222317, + "hash2": 378117323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Dissolve", + "type_name_2": "ecs.Dissolve", + "qualified_name": "keen::ds::ecs::Dissolve", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2186139767, + "hash2": 1200226039, + "struct_fields": [ + { + "name": "rotationOriginOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "rotationAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "calculateOffsets", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "dissolveEasing", + "type_name": "keen::ds::ecs::EasingType", + "type_hash": 3050222317, + "data_offset": 29 + }, + { + "name": "translationEasing", + "type_name": "keen::ds::ecs::EasingType", + "type_hash": 3050222317, + "data_offset": 30 + }, + { + "name": "rotationEasing", + "type_name": "keen::ds::ecs::EasingType", + "type_hash": 3050222317, + "data_offset": 31 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicDissolve", + "type_name_2": "ecs.DynamicDissolve", + "qualified_name": "keen::ds::ecs::DynamicDissolve", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2392949574, + "hash2": 1037136159, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "alignmentTarget", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "started", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientDissolve", + "type_name_2": "ecs.ClientDissolve", + "qualified_name": "keen::ds::ecs::ClientDissolve", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4235163564, + "hash2": 4049666645, + "struct_fields": [ + { + "name": "renderModelUpdateCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "modelCenter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "boundingBoxHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FadeState", + "type_name_2": "ecs.FadeState", + "qualified_name": "keen::ds::ecs::FadeState", + "referenced_type_name": "keen::ecs::FadeState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1975380563, + "hash2": 3092217416, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fade", + "type_name_2": "ecs.Fade", + "qualified_name": "keen::ds::ecs::Fade", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2180212078, + "hash2": 3255918685, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "dissolveMaskOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "dissolveMaskRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "initialState", + "type_name": "keen::ds::ecs::FadeState", + "type_hash": 1975380563, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicFade", + "type_name_2": "ecs.DynamicFade", + "qualified_name": "keen::ds::ecs::DynamicFade", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3263033135, + "hash2": 1242547166, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::FadeState", + "type_hash": 1975380563, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorInput", + "type_name_2": "ecs.ActorInput", + "qualified_name": "keen::ds::ecs::ActorInput", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 280, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1007673743, + "hash2": 3240873457, + "struct_fields": [ + { + "name": "defaultAnimationStateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 0 + }, + { + "name": "triggerContext", + "type_name": "keen::ds::actor::ActionSequenceTriggerContext", + "type_hash": 1751864012, + "data_offset": 8 + }, + { + "name": "triggerCallCounter", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 232 + }, + { + "name": "sequenceTriggerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 236 + }, + { + "name": "desiredLocalMoveInput", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 240 + }, + { + "name": "desiredWorldMoveInput", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 252 + }, + { + "name": "desiredWorldLookDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 264 + }, + { + "name": "locomotionSpeed", + "type_name": "keen::ds::ecs::LocomotionSpeedSelector", + "type_hash": 2850176745, + "data_offset": 276 + }, + { + "name": "lastLocomotionSpeed", + "type_name": "keen::ds::ecs::LocomotionSpeedSelector", + "type_hash": 2850176745, + "data_offset": 277 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlapSetup", + "type_name_2": "ecs.FlapSetup", + "qualified_name": "keen::ds::ecs::FlapSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2710976956, + "hash2": 2206619912, + "struct_fields": [ + { + "name": "minFlapDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxFlapDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "minFlapPauseDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "maxFlapPauseDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Flying", + "type_name_2": "ecs.Flying", + "qualified_name": "keen::ds::ecs::Flying", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 160, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3554581663, + "hash2": 2507013939, + "struct_fields": [ + { + "name": "maxAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "startFlyingSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 4 + }, + { + "name": "stopFlyingSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 20 + }, + { + "name": "flyingSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 36 + }, + { + "name": "hoverSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 52 + }, + { + "name": "flappingSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 68 + }, + { + "name": "hitInAirSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 84 + }, + { + "name": "stuckOnGroundSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 100 + }, + { + "name": "flapSetup", + "type_name": "keen::ds::ecs::FlapSetup", + "type_hash": 2710976956, + "data_offset": 120 + }, + { + "name": "useFlyAnimationHandling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 152 + }, + { + "name": "fallOnHit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 153 + }, + { + "name": "fallOnParryStun", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 154 + }, + { + "name": "flyAfterSpawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 155 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlyingState", + "type_name_2": "ecs.FlyingState", + "qualified_name": "keen::ds::ecs::FlyingState", + "referenced_type_name": "keen::ecs::FlyingState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 872621008, + "hash2": 2250459297, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicFlying", + "type_name_2": "ecs.DynamicFlying", + "qualified_name": "keen::ds::ecs::DynamicFlying", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 975830338, + "hash2": 1068673113, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::ecs::FlyingState", + "type_hash": 872621008, + "data_offset": 0 + }, + { + "name": "nextCheckFlappingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "isSequenceHandlingPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "wasSequenceHandlingPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "isFlappingAllowed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "fallOnDeath", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CSPDummy", + "type_name_2": "ecs.CSPDummy", + "qualified_name": "keen::ds::ecs::CSPDummy", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 194778130, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlotAttachmentBase", + "type_name_2": "ecs.SlotAttachmentBase", + "qualified_name": "keen::ds::ecs::SlotAttachmentBase", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4140656092, + "hash2": 3328289108, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 0 + }, + { + "name": "attachmentSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 40 + }, + { + "name": "attachedToEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerSlotAttachment", + "type_name_2": "ecs.ServerSlotAttachment", + "qualified_name": "keen::ds::ecs::ServerSlotAttachment", + "referenced_type_name": "keen::ds::ecs::SlotAttachmentBase", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2285674058, + "hash2": 1107650372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlotAttachment", + "type_name_2": "ecs.SlotAttachment", + "qualified_name": "keen::ds::ecs::SlotAttachment", + "referenced_type_name": "keen::ds::ecs::SlotAttachmentBase", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1290360561, + "hash2": 1107650372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Friction", + "type_name_2": "ecs.Friction", + "qualified_name": "keen::ds::ecs::Friction", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3485056234, + "hash2": 3944505628, + "struct_fields": [ + { + "name": "isSliding", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "frictionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RotationSpeedEntry", + "type_name_2": "ecs.RotationSpeedEntry", + "qualified_name": "keen::ds::ecs::RotationSpeedEntry", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3907823375, + "hash2": 3852987658, + "struct_fields": [ + { + "name": "rotationSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "interpolationMode", + "type_name": "keen::ds::actor::InterpolationMode", + "type_hash": 2215548277, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActorRotation", + "type_name_2": "ecs.ActorRotation", + "qualified_name": "keen::ds::ecs::ActorRotation", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 84, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3706028747, + "hash2": 3222772194, + "struct_fields": [ + { + "name": "standingRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 0 + }, + { + "name": "movingRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 8 + }, + { + "name": "runningRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 16 + }, + { + "name": "slidingRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 24 + }, + { + "name": "inAirRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 32 + }, + { + "name": "dodgingAroundTargetRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 40 + }, + { + "name": "hookPullingRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 48 + }, + { + "name": "hookSwingingRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 56 + }, + { + "name": "climbingRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 64 + }, + { + "name": "gliderRotationSpeed", + "type_name": "keen::ds::ecs::RotationSpeedEntry", + "type_hash": 3907823375, + "data_offset": 72 + }, + { + "name": "minLinearAxisRotationAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionState", + "type_name_2": "ecs.LocomotionState", + "qualified_name": "keen::ds::ecs::LocomotionState", + "referenced_type_name": "keen::ecs::LocomotionState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1588346722, + "hash2": 1314642622, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionFlags", + "type_name_2": "ecs.LocomotionFlags", + "qualified_name": "keen::ds::ecs::LocomotionFlags", + "referenced_type_name": "keen::ecs::LocomotionFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2921213800, + "hash2": 3125038636, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionMask", + "type_name_2": "ecs.LocomotionMask", + "qualified_name": "keen::ds::ecs::LocomotionMask", + "referenced_type_name": "keen::ecs::LocomotionMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2375631341, + "hash2": 2735265409, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionAccelerationConfig", + "type_name_2": "ecs.LocomotionAccelerationConfig", + "qualified_name": "keen::ds::ecs::LocomotionAccelerationConfig", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2237228491, + "hash2": 1060817200, + "struct_fields": [ + { + "name": "minTurnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxWalkAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxRunAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxSprintAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "groundFrictionSusceptibility", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionSlideConfig", + "type_name_2": "ecs.LocomotionSlideConfig", + "qualified_name": "keen::ds::ecs::LocomotionSlideConfig", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2841731100, + "hash2": 2733284437, + "struct_fields": [ + { + "name": "downhillAccelerationFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "downhillAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lateralAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "uphillAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "maxUphillSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionTurnConfig", + "type_name_2": "ecs.LocomotionTurnConfig", + "qualified_name": "keen::ds::ecs::LocomotionTurnConfig", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1997049960, + "hash2": 2176611933, + "struct_fields": [ + { + "name": "useTurnSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "minTurnAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "minVelocity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "minRequiredVelocityDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "minTimeSinceRequiredVelocityWasReached", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "leftTurnSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 32 + }, + { + "name": "rightTurnSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocomotionAvoidHolesConfig", + "type_name_2": "ecs.LocomotionAvoidHolesConfig", + "qualified_name": "keen::ds::ecs::LocomotionAvoidHolesConfig", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1091954395, + "hash2": 4293480002, + "struct_fields": [ + { + "name": "avoidHoles", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "checkLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minHoleDepth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Locomotion", + "type_name_2": "ecs.Locomotion", + "qualified_name": "keen::ds::ecs::Locomotion", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4215078289, + "hash2": 1086545310, + "struct_fields": [ + { + "name": "accelerationConfig", + "type_name": "keen::ds::ecs::LocomotionAccelerationConfig", + "type_hash": 2237228491, + "data_offset": 0 + }, + { + "name": "slideConfig", + "type_name": "keen::ds::ecs::LocomotionSlideConfig", + "type_hash": 2841731100, + "data_offset": 20 + }, + { + "name": "turnConfig", + "type_name": "keen::ds::ecs::LocomotionTurnConfig", + "type_hash": 1997049960, + "data_offset": 40 + }, + { + "name": "avoidHolesConfig", + "type_name": "keen::ds::ecs::LocomotionAvoidHolesConfig", + "type_hash": 1091954395, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JumpRuntimeType", + "type_name_2": "ecs.JumpRuntimeType", + "qualified_name": "keen::ds::ecs::JumpRuntimeType", + "referenced_type_name": "keen::ecs::JumpRuntimeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3621474000, + "hash2": 1734680312, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GliderTurbulence", + "type_name_2": "ecs.GliderTurbulence", + "qualified_name": "keen::ds::ecs::GliderTurbulence", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 54993600, + "hash2": 774772254, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "remainingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicLocomotion", + "type_name_2": "ecs.DynamicLocomotion", + "qualified_name": "keen::ds::ecs::DynamicLocomotion", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 31, + "primitive_type": "Struct", + "hash1": 3224201976, + "hash2": 633850606, + "struct_fields": [ + { + "name": "inputVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "floorNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "slopeNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "movementFactors", + "type_name": "keen::ds::actor::MovementFactors", + "type_hash": 1831018167, + "data_offset": 36 + }, + { + "name": "rootMotion", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "rootMotionMode", + "type_name": "keen::ds::animationgraph::RootMotionMask", + "type_hash": 2820560387, + "data_offset": 60 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::LocomotionState", + "type_hash": 1588346722, + "data_offset": 61 + }, + { + "name": "lastStateSwitchTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "slideDetected", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "takeOffTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "spheroidCollisionDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "rotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "isGliderForwardInputDeliberate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "isNearGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 101 + }, + { + "name": "wasTurning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 102 + }, + { + "name": "sprintJumpRunUpTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "airwolfTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::LocomotionMask", + "type_hash": 2375631341, + "data_offset": 120 + }, + { + "name": "isFastEnoughForTurn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + }, + { + "name": "speedForTurnSequenceReachedStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "speedForTurnSequenceReachedEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + }, + { + "name": "slideJumpAirControlSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 144 + }, + { + "name": "jumpType", + "type_name": "keen::ds::actor::JumpType", + "type_hash": 2555313004, + "data_offset": 148 + }, + { + "name": "jumpCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 149 + }, + { + "name": "previousJumpTakeOffPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 152 + }, + { + "name": "airControlMinVelocity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 176 + }, + { + "name": "airControlMaxVelocity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 180 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 184 + }, + { + "name": "effectiveMovementMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 188 + }, + { + "name": "gliderUpstreamFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 192 + }, + { + "name": "gliderTurbulence", + "type_name": "keen::ds::ecs::GliderTurbulence", + "type_hash": 54993600, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkLocomotion", + "type_name_2": "ecs.NetworkLocomotion", + "qualified_name": "keen::ds::ecs::NetworkLocomotion", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 52, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 1460344711, + "hash2": 336855655, + "struct_fields": [ + { + "name": "hasSlideAnimations", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "hasJumpAnimations", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "hasWalkAnimations", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "hasMoveAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "leanTowardsMoveDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "leanFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "maxLeanYawAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "maxLeanPitchAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "leanFadeOutSpeedFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "minLeanYawInterpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "maxLeanYawInterpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "leanYawSpeedInterpolationStartAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "leanYawSpeedInterpolationEndAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "leanPitchInterpolationSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "leanYawStartAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "pitchAngleOffset", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNetworkLocomotion", + "type_name_2": "ecs.DynamicNetworkLocomotion", + "qualified_name": "keen::ds::ecs::DynamicNetworkLocomotion", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2420180632, + "hash2": 1569734219, + "struct_fields": [ + { + "name": "floorNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "desiredWorldLookDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "desiredLeanDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::LocomotionState", + "type_hash": 1588346722, + "data_offset": 36 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::LocomotionMask", + "type_hash": 2375631341, + "data_offset": 37 + }, + { + "name": "currentIdleAnimation", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 40 + }, + { + "name": "currentWalkAnimation", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 44 + }, + { + "name": "gliderTurbulenceScreenShakeIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientLocomotion", + "type_name_2": "ecs.ClientLocomotion", + "qualified_name": "keen::ds::ecs::ClientLocomotion", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3851117350, + "hash2": 328257968, + "struct_fields": [ + { + "name": "runSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "sprintSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "currentLocalRollAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "currentLocalPitchAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "currentLocalYawAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "currentLeanYawAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "currentLeanPitchAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "lastAnimationInputSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GliderUpstreamZone", + "type_name_2": "ecs.GliderUpstreamZone", + "qualified_name": "keen::ds::ecs::GliderUpstreamZone", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2453417426, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JumpParameters", + "type_name_2": "ecs.JumpParameters", + "qualified_name": "keen::ds::ecs::JumpParameters", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1855505960, + "hash2": 2895802067, + "struct_fields": [ + { + "name": "jumpDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "jumpHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "launchOffset", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlopeAlignment", + "type_name_2": "ecs.SlopeAlignment", + "qualified_name": "keen::ds::ecs::SlopeAlignment", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2054304208, + "hash2": 635776506, + "struct_fields": [ + { + "name": "defaultLongitudinalFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "defaultLateralFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "currentLongitudinalFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "currentLateralFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseActor", + "type_name_2": "ecs.BaseActor", + "qualified_name": "keen::ds::ecs::BaseActor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2088, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2570563026, + "hash2": 1067618792, + "struct_fields": [ + { + "name": "currentAction", + "type_name": "keen::ds::actor::ActionSequence", + "type_hash": 418130347, + "data_offset": 0 + }, + { + "name": "currentState", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 2048 + }, + { + "name": "currentAbilityMask", + "type_name": "keen::ds::actor::AbilityMask", + "type_hash": 3023355518, + "data_offset": 2056 + }, + { + "name": "sequenceRuntimeId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 2064 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerActionSequenceData", + "type_name_2": "ecs.ServerActionSequenceData", + "qualified_name": "keen::ds::ecs::ServerActionSequenceData", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 4009463876, + "hash2": 4207021329, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 0 + }, + { + "name": "signalStates", + "type_name": "keen::ds::actor::SignalStates", + "type_hash": 1115169014, + "data_offset": 24 + }, + { + "name": "colliderModeOverride", + "type_name": "keen::ds::actor::ColliderModeData", + "type_hash": 3688854231, + "data_offset": 152 + }, + { + "name": "rotationInterpolation", + "type_name": "keen::ds::actor::RotationInterpolation", + "type_hash": 1629416548, + "data_offset": 168 + }, + { + "name": "rotationInterpolationStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 224 + }, + { + "name": "rotationInterpolationEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 232 + }, + { + "name": "animationStateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 240 + }, + { + "name": "animationRootMotionMask", + "type_name": "keen::ds::animationgraph::RootMotionMask", + "type_hash": 2820560387, + "data_offset": 244 + }, + { + "name": "lastSpawnedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 248 + }, + { + "name": "stopEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 252 + }, + { + "name": "positionLerpEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "positionLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 272 + }, + { + "name": "positionLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 280 + }, + { + "name": "orientationLerpEnd", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 288 + }, + { + "name": "orientationLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 304 + }, + { + "name": "orientationLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 312 + }, + { + "name": "movementFactors", + "type_name": "keen::ds::actor::MovementFactors", + "type_hash": 1831018167, + "data_offset": 320 + }, + { + "name": "movementFactorsLerpStart", + "type_name": "keen::ds::actor::MovementFactors", + "type_hash": 1831018167, + "data_offset": 332 + }, + { + "name": "movementFactorsLerpEnd", + "type_name": "keen::ds::actor::MovementFactors", + "type_hash": 1831018167, + "data_offset": 344 + }, + { + "name": "movementFactorsLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 360 + }, + { + "name": "movementFactorsLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 368 + }, + { + "name": "rotationSpeedFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 376 + }, + { + "name": "rotationFactorLerpStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 380 + }, + { + "name": "rotationFactorLerpEnd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 384 + }, + { + "name": "rotationFactorLerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 392 + }, + { + "name": "rotationFactorLerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 400 + }, + { + "name": "gravityModifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 408 + }, + { + "name": "isGravityModified", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 412 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Actor", + "type_name_2": "ecs.Actor", + "qualified_name": "keen::ds::ecs::Actor", + "referenced_type_name": "keen::ds::ecs::BaseActor", + "class_size": 2584, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3166776489, + "hash2": 377238369, + "struct_fields": [ + { + "name": "currentServerAction", + "type_name": "keen::ds::ecs::ServerActionSequenceData", + "type_hash": 4009463876, + "data_offset": 2088 + }, + { + "name": "deathSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 2504 + }, + { + "name": "deathSequenceWaitsForGroundedState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2520 + }, + { + "name": "defaultVisibleState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2521 + }, + { + "name": "sendDeathEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2522 + }, + { + "name": "deathSequenceId", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 2524 + }, + { + "name": "currentColliderMode", + "type_name": "keen::ds::ecs::ColliderMode", + "type_hash": 3564049775, + "data_offset": 2528 + }, + { + "name": "rotationInterpolation", + "type_name": "keen::ds::actor::RotationInterpolation", + "type_hash": 1629416548, + "data_offset": 2532 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisableColliderModeChanges", + "type_name_2": "ecs.DisableColliderModeChanges", + "qualified_name": "keen::ds::ecs::DisableColliderModeChanges", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2692568540, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NetworkActor", + "type_name_2": "ecs.NetworkActor", + "qualified_name": "keen::ds::ecs::NetworkActor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 120, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2183157255, + "hash2": 1110410191, + "struct_fields": [ + { + "name": "sequenceRuntimeId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 0 + }, + { + "name": "currentAbilityMask", + "type_name": "keen::ds::actor::AbilityMask", + "type_hash": 3023355518, + "data_offset": 24 + }, + { + "name": "currentState", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 32 + }, + { + "name": "interactionHostId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 40 + }, + { + "name": "currentActionEntityTags", + "type_name": "keen::StaticArray", + "type_hash": 3561009266, + "data_offset": 44 + }, + { + "name": "usedItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 108 + }, + { + "name": "currentActionState", + "type_name": "keen::ds::actor::ActionSequenceState", + "type_hash": 537121452, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientActor", + "type_name_2": "ecs.ClientActor", + "qualified_name": "keen::ds::ecs::ClientActor", + "referenced_type_name": "keen::ds::ecs::BaseActor", + "class_size": 2112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3994718660, + "hash2": 102002712, + "struct_fields": [ + { + "name": "lastReceivedSequenceRuntimeId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 2088 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleActorInput", + "type_name_2": "ecs.SimpleActorInput", + "qualified_name": "keen::ds::ecs::SimpleActorInput", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 922295393, + "hash2": 812761728, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "usedItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 16 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleToggleActor", + "type_name_2": "ecs.SimpleToggleActor", + "qualified_name": "keen::ds::ecs::SimpleToggleActor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 828877083, + "hash2": 3556321572, + "struct_fields": [ + { + "name": "on", + "type_name": "keen::ds::ecs::SimpleActorInput", + "type_hash": 922295393, + "data_offset": 0 + }, + { + "name": "off", + "type_name": "keen::ds::ecs::SimpleActorInput", + "type_hash": 922295393, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSimpleToggleActor", + "type_name_2": "ecs.DynamicSimpleToggleActor", + "qualified_name": "keen::ds::ecs::DynamicSimpleToggleActor", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3014874124, + "hash2": 1666350909, + "struct_fields": [ + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TrapState", + "type_name_2": "ecs.TrapState", + "qualified_name": "keen::ds::ecs::TrapState", + "referenced_type_name": "keen::ecs::TrapState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1099027948, + "hash2": 3956909118, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCategoryMask", + "type_name_2": "impact.AttackCategoryMask", + "qualified_name": "keen::ds::impact::AttackCategoryMask", + "referenced_type_name": "keen::impact::AttackCategoryMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3969330437, + "hash2": 3857599703, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SimpleTrapActor", + "type_name_2": "ecs.SimpleTrapActor", + "qualified_name": "keen::ds::ecs::SimpleTrapActor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 192, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 4282286182, + "hash2": 1590567426, + "struct_fields": [ + { + "name": "onTriggerEnter", + "type_name": "keen::ds::ecs::SimpleActorInput", + "type_hash": 922295393, + "data_offset": 0 + }, + { + "name": "onTriggerLeave", + "type_name": "keen::ds::ecs::SimpleActorInput", + "type_hash": 922295393, + "data_offset": 36 + }, + { + "name": "onArm", + "type_name": "keen::ds::ecs::SimpleActorInput", + "type_hash": 922295393, + "data_offset": 72 + }, + { + "name": "onDisarm", + "type_name": "keen::ds::ecs::SimpleActorInput", + "type_hash": 922295393, + "data_offset": 108 + }, + { + "name": "triggerCooldownTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 144 + }, + { + "name": "triggerOnHit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 152 + }, + { + "name": "disabledDamageTypes", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 153 + }, + { + "name": "idleArmedAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 156 + }, + { + "name": "idleDisarmedAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSimpleTrapActor", + "type_name_2": "ecs.DynamicSimpleTrapActor", + "qualified_name": "keen::ds::ecs::DynamicSimpleTrapActor", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 687827973, + "hash2": 3021796936, + "struct_fields": [ + { + "name": "lastArmedTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::TrapState", + "type_hash": 1099027948, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportZone", + "type_name_2": "ecs.TeleportZone", + "qualified_name": "keen::ds::ecs::TeleportZone", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 480912073, + "hash2": 1783462610, + "struct_fields": [ + { + "name": "zoneTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportZoneConnection", + "type_name_2": "ecs.TeleportZoneConnection", + "qualified_name": "keen::ds::ecs::TeleportZoneConnection", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3478703301, + "hash2": 3963421689, + "struct_fields": [ + { + "name": "teleporterId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "targetTeleporterId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Teleport", + "type_name_2": "ecs.Teleport", + "qualified_name": "keen::ds::ecs::Teleport", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3830875555, + "hash2": 4161867829, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 56 + }, + { + "name": "applied", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "searchBestSpawnPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FallDamage", + "type_name_2": "ecs.FallDamage", + "qualified_name": "keen::ds::ecs::FallDamage", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2974736620, + "hash2": 3071913806, + "struct_fields": [ + { + "name": "fallDamageStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "fallDamageLethalDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "fallDamageSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicFallDamage", + "type_name_2": "ecs.DynamicFallDamage", + "qualified_name": "keen::ds::ecs::DynamicFallDamage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 836772045, + "hash2": 1340552674, + "struct_fields": [ + { + "name": "wasFalling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "resetFallAltitudeOnApex", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "fallStartAltitude", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "detectedFallDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "detectedFallDamagePercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerCameraControl", + "type_name_2": "ecs.ServerCameraControl", + "qualified_name": "keen::ds::ecs::ServerCameraControl", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 535544569, + "hash2": 672746130, + "struct_fields": [ + { + "name": "isCameraIdLocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lockedCameraId", + "type_name": "keen::ds::CameraId", + "type_hash": 3072105309, + "data_offset": 1 + }, + { + "name": "unlockTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "cameraOverride", + "type_name": "keen::ds::CameraOverride", + "type_hash": 1844508176, + "data_offset": 16 + }, + { + "name": "overrideEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkCameraControl", + "type_name_2": "ecs.NetworkCameraControl", + "qualified_name": "keen::ds::ecs::NetworkCameraControl", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3592241366, + "hash2": 3182463373, + "struct_fields": [ + { + "name": "isCameraIdLocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lockedCameraId", + "type_name": "keen::ds::CameraId", + "type_hash": 3072105309, + "data_offset": 1 + }, + { + "name": "cameraOverride", + "type_name": "keen::ds::CameraOverride", + "type_hash": 1844508176, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCameraControl", + "type_name_2": "ecs.ClientCameraControl", + "qualified_name": "keen::ds::ecs::ClientCameraControl", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3256222957, + "hash2": 780920878, + "struct_fields": [ + { + "name": "activeCameraId", + "type_name": "keen::ds::CameraId", + "type_hash": 3072105309, + "data_offset": 0 + }, + { + "name": "idleCameraTriggerDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "buildingCameraSwitchDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "hipfireCameraSwitchDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "entityCameraPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 16 + }, + { + "name": "entityCameraOrientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LockedTargetFlags", + "type_name_2": "ecs.LockedTargetFlags", + "qualified_name": "keen::ds::ecs::LockedTargetFlags", + "referenced_type_name": "keen::ecs::LockedTargetFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 671160950, + "hash2": 482633219, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetSelector", + "type_name_2": "ecs.TargetSelector", + "qualified_name": "keen::ds::ecs::TargetSelector", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 260052912, + "hash2": 285132533, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetImportance", + "type_name_2": "ecs.TargetImportance", + "qualified_name": "keen::ds::ecs::TargetImportance", + "referenced_type_name": "keen::ecs::TargetImportance", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 2959320531, + "hash2": 162807920, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TargetInfo", + "type_name_2": "ecs.TargetInfo", + "qualified_name": "keen::ds::ecs::TargetInfo", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2811356345, + "hash2": 413252409, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "targetingOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 56 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 96 + }, + { + "name": "targetImportance", + "type_name": "keen::ds::ecs::TargetImportance", + "type_hash": 2959320531, + "data_offset": 100 + }, + { + "name": "colliderId", + "type_name": "keen::ds::ecs::ColliderId", + "type_hash": 1408008385, + "data_offset": 104 + }, + { + "name": "changeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 112 + }, + { + "name": "flags", + "type_name": "keen::Bitmask8", + "type_hash": 2968991783, + "data_offset": 114 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.TargetInfo[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::TargetInfo", + "class_size": 1920, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 2798318164, + "hash2": 950409255, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SelectedTargets", + "type_name_2": "ecs.SelectedTargets", + "qualified_name": "keen::ds::ecs::SelectedTargets", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1928, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3558720533, + "hash2": 2623395694, + "struct_fields": [ + { + "name": "targets", + "type_name": "keen::StaticArray", + "type_hash": 2798318164, + "data_offset": 0 + }, + { + "name": "interactionSequencePredictionHelper", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 1920 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkSelectedTargets", + "type_name_2": "ecs.NetworkSelectedTargets", + "qualified_name": "keen::ds::ecs::NetworkSelectedTargets", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 830702843, + "hash2": 2051477000, + "struct_fields": [ + { + "name": "targetIds", + "type_name": "keen::StaticArray", + "type_hash": 589531163, + "data_offset": 0 + }, + { + "name": "combatTargetSupportsHardLock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParentTargets", + "type_name_2": "ecs.ParentTargets", + "qualified_name": "keen::ds::ecs::ParentTargets", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2380083334, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerTarget", + "type_name_2": "ecs.ServerTarget", + "qualified_name": "keen::ds::ecs::ServerTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2544502950, + "hash2": 1249264999, + "struct_fields": [ + { + "name": "hardLockTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "targetImportance", + "type_name": "keen::ds::ecs::TargetImportance", + "type_hash": 2959320531, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HardLockTarget", + "type_name_2": "ecs.HardLockTarget", + "qualified_name": "keen::ds::ecs::HardLockTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1368965091, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClearPathToTarget", + "type_name_2": "ecs.ClearPathToTarget", + "qualified_name": "keen::ds::ecs::ClearPathToTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 272687502, + "hash2": 1918627969, + "struct_fields": [ + { + "name": "yOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 4 + }, + { + "name": "hasHitSolidCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "hasHitSteeringCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Loot", + "type_name_2": "ecs.Loot", + "qualified_name": "keen::ds::ecs::Loot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1289772722, + "hash2": 944409383, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "awaitingDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Orb", + "type_name_2": "ecs.Orb", + "qualified_name": "keen::ds::ecs::Orb", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4125330341, + "hash2": 1379947220, + "struct_fields": [ + { + "name": "pickupNotifier", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 0 + }, + { + "name": "pickupTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 16 + }, + { + "name": "program", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 32 + }, + { + "name": "awaitingDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 52 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLootNodeId", + "type_name_2": "ecs.SceneLootNodeId", + "qualified_name": "keen::ds::ecs::SceneLootNodeId", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2887267259, + "hash2": 3316252219, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DefaultLootLabelCollection", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1130865555, + "hash2": 3975484359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomLoot", + "type_name_2": "ecs.RandomLoot", + "qualified_name": "keen::ds::ecs::RandomLoot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 362772601, + "hash2": 2122747167, + "struct_fields": [ + { + "name": "defaultLabels", + "type_name": "keen::ObjectReference", + "type_hash": 1130865555, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootProbability", + "type_name_2": "ecs.RandomLootProbability", + "qualified_name": "keen::ds::ecs::RandomLootProbability", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2608457584, + "hash2": 3457387032, + "struct_fields": [ + { + "name": "spawnProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootSlotCount", + "type_name_2": "ecs.RandomLootSlotCount", + "qualified_name": "keen::ds::ecs::RandomLootSlotCount", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3858024668, + "hash2": 2009765806, + "struct_fields": [ + { + "name": "slotsMin", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "slotsMax", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootContainer", + "type_name_2": "ecs.RandomLootContainer", + "qualified_name": "keen::ds::ecs::RandomLootContainer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3296144364, + "hash2": 2265309534, + "struct_fields": [ + { + "name": "spawnedLootVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "parentNodeId", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 4 + }, + { + "name": "defaultLabelsId", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootPlayerScale", + "type_name_2": "ecs.RandomLootPlayerScale", + "qualified_name": "keen::ds::ecs::RandomLootPlayerScale", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1801769854, + "hash2": 866782983, + "struct_fields": [ + { + "name": "playerCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootLock", + "type_name_2": "ecs.RandomLootLock", + "qualified_name": "keen::ds::ecs::RandomLootLock", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 758473270, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PickupLootSlot", + "type_name_2": "ecs.PickupLootSlot", + "qualified_name": "keen::ds::ecs::PickupLootSlot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 490320954, + "hash2": 2045909678, + "struct_fields": [ + { + "name": "genericPickupItem", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "spawnedPickupEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootInventory", + "type_name_2": "ecs.RandomLootInventory", + "qualified_name": "keen::ds::ecs::RandomLootInventory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2406484795, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootOnDestroy", + "type_name_2": "ecs.RandomLootOnDestroy", + "qualified_name": "keen::ds::ecs::RandomLootOnDestroy", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1732789334, + "hash2": 3687577488, + "struct_fields": [ + { + "name": "triggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisableRandomLootOnDestroy", + "type_name_2": "ecs.DisableRandomLootOnDestroy", + "qualified_name": "keen::ds::ecs::DisableRandomLootOnDestroy", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 843495898, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootEntitySpawner", + "type_name_2": "ecs.RandomLootEntitySpawner", + "qualified_name": "keen::ds::ecs::RandomLootEntitySpawner", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2477674878, + "hash2": 3180650568, + "struct_fields": [ + { + "name": "lootEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "spawnedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagComponent", + "type_name_2": "ecs.LocaTagComponent", + "qualified_name": "keen::ds::ecs::LocaTagComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 764663526, + "hash2": 3250987651, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTag", + "type_name_2": "LocaTag", + "qualified_name": "keen::ds::LocaTag", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2796266246, + "hash2": 401042608, + "struct_fields": [ + { + "name": "keenglish", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerLocaTag", + "type_name_2": "ecs.MapMarkerLocaTag", + "qualified_name": "keen::ds::ecs::MapMarkerLocaTag", + "referenced_type_name": "keen::ds::LocaTag", + "class_size": 80, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2206809551, + "hash2": 3253535038, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MapMarkerType", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 367117286, + "hash2": 3966829931, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerTypeReference", + "type_name_2": "MapMarkerTypeReference", + "qualified_name": "keen::ds::MapMarkerTypeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 777067610, + "hash2": 1323791043, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarker", + "type_name_2": "ecs.MapMarker", + "qualified_name": "keen::ds::ecs::MapMarker", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1889724404, + "hash2": 252719658, + "struct_fields": [ + { + "name": "markerId", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "markerType", + "type_name": "keen::ds::MapMarkerTypeReference", + "type_hash": 777067610, + "data_offset": 16 + }, + { + "name": "rangeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerVisibilityType", + "type_name_2": "ecs.MapMarkerVisibilityType", + "qualified_name": "keen::ds::ecs::MapMarkerVisibilityType", + "referenced_type_name": "keen::ecs::MapMarkerVisibilityType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2549350432, + "hash2": 1607890034, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerVisibilityStateMask", + "type_name_2": "ecs.MapMarkerVisibilityStateMask", + "qualified_name": "keen::ds::ecs::MapMarkerVisibilityStateMask", + "referenced_type_name": "keen::ecs::MapMarkerVisibilityStateMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1265840945, + "hash2": 240214828, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerVisibilityState", + "type_name_2": "ecs.MapMarkerVisibilityState", + "qualified_name": "keen::ds::ecs::MapMarkerVisibilityState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 977884621, + "hash2": 2511461165, + "struct_fields": [ + { + "name": "visibility", + "type_name": "keen::ds::ecs::MapMarkerVisibilityType", + "type_hash": 2549350432, + "data_offset": 0 + }, + { + "name": "lastChange", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "knowledgeChangeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerToggleState", + "type_name_2": "ecs.MapMarkerToggleState", + "qualified_name": "keen::ds::ecs::MapMarkerToggleState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3939303349, + "hash2": 3049934393, + "struct_fields": [ + { + "name": "visibilityMap", + "type_name": "keen::ds::ecs::MapMarkerVisibilityStateMask", + "type_hash": 1265840945, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Location", + "type_name_2": "ecs.Location", + "qualified_name": "keen::ds::ecs::Location", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 490250127, + "hash2": 1754624751, + "struct_fields": [ + { + "name": "isInLocation", + "type_name": "keen::ds::ecs::LocalPlayerMask", + "type_hash": 1991355690, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsPlayerInRange", + "type_name_2": "ecs.IsPlayerInRange", + "qualified_name": "keen::ds::ecs::IsPlayerInRange", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2396490475, + "hash2": 3750073634, + "struct_fields": [ + { + "name": "onlyPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "ignoreStates", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 8 + }, + { + "name": "updateDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "deactivateRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "minRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicIsPlayerInRange", + "type_name_2": "ecs.DynamicIsPlayerInRange", + "qualified_name": "keen::ds::ecs::DynamicIsPlayerInRange", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3259991648, + "hash2": 4094941915, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "closestActorId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleType", + "type_name_2": "ecs.ToggleType", + "qualified_name": "keen::ds::ecs::ToggleType", + "referenced_type_name": "keen::ecs::ToggleType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3585558028, + "hash2": 597733147, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleMask", + "type_name_2": "ecs.ToggleMask", + "qualified_name": "keen::ds::ecs::ToggleMask", + "referenced_type_name": "keen::ecs::ToggleMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2040029364, + "hash2": 1545932005, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ToggleInShape", + "type_name_2": "ecs.ToggleInShape", + "qualified_name": "keen::ds::ecs::ToggleInShape", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3436635524, + "hash2": 841454321, + "struct_fields": [ + { + "name": "ignoreState", + "type_name": "keen::ds::ecs::ToggleMask", + "type_hash": 2040029364, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InertialFrame", + "type_name_2": "ecs.InertialFrame", + "qualified_name": "keen::ds::ecs::InertialFrame", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3540379103, + "hash2": 51423476, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlopeDefinition", + "type_name_2": "SlopeDefinition", + "qualified_name": "keen::ds::SlopeDefinition", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 613970007, + "hash2": 3678271062, + "struct_fields": [ + { + "name": "steepFloorAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 0 + }, + { + "name": "slidingAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 4 + }, + { + "name": "fallDamageAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + }, + { + "name": "slidingMaterialMinAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SlopeDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3777686060, + "hash2": 3815548791, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SlopeConfig", + "type_name_2": "ecs.SlopeConfig", + "qualified_name": "keen::ds::ecs::SlopeConfig", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3780037381, + "hash2": 1353913318, + "struct_fields": [ + { + "name": "slopeDefinition", + "type_name": "keen::ds::SlopeDefinition", + "type_hash": 613970007, + "data_offset": 0 + }, + { + "name": "slopeDefinitionObject", + "type_name": "keen::ObjectReference", + "type_hash": 3777686060, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotType", + "type_name_2": "ecs.HookShotType", + "qualified_name": "keen::ds::ecs::HookShotType", + "referenced_type_name": "keen::ecs::HookShotType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 227722959, + "hash2": 3127680325, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerFx", + "type_name_2": "ecs.PlayerFx", + "qualified_name": "keen::ds::ecs::PlayerFx", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1477993547, + "hash2": 20521297, + "struct_fields": [ + { + "name": "fxEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "attachEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerFxSpawner", + "type_name_2": "ecs.PlayerFxSpawner", + "qualified_name": "keen::ds::ecs::PlayerFxSpawner", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1228228793, + "hash2": 3698690337, + "struct_fields": [ + { + "name": "hookShotTargetFx", + "type_name": "keen::ds::ecs::PlayerFx", + "type_hash": 1477993547, + "data_offset": 0 + }, + { + "name": "hookShotRopeFx", + "type_name": "keen::ds::ecs::PlayerFx", + "type_hash": 1477993547, + "data_offset": 8 + }, + { + "name": "gliderUpstreamFx", + "type_name": "keen::ds::ecs::PlayerFx", + "type_hash": 1477993547, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotState", + "type_name_2": "ecs.HookShotState", + "qualified_name": "keen::ds::ecs::HookShotState", + "referenced_type_name": "keen::ecs::HookShotState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1593250200, + "hash2": 2929975402, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HookShot", + "type_name_2": "ecs.HookShot", + "qualified_name": "keen::ds::ecs::HookShot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 168, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 2763521463, + "hash2": 2164612171, + "struct_fields": [ + { + "name": "triggerAnchorEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sequenceTrigger", + "type_name": "keen::ds::actor::ActionSequenceTrigger", + "type_hash": 259047605, + "data_offset": 16 + }, + { + "name": "triggerItemInstance", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 20 + }, + { + "name": "hookShotType", + "type_name": "keen::ds::ecs::HookShotType", + "type_hash": 227722959, + "data_offset": 40 + }, + { + "name": "hookShotState", + "type_name": "keen::ds::ecs::HookShotState", + "type_hash": 1593250200, + "data_offset": 41 + }, + { + "name": "sequenceResourceId", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 44 + }, + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 48 + }, + { + "name": "anchorEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 72 + }, + { + "name": "anchorPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 80 + }, + { + "name": "hookPullActorTargetOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 104 + }, + { + "name": "hookPullAnchorNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 116 + }, + { + "name": "hookPullOriginalVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "hookSwingOriginalHorizontalDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 140 + }, + { + "name": "hookSwingEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 152 + }, + { + "name": "hookSwingRopeLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "isEnemyHookAnchor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 164 + }, + { + "name": "useHookShotCamera", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 165 + }, + { + "name": "hasTouchedGroundAfterHook", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 166 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientHookShot", + "type_name_2": "ecs.ClientHookShot", + "qualified_name": "keen::ds::ecs::ClientHookShot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 638274176, + "hash2": 356019021, + "struct_fields": [ + { + "name": "triggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "anchorPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "useHookShotCamera", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "hookShotType", + "type_name": "keen::ds::ecs::HookShotType", + "type_hash": 227722959, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotDiscoverMemory", + "type_name_2": "ecs.HookShotDiscoverMemory", + "qualified_name": "keen::ds::ecs::HookShotDiscoverMemory", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 994699527, + "hash2": 1425250100, + "struct_fields": [ + { + "name": "entityIds", + "type_name": "keen::StaticArray", + "type_hash": 589531163, + "data_offset": 0 + }, + { + "name": "discoveredMask", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotInteractionOffer", + "type_name_2": "ecs.HookShotInteractionOffer", + "qualified_name": "keen::ds::ecs::HookShotInteractionOffer", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3035972845, + "hash2": 904353589, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "actorTargetOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "anchorEntityLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "hookShotType", + "type_name": "keen::ds::ecs::HookShotType", + "type_hash": 227722959, + "data_offset": 72 + }, + { + "name": "index", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 73 + }, + { + "name": "hasPriority", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 74 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotTargeting", + "type_name_2": "ecs.HookShotTargeting", + "qualified_name": "keen::ds::ecs::HookShotTargeting", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 152, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1961205542, + "hash2": 2350201619, + "struct_fields": [ + { + "name": "bestInteractionOffer", + "type_name": "keen::ds::ecs::HookShotInteractionOffer", + "type_hash": 3035972845, + "data_offset": 0 + }, + { + "name": "discoverMemory", + "type_name": "keen::ds::ecs::HookShotDiscoverMemory", + "type_hash": 994699527, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotAnchor", + "type_name_2": "ecs.HookShotAnchor", + "qualified_name": "keen::ds::ecs::HookShotAnchor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1209002446, + "hash2": 2603005821, + "struct_fields": [ + { + "name": "hookShotType", + "type_name": "keen::ds::ecs::HookShotType", + "type_hash": 227722959, + "data_offset": 0 + }, + { + "name": "targetOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookShotAnchorSubEntity", + "type_name_2": "ecs.HookShotAnchorSubEntity", + "qualified_name": "keen::ds::ecs::HookShotAnchorSubEntity", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2021535783, + "hash2": 2754362003, + "struct_fields": [ + { + "name": "anchorEntityTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "attachmentOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HookPullImpulse", + "type_name_2": "ecs.HookPullImpulse", + "qualified_name": "keen::ds::ecs::HookPullImpulse", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3162404187, + "hash2": 3768746122, + "struct_fields": [ + { + "name": "impulseData", + "type_name": "keen::ds::ecs::ImpulseData", + "type_hash": 4187645779, + "data_offset": 0 + }, + { + "name": "pullingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClimbType", + "type_name_2": "ecs.ClimbType", + "qualified_name": "keen::ds::ecs::ClimbType", + "referenced_type_name": "keen::ecs::ClimbType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3527546589, + "hash2": 188482858, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClimbState", + "type_name_2": "ecs.ClimbState", + "qualified_name": "keen::ds::ecs::ClimbState", + "referenced_type_name": "keen::ecs::ClimbState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2678263334, + "hash2": 1636647944, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LadderQueryType", + "type_name_2": "ecs.LadderQueryType", + "qualified_name": "keen::ds::ecs::LadderQueryType", + "referenced_type_name": "keen::ecs::LadderQueryType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1512633072, + "hash2": 525029045, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LadderQuery", + "type_name_2": "ecs.LadderQuery", + "qualified_name": "keen::ds::ecs::LadderQuery", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4292418712, + "hash2": 1528820180, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 0 + }, + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.LadderQuery[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::LadderQuery", + "class_size": 24, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 1364427371, + "hash2": 1642632742, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Climb", + "type_name_2": "ecs.Climb", + "qualified_name": "keen::ds::ecs::Climb", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2724485013, + "hash2": 156223083, + "struct_fields": [ + { + "name": "climbType", + "type_name": "keen::ds::ecs::ClimbType", + "type_hash": 3527546589, + "data_offset": 0 + }, + { + "name": "climbState", + "type_name": "keen::ds::ecs::ClimbState", + "type_hash": 2678263334, + "data_offset": 1 + }, + { + "name": "climbNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "climbBlockingTimeEnd", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "ladderCollisionQueries", + "type_name": "keen::StaticArray", + "type_hash": 1364427371, + "data_offset": 24 + }, + { + "name": "ladderEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 48 + }, + { + "name": "laddersQueryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 52 + }, + { + "name": "ladderStepPhase", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Ladder", + "type_name_2": "ecs.Ladder", + "qualified_name": "keen::ds::ecs::Ladder", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 406446780, + "hash2": 2201981883, + "struct_fields": [ + { + "name": "topOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "bottomOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransformData", + "type_name_2": "ecs.LerpTransformData", + "qualified_name": "keen::ds::ecs::LerpTransformData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3932967343, + "hash2": 3547412945, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::ds::ecs::LerpTransformTarget", + "type_hash": 2188652394, + "data_offset": 0 + }, + { + "name": "localTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LerpTransform", + "type_name_2": "ecs.LerpTransform", + "qualified_name": "keen::ds::ecs::LerpTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 216, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2631952487, + "hash2": 547196944, + "struct_fields": [ + { + "name": "targetTransforms", + "type_name": "keen::StaticArray", + "type_hash": 3946645593, + "data_offset": 0 + }, + { + "name": "positionLerpData", + "type_name": "keen::ds::ecs::LerpTransformData", + "type_hash": 3932967343, + "data_offset": 168 + }, + { + "name": "orientationLerpData", + "type_name": "keen::ds::ecs::LerpTransformData", + "type_hash": 3932967343, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BasicSpawnerComponent", + "type_name_2": "ecs.BasicSpawnerComponent", + "qualified_name": "keen::ds::ecs::BasicSpawnerComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4051071533, + "hash2": 1403068622, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerSpawner", + "type_name_2": "ecs.TriggerSpawner", + "qualified_name": "keen::ds::ecs::TriggerSpawner", + "referenced_type_name": "keen::ds::ecs::BasicSpawnerComponent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 961680264, + "hash2": 3224393473, + "struct_fields": [ + { + "name": "isTriggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "spawnedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "spawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "nextAllowedSpawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerBoxMultiSpawner", + "type_name_2": "ecs.TriggerBoxMultiSpawner", + "qualified_name": "keen::ds::ecs::TriggerBoxMultiSpawner", + "referenced_type_name": "keen::ds::ecs::BasicSpawnerComponent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4007298090, + "hash2": 2643356781, + "struct_fields": [ + { + "name": "linkDestroyToEventSender", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "randomizeOrientation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "lastTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "minDistanceToEventSender", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTarget", + "type_name_2": "ecs.SpawnTarget", + "qualified_name": "keen::ds::ecs::SpawnTarget", + "referenced_type_name": "keen::ecs::SpawnTarget", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1994273642, + "hash2": 124605193, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnMode", + "type_name_2": "ecs.SpawnMode", + "qualified_name": "keen::ds::ecs::SpawnMode", + "referenced_type_name": "keen::ecs::SpawnMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 224090016, + "hash2": 2363450008, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnOrientationMode", + "type_name_2": "ecs.SpawnOrientationMode", + "qualified_name": "keen::ds::ecs::SpawnOrientationMode", + "referenced_type_name": "keen::ecs::SpawnOrientationMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3172559236, + "hash2": 85350301, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnCondition", + "type_name_2": "ecs.SpawnCondition", + "qualified_name": "keen::ds::ecs::SpawnCondition", + "referenced_type_name": "keen::ecs::SpawnCondition", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1070877920, + "hash2": 2077380481, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnConditionFlags", + "type_name_2": "ecs.SpawnConditionFlags", + "qualified_name": "keen::ds::ecs::SpawnConditionFlags", + "referenced_type_name": "keen::ecs::SpawnConditionFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 59979603, + "hash2": 663948589, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnGroupId", + "type_name_2": "ecs.SpawnGroupId", + "qualified_name": "keen::ds::ecs::SpawnGroupId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1040141235, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::SpawnGroupId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 446014656, + "hash2": 2827239515, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnGroup", + "type_name_2": "ecs.SpawnGroup", + "qualified_name": "keen::ds::ecs::SpawnGroup", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 847385166, + "hash2": 2503245333, + "struct_fields": [ + { + "name": "spawnGroupId", + "type_name": "keen::ObjectReference", + "type_hash": 446014656, + "data_offset": 0 + }, + { + "name": "minSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "maxSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnerEntry", + "type_name_2": "ecs.SpawnerEntry", + "qualified_name": "keen::ds::ecs::SpawnerEntry", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2171752176, + "hash2": 1202202261, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "spawnGroupId", + "type_name": "keen::ObjectReference", + "type_hash": 446014656, + "data_offset": 16 + }, + { + "name": "spawnConditions", + "type_name": "keen::ds::ecs::SpawnConditionFlags", + "type_hash": 59979603, + "data_offset": 32 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnPositionSettings", + "type_name_2": "ecs.SpawnPositionSettings", + "qualified_name": "keen::ds::ecs::SpawnPositionSettings", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1858335033, + "hash2": 3757495717, + "struct_fields": [ + { + "name": "horizontalSearchDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "verticalSearchDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "nodeRequirements", + "type_name": "keen::ds::ecs::PathNodeRequirements", + "type_hash": 3849890651, + "data_offset": 16 + }, + { + "name": "pathGridType", + "type_name": "keen::ds::ecs::PathGridType", + "type_hash": 4273691163, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SpawnerEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SpawnerEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3163889867, + "hash2": 64540648, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.SpawnGroup[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::SpawnGroup", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1313616077, + "hash2": 1009514055, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawner", + "type_name_2": "ecs.RandomSpawner", + "qualified_name": "keen::ds::ecs::RandomSpawner", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 200, + "fields_count": 32, + "primitive_type": "Struct", + "hash1": 1929001277, + "hash2": 1276665352, + "struct_fields": [ + { + "name": "spawnEntries", + "type_name": "keen::DsArray", + "type_hash": 3163889867, + "data_offset": 0 + }, + { + "name": "spawnGroups", + "type_name": "keen::DsArray", + "type_hash": 1313616077, + "data_offset": 40 + }, + { + "name": "minSpawnRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "maxSpawnRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "initialSpawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "minSpawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "maxSpawnTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "minSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 112 + }, + { + "name": "maxSpawnAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 113 + }, + { + "name": "minSpawnDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + }, + { + "name": "maxSpawnDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "maxTotalSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 136 + }, + { + "name": "destroyOnSpawnFinished", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 137 + }, + { + "name": "spawnMode", + "type_name": "keen::ds::ecs::SpawnMode", + "type_hash": 224090016, + "data_offset": 138 + }, + { + "name": "spawnTarget", + "type_name": "keen::ds::ecs::SpawnTarget", + "type_hash": 1994273642, + "data_offset": 139 + }, + { + "name": "spawnOrientationMode", + "type_name": "keen::ds::ecs::SpawnOrientationMode", + "type_hash": 3172559236, + "data_offset": 140 + }, + { + "name": "minEntityDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 144 + }, + { + "name": "maxEntityDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 148 + }, + { + "name": "maxSpawnAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "waitUntilEntitiesAreDestroyed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 156 + }, + { + "name": "allowRespawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 157 + }, + { + "name": "useKeepAliveConditions", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 158 + }, + { + "name": "searchForGroundPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 159 + }, + { + "name": "spawnPositionSettings", + "type_name": "keen::ds::ecs::SpawnPositionSettings", + "type_hash": 1858335033, + "data_offset": 160 + }, + { + "name": "spawnAsUnitGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 184 + }, + { + "name": "despawnEntities", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 185 + }, + { + "name": "checkDeathState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 186 + }, + { + "name": "conditionalDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "defaultDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "useUpScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 196 + }, + { + "name": "useDownScaling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 197 + }, + { + "name": "minSpawnerAmount", + "type_name": "keen::ds::ecs::RandomSpawnerAmount", + "type_hash": 3516509841, + "data_offset": 198 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomSpawnerCommand", + "type_name_2": "ecs.RandomSpawnerCommand", + "qualified_name": "keen::ds::ecs::RandomSpawnerCommand", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1862592986, + "hash2": 4154698624, + "struct_fields": [ + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::ds::ecs::Transform", + "type_hash": 2200155012, + "data_offset": 8 + }, + { + "name": "spawnEntryIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 36 + }, + { + "name": "isAdditionalScalingCommand", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.RandomSpawnerCommand[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::RandomSpawnerCommand", + "class_size": 480, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 4148219471, + "hash2": 4059068139, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicRandomSpawner", + "type_name_2": "ecs.DynamicRandomSpawner", + "qualified_name": "keen::ds::ecs::DynamicRandomSpawner", + "referenced_type_name": null, + "class_size": 544, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2583681926, + "hash2": 2746059753, + "struct_fields": [ + { + "name": "nextSpawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "currentGroupId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "spawnedEntities", + "type_name": "keen::StaticArray", + "type_hash": 872988250, + "data_offset": 12 + }, + { + "name": "spawnCommands", + "type_name": "keen::StaticArray", + "type_hash": 4148219471, + "data_offset": 48 + }, + { + "name": "wasSpawnedEntityAlive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 528 + }, + { + "name": "wasAnySpawnedEntityKilled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 529 + }, + { + "name": "totalSpawnCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 530 + }, + { + "name": "spawnCommandCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 531 + }, + { + "name": "trySpawnDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 536 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConditionalDespawn", + "type_name_2": "ecs.ConditionalDespawn", + "qualified_name": "keen::ds::ecs::ConditionalDespawn", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1240422166, + "hash2": 3915806939, + "struct_fields": [ + { + "name": "conditionalDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "defaultDespawnMinRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "keepAliveConditions", + "type_name": "keen::ds::ecs::SpawnConditionFlags", + "type_hash": 59979603, + "data_offset": 8 + }, + { + "name": "nextQueryUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientToggleFromActorState", + "type_name_2": "ecs.ClientToggleFromActorState", + "qualified_name": "keen::ds::ecs::ClientToggleFromActorState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2283880073, + "hash2": 824672673, + "struct_fields": [ + { + "name": "entityReferenceType", + "type_name": "keen::ds::ecs::EntityReferenceType", + "type_hash": 2889645312, + "data_offset": 0 + }, + { + "name": "setIf", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 8 + }, + { + "name": "setIfNot", + "type_name": "keen::ds::actor::StateMask", + "type_hash": 793396929, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkHealth", + "type_name_2": "ecs.NetworkHealth", + "qualified_name": "keen::ds::ecs::NetworkHealth", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1082070364, + "hash2": 4167248228, + "struct_fields": [ + { + "name": "health", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "healthMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkStamina", + "type_name_2": "ecs.NetworkStamina", + "qualified_name": "keen::ds::ecs::NetworkStamina", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 941185823, + "hash2": 2378807394, + "struct_fields": [ + { + "name": "stamina", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "staminaMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkLevel", + "type_name_2": "ecs.NetworkLevel", + "qualified_name": "keen::ds::ecs::NetworkLevel", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3496661468, + "hash2": 2047531286, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkServerProgress", + "type_name_2": "ecs.NetworkServerProgress", + "qualified_name": "keen::ds::ecs::NetworkServerProgress", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 6, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2895825778, + "hash2": 153222675, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "currentAltarCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "currentHighestAltarLevel", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseAttributesData", + "type_name_2": "ecs.BaseAttributesData", + "qualified_name": "keen::ds::ecs::BaseAttributesData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3232907364, + "hash2": 692873054, + "struct_fields": [ + { + "name": "strength", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "strengthFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "dexterity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "dexterityFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 3 + }, + { + "name": "intelligence", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "intelligenceFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 5 + }, + { + "name": "constitution", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 6 + }, + { + "name": "constitutionFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 7 + }, + { + "name": "endurance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "enduranceFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "spirit", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 10 + }, + { + "name": "spiritFromSkill", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ArmorAttributes", + "type_name_2": "ecs.ArmorAttributes", + "qualified_name": "keen::ds::ecs::ArmorAttributes", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 4240714434, + "hash2": 785901271, + "struct_fields": [ + { + "name": "physicalBlowthrough", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "magicalBlowthrough", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "physicalArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "cutArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "bluntArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "pierceArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "magicalArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "fireArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "iceArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "fogArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 22 + }, + { + "name": "lightningArmor", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReviveState", + "type_name_2": "ecs.ReviveState", + "qualified_name": "keen::ds::ecs::ReviveState", + "referenced_type_name": "keen::ecs::ReviveState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 611131738, + "hash2": 2859678473, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NetworkReviveData", + "type_name_2": "ecs.NetworkReviveData", + "qualified_name": "keen::ds::ecs::NetworkReviveData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4042167459, + "hash2": 96948260, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::ecs::ReviveState", + "type_hash": 611131738, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "left", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkPlayerAttributes", + "type_name_2": "ecs.NetworkPlayerAttributes", + "qualified_name": "keen::ds::ecs::NetworkPlayerAttributes", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 184, + "fields_count": 59, + "primitive_type": "Struct", + "hash1": 3803750602, + "hash2": 4163986411, + "struct_fields": [ + { + "name": "armorAttributes", + "type_name": "keen::ds::ecs::ArmorAttributes", + "type_hash": 4240714434, + "data_offset": 0 + }, + { + "name": "baseAttributes", + "type_name": "keen::ds::ecs::BaseAttributesData", + "type_hash": 3232907364, + "data_offset": 28 + }, + { + "name": "revivieData", + "type_name": "keen::ds::ecs::NetworkReviveData", + "type_hash": 4042167459, + "data_offset": 40 + }, + { + "name": "movementNormal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "movementSprint", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "movementSneak", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "reviveDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "reviveHealth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "critChance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "critChanceMagic", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "critChanceMelee", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "critChanceRanged", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "critDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 88 + }, + { + "name": "damageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 90 + }, + { + "name": "meleeDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 92 + }, + { + "name": "rangedDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 94 + }, + { + "name": "magicDamageMod", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 96 + }, + { + "name": "damageModSneak", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 98 + }, + { + "name": "damageModMerciless", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 100 + }, + { + "name": "damageModBackstab", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 102 + }, + { + "name": "damageModSkillshot", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 104 + }, + { + "name": "poisonSusceptibility", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 106 + }, + { + "name": "health", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 108 + }, + { + "name": "healthMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 110 + }, + { + "name": "healthReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 112 + }, + { + "name": "healthRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 114 + }, + { + "name": "stamina", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 116 + }, + { + "name": "staminaMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 118 + }, + { + "name": "staminaReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 120 + }, + { + "name": "staminaRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 122 + }, + { + "name": "mana", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 124 + }, + { + "name": "manaMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 126 + }, + { + "name": "manaReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 128 + }, + { + "name": "manaRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 130 + }, + { + "name": "bodyHeat", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 132 + }, + { + "name": "bodyHeatMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 134 + }, + { + "name": "bodyHeatReg", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 136 + }, + { + "name": "bodyHeatRegDelay", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 138 + }, + { + "name": "experience", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 140 + }, + { + "name": "experienceRequired", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 142 + }, + { + "name": "fogResistance", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 144 + }, + { + "name": "fogResistanceMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 146 + }, + { + "name": "level", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 148 + }, + { + "name": "staffDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 150 + }, + { + "name": "wandDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 152 + }, + { + "name": "oneHandedDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 154 + }, + { + "name": "twoHandedDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 156 + }, + { + "name": "bowDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 158 + }, + { + "name": "daggerDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 160 + }, + { + "name": "throwableDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 162 + }, + { + "name": "unarmedDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 164 + }, + { + "name": "magicalFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 166 + }, + { + "name": "meleeFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 168 + }, + { + "name": "rangedFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 170 + }, + { + "name": "flyingFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 172 + }, + { + "name": "skeletonFoeDamage", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 174 + }, + { + "name": "healing", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 176 + }, + { + "name": "freezingResistance", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 178 + }, + { + "name": "comfortLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GatherResourceType", + "type_name_2": "ecs.GatherResourceType", + "qualified_name": "keen::ds::ecs::GatherResourceType", + "referenced_type_name": "keen::ecs::GatherResourceType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4257971267, + "hash2": 3772593047, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MiningNode", + "type_name_2": "ecs.MiningNode", + "qualified_name": "keen::ds::ecs::MiningNode", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2939240736, + "hash2": 2658203293, + "struct_fields": [ + { + "name": "resourceType", + "type_name": "keen::ds::ecs::GatherResourceType", + "type_hash": 4257971267, + "data_offset": 0 + }, + { + "name": "onResourceDepletion", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 20 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 60 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 76 + }, + { + "name": "aliveDropCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 92 + }, + { + "name": "numberOfDrops", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 93 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicMiningNode", + "type_name_2": "ecs.DynamicMiningNode", + "qualified_name": "keen::ds::ecs::DynamicMiningNode", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2519438429, + "hash2": 1018140805, + "struct_fields": [ + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "canBeDestroyed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "remainingDropCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WiggleComponent", + "type_name_2": "ecs.WiggleComponent", + "qualified_name": "keen::ds::ecs::WiggleComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3287669608, + "hash2": 1300943078, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "rotationAxis", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "bounciness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HealthBasedScale", + "type_name_2": "ecs.HealthBasedScale", + "qualified_name": "keen::ds::ecs::HealthBasedScale", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4033851105, + "hash2": 1182753860, + "struct_fields": [ + { + "name": "minSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "percentage", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryEmptyState", + "type_name_2": "ecs.InventoryEmptyState", + "qualified_name": "keen::ds::ecs::InventoryEmptyState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4029469294, + "hash2": 3320710003, + "struct_fields": [ + { + "name": "toggleVFX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isEmpty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyInventoryEmptyStateFromParent", + "type_name_2": "ecs.CopyInventoryEmptyStateFromParent", + "qualified_name": "keen::ds::ecs::CopyInventoryEmptyStateFromParent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2497073913, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransformHistoryEntry", + "type_name_2": "ecs.TransformHistoryEntry", + "qualified_name": "keen::ds::ecs::TransformHistoryEntry", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2612413896, + "hash2": 1133922299, + "struct_fields": [ + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.TransformHistoryEntry[60]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::TransformHistoryEntry", + "class_size": 3840, + "fields_count": 60, + "primitive_type": "StaticArray", + "hash1": 2603011414, + "hash2": 3085272139, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransformationHistory", + "type_name_2": "ecs.TransformationHistory", + "qualified_name": "keen::ds::ecs::TransformationHistory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 3856, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2429391635, + "hash2": 1365111246, + "struct_fields": [ + { + "name": "history", + "type_name": "keen::StaticArray", + "type_hash": 2603011414, + "data_offset": 0 + }, + { + "name": "lastSampleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 3840 + }, + { + "name": "lastIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3848 + }, + { + "name": "maxIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3852 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerTransformationHistory", + "type_name_2": "ecs.ServerTransformationHistory", + "qualified_name": "keen::ds::ecs::ServerTransformationHistory", + "referenced_type_name": "keen::ds::ecs::TransformationHistory", + "class_size": 3856, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2041465942, + "hash2": 3877821044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClientTransformationHistory", + "type_name_2": "ecs.ClientTransformationHistory", + "qualified_name": "keen::ds::ecs::ClientTransformationHistory", + "referenced_type_name": "keen::ds::ecs::TransformationHistory", + "class_size": 3856, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2083326882, + "hash2": 3877821044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameEvent", + "type_name_2": "ecs.GameEvent", + "qualified_name": "keen::ds::ecs::GameEvent", + "referenced_type_name": "keen::ds::ecs::Event", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 193874406, + "hash2": 2641507721, + "struct_fields": [ + { + "name": "timeStamp", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseHitEvent", + "type_name_2": "ecs.BaseHitEvent", + "qualified_name": "keen::ds::ecs::BaseHitEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 184, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1992596878, + "hash2": 3737966414, + "struct_fields": [ + { + "name": "targetTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "hasVolume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "miningDamagedVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "miningRemovedVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "hasMiningVolume", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "materialA", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 104 + }, + { + "name": "materialB", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 120 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 136 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 148 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 160 + }, + { + "name": "rootSourceId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 172 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 176 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::HitEventFlagMask", + "type_hash": 2040110021, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactId", + "type_name_2": "impact.ImpactId", + "qualified_name": "keen::ds::impact::ImpactId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 440714682, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushBackForce", + "type_name_2": "impact.PushBackForce", + "qualified_name": "keen::ds::impact::PushBackForce", + "referenced_type_name": "keen::impact::PushBackForce", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 2076277553, + "hash2": 2555738474, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryId", + "type_name_2": "WeaponCategoryId", + "qualified_name": "keen::ds::WeaponCategoryId", + "referenced_type_name": "keen::WeaponCategoryId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4165152206, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitEvent", + "type_name_2": "ecs.HitEvent", + "qualified_name": "keen::ds::ecs::HitEvent", + "referenced_type_name": "keen::ds::ecs::BaseHitEvent", + "class_size": 248, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 1725497239, + "hash2": 1076292016, + "struct_fields": [ + { + "name": "rootTargetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 184 + }, + { + "name": "sourceId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 188 + }, + { + "name": "permissionSourceId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 192 + }, + { + "name": "weaponPideId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 196 + }, + { + "name": "armorPideId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 200 + }, + { + "name": "hitAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 208 + }, + { + "name": "healthChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 212 + }, + { + "name": "staminaChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 216 + }, + { + "name": "aggro", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "impactId", + "type_name": "keen::ds::impact::ImpactId", + "type_hash": 440714682, + "data_offset": 228 + }, + { + "name": "pushBackForce", + "type_name": "keen::ds::impact::PushBackForce", + "type_hash": 2076277553, + "data_offset": 232 + }, + { + "name": "hitReaction", + "type_name": "keen::ds::impact::HitReactionType", + "type_hash": 194263173, + "data_offset": 234 + }, + { + "name": "hitDirectionConfig", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 236 + }, + { + "name": "attackCategory", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 237 + }, + { + "name": "weaponCategory", + "type_name": "keen::ds::WeaponCategoryId", + "type_hash": 4165152206, + "data_offset": 240 + }, + { + "name": "targetFaction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 244 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.HitEvent[10]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::HitEvent", + "class_size": 2480, + "fields_count": 10, + "primitive_type": "StaticArray", + "hash1": 3799022968, + "hash2": 2816755911, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitHistory", + "type_name_2": "ecs.HitHistory", + "qualified_name": "keen::ds::ecs::HitHistory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 3048, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1317581479, + "hash2": 1010719570, + "struct_fields": [ + { + "name": "history", + "type_name": "keen::StaticArray", + "type_hash": 3799022968, + "data_offset": 0 + }, + { + "name": "targetTransform", + "type_name": "keen::StaticArray", + "type_hash": 1572946017, + "data_offset": 2480 + }, + { + "name": "lastIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3040 + }, + { + "name": "maxIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3044 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExperienceSource", + "type_name_2": "ecs.ExperienceSource", + "qualified_name": "keen::ds::ecs::ExperienceSource", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3061996545, + "hash2": 771163077, + "struct_fields": [ + { + "name": "lastHitPlayerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "xpMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogOfWarDiscovery", + "type_name_2": "ecs.FogOfWarDiscovery", + "qualified_name": "keen::ds::ecs::FogOfWarDiscovery", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3134377745, + "hash2": 2594115433, + "struct_fields": [ + { + "name": "discoveryRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogType", + "type_name_2": "FogType", + "qualified_name": "keen::ds::FogType", + "referenced_type_name": "keen::FogType", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 4105184217, + "hash2": 3083105105, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentSensor", + "type_name_2": "ecs.EnvironmentSensor", + "qualified_name": "keen::ds::ecs::EnvironmentSensor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2430684183, + "hash2": 2146271016, + "struct_fields": [ + { + "name": "fogType", + "type_name": "keen::ds::FogType", + "type_hash": 4105184217, + "data_offset": 0 + }, + { + "name": "temperature", + "type_name": "keen::ds::TemperatureVoxelType", + "type_hash": 1997707137, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleAnimation", + "type_name_2": "ecs.ToggleAnimation", + "qualified_name": "keen::ds::ecs::ToggleAnimation", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1587761170, + "hash2": 3712797994, + "struct_fields": [ + { + "name": "animationStateOn", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + }, + { + "name": "animationStateOff", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleOnHit", + "type_name_2": "ecs.ToggleOnHit", + "qualified_name": "keen::ds::ecs::ToggleOnHit", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2554578882, + "hash2": 3819618564, + "struct_fields": [ + { + "name": "disabledDamageTypes", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 0 + }, + { + "name": "canToggleOn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "canToggleOff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToSignalState", + "type_name_2": "ecs.LinkToggleStateToSignalState", + "qualified_name": "keen::ds::ecs::LinkToggleStateToSignalState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2013731681, + "hash2": 121181021, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToParentSignalState", + "type_name_2": "ecs.LinkToggleStateToParentSignalState", + "qualified_name": "keen::ds::ecs::LinkToggleStateToParentSignalState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3651904369, + "hash2": 121181021, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToParentToggleState", + "type_name_2": "ecs.LinkToggleStateToParentToggleState", + "qualified_name": "keen::ds::ecs::LinkToggleStateToParentToggleState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1662699721, + "hash2": 1498692295, + "struct_fields": [ + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkClientToggleStateToParentToggleState", + "type_name_2": "ecs.LinkClientToggleStateToParentToggleState", + "qualified_name": "keen::ds::ecs::LinkClientToggleStateToParentToggleState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3521848718, + "hash2": 1498692295, + "struct_fields": [ + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SendToggleStateToParentToggleState", + "type_name_2": "ecs.SendToggleStateToParentToggleState", + "qualified_name": "keen::ds::ecs::SendToggleStateToParentToggleState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3580640091, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToEnemyPhase", + "type_name_2": "ecs.LinkToggleStateToEnemyPhase", + "qualified_name": "keen::ds::ecs::LinkToggleStateToEnemyPhase", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2828894955, + "hash2": 1764431433, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 3058028847, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LinkToggleStateToParentEnemyPhase", + "type_name_2": "ecs.LinkToggleStateToParentEnemyPhase", + "qualified_name": "keen::ds::ecs::LinkToggleStateToParentEnemyPhase", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3542068539, + "hash2": 1764431433, + "struct_fields": [ + { + "name": "phase", + "type_name": "keen::ObjectReference", + "type_hash": 3058028847, + "data_offset": 0 + }, + { + "name": "targetState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SignalTransmitter", + "type_name_2": "ecs.SignalTransmitter", + "qualified_name": "keen::ds::ecs::SignalTransmitter", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 740757871, + "hash2": 2453455836, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 0 + }, + { + "name": "signalId", + "type_name": "keen::ds::SignalId", + "type_hash": 3676606186, + "data_offset": 16 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "sendActivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "sendDeactivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SignalReceiver", + "type_name_2": "ecs.SignalReceiver", + "qualified_name": "keen::ds::ecs::SignalReceiver", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2316251257, + "hash2": 1554703965, + "struct_fields": [ + { + "name": "signalId", + "type_name": "keen::ds::SignalId", + "type_hash": 3676606186, + "data_offset": 0 + }, + { + "name": "lastSenderId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "signal", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DelayMask", + "type_name_2": "DelayMask", + "qualified_name": "keen::ds::DelayMask", + "referenced_type_name": "keen::DelayMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1453344126, + "hash2": 3471065124, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SignalDelay", + "type_name_2": "ecs.SignalDelay", + "qualified_name": "keen::ds::ecs::SignalDelay", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2994065819, + "hash2": 3454440904, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "filterMask", + "type_name": "keen::ds::DelayMask", + "type_hash": 1453344126, + "data_offset": 8 + }, + { + "name": "toggleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "nextState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "initialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MagicalBarrier", + "type_name_2": "ecs.MagicalBarrier", + "qualified_name": "keen::ds::ecs::MagicalBarrier", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3487593517, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ecs::TemplateReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 198132194, + "hash2": 1540566014, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MagicalBarrierConnection", + "type_name_2": "ecs.MagicalBarrierConnection", + "qualified_name": "keen::ds::ecs::MagicalBarrierConnection", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2044209665, + "hash2": 2670315821, + "struct_fields": [ + { + "name": "initialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "barrierEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "spawnedSubentityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "spawnEntity", + "type_name": "keen::ObjectReference", + "type_hash": 198132194, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocalSignalReceiver", + "type_name_2": "ecs.LocalSignalReceiver", + "qualified_name": "keen::ds::ecs::LocalSignalReceiver", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2736010518, + "hash2": 3211888462, + "struct_fields": [ + { + "name": "signal", + "type_name": "keen::ds::SignalReference", + "type_hash": 1236084180, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "AttributeCommand[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::AttributeCommand", + "class_size": 128, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 1862829821, + "hash2": 1291998583, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SignalId[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::SignalId", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1576244307, + "hash2": 3125555926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MultiSignalReceiver", + "type_name_2": "ecs.MultiSignalReceiver", + "qualified_name": "keen::ds::ecs::MultiSignalReceiver", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 216, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4257745148, + "hash2": 1739093744, + "struct_fields": [ + { + "name": "evaluate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "calculation", + "type_name": "keen::StaticArray", + "type_hash": 1862829821, + "data_offset": 4 + }, + { + "name": "signalIds", + "type_name": "keen::StaticArray", + "type_hash": 1576244307, + "data_offset": 132 + }, + { + "name": "signalStates", + "type_name": "keen::StaticArray", + "type_hash": 3199495751, + "data_offset": 196 + }, + { + "name": "receiveActivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 212 + }, + { + "name": "receiveDeactivatedEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 213 + }, + { + "name": "hasEvaluatedToTrueOnce", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 214 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MultiSignalReceiverCounter", + "type_name_2": "ecs.MultiSignalReceiverCounter", + "qualified_name": "keen::ds::ecs::MultiSignalReceiverCounter", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3422395904, + "hash2": 325491105, + "struct_fields": [ + { + "name": "activeCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "requiredCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LoreReading", + "type_name_2": "ecs.LoreReading", + "qualified_name": "keen::ds::ecs::LoreReading", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 68, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1056371144, + "hash2": 3819759837, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "displayedItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "entryName", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 20 + }, + { + "name": "unlockMapMarker", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 36 + }, + { + "name": "displayedItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NonModalHint", + "type_name_2": "ecs.NonModalHint", + "qualified_name": "keen::ds::ecs::NonModalHint", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 136, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1569528261, + "hash2": 891118966, + "struct_fields": [ + { + "name": "hasCloseRangeActivation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "fullTextActivation", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "description", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 8 + }, + { + "name": "hasKnowledeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "useSceneKnowledgeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 28 + }, + { + "name": "queryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNonModalHint", + "type_name_2": "ecs.DynamicNonModalHint", + "qualified_name": "keen::ds::ecs::DynamicNonModalHint", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1666187148, + "hash2": 4046373121, + "struct_fields": [ + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isInCloseRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "squaredPlayerDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetingTransform", + "type_name_2": "ecs.TargetingTransform", + "qualified_name": "keen::ds::ecs::TargetingTransform", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 852599617, + "hash2": 3967656519, + "struct_fields": [ + { + "name": "attachmentSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiOffsets", + "type_name_2": "ecs.UiOffsets", + "qualified_name": "keen::ds::ecs::UiOffsets", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2514801786, + "hash2": 1033461821, + "struct_fields": [ + { + "name": "healthBarOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 0 + }, + { + "name": "interactionPromptOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Boss", + "type_name_2": "ecs.Boss", + "qualified_name": "keen::ds::ecs::Boss", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4035457641, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BossHealthBar", + "type_name_2": "ecs.BossHealthBar", + "qualified_name": "keen::ds::ecs::BossHealthBar", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 421653316, + "hash2": 554530027, + "struct_fields": [ + { + "name": "displayName", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "maxPlayerDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BossDisplay", + "type_name_2": "ecs.BossDisplay", + "qualified_name": "keen::ds::ecs::BossDisplay", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3914694209, + "hash2": 1138548059, + "struct_fields": [ + { + "name": "rangeQueryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "bossEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "displayHealthBar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "isEngagedWithPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "displayName", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BossMusicTag", + "type_name_2": "ecs.BossMusicTag", + "qualified_name": "keen::ds::ecs::BossMusicTag", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2729878752, + "hash2": 1935585425, + "struct_fields": [ + { + "name": "bossMusic", + "type_name": "keen::ds::BossMusicType", + "type_hash": 1756930053, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Faction", + "type_name_2": "ecs.Faction", + "qualified_name": "keen::ds::ecs::Faction", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 618523384, + "hash2": 1428119214, + "struct_fields": [ + { + "name": "faction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ControlCombatTarget", + "type_name_2": "ecs.ControlCombatTarget", + "qualified_name": "keen::ds::ecs::ControlCombatTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1747219772, + "hash2": 2871811453, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "attackSequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemState", + "type_name_2": "ecs.ItemState", + "qualified_name": "keen::ds::ecs::ItemState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3215917928, + "hash2": 425907482, + "struct_fields": [ + { + "name": "containedInSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 8 + }, + { + "name": "baseDamageUi", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "itemState", + "type_name": "keen::ds::ItemStateMask", + "type_hash": 4153915441, + "data_offset": 14 + }, + { + "name": "itemRarityUi", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 15 + }, + { + "name": "itemLevelUi", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "durabilityRatioUi", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateItemLootState", + "type_name_2": "ecs.CreateItemLootState", + "qualified_name": "keen::ds::ecs::CreateItemLootState", + "referenced_type_name": "keen::ecs::CreateItemLootState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2185366094, + "hash2": 2488789961, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CreateItemLoot", + "type_name_2": "ecs.CreateItemLoot", + "qualified_name": "keen::ds::ecs::CreateItemLoot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1368140045, + "hash2": 1616346294, + "struct_fields": [ + { + "name": "lootCreationState", + "type_name": "keen::ds::ecs::CreateItemLootState", + "type_hash": 2185366094, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemEquippedLifetime", + "type_name_2": "ecs.ItemEquippedLifetime", + "qualified_name": "keen::ds::ecs::ItemEquippedLifetime", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2199401969, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnedCollectionItem", + "type_name_2": "ecs.SpawnedCollectionItem", + "qualified_name": "keen::ds::ecs::SpawnedCollectionItem", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 79570397, + "hash2": 3765928597, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "modelHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemCollectionSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2001420082, + "hash2": 956358330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemCollectionSlotResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemCollectionSlotResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 438320381, + "hash2": 1054901713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionComponent", + "type_name_2": "ecs.ItemCollectionComponent", + "qualified_name": "keen::ds::ecs::ItemCollectionComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 152, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 596655842, + "hash2": 835983205, + "struct_fields": [ + { + "name": "uiMenuName", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "uiSlottingVerb", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 16 + }, + { + "name": "spawnCollectionModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "collection", + "type_name": "keen::ObjectReference", + "type_hash": 2001420082, + "data_offset": 36 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2934938658, + "data_offset": 52 + }, + { + "name": "pose", + "type_name": "keen::ObjectReference", + "type_hash": 3685036728, + "data_offset": 68 + }, + { + "name": "clothColliderReference", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 84 + }, + { + "name": "slots", + "type_name": "keen::DsArray", + "type_hash": 438320381, + "data_offset": 104 + }, + { + "name": "poseId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.SpawnedCollectionItem[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::SpawnedCollectionItem", + "class_size": 64, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1930336179, + "hash2": 3376913524, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicItemCollectionComponent", + "type_name_2": "ecs.DynamicItemCollectionComponent", + "qualified_name": "keen::ds::ecs::DynamicItemCollectionComponent", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 540184529, + "hash2": 2431835132, + "struct_fields": [ + { + "name": "spawnedCollectionItems", + "type_name": "keen::StaticArray", + "type_hash": 1930336179, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerCollectionCompletionKnowledge", + "type_name_2": "ecs.TriggerCollectionCompletionKnowledge", + "qualified_name": "keen::ds::ecs::TriggerCollectionCompletionKnowledge", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3001763938, + "hash2": 3237181849, + "struct_fields": [ + { + "name": "completionKnowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MovementSensor", + "type_name_2": "ecs.MovementSensor", + "qualified_name": "keen::ds::ecs::MovementSensor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 240533699, + "hash2": 1351588975, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FleeSensor", + "type_name_2": "ecs.FleeSensor", + "qualified_name": "keen::ds::ecs::FleeSensor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 72, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2812868206, + "hash2": 1334871144, + "struct_fields": [ + { + "name": "viewConeHalfAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "alertZoneMediumWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "originalFleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "fleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "checkViewCone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "checkBackCone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "ignoreCalmEnemiesUntilTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "alertState", + "type_name": "keen::ds::ecs::AlertState", + "type_hash": 529349931, + "data_offset": 32 + }, + { + "name": "highestDangerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 36 + }, + { + "name": "highestDangerPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 40 + }, + { + "name": "forceUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FriendSensor", + "type_name_2": "ecs.FriendSensor", + "qualified_name": "keen::ds::ecs::FriendSensor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4011567742, + "hash2": 1888700324, + "struct_fields": [ + { + "name": "checkRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "friendsInRange", + "type_name": "keen::StaticArray", + "type_hash": 872988250, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemySensor", + "type_name_2": "ecs.EnemySensor", + "qualified_name": "keen::ds::ecs::EnemySensor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4203573514, + "hash2": 607278739, + "struct_fields": [ + { + "name": "checkRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "enemiesInRange", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CheckLineAboveSensor", + "type_name_2": "ecs.CheckLineAboveSensor", + "qualified_name": "keen::ds::ecs::CheckLineAboveSensor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3220504629, + "hash2": 1468215164, + "struct_fields": [ + { + "name": "lineCheckHeightAbove", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SafePlayerPosition", + "type_name_2": "ecs.SafePlayerPosition", + "qualified_name": "keen::ds::ecs::SafePlayerPosition", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3331879651, + "hash2": 3074253615, + "struct_fields": [ + { + "name": "minSafeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "minFallHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicSafePlayerPosition", + "type_name_2": "ecs.DynamicSafePlayerPosition", + "qualified_name": "keen::ds::ecs::DynamicSafePlayerPosition", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2476498726, + "hash2": 3188160514, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "currentSafeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Crafting", + "type_name_2": "ecs.Crafting", + "qualified_name": "keen::ds::ecs::Crafting", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1034204598, + "hash2": 1129739686, + "struct_fields": [ + { + "name": "workshop", + "type_name": "keen::ObjectReference", + "type_hash": 224738262, + "data_offset": 0 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelBasedModel", + "type_name_2": "ecs.LevelBasedModel", + "qualified_name": "keen::ds::ecs::LevelBasedModel", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1279863978, + "hash2": 1883878054, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelBasedBuildingRange", + "type_name_2": "ecs.LevelBasedBuildingRange", + "qualified_name": "keen::ds::ecs::LevelBasedBuildingRange", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2282681458, + "hash2": 3924036403, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "box", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UpgradableBuildingRange", + "type_name_2": "ecs.UpgradableBuildingRange", + "qualified_name": "keen::ds::ecs::UpgradableBuildingRange", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 894883790, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UpgradeData", + "type_name_2": "ecs.UpgradeData", + "qualified_name": "keen::ds::ecs::UpgradeData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2440996604, + "hash2": 549828920, + "struct_fields": [ + { + "name": "upgradeEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.UpgradeData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::UpgradeData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 306766285, + "hash2": 3773695410, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Upgrade", + "type_name_2": "ecs.Upgrade", + "qualified_name": "keen::ds::ecs::Upgrade", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2835116340, + "hash2": 4123830201, + "struct_fields": [ + { + "name": "levels", + "type_name": "keen::DsArray", + "type_hash": 306766285, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicUpgrade", + "type_name_2": "ecs.DynamicUpgrade", + "qualified_name": "keen::ds::ecs::DynamicUpgrade", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 364050483, + "hash2": 931371860, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "spawnedLevel", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StoreAttributes", + "type_name_2": "ecs.StoreAttributes", + "qualified_name": "keen::ds::ecs::StoreAttributes", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2383230304, + "hash2": 254228010, + "struct_fields": [ + { + "name": "health", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "stamina", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "mana", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "bodyHeat", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "restoreAttributes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassEffector", + "type_name_2": "ecs.GrassEffector", + "qualified_name": "keen::ds::ecs::GrassEffector", + "referenced_type_name": "keen::ds::ecs::VfxComponent", + "class_size": 52, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3911568390, + "hash2": 3696544978, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SnappingBoxWorld", + "type_name_2": "ecs.SnappingBoxWorld", + "qualified_name": "keen::ds::ecs::SnappingBoxWorld", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3013420315, + "hash2": 564173664, + "struct_fields": [ + { + "name": "worldBox", + "type_name": "keen::ds::ecs::AlignedBox", + "type_hash": 2353925061, + "data_offset": 0 + }, + { + "name": "snappingBox", + "type_name": "keen::ds::ecs::AlignedBox", + "type_hash": 2353925061, + "data_offset": 24 + }, + { + "name": "containedItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 48 + }, + { + "name": "version", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnappingBoxLocal", + "type_name_2": "ecs.SnappingBoxLocal", + "qualified_name": "keen::ds::ecs::SnappingBoxLocal", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3716766592, + "hash2": 1789103617, + "struct_fields": [ + { + "name": "localBox", + "type_name": "keen::ds::ecs::AlignedBox", + "type_hash": 2353925061, + "data_offset": 0 + }, + { + "name": "containedItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemporaryMining", + "type_name_2": "ecs.TemporaryMining", + "qualified_name": "keen::ds::ecs::TemporaryMining", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3798786631, + "hash2": 2741889539, + "struct_fields": [ + { + "name": "voxelPosition", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "relativeHealth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCycleInventoryStock", + "type_name_2": "ecs.ClientCycleInventoryStock", + "qualified_name": "keen::ds::ecs::ClientCycleInventoryStock", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1707378929, + "hash2": 1288566004, + "struct_fields": [ + { + "name": "inventoryStockType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "canCycle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "isCyclingDisabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "showStock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientLineOfSightState", + "type_name_2": "ecs.ClientLineOfSightState", + "qualified_name": "keen::ds::ecs::ClientLineOfSightState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 985267330, + "hash2": 103479257, + "struct_fields": [ + { + "name": "lineOfSightState", + "type_name": "keen::ds::ecs::LineOfSightState", + "type_hash": 1566349941, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiNpcRenderingOptions", + "type_name_2": "UiNpcRenderingOptions", + "qualified_name": "keen::ds::UiNpcRenderingOptions", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4011500566, + "hash2": 1512291427, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "defaultAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 16 + }, + { + "name": "defaultAnimationStateId", + "type_name": "keen::ds::animationgraph::StateIdHash", + "type_hash": 2323396395, + "data_offset": 32 + }, + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 2358948672, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcSetup", + "type_name_2": "ecs.NpcSetup", + "qualified_name": "keen::ds::ecs::NpcSetup", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 224, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2395788528, + "hash2": 133964771, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "includeInNpcRegistry", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "isCraftingAssistant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "workshopLabel", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 20 + }, + { + "name": "preset", + "type_name": "keen::ds::CharacterPresetReference", + "type_hash": 1126720570, + "data_offset": 36 + }, + { + "name": "unlockRequirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 52 + }, + { + "name": "placementItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 156 + }, + { + "name": "uiRendering", + "type_name": "keen::ds::UiNpcRenderingOptions", + "type_hash": 4011500566, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterSetup", + "type_name_2": "ecs.CharacterSetup", + "qualified_name": "keen::ds::ecs::CharacterSetup", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 44, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 867954984, + "hash2": 552365329, + "struct_fields": [ + { + "name": "gender", + "type_name": "keen::ds::Gender", + "type_hash": 4279931246, + "data_offset": 0 + }, + { + "name": "voicePackId", + "type_name": "keen::ds::VoicePackId", + "type_hash": 949852083, + "data_offset": 4 + }, + { + "name": "presetId", + "type_name": "keen::ds::CharacterPresetId", + "type_hash": 3120811008, + "data_offset": 8 + }, + { + "name": "hair", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 12 + }, + { + "name": "beard", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "hairColorId", + "type_name": "keen::ds::ColorPresetId", + "type_hash": 2736759512, + "data_offset": 20 + }, + { + "name": "beardColorId", + "type_name": "keen::ds::ColorPresetId", + "type_hash": 2736759512, + "data_offset": 24 + }, + { + "name": "skinColor", + "type_name": "keen::ds::PaletteColorId", + "type_hash": 3143764908, + "data_offset": 28 + }, + { + "name": "eyeBrowColor", + "type_name": "keen::ds::PaletteColorId", + "type_hash": 3143764908, + "data_offset": 32 + }, + { + "name": "eyeColor", + "type_name": "keen::ds::PaletteColorId", + "type_hash": 3143764908, + "data_offset": 36 + }, + { + "name": "versionHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NewCharacterSetup", + "type_name_2": "ecs.NewCharacterSetup", + "qualified_name": "keen::ds::ecs::NewCharacterSetup", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1753892786, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentCheck", + "type_name_2": "ecs.EquipmentCheck", + "qualified_name": "keen::ds::ecs::EquipmentCheck", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1796160520, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerLowHealth", + "type_name_2": "ecs.PlayerLowHealth", + "qualified_name": "keen::ds::ecs::PlayerLowHealth", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1847432091, + "hash2": 395862060, + "struct_fields": [ + { + "name": "blendOutDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "lastTriggerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GroundCheck", + "type_name_2": "ecs.GroundCheck", + "qualified_name": "keen::ds::ecs::GroundCheck", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3002720949, + "hash2": 2901946219, + "struct_fields": [ + { + "name": "groundPositionFound", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ProcShuffleBag", + "type_name_2": "ecs.ProcShuffleBag", + "qualified_name": "keen::ds::ecs::ProcShuffleBag", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4098587461, + "hash2": 2302118629, + "struct_fields": [ + { + "name": "procEarlyCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "procOnTimeCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "procLateCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "nextHitCountOffset", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainLootMemory", + "type_name_2": "ecs.TerrainLootMemory", + "qualified_name": "keen::ds::ecs::TerrainLootMemory", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2413859812, + "hash2": 369222283, + "struct_fields": [ + { + "name": "procShuffleBag", + "type_name": "keen::ds::ecs::ProcShuffleBag", + "type_hash": 4098587461, + "data_offset": 0 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "restVolumeAfterPayout", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingLootMemory", + "type_name_2": "ecs.BuildingLootMemory", + "qualified_name": "keen::ds::ecs::BuildingLootMemory", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 650724469, + "hash2": 2128369672, + "struct_fields": [ + { + "name": "volume", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MinerSkillMemory", + "type_name_2": "ecs.MinerSkillMemory", + "qualified_name": "keen::ds::ecs::MinerSkillMemory", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1032975955, + "hash2": 1922124045, + "struct_fields": [ + { + "name": "procShuffleBag", + "type_name": "keen::ds::ecs::ProcShuffleBag", + "type_hash": 4098587461, + "data_offset": 0 + }, + { + "name": "payoutCounter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.TerrainLootMemory[128]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::TerrainLootMemory", + "class_size": 1536, + "fields_count": 128, + "primitive_type": "StaticArray", + "hash1": 76229923, + "hash2": 813114754, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.BuildingLootMemory[128]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::BuildingLootMemory", + "class_size": 512, + "fields_count": 128, + "primitive_type": "StaticArray", + "hash1": 4212471952, + "hash2": 1776321592, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingLootMemory", + "type_name_2": "ecs.TerraformingLootMemory", + "qualified_name": "keen::ds::ecs::TerraformingLootMemory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 2056, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 515936045, + "hash2": 3783262493, + "struct_fields": [ + { + "name": "terrainMemory", + "type_name": "keen::StaticArray", + "type_hash": 76229923, + "data_offset": 0 + }, + { + "name": "buildingMemory", + "type_name": "keen::StaticArray", + "type_hash": 4212471952, + "data_offset": 1536 + }, + { + "name": "minerSkillMemory", + "type_name": "keen::ds::ecs::MinerSkillMemory", + "type_hash": 1032975955, + "data_offset": 2048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransformToLoot", + "type_name_2": "ecs.TransformToLoot", + "qualified_name": "keen::ds::ecs::TransformToLoot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 176, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3610723439, + "hash2": 3337378627, + "struct_fields": [ + { + "name": "vfxOnSpawnOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 0 + }, + { + "name": "defaultInventory", + "type_name": "keen::ds::ecs::DefaultInventoryReference", + "type_hash": 2114403164, + "data_offset": 40 + }, + { + "name": "defaultAction", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 56 + }, + { + "name": "verbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 72 + }, + { + "name": "vfxOnSpawn", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 88 + }, + { + "name": "vfxParameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 104 + }, + { + "name": "genericSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 168 + }, + { + "name": "availableSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 169 + }, + { + "name": "keepDefaultInventory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 170 + }, + { + "name": "lootHealth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerStateIndicatorComponent", + "type_name_2": "ecs.PlayerStateIndicatorComponent", + "qualified_name": "keen::ds::ecs::PlayerStateIndicatorComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 958636742, + "hash2": 1194009170, + "struct_fields": [ + { + "name": "soundContainerLowHealth", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "soundContainerLowFogPower", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "sfxLowHealthHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "sfxLowFogPowerHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Pacify", + "type_name_2": "ecs.Pacify", + "qualified_name": "keen::ds::ecs::Pacify", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3401405954, + "hash2": 3173371298, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "pacifyFactions", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PacifiedState", + "type_name_2": "ecs.PacifiedState", + "qualified_name": "keen::ds::ecs::PacifiedState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3933865300, + "hash2": 1606591798, + "struct_fields": [ + { + "name": "canBePacified", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isPacified", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "wasPacifyAborted", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "pacifiedBy", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "pacifyEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallFactionsForHelp", + "type_name_2": "ecs.CallFactionsForHelp", + "qualified_name": "keen::ds::ecs::CallFactionsForHelp", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1230186263, + "hash2": 1337007898, + "struct_fields": [ + { + "name": "callForHelpRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "callForHelpFactions", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 4 + }, + { + "name": "currentGuardingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugCameraDisplay", + "type_name_2": "ecs.DebugCameraDisplay", + "qualified_name": "keen::ds::ecs::DebugCameraDisplay", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2899031758, + "hash2": 1338117903, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::float3x4", + "type_hash": 1949183617, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatFlags", + "type_name_2": "ecs.CombatFlags", + "qualified_name": "keen::ds::ecs::CombatFlags", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 11, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1055476091, + "hash2": 665518348, + "struct_fields": [ + { + "name": "immune", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "propagateHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "handleHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "canBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "ignoreMagic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "ignoreMelee", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "ignoreRanged", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "ignoreTool", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "ignoreOther", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "ignoreAoE", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "canBeBackstabbed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleImmunity", + "type_name_2": "ecs.ToggleImmunity", + "qualified_name": "keen::ds::ecs::ToggleImmunity", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 439710526, + "hash2": 1133931085, + "struct_fields": [ + { + "name": "toggleModifier", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomOrientation", + "type_name_2": "ecs.RandomOrientation", + "qualified_name": "keen::ds::ecs::RandomOrientation", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3451722355, + "hash2": 3804685383, + "struct_fields": [ + { + "name": "randomOrientationOffset", + "type_name": "keen::ds::actor::RandomOrientationOffset", + "type_hash": 2922133248, + "data_offset": 0 + }, + { + "name": "needsTargetEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "adjustVelocity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomDurationScale", + "type_name_2": "ecs.RandomDurationScale", + "qualified_name": "keen::ds::ecs::RandomDurationScale", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 429710915, + "hash2": 2881449500, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelRequirement[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelRequirement", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3923651217, + "hash2": 3267497206, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Growth", + "type_name_2": "ecs.Growth", + "qualified_name": "keen::ds::ecs::Growth", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3289104775, + "hash2": 738335309, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "randomDurationScale", + "type_name": "keen::ds::ecs::RandomDurationScale", + "type_hash": 429710915, + "data_offset": 8 + }, + { + "name": "allowedSoil", + "type_name": "keen::DsArray", + "type_hash": 3923651217, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrowthHint", + "type_name_2": "ecs.GrowthHint", + "qualified_name": "keen::ds::ecs::GrowthHint", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2779977318, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicGrowth", + "type_name_2": "ecs.DynamicGrowth", + "qualified_name": "keen::ds::ecs::DynamicGrowth", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1046608746, + "hash2": 1145879536, + "struct_fields": [ + { + "name": "nextLevelTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.EntityTagReferenceEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::EntityTagReferenceEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3754826803, + "hash2": 2384401250, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagContainer", + "type_name_2": "ecs.EntityTagContainer", + "qualified_name": "keen::ds::ecs::EntityTagContainer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2767467908, + "hash2": 1749914547, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 3754826803, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CombatStance", + "type_name_2": "ecs.CombatStance", + "qualified_name": "keen::ds::ecs::CombatStance", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2272537608, + "hash2": 2578041978, + "struct_fields": [ + { + "name": "combatStanceDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "combatStanceEndTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BenchmarkPoint", + "type_name_2": "ecs.BenchmarkPoint", + "qualified_name": "keen::ds::ecs::BenchmarkPoint", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3286016367, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CopyParentDamageSusceptibility", + "type_name_2": "ecs.CopyParentDamageSusceptibility", + "qualified_name": "keen::ds::ecs::CopyParentDamageSusceptibility", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1817318933, + "hash2": 4277288041, + "struct_fields": [ + { + "name": "keepSkillShotAttribute", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetachAction", + "type_name_2": "ecs.DetachAction", + "qualified_name": "keen::ds::ecs::DetachAction", + "referenced_type_name": "keen::ecs::DetachAction", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2847869157, + "hash2": 531553318, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttachmentDirection", + "type_name_2": "ecs.AttachmentDirection", + "qualified_name": "keen::ds::ecs::AttachmentDirection", + "referenced_type_name": "keen::ecs::AttachmentDirection", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2276277034, + "hash2": 3716233053, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttachToSurface", + "type_name_2": "ecs.AttachToSurface", + "qualified_name": "keen::ds::ecs::AttachToSurface", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3455212311, + "hash2": 3258108395, + "struct_fields": [ + { + "name": "detachAction", + "type_name": "keen::ds::ecs::DetachAction", + "type_hash": 2847869157, + "data_offset": 0 + }, + { + "name": "detachActionInBase", + "type_name": "keen::ds::ecs::DetachAction", + "type_hash": 2847869157, + "data_offset": 1 + }, + { + "name": "attachDirection", + "type_name": "keen::ds::ecs::AttachmentDirection", + "type_hash": 2276277034, + "data_offset": 2 + }, + { + "name": "searchLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "colliderMask", + "type_name": "keen::ds::ecs::ColliderMask", + "type_hash": 2685334588, + "data_offset": 8 + }, + { + "name": "yOffset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "spawnFalling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicAttachToSurface", + "type_name_2": "ecs.DynamicAttachToSurface", + "qualified_name": "keen::ds::ecs::DynamicAttachToSurface", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1158433544, + "hash2": 665481511, + "struct_fields": [ + { + "name": "searchStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "nextCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "attachmentContainerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "hasFoundContainer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "shouldDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "hasAddedGravity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DangerousArea", + "type_name_2": "ecs.DangerousArea", + "qualified_name": "keen::ds::ecs::DangerousArea", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1978733137, + "hash2": 2830092889, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DangerSensor", + "type_name_2": "ecs.DangerSensor", + "qualified_name": "keen::ds::ecs::DangerSensor", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3042735173, + "hash2": 1888653390, + "struct_fields": [ + { + "name": "checkRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicDangerSensor", + "type_name_2": "ecs.DynamicDangerSensor", + "qualified_name": "keen::ds::ecs::DynamicDangerSensor", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2343748308, + "hash2": 4682563, + "struct_fields": [ + { + "name": "hasFoundDangerousEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyParentLevel", + "type_name_2": "ecs.CopyParentLevel", + "qualified_name": "keen::ds::ecs::CopyParentLevel", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1193942549, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerSubmerge", + "type_name_2": "ecs.ServerSubmerge", + "qualified_name": "keen::ds::ecs::ServerSubmerge", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 88455357, + "hash2": 726964297, + "struct_fields": [ + { + "name": "submergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "maxMaterialSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "lerpStartValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "lerpEndValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "lerpDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lerpTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NetworkSubmerge", + "type_name_2": "ecs.NetworkSubmerge", + "qualified_name": "keen::ds::ecs::NetworkSubmerge", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3901145904, + "hash2": 3527118783, + "struct_fields": [ + { + "name": "submergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientSubmerge", + "type_name_2": "ecs.ClientSubmerge", + "qualified_name": "keen::ds::ecs::ClientSubmerge", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2501248425, + "hash2": 3968937508, + "struct_fields": [ + { + "name": "submergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "interpolationSource", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "interpolationTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "interpolationNewestTick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SongState", + "type_name_2": "ecs.SongState", + "qualified_name": "keen::ds::ecs::SongState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2618839282, + "hash2": 817306385, + "struct_fields": [ + { + "name": "joinTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "songStartTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "songId", + "type_name": "keen::ds::SongId", + "type_hash": 687496403, + "data_offset": 16 + }, + { + "name": "songClusterId", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomPlayerString", + "type_name_2": "ecs.CustomPlayerString", + "qualified_name": "keen::ds::ecs::CustomPlayerString", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1989220699, + "hash2": 2799867681, + "struct_fields": [ + { + "name": "stringId", + "type_name": "keen::ds::CustomStringId", + "type_hash": 240298568, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SongSelection", + "type_name_2": "ecs.SongSelection", + "qualified_name": "keen::ds::ecs::SongSelection", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 671192633, + "hash2": 3413083545, + "struct_fields": [ + { + "name": "selectedSongId", + "type_name": "keen::ds::SongId", + "type_hash": 687496403, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Extinguish", + "type_name_2": "ecs.Extinguish", + "qualified_name": "keen::ds::ecs::Extinguish", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 740541224, + "hash2": 3280331194, + "struct_fields": [ + { + "name": "extinguishSfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicExtinguish", + "type_name_2": "ecs.DynamicExtinguish", + "qualified_name": "keen::ds::ecs::DynamicExtinguish", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2261213833, + "hash2": 3265829246, + "struct_fields": [ + { + "name": "extinguishDetectionTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "lastToggle", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "extinguishValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "switchedToggleOff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientExtinguish", + "type_name_2": "ecs.ClientExtinguish", + "qualified_name": "keen::ds::ecs::ClientExtinguish", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4291675379, + "hash2": 1390255575, + "struct_fields": [ + { + "name": "lastNotifyTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "visualizedExtinguishValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedExtinguish", + "type_name_2": "ecs.PackedExtinguish", + "qualified_name": "keen::ds::ecs::PackedExtinguish", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3155061328, + "hash2": 191520359, + "struct_fields": [ + { + "name": "lastToggleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "extinguishValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "switchedToggleOff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoodBait", + "type_name_2": "ecs.FoodBait", + "qualified_name": "keen::ds::ecs::FoodBait", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2097514804, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RayCastSpawner", + "type_name_2": "ecs.RayCastSpawner", + "qualified_name": "keen::ds::ecs::RayCastSpawner", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3124016193, + "hash2": 501035384, + "struct_fields": [ + { + "name": "spawnTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "rayOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + }, + { + "name": "requiredDistanceToSpawnEntity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "minLifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "maxLifeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicRayCastSpawner", + "type_name_2": "ecs.DynamicRayCastSpawner", + "qualified_name": "keen::ds::ecs::DynamicRayCastSpawner", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3034996840, + "hash2": 1277239563, + "struct_fields": [ + { + "name": "lastSpawnPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterSurfaceFX", + "type_name_2": "ecs.WaterSurfaceFX", + "qualified_name": "keen::ds::ecs::WaterSurfaceFX", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 72, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2478213916, + "hash2": 4176548348, + "struct_fields": [ + { + "name": "standingVfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + }, + { + "name": "movingVfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 16 + }, + { + "name": "waterSfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "vfxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "sfxHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "previousPlayerPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + }, + { + "name": "playerWasMoving", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MoveColliderWithRay", + "type_name_2": "ecs.MoveColliderWithRay", + "qualified_name": "keen::ds::ecs::MoveColliderWithRay", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3056247507, + "hash2": 3368302907, + "struct_fields": [ + { + "name": "targetLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "increaseLengthDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicMoveColliderWithRay", + "type_name_2": "ecs.DynamicMoveColliderWithRay", + "qualified_name": "keen::ds::ecs::DynamicMoveColliderWithRay", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1811055248, + "hash2": 3581260137, + "struct_fields": [ + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterDispenser", + "type_name_2": "ecs.WaterDispenser", + "qualified_name": "keen::ds::ecs::WaterDispenser", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3853024270, + "hash2": 2520595721, + "struct_fields": [ + { + "name": "visualOnly", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterDrain", + "type_name_2": "ecs.WaterDrain", + "qualified_name": "keen::ds::ecs::WaterDrain", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2843053887, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameMessageChannelId", + "type_name_2": "GameMessageChannelId", + "qualified_name": "keen::ds::GameMessageChannelId", + "referenced_type_name": "keen::GameMessageChannelId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3959060730, + "hash2": 3323240171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameMessageLoginType", + "type_name_2": "GameMessageLoginType", + "qualified_name": "keen::ds::GameMessageLoginType", + "referenced_type_name": "keen::GameMessageLoginType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 931704529, + "hash2": 3399791569, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameMessageLoginErrors", + "type_name_2": "GameMessageLoginErrors", + "qualified_name": "keen::ds::GameMessageLoginErrors", + "referenced_type_name": "keen::GameMessageLoginErrors", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2088731242, + "hash2": 3557224783, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameMessageLoginResult", + "type_name_2": "GameMessageLoginResult", + "qualified_name": "keen::ds::GameMessageLoginResult", + "referenced_type_name": "keen::GameMessageLoginResult", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1352056600, + "hash2": 2137270096, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DaytimeSync", + "type_name_2": "DaytimeSync", + "qualified_name": "keen::ds::DaytimeSync", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1770352569, + "hash2": 4274597090, + "struct_fields": [ + { + "name": "ecsTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "gameTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "gameTimeScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugMessage", + "type_name_2": "DebugMessage", + "qualified_name": "keen::ds::DebugMessage", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1255192397, + "hash2": 522634650, + "struct_fields": [ + { + "name": "cameraTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnownUserData", + "type_name_2": "KnownUserData", + "qualified_name": "keen::ds::KnownUserData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2129201361, + "hash2": 1856293382, + "struct_fields": [ + { + "name": "characterId", + "type_name": "keen::ds::CharacterId", + "type_hash": 1186517035, + "data_offset": 0 + }, + { + "name": "baseId", + "type_name": "keen::ds::BaseId", + "type_hash": 296553055, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "KnownUserData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::KnownUserData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 96147432, + "hash2": 3541566261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnownUsers", + "type_name_2": "KnownUsers", + "qualified_name": "keen::ds::KnownUsers", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3037991798, + "hash2": 2054011815, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "users", + "type_name": "keen::DsArray", + "type_hash": 96147432, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseState", + "type_name_2": "BaseState", + "qualified_name": "keen::ds::BaseState", + "referenced_type_name": "keen::BaseState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 324497367, + "hash2": 2958289638, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntitySaveData", + "type_name_2": "EntitySaveData", + "qualified_name": "keen::ds::EntitySaveData", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2004445045, + "hash2": 1712675127, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "forcedSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "entityData", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseSaveData", + "type_name_2": "BaseSaveData", + "qualified_name": "keen::ds::BaseSaveData", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 672222695, + "hash2": 1683944932, + "struct_fields": [ + { + "name": "baseId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "buildZone", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 16 + }, + { + "name": "voxel", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 48 + }, + { + "name": "water", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BaseSaveData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BaseSaveData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 203277540, + "hash2": 1801120373, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "EntitySaveData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::EntitySaveData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1372860910, + "hash2": 3831132666, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerSaveGame", + "type_name_2": "ServerSaveGame", + "qualified_name": "keen::ds::ServerSaveGame", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 580997387, + "hash2": 253210794, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "bases", + "type_name": "keen::DsArray", + "type_hash": 203277540, + "data_offset": 8 + }, + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 1372860910, + "data_offset": 48 + }, + { + "name": "progressEntity", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 88 + }, + { + "name": "entitySerializationContext", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 128 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerSaveGameVersion", + "type_name_2": "ServerSaveGameVersion", + "qualified_name": "keen::ds::ServerSaveGameVersion", + "referenced_type_name": "keen::ServerSaveGameVersion", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2707253477, + "hash2": 3325940829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExtendedServerSaveGame", + "type_name_2": "ExtendedServerSaveGame", + "qualified_name": "keen::ds::ExtendedServerSaveGame", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3715331334, + "hash2": 3750063922, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sceneOffsetChangeCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "dayTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExtendedServerSaveGameVersion", + "type_name_2": "ExtendedServerSaveGameVersion", + "qualified_name": "keen::ds::ExtendedServerSaveGameVersion", + "referenced_type_name": "keen::ExtendedServerSaveGameVersion", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3854438570, + "hash2": 3608657732, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsPreset", + "type_name_2": "ecs.GameSettingsPreset", + "qualified_name": "keen::ds::ecs::GameSettingsPreset", + "referenced_type_name": "keen::ecs::GameSettingsPreset", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 2718665048, + "hash2": 344586110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerSaveGameMeta", + "type_name_2": "ServerSaveGameMeta", + "qualified_name": "keen::ds::ServerSaveGameMeta", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 351774582, + "hash2": 4148426085, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "lastPlayTime", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 8 + }, + { + "name": "progressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 24 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "gameSettingsPreset", + "type_name": "keen::ds::ecs::GameSettingsPreset", + "type_hash": 2718665048, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockedItemKnowledgeSave", + "type_name_2": "UnlockedItemKnowledgeSave", + "qualified_name": "keen::ds::UnlockedItemKnowledgeSave", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 858126182, + "hash2": 2443947171, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 4 + }, + { + "name": "knowledge", + "type_name": "keen::ds::ItemKnowledgeMask", + "type_hash": 824525052, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CustomMapMarker[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CustomMapMarker", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3570276163, + "hash2": 2786579783, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CustomMapMarkerArray", + "type_name_2": "CustomMapMarkerArray", + "qualified_name": "keen::ds::CustomMapMarkerArray", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2214784981, + "hash2": 1923009450, + "struct_fields": [ + { + "name": "mapMarkers", + "type_name": "keen::DsArray", + "type_hash": 3570276163, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterSaveGameEntry", + "type_name_2": "CharacterSaveGameEntry", + "qualified_name": "keen::ds::CharacterSaveGameEntry", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3581922095, + "hash2": 3218810922, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::ds::CharacterId", + "type_hash": 1186517035, + "data_offset": 40 + }, + { + "name": "cloudId", + "type_name": "keen::ds::CharacterId", + "type_hash": 1186517035, + "data_offset": 56 + }, + { + "name": "lastPlayTime", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 72 + }, + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 84 + }, + { + "name": "stateMask", + "type_name": "keen::ds::CharacterStateMask", + "type_hash": 2366221823, + "data_offset": 88 + }, + { + "name": "customMapMarker", + "type_name": "keen::ds::CustomMapMarkerArray", + "type_hash": 2214784981, + "data_offset": 96 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemColorSetupInternal", + "type_name_2": "ItemColorSetupInternal", + "qualified_name": "keen::ds::ItemColorSetupInternal", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1748854273, + "hash2": 3024853326, + "struct_fields": [ + { + "name": "colorIds", + "type_name": "keen::ds::ColorCombinationResource", + "type_hash": 931469913, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OutfitItemData", + "type_name_2": "OutfitItemData", + "qualified_name": "keen::ds::OutfitItemData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3284154055, + "hash2": 11694353, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "colors", + "type_name": "keen::ds::ItemColorSetupInternal", + "type_hash": 1748854273, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "OutfitItemData[24]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::OutfitItemData", + "class_size": 480, + "fields_count": 24, + "primitive_type": "StaticArray", + "hash1": 4292783497, + "hash2": 1134977848, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OutfitArray", + "type_name_2": "OutfitArray", + "qualified_name": "keen::ds::OutfitArray", + "referenced_type_name": null, + "class_size": 480, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1154785389, + "hash2": 401651462, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 4292783497, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterOutfit", + "type_name_2": "CharacterOutfit", + "qualified_name": "keen::ds::CharacterOutfit", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 892030633, + "hash2": 3487094552, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "items", + "type_name": "keen::ds::OutfitArray", + "type_hash": 1154785389, + "data_offset": 4 + }, + { + "name": "setup", + "type_name": "keen::ds::ecs::CharacterSetup", + "type_hash": 867954984, + "data_offset": 484 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseSaveDataV6", + "type_name_2": "old_saves.v6.BaseSaveDataV6", + "qualified_name": "keen::ds::old_saves::v6::BaseSaveDataV6", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 79683649, + "hash2": 627684275, + "struct_fields": [ + { + "name": "baseId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "buildZone", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 16 + }, + { + "name": "DEPRECATEDtransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 48 + }, + { + "name": "voxel", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "old_saves.v6.BaseSaveDataV6[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::old_saves::v6::BaseSaveDataV6", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1033393300, + "hash2": 1845808595, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ServerSaveGameV6", + "type_name_2": "old_saves.v6.ServerSaveGameV6", + "qualified_name": "keen::ds::old_saves::v6::ServerSaveGameV6", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2707575417, + "hash2": 1084433251, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "bases", + "type_name": "keen::DsArray", + "type_hash": 1033393300, + "data_offset": 8 + }, + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 1372860910, + "data_offset": 48 + }, + { + "name": "progressEntity", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 88 + }, + { + "name": "entitySerializationContext", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 128 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShake", + "type_name_2": "ecs.CameraShake", + "qualified_name": "keen::ds::ecs::CameraShake", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4262260419, + "hash2": 2229155896, + "struct_fields": [ + { + "name": "trauma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "triggerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraShakeImpulse", + "type_name_2": "ecs.CameraShakeImpulse", + "qualified_name": "keen::ds::ecs::CameraShakeImpulse", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3881652866, + "hash2": 3468790649, + "struct_fields": [ + { + "name": "impulse", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "additionalTrauma", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "triggerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCurrentLocationEvent", + "type_name_2": "ecs.UiCurrentLocationEvent", + "qualified_name": "keen::ds::ecs::UiCurrentLocationEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 726602420, + "hash2": 4002170759, + "struct_fields": [ + { + "name": "location", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceTypes", + "type_name_2": "ResourceTypes", + "qualified_name": "keen::ds::ResourceTypes", + "referenced_type_name": "keen::ResourceTypes", + "class_size": 1, + "fields_count": 9, + "primitive_type": "Typedef", + "hash1": 2223295680, + "hash2": 3911990915, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiNegativeFeedbackEvent", + "type_name_2": "ecs.UiNegativeFeedbackEvent", + "qualified_name": "keen::ds::ecs::UiNegativeFeedbackEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 297737862, + "hash2": 3850936515, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "messageLocaTag", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiInsufficientResourcesEvent", + "type_name_2": "ecs.UiInsufficientResourcesEvent", + "qualified_name": "keen::ds::ecs::UiInsufficientResourcesEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2735961490, + "hash2": 507730351, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "itemSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::ds::ResourceTypesMask", + "type_hash": 1030713656, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiResourcesFullEvent", + "type_name_2": "ecs.UiResourcesFullEvent", + "qualified_name": "keen::ds::ecs::UiResourcesFullEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4061439786, + "hash2": 1707560674, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "buffEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "itemSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::ds::ResourceTypesMask", + "type_hash": 1030713656, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AppliedBuffEvent", + "type_name_2": "ecs.AppliedBuffEvent", + "qualified_name": "keen::ds::ecs::AppliedBuffEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2665476092, + "hash2": 4213264402, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "slotType", + "type_name": "keen::ds::BuffSlotType", + "type_hash": 3951183014, + "data_offset": 12 + }, + { + "name": "slotTypeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiInventoryStockCycleEvent", + "type_name_2": "ecs.UiInventoryStockCycleEvent", + "qualified_name": "keen::ds::ecs::UiInventoryStockCycleEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 64836530, + "hash2": 2139351775, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "selectionResult", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiBuildingEvent", + "type_name_2": "ecs.UiBuildingEvent", + "qualified_name": "keen::ds::ecs::UiBuildingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3952785258, + "hash2": 374800997, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "isUndoAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "isSuccessful", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiItemTriggerFailedEvent", + "type_name_2": "ecs.UiItemTriggerFailedEvent", + "qualified_name": "keen::ds::ecs::UiItemTriggerFailedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 69428670, + "hash2": 3801016905, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "itemSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + }, + { + "name": "equipmentSlotType", + "type_name": "keen::ds::EquipmentSlotType", + "type_hash": 1809869085, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockSkillEvent", + "type_name_2": "ecs.UnlockSkillEvent", + "qualified_name": "keen::ds::ecs::UnlockSkillEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4212867475, + "hash2": 2460518219, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "skillId", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlearnSkillEvent", + "type_name_2": "ecs.UnlearnSkillEvent", + "qualified_name": "keen::ds::ecs::UnlearnSkillEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4056314100, + "hash2": 2460518219, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "skillId", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnlockPerkEvent", + "type_name_2": "ecs.UnlockPerkEvent", + "qualified_name": "keen::ds::ecs::UnlockPerkEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3683698200, + "hash2": 3830961667, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "slotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TrashItemEvent", + "type_name_2": "ecs.TrashItemEvent", + "qualified_name": "keen::ds::ecs::TrashItemEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3339612595, + "hash2": 3830961667, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "slotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SelectDialogOptionEvent", + "type_name_2": "ecs.SelectDialogOptionEvent", + "qualified_name": "keen::ds::ecs::SelectDialogOptionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 700088307, + "hash2": 2208262038, + "struct_fields": [ + { + "name": "interactingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "selectedOptionId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 12 + }, + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcInputEvent", + "type_name_2": "ecs.NpcInputEvent", + "qualified_name": "keen::ds::ecs::NpcInputEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 893476407, + "hash2": 2635068458, + "struct_fields": [ + { + "name": "npcId", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 8 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerKnowledgeUiEvent", + "type_name_2": "ecs.TriggerKnowledgeUiEvent", + "qualified_name": "keen::ds::ecs::TriggerKnowledgeUiEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4099825886, + "hash2": 2627903567, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetPersonalQuestProgressionEvent", + "type_name_2": "ecs.SetPersonalQuestProgressionEvent", + "qualified_name": "keen::ds::ecs::SetPersonalQuestProgressionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1255809191, + "hash2": 1183474884, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ServerSelectDialogOptionEvent", + "type_name_2": "ecs.ServerSelectDialogOptionEvent", + "qualified_name": "keen::ds::ecs::ServerSelectDialogOptionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3244114470, + "hash2": 2155496073, + "struct_fields": [ + { + "name": "npcEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "playerEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "selectedOptionId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingPlaceEvent", + "type_name_2": "ecs.BuildingPlaceEvent", + "qualified_name": "keen::ds::ecs::BuildingPlaceEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2704394497, + "hash2": 3668211240, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "material", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 60 + }, + { + "name": "trackingItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingPickUpEvent", + "type_name_2": "ecs.BuildingPickUpEvent", + "qualified_name": "keen::ds::ecs::BuildingPickUpEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1487406580, + "hash2": 2851684223, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "material", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingTearDownEvent", + "type_name_2": "ecs.BuildingTearDownEvent", + "qualified_name": "keen::ds::ecs::BuildingTearDownEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2781002280, + "hash2": 2851684223, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + }, + { + "name": "volumeMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "volumeMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "material", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitEventFlags", + "type_name_2": "ecs.HitEventFlags", + "qualified_name": "keen::ds::ecs::HitEventFlags", + "referenced_type_name": "keen::ecs::HitEventFlags", + "class_size": 4, + "fields_count": 20, + "primitive_type": "Typedef", + "hash1": 148718926, + "hash2": 2105993055, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ProhibitedHit", + "type_name_2": "ecs.ProhibitedHit", + "qualified_name": "keen::ds::ecs::ProhibitedHit", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 72, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 440739107, + "hash2": 2330136973, + "struct_fields": [ + { + "name": "materialA", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 8 + }, + { + "name": "materialB", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 24 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 40 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 52 + }, + { + "name": "rootSourceId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 64 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingHitEvent", + "type_name_2": "ecs.TerraformingHitEvent", + "qualified_name": "keen::ds::ecs::TerraformingHitEvent", + "referenced_type_name": "keen::ds::ecs::BaseHitEvent", + "class_size": 192, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1426649447, + "hash2": 1230953367, + "struct_fields": [ + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitCandidateType", + "type_name_2": "ecs.HitCandidateType", + "qualified_name": "keen::ds::ecs::HitCandidateType", + "referenced_type_name": "keen::ecs::HitCandidateType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4289230066, + "hash2": 3588979829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HitCandidate", + "type_name_2": "ecs.HitCandidate", + "qualified_name": "keen::ds::ecs::HitCandidate", + "referenced_type_name": "keen::ds::ecs::HitEvent", + "class_size": 328, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 160484226, + "hash2": 1285311820, + "struct_fields": [ + { + "name": "sourceVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 248 + }, + { + "name": "sourceTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 264 + }, + { + "name": "sourceManaCost", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 320 + }, + { + "name": "candidateType", + "type_name": "keen::ds::ecs::HitCandidateType", + "type_hash": 4289230066, + "data_offset": 324 + }, + { + "name": "propagate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 325 + }, + { + "name": "sendHitEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 326 + }, + { + "name": "ignoreConsecutiveHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 327 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceCandidate", + "type_name_2": "ecs.ResourceCandidate", + "qualified_name": "keen::ds::ecs::ResourceCandidate", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1757864153, + "hash2": 1995259756, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "attributeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "change", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceChange", + "type_name_2": "ecs.ResourceChange", + "qualified_name": "keen::ds::ecs::ResourceChange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1647659788, + "hash2": 3769466462, + "struct_fields": [ + { + "name": "gain", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "loss", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ResourceChangeEvent", + "type_name_2": "ecs.ResourceChangeEvent", + "qualified_name": "keen::ds::ecs::ResourceChangeEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1024056068, + "hash2": 3274368001, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "healthChange", + "type_name": "keen::ds::ecs::ResourceChange", + "type_hash": 1647659788, + "data_offset": 12 + }, + { + "name": "manaChange", + "type_name": "keen::ds::ecs::ResourceChange", + "type_hash": 1647659788, + "data_offset": 20 + }, + { + "name": "staminaChange", + "type_name": "keen::ds::ecs::ResourceChange", + "type_hash": 1647659788, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyAttackStartedEvent", + "type_name_2": "ecs.EnemyAttackStartedEvent", + "qualified_name": "keen::ds::ecs::EnemyAttackStartedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 320157959, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallForHelpEvent", + "type_name_2": "ecs.CallForHelpEvent", + "qualified_name": "keen::ds::ecs::CallForHelpEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3726477612, + "hash2": 3194941457, + "struct_fields": [ + { + "name": "noticingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "noticingEntityPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "noticedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "noticedEntityPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "checkSight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "factions", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 46 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyIsHelpingEvent", + "type_name_2": "ecs.EnemyIsHelpingEvent", + "qualified_name": "keen::ds::ecs::EnemyIsHelpingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3410637555, + "hash2": 1865593814, + "struct_fields": [ + { + "name": "helpingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GenericEnemyEvent", + "type_name_2": "ecs.GenericEnemyEvent", + "qualified_name": "keen::ds::ecs::GenericEnemyEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2747143913, + "hash2": 3059498922, + "struct_fields": [ + { + "name": "enemyEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "eventType", + "type_name": "keen::ds::ecs::EnemyEventType", + "type_hash": 3711715940, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NoiseEvent", + "type_name_2": "ecs.NoiseEvent", + "qualified_name": "keen::ds::ecs::NoiseEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1635628614, + "hash2": 2989143526, + "struct_fields": [ + { + "name": "senderId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChildDestroyed", + "type_name_2": "ecs.ChildDestroyed", + "qualified_name": "keen::ds::ecs::ChildDestroyed", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3715113329, + "hash2": 1405389224, + "struct_fields": [ + { + "name": "childId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "parentId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupEvent", + "type_name_2": "ecs.PickupEvent", + "qualified_name": "keen::ds::ecs::PickupEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4047413740, + "hash2": 3968940785, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 20 + }, + { + "name": "itemCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "pickedUpByEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 28 + }, + { + "name": "pickedUpFromEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 32 + }, + { + "name": "targetSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryCategoryMask", + "type_name_2": "InventoryCategoryMask", + "qualified_name": "keen::ds::InventoryCategoryMask", + "referenced_type_name": "keen::InventoryCategoryMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 907409617, + "hash2": 1480959290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventoryFull", + "type_name_2": "ecs.InventoryFull", + "qualified_name": "keen::ds::ecs::InventoryFull", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4000892929, + "hash2": 4046907291, + "struct_fields": [ + { + "name": "pickedUpById", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "pickedUpFromId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "mask", + "type_name": "keen::ds::InventoryCategoryMask", + "type_hash": 907409617, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "XPGainedEvent", + "type_name_2": "ecs.XPGainedEvent", + "qualified_name": "keen::ds::ecs::XPGainedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2720594318, + "hash2": 379065452, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "amount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "source", + "type_name": "keen::ds::ExperienceSourceType", + "type_hash": 323858578, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PuzzleCompletedEvent", + "type_name_2": "ecs.PuzzleCompletedEvent", + "qualified_name": "keen::ds::ecs::PuzzleCompletedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3421059455, + "hash2": 3110744569, + "struct_fields": [ + { + "name": "clusterPlayerEntityIds", + "type_name": "keen::StaticArray", + "type_hash": 589531163, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelUpEvent", + "type_name_2": "ecs.LevelUpEvent", + "qualified_name": "keen::ds::ecs::LevelUpEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3733408593, + "hash2": 3242057785, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 32 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AcceptOfferedInteractionEvent", + "type_name_2": "ecs.AcceptOfferedInteractionEvent", + "qualified_name": "keen::ds::ecs::AcceptOfferedInteractionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2779375199, + "hash2": 3929817653, + "struct_fields": [ + { + "name": "guestEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "hostEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAcceptedEvent", + "type_name_2": "ecs.InteractionAcceptedEvent", + "qualified_name": "keen::ds::ecs::InteractionAcceptedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3406862547, + "hash2": 3929817653, + "struct_fields": [ + { + "name": "guestEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "hostEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetToggleStateEvent", + "type_name_2": "ecs.SetToggleStateEvent", + "qualified_name": "keen::ds::ecs::SetToggleStateEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1924649043, + "hash2": 2725832661, + "struct_fields": [ + { + "name": "senderId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "signalId", + "type_name": "keen::ds::SignalId", + "type_hash": 3676606186, + "data_offset": 12 + }, + { + "name": "newState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToggleInteractionEvent", + "type_name_2": "ecs.ToggleInteractionEvent", + "qualified_name": "keen::ds::ecs::ToggleInteractionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3224197884, + "hash2": 1376535045, + "struct_fields": [ + { + "name": "guestId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "hostId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionbarSelectionEvent", + "type_name_2": "ecs.ActionbarSelectionEvent", + "qualified_name": "keen::ds::ecs::ActionbarSelectionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1557039861, + "hash2": 3211599705, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "selectedIndex", + "type_name": "keen::ds::ActionbarSlotSelection", + "type_hash": 250768632, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryStockSelectionEvent", + "type_name_2": "ecs.InventoryStockSelectionEvent", + "qualified_name": "keen::ds::ecs::InventoryStockSelectionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2597865676, + "hash2": 3413873435, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "inventoryStockType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "selectedItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeEquipmentEvent", + "type_name_2": "ecs.ChangeEquipmentEvent", + "qualified_name": "keen::ds::ecs::ChangeEquipmentEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1072478096, + "hash2": 3765085672, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + }, + { + "name": "equipmentSlot", + "type_name": "keen::ds::EquipmentSlot", + "type_hash": 253613781, + "data_offset": 20 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::ChangeEquipment", + "type_hash": 1783599432, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SwapEquipmentSetEvent", + "type_name_2": "ecs.SwapEquipmentSetEvent", + "qualified_name": "keen::ds::ecs::SwapEquipmentSetEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1224457489, + "hash2": 971826109, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetInventoryId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::SwapEquipmentTarget", + "type_hash": 4285618248, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HandleEquipmentSlotChangedEvent", + "type_name_2": "ecs.HandleEquipmentSlotChangedEvent", + "qualified_name": "keen::ds::ecs::HandleEquipmentSlotChangedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 9035362, + "hash2": 3077047114, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "equipmentSlot", + "type_name": "keen::ds::EquipmentSlot", + "type_hash": 253613781, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConsumeItemEvent", + "type_name_2": "ecs.ConsumeItemEvent", + "qualified_name": "keen::ds::ecs::ConsumeItemEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 518086951, + "hash2": 541636991, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InspectItemEvent", + "type_name_2": "ecs.InspectItemEvent", + "qualified_name": "keen::ds::ecs::InspectItemEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3776203681, + "hash2": 3352788121, + "struct_fields": [ + { + "name": "inventorySlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCreateBuildingItemEvent", + "type_name_2": "ecs.UiCreateBuildingItemEvent", + "qualified_name": "keen::ds::ecs::UiCreateBuildingItemEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 956915851, + "hash2": 1619064515, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "selectedIndex", + "type_name": "keen::ds::ActionbarSlotSelection", + "type_hash": 250768632, + "data_offset": 12 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCreateNpcItemEvent", + "type_name_2": "ecs.UiCreateNpcItemEvent", + "qualified_name": "keen::ds::ecs::UiCreateNpcItemEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1022114494, + "hash2": 3303099121, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TeleportPlayerEvent", + "type_name_2": "ecs.TeleportPlayerEvent", + "qualified_name": "keen::ds::ecs::TeleportPlayerEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2966146894, + "hash2": 356280408, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "targetWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransferItemToInventoryFlag", + "type_name_2": "ecs.TransferItemToInventoryFlag", + "qualified_name": "keen::ds::ecs::TransferItemToInventoryFlag", + "referenced_type_name": "keen::ecs::TransferItemToInventoryFlag", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 3200022497, + "hash2": 1628744215, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransferItemToInventoryEvent", + "type_name_2": "ecs.TransferItemToInventoryEvent", + "qualified_name": "keen::ds::ecs::TransferItemToInventoryEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3048833181, + "hash2": 2097098548, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetInventoryId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "targetSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 16 + }, + { + "name": "sourceInventoryId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "sourceSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 28 + }, + { + "name": "type", + "type_name": "keen::ds::InventoryActionType", + "type_hash": 3203061659, + "data_offset": 36 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::TransferItemToInventoryFlags", + "type_hash": 3568319190, + "data_offset": 37 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 38 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SortInventoryEvent", + "type_name_2": "ecs.SortInventoryEvent", + "qualified_name": "keen::ds::ecs::SortInventoryEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1484675256, + "hash2": 901830852, + "struct_fields": [ + { + "name": "targetInventoryId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootInteractionEvent", + "type_name_2": "ecs.LootInteractionEvent", + "qualified_name": "keen::ds::ecs::LootInteractionEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2266362638, + "hash2": 3911099391, + "struct_fields": [ + { + "name": "guestId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "hostId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "lootAll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "forAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "knowledgeIds", + "type_name": "keen::StaticArray", + "type_hash": 2923098708, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCraftRecipeEvent", + "type_name_2": "ecs.UiCraftRecipeEvent", + "qualified_name": "keen::ds::ecs::UiCraftRecipeEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3175133598, + "hash2": 3594028239, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 16 + }, + { + "name": "recipeAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiAutomaticTransferEvent", + "type_name_2": "ecs.UiAutomaticTransferEvent", + "qualified_name": "keen::ds::ecs::UiAutomaticTransferEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1276221210, + "hash2": 3949634439, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 16 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 20 + }, + { + "name": "amount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSelectCraftingStationRecipeEvent", + "type_name_2": "ecs.UiSelectCraftingStationRecipeEvent", + "qualified_name": "keen::ds::ecs::UiSelectCraftingStationRecipeEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2599115754, + "hash2": 3491918095, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftRecipeEvent", + "type_name_2": "ecs.CraftRecipeEvent", + "qualified_name": "keen::ds::ecs::CraftRecipeEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3524127520, + "hash2": 3594028239, + "struct_fields": [ + { + "name": "craftingOperatorId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "craftingStationId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 16 + }, + { + "name": "recipeAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftRecipeSuccessEvent", + "type_name_2": "ecs.CraftRecipeSuccessEvent", + "qualified_name": "keen::ds::ecs::CraftRecipeSuccessEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 140972761, + "hash2": 1431769655, + "struct_fields": [ + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 8 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPinRecipeEvent", + "type_name_2": "ecs.UiPinRecipeEvent", + "qualified_name": "keen::ds::ecs::UiPinRecipeEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4231155977, + "hash2": 3419649629, + "struct_fields": [ + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 8 + }, + { + "name": "pinRecipe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiWaypointEvent", + "type_name_2": "ecs.UiWaypointEvent", + "qualified_name": "keen::ds::ecs::UiWaypointEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1171006711, + "hash2": 809408999, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 16 + }, + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPingEvent", + "type_name_2": "ecs.UiPingEvent", + "qualified_name": "keen::ds::ecs::UiPingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 616158062, + "hash2": 2707245815, + "struct_fields": [ + { + "name": "senderEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPingInputEvent", + "type_name_2": "ecs.UiPingInputEvent", + "qualified_name": "keen::ds::ecs::UiPingInputEvent", + "referenced_type_name": "keen::ds::ecs::UiPingEvent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2377493634, + "hash2": 780980160, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerTypeId", + "type_name_2": "MapMarkerTypeId", + "qualified_name": "keen::ds::MapMarkerTypeId", + "referenced_type_name": "keen::MapMarkerTypeId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2559771296, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiAddMapMarkerEvent", + "type_name_2": "ecs.UiAddMapMarkerEvent", + "qualified_name": "keen::ds::ecs::UiAddMapMarkerEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1977911821, + "hash2": 2090954883, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "colorScheme", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 32 + }, + { + "name": "type", + "type_name": "keen::ds::MapMarkerTypeId", + "type_hash": 2559771296, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiRemoveMapMarkerEvent", + "type_name_2": "ecs.UiRemoveMapMarkerEvent", + "qualified_name": "keen::ds::ecs::UiRemoveMapMarkerEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 170074990, + "hash2": 849592126, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeCustomizationEvent", + "type_name_2": "ecs.ChangeCustomizationEvent", + "qualified_name": "keen::ds::ecs::ChangeCustomizationEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 153589019, + "hash2": 3027396276, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetSlotId", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 12 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OpenHudScreenEvent", + "type_name_2": "ecs.OpenHudScreenEvent", + "qualified_name": "keen::ds::ecs::OpenHudScreenEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3259411047, + "hash2": 3831469335, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "interactionHostId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "screen", + "type_name": "keen::ds::HudScreenType", + "type_hash": 3628016720, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KillFaction", + "type_name_2": "ecs.KillFaction", + "qualified_name": "keen::ds::ecs::KillFaction", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2063591448, + "hash2": 308474045, + "struct_fields": [ + { + "name": "factionMask", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 8 + }, + { + "name": "playerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartFlyingEvent", + "type_name_2": "ecs.StartFlyingEvent", + "qualified_name": "keen::ds::ecs::StartFlyingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3563680809, + "hash2": 2985926048, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopFlyingEvent", + "type_name_2": "ecs.StopFlyingEvent", + "qualified_name": "keen::ds::ecs::StopFlyingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 871281125, + "hash2": 2985926048, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnterFlyingStateEvent", + "type_name_2": "ecs.EnterFlyingStateEvent", + "qualified_name": "keen::ds::ecs::EnterFlyingStateEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2929722726, + "hash2": 2985926048, + "struct_fields": [ + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedAttackEvent", + "type_name_2": "ecs.SyncedAttackEvent", + "qualified_name": "keen::ds::ecs::SyncedAttackEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1991815946, + "hash2": 3704917371, + "struct_fields": [ + { + "name": "attackerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "resolveTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::SyncedAttackType", + "type_hash": 1300552158, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SyncedSequenceEvent", + "type_name_2": "ecs.SyncedSequenceEvent", + "qualified_name": "keen::ds::ecs::SyncedSequenceEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 459041705, + "hash2": 251522922, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "triggeringEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackExecutedEvent", + "type_name_2": "ecs.VisceralAttackExecutedEvent", + "qualified_name": "keen::ds::ecs::VisceralAttackExecutedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4012715424, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnDestroyNotifyEvent", + "type_name_2": "ecs.OnDestroyNotifyEvent", + "qualified_name": "keen::ds::ecs::OnDestroyNotifyEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1107651928, + "hash2": 1753790756, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 64 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifyEventType", + "type_name_2": "ecs.NotifyEventType", + "qualified_name": "keen::ds::ecs::NotifyEventType", + "referenced_type_name": "keen::ecs::NotifyEventType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 231007171, + "hash2": 1350856763, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NotifyEvent", + "type_name_2": "ecs.NotifyEvent", + "qualified_name": "keen::ds::ecs::NotifyEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 224, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1144801531, + "hash2": 1175399461, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 48 + }, + { + "name": "vfxParameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 104 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 168 + }, + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 176 + }, + { + "name": "slot", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "typeGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 204 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::NotifyEventType", + "type_hash": 231007171, + "data_offset": 220 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 221 + }, + { + "name": "canBeCanceled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 222 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifyEnvFxEvent", + "type_name_2": "ecs.NotifyEnvFxEvent", + "qualified_name": "keen::ds::ecs::NotifyEnvFxEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 88, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2207187482, + "hash2": 3488511457, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + }, + { + "name": "environmentEffectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 24 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 28 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 32 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 36 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "rayOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FootDown", + "type_name_2": "ecs.FootDown", + "qualified_name": "keen::ds::ecs::FootDown", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1638039496, + "hash2": 1095930374, + "struct_fields": [ + { + "name": "environmentEffectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 8 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 16 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoleyEnvEvent", + "type_name_2": "ecs.FoleyEnvEvent", + "qualified_name": "keen::ds::ecs::FoleyEnvEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1047624694, + "hash2": 501097906, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + }, + { + "name": "foleyFxType", + "type_name": "keen::ds::FoleyType", + "type_hash": 1750450690, + "data_offset": 24 + }, + { + "name": "sourceEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RegisterControlledCombatTargetEvent", + "type_name_2": "ecs.RegisterControlledCombatTargetEvent", + "qualified_name": "keen::ds::ecs::RegisterControlledCombatTargetEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3508825330, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnregisterControlledCombatTargetEvent", + "type_name_2": "ecs.UnregisterControlledCombatTargetEvent", + "qualified_name": "keen::ds::ecs::UnregisterControlledCombatTargetEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3361926527, + "hash2": 1536865946, + "struct_fields": [ + { + "name": "attackerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LoreRead", + "type_name_2": "ecs.LoreRead", + "qualified_name": "keen::ds::ecs::LoreRead", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 670628928, + "hash2": 462311078, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemUsed", + "type_name_2": "ecs.ItemUsed", + "qualified_name": "keen::ds::ecs::ItemUsed", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 546995070, + "hash2": 2811414169, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartPlaySongEvent", + "type_name_2": "ecs.StartPlaySongEvent", + "qualified_name": "keen::ds::ecs::StartPlaySongEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2819934845, + "hash2": 825621544, + "struct_fields": [ + { + "name": "playerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "songId", + "type_name": "keen::ds::SongId", + "type_hash": 687496403, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceTerminationReason", + "type_name_2": "ecs.SequenceTerminationReason", + "qualified_name": "keen::ds::ecs::SequenceTerminationReason", + "referenced_type_name": "keen::ecs::SequenceTerminationReason", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2759743573, + "hash2": 231383143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeGained", + "type_name_2": "ecs.ItemKnowledgeGained", + "qualified_name": "keen::ds::ecs::ItemKnowledgeGained", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 312882623, + "hash2": 3137788844, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "gainedKnowledge", + "type_name": "keen::ds::ItemKnowledgeMask", + "type_hash": 824525052, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerEvent", + "type_name_2": "ecs.KnowledgeTriggerEvent", + "qualified_name": "keen::ds::ecs::KnowledgeTriggerEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2620599368, + "hash2": 910412281, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "removeKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeUnlockedEvent", + "type_name_2": "ecs.KnowledgeUnlockedEvent", + "qualified_name": "keen::ds::ecs::KnowledgeUnlockedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 67027123, + "hash2": 393439528, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 8 + }, + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeType", + "type_name_2": "ecs.KnowledgeType", + "qualified_name": "keen::ds::ecs::KnowledgeType", + "referenced_type_name": "keen::ecs::KnowledgeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3873373588, + "hash2": 2325723958, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeGained", + "type_name_2": "ecs.KnowledgeGained", + "qualified_name": "keen::ds::ecs::KnowledgeGained", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2987527454, + "hash2": 1334313451, + "struct_fields": [ + { + "name": "targetType", + "type_name": "keen::ds::ecs::KnowledgeType", + "type_hash": 3873373588, + "data_offset": 8 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 12 + }, + { + "name": "npcId", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 16 + }, + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 20 + }, + { + "name": "journalId", + "type_name": "keen::ds::JournalEntryId", + "type_hash": 1338464771, + "data_offset": 24 + }, + { + "name": "mapMarkerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ParryEvent", + "type_name_2": "ecs.ParryEvent", + "qualified_name": "keen::ds::ecs::ParryEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1136301042, + "hash2": 3273194644, + "struct_fields": [ + { + "name": "attackerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "blockerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "staminaDrain", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CookingEvent", + "type_name_2": "ecs.CookingEvent", + "qualified_name": "keen::ds::ecs::CookingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1185675124, + "hash2": 3222177868, + "struct_fields": [ + { + "name": "attachmentOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 8 + }, + { + "name": "cookedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 48 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 52 + }, + { + "name": "attachmentSlot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 56 + }, + { + "name": "burned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerBaseChangeEvent", + "type_name_2": "ecs.PlayerBaseChangeEvent", + "qualified_name": "keen::ds::ecs::PlayerBaseChangeEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3426407552, + "hash2": 825230923, + "struct_fields": [ + { + "name": "playerCharacterId", + "type_name": "keen::ds::CharacterId", + "type_hash": 1186517035, + "data_offset": 8 + }, + { + "name": "baseId", + "type_name": "keen::ds::BaseId", + "type_hash": 296553055, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KickPlayerEvent", + "type_name_2": "ecs.KickPlayerEvent", + "qualified_name": "keen::ds::ecs::KickPlayerEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 137667261, + "hash2": 1211510414, + "struct_fields": [ + { + "name": "playerToKick", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarEvent", + "type_name_2": "ecs.FlameAltarEvent", + "qualified_name": "keen::ds::ecs::FlameAltarEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3226347935, + "hash2": 65210034, + "struct_fields": [ + { + "name": "playerEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "baseEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::ds::ecs::FlameAltarActionType", + "type_hash": 1641255463, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityDiedEvent", + "type_name_2": "ecs.EntityDiedEvent", + "qualified_name": "keen::ds::ecs::EntityDiedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2593128431, + "hash2": 3709828396, + "struct_fields": [ + { + "name": "deadEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActivateFactionPacifyEvent", + "type_name_2": "ecs.ActivateFactionPacifyEvent", + "qualified_name": "keen::ds::ecs::ActivateFactionPacifyEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3021497567, + "hash2": 1876614816, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "faction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActivateFactionCallForHelpEvent", + "type_name_2": "ecs.ActivateFactionCallForHelpEvent", + "qualified_name": "keen::ds::ecs::ActivateFactionCallForHelpEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3857010911, + "hash2": 1876614816, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "faction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartGuardingEvent", + "type_name_2": "ecs.StartGuardingEvent", + "qualified_name": "keen::ds::ecs::StartGuardingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 431668469, + "hash2": 1436087, + "struct_fields": [ + { + "name": "guardingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "guardedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopGuardingEvent", + "type_name_2": "ecs.StopGuardingEvent", + "qualified_name": "keen::ds::ecs::StopGuardingEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 209551497, + "hash2": 1436087, + "struct_fields": [ + { + "name": "guardingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "guardedEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyedWithoutSurfaceEvent", + "type_name_2": "ecs.DestroyedWithoutSurfaceEvent", + "qualified_name": "keen::ds::ecs::DestroyedWithoutSurfaceEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 359215724, + "hash2": 65582971, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 64 + }, + { + "name": "material", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransformedToLootEvent", + "type_name_2": "ecs.TransformedToLootEvent", + "qualified_name": "keen::ds::ecs::TransformedToLootEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1036709770, + "hash2": 204372571, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "overwriteVfxParameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 12 + }, + { + "name": "useVfxDefaultParameters", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsChangedEvent", + "type_name_2": "ecs.GameSettingsChangedEvent", + "qualified_name": "keen::ds::ecs::GameSettingsChangedEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 136, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 420935831, + "hash2": 302992615, + "struct_fields": [ + { + "name": "newSettings", + "type_name": "keen::ds::ecs::GameSettings", + "type_hash": 4190741839, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetEnemyVariableEvent", + "type_name_2": "ecs.SetEnemyVariableEvent", + "qualified_name": "keen::ds::ecs::SetEnemyVariableEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2461294692, + "hash2": 3867985165, + "struct_fields": [ + { + "name": "enemyId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "variable", + "type_name": "keen::ds::enemy01::EnemyVariableReference", + "type_hash": 2888651035, + "data_offset": 12 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiWorldEvent", + "type_name_2": "ecs.UiWorldEvent", + "qualified_name": "keen::ds::ecs::UiWorldEvent", + "referenced_type_name": "keen::ds::ecs::GameEvent", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2002939602, + "hash2": 2782251967, + "struct_fields": [ + { + "name": "worldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugHitRequest", + "type_name_2": "ecs.DebugHitRequest", + "qualified_name": "keen::ds::ecs::DebugHitRequest", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2304964305, + "hash2": 739697808, + "struct_fields": [ + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "sourceTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "majorHitDirection", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugHitResult", + "type_name_2": "ecs.DebugHitResult", + "qualified_name": "keen::ds::ecs::DebugHitResult", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4151715433, + "hash2": 2024347308, + "struct_fields": [ + { + "name": "hitPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "hitNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "hitDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "hitAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "hit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GuidRegistryResource", + "type_name_2": "GuidRegistryResource", + "qualified_name": "keen::ds::GuidRegistryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 704371857, + "hash2": 1678264409, + "struct_fields": [ + { + "name": "guids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactFilter", + "type_name_2": "impact.ImpactFilter", + "qualified_name": "keen::ds::impact::ImpactFilter", + "referenced_type_name": "keen::impact::ImpactFilter", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1384140689, + "hash2": 2525703160, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackFlags", + "type_name_2": "impact.AttackFlags", + "qualified_name": "keen::ds::impact::AttackFlags", + "referenced_type_name": "keen::impact::AttackFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3020815492, + "hash2": 37366703, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DamageData", + "type_name_2": "impact.DamageData", + "qualified_name": "keen::ds::impact::DamageData", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3951408104, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DamageConfig", + "type_name_2": "impact.DamageConfig", + "qualified_name": "keen::ds::impact::DamageConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2648312782, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SphereColliderConfig", + "type_name_2": "impact.SphereColliderConfig", + "qualified_name": "keen::ds::impact::SphereColliderConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1207538778, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactQueryResult", + "type_name_2": "impact.ImpactQueryResult", + "qualified_name": "keen::ds::impact::ImpactQueryResult", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2619872396, + "hash2": 2682714864, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::ds::ecs::QueryResultFlags", + "type_hash": 3918619084, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Flags", + "type_name_2": "impact.Flags", + "qualified_name": "keen::ds::impact::Flags", + "referenced_type_name": "keen::impact::Flags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1092162220, + "hash2": 4120663272, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugServerImpactMessage", + "type_name_2": "impact.DebugServerImpactMessage", + "qualified_name": "keen::ds::impact::DebugServerImpactMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2320907984, + "hash2": 3848988443, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::impact::ImpactId", + "type_hash": 440714682, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpactRequestMessage", + "type_name_2": "impact.DebugImpactRequestMessage", + "qualified_name": "keen::ds::impact::DebugImpactRequestMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2266563494, + "hash2": 3687496867, + "struct_fields": [ + { + "name": "impactGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpcatState", + "type_name_2": "impact.DebugImpcatState", + "qualified_name": "keen::ds::impact::DebugImpcatState", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2780014599, + "hash2": 3278176335, + "struct_fields": [ + { + "name": "rPC", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "rSP", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "rFP", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "flags", + "type_name": "keen::Bitmask8", + "type_hash": 2874968267, + "data_offset": 6 + }, + { + "name": "stack", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 8 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpactFunctionCall", + "type_name_2": "impact.DebugImpactFunctionCall", + "qualified_name": "keen::ds::impact::DebugImpactFunctionCall", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 619728706, + "hash2": 3384290954, + "struct_fields": [ + { + "name": "pc", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "beforeUpdate", + "type_name": "keen::ds::impact::DebugImpcatState", + "type_hash": 2780014599, + "data_offset": 8 + }, + { + "name": "afterUpdate", + "type_name": "keen::ds::impact::DebugImpcatState", + "type_hash": 2780014599, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "impact.DebugImpactFunctionCall[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::impact::DebugImpactFunctionCall", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 928308677, + "hash2": 2243884963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpactData", + "type_name_2": "impact.DebugImpactData", + "qualified_name": "keen::ds::impact::DebugImpactData", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 535325498, + "hash2": 4227017001, + "struct_fields": [ + { + "name": "rootId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "beforeUpdate", + "type_name": "keen::ds::impact::DebugImpcatState", + "type_hash": 2780014599, + "data_offset": 8 + }, + { + "name": "afterUpdate", + "type_name": "keen::ds::impact::DebugImpcatState", + "type_hash": 2780014599, + "data_offset": 96 + }, + { + "name": "calls", + "type_name": "keen::DsArray", + "type_hash": 928308677, + "data_offset": 184 + }, + { + "name": "programCounter", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 224 + }, + { + "name": "appliedConfigurations", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 264 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugImpact", + "type_name_2": "impact.DebugImpact", + "qualified_name": "keen::ds::impact::DebugImpact", + "referenced_type_name": null, + "class_size": 328, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2702011306, + "hash2": 1671637153, + "struct_fields": [ + { + "name": "impactId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tick", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "impactEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "data", + "type_name": "keen::ds::impact::DebugImpactData", + "type_hash": 535325498, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactOps", + "type_name_2": "ImpactOps", + "qualified_name": "keen::ds::ImpactOps", + "referenced_type_name": "keen::ImpactOps", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4182714027, + "hash2": 4055588756, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpcatValueNumberFormat", + "type_name_2": "impact.ImpcatValueNumberFormat", + "qualified_name": "keen::ds::impact::ImpcatValueNumberFormat", + "referenced_type_name": "keen::impact::ImpcatValueNumberFormat", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 4172667918, + "hash2": 1483680667, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::impact::ConfigId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1078238737, + "hash2": 3498915260, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigIdReference", + "type_name_2": "impact.ConfigIdReference", + "qualified_name": "keen::ds::impact::ConfigIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1622978495, + "hash2": 2607321898, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfig", + "type_name_2": "impact.ImpactConfig", + "qualified_name": "keen::ds::impact::ImpactConfig", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2237561493, + "hash2": 1431570823, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "isSigned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "valueFormat", + "type_name": "keen::ds::impact::ImpcatValueNumberFormat", + "type_hash": 4172667918, + "data_offset": 17 + }, + { + "name": "id", + "type_name": "keen::ds::impact::ConfigIdReference", + "type_hash": 1622978495, + "data_offset": 20 + }, + { + "name": "configId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 36 + }, + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + }, + { + "name": "configGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 44 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffImpactConfig", + "type_name_2": "impact.BuffImpactConfig", + "qualified_name": "keen::ds::impact::BuffImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3899105992, + "hash2": 1767315576, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnemyVariableImpactConfig", + "type_name_2": "impact.EnemyVariableImpactConfig", + "qualified_name": "keen::ds::impact::EnemyVariableImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4112169359, + "hash2": 2291358432, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::enemy01::EnemyVariableReference", + "type_hash": 2888651035, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactNode", + "type_name_2": "impact_nodes.ImpactNode", + "qualified_name": "keen::ds::impact_nodes::ImpactNode", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2822674697, + "hash2": 117088101, + "struct_fields": [ + { + "name": "uiPosition", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactValueNode", + "type_name_2": "impact_nodes.ImpactValueNode", + "qualified_name": "keen::ds::impact_nodes::ImpactValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactNode", + "class_size": 60, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 67424538, + "hash2": 4128250987, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::impact::ConfigIdReference", + "type_hash": 1622978495, + "data_offset": 8 + }, + { + "name": "locaTag", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 24 + }, + { + "name": "isSigned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "valueFormat", + "type_name": "keen::ds::impact::ImpcatValueNumberFormat", + "type_hash": 4172667918, + "data_offset": 41 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuffValueNode", + "type_name_2": "impact_nodes.BuffValueNode", + "qualified_name": "keen::ds::impact_nodes::BuffValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2212963831, + "hash2": 3082099846, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactExecutableNode", + "type_name_2": "impact_nodes.ImpactExecutableNode", + "qualified_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1494037793, + "hash2": 2509589630, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ApplyBuff", + "type_name_2": "impact_nodes.ApplyBuff", + "qualified_name": "keen::ds::impact_nodes::ApplyBuff", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2569573940, + "hash2": 3326507118, + "struct_fields": [ + { + "name": "buffInput", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "damageSetup", + "type_name": "keen::ds::impact::DamageSetup", + "type_hash": 3674396349, + "data_offset": 28 + }, + { + "name": "durationInput", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactBranchNode", + "type_name_2": "impact_nodes.ImpactBranchNode", + "qualified_name": "keen::ds::impact_nodes::ImpactBranchNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1917330129, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactNodeExecutionBranch", + "type_name_2": "impact_nodes.ImpactNodeExecutionBranch", + "qualified_name": "keen::ds::impact_nodes::ImpactNodeExecutionBranch", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 541067305, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IfBranchNode", + "type_name_2": "impact_nodes.IfBranchNode", + "qualified_name": "keen::ds::impact_nodes::IfBranchNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactBranchNode", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 744979132, + "hash2": 4245573279, + "struct_fields": [ + { + "name": "negate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "ifBranch", + "type_name": "keen::ds::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 541067305, + "data_offset": 9 + }, + { + "name": "elseBranch", + "type_name": "keen::ds::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 541067305, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasBuffNode", + "type_name_2": "impact_nodes.HasBuffNode", + "qualified_name": "keen::ds::impact_nodes::HasBuffNode", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3342957388, + "hash2": 4007879823, + "struct_fields": [ + { + "name": "buffInput", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 12 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RemoveBuff", + "type_name_2": "impact_nodes.RemoveBuff", + "qualified_name": "keen::ds::impact_nodes::RemoveBuff", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3984808282, + "hash2": 603588192, + "struct_fields": [ + { + "name": "buffInput", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 8 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "wasRemoved", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactHierarchy", + "type_name_2": "ecs.ImpactHierarchy", + "qualified_name": "keen::ds::ecs::ImpactHierarchy", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2075820893, + "hash2": 3848774665, + "struct_fields": [ + { + "name": "parentImpactId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "rootImpactId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "weaponPideId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "permissionCheckId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactItemConfig", + "type_name_2": "ecs.ImpactItemConfig", + "qualified_name": "keen::ds::ecs::ImpactItemConfig", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 44, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 988456291, + "hash2": 3942187550, + "struct_fields": [ + { + "name": "usedItem", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 0 + }, + { + "name": "ammunitionItem", + "type_name": "keen::ds::ItemInstanceInfo", + "type_hash": 1277281831, + "data_offset": 20 + }, + { + "name": "usedPerkId", + "type_name": "keen::ds::PerkId", + "type_hash": 2199025218, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEventCollider", + "type_name_2": "ecs.SequenceEventCollider", + "qualified_name": "keen::ds::ecs::SequenceEventCollider", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1288830659, + "hash2": 620605157, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 0 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceEventImpactConfig", + "type_name_2": "ecs.SequenceEventImpactConfig", + "qualified_name": "keen::ds::ecs::SequenceEventImpactConfig", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 173314279, + "hash2": 620605157, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 0 + }, + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfiguration", + "type_name_2": "ecs.ImpactConfiguration", + "qualified_name": "keen::ds::ecs::ImpactConfiguration", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2731174392, + "hash2": 1729111234, + "struct_fields": [ + { + "name": "configValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 0 + }, + { + "name": "damageDistribution", + "type_name": "keen::ds::impact::DamageDistribution", + "type_hash": 1212686402, + "data_offset": 40 + }, + { + "name": "damageDistributionIsSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactDirection", + "type_name_2": "ecs.ImpactDirection", + "qualified_name": "keen::ds::ecs::ImpactDirection", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 583097455, + "hash2": 3882171248, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Impact", + "type_name_2": "ecs.Impact", + "qualified_name": "keen::ds::ecs::Impact", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3072379306, + "hash2": 2700374112, + "struct_fields": [ + { + "name": "program", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 0 + }, + { + "name": "impactId", + "type_name": "keen::ds::impact::ImpactId", + "type_hash": 440714682, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactHalted", + "type_name_2": "ecs.ImpactHalted", + "qualified_name": "keen::ds::ecs::ImpactHalted", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1364014932, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactCommand", + "type_name_2": "ImpactCommand", + "qualified_name": "keen::ds::ImpactCommand", + "referenced_type_name": "keen::ImpactCommand", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 764863298, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingType", + "type_name_2": "TerraformingType", + "qualified_name": "keen::ds::TerraformingType", + "referenced_type_name": "keen::TerraformingType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1957652367, + "hash2": 1408776271, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryType", + "type_name_2": "WeaponCategoryType", + "qualified_name": "keen::ds::WeaponCategoryType", + "referenced_type_name": "keen::WeaponCategoryType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 462670651, + "hash2": 2621638403, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryTypeMask", + "type_name_2": "WeaponCategoryTypeMask", + "qualified_name": "keen::ds::WeaponCategoryTypeMask", + "referenced_type_name": "keen::WeaponCategoryTypeMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1275285871, + "hash2": 163874860, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackType", + "type_name_2": "VisceralAttackType", + "qualified_name": "keen::ds::VisceralAttackType", + "referenced_type_name": "keen::VisceralAttackType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 507004570, + "hash2": 3403982851, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ProgramId", + "type_name_2": "impact.ProgramId", + "qualified_name": "keen::ds::impact::ProgramId", + "referenced_type_name": "keen::impact::ProgramId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1669254118, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VariableTypeId", + "type_name_2": "impact.VariableTypeId", + "qualified_name": "keen::ds::impact::VariableTypeId", + "referenced_type_name": "keen::impact::VariableTypeId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1079356312, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigId", + "type_name_2": "impact.ConfigId", + "qualified_name": "keen::ds::impact::ConfigId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 812025642, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigIdHash", + "type_name_2": "impact.ConfigIdHash", + "qualified_name": "keen::ds::impact::ConfigIdHash", + "referenced_type_name": "keen::impact::ConfigIdHash", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 642047486, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigIdCollection", + "type_name_2": "impact.ConfigIdCollection", + "qualified_name": "keen::ds::impact::ConfigIdCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2763848442, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConfigValueId", + "type_name_2": "impact.ConfigValueId", + "qualified_name": "keen::ds::impact::ConfigValueId", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1190217233, + "hash2": 979410249, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TypedValue32", + "type_name_2": "impact.TypedValue32", + "qualified_name": "keen::ds::impact::TypedValue32", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 900101065, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FloatImpactConfig", + "type_name_2": "impact.FloatImpactConfig", + "qualified_name": "keen::ds::impact::FloatImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 370554165, + "hash2": 2717917354, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Uint32ImpactConfig", + "type_name_2": "impact.Uint32ImpactConfig", + "qualified_name": "keen::ds::impact::Uint32ImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3517877736, + "hash2": 273897704, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Sint32ImpactConfig", + "type_name_2": "impact.Sint32ImpactConfig", + "qualified_name": "keen::ds::impact::Sint32ImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1168431522, + "hash2": 2377786960, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolImpactConfig", + "type_name_2": "impact.BoolImpactConfig", + "qualified_name": "keen::ds::impact::BoolImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3950668573, + "hash2": 304215539, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float2ImpactConfig", + "type_name_2": "impact.Float2ImpactConfig", + "qualified_name": "keen::ds::impact::Float2ImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 84, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2418813765, + "hash2": 3538572131, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float3ImpactConfig", + "type_name_2": "impact.Float3ImpactConfig", + "qualified_name": "keen::ds::impact::Float3ImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 88, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2575109398, + "hash2": 1941608346, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float4ImpactConfig", + "type_name_2": "impact.Float4ImpactConfig", + "qualified_name": "keen::ds::impact::Float4ImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2936849675, + "hash2": 3043710333, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateImpactConfig", + "type_name_2": "impact.TemplateImpactConfig", + "qualified_name": "keen::ds::impact::TemplateImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3394407971, + "hash2": 1996866839, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagImpactConfig", + "type_name_2": "impact.EntityTagImpactConfig", + "qualified_name": "keen::ds::impact::EntityTagImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 317971126, + "hash2": 511231018, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialImpactConfig", + "type_name_2": "impact.MaterialImpactConfig", + "qualified_name": "keen::ds::impact::MaterialImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3844818044, + "hash2": 554742030, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimeImpactConfig", + "type_name_2": "impact.TimeImpactConfig", + "qualified_name": "keen::ds::impact::TimeImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 88, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2984395152, + "hash2": 1597351848, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactionImpactConfig", + "type_name_2": "impact.FactionImpactConfig", + "qualified_name": "keen::ds::impact::FactionImpactConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 792301811, + "hash2": 2087464360, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeReferenceConfig", + "type_name_2": "impact.AttributeReferenceConfig", + "qualified_name": "keen::ds::impact::AttributeReferenceConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2224687978, + "hash2": 2176758600, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackTypeConfig", + "type_name_2": "impact.VisceralAttackTypeConfig", + "qualified_name": "keen::ds::impact::VisceralAttackTypeConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3570441662, + "hash2": 3954853497, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::VisceralAttackType", + "type_hash": 507004570, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingSetup", + "type_name_2": "impact.DamageTerraformingSetup", + "qualified_name": "keen::ds::impact::DamageTerraformingSetup", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 954082829, + "hash2": 4152129817, + "struct_fields": [ + { + "name": "softDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "slightlyHardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "moderatelyHardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + }, + { + "name": "hardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "veryHardDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingRuntimeSetup", + "type_name_2": "impact.DamageTerraformingRuntimeSetup", + "qualified_name": "keen::ds::impact::DamageTerraformingRuntimeSetup", + "referenced_type_name": "keen::ds::impact::DamageTerraformingSetup", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2335374161, + "hash2": 3733315354, + "struct_fields": [ + { + "name": "woodDamageMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "stoneDamageMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "metalDamageMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingSetupConfig", + "type_name_2": "impact.DamageTerraformingSetupConfig", + "qualified_name": "keen::ds::impact::DamageTerraformingSetupConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 96, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 875182239, + "hash2": 3089740207, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::DamageTerraformingSetup", + "type_hash": 954082829, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ArmorDistribution", + "type_name_2": "impact.ArmorDistribution", + "qualified_name": "keen::ds::impact::ArmorDistribution", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 973365350, + "hash2": 1498259883, + "struct_fields": [ + { + "name": "physical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "blunt", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "pierce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "cut", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "magical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "fire", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "ice", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "fog", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "lightning", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingTypeConfig", + "type_name_2": "impact.TerraformingTypeConfig", + "qualified_name": "keen::ds::impact::TerraformingTypeConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 574585179, + "hash2": 639205375, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::TerraformingType", + "type_hash": 1957652367, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTypeNew", + "type_name_2": "impact.DamageTypeNew", + "qualified_name": "keen::ds::impact::DamageTypeNew", + "referenced_type_name": "keen::impact::DamageTypeNew", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3801132262, + "hash2": 434545731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCategory", + "type_name_2": "impact.AttackCategory", + "qualified_name": "keen::ds::impact::AttackCategory", + "referenced_type_name": "keen::impact::AttackCategory", + "class_size": 1, + "fields_count": 7, + "primitive_type": "Typedef", + "hash1": 2638652041, + "hash2": 4218998917, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttackCategoryMaskConfig", + "type_name_2": "impact.AttackCategoryMaskConfig", + "qualified_name": "keen::ds::impact::AttackCategoryMaskConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 567630887, + "hash2": 2466857546, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WeaponCategory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2532730670, + "hash2": 3010036125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryReference", + "type_name_2": "WeaponCategoryReference", + "qualified_name": "keen::ds::WeaponCategoryReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1397102088, + "hash2": 477113583, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryConfig", + "type_name_2": "impact.WeaponCategoryConfig", + "qualified_name": "keen::ds::impact::WeaponCategoryConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 92, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2880681103, + "hash2": 3510115575, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MajorDirectionConfig", + "type_name_2": "impact.MajorDirectionConfig", + "qualified_name": "keen::ds::impact::MajorDirectionConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3431219861, + "hash2": 1285879427, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionTypeConfig", + "type_name_2": "impact.HitReactionTypeConfig", + "qualified_name": "keen::ds::impact::HitReactionTypeConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1032719271, + "hash2": 1257800202, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::HitReactionType", + "type_hash": 194263173, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushBackForceConfig", + "type_name_2": "impact.PushBackForceConfig", + "qualified_name": "keen::ds::impact::PushBackForceConfig", + "referenced_type_name": "keen::ds::impact::ImpactConfig", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2786890259, + "hash2": 3604747256, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::PushBackForce", + "type_hash": 2076277553, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EventStream", + "type_name_2": "impact.EventStream", + "qualified_name": "keen::ds::impact::EventStream", + "referenced_type_name": "keen::impact::EventStream", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4026249663, + "hash2": 1090953663, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EventStreamMask", + "type_name_2": "impact.EventStreamMask", + "qualified_name": "keen::ds::impact::EventStreamMask", + "referenced_type_name": "keen::impact::EventStreamMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1806120091, + "hash2": 2899371729, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactUiValue", + "type_name_2": "ImpactUiValue", + "qualified_name": "keen::ds::ImpactUiValue", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2546937512, + "hash2": 2771205126, + "struct_fields": [ + { + "name": "locaId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "isSigned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "valueFormat", + "type_name": "keen::ds::impact::ImpcatValueNumberFormat", + "type_hash": 4172667918, + "data_offset": 5 + }, + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::impact_nodes::ImpactNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 869690752, + "hash2": 1111105802, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NodeReference", + "type_name_2": "impact_nodes.NodeReference", + "qualified_name": "keen::ds::impact_nodes::NodeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3160480, + "hash2": 1273056441, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResetPoint", + "type_name_2": "impact_nodes.ResetPoint", + "qualified_name": "keen::ds::impact_nodes::ResetPoint", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3856740556, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingTypeValueNode", + "type_name_2": "impact_nodes.TerraformingTypeValueNode", + "qualified_name": "keen::ds::impact_nodes::TerraformingTypeValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4191728684, + "hash2": 2243873001, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::TerraformingType", + "type_hash": 1957652367, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ExecutionLink", + "type_name_2": "impact_nodes.ExecutionLink", + "qualified_name": "keen::ds::impact_nodes::ExecutionLink", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3357440063, + "hash2": 402298693, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::ds::impact_nodes::NodeReference", + "type_hash": 3160480, + "data_offset": 0 + }, + { + "name": "startElementName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + }, + { + "name": "endNode", + "type_name": "keen::ds::impact_nodes::NodeReference", + "type_hash": 3160480, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DataLink", + "type_name_2": "impact_nodes.DataLink", + "qualified_name": "keen::ds::impact_nodes::DataLink", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1058094103, + "hash2": 1812435450, + "struct_fields": [ + { + "name": "ownerNodeId", + "type_name": "keen::ds::impact_nodes::NodeReference", + "type_hash": 3160480, + "data_offset": 0 + }, + { + "name": "ownerMemberName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + }, + { + "name": "accessorNodeId", + "type_name": "keen::ds::impact_nodes::NodeReference", + "type_hash": 3160480, + "data_offset": 56 + }, + { + "name": "accessorMemberName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FloatValueNode", + "type_name_2": "impact_nodes.FloatValueNode", + "qualified_name": "keen::ds::impact_nodes::FloatValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4005351824, + "hash2": 3681911724, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Uint32ValueNode", + "type_name_2": "impact_nodes.Uint32ValueNode", + "qualified_name": "keen::ds::impact_nodes::Uint32ValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 68459335, + "hash2": 2501855946, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Sint32ValueNode", + "type_name_2": "impact_nodes.Sint32ValueNode", + "qualified_name": "keen::ds::impact_nodes::Sint32ValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4256684053, + "hash2": 2917234538, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolValueNode", + "type_name_2": "impact_nodes.BoolValueNode", + "qualified_name": "keen::ds::impact_nodes::BoolValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3218781536, + "hash2": 1019374053, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float2ValueNode", + "type_name_2": "impact_nodes.Float2ValueNode", + "qualified_name": "keen::ds::impact_nodes::Float2ValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 68, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3162509032, + "hash2": 866574977, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float3ValueNode", + "type_name_2": "impact_nodes.Float3ValueNode", + "qualified_name": "keen::ds::impact_nodes::Float3ValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1020611973, + "hash2": 2995326580, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Float4ValueNode", + "type_name_2": "impact_nodes.Float4ValueNode", + "qualified_name": "keen::ds::impact_nodes::Float4ValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2030131658, + "hash2": 3890626247, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateValueNode", + "type_name_2": "impact_nodes.TemplateValueNode", + "qualified_name": "keen::ds::impact_nodes::TemplateValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1717198674, + "hash2": 959873117, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTagValueNode", + "type_name_2": "impact_nodes.EntityTagValueNode", + "qualified_name": "keen::ds::impact_nodes::EntityTagValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4235478813, + "hash2": 535028708, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MaterialValueNode", + "type_name_2": "impact_nodes.MaterialValueNode", + "qualified_name": "keen::ds::impact_nodes::MaterialValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1972806763, + "hash2": 34524384, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TimeValueNode", + "type_name_2": "impact_nodes.TimeValueNode", + "qualified_name": "keen::ds::impact_nodes::TimeValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3259397275, + "hash2": 3379243354, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FactionValueNode", + "type_name_2": "impact_nodes.FactionValueNode", + "qualified_name": "keen::ds::impact_nodes::FactionValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 705455470, + "hash2": 2495707950, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeReferenceValueNode", + "type_name_2": "impact_nodes.AttributeReferenceValueNode", + "qualified_name": "keen::ds::impact_nodes::AttributeReferenceValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3984470319, + "hash2": 1793737090, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageSetupValueNode", + "type_name_2": "impact_nodes.DamageSetupValueNode", + "qualified_name": "keen::ds::impact_nodes::DamageSetupValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2663767032, + "hash2": 2633896862, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::DamageSetup", + "type_hash": 3674396349, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DamageTerraformingSetupValueNode", + "type_name_2": "impact_nodes.DamageTerraformingSetupValueNode", + "qualified_name": "keen::ds::impact_nodes::DamageTerraformingSetupValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 199580676, + "hash2": 4219814333, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::DamageTerraformingSetup", + "type_hash": 954082829, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttackCategoryMaskValueNode", + "type_name_2": "impact_nodes.AttackCategoryMaskValueNode", + "qualified_name": "keen::ds::impact_nodes::AttackCategoryMaskValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4055524188, + "hash2": 552533244, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryValueNode", + "type_name_2": "impact_nodes.WeaponCategoryValueNode", + "qualified_name": "keen::ds::impact_nodes::WeaponCategoryValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 76, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3272380976, + "hash2": 1528210621, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MajorDirectionValueNode", + "type_name_2": "impact_nodes.MajorDirectionValueNode", + "qualified_name": "keen::ds::impact_nodes::MajorDirectionValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3551488522, + "hash2": 296596133, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HitReactionTypeValueNode", + "type_name_2": "impact_nodes.HitReactionTypeValueNode", + "qualified_name": "keen::ds::impact_nodes::HitReactionTypeValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1465754944, + "hash2": 2151899164, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::HitReactionType", + "type_hash": 194263173, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PushBackForceValueNode", + "type_name_2": "impact_nodes.PushBackForceValueNode", + "qualified_name": "keen::ds::impact_nodes::PushBackForceValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3961635972, + "hash2": 2092845962, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::impact::PushBackForce", + "type_hash": 2076277553, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisceralAttackTypeValueNode", + "type_name_2": "impact_nodes.VisceralAttackTypeValueNode", + "qualified_name": "keen::ds::impact_nodes::VisceralAttackTypeValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactValueNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3435850639, + "hash2": 3075252499, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::VisceralAttackType", + "type_hash": 507004570, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HaltNode", + "type_name_2": "impact_nodes.HaltNode", + "qualified_name": "keen::ds::impact_nodes::HaltNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 499726292, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DestroySelfNode", + "type_name_2": "impact_nodes.DestroySelfNode", + "qualified_name": "keen::ds::impact_nodes::DestroySelfNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1070309029, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResetNode", + "type_name_2": "impact_nodes.ResetNode", + "qualified_name": "keen::ds::impact_nodes::ResetNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2050043574, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RVM", + "type_name_2": "impact_nodes.RVM", + "qualified_name": "keen::ds::impact_nodes::RVM", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2242598414, + "hash2": 1407743764, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GetParent", + "type_name_2": "impact_nodes.GetParent", + "qualified_name": "keen::ds::impact_nodes::GetParent", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2218377469, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetRoot", + "type_name_2": "impact_nodes.GetRoot", + "qualified_name": "keen::ds::impact_nodes::GetRoot", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 116011589, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetEntityParent", + "type_name_2": "impact_nodes.GetEntityParent", + "qualified_name": "keen::ds::impact_nodes::GetEntityParent", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3171292674, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetHitTarget", + "type_name_2": "impact_nodes.GetHitTarget", + "qualified_name": "keen::ds::impact_nodes::GetHitTarget", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2611161067, + "hash2": 1432181525, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "hitEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetLockedTarget", + "type_name_2": "impact_nodes.GetLockedTarget", + "qualified_name": "keen::ds::impact_nodes::GetLockedTarget", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4222417494, + "hash2": 2892005237, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::ecs::TargetType", + "type_hash": 168829289, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetSelf", + "type_name_2": "impact_nodes.GetSelf", + "qualified_name": "keen::ds::impact_nodes::GetSelf", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1246283383, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetTransform", + "type_name_2": "impact_nodes.GetTransform", + "qualified_name": "keen::ds::impact_nodes::GetTransform", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1179385627, + "hash2": 2453512691, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetSlotTransform", + "type_name_2": "impact_nodes.GetSlotTransform", + "qualified_name": "keen::ds::impact_nodes::GetSlotTransform", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3363524183, + "hash2": 954360498, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConsumeItem", + "type_name_2": "impact_nodes.ConsumeItem", + "qualified_name": "keen::ds::impact_nodes::ConsumeItem", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 650570748, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyOffset", + "type_name_2": "impact_nodes.ApplyOffset", + "qualified_name": "keen::ds::impact_nodes::ApplyOffset", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2063583234, + "hash2": 2432563178, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "localOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "worldOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "orientationOffset", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 88 + }, + { + "name": "result", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartQuery", + "type_name_2": "impact_nodes.StartQuery", + "qualified_name": "keen::ds::impact_nodes::StartQuery", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 88, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2695951103, + "hash2": 3358696140, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 68 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 80 + }, + { + "name": "colliderFlag", + "type_name": "keen::ds::ecs::ColliderFlags", + "type_hash": 2421469055, + "data_offset": 84 + }, + { + "name": "sortByDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 86 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StopQuery", + "type_name_2": "impact_nodes.StopQuery", + "qualified_name": "keen::ds::impact_nodes::StopQuery", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2303158193, + "hash2": 2022554805, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FetchAttribute", + "type_name_2": "impact_nodes.FetchAttribute", + "qualified_name": "keen::ds::impact_nodes::FetchAttribute", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3383980351, + "hash2": 833198311, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "value", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetAttribute", + "type_name_2": "impact_nodes.SetAttribute", + "qualified_name": "keen::ds::impact_nodes::SetAttribute", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 612332339, + "hash2": 833198311, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "value", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ValuesMathOperator", + "type_name_2": "impact_nodes.ValuesMathOperator", + "qualified_name": "keen::ds::impact_nodes::ValuesMathOperator", + "referenced_type_name": "keen::impact_nodes::ValuesMathOperator", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1103826107, + "hash2": 3684695300, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ApplyChange", + "type_name_2": "impact_nodes.ApplyChange", + "qualified_name": "keen::ds::impact_nodes::ApplyChange", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2845283525, + "hash2": 564606613, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "attributeRefInput", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 28 + }, + { + "name": "operation", + "type_name": "keen::ds::impact_nodes::ValuesMathOperator", + "type_hash": 1103826107, + "data_offset": 44 + }, + { + "name": "valueStorage", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 45 + }, + { + "name": "valueStorageSign", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 46 + }, + { + "name": "value", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 47 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChangeAttribute", + "type_name_2": "impact_nodes.ChangeAttribute", + "qualified_name": "keen::ds::impact_nodes::ChangeAttribute", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2888968165, + "hash2": 3931305289, + "struct_fields": [ + { + "name": "attributeRef", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 8 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "attributeRefInput", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 28 + }, + { + "name": "operation", + "type_name": "keen::ds::impact_nodes::ValuesMathOperator", + "type_hash": 1103826107, + "data_offset": 44 + }, + { + "name": "valueStorage", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 45 + }, + { + "name": "value", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 46 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AddValues", + "type_name_2": "impact_nodes.AddValues", + "qualified_name": "keen::ds::impact_nodes::AddValues", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1983916356, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::impact_nodes::ValuesMathOperator", + "type_hash": 1103826107, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubValues", + "type_name_2": "impact_nodes.SubValues", + "qualified_name": "keen::ds::impact_nodes::SubValues", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3030169189, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::impact_nodes::ValuesMathOperator", + "type_hash": 1103826107, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MulValues", + "type_name_2": "impact_nodes.MulValues", + "qualified_name": "keen::ds::impact_nodes::MulValues", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3547102017, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::impact_nodes::ValuesMathOperator", + "type_hash": 1103826107, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DivValues", + "type_name_2": "impact_nodes.DivValues", + "qualified_name": "keen::ds::impact_nodes::DivValues", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2920670692, + "hash2": 204522217, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::impact_nodes::ValuesMathOperator", + "type_hash": 1103826107, + "data_offset": 8 + }, + { + "name": "valueA", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 9 + }, + { + "name": "valueB", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 10 + }, + { + "name": "result", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Normalize", + "type_name_2": "impact_nodes.Normalize", + "qualified_name": "keen::ds::impact_nodes::Normalize", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2471440006, + "hash2": 3100420605, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "result", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetLength", + "type_name_2": "impact_nodes.SetLength", + "qualified_name": "keen::ds::impact_nodes::SetLength", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3949967233, + "hash2": 3926554695, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "length", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "result", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetLength", + "type_name_2": "impact_nodes.GetLength", + "qualified_name": "keen::ds::impact_nodes::GetLength", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 490469909, + "hash2": 1161190845, + "struct_fields": [ + { + "name": "input", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "result", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnEntity", + "type_name_2": "impact_nodes.SpawnEntity", + "qualified_name": "keen::ds::impact_nodes::SpawnEntity", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 136, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2953829645, + "hash2": 1568040399, + "struct_fields": [ + { + "name": "breakImpactHierarchy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "templateInput", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 12 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 32 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 88 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 100 + }, + { + "name": "targetEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 112 + }, + { + "name": "parentEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 116 + }, + { + "name": "levelOverride", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "factionOverride", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 124 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateDamageSetup", + "type_name_2": "impact_nodes.CreateDamageSetup", + "qualified_name": "keen::ds::impact_nodes::CreateDamageSetup", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 112, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1358388983, + "hash2": 2854094152, + "struct_fields": [ + { + "name": "physicalCutDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + }, + { + "name": "physicalPierceDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "physicalBluntDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + }, + { + "name": "magicalFireDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 20 + }, + { + "name": "magicalIceDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + }, + { + "name": "magicalFogDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "magicalFogLightning", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 32 + }, + { + "name": "healing", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 36 + }, + { + "name": "poisonDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 40 + }, + { + "name": "woodDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 44 + }, + { + "name": "stoneDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + }, + { + "name": "metalDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 52 + }, + { + "name": "explosionDamage", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 56 + }, + { + "name": "damageSetup", + "type_name": "keen::ds::impact::DamageSetup", + "type_hash": 3674396349, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyDamage", + "type_name_2": "impact_nodes.ApplyDamage", + "qualified_name": "keen::ds::impact_nodes::ApplyDamage", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 180, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 716878264, + "hash2": 2964504599, + "struct_fields": [ + { + "name": "sourceId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "hitPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "hitNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "hitDirection", + "type_name": "keen::ds::impact::MajorDirection", + "type_hash": 1780141079, + "data_offset": 44 + }, + { + "name": "attackMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "attackStaminaMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "manaCost", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 60 + }, + { + "name": "damageScaleAttribute", + "type_name": "keen::ds::AttributeRootReference", + "type_hash": 1132379930, + "data_offset": 64 + }, + { + "name": "pushBack", + "type_name": "keen::ds::impact::PushBackForce", + "type_hash": 2076277553, + "data_offset": 80 + }, + { + "name": "hitReaction", + "type_name": "keen::ds::impact::HitReactionType", + "type_hash": 194263173, + "data_offset": 82 + }, + { + "name": "damageSetup", + "type_name": "keen::ds::impact::DamageSetup", + "type_hash": 3674396349, + "data_offset": 84 + }, + { + "name": "attackCategory", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 136 + }, + { + "name": "weaponCategory", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 140 + }, + { + "name": "materialId", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 156 + }, + { + "name": "canBeBlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 172 + }, + { + "name": "canCrit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 173 + }, + { + "name": "visceralAttackType", + "type_name": "keen::ds::VisceralAttackType", + "type_hash": 507004570, + "data_offset": 174 + }, + { + "name": "ignoreConsecutiveHits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 175 + }, + { + "name": "pusbackDirectionOverride", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + }, + { + "name": "wasBlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 177 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetConsecutiveHitCount", + "type_name_2": "impact_nodes.GetConsecutiveHitCount", + "qualified_name": "keen::ds::impact_nodes::GetConsecutiveHitCount", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3668551605, + "hash2": 476941871, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsConsecutiveHit", + "type_name_2": "impact_nodes.IsConsecutiveHit", + "qualified_name": "keen::ds::impact_nodes::IsConsecutiveHit", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1718298336, + "hash2": 652054533, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsSkillUnlocked", + "type_name_2": "impact_nodes.IsSkillUnlocked", + "qualified_name": "keen::ds::impact_nodes::IsSkillUnlocked", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1392900353, + "hash2": 2228648725, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "skill", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearConsecutiveHits", + "type_name_2": "impact_nodes.ClearConsecutiveHits", + "qualified_name": "keen::ds::impact_nodes::ClearConsecutiveHits", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3535548008, + "hash2": 4127422720, + "struct_fields": [ + { + "name": "clearInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetCursorTransform", + "type_name_2": "impact_nodes.GetCursorTransform", + "qualified_name": "keen::ds::impact_nodes::GetCursorTransform", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 212245201, + "hash2": 1957406716, + "struct_fields": [ + { + "name": "playerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Terraforming", + "type_name_2": "impact_nodes.Terraforming", + "qualified_name": "keen::ds::impact_nodes::Terraforming", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2711057947, + "hash2": 3532960825, + "struct_fields": [ + { + "name": "playerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "terraformingType", + "type_name": "keen::ds::TerraformingType", + "type_hash": 1957652367, + "data_offset": 72 + }, + { + "name": "damageTerraformingSetup", + "type_name": "keen::ds::impact::DamageTerraformingSetup", + "type_hash": 954082829, + "data_offset": 76 + }, + { + "name": "materialId", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 96 + }, + { + "name": "rangeDefault", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "rangeAdd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "rangeFlatten", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetQueryResultCount", + "type_name_2": "impact_nodes.GetQueryResultCount", + "qualified_name": "keen::ds::impact_nodes::GetQueryResultCount", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 228638273, + "hash2": 2775484770, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FetchQueryResult", + "type_name_2": "impact_nodes.FetchQueryResult", + "qualified_name": "keen::ds::impact_nodes::FetchQueryResult", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 997947674, + "hash2": 571966343, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 8 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "otherEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "hitPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "hitNormal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "hit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "queryNew", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + }, + { + "name": "updateNew", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 46 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetTransform", + "type_name_2": "impact_nodes.SetTransform", + "qualified_name": "keen::ds::impact_nodes::SetTransform", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1968836671, + "hash2": 757119056, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetOnCollisionEventCount", + "type_name_2": "impact_nodes.GetOnCollisionEventCount", + "qualified_name": "keen::ds::impact_nodes::GetOnCollisionEventCount", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 596502975, + "hash2": 476941871, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Wait", + "type_name_2": "impact_nodes.Wait", + "qualified_name": "keen::ds::impact_nodes::Wait", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2392035826, + "hash2": 1178555436, + "struct_fields": [ + { + "name": "durationInput", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FetchOnCollisionEvent", + "type_name_2": "impact_nodes.FetchOnCollisionEvent", + "qualified_name": "keen::ds::impact_nodes::FetchOnCollisionEvent", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 60, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2509641568, + "hash2": 2138913988, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "ignoreSameRoot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "ignoreWeakspots", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "otherEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "otherEntityRoot", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "combatCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 44 + }, + { + "name": "isWeakSpot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TriggerNoise", + "type_name_2": "impact_nodes.TriggerNoise", + "qualified_name": "keen::ds::impact_nodes::TriggerNoise", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1786227649, + "hash2": 1676535572, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PacifyFaction", + "type_name_2": "impact_nodes.PacifyFaction", + "qualified_name": "keen::ds::impact_nodes::PacifyFaction", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4248287167, + "hash2": 1465930916, + "struct_fields": [ + { + "name": "faction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CallFactionForHelp", + "type_name_2": "impact_nodes.CallFactionForHelp", + "qualified_name": "keen::ds::impact_nodes::CallFactionForHelp", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1588264443, + "hash2": 1465930916, + "struct_fields": [ + { + "name": "faction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomBranchNode", + "type_name_2": "impact_nodes.RandomBranchNode", + "qualified_name": "keen::ds::impact_nodes::RandomBranchNode", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2186721728, + "hash2": 1589722397, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomValueNode", + "type_name_2": "impact_nodes.RandomValueNode", + "qualified_name": "keen::ds::impact_nodes::RandomValueNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2983204061, + "hash2": 4106616463, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEach", + "type_name_2": "impact_nodes.ForEach", + "qualified_name": "keen::ds::impact_nodes::ForEach", + "referenced_type_name": "keen::ds::impact_nodes::ImpactBranchNode", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4090885491, + "hash2": 1257678181, + "struct_fields": [ + { + "name": "doBranch", + "type_name": "keen::ds::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 541067305, + "data_offset": 8 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhileLoopBranchNode", + "type_name_2": "impact_nodes.WhileLoopBranchNode", + "qualified_name": "keen::ds::impact_nodes::WhileLoopBranchNode", + "referenced_type_name": "keen::ds::impact_nodes::ImpactBranchNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3786340006, + "hash2": 3381929616, + "struct_fields": [ + { + "name": "doBranch", + "type_name": "keen::ds::impact_nodes::ImpactNodeExecutionBranch", + "type_hash": 541067305, + "data_offset": 8 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OnEvent", + "type_name_2": "impact_nodes.OnEvent", + "qualified_name": "keen::ds::impact_nodes::OnEvent", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3208433842, + "hash2": 3065259308, + "struct_fields": [ + { + "name": "eventType", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterRandom", + "type_name_2": "impact_nodes.FilterRandom", + "qualified_name": "keen::ds::impact_nodes::FilterRandom", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4285746354, + "hash2": 2986946900, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterFriends", + "type_name_2": "impact_nodes.FilterFriends", + "qualified_name": "keen::ds::impact_nodes::FilterFriends", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 716743402, + "hash2": 2645065332, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterSameRoot", + "type_name_2": "impact_nodes.FilterSameRoot", + "qualified_name": "keen::ds::impact_nodes::FilterSameRoot", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1011348295, + "hash2": 2645065332, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterRootEntity", + "type_name_2": "impact_nodes.FilterRootEntity", + "qualified_name": "keen::ds::impact_nodes::FilterRootEntity", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2652441546, + "hash2": 2645065332, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterFaction", + "type_name_2": "impact_nodes.FilterFaction", + "qualified_name": "keen::ds::impact_nodes::FilterFaction", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 680038347, + "hash2": 617974593, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "faction", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterConsecutiveHits", + "type_name_2": "impact_nodes.FilterConsecutiveHits", + "qualified_name": "keen::ds::impact_nodes::FilterConsecutiveHits", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 688738783, + "hash2": 3761697699, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FilterEntityTag", + "type_name_2": "impact_nodes.FilterEntityTag", + "qualified_name": "keen::ds::impact_nodes::FilterEntityTag", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1939776690, + "hash2": 1141109639, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "entityTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 12 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachCollisionInStream", + "type_name_2": "impact_nodes.ForEachCollisionInStream", + "qualified_name": "keen::ds::impact_nodes::ForEachCollisionInStream", + "referenced_type_name": "keen::ds::impact_nodes::WhileLoopBranchNode", + "class_size": 120, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1992907182, + "hash2": 212933730, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 16 + }, + { + "name": "otherEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "otherRootEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 24 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 40 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 56 + }, + { + "name": "voxelMaterial", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "isCombatTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 116 + }, + { + "name": "isWeakSpot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 117 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachFootDownInStream", + "type_name_2": "impact_nodes.ForEachFootDownInStream", + "qualified_name": "keen::ds::impact_nodes::ForEachFootDownInStream", + "referenced_type_name": "keen::ds::impact_nodes::WhileLoopBranchNode", + "class_size": 44, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2798169300, + "hash2": 695429744, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsStreamEmpty", + "type_name_2": "impact_nodes.IsStreamEmpty", + "qualified_name": "keen::ds::impact_nodes::IsStreamEmpty", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2539608012, + "hash2": 2591164256, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetStreamEventCount", + "type_name_2": "impact_nodes.GetStreamEventCount", + "qualified_name": "keen::ds::impact_nodes::GetStreamEventCount", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 785970054, + "hash2": 2986946900, + "struct_fields": [ + { + "name": "eventStream", + "type_name": "keen::ds::impact::EventStream", + "type_hash": 4026249663, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachCollision", + "type_name_2": "impact_nodes.ForEachCollision", + "qualified_name": "keen::ds::impact_nodes::ForEachCollision", + "referenced_type_name": "keen::ds::impact_nodes::WhileLoopBranchNode", + "class_size": 44, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1370176533, + "hash2": 1885130842, + "struct_fields": [ + { + "name": "otherEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachHitEvent", + "type_name_2": "impact_nodes.ForEachHitEvent", + "qualified_name": "keen::ds::impact_nodes::ForEachHitEvent", + "referenced_type_name": "keen::ds::impact_nodes::WhileLoopBranchNode", + "class_size": 96, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 2044903900, + "hash2": 33124903, + "struct_fields": [ + { + "name": "wasParried", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "wasBlocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "wasBlockBroken", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "wasBackstab", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "wasCrit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "wasImmune", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "wasKillingBlow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "wasVisceral", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "wasWeakspot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "wasSkillShot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "targetFaction", + "type_name": "keen::ds::FactionType", + "type_hash": 515941569, + "data_offset": 26 + }, + { + "name": "attackCategory", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 27 + }, + { + "name": "weaponCategory", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 28 + }, + { + "name": "rootEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 44 + }, + { + "name": "sourceEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 48 + }, + { + "name": "targetRootEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 52 + }, + { + "name": "targetEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 56 + }, + { + "name": "weaponEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 60 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "healthChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 88 + }, + { + "name": "staminaChange", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SendBaseHitEvent", + "type_name_2": "impact_nodes.SendBaseHitEvent", + "qualified_name": "keen::ds::impact_nodes::SendBaseHitEvent", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 837689071, + "hash2": 3150198534, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "impactMaterial", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 32 + }, + { + "name": "voxelMaterial", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "targetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachParryEvent", + "type_name_2": "impact_nodes.ForEachParryEvent", + "qualified_name": "keen::ds::impact_nodes::ForEachParryEvent", + "referenced_type_name": "keen::ds::impact_nodes::WhileLoopBranchNode", + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3779043765, + "hash2": 1126904643, + "struct_fields": [ + { + "name": "blockerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "attackerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + }, + { + "name": "staminaDrain", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForEachItemInBackpack", + "type_name_2": "impact_nodes.ForEachItemInBackpack", + "qualified_name": "keen::ds::impact_nodes::ForEachItemInBackpack", + "referenced_type_name": "keen::ds::impact_nodes::WhileLoopBranchNode", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3897766469, + "hash2": 3745996836, + "struct_fields": [ + { + "name": "ownerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + }, + { + "name": "pideId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BoolIfBranchNode", + "type_name_2": "impact_nodes.BoolIfBranchNode", + "qualified_name": "keen::ds::impact_nodes::BoolIfBranchNode", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1200881408, + "hash2": 487413529, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ValuesCompareOperator", + "type_name_2": "impact_nodes.ValuesCompareOperator", + "qualified_name": "keen::ds::impact_nodes::ValuesCompareOperator", + "referenced_type_name": "keen::impact_nodes::ValuesCompareOperator", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2509498912, + "hash2": 285676720, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IsEqual", + "type_name_2": "impact_nodes.IsEqual", + "qualified_name": "keen::ds::impact_nodes::IsEqual", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 416035541, + "hash2": 1957963, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::impact_nodes::ValuesCompareOperator", + "type_hash": 2509498912, + "data_offset": 12 + }, + { + "name": "valueA", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 13 + }, + { + "name": "valueB", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsLess", + "type_name_2": "impact_nodes.IsLess", + "qualified_name": "keen::ds::impact_nodes::IsLess", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3473287394, + "hash2": 1957963, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::impact_nodes::ValuesCompareOperator", + "type_hash": 2509498912, + "data_offset": 12 + }, + { + "name": "valueA", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 13 + }, + { + "name": "valueB", + "type_name": "keen::ds::impact::TypedValue32", + "type_hash": 900101065, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsInState", + "type_name_2": "impact_nodes.IsInState", + "qualified_name": "keen::ds::impact_nodes::IsInState", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2087663497, + "hash2": 935405841, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "state", + "type_name": "keen::ds::actor::StateFlag", + "type_hash": 200374815, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasFaction", + "type_name_2": "impact_nodes.HasFaction", + "qualified_name": "keen::ds::impact_nodes::HasFaction", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1251709855, + "hash2": 80274063, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "faction", + "type_name": "keen::ds::FactionMask", + "type_hash": 897935557, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasEntityTag", + "type_name_2": "impact_nodes.HasEntityTag", + "qualified_name": "keen::ds::impact_nodes::HasEntityTag", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2972634102, + "hash2": 61522590, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "entityTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsValidEntity", + "type_name_2": "impact_nodes.IsValidEntity", + "qualified_name": "keen::ds::impact_nodes::IsValidEntity", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2032581732, + "hash2": 652054533, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsInsideBox", + "type_name_2": "impact_nodes.IsInsideBox", + "qualified_name": "keen::ds::impact_nodes::IsInsideBox", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2402690112, + "hash2": 2902421887, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "box", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 84 + }, + { + "name": "boxOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasAttackCategory", + "type_name_2": "impact_nodes.HasAttackCategory", + "qualified_name": "keen::ds::impact_nodes::HasAttackCategory", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2392411349, + "hash2": 3157234197, + "struct_fields": [ + { + "name": "categoryMask", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 12 + }, + { + "name": "contains", + "type_name": "keen::ds::impact::AttackCategoryMask", + "type_hash": 3969330437, + "data_offset": 13 + }, + { + "name": "matchAll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasWeaponCategory", + "type_name_2": "impact_nodes.HasWeaponCategory", + "qualified_name": "keen::ds::impact_nodes::HasWeaponCategory", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 44, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2835570953, + "hash2": 3192964926, + "struct_fields": [ + { + "name": "weaponCategory", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 12 + }, + { + "name": "requiredCategory", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HasWeaponCategoryType", + "type_name_2": "impact_nodes.HasWeaponCategoryType", + "qualified_name": "keen::ds::impact_nodes::HasWeaponCategoryType", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3884532865, + "hash2": 3713301457, + "struct_fields": [ + { + "name": "weaponCategory", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 12 + }, + { + "name": "allowedCategories", + "type_name": "keen::ds::WeaponCategoryTypeMask", + "type_hash": 1275285871, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetWeaponVisualEntityId", + "type_name_2": "impact_nodes.GetWeaponVisualEntityId", + "qualified_name": "keen::ds::impact_nodes::GetWeaponVisualEntityId", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 97373391, + "hash2": 2923987944, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsSameEntity", + "type_name_2": "impact_nodes.IsSameEntity", + "qualified_name": "keen::ds::impact_nodes::IsSameEntity", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 437294958, + "hash2": 4013334672, + "struct_fields": [ + { + "name": "entityAId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "entityBId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsEnemy", + "type_name_2": "impact_nodes.IsEnemy", + "qualified_name": "keen::ds::impact_nodes::IsEnemy", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2599990893, + "hash2": 4013334672, + "struct_fields": [ + { + "name": "entityAId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "entityBId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IsFriend", + "type_name_2": "impact_nodes.IsFriend", + "qualified_name": "keen::ds::impact_nodes::IsFriend", + "referenced_type_name": "keen::ds::impact_nodes::IfBranchNode", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 986705779, + "hash2": 4013334672, + "struct_fields": [ + { + "name": "entityAId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 12 + }, + { + "name": "entityBId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GetEnemyCountInRange", + "type_name_2": "impact_nodes.GetEnemyCountInRange", + "qualified_name": "keen::ds::impact_nodes::GetEnemyCountInRange", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2727111506, + "hash2": 1436952397, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SetEnemyVariable", + "type_name_2": "impact_nodes.SetEnemyVariable", + "qualified_name": "keen::ds::impact_nodes::SetEnemyVariable", + "referenced_type_name": "keen::ds::impact_nodes::ImpactExecutableNode", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2547272363, + "hash2": 2231198256, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 8 + }, + { + "name": "variable", + "type_name": "keen::ds::enemy01::EnemyVariableReference", + "type_hash": 2888651035, + "data_offset": 12 + }, + { + "name": "state", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactDefinition", + "type_name_2": "ImpactDefinition", + "qualified_name": "keen::ds::ImpactDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2972229488, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactVariable", + "type_name_2": "ImpactVariable", + "qualified_name": "keen::ds::ImpactVariable", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2893371701, + "hash2": 3706871301, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "configId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 12 + }, + { + "name": "offsetInBytes", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 14 + }, + { + "name": "dbgName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ImpactCommand[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ImpactCommand", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2900798373, + "hash2": 245731021, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ImpactVariable[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ImpactVariable", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 634993930, + "hash2": 905757137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactProgram", + "type_name_2": "ImpactProgram", + "qualified_name": "keen::ds::ImpactProgram", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 541400123, + "hash2": 3391078136, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::impact::ProgramId", + "type_hash": 1669254118, + "data_offset": 0 + }, + { + "name": "programGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "stackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "usedStreams", + "type_name": "keen::ds::impact::EventStreamMask", + "type_hash": 1806120091, + "data_offset": 22 + }, + { + "name": "code", + "type_name": "keen::DsArray", + "type_hash": 2900798373, + "data_offset": 24 + }, + { + "name": "codeShutdown", + "type_name": "keen::DsArray", + "type_hash": 2900798373, + "data_offset": 64 + }, + { + "name": "dataLayout", + "type_name": "keen::DsArray", + "type_hash": 634993930, + "data_offset": 104 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfigInfoEntry", + "type_name_2": "ImpactConfigInfoEntry", + "qualified_name": "keen::ds::ImpactConfigInfoEntry", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1940026861, + "hash2": 2824450827, + "struct_fields": [ + { + "name": "nodeName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + }, + { + "name": "configId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 44 + }, + { + "name": "type", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ExecutionInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ExecutionInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2558464190, + "hash2": 2359619675, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ExecutionInfo", + "type_name_2": "ExecutionInfo", + "qualified_name": "keen::ds::ExecutionInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 732151427, + "hash2": 3755221228, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "branch", + "type_name": "keen::DsArray", + "type_hash": 2558464190, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactFunctionCallDebugInfo", + "type_name_2": "ImpactFunctionCallDebugInfo", + "qualified_name": "keen::ds::ImpactFunctionCallDebugInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3774809756, + "hash2": 1828859681, + "struct_fields": [ + { + "name": "nodeName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "nodeId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 40 + }, + { + "name": "pc", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ImpactConfigInfoEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ImpactConfigInfoEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2612581576, + "hash2": 531295923, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ImpactFunctionCallDebugInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ImpactFunctionCallDebugInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2014772927, + "hash2": 3294205440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactInfo", + "type_name_2": "ImpactInfo", + "qualified_name": "keen::ds::ImpactInfo", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1442565557, + "hash2": 983452790, + "struct_fields": [ + { + "name": "programGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "cmdCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "configs", + "type_name": "keen::DsArray", + "type_hash": 2612581576, + "data_offset": 24 + }, + { + "name": "programFlow", + "type_name": "keen::DsArray", + "type_hash": 2558464190, + "data_offset": 64 + }, + { + "name": "dataLayout", + "type_name": "keen::DsArray", + "type_hash": 634993930, + "data_offset": 104 + }, + { + "name": "debugInfo", + "type_name": "keen::DsArray", + "type_hash": 2014772927, + "data_offset": 144 + }, + { + "name": "shutdownlDebugInfo", + "type_name": "keen::DsArray", + "type_hash": 2014772927, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactConfigData", + "type_name_2": "ImpactConfigData", + "qualified_name": "keen::ds::ImpactConfigData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4281858335, + "hash2": 2393923300, + "struct_fields": [ + { + "name": "configValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImpactSubDirectory", + "type_name_2": "ImpactSubDirectory", + "qualified_name": "keen::ds::ImpactSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3861778184, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactDirectory", + "type_name_2": "ImpactDirectory", + "qualified_name": "keen::ds::ImpactDirectory", + "referenced_type_name": "keen::ds::ImpactSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3765009496, + "hash2": 786631840, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ImpactProgramReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ImpactProgramReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3734230253, + "hash2": 2018248235, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImpactRegistryResource", + "type_name_2": "ImpactRegistryResource", + "qualified_name": "keen::ds::ImpactRegistryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 248966822, + "hash2": 1731272921, + "struct_fields": [ + { + "name": "programs", + "type_name": "keen::DsArray", + "type_hash": 3734230253, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CelestialBodyDirection", + "type_name_2": "CelestialBodyDirection", + "qualified_name": "keen::ds::CelestialBodyDirection", + "referenced_type_name": "keen::CelestialBodyDirection", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1724036816, + "hash2": 728154747, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CelestialBodySetup", + "type_name_2": "CelestialBodySetup", + "qualified_name": "keen::ds::CelestialBodySetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1441825400, + "hash2": 3744016371, + "struct_fields": [ + { + "name": "riseAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "setAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "zenithAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "direction", + "type_name": "keen::ds::CelestialBodyDirection", + "type_hash": 1724036816, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IngameTimeConfig", + "type_name_2": "IngameTimeConfig", + "qualified_name": "keen::ds::IngameTimeConfig", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2712739317, + "hash2": 1253555966, + "struct_fields": [ + { + "name": "dayStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "dayEnd", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "sunSetup", + "type_name": "keen::ds::CelestialBodySetup", + "type_hash": 1441825400, + "data_offset": 16 + }, + { + "name": "moonSetup", + "type_name": "keen::ds::CelestialBodySetup", + "type_hash": 1441825400, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IngameTimeSpan", + "type_name_2": "IngameTimeSpan", + "qualified_name": "keen::ds::IngameTimeSpan", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2736299987, + "hash2": 1632464715, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "end", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PresetId", + "type_name_2": "input_mapping.PresetId", + "qualified_name": "keen::ds::input_mapping::PresetId", + "referenced_type_name": "keen::input_mapping::PresetId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 126049622, + "hash2": 3051997031, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ControlOperationType", + "type_name_2": "input_mapping.ControlOperationType", + "qualified_name": "keen::ds::input_mapping::ControlOperationType", + "referenced_type_name": "keen::input_mapping::ControlOperationType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1233671930, + "hash2": 4047197721, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputModality", + "type_name_2": "input_mapping.InputModality", + "qualified_name": "keen::ds::input_mapping::InputModality", + "referenced_type_name": "keen::input_mapping::InputModality", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3422153319, + "hash2": 332546810, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AxisDirection", + "type_name_2": "input_mapping.AxisDirection", + "qualified_name": "keen::ds::input_mapping::AxisDirection", + "referenced_type_name": "keen::input_mapping::AxisDirection", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 7909002, + "hash2": 3572585483, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameplayAction", + "type_name_2": "input_mapping.runtime.GameplayAction", + "qualified_name": "keen::ds::input_mapping::runtime::GameplayAction", + "referenced_type_name": "keen::input_mapping::runtime::GameplayAction", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2158643674, + "hash2": 1730193268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameplayAction", + "type_name_2": "input_mapping.config.GameplayAction", + "qualified_name": "keen::ds::input_mapping::config::GameplayAction", + "referenced_type_name": "keen::input_mapping::config::GameplayAction", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3855089340, + "hash2": 1610178457, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ControlOperation", + "type_name_2": "input_mapping.serialize.ControlOperation", + "qualified_name": "keen::ds::input_mapping::serialize::ControlOperation", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 113552320, + "hash2": 1961038295, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::input_mapping::ControlOperationType", + "type_hash": 1233671930, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "axis", + "type_name": "keen::ds::input_mapping::AxisDirection", + "type_hash": 7909002, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "input_mapping.serialize.ControlOperation[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::input_mapping::serialize::ControlOperation", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 160944297, + "hash2": 1511708984, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ControlOperationCombo", + "type_name_2": "input_mapping.serialize.ControlOperationCombo", + "qualified_name": "keen::ds::input_mapping::serialize::ControlOperationCombo", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 972960038, + "hash2": 4104442399, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::ds::input_mapping::serialize::ControlOperation", + "type_hash": 113552320, + "data_offset": 0 + }, + { + "name": "modifiers", + "type_name": "keen::DsArray", + "type_hash": 160944297, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KeyboardMouseAction", + "type_name_2": "input_mapping.serialize.KeyboardMouseAction", + "qualified_name": "keen::ds::input_mapping::serialize::KeyboardMouseAction", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 956265332, + "hash2": 194089827, + "struct_fields": [ + { + "name": "primary", + "type_name": "keen::ds::input_mapping::serialize::ControlOperationCombo", + "type_hash": 972960038, + "data_offset": 0 + }, + { + "name": "secondary", + "type_name": "keen::ds::input_mapping::serialize::ControlOperationCombo", + "type_hash": 972960038, + "data_offset": 96 + }, + { + "name": "modality", + "type_name": "keen::ds::input_mapping::InputModality", + "type_hash": 3422153319, + "data_offset": 192 + }, + { + "name": "toggle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 193 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GamepadAction", + "type_name_2": "input_mapping.serialize.GamepadAction", + "qualified_name": "keen::ds::input_mapping::serialize::GamepadAction", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1676483483, + "hash2": 194089827, + "struct_fields": [ + { + "name": "primary", + "type_name": "keen::ds::input_mapping::serialize::ControlOperationCombo", + "type_hash": 972960038, + "data_offset": 0 + }, + { + "name": "secondary", + "type_name": "keen::ds::input_mapping::serialize::ControlOperationCombo", + "type_hash": 972960038, + "data_offset": 96 + }, + { + "name": "modality", + "type_name": "keen::ds::input_mapping::InputModality", + "type_hash": 3422153319, + "data_offset": 192 + }, + { + "name": "toggle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 193 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActionInputBinding", + "type_name_2": "input_mapping.serialize.ActionInputBinding", + "qualified_name": "keen::ds::input_mapping::serialize::ActionInputBinding", + "referenced_type_name": null, + "class_size": 440, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2557332857, + "hash2": 1513990022, + "struct_fields": [ + { + "name": "gameplay", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "keyboardMouse", + "type_name": "keen::ds::input_mapping::serialize::KeyboardMouseAction", + "type_hash": 956265332, + "data_offset": 40 + }, + { + "name": "gamepad", + "type_name": "keen::ds::input_mapping::serialize::GamepadAction", + "type_hash": 1676483483, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "input_mapping.serialize.ActionInputBinding[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::input_mapping::serialize::ActionInputBinding", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2920173778, + "hash2": 1531562173, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputBindings", + "type_name_2": "input_mapping.serialize.InputBindings", + "qualified_name": "keen::ds::input_mapping::serialize::InputBindings", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 287788532, + "hash2": 2920375474, + "struct_fields": [ + { + "name": "customKeyboardMouseBasePresetId", + "type_name": "keen::ds::input_mapping::PresetId", + "type_hash": 126049622, + "data_offset": 0 + }, + { + "name": "customGamepadBasePresetId", + "type_name": "keen::ds::input_mapping::PresetId", + "type_hash": 126049622, + "data_offset": 1 + }, + { + "name": "bindings", + "type_name": "keen::DsArray", + "type_hash": 2920173778, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContextualVector2Context", + "type_name_2": "input_mapping.runtime.ContextualVector2Context", + "qualified_name": "keen::ds::input_mapping::runtime::ContextualVector2Context", + "referenced_type_name": "keen::input_mapping::runtime::ContextualVector2Context", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1901671865, + "hash2": 2122830593, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ContextualVector2", + "type_name_2": "input_mapping.runtime.ContextualVector2", + "qualified_name": "keen::ds::input_mapping::runtime::ContextualVector2", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 839672430, + "hash2": 1268272817, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::ds::input_mapping::runtime::ContextualVector2Context", + "type_hash": 1901671865, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionQuery", + "type_name_2": "ecs.InteractionQuery", + "qualified_name": "keen::ds::ecs::InteractionQuery", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1117399140, + "hash2": 1031555002, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "queryRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "queryOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionQuery", + "type_name_2": "ecs.ClientInteractionQuery", + "qualified_name": "keen::ds::ecs::ClientInteractionQuery", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2889369363, + "hash2": 399264633, + "struct_fields": [ + { + "name": "nearestOfferedInteractionOfferId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "specialInteraction", + "type_name": "keen::ds::ecs::SpecialInteraction", + "type_hash": 832903769, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAcceptData", + "type_name_2": "ecs.InteractionAcceptData", + "qualified_name": "keen::ds::ecs::InteractionAcceptData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1102029376, + "hash2": 2776307671, + "struct_fields": [ + { + "name": "guestId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "usedItem", + "type_name": "keen::ds::InventorySlotId", + "type_hash": 4243837072, + "data_offset": 4 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionOffer", + "type_name_2": "ecs.InteractionOffer", + "qualified_name": "keen::ds::ecs::InteractionOffer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 128, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3979109974, + "hash2": 3657132710, + "struct_fields": [ + { + "name": "defaultAction", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "verbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 16 + }, + { + "name": "lastVerbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 32 + }, + { + "name": "overrideVerbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 48 + }, + { + "name": "overrideSequence", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 64 + }, + { + "name": "lastAttemptData", + "type_name": "keen::ds::ecs::InteractionAcceptData", + "type_hash": 1102029376, + "data_offset": 68 + }, + { + "name": "lastAcceptData", + "type_name": "keen::ds::ecs::InteractionAcceptData", + "type_hash": 1102029376, + "data_offset": 84 + }, + { + "name": "lastAcceptTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "verbId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 116 + }, + { + "name": "isColliderDirty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 120 + }, + { + "name": "isOffered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + }, + { + "name": "reduceInteractionWeight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 122 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionOffer", + "type_name_2": "ecs.ClientInteractionOffer", + "qualified_name": "keen::ds::ecs::ClientInteractionOffer", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 600222061, + "hash2": 290399593, + "struct_fields": [ + { + "name": "verbId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "lastAcceptionId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "isOffered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLockFlag", + "type_name_2": "ecs.InteractionLockFlag", + "qualified_name": "keen::ds::ecs::InteractionLockFlag", + "referenced_type_name": "keen::ecs::InteractionLockFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2558863513, + "hash2": 1526333928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLockMask", + "type_name_2": "ecs.InteractionLockMask", + "qualified_name": "keen::ds::ecs::InteractionLockMask", + "referenced_type_name": "keen::ecs::InteractionLockMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1186889091, + "hash2": 449485960, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLock", + "type_name_2": "ecs.InteractionLock", + "qualified_name": "keen::ds::ecs::InteractionLock", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 60, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3042926567, + "hash2": 363642493, + "struct_fields": [ + { + "name": "requiredItemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "requiredItem", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "requiredPermission", + "type_name": "keen::ds::PlayerPermissionsMask", + "type_hash": 978357734, + "data_offset": 20 + }, + { + "name": "lockMask", + "type_name": "keen::ds::ecs::InteractionLockMask", + "type_hash": 1186889091, + "data_offset": 21 + }, + { + "name": "successfulAttempt", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 24 + }, + { + "name": "failedAttempt", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 40 + }, + { + "name": "destroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootRefill", + "type_name_2": "ecs.LootRefill", + "qualified_name": "keen::ds::ecs::LootRefill", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2264711302, + "hash2": 1843111115, + "struct_fields": [ + { + "name": "lootableItemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "refillCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.LootRefill[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::LootRefill", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3313394925, + "hash2": 3119246050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionLootRefill", + "type_name_2": "ecs.InteractionLootRefill", + "qualified_name": "keen::ds::ecs::InteractionLootRefill", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 166918254, + "hash2": 1074653016, + "struct_fields": [ + { + "name": "waitTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "verbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 8 + }, + { + "name": "defaultSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 24 + }, + { + "name": "items", + "type_name": "keen::DsArray", + "type_hash": 3313394925, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicInteractionLootRefill", + "type_name_2": "ecs.DynamicInteractionLootRefill", + "qualified_name": "keen::ds::ecs::DynamicInteractionLootRefill", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 200248461, + "hash2": 2761395435, + "struct_fields": [ + { + "name": "nextRefill", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionLock", + "type_name_2": "ecs.ClientInteractionLock", + "qualified_name": "keen::ds::ecs::ClientInteractionLock", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 730169362, + "hash2": 612795676, + "struct_fields": [ + { + "name": "failedAttempt", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "successfulAttempt", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "requiredItem", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 32 + }, + { + "name": "offerId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "requiredPermission", + "type_name": "keen::ds::PlayerPermissionsMask", + "type_hash": 978357734, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionKnowledgeLock", + "type_name_2": "ecs.InteractionKnowledgeLock", + "qualified_name": "keen::ds::ecs::InteractionKnowledgeLock", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3320868091, + "hash2": 91382055, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::ds::ecs::ToggleModifier", + "type_hash": 88264629, + "data_offset": 0 + }, + { + "name": "useSpawnKnowledgeRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "unlockRequiement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 4 + }, + { + "name": "queryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientInteractionToState", + "type_name_2": "ecs.ClientInteractionToState", + "qualified_name": "keen::ds::ecs::ClientInteractionToState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2163531081, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InteractionPause", + "type_name_2": "ecs.InteractionPause", + "qualified_name": "keen::ds::ecs::InteractionPause", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1843320498, + "hash2": 877192313, + "struct_fields": [ + { + "name": "timeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RemoveInteractionOnEmptyInventory", + "type_name_2": "ecs.RemoveInteractionOnEmptyInventory", + "qualified_name": "keen::ds::ecs::RemoveInteractionOnEmptyInventory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 104579374, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DirectionalState", + "type_name_2": "ecs.DirectionalState", + "qualified_name": "keen::ds::ecs::DirectionalState", + "referenced_type_name": "keen::ecs::DirectionalState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2745676705, + "hash2": 3299978359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DirectionalInteractionSetup", + "type_name_2": "ecs.DirectionalInteractionSetup", + "qualified_name": "keen::ds::ecs::DirectionalInteractionSetup", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2734047705, + "hash2": 2684417328, + "struct_fields": [ + { + "name": "backToIdle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "verb", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 4 + }, + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 20 + }, + { + "name": "animationState", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DirectionalInteraction", + "type_name_2": "ecs.DirectionalInteraction", + "qualified_name": "keen::ds::ecs::DirectionalInteraction", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2527483132, + "hash2": 3017327485, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::ecs::DirectionalState", + "type_hash": 2745676705, + "data_offset": 0 + }, + { + "name": "idleState", + "type_name": "keen::ds::ecs::DirectionalInteractionSetup", + "type_hash": 2734047705, + "data_offset": 4 + }, + { + "name": "frontInteraction", + "type_name": "keen::ds::ecs::DirectionalInteractionSetup", + "type_hash": 2734047705, + "data_offset": 56 + }, + { + "name": "backInteraction", + "type_name": "keen::ds::ecs::DirectionalInteractionSetup", + "type_hash": 2734047705, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionToggle", + "type_name_2": "ecs.InteractionToggle", + "qualified_name": "keen::ds::ecs::InteractionToggle", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1233581324, + "hash2": 946387148, + "struct_fields": [ + { + "name": "offToOnVerb", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "offToOnSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + }, + { + "name": "onToOffVerb", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 32 + }, + { + "name": "onToOffSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingInteraction", + "type_name_2": "ecs.CraftingInteraction", + "qualified_name": "keen::ds::ecs::CraftingInteraction", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2166620094, + "hash2": 1962685901, + "struct_fields": [ + { + "name": "craftingPropsInRange", + "type_name": "keen::ds::CraftingPropMask", + "type_hash": 3066136568, + "data_offset": 0 + }, + { + "name": "nextRecipeComfortRequirement", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "workshop", + "type_name": "keen::ObjectReference", + "type_hash": 224738262, + "data_offset": 12 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientCraftingInteraction", + "type_name_2": "ecs.ClientCraftingInteraction", + "qualified_name": "keen::ds::ecs::ClientCraftingInteraction", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2405865739, + "hash2": 3678090499, + "struct_fields": [ + { + "name": "craftingPropsInRange", + "type_name": "keen::ds::CraftingPropMask", + "type_hash": 3066136568, + "data_offset": 0 + }, + { + "name": "nextRecipeComfortRequirement", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAttachment", + "type_name_2": "ecs.InteractionAttachment", + "qualified_name": "keen::ds::ecs::InteractionAttachment", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 527387357, + "hash2": 3025903335, + "struct_fields": [ + { + "name": "guestOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 0 + }, + { + "name": "lastAttachTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InteractionAttachmentGuest", + "type_name_2": "ecs.InteractionAttachmentGuest", + "qualified_name": "keen::ds::ecs::InteractionAttachmentGuest", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1745648571, + "hash2": 1403717288, + "struct_fields": [ + { + "name": "lastHostEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemData", + "type_name_2": "ItemData", + "qualified_name": "keen::ds::ItemData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2729174096, + "hash2": 1963363675, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "pide", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemStack", + "type_name_2": "ItemStack", + "qualified_name": "keen::ds::ItemStack", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3922421504, + "hash2": 2788712062, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::ds::ItemData", + "type_hash": 2729174096, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryDirectory", + "type_name_2": "ecs.DefaultInventoryDirectory", + "qualified_name": "keen::ds::ecs::DefaultInventoryDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1356854470, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryEntry", + "type_name_2": "ecs.DefaultInventoryEntry", + "qualified_name": "keen::ds::ecs::DefaultInventoryEntry", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2846006169, + "hash2": 2303639367, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomDefaultInventoryEntry", + "type_name_2": "ecs.RandomDefaultInventoryEntry", + "qualified_name": "keen::ds::ecs::RandomDefaultInventoryEntry", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3143564816, + "hash2": 2220516528, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "countMin", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "countMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "spawnProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeightedDefaultInventoryEntry", + "type_name_2": "ecs.WeightedDefaultInventoryEntry", + "qualified_name": "keen::ds::ecs::WeightedDefaultInventoryEntry", + "referenced_type_name": "keen::ds::ecs::RandomDefaultInventoryEntry", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4218174502, + "hash2": 829156039, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomDefaultInventoryEntrySelector", + "type_name_2": "ecs.RandomDefaultInventoryEntrySelector", + "qualified_name": "keen::ds::ecs::RandomDefaultInventoryEntrySelector", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4066228837, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventorySetup", + "type_name_2": "ecs.DefaultInventorySetup", + "qualified_name": "keen::ds::ecs::DefaultInventorySetup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1442258128, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemStackInfoResource", + "type_name_2": "ecs.ItemStackInfoResource", + "qualified_name": "keen::ds::ecs::ItemStackInfoResource", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1119235841, + "hash2": 3821123618, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "countMin", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "countMax", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "spawnProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemStackInfoResourceWeighted", + "type_name_2": "ecs.ItemStackInfoResourceWeighted", + "qualified_name": "keen::ds::ecs::ItemStackInfoResourceWeighted", + "referenced_type_name": "keen::ds::ecs::ItemStackInfoResource", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3958233916, + "hash2": 3910001217, + "struct_fields": [ + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ItemStackInfoResourceWeighted[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ItemStackInfoResourceWeighted", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1705051017, + "hash2": 3574427371, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryEntrySelectorResource", + "type_name_2": "ecs.DefaultInventoryEntrySelectorResource", + "qualified_name": "keen::ds::ecs::DefaultInventoryEntrySelectorResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 728766668, + "hash2": 4152593065, + "struct_fields": [ + { + "name": "selectionCandidates", + "type_name": "keen::DsArray", + "type_hash": 1705051017, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ItemStackInfoResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ItemStackInfoResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1803406262, + "hash2": 2088451724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.DefaultInventoryEntrySelectorResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::DefaultInventoryEntrySelectorResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1152539333, + "hash2": 981008110, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryResource", + "type_name_2": "ecs.DefaultInventoryResource", + "qualified_name": "keen::ds::ecs::DefaultInventoryResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3763501291, + "hash2": 3749226911, + "struct_fields": [ + { + "name": "stacks", + "type_name": "keen::DsArray", + "type_hash": 1803406262, + "data_offset": 0 + }, + { + "name": "stackSelectors", + "type_name": "keen::DsArray", + "type_hash": 1152539333, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventory", + "type_name_2": "ecs.DefaultInventory", + "qualified_name": "keen::ds::ecs::DefaultInventory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2390101391, + "hash2": 3753414331, + "struct_fields": [ + { + "name": "defaultInventory", + "type_name": "keen::ds::ecs::DefaultInventoryReference", + "type_hash": 2114403164, + "data_offset": 0 + }, + { + "name": "keepOnRandomLoot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "applied", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultInventoryOverrides", + "type_name_2": "ecs.DefaultInventoryOverrides", + "qualified_name": "keen::ds::ecs::DefaultInventoryOverrides", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4147812100, + "hash2": 2685879474, + "struct_fields": [ + { + "name": "slot1", + "type_name": "keen::ds::ecs::DefaultInventoryReference", + "type_hash": 2114403164, + "data_offset": 0 + }, + { + "name": "slot2", + "type_name": "keen::ds::ecs::DefaultInventoryReference", + "type_hash": 2114403164, + "data_offset": 16 + }, + { + "name": "slot3", + "type_name": "keen::ds::ecs::DefaultInventoryReference", + "type_hash": 2114403164, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AffectedByIncreasedPickupSkill", + "type_name_2": "ecs.AffectedByIncreasedPickupSkill", + "qualified_name": "keen::ds::ecs::AffectedByIncreasedPickupSkill", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 158162700, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AdditionalMaterialLoot", + "type_name_2": "ecs.AdditionalMaterialLoot", + "qualified_name": "keen::ds::ecs::AdditionalMaterialLoot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 936306042, + "hash2": 3131221123, + "struct_fields": [ + { + "name": "additionalItemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryCategory", + "type_name_2": "InventoryCategory", + "qualified_name": "keen::ds::InventoryCategory", + "referenced_type_name": "keen::InventoryCategory", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 2124625581, + "hash2": 1370135596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventoryLink", + "type_name_2": "ecs.InventoryLink", + "qualified_name": "keen::ds::ecs::InventoryLink", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1230087404, + "hash2": 1851486631, + "struct_fields": [ + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "category", + "type_name": "keen::ds::InventoryCategory", + "type_hash": 2124625581, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryFlags", + "type_name_2": "ecs.InventoryFlags", + "qualified_name": "keen::ds::ecs::InventoryFlags", + "referenced_type_name": "keen::ecs::InventoryFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3021525263, + "hash2": 1236855047, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventorySetupMask", + "type_name_2": "ecs.InventorySetupMask", + "qualified_name": "keen::ds::ecs::InventorySetupMask", + "referenced_type_name": "keen::ecs::InventorySetupMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2202292085, + "hash2": 3772742395, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "InventoryCategory[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::InventoryCategory", + "class_size": 16, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 3237040600, + "hash2": 1363279146, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InventorySetup", + "type_name_2": "ecs.InventorySetup", + "qualified_name": "keen::ds::ecs::InventorySetup", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1215331417, + "hash2": 1580479439, + "struct_fields": [ + { + "name": "linksEntities", + "type_name": "keen::StaticArray", + "type_hash": 589531163, + "data_offset": 0 + }, + { + "name": "linksCategories", + "type_name": "keen::StaticArray", + "type_hash": 3237040600, + "data_offset": 64 + }, + { + "name": "inventoryFlags", + "type_name": "keen::ds::ecs::InventorySetupMask", + "type_hash": 2202292085, + "data_offset": 80 + }, + { + "name": "genericSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 81 + }, + { + "name": "availableSlotCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 82 + }, + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 83 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventorySetupInit", + "type_name_2": "ecs.InventorySetupInit", + "qualified_name": "keen::ds::ecs::InventorySetupInit", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2268376231, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ItemStack[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ItemStack", + "class_size": 96, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3467682180, + "hash2": 4095797734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Inventory", + "type_name_2": "ecs.Inventory", + "qualified_name": "keen::ds::ecs::Inventory", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 96, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 801769596, + "hash2": 2126148498, + "struct_fields": [ + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 3467682180, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryCraftingStock", + "type_name_2": "ecs.InventoryCraftingStock", + "qualified_name": "keen::ds::ecs::InventoryCraftingStock", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2848762620, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResourceNodeDropInfo", + "type_name_2": "ecs.ResourceNodeDropInfo", + "qualified_name": "keen::ds::ecs::ResourceNodeDropInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1411163445, + "hash2": 28510843, + "struct_fields": [ + { + "name": "entity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 16 + }, + { + "name": "stackAmount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 32 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.ResourceNodeDropInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::ResourceNodeDropInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2125875456, + "hash2": 2066896611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ResourceNodePickupDrops", + "type_name_2": "ecs.ResourceNodePickupDrops", + "qualified_name": "keen::ds::ecs::ResourceNodePickupDrops", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 96, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 4081501718, + "hash2": 1071334309, + "struct_fields": [ + { + "name": "pickupItemReference", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "drops", + "type_name": "keen::DsArray", + "type_hash": 2125875456, + "data_offset": 16 + }, + { + "name": "numberOfDrops", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 56 + }, + { + "name": "dropWhileAlivePercentage", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "dropInWorld", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "yOffsetMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "yOffsetMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "dropRadiusMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "dropRadiusMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "velocityMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "velocityMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MiningNodeKnowledge", + "type_name_2": "ecs.MiningNodeKnowledge", + "qualified_name": "keen::ds::ecs::MiningNodeKnowledge", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2756652116, + "hash2": 757138893, + "struct_fields": [ + { + "name": "useSpawnTriggerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "knowledgeNode", + "type_name": "keen::ObjectReference", + "type_hash": 3956008818, + "data_offset": 4 + }, + { + "name": "unlockForGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupItem", + "type_name_2": "ecs.PickupItem", + "qualified_name": "keen::ds::ecs::PickupItem", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2146241035, + "hash2": 1061791708, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 4 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "rarity", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 24 + }, + { + "name": "pickupAmount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 26 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupItemModelSetup", + "type_name_2": "ecs.PickupItemModelSetup", + "qualified_name": "keen::ds::ecs::PickupItemModelSetup", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4273684597, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DestroyOnLoot", + "type_name_2": "ecs.DestroyOnLoot", + "qualified_name": "keen::ds::ecs::DestroyOnLoot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 104, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2800293381, + "hash2": 3587286325, + "struct_fields": [ + { + "name": "despawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "vfxOnDestroy", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 24 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "shouldDestroy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 68 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestroyOnLootActivated", + "type_name_2": "ecs.DestroyOnLootActivated", + "qualified_name": "keen::ds::ecs::DestroyOnLootActivated", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2744115548, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AddDestructibleOnLoot", + "type_name_2": "ecs.AddDestructibleOnLoot", + "qualified_name": "keen::ds::ecs::AddDestructibleOnLoot", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1543166574, + "hash2": 3178015770, + "struct_fields": [ + { + "name": "health", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCategory", + "type_name_2": "ItemCategory", + "qualified_name": "keen::ds::ItemCategory", + "referenced_type_name": "keen::ItemCategory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3756772288, + "hash2": 3602882354, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCategoryMask", + "type_name_2": "ItemCategoryMask", + "qualified_name": "keen::ds::ItemCategoryMask", + "referenced_type_name": "keen::ItemCategoryMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2080858168, + "hash2": 4085820068, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CrosshairType", + "type_name_2": "CrosshairType", + "qualified_name": "keen::ds::CrosshairType", + "referenced_type_name": "keen::CrosshairType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3121038569, + "hash2": 2042172660, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemRarityMask", + "type_name_2": "ItemRarityMask", + "qualified_name": "keen::ds::ItemRarityMask", + "referenced_type_name": "keen::ItemRarityMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 708489959, + "hash2": 246638737, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemFlag", + "type_name_2": "ItemFlag", + "qualified_name": "keen::ds::ItemFlag", + "referenced_type_name": "keen::ItemFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2982920330, + "hash2": 2758138531, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemFlags", + "type_name_2": "ItemFlags", + "qualified_name": "keen::ds::ItemFlags", + "referenced_type_name": "keen::ItemFlags", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3703621627, + "hash2": 3835014297, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTag", + "type_name_2": "ItemTag", + "qualified_name": "keen::ds::ItemTag", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2454032312, + "hash2": 1543921876, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2749786473, + "hash2": 83209510, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagReference", + "type_name_2": "ItemTagReference", + "qualified_name": "keen::ds::ItemTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1087001461, + "hash2": 4047737544, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagWeight", + "type_name_2": "ItemTagWeight", + "qualified_name": "keen::ds::ItemTagWeight", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2095235160, + "hash2": 2519145853, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ds::ItemTagReference", + "type_hash": 1087001461, + "data_offset": 0 + }, + { + "name": "nominator", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "denominator", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagInfo", + "type_name_2": "ItemTagInfo", + "qualified_name": "keen::ds::ItemTagInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2230958276, + "hash2": 933973212, + "struct_fields": [ + { + "name": "tagGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "labelId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemTagInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemTagInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2527880391, + "hash2": 2518199455, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemTagInfoList", + "type_name_2": "ItemTagInfoList", + "qualified_name": "keen::ds::ItemTagInfoList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 533036428, + "hash2": 1964633981, + "struct_fields": [ + { + "name": "itemTags", + "type_name": "keen::DsArray", + "type_hash": 2527880391, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnappingToggleMode", + "type_name_2": "SnappingToggleMode", + "qualified_name": "keen::ds::SnappingToggleMode", + "referenced_type_name": "keen::SnappingToggleMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1394056024, + "hash2": 110819448, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ChangeVoxelData", + "type_name_2": "ChangeVoxelData", + "qualified_name": "keen::ds::ChangeVoxelData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4259032473, + "hash2": 3932715936, + "struct_fields": [ + { + "name": "isBuildingVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "placeVoxelMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 4 + }, + { + "name": "placeVoxelMaterialId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraDistance", + "type_name_2": "CameraDistance", + "qualified_name": "keen::ds::CameraDistance", + "referenced_type_name": "keen::CameraDistance", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 641329467, + "hash2": 4272870037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraDistanceOverride", + "type_name_2": "CameraDistanceOverride", + "qualified_name": "keen::ds::CameraDistanceOverride", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 101097379, + "hash2": 2901687749, + "struct_fields": [ + { + "name": "distance", + "type_name": "keen::ds::CameraDistance", + "type_hash": 641329467, + "data_offset": 0 + }, + { + "name": "override", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingCameraMode", + "type_name_2": "BuildingCameraMode", + "qualified_name": "keen::ds::BuildingCameraMode", + "referenced_type_name": "keen::BuildingCameraMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1345805071, + "hash2": 99279822, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CursorFxConfig", + "type_name_2": "CursorFxConfig", + "qualified_name": "keen::ds::CursorFxConfig", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 909276633, + "hash2": 3146016716, + "struct_fields": [ + { + "name": "loopedSfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "oneShotSfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "oneShotVfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 32 + }, + { + "name": "oneShotVfxOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 48 + }, + { + "name": "vfxParameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 88 + }, + { + "name": "vfxParameterOffset_boundingBoxMin", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 152 + }, + { + "name": "vfxParameterOffset_boundingBoxMax", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GliderConfig", + "type_name_2": "GliderConfig", + "qualified_name": "keen::ds::GliderConfig", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1955310308, + "hash2": 2008445781, + "struct_fields": [ + { + "name": "accelerationForward", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "airResistanceLongitudinal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "airResistanceLateral", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "airResistanceVertical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "yawAngleSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "pitchAngleSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rollAngleSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryStockType", + "type_name_2": "InventoryStockType", + "qualified_name": "keen::ds::InventoryStockType", + "referenced_type_name": "keen::InventoryStockType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1795665713, + "hash2": 2534410690, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttachDirection", + "type_name_2": "AttachDirection", + "qualified_name": "keen::ds::AttachDirection", + "referenced_type_name": "keen::AttachDirection", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2966581503, + "hash2": 1188690876, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttachAngleRange", + "type_name_2": "AttachAngleRange", + "qualified_name": "keen::ds::AttachAngleRange", + "referenced_type_name": "keen::AttachAngleRange", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2279431270, + "hash2": 1540763199, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AttachAngleConfig", + "type_name_2": "AttachAngleConfig", + "qualified_name": "keen::ds::AttachAngleConfig", + "referenced_type_name": null, + "class_size": 7, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3943697867, + "hash2": 1994793223, + "struct_fields": [ + { + "name": "ceilingAngle", + "type_name": "keen::ds::AttachAngleRange", + "type_hash": 2279431270, + "data_offset": 0 + }, + { + "name": "wallAngle", + "type_name": "keen::ds::AttachAngleRange", + "type_hash": 2279431270, + "data_offset": 1 + }, + { + "name": "floorAngle", + "type_name": "keen::ds::AttachAngleRange", + "type_hash": 2279431270, + "data_offset": 2 + }, + { + "name": "defaultAttachDirection", + "type_name": "keen::ds::AttachDirection", + "type_hash": 2966581503, + "data_offset": 3 + }, + { + "name": "secondaryAttachDirection", + "type_name": "keen::ds::AttachDirection", + "type_hash": 2966581503, + "data_offset": 4 + }, + { + "name": "hasSecondaryAttachDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "forceUprightNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRequirement", + "type_name_2": "VoxelRequirement", + "qualified_name": "keen::ds::VoxelRequirement", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4140619304, + "hash2": 3060685303, + "struct_fields": [ + { + "name": "soil", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 0 + }, + { + "name": "soilMaterialId", + "type_name": "keen::ds::VoxelMaterialId", + "type_hash": 2701508669, + "data_offset": 16 + }, + { + "name": "factor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRequirementInfo", + "type_name_2": "VoxelRequirementInfo", + "qualified_name": "keen::ds::VoxelRequirementInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2330289460, + "hash2": 1658999915, + "struct_fields": [ + { + "name": "requirements", + "type_name": "keen::DsArray", + "type_hash": 3923651217, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CursorActionConfig", + "type_name_2": "CursorActionConfig", + "qualified_name": "keen::ds::CursorActionConfig", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3024568277, + "hash2": 2674655684, + "struct_fields": [ + { + "name": "snapPositionToAddableVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "snapPositionToRemovableVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CursorConfig", + "type_name_2": "CursorConfig", + "qualified_name": "keen::ds::CursorConfig", + "referenced_type_name": null, + "class_size": 480, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 2982855327, + "hash2": 1935060870, + "struct_fields": [ + { + "name": "customCursorEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "autoCenterPivot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "pivotOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "allowSnapToSnappingBoxes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "forceSnapPositionToVoxelGrid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "snapOrientationToVoxelGrid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 34 + }, + { + "name": "snapToCenterWhenSmallerThanVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 35 + }, + { + "name": "smoothOutTerrainNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "alwaysFacePlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "addRandomYawAngleOffset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 38 + }, + { + "name": "primaryActionConfig", + "type_name": "keen::ds::CursorActionConfig", + "type_hash": 3024568277, + "data_offset": 39 + }, + { + "name": "attachAngleConfig", + "type_name": "keen::ds::AttachAngleConfig", + "type_hash": 3943697867, + "data_offset": 41 + }, + { + "name": "checkRequiredMaterialsOnPrimaryAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "secondaryActionConfig", + "type_name": "keen::ds::CursorActionConfig", + "type_hash": 3024568277, + "data_offset": 49 + }, + { + "name": "attachAngleConfigSecondary", + "type_name": "keen::ds::AttachAngleConfig", + "type_hash": 3943697867, + "data_offset": 51 + }, + { + "name": "checkRequiredMaterialsOnSecondaryAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 58 + }, + { + "name": "useSphereCast", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 59 + }, + { + "name": "keepSnappedToPlane", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "checkBuildZoneEnemies", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "checkSurfaceTopology", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "allowedVoxels", + "type_name": "keen::DsArray", + "type_hash": 3923651217, + "data_offset": 64 + }, + { + "name": "highlightHoveredEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "showVoxelBlock", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 105 + }, + { + "name": "addFxConfig", + "type_name": "keen::ds::CursorFxConfig", + "type_hash": 909276633, + "data_offset": 108 + }, + { + "name": "subFxConfig", + "type_name": "keen::ds::CursorFxConfig", + "type_hash": 909276633, + "data_offset": 268 + }, + { + "name": "defaultCursorStaticModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 428 + }, + { + "name": "defaultCursorSkinnedModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 444 + }, + { + "name": "defaultCursorVfx", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 460 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelSnappingConfigOld", + "type_name_2": "VoxelSnappingConfigOld", + "qualified_name": "keen::ds::VoxelSnappingConfigOld", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1000084788, + "hash2": 1234964739, + "struct_fields": [ + { + "name": "snapBoxOffsetMin", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "snapBoxOffsetMax", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + }, + { + "name": "basementHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentModel", + "type_name_2": "EquipmentModel", + "qualified_name": "keen::ds::EquipmentModel", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2684866822, + "hash2": 4253020177, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::BlendShapeMask", + "type_hash": 3013485815, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceRequirments", + "type_name_2": "SequenceRequirments", + "qualified_name": "keen::ds::SequenceRequirments", + "referenced_type_name": "keen::SequenceRequirments", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1093396727, + "hash2": 169005429, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceRequirmentMask", + "type_name_2": "SequenceRequirmentMask", + "qualified_name": "keen::ds::SequenceRequirmentMask", + "referenced_type_name": "keen::SequenceRequirmentMask", + "class_size": 2, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1886515790, + "hash2": 1713743500, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerType", + "type_name_2": "KnowledgeTriggerType", + "qualified_name": "keen::ds::KnowledgeTriggerType", + "referenced_type_name": "keen::KnowledgeTriggerType", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 410026499, + "hash2": 2120991863, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeTrigger", + "type_name_2": "GameKnowledgeTrigger", + "qualified_name": "keen::ds::GameKnowledgeTrigger", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 738120629, + "hash2": 1886618396, + "struct_fields": [ + { + "name": "triggerType", + "type_name": "keen::ds::KnowledgeTriggerType", + "type_hash": 410026499, + "data_offset": 0 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 223212227, + "data_offset": 4 + }, + { + "name": "playerKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 3956008818, + "data_offset": 20 + }, + { + "name": "itemKnowledge", + "type_name": "keen::ds::ItemKnowledgeTrigger", + "type_hash": 3476630128, + "data_offset": 36 + }, + { + "name": "useWorldItemKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemSequence", + "type_name_2": "ItemSequence", + "qualified_name": "keen::ds::ItemSequence", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2376865749, + "hash2": 1715950630, + "struct_fields": [ + { + "name": "sequenceId", + "type_name": "keen::ds::actor::SequenceResourceId", + "type_hash": 247312112, + "data_offset": 0 + }, + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 4 + }, + { + "name": "triggeredBy", + "type_name": "keen::ds::actor::ActionSequenceTrigger", + "type_hash": 259047605, + "data_offset": 20 + }, + { + "name": "requirements", + "type_name": "keen::ds::SequenceRequirmentMask", + "type_hash": 1886515790, + "data_offset": 22 + }, + { + "name": "requiredSkill", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 24 + }, + { + "name": "specialInteractionType", + "type_name": "keen::ds::ecs::SpecialInteraction", + "type_hash": 832903769, + "data_offset": 40 + }, + { + "name": "costOverride", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 44 + }, + { + "name": "triggerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "knowledgeTrigger", + "type_name": "keen::ds::GameKnowledgeTrigger", + "type_hash": 738120629, + "data_offset": 64 + }, + { + "name": "triggerKnowledgeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 120 + }, + { + "name": "sequenceEntityTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 124 + }, + { + "name": "combinedEntityTags", + "type_name": "keen::DsArray", + "type_hash": 3754826803, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiActionHints", + "type_name_2": "UiActionHints", + "qualified_name": "keen::ds::UiActionHints", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2865976807, + "hash2": 232068395, + "struct_fields": [ + { + "name": "primaryAction", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "secondaryAction", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 16 + }, + { + "name": "tertiaryAction", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 32 + }, + { + "name": "tertiaryGameplayAction", + "type_name": "keen::ds::input_mapping::runtime::GameplayAction", + "type_hash": 2158643674, + "data_offset": 48 + }, + { + "name": "alwaysShow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RecipeItemStackResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RecipeItemStackResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3009846981, + "hash2": 522564497, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::TerrainVoxelObjectDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2915247141, + "hash2": 2976132562, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelBlueprintConfig", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1342988649, + "hash2": 1462173653, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelBlueprintMaterialPool", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3011718358, + "hash2": 2293968976, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "EquipmentModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::EquipmentModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4153427963, + "hash2": 1925229982, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EquipmentSetup", + "type_name_2": "EquipmentSetup", + "qualified_name": "keen::ds::EquipmentSetup", + "referenced_type_name": null, + "class_size": 1080, + "fields_count": 47, + "primitive_type": "Struct", + "hash1": 3349510178, + "hash2": 1344124073, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::EquipmentSlotType", + "type_hash": 1809869085, + "data_offset": 0 + }, + { + "name": "repeatActionWhenPressed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "itemSequencesEntityTag", + "type_name": "keen::ds::ecs::EntityTagReference", + "type_hash": 2100437758, + "data_offset": 4 + }, + { + "name": "blendShapeMask", + "type_name": "keen::ds::BlendShapeMask", + "type_hash": 3013485815, + "data_offset": 20 + }, + { + "name": "hideMask", + "type_name": "keen::ds::VisualEquipmentMask", + "type_hash": 4212121825, + "data_offset": 24 + }, + { + "name": "disableMask", + "type_name": "keen::ds::ImpactEquipmentMask", + "type_hash": 2598936803, + "data_offset": 28 + }, + { + "name": "impactEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 32 + }, + { + "name": "program", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 48 + }, + { + "name": "visualEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 64 + }, + { + "name": "visualModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 80 + }, + { + "name": "primaryAnimationSet", + "type_name": "keen::ds::PrimaryAnimationSet", + "type_hash": 3816206845, + "data_offset": 96 + }, + { + "name": "secondaryAnimationSet", + "type_name": "keen::ds::SecondaryAnimationSet", + "type_hash": 2600125905, + "data_offset": 97 + }, + { + "name": "crosshairType", + "type_name": "keen::ds::CrosshairType", + "type_hash": 3121038569, + "data_offset": 98 + }, + { + "name": "cursorConfig", + "type_name": "keen::ds::CursorConfig", + "type_hash": 2982855327, + "data_offset": 104 + }, + { + "name": "cursorModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 584 + }, + { + "name": "cursorSkinnedModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 600 + }, + { + "name": "cursorVfx", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 616 + }, + { + "name": "cameraDistanceOverride", + "type_name": "keen::ds::CameraDistanceOverride", + "type_hash": 101097379, + "data_offset": 632 + }, + { + "name": "buildingCameraMode", + "type_name": "keen::ds::BuildingCameraMode", + "type_hash": 1345805071, + "data_offset": 634 + }, + { + "name": "defaultVerticalPlacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 636 + }, + { + "name": "maxTiltAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 640 + }, + { + "name": "maxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 644 + }, + { + "name": "placedEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 648 + }, + { + "name": "placementAABBmin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 664 + }, + { + "name": "placementAABBmax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 676 + }, + { + "name": "snappingAABBmin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 688 + }, + { + "name": "snappingAABBmax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 700 + }, + { + "name": "placementColliders", + "type_name": "keen::DsArray", + "type_hash": 640773983, + "data_offset": 712 + }, + { + "name": "placementNoBuildZones", + "type_name": "keen::ds::ecs::TriggerShapes", + "type_hash": 3107408110, + "data_offset": 752 + }, + { + "name": "appliedBuff", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 792 + }, + { + "name": "appliedDebuff", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 808 + }, + { + "name": "allowPlacementBelowFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 824 + }, + { + "name": "checkInhibitBuild", + "type_name": "keen::ds::InhibitBuildingCheck", + "type_hash": 3925522342, + "data_offset": 825 + }, + { + "name": "buildZoneRequired", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 826 + }, + { + "name": "requiresAltarSlot", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 827 + }, + { + "name": "requiredCraftingIngredients", + "type_name": "keen::DsArray", + "type_hash": 3009846981, + "data_offset": 832 + }, + { + "name": "placedEntityLocalSpawnVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 872 + }, + { + "name": "voxelData", + "type_name": "keen::ds::ChangeVoxelData", + "type_hash": 4259032473, + "data_offset": 884 + }, + { + "name": "voxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 504881936, + "data_offset": 908 + }, + { + "name": "terrainVoxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 2915247141, + "data_offset": 924 + }, + { + "name": "voxelSnappingConfig", + "type_name": "keen::ds::VoxelSnappingConfigOld", + "type_hash": 1000084788, + "data_offset": 940 + }, + { + "name": "voxelBlueprintConfig", + "type_name": "keen::ObjectReference", + "type_hash": 1342988649, + "data_offset": 968 + }, + { + "name": "voxelBlueprintMaterialPool", + "type_name": "keen::ObjectReference", + "type_hash": 3011718358, + "data_offset": 984 + }, + { + "name": "voxelObjectMaterialOverride", + "type_name": "keen::sint8", + "type_hash": 1490579016, + "data_offset": 1000 + }, + { + "name": "visualModels", + "type_name": "keen::DsArray", + "type_hash": 4153427963, + "data_offset": 1008 + }, + { + "name": "gliderConfig", + "type_name": "keen::ds::GliderConfig", + "type_hash": 1955310308, + "data_offset": 1048 + }, + { + "name": "terraformingType", + "type_name": "keen::ds::TerraformingType", + "type_hash": 1957652367, + "data_offset": 1076 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeTriggerMask", + "type_name_2": "ItemKnowledgeTriggerMask", + "qualified_name": "keen::ds::ItemKnowledgeTriggerMask", + "referenced_type_name": "keen::ItemKnowledgeTriggerMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1577933448, + "hash2": 1139129683, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeBase", + "type_name_2": "ItemKnowledgeBase", + "qualified_name": "keen::ds::ItemKnowledgeBase", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1429684633, + "hash2": 1980502583, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::ds::ItemKnowledgeTriggerMask", + "type_hash": 1577933448, + "data_offset": 0 + }, + { + "name": "triggerTag", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeName", + "type_name_2": "ItemKnowledgeName", + "qualified_name": "keen::ds::ItemKnowledgeName", + "referenced_type_name": "keen::ds::ItemKnowledgeBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2345213127, + "hash2": 475257229, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeDescription", + "type_name_2": "ItemKnowledgeDescription", + "qualified_name": "keen::ds::ItemKnowledgeDescription", + "referenced_type_name": "keen::ds::ItemKnowledgeBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1682820006, + "hash2": 475257229, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ds::DescriptionLocaTag", + "type_hash": 4249666514, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeLore", + "type_name_2": "ItemKnowledgeLore", + "qualified_name": "keen::ds::ItemKnowledgeLore", + "referenced_type_name": "keen::ds::ItemKnowledgeBase", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1177451208, + "hash2": 475257229, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ds::LoreLocaTag", + "type_hash": 3467428038, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeRecipe", + "type_name_2": "ItemKnowledgeRecipe", + "qualified_name": "keen::ds::ItemKnowledgeRecipe", + "referenced_type_name": "keen::ds::ItemKnowledgeBase", + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2015949418, + "hash2": 3297494060, + "struct_fields": [ + { + "name": "unused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemLevelRange", + "type_name_2": "ItemLevelRange", + "qualified_name": "keen::ds::ItemLevelRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3463536619, + "hash2": 3800103808, + "struct_fields": [ + { + "name": "minLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StackSizeRange", + "type_name_2": "StackSizeRange", + "qualified_name": "keen::ds::StackSizeRange", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2826565349, + "hash2": 2843211564, + "struct_fields": [ + { + "name": "minStackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "maxStackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCommerceLink", + "type_name_2": "ItemCommerceLink", + "qualified_name": "keen::ds::ItemCommerceLink", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3230953351, + "hash2": 2596536665, + "struct_fields": [ + { + "name": "product", + "type_name": "keen::ds::CommerceProductReference", + "type_hash": 1028626152, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::ds::CommerceProductId", + "type_hash": 4145670446, + "data_offset": 16 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemDamageSetup", + "type_name_2": "ItemDamageSetup", + "qualified_name": "keen::ds::ItemDamageSetup", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3357614250, + "hash2": 1498782459, + "struct_fields": [ + { + "name": "speedMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "dmgMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "distribution", + "type_name": "keen::ds::impact::DamageDistribution", + "type_hash": 1212686402, + "data_offset": 8 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemPermissionSetup", + "type_name_2": "ItemPermissionSetup", + "qualified_name": "keen::ds::ItemPermissionSetup", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2376695200, + "hash2": 4267064639, + "struct_fields": [ + { + "name": "permissions", + "type_name": "keen::ds::PlayerPermissionsMask", + "type_hash": 978357734, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemArmorSetup", + "type_name_2": "ItemArmorSetup", + "qualified_name": "keen::ds::ItemArmorSetup", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 30957760, + "hash2": 625171468, + "struct_fields": [ + { + "name": "distribution", + "type_name": "keen::ds::impact::ArmorDistribution", + "type_hash": 973365350, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemBlockSetup", + "type_name_2": "ItemBlockSetup", + "qualified_name": "keen::ds::ItemBlockSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2341300378, + "hash2": 2420676920, + "struct_fields": [ + { + "name": "quality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemScaledCostSetup", + "type_name_2": "ItemScaledCostSetup", + "qualified_name": "keen::ds::ItemScaledCostSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 605545420, + "hash2": 1808142628, + "struct_fields": [ + { + "name": "staminaMod", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemFuelData", + "type_name_2": "ItemFuelData", + "qualified_name": "keen::ds::ItemFuelData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1557155140, + "hash2": 38020804, + "struct_fields": [ + { + "name": "burnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "energyOutput", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemColorCombination", + "type_name_2": "ItemColorCombination", + "qualified_name": "keen::ds::ItemColorCombination", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3840049734, + "hash2": 3367381986, + "struct_fields": [ + { + "name": "combination", + "type_name": "keen::ds::ColorCombinationReference", + "type_hash": 2564377510, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemComfortSetup", + "type_name_2": "ItemComfortSetup", + "qualified_name": "keen::ds::ItemComfortSetup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3576665209, + "hash2": 4112968792, + "struct_fields": [ + { + "name": "comfortAmount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemInfoExposure", + "type_name_2": "ItemInfoExposure", + "qualified_name": "keen::ds::ItemInfoExposure", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2115949033, + "hash2": 987936497, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemClassAlignmentType", + "type_name_2": "ItemClassAlignmentType", + "qualified_name": "keen::ds::ItemClassAlignmentType", + "referenced_type_name": "keen::ItemClassAlignmentType", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 286333597, + "hash2": 1112634331, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Perk", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2576254582, + "hash2": 2104576164, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkReference", + "type_name_2": "PerkReference", + "qualified_name": "keen::ds::PerkReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1997892412, + "hash2": 4268045850, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemCollectionId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemCollectionId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 235693818, + "hash2": 2309038405, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionInfo", + "type_name_2": "ItemCollectionInfo", + "qualified_name": "keen::ds::ItemCollectionInfo", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1547564856, + "hash2": 1556568407, + "struct_fields": [ + { + "name": "isOverrideModelSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "overrideModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 4 + }, + { + "name": "overrideModelOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 20 + }, + { + "name": "categories", + "type_name": "keen::DsArray", + "type_hash": 235693818, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PickupModelOverride[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PickupModelOverride", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2938270263, + "hash2": 4073373171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemSequence[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemSequence", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1853176678, + "hash2": 2502344125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemIconScene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2249352296, + "hash2": 4198477217, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemTagWeight[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemTagWeight", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4186267047, + "hash2": 2854777841, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PerkReference[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::PerkReference", + "class_size": 80, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 2172957929, + "hash2": 1617516988, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemInfo", + "type_name_2": "ItemInfo", + "qualified_name": "keen::ds::ItemInfo", + "referenced_type_name": null, + "class_size": 2096, + "fields_count": 52, + "primitive_type": "Struct", + "hash1": 1263968628, + "hash2": 3724483256, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "maxStackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "generateRarity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "rarity", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 23 + }, + { + "name": "disableRarityGeneration", + "type_name": "keen::ds::ItemRarityMask", + "type_hash": 708489959, + "data_offset": 24 + }, + { + "name": "randomLootStackRange", + "type_name": "keen::ds::StackSizeRange", + "type_hash": 2826565349, + "data_offset": 26 + }, + { + "name": "overridePickupModels", + "type_name": "keen::DsArray", + "type_hash": 2938270263, + "data_offset": 32 + }, + { + "name": "overridePickupEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 72 + }, + { + "name": "pickupFx", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 88 + }, + { + "name": "name", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 104 + }, + { + "name": "caption", + "type_name": "keen::ds::CaptionLocaTag", + "type_hash": 1672201430, + "data_offset": 120 + }, + { + "name": "description", + "type_name": "keen::ds::DescriptionLocaTag", + "type_hash": 4249666514, + "data_offset": 136 + }, + { + "name": "lore", + "type_name": "keen::ds::LoreLocaTag", + "type_hash": 3467428038, + "data_offset": 152 + }, + { + "name": "uiActionHints", + "type_name": "keen::ds::UiActionHints", + "type_hash": 2865976807, + "data_offset": 168 + }, + { + "name": "category", + "type_name": "keen::ds::ItemCategory", + "type_hash": 3756772288, + "data_offset": 220 + }, + { + "name": "ammunitionType", + "type_name": "keen::ds::AmmunitionType", + "type_hash": 3066785408, + "data_offset": 221 + }, + { + "name": "weaponCategoryReference", + "type_name": "keen::ds::WeaponCategoryReference", + "type_hash": 1397102088, + "data_offset": 224 + }, + { + "name": "itemClassAlignment", + "type_name": "keen::ds::ItemClassAlignmentType", + "type_hash": 286333597, + "data_offset": 240 + }, + { + "name": "midiInstrumentType", + "type_name": "keen::ds::MidiInstrumentType", + "type_hash": 244748223, + "data_offset": 241 + }, + { + "name": "equipment", + "type_name": "keen::ds::EquipmentSetup", + "type_hash": 3349510178, + "data_offset": 248 + }, + { + "name": "sequences", + "type_name": "keen::DsArray", + "type_hash": 1853176678, + "data_offset": 1328 + }, + { + "name": "pidEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 1368 + }, + { + "name": "exchangeOnBroken", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 1384 + }, + { + "name": "iconImage", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 1400 + }, + { + "name": "iconModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 1416 + }, + { + "name": "iconScene", + "type_name": "keen::ObjectReference", + "type_hash": 2249352296, + "data_offset": 1432 + }, + { + "name": "iconRenderOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 1448 + }, + { + "name": "iconRenderCookingScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1488 + }, + { + "name": "iconRenderGlobalScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1492 + }, + { + "name": "overrideSceneExposure", + "type_name": "keen::ds::ItemInfoExposure", + "type_hash": 2115949033, + "data_offset": 1496 + }, + { + "name": "fitToItemModelBoundingBox", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1504 + }, + { + "name": "flags", + "type_name": "keen::ds::ItemFlags", + "type_hash": 3703621627, + "data_offset": 1506 + }, + { + "name": "overrideKnowledgeGeneration", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1508 + }, + { + "name": "generateKnowledge", + "type_name": "keen::Bitmask16", + "type_hash": 2049337084, + "data_offset": 1510 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 4186267047, + "data_offset": 1512 + }, + { + "name": "uiValues", + "type_name": "keen::DsArray", + "type_hash": 3612751759, + "data_offset": 1552 + }, + { + "name": "uiBuffValues", + "type_name": "keen::DsArray", + "type_hash": 3612751759, + "data_offset": 1592 + }, + { + "name": "impactValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 1632 + }, + { + "name": "perkReferences", + "type_name": "keen::StaticArray", + "type_hash": 2172957929, + "data_offset": 1672 + }, + { + "name": "itemLevelRange", + "type_name": "keen::ds::ItemLevelRange", + "type_hash": 3463536619, + "data_offset": 1752 + }, + { + "name": "damageSetup", + "type_name": "keen::ds::ItemDamageSetup", + "type_hash": 3357614250, + "data_offset": 1760 + }, + { + "name": "armorSetup", + "type_name": "keen::ds::ItemArmorSetup", + "type_hash": 30957760, + "data_offset": 1824 + }, + { + "name": "fuelSetup", + "type_name": "keen::ds::ItemFuelData", + "type_hash": 1557155140, + "data_offset": 1864 + }, + { + "name": "blockSetup", + "type_name": "keen::ds::ItemBlockSetup", + "type_hash": 2341300378, + "data_offset": 1880 + }, + { + "name": "scaledCostSetup", + "type_name": "keen::ds::ItemScaledCostSetup", + "type_hash": 605545420, + "data_offset": 1888 + }, + { + "name": "commerceLink", + "type_name": "keen::ds::ItemCommerceLink", + "type_hash": 3230953351, + "data_offset": 1896 + }, + { + "name": "permissionSetup", + "type_name": "keen::ds::ItemPermissionSetup", + "type_hash": 2376695200, + "data_offset": 1920 + }, + { + "name": "itemPaletteColorSetup", + "type_name": "keen::ds::ItemColorSetupInternal", + "type_hash": 1748854273, + "data_offset": 1924 + }, + { + "name": "collectionInfo", + "type_name": "keen::ds::ItemCollectionInfo", + "type_hash": 1547564856, + "data_offset": 1944 + }, + { + "name": "comfortSetup", + "type_name": "keen::ds::ItemComfortSetup", + "type_hash": 3576665209, + "data_offset": 2048 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 2056 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::ItemKnowledgeBase", + "class_size": 48, + "fields_count": 5, + "primitive_type": "DsVariant", + "hash1": 2813350800, + "hash2": 3475373343, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1082412805, + "hash2": 1587712572, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemConvertInfo", + "type_name_2": "ItemConvertInfo", + "qualified_name": "keen::ds::ItemConvertInfo", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1682820163, + "hash2": 3113838148, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 40 + }, + { + "name": "knowledge", + "type_name": "keen::DsArray>", + "type_hash": 1082412805, + "data_offset": 56 + }, + { + "name": "visualModelGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 96 + }, + { + "name": "visualModels", + "type_name": "keen::DsArray", + "type_hash": 4153427963, + "data_offset": 112 + }, + { + "name": "hideMask", + "type_name": "keen::ds::VisualEquipmentMask", + "type_hash": 4212121825, + "data_offset": 152 + }, + { + "name": "allowedBlendShapeMask", + "type_name": "keen::ds::BlendShapeMask", + "type_hash": 3013485815, + "data_offset": 156 + }, + { + "name": "setBlendShapeMask", + "type_name": "keen::ds::BlendShapeMask", + "type_hash": 3013485815, + "data_offset": 160 + }, + { + "name": "colorCombination", + "type_name": "keen::ds::ColorCombination", + "type_hash": 406724265, + "data_offset": 164 + }, + { + "name": "voxelMaterialGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 212 + }, + { + "name": "isDevItem", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 228 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeGenerationScope", + "type_name_2": "GameKnowledgeGenerationScope", + "qualified_name": "keen::ds::GameKnowledgeGenerationScope", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 339042775, + "hash2": 1317853119, + "struct_fields": [ + { + "name": "knowledgeTypes", + "type_name": "keen::Bitmask16", + "type_hash": 2049337084, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemSubDirectory", + "type_name_2": "ItemSubDirectory", + "qualified_name": "keen::ds::ItemSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3735443097, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemRarityDropSettings", + "type_name_2": "ItemRarityDropSettings", + "qualified_name": "keen::ds::ItemRarityDropSettings", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4191763983, + "hash2": 2960532504, + "struct_fields": [ + { + "name": "common", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "uncommon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "rare", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "legendary", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategory", + "type_name_2": "WeaponCategory", + "qualified_name": "keen::ds::WeaponCategory", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2379882275, + "hash2": 1747625506, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "damageMod", + "type_name": "keen::ds::AttributeReference", + "type_hash": 2039267642, + "data_offset": 16 + }, + { + "name": "categoryType", + "type_name": "keen::ds::WeaponCategoryType", + "type_hash": 462670651, + "data_offset": 32 + }, + { + "name": "classType", + "type_name": "keen::ds::ItemClassAlignmentType", + "type_hash": 286333597, + "data_offset": 33 + }, + { + "name": "cameraTraumaVerySmall", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "cameraTraumaSmall", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "cameraTraumaNormal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "cameraTraumaBig", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "cameraTraumaVeryBig", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "cameraImpulseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "cameraImpulseDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryResource", + "type_name_2": "WeaponCategoryResource", + "qualified_name": "keen::ds::WeaponCategoryResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 41697871, + "hash2": 3897865103, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "weaponCategory", + "type_name": "keen::ds::WeaponCategory", + "type_hash": 2379882275, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryDirectory", + "type_name_2": "WeaponCategoryDirectory", + "qualified_name": "keen::ds::WeaponCategoryDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1923759010, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WeaponCategoryDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 577609795, + "hash2": 569869426, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemDirectory", + "type_name_2": "ItemDirectory", + "qualified_name": "keen::ds::ItemDirectory", + "referenced_type_name": "keen::ds::ItemSubDirectory", + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 126376747, + "hash2": 648345618, + "struct_fields": [ + { + "name": "defaultIconScene", + "type_name": "keen::ObjectReference", + "type_hash": 2249352296, + "data_offset": 0 + }, + { + "name": "rarityDropWeights", + "type_name": "keen::ds::ItemRarityDropSettings", + "type_hash": 4191763983, + "data_offset": 16 + }, + { + "name": "weaponArmorRatio", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "weaponCategoryDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 577609795, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeaponCategoryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeaponCategoryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 580876556, + "hash2": 2682244898, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeaponCategoryDirectoryResource", + "type_name_2": "WeaponCategoryDirectoryResource", + "qualified_name": "keen::ds::WeaponCategoryDirectoryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3561321770, + "hash2": 1265829144, + "struct_fields": [ + { + "name": "weaponCategories", + "type_name": "keen::DsArray", + "type_hash": 580876556, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3550418960, + "hash2": 3629573351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "String[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::DsString", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1101403067, + "hash2": 3582705769, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemRegistryResource", + "type_name_2": "ItemRegistryResource", + "qualified_name": "keen::ds::ItemRegistryResource", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3328267147, + "hash2": 3486931312, + "struct_fields": [ + { + "name": "itemRefs", + "type_name": "keen::DsArray", + "type_hash": 3550418960, + "data_offset": 0 + }, + { + "name": "itemTags", + "type_name": "keen::DsArray", + "type_hash": 2527880391, + "data_offset": 40 + }, + { + "name": "weaponCategories", + "type_name": "keen::DsArray", + "type_hash": 580876556, + "data_offset": 80 + }, + { + "name": "dbgNames", + "type_name": "keen::DsArray", + "type_hash": 1101403067, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconRegistryEntryResource", + "type_name_2": "ItemIconRegistryEntryResource", + "qualified_name": "keen::ds::ItemIconRegistryEntryResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4233521610, + "hash2": 56951721, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "uiTexture", + "type_name": "keen::ds::UiTextureResource", + "type_hash": 3702388360, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemIconRegistryEntryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemIconRegistryEntryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 808890657, + "hash2": 3985508937, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconRegistryResource", + "type_name_2": "ItemIconRegistryResource", + "qualified_name": "keen::ds::ItemIconRegistryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2247905378, + "hash2": 857689750, + "struct_fields": [ + { + "name": "icons", + "type_name": "keen::DsArray", + "type_hash": 808890657, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DevItemRegistryResource", + "type_name_2": "DevItemRegistryResource", + "qualified_name": "keen::ds::DevItemRegistryResource", + "referenced_type_name": "keen::ds::ItemRegistryResource", + "class_size": 160, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2484033822, + "hash2": 1295335368, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeLock", + "type_name_2": "ItemKnowledgeLock", + "qualified_name": "keen::ds::ItemKnowledgeLock", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1012190947, + "hash2": 572163219, + "struct_fields": [ + { + "name": "unlockedLocaId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "keyLocaId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 4 + }, + { + "name": "unlockTrigger", + "type_name": "keen::ds::ItemKnowledgeTriggerMask", + "type_hash": 1577933448, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledge", + "type_name_2": "ItemKnowledge", + "qualified_name": "keen::ds::ItemKnowledge", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4044165036, + "hash2": 2740156080, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "lockedKnowledgeMask", + "type_name": "keen::ds::ItemKnowledgeMask", + "type_hash": 824525052, + "data_offset": 4 + }, + { + "name": "nameLock", + "type_name": "keen::ds::ItemKnowledgeLock", + "type_hash": 1012190947, + "data_offset": 8 + }, + { + "name": "descriptionLock", + "type_name": "keen::ds::ItemKnowledgeLock", + "type_hash": 1012190947, + "data_offset": 20 + }, + { + "name": "loreLock", + "type_name": "keen::ds::ItemKnowledgeLock", + "type_hash": 1012190947, + "data_offset": 32 + }, + { + "name": "recipeLock", + "type_name": "keen::ds::ItemKnowledgeLock", + "type_hash": 1012190947, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemKnowledge[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemKnowledge", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1669766403, + "hash2": 4230916673, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeResource", + "type_name_2": "ItemKnowledgeResource", + "qualified_name": "keen::ds::ItemKnowledgeResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2135305648, + "hash2": 2246467032, + "struct_fields": [ + { + "name": "knowledgeArray", + "type_name": "keen::DsArray", + "type_hash": 1669766403, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupFxConfig", + "type_name_2": "PickupFxConfig", + "qualified_name": "keen::ds::PickupFxConfig", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2965155115, + "hash2": 2483357773, + "struct_fields": [ + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupModelOverride", + "type_name_2": "PickupModelOverride", + "qualified_name": "keen::ds::PickupModelOverride", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2543219332, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PickupEntityOverride", + "type_name_2": "PickupEntityOverride", + "qualified_name": "keen::ds::PickupEntityOverride", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1505790680, + "hash2": 3849560394, + "struct_fields": [ + { + "name": "entity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionOptionBase", + "type_name_2": "ItemCollectionOptionBase", + "qualified_name": "keen::ds::ItemCollectionOptionBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1188218080, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ItemCollectionCategory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4233226527, + "hash2": 536620349, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionCategoryReference", + "type_name_2": "ItemCollectionCategoryReference", + "qualified_name": "keen::ds::ItemCollectionCategoryReference", + "referenced_type_name": "keen::ds::ItemCollectionOptionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3603729905, + "hash2": 3229573237, + "struct_fields": [ + { + "name": "category", + "type_name": "keen::ObjectReference", + "type_hash": 4233226527, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionModelOverride", + "type_name_2": "ItemCollectionModelOverride", + "qualified_name": "keen::ds::ItemCollectionModelOverride", + "referenced_type_name": "keen::ds::ItemCollectionOptionBase", + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2046559713, + "hash2": 2246331246, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "modelOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintItem", + "type_name_2": "VoxelBlueprintItem", + "qualified_name": "keen::ds::VoxelBlueprintItem", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2401941679, + "hash2": 587320037, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 4 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 16 + }, + { + "name": "isDataCompressed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelBlueprintItem[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelBlueprintItem", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 828095192, + "hash2": 1627439383, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintItemRegistryResource", + "type_name_2": "VoxelBlueprintItemRegistryResource", + "qualified_name": "keen::ds::VoxelBlueprintItemRegistryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 438817164, + "hash2": 2006459794, + "struct_fields": [ + { + "name": "blueprintItems", + "type_name": "keen::DsArray", + "type_hash": 828095192, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemPropsForPropTestResource", + "type_name_2": "ItemPropsForPropTestResource", + "qualified_name": "keen::ds::ItemPropsForPropTestResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1248870064, + "hash2": 148788556, + "struct_fields": [ + { + "name": "propItems", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionDirectory", + "type_name_2": "ItemCollectionDirectory", + "qualified_name": "keen::ds::ItemCollectionDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 714320719, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSubDirectory", + "type_name_2": "ItemCollectionSubDirectory", + "qualified_name": "keen::ds::ItemCollectionSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3074835629, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSetup", + "type_name_2": "ItemCollectionSetup", + "qualified_name": "keen::ds::ItemCollectionSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3247753873, + "hash2": 1715263527, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2934938658, + "data_offset": 0 + }, + { + "name": "completionKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 223212227, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlot", + "type_name_2": "ItemCollectionSlot", + "qualified_name": "keen::ds::ItemCollectionSlot", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 88489912, + "hash2": 2901912582, + "struct_fields": [ + { + "name": "jointName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotId", + "type_name_2": "ItemCollectionSlotId", + "qualified_name": "keen::ds::ItemCollectionSlotId", + "referenced_type_name": "keen::ds::ItemCollectionSlot", + "class_size": 96, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2385150725, + "hash2": 3989888099, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotCategory", + "type_name_2": "ItemCollectionSlotCategory", + "qualified_name": "keen::ds::ItemCollectionSlotCategory", + "referenced_type_name": "keen::ds::ItemCollectionSlot", + "class_size": 96, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1237450288, + "hash2": 2621155173, + "struct_fields": [ + { + "name": "category", + "type_name": "keen::ObjectReference", + "type_hash": 4233226527, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotEquipment", + "type_name_2": "ItemCollectionSlotEquipment", + "qualified_name": "keen::ds::ItemCollectionSlotEquipment", + "referenced_type_name": "keen::ds::ItemCollectionSlot", + "class_size": 88, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2398531184, + "hash2": 2091601319, + "struct_fields": [ + { + "name": "equipmentSlot", + "type_name": "keen::ds::EquipmentSlot", + "type_hash": 253613781, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionResource", + "type_name_2": "ItemCollectionResource", + "qualified_name": "keen::ds::ItemCollectionResource", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3602358232, + "hash2": 2751301985, + "struct_fields": [ + { + "name": "slots", + "type_name": "keen::DsArray", + "type_hash": 438320381, + "data_offset": 0 + }, + { + "name": "completionKnowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionSlotResource", + "type_name_2": "ItemCollectionSlotResource", + "qualified_name": "keen::ds::ItemCollectionSlotResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 246489372, + "hash2": 3727212332, + "struct_fields": [ + { + "name": "collectionId", + "type_name": "keen::ds::ItemCollectionId", + "type_hash": 2018188905, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 4 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 44 + }, + { + "name": "collectionCategoryId", + "type_name": "keen::ds::ItemCollectionId", + "type_hash": 2018188905, + "data_offset": 48 + }, + { + "name": "equipmentSlot", + "type_name": "keen::ds::EquipmentSlot", + "type_hash": 253613781, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionCategoryDirectory", + "type_name_2": "ItemCollectionCategoryDirectory", + "qualified_name": "keen::ds::ItemCollectionCategoryDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2107673479, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemCollectionCategory", + "type_name_2": "ItemCollectionCategory", + "qualified_name": "keen::ds::ItemCollectionCategory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3199285980, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ScatterSet3", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 39040283, + "hash2": 2522164369, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterData", + "type_name_2": "SceneScatterData", + "qualified_name": "keen::ds::SceneScatterData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3002877705, + "hash2": 2757749499, + "struct_fields": [ + { + "name": "scatterSet", + "type_name": "keen::ObjectReference", + "type_hash": 39040283, + "data_offset": 0 + }, + { + "name": "start", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "disable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "writeDebug", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldDistributionTypeFlags", + "type_name_2": "WorldDistributionTypeFlags", + "qualified_name": "keen::ds::WorldDistributionTypeFlags", + "referenced_type_name": "keen::WorldDistributionTypeFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2015036850, + "hash2": 4140503723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ScenePlayableAreaBox[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ScenePlayableAreaBox", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1645149612, + "hash2": 8250625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneResetPlayersOutOfBounds", + "type_name_2": "SceneResetPlayersOutOfBounds", + "qualified_name": "keen::ds::SceneResetPlayersOutOfBounds", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 101278858, + "hash2": 2572685006, + "struct_fields": [ + { + "name": "marginHorizontal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "marginVertical", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "playableAreas", + "type_name": "keen::DsArray", + "type_hash": 1645149612, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelWorldObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 214323307, + "hash2": 4267211172, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Ibl", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2637021577, + "hash2": 3625996664, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::render::AtmosphereParameters", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1771067426, + "hash2": 907553985, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BiomeMap", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3345484508, + "hash2": 808554245, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Scene", + "type_name_2": "Scene", + "qualified_name": "keen::ds::Scene", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 1531047693, + "hash2": 1786183344, + "struct_fields": [ + { + "name": "voxelWorld", + "type_name": "keen::ObjectReference", + "type_hash": 214323307, + "data_offset": 0 + }, + { + "name": "worldSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "worldOrigin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 24 + }, + { + "name": "ibl", + "type_name": "keen::ObjectReference", + "type_hash": 2637021577, + "data_offset": 36 + }, + { + "name": "iblIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "atmosphere", + "type_name": "keen::ObjectReference", + "type_hash": 1771067426, + "data_offset": 56 + }, + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 72 + }, + { + "name": "biomeMap", + "type_name": "keen::ObjectReference", + "type_hash": 3345484508, + "data_offset": 76 + }, + { + "name": "scatterData", + "type_name": "keen::ds::SceneScatterData", + "type_hash": 3002877705, + "data_offset": 92 + }, + { + "name": "limitMacroScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "macroScatterStart", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 132 + }, + { + "name": "macroScatterSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 140 + }, + { + "name": "disableVoxelBrushDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 148 + }, + { + "name": "distributionTypeFlags", + "type_name": "keen::ds::WorldDistributionTypeFlags", + "type_hash": 2015036850, + "data_offset": 149 + }, + { + "name": "isTestScene", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 150 + }, + { + "name": "distantObjectSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "moveVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "resetPlayersOutOfBounds", + "type_name": "keen::ds::SceneResetPlayersOutOfBounds", + "type_hash": 101278858, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconScene", + "type_name_2": "ItemIconScene", + "qualified_name": "keen::ds::ItemIconScene", + "referenced_type_name": "keen::ds::Scene", + "class_size": 216, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2049270023, + "hash2": 685345782, + "struct_fields": [ + { + "name": "fixedExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldTransformFlags", + "type_name_2": "WorldTransformFlags", + "qualified_name": "keen::ds::WorldTransformFlags", + "referenced_type_name": "keen::WorldTransformFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1447310490, + "hash2": 1592972412, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ContentPass", + "type_name_2": "ContentPass", + "qualified_name": "keen::ds::ContentPass", + "referenced_type_name": "keen::ContentPass", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 3497365873, + "hash2": 3976897011, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneObject", + "type_name_2": "SceneObject", + "qualified_name": "keen::ds::SceneObject", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2414147074, + "hash2": 68377574, + "struct_fields": [ + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "worldTransformFlags", + "type_name": "keen::ds::WorldTransformFlags", + "type_hash": 1447310490, + "data_offset": 56 + }, + { + "name": "contentPass", + "type_name": "keen::ds::ContentPass", + "type_hash": 3497365873, + "data_offset": 57 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCamera", + "type_name_2": "SceneCamera", + "qualified_name": "keen::ds::SceneCamera", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 136, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 553712966, + "hash2": 2357166166, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 64 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 104 + }, + { + "name": "nearClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "farClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "fovY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconSceneCamera", + "type_name_2": "ItemIconSceneCamera", + "qualified_name": "keen::ds::ItemIconSceneCamera", + "referenced_type_name": "keen::ds::SceneCamera", + "class_size": 136, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2231731592, + "hash2": 1548273728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconSceneSun", + "type_name_2": "ItemIconSceneSun", + "qualified_name": "keen::ds::ItemIconSceneSun", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1033426527, + "hash2": 2897731824, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneBaseLight", + "type_name_2": "SceneBaseLight", + "qualified_name": "keen::ds::SceneBaseLight", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1320881236, + "hash2": 2897731824, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScenePointLight", + "type_name_2": "ScenePointLight", + "qualified_name": "keen::ds::ScenePointLight", + "referenced_type_name": "keen::ds::SceneBaseLight", + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1099520195, + "hash2": 1808771245, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "castShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconScenePointLight", + "type_name_2": "ItemIconScenePointLight", + "qualified_name": "keen::ds::ItemIconScenePointLight", + "referenced_type_name": "keen::ds::ScenePointLight", + "class_size": 88, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3342558841, + "hash2": 210455096, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraData", + "type_name_2": "CameraData", + "qualified_name": "keen::ds::CameraData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1623300968, + "hash2": 1945202395, + "struct_fields": [ + { + "name": "nearClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "farClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "fovY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AtmosphereParameters", + "type_name_2": "render.AtmosphereParameters", + "qualified_name": "keen::ds::render::AtmosphereParameters", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1354160799, + "hash2": 780195387, + "struct_fields": [ + { + "name": "planetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rayleighScattering", + "type_name": "keen::ColorRgb", + "type_hash": 1807719120, + "data_offset": 4 + }, + { + "name": "rayleighDensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "ozoneExtinction", + "type_name": "keen::ColorRgb", + "type_hash": 1807719120, + "data_offset": 20 + }, + { + "name": "ozoneDensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "rayleightDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "mieScattering", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "mieExtinction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "mieDensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mieDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "mieG", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "yRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::IblResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1235643177, + "hash2": 1274169359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderLight[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderLight", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1043879300, + "hash2": 1637876332, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WorldTransform[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::WorldTransform", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2125145079, + "hash2": 1051851897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemIconSceneInfo", + "type_name_2": "ItemIconSceneInfo", + "qualified_name": "keen::ds::ItemIconSceneInfo", + "referenced_type_name": null, + "class_size": 264, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 434157507, + "hash2": 1153649343, + "struct_fields": [ + { + "name": "camera", + "type_name": "keen::ds::CameraData", + "type_hash": 1623300968, + "data_offset": 0 + }, + { + "name": "cameraTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "ibl", + "type_name": "keen::ObjectReference", + "type_hash": 1235643177, + "data_offset": 72 + }, + { + "name": "atmosphereParameters", + "type_name": "keen::ds::render::AtmosphereParameters", + "type_hash": 1354160799, + "data_offset": 88 + }, + { + "name": "fixedExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "iblIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "sunAzimuth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "sunElevation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + }, + { + "name": "sunColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 172 + }, + { + "name": "lights", + "type_name": "keen::DsArray", + "type_hash": 1043879300, + "data_offset": 184 + }, + { + "name": "lightsTransform", + "type_name": "keen::DsArray", + "type_hash": 2125145079, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalDirectory", + "type_name_2": "JournalDirectory", + "qualified_name": "keen::ds::JournalDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1702960845, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalSubDirectory", + "type_name_2": "JournalSubDirectory", + "qualified_name": "keen::ds::JournalSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3230613551, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalLoreCategory", + "type_name_2": "JournalLoreCategory", + "qualified_name": "keen::ds::JournalLoreCategory", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2255882378, + "hash2": 2357802099, + "struct_fields": [ + { + "name": "categoryName", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalCollectionBase", + "type_name_2": "JournalCollectionBase", + "qualified_name": "keen::ds::JournalCollectionBase", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 329988163, + "hash2": 2142224484, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "referencedDocumentName", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 16 + }, + { + "name": "priority", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalCollection", + "type_name_2": "JournalCollection", + "qualified_name": "keen::ds::JournalCollection", + "referenced_type_name": "keen::ds::JournalCollectionBase", + "class_size": 36, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1875718462, + "hash2": 2170865657, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "QuestSourceType", + "type_name_2": "QuestSourceType", + "qualified_name": "keen::ds::QuestSourceType", + "referenced_type_name": "keen::QuestSourceType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 778630506, + "hash2": 2152052921, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "QuestType", + "type_name_2": "QuestType", + "qualified_name": "keen::ds::QuestType", + "referenced_type_name": "keen::QuestType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3928350167, + "hash2": 4061430303, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalQuestReward", + "type_name_2": "JournalQuestReward", + "qualified_name": "keen::ds::JournalQuestReward", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1119999463, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalItemReward", + "type_name_2": "JournalItemReward", + "qualified_name": "keen::ds::JournalItemReward", + "referenced_type_name": "keen::ds::JournalQuestReward", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2464134746, + "hash2": 196779842, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalExperienceReward", + "type_name_2": "JournalExperienceReward", + "qualified_name": "keen::ds::JournalExperienceReward", + "referenced_type_name": "keen::ds::JournalQuestReward", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 483752145, + "hash2": 1093822393, + "struct_fields": [ + { + "name": "experience", + "type_name": "keen::ObjectReference", + "type_hash": 3680746805, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CompletableJournalCollection", + "type_name_2": "CompletableJournalCollection", + "qualified_name": "keen::ds::CompletableJournalCollection", + "referenced_type_name": "keen::ds::JournalCollectionBase", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1475339568, + "hash2": 2920904250, + "struct_fields": [ + { + "name": "questSource", + "type_name": "keen::ds::QuestSourceType", + "type_hash": 778630506, + "data_offset": 36 + }, + { + "name": "type", + "type_name": "keen::ds::QuestType", + "type_hash": 3928350167, + "data_offset": 37 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TutorialJournalCollection", + "type_name_2": "TutorialJournalCollection", + "qualified_name": "keen::ds::TutorialJournalCollection", + "referenced_type_name": "keen::ds::JournalCollectionBase", + "class_size": 36, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1541170808, + "hash2": 2170865657, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntryBase", + "type_name_2": "JournalEntryBase", + "qualified_name": "keen::ds::JournalEntryBase", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4029297955, + "hash2": 2713338486, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 16 + }, + { + "name": "mapMarkerReference", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 32 + }, + { + "name": "itemIcon", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntry", + "type_name_2": "JournalEntry", + "qualified_name": "keen::ds::JournalEntry", + "referenced_type_name": "keen::ds::JournalEntryBase", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1365633758, + "hash2": 1008803072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CompletableJournalEntry", + "type_name_2": "CompletableJournalEntry", + "qualified_name": "keen::ds::CompletableJournalEntry", + "referenced_type_name": "keen::ds::JournalEntryBase", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 180124000, + "hash2": 1008803072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TutorialJournalEntry", + "type_name_2": "TutorialJournalEntry", + "qualified_name": "keen::ds::TutorialJournalEntry", + "referenced_type_name": "keen::ds::JournalEntryBase", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3616371032, + "hash2": 1008803072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalCompletionRequirement", + "type_name_2": "JournalCompletionRequirement", + "qualified_name": "keen::ds::JournalCompletionRequirement", + "referenced_type_name": "keen::ds::GameKnowledgeRequirementBase", + "class_size": 104, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4273511679, + "hash2": 3988461596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalEntryResource", + "type_name_2": "JournalEntryResource", + "qualified_name": "keen::ds::JournalEntryResource", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1103763622, + "hash2": 2710658843, + "struct_fields": [ + { + "name": "entryId", + "type_name": "keen::ds::JournalEntryId", + "type_hash": 1338464771, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 4 + }, + { + "name": "text", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 8 + }, + { + "name": "mapMarkerReference", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 12 + }, + { + "name": "itemIconId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 20 + }, + { + "name": "completionRequirement", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "JournalEntryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::JournalEntryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2781164443, + "hash2": 992318799, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalCollectionResource", + "type_name_2": "JournalCollectionResource", + "qualified_name": "keen::ds::JournalCollectionResource", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2639687878, + "hash2": 1005507314, + "struct_fields": [ + { + "name": "entryId", + "type_name": "keen::ds::JournalEntryId", + "type_hash": 1338464771, + "data_offset": 0 + }, + { + "name": "loreCategory", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 4 + }, + { + "name": "name", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 8 + }, + { + "name": "referencedDocumentName", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 12 + }, + { + "name": "priority", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "isTutorial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 2781164443, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "QuestRewardResource", + "type_name_2": "QuestRewardResource", + "qualified_name": "keen::ds::QuestRewardResource", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2637022988, + "hash2": 795492043, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 16 + }, + { + "name": "experienceValueId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "QuestRewardResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::QuestRewardResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1201634115, + "hash2": 3178934609, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalQuestResource", + "type_name_2": "JournalQuestResource", + "qualified_name": "keen::ds::JournalQuestResource", + "referenced_type_name": "keen::ds::JournalCollectionResource", + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2266931972, + "hash2": 1407094579, + "struct_fields": [ + { + "name": "source", + "type_name": "keen::ds::QuestSourceType", + "type_hash": 778630506, + "data_offset": 64 + }, + { + "name": "type", + "type_name": "keen::ds::QuestType", + "type_hash": 3928350167, + "data_offset": 65 + }, + { + "name": "unlockForAllPlayers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 66 + }, + { + "name": "rewards", + "type_name": "keen::DsArray", + "type_hash": 1201634115, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "JournalQuestResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::JournalQuestResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1994460033, + "hash2": 3632693818, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "JournalCollectionResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::JournalCollectionResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2865433525, + "hash2": 2847364635, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "JournalRegistryResource", + "type_name_2": "JournalRegistryResource", + "qualified_name": "keen::ds::JournalRegistryResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2044092117, + "hash2": 1549621339, + "struct_fields": [ + { + "name": "quests", + "type_name": "keen::DsArray", + "type_hash": 1994460033, + "data_offset": 0 + }, + { + "name": "collections", + "type_name": "keen::DsArray", + "type_hash": 2865433525, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTrigger", + "type_name_2": "ecs.KnowledgeTrigger", + "qualified_name": "keen::ds::ecs::KnowledgeTrigger", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3649633376, + "hash2": 207833103, + "struct_fields": [ + { + "name": "knowledgeIds", + "type_name": "keen::StaticArray", + "type_hash": 1492151024, + "data_offset": 0 + }, + { + "name": "canActivate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "canDeactivate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SubEntityKnowledgeQuery", + "type_name_2": "SubEntityKnowledgeQuery", + "qualified_name": "keen::ds::SubEntityKnowledgeQuery", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1769357644, + "hash2": 1054917787, + "struct_fields": [ + { + "name": "knowledgeQueryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 0 + }, + { + "name": "subEntityTemplate", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "uiWorldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SubEntityKnowledgeQuery[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::SubEntityKnowledgeQuery", + "class_size": 96, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 2687520652, + "hash2": 3220962716, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQuery", + "type_name_2": "ecs.KnowledgeQuery", + "qualified_name": "keen::ds::ecs::KnowledgeQuery", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 108, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1745060216, + "hash2": 3765862704, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "uiWorldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "wasEventTriggered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "subEntityQueries", + "type_name": "keen::StaticArray", + "type_hash": 2687520652, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerUnlockRequirements", + "type_name_2": "ecs.MapMarkerUnlockRequirements", + "qualified_name": "keen::ds::ecs::MapMarkerUnlockRequirements", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 328, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 759527848, + "hash2": 1851287516, + "struct_fields": [ + { + "name": "hintState", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 0 + }, + { + "name": "visibleState", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 104 + }, + { + "name": "hasCompletedState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 208 + }, + { + "name": "completedState", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 212 + }, + { + "name": "hintStateQueryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 316 + }, + { + "name": "visibleStateQueryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 320 + }, + { + "name": "completedStateQueryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 324 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerToggle", + "type_name_2": "ecs.KnowledgeTriggerToggle", + "qualified_name": "keen::ds::ecs::KnowledgeTriggerToggle", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3383742828, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerRange", + "type_name_2": "ecs.KnowledgeTriggerRange", + "qualified_name": "keen::ds::ecs::KnowledgeTriggerRange", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2122054485, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeTriggerOnKill", + "type_name_2": "ecs.KnowledgeTriggerOnKill", + "qualified_name": "keen::ds::ecs::KnowledgeTriggerOnKill", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1953641021, + "hash2": 1465743804, + "struct_fields": [ + { + "name": "useSceneKnowledgeTrigger", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "unlockForGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "triggerKnowledge", + "type_name": "keen::ds::GameKnowledgeTrigger", + "type_hash": 738120629, + "data_offset": 4 + }, + { + "name": "triggerKnowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeUiWorldEvent", + "type_name_2": "ecs.KnowledgeUiWorldEvent", + "qualified_name": "keen::ds::ecs::KnowledgeUiWorldEvent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1686959526, + "hash2": 2816894665, + "struct_fields": [ + { + "name": "triggerEvent", + "type_name": "keen::ObjectReference", + "type_hash": 2154239764, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootTreeNodeIntermediate", + "type_name_2": "LootTreeNodeIntermediate", + "qualified_name": "keen::ds::LootTreeNodeIntermediate", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3180746264, + "hash2": 554280624, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 20 + }, + { + "name": "potentialSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "potentialChildSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LootTreeNodeIntermediate[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LootTreeNodeIntermediate", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3708273945, + "hash2": 1455811523, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTreeIntermediate", + "type_name_2": "LootTreeIntermediate", + "qualified_name": "keen::ds::LootTreeIntermediate", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 34801104, + "hash2": 3480127673, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::DsArray", + "type_hash": 3708273945, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootNodeResource", + "type_name_2": "LootNodeResource", + "qualified_name": "keen::ds::LootNodeResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2243862689, + "hash2": 933647342, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerResource", + "type_name_2": "LootContainerResource", + "qualified_name": "keen::ds::LootContainerResource", + "referenced_type_name": "keen::ds::LootNodeResource", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2318220432, + "hash2": 2864199398, + "struct_fields": [ + { + "name": "lootSettingsIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierMode", + "type_name_2": "LootModifierMode", + "qualified_name": "keen::ds::LootModifierMode", + "referenced_type_name": "keen::LootModifierMode", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1871692447, + "hash2": 1342454507, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierValue", + "type_name_2": "LootModifierValue", + "qualified_name": "keen::ds::LootModifierValue", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 976324021, + "hash2": 2289253386, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::LootModifierMode", + "type_hash": 1871692447, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "LootModifierValue[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::LootModifierValue", + "class_size": 40, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 3203831598, + "hash2": 2754811906, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierInfo", + "type_name_2": "LootModifierInfo", + "qualified_name": "keen::ds::LootModifierInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 610292384, + "hash2": 2235566244, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::ds::LootModifierValue", + "type_hash": 976324021, + "data_offset": 0 + }, + { + "name": "levelOffset", + "type_name": "keen::ds::LootModifierValue", + "type_hash": 976324021, + "data_offset": 8 + }, + { + "name": "levelOffsetRangeMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "levelOffsetRangeMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rarities", + "type_name": "keen::StaticArray", + "type_hash": 3203831598, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LootTagInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LootTagInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 866920506, + "hash2": 2358645226, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootSettingsResource", + "type_name_2": "LootSettingsResource", + "qualified_name": "keen::ds::LootSettingsResource", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4091296792, + "hash2": 3111254882, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::ds::LootModifierInfo", + "type_hash": 610292384, + "data_offset": 0 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 866920506, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LootSettingsResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LootSettingsResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2417969301, + "hash2": 1735564411, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SpecialItemInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SpecialItemInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2885176292, + "hash2": 815282553, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LootNodeResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LootNodeResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2381194798, + "hash2": 3493840724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LootContainerResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LootContainerResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3987653227, + "hash2": 4130038728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneRandomLootResource", + "type_name_2": "SceneRandomLootResource", + "qualified_name": "keen::ds::SceneRandomLootResource", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3695022248, + "hash2": 4078322525, + "struct_fields": [ + { + "name": "lootSettings", + "type_name": "keen::DsArray", + "type_hash": 2417969301, + "data_offset": 0 + }, + { + "name": "specialItems", + "type_name": "keen::DsArray", + "type_hash": 2885176292, + "data_offset": 40 + }, + { + "name": "lootNodes", + "type_name": "keen::DsArray", + "type_hash": 2381194798, + "data_offset": 80 + }, + { + "name": "lootContainer", + "type_name": "keen::DsArray", + "type_hash": 3987653227, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootDistributionBaseNode", + "type_name_2": "LootDistributionBaseNode", + "qualified_name": "keen::ds::LootDistributionBaseNode", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 63621726, + "hash2": 3817926996, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 866920506, + "data_offset": 16 + }, + { + "name": "modifier", + "type_name": "keen::ds::LootModifierInfo", + "type_hash": 610292384, + "data_offset": 56 + }, + { + "name": "potentialSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "potentialChildSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LootDistributionTreeNode[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LootDistributionTreeNode", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 964104040, + "hash2": 1474328999, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootDistributionTreeNode", + "type_name_2": "LootDistributionTreeNode", + "qualified_name": "keen::ds::LootDistributionTreeNode", + "referenced_type_name": "keen::ds::LootDistributionBaseNode", + "class_size": 176, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1274504083, + "hash2": 2100719907, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 128 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 132 + }, + { + "name": "childNodes", + "type_name": "keen::DsArray", + "type_hash": 964104040, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerInfo", + "type_name_2": "LootContainerInfo", + "qualified_name": "keen::ds::LootContainerInfo", + "referenced_type_name": "keen::ds::LootDistributionBaseNode", + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2042652752, + "hash2": 2907895409, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 128 + }, + { + "name": "parentId", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpecialItemInfo", + "type_name_2": "SpecialItemInfo", + "qualified_name": "keen::ds::SpecialItemInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2965285069, + "hash2": 1547573189, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 4 + }, + { + "name": "checkItemLabels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "amount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootDistributionTreeResource", + "type_name_2": "LootDistributionTreeResource", + "qualified_name": "keen::ds::LootDistributionTreeResource", + "referenced_type_name": "keen::ds::LootDistributionTreeNode", + "class_size": 216, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1842884303, + "hash2": 2165174842, + "struct_fields": [ + { + "name": "specialItems", + "type_name": "keen::DsArray", + "type_hash": 2885176292, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityRandomLootInfo", + "type_name_2": "EntityRandomLootInfo", + "qualified_name": "keen::ds::EntityRandomLootInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 994342017, + "hash2": 702912417, + "struct_fields": [ + { + "name": "isLootEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "potentialSlotCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxLootInfo", + "type_name_2": "SceneWhiteboxLootInfo", + "qualified_name": "keen::ds::SceneWhiteboxLootInfo", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3755076357, + "hash2": 3080674954, + "struct_fields": [ + { + "name": "lootNodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "lootContainer", + "type_name": "keen::ds::LootContainerInfo", + "type_hash": 2042652752, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneWhiteboxLootInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneWhiteboxLootInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1724715484, + "hash2": 3979763473, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxLootInfos", + "type_name_2": "SceneWhiteboxLootInfos", + "qualified_name": "keen::ds::SceneWhiteboxLootInfos", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3447040706, + "hash2": 2768610732, + "struct_fields": [ + { + "name": "lootContainer", + "type_name": "keen::DsArray", + "type_hash": 1724715484, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootSlotInfo", + "type_name_2": "LootSlotInfo", + "qualified_name": "keen::ds::LootSlotInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2385157101, + "hash2": 2850792547, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "stackSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "rarity", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 6 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "LootSlotInfo[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::LootSlotInfo", + "class_size": 192, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 584857164, + "hash2": 3621346304, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootContainerFillInfo", + "type_name_2": "LootContainerFillInfo", + "qualified_name": "keen::ds::LootContainerFillInfo", + "referenced_type_name": null, + "class_size": 196, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 175828405, + "hash2": 3103492600, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "filledSlots", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 584857164, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImportantLootSlotInfo", + "type_name_2": "ImportantLootSlotInfo", + "qualified_name": "keen::ds::ImportantLootSlotInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2803635573, + "hash2": 358103059, + "struct_fields": [ + { + "name": "importantItemIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ImportantLootSlotInfo[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ImportantLootSlotInfo", + "class_size": 128, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 1971452780, + "hash2": 1992923091, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImportantLootContainerFillInfo", + "type_name_2": "ImportantLootContainerFillInfo", + "qualified_name": "keen::ds::ImportantLootContainerFillInfo", + "referenced_type_name": null, + "class_size": 132, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 323336253, + "hash2": 1813908245, + "struct_fields": [ + { + "name": "filledSlots", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "slots", + "type_name": "keen::StaticArray", + "type_hash": 1971452780, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierBase", + "type_name_2": "LootModifierBase", + "qualified_name": "keen::ds::LootModifierBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4089845865, + "hash2": 3392495109, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::LootModifierMode", + "type_hash": 1871692447, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierAmount", + "type_name_2": "LootModifierAmount", + "qualified_name": "keen::ds::LootModifierAmount", + "referenced_type_name": "keen::ds::LootModifierBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2282797200, + "hash2": 199720291, + "struct_fields": [ + { + "name": "amount", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierRarity", + "type_name_2": "LootModifierRarity", + "qualified_name": "keen::ds::LootModifierRarity", + "referenced_type_name": "keen::ds::LootModifierBase", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 914692271, + "hash2": 17046911, + "struct_fields": [ + { + "name": "rarity", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 1 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierItemValue", + "type_name_2": "LootModifierItemValue", + "qualified_name": "keen::ds::LootModifierItemValue", + "referenced_type_name": "keen::ds::LootModifierBase", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2668015280, + "hash2": 50198583, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierLevelOffset", + "type_name_2": "LootModifierLevelOffset", + "qualified_name": "keen::ds::LootModifierLevelOffset", + "referenced_type_name": "keen::ds::LootModifierBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 561608005, + "hash2": 128912942, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootModifierLevelOffsetRange", + "type_name_2": "LootModifierLevelOffsetRange", + "qualified_name": "keen::ds::LootModifierLevelOffsetRange", + "referenced_type_name": "keen::ds::LootModifierBase", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 504270322, + "hash2": 50198583, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootItem", + "type_name_2": "RandomLootItem", + "qualified_name": "keen::ds::RandomLootItem", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3055157345, + "hash2": 1948828840, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "amount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "checkItemLabels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RandomLootItemInfo", + "type_name_2": "RandomLootItemInfo", + "qualified_name": "keen::ds::RandomLootItemInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1403519705, + "hash2": 171879041, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 4 + }, + { + "name": "amount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 20 + }, + { + "name": "checkItemLabels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootTagInfo", + "type_name_2": "LootTagInfo", + "qualified_name": "keen::ds::LootTagInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2355067179, + "hash2": 2834474674, + "struct_fields": [ + { + "name": "tagId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RandomLootItemInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RandomLootItemInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3378821958, + "hash2": 3084692895, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectLootSettings", + "type_name_2": "ObjectLootSettings", + "qualified_name": "keen::ds::ObjectLootSettings", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3863595379, + "hash2": 3735104945, + "struct_fields": [ + { + "name": "modifier", + "type_name": "keen::ds::LootModifierInfo", + "type_hash": 610292384, + "data_offset": 0 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 866920506, + "data_offset": 64 + }, + { + "name": "specialItems", + "type_name": "keen::DsArray", + "type_hash": 3378821958, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShufflebagItemType", + "type_name_2": "ShufflebagItemType", + "qualified_name": "keen::ds::ShufflebagItemType", + "referenced_type_name": "keen::ShufflebagItemType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1168804557, + "hash2": 2197031214, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemLabelGroupResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemLabelGroupResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2654442990, + "hash2": 2527707593, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ItemLabelGroupResource", + "type_name_2": "ItemLabelGroupResource", + "qualified_name": "keen::ds::ItemLabelGroupResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3202524825, + "hash2": 2062504262, + "struct_fields": [ + { + "name": "labels", + "type_name": "keen::DsArray", + "type_hash": 866920506, + "data_offset": 0 + }, + { + "name": "childGroups", + "type_name": "keen::DsArray", + "type_hash": 2654442990, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootableItemInfo", + "type_name_2": "LootableItemInfo", + "qualified_name": "keen::ds::LootableItemInfo", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1049933498, + "hash2": 3476316249, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "rarities", + "type_name": "keen::ds::ItemRarityMask", + "type_hash": 708489959, + "data_offset": 4 + }, + { + "name": "useUiRarity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "uiRarity", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 6 + }, + { + "name": "labelGroups", + "type_name": "keen::ds::ItemLabelGroupResource", + "type_hash": 3202524825, + "data_offset": 8 + }, + { + "name": "stackSizeMin", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 88 + }, + { + "name": "stackSizeMax", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 90 + }, + { + "name": "stackSizeMaxScaled", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 92 + }, + { + "name": "stackSizeScalable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 94 + }, + { + "name": "shufflebagType", + "type_name": "keen::ds::ShufflebagItemType", + "type_hash": 1168804557, + "data_offset": 95 + }, + { + "name": "hasWeaponCategory", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "weaponCategoryType", + "type_name": "keen::ds::WeaponCategoryType", + "type_hash": 462670651, + "data_offset": 97 + }, + { + "name": "armorCategoryType", + "type_name": "keen::ds::EquipmentSlotType", + "type_hash": 1809869085, + "data_offset": 98 + }, + { + "name": "classAlignmentType", + "type_name": "keen::ds::ItemClassAlignmentType", + "type_hash": 286333597, + "data_offset": 99 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LootableItemInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LootableItemInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1932057771, + "hash2": 3960598379, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootableItemsResource", + "type_name_2": "LootableItemsResource", + "qualified_name": "keen::ds::LootableItemsResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2944927919, + "hash2": 474130208, + "struct_fields": [ + { + "name": "globalRarityDropRates", + "type_name": "keen::StaticArray", + "type_hash": 4208928690, + "data_offset": 0 + }, + { + "name": "weaponArmorRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "items", + "type_name": "keen::DsArray", + "type_hash": 1932057771, + "data_offset": 24 + }, + { + "name": "itemClassCategoryMask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 64 + }, + { + "name": "weaponCategoryMask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 72 + }, + { + "name": "armorCategoryMask", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DefaultLootSettingsResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DefaultLootSettingsResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2795037514, + "hash2": 573109170, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollectionResource", + "type_name_2": "DefaultLootLabelCollectionResource", + "qualified_name": "keen::ds::DefaultLootLabelCollectionResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2006445976, + "hash2": 2982557192, + "struct_fields": [ + { + "name": "lootSettings", + "type_name": "keen::DsArray", + "type_hash": 2795037514, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootSettingsResource", + "type_name_2": "DefaultLootSettingsResource", + "qualified_name": "keen::ds::DefaultLootSettingsResource", + "referenced_type_name": "keen::ds::LootSettingsResource", + "class_size": 112, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1266052707, + "hash2": 614534323, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistributionLootSceneInput", + "type_name_2": "DistributionLootSceneInput", + "qualified_name": "keen::ds::DistributionLootSceneInput", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3647429071, + "hash2": 2459004451, + "struct_fields": [ + { + "name": "scatterSetId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "modifier", + "type_name": "keen::ds::LootModifierInfo", + "type_hash": 610292384, + "data_offset": 16 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 866920506, + "data_offset": 80 + }, + { + "name": "lootIdsInput", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 120 + }, + { + "name": "lootTreeInput", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DistributionLootSceneInput[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DistributionLootSceneInput", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3067336528, + "hash2": 2785991253, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionLootConverterParameters", + "type_name_2": "DistributionLootConverterParameters", + "qualified_name": "keen::ds::DistributionLootConverterParameters", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2966613781, + "hash2": 2485745566, + "struct_fields": [ + { + "name": "lootSceneInputs", + "type_name": "keen::DsArray", + "type_hash": 3067336528, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugItemDropInfo", + "type_name_2": "DebugItemDropInfo", + "qualified_name": "keen::ds::DebugItemDropInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1274744888, + "hash2": 3078108522, + "struct_fields": [ + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugLootSceneInfoMessage", + "type_name_2": "DebugLootSceneInfoMessage", + "qualified_name": "keen::ds::DebugLootSceneInfoMessage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3063706571, + "hash2": 2250072015, + "struct_fields": [ + { + "name": "sceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3462477518, + "hash2": 874609437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DebugItemDropInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DebugItemDropInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3179368283, + "hash2": 519512883, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugLootContainerInfoMessage", + "type_name_2": "DebugLootContainerInfoMessage", + "qualified_name": "keen::ds::DebugLootContainerInfoMessage", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1285286258, + "hash2": 3103386855, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "droppedItems", + "type_name": "keen::DsArray", + "type_hash": 3462477518, + "data_offset": 8 + }, + { + "name": "weightSum", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "modifierInfo", + "type_name": "keen::ds::LootModifierInfo", + "type_hash": 610292384, + "data_offset": 52 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 866920506, + "data_offset": 120 + }, + { + "name": "possibleItems", + "type_name": "keen::DsArray", + "type_hash": 3179368283, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsOptional", + "type_name_2": "Optional", + "qualified_name": "keen::DsOptional", + "referenced_type_name": "keen::uint32", + "class_size": 16, + "fields_count": 0, + "primitive_type": "DsOptional", + "hash1": 3945023131, + "hash2": 2664501189, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RegisteredLootContainerParams", + "type_name_2": "RegisteredLootContainerParams", + "qualified_name": "keen::ds::RegisteredLootContainerParams", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 280889910, + "hash2": 1056599061, + "struct_fields": [ + { + "name": "containerId", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 0 + }, + { + "name": "parentNodeId", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 4 + }, + { + "name": "labelDefinitionsId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 8 + }, + { + "name": "baseProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "slotsMin", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "slotsMax", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + }, + { + "name": "level", + "type_name": "keen::DsOptional", + "type_hash": 3945023131, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RegisteredLootContainerParams[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RegisteredLootContainerParams", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2591551573, + "hash2": 1786734104, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugRegisteredLootContainerMessage", + "type_name_2": "DebugRegisteredLootContainerMessage", + "qualified_name": "keen::ds::DebugRegisteredLootContainerMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1414316534, + "hash2": 1135912706, + "struct_fields": [ + { + "name": "registeredContainer", + "type_name": "keen::DsArray", + "type_hash": 2591551573, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugTrackLootContainerMessage", + "type_name_2": "DebugTrackLootContainerMessage", + "qualified_name": "keen::ds::DebugTrackLootContainerMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 819492641, + "hash2": 177866605, + "struct_fields": [ + { + "name": "isLootContainer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugRefreshLootMessage", + "type_name_2": "DebugRefreshLootMessage", + "qualified_name": "keen::ds::DebugRefreshLootMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3431530694, + "hash2": 3799468233, + "struct_fields": [ + { + "name": "nodeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GroupedItemLabels", + "type_name_2": "GroupedItemLabels", + "qualified_name": "keen::ds::GroupedItemLabels", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 237370951, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LabelMask", + "type_name_2": "LabelMask", + "qualified_name": "keen::ds::LabelMask", + "referenced_type_name": "keen::LabelMask", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1613233875, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MarkerTypeSorting", + "type_name_2": "MarkerTypeSorting", + "qualified_name": "keen::ds::MarkerTypeSorting", + "referenced_type_name": "keen::MarkerTypeSorting", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1591018607, + "hash2": 3887227372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerType", + "type_name_2": "MapMarkerType", + "qualified_name": "keen::ds::MapMarkerType", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 3817845157, + "hash2": 3857809613, + "struct_fields": [ + { + "name": "markerId", + "type_name": "keen::ds::MapMarkerTypeId", + "type_hash": 2559771296, + "data_offset": 0 + }, + { + "name": "icon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 4 + }, + { + "name": "iconDisplaySize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "isHighlightable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "isFastTravelDestination", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + }, + { + "name": "showAboveFogOfWar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 58 + }, + { + "name": "showLabel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 59 + }, + { + "name": "showRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "isCustomMarkerType", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + }, + { + "name": "canBeFiltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 62 + }, + { + "name": "sortingCategory", + "type_name": "keen::ds::MarkerTypeSorting", + "type_hash": 1591018607, + "data_offset": 63 + }, + { + "name": "minimizeAboveZoomStep", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 64 + }, + { + "name": "hideAboveZoomStep", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 65 + }, + { + "name": "minimizedColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 68 + }, + { + "name": "scaleWithZoom", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerRegistryTool", + "type_name_2": "MapMarkerRegistryTool", + "qualified_name": "keen::ds::MapMarkerRegistryTool", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4209053280, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "MapMarkerType[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::MapMarkerType", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 88928528, + "hash2": 1804987283, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MapMarkerRegistryResource", + "type_name_2": "MapMarkerRegistryResource", + "qualified_name": "keen::ds::MapMarkerRegistryResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 820729710, + "hash2": 358947054, + "struct_fields": [ + { + "name": "mapMarkers", + "type_name": "keen::DsArray", + "type_hash": 88928528, + "data_offset": 0 + }, + { + "name": "texturePreload", + "type_name": "keen::ds::UiTexturePreload", + "type_hash": 3300318481, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomMapMarker", + "type_name_2": "CustomMapMarker", + "qualified_name": "keen::ds::CustomMapMarker", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3309725112, + "hash2": 806232477, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "colorScheme", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "type", + "type_name": "keen::ds::MapMarkerTypeId", + "type_hash": 2559771296, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HappinessRequirement", + "type_name_2": "npc.HappinessRequirement", + "qualified_name": "keen::ds::npc::HappinessRequirement", + "referenced_type_name": "keen::npc::HappinessRequirement", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3085178906, + "hash2": 3040300418, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HapinessMask", + "type_name_2": "npc.HapinessMask", + "qualified_name": "keen::ds::npc::HapinessMask", + "referenced_type_name": "keen::npc::HapinessMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1205972557, + "hash2": 894339227, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "IdleSequenceSetup", + "type_name_2": "npc.IdleSequenceSetup", + "qualified_name": "keen::ds::npc::IdleSequenceSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1659552314, + "hash2": 2051284720, + "struct_fields": [ + { + "name": "minSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxSequenceCooldown", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseIndex", + "type_name_2": "player_bases.BaseIndex", + "qualified_name": "keen::ds::player_bases::BaseIndex", + "referenced_type_name": "keen::player_bases::BaseIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1452478622, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlacedNpcInfo", + "type_name_2": "npc.PlacedNpcInfo", + "qualified_name": "keen::ds::npc::PlacedNpcInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3658960466, + "hash2": 1165614127, + "struct_fields": [ + { + "name": "baseIndex", + "type_name": "keen::ds::player_bases::BaseIndex", + "type_hash": 1452478622, + "data_offset": 0 + }, + { + "name": "entityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "happiness", + "type_name": "keen::ds::npc::HapinessMask", + "type_hash": 1205972557, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "State", + "type_name_2": "active_npc.State", + "qualified_name": "keen::ds::active_npc::State", + "referenced_type_name": "keen::active_npc::State", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3252386550, + "hash2": 3823564976, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StateCondition", + "type_name_2": "active_npc.StateCondition", + "qualified_name": "keen::ds::active_npc::StateCondition", + "referenced_type_name": "keen::active_npc::StateCondition", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3763361043, + "hash2": 3649704910, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Decision", + "type_name_2": "active_npc.Decision", + "qualified_name": "keen::ds::active_npc::Decision", + "referenced_type_name": "keen::active_npc::Decision", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3298870243, + "hash2": 2305190585, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcType", + "type_name_2": "active_npc.NpcType", + "qualified_name": "keen::ds::active_npc::NpcType", + "referenced_type_name": "keen::active_npc::NpcType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2419793592, + "hash2": 2777005378, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecisionSetup", + "type_name_2": "active_npc.DecisionSetup", + "qualified_name": "keen::ds::active_npc::DecisionSetup", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2005274308, + "hash2": 416673234, + "struct_fields": [ + { + "name": "idleWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "inspectWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "sitWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "roamWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "workWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IdleSetup", + "type_name_2": "active_npc.IdleSetup", + "qualified_name": "keen::ds::active_npc::IdleSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3191421460, + "hash2": 2778551880, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SearchTargetSetup", + "type_name_2": "active_npc.SearchTargetSetup", + "qualified_name": "keen::ds::active_npc::SearchTargetSetup", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2192608409, + "hash2": 3675658600, + "struct_fields": [ + { + "name": "targetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorkSetup", + "type_name_2": "active_npc.WorkSetup", + "qualified_name": "keen::ds::active_npc::WorkSetup", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2496190365, + "hash2": 2778551880, + "struct_fields": [ + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TargetSetup", + "type_name_2": "active_npc.TargetSetup", + "qualified_name": "keen::ds::active_npc::TargetSetup", + "referenced_type_name": null, + "class_size": 6, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1447767637, + "hash2": 2897492741, + "struct_fields": [ + { + "name": "isFarmland", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "isBed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "isCraftingStation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "isSeating", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "isFood", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "isInteresting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::NpcDialogDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1879193016, + "hash2": 32756065, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialog", + "type_name_2": "ecs.NpcDialog", + "qualified_name": "keen::ds::ecs::NpcDialog", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 256, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1700871579, + "hash2": 1937531253, + "struct_fields": [ + { + "name": "isFlame", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "dialog", + "type_name": "keen::ObjectReference", + "type_hash": 1879193016, + "data_offset": 4 + }, + { + "name": "dialogResource", + "type_name": "keen::ds::NpcDialogResource", + "type_hash": 3312134918, + "data_offset": 24 + }, + { + "name": "interactionVerbLoca", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNpcDialog", + "type_name_2": "ecs.DynamicNpcDialog", + "qualified_name": "keen::ds::ecs::DynamicNpcDialog", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 409380468, + "hash2": 530574004, + "struct_fields": [ + { + "name": "syncedKnowledgeQueryCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcDialogPartner", + "type_name_2": "ecs.NpcDialogPartner", + "qualified_name": "keen::ds::ecs::NpcDialogPartner", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2424125503, + "hash2": 26268450, + "struct_fields": [ + { + "name": "isInGreetingRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lastGreetingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcState", + "type_name_2": "ecs.NpcState", + "qualified_name": "keen::ds::ecs::NpcState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 128, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2223909216, + "hash2": 1218825047, + "struct_fields": [ + { + "name": "defaultGreetingSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "attentionGreetingSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + }, + { + "name": "turnSetup", + "type_name": "keen::ds::actor::TurnSetup", + "type_hash": 1637349768, + "data_offset": 32 + }, + { + "name": "idleSetup", + "type_name": "keen::ds::npc::IdleSequenceSetup", + "type_hash": 1659552314, + "data_offset": 104 + }, + { + "name": "hapinessMask", + "type_name": "keen::ds::npc::HapinessMask", + "type_hash": 1205972557, + "data_offset": 120 + }, + { + "name": "minDistanceToPlayer", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerMask", + "type_name_2": "ecs.PlayerMask", + "qualified_name": "keen::ds::ecs::PlayerMask", + "referenced_type_name": "keen::ecs::PlayerMask", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1428323953, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcInteractionState", + "type_name_2": "ecs.NpcInteractionState", + "qualified_name": "keen::ds::ecs::NpcInteractionState", + "referenced_type_name": "keen::ecs::NpcInteractionState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 312653486, + "hash2": 3981102775, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcInteractionStates", + "type_name_2": "ecs.NpcInteractionStates", + "qualified_name": "keen::ds::ecs::NpcInteractionStates", + "referenced_type_name": "keen::ecs::NpcInteractionStates", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 858119655, + "hash2": 3658279074, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.QueryId[16]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::QueryId", + "class_size": 64, + "fields_count": 16, + "primitive_type": "StaticArray", + "hash1": 2076307480, + "hash2": 262153248, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DynamicNpcState", + "type_name_2": "ecs.DynamicNpcState", + "qualified_name": "keen::ds::ecs::DynamicNpcState", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 4283411129, + "hash2": 3721727269, + "struct_fields": [ + { + "name": "lastSelectedDialogId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "lastInteractingEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 4 + }, + { + "name": "dialogSequenceActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "nextGreetingTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lastLookAtPlayerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "nextLookAtPlayerTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "remainingNextSequenceTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "queryIds", + "type_name": "keen::StaticArray", + "type_hash": 2076307480, + "data_offset": 48 + }, + { + "name": "playersInSight", + "type_name": "keen::ds::ecs::PlayerMask", + "type_hash": 1428323953, + "data_offset": 112 + }, + { + "name": "greetedPlayers", + "type_name": "keen::ds::ecs::PlayerMask", + "type_hash": 1428323953, + "data_offset": 120 + }, + { + "name": "isInitialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "isSpawning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 129 + }, + { + "name": "revertToRotation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActiveNpcState", + "type_name_2": "ecs.ActiveNpcState", + "qualified_name": "keen::ds::ecs::ActiveNpcState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 264, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2110368766, + "hash2": 928013307, + "struct_fields": [ + { + "name": "npcId", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 0 + }, + { + "name": "sitSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 4 + }, + { + "name": "sleepSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 20 + }, + { + "name": "inspectSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 36 + }, + { + "name": "npcType", + "type_name": "keen::ds::active_npc::NpcType", + "type_hash": 2419793592, + "data_offset": 52 + }, + { + "name": "decisionSetup", + "type_name": "keen::ds::active_npc::DecisionSetup", + "type_hash": 2005274308, + "data_offset": 56 + }, + { + "name": "idleSetup", + "type_name": "keen::ds::active_npc::IdleSetup", + "type_hash": 3191421460, + "data_offset": 80 + }, + { + "name": "roamingSetup", + "type_name": "keen::ds::active_npc::RoamingSetup", + "type_hash": 2479807301, + "data_offset": 96 + }, + { + "name": "movementSetup", + "type_name": "keen::ds::active_npc::MovementSetup", + "type_hash": 3411606789, + "data_offset": 108 + }, + { + "name": "workSetup", + "type_name": "keen::ds::active_npc::WorkSetup", + "type_hash": 2496190365, + "data_offset": 120 + }, + { + "name": "sleepSetup", + "type_name": "keen::ds::active_npc::SleepSetup", + "type_hash": 2593280021, + "data_offset": 136 + }, + { + "name": "searchTargetSetup", + "type_name": "keen::ds::active_npc::SearchTargetSetup", + "type_hash": 2192608409, + "data_offset": 152 + }, + { + "name": "pathNodeSetup", + "type_name": "keen::ds::active_npc::PathNodeSetup", + "type_hash": 3569282287, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicActiveNpcState", + "type_name_2": "ecs.DynamicActiveNpcState", + "qualified_name": "keen::ds::ecs::DynamicActiveNpcState", + "referenced_type_name": null, + "class_size": 5, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1024861007, + "hash2": 4239235693, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::active_npc::State", + "type_hash": 3252386550, + "data_offset": 0 + }, + { + "name": "previousState", + "type_name": "keen::ds::active_npc::State", + "type_hash": 3252386550, + "data_offset": 1 + }, + { + "name": "decision", + "type_name": "keen::ds::active_npc::Decision", + "type_hash": 3298870243, + "data_offset": 2 + }, + { + "name": "happiness", + "type_name": "keen::ds::npc::HapinessMask", + "type_hash": 1205972557, + "data_offset": 3 + }, + { + "name": "wasPaused", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NPCMovement", + "type_name_2": "ecs.NPCMovement", + "qualified_name": "keen::ds::ecs::NPCMovement", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2791130246, + "hash2": 470867349, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "movement", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ecs.NPCMovement[60]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ecs::NPCMovement", + "class_size": 1440, + "fields_count": 60, + "primitive_type": "StaticArray", + "hash1": 2444876852, + "hash2": 764625005, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcCommon", + "type_name_2": "ecs.NpcCommon", + "qualified_name": "keen::ds::ecs::NpcCommon", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1552, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 952874134, + "hash2": 1084966268, + "struct_fields": [ + { + "name": "interactionStates", + "type_name": "keen::ds::ecs::NpcInteractionStates", + "type_hash": 858119655, + "data_offset": 0 + }, + { + "name": "stateTimer", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "currentStateDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "stuckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "stuckTimeOut", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 40 + }, + { + "name": "closestPlayerId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 44 + }, + { + "name": "currentTargetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 48 + }, + { + "name": "bedId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 52 + }, + { + "name": "previousTargetId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 56 + }, + { + "name": "sleepTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "wakeUpTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "closestPlayerDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "squaredDistanceToTarget", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "currentTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 76 + }, + { + "name": "history", + "type_name": "keen::StaticArray", + "type_hash": 2444876852, + "data_offset": 88 + }, + { + "name": "historyIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1528 + }, + { + "name": "currentSequenceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 1532 + }, + { + "name": "useReducedRoamingSpace", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1548 + }, + { + "name": "shouldBeMoving", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1549 + }, + { + "name": "unstuckTries", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1550 + }, + { + "name": "stateFailures", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1551 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActiveNpcStateSaved", + "type_name_2": "ecs.ActiveNpcStateSaved", + "qualified_name": "keen::ds::ecs::ActiveNpcStateSaved", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 721640781, + "hash2": 2901925229, + "struct_fields": [ + { + "name": "spawnPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "overrideRoamingRange", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "teleportPositionAfterFinishing", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientActiveNpcState", + "type_name_2": "ecs.ClientActiveNpcState", + "qualified_name": "keen::ds::ecs::ClientActiveNpcState", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2212636665, + "hash2": 1647281779, + "struct_fields": [ + { + "name": "bedId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 0 + }, + { + "name": "happiness", + "type_name": "keen::ds::npc::HapinessMask", + "type_hash": 1205972557, + "data_offset": 4 + }, + { + "name": "roamingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "NpcId[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::NpcId", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3280057927, + "hash2": 3551065338, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StoreAssociatedNpcIds", + "type_name_2": "ecs.StoreAssociatedNpcIds", + "qualified_name": "keen::ds::ecs::StoreAssociatedNpcIds", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2726865144, + "hash2": 843577875, + "struct_fields": [ + { + "name": "initialized", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "npcIds", + "type_name": "keen::StaticArray", + "type_hash": 3280057927, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ActiveNpcTarget", + "type_name_2": "ecs.ActiveNpcTarget", + "qualified_name": "keen::ds::ecs::ActiveNpcTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3752820992, + "hash2": 4252230482, + "struct_fields": [ + { + "name": "setup", + "type_name": "keen::ds::active_npc::TargetSetup", + "type_hash": 1447767637, + "data_offset": 0 + }, + { + "name": "npcType", + "type_name": "keen::ds::active_npc::NpcType", + "type_hash": 2419793592, + "data_offset": 6 + }, + { + "name": "associatedNpc", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 8 + }, + { + "name": "targetOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientActiveNpcTarget", + "type_name_2": "ecs.ClientActiveNpcTarget", + "qualified_name": "keen::ds::ecs::ClientActiveNpcTarget", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 683742125, + "hash2": 1499942039, + "struct_fields": [ + { + "name": "associatedNpc", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 0 + }, + { + "name": "isBed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcSequenceEntry", + "type_name_2": "ecs.NpcSequenceEntry", + "qualified_name": "keen::ds::ecs::NpcSequenceEntry", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 427207598, + "hash2": 1847443484, + "struct_fields": [ + { + "name": "sequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.NpcSequenceEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::NpcSequenceEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 123322985, + "hash2": 1515449278, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BaseNpcSequences", + "type_name_2": "ecs.BaseNpcSequences", + "qualified_name": "keen::ds::ecs::BaseNpcSequences", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 611663954, + "hash2": 2908796156, + "struct_fields": [ + { + "name": "sequences", + "type_name": "keen::DsArray", + "type_hash": 123322985, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcIdleSequences", + "type_name_2": "ecs.NpcIdleSequences", + "qualified_name": "keen::ds::ecs::NpcIdleSequences", + "referenced_type_name": "keen::ds::ecs::BaseNpcSequences", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 743975801, + "hash2": 3518498913, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcWorkSequences", + "type_name_2": "ecs.NpcWorkSequences", + "qualified_name": "keen::ds::ecs::NpcWorkSequences", + "referenced_type_name": "keen::ds::ecs::BaseNpcSequences", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2201871904, + "hash2": 3518498913, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcActionSequences", + "type_name_2": "ecs.NpcActionSequences", + "qualified_name": "keen::ds::ecs::NpcActionSequences", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1845738993, + "hash2": 336533305, + "struct_fields": [ + { + "name": "idleSequences", + "type_name": "keen::ds::ecs::NpcIdleSequences", + "type_hash": 743975801, + "data_offset": 0 + }, + { + "name": "workSequences", + "type_name": "keen::ds::ecs::NpcWorkSequences", + "type_hash": 2201871904, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcResource", + "type_name_2": "NpcResource", + "qualified_name": "keen::ds::NpcResource", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3604331638, + "hash2": 4239715000, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 4 + }, + { + "name": "isCraftingAssistant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "unlockRequirement", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 12 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 16 + }, + { + "name": "workshopLabel", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 20 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 24 + }, + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 28 + }, + { + "name": "characterPresetReference", + "type_name": "keen::ds::CharacterPresetReference", + "type_hash": 1126720570, + "data_offset": 44 + }, + { + "name": "characterPresetId", + "type_name": "keen::ds::CharacterPresetId", + "type_hash": 3120811008, + "data_offset": 60 + }, + { + "name": "uiRendering", + "type_name": "keen::ds::UiNpcRenderingOptions", + "type_hash": 4011500566, + "data_offset": 64 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "NpcResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::NpcResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3655889329, + "hash2": 1495137317, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcCollection", + "type_name_2": "NpcCollection", + "qualified_name": "keen::ds::NpcCollection", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1336862054, + "hash2": 1274033067, + "struct_fields": [ + { + "name": "npcs", + "type_name": "keen::DsArray", + "type_hash": 3655889329, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathFinder", + "type_name_2": "ecs.PathFinder", + "qualified_name": "keen::ds::ecs::PathFinder", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2998259139, + "hash2": 1784972229, + "struct_fields": [ + { + "name": "horizontalStartSearchRadius", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 0 + }, + { + "name": "verticalStartSearchRadius", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 4 + }, + { + "name": "settings", + "type_name": "keen::ds::ecs::PathfindingSettings", + "type_hash": 3742226121, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicPathFinder", + "type_name_2": "ecs.DynamicPathFinder", + "qualified_name": "keen::ds::ecs::DynamicPathFinder", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 38, + "primitive_type": "Struct", + "hash1": 3584060742, + "hash2": 3677995580, + "struct_fields": [ + { + "name": "lastQueryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "lastStartPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "lastTargetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "lastKeepDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "lastParametersHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 48 + }, + { + "name": "lastMaxTargetNodeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::PathQueryId", + "type_hash": 2909815120, + "data_offset": 56 + }, + { + "name": "keepDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + }, + { + "name": "horizontalSearchRadius", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 64 + }, + { + "name": "verticalSearchRadius", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 68 + }, + { + "name": "gridType", + "type_name": "keen::ds::ecs::PathGridType", + "type_hash": 4273691163, + "data_offset": 72 + }, + { + "name": "keepLastResults", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "pathQueryCheck", + "type_name": "keen::ds::ecs::PathQueryCheck", + "type_hash": 1698592983, + "data_offset": 74 + }, + { + "name": "freePathCheckIgnoreEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 76 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 80 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 84 + }, + { + "name": "maxTargetNodeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "maxWalkDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "targetType", + "type_name": "keen::ds::ecs::PathQueryTargetType", + "type_hash": 3626046128, + "data_offset": 96 + }, + { + "name": "maxIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "horizontalKeepDistanceDirection", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 104 + }, + { + "name": "freePathCheckPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "enableAdditionalSpaceSearch", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + }, + { + "name": "enableJumpUp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + }, + { + "name": "enableJumpDown", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 126 + }, + { + "name": "canOpenDoors", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 127 + }, + { + "name": "maxJumpUpHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 128 + }, + { + "name": "maxJumpDownHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 129 + }, + { + "name": "enforceUpdate", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 130 + }, + { + "name": "ignoreWalkableColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 131 + }, + { + "name": "ignoreMovingObjects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "minTargetHorizontalSpace", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 136 + }, + { + "name": "pathNodeRequirements", + "type_name": "keen::ds::ecs::PathNodeRequirements", + "type_hash": 3849890651, + "data_offset": 140 + }, + { + "name": "pathNodeCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 144 + }, + { + "name": "horizontalDistanceCostFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "checkFreePathToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 200 + }, + { + "name": "ignoreNodesCloseToHole", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 201 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathWalkerState", + "type_name_2": "ecs.PathWalkerState", + "qualified_name": "keen::ds::ecs::PathWalkerState", + "referenced_type_name": "keen::ecs::PathWalkerState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 265200958, + "hash2": 3954510247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathWalkerTurnSettings", + "type_name_2": "ecs.PathWalkerTurnSettings", + "qualified_name": "keen::ds::ecs::PathWalkerTurnSettings", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4200844647, + "hash2": 1073004470, + "struct_fields": [ + { + "name": "turnToNextWayPointMinDistanceWalk", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "turnToNextWayPointMinDistanceRun", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathWalker", + "type_name_2": "ecs.PathWalker", + "qualified_name": "keen::ds::ecs::PathWalker", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 76, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3814350333, + "hash2": 3964476713, + "struct_fields": [ + { + "name": "jumpSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 0 + }, + { + "name": "openDoorSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 16 + }, + { + "name": "usePathFinding", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "teleportSequence", + "type_name": "keen::ds::actor::ActorSequenceReference", + "type_hash": 4203113657, + "data_offset": 36 + }, + { + "name": "jumpMoveSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "horizontalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "verticalRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "pathNodeRequirements", + "type_name": "keen::ds::ecs::PathNodeRequirements", + "type_hash": 3849890651, + "data_offset": 64 + }, + { + "name": "turnSettings", + "type_name": "keen::ds::ecs::PathWalkerTurnSettings", + "type_hash": 4200844647, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicPathWalker", + "type_name_2": "ecs.DynamicPathWalker", + "qualified_name": "keen::ds::ecs::DynamicPathWalker", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 56, + "primitive_type": "Struct", + "hash1": 1317775336, + "hash2": 673485257, + "struct_fields": [ + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "upateCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "pathIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::PathWalkerState", + "type_hash": 265200958, + "data_offset": 20 + }, + { + "name": "lookAtTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "lookAtMovementTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "setDesiredWorldLookDirection", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "keepDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "horizontalSearchRadius", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 44 + }, + { + "name": "verticalSearchRadius", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 48 + }, + { + "name": "maxArriveWaypointDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "maxArriveTargetDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "shouldOverrideMinArriveDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "overrideMinArriveDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "shouldOverrideMinTurnDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "overrideMinTurnDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "stuckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "keepLastResults", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "pathQueryCheck", + "type_name": "keen::ds::ecs::PathQueryCheck", + "type_hash": 1698592983, + "data_offset": 89 + }, + { + "name": "freePathCheckIgnoreEntityId", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 92 + }, + { + "name": "minHorizontalSpace", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 96 + }, + { + "name": "minVerticalSpace", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 100 + }, + { + "name": "standingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 104 + }, + { + "name": "walkingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 112 + }, + { + "name": "maxTargetNodeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "maxWalkDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "targetType", + "type_name": "keen::ds::ecs::PathQueryTargetType", + "type_hash": 3626046128, + "data_offset": 128 + }, + { + "name": "closestWaypointSquareDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 132 + }, + { + "name": "maxIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "currentPathLengthToTarget", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 140 + }, + { + "name": "horizontalKeepDistanceDirection", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "freePathCheckPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 152 + }, + { + "name": "lastReachedTarget", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 164 + }, + { + "name": "isWalkingActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + }, + { + "name": "enableAdditionalSpaceSearch", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 177 + }, + { + "name": "enableJumpUp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 178 + }, + { + "name": "enableJumpDown", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 179 + }, + { + "name": "canOpenDoors", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 180 + }, + { + "name": "maxJumpUpHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 181 + }, + { + "name": "maxJumpDownHeight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 182 + }, + { + "name": "lastEnforceUpdateTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 184 + }, + { + "name": "useTurnSequences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 192 + }, + { + "name": "turnSequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 200 + }, + { + "name": "teleportSequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 224 + }, + { + "name": "openDoorSequenceId", + "type_name": "keen::ds::actor::SequenceRuntimeId", + "type_hash": 3686080710, + "data_offset": 248 + }, + { + "name": "minTargetHorizontalSpace", + "type_name": "keen::ds::ecs::PathGridDistance", + "type_hash": 4227161756, + "data_offset": 272 + }, + { + "name": "enableTeleportMovement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 276 + }, + { + "name": "ignoreWalkableColliders", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 277 + }, + { + "name": "pathNodeCostFactors", + "type_name": "keen::ds::ecs::PathNodeCostFactors", + "type_hash": 1797145270, + "data_offset": 280 + }, + { + "name": "horizontalDistanceCostFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 332 + }, + { + "name": "checkFreePathToTarget", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 336 + }, + { + "name": "pathNodeRequirementsOverride", + "type_name": "keen::ds::ecs::PathNodeRequirements", + "type_hash": 3849890651, + "data_offset": 338 + }, + { + "name": "useNodeRequirementsOverride", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 342 + }, + { + "name": "ignoreMovingObjects", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 343 + }, + { + "name": "tryToReachTargetAsCloseAsPossible", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 344 + }, + { + "name": "ignoreNodesCloseToHole", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 345 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathGridInteractionObjectType", + "type_name_2": "ecs.PathGridInteractionObjectType", + "qualified_name": "keen::ds::ecs::PathGridInteractionObjectType", + "referenced_type_name": "keen::ecs::PathGridInteractionObjectType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3233251910, + "hash2": 4245308190, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathGridInteraction", + "type_name_2": "ecs.PathGridInteraction", + "qualified_name": "keen::ds::ecs::PathGridInteraction", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2807499289, + "hash2": 3232868725, + "struct_fields": [ + { + "name": "interactionObjectType", + "type_name": "keen::ds::ecs::PathGridInteractionObjectType", + "type_hash": 3233251910, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicPathGridInteraction", + "type_name_2": "ecs.DynamicPathGridInteraction", + "qualified_name": "keen::ds::ecs::DynamicPathGridInteraction", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2785740362, + "hash2": 3372151665, + "struct_fields": [ + { + "name": "isRegistered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PathFinderTester", + "type_name_2": "ecs.PathFinderTester", + "qualified_name": "keen::ds::ecs::PathFinderTester", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2926298604, + "hash2": 1815500590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathFindingMarkerType", + "type_name_2": "ecs.PathFindingMarkerType", + "qualified_name": "keen::ds::ecs::PathFindingMarkerType", + "referenced_type_name": "keen::ecs::PathFindingMarkerType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 855143726, + "hash2": 1799705896, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathFindingMarkerTestMode", + "type_name_2": "ecs.PathFindingMarkerTestMode", + "qualified_name": "keen::ds::ecs::PathFindingMarkerTestMode", + "referenced_type_name": "keen::ecs::PathFindingMarkerTestMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3692809789, + "hash2": 486913894, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathFindingMarkerTestState", + "type_name_2": "ecs.PathFindingMarkerTestState", + "qualified_name": "keen::ds::ecs::PathFindingMarkerTestState", + "referenced_type_name": "keen::ecs::PathFindingMarkerTestState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2257009995, + "hash2": 2170069548, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PathFindingTestMarker", + "type_name_2": "ecs.PathFindingTestMarker", + "qualified_name": "keen::ds::ecs::PathFindingTestMarker", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2926618170, + "hash2": 119068143, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::ecs::PathFindingMarkerType", + "type_hash": 855143726, + "data_offset": 0 + }, + { + "name": "testMode", + "type_name": "keen::ds::ecs::PathFindingMarkerTestMode", + "type_hash": 3692809789, + "data_offset": 1 + }, + { + "name": "state", + "type_name": "keen::ds::ecs::PathFindingMarkerTestState", + "type_hash": 2257009995, + "data_offset": 2 + }, + { + "name": "queryId", + "type_name": "keen::ds::ecs::PathQueryId", + "type_hash": 2909815120, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkDamageModifier", + "type_name_2": "PerkDamageModifier", + "qualified_name": "keen::ds::PerkDamageModifier", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2540808995, + "hash2": 2803222564, + "struct_fields": [ + { + "name": "distribution", + "type_name": "keen::ds::impact::DamageDistribution", + "type_hash": 1212686402, + "data_offset": 0 + }, + { + "name": "isSet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkConfig", + "type_name_2": "PerkConfig", + "qualified_name": "keen::ds::PerkConfig", + "referenced_type_name": "keen::PerkConfig", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 423035965, + "hash2": 4045993420, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Perk", + "type_name_2": "Perk", + "qualified_name": "keen::ds::Perk", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1615600431, + "hash2": 2855365880, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::ds::DescriptionLocaTag", + "type_hash": 4249666514, + "data_offset": 16 + }, + { + "name": "icon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 32 + }, + { + "name": "impact", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 80 + }, + { + "name": "simpleAttributeBuff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "uiValues", + "type_name": "keen::DsArray", + "type_hash": 3612751759, + "data_offset": 104 + }, + { + "name": "impactValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 144 + }, + { + "name": "damageModifier", + "type_name": "keen::ds::PerkDamageModifier", + "type_hash": 2540808995, + "data_offset": 184 + }, + { + "name": "perkArmorSetup", + "type_name": "keen::ds::ItemArmorSetup", + "type_hash": 30957760, + "data_offset": 240 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 280 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PerkSubDirectory", + "type_name_2": "PerkSubDirectory", + "qualified_name": "keen::ds::PerkSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3687376802, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkDirectory", + "type_name_2": "PerkDirectory", + "qualified_name": "keen::ds::PerkDirectory", + "referenced_type_name": "keen::ds::PerkSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3477126054, + "hash2": 450086461, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PerkReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PerkReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3413478711, + "hash2": 652456938, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PerkCollectionResource", + "type_name_2": "PerkCollectionResource", + "qualified_name": "keen::ds::PerkCollectionResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 631288395, + "hash2": 50285120, + "struct_fields": [ + { + "name": "perks", + "type_name": "keen::DsArray", + "type_hash": 3413478711, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClientOnlyPlayerInputType", + "type_name_2": "ecs.ClientOnlyPlayerInputType", + "qualified_name": "keen::ds::ecs::ClientOnlyPlayerInputType", + "referenced_type_name": "keen::ecs::ClientOnlyPlayerInputType", + "class_size": 1, + "fields_count": 48, + "primitive_type": "Typedef", + "hash1": 2293580864, + "hash2": 1844863119, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeLevelRequirement", + "type_name_2": "RecipeLevelRequirement", + "qualified_name": "keen::ds::RecipeLevelRequirement", + "referenced_type_name": "keen::RecipeLevelRequirement", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1088123204, + "hash2": 1291862984, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeItemStack", + "type_name_2": "RecipeItemStack", + "qualified_name": "keen::ds::RecipeItemStack", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2058058130, + "hash2": 2303639367, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeInputList", + "type_name_2": "RecipeInputList", + "qualified_name": "keen::ds::RecipeInputList", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3215179799, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeOutputList", + "type_name_2": "RecipeOutputList", + "qualified_name": "keen::ds::RecipeOutputList", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3827389256, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RequiredProp", + "type_name_2": "RequiredProp", + "qualified_name": "keen::ds::RequiredProp", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3890619699, + "hash2": 4056296399, + "struct_fields": [ + { + "name": "craftingProp", + "type_name": "keen::ObjectReference", + "type_hash": 1009443420, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Recipe", + "type_name_2": "Recipe", + "qualified_name": "keen::ds::Recipe", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 4202395209, + "hash2": 930935760, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::ds::DescriptionLocaTag", + "type_hash": 4249666514, + "data_offset": 16 + }, + { + "name": "lore", + "type_name": "keen::ds::LoreLocaTag", + "type_hash": 3467428038, + "data_offset": 32 + }, + { + "name": "showIsNewLabel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "useCustomCompletionRequirement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + }, + { + "name": "completionRequirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 52 + }, + { + "name": "requiresSheltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 156 + }, + { + "name": "workshopReference", + "type_name": "keen::ObjectReference", + "type_hash": 224738262, + "data_offset": 160 + }, + { + "name": "levelRequirement", + "type_name": "keen::ds::RecipeLevelRequirement", + "type_hash": 1088123204, + "data_offset": 176 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 180 + }, + { + "name": "comfortLevelRequirement", + "type_name": "keen::ds::RecipeLevelRequirement", + "type_hash": 1088123204, + "data_offset": 184 + }, + { + "name": "comfortLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 188 + }, + { + "name": "serverProgressLevelRequirement", + "type_name": "keen::ds::RecipeLevelRequirement", + "type_hash": 1088123204, + "data_offset": 192 + }, + { + "name": "serverProgressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 196 + }, + { + "name": "requiredHappyNpcCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "requiredEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 204 + }, + { + "name": "craftingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 208 + }, + { + "name": "isUpgrade", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeList", + "type_name_2": "RecipeList", + "qualified_name": "keen::ds::RecipeList", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4181325365, + "hash2": 4073031701, + "struct_fields": [ + { + "name": "workshopDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 3521558688, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CraftingPropId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CraftingPropId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3162498754, + "hash2": 3365865703, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeInfo", + "type_name_2": "RecipeInfo", + "qualified_name": "keen::ds::RecipeInfo", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 2259836817, + "hash2": 3762642696, + "struct_fields": [ + { + "name": "recipeId", + "type_name": "keen::ds::RecipeId", + "type_hash": 3806331756, + "data_offset": 0 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 4 + }, + { + "name": "input", + "type_name": "keen::DsArray", + "type_hash": 3009846981, + "data_offset": 8 + }, + { + "name": "output", + "type_name": "keen::DsArray", + "type_hash": 3009846981, + "data_offset": 48 + }, + { + "name": "requiresSheltered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "showIsImportantLabel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 89 + }, + { + "name": "levelRequirement", + "type_name": "keen::ds::RecipeLevelRequirement", + "type_hash": 1088123204, + "data_offset": 90 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "comfortLevelRequirement", + "type_name": "keen::ds::RecipeLevelRequirement", + "type_hash": 1088123204, + "data_offset": 96 + }, + { + "name": "comfortLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "serverProgressLevelRequirement", + "type_name": "keen::ds::RecipeLevelRequirement", + "type_hash": 1088123204, + "data_offset": 104 + }, + { + "name": "serverProgressLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 108 + }, + { + "name": "requiredHappyNpcCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "requiredEnergy", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 116 + }, + { + "name": "craftingDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 120 + }, + { + "name": "isCookingRecipe", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "isUpgrade", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 129 + }, + { + "name": "requiredProps", + "type_name": "keen::DsArray", + "type_hash": 3162498754, + "data_offset": 136 + }, + { + "name": "requiredPropsMask", + "type_name": "keen::ds::CraftingPropMask", + "type_hash": 3066136568, + "data_offset": 176 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 184 + }, + { + "name": "recipeInspectedKnowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 188 + }, + { + "name": "recipeCraftedKnowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 192 + }, + { + "name": "completionRequirementId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 196 + }, + { + "name": "recipeName", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 200 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RecipeInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RecipeInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1830644894, + "hash2": 1607928808, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RecipeRegistryResource", + "type_name_2": "RecipeRegistryResource", + "qualified_name": "keen::ds::RecipeRegistryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2507233074, + "hash2": 2003774830, + "struct_fields": [ + { + "name": "recipes", + "type_name": "keen::DsArray", + "type_hash": 1830644894, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillNodeLinkId", + "type_name_2": "SkillNodeLinkId", + "qualified_name": "keen::ds::SkillNodeLinkId", + "referenced_type_name": "keen::SkillNodeLinkId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3126151149, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillIdComponent", + "type_name_2": "ecs.SkillIdComponent", + "qualified_name": "keen::ds::ecs::SkillIdComponent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1407816687, + "hash2": 1168619402, + "struct_fields": [ + { + "name": "skillId", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillNodeType", + "type_name_2": "SkillNodeType", + "qualified_name": "keen::ds::SkillNodeType", + "referenced_type_name": "keen::SkillNodeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4019777224, + "hash2": 501413497, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ClassType", + "type_name_2": "ClassType", + "qualified_name": "keen::ds::ClassType", + "referenced_type_name": "keen::ClassType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3506106201, + "hash2": 1142841548, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeNodeLink", + "type_name_2": "SkillTreeNodeLink", + "qualified_name": "keen::ds::SkillTreeNodeLink", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1636343392, + "hash2": 3518800587, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::SkillNodeLinkId", + "type_hash": 3126151149, + "data_offset": 0 + }, + { + "name": "sourceNode", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 4 + }, + { + "name": "targetNode", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 8 + }, + { + "name": "isBidirectional", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SkillNodeLinkId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SkillNodeLinkId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2188057412, + "hash2": 3906341050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeNode", + "type_name_2": "SkillTreeNode", + "qualified_name": "keen::ds::SkillTreeNode", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 1173946256, + "hash2": 4204533544, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::SkillNodeId", + "type_hash": 114463325, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::SkillNodeType", + "type_hash": 4019777224, + "data_offset": 4 + }, + { + "name": "uiPosition", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "costs", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "name", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 20 + }, + { + "name": "description", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 24 + }, + { + "name": "classAlignment", + "type_name": "keen::ds::ClassType", + "type_hash": 3506106201, + "data_offset": 28 + }, + { + "name": "activeSkillUnlockRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 32 + }, + { + "name": "activeSkillUnlock", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 48 + }, + { + "name": "iconInactive", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 52 + }, + { + "name": "iconActive", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 100 + }, + { + "name": "impactReference", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 148 + }, + { + "name": "uiValues", + "type_name": "keen::DsArray", + "type_hash": 3612751759, + "data_offset": 168 + }, + { + "name": "configValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 208 + }, + { + "name": "isDeactivatedForEarlyAccess", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 248 + }, + { + "name": "incomingLinks", + "type_name": "keen::DsArray", + "type_hash": 2188057412, + "data_offset": 256 + }, + { + "name": "outgoingLinks", + "type_name": "keen::DsArray", + "type_hash": 2188057412, + "data_offset": 296 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SkillTreeNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2700041689, + "hash2": 779762843, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeNodeReference", + "type_name_2": "SkillTreeNodeReference", + "qualified_name": "keen::ds::SkillTreeNodeReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4285028557, + "hash2": 2174821601, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SkillTreeNode[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SkillTreeNode", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1357758267, + "hash2": 3590028264, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SkillTreeNodeLink[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SkillTreeNodeLink", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 677413375, + "hash2": 203748727, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeResource", + "type_name_2": "SkillTreeResource", + "qualified_name": "keen::ds::SkillTreeResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2777683880, + "hash2": 3117814855, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::DsArray", + "type_hash": 1357758267, + "data_offset": 0 + }, + { + "name": "links", + "type_name": "keen::DsArray", + "type_hash": 677413375, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeDefinition", + "type_name_2": "SkillTreeDefinition", + "qualified_name": "keen::ds::SkillTreeDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3076499325, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Node", + "type_name_2": "skilltree_nodes.Node", + "qualified_name": "keen::ds::skilltree_nodes::Node", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2397829438, + "hash2": 1181357019, + "struct_fields": [ + { + "name": "uiPosition", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::NameLocaTag", + "type_hash": 3622148983, + "data_offset": 8 + }, + { + "name": "description", + "type_name": "keen::ds::DescriptionLocaTag", + "type_hash": 4249666514, + "data_offset": 24 + }, + { + "name": "iconInactive", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 40 + }, + { + "name": "iconActive", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 56 + }, + { + "name": "costs", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 72 + }, + { + "name": "classAlignment", + "type_name": "keen::ds::ClassType", + "type_hash": 3506106201, + "data_offset": 74 + }, + { + "name": "isDeactivatedForEarlyAccess", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 75 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StartingNode", + "type_name_2": "skilltree_nodes.StartingNode", + "qualified_name": "keen::ds::skilltree_nodes::StartingNode", + "referenced_type_name": "keen::ds::skilltree_nodes::Node", + "class_size": 76, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2154811186, + "hash2": 3295609568, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbilityNode", + "type_name_2": "skilltree_nodes.AbilityNode", + "qualified_name": "keen::ds::skilltree_nodes::AbilityNode", + "referenced_type_name": "keen::ds::skilltree_nodes::Node", + "class_size": 152, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1344126804, + "hash2": 1075999736, + "struct_fields": [ + { + "name": "abilityItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 76 + }, + { + "name": "impactReference", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 92 + }, + { + "name": "configValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AttributeNode", + "type_name_2": "skilltree_nodes.AttributeNode", + "qualified_name": "keen::ds::skilltree_nodes::AttributeNode", + "referenced_type_name": "keen::ds::skilltree_nodes::Node", + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2270009722, + "hash2": 3217410876, + "struct_fields": [ + { + "name": "impactReference", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 76 + }, + { + "name": "configValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PassiveNode", + "type_name_2": "skilltree_nodes.PassiveNode", + "qualified_name": "keen::ds::skilltree_nodes::PassiveNode", + "referenced_type_name": "keen::ds::skilltree_nodes::Node", + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2860037751, + "hash2": 3217410876, + "struct_fields": [ + { + "name": "impactReference", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 76 + }, + { + "name": "configValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MartyrNode", + "type_name_2": "skilltree_nodes.MartyrNode", + "qualified_name": "keen::ds::skilltree_nodes::MartyrNode", + "referenced_type_name": "keen::ds::skilltree_nodes::Node", + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1803474689, + "hash2": 3217410876, + "struct_fields": [ + { + "name": "impactReference", + "type_name": "keen::ds::ImpactProgramReference", + "type_hash": 2221948960, + "data_offset": 76 + }, + { + "name": "configValues", + "type_name": "keen::ds::impact::Configurations", + "type_hash": 524317822, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkillTreeLink", + "type_name_2": "skilltree_nodes.SkillTreeLink", + "qualified_name": "keen::ds::skilltree_nodes::SkillTreeLink", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1273018963, + "hash2": 3811368503, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 0 + }, + { + "name": "startElementName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + }, + { + "name": "endNode", + "type_name": "keen::ds::skilltree_nodes::NodeReference", + "type_hash": 1101428235, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringLocomotion", + "type_name_2": "ecs.SteeringLocomotion", + "qualified_name": "keen::ds::ecs::SteeringLocomotion", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 24, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1309532374, + "hash2": 3744453692, + "struct_fields": [ + { + "name": "setRotationFlag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "clearVelocity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "slowDownIfMovementAngleIsTooBig", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "maxRunAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxMovementAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "isCloseToHole", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "lastHookedTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringAgent", + "type_name_2": "ecs.SteeringAgent", + "qualified_name": "keen::ds::ecs::SteeringAgent", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 68, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1931440492, + "hash2": 768452340, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::RangeQueryId", + "type_hash": 3652733094, + "data_offset": 0 + }, + { + "name": "active", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "desiredVelocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + }, + { + "name": "currentVelocityWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "desiredVelocityWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 28 + }, + { + "name": "maxSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "maxForce", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "maxAcceleration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "separationRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "priority", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 60 + }, + { + "name": "ignoredEntity", + "type_name": "keen::ds::ecs::EntityId", + "type_hash": 824634830, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior", + "type_name_2": "ecs.SteeringBehavior", + "qualified_name": "keen::ds::ecs::SteeringBehavior", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3522775857, + "hash2": 1937646558, + "struct_fields": [ + { + "name": "steeringForce", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Seek", + "type_name_2": "ecs.SteeringBehavior_Seek", + "qualified_name": "keen::ds::ecs::SteeringBehavior_Seek", + "referenced_type_name": "keen::ds::ecs::SteeringBehavior", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 415664146, + "hash2": 4119192915, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Flee", + "type_name_2": "ecs.SteeringBehavior_Flee", + "qualified_name": "keen::ds::ecs::SteeringBehavior_Flee", + "referenced_type_name": "keen::ds::ecs::SteeringBehavior", + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3027457190, + "hash2": 3994164882, + "struct_fields": [ + { + "name": "viewConeHalfAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "fleeRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "checkViewCone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Separation", + "type_name_2": "ecs.SteeringBehavior_Separation", + "qualified_name": "keen::ds::ecs::SteeringBehavior_Separation", + "referenced_type_name": "keen::ds::ecs::SteeringBehavior", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2053584566, + "hash2": 3183802136, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "forceActiveDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_LookAhead", + "type_name_2": "ecs.SteeringBehavior_LookAhead", + "qualified_name": "keen::ds::ecs::SteeringBehavior_LookAhead", + "referenced_type_name": "keen::ds::ecs::SteeringBehavior", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1048092682, + "hash2": 1751088546, + "struct_fields": [ + { + "name": "lastQueryTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "lookAheadAngle", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 24 + }, + { + "name": "lookAheadDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_ObstacleAvoidance", + "type_name_2": "ecs.SteeringBehavior_ObstacleAvoidance", + "qualified_name": "keen::ds::ecs::SteeringBehavior_ObstacleAvoidance", + "referenced_type_name": "keen::ds::ecs::SteeringBehavior", + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4273623003, + "hash2": 105096107, + "struct_fields": [ + { + "name": "queryId", + "type_name": "keen::ds::ecs::QueryId", + "type_hash": 2670909649, + "data_offset": 12 + }, + { + "name": "lastCheckTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "minHeightDiff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Cohesion", + "type_name_2": "ecs.SteeringBehavior_Cohesion", + "qualified_name": "keen::ds::ecs::SteeringBehavior_Cohesion", + "referenced_type_name": "keen::ds::ecs::SteeringBehavior", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1861480558, + "hash2": 4119192915, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SteeringBehavior_Alignment", + "type_name_2": "ecs.SteeringBehavior_Alignment", + "qualified_name": "keen::ds::ecs::SteeringBehavior_Alignment", + "referenced_type_name": "keen::ds::ecs::SteeringBehavior", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3090905567, + "hash2": 4119192915, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SteeringAnimator", + "type_name_2": "ecs.SteeringAnimator", + "qualified_name": "keen::ds::ecs::SteeringAnimator", + "referenced_type_name": "keen::ds::ecs::Component", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 668798442, + "hash2": 1964273147, + "struct_fields": [ + { + "name": "idleAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 0 + }, + { + "name": "walkAnimation", + "type_name": "keen::ds::animationgraph::StateIdReference", + "type_hash": 356792272, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ToolTerraformingEfficiency", + "type_name_2": "ToolTerraformingEfficiency", + "qualified_name": "keen::ds::ToolTerraformingEfficiency", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3605711024, + "hash2": 466210051, + "struct_fields": [ + { + "name": "toolItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "efficiency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ConditionalVoxelMaterialBuffType", + "type_name_2": "ConditionalVoxelMaterialBuffType", + "qualified_name": "keen::ds::ConditionalVoxelMaterialBuffType", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2832724563, + "hash2": 2106867373, + "struct_fields": [ + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "buffType", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialType", + "type_name_2": "TerrainMaterialType", + "qualified_name": "keen::ds::TerrainMaterialType", + "referenced_type_name": "keen::TerrainMaterialType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2805924377, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialId", + "type_name_2": "TerrainMaterialId", + "qualified_name": "keen::ds::TerrainMaterialId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3299547268, + "hash2": 1299837430, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::TerrainMaterialType", + "type_hash": 2805924377, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ConditionalVoxelMaterialBuffType[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ConditionalVoxelMaterialBuffType", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 741290900, + "hash2": 121596846, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerrainTerraformingConfig", + "type_name_2": "TerrainTerraformingConfig", + "qualified_name": "keen::ds::TerrainTerraformingConfig", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 2135830166, + "hash2": 1698158999, + "struct_fields": [ + { + "name": "terrainMaterial", + "type_name": "keen::ds::TerrainMaterialId", + "type_hash": 3299547268, + "data_offset": 0 + }, + { + "name": "terrainItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 4 + }, + { + "name": "hardness", + "type_name": "keen::ds::HardnessCategory", + "type_hash": 1147349709, + "data_offset": 20 + }, + { + "name": "terrainPerLootItemExchangeRate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "healthPoints", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "canBeFlattened", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "isSlidingMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "experienceGainGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + }, + { + "name": "collisionFeedbackMaterial", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 52 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::ds::PropDamageSusceptibility", + "type_hash": 2214423142, + "data_offset": 68 + }, + { + "name": "buffReference", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 72 + }, + { + "name": "conditionalBuffTypes", + "type_name": "keen::DsArray", + "type_hash": 741290900, + "data_offset": 88 + }, + { + "name": "isDangerous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + }, + { + "name": "maxSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 136 + }, + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 140 + }, + { + "name": "maxSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 144 + }, + { + "name": "entityTag", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 148 + }, + { + "name": "pathNodeType", + "type_name": "keen::ds::ecs::PathNodeType", + "type_hash": 3295458615, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialType", + "type_name_2": "BuildingMaterialType", + "qualified_name": "keen::ds::BuildingMaterialType", + "referenced_type_name": "keen::BuildingMaterialType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 39022194, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialId", + "type_name_2": "BuildingMaterialId", + "qualified_name": "keen::ds::BuildingMaterialId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3480088367, + "hash2": 1299837430, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::BuildingMaterialType", + "type_hash": 39022194, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingTerraformingConfig", + "type_name_2": "BuildingTerraformingConfig", + "qualified_name": "keen::ds::BuildingTerraformingConfig", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 2685538553, + "hash2": 1564244435, + "struct_fields": [ + { + "name": "buildingMaterial", + "type_name": "keen::ds::BuildingMaterialId", + "type_hash": 3480088367, + "data_offset": 0 + }, + { + "name": "materialItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 4 + }, + { + "name": "hardness", + "type_name": "keen::ds::HardnessCategory", + "type_hash": 1147349709, + "data_offset": 20 + }, + { + "name": "blocksPerLootItemExchangeRate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "healthPoints", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 32 + }, + { + "name": "experienceGainGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 36 + }, + { + "name": "collisionFeedbackMaterial", + "type_name": "keen::ds::CollisionFeedbackMaterialReference", + "type_hash": 2110438552, + "data_offset": 52 + }, + { + "name": "damageSusceptibility", + "type_name": "keen::ds::PropDamageSusceptibility", + "type_hash": 2214423142, + "data_offset": 68 + }, + { + "name": "buffReference", + "type_name": "keen::ds::BuffTypeReference", + "type_hash": 2448793303, + "data_offset": 72 + }, + { + "name": "conditionalBuffTypes", + "type_name": "keen::DsArray", + "type_hash": 741290900, + "data_offset": 88 + }, + { + "name": "isDangerous", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "frictionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + }, + { + "name": "maxSubmergeDepth", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 136 + }, + { + "name": "minSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 140 + }, + { + "name": "maxSubmergePercentage", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 144 + }, + { + "name": "entityTag", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 148 + }, + { + "name": "pathNodeType", + "type_name": "keen::ds::ecs::PathNodeType", + "type_hash": 3295458615, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "TerrainTerraformingConfig[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::TerrainTerraformingConfig", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3301923253, + "hash2": 3701913465, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BuildingTerraformingConfig[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BuildingTerraformingConfig", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3477228206, + "hash2": 794796872, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingEfficiencyRegistryResource", + "type_name_2": "TerraformingEfficiencyRegistryResource", + "qualified_name": "keen::ds::TerraformingEfficiencyRegistryResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 865081181, + "hash2": 3608083735, + "struct_fields": [ + { + "name": "terrainConfigs", + "type_name": "keen::DsArray", + "type_hash": 3301923253, + "data_offset": 0 + }, + { + "name": "buildingConfigs", + "type_name": "keen::DsArray", + "type_hash": 3477228206, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropId", + "type_name_2": "TwitchDropId", + "qualified_name": "keen::ds::TwitchDropId", + "referenced_type_name": "keen::TwitchDropId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1502279444, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropItem", + "type_name_2": "TwitchDropItem", + "qualified_name": "keen::ds::TwitchDropItem", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2743532634, + "hash2": 2618909382, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDrop", + "type_name_2": "TwitchDrop", + "qualified_name": "keen::ds::TwitchDrop", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 460143585, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropSubDirectory", + "type_name_2": "TwitchDropSubDirectory", + "qualified_name": "keen::ds::TwitchDropSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 38028732, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropDirectory", + "type_name_2": "TwitchDropDirectory", + "qualified_name": "keen::ds::TwitchDropDirectory", + "referenced_type_name": "keen::ds::TwitchDropSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3315238236, + "hash2": 3582292618, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropResource", + "type_name_2": "TwitchDropResource", + "qualified_name": "keen::ds::TwitchDropResource", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3376175489, + "hash2": 4238482897, + "struct_fields": [ + { + "name": "dropId", + "type_name": "keen::ds::TwitchDropId", + "type_hash": 1502279444, + "data_offset": 0 + }, + { + "name": "items", + "type_name": "keen::DsArray", + "type_hash": 3462477518, + "data_offset": 8 + }, + { + "name": "itemRefs", + "type_name": "keen::DsArray", + "type_hash": 3550418960, + "data_offset": 48 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 88 + }, + { + "name": "debugId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "TwitchDropResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::TwitchDropResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 301678238, + "hash2": 2791262842, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TwitchDropCollection", + "type_name_2": "TwitchDropCollection", + "qualified_name": "keen::ds::TwitchDropCollection", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 69313237, + "hash2": 1781119557, + "struct_fields": [ + { + "name": "drops", + "type_name": "keen::DsArray", + "type_hash": 301678238, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintId", + "type_name_2": "VoxelBlueprintId", + "qualified_name": "keen::ds::VoxelBlueprintId", + "referenced_type_name": "keen::VoxelBlueprintId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2073772605, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPoolId", + "type_name_2": "VoxelBlueprintMaterialPoolId", + "qualified_name": "keen::ds::VoxelBlueprintMaterialPoolId", + "referenced_type_name": "keen::VoxelBlueprintMaterialPoolId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2484198114, + "hash2": 4069469521, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3642330816, + "hash2": 3469108590, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelSnappingRule", + "type_name_2": "VoxelSnappingRule", + "qualified_name": "keen::ds::VoxelSnappingRule", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 715267159, + "hash2": 450567234, + "struct_fields": [ + { + "name": "snappingTargets", + "type_name": "keen::DsArray>", + "type_hash": 3642330816, + "data_offset": 0 + }, + { + "name": "excludeSnappingTargets", + "type_name": "keen::DsArray>", + "type_hash": 3642330816, + "data_offset": 40 + }, + { + "name": "maxHorizontalDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 80 + }, + { + "name": "maxVerticalDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 81 + }, + { + "name": "snapHorizontally", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 82 + }, + { + "name": "snapVertically", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 83 + }, + { + "name": "aboveAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "aboveEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 85 + }, + { + "name": "belowAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 86 + }, + { + "name": "belowEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 87 + }, + { + "name": "directionalHorizontalSnapping", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "sideAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 89 + }, + { + "name": "sideEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 90 + }, + { + "name": "lenghtwiseAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 91 + }, + { + "name": "lenghtwiseEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "crosswiseAdjacent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 93 + }, + { + "name": "crosswiseEnclosing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 94 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterial", + "type_name_2": "VoxelBlueprintMaterial", + "qualified_name": "keen::ds::VoxelBlueprintMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1527111225, + "hash2": 409170093, + "struct_fields": [ + { + "name": "materialItem", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelSnappingRule[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelSnappingRule", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3246905570, + "hash2": 3490701978, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintConfigSnapping", + "type_name_2": "VoxelBlueprintConfigSnapping", + "qualified_name": "keen::ds::VoxelBlueprintConfigSnapping", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1175357090, + "hash2": 565867488, + "struct_fields": [ + { + "name": "rules", + "type_name": "keen::DsArray", + "type_hash": 3246905570, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPool", + "type_name_2": "VoxelBlueprintMaterialPool", + "qualified_name": "keen::ds::VoxelBlueprintMaterialPool", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4164857231, + "hash2": 146643137, + "struct_fields": [ + { + "name": "equipmentSlot", + "type_name": "keen::ds::EquipmentSlot", + "type_hash": 253613781, + "data_offset": 0 + }, + { + "name": "poolId", + "type_name": "keen::ds::VoxelBlueprintMaterialPoolId", + "type_hash": 2484198114, + "data_offset": 4 + }, + { + "name": "materials", + "type_name": "keen::DsArray", + "type_hash": 3462477518, + "data_offset": 8 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintConfig", + "type_name_2": "VoxelBlueprintConfig", + "qualified_name": "keen::ds::VoxelBlueprintConfig", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2048182830, + "hash2": 3786899110, + "struct_fields": [ + { + "name": "snappingConfig", + "type_name": "keen::ds::VoxelBlueprintConfigSnapping", + "type_hash": 1175357090, + "data_offset": 0 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintRegistryFolder", + "type_name_2": "VoxelBlueprintRegistryFolder", + "qualified_name": "keen::ds::VoxelBlueprintRegistryFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4198800211, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPoolRegistryFolder", + "type_name_2": "VoxelBlueprintMaterialPoolRegistryFolder", + "qualified_name": "keen::ds::VoxelBlueprintMaterialPoolRegistryFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 344091116, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelBlueprintMaterialPool[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelBlueprintMaterialPool", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1732315024, + "hash2": 1100612165, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlueprintMaterialPoolRegistryResource", + "type_name_2": "VoxelBlueprintMaterialPoolRegistryResource", + "qualified_name": "keen::ds::VoxelBlueprintMaterialPoolRegistryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 710631916, + "hash2": 489820830, + "struct_fields": [ + { + "name": "materialPools", + "type_name": "keen::DsArray", + "type_hash": 1732315024, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelScatterImageMode", + "type_name_2": "VoxelScatterImageMode", + "qualified_name": "keen::ds::VoxelScatterImageMode", + "referenced_type_name": "keen::VoxelScatterImageMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1669997725, + "hash2": 3439728012, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelScatterImageContentPass", + "type_name_2": "VoxelScatterImageContentPass", + "qualified_name": "keen::ds::VoxelScatterImageContentPass", + "referenced_type_name": "keen::VoxelScatterImageContentPass", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4106895386, + "hash2": 2309900695, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AbstractScatterImage", + "type_name_2": "AbstractScatterImage", + "qualified_name": "keen::ds::AbstractScatterImage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1635131670, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelScatterImage", + "type_name_2": "VoxelScatterImage", + "qualified_name": "keen::ds::VoxelScatterImage", + "referenced_type_name": "keen::ds::AbstractScatterImage", + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 182969910, + "hash2": 3441843190, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 0 + }, + { + "name": "contentPass", + "type_name": "keen::ds::VoxelScatterImageContentPass", + "type_hash": 4106895386, + "data_offset": 16 + }, + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "mode", + "type_name": "keen::ds::VoxelScatterImageMode", + "type_hash": 1669997725, + "data_offset": 24 + }, + { + "name": "referenceHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "referenceMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 1526200410, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsVersion", + "type_name_2": "ecs.GameSettingsVersion", + "qualified_name": "keen::ds::ecs::GameSettingsVersion", + "referenced_type_name": "keen::ecs::GameSettingsVersion", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2008855025, + "hash2": 3017454203, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsPresetConfig", + "type_name_2": "ecs.GameSettingsPresetConfig", + "qualified_name": "keen::ds::ecs::GameSettingsPresetConfig", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3179683830, + "hash2": 2099215530, + "struct_fields": [ + { + "name": "presetId", + "type_name": "keen::ds::ecs::GameSettingsPreset", + "type_hash": 2718665048, + "data_offset": 0 + }, + { + "name": "settings", + "type_name": "keen::ds::ecs::GameSettings", + "type_hash": 4190741839, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.GameSettingsPresetConfig[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::GameSettingsPresetConfig", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3120498197, + "hash2": 3393656024, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameSettingsPresetsResource", + "type_name_2": "GameSettingsPresetsResource", + "qualified_name": "keen::ds::GameSettingsPresetsResource", + "referenced_type_name": null, + "class_size": 296, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3713411024, + "hash2": 3145967812, + "struct_fields": [ + { + "name": "minValues", + "type_name": "keen::ds::ecs::GameSettings", + "type_hash": 4190741839, + "data_offset": 0 + }, + { + "name": "maxValues", + "type_name": "keen::ds::ecs::GameSettings", + "type_hash": 4190741839, + "data_offset": 128 + }, + { + "name": "presets", + "type_name": "keen::DsArray", + "type_hash": 3120498197, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38TestState", + "type_name_2": "G38TestState", + "qualified_name": "keen::ds::G38TestState", + "referenced_type_name": "keen::G38TestState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1371234928, + "hash2": 3906505891, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "G38TestResult", + "type_name_2": "G38TestResult", + "qualified_name": "keen::ds::G38TestResult", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1382930406, + "hash2": 1059829576, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "program", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "error", + "type_name": "keen::ErrorId", + "type_hash": 2028696237, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38TestSummary", + "type_name_2": "G38TestSummary", + "qualified_name": "keen::ds::G38TestSummary", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3773208409, + "hash2": 511808138, + "struct_fields": [ + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "failed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "G38TestResult[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::G38TestResult", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 538359037, + "hash2": 2311520380, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "G38TestReport", + "type_name_2": "G38TestReport", + "qualified_name": "keen::ds::G38TestReport", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2170951969, + "hash2": 2558266116, + "struct_fields": [ + { + "name": "date", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 0 + }, + { + "name": "summary", + "type_name": "keen::ds::G38TestSummary", + "type_hash": 3773208409, + "data_offset": 8 + }, + { + "name": "testResults", + "type_name": "keen::DsArray", + "type_hash": 538359037, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiLocaTagReference", + "type_name_2": "UiLocaTagReference", + "qualified_name": "keen::ds::UiLocaTagReference", + "referenced_type_name": "keen::ds::LocaTagReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3613002481, + "hash2": 3972855137, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaCraftingWorkshops", + "type_name_2": "FbUiLocaCraftingWorkshops", + "qualified_name": "keen::ds::FbUiLocaCraftingWorkshops", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 2738012284, + "hash2": 954555736, + "struct_fields": [ + { + "name": "player", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "alchemist", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "blacksmith", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "carpenter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "workbench", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "grindingWheel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "oven", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "campfireBarbecue", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "anvil", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "distillery", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "furnace", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "mortar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "sketches", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "flameAltar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaCraftingCategories", + "type_name_2": "FbUiLocaCraftingCategories", + "qualified_name": "keen::ds::FbUiLocaCraftingCategories", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 4067395830, + "hash2": 2449007935, + "struct_fields": [ + { + "name": "untaggedRecipeSet", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "customization", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "equipment", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "weapons", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "tools", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "buildTools", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "consumables", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "ammunition", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "materials", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "blueprints", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "currency", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "collectible", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "genericItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaCrafting", + "type_name_2": "FbUiLocaCrafting", + "qualified_name": "keen::ds::FbUiLocaCrafting", + "referenced_type_name": null, + "class_size": 1040, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 3174235382, + "hash2": 2088488975, + "struct_fields": [ + { + "name": "workshops", + "type_name": "keen::ds::FbUiLocaCraftingWorkshops", + "type_hash": 2738012284, + "data_offset": 0 + }, + { + "name": "categories", + "type_name": "keen::ds::FbUiLocaCraftingCategories", + "type_hash": 4067395830, + "data_offset": 224 + }, + { + "name": "browserPinned", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "toggleDirectoryFilter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "itemViewerNoRecipeHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "requirementHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "ingredientsHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "emptyMenuHintShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "emptyMenuHintLong", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "automatedCraftingStatusWaiting", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "automatedCraftingStatusRunning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "automatedCraftingStatusPaused", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "automatedCraftingInsufficientMaterials", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "automatedCraftingAmountCraftableStacks", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "automatedCraftingStart", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + }, + { + "name": "automatedCraftingResume", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 640 + }, + { + "name": "automatedCraftingStop", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 656 + }, + { + "name": "automatedCraftingStopUnavailable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + }, + { + "name": "automatedCraftingPaused", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 688 + }, + { + "name": "automatedCraftingIdle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 704 + }, + { + "name": "automatedCraftingWorking", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 720 + }, + { + "name": "automatedCraftingStorageFull", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 736 + }, + { + "name": "automatedCraftingQueued", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 752 + }, + { + "name": "automatedCraftingInsufficientMaterialsHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 768 + }, + { + "name": "automatedCraftingStorageFullHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 784 + }, + { + "name": "automatedCraftingSourceMaterials", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 800 + }, + { + "name": "changeRecipeHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 816 + }, + { + "name": "factoryNoRecipesAvailable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 832 + }, + { + "name": "factoryMagicChestNoRecipesAvailable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 848 + }, + { + "name": "factoryShowCurrentProduction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 864 + }, + { + "name": "craftingItemInInventory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 880 + }, + { + "name": "noUpgradableItems", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 896 + }, + { + "name": "noIngredientMissing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 912 + }, + { + "name": "ingredientsMissing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 928 + }, + { + "name": "ingredientsNeeds", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 944 + }, + { + "name": "availableOutputs", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 960 + }, + { + "name": "selected", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 976 + }, + { + "name": "recipeViewerTabIngredients", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 992 + }, + { + "name": "recipeViewerTabRecipe", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1008 + }, + { + "name": "recipeViewerTabItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1024 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaItemEquipmentSlots", + "type_name_2": "FbUiLocaItemEquipmentSlots", + "qualified_name": "keen::ds::FbUiLocaItemEquipmentSlots", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1143742042, + "hash2": 2249570310, + "struct_fields": [ + { + "name": "armourHead", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "armourUpperBody", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "armourArms", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "armourLowerBody", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "armourFeet", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "armourAccessory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "armourRing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "armourShield", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "vanityHead", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "vanityUpperBody", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "vanityArms", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "vanityLowerBody", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "vanityFeet", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "hookshot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "glider", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "meleeWeapon", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "midRangeWeapon", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "arrow", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "spell", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "backpackExtender", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaPunctuations", + "type_name_2": "FbUiLocaPunctuations", + "qualified_name": "keen::ds::FbUiLocaPunctuations", + "referenced_type_name": null, + "class_size": 688, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1778680225, + "hash2": 529771998, + "struct_fields": [ + { + "name": "plusSign", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 0 + }, + { + "name": "minusSign", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 80 + }, + { + "name": "multiplySign", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 160 + }, + { + "name": "decimalSeparator", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "thousandsSeparator", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "exclamationMark", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 272 + }, + { + "name": "questionMark", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 352 + }, + { + "name": "questionMarkTriple", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 432 + }, + { + "name": "bulletDot", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 512 + }, + { + "name": "emDash", + "type_name": "keen::ds::LocaTag", + "type_hash": 2796266246, + "data_offset": 592 + }, + { + "name": "action1AndAction2", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaGeneric", + "type_name_2": "FbUiLocaGeneric", + "qualified_name": "keen::ds::FbUiLocaGeneric", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 86526837, + "hash2": 1662518263, + "struct_fields": [ + { + "name": "timeUnitsAbbreviations", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "milliseconds", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "inactiveState", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaInput", + "type_name_2": "FbUiLocaInput", + "qualified_name": "keen::ds::FbUiLocaInput", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2085156620, + "hash2": 2773330220, + "struct_fields": [ + { + "name": "unassigned", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "invalidStick", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "leftMouseButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "rightMouseButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "middleMouseButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "mouse4", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "mouse5", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "mouseWheelLeft", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "mouseWheelRight", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "mouseWheelUp", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "mouseWheelDown", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "mouseMoveLeft", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "mouseMoveRight", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "mouseMoveUp", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "mouseMoveDown", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaAttributeInfo", + "type_name_2": "FbUiLocaAttributeInfo", + "qualified_name": "keen::ds::FbUiLocaAttributeInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4049598148, + "hash2": 3755460710, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "alternativeLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "tooltip", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "impliedBaseMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "relativeToValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaAttributes", + "type_name_2": "FbUiLocaAttributes", + "qualified_name": "keen::ds::FbUiLocaAttributes", + "referenced_type_name": null, + "class_size": 4112, + "fields_count": 87, + "primitive_type": "Struct", + "hash1": 2450478737, + "hash2": 3025043708, + "struct_fields": [ + { + "name": "attributeMenuHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "subTabBasics", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "groupFoundation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "groupPrimary", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "groupSecondary", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "groupVital", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "groupCombat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "groupFogSurvival", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "groupMain", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "groupRegeneration", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "groupProtection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "groupMovement", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "groupDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "groupWeaponDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "groupEnemyDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "groupMisc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "valueExplainer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "valueExplainerWithBuff", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "health", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 288 + }, + { + "name": "mana", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 344 + }, + { + "name": "stamina", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 400 + }, + { + "name": "fogResistance", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 456 + }, + { + "name": "fogResistanceDuration", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 512 + }, + { + "name": "fogResistanceDurationMax", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 568 + }, + { + "name": "freezeResistance", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 624 + }, + { + "name": "bodyHeat", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 680 + }, + { + "name": "strength", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 736 + }, + { + "name": "dexterity", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 792 + }, + { + "name": "intelligence", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 848 + }, + { + "name": "constitution", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 904 + }, + { + "name": "endurance", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 960 + }, + { + "name": "spirit", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1016 + }, + { + "name": "healthRegeneration", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1072 + }, + { + "name": "healthRegenerationDelay", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1128 + }, + { + "name": "manaRegeneration", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1184 + }, + { + "name": "manaRegenerationDelay", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1240 + }, + { + "name": "staminaRegeneration", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1296 + }, + { + "name": "staminaRegenerationDelay", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1352 + }, + { + "name": "bodyHeatRegeneration", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1408 + }, + { + "name": "bodyHeatRegenerationDelay", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1464 + }, + { + "name": "baseMovementSpeed", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1520 + }, + { + "name": "sprintMovementSpeed", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1576 + }, + { + "name": "sneakMovementSpeed", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1632 + }, + { + "name": "critChanceMelee", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1688 + }, + { + "name": "critChanceMagical", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1744 + }, + { + "name": "critChanceRanged", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1800 + }, + { + "name": "skillShotDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1856 + }, + { + "name": "staffDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1912 + }, + { + "name": "wandDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 1968 + }, + { + "name": "oneHandDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2024 + }, + { + "name": "daggerDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2080 + }, + { + "name": "twoHandDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2136 + }, + { + "name": "bowDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2192 + }, + { + "name": "throwableDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2248 + }, + { + "name": "unarmedDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2304 + }, + { + "name": "foeMagicalDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2360 + }, + { + "name": "foeMeleeDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2416 + }, + { + "name": "foeRangedDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2472 + }, + { + "name": "foeFlyingDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2528 + }, + { + "name": "foeSkeletonDamage", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2584 + }, + { + "name": "healing", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2640 + }, + { + "name": "reviveDuration", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2696 + }, + { + "name": "reviveHealth", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2752 + }, + { + "name": "lifeSteal", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2808 + }, + { + "name": "restedDurationBonus", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2864 + }, + { + "name": "offenseBackstab", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2920 + }, + { + "name": "offenseCritical", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 2976 + }, + { + "name": "offenseCritChance", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3032 + }, + { + "name": "damageMelee", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3088 + }, + { + "name": "damageSpell", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3144 + }, + { + "name": "damageRanged", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3200 + }, + { + "name": "blockAttribute", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3256 + }, + { + "name": "parryAttribute", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3312 + }, + { + "name": "resistancePhysical", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3368 + }, + { + "name": "resistancePhysicalCut", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3424 + }, + { + "name": "resistancePhysicalPierce", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3480 + }, + { + "name": "resistancePhysicalBlunt", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3536 + }, + { + "name": "resistanceMagical", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3592 + }, + { + "name": "resistanceMagicalFire", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3648 + }, + { + "name": "resistanceMagicalIce", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3704 + }, + { + "name": "resistanceMagicalFog", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3760 + }, + { + "name": "resistanceMagicalLightning", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3816 + }, + { + "name": "poisonSusceptibility", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3872 + }, + { + "name": "sneakAttack", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3928 + }, + { + "name": "mercilessAttack", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 3984 + }, + { + "name": "ambushAttack", + "type_name": "keen::ds::FbUiLocaAttributeInfo", + "type_hash": 4049598148, + "data_offset": 4040 + }, + { + "name": "numberExplanation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4096 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaPerkAttributes", + "type_name_2": "FbUiLocaPerkAttributes", + "qualified_name": "keen::ds::FbUiLocaPerkAttributes", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 4228233965, + "hash2": 1098232147, + "struct_fields": [ + { + "name": "damagePhysicalCut", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "damagePhysicalPierce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "damagePhysicalBlunt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "damagePoison", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "damageMagicalFire", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "damageMagicalIce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "damageMagicalFog", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "damageMagicalLightning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "resistancePhysicalCut", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "resistancePhysicalPierce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "resistancePhysicalBlunt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "resistanceMagicalFire", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "resistanceMagicalIce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "resistanceMagicalFog", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "resistanceMagicalLightning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiNpcNames", + "type_name_2": "FbUiNpcNames", + "qualified_name": "keen::ds::FbUiNpcNames", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4104605188, + "hash2": 4221530313, + "struct_fields": [ + { + "name": "flame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "alchemist", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "blacksmith", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "hunter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "farmer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "carpenter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "cryptKeeper", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "bard", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaRpgTerms", + "type_name_2": "FbUiLocaRpgTerms", + "qualified_name": "keen::ds::FbUiLocaRpgTerms", + "referenced_type_name": null, + "class_size": 5536, + "fields_count": 69, + "primitive_type": "Struct", + "hash1": 1189435642, + "hash2": 3869885163, + "struct_fields": [ + { + "name": "npcNames", + "type_name": "keen::ds::FbUiNpcNames", + "type_hash": 4104605188, + "data_offset": 0 + }, + { + "name": "entityLevel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "genericLevelWithArgument", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "characterLevel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "experiencePoints", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "experiencePointsShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "experiencePointsRequired", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "attributes", + "type_name": "keen::ds::FbUiLocaAttributes", + "type_hash": 2450478737, + "data_offset": 224 + }, + { + "name": "perkAttributes", + "type_name": "keen::ds::FbUiLocaPerkAttributes", + "type_hash": 4228233965, + "data_offset": 4336 + }, + { + "name": "durabilityGeneric", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4576 + }, + { + "name": "damagePhysicalCut", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4592 + }, + { + "name": "damagePhysicalPierce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4608 + }, + { + "name": "damagePhysicalBlunt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4624 + }, + { + "name": "damageMagicalFire", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4640 + }, + { + "name": "damageMagicalIce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4656 + }, + { + "name": "damageMagicalFog", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4672 + }, + { + "name": "damageMagicalLightning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4688 + }, + { + "name": "damageHealing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4704 + }, + { + "name": "damagePoison", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4720 + }, + { + "name": "bowDamageBase", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4736 + }, + { + "name": "bowDamageNoBonus", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4752 + }, + { + "name": "bowDamagePhysicalCut", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4768 + }, + { + "name": "bowDamagePhysicalPierce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4784 + }, + { + "name": "bowDamagePhysicalBlunt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4800 + }, + { + "name": "bowDamageMagicalFire", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4816 + }, + { + "name": "bowDamageMagicalIce", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4832 + }, + { + "name": "bowDamageMagicalFog", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4848 + }, + { + "name": "bowDamageMagicalLightning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4864 + }, + { + "name": "bowDamageHealing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4880 + }, + { + "name": "bowDamagePoison", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4896 + }, + { + "name": "armorResistanceCutShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4912 + }, + { + "name": "armorResistancePierceShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4928 + }, + { + "name": "armorResistanceBluntShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4944 + }, + { + "name": "armorResistanceFireShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4960 + }, + { + "name": "armorResistanceIceShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4976 + }, + { + "name": "armorResistanceFogShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4992 + }, + { + "name": "armorResistanceLightningShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5008 + }, + { + "name": "rarityUndefined", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5024 + }, + { + "name": "rarityCommon", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5040 + }, + { + "name": "rarityUncommon", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5056 + }, + { + "name": "rarityRare", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5072 + }, + { + "name": "rarityEpic", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5088 + }, + { + "name": "rarityLegendary", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5104 + }, + { + "name": "rarityVanity", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5120 + }, + { + "name": "restedBuffNone", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5136 + }, + { + "name": "restedBuffCharging", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5152 + }, + { + "name": "restedBuffActive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5168 + }, + { + "name": "restedBuffGenericDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5184 + }, + { + "name": "comfortLevel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5200 + }, + { + "name": "comfort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5216 + }, + { + "name": "statusSitting", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5232 + }, + { + "name": "statusSheltered", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5248 + }, + { + "name": "statusSleeping", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5264 + }, + { + "name": "statusInCombat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5280 + }, + { + "name": "statusWarmth", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5296 + }, + { + "name": "statusShelteredBed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5312 + }, + { + "name": "statusSittingDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5328 + }, + { + "name": "statusShelteredDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5344 + }, + { + "name": "statusSleepingDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5360 + }, + { + "name": "statusWarmthDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5376 + }, + { + "name": "statusSittingNot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5392 + }, + { + "name": "statusShelteredNot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5408 + }, + { + "name": "statusInCombatNot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5424 + }, + { + "name": "statusWarmthNot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5440 + }, + { + "name": "foodTypeAlreadyActive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5456 + }, + { + "name": "foodSlotsAllOccupied", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5472 + }, + { + "name": "npcProps", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5488 + }, + { + "name": "npcUndiscoveredName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5504 + }, + { + "name": "npcUndiscoveredDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 5520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudBuildFeedback", + "type_name_2": "FbUiLocaHudBuildFeedback", + "qualified_name": "keen::ds::FbUiLocaHudBuildFeedback", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1101342436, + "hash2": 1734216995, + "struct_fields": [ + { + "name": "cursorOutsideBuildZone", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "cursorInsideFogZone", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "cursorTooFarAway", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "cursorInsideLenientBuildInhibitor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "cursorInsideStrictBuildInhibitor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "maxAltarCountReached", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "maxAltarCountUpgradeHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "maxAltarCountLimitHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "maxTameAnimalCountReached", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "enemiesNearby", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "areaOccupied", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "invalidSurfaceNormal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "invalidCursorVoxelMaterial", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "missingMaterials", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "noPermission", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "assignNpcToBed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "hintNpcNotPlaced", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "bedUnoccupied", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "bedOccupiedBy", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "bedTooFarAway", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "useStaffToAssignBed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudItemUseMessages", + "type_name_2": "FbUiLocaHudItemUseMessages", + "qualified_name": "keen::ds::FbUiLocaHudItemUseMessages", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3865356733, + "hash2": 1203173705, + "struct_fields": [ + { + "name": "hookshotUseFail", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "doorOpenFail", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "gliderUseFail", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "gliderUseHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "itemMovedToEquipmentSlotByUsing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "itemFailedInsufficientStamina", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHitEventLabels", + "type_name_2": "FbUiLocaHitEventLabels", + "qualified_name": "keen::ds::FbUiLocaHitEventLabels", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1896763636, + "hash2": 2037439224, + "struct_fields": [ + { + "name": "crit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "backstab", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "weakspot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "immune", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "ineffective", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "resist", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaTutorialHints", + "type_name_2": "FbUiLocaTutorialHints", + "qualified_name": "keen::ds::FbUiLocaTutorialHints", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 157933804, + "hash2": 3587690911, + "struct_fields": [ + { + "name": "quickbuilderMaterialHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "quickbuilderShapeHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "quickbuilderTabsHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "quickbuilderShapeSelectionHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "cookingTutorialHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "craftingRecipeList", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "craftingRecipeCategories", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "craftingRecipeSeries", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "craftingIngredients", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "craftingPinRecipe", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "craftingTabs", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "npcCraftingTabs", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "enhancingItemList", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "enhancingPerks", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "enhancingCurrency", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "factoryInventory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "factoryRecipes", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "factoryFillIngredients", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "factoryInputHints", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "factoryStart", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "actionbarTutorial1", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "actionbarTutorial2", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "summoningStaffTutorialNpcTypes", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "summoningStaffTutorialPlacing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "summoningStaffRoamingRange", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "flameUpgradeHappyNpc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "nextHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudXpSources", + "type_name_2": "FbUiLocaHudXpSources", + "qualified_name": "keen::ds::FbUiLocaHudXpSources", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3106369837, + "hash2": 3183000238, + "struct_fields": [ + { + "name": "xpSourceQuest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "xpSourceCombat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "xpSourceLore", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "xpSourceExploration", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "xpSourceMining", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudHappinessDialog", + "type_name_2": "FbUiLocaHudHappinessDialog", + "qualified_name": "keen::ds::FbUiLocaHudHappinessDialog", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4139900666, + "hash2": 216792487, + "struct_fields": [ + { + "name": "missingBedDialogText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "missingBedDialogLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "missingShelterDialogText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "missingShelterDialogLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "missingFoodDialogText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "missingFoodDialogLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHudTemperature", + "type_name_2": "FbUiLocaHudTemperature", + "qualified_name": "keen::ds::FbUiLocaHudTemperature", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 209617057, + "hash2": 723094553, + "struct_fields": [ + { + "name": "resistanceBuffLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "resistanceLowWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "deadlyDebuffLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "deadlyDebuffWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaHud", + "type_name_2": "FbUiLocaHud", + "qualified_name": "keen::ds::FbUiLocaHud", + "referenced_type_name": null, + "class_size": 2752, + "fields_count": 101, + "primitive_type": "Struct", + "hash1": 894190113, + "hash2": 704556719, + "struct_fields": [ + { + "name": "buildFeedback", + "type_name": "keen::ds::FbUiLocaHudBuildFeedback", + "type_hash": 1101342436, + "data_offset": 0 + }, + { + "name": "itemUseMessages", + "type_name": "keen::ds::FbUiLocaHudItemUseMessages", + "type_hash": 3865356733, + "data_offset": 336 + }, + { + "name": "hitEventLabels", + "type_name": "keen::ds::FbUiLocaHitEventLabels", + "type_hash": 1896763636, + "data_offset": 432 + }, + { + "name": "tutorialHints", + "type_name": "keen::ds::FbUiLocaTutorialHints", + "type_hash": 157933804, + "data_offset": 528 + }, + { + "name": "xpSources", + "type_name": "keen::ds::FbUiLocaHudXpSources", + "type_hash": 3106369837, + "data_offset": 960 + }, + { + "name": "missingHappinessDialogOptions", + "type_name": "keen::ds::FbUiLocaHudHappinessDialog", + "type_hash": 4139900666, + "data_offset": 1040 + }, + { + "name": "nightSpeed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1136 + }, + { + "name": "freezing", + "type_name": "keen::ds::FbUiLocaHudTemperature", + "type_hash": 209617057, + "data_offset": 1152 + }, + { + "name": "extremeHeat", + "type_name": "keen::ds::FbUiLocaHudTemperature", + "type_hash": 209617057, + "data_offset": 1216 + }, + { + "name": "gameProgressSummaryTitle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1280 + }, + { + "name": "ammoLabelNoneEquipped", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1296 + }, + { + "name": "quickBuilderPreUseHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1312 + }, + { + "name": "buildTooltipQuickBuilderInit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1328 + }, + { + "name": "buildTooltipChangeBlueprint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1344 + }, + { + "name": "buildTooltipChangeShovelAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1360 + }, + { + "name": "buildTooltipChangeNpc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1376 + }, + { + "name": "buildTooltipChangeMaterial", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1392 + }, + { + "name": "buildTooltipRotate90", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1408 + }, + { + "name": "buildTooltipRotate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1424 + }, + { + "name": "buildTooltipAreaActions", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1440 + }, + { + "name": "buildTooltipUseSnapping", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1456 + }, + { + "name": "cursorHintSnappingActive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1472 + }, + { + "name": "cursorHintSnappingReady", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1488 + }, + { + "name": "cursorHintSnappingOff", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1504 + }, + { + "name": "buildTooltipMultiToolMaterialHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1520 + }, + { + "name": "buildTooltipMultiToolMaterialActionLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1536 + }, + { + "name": "leaveNpcConversation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1552 + }, + { + "name": "messageFastTravelUnlock", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1568 + }, + { + "name": "messageNpcFound", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1584 + }, + { + "name": "messageSpecialLootAcquired", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1600 + }, + { + "name": "messageLevelUp", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1616 + }, + { + "name": "messageFlameLevelUp", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1632 + }, + { + "name": "messageAllItemsRepaired", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1648 + }, + { + "name": "messagePinnedRecipeReady", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1664 + }, + { + "name": "messageMagicBarrierUnlocked", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1680 + }, + { + "name": "messageDoorUnlocked", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1696 + }, + { + "name": "messageSecretDoorUnlocked", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1712 + }, + { + "name": "messageNewTwitchDropUnlocked", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1728 + }, + { + "name": "knowledgeNotificationGeneral", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1744 + }, + { + "name": "knowledgeNotificationMap", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1760 + }, + { + "name": "knowledgeNotificationJournal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1776 + }, + { + "name": "knowledgeNotificationNewTutorial", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1792 + }, + { + "name": "knowledgeNotificationNewLoreDocument", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1808 + }, + { + "name": "knowledgeNotificationNewLorePage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1824 + }, + { + "name": "knowledgeNotificationNewQuest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1840 + }, + { + "name": "knowledgeNotificationUpdatedQuest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1856 + }, + { + "name": "knowledgeNotificationJournalCompleted", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1872 + }, + { + "name": "knowledgeNotificationCrafting", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1888 + }, + { + "name": "knowledgeNotificationIngredientKnowledge", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1904 + }, + { + "name": "knowledgeNotificationNpcDialog", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1920 + }, + { + "name": "priorityJournalEntryPrompt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1936 + }, + { + "name": "priorityJournalEntryPromptNoBinding", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1952 + }, + { + "name": "priorityJournalLocationReached", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1968 + }, + { + "name": "interactionItemRequirementHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1984 + }, + { + "name": "backpackFullMessage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2000 + }, + { + "name": "storageFullMessage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2016 + }, + { + "name": "compassWaypointReached", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2032 + }, + { + "name": "compassWaypointReachedAbove", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2048 + }, + { + "name": "compassWaypointReachedBelow", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2064 + }, + { + "name": "compassInFog", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2080 + }, + { + "name": "compassInDeadlyFog", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2096 + }, + { + "name": "compassEarlyFogWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2112 + }, + { + "name": "compassFogWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2128 + }, + { + "name": "staminaMax", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2144 + }, + { + "name": "restedBuffConditionHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2160 + }, + { + "name": "markersAdded", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2176 + }, + { + "name": "entriesLogged", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2192 + }, + { + "name": "entriesCompleted", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2208 + }, + { + "name": "oneRecipeLearned", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2224 + }, + { + "name": "recipesLearned", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2240 + }, + { + "name": "recipesLearnedPersonal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2256 + }, + { + "name": "readyToCraft", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2272 + }, + { + "name": "readyToCraftPinned", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2288 + }, + { + "name": "loading", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2304 + }, + { + "name": "reviving", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2320 + }, + { + "name": "beingRevived", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2336 + }, + { + "name": "canBeRevived", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2352 + }, + { + "name": "craftableAmount", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2368 + }, + { + "name": "emptyHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2384 + }, + { + "name": "inventoryCount", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2400 + }, + { + "name": "serverPerformanceBad", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2416 + }, + { + "name": "serverPerformanceBadHost", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2432 + }, + { + "name": "serverPerformanceBadDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2448 + }, + { + "name": "serverPerformanceBadDescHost", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2464 + }, + { + "name": "serverPerformanceCritical", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2480 + }, + { + "name": "serverPerformanceCriticalHost", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2496 + }, + { + "name": "serverPerformanceCriticalDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2512 + }, + { + "name": "serverPerformanceCriticalDescHost", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2528 + }, + { + "name": "currentServerPerformance", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2544 + }, + { + "name": "currentServerPerformanceHost", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2560 + }, + { + "name": "flameUpgradeBaseLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2576 + }, + { + "name": "personalProgressionModeHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2592 + }, + { + "name": "allMissedWorldQuestsCompletedMessage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2608 + }, + { + "name": "interactionNoPermission", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2624 + }, + { + "name": "itemUseNoPermission", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2640 + }, + { + "name": "currentSongPlayingHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2656 + }, + { + "name": "tamingTutorialTitle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2672 + }, + { + "name": "tamingTutorialStep1", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2688 + }, + { + "name": "tamingTutorialStep2", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2704 + }, + { + "name": "tamingTutorialStep3", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2720 + }, + { + "name": "tamingTutorialStep4", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2736 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuFlameAltar", + "type_name_2": "FbUiLocaMenuFlameAltar", + "qualified_name": "keen::ds::FbUiLocaMenuFlameAltar", + "referenced_type_name": null, + "class_size": 640, + "fields_count": 40, + "primitive_type": "Struct", + "hash1": 2723430054, + "hash2": 2748247971, + "struct_fields": [ + { + "name": "menuHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "altarLevelLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "altarRangeLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "motherflameLevelLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "lastPlayed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "altarRange", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "flameUpgradeMaxAltarCountLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "flameUpgradeAttributeBonusLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "flameUpgradeFogResistanceLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "flameUpgradeFogResistanceLevel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "flameUpgradeFogResistanceDuration", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "flameCodexDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "flameCodexUpgradeHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "tileAltarUpgradeMainText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "tileAltarUpgradeSecondaryText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "tileMotherflameUpgradeMainText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "tileMotherflameUpgradeSecondaryText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "tileReviveNpcMainText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "tileReviveNpcSecondaryText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "tileRespecMainText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "tileRespecSecondaryText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "respecDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "actionRespecSkills", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "actionDeactivate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "actionDeactivateSecondaryText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "actionReactivate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "deactivateAltarDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + }, + { + "name": "inactiveStateDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "reactivationProhibited", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "altarUpgradeRecipeHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "motherflameUpgradeRecipeHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "actionAltarUpgrade", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "actionMotherflameUpgrade", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "npcReviveSubheader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "deactivationExplanation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "noPermissionHintGeneral", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "noAltarUpgradePermission", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "noFlameUpgradePermission", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "noExtinguishAltarPermission", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "shelteredBedsRequirement", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuPregame", + "type_name_2": "FbUiLocaMenuPregame", + "qualified_name": "keen::ds::FbUiLocaMenuPregame", + "referenced_type_name": null, + "class_size": 2288, + "fields_count": 143, + "primitive_type": "Struct", + "hash1": 2902391258, + "hash2": 201936092, + "struct_fields": [ + { + "name": "mainMenuPlay", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "mainMenuJoinSessionHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "mainMenuInviteHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "mainMenuInviteAccept", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "mainMenuInviteDecline", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "mainMenuJoinSessionFallbackName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "mainMenuCredits", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "mainMenuQuit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "mainMenuGPUDriverWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "thankYouClosedBeta", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "steamCallToAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "discordCallToAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "characterSelectionEnterVerb", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "characterSelectionHeaderCreate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "characterSelectionHeaderSelect", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "characterSelectionEmptySlotHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "characterDeletionConfirmHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "characterBackupRestoreDialogHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "characterBackupRestoreDataLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "characterBackupRestoreButtonLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "playSelectionHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "playSelectionRecent", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "playSelectionJoin", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "playSelectionJoinDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "playSelectionJoinHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "playSelectionHostPublic", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "playSelectionHostPublicDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + }, + { + "name": "playSelectionHostPublicHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "playSelectionPrivate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "playSelectionPrivateDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "playSelectionPrivateHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "party", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "filterFriends", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "filterDedicatedServer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "filterEmpty", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "filterName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "filterPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "filterFreeSlots", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "filterNameHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "sessionSearchEmptyResult", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + }, + { + "name": "sessionSearchOngoing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 640 + }, + { + "name": "errorServerNotFound", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 656 + }, + { + "name": "errorServerNotFoundDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + }, + { + "name": "serverFound", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 688 + }, + { + "name": "noSessionsMatchingFilter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 704 + }, + { + "name": "enterGridSelection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 720 + }, + { + "name": "playVoiceSample", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 736 + }, + { + "name": "customizationOptionNone", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 752 + }, + { + "name": "customizationBodyType", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 768 + }, + { + "name": "customizationPreset", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 784 + }, + { + "name": "customizationSkinColor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 800 + }, + { + "name": "customizationEyeColor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 816 + }, + { + "name": "customizationEyeBrowColor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 832 + }, + { + "name": "customizationHair", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 848 + }, + { + "name": "customizationHairColor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 864 + }, + { + "name": "customizationBeard", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 880 + }, + { + "name": "customizationBeardColor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 896 + }, + { + "name": "customizationVoice", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 912 + }, + { + "name": "customizationName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 928 + }, + { + "name": "customizationCharacter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 944 + }, + { + "name": "customizationNameAndFinish", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 960 + }, + { + "name": "customizationResetPreset", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 976 + }, + { + "name": "customizationFinish", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 992 + }, + { + "name": "refresh", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1008 + }, + { + "name": "newGame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1024 + }, + { + "name": "unnamed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1040 + }, + { + "name": "create", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1056 + }, + { + "name": "edit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1072 + }, + { + "name": "configure", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1088 + }, + { + "name": "myWorld", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1104 + }, + { + "name": "editWorldSave", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1120 + }, + { + "name": "configureWorldSave", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1136 + }, + { + "name": "deleteWorld", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1152 + }, + { + "name": "deleteWorldDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1168 + }, + { + "name": "maxWorldCountReached", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1184 + }, + { + "name": "worldSaveNameTitle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1200 + }, + { + "name": "gameSettings", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1216 + }, + { + "name": "sessionVisibility", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1232 + }, + { + "name": "joinGame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1248 + }, + { + "name": "publicGame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1264 + }, + { + "name": "privateGame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1280 + }, + { + "name": "sessionVisibiltyFriends", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1296 + }, + { + "name": "sessionVisibiltyPublic", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1312 + }, + { + "name": "hidePasswordInput", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1328 + }, + { + "name": "setPasswordProtection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1344 + }, + { + "name": "hostHintHasNoPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1360 + }, + { + "name": "hostSettings", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1376 + }, + { + "name": "hostStartDialogHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1392 + }, + { + "name": "hostStartButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1408 + }, + { + "name": "worldNameEmptyProhibited", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1424 + }, + { + "name": "noPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1440 + }, + { + "name": "sessionPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1456 + }, + { + "name": "rolePassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1472 + }, + { + "name": "setPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1488 + }, + { + "name": "removePassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1504 + }, + { + "name": "enterPasswordHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1520 + }, + { + "name": "sessionSize", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1536 + }, + { + "name": "maxPlayerCount", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1552 + }, + { + "name": "serverFilter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1568 + }, + { + "name": "availableServer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1584 + }, + { + "name": "serverName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1600 + }, + { + "name": "hostedBy", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1616 + }, + { + "name": "currentSessionSize", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1632 + }, + { + "name": "sessionSizeWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1648 + }, + { + "name": "enterPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1664 + }, + { + "name": "searchIPv4", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1680 + }, + { + "name": "addToFavourite", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1696 + }, + { + "name": "renameCharacter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1712 + }, + { + "name": "legalLine", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1728 + }, + { + "name": "gportalLogoDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1744 + }, + { + "name": "gportalLink", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1760 + }, + { + "name": "versionText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1776 + }, + { + "name": "preload", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1792 + }, + { + "name": "compilingShaders", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1808 + }, + { + "name": "addServerCaption", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1824 + }, + { + "name": "serverDidNotResponde", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1840 + }, + { + "name": "serverDidResponde", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1856 + }, + { + "name": "inviteBuildVersionWarningLocalOld", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1872 + }, + { + "name": "inviteBuildVersionWarningInviteOld", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1888 + }, + { + "name": "serverSettingsRolesHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1904 + }, + { + "name": "serverSettingsRolesExplanation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1920 + }, + { + "name": "serverSettingsSelectedSavegameHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1936 + }, + { + "name": "serverSettingsRoleDisabled", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1952 + }, + { + "name": "serverSettingsRolePublic", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1968 + }, + { + "name": "serverSettingsAllRolesDisabledWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1984 + }, + { + "name": "serverRolePermissionsHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2000 + }, + { + "name": "serverRoleSupressed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2016 + }, + { + "name": "serverRolesInvalidHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2032 + }, + { + "name": "warningHostSettingsNotConfigured", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2048 + }, + { + "name": "warningServerRoleSupressed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2064 + }, + { + "name": "warningServerRoleSamePassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2080 + }, + { + "name": "warningPublicServerRole", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2096 + }, + { + "name": "warningAdminPasswordRequired", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2112 + }, + { + "name": "warningFriendPasswordRequired", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2128 + }, + { + "name": "warningNoPasswordPublic", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2144 + }, + { + "name": "forceAllowPublicFriendRole", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2160 + }, + { + "name": "rolePasswordHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2176 + }, + { + "name": "changePassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2192 + }, + { + "name": "publicRole", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2208 + }, + { + "name": "protectedRole", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2224 + }, + { + "name": "disabled", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2240 + }, + { + "name": "joinWithoutPw", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2256 + }, + { + "name": "optionalPwHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2272 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuSystem", + "type_name_2": "FbUiLocaMenuSystem", + "qualified_name": "keen::ds::FbUiLocaMenuSystem", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 1663081534, + "hash2": 612743466, + "struct_fields": [ + { + "name": "returnToGame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "returnToPregame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "showServerRole", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "quitToDesktop", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "networkQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "latencyValue", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "shaderCompileProgress", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "feedbackPopupHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "feedbackIssue", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "feedbackIssueLink", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "bugReport", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "bugReportLink", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "discordServer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "discordServerLink", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "connectTwitch", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "connectTwitchLink", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "steamWishlist", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "steamWishlistLink", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "watermarkLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "watermarkBetaLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "watermarkSecondLine", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "watermarkF1Hint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "hours", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "minutes", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "gamePaused", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuBindingsReset", + "type_name_2": "FbUiLocaMenuBindingsReset", + "qualified_name": "keen::ds::FbUiLocaMenuBindingsReset", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 876246964, + "hash2": 694404095, + "struct_fields": [ + { + "name": "resetHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "resetDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "presetChangeHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "presetChangeDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "presetChangeConfirmButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLongDocParagraph", + "type_name_2": "FbUiLongDocParagraph", + "qualified_name": "keen::ds::FbUiLongDocParagraph", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1927141343, + "hash2": 2582652213, + "struct_fields": [ + { + "name": "locaTag", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "hyperLink", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaTagDifficultySettings", + "type_name_2": "FbUiLocaTagDifficultySettings", + "qualified_name": "keen::ds::FbUiLocaTagDifficultySettings", + "referenced_type_name": null, + "class_size": 1536, + "fields_count": 96, + "primitive_type": "Struct", + "hash1": 196853876, + "hash2": 3593596556, + "struct_fields": [ + { + "name": "presetDefault", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "presetDefaultDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "presetSurvivalist", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "presetSurvivalistDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "presetBuilders", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "presetBuildersDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "presetCombatChallenge", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "presetCombatChallengeDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "presetCustom", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "presetCustomDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "enemySettingsHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "enemyDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "enemyDamageDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "enemyHealth", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "enemyHealthDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "enemyStamina", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "enemyStaminaDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "enemyPerceptionRange", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "enemyPerceptionRangeDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "enemyAttackSimultaneous", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "enemyAttackSimultaneousDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "enemyAttackFrequency", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "enemyAttackFrequencyDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "pacifyEnemies", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "pacifyEnemiesDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "enemySpawnerAmount", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "enemySpawnerAmountDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + }, + { + "name": "enemySpawnerAmountFew", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "enemySpawnerAmountNormal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "enemySpawnerAmountMore", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "enemySpawnerAmountMany", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "bossHealth", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "bossHealthDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "bossDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "bossDamageDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "playerHealth", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "playerHealthDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "playerMana", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "playerManaDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "playerStamina", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + }, + { + "name": "playerStaminaDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 640 + }, + { + "name": "otherSettingsHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 656 + }, + { + "name": "xpGainMining", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + }, + { + "name": "xpGainMiningDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 688 + }, + { + "name": "xpGainQuests", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 704 + }, + { + "name": "xpGainQuestsDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 720 + }, + { + "name": "xpGainCombat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 736 + }, + { + "name": "xpGainCombatDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 752 + }, + { + "name": "shroudTime", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 768 + }, + { + "name": "shroudTimeDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 784 + }, + { + "name": "productionSpeed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 800 + }, + { + "name": "productionSpeedDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 816 + }, + { + "name": "plantGrowSpeed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 832 + }, + { + "name": "plantGrowSpeedDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 848 + }, + { + "name": "weaponUpgradeCosts", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 864 + }, + { + "name": "weaponUpgradeCostsDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 880 + }, + { + "name": "perkUpgradeRecyclingFactor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 896 + }, + { + "name": "perkUpgradeRecyclingFactorDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 912 + }, + { + "name": "backpackDeathBehaviour", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 928 + }, + { + "name": "backpackDeathBehaviourDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 944 + }, + { + "name": "backpackDeathBehaviourKeepAll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 960 + }, + { + "name": "backpackDeathBehaviourDefault", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 976 + }, + { + "name": "backpackDeathBehaviourLoseAll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 992 + }, + { + "name": "durabilityEnabled", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1008 + }, + { + "name": "durabilityEnabledDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1024 + }, + { + "name": "durabilityScaling", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1040 + }, + { + "name": "durabilityScalingDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1056 + }, + { + "name": "worldRefreshTime", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1072 + }, + { + "name": "worldRefreshTimeDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1088 + }, + { + "name": "dayDuration", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1104 + }, + { + "name": "dayDurationDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1120 + }, + { + "name": "nightDuration", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1136 + }, + { + "name": "nightDurationDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1152 + }, + { + "name": "foodDuration", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1168 + }, + { + "name": "foodDurationDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1184 + }, + { + "name": "foodSurvival", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1200 + }, + { + "name": "foodSurvivalDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1216 + }, + { + "name": "starvingTime", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1232 + }, + { + "name": "starvingTimeDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1248 + }, + { + "name": "weatherFrequency", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1264 + }, + { + "name": "weatherFrequencyDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1280 + }, + { + "name": "enableGliderTurbulences", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1296 + }, + { + "name": "enableGliderTurbulencesDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1312 + }, + { + "name": "tamingStartleRepercussion", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1328 + }, + { + "name": "tamingStartleRepercussionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1344 + }, + { + "name": "bodyHeat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1360 + }, + { + "name": "bodyHeatDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1376 + }, + { + "name": "miningDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1392 + }, + { + "name": "miningDamageDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1408 + }, + { + "name": "lootAmount", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1424 + }, + { + "name": "lootAmountDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1440 + }, + { + "name": "resourcesHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1456 + }, + { + "name": "xpModsHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1472 + }, + { + "name": "survivalHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1488 + }, + { + "name": "playerHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1504 + }, + { + "name": "selectedLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiLongDocParagraph[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiLongDocParagraph", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3607257148, + "hash2": 355338634, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuSettings", + "type_name_2": "FbUiLocaMenuSettings", + "qualified_name": "keen::ds::FbUiLocaMenuSettings", + "referenced_type_name": null, + "class_size": 4584, + "fields_count": 186, + "primitive_type": "Struct", + "hash1": 2154396594, + "hash2": 571193526, + "struct_fields": [ + { + "name": "tabGame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "tabDisplay", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "tabSound", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "tabAccessibility", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "tabControls", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "tabLegal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "privacyPolicyParagraphs", + "type_name": "keen::DsArray", + "type_hash": 3607257148, + "data_offset": 96 + }, + { + "name": "settingAuto", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 136 + }, + { + "name": "settingOff", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 152 + }, + { + "name": "settingOn", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 168 + }, + { + "name": "settingBoost", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 184 + }, + { + "name": "settingLowest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 200 + }, + { + "name": "settingLow", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 216 + }, + { + "name": "settingMedium", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 232 + }, + { + "name": "settingHigh", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 248 + }, + { + "name": "settingUltra", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 264 + }, + { + "name": "settingPerformance", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 280 + }, + { + "name": "settingBalance", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 296 + }, + { + "name": "settingQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 312 + }, + { + "name": "settingUltraQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 328 + }, + { + "name": "settingUltraPerformance", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 344 + }, + { + "name": "settingNative", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 360 + }, + { + "name": "settingRare", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 376 + }, + { + "name": "settingNormal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 392 + }, + { + "name": "settingOften", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 408 + }, + { + "name": "settingKeepProgress", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 424 + }, + { + "name": "settingLoseSomeProgress", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 440 + }, + { + "name": "settingLoseAllProgress", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 456 + }, + { + "name": "difficultyLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 472 + }, + { + "name": "difficultyEasy", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 488 + }, + { + "name": "difficultyDefault", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 504 + }, + { + "name": "difficultyHard", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 520 + }, + { + "name": "difficultyVeryHard", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 536 + }, + { + "name": "difficultyCustom", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 552 + }, + { + "name": "controlsSectionKeyboardMouse", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 568 + }, + { + "name": "controlsSectionGamepad", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 584 + }, + { + "name": "mouseCameraSmoothing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 600 + }, + { + "name": "cameraSensitivity", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 616 + }, + { + "name": "aimingSensitivity", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 632 + }, + { + "name": "cameraInversion", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 648 + }, + { + "name": "cameraInversionValueNone", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 664 + }, + { + "name": "cameraInversionValueX", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 680 + }, + { + "name": "cameraInversionValueY", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 696 + }, + { + "name": "cameraInversionValueXY", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 712 + }, + { + "name": "actionDirection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 728 + }, + { + "name": "actionDirectionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 744 + }, + { + "name": "cameraDirection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 760 + }, + { + "name": "characterDirection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 776 + }, + { + "name": "controlsKeyboardMouseBindingsButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 792 + }, + { + "name": "controlsGamepadBindingsButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 808 + }, + { + "name": "controlScheme", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 824 + }, + { + "name": "controlSchemePresetA", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 840 + }, + { + "name": "controlSchemePresetB", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 856 + }, + { + "name": "controlSchemeCustom", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 872 + }, + { + "name": "controlSchemeEdit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 888 + }, + { + "name": "controlSchemeCreate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 904 + }, + { + "name": "controlSchemeCreateDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 920 + }, + { + "name": "controlSchemeResetButton", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 936 + }, + { + "name": "controlSchemeResetDialog", + "type_name": "keen::ds::FbUiLocaMenuBindingsReset", + "type_hash": 876246964, + "data_offset": 952 + }, + { + "name": "bindingEntryChange", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1032 + }, + { + "name": "bindingEntryUndo", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1048 + }, + { + "name": "bindingEntryReset", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1064 + }, + { + "name": "bindingEntryDelete", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1080 + }, + { + "name": "bindingEntryCustomize", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1096 + }, + { + "name": "bindingEntryRemapPrompt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1112 + }, + { + "name": "warningHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1128 + }, + { + "name": "warningCriticalDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1144 + }, + { + "name": "warningRecommendedDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1160 + }, + { + "name": "warningContinueEdit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1176 + }, + { + "name": "warningUsePreset", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1192 + }, + { + "name": "warningUseIncompleteBindings", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1208 + }, + { + "name": "bindingCategoryMovements", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1224 + }, + { + "name": "bindingCategoryBasicActions", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1240 + }, + { + "name": "bindingCategoryCamera", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1256 + }, + { + "name": "bindingCategoryActionBar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1272 + }, + { + "name": "bindingCategoryCombat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1288 + }, + { + "name": "bindingCategoryShortcuts", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1304 + }, + { + "name": "bindingCategoryBuildings", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1320 + }, + { + "name": "bindingCategoryUserInterface", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1336 + }, + { + "name": "invalidBindingInput", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1352 + }, + { + "name": "useAnalogStickHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1368 + }, + { + "name": "searchKey", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1384 + }, + { + "name": "pressKey", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1400 + }, + { + "name": "inputKeyToSearch", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1416 + }, + { + "name": "clearSearch", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1432 + }, + { + "name": "volumeMaster", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1448 + }, + { + "name": "volumeMusic", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1464 + }, + { + "name": "volumeUi", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1480 + }, + { + "name": "volumeGame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1496 + }, + { + "name": "volumeVoices", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1512 + }, + { + "name": "audioReverb", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1528 + }, + { + "name": "muteInBackground", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1544 + }, + { + "name": "monitor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1560 + }, + { + "name": "displayMode", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1576 + }, + { + "name": "windowed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1592 + }, + { + "name": "fullscreen", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1608 + }, + { + "name": "resolution", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1624 + }, + { + "name": "renderScale", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1640 + }, + { + "name": "vsync", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1656 + }, + { + "name": "sleepInBackground", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1672 + }, + { + "name": "pointLightShadows", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1688 + }, + { + "name": "fov", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1704 + }, + { + "name": "brightness", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1720 + }, + { + "name": "gamma", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1736 + }, + { + "name": "contrast", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1752 + }, + { + "name": "sharpness", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1768 + }, + { + "name": "quality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1784 + }, + { + "name": "qualityPreset", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1800 + }, + { + "name": "custom", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1816 + }, + { + "name": "antialiasing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1832 + }, + { + "name": "shadowQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1848 + }, + { + "name": "contactShadows", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1864 + }, + { + "name": "fsr2Quality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1880 + }, + { + "name": "fsr3Quality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1896 + }, + { + "name": "dlssQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1912 + }, + { + "name": "nvReflexQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1928 + }, + { + "name": "reflections", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1944 + }, + { + "name": "fogQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1960 + }, + { + "name": "volumetricShadowQuality", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1976 + }, + { + "name": "textureResolution", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1992 + }, + { + "name": "textureFiltering", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2008 + }, + { + "name": "ssao", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2024 + }, + { + "name": "distantObjects", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2040 + }, + { + "name": "decoObjects", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2056 + }, + { + "name": "detailScattering", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2072 + }, + { + "name": "voxelMeshing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2088 + }, + { + "name": "tessellation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2104 + }, + { + "name": "indirectLighting", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2120 + }, + { + "name": "antialiasingFxaa", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2136 + }, + { + "name": "antialiasingFsr2", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2152 + }, + { + "name": "antialiasingFsr3", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2168 + }, + { + "name": "antialiasingDlss", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2184 + }, + { + "name": "antialiasingDlaa", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2200 + }, + { + "name": "language", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2216 + }, + { + "name": "resolutionValue", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2232 + }, + { + "name": "nativeResolutionValue", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2248 + }, + { + "name": "vsyncIntervalValue", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2264 + }, + { + "name": "renderScaleDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2280 + }, + { + "name": "antialiasingDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2296 + }, + { + "name": "fsr2Description", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2312 + }, + { + "name": "fsr3Description", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2328 + }, + { + "name": "dlssDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2344 + }, + { + "name": "nvReflexDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2360 + }, + { + "name": "shadowsDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2376 + }, + { + "name": "contactShadowsDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2392 + }, + { + "name": "reflectionsDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2408 + }, + { + "name": "fogQualityDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2424 + }, + { + "name": "volShadowDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2440 + }, + { + "name": "ssaoDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2456 + }, + { + "name": "indirectLightingDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2472 + }, + { + "name": "useCharacterNameDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2488 + }, + { + "name": "gameplaySectionCamera", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2504 + }, + { + "name": "gameplaySectionCombat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2520 + }, + { + "name": "gameplaySectionUI", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2536 + }, + { + "name": "cameraDistance", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2552 + }, + { + "name": "idleCameraMovement", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2568 + }, + { + "name": "idleCameraMovementDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2584 + }, + { + "name": "reduceDynamicCameraMovement", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2600 + }, + { + "name": "reduceDynamicCameraMovementDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2616 + }, + { + "name": "dynamicCameraGlider", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2632 + }, + { + "name": "dynamicCameraCombat", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2648 + }, + { + "name": "dynamicCameraGrapplingHook", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2664 + }, + { + "name": "dynamicCameraCampfire", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2680 + }, + { + "name": "screenShake", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2696 + }, + { + "name": "screenShakeStrength", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2712 + }, + { + "name": "displayDamageNumbers", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2728 + }, + { + "name": "displayDamagePropertyTexts", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2744 + }, + { + "name": "keepTargetLockWhenSprinting", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2760 + }, + { + "name": "autoChangeTargetLockOnKill", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2776 + }, + { + "name": "textScale", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2792 + }, + { + "name": "hudAspectRatioLimit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2808 + }, + { + "name": "hudAspectRatioLimitNone", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2824 + }, + { + "name": "hideHUD", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2840 + }, + { + "name": "showHUD", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2856 + }, + { + "name": "hideHelmet", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2872 + }, + { + "name": "hideGloves", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2888 + }, + { + "name": "showRarityIcons", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2904 + }, + { + "name": "useCharacterName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2920 + }, + { + "name": "confirmDeletionByRarity", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2936 + }, + { + "name": "confirmDeletionByRarityDescription", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2952 + }, + { + "name": "rarityAndAbove", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2968 + }, + { + "name": "hideSmallSpiders", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2984 + }, + { + "name": "controllerButtonStyle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 3000 + }, + { + "name": "controllerDiagramPageGeneral", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 3016 + }, + { + "name": "controllerDiagramPageBuilding", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 3032 + }, + { + "name": "difficulty", + "type_name": "keen::ds::FbUiLocaTagDifficultySettings", + "type_hash": 196853876, + "data_offset": 3048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiUserPermissions", + "type_name_2": "FbUiUserPermissions", + "qualified_name": "keen::ds::FbUiUserPermissions", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2540610302, + "hash2": 3203430225, + "struct_fields": [ + { + "name": "kickBanPermissionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "accessInventoriesPermissionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "editBasePermissionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "extendBasePermissionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenuJournal", + "type_name_2": "FbUiLocaMenuJournal", + "qualified_name": "keen::ds::FbUiLocaMenuJournal", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 999897302, + "hash2": 2820579528, + "struct_fields": [ + { + "name": "emptyMenuHintShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "emptyMenuHintLong", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaMenus", + "type_name_2": "FbUiLocaMenus", + "qualified_name": "keen::ds::FbUiLocaMenus", + "referenced_type_name": null, + "class_size": 9448, + "fields_count": 96, + "primitive_type": "Struct", + "hash1": 786417764, + "hash2": 3098304436, + "struct_fields": [ + { + "name": "pregame", + "type_name": "keen::ds::FbUiLocaMenuPregame", + "type_hash": 2902391258, + "data_offset": 0 + }, + { + "name": "system", + "type_name": "keen::ds::FbUiLocaMenuSystem", + "type_hash": 1663081534, + "data_offset": 2288 + }, + { + "name": "settings", + "type_name": "keen::ds::FbUiLocaMenuSettings", + "type_hash": 2154396594, + "data_offset": 2688 + }, + { + "name": "userPermissions", + "type_name": "keen::ds::FbUiUserPermissions", + "type_hash": 2540610302, + "data_offset": 7272 + }, + { + "name": "flameAltar", + "type_name": "keen::ds::FbUiLocaMenuFlameAltar", + "type_hash": 2723430054, + "data_offset": 7336 + }, + { + "name": "journal", + "type_name": "keen::ds::FbUiLocaMenuJournal", + "type_hash": 999897302, + "data_offset": 7976 + }, + { + "name": "menuHeaderFallbackCollection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8008 + }, + { + "name": "menuHeaderFallbackFoodStorage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8024 + }, + { + "name": "menuHeaderSkillTree", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8040 + }, + { + "name": "menuHeaderCharacterCustomization", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8056 + }, + { + "name": "menuHeaderCharacterCreation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8072 + }, + { + "name": "menuHeaderStorageChest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8088 + }, + { + "name": "menuHeaderLootEntity", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8104 + }, + { + "name": "menuHeaderSystem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8120 + }, + { + "name": "bpMenuGettingReady", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8136 + }, + { + "name": "bpMenuSectionActiveBlueprint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8152 + }, + { + "name": "bpMenuSectionAvailableBlueprints", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8168 + }, + { + "name": "bpMenuSectionMaterials", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8184 + }, + { + "name": "bpMenuShapeBarExpansionHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8200 + }, + { + "name": "bpMenuSubCategorySingleBlock", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8216 + }, + { + "name": "bpMenuSubCategoryNonRoof", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8232 + }, + { + "name": "bpMenuSubCategoryNonRoof_4m", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8248 + }, + { + "name": "bpMenuSubCategoryRoof", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8264 + }, + { + "name": "bpMenuSubCategoryRoof_4m", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8280 + }, + { + "name": "bpMenuSubCategoryTerrain", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8296 + }, + { + "name": "terraformerMenuSectionActiveTool", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8312 + }, + { + "name": "terraformerMenuSectionAvailableTool", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8328 + }, + { + "name": "npcSideMenuSectionActiveTool", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8344 + }, + { + "name": "npcSideMenuSectionAvailableTool", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8360 + }, + { + "name": "npcSideMenuNoAvailableNpcs", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8376 + }, + { + "name": "npcSideMenuRoamingRange", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8392 + }, + { + "name": "npcSideMenuRoamingRangeLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8408 + }, + { + "name": "dialogNoChatterHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8424 + }, + { + "name": "repairNotAvailableHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8440 + }, + { + "name": "craftingTabManual", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8456 + }, + { + "name": "craftingTabRepair", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8472 + }, + { + "name": "craftingTabRecycling", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8488 + }, + { + "name": "craftingTabUpgrade", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8504 + }, + { + "name": "playerEntryFallback", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8520 + }, + { + "name": "itemPerksHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8536 + }, + { + "name": "itemPerksAttributeGeneric", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8552 + }, + { + "name": "flame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8568 + }, + { + "name": "theFlame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8584 + }, + { + "name": "activeAltars", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8600 + }, + { + "name": "mapNpcUnplacedHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8616 + }, + { + "name": "attributeValueExplainShort", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8632 + }, + { + "name": "attributeValueExplainLong", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8648 + }, + { + "name": "resistanceAttributeBonusTooltip", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8664 + }, + { + "name": "susceptibilityAttributeTooltip", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8680 + }, + { + "name": "page", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8696 + }, + { + "name": "pageNavigation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8712 + }, + { + "name": "pagesUnlocked", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8728 + }, + { + "name": "rewards", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8744 + }, + { + "name": "activeQuest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8760 + }, + { + "name": "fastTravelDisabled", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8776 + }, + { + "name": "fastTravelDisabledFalling", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8792 + }, + { + "name": "objective", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8808 + }, + { + "name": "location", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8824 + }, + { + "name": "completed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8840 + }, + { + "name": "documentItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8856 + }, + { + "name": "loreCategoryUnsorted", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8872 + }, + { + "name": "loreCategoryUndiscovered", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8888 + }, + { + "name": "noUncompletedQuestsHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8904 + }, + { + "name": "noCompletedQuestsHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8920 + }, + { + "name": "customMapMarkerLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8936 + }, + { + "name": "tombstoneLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8952 + }, + { + "name": "missedWorldQuestsMapHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8968 + }, + { + "name": "questCategoryActive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8984 + }, + { + "name": "questCategoryInactive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9000 + }, + { + "name": "nextQuestHintDocName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9016 + }, + { + "name": "nextQuestHintPageName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9032 + }, + { + "name": "nextQuestHintText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9048 + }, + { + "name": "kickPlayerPopupHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9064 + }, + { + "name": "kickPlayerPopupContent", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9080 + }, + { + "name": "currentPlayerPermissionHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9096 + }, + { + "name": "nextQuestHintTheFlame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9112 + }, + { + "name": "songSelectionHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9128 + }, + { + "name": "showDetailedDiffucultySettings", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9144 + }, + { + "name": "difficultySettingsReadOnlyExplanation", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9160 + }, + { + "name": "difficultySettingsReadOnlyExplanationDedicatedServer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9176 + }, + { + "name": "twitchDropsHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9192 + }, + { + "name": "twitchDropsNoUnlocks", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9208 + }, + { + "name": "npcStatusBed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9224 + }, + { + "name": "npcStatusFood", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9240 + }, + { + "name": "collectionDisplayedHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9256 + }, + { + "name": "collectionAvailableItemsHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9272 + }, + { + "name": "collectionAvailableItemsSubHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9288 + }, + { + "name": "collectionNoAvailableItemsHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9304 + }, + { + "name": "npcCraftingLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9320 + }, + { + "name": "npcAssistantLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9336 + }, + { + "name": "npcTownsfolkLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9352 + }, + { + "name": "basesInfoAnimalsHungry", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9368 + }, + { + "name": "basesInfoAnimalsBeds", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9384 + }, + { + "name": "basesInfoAnimalsBedsObstructed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9400 + }, + { + "name": "basesGenericLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9416 + }, + { + "name": "altarGenericLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 9432 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaEquipmentMenu", + "type_name_2": "FbUiLocaEquipmentMenu", + "qualified_name": "keen::ds::FbUiLocaEquipmentMenu", + "referenced_type_name": null, + "class_size": 896, + "fields_count": 56, + "primitive_type": "Struct", + "hash1": 1867421847, + "hash2": 4180275284, + "struct_fields": [ + { + "name": "mainHand", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "shield", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "arrow", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "spell", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "backpackExtender", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "climbTool", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "hookshot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "glider", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "accessory0", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "accessory1", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "ring0", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "ring1", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "head", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "upperBody", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "arms", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "lowerBody", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "boots", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "attributes", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "status", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "attributeTileMainhandDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "attributeTileRangedEquipmentDamage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "attributeTileShieldDefense", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "attributeTileBackpackExtender", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "attributeTilePrompt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "statusTilePrompt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "attributeSectionMain", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + }, + { + "name": "attributeSectionOffense", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "attributeSectionDefense", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "attributeBonusHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "attributeTooltipHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "statusNothingHintCondensed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "statusNothingHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "statusSectionFood", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "statusSectionRest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "statusFoodEmptyHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "statusRestConditionHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "statusRestConditionSitOrShelter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "statusRestComfortHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "statusRestComfortLevel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + }, + { + "name": "statusRestComfortLevelNumbered", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 640 + }, + { + "name": "statusRestComfortCondition", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 656 + }, + { + "name": "statusBuffs", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + }, + { + "name": "statusDebuffs", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 688 + }, + { + "name": "statusPlayerState", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 704 + }, + { + "name": "noDebuffActive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 720 + }, + { + "name": "noBuffActive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 736 + }, + { + "name": "noPlayerStateActive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 752 + }, + { + "name": "equipped", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 768 + }, + { + "name": "available", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 784 + }, + { + "name": "slotContentNone", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 800 + }, + { + "name": "vanityModePrompt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 816 + }, + { + "name": "vanityModeGearSection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 832 + }, + { + "name": "vanityModeVisualSection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 848 + }, + { + "name": "vanityModeHideSlotAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 864 + }, + { + "name": "equipmentUsedAsVanityHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 880 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaInventory", + "type_name_2": "FbUiLocaInventory", + "qualified_name": "keen::ds::FbUiLocaInventory", + "referenced_type_name": null, + "class_size": 2256, + "fields_count": 86, + "primitive_type": "Struct", + "hash1": 1423851708, + "hash2": 1961679881, + "struct_fields": [ + { + "name": "actionBar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "actionBarCurrent", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "mainTabBackpack", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "mainTabEquipment", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "mainTabCrafting", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "mainTabJournal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "mainTabMap", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "mainTabSkillTree", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "mainTabSettings", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "mainTabStore", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "giftingMenuTitle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "giftingLimitationHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "giftingActionHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "giftingAmountOne", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "giftingAmountHalf", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "giftingAmountAll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "giftingAmountAdjust", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "giftingTargetStatusCanReceive", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "giftingTargetStatusDead", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "giftingTargetStatusOutOfRange", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "giftingTargetStatusBackpackFull", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "giftingTarget", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "giftingTargetMissingHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "giftingActionConfirm", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "giftingStackNew", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "giftingStackOriginal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "giftedLootLogEntryHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + }, + { + "name": "splitStackNew", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "splitStackOriginal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "deletionConfirmMessage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "deletionConfirmSuppression", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "deletionConfirmSettingHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "salvagingConfirmMessage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "highlightIsCurrentItemHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "codexTileClues", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "codexTileLore", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "codexTilePinnedRecipe", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "codexTileRecipeBook", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "codexTileTutorials", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "codexPageNotDiscovered", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + }, + { + "name": "journalCompletedSectionLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 640 + }, + { + "name": "journalWorldQuestSectionLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 656 + }, + { + "name": "journalMissedWorldQuestSectionLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + }, + { + "name": "journalPersonalQuestSectionLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 688 + }, + { + "name": "journalCompletedSectionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 704 + }, + { + "name": "journalWorldQuestSectionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 720 + }, + { + "name": "journalMissedWorldQuestSectionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 736 + }, + { + "name": "journalPersonalQuestSectionDesc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 752 + }, + { + "name": "codexTileMotherflame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 768 + }, + { + "name": "codexTileNpcs", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 784 + }, + { + "name": "codexTileSurvivors", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 800 + }, + { + "name": "codexTileTownfolk", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 816 + }, + { + "name": "codexTileBases", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 832 + }, + { + "name": "codexTileGroupPersonal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 848 + }, + { + "name": "codexTileGroupWorld", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 864 + }, + { + "name": "freeWaypointLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 880 + }, + { + "name": "mapNodeIsWaypointHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 896 + }, + { + "name": "noItemSelectedHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 912 + }, + { + "name": "noSlotInBackpackHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 928 + }, + { + "name": "skillpointLabelAvailable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 944 + }, + { + "name": "skillpointLabelInUse", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 960 + }, + { + "name": "skillpointLabelRefund", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 976 + }, + { + "name": "skilltreeNodeUnlocked", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 992 + }, + { + "name": "skilltreeNodeOutOfRange", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1008 + }, + { + "name": "skilltreeNodeFutureContent", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1024 + }, + { + "name": "skilltreeNodeActivated", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1040 + }, + { + "name": "cookingHintRelease", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1056 + }, + { + "name": "cookingHintHold", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1072 + }, + { + "name": "sortStacksFromInventory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1088 + }, + { + "name": "sortStacksToInventory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1104 + }, + { + "name": "takeStacks", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1120 + }, + { + "name": "depositStacks", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1136 + }, + { + "name": "takeAll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1152 + }, + { + "name": "depositAll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1168 + }, + { + "name": "sortInventory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1184 + }, + { + "name": "sortStorage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1200 + }, + { + "name": "magicChestTab", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1216 + }, + { + "name": "magicChestAddOne", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1232 + }, + { + "name": "magicChestAddStack", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1248 + }, + { + "name": "magicChestAddAll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1264 + }, + { + "name": "feedingStationStackAdditionMaxPossible", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1280 + }, + { + "name": "factoryAddIngredientsOne", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1296 + }, + { + "name": "factoryAddIngredientsMultiple", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1312 + }, + { + "name": "itemNoTwitchPermission", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1328 + }, + { + "name": "twitchItemLabel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1344 + }, + { + "name": "equipmentMenu", + "type_name": "keen::ds::FbUiLocaEquipmentMenu", + "type_hash": 1867421847, + "data_offset": 1360 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaBuildVerbs", + "type_name_2": "FbUiLocaBuildVerbs", + "qualified_name": "keen::ds::FbUiLocaBuildVerbs", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1096219754, + "hash2": 2115550431, + "struct_fields": [ + { + "name": "genericAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "blockAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "blueprintAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "propAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "terraformAddAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "terraformFlattenAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "terraformRemoveAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaGameplayActionLabels", + "type_name_2": "FbUiLocaGameplayActionLabels", + "qualified_name": "keen::ds::FbUiLocaGameplayActionLabels", + "referenced_type_name": null, + "class_size": 1488, + "fields_count": 87, + "primitive_type": "Struct", + "hash1": 3299666909, + "hash2": 3362720323, + "struct_fields": [ + { + "name": "locomotionMoveLeft", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "locomotionMoveRight", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "locomotionMoveForward", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "locomotionMoveBackward", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "locomotionMove", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "cameraRotateLeft", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "cameraRotateRight", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "cameraRotateUp", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "cameraRotateDown", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "cameraRotate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "cameraZoomIn", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "cameraZoomOut", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "mainHandAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "contextualAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "cancelAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "ammunitionSelectPrevious", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "ammunitionSelectNext", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "blueprintDistanceIncrease", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "blueprintDistanceDecrease", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "blueprintMaterialSelectPrevious", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "blueprintMaterialSelectNext", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "blueprintPageSelectPrevious", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "blueprintPageSelectNext", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "blueprintShapeSelectPrevious", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "blueprintShapeSelectNext", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "actionBarSlot1", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "actionBarSlot2", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + }, + { + "name": "actionBarSlot3", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "actionBarSlot4", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "actionBarSlot5", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "actionBarSlot6", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "actionBarSlot7", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "actionBarSlot8", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "actionBarSlot9", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "actionBarSlot10", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "actionBarWheel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "actionBarSwapPage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "actionBarSwapPageVerbOnly", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "actionBarSlotPrevious", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "actionBarSlotNext", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + }, + { + "name": "guardAndParry", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 640 + }, + { + "name": "guard", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 656 + }, + { + "name": "parry", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + }, + { + "name": "locomotionSprint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 688 + }, + { + "name": "locomotionEvade", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 704 + }, + { + "name": "locomotionJump", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 720 + }, + { + "name": "locomotionSneak", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 736 + }, + { + "name": "locomotionSit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 752 + }, + { + "name": "locomotionGlide", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 768 + }, + { + "name": "locomotionHookshot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 784 + }, + { + "name": "respawn", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 800 + }, + { + "name": "buildingUndo", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 816 + }, + { + "name": "buildingDismantle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 832 + }, + { + "name": "buildingDismantlePickup", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 848 + }, + { + "name": "buildingDismantleNotPossible", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 864 + }, + { + "name": "animalPickupNotPossible", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 880 + }, + { + "name": "buildingSnapping", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 896 + }, + { + "name": "transformRotateClockwiseSmall", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 912 + }, + { + "name": "transformRotateClockwiseBig", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 928 + }, + { + "name": "transformRotateCounterClockwiseSmall", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 944 + }, + { + "name": "transformRotateCounterClockwiseBig", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 960 + }, + { + "name": "transformChangeAngleClockwise", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 976 + }, + { + "name": "transformChangeAngleCounterClockwise", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 992 + }, + { + "name": "combatTargetLock", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1008 + }, + { + "name": "combatTargetLeft", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1024 + }, + { + "name": "combatTargetRight", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1040 + }, + { + "name": "rangedCombatReady", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1056 + }, + { + "name": "rangedCombatShoot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1072 + }, + { + "name": "songSelectOpen", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1088 + }, + { + "name": "songSelectPrevious", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1104 + }, + { + "name": "songSelectNext", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1120 + }, + { + "name": "systemMenuOpen", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1136 + }, + { + "name": "playerMenuOpen", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1152 + }, + { + "name": "playerMenuBackpack", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1168 + }, + { + "name": "playerMenuEquipmentAndStats", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1184 + }, + { + "name": "playerMenuWorld", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1200 + }, + { + "name": "playerMenuJournal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1216 + }, + { + "name": "playerMenuCrafting", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1232 + }, + { + "name": "playerMenuSkills", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1248 + }, + { + "name": "goToCurrentNotificationTab", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1264 + }, + { + "name": "hudMenuBlueprints", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1280 + }, + { + "name": "inputModalityTap", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1296 + }, + { + "name": "inputModalityHold", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1312 + }, + { + "name": "inputModalityRelease", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1328 + }, + { + "name": "inputModalityToggle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1344 + }, + { + "name": "assignBedHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1360 + }, + { + "name": "buildVerbs", + "type_name": "keen::ds::FbUiLocaBuildVerbs", + "type_hash": 1096219754, + "data_offset": 1376 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaUiActionLabels", + "type_name_2": "FbUiLocaUiActionLabels", + "qualified_name": "keen::ds::FbUiLocaUiActionLabels", + "referenced_type_name": null, + "class_size": 2016, + "fields_count": 126, + "primitive_type": "Struct", + "hash1": 2134749999, + "hash2": 3807361574, + "struct_fields": [ + { + "name": "recipeUpgrade", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "repairItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "confirm", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "finish", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "cancel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "back", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "openHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "close", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "leave", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "join", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "changeGeneric", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "secondaryAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "tertiaryAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "moveObject", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "changeTab", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "navigationMove", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "navigationScroll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "previousPage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "nextPage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "mapZoom", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "mapFastTravel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "mapSnapToWaypoint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "mapSnapToPlayerPos", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "mapSnapToHomeBase", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "mapLocateGeneric", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + }, + { + "name": "mapWorldSidebar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 400 + }, + { + "name": "mapPlayersSidebar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 416 + }, + { + "name": "mapFilterSidebar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 432 + }, + { + "name": "mapFilterFocusType", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 448 + }, + { + "name": "clearMapFilter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 464 + }, + { + "name": "mapGotoJournal", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 480 + }, + { + "name": "gotoReferencedJournalPage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 496 + }, + { + "name": "gotoReferencedLorePage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 512 + }, + { + "name": "gotoReferencedQuestPage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + }, + { + "name": "mapActions", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 544 + }, + { + "name": "mapSetWaypoint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 560 + }, + { + "name": "mapSetAsWaypoint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 576 + }, + { + "name": "mapRemoveWaypoint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 592 + }, + { + "name": "mapSendPing", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 608 + }, + { + "name": "codexShowOnMap", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 624 + }, + { + "name": "placeNpcInWorld", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 640 + }, + { + "name": "itemViewerVisibilityToggle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 656 + }, + { + "name": "backpackUseItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 672 + }, + { + "name": "backpackActions", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 688 + }, + { + "name": "backpackSplitStack", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 704 + }, + { + "name": "backpackDeleteItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 720 + }, + { + "name": "backpackSalvageItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 736 + }, + { + "name": "splitStackAdjustMin", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 752 + }, + { + "name": "splitStackAdjustDecrement", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 768 + }, + { + "name": "splitStackAdjustHalf", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 784 + }, + { + "name": "splitStackAdjustIncrement", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 800 + }, + { + "name": "splitStackAdjustMax", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 816 + }, + { + "name": "backpackGrabItemForMoving", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 832 + }, + { + "name": "backpackGrabItemForMovingPartial", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 848 + }, + { + "name": "backpackGrabItemForMovingHoldable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 864 + }, + { + "name": "backpackDropItemIntoSlot", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 880 + }, + { + "name": "quickMoveItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 896 + }, + { + "name": "quickMoveItemActionbar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 912 + }, + { + "name": "quickMoveItemStorage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 928 + }, + { + "name": "quickMoveTargetFull", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 944 + }, + { + "name": "refillStacks", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 960 + }, + { + "name": "backpackEquip", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 976 + }, + { + "name": "backpackUnequip", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 992 + }, + { + "name": "backpackReplaceItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1008 + }, + { + "name": "backpackGiftItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1024 + }, + { + "name": "showTutorial", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1040 + }, + { + "name": "changeBlueprint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1056 + }, + { + "name": "lootTakeSingle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1072 + }, + { + "name": "lootTakeAll", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1088 + }, + { + "name": "craftActionSingle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1104 + }, + { + "name": "craftActionMultiple", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1120 + }, + { + "name": "stopAutomatedCraftingNext", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1136 + }, + { + "name": "changeAutomatedCraftingOuput", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1152 + }, + { + "name": "recipePin", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1168 + }, + { + "name": "recipeUnpin", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1184 + }, + { + "name": "showItemViewerTextArea", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1200 + }, + { + "name": "showItemViewerRecipeArea", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1216 + }, + { + "name": "toggleItemViewerRecipeView", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1232 + }, + { + "name": "activate", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1248 + }, + { + "name": "unlock", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1264 + }, + { + "name": "unlockNextPerk", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1280 + }, + { + "name": "rename", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1296 + }, + { + "name": "done", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1312 + }, + { + "name": "refillToInventory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1328 + }, + { + "name": "refillFromInventory", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1344 + }, + { + "name": "increase", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1360 + }, + { + "name": "decrease", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1376 + }, + { + "name": "clear", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1392 + }, + { + "name": "selectSessionSettings", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1408 + }, + { + "name": "selectSavegame", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1424 + }, + { + "name": "selectServerFilter", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1440 + }, + { + "name": "selectServer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1456 + }, + { + "name": "skip", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1472 + }, + { + "name": "select", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1488 + }, + { + "name": "next", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1504 + }, + { + "name": "create", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1520 + }, + { + "name": "continueAction", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1536 + }, + { + "name": "setActiveQuest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1552 + }, + { + "name": "hidePassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1568 + }, + { + "name": "toggleFavourite", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1584 + }, + { + "name": "hideIPAddressInput", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1600 + }, + { + "name": "createMarker", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1616 + }, + { + "name": "removeMarker", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1632 + }, + { + "name": "togglePersonalProgression", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1648 + }, + { + "name": "activatePersonalProgression", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1664 + }, + { + "name": "deactivatePersonalProgression", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1680 + }, + { + "name": "search", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1696 + }, + { + "name": "expandToggle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1712 + }, + { + "name": "toggleTooltip", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1728 + }, + { + "name": "toggleVisibility", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1744 + }, + { + "name": "change", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1760 + }, + { + "name": "kickPlayer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1776 + }, + { + "name": "toggle", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1792 + }, + { + "name": "renameAltar", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1808 + }, + { + "name": "enable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1824 + }, + { + "name": "disable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1840 + }, + { + "name": "instrumentActionTuneIn", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1856 + }, + { + "name": "confirmPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1872 + }, + { + "name": "resetToDefault", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1888 + }, + { + "name": "claimTwitchItem", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1904 + }, + { + "name": "swapArmor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1920 + }, + { + "name": "swapVanity", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1936 + }, + { + "name": "equipCollection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1952 + }, + { + "name": "unequipCollection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1968 + }, + { + "name": "equipAsArmor", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 1984 + }, + { + "name": "equipAsVanity", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 2000 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLocaLinks", + "type_name_2": "FbUiLocaLinks", + "qualified_name": "keen::ds::FbUiLocaLinks", + "referenced_type_name": null, + "class_size": 25912, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1603588513, + "hash2": 3382641384, + "struct_fields": [ + { + "name": "styleTest", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "invalidUiString", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "closedBetaHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "demoSettingsHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "rpgTerms", + "type_name": "keen::ds::FbUiLocaRpgTerms", + "type_hash": 1189435642, + "data_offset": 64 + }, + { + "name": "genericStrings", + "type_name": "keen::ds::FbUiLocaGeneric", + "type_hash": 86526837, + "data_offset": 5600 + }, + { + "name": "punctuations", + "type_name": "keen::ds::FbUiLocaPunctuations", + "type_hash": 1778680225, + "data_offset": 5648 + }, + { + "name": "uiActions", + "type_name": "keen::ds::FbUiLocaUiActionLabels", + "type_hash": 2134749999, + "data_offset": 6336 + }, + { + "name": "gameplayActions", + "type_name": "keen::ds::FbUiLocaGameplayActionLabels", + "type_hash": 3299666909, + "data_offset": 8352 + }, + { + "name": "inputStrings", + "type_name": "keen::ds::FbUiLocaInput", + "type_hash": 2085156620, + "data_offset": 9840 + }, + { + "name": "hudStrings", + "type_name": "keen::ds::FbUiLocaHud", + "type_hash": 894190113, + "data_offset": 10080 + }, + { + "name": "inventory", + "type_name": "keen::ds::FbUiLocaInventory", + "type_hash": 1423851708, + "data_offset": 12832 + }, + { + "name": "menuStrings", + "type_name": "keen::ds::FbUiLocaMenus", + "type_hash": 786417764, + "data_offset": 15088 + }, + { + "name": "crafting", + "type_name": "keen::ds::FbUiLocaCrafting", + "type_hash": 3174235382, + "data_offset": 24536 + }, + { + "name": "itemEquipmentSlots", + "type_name": "keen::ds::FbUiLocaItemEquipmentSlots", + "type_hash": 1143742042, + "data_offset": 25576 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterView", + "type_name_2": "FbUiCharacterView", + "qualified_name": "keen::ds::FbUiCharacterView", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1415378213, + "hash2": 3718047273, + "struct_fields": [ + { + "name": "lookAt", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "distance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pitch", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "yaw", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "fov", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGamepadButtonImageTagId", + "type_name_2": "FbUiGamepadButtonImageTagId", + "qualified_name": "keen::ds::FbUiGamepadButtonImageTagId", + "referenced_type_name": "keen::FbUiGamepadButtonImageTagId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1248647142, + "hash2": 3146392516, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGamepadButtonSet", + "type_name_2": "FbUiGamepadButtonSet", + "qualified_name": "keen::ds::FbUiGamepadButtonSet", + "referenced_type_name": null, + "class_size": 1584, + "fields_count": 33, + "primitive_type": "Struct", + "hash1": 3883173504, + "hash2": 171019169, + "struct_fields": [ + { + "name": "dpad", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "dpadLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "dpadRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "dpadUp", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "dpadDown", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "dpadVertical", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "dpadHorizontal", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "leftStick", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "rightStick", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "leftStickPress", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 432 + }, + { + "name": "rightStickPress", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 480 + }, + { + "name": "leftStickUp", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 528 + }, + { + "name": "leftStickDown", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 576 + }, + { + "name": "leftStickLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 624 + }, + { + "name": "leftStickRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 672 + }, + { + "name": "leftStickDirectionalHorizontal", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 720 + }, + { + "name": "leftStickDirectionalVertical", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 768 + }, + { + "name": "rightStickUp", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 816 + }, + { + "name": "rightStickDown", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 864 + }, + { + "name": "rightStickLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 912 + }, + { + "name": "rightStickRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 960 + }, + { + "name": "rightStickDirectionalHorizontal", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1008 + }, + { + "name": "rightStickDirectionalVertical", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1056 + }, + { + "name": "faceTop", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1104 + }, + { + "name": "faceBottom", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1152 + }, + { + "name": "faceLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1200 + }, + { + "name": "faceRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1248 + }, + { + "name": "shoulderLeftUpper", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1296 + }, + { + "name": "shoulderLeftLower", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1344 + }, + { + "name": "shoulderRightUpper", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1392 + }, + { + "name": "shoulderRightLower", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1440 + }, + { + "name": "systemLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1488 + }, + { + "name": "systemRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1536 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGamepadButtonSets", + "type_name_2": "FbUiGamepadButtonSets", + "qualified_name": "keen::ds::FbUiGamepadButtonSets", + "referenced_type_name": null, + "class_size": 5192, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1332768905, + "hash2": 431102360, + "struct_fields": [ + { + "name": "controllerShape", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "genericController", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "controllerPlaystation", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "controllerNintendoSwitch", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "genericButtonsForms", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "genericButtonsXABY", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "genericButtonsYBAX", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "diagramKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 336 + }, + { + "name": "xbox", + "type_name": "keen::ds::FbUiGamepadButtonSet", + "type_hash": 3883173504, + "data_offset": 344 + }, + { + "name": "playstation", + "type_name": "keen::ds::FbUiGamepadButtonSet", + "type_hash": 3883173504, + "data_offset": 1928 + }, + { + "name": "nintendoSwitch", + "type_name": "keen::ds::FbUiGamepadButtonSet", + "type_hash": 3883173504, + "data_offset": 3512 + }, + { + "name": "twoHeadedArrowHorizontal", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 5096 + }, + { + "name": "twoHeadedArrowVertical", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 5144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiNineSliceTexture", + "type_name_2": "UiNineSliceTexture", + "qualified_name": "keen::ds::UiNineSliceTexture", + "referenced_type_name": "keen::ds::UiTexture", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 14880176, + "hash2": 2595104354, + "struct_fields": [ + { + "name": "border", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKeyboardKeys", + "type_name_2": "FbUiKeyboardKeys", + "qualified_name": "keen::ds::FbUiKeyboardKeys", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2977777380, + "hash2": 1739077487, + "struct_fields": [ + { + "name": "standardKey", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "nineSlicedKey", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKeyboardKeyLegends", + "type_name_2": "FbUiKeyboardKeyLegends", + "qualified_name": "keen::ds::FbUiKeyboardKeyLegends", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3527898359, + "hash2": 3309839990, + "struct_fields": [ + { + "name": "up", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "down", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "left", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "right", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMouseHints", + "type_name_2": "FbUiMouseHints", + "qualified_name": "keen::ds::FbUiMouseHints", + "referenced_type_name": null, + "class_size": 672, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1999850318, + "hash2": 2902907897, + "struct_fields": [ + { + "name": "left", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "right", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "middle", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "button4", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "button5", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "wheel", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "wheelUp", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "wheelDown", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "directionalContext", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "move", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 432 + }, + { + "name": "moveUp", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 480 + }, + { + "name": "moveDown", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 528 + }, + { + "name": "moveLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 576 + }, + { + "name": "moveRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 624 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGradients", + "type_name_2": "FbUiGradients", + "qualified_name": "keen::ds::FbUiGradients", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3924493046, + "hash2": 3163506451, + "struct_fields": [ + { + "name": "whiteToBlackTest", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "alphaToRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "alphaToBottom", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "alphaToBottomRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "alphaToTopBottom", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "alphaToLeftRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "alphaToLeftRightSliced", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPrimitives", + "type_name_2": "FbUiPrimitives", + "qualified_name": "keen::ds::FbUiPrimitives", + "referenced_type_name": null, + "class_size": 1232, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 914703123, + "hash2": 2597781962, + "struct_fields": [ + { + "name": "circle", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "circleOutline", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "circleSoftGlow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "ringSoftGlow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "diamond", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "triangle", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "separatorLineHorizontal", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "separatorLineHorizontalLeftHeavy", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "separatorLineVertical", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "gradients", + "type_name": "keen::ds::FbUiGradients", + "type_hash": 3924493046, + "data_offset": 432 + }, + { + "name": "boxInnerGlow", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 784 + }, + { + "name": "glowBoxSmall", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 848 + }, + { + "name": "glowBoxLarge", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 912 + }, + { + "name": "roundedBoxSmall", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 976 + }, + { + "name": "roundedBoxSmallOutline", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 1040 + }, + { + "name": "roundedBoxSmallOutlineThin", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 1104 + }, + { + "name": "roundedBoxOutlineBuildingZone", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 1168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSocialLogos", + "type_name_2": "FbUiSocialLogos", + "qualified_name": "keen::ds::FbUiSocialLogos", + "referenced_type_name": null, + "class_size": 288, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2931725630, + "hash2": 3216411768, + "struct_fields": [ + { + "name": "steam", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "discord", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "qq", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "yooreka", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "twitchText", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "twitchIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoadingSymbol", + "type_name_2": "FbUiLoadingSymbol", + "qualified_name": "keen::ds::FbUiLoadingSymbol", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2406166443, + "hash2": 1823113608, + "struct_fields": [ + { + "name": "logoHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "dotFadeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiStatusIcons", + "type_name_2": "FbUiStatusIcons", + "qualified_name": "keen::ds::FbUiStatusIcons", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 710940203, + "hash2": 240831393, + "struct_fields": [ + { + "name": "happy", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "sheltered", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "bed", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "food", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "warmth", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "location", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "bedStandlone", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "shelteredStandlone", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "fullfilledNpcNeeds", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGenericIcons", + "type_name_2": "FbUiGenericIcons", + "qualified_name": "keen::ds::FbUiGenericIcons", + "referenced_type_name": null, + "class_size": 2976, + "fields_count": 54, + "primitive_type": "Struct", + "hash1": 4006744304, + "hash2": 3816425023, + "struct_fields": [ + { + "name": "attention", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "checkmark", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "fulfilled", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "unfulfilled", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "missing", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "weight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "pin", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "menuAttentionMarker", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "speechBubble", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "speechBubbleImportant", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 432 + }, + { + "name": "speechBubbleDotDotDot", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 480 + }, + { + "name": "hudMarkerFill", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 528 + }, + { + "name": "hudMarkerOutline", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 576 + }, + { + "name": "hudMarkerQuestionMark", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 624 + }, + { + "name": "warningTriangle", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 672 + }, + { + "name": "forbidden", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 720 + }, + { + "name": "store", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 768 + }, + { + "name": "settings", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 816 + }, + { + "name": "arrowRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 864 + }, + { + "name": "arrowLeftRight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 912 + }, + { + "name": "locked", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 960 + }, + { + "name": "star4", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1008 + }, + { + "name": "star5", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1056 + }, + { + "name": "itemRarity", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1104 + }, + { + "name": "privateGame", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1152 + }, + { + "name": "publicGame", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1200 + }, + { + "name": "joinGame", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1248 + }, + { + "name": "networkGood", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1296 + }, + { + "name": "networkAcceptable", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1344 + }, + { + "name": "networkBad", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1392 + }, + { + "name": "infinitySymbol", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1440 + }, + { + "name": "craftingCogwheel", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1488 + }, + { + "name": "craftingInactiveLayer", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1536 + }, + { + "name": "loadingIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1584 + }, + { + "name": "friendServer", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1632 + }, + { + "name": "dedicatedServer", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1680 + }, + { + "name": "nonDedicatedServer", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1728 + }, + { + "name": "favouriteServerSet", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1776 + }, + { + "name": "favouriteServerUnset", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1824 + }, + { + "name": "hide", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1872 + }, + { + "name": "visible", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1920 + }, + { + "name": "hide_selected", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1968 + }, + { + "name": "visible_selected", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2016 + }, + { + "name": "externalLink", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2064 + }, + { + "name": "sort", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2112 + }, + { + "name": "moveStacks", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2160 + }, + { + "name": "moveAll", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2208 + }, + { + "name": "serverSettingProhibited", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2256 + }, + { + "name": "permissionKick", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2304 + }, + { + "name": "permissionEditBase", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2352 + }, + { + "name": "permissionUpgradeBase", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2400 + }, + { + "name": "permissionAccessStorage", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2448 + }, + { + "name": "pwOptional", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2496 + }, + { + "name": "statusIcons", + "type_name": "keen::ds::FbUiStatusIcons", + "type_hash": 710940203, + "data_offset": 2544 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCoverStyle", + "type_name_2": "FbUiCoverStyle", + "qualified_name": "keen::ds::FbUiCoverStyle", + "referenced_type_name": "keen::FbUiCoverStyle", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 9718697, + "hash2": 119372724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCoverTransition", + "type_name_2": "FbUiCoverTransition", + "qualified_name": "keen::ds::FbUiCoverTransition", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3941163839, + "hash2": 2380771362, + "struct_fields": [ + { + "name": "coverStyle", + "type_name": "keen::ds::FbUiCoverStyle", + "type_hash": 9718697, + "data_offset": 0 + }, + { + "name": "changeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCursors", + "type_name_2": "FbUiCursors", + "qualified_name": "keen::ds::FbUiCursors", + "referenced_type_name": null, + "class_size": 272, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 424913072, + "hash2": 3661478164, + "struct_fields": [ + { + "name": "lockonColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "lockon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 8 + }, + { + "name": "bow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 56 + }, + { + "name": "bowFalloff", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 104 + }, + { + "name": "spell", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 152 + }, + { + "name": "spellArea", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 200 + }, + { + "name": "crosshairWarningColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 248 + }, + { + "name": "snappingReadyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 256 + }, + { + "name": "snappingActiveColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 264 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTreeNode", + "type_name_2": "UiSkillTreeNode", + "qualified_name": "keen::ds::UiSkillTreeNode", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 190224566, + "hash2": 2113539900, + "struct_fields": [ + { + "name": "pos", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "i", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "isA", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + }, + { + "name": "isL", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 53 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTreeConnection", + "type_name_2": "UiSkillTreeConnection", + "qualified_name": "keen::ds::UiSkillTreeConnection", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3598773054, + "hash2": 2298524405, + "struct_fields": [ + { + "name": "a", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "b", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiSkillTreeNode[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiSkillTreeNode", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1253866173, + "hash2": 1073427787, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiSkillTreeConnection[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiSkillTreeConnection", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3282800193, + "hash2": 4171283076, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTree", + "type_name_2": "UiSkillTree", + "qualified_name": "keen::ds::UiSkillTree", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 244072058, + "hash2": 573517821, + "struct_fields": [ + { + "name": "sList", + "type_name": "keen::DsArray", + "type_hash": 1253866173, + "data_offset": 0 + }, + { + "name": "sConList", + "type_name": "keen::DsArray", + "type_hash": 3282800193, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiInline3SkillDescriptions", + "type_name_2": "FbUiInline3SkillDescriptions", + "qualified_name": "keen::ds::FbUiInline3SkillDescriptions", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2823105629, + "hash2": 3706406412, + "struct_fields": [ + { + "name": "jumpAttack", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "evadeAttack", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "doubleJump", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 80 + }, + { + "name": "attributeStrength", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 120 + }, + { + "name": "attributeDexterity", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 160 + }, + { + "name": "attributeIntelligence", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillTreeFallbackTexts", + "type_name_2": "FbUiSkillTreeFallbackTexts", + "qualified_name": "keen::ds::FbUiSkillTreeFallbackTexts", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 152978960, + "hash2": 2244525574, + "struct_fields": [ + { + "name": "activeSkillName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "activeSkillDesc", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "attributeName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 80 + }, + { + "name": "attributeDesc", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 120 + }, + { + "name": "passiveSkillName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 160 + }, + { + "name": "passiveSkillDesc", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillNode", + "type_name_2": "FbUiSkillNode", + "qualified_name": "keen::ds::FbUiSkillNode", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2648053518, + "hash2": 146233430, + "struct_fields": [ + { + "name": "textureRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "glowScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "contentRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "focusRadiusGrowth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "mutedForEA", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 16 + }, + { + "name": "outOfReach", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 64 + }, + { + "name": "inReach", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 112 + }, + { + "name": "activated", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 160 + }, + { + "name": "glow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillNodes", + "type_name_2": "FbUiSkillNodes", + "qualified_name": "keen::ds::FbUiSkillNodes", + "referenced_type_name": null, + "class_size": 828, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4110875079, + "hash2": 2708083220, + "struct_fields": [ + { + "name": "starter", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "starterRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "skillIconScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "skillIconSubjectTextureReferenceHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "attributes", + "type_name": "keen::ds::FbUiSkillNode", + "type_hash": 2648053518, + "data_offset": 60 + }, + { + "name": "passiveSkill", + "type_name": "keen::ds::FbUiSkillNode", + "type_hash": 2648053518, + "data_offset": 316 + }, + { + "name": "activeSkill", + "type_name": "keen::ds::FbUiSkillNode", + "type_hash": 2648053518, + "data_offset": 572 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillTreeLinkColors", + "type_name_2": "FbUiSkillTreeLinkColors", + "qualified_name": "keen::ds::FbUiSkillTreeLinkColors", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2062612270, + "hash2": 448371506, + "struct_fields": [ + { + "name": "activatedCore", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "activatedGlow", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "adjacent", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "adjacentHover", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "inactive", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "muted", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCanvasParallaxLayer", + "type_name_2": "FbUiCanvasParallaxLayer", + "qualified_name": "keen::ds::FbUiCanvasParallaxLayer", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4115696895, + "hash2": 811294165, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "sizeOnCanvas", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "parallaxDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "renderTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillGlowColor", + "type_name_2": "FbUiSkillGlowColor", + "qualified_name": "keen::ds::FbUiSkillGlowColor", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4060984606, + "hash2": 3696754025, + "struct_fields": [ + { + "name": "idle", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "activated", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillGlowColors", + "type_name_2": "FbUiSkillGlowColors", + "qualified_name": "keen::ds::FbUiSkillGlowColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2023004823, + "hash2": 2617019910, + "struct_fields": [ + { + "name": "mage", + "type_name": "keen::ds::FbUiSkillGlowColor", + "type_hash": 4060984606, + "data_offset": 0 + }, + { + "name": "warrior", + "type_name": "keen::ds::FbUiSkillGlowColor", + "type_hash": 4060984606, + "data_offset": 16 + }, + { + "name": "ranger", + "type_name": "keen::ds::FbUiSkillGlowColor", + "type_hash": 4060984606, + "data_offset": 32 + }, + { + "name": "neutral", + "type_name": "keen::ds::FbUiSkillGlowColor", + "type_hash": 4060984606, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSkillTreeClassHint", + "type_name_2": "UiSkillTreeClassHint", + "qualified_name": "keen::ds::UiSkillTreeClassHint", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4250903847, + "hash2": 80890335, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "isPrimary", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 20 + }, + { + "name": "directionDegrees", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 28 + }, + { + "name": "distanceFromRing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiCanvasParallaxLayer[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiCanvasParallaxLayer", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3460379730, + "hash2": 1985272366, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiSkillTreeClassHint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiSkillTreeClassHint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 955505492, + "hash2": 1781246356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSkillTree", + "type_name_2": "FbUiSkillTree", + "qualified_name": "keen::ds::FbUiSkillTree", + "referenced_type_name": null, + "class_size": 1864, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 1327142766, + "hash2": 1650583234, + "struct_fields": [ + { + "name": "zoomSteps", + "type_name": "keen::DsArray", + "type_hash": 2647501488, + "data_offset": 0 + }, + { + "name": "bgLayers", + "type_name": "keen::DsArray", + "type_hash": 3460379730, + "data_offset": 40 + }, + { + "name": "skillLayoutHelper", + "type_name": "keen::ds::FbUiCanvasParallaxLayer", + "type_hash": 4115696895, + "data_offset": 80 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 148 + }, + { + "name": "linkColors", + "type_name": "keen::ds::FbUiSkillTreeLinkColors", + "type_hash": 2062612270, + "data_offset": 156 + }, + { + "name": "connectionDirectionalPulse", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 204 + }, + { + "name": "connectionCore", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 252 + }, + { + "name": "connectionCoreInactive", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 300 + }, + { + "name": "connectionCoreOneWayStretch", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 348 + }, + { + "name": "connectionCoreOneWayEnd", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 396 + }, + { + "name": "connectionGlow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 444 + }, + { + "name": "connectionPulseColorGeneric", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 492 + }, + { + "name": "nodeHighlight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 500 + }, + { + "name": "cursorHighlight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 548 + }, + { + "name": "glowColors", + "type_name": "keen::ds::FbUiSkillGlowColors", + "type_hash": 2023004823, + "data_offset": 596 + }, + { + "name": "classHints", + "type_name": "keen::DsArray", + "type_hash": 955505492, + "data_offset": 664 + }, + { + "name": "mageKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 704 + }, + { + "name": "warriorKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 712 + }, + { + "name": "rangerKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 720 + }, + { + "name": "neutralClassKeyColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 728 + }, + { + "name": "mutedOverlayColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 736 + }, + { + "name": "nodes", + "type_name": "keen::ds::FbUiSkillNodes", + "type_hash": 4110875079, + "data_offset": 744 + }, + { + "name": "centerRing", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1572 + }, + { + "name": "centerRingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1620 + }, + { + "name": "fallbackTexts", + "type_name": "keen::ds::FbUiSkillTreeFallbackTexts", + "type_hash": 152978960, + "data_offset": 1624 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapMarkerIcons", + "type_name_2": "FbUiMapMarkerIcons", + "qualified_name": "keen::ds::FbUiMapMarkerIcons", + "referenced_type_name": null, + "class_size": 488, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2690224191, + "hash2": 99656774, + "struct_fields": [ + { + "name": "waypoint", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "playerCorpse", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "playerCorpseInDungeon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "markerFrame", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "markerSelector", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "investigation", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "investigationOpaque", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "completed", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "playerPing", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "playerMarkerPing", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 432 + }, + { + "name": "playerPingColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 480 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CustomMapMarkerColorScheme", + "type_name_2": "CustomMapMarkerColorScheme", + "qualified_name": "keen::ds::CustomMapMarkerColorScheme", + "referenced_type_name": "keen::CustomMapMarkerColorScheme", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1642191708, + "hash2": 847058322, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomMarkerColorScheme", + "type_name_2": "FbUiCustomMarkerColorScheme", + "qualified_name": "keen::ds::FbUiCustomMarkerColorScheme", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1080777980, + "hash2": 1257755127, + "struct_fields": [ + { + "name": "colorSchemeType", + "type_name": "keen::ds::CustomMapMarkerColorScheme", + "type_hash": 1642191708, + "data_offset": 0 + }, + { + "name": "baseColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + }, + { + "name": "iconColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "FbUiCustomMarkerColorScheme[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::FbUiCustomMarkerColorScheme", + "class_size": 160, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3312909964, + "hash2": 111345949, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomMapMarker", + "type_name_2": "FbUiCustomMapMarker", + "qualified_name": "keen::ds::FbUiCustomMapMarker", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3930056278, + "hash2": 3589491130, + "struct_fields": [ + { + "name": "colors", + "type_name": "keen::StaticArray", + "type_hash": 3312909964, + "data_offset": 0 + }, + { + "name": "markerBase", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 160 + }, + { + "name": "customMarkerSelector", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 208 + }, + { + "name": "customMarkerWaypoint", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 256 + }, + { + "name": "customMarkerHighlight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapIsolineConfig", + "type_name_2": "FbUiMapIsolineConfig", + "qualified_name": "keen::ds::FbUiMapIsolineConfig", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3992666594, + "hash2": 1287522012, + "struct_fields": [ + { + "name": "thickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "alpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "FbUiMapIsolineConfig[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::FbUiMapIsolineConfig", + "class_size": 24, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 4058549697, + "hash2": 4136492946, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapZoomConfig", + "type_name_2": "FbUiMapZoomConfig", + "qualified_name": "keen::ds::FbUiMapZoomConfig", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 200856412, + "hash2": 4102580950, + "struct_fields": [ + { + "name": "zoomScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "isolineConfigs", + "type_name": "keen::StaticArray", + "type_hash": 4058549697, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapInvestigationArea", + "type_name_2": "FbUiMapInvestigationArea", + "qualified_name": "keen::ds::FbUiMapInvestigationArea", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 724778096, + "hash2": 3023401153, + "struct_fields": [ + { + "name": "pattern", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "tileSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mask", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 52 + }, + { + "name": "patternColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "bgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 108 + }, + { + "name": "alphaRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 116 + }, + { + "name": "pulseCycleInSeconds", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiMapZoomConfig[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiMapZoomConfig", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2748397447, + "hash2": 704967947, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiAdventureMap", + "type_name_2": "FbUiAdventureMap", + "qualified_name": "keen::ds::FbUiAdventureMap", + "referenced_type_name": null, + "class_size": 1416, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 2442010655, + "hash2": 2374732739, + "struct_fields": [ + { + "name": "playerPosition", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "currentPlayerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "otherPlayerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "fogZoneAlphaRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 64 + }, + { + "name": "fogZonePulseLength", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "outerCornerNominalSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "outerFrame", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 84 + }, + { + "name": "frameInnerGradientNominalSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 148 + }, + { + "name": "frameInnerGradient", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 152 + }, + { + "name": "cursorPiece", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 216 + }, + { + "name": "offscreenIconBubble", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 264 + }, + { + "name": "circularArea", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 312 + }, + { + "name": "markerRipple", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 360 + }, + { + "name": "investigation", + "type_name": "keen::ds::FbUiMapInvestigationArea", + "type_hash": 724778096, + "data_offset": 408 + }, + { + "name": "markerIcons", + "type_name": "keen::ds::FbUiMapMarkerIcons", + "type_hash": 2690224191, + "data_offset": 536 + }, + { + "name": "zoomConfigs", + "type_name": "keen::DsArray", + "type_hash": 2748397447, + "data_offset": 1024 + }, + { + "name": "customMarkers", + "type_name": "keen::ds::FbUiCustomMapMarker", + "type_hash": 3930056278, + "data_offset": 1064 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeCategoryIcons", + "type_name_2": "FbUiRecipeCategoryIcons", + "qualified_name": "keen::ds::FbUiRecipeCategoryIcons", + "referenced_type_name": null, + "class_size": 288, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2473780543, + "hash2": 3850247786, + "struct_fields": [ + { + "name": "swords", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "ammo", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "potion", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "misc", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "armor", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "magical", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeGroupDefinition", + "type_name_2": "FbUiRecipeGroupDefinition", + "qualified_name": "keen::ds::FbUiRecipeGroupDefinition", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3498011803, + "hash2": 356519257, + "struct_fields": [ + { + "name": "icon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "tagRef", + "type_name": "keen::ds::ItemTagReference", + "type_hash": 1087001461, + "data_offset": 48 + }, + { + "name": "itemCategoryFallback", + "type_name": "keen::ds::ItemCategory", + "type_hash": 3756772288, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiRecipeGroupDefinition[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiRecipeGroupDefinition", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1797435082, + "hash2": 2756493344, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ItemTagReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ItemTagReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 562769374, + "hash2": 663498535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCrafting", + "type_name_2": "FbUiCrafting", + "qualified_name": "keen::ds::FbUiCrafting", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 854766563, + "hash2": 417436209, + "struct_fields": [ + { + "name": "categoryIcons", + "type_name": "keen::ds::FbUiRecipeCategoryIcons", + "type_hash": 2473780543, + "data_offset": 0 + }, + { + "name": "ingredientBgColorDefault", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 288 + }, + { + "name": "sufficientIngredientColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 296 + }, + { + "name": "insufficientIngredientColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 304 + }, + { + "name": "successFlashColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 312 + }, + { + "name": "pinnedRecipeIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 320 + }, + { + "name": "groupDefinitions", + "type_name": "keen::DsArray", + "type_hash": 1797435082, + "data_offset": 368 + }, + { + "name": "recipeSets", + "type_name": "keen::DsArray", + "type_hash": 562769374, + "data_offset": 408 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeSetFolder", + "type_name_2": "FbUiRecipeSetFolder", + "qualified_name": "keen::ds::FbUiRecipeSetFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1347608913, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRecipeSet", + "type_name_2": "FbUiRecipeSet", + "qualified_name": "keen::ds::FbUiRecipeSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1151653457, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiWorldEvents", + "type_name_2": "FbUiWorldEvents", + "qualified_name": "keen::ds::FbUiWorldEvents", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2366713242, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiWorldEvent", + "type_name_2": "FbUiWorldEvent", + "qualified_name": "keen::ds::FbUiWorldEvent", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2774238285, + "hash2": 1038851849, + "struct_fields": [ + { + "name": "eventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "mainTexture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 4 + }, + { + "name": "ornament", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 52 + }, + { + "name": "initialColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "secondaryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 108 + }, + { + "name": "rippleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 116 + }, + { + "name": "imageSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "sfx", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "text", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiParagraphAlignment", + "type_name_2": "UiParagraphAlignment", + "qualified_name": "keen::ds::UiParagraphAlignment", + "referenced_type_name": "keen::UiParagraphAlignment", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 4116961154, + "hash2": 3031852753, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiParagraphStyle", + "type_name_2": "UiParagraphStyle", + "qualified_name": "keen::ds::UiParagraphStyle", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 721038986, + "hash2": 868118714, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "leading", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "enableAlignment", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "alignment", + "type_name": "keen::ds::UiParagraphAlignment", + "type_hash": 4116961154, + "data_offset": 45 + }, + { + "name": "indentLeft", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "indentRight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "lineSpacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuParagraphStyles", + "type_name_2": "FbUiMenuParagraphStyles", + "qualified_name": "keen::ds::FbUiMenuParagraphStyles", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 122681686, + "hash2": 2765719104, + "struct_fields": [ + { + "name": "loreReaderBody", + "type_name": "keen::ds::UiParagraphStyle", + "type_hash": 721038986, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiEquipmentBodyPartViews", + "type_name_2": "FbUiEquipmentBodyPartViews", + "qualified_name": "keen::ds::FbUiEquipmentBodyPartViews", + "referenced_type_name": null, + "class_size": 196, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1778754908, + "hash2": 1567031591, + "struct_fields": [ + { + "name": "full", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 0 + }, + { + "name": "head", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 28 + }, + { + "name": "chest", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 56 + }, + { + "name": "arm", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 84 + }, + { + "name": "legs", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 112 + }, + { + "name": "feet", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 140 + }, + { + "name": "ring", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudMenuMetrics", + "type_name_2": "FbUiHudMenuMetrics", + "qualified_name": "keen::ds::FbUiHudMenuMetrics", + "referenced_type_name": null, + "class_size": 216, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2344413686, + "hash2": 1661944852, + "struct_fields": [ + { + "name": "lootingMenuWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "centerMessageBottomY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "epicLootLeaveCenterDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "equipmentBodyPartViews", + "type_name": "keen::ds::FbUiEquipmentBodyPartViews", + "type_hash": 1778754908, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationViews", + "type_name_2": "FbUiCustomizationViews", + "qualified_name": "keen::ds::FbUiCustomizationViews", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1222458016, + "hash2": 107805901, + "struct_fields": [ + { + "name": "fullBody", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 0 + }, + { + "name": "head", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 28 + }, + { + "name": "presetView", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 56 + }, + { + "name": "hairView", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 84 + }, + { + "name": "beardView", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 112 + }, + { + "name": "hairColorView", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterPresetObject", + "type_name_2": "CharacterPresetObject", + "qualified_name": "keen::ds::CharacterPresetObject", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2282203098, + "hash2": 1824084563, + "struct_fields": [ + { + "name": "presetObject", + "type_name": "keen::ds::CharacterPresetObjectReference", + "type_hash": 909042191, + "data_offset": 0 + }, + { + "name": "previewImage", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CharacterItemReferences", + "type_name_2": "CharacterItemReferences", + "qualified_name": "keen::ds::CharacterItemReferences", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 480015899, + "hash2": 580398484, + "struct_fields": [ + { + "name": "itemReference", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 0 + }, + { + "name": "previewImage", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CharacterPresetObject[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CharacterPresetObject", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1688305953, + "hash2": 3577694289, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ColorPresetReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ColorPresetReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2994444183, + "hash2": 2427883057, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CharacterItemReferences[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CharacterItemReferences", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4078771666, + "hash2": 1801095284, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3802194583, + "hash2": 2857849661, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 731311768, + "hash2": 3035918413, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomization", + "type_name_2": "FbUiCustomization", + "qualified_name": "keen::ds::FbUiCustomization", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2625513146, + "hash2": 693192834, + "struct_fields": [ + { + "name": "characterViews", + "type_name": "keen::ds::FbUiCustomizationViews", + "type_hash": 1222458016, + "data_offset": 0 + }, + { + "name": "presetObjects", + "type_name": "keen::DsArray", + "type_hash": 1688305953, + "data_offset": 168 + }, + { + "name": "hairColors", + "type_name": "keen::DsArray", + "type_hash": 2994444183, + "data_offset": 208 + }, + { + "name": "beardColors", + "type_name": "keen::DsArray", + "type_hash": 2994444183, + "data_offset": 248 + }, + { + "name": "hairItems", + "type_name": "keen::DsArray", + "type_hash": 4078771666, + "data_offset": 288 + }, + { + "name": "beardItems", + "type_name": "keen::DsArray", + "type_hash": 4078771666, + "data_offset": 328 + }, + { + "name": "eyeColors", + "type_name": "keen::DsArray>", + "type_hash": 3802194583, + "data_offset": 368 + }, + { + "name": "eyeBrowColors", + "type_name": "keen::DsArray>", + "type_hash": 3802194583, + "data_offset": 408 + }, + { + "name": "skinColors", + "type_name": "keen::DsArray>", + "type_hash": 3802194583, + "data_offset": 448 + }, + { + "name": "voiceItems", + "type_name": "keen::DsArray>", + "type_hash": 731311768, + "data_offset": 488 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTileArtConfig", + "type_name_2": "FbUiTileArtConfig", + "qualified_name": "keen::ds::FbUiTileArtConfig", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1803021908, + "hash2": 1195846998, + "struct_fields": [ + { + "name": "pivot", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "scaleTweak", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "texture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiTileArtConfig[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiTileArtConfig", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2184311195, + "hash2": 3290914722, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuTiles", + "type_name_2": "FbUiMenuTiles", + "qualified_name": "keen::ds::FbUiMenuTiles", + "referenced_type_name": null, + "class_size": 768, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 551307211, + "hash2": 3565712013, + "struct_fields": [ + { + "name": "idleAlphaScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "emptyContentAlphaScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lockedContent", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 8 + }, + { + "name": "quests", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 68 + }, + { + "name": "flame", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 128 + }, + { + "name": "craftspeople", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 188 + }, + { + "name": "townsfolk", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 248 + }, + { + "name": "bases", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 308 + }, + { + "name": "workshops", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 368 + }, + { + "name": "lore", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 428 + }, + { + "name": "tutorials", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 488 + }, + { + "name": "altarUpgradeGeneric", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 548 + }, + { + "name": "altarLevels", + "type_name": "keen::DsArray", + "type_hash": 2184311195, + "data_offset": 608 + }, + { + "name": "flameUpgrade", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 648 + }, + { + "name": "skilltree", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 708 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuButtonTextures", + "type_name_2": "FbUiMenuButtonTextures", + "qualified_name": "keen::ds::FbUiMenuButtonTextures", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2260696342, + "hash2": 1747638578, + "struct_fields": [ + { + "name": "background", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 0 + }, + { + "name": "backgroundDestructive", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 64 + }, + { + "name": "backGlow", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 128 + }, + { + "name": "ornament", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCharacterStyleActivePropertyFlags", + "type_name_2": "UiCharacterStyleActivePropertyFlags", + "qualified_name": "keen::ds::UiCharacterStyleActivePropertyFlags", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 552679849, + "hash2": 101088230, + "struct_fields": [ + { + "name": "font", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "tracking", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "variant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "uppercase", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "color", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "outline", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "dropShadow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiCharacterStyle", + "type_name_2": "UiCharacterStyle", + "qualified_name": "keen::ds::UiCharacterStyle", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 324211797, + "hash2": 88109479, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "activeProperties", + "type_name": "keen::ds::UiCharacterStyleActivePropertyFlags", + "type_hash": 552679849, + "data_offset": 40 + }, + { + "name": "font", + "type_name": "keen::ObjectReference", + "type_hash": 215669135, + "data_offset": 48 + }, + { + "name": "fontSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "spacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "bold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + }, + { + "name": "italic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "uppercase", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 74 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 76 + }, + { + "name": "outline", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "outlineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 88 + }, + { + "name": "outlineSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "dropShadow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "dropShadowColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 104 + }, + { + "name": "dropShadowOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuButton", + "type_name_2": "FbUiMenuButton", + "qualified_name": "keen::ds::FbUiMenuButton", + "referenced_type_name": null, + "class_size": 1472, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1759837438, + "hash2": 1591429457, + "struct_fields": [ + { + "name": "standalone", + "type_name": "keen::ds::FbUiMenuButtonTextures", + "type_hash": 2260696342, + "data_offset": 0 + }, + { + "name": "inGroupLeft", + "type_name": "keen::ds::FbUiMenuButtonTextures", + "type_hash": 2260696342, + "data_offset": 256 + }, + { + "name": "inGroupMiddle", + "type_name": "keen::ds::FbUiMenuButtonTextures", + "type_hash": 2260696342, + "data_offset": 512 + }, + { + "name": "inGroupRight", + "type_name": "keen::ds::FbUiMenuButtonTextures", + "type_hash": 2260696342, + "data_offset": 768 + }, + { + "name": "standaloneSmall", + "type_name": "keen::ds::FbUiMenuButtonTextures", + "type_hash": 2260696342, + "data_offset": 1024 + }, + { + "name": "sliderKnob", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1280 + }, + { + "name": "labelStyle", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1328 + }, + { + "name": "ornamentTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1448 + }, + { + "name": "destructiveTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1456 + }, + { + "name": "textColorDestructive", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1464 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuToggle", + "type_name_2": "FbUiMenuToggle", + "qualified_name": "keen::ds::FbUiMenuToggle", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 21462598, + "hash2": 3741249182, + "struct_fields": [ + { + "name": "toggleOn", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "toggleOff", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "backGlow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuScrollbar", + "type_name_2": "FbUiMenuScrollbar", + "qualified_name": "keen::ds::FbUiMenuScrollbar", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 251241760, + "hash2": 2041081572, + "struct_fields": [ + { + "name": "slider", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 0 + }, + { + "name": "range", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 64 + }, + { + "name": "rangeTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterInventory", + "type_name_2": "FbUiCharacterInventory", + "qualified_name": "keen::ds::FbUiCharacterInventory", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1821899144, + "hash2": 3412335451, + "struct_fields": [ + { + "name": "levelBadgeBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "xpBarLevelBadgeSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMultiToolMenu", + "type_name_2": "FbUiMultiToolMenu", + "qualified_name": "keen::ds::FbUiMultiToolMenu", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 493249711, + "hash2": 3942233514, + "struct_fields": [ + { + "name": "materialHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "tooltipMaterialHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "tooltipMaterialHintWithBlockUnit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "tooltipEmptyMaterialListHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "itemSubInfo", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "preUseHint_QuickBuilder", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "preUseHint_Terraformer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "preUseHint_NpcSummoner", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "preUseHintHud_QuickBuilder", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "preUseHintHud_Terraformer", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "preUseHintHud_NpcSummoner", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "noAltarBuild", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "craftBlocksHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "craftRoofBlocksHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "collectMaterialsHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "noMaterialsAvailable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "needsFlameAltarHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "antiTofuTint_Temp", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 272 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiEquipmentSlotIcons", + "type_name_2": "FbUiEquipmentSlotIcons", + "qualified_name": "keen::ds::FbUiEquipmentSlotIcons", + "referenced_type_name": null, + "class_size": 816, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 1620876839, + "hash2": 2376005040, + "struct_fields": [ + { + "name": "mainHand", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "shield", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "backpackExtender", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "arrow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "spell", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "wallClimber", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "hookshot", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "glider", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "accessory", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 432 + }, + { + "name": "ring", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 480 + }, + { + "name": "head", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 528 + }, + { + "name": "upperBody", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 576 + }, + { + "name": "arms", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 624 + }, + { + "name": "lowerBody", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 672 + }, + { + "name": "boots", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 720 + }, + { + "name": "vanity", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 768 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPerkIcons", + "type_name_2": "FbUiPerkIcons", + "qualified_name": "keen::ds::FbUiPerkIcons", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2569437141, + "hash2": 3481901213, + "struct_fields": [ + { + "name": "nodeOutline", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "genericAttributeNode", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFancyBox", + "type_name_2": "FbUiFancyBox", + "qualified_name": "keen::ds::FbUiFancyBox", + "referenced_type_name": null, + "class_size": 1112, + "fields_count": 23, + "primitive_type": "Struct", + "hash1": 1208342583, + "hash2": 3760818985, + "struct_fields": [ + { + "name": "cornerSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "frame", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 4 + }, + { + "name": "frameSimple", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 68 + }, + { + "name": "frameColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 132 + }, + { + "name": "backgroundShape", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 140 + }, + { + "name": "backgroundShapeHalved", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 204 + }, + { + "name": "backgroundShapeGlassMask", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 268 + }, + { + "name": "backgroundShapeHalvedGlassMask", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 332 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 396 + }, + { + "name": "backgroundColorDark", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 404 + }, + { + "name": "backgroundPattern", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 412 + }, + { + "name": "backgroundPatternColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 460 + }, + { + "name": "patternSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 468 + }, + { + "name": "frameFull", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 472 + }, + { + "name": "backgroundShapeFrameFull", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 536 + }, + { + "name": "backgroundShapeGradientToLeft", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 600 + }, + { + "name": "backgroundShapeGradientToTop", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 664 + }, + { + "name": "frameFullSimple", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 728 + }, + { + "name": "backgroundShapeFrameFullSimple", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 792 + }, + { + "name": "frameTopMinimal", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 856 + }, + { + "name": "backgroundShapeTopMinimal", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 920 + }, + { + "name": "frameFullDetailed", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 984 + }, + { + "name": "backgroundShapeFrameFullDetailed", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 1048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFancyLoadingBar", + "type_name_2": "FbUiFancyLoadingBar", + "qualified_name": "keen::ds::FbUiFancyLoadingBar", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3111401703, + "hash2": 3152851631, + "struct_fields": [ + { + "name": "background", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 0 + }, + { + "name": "bar", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 64 + }, + { + "name": "glow", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 128 + }, + { + "name": "sectionCompletedColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiSize", + "type_name_2": "UiSize", + "qualified_name": "keen::ds::UiSize", + "referenced_type_name": "keen::UiSize", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2848627932, + "hash2": 523730730, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuExplainer", + "type_name_2": "FbUiMenuExplainer", + "qualified_name": "keen::ds::FbUiMenuExplainer", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 506755630, + "hash2": 547819231, + "struct_fields": [ + { + "name": "darkenerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "areaFeatherSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "areaContentPadding", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 12 + }, + { + "name": "textMaxWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "textColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiJournalBaseInfo", + "type_name_2": "FbUiJournalBaseInfo", + "qualified_name": "keen::ds::FbUiJournalBaseInfo", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1593700441, + "hash2": 864121422, + "struct_fields": [ + { + "name": "iconFlameAltar", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "iconNpc", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "iconNpcBed", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "iconAnimal", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCodexAssets", + "type_name_2": "FbUiCodexAssets", + "qualified_name": "keen::ds::FbUiCodexAssets", + "referenced_type_name": null, + "class_size": 1144, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 946622337, + "hash2": 3304092003, + "struct_fields": [ + { + "name": "questSourceIconBG", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "repeatedQuestSourceIconBG", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "questIconFlame", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "questIconBlacksmith", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "questIconAlchemist", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "questIconHunter", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "questIconCarpenter", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "questIconFarmer", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "questIconCryptKeeper", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "questIconBard", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 432 + }, + { + "name": "questIconMisc", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 480 + }, + { + "name": "questIconTexture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 528 + }, + { + "name": "questProgressEmpty", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 576 + }, + { + "name": "questProgressFilled", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 624 + }, + { + "name": "questCheckmark", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 672 + }, + { + "name": "lorePageFound", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 720 + }, + { + "name": "lorePageLocked", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 768 + }, + { + "name": "activeQuestIndicator", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 816 + }, + { + "name": "lockedLoreTileImage", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 864 + }, + { + "name": "completedQuestsColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 912 + }, + { + "name": "flameQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 920 + }, + { + "name": "npcQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 928 + }, + { + "name": "miscQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 936 + }, + { + "name": "repeatedQuestEntryColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 944 + }, + { + "name": "baseInfo", + "type_name": "keen::ds::FbUiJournalBaseInfo", + "type_hash": 1593700441, + "data_offset": 952 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoreCategory", + "type_name_2": "FbUiLoreCategory", + "qualified_name": "keen::ds::FbUiLoreCategory", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 143938869, + "hash2": 402793847, + "struct_fields": [ + { + "name": "categoryName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "artConfig", + "type_name": "keen::ds::FbUiTileArtConfig", + "type_hash": 1803021908, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuAttributeTabs", + "type_name_2": "FbUiMenuAttributeTabs", + "qualified_name": "keen::ds::FbUiMenuAttributeTabs", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1110924926, + "hash2": 146167860, + "struct_fields": [ + { + "name": "basicsTab", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "damageTab", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "resistanceTab", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCollectionCategoryInfo", + "type_name_2": "FbUiCollectionCategoryInfo", + "qualified_name": "keen::ds::FbUiCollectionCategoryInfo", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 262620817, + "hash2": 2206303562, + "struct_fields": [ + { + "name": "category", + "type_name": "keen::ObjectReference", + "type_hash": 4233226527, + "data_offset": 0 + }, + { + "name": "label", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "icon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "float[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::float", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3107202223, + "hash2": 4280139385, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultyOptionValue", + "type_name_2": "FbUiDifficultyOptionValue", + "qualified_name": "keen::ds::FbUiDifficultyOptionValue", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 12028034, + "hash2": 1778197351, + "struct_fields": [ + { + "name": "isAvailable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "steps", + "type_name": "keen::DsArray", + "type_hash": 3107202223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultyOptionValues", + "type_name_2": "FbUiDifficultyOptionValues", + "qualified_name": "keen::ds::FbUiDifficultyOptionValues", + "referenced_type_name": null, + "class_size": 1312, + "fields_count": 36, + "primitive_type": "Struct", + "hash1": 300716899, + "hash2": 896990759, + "struct_fields": [ + { + "name": "enemyDamage", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 0 + }, + { + "name": "enemyHealth", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 48 + }, + { + "name": "enemyStamina", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 96 + }, + { + "name": "enemyPerceptionRange", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 144 + }, + { + "name": "enemyAttackFrequency", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 192 + }, + { + "name": "bossHealth", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 240 + }, + { + "name": "bossDamage", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 288 + }, + { + "name": "miningXp", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 336 + }, + { + "name": "questXp", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 384 + }, + { + "name": "combatXp", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 432 + }, + { + "name": "playerHealth", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 480 + }, + { + "name": "playerStamina", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 528 + }, + { + "name": "playerMana", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 576 + }, + { + "name": "shroudTime", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 624 + }, + { + "name": "durability", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 672 + }, + { + "name": "dayTime", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 720 + }, + { + "name": "nightTime", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 768 + }, + { + "name": "foodDuration", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 816 + }, + { + "name": "productionTime", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 864 + }, + { + "name": "plantGrowTime", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 912 + }, + { + "name": "weaponUpgradeCost", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 960 + }, + { + "name": "perkUpgradeRecyclingFactor", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 1008 + }, + { + "name": "worldRefreshTime", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 1056 + }, + { + "name": "miningDamage", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 1104 + }, + { + "name": "dropAmount", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 1152 + }, + { + "name": "starvingTime", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 1200 + }, + { + "name": "bodyHeat", + "type_name": "keen::ds::FbUiDifficultyOptionValue", + "type_hash": 12028034, + "data_offset": 1248 + }, + { + "name": "tombstoneMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1296 + }, + { + "name": "randomSpawnerAmount", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1297 + }, + { + "name": "aggroPoolAmount", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1298 + }, + { + "name": "enableDurability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1299 + }, + { + "name": "enableStarvingDebuff", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1300 + }, + { + "name": "pacifyAllEnemies", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1301 + }, + { + "name": "weatherFrequency", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1302 + }, + { + "name": "enableGliderTurbulences", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1303 + }, + { + "name": "tamingStartleRepercussion", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultyPreset", + "type_name_2": "FbUiDifficultyPreset", + "qualified_name": "keen::ds::FbUiDifficultyPreset", + "referenced_type_name": null, + "class_size": 312, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 204356539, + "hash2": 2667564347, + "struct_fields": [ + { + "name": "presetId", + "type_name": "keen::ds::ecs::GameSettingsPreset", + "type_hash": 2718665048, + "data_offset": 0 + }, + { + "name": "label", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4 + }, + { + "name": "desc", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 20 + }, + { + "name": "iconSelected", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 36 + }, + { + "name": "iconUnelected", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 84 + }, + { + "name": "iconSmall", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 132 + }, + { + "name": "settings", + "type_name": "keen::ds::ecs::GameSettings", + "type_hash": 4190741839, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDifficultySettings", + "type_name_2": "FbUiDifficultySettings", + "qualified_name": "keen::ds::FbUiDifficultySettings", + "referenced_type_name": null, + "class_size": 2920, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2483759097, + "hash2": 1137656883, + "struct_fields": [ + { + "name": "settingValues", + "type_name": "keen::ds::FbUiDifficultyOptionValues", + "type_hash": 300716899, + "data_offset": 0 + }, + { + "name": "presetDefault", + "type_name": "keen::ds::FbUiDifficultyPreset", + "type_hash": 204356539, + "data_offset": 1312 + }, + { + "name": "presetBuilder", + "type_name": "keen::ds::FbUiDifficultyPreset", + "type_hash": 204356539, + "data_offset": 1624 + }, + { + "name": "presetSurvivalist", + "type_name": "keen::ds::FbUiDifficultyPreset", + "type_hash": 204356539, + "data_offset": 1936 + }, + { + "name": "presetCombatChallenge", + "type_name": "keen::ds::FbUiDifficultyPreset", + "type_hash": 204356539, + "data_offset": 2248 + }, + { + "name": "custom", + "type_name": "keen::ds::FbUiDifficultyPreset", + "type_hash": 204356539, + "data_offset": 2560 + }, + { + "name": "presetIconHighlight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 2872 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiCollectionCategoryInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiCollectionCategoryInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3656122006, + "hash2": 1482772615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiLoreCategory[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiLoreCategory", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1082314434, + "hash2": 3957364067, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenu", + "type_name_2": "FbUiMenu", + "qualified_name": "keen::ds::FbUiMenu", + "referenced_type_name": null, + "class_size": 11792, + "fields_count": 51, + "primitive_type": "Struct", + "hash1": 1440364126, + "hash2": 329418734, + "struct_fields": [ + { + "name": "metrics", + "type_name": "keen::ds::FbUiHudMenuMetrics", + "type_hash": 2344413686, + "data_offset": 0 + }, + { + "name": "paragraphStyles", + "type_name": "keen::ds::FbUiMenuParagraphStyles", + "type_hash": 122681686, + "data_offset": 216 + }, + { + "name": "characterInventory", + "type_name": "keen::ds::FbUiCharacterInventory", + "type_hash": 1821899144, + "data_offset": 280 + }, + { + "name": "skilltree", + "type_name": "keen::ds::FbUiSkillTree", + "type_hash": 1327142766, + "data_offset": 336 + }, + { + "name": "map", + "type_name": "keen::ds::FbUiAdventureMap", + "type_hash": 2442010655, + "data_offset": 2200 + }, + { + "name": "crafting", + "type_name": "keen::ds::FbUiCrafting", + "type_hash": 854766563, + "data_offset": 3616 + }, + { + "name": "collectionCategories", + "type_name": "keen::DsArray", + "type_hash": 3656122006, + "data_offset": 4064 + }, + { + "name": "multiTool", + "type_name": "keen::ds::FbUiMultiToolMenu", + "type_hash": 493249711, + "data_offset": 4104 + }, + { + "name": "equipmentSlots", + "type_name": "keen::ds::FbUiEquipmentSlotIcons", + "type_hash": 1620876839, + "data_offset": 4384 + }, + { + "name": "itemPerkIcons", + "type_name": "keen::ds::FbUiPerkIcons", + "type_hash": 2569437141, + "data_offset": 5200 + }, + { + "name": "attributeTabs", + "type_name": "keen::ds::FbUiMenuAttributeTabs", + "type_hash": 1110924926, + "data_offset": 5296 + }, + { + "name": "menuTiles", + "type_name": "keen::ds::FbUiMenuTiles", + "type_hash": 551307211, + "data_offset": 5440 + }, + { + "name": "codexMotherflameIllustration", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 6208 + }, + { + "name": "codexAssets", + "type_name": "keen::ds::FbUiCodexAssets", + "type_hash": 946622337, + "data_offset": 6256 + }, + { + "name": "loreCategories", + "type_name": "keen::DsArray", + "type_hash": 1082314434, + "data_offset": 7400 + }, + { + "name": "button", + "type_name": "keen::ds::FbUiMenuButton", + "type_hash": 1759837438, + "data_offset": 7440 + }, + { + "name": "toggle", + "type_name": "keen::ds::FbUiMenuToggle", + "type_hash": 21462598, + "data_offset": 8912 + }, + { + "name": "scrollbar", + "type_name": "keen::ds::FbUiMenuScrollbar", + "type_hash": 251241760, + "data_offset": 9056 + }, + { + "name": "loadingBar", + "type_name": "keen::ds::FbUiFancyLoadingBar", + "type_hash": 3111401703, + "data_offset": 9192 + }, + { + "name": "frostedGlassDefaultTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9392 + }, + { + "name": "backgroundDarkenerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9400 + }, + { + "name": "topTabBackground", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9408 + }, + { + "name": "tabLabelIdleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9472 + }, + { + "name": "tabLabelHighlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9480 + }, + { + "name": "tabHighlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9488 + }, + { + "name": "tabHighlight", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9496 + }, + { + "name": "basicWidgetColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9560 + }, + { + "name": "basicWidgetColorHighlighted", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9568 + }, + { + "name": "tileBackgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9576 + }, + { + "name": "tileHighlightOutlineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 9584 + }, + { + "name": "basicWidgetMinimizedShape", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9592 + }, + { + "name": "basicWidgetBackground", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9656 + }, + { + "name": "basicWidgetBackgroundWide", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9720 + }, + { + "name": "basicWidgetBackgroundLarge", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9784 + }, + { + "name": "basicWidgetBackgroundFaded", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9848 + }, + { + "name": "basicWidgetHeader", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9912 + }, + { + "name": "basicWidgetRarityStripe", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 9976 + }, + { + "name": "basicWidgetHighlightOutline", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 10040 + }, + { + "name": "fancyBox", + "type_name": "keen::ds::FbUiFancyBox", + "type_hash": 1208342583, + "data_offset": 10104 + }, + { + "name": "pillWidgetBackground", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 11216 + }, + { + "name": "flameIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11280 + }, + { + "name": "moveStacksLeftIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11328 + }, + { + "name": "moveStacksRightIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11376 + }, + { + "name": "iconPlayerInventory", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11424 + }, + { + "name": "iconStorageInventory", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11472 + }, + { + "name": "iconOpenInventoryTransactions", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11520 + }, + { + "name": "spatialFactoryInfoBg", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11568 + }, + { + "name": "actionbarTutorialKeyImage", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11616 + }, + { + "name": "fancyToggleSmallOff", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11664 + }, + { + "name": "fancyToggleSmallOn", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 11712 + }, + { + "name": "explainer", + "type_name": "keen::ds::FbUiMenuExplainer", + "type_hash": 506755630, + "data_offset": 11760 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemSlotFrame", + "type_name_2": "FbUiItemSlotFrame", + "qualified_name": "keen::ds::FbUiItemSlotFrame", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3171893719, + "hash2": 3463079720, + "struct_fields": [ + { + "name": "shapeBase", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "shapeSubtle", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "outline", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemSlotMinimal", + "type_name_2": "FbUiItemSlotMinimal", + "qualified_name": "keen::ds::FbUiItemSlotMinimal", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1919360361, + "hash2": 4166516270, + "struct_fields": [ + { + "name": "cookable", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "uncookable", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "empty", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemEquipIndicator", + "type_name_2": "FbUiItemEquipIndicator", + "qualified_name": "keen::ds::FbUiItemEquipIndicator", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2457923927, + "hash2": 1144458985, + "struct_fields": [ + { + "name": "label", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "texture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 16 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + }, + { + "name": "useFrame", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemStackProperties", + "type_name_2": "FbUiItemStackProperties", + "qualified_name": "keen::ds::FbUiItemStackProperties", + "referenced_type_name": null, + "class_size": 1288, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 2686135839, + "hash2": 2020375075, + "struct_fields": [ + { + "name": "isNew", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "equippableFrame", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "equipMissingHint", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "initialEquipActionMessage", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "labelEquipped", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "labelUnequipped", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "actionBarHighlight", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 192 + }, + { + "name": "instaUse", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 268 + }, + { + "name": "armor", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 344 + }, + { + "name": "vanityArmor", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 420 + }, + { + "name": "rangedWeapon", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 496 + }, + { + "name": "arrow", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 572 + }, + { + "name": "spell", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 648 + }, + { + "name": "blueprintDefaultShape", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 724 + }, + { + "name": "blueprintDefaultMaterial", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 800 + }, + { + "name": "blueprintRoofShape", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 876 + }, + { + "name": "blueprintRoofMaterial", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 952 + }, + { + "name": "blueprintTerrainShape", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 1028 + }, + { + "name": "blueprintTerrainMaterial", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 1104 + }, + { + "name": "missingTwitchPermission", + "type_name": "keen::ds::FbUiItemEquipIndicator", + "type_hash": 2457923927, + "data_offset": 1180 + }, + { + "name": "durabilityColorDefault", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1256 + }, + { + "name": "durabilityColorLow", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1264 + }, + { + "name": "durabilityColorDraining", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1272 + }, + { + "name": "durabilityColorDrainingLow", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1280 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemSlot", + "type_name_2": "FbUiItemSlot", + "qualified_name": "keen::ds::FbUiItemSlot", + "referenced_type_name": null, + "class_size": 2008, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2378821126, + "hash2": 3453838160, + "struct_fields": [ + { + "name": "properties", + "type_name": "keen::ds::FbUiItemStackProperties", + "type_hash": 2686135839, + "data_offset": 0 + }, + { + "name": "backpack", + "type_name": "keen::ds::FbUiItemSlotFrame", + "type_hash": 3171893719, + "data_offset": 1288 + }, + { + "name": "minimal", + "type_name": "keen::ds::FbUiItemSlotMinimal", + "type_hash": 1919360361, + "data_offset": 1432 + }, + { + "name": "countNumberStyle", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1576 + }, + { + "name": "grabAmountColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1696 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1704 + }, + { + "name": "backgroundColorBright", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1712 + }, + { + "name": "actionbarPageInactive", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1720 + }, + { + "name": "actionbarPageActive", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1768 + }, + { + "name": "pageHint", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1816 + }, + { + "name": "blueprintBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1864 + }, + { + "name": "blueprintTypeIconMini", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1912 + }, + { + "name": "blueprintIntroItemIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1960 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiBlueprint", + "type_name_2": "FbUiBlueprint", + "qualified_name": "keen::ds::FbUiBlueprint", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3931303556, + "hash2": 4139264216, + "struct_fields": [ + { + "name": "introRecipeName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "introRecipeDescription1", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "introRecipeDescription2", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "introItemSubinfo", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "introItemEmptyHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "introItemUsageHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "materialHeader", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "tooltipMaterialHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "tooltipMaterialHintWithBlockUnit", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "tooltipEmptyMaterialListHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "antiTofuTint_Temp", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiBuffIcons", + "type_name_2": "FbUiBuffIcons", + "qualified_name": "keen::ds::FbUiBuffIcons", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1719876894, + "hash2": 1681784165, + "struct_fields": [ + { + "name": "circularBarMask", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "frameColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "pieFillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "pieFillColorHungry", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + }, + { + "name": "pieFillColorStarving", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 72 + }, + { + "name": "pieLineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 80 + }, + { + "name": "extremeCold", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 88 + }, + { + "name": "extremeHeat", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 136 + }, + { + "name": "restedConditionsBracket", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiAnimatedHealthBarColors", + "type_name_2": "FbUiAnimatedHealthBarColors", + "qualified_name": "keen::ds::FbUiAnimatedHealthBarColors", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1602535343, + "hash2": 2294153668, + "struct_fields": [ + { + "name": "frameColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "rangeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "fillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "fillEndColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "damageColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "healColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudBuffDisplay", + "type_name_2": "FbUiHudBuffDisplay", + "qualified_name": "keen::ds::FbUiHudBuffDisplay", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1040619551, + "hash2": 3080912333, + "struct_fields": [ + { + "name": "textEntriesOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "offsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "iconColumnsDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "restedAnchorSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "restedBarPieceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudPlayerStatus", + "type_name_2": "FbUiHudPlayerStatus", + "qualified_name": "keen::ds::FbUiHudPlayerStatus", + "referenced_type_name": null, + "class_size": 592, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 1676227469, + "hash2": 2673557727, + "struct_fields": [ + { + "name": "widgetBaseOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "flameWarningThresholds", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 8 + }, + { + "name": "buffDisplay", + "type_name": "keen::ds::FbUiHudBuffDisplay", + "type_hash": 1040619551, + "data_offset": 24 + }, + { + "name": "barBackground", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 52 + }, + { + "name": "barBorderThickness", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 116 + }, + { + "name": "barGroupOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 132 + }, + { + "name": "xpBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 140 + }, + { + "name": "xpBarOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 148 + }, + { + "name": "xpBarDisplayTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "healthBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 160 + }, + { + "name": "manaBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 168 + }, + { + "name": "staminaCircleMain", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 176 + }, + { + "name": "staminaCircleBuff", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 224 + }, + { + "name": "staminaCircleInner", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 272 + }, + { + "name": "staminaCirlceSizesInner", + "type_name": "keen::DsArray", + "type_hash": 2647501488, + "data_offset": 320 + }, + { + "name": "staminaCirlceSizesOuter", + "type_name": "keen::DsArray", + "type_hash": 2647501488, + "data_offset": 360 + }, + { + "name": "xpColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 400 + }, + { + "name": "healthColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 448 + }, + { + "name": "staminaColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 496 + }, + { + "name": "manaColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 544 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiAltarAttentionMarkerAnim", + "type_name_2": "FbUiAltarAttentionMarkerAnim", + "qualified_name": "keen::ds::FbUiAltarAttentionMarkerAnim", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1667561912, + "hash2": 2359791783, + "struct_fields": [ + { + "name": "altarAttentionMarkerFadeIn", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "altarAttentionMarkerFadeOut", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "altarAttentionMarkerSecondPingDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "altarAttentionMarkerAnimDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "altarAttentionMarkerGrow", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "altarAttentionMarkerPingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "altarAttentionMarkerMinAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "altarAttentionMarkerPingStartAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "altarAttentionMarkerPingEndAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHUDSpatial", + "type_name_2": "FbUiHUDSpatial", + "qualified_name": "keen::ds::FbUiHUDSpatial", + "referenced_type_name": null, + "class_size": 888, + "fields_count": 39, + "primitive_type": "Struct", + "hash1": 105781034, + "hash2": 3410801064, + "struct_fields": [ + { + "name": "lockonBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "lockonArrow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "lockonArrowSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "healthBar", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 100 + }, + { + "name": "critIndicator", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 164 + }, + { + "name": "critIndcatorOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 212 + }, + { + "name": "bonusIndicatorUnitHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "bonusIndicator", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 224 + }, + { + "name": "malusIndicator", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 272 + }, + { + "name": "bonusGroupOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 320 + }, + { + "name": "malusGroupOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 328 + }, + { + "name": "symbolOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 336 + }, + { + "name": "enemyHealthBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 344 + }, + { + "name": "enemyStaminaBarSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 352 + }, + { + "name": "enemyBarGroupBorder", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 360 + }, + { + "name": "damageTextBonusFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 368 + }, + { + "name": "damageTextBonusOutlineFrom", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 376 + }, + { + "name": "damageTextBonusOutlineTo", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 384 + }, + { + "name": "damageTextMalusFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 392 + }, + { + "name": "damageTextMalusOutlineFrom", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 400 + }, + { + "name": "damageTextMalusOutlineTo", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 408 + }, + { + "name": "attentionMarkerQuestionFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 416 + }, + { + "name": "attentionMarkerFlameInfoFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 424 + }, + { + "name": "coPlayerHealthColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 432 + }, + { + "name": "coPlayerLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 480 + }, + { + "name": "coPlayerLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 488 + }, + { + "name": "enemyLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 496 + }, + { + "name": "enemyLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 504 + }, + { + "name": "enemyHealthColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 512 + }, + { + "name": "enemyStaminaColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 560 + }, + { + "name": "enemyHigherLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 608 + }, + { + "name": "enemyHigherLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 616 + }, + { + "name": "enemyHigherLevelHealthColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 624 + }, + { + "name": "neutralHealthColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 672 + }, + { + "name": "neutralLevelBadgeFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 720 + }, + { + "name": "neutralLevelBadgeOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 728 + }, + { + "name": "altarAttentionMarkerAnim", + "type_name": "keen::ds::FbUiAltarAttentionMarkerAnim", + "type_hash": 1667561912, + "data_offset": 736 + }, + { + "name": "hookshotPullTargetIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 792 + }, + { + "name": "hookshotPullTargetIconLockIn", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 840 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudBuildModeHint", + "type_name_2": "FbUiHudBuildModeHint", + "qualified_name": "keen::ds::FbUiHudBuildModeHint", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1008848644, + "hash2": 926459735, + "struct_fields": [ + { + "name": "slotArc", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "flashGradient", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "flashMask", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "flashColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudTopNotification", + "type_name_2": "FbUiHudTopNotification", + "qualified_name": "keen::ds::FbUiHudTopNotification", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1830849670, + "hash2": 138850871, + "struct_fields": [ + { + "name": "bgTintColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "accentColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "barMinWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "featherWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "fadeWaveWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "fadeInFromX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "offsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "offsetYinPlayerMenu", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudLowHealth", + "type_name_2": "FbUiHudLowHealth", + "qualified_name": "keen::ds::FbUiHudLowHealth", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2795044302, + "hash2": 1646327278, + "struct_fields": [ + { + "name": "vignette", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "vignetteColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "enterLowHealthFlashColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudFreezing", + "type_name_2": "FbUiHudFreezing", + "qualified_name": "keen::ds::FbUiHudFreezing", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1124253418, + "hash2": 2752086806, + "struct_fields": [ + { + "name": "frostBorderCorner", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "frostBorderCornerHeightTop", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "frostBorderCornerHeightBottom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "frostBorderTop", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 56 + }, + { + "name": "creepInGradientTop", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 104 + }, + { + "name": "frostBorderHeightTop", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "frostBorderLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 156 + }, + { + "name": "creepInGradientLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 204 + }, + { + "name": "frostBorderHeightBottom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 252 + }, + { + "name": "frostBorderWidthLeftRight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 256 + }, + { + "name": "frostBorderTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 260 + }, + { + "name": "bgBlurCenterYratio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 268 + }, + { + "name": "bgBlurVignetteTopLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 272 + }, + { + "name": "bgBlurVignetteTop", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 320 + }, + { + "name": "bgBlurVignetteLeft", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 368 + }, + { + "name": "bgBlurCornerWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 416 + }, + { + "name": "bgBlurCornerHeightTop", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 420 + }, + { + "name": "bgBlurCornerHeightBottom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 424 + }, + { + "name": "bgBlurTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 428 + }, + { + "name": "idleAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 436 + }, + { + "name": "criticalAlpha", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 440 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiControlScheme", + "type_name_2": "FbUiControlScheme", + "qualified_name": "keen::ds::FbUiControlScheme", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 159357601, + "hash2": 3616881362, + "struct_fields": [ + { + "name": "game", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "build", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudBarrierUnlock", + "type_name_2": "FbUiHudBarrierUnlock", + "qualified_name": "keen::ds::FbUiHudBarrierUnlock", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 499891065, + "hash2": 1950852768, + "struct_fields": [ + { + "name": "backgroundSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "backgroundOrnamentMask", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 4 + }, + { + "name": "backgroundOrnament", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 52 + }, + { + "name": "ornamentHighlight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 100 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 148 + }, + { + "name": "highlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 156 + }, + { + "name": "glowRippleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 164 + }, + { + "name": "lootDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudMessage", + "type_name_2": "FbUiHudMessage", + "qualified_name": "keen::ds::FbUiHudMessage", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3196744041, + "hash2": 68007631, + "struct_fields": [ + { + "name": "backgroundSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "backgroundOrnamentMask", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 4 + }, + { + "name": "backgroundOrnament", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 52 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "badgeSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "badgeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 112 + }, + { + "name": "glowRippleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 120 + }, + { + "name": "messageDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 128 + }, + { + "name": "lootDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudPartyHealth", + "type_name_2": "FbUiHudPartyHealth", + "qualified_name": "keen::ds::FbUiHudPartyHealth", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1160364684, + "hash2": 2834485018, + "struct_fields": [ + { + "name": "widgetGroupOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "barFillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + }, + { + "name": "barBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 12 + }, + { + "name": "barSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "barSpacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudServerPerformance", + "type_name_2": "FbUiHudServerPerformance", + "qualified_name": "keen::ds::FbUiHudServerPerformance", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4167794869, + "hash2": 3942730228, + "struct_fields": [ + { + "name": "badPerformanceHintDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "badPerformanceHintInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "criticalPerformanceHintDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "criticalPerformanceHintInterval", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "badPerformanceBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "badPerformanceTextColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "criticalPerformanceBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "criticalPerformanceTextColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudOutOfBound", + "type_name_2": "FbUiHudOutOfBound", + "qualified_name": "keen::ds::FbUiHudOutOfBound", + "referenced_type_name": null, + "class_size": 264, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3639154373, + "hash2": 1102125996, + "struct_fields": [ + { + "name": "coverColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "messageString", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8 + }, + { + "name": "messageStyle", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 24 + }, + { + "name": "countdownStyle", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudNightSpeed", + "type_name_2": "FbUiHudNightSpeed", + "qualified_name": "keen::ds::FbUiHudNightSpeed", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1727269951, + "hash2": 2819753165, + "struct_fields": [ + { + "name": "bgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "iconColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "sleeper", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 16 + }, + { + "name": "partyMember", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 64 + }, + { + "name": "nightSpeed", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudGameProgressSummary", + "type_name_2": "FbUiHudGameProgressSummary", + "qualified_name": "keen::ds::FbUiHudGameProgressSummary", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3174336973, + "hash2": 3394861322, + "struct_fields": [ + { + "name": "visibleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "bgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "accentColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "featherWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "widgetWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "contentTintFlame", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "contentTintCrafting", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "illustrationFlame", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "illustrationCrafting", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudMusicBuff", + "type_name_2": "FbUiHudMusicBuff", + "qualified_name": "keen::ds::FbUiHudMusicBuff", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 67140048, + "hash2": 1642401208, + "struct_fields": [ + { + "name": "musicIcon", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "barBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "barFillColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "barFillEndColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudAnimalTaming", + "type_name_2": "FbUiHudAnimalTaming", + "qualified_name": "keen::ds::FbUiHudAnimalTaming", + "referenced_type_name": null, + "class_size": 296, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4275565344, + "hash2": 980691484, + "struct_fields": [ + { + "name": "tamingIconEmpty", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "tamingIconPending", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "tamingIconFull", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "tamingAttention", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "tamingAlert", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "tamingAlertOutline", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "tamingIconColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemWheel", + "type_name_2": "FbUiItemWheel", + "qualified_name": "keen::ds::FbUiItemWheel", + "referenced_type_name": null, + "class_size": 376, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3744029353, + "hash2": 214633900, + "struct_fields": [ + { + "name": "slotColor_idle", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "slotColor_selected", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "previewCenterColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "background", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 24 + }, + { + "name": "direction", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 72 + }, + { + "name": "dot_selected", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 120 + }, + { + "name": "dot_unselected", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 168 + }, + { + "name": "wheelRing_complete", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 216 + }, + { + "name": "wheelRing_highlight", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 264 + }, + { + "name": "blurredBackgroundMask", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 312 + }, + { + "name": "highlightColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 360 + }, + { + "name": "stickOutOfRangeColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 368 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCompass", + "type_name_2": "FbUiCompass", + "qualified_name": "keen::ds::FbUiCompass", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1390895611, + "hash2": 1953716469, + "struct_fields": [ + { + "name": "baseSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 0 + }, + { + "name": "background", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 8 + }, + { + "name": "northBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 56 + }, + { + "name": "north", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 104 + }, + { + "name": "east", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 152 + }, + { + "name": "south", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 200 + }, + { + "name": "west", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 248 + }, + { + "name": "mark", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 296 + }, + { + "name": "player", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 344 + }, + { + "name": "priorityMarker", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 392 + }, + { + "name": "fogTimerShape", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 440 + }, + { + "name": "fogMeterFill", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 504 + }, + { + "name": "fogMeterRange", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 512 + }, + { + "name": "fogMeterDrain", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiDialog", + "type_name_2": "FbUiDialog", + "qualified_name": "keen::ds::FbUiDialog", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 354055549, + "hash2": 3334791596, + "struct_fields": [ + { + "name": "dialogMarkerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "floatingBubbleTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "frostedGlassTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "textColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "Time[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::Time", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 917338000, + "hash2": 3384346479, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHUD", + "type_name_2": "FbUiHUD", + "qualified_name": "keen::ds::FbUiHUD", + "referenced_type_name": null, + "class_size": 5368, + "fields_count": 31, + "primitive_type": "Struct", + "hash1": 999801954, + "hash2": 3986968229, + "struct_fields": [ + { + "name": "screenPosClampingBorderDefault", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 0 + }, + { + "name": "widgetBackgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "cursors", + "type_name": "keen::ds::FbUiCursors", + "type_hash": 424913072, + "data_offset": 24 + }, + { + "name": "playerStatus", + "type_name": "keen::ds::FbUiHudPlayerStatus", + "type_hash": 1676227469, + "data_offset": 296 + }, + { + "name": "itemWheel", + "type_name": "keen::ds::FbUiItemWheel", + "type_hash": 3744029353, + "data_offset": 888 + }, + { + "name": "levelUp", + "type_name": "keen::ds::FbUiHudMessage", + "type_hash": 3196744041, + "data_offset": 1264 + }, + { + "name": "barrierUnlocked", + "type_name": "keen::ds::FbUiHudBarrierUnlock", + "type_hash": 499891065, + "data_offset": 1408 + }, + { + "name": "doorUnlocked", + "type_name": "keen::ds::FbUiHudMessage", + "type_hash": 3196744041, + "data_offset": 1592 + }, + { + "name": "secretUnlocked", + "type_name": "keen::ds::FbUiHudMessage", + "type_hash": 3196744041, + "data_offset": 1736 + }, + { + "name": "quickItemBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1880 + }, + { + "name": "equippedItemBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1928 + }, + { + "name": "buildModeHint", + "type_name": "keen::ds::FbUiHudBuildModeHint", + "type_hash": 1008848644, + "data_offset": 1976 + }, + { + "name": "buildingZoneTooltipOutline", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 2128 + }, + { + "name": "nightSpeedHint", + "type_name": "keen::ds::FbUiHudNightSpeed", + "type_hash": 1727269951, + "data_offset": 2136 + }, + { + "name": "compass", + "type_name": "keen::ds::FbUiCompass", + "type_hash": 1390895611, + "data_offset": 2296 + }, + { + "name": "bossHealthColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 2824 + }, + { + "name": "bossStaminaColors", + "type_name": "keen::ds::FbUiAnimatedHealthBarColors", + "type_hash": 1602535343, + "data_offset": 2872 + }, + { + "name": "bossBarBorderThickness", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 2920 + }, + { + "name": "dialog", + "type_name": "keen::ds::FbUiDialog", + "type_hash": 354055549, + "data_offset": 2936 + }, + { + "name": "spatial", + "type_name": "keen::ds::FbUiHUDSpatial", + "type_hash": 105781034, + "data_offset": 2968 + }, + { + "name": "notification", + "type_name": "keen::ds::FbUiHudTopNotification", + "type_hash": 1830849670, + "data_offset": 3856 + }, + { + "name": "gameProgressSummary", + "type_name": "keen::ds::FbUiHudGameProgressSummary", + "type_hash": 3174336973, + "data_offset": 3896 + }, + { + "name": "lowHealthVignette", + "type_name": "keen::ds::FbUiHudLowHealth", + "type_hash": 2795044302, + "data_offset": 4040 + }, + { + "name": "blurVignette", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 4104 + }, + { + "name": "freezingVignette", + "type_name": "keen::ds::FbUiHudFreezing", + "type_hash": 1124253418, + "data_offset": 4152 + }, + { + "name": "freezingWarningTimes", + "type_name": "keen::DsArray", + "type_hash": 917338000, + "data_offset": 4600 + }, + { + "name": "partyHealth", + "type_name": "keen::ds::FbUiHudPartyHealth", + "type_hash": 1160364684, + "data_offset": 4640 + }, + { + "name": "outOfBound", + "type_name": "keen::ds::FbUiHudOutOfBound", + "type_hash": 3639154373, + "data_offset": 4672 + }, + { + "name": "serverPerforamceHint", + "type_name": "keen::ds::FbUiHudServerPerformance", + "type_hash": 4167794869, + "data_offset": 4936 + }, + { + "name": "musicBuff", + "type_name": "keen::ds::FbUiHudMusicBuff", + "type_hash": 67140048, + "data_offset": 5000 + }, + { + "name": "animalTaming", + "type_name": "keen::ds::FbUiHudAnimalTaming", + "type_hash": 4275565344, + "data_offset": 5072 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHeadline", + "type_name_2": "FbUiHeadline", + "qualified_name": "keen::ds::FbUiHeadline", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 139431669, + "hash2": 1897268771, + "struct_fields": [ + { + "name": "background", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 0 + }, + { + "name": "criticalWarningTextColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiItemWheelDummy", + "type_name_2": "FbUiItemWheelDummy", + "qualified_name": "keen::ds::FbUiItemWheelDummy", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2841567447, + "hash2": 1070948098, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "glow", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiScreenDeath", + "type_name_2": "FbUiScreenDeath", + "qualified_name": "keen::ds::FbUiScreenDeath", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4004897909, + "hash2": 1059818963, + "struct_fields": [ + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "normalDeathHeadline", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 8 + }, + { + "name": "fogDeathHeadline", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 24 + }, + { + "name": "fogDeathHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 40 + }, + { + "name": "inventoryLossHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 56 + }, + { + "name": "inventoryLostAllHint", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiScreen", + "type_name_2": "FbUiScreen", + "qualified_name": "keen::ds::FbUiScreen", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 347660973, + "hash2": 413811887, + "struct_fields": [ + { + "name": "titleScreenKeyArt", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "death", + "type_name": "keen::ds::FbUiScreenDeath", + "type_hash": 4004897909, + "data_offset": 48 + }, + { + "name": "controlScheme", + "type_name": "keen::ds::FbUiControlScheme", + "type_hash": 159357601, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuGeneric", + "type_name_2": "FbUiSoundsMenuGeneric", + "qualified_name": "keen::ds::FbUiSoundsMenuGeneric", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 38, + "primitive_type": "Struct", + "hash1": 4097634479, + "hash2": 1755699566, + "struct_fields": [ + { + "name": "flameAltarOpen", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "skillTreeOpen", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "loreOpen", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "loreClose", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "signpostOpen", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "signpostClose", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "systemMenuOpen", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "open", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "close", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "back", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + }, + { + "name": "clickNeutral", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 160 + }, + { + "name": "tabChange", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 176 + }, + { + "name": "highlightChange", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 192 + }, + { + "name": "entryTrigger", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 208 + }, + { + "name": "entryCancel", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 224 + }, + { + "name": "entryTriggerFailed", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 240 + }, + { + "name": "sideMenuFadeIn", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 256 + }, + { + "name": "sideMenuFadeOut", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 272 + }, + { + "name": "equip", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 288 + }, + { + "name": "unequip", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 304 + }, + { + "name": "columnChange", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 320 + }, + { + "name": "leftOpen", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 336 + }, + { + "name": "leftClose", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 352 + }, + { + "name": "rightOpen", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 368 + }, + { + "name": "rightClose", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 384 + }, + { + "name": "settingWidgetToggle", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 400 + }, + { + "name": "settingMenuEnter", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 416 + }, + { + "name": "settingMenuExit", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 432 + }, + { + "name": "repairItems", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 448 + }, + { + "name": "textEnter", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 464 + }, + { + "name": "textDelete", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 480 + }, + { + "name": "mouseClickGeneric", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 496 + }, + { + "name": "mouseHover", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 512 + }, + { + "name": "activatePersonalProgression", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 528 + }, + { + "name": "deactivatePersonalProgression", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 544 + }, + { + "name": "sliderValueChange", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 560 + }, + { + "name": "selectDifficulty", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 576 + }, + { + "name": "mouseHoverTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 592 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuCrafting", + "type_name_2": "FbUiSoundsMenuCrafting", + "qualified_name": "keen::ds::FbUiSoundsMenuCrafting", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4057006504, + "hash2": 948395439, + "struct_fields": [ + { + "name": "recipeMoveWithinEntry", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "highlightChange", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "entryTrigger", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "craftingSuccessful", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "craftingFailed", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "pin", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "unpin", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "pinnedRecipeCraftable", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "pinnedRecipeIngredientCompleted", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "perkUnlocked", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuJournal", + "type_name_2": "FbUiSoundsMenuJournal", + "qualified_name": "keen::ds::FbUiSoundsMenuJournal", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1685210633, + "hash2": 114481765, + "struct_fields": [ + { + "name": "openTile", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsMenuAltar", + "type_name_2": "FbUiSoundsMenuAltar", + "qualified_name": "keen::ds::FbUiSoundsMenuAltar", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 207089322, + "hash2": 478801246, + "struct_fields": [ + { + "name": "highlightChange", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "entryTrigger", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "leave", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsLootAquisition", + "type_name_2": "FbUiSoundsLootAquisition", + "qualified_name": "keen::ds::FbUiSoundsLootAquisition", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1548728933, + "hash2": 4082909906, + "struct_fields": [ + { + "name": "common", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "uncommon", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "rare", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "epic", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "legendary", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "keyItem", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "specialLoot", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "npc", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "pinnedRecipeHint", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "twitchReward", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsSkillTree", + "type_name_2": "FbUiSoundsSkillTree", + "qualified_name": "keen::ds::FbUiSoundsSkillTree", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 848006750, + "hash2": 2477733977, + "struct_fields": [ + { + "name": "attributeIncrease", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "skillUnlock", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "skillModUnlock", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "passivePerkUnlock", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "reactivePerkUnlock", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "nodeFocus", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "zoomIn", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "zoomOut", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsEventMessages", + "type_name_2": "FbUiSoundsEventMessages", + "qualified_name": "keen::ds::FbUiSoundsEventMessages", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 2375006219, + "hash2": 1272823653, + "struct_fields": [ + { + "name": "menuUpdateNotification", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "locationDiscovery", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "npcRevived", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "amuletUpgraded", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "giftingSend", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "giftingReceive", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "clueCompleted", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "playerLevelup", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "flameLevelUp", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "magicBarrierUnlocked", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + }, + { + "name": "doorUnlocked", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 160 + }, + { + "name": "secretDoorUnlocked", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 176 + }, + { + "name": "allMissedQuestsCompleted", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 192 + }, + { + "name": "newTwitchDropUnlocked", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsAdventureMap", + "type_name_2": "FbUiSoundsAdventureMap", + "qualified_name": "keen::ds::FbUiSoundsAdventureMap", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3036870767, + "hash2": 980138508, + "struct_fields": [ + { + "name": "waypointSet", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "waypointClear", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "waypointLocate", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "zoomIn", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "zoomOut", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "fastTravelTriggered", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "showOnMap", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "goToHomeBase", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "recenter", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "playerPing", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsDialog", + "type_name_2": "FbUiSoundsDialog", + "qualified_name": "keen::ds::FbUiSoundsDialog", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 543439597, + "hash2": 218641526, + "struct_fields": [ + { + "name": "startDialog", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "changeEntry", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "confirmEntry", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "cancelEntry", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "revealDialogLine", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsActionbar", + "type_name_2": "FbUiSoundsActionbar", + "qualified_name": "keen::ds::FbUiSoundsActionbar", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4059772212, + "hash2": 476034810, + "struct_fields": [ + { + "name": "cantUse", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "moveHighlight", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "cycleActionbar", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsBackpack", + "type_name_2": "FbUiSoundsBackpack", + "qualified_name": "keen::ds::FbUiSoundsBackpack", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1830936623, + "hash2": 1538904133, + "struct_fields": [ + { + "name": "inventoryFull", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "deleteItem", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "dropItemIntoSlot", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "dropItemIntoActionBar", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "grabItem", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "swapItems", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "splitStack", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "salvageItem", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "sortInventory", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsItemWheel", + "type_name_2": "FbUiSoundsItemWheel", + "qualified_name": "keen::ds::FbUiSoundsItemWheel", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3917655097, + "hash2": 2139483215, + "struct_fields": [ + { + "name": "open", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "close", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "changeHighlight", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsHud", + "type_name_2": "FbUiSoundsHud", + "qualified_name": "keen::ds::FbUiSoundsHud", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 863863826, + "hash2": 3494458684, + "struct_fields": [ + { + "name": "lowHealthLoop", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "enterFog", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "enterFogTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "enterDangerousFog", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 40 + }, + { + "name": "enterFreeze", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 56 + }, + { + "name": "freezeWarning", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 72 + }, + { + "name": "freezeResistanceDepleted", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 88 + }, + { + "name": "flameReminder", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 104 + }, + { + "name": "flameLow", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 120 + }, + { + "name": "flameVeryLow", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 136 + }, + { + "name": "flameDepleted", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 152 + }, + { + "name": "flameLowLoop", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 168 + }, + { + "name": "manaInsufficient", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 184 + }, + { + "name": "manaInsufficientTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 200 + }, + { + "name": "staminaInsufficient", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 208 + }, + { + "name": "staminaInsufficientTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 224 + }, + { + "name": "ammoChanged", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 232 + }, + { + "name": "buildActionFailed", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 248 + }, + { + "name": "buildActionFailedTimeout", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 264 + }, + { + "name": "buildUndoSuccessful", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 272 + }, + { + "name": "buildInvMaximize", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 288 + }, + { + "name": "buildInvMinimize", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 304 + }, + { + "name": "buildModeEnter", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 320 + }, + { + "name": "buildModeExit", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 336 + }, + { + "name": "musicBuffProgressed", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSoundsTitleScreen", + "type_name_2": "FbUiSoundsTitleScreen", + "qualified_name": "keen::ds::FbUiSoundsTitleScreen", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4069308609, + "hash2": 2125924639, + "struct_fields": [ + { + "name": "backgroundMusic", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "startTrigger", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiSounds", + "type_name_2": "FbUiSounds", + "qualified_name": "keen::ds::FbUiSounds", + "referenced_type_name": null, + "class_size": 2232, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 757719641, + "hash2": 319627876, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "titleScreen", + "type_name": "keen::ds::FbUiSoundsTitleScreen", + "type_hash": 4069308609, + "data_offset": 16 + }, + { + "name": "events", + "type_name": "keen::ds::FbUiSoundsEventMessages", + "type_hash": 2375006219, + "data_offset": 48 + }, + { + "name": "menu", + "type_name": "keen::ds::FbUiSoundsMenuGeneric", + "type_hash": 4097634479, + "data_offset": 272 + }, + { + "name": "crafting", + "type_name": "keen::ds::FbUiSoundsMenuCrafting", + "type_hash": 4057006504, + "data_offset": 872 + }, + { + "name": "journal", + "type_name": "keen::ds::FbUiSoundsMenuJournal", + "type_hash": 1685210633, + "data_offset": 1032 + }, + { + "name": "altar", + "type_name": "keen::ds::FbUiSoundsMenuAltar", + "type_hash": 207089322, + "data_offset": 1048 + }, + { + "name": "skilltree", + "type_name": "keen::ds::FbUiSoundsSkillTree", + "type_hash": 848006750, + "data_offset": 1096 + }, + { + "name": "lootGet", + "type_name": "keen::ds::FbUiSoundsLootAquisition", + "type_hash": 1548728933, + "data_offset": 1224 + }, + { + "name": "map", + "type_name": "keen::ds::FbUiSoundsAdventureMap", + "type_hash": 3036870767, + "data_offset": 1384 + }, + { + "name": "dialog", + "type_name": "keen::ds::FbUiSoundsDialog", + "type_hash": 543439597, + "data_offset": 1544 + }, + { + "name": "itemWheel", + "type_name": "keen::ds::FbUiSoundsItemWheel", + "type_hash": 3917655097, + "data_offset": 1624 + }, + { + "name": "hud", + "type_name": "keen::ds::FbUiSoundsHud", + "type_hash": 863863826, + "data_offset": 1672 + }, + { + "name": "actionbar", + "type_name": "keen::ds::FbUiSoundsActionbar", + "type_hash": 4059772212, + "data_offset": 2040 + }, + { + "name": "backpack", + "type_name": "keen::ds::FbUiSoundsBackpack", + "type_hash": 1830936623, + "data_offset": 2088 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiHudCharacterStyles", + "type_name_2": "FbUiHudCharacterStyles", + "qualified_name": "keen::ds::FbUiHudCharacterStyles", + "referenced_type_name": null, + "class_size": 2520, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 759634959, + "hash2": 3032603277, + "struct_fields": [ + { + "name": "celebrationMain", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 0 + }, + { + "name": "celebrationLevelNumber", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 120 + }, + { + "name": "specialLootMain", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 240 + }, + { + "name": "specialLootSecondary", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 360 + }, + { + "name": "enemyDamagePoint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 480 + }, + { + "name": "enemyDamageBonusText", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 600 + }, + { + "name": "healingDamagePoint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 720 + }, + { + "name": "playerDamagePoint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 840 + }, + { + "name": "immuneDamagePoint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 960 + }, + { + "name": "restoreManaPoint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1080 + }, + { + "name": "playerName", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1200 + }, + { + "name": "enemyName", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1320 + }, + { + "name": "bossName", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1440 + }, + { + "name": "ammoListEntry", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1560 + }, + { + "name": "staminaInfo", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1680 + }, + { + "name": "compassMarkerDistance", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1800 + }, + { + "name": "compassWayointMessage", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1920 + }, + { + "name": "compassFogTimer", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2040 + }, + { + "name": "compassFogTypeLabel", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2160 + }, + { + "name": "compassLeaveFogWarning", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2280 + }, + { + "name": "nightSpeedHint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2400 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMenuCharacterStyles", + "type_name_2": "FbUiMenuCharacterStyles", + "qualified_name": "keen::ds::FbUiMenuCharacterStyles", + "referenced_type_name": null, + "class_size": 720, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1760530763, + "hash2": 2372501529, + "struct_fields": [ + { + "name": "topTab", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 0 + }, + { + "name": "header1", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 120 + }, + { + "name": "header2", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 240 + }, + { + "name": "header3", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 360 + }, + { + "name": "buttonHint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 480 + }, + { + "name": "textfieldEmptyHint", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 600 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapCharacterStyles", + "type_name_2": "FbUiMapCharacterStyles", + "qualified_name": "keen::ds::FbUiMapCharacterStyles", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1140744690, + "hash2": 3047161786, + "struct_fields": [ + { + "name": "playerName", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 0 + }, + { + "name": "locationName", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 120 + }, + { + "name": "clusterSizeNumber", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 240 + }, + { + "name": "markerLabel", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 360 + }, + { + "name": "tooltip", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 480 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFontSizes", + "type_name_2": "FbUiFontSizes", + "qualified_name": "keen::ds::FbUiFontSizes", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2688679610, + "hash2": 539631559, + "struct_fields": [ + { + "name": "textScaleSteps", + "type_name": "keen::DsArray", + "type_hash": 3107202223, + "data_offset": 0 + }, + { + "name": "xsmall", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "small", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "medium", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "large", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "xlarge", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "caps_small", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "caps_medium", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "caps_large", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "caps_xlarge", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterStyles", + "type_name_2": "FbUiCharacterStyles", + "qualified_name": "keen::ds::FbUiCharacterStyles", + "referenced_type_name": null, + "class_size": 6720, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 129444902, + "hash2": 2985009370, + "struct_fields": [ + { + "name": "defaultStyle", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 0 + }, + { + "name": "defaultStyleOutline", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 120 + }, + { + "name": "secondaryText", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 240 + }, + { + "name": "mutedItalic", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 360 + }, + { + "name": "redText", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 480 + }, + { + "name": "greenText", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 600 + }, + { + "name": "h1", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 720 + }, + { + "name": "h2", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 840 + }, + { + "name": "h3", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 960 + }, + { + "name": "legalText", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1080 + }, + { + "name": "warning", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1200 + }, + { + "name": "hyperlink", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1320 + }, + { + "name": "location", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1440 + }, + { + "name": "npc", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1560 + }, + { + "name": "craftingstation", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1680 + }, + { + "name": "keyitem", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1800 + }, + { + "name": "lorename", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 1920 + }, + { + "name": "impactAttribute", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2040 + }, + { + "name": "textChatSpeakerNameSelf", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2160 + }, + { + "name": "textChatSpeakerNameOther", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2280 + }, + { + "name": "textChatMessage", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 2400 + }, + { + "name": "hud", + "type_name": "keen::ds::FbUiHudCharacterStyles", + "type_hash": 759634959, + "data_offset": 2520 + }, + { + "name": "menu", + "type_name": "keen::ds::FbUiMenuCharacterStyles", + "type_hash": 1760530763, + "data_offset": 5040 + }, + { + "name": "map", + "type_name": "keen::ds::FbUiMapCharacterStyles", + "type_hash": 1140744690, + "data_offset": 5760 + }, + { + "name": "keyboardLegend", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 6360 + }, + { + "name": "versionWatermark", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 6480 + }, + { + "name": "versionWatermarkSecondLine", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 6600 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiParagraphStyles", + "type_name_2": "FbUiParagraphStyles", + "qualified_name": "keen::ds::FbUiParagraphStyles", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 705036023, + "hash2": 3131410172, + "struct_fields": [ + { + "name": "hudDefault", + "type_name": "keen::ds::UiParagraphStyle", + "type_hash": 721038986, + "data_offset": 0 + }, + { + "name": "test", + "type_name": "keen::ds::UiParagraphStyle", + "type_hash": 721038986, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiScrollingLayouts", + "type_name_2": "FbUiScrollingLayouts", + "qualified_name": "keen::ds::FbUiScrollingLayouts", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2091119343, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Curve", + "type_name_2": "Curve", + "qualified_name": "keen::ds::Curve", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3634144510, + "hash2": 59884461, + "struct_fields": [ + { + "name": "sampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiPosition", + "type_name_2": "UiPosition", + "qualified_name": "keen::ds::UiPosition", + "referenced_type_name": "keen::UiPosition", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1563543946, + "hash2": 523730730, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTestTypes", + "type_name_2": "UiTestTypes", + "qualified_name": "keen::ds::UiTestTypes", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 238005018, + "hash2": 2547727328, + "struct_fields": [ + { + "name": "type_string", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "type_float2", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "type_float3", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "type_uint32", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + }, + { + "name": "type_bool", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "type_Color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 68 + }, + { + "name": "type_SoundContainerReference", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 72 + }, + { + "name": "type_Curve", + "type_name": "keen::ds::Curve", + "type_hash": 3634144510, + "data_offset": 88 + }, + { + "name": "type_UiTexture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 92 + }, + { + "name": "type_UiPosition", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 140 + }, + { + "name": "type_UiSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 148 + }, + { + "name": "type_UiColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiTextLayoutStyle", + "type_name_2": "GameUiTextLayoutStyle", + "qualified_name": "keen::ds::GameUiTextLayoutStyle", + "referenced_type_name": "keen::GameUiTextLayoutStyle", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 606865863, + "hash2": 2338757471, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiTextParameterData", + "type_name_2": "GameUiTextParameterData", + "qualified_name": "keen::ds::GameUiTextParameterData", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2749746107, + "hash2": 1325870315, + "struct_fields": [ + { + "name": "characterStyle", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "paragraphStyle", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 80 + }, + { + "name": "stretch", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 88 + }, + { + "name": "alignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 96 + }, + { + "name": "margin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 100 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 116 + }, + { + "name": "revealTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 136 + }, + { + "name": "textLayoutStyle", + "type_name": "keen::ds::GameUiTextLayoutStyle", + "type_hash": 606865863, + "data_offset": 144 + }, + { + "name": "allowLineBreak", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 145 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiImageSizing", + "type_name_2": "GameUiImageSizing", + "qualified_name": "keen::ds::GameUiImageSizing", + "referenced_type_name": "keen::GameUiImageSizing", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 294468386, + "hash2": 1724681989, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiImageParameterData", + "type_name_2": "GameUiImageParameterData", + "qualified_name": "keen::ds::GameUiImageParameterData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2011030487, + "hash2": 2522447841, + "struct_fields": [ + { + "name": "sizing", + "type_name": "keen::ds::GameUiImageSizing", + "type_hash": 294468386, + "data_offset": 0 + }, + { + "name": "alpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "stretch", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "margin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 32 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTestParameters", + "type_name_2": "FbUiTestParameters", + "qualified_name": "keen::ds::FbUiTestParameters", + "referenced_type_name": null, + "class_size": 488, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 150109013, + "hash2": 2312430101, + "struct_fields": [ + { + "name": "_types", + "type_name": "keen::ds::UiTestTypes", + "type_hash": 238005018, + "data_offset": 0 + }, + { + "name": "scrollingLayouts", + "type_name": "keen::ds::FbUiScrollingLayouts", + "type_hash": 2091119343, + "data_offset": 168 + }, + { + "name": "testTextParameter", + "type_name": "keen::ds::GameUiTextParameterData", + "type_hash": 2749746107, + "data_offset": 176 + }, + { + "name": "testImageParameter", + "type_name": "keen::ds::GameUiImageParameterData", + "type_hash": 2011030487, + "data_offset": 328 + }, + { + "name": "testNineSliceTexture", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 392 + }, + { + "name": "testNineSliceScreenBorder", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 456 + }, + { + "name": "durationTextTestTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 472 + }, + { + "name": "durationTextShowOnlyBiggestTimeUnit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 480 + }, + { + "name": "durationTextUseLocalizedUnits", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 481 + }, + { + "name": "durationTextUseThirdNumber", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 482 + }, + { + "name": "durationTextSubSecondDigits", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 483 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiRarityColors", + "type_name_2": "FbUiRarityColors", + "qualified_name": "keen::ds::FbUiRarityColors", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2419191790, + "hash2": 431362732, + "struct_fields": [ + { + "name": "undefined", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "common", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "uncommon", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "rare", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "epic", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "legendary", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "vanity", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "collectible", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + }, + { + "name": "vanityTextColorIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiNetworkQualityColors", + "type_name_2": "FbUiNetworkQualityColors", + "qualified_name": "keen::ds::FbUiNetworkQualityColors", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2324861402, + "hash2": 2172371480, + "struct_fields": [ + { + "name": "good", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "acceptable", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "bad", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiGlobalColors", + "type_name_2": "FbUiGlobalColors", + "qualified_name": "keen::ds::FbUiGlobalColors", + "referenced_type_name": null, + "class_size": 164, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 742567282, + "hash2": 2663633242, + "struct_fields": [ + { + "name": "rarity", + "type_name": "keen::ds::FbUiRarityColors", + "type_hash": 2419191790, + "data_offset": 0 + }, + { + "name": "priorityColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 68 + }, + { + "name": "priorityBgColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 76 + }, + { + "name": "attentionColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 84 + }, + { + "name": "checkmarkGreen", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 92 + }, + { + "name": "warningColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 100 + }, + { + "name": "warningColorBackground", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 108 + }, + { + "name": "warningColorFrostedGlassTint", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 116 + }, + { + "name": "attributeBetterColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 124 + }, + { + "name": "attributeWorseColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 132 + }, + { + "name": "networkQuality", + "type_name": "keen::ds::FbUiNetworkQualityColors", + "type_hash": 2324861402, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderColorGradingMap", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 984657221, + "hash2": 1714211437, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiFrostedGlassParameters", + "type_name_2": "FbUiFrostedGlassParameters", + "qualified_name": "keen::ds::FbUiFrostedGlassParameters", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3512896248, + "hash2": 2729909993, + "struct_fields": [ + { + "name": "downsampleSteps", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sigma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "colorGradingMap", + "type_name": "keen::ObjectReference", + "type_hash": 984657221, + "data_offset": 8 + }, + { + "name": "colorGradeBeforeBlur", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiStartUpLogo", + "type_name_2": "FbUiStartUpLogo", + "qualified_name": "keen::ds::FbUiStartUpLogo", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1482927233, + "hash2": 3978946245, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "sound", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 52 + }, + { + "name": "backgroundColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiStartUpLogoSequence", + "type_name_2": "FbUiStartUpLogoSequence", + "qualified_name": "keen::ds::FbUiStartUpLogoSequence", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 314497548, + "hash2": 1541003913, + "struct_fields": [ + { + "name": "logoFadeDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "logoIdleDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "keenLogo", + "type_name": "keen::ds::FbUiStartUpLogo", + "type_hash": 1482927233, + "data_offset": 16 + }, + { + "name": "bmwiLogo", + "type_name": "keen::ds::FbUiStartUpLogo", + "type_hash": 1482927233, + "data_offset": 92 + }, + { + "name": "postLogoDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 168 + }, + { + "name": "mainMenuFadeInDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPreGameCharacterViews", + "type_name_2": "FbUiPreGameCharacterViews", + "qualified_name": "keen::ds::FbUiPreGameCharacterViews", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2464469603, + "hash2": 41182062, + "struct_fields": [ + { + "name": "mainMenu", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 0 + }, + { + "name": "postMainMenu", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 28 + }, + { + "name": "savePortrait", + "type_name": "keen::ds::FbUiCharacterView", + "type_hash": 1415378213, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationHairColors", + "type_name_2": "FbUiCustomizationHairColors", + "qualified_name": "keen::ds::FbUiCustomizationHairColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 714598402, + "hash2": 4059050998, + "struct_fields": [ + { + "name": "brightBlonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "blonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "red", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "brightBrown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "brown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "black", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "grey", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "white", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationSkinColors", + "type_name_2": "FbUiCustomizationSkinColors", + "qualified_name": "keen::ds::FbUiCustomizationSkinColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1770029703, + "hash2": 3855065573, + "struct_fields": [ + { + "name": "african_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "african_2", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "asian_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "caucasian_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "caucasian_2", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "caucasian_3", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "mixed_1", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "mixed_2", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationEyeColors", + "type_name_2": "FbUiCustomizationEyeColors", + "qualified_name": "keen::ds::FbUiCustomizationEyeColors", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 914629643, + "hash2": 1241615904, + "struct_fields": [ + { + "name": "blue", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "brightBrown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "brown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "green", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "grey", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationEyeBrowColors", + "type_name_2": "FbUiCustomizationEyeBrowColors", + "qualified_name": "keen::ds::FbUiCustomizationEyeBrowColors", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4224384085, + "hash2": 4059050998, + "struct_fields": [ + { + "name": "brightBlonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "blonde", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 8 + }, + { + "name": "red", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 16 + }, + { + "name": "brightBrown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 24 + }, + { + "name": "brown", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 32 + }, + { + "name": "black", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 40 + }, + { + "name": "grey", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 48 + }, + { + "name": "white", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCustomizationTabIcons", + "type_name_2": "FbUiCustomizationTabIcons", + "qualified_name": "keen::ds::FbUiCustomizationTabIcons", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 743640853, + "hash2": 1688522818, + "struct_fields": [ + { + "name": "iconBodytype", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "iconHair", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 48 + }, + { + "name": "iconBeard", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 96 + }, + { + "name": "iconVoice", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 144 + }, + { + "name": "iconName", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "iconPlay", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "iconHairColor", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 288 + }, + { + "name": "iconBeardColor", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 336 + }, + { + "name": "iconEyeColor", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 384 + }, + { + "name": "iconEyeBrowColor", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 432 + }, + { + "name": "iconSkinColor", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 480 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCharacterCustomization", + "type_name_2": "FbUiCharacterCustomization", + "qualified_name": "keen::ds::FbUiCharacterCustomization", + "referenced_type_name": null, + "class_size": 904, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 532901069, + "hash2": 923173332, + "struct_fields": [ + { + "name": "hairColors", + "type_name": "keen::ds::FbUiCustomizationHairColors", + "type_hash": 714598402, + "data_offset": 0 + }, + { + "name": "skinColors", + "type_name": "keen::ds::FbUiCustomizationSkinColors", + "type_hash": 1770029703, + "data_offset": 64 + }, + { + "name": "eyeColors", + "type_name": "keen::ds::FbUiCustomizationEyeColors", + "type_hash": 914629643, + "data_offset": 128 + }, + { + "name": "eyeBrowColors", + "type_name": "keen::ds::FbUiCustomizationEyeBrowColors", + "type_hash": 4224384085, + "data_offset": 168 + }, + { + "name": "tabIcons", + "type_name": "keen::ds::FbUiCustomizationTabIcons", + "type_hash": 743640853, + "data_offset": 232 + }, + { + "name": "widgetSelector", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 760 + }, + { + "name": "voicePreview1", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 808 + }, + { + "name": "voicePreview2", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 856 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiPreGame", + "type_name_2": "FbUiPreGame", + "qualified_name": "keen::ds::FbUiPreGame", + "referenced_type_name": null, + "class_size": 1616, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 1908547624, + "hash2": 3633594668, + "struct_fields": [ + { + "name": "startUpSequence", + "type_name": "keen::ds::FbUiStartUpLogoSequence", + "type_hash": 314497548, + "data_offset": 0 + }, + { + "name": "startGameFadeOutDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 184 + }, + { + "name": "titleScreenKeyArt", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 192 + }, + { + "name": "mainMenuLogo", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 240 + }, + { + "name": "mainMenuPadding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 288 + }, + { + "name": "logoHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 304 + }, + { + "name": "backgroundScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 308 + }, + { + "name": "backgroundNormalizedOffsetX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 312 + }, + { + "name": "backgroundNormalizedOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 316 + }, + { + "name": "mainMenuEntryHighlightBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 320 + }, + { + "name": "joinTileBg", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 368 + }, + { + "name": "hostPublicTileBg", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 416 + }, + { + "name": "privateTileBg", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 464 + }, + { + "name": "characterViews", + "type_name": "keen::ds::FbUiPreGameCharacterViews", + "type_hash": 2464469603, + "data_offset": 512 + }, + { + "name": "characterCustomization", + "type_name": "keen::ds::FbUiCharacterCustomization", + "type_hash": 532901069, + "data_offset": 596 + }, + { + "name": "menuEntryHighlightBackground", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1500 + }, + { + "name": "logoGPortal", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 1548 + }, + { + "name": "dedicatedServerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1596 + }, + { + "name": "friendServerColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 1604 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditsItemType", + "type_name_2": "FbUiCreditsItemType", + "qualified_name": "keen::ds::FbUiCreditsItemType", + "referenced_type_name": "keen::FbUiCreditsItemType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1097072754, + "hash2": 1792323403, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditItemImage", + "type_name_2": "FbUiCreditItemImage", + "qualified_name": "keen::ds::FbUiCreditItemImage", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2141736404, + "hash2": 3523634263, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "texture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 40 + }, + { + "name": "color", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 88 + }, + { + "name": "imageSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditImageRepository", + "type_name_2": "FbUiCreditImageRepository", + "qualified_name": "keen::ds::FbUiCreditImageRepository", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3804976717, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditsItem", + "type_name_2": "FbUiCreditsItem", + "qualified_name": "keen::ds::FbUiCreditsItem", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1428332290, + "hash2": 455843771, + "struct_fields": [ + { + "name": "itemType", + "type_name": "keen::ds::FbUiCreditsItemType", + "type_hash": 1097072754, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "image", + "type_name": "keen::ds::FbUiCreditItemImage", + "type_hash": 2141736404, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditStyle", + "type_name_2": "FbUiCreditStyle", + "qualified_name": "keen::ds::FbUiCreditStyle", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 317598117, + "hash2": 1113832411, + "struct_fields": [ + { + "name": "style", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 0 + }, + { + "name": "fontSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "topSpacer", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCreditStyles", + "type_name_2": "FbUiCreditStyles", + "qualified_name": "keen::ds::FbUiCreditStyles", + "referenced_type_name": null, + "class_size": 512, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2733366242, + "hash2": 22685825, + "struct_fields": [ + { + "name": "h1", + "type_name": "keen::ds::FbUiCreditStyle", + "type_hash": 317598117, + "data_offset": 0 + }, + { + "name": "h2", + "type_name": "keen::ds::FbUiCreditStyle", + "type_hash": 317598117, + "data_offset": 128 + }, + { + "name": "h3", + "type_name": "keen::ds::FbUiCreditStyle", + "type_hash": 317598117, + "data_offset": 256 + }, + { + "name": "text", + "type_name": "keen::ds::FbUiCreditStyle", + "type_hash": 317598117, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiCreditsItem[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiCreditsItem", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 385661089, + "hash2": 3331833146, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiCredits", + "type_name_2": "FbUiCredits", + "qualified_name": "keen::ds::FbUiCredits", + "referenced_type_name": null, + "class_size": 592, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1254426729, + "hash2": 3383026825, + "struct_fields": [ + { + "name": "items", + "type_name": "keen::DsArray", + "type_hash": 385661089, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 40 + }, + { + "name": "creditEndText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 56 + }, + { + "name": "creditStyles", + "type_name": "keen::ds::FbUiCreditStyles", + "type_hash": 2733366242, + "data_offset": 72 + }, + { + "name": "scrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 584 + }, + { + "name": "gamepadScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 588 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKnowledgeRequirement", + "type_name_2": "FbUiKnowledgeRequirement", + "qualified_name": "keen::ds::FbUiKnowledgeRequirement", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4130225106, + "hash2": 3158692685, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::ds::GameKnowledgeTrigger", + "type_hash": 738120629, + "data_offset": 0 + }, + { + "name": "triggerId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTutorialKnowledge", + "type_name_2": "FbUiTutorialKnowledge", + "qualified_name": "keen::ds::FbUiTutorialKnowledge", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1822954449, + "hash2": 1497604262, + "struct_fields": [ + { + "name": "quickbuilder", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 0 + }, + { + "name": "summoningStaff", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 60 + }, + { + "name": "crafting", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 120 + }, + { + "name": "factory", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 180 + }, + { + "name": "enhancing", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 240 + }, + { + "name": "cooking", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 300 + }, + { + "name": "actionbar", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 360 + }, + { + "name": "storage", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 420 + }, + { + "name": "taming", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 480 + }, + { + "name": "happyNpcRequirement", + "type_name": "keen::ds::FbUiKnowledgeRequirement", + "type_hash": 4130225106, + "data_offset": 540 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiKnowledge", + "type_name_2": "FbUiKnowledge", + "qualified_name": "keen::ds::FbUiKnowledge", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2807903383, + "hash2": 464673673, + "struct_fields": [ + { + "name": "tutorial", + "type_name": "keen::ds::FbUiTutorialKnowledge", + "type_hash": 1822954449, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SystemErrorMessages", + "type_name_2": "SystemErrorMessages", + "qualified_name": "keen::ds::SystemErrorMessages", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 397983892, + "hash2": 1489859351, + "struct_fields": [ + { + "name": "waitingForProcess", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "noInputDevice", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "connectFailed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "connectionLost", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "newVersionRequired", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "playerNotSignedIn", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "playerNoPrivileges", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "playerNoMultiplayerEntitlement", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + }, + { + "name": "createGameFailed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 128 + }, + { + "name": "joinGameFailed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 144 + }, + { + "name": "joinGameFailed_NotFound", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 160 + }, + { + "name": "joinGameFailed_Full", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 176 + }, + { + "name": "joinGameFailed_Reserved", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 192 + }, + { + "name": "joinGameFailed_WrongPassword", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 208 + }, + { + "name": "joinGameFailed_WrongPasswordCooldown", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 224 + }, + { + "name": "sessionFailed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 240 + }, + { + "name": "joinPlayerFailed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 256 + }, + { + "name": "kicked", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 272 + }, + { + "name": "saveGameCorrupt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 288 + }, + { + "name": "settingsCorrupt", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 304 + }, + { + "name": "eraseFailed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 320 + }, + { + "name": "notEnoughSpace", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 336 + }, + { + "name": "createFailed", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 352 + }, + { + "name": "readError", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 368 + }, + { + "name": "writeError", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SystemErrorResponses", + "type_name_2": "SystemErrorResponses", + "qualified_name": "keen::ds::SystemErrorResponses", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2227792204, + "hash2": 2241452092, + "struct_fields": [ + { + "name": "retry", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 0 + }, + { + "name": "disable", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 16 + }, + { + "name": "erase", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 32 + }, + { + "name": "reset", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "deviceSelection", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 64 + }, + { + "name": "overwrite", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 80 + }, + { + "name": "cancel", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 96 + }, + { + "name": "ok", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SystemErrorLoca", + "type_name_2": "SystemErrorLoca", + "qualified_name": "keen::ds::SystemErrorLoca", + "referenced_type_name": null, + "class_size": 544, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 715094253, + "hash2": 3662033226, + "struct_fields": [ + { + "name": "errors", + "type_name": "keen::ds::SystemErrorMessages", + "type_hash": 397983892, + "data_offset": 0 + }, + { + "name": "responses", + "type_name": "keen::ds::SystemErrorResponses", + "type_hash": 2227792204, + "data_offset": 400 + }, + { + "name": "errorTitleWarning", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 528 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DefaultServerRoleType", + "type_name_2": "DefaultServerRoleType", + "qualified_name": "keen::ds::DefaultServerRoleType", + "referenced_type_name": "keen::DefaultServerRoleType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3364304543, + "hash2": 2602204802, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiServerRole[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiServerRole", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4137215879, + "hash2": 3931164441, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiServerRoleSettings", + "type_name_2": "FbUiServerRoleSettings", + "qualified_name": "keen::ds::FbUiServerRoleSettings", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2746994691, + "hash2": 1432879845, + "struct_fields": [ + { + "name": "defaultServerRoles", + "type_name": "keen::DsArray", + "type_hash": 4137215879, + "data_offset": 0 + }, + { + "name": "serverRoleIcons", + "type_name": "keen::DsArray", + "type_hash": 2155159947, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiServerRole", + "type_name_2": "FbUiServerRole", + "qualified_name": "keen::ds::FbUiServerRole", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4218145334, + "hash2": 4043089010, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::DefaultServerRoleType", + "type_hash": 3364304543, + "data_offset": 0 + }, + { + "name": "roleName", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 4 + }, + { + "name": "permissions", + "type_name": "keen::ds::PlayerPermissionsMask", + "type_hash": 978357734, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoreSlide", + "type_name_2": "FbUiLoreSlide", + "qualified_name": "keen::ds::FbUiLoreSlide", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 243056746, + "hash2": 1903980610, + "struct_fields": [ + { + "name": "slideImage", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 0 + }, + { + "name": "slideText", + "type_name": "keen::ds::UiLocaTagReference", + "type_hash": 3613002481, + "data_offset": 48 + }, + { + "name": "useTextBackground", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "startOffset", + "type_name": "keen::UiVector", + "type_hash": 1137348591, + "data_offset": 68 + }, + { + "name": "endOffset", + "type_name": "keen::UiVector", + "type_hash": 1137348591, + "data_offset": 76 + }, + { + "name": "startScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "endScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "slideDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "textStartDelay", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "textAnimDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "fadeInDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "fadeOutDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "fadeInColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 112 + }, + { + "name": "fadeOutColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLogos", + "type_name_2": "FbUiLogos", + "qualified_name": "keen::ds::FbUiLogos", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1144202279, + "hash2": 1263498073, + "struct_fields": [ + { + "name": "creditsLogos", + "type_name": "keen::DsArray", + "type_hash": 2155159947, + "data_offset": 0 + }, + { + "name": "enshrouded_TraditionalChinese", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 40 + }, + { + "name": "enshrouded_SimplifiedChinese", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 88 + }, + { + "name": "enshrouded_Japanese", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 136 + }, + { + "name": "enshrouded_Korean", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiLoreSlide[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiLoreSlide", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 897657761, + "hash2": 3296029749, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiLoreIntro", + "type_name_2": "FbUiLoreIntro", + "qualified_name": "keen::ds::FbUiLoreIntro", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 322287781, + "hash2": 1515243967, + "struct_fields": [ + { + "name": "allSlides", + "type_name": "keen::DsArray", + "type_hash": 897657761, + "data_offset": 0 + }, + { + "name": "textStyle", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 40 + }, + { + "name": "slideBorder", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiCharacterStyle[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiCharacterStyle", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 197291838, + "hash2": 942680246, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiParagraphStyle[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiParagraphStyle", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 899398147, + "hash2": 1244905365, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiBundle", + "type_name_2": "UiBundle", + "qualified_name": "keen::ds::UiBundle", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2272628357, + "hash2": 205281058, + "struct_fields": [ + { + "name": "texturePreload", + "type_name": "keen::ds::UiTexturePreload", + "type_hash": 3300318481, + "data_offset": 0 + }, + { + "name": "characterStyles", + "type_name": "keen::DsArray", + "type_hash": 197291838, + "data_offset": 40 + }, + { + "name": "paragraphStyles", + "type_name": "keen::DsArray", + "type_hash": 899398147, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FbUiWorldEvent[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FbUiWorldEvent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1168020754, + "hash2": 2817944047, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FbUiBundle", + "type_name_2": "FbUiBundle", + "qualified_name": "keen::ds::FbUiBundle", + "referenced_type_name": "keen::ds::UiBundle", + "class_size": 73680, + "fields_count": 33, + "primitive_type": "Struct", + "hash1": 3477236001, + "hash2": 2879009149, + "struct_fields": [ + { + "name": "locatags", + "type_name": "keen::ds::FbUiLocaLinks", + "type_hash": 1603588513, + "data_offset": 120 + }, + { + "name": "socialLogos", + "type_name": "keen::ds::FbUiSocialLogos", + "type_hash": 2931725630, + "data_offset": 26032 + }, + { + "name": "logos", + "type_name": "keen::ds::FbUiLogos", + "type_hash": 1144202279, + "data_offset": 26320 + }, + { + "name": "genericIcons", + "type_name": "keen::ds::FbUiGenericIcons", + "type_hash": 4006744304, + "data_offset": 26552 + }, + { + "name": "gamepadButtons", + "type_name": "keen::ds::FbUiGamepadButtonSets", + "type_hash": 1332768905, + "data_offset": 29528 + }, + { + "name": "keyboardKeys", + "type_name": "keen::ds::FbUiKeyboardKeys", + "type_hash": 2977777380, + "data_offset": 34720 + }, + { + "name": "keyboardKeyLegends", + "type_name": "keen::ds::FbUiKeyboardKeyLegends", + "type_hash": 3527898359, + "data_offset": 34832 + }, + { + "name": "mouseHints", + "type_name": "keen::ds::FbUiMouseHints", + "type_hash": 1999850318, + "data_offset": 35024 + }, + { + "name": "primitives", + "type_name": "keen::ds::FbUiPrimitives", + "type_hash": 914703123, + "data_offset": 35696 + }, + { + "name": "loading", + "type_name": "keen::ds::FbUiLoadingSymbol", + "type_hash": 2406166443, + "data_offset": 36928 + }, + { + "name": "globalColors", + "type_name": "keen::ds::FbUiGlobalColors", + "type_hash": 742567282, + "data_offset": 36940 + }, + { + "name": "preGame", + "type_name": "keen::ds::FbUiPreGame", + "type_hash": 1908547624, + "data_offset": 37104 + }, + { + "name": "hud", + "type_name": "keen::ds::FbUiHUD", + "type_hash": 999801954, + "data_offset": 38720 + }, + { + "name": "menu", + "type_name": "keen::ds::FbUiMenu", + "type_hash": 1440364126, + "data_offset": 44088 + }, + { + "name": "customization", + "type_name": "keen::ds::FbUiCustomization", + "type_hash": 2625513146, + "data_offset": 55880 + }, + { + "name": "knowledge", + "type_name": "keen::ds::FbUiKnowledge", + "type_hash": 2807903383, + "data_offset": 56408 + }, + { + "name": "itemSlot", + "type_name": "keen::ds::FbUiItemSlot", + "type_hash": 2378821126, + "data_offset": 57008 + }, + { + "name": "buffIcons", + "type_name": "keen::ds::FbUiBuffIcons", + "type_hash": 1719876894, + "data_offset": 59016 + }, + { + "name": "screen", + "type_name": "keen::ds::FbUiScreen", + "type_hash": 347660973, + "data_offset": 59248 + }, + { + "name": "headline", + "type_name": "keen::ds::FbUiHeadline", + "type_hash": 139431669, + "data_offset": 59480 + }, + { + "name": "fontSizes", + "type_name": "keen::ds::FbUiFontSizes", + "type_hash": 2688679610, + "data_offset": 59552 + }, + { + "name": "namedStyles", + "type_name": "keen::ds::FbUiCharacterStyles", + "type_hash": 129444902, + "data_offset": 59632 + }, + { + "name": "namedParagraphStyles", + "type_name": "keen::ds::FbUiParagraphStyles", + "type_hash": 705036023, + "data_offset": 66352 + }, + { + "name": "sounds", + "type_name": "keen::ds::FbUiSounds", + "type_hash": 757719641, + "data_offset": 66480 + }, + { + "name": "testParameters", + "type_name": "keen::ds::FbUiTestParameters", + "type_hash": 150109013, + "data_offset": 68712 + }, + { + "name": "frostedGlass", + "type_name": "keen::ds::FbUiFrostedGlassParameters", + "type_hash": 3512896248, + "data_offset": 69200 + }, + { + "name": "systemErrors", + "type_name": "keen::ds::SystemErrorLoca", + "type_hash": 715094253, + "data_offset": 69228 + }, + { + "name": "serverRoleSettings", + "type_name": "keen::ds::FbUiServerRoleSettings", + "type_hash": 2746994691, + "data_offset": 69776 + }, + { + "name": "difficultySettings", + "type_name": "keen::ds::FbUiDifficultySettings", + "type_hash": 2483759097, + "data_offset": 69856 + }, + { + "name": "noRtxWarning", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 72776 + }, + { + "name": "credits", + "type_name": "keen::ds::FbUiCredits", + "type_hash": 1254426729, + "data_offset": 72824 + }, + { + "name": "loreIntro", + "type_name": "keen::ds::FbUiLoreIntro", + "type_hash": 322287781, + "data_offset": 73416 + }, + { + "name": "worldEvents", + "type_name": "keen::DsArray", + "type_hash": 1168020754, + "data_offset": 73640 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMap", + "type_name_2": "FbUiMap", + "qualified_name": "keen::ds::FbUiMap", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2531324677, + "hash2": 1908532575, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 0 + }, + { + "name": "isolineSpacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "baseGradient", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 20 + }, + { + "name": "isolineGradient", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 36 + }, + { + "name": "fogNoise", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 52 + }, + { + "name": "fogZoneBorderSdfDistance", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 68 + }, + { + "name": "fogZoneBorderGradient", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 72 + }, + { + "name": "fogZoneTextureNormal", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 88 + }, + { + "name": "fogZoneTextureDangerous", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiTexture", + "type_name_2": "FbUiTexture", + "qualified_name": "keen::ds::FbUiTexture", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3601843416, + "hash2": 3322927836, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 5 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 6 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 8 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapResource", + "type_name_2": "FbUiMapResource", + "qualified_name": "keen::ds::FbUiMapResource", + "referenced_type_name": null, + "class_size": 408, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3695158357, + "hash2": 969914427, + "struct_fields": [ + { + "name": "tileSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "tileCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "normalizedTileSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "baseGradientTexture", + "type_name": "keen::ds::FbUiTexture", + "type_hash": 3601843416, + "data_offset": 24 + }, + { + "name": "isolineGradientTexture", + "type_name": "keen::ds::FbUiTexture", + "type_hash": 3601843416, + "data_offset": 88 + }, + { + "name": "fogZoneBorderGradientTexture", + "type_name": "keen::ds::FbUiTexture", + "type_hash": 3601843416, + "data_offset": 152 + }, + { + "name": "fogNoiseTexture", + "type_name": "keen::ds::FbUiTexture", + "type_hash": 3601843416, + "data_offset": 216 + }, + { + "name": "fogZoneTextureNormal", + "type_name": "keen::ds::FbUiTexture", + "type_hash": 3601843416, + "data_offset": 280 + }, + { + "name": "fogZoneTextureDangerous", + "type_name": "keen::ds::FbUiTexture", + "type_hash": 3601843416, + "data_offset": 344 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FbUiMapTileResource", + "type_name_2": "FbUiMapTileResource", + "qualified_name": "keen::ds::FbUiMapTileResource", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2231486937, + "hash2": 235448154, + "struct_fields": [ + { + "name": "mapTexture", + "type_name": "keen::ds::FbUiTexture", + "type_hash": 3601843416, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FatalErrorId", + "type_name_2": "FatalErrorId", + "qualified_name": "keen::ds::FatalErrorId", + "referenced_type_name": "keen::FatalErrorId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2142473974, + "hash2": 3871520829, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkSampleZone", + "type_name_2": "GameBenchmarkSampleZone", + "qualified_name": "keen::ds::GameBenchmarkSampleZone", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1177578488, + "hash2": 2327586026, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "valueName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "minDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "maxDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 88 + }, + { + "name": "averageDuration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 96 + }, + { + "name": "minValue", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 104 + }, + { + "name": "maxValue", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 112 + }, + { + "name": "averageValue", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 120 + }, + { + "name": "sampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GameBenchmarkSampleZone[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GameBenchmarkSampleZone", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2629349499, + "hash2": 1469444369, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkSample", + "type_name_2": "GameBenchmarkSample", + "qualified_name": "keen::ds::GameBenchmarkSample", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4250944950, + "hash2": 3799464933, + "struct_fields": [ + { + "name": "frameCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "sampleTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "zones", + "type_name": "keen::DsArray", + "type_hash": 2629349499, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GameBenchmarkSample[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GameBenchmarkSample", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4210834881, + "hash2": 3182879872, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkPlace", + "type_name_2": "GameBenchmarkPlace", + "qualified_name": "keen::ds::GameBenchmarkPlace", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2405106983, + "hash2": 1519576243, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "instanceHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "samples", + "type_name": "keen::DsArray", + "type_hash": 4210834881, + "data_offset": 16 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkResource", + "type_name_2": "GameBenchmarkResource", + "qualified_name": "keen::ds::GameBenchmarkResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3766522800, + "hash2": 4068411010, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "bauPath", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "hash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GameBenchmarkResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GameBenchmarkResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 623129607, + "hash2": 1860645922, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GameBenchmarkPlace[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GameBenchmarkPlace", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3580875816, + "hash2": 1102161050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameBenchmarkResult", + "type_name_2": "GameBenchmarkResult", + "qualified_name": "keen::ds::GameBenchmarkResult", + "referenced_type_name": null, + "class_size": 248, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1598904629, + "hash2": 3381266167, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "author", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "machine", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 80 + }, + { + "name": "engineVersion", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 120 + }, + { + "name": "date", + "type_name": "keen::CalendarTimeStamp", + "type_hash": 3311273656, + "data_offset": 160 + }, + { + "name": "resources", + "type_name": "keen::DsArray", + "type_hash": 623129607, + "data_offset": 168 + }, + { + "name": "places", + "type_name": "keen::DsArray", + "type_hash": 3580875816, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameFrameworkWindowType", + "type_name_2": "GameFrameworkWindowType", + "qualified_name": "keen::ds::GameFrameworkWindowType", + "referenced_type_name": "keen::GameFrameworkWindowType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 132703851, + "hash2": 1512602167, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameFrameworkGraphicsConfig", + "type_name_2": "GameFrameworkGraphicsConfig", + "qualified_name": "keen::ds::GameFrameworkGraphicsConfig", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2796412728, + "hash2": 1969776728, + "struct_fields": [ + { + "name": "apiName", + "type_name": "keen::StaticArray", + "type_hash": 1506709033, + "data_offset": 0 + }, + { + "name": "windowType", + "type_name": "keen::ds::GameFrameworkWindowType", + "type_hash": 132703851, + "data_offset": 128 + }, + { + "name": "windowPosX", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 132 + }, + { + "name": "windowPosY", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 136 + }, + { + "name": "windowSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + }, + { + "name": "windowSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "presentationInterval", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 148 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameFrameworkConfig", + "type_name_2": "GameFrameworkConfig", + "qualified_name": "keen::ds::GameFrameworkConfig", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4071580249, + "hash2": 1136028746, + "struct_fields": [ + { + "name": "graphics", + "type_name": "keen::ds::GameFrameworkGraphicsConfig", + "type_hash": 2796412728, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiAxis", + "type_name_2": "GameUiAxis", + "qualified_name": "keen::ds::GameUiAxis", + "referenced_type_name": "keen::GameUiAxis", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 983617510, + "hash2": 484263999, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiFrameLayout", + "type_name_2": "GameUiFrameLayout", + "qualified_name": "keen::ds::GameUiFrameLayout", + "referenced_type_name": "keen::GameUiFrameLayout", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 448495526, + "hash2": 1674326231, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollingSliderStyle", + "type_name_2": "GameUiScrollingSliderStyle", + "qualified_name": "keen::ds::GameUiScrollingSliderStyle", + "referenced_type_name": "keen::GameUiScrollingSliderStyle", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 332838740, + "hash2": 1479656755, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollingHotkeyFlag", + "type_name_2": "GameUiScrollingHotkeyFlag", + "qualified_name": "keen::ds::GameUiScrollingHotkeyFlag", + "referenced_type_name": "keen::GameUiScrollingHotkeyFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 859840546, + "hash2": 4010836875, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiMouseDragInputFlag", + "type_name_2": "GameUiMouseDragInputFlag", + "qualified_name": "keen::ds::GameUiMouseDragInputFlag", + "referenced_type_name": "keen::GameUiMouseDragInputFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2047950038, + "hash2": 813227386, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiMouseDragInputMask", + "type_name_2": "GameUiMouseDragInputMask", + "qualified_name": "keen::ds::GameUiMouseDragInputMask", + "referenced_type_name": "keen::GameUiMouseDragInputMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3800792700, + "hash2": 4097308762, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollingKeyMask", + "type_name_2": "GameUiScrollingKeyMask", + "qualified_name": "keen::ds::GameUiScrollingKeyMask", + "referenced_type_name": "keen::GameUiScrollingKeyMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1058570217, + "hash2": 2178117625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollbarParameterData", + "type_name_2": "GameUiScrollbarParameterData", + "qualified_name": "keen::ds::GameUiScrollbarParameterData", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 3562820458, + "hash2": 2937243941, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::ds::GameUiAxis", + "type_hash": 983617510, + "data_offset": 0 + }, + { + "name": "rangeRectColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 4 + }, + { + "name": "sliderIdleColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 12 + }, + { + "name": "sliderHoverColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 20 + }, + { + "name": "sliderOutlineColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 28 + }, + { + "name": "rangeTexture", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 36 + }, + { + "name": "sliderTexture", + "type_name": "keen::ds::UiNineSliceTexture", + "type_hash": 14880176, + "data_offset": 100 + }, + { + "name": "sliderGripTexture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 164 + }, + { + "name": "sliderStyle", + "type_name": "keen::ds::GameUiScrollingSliderStyle", + "type_hash": 332838740, + "data_offset": 212 + }, + { + "name": "sliderIdleWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "sliderHoverWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "baseWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "rangeTextureWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 228 + }, + { + "name": "useInverseRangeRect", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 232 + }, + { + "name": "useGlobalFocus", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 233 + }, + { + "name": "enableDrag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 234 + }, + { + "name": "enableTouchDrag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 235 + }, + { + "name": "forceScrollbar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 236 + }, + { + "name": "offset", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 240 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 248 + }, + { + "name": "sliderMargin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 264 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameUiScrollingLayoutParameterData", + "type_name_2": "GameUiScrollingLayoutParameterData", + "qualified_name": "keen::ds::GameUiScrollingLayoutParameterData", + "referenced_type_name": null, + "class_size": 380, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 3237351263, + "hash2": 3842119189, + "struct_fields": [ + { + "name": "borderColor", + "type_name": "keen::UiColor", + "type_hash": 4039690551, + "data_offset": 0 + }, + { + "name": "scrollHintTexture", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 8 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 56 + }, + { + "name": "scrollbarAlignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 72 + }, + { + "name": "showScrollHint", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 74 + }, + { + "name": "enableScrollbar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 75 + }, + { + "name": "useNavigation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 76 + }, + { + "name": "stealCapture", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + }, + { + "name": "doScissorWhenScrolling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 78 + }, + { + "name": "centerChildren", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 79 + }, + { + "name": "enableDrag", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "forceScrollbar", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 81 + }, + { + "name": "useGlobalFocus", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 82 + }, + { + "name": "useFillerSeperatorLineDistance", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 83 + }, + { + "name": "consumeInput", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "useAutoScrolling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 85 + }, + { + "name": "fillerSeperatorLineDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "spacing", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "scrollingHotKeyMask", + "type_name": "keen::ds::GameUiScrollingKeyMask", + "type_hash": 1058570217, + "data_offset": 96 + }, + { + "name": "mouseDragInputMask", + "type_name": "keen::ds::GameUiMouseDragInputMask", + "type_hash": 3800792700, + "data_offset": 97 + }, + { + "name": "scrollBar", + "type_name": "keen::ds::GameUiScrollbarParameterData", + "type_hash": 3562820458, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlotJointMapping", + "type_name_2": "SlotJointMapping", + "qualified_name": "keen::ds::SlotJointMapping", + "referenced_type_name": null, + "class_size": 520, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2698854549, + "hash2": 2638182151, + "struct_fields": [ + { + "name": "head", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "chest", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "pelvis", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 80 + }, + { + "name": "footL", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 120 + }, + { + "name": "footR", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 160 + }, + { + "name": "footRL", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 200 + }, + { + "name": "footRR", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 240 + }, + { + "name": "handR", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 280 + }, + { + "name": "handL", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 320 + }, + { + "name": "kneeR", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 360 + }, + { + "name": "kneeL", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 400 + }, + { + "name": "armL", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 440 + }, + { + "name": "block", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 480 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelBase", + "type_name_2": "ModelBase", + "qualified_name": "keen::ds::ModelBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2744573465, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchy", + "type_name_2": "ModelHierarchy", + "qualified_name": "keen::ds::ModelHierarchy", + "referenced_type_name": null, + "class_size": 832, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2151594159, + "hash2": 2234206092, + "struct_fields": [ + { + "name": "exportNode", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "xanimScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "rotateY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "slotJointMapping", + "type_name": "keen::ds::SlotJointMapping", + "type_hash": 2698854549, + "data_offset": 56 + }, + { + "name": "previewModels", + "type_name": "keen::ds::PreviewModelArray", + "type_hash": 1415327511, + "data_offset": 576 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyJointData", + "type_name_2": "ModelHierarchyJointData", + "qualified_name": "keen::ds::ModelHierarchyJointData", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3200181009, + "hash2": 3496925367, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "parentIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "tag", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "defaultPose", + "type_name": "keen::Matrix43", + "type_hash": 1257492306, + "data_offset": 64 + }, + { + "name": "fixPosition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ModelHierarchyJointData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ModelHierarchyJointData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1686405528, + "hash2": 1363753842, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyData", + "type_name_2": "ModelHierarchyData", + "qualified_name": "keen::ds::ModelHierarchyData", + "referenced_type_name": null, + "class_size": 824, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2950190615, + "hash2": 180053185, + "struct_fields": [ + { + "name": "joints", + "type_name": "keen::DsArray", + "type_hash": 1686405528, + "data_offset": 0 + }, + { + "name": "defaultPoseHash", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "slotJointMapping", + "type_name": "keen::ds::SlotJointMapping", + "type_hash": 2698854549, + "data_offset": 48 + }, + { + "name": "previewModels", + "type_name": "keen::ds::PreviewModelArray", + "type_hash": 1415327511, + "data_offset": 568 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "vf32_data[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::vf32_data", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1335606090, + "hash2": 342480765, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelPose", + "type_name_2": "ModelPose", + "qualified_name": "keen::ds::ModelPose", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2122121769, + "hash2": 3986419443, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1335606090, + "data_offset": 0 + }, + { + "name": "alignedJointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyJointDescription", + "type_name_2": "ModelHierarchyJointDescription", + "qualified_name": "keen::ds::ModelHierarchyJointDescription", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1168065221, + "hash2": 2364838828, + "struct_fields": [ + { + "name": "jointDescriptions", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "Matrix43[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::Matrix43", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1003769895, + "hash2": 3671495749, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AnimationJoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::AnimationJoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 107017957, + "hash2": 2734828148, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelHierarchyResource", + "type_name_2": "ModelHierarchyResource", + "qualified_name": "keen::ds::ModelHierarchyResource", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1830871243, + "hash2": 4106200618, + "struct_fields": [ + { + "name": "hierarchyId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "jointNames", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 16 + }, + { + "name": "joinParentIndices", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 56 + }, + { + "name": "skinToJointMatrices", + "type_name": "keen::DsArray", + "type_hash": 1003769895, + "data_offset": 96 + }, + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "defaultPose", + "type_name": "keen::ds::ModelPose", + "type_hash": 2122121769, + "data_offset": 144 + }, + { + "name": "defaultPoseJoints", + "type_name": "keen::DsArray", + "type_hash": 107017957, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcVariantFlag", + "type_name_2": "GpcVariantFlag", + "qualified_name": "keen::ds::GpcVariantFlag", + "referenced_type_name": "keen::GpcVariantFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2777301676, + "hash2": 2042038663, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcShaderVariant", + "type_name_2": "GpcShaderVariant", + "qualified_name": "keen::ds::GpcShaderVariant", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 201774981, + "hash2": 2960370999, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::Bitmask8", + "type_hash": 3205030609, + "data_offset": 0 + }, + { + "name": "code", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "strippedCode", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GpcShaderVariant[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GpcShaderVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3074753910, + "hash2": 1437280084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcShaderResource", + "type_name_2": "GpcShaderResource", + "qualified_name": "keen::ds::GpcShaderResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3045602856, + "hash2": 3409184745, + "struct_fields": [ + { + "name": "variants", + "type_name": "keen::DsArray", + "type_hash": 3074753910, + "data_offset": 0 + }, + { + "name": "entryPoint", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcPrimitiveType", + "type_name_2": "GpcPrimitiveType", + "qualified_name": "keen::ds::GpcPrimitiveType", + "referenced_type_name": "keen::GpcPrimitiveType", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2117669402, + "hash2": 45555124, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcCullMode", + "type_name_2": "GpcCullMode", + "qualified_name": "keen::ds::GpcCullMode", + "referenced_type_name": "keen::GpcCullMode", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 650897830, + "hash2": 999002683, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcFillMode", + "type_name_2": "GpcFillMode", + "qualified_name": "keen::ds::GpcFillMode", + "referenced_type_name": "keen::GpcFillMode", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 3769233119, + "hash2": 2548221062, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcWindingOrder", + "type_name_2": "GpcWindingOrder", + "qualified_name": "keen::ds::GpcWindingOrder", + "referenced_type_name": "keen::GpcWindingOrder", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 1970657343, + "hash2": 1458137694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcBlendOp", + "type_name_2": "GpcBlendOp", + "qualified_name": "keen::ds::GpcBlendOp", + "referenced_type_name": "keen::GpcBlendOp", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 3132618939, + "hash2": 3012454079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcBlendFactor", + "type_name_2": "GpcBlendFactor", + "qualified_name": "keen::ds::GpcBlendFactor", + "referenced_type_name": "keen::GpcBlendFactor", + "class_size": 1, + "fields_count": 11, + "primitive_type": "Typedef", + "hash1": 1482497079, + "hash2": 1672896680, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcComparisonFunction", + "type_name_2": "GpcComparisonFunction", + "qualified_name": "keen::ds::GpcComparisonFunction", + "referenced_type_name": "keen::GpcComparisonFunction", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Typedef", + "hash1": 686506328, + "hash2": 4213541594, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PixelFormat[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::PixelFormat", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2775871524, + "hash2": 1593020910, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcRasterPipelineResource", + "type_name_2": "GpcRasterPipelineResource", + "qualified_name": "keen::ds::GpcRasterPipelineResource", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 23, + "primitive_type": "Struct", + "hash1": 355400922, + "hash2": 3391197159, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + }, + { + "name": "colorTargetFormats", + "type_name": "keen::DsArray", + "type_hash": 2775871524, + "data_offset": 48 + }, + { + "name": "depthStencilTargetFormat", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 88 + }, + { + "name": "sampleCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 89 + }, + { + "name": "primitiveType", + "type_name": "keen::ds::GpcPrimitiveType", + "type_hash": 2117669402, + "data_offset": 90 + }, + { + "name": "patchSize", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 91 + }, + { + "name": "cullMode", + "type_name": "keen::ds::GpcCullMode", + "type_hash": 650897830, + "data_offset": 92 + }, + { + "name": "fillMode", + "type_name": "keen::ds::GpcFillMode", + "type_hash": 3769233119, + "data_offset": 93 + }, + { + "name": "windingOrder", + "type_name": "keen::ds::GpcWindingOrder", + "type_hash": 1970657343, + "data_offset": 94 + }, + { + "name": "blendOp", + "type_name": "keen::ds::GpcBlendOp", + "type_hash": 3132618939, + "data_offset": 95 + }, + { + "name": "blendSourceFactor", + "type_name": "keen::ds::GpcBlendFactor", + "type_hash": 1482497079, + "data_offset": 96 + }, + { + "name": "blendDestFactor", + "type_name": "keen::ds::GpcBlendFactor", + "type_hash": 1482497079, + "data_offset": 97 + }, + { + "name": "sampleShading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 98 + }, + { + "name": "alphaToCoverage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 99 + }, + { + "name": "depthComparisonFunction", + "type_name": "keen::ds::GpcComparisonFunction", + "type_hash": 686506328, + "data_offset": 100 + }, + { + "name": "depthWriteEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 101 + }, + { + "name": "constDepthBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "slopeDepthBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "vsShaderCode", + "type_name": "keen::ds::GpcShaderResource", + "type_hash": 3045602856, + "data_offset": 112 + }, + { + "name": "tcShaderCode", + "type_name": "keen::ds::GpcShaderResource", + "type_hash": 3045602856, + "data_offset": 192 + }, + { + "name": "teShaderCode", + "type_name": "keen::ds::GpcShaderResource", + "type_hash": 3045602856, + "data_offset": 272 + }, + { + "name": "fsShaderCode", + "type_name": "keen::ds::GpcShaderResource", + "type_hash": 3045602856, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcComputePipelineResource", + "type_name_2": "GpcComputePipelineResource", + "qualified_name": "keen::ds::GpcComputePipelineResource", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 603078532, + "hash2": 4032323275, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + }, + { + "name": "groupSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 44 + }, + { + "name": "computeShader", + "type_name": "keen::ds::GpcShaderResource", + "type_hash": 3045602856, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GpcRasterPipelineResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GpcRasterPipelineResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3063087409, + "hash2": 704179231, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GpcComputePipelineResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GpcComputePipelineResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 8848381, + "hash2": 4270139096, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpcResource", + "type_name_2": "GpcResource", + "qualified_name": "keen::ds::GpcResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2603681857, + "hash2": 3328871060, + "struct_fields": [ + { + "name": "signatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "rasterPipelines", + "type_name": "keen::DsArray", + "type_hash": 3063087409, + "data_offset": 8 + }, + { + "name": "computePipelines", + "type_name": "keen::DsArray", + "type_hash": 8848381, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpcResourceList", + "type_name_2": "GpcResourceList", + "qualified_name": "keen::ds::GpcResourceList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3781761869, + "hash2": 3482115209, + "struct_fields": [ + { + "name": "path", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "u32", + "type_name_2": "gpu.u32", + "qualified_name": "keen::ds::gpu::u32", + "referenced_type_name": "keen::gpu::u32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3863310023, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32", + "type_name_2": "gpu.s32", + "qualified_name": "keen::ds::gpu::s32", + "referenced_type_name": "keen::gpu::s32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1085995725, + "hash2": 1236258612, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32", + "type_name_2": "gpu.f32", + "qualified_name": "keen::ds::gpu::f32", + "referenced_type_name": "keen::gpu::f32", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2925750662, + "hash2": 3005136928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_1", + "type_name_2": "gpu.u32_1", + "qualified_name": "keen::ds::gpu::u32_1", + "referenced_type_name": "keen::gpu::u32_1", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 660543867, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_2", + "type_name_2": "gpu.u32_2", + "qualified_name": "keen::ds::gpu::u32_2", + "referenced_type_name": "keen::gpu::u32_2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 677321486, + "hash2": 3562711373, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_3", + "type_name_2": "gpu.u32_3", + "qualified_name": "keen::ds::gpu::u32_3", + "referenced_type_name": "keen::gpu::u32_3", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 694099105, + "hash2": 2706953273, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "u32_4", + "type_name_2": "gpu.u32_4", + "qualified_name": "keen::ds::gpu::u32_4", + "referenced_type_name": "keen::gpu::u32_4", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 710876724, + "hash2": 3697194186, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_1", + "type_name_2": "gpu.s32_1", + "qualified_name": "keen::ds::gpu::s32_1", + "referenced_type_name": "keen::gpu::s32_1", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1514042533, + "hash2": 1236258612, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_2", + "type_name_2": "gpu.s32_2", + "qualified_name": "keen::ds::gpu::s32_2", + "referenced_type_name": "keen::gpu::s32_2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1463709676, + "hash2": 324423752, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_3", + "type_name_2": "gpu.s32_3", + "qualified_name": "keen::ds::gpu::s32_3", + "referenced_type_name": "keen::gpu::s32_3", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1480487295, + "hash2": 3721286952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "s32_4", + "type_name_2": "gpu.s32_4", + "qualified_name": "keen::ds::gpu::s32_4", + "referenced_type_name": "keen::gpu::s32_4", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1430154438, + "hash2": 1216879167, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_1", + "type_name_2": "gpu.f32_1", + "qualified_name": "keen::ds::gpu::f32_1", + "referenced_type_name": "keen::gpu::f32_1", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4293520286, + "hash2": 3005136928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_2", + "type_name_2": "gpu.f32_2", + "qualified_name": "keen::ds::gpu::f32_2", + "referenced_type_name": "keen::gpu::f32_2", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4276742667, + "hash2": 771174023, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_3", + "type_name_2": "gpu.f32_3", + "qualified_name": "keen::ds::gpu::f32_3", + "referenced_type_name": "keen::gpu::f32_3", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4259965048, + "hash2": 2023471607, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_4", + "type_name_2": "gpu.f32_4", + "qualified_name": "keen::ds::gpu::f32_4", + "referenced_type_name": "keen::gpu::f32_4", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 82441085, + "hash2": 2398531624, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_3x4", + "type_name_2": "gpu.f32_3x4", + "qualified_name": "keen::ds::gpu::f32_3x4", + "referenced_type_name": "keen::gpu::f32_3x4", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2709551580, + "hash2": 679516559, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "f32_4x4", + "type_name_2": "gpu.f32_4x4", + "qualified_name": "keen::ds::gpu::f32_4x4", + "referenced_type_name": "keen::gpu::f32_4x4", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 835658225, + "hash2": 1883861510, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DrawIndirectParameter", + "type_name_2": "gpu.DrawIndirectParameter", + "qualified_name": "keen::ds::gpu::DrawIndirectParameter", + "referenced_type_name": "keen::gpu::DrawIndirectParameter", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2015884950, + "hash2": 1561969900, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DrawIndexedIndirectParameter", + "type_name_2": "gpu.DrawIndexedIndirectParameter", + "qualified_name": "keen::ds::gpu::DrawIndexedIndirectParameter", + "referenced_type_name": "keen::gpu::DrawIndexedIndirectParameter", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2424403107, + "hash2": 4149940144, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DispatchIndirectParameter", + "type_name_2": "gpu.DispatchIndirectParameter", + "qualified_name": "keen::ds::gpu::DispatchIndirectParameter", + "referenced_type_name": "keen::gpu::DispatchIndirectParameter", + "class_size": 12, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2899707998, + "hash2": 3656507108, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture2D_float4", + "type_name_2": "BindlessTexture2D_float4", + "qualified_name": "keen::ds::BindlessTexture2D_float4", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3918846145, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture2D_float", + "type_name_2": "BindlessTexture2D_float", + "qualified_name": "keen::ds::BindlessTexture2D_float", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 21922031, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture3D_float4", + "type_name_2": "BindlessTexture3D_float4", + "qualified_name": "keen::ds::BindlessTexture3D_float4", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3591301874, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture3D_float", + "type_name_2": "BindlessTexture3D_float", + "qualified_name": "keen::ds::BindlessTexture3D_float", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3605563570, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessTexture3D_uint", + "type_name_2": "BindlessTexture3D_uint", + "qualified_name": "keen::ds::BindlessTexture3D_uint", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1697478376, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BindlessSampler", + "type_name_2": "BindlessSampler", + "qualified_name": "keen::ds::BindlessSampler", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1608001563, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSystemInformation", + "type_name_2": "GpuSystemInformation", + "qualified_name": "keen::ds::GpuSystemInformation", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1661449368, + "hash2": 2938606413, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 64 + }, + { + "name": "videoMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 128 + }, + { + "name": "sharedMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 136 + }, + { + "name": "hasDirectX9", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + }, + { + "name": "hasDirectX11", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 145 + }, + { + "name": "hasGl1", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 146 + }, + { + "name": "hasGl2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 147 + }, + { + "name": "hasGl3", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 148 + }, + { + "name": "hasGl4", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 149 + }, + { + "name": "hasGles2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 150 + }, + { + "name": "hasGles3", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 151 + }, + { + "name": "hasMetal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 152 + }, + { + "name": "hasVulkan", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 153 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisplaySystemInformation", + "type_name_2": "DisplaySystemInformation", + "qualified_name": "keen::ds::DisplaySystemInformation", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1813655256, + "hash2": 2888810204, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 0 + }, + { + "name": "gpuIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "pixelWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "pixelHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "aspectRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "dpi", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuSystemInformation[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::GpuSystemInformation", + "class_size": 640, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 2734627044, + "hash2": 390609022, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "DisplaySystemInformation[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::DisplaySystemInformation", + "class_size": 336, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 1695813828, + "hash2": 2411539684, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsSystemInformation", + "type_name_2": "GraphicsSystemInformation", + "qualified_name": "keen::ds::GraphicsSystemInformation", + "referenced_type_name": null, + "class_size": 992, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 463678855, + "hash2": 106105592, + "struct_fields": [ + { + "name": "totalPixelWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "totalPixelHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "gpuCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "displayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "gpus", + "type_name": "keen::StaticArray", + "type_hash": 2734627044, + "data_offset": 16 + }, + { + "name": "displays", + "type_name": "keen::StaticArray", + "type_hash": 1695813828, + "data_offset": 656 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HistogramData", + "type_name_2": "HistogramData", + "qualified_name": "keen::ds::HistogramData", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1159751711, + "hash2": 359172011, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "slots", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 40 + }, + { + "name": "valueCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "valueSum", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 88 + }, + { + "name": "minValue", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 96 + }, + { + "name": "maxValue", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 104 + }, + { + "name": "rangeStart", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 112 + }, + { + "name": "rangeEnd", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 120 + }, + { + "name": "isLinear", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "isTime", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 129 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticEngineVersion", + "type_name_2": "HolisticEngineVersion", + "qualified_name": "keen::ds::HolisticEngineVersion", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3464695680, + "hash2": 3404786820, + "struct_fields": [ + { + "name": "gitHash", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneRenderFlag", + "type_name_2": "HolisticSceneRenderFlag", + "qualified_name": "keen::ds::HolisticSceneRenderFlag", + "referenced_type_name": "keen::HolisticSceneRenderFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3062712796, + "hash2": 46402717, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneRenderFlags", + "type_name_2": "HolisticSceneRenderFlags", + "qualified_name": "keen::ds::HolisticSceneRenderFlags", + "referenced_type_name": "keen::HolisticSceneRenderFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 258670205, + "hash2": 3794322012, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCameraSpeed", + "type_name_2": "SceneCameraSpeed", + "qualified_name": "keen::ds::SceneCameraSpeed", + "referenced_type_name": "keen::SceneCameraSpeed", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1576372121, + "hash2": 2226837599, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCameraSpeedBoostFactor", + "type_name_2": "SceneCameraSpeedBoostFactor", + "qualified_name": "keen::ds::SceneCameraSpeedBoostFactor", + "referenced_type_name": "keen::SceneCameraSpeedBoostFactor", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 949376243, + "hash2": 1401003744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneCameraSettings", + "type_name_2": "HolisticSceneCameraSettings", + "qualified_name": "keen::ds::HolisticSceneCameraSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 435605696, + "hash2": 3810519820, + "struct_fields": [ + { + "name": "cameraSpeed", + "type_name": "keen::ds::SceneCameraSpeed", + "type_hash": 1576372121, + "data_offset": 0 + }, + { + "name": "cameraSpeedBoost", + "type_name": "keen::ds::SceneCameraSpeedBoostFactor", + "type_hash": 949376243, + "data_offset": 1 + }, + { + "name": "farClip", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "fovY", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneEditorLighting", + "type_name_2": "HolisticSceneEditorLighting", + "qualified_name": "keen::ds::HolisticSceneEditorLighting", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 749909847, + "hash2": 3868368961, + "struct_fields": [ + { + "name": "sunColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "iblIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "editorFixedExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "forceEditorLighting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSnappingFlag", + "type_name_2": "HolisticSnappingFlag", + "qualified_name": "keen::ds::HolisticSnappingFlag", + "referenced_type_name": "keen::HolisticSnappingFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 950467356, + "hash2": 177719356, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSnappingFlags", + "type_name_2": "HolisticSnappingFlags", + "qualified_name": "keen::ds::HolisticSnappingFlags", + "referenced_type_name": "keen::HolisticSnappingFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2648559549, + "hash2": 91626570, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneViewOverlay", + "type_name_2": "HolisticSceneViewOverlay", + "qualified_name": "keen::ds::HolisticSceneViewOverlay", + "referenced_type_name": "keen::HolisticSceneViewOverlay", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 418078709, + "hash2": 1735066486, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneViewOverlays", + "type_name_2": "HolisticSceneViewOverlays", + "qualified_name": "keen::ds::HolisticSceneViewOverlays", + "referenced_type_name": "keen::HolisticSceneViewOverlays", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3230097394, + "hash2": 2135226500, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneSnappingSettings", + "type_name_2": "HolisticSceneSnappingSettings", + "qualified_name": "keen::ds::HolisticSceneSnappingSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 200621607, + "hash2": 2276201130, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "angleStep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "lockedSnappingFlags", + "type_name": "keen::ds::HolisticSnappingFlags", + "type_hash": 2648559549, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticOverlaySettings", + "type_name_2": "HolisticOverlaySettings", + "qualified_name": "keen::ds::HolisticOverlaySettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1362514531, + "hash2": 1510727834, + "struct_fields": [ + { + "name": "overlays", + "type_name": "keen::ds::HolisticSceneViewOverlays", + "type_hash": 3230097394, + "data_offset": 0 + }, + { + "name": "showOverlays", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "isNonSelectableOverlayExpanded", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "isCustomLightOverlayExpanded", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "isAlbedoTintLayerOverlayExpanded", + "type_name": "keen::StaticArray", + "type_hash": 3537040393, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticSceneToolboxSettings", + "type_name_2": "HolisticSceneToolboxSettings", + "qualified_name": "keen::ds::HolisticSceneToolboxSettings", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 207292876, + "hash2": 892034822, + "struct_fields": [ + { + "name": "randomRotateY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "alignToNormal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticPersistentSceneSettings", + "type_name_2": "HolisticPersistentSceneSettings", + "qualified_name": "keen::ds::HolisticPersistentSceneSettings", + "referenced_type_name": null, + "class_size": 68, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2338373700, + "hash2": 2649730278, + "struct_fields": [ + { + "name": "camera", + "type_name": "keen::ds::HolisticSceneCameraSettings", + "type_hash": 435605696, + "data_offset": 0 + }, + { + "name": "lighting", + "type_name": "keen::ds::HolisticSceneEditorLighting", + "type_hash": 749909847, + "data_offset": 12 + }, + { + "name": "snapping", + "type_name": "keen::ds::HolisticSceneSnappingSettings", + "type_hash": 200621607, + "data_offset": 40 + }, + { + "name": "overlaySettings", + "type_name": "keen::ds::HolisticOverlaySettings", + "type_hash": 1362514531, + "data_offset": 52 + }, + { + "name": "toolbox", + "type_name": "keen::ds::HolisticSceneToolboxSettings", + "type_hash": 207292876, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticPersistentPreviewSettings", + "type_name_2": "HolisticPersistentPreviewSettings", + "qualified_name": "keen::ds::HolisticPersistentPreviewSettings", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4205033424, + "hash2": 429545312, + "struct_fields": [ + { + "name": "camera", + "type_name": "keen::ds::HolisticSceneCameraSettings", + "type_hash": 435605696, + "data_offset": 0 + }, + { + "name": "lighting", + "type_name": "keen::ds::HolisticSceneEditorLighting", + "type_hash": 749909847, + "data_offset": 12 + }, + { + "name": "overlaySettings", + "type_name": "keen::ds::HolisticOverlaySettings", + "type_hash": 1362514531, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticPersistentUserSettings", + "type_name_2": "HolisticPersistentUserSettings", + "qualified_name": "keen::ds::HolisticPersistentUserSettings", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3476761285, + "hash2": 2197721157, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ds::HolisticPersistentSceneSettings", + "type_hash": 2338373700, + "data_offset": 0 + }, + { + "name": "preview", + "type_name": "keen::ds::HolisticPersistentPreviewSettings", + "type_hash": 4205033424, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticVfxTestParameters", + "type_name_2": "HolisticVfxTestParameters", + "qualified_name": "keen::ds::HolisticVfxTestParameters", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2421225854, + "hash2": 1037016934, + "struct_fields": [ + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilterCollection", + "type_name_2": "HolisticMapFilterCollection", + "qualified_name": "keen::ds::HolisticMapFilterCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3795900810, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilterDirectory", + "type_name_2": "HolisticMapFilterDirectory", + "qualified_name": "keen::ds::HolisticMapFilterDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3363001209, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "HolisticMapFilter", + "type_name_2": "HolisticMapFilter", + "qualified_name": "keen::ds::HolisticMapFilter", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 772116186, + "hash2": 993286702, + "struct_fields": [ + { + "name": "markerSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 4 + }, + { + "name": "isVisible", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Folder", + "type_name_2": "Folder", + "qualified_name": "keen::ds::Folder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2746508443, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImporterModelConfig", + "type_name_2": "ImporterModelConfig", + "qualified_name": "keen::ds::ImporterModelConfig", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4269804296, + "hash2": 3000218745, + "struct_fields": [ + { + "name": "parentNamePatters", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 0 + }, + { + "name": "nameIncludePatters", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 40 + }, + { + "name": "nameExcludePatters", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImporterTemplate", + "type_name_2": "ImporterTemplate", + "qualified_name": "keen::ds::ImporterTemplate", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3960247759, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImporterTemplateObject", + "type_name_2": "ImporterTemplateObject", + "qualified_name": "keen::ds::ImporterTemplateObject", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 252133388, + "hash2": 4121526228, + "struct_fields": [ + { + "name": "descriptionFormat", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "initialState", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 80 + }, + { + "name": "sortIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "containerId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImporterAction", + "type_name_2": "ImporterAction", + "qualified_name": "keen::ds::ImporterAction", + "referenced_type_name": "keen::ImporterAction", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2579421803, + "hash2": 296688289, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceFileHash", + "type_name_2": "SourceFileHash", + "qualified_name": "keen::ds::SourceFileHash", + "referenced_type_name": "keen::ds::string", + "class_size": 40, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 364716076, + "hash2": 58040744, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImporterFileTemplate", + "type_name_2": "ImporterFileTemplate", + "qualified_name": "keen::ds::ImporterFileTemplate", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3154698733, + "hash2": 1861879761, + "struct_fields": [ + { + "name": "extension", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "action", + "type_name": "keen::ds::ImporterAction", + "type_hash": 2579421803, + "data_offset": 40 + }, + { + "name": "contentHash", + "type_name": "keen::ds::SourceFileHash", + "type_hash": 364716076, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TagCollection", + "type_name_2": "TagCollection", + "qualified_name": "keen::ds::TagCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3862146385, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectTagGroup", + "type_name_2": "ObjectTagGroup", + "qualified_name": "keen::ds::ObjectTagGroup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2780123863, + "hash2": 2540684284, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectTag", + "type_name_2": "ObjectTag", + "qualified_name": "keen::ds::ObjectTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1190749796, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ObjectTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 64750401, + "hash2": 1336120026, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TagReference", + "type_name_2": "TagReference", + "qualified_name": "keen::ds::TagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1600008794, + "hash2": 3464695810, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ObjectTag[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ObjectTag", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1201099451, + "hash2": 2103259891, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ObjectTagGroup[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ObjectTagGroup", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 11944368, + "hash2": 3666143815, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TagDirectoryContent", + "type_name_2": "TagDirectoryContent", + "qualified_name": "keen::ds::TagDirectoryContent", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 623598861, + "hash2": 3987917911, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 1201099451, + "data_offset": 0 + }, + { + "name": "groups", + "type_name": "keen::DsArray", + "type_hash": 11944368, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HolisticImporterObjectType", + "type_name_2": "HolisticImporterObjectType", + "qualified_name": "keen::ds::HolisticImporterObjectType", + "referenced_type_name": "keen::HolisticImporterObjectType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3442448815, + "hash2": 2146802742, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceFile", + "type_name_2": "SourceFile", + "qualified_name": "keen::ds::SourceFile", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3593935532, + "hash2": 237609660, + "struct_fields": [ + { + "name": "fileHash", + "type_name": "keen::ds::SourceFileHash", + "type_hash": 364716076, + "data_offset": 0 + }, + { + "name": "targetType", + "type_name": "keen::ds::HolisticImporterObjectType", + "type_hash": 3442448815, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SourceFile", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 575017743, + "hash2": 2248577360, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceFileReference", + "type_name_2": "SourceFileReference", + "qualified_name": "keen::ds::SourceFileReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2261536929, + "hash2": 2516799839, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceData", + "type_name_2": "SourceData", + "qualified_name": "keen::ds::SourceData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3783673946, + "hash2": 3516357490, + "struct_fields": [ + { + "name": "dataHash", + "type_name": "keen::ds::SourceFileHash", + "type_hash": 364716076, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SourceData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3536201513, + "hash2": 1831335888, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SourceDataReference", + "type_name_2": "SourceDataReference", + "qualified_name": "keen::ds::SourceDataReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3317775247, + "hash2": 890719897, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagDirectory", + "type_name_2": "WhiteboxTagDirectory", + "qualified_name": "keen::ds::WhiteboxTagDirectory", + "referenced_type_name": "keen::ds::Group", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3153542206, + "hash2": 4244116669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagGroup", + "type_name_2": "WhiteboxTagGroup", + "qualified_name": "keen::ds::WhiteboxTagGroup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 26341806, + "hash2": 2540684284, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTag", + "type_name_2": "WhiteboxTag", + "qualified_name": "keen::ds::WhiteboxTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3028739847, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTagGroup", + "type_name_2": "LootTagGroup", + "qualified_name": "keen::ds::LootTagGroup", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3945637030, + "hash2": 2540684284, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LootTag", + "type_name_2": "LootTag", + "qualified_name": "keen::ds::LootTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4073981407, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollectionRootDirectory", + "type_name_2": "DefaultLootLabelCollectionRootDirectory", + "qualified_name": "keen::ds::DefaultLootLabelCollectionRootDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1117734815, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollectionDirectory", + "type_name_2": "DefaultLootLabelCollectionDirectory", + "qualified_name": "keen::ds::DefaultLootLabelCollectionDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1433573647, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DefaultLootLabelCollection", + "type_name_2": "DefaultLootLabelCollection", + "qualified_name": "keen::ds::DefaultLootLabelCollection", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2291659396, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomContextTag", + "type_name_2": "DungeonRoomContextTag", + "qualified_name": "keen::ds::DungeonRoomContextTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2356799189, + "hash2": 287177585, + "struct_fields": [ + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomGroundContextTag", + "type_name_2": "DungeonRoomGroundContextTag", + "qualified_name": "keen::ds::DungeonRoomGroundContextTag", + "referenced_type_name": "keen::ds::DungeonRoomContextTag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1977611142, + "hash2": 3859565519, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomCeilingContextTag", + "type_name_2": "DungeonRoomCeilingContextTag", + "qualified_name": "keen::ds::DungeonRoomCeilingContextTag", + "referenced_type_name": "keen::ds::DungeonRoomContextTag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 886921394, + "hash2": 3859565519, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WhiteboxTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 709955372, + "hash2": 920679314, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagReference", + "type_name_2": "WhiteboxTagReference", + "qualified_name": "keen::ds::WhiteboxTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3164116436, + "hash2": 901318171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WhiteboxTagGroup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 466763753, + "hash2": 3222625613, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagGroupReference", + "type_name_2": "WhiteboxTagGroupReference", + "qualified_name": "keen::ds::WhiteboxTagGroupReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3552049883, + "hash2": 321133735, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInstance", + "type_name_2": "WhiteboxTagInstance", + "qualified_name": "keen::ds::WhiteboxTagInstance", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3437157364, + "hash2": 2115312390, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ds::WhiteboxTagReference", + "type_hash": 3164116436, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::LootTag", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3269981500, + "hash2": 2461958292, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTagReference", + "type_name_2": "LootTagReference", + "qualified_name": "keen::ds::LootTagReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4057786316, + "hash2": 312508852, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LootTagInstance", + "type_name_2": "LootTagInstance", + "qualified_name": "keen::ds::LootTagInstance", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3942674620, + "hash2": 3549267788, + "struct_fields": [ + { + "name": "tag", + "type_name": "keen::ds::LootTagReference", + "type_hash": 4057786316, + "data_offset": 0 + }, + { + "name": "itemLootWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInfo", + "type_name_2": "WhiteboxTagInfo", + "qualified_name": "keen::ds::WhiteboxTagInfo", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 39099843, + "hash2": 505166370, + "struct_fields": [ + { + "name": "instance", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tag", + "type_name": "keen::ds::WhiteboxTagReference", + "type_hash": 3164116436, + "data_offset": 16 + }, + { + "name": "group", + "type_name": "keen::ds::WhiteboxTagGroupReference", + "type_hash": 3552049883, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInheritanceInfo", + "type_name_2": "WhiteboxTagInheritanceInfo", + "qualified_name": "keen::ds::WhiteboxTagInheritanceInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3593559473, + "hash2": 555961806, + "struct_fields": [ + { + "name": "parentId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "tagGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxTagInheritanceInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxTagInheritanceInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 120929178, + "hash2": 2604944165, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagInheritanceList", + "type_name_2": "WhiteboxTagInheritanceList", + "qualified_name": "keen::ds::WhiteboxTagInheritanceList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1220183893, + "hash2": 2520570829, + "struct_fields": [ + { + "name": "inheritedTags", + "type_name": "keen::DsArray", + "type_hash": 120929178, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageType", + "type_name_2": "ImageType", + "qualified_name": "keen::ds::ImageType", + "referenced_type_name": "keen::ImageType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3055527836, + "hash2": 673311364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImageColorSpace", + "type_name_2": "ImageColorSpace", + "qualified_name": "keen::ds::ImageColorSpace", + "referenced_type_name": "keen::ImageColorSpace", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2144341879, + "hash2": 1006633632, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ImageContentType", + "type_name_2": "ImageContentType", + "qualified_name": "keen::ds::ImageContentType", + "referenced_type_name": "keen::ImageContentType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3998006089, + "hash2": 1945525883, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Image", + "type_name_2": "Image", + "qualified_name": "keen::ds::Image", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3059615764, + "hash2": 3505396410, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::ImageType", + "type_hash": 3055527836, + "data_offset": 0 + }, + { + "name": "slice", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 8 + }, + { + "name": "alphaChannel", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 48 + }, + { + "name": "colorSpace", + "type_name": "keen::ds::ImageColorSpace", + "type_hash": 2144341879, + "data_offset": 88 + }, + { + "name": "contentType", + "type_name": "keen::ds::ImageContentType", + "type_hash": 3998006089, + "data_offset": 92 + }, + { + "name": "sizeDivider", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "slices", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "sliceRows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageInfo", + "type_name_2": "ImageInfo", + "qualified_name": "keen::ds::ImageInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3571978632, + "hash2": 786267884, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "depth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkedImage", + "type_name_2": "ChunkedImage", + "qualified_name": "keen::ds::ChunkedImage", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4127811354, + "hash2": 1988945155, + "struct_fields": [ + { + "name": "tileSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "numTiles", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "dimension", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageColorRange", + "type_name_2": "ImageColorRange", + "qualified_name": "keen::ds::ImageColorRange", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1016806448, + "hash2": 1464111587, + "struct_fields": [ + { + "name": "averageColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "minColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "maxColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageType", + "type_name_2": "ScatterImageType", + "qualified_name": "keen::ds::ScatterImageType", + "referenced_type_name": "keen::ScatterImageType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1629432640, + "hash2": 4014042951, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImage", + "type_name_2": "ScatterImage", + "qualified_name": "keen::ds::ScatterImage", + "referenced_type_name": "keen::ds::AbstractScatterImage", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4082054472, + "hash2": 607188476, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::ScatterImageType", + "type_hash": 1629432640, + "data_offset": 0 + }, + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageMetaData", + "type_name_2": "ScatterImageMetaData", + "qualified_name": "keen::ds::ScatterImageMetaData", + "referenced_type_name": "keen::ds::ScatterImage", + "class_size": 32, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3490997213, + "hash2": 4284723349, + "struct_fields": [ + { + "name": "chunkedImage", + "type_name": "keen::ds::ChunkedImage", + "type_hash": 4127811354, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageAreaMetaData", + "type_name_2": "ScatterImageAreaMetaData", + "qualified_name": "keen::ds::ScatterImageAreaMetaData", + "referenced_type_name": "keen::ds::ScatterImageMetaData", + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 133399828, + "hash2": 993210197, + "struct_fields": [ + { + "name": "tileRangeX", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 32 + }, + { + "name": "tileRangeY", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageLoadParameters", + "type_name_2": "ScatterImageLoadParameters", + "qualified_name": "keen::ds::ScatterImageLoadParameters", + "referenced_type_name": "keen::ds::ScatterImageAreaMetaData", + "class_size": 68, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3005518344, + "hash2": 1230011598, + "struct_fields": [ + { + "name": "imageGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "channel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::NpcDialogDirectory", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3335074156, + "hash2": 4206289707, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeDirectory", + "type_name_2": "GameKnowledgeDirectory", + "qualified_name": "keen::ds::GameKnowledgeDirectory", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2265317194, + "hash2": 3702988772, + "struct_fields": [ + { + "name": "itemDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 597246720, + "data_offset": 0 + }, + { + "name": "dialogDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 3335074156, + "data_offset": 16 + }, + { + "name": "recipeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 2982649396, + "data_offset": 32 + }, + { + "name": "journalDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 65665368, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeSubDirectory", + "type_name_2": "GameKnowledgeSubDirectory", + "qualified_name": "keen::ds::GameKnowledgeSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4135066742, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeObjectBase", + "type_name_2": "GameKnowledgeObjectBase", + "qualified_name": "keen::ds::GameKnowledgeObjectBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1760001061, + "hash2": 611177922, + "struct_fields": [ + { + "name": "sendToAnalytics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldKnowledgeObject", + "type_name_2": "WorldKnowledgeObject", + "qualified_name": "keen::ds::WorldKnowledgeObject", + "referenced_type_name": "keen::ds::GameKnowledgeObjectBase", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3651060152, + "hash2": 4281041663, + "struct_fields": [ + { + "name": "generateAdditionalPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerKnowledgeObject", + "type_name_2": "PlayerKnowledgeObject", + "qualified_name": "keen::ds::PlayerKnowledgeObject", + "referenced_type_name": "keen::ds::GameKnowledgeObjectBase", + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 166250001, + "hash2": 2452850645, + "struct_fields": [ + { + "name": "unlocksSkillPoints", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "unlockedSkillPoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "experienceGain", + "type_name": "keen::ObjectReference", + "type_hash": 3680746805, + "data_offset": 4 + }, + { + "name": "unlockAchievement", + "type_name": "keen::ds::AchievementDataReference", + "type_hash": 2463221455, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeRequirement", + "type_name_2": "SceneKnowledgeRequirement", + "qualified_name": "keen::ds::SceneKnowledgeRequirement", + "referenced_type_name": "keen::ds::GameKnowledgeRequirementBase", + "class_size": 120, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1755322574, + "hash2": 3739136633, + "struct_fields": [ + { + "name": "targetSubentity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeObjectInfo", + "type_name_2": "KnowledgeObjectInfo", + "qualified_name": "keen::ds::KnowledgeObjectInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1217699498, + "hash2": 3922352348, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "generateAdditionalPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + }, + { + "name": "sendToAnalytics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 50 + }, + { + "name": "unlockedSkillPoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 51 + }, + { + "name": "experienceGainId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 52 + }, + { + "name": "achievementId", + "type_name": "keen::ds::AchievementId", + "type_hash": 1667801447, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "KnowledgeExperienceCount[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::KnowledgeExperienceCount", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3023218369, + "hash2": 4203400657, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeExperienceCountInfo", + "type_name_2": "KnowledgeExperienceCountInfo", + "qualified_name": "keen::ds::KnowledgeExperienceCountInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1055542708, + "hash2": 3557732852, + "struct_fields": [ + { + "name": "experienceObjects", + "type_name": "keen::DsArray", + "type_hash": 3023218369, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeExperienceCount", + "type_name_2": "KnowledgeExperienceCount", + "qualified_name": "keen::ds::KnowledgeExperienceCount", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2266773160, + "hash2": 1177204947, + "struct_fields": [ + { + "name": "experienceObjectId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeObjectResource", + "type_name_2": "KnowledgeObjectResource", + "qualified_name": "keen::ds::KnowledgeObjectResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 46217178, + "hash2": 1672233257, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 0 + }, + { + "name": "sendToAnalytics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldKnowledgeObjectResource", + "type_name_2": "WorldKnowledgeObjectResource", + "qualified_name": "keen::ds::WorldKnowledgeObjectResource", + "referenced_type_name": "keen::ds::KnowledgeObjectResource", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2287461148, + "hash2": 3766962480, + "struct_fields": [ + { + "name": "hasOptionalPlayerProgression", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerKnowledgeObjectResource", + "type_name_2": "PlayerKnowledgeObjectResource", + "qualified_name": "keen::ds::PlayerKnowledgeObjectResource", + "referenced_type_name": "keen::ds::KnowledgeObjectResource", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2493370737, + "hash2": 3316817189, + "struct_fields": [ + { + "name": "unlockedSkillPoints", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "experienceGainId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 12 + }, + { + "name": "achievementId", + "type_name": "keen::ds::AchievementId", + "type_hash": 1667801447, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WorldKnowledgeObjectResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WorldKnowledgeObjectResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4268330805, + "hash2": 3244897672, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PlayerKnowledgeObjectResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PlayerKnowledgeObjectResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 352570384, + "hash2": 3992760261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "KnowledgeId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::KnowledgeId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3159512007, + "hash2": 2807317834, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeResource", + "type_name_2": "GameKnowledgeResource", + "qualified_name": "keen::ds::GameKnowledgeResource", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2988376647, + "hash2": 2756865542, + "struct_fields": [ + { + "name": "worldKnowledge", + "type_name": "keen::DsArray", + "type_hash": 4268330805, + "data_offset": 0 + }, + { + "name": "playerKnowledge", + "type_name": "keen::DsArray", + "type_hash": 352570384, + "data_offset": 40 + }, + { + "name": "dialogKnowledgeIds", + "type_name": "keen::DsArray", + "type_hash": 3159512007, + "data_offset": 80 + }, + { + "name": "itemKnowledgeIds", + "type_name": "keen::DsArray", + "type_hash": 3159512007, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "KnowledgeObjectInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::KnowledgeObjectInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3109106473, + "hash2": 1824971737, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeDbInfo", + "type_name_2": "GameKnowledgeDbInfo", + "qualified_name": "keen::ds::GameKnowledgeDbInfo", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2909898781, + "hash2": 4152336873, + "struct_fields": [ + { + "name": "worldKnowledgeObjects", + "type_name": "keen::DsArray", + "type_hash": 3109106473, + "data_offset": 0 + }, + { + "name": "playerKnowledgeObjects", + "type_name": "keen::DsArray", + "type_hash": 3109106473, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryDirectory", + "type_name_2": "KnowledgeQueryDirectory", + "qualified_name": "keen::ds::KnowledgeQueryDirectory", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 861887994, + "hash2": 2765532257, + "struct_fields": [ + { + "name": "knowledgeDirectory", + "type_name": "keen::ObjectReference", + "type_hash": 1236278225, + "data_offset": 0 + }, + { + "name": "demoKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 223212227, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQuerySubDirectory", + "type_name_2": "KnowledgeQuerySubDirectory", + "qualified_name": "keen::ds::KnowledgeQuerySubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2750975110, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryOperator", + "type_name_2": "KnowledgeQueryOperator", + "qualified_name": "keen::ds::KnowledgeQueryOperator", + "referenced_type_name": "keen::KnowledgeQueryOperator", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3323403547, + "hash2": 740061878, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQuery", + "type_name_2": "GameKnowledgeQuery", + "qualified_name": "keen::ds::GameKnowledgeQuery", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3522622489, + "hash2": 1815500149, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::KnowledgeQueryOperator", + "type_hash": 3323403547, + "data_offset": 0 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BaseKnowledgeQueryAction", + "type_name_2": "BaseKnowledgeQueryAction", + "qualified_name": "keen::ds::BaseKnowledgeQueryAction", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 507471240, + "hash2": 287177585, + "struct_fields": [ + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryAction", + "type_name_2": "KnowledgeQueryAction", + "qualified_name": "keen::ds::KnowledgeQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2056904633, + "hash2": 56156510, + "struct_fields": [ + { + "name": "usePlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "worldKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 223212227, + "data_offset": 4 + }, + { + "name": "playerKnowledge", + "type_name": "keen::ObjectReference", + "type_hash": 3956008818, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ItemKnowledgeQueryAction", + "type_name_2": "ItemKnowledgeQueryAction", + "qualified_name": "keen::ds::ItemKnowledgeQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2093899602, + "hash2": 1216206183, + "struct_fields": [ + { + "name": "itemKnowledge", + "type_name": "keen::ds::ItemKnowledgeTrigger", + "type_hash": 3476630128, + "data_offset": 1 + }, + { + "name": "worldItemKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DialogKnowledgeQueryAction", + "type_name_2": "DialogKnowledgeQueryAction", + "qualified_name": "keen::ds::DialogKnowledgeQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1402452509, + "hash2": 3760493336, + "struct_fields": [ + { + "name": "dialogOption", + "type_name": "keen::ObjectReference", + "type_hash": 3200857631, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NpcQueryActionType", + "type_name_2": "NpcQueryActionType", + "qualified_name": "keen::ds::NpcQueryActionType", + "referenced_type_name": "keen::NpcQueryActionType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 532348200, + "hash2": 1179447416, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NpcQueryAction", + "type_name_2": "NpcQueryAction", + "qualified_name": "keen::ds::NpcQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2733104864, + "hash2": 3629073404, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::NpcQueryActionType", + "type_hash": 532348200, + "data_offset": 1 + }, + { + "name": "npc", + "type_name": "keen::ObjectReference", + "type_hash": 224738262, + "data_offset": 4 + }, + { + "name": "npcEntity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 20 + }, + { + "name": "requiredCraftingProp", + "type_name": "keen::ObjectReference", + "type_hash": 1009443420, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingQueryAction", + "type_name_2": "CraftingQueryAction", + "qualified_name": "keen::ds::CraftingQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1711909433, + "hash2": 821054902, + "struct_fields": [ + { + "name": "recipe", + "type_name": "keen::ObjectReference", + "type_hash": 1669828728, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PredefinedKnowledgeQueryAction", + "type_name_2": "PredefinedKnowledgeQueryAction", + "qualified_name": "keen::ds::PredefinedKnowledgeQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 3, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2926691467, + "hash2": 2397903471, + "struct_fields": [ + { + "name": "usePlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "knowledge", + "type_name": "keen::ds::PredefinedKnowledgeTypes", + "type_hash": 2716114960, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CompareOperator", + "type_name_2": "CompareOperator", + "qualified_name": "keen::ds::CompareOperator", + "referenced_type_name": "keen::CompareOperator", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2833549022, + "hash2": 3072109433, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarCountQueryAction", + "type_name_2": "FlameAltarCountQueryAction", + "qualified_name": "keen::ds::FlameAltarCountQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2682544337, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::ds::CompareOperator", + "type_hash": 2833549022, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FlameAltarLevelQueryAction", + "type_name_2": "FlameAltarLevelQueryAction", + "qualified_name": "keen::ds::FlameAltarLevelQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3659486810, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::ds::CompareOperator", + "type_hash": 2833549022, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MotherFlameLevelQueryAction", + "type_name_2": "MotherFlameLevelQueryAction", + "qualified_name": "keen::ds::MotherFlameLevelQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1925582959, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::ds::CompareOperator", + "type_hash": 2833549022, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PlayerLevelQueryAction", + "type_name_2": "PlayerLevelQueryAction", + "qualified_name": "keen::ds::PlayerLevelQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1318746130, + "hash2": 578105427, + "struct_fields": [ + { + "name": "operation", + "type_name": "keen::ds::CompareOperator", + "type_hash": 2833549022, + "data_offset": 1 + }, + { + "name": "count", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OtherQueryAction", + "type_name_2": "OtherQueryAction", + "qualified_name": "keen::ds::OtherQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2039463515, + "hash2": 1814231287, + "struct_fields": [ + { + "name": "query", + "type_name": "keen::ObjectReference", + "type_hash": 3535380964, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InventoryQueryAction", + "type_name_2": "InventoryQueryAction", + "qualified_name": "keen::ds::InventoryQueryAction", + "referenced_type_name": "keen::ds::BaseKnowledgeQueryAction", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4020822813, + "hash2": 3656496025, + "struct_fields": [ + { + "name": "item", + "type_name": "keen::ObjectReference", + "type_hash": 3662264903, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryActionType", + "type_name_2": "KnowledgeQueryActionType", + "qualified_name": "keen::ds::KnowledgeQueryActionType", + "referenced_type_name": "keen::KnowledgeQueryActionType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 753746321, + "hash2": 627926021, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryActionInfo", + "type_name_2": "KnowledgeQueryActionInfo", + "qualified_name": "keen::ds::KnowledgeQueryActionInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3343805761, + "hash2": 3652339472, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::KnowledgeQueryActionType", + "type_hash": 753746321, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "queryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 48 + }, + { + "name": "queryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "playerProgressionQueryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "invertResult", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 60 + }, + { + "name": "isPlayerAction", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 61 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KnowledgeQueryType", + "type_name_2": "KnowledgeQueryType", + "qualified_name": "keen::ds::KnowledgeQueryType", + "referenced_type_name": "keen::KnowledgeQueryType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3622839811, + "hash2": 3917701859, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryResourceBase", + "type_name_2": "GameKnowledgeQueryResourceBase", + "qualified_name": "keen::ds::GameKnowledgeQueryResourceBase", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3807671604, + "hash2": 975765913, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "queryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 40 + }, + { + "name": "queryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "type", + "type_name": "keen::ds::KnowledgeQueryType", + "type_hash": 3622839811, + "data_offset": 48 + }, + { + "name": "isPlayerQuery", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + }, + { + "name": "invertResult", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 50 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "KnowledgeQueryActionInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::KnowledgeQueryActionInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2876249462, + "hash2": 1357240019, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryResource", + "type_name_2": "GameKnowledgeQueryResource", + "qualified_name": "keen::ds::GameKnowledgeQueryResource", + "referenced_type_name": "keen::ds::GameKnowledgeQueryResourceBase", + "class_size": 104, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1890626313, + "hash2": 2189583229, + "struct_fields": [ + { + "name": "hasOptionalPlayerProgression", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "actions", + "type_name": "keen::DsArray", + "type_hash": 2876249462, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameRuntimeQueryResource", + "type_name_2": "GameRuntimeQueryResource", + "qualified_name": "keen::ds::GameRuntimeQueryResource", + "referenced_type_name": "keen::ds::GameKnowledgeQueryResourceBase", + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3936841289, + "hash2": 4163702858, + "struct_fields": [ + { + "name": "itemRef", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 56 + }, + { + "name": "itemId", + "type_name": "keen::ds::ItemId", + "type_hash": 3072851893, + "data_offset": 72 + }, + { + "name": "npcActionType", + "type_name": "keen::ds::NpcQueryActionType", + "type_hash": 532348200, + "data_offset": 76 + }, + { + "name": "npcId", + "type_name": "keen::ds::NpcId", + "type_hash": 135613395, + "data_offset": 80 + }, + { + "name": "craftingProp", + "type_name": "keen::ds::CraftingPropId", + "type_hash": 3108973213, + "data_offset": 84 + }, + { + "name": "compareOperation", + "type_name": "keen::ds::CompareOperator", + "type_hash": 2833549022, + "data_offset": 88 + }, + { + "name": "compareValue", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 90 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GameKnowledgeQueryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GameKnowledgeQueryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1827451110, + "hash2": 2446283281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GameRuntimeQueryResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GameRuntimeQueryResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 461076950, + "hash2": 2128130348, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryResourceDb", + "type_name_2": "GameKnowledgeQueryResourceDb", + "qualified_name": "keen::ds::GameKnowledgeQueryResourceDb", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1286808527, + "hash2": 757903564, + "struct_fields": [ + { + "name": "demoKnowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 0 + }, + { + "name": "playerQueryStartIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "runtimePlayerQueryStartIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "queries", + "type_name": "keen::DsArray", + "type_hash": 1827451110, + "data_offset": 16 + }, + { + "name": "runtimeQueries", + "type_name": "keen::DsArray", + "type_hash": 461076950, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RecipeKnowledgeType", + "type_name_2": "RecipeKnowledgeType", + "qualified_name": "keen::ds::RecipeKnowledgeType", + "referenced_type_name": "keen::RecipeKnowledgeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3269071503, + "hash2": 229249035, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryTriggerSubDirectory", + "type_name_2": "GameKnowledgeQueryTriggerSubDirectory", + "qualified_name": "keen::ds::GameKnowledgeQueryTriggerSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 627499250, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryTriggerDirectory", + "type_name_2": "GameKnowledgeQueryTriggerDirectory", + "qualified_name": "keen::ds::GameKnowledgeQueryTriggerDirectory", + "referenced_type_name": "keen::ds::GameKnowledgeQueryTriggerSubDirectory", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4186526102, + "hash2": 2368905675, + "struct_fields": [ + { + "name": "knowledgeQueries", + "type_name": "keen::ObjectReference", + "type_hash": 2400941759, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryTrigger", + "type_name_2": "GameKnowledgeQueryTrigger", + "qualified_name": "keen::ds::GameKnowledgeQueryTrigger", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2324318719, + "hash2": 3907983911, + "struct_fields": [ + { + "name": "canUnlockKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "canRemoveKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "requirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 4 + }, + { + "name": "queryId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 108 + }, + { + "name": "unlockKnowledge", + "type_name": "keen::DsArray", + "type_hash": 3159512007, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GameKnowledgeQueryTrigger[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GameKnowledgeQueryTrigger", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1467632350, + "hash2": 710146, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameKnowledgeQueryTriggerResource", + "type_name_2": "GameKnowledgeQueryTriggerResource", + "qualified_name": "keen::ds::GameKnowledgeQueryTriggerResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3905929243, + "hash2": 1085487665, + "struct_fields": [ + { + "name": "worldQueries", + "type_name": "keen::DsArray", + "type_hash": 1467632350, + "data_offset": 0 + }, + { + "name": "playerQueries", + "type_name": "keen::DsArray", + "type_hash": 1467632350, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugKnowledgeQuerySource", + "type_name_2": "DebugKnowledgeQuerySource", + "qualified_name": "keen::ds::DebugKnowledgeQuerySource", + "referenced_type_name": "keen::DebugKnowledgeQuerySource", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 237843915, + "hash2": 4274315151, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugServerKnowledgeMessage", + "type_name_2": "DebugServerKnowledgeMessage", + "qualified_name": "keen::ds::DebugServerKnowledgeMessage", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3036060374, + "hash2": 2206582563, + "struct_fields": [ + { + "name": "changeCounter", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "playerIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "unlockedKnowledge", + "type_name": "keen::DsArray", + "type_hash": 3159512007, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugResetKnowledgeMessage", + "type_name_2": "DebugResetKnowledgeMessage", + "qualified_name": "keen::ds::DebugResetKnowledgeMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1611095326, + "hash2": 2058238552, + "struct_fields": [ + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugUnlockFullKnowledgeMessage", + "type_name_2": "DebugUnlockFullKnowledgeMessage", + "qualified_name": "keen::ds::DebugUnlockFullKnowledgeMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1354977856, + "hash2": 1254973064, + "struct_fields": [ + { + "name": "unlockPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugToggleKnowledgeMessage", + "type_name_2": "DebugToggleKnowledgeMessage", + "qualified_name": "keen::ds::DebugToggleKnowledgeMessage", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2520193913, + "hash2": 1456204857, + "struct_fields": [ + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 0 + }, + { + "name": "resultState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "isPlayerKnowledge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "playerIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugKnowledgeQueryResultType", + "type_name_2": "DebugKnowledgeQueryResultType", + "qualified_name": "keen::ds::DebugKnowledgeQueryResultType", + "referenced_type_name": "keen::DebugKnowledgeQueryResultType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 551254103, + "hash2": 1459613348, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugKnowledgeQueryResult", + "type_name_2": "DebugKnowledgeQueryResult", + "qualified_name": "keen::ds::DebugKnowledgeQueryResult", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3820328271, + "hash2": 2634334552, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::DebugKnowledgeQueryResultType", + "type_hash": 551254103, + "data_offset": 0 + }, + { + "name": "queryIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "isPending", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "isPendingPersonal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "result", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "resultPersonal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeOverride", + "type_name_2": "SceneKnowledgeOverride", + "qualified_name": "keen::ds::SceneKnowledgeOverride", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3355894955, + "hash2": 3032261636, + "struct_fields": [ + { + "name": "entityTemplate", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeTriggerOverride", + "type_name_2": "SceneKnowledgeTriggerOverride", + "qualified_name": "keen::ds::SceneKnowledgeTriggerOverride", + "referenced_type_name": "keen::ds::SceneKnowledgeOverride", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3064719365, + "hash2": 1492454079, + "struct_fields": [ + { + "name": "knowledgeTrigger", + "type_name": "keen::ds::GameKnowledgeTrigger", + "type_hash": 738120629, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeRequirementOverride", + "type_name_2": "SceneKnowledgeRequirementOverride", + "qualified_name": "keen::ds::SceneKnowledgeRequirementOverride", + "referenced_type_name": "keen::ds::SceneKnowledgeOverride", + "class_size": 120, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3449389454, + "hash2": 2063430908, + "struct_fields": [ + { + "name": "knowledgeRequirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeMapMarkerOverride", + "type_name_2": "SceneKnowledgeMapMarkerOverride", + "qualified_name": "keen::ds::SceneKnowledgeMapMarkerOverride", + "referenced_type_name": "keen::ds::SceneKnowledgeOverride", + "class_size": 332, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2935967297, + "hash2": 1085397683, + "struct_fields": [ + { + "name": "hintState", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 16 + }, + { + "name": "visibleState", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 120 + }, + { + "name": "hasCompletedState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 224 + }, + { + "name": "completedState", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 228 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeOverrideType", + "type_name_2": "SceneKnowledgeOverrideType", + "qualified_name": "keen::ds::SceneKnowledgeOverrideType", + "referenced_type_name": "keen::SceneKnowledgeOverrideType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 609842963, + "hash2": 1812516949, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeOverrideInfo", + "type_name_2": "SceneKnowledgeOverrideInfo", + "qualified_name": "keen::ds::SceneKnowledgeOverrideInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1354297295, + "hash2": 2168754359, + "struct_fields": [ + { + "name": "entityTemplateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::SceneKnowledgeOverrideType", + "type_hash": 609842963, + "data_offset": 16 + }, + { + "name": "knowledgeId", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 20 + }, + { + "name": "knowledgeId2", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 24 + }, + { + "name": "knowledgeId3", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneKnowledgeOverrideInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneKnowledgeOverrideInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3863317200, + "hash2": 3145600524, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneKnowledgeOverrides", + "type_name_2": "SceneKnowledgeOverrides", + "qualified_name": "keen::ds::SceneKnowledgeOverrides", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3134865416, + "hash2": 3854878335, + "struct_fields": [ + { + "name": "knowledgeOverrides", + "type_name": "keen::DsArray", + "type_hash": 3863317200, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DebugKnowledgeQueryResult[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DebugKnowledgeQueryResult", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 385048410, + "hash2": 244728134, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DebugKnowledgeQueryResults", + "type_name_2": "DebugKnowledgeQueryResults", + "qualified_name": "keen::ds::DebugKnowledgeQueryResults", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3000626548, + "hash2": 1161371961, + "struct_fields": [ + { + "name": "results", + "type_name": "keen::DsArray", + "type_hash": 385048410, + "data_offset": 0 + }, + { + "name": "playerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagGroup", + "type_name_2": "LocaTagGroup", + "qualified_name": "keen::ds::LocaTagGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1243548793, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaLanguages", + "type_name_2": "LocaLanguages", + "qualified_name": "keen::ds::LocaLanguages", + "referenced_type_name": "keen::LocaLanguages", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1979837189, + "hash2": 1930898820, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::LocaCrowdinProject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 326148292, + "hash2": 1246932237, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaCrowdinProjectReference", + "type_name_2": "LocaCrowdinProjectReference", + "qualified_name": "keen::ds::LocaCrowdinProjectReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1313497138, + "hash2": 2592860433, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaCrowdinProject", + "type_name_2": "LocaCrowdinProject", + "qualified_name": "keen::ds::LocaCrowdinProject", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1418322877, + "hash2": 734542729, + "struct_fields": [ + { + "name": "inputLanguage", + "type_name": "keen::LanguageId", + "type_hash": 1258678121, + "data_offset": 0 + }, + { + "name": "inputProject", + "type_name": "keen::ds::LocaCrowdinProjectReference", + "type_hash": 1313497138, + "data_offset": 4 + }, + { + "name": "outputLanguages", + "type_name": "keen::ds::LocaLanguages", + "type_hash": 1979837189, + "data_offset": 24 + }, + { + "name": "projectId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 32 + }, + { + "name": "fileId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 40 + }, + { + "name": "onlyApproved", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "crowdinCSV", + "type_name": "keen::ds::SourceFileReference", + "type_hash": 2261536929, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollection", + "type_name_2": "LocaTagCollection", + "qualified_name": "keen::ds::LocaTagCollection", + "referenced_type_name": "keen::ds::LocaTagGroup", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1915664414, + "hash2": 530175217, + "struct_fields": [ + { + "name": "crowdinWritingProject", + "type_name": "keen::ds::LocaCrowdinProjectReference", + "type_hash": 1313497138, + "data_offset": 0 + }, + { + "name": "crowdinTranslationProject", + "type_name": "keen::ds::LocaCrowdinProjectReference", + "type_hash": 1313497138, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollectionResourceLanguage", + "type_name_2": "LocaTagCollectionResourceLanguage", + "qualified_name": "keen::ds::LocaTagCollectionResourceLanguage", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3592130468, + "hash2": 1094727927, + "struct_fields": [ + { + "name": "language", + "type_name": "keen::LanguageId", + "type_hash": 1258678121, + "data_offset": 0 + }, + { + "name": "dataHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LocaTagCollectionResourceLanguage[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LocaTagCollectionResourceLanguage", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3455538355, + "hash2": 2529731927, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollectionResource", + "type_name_2": "LocaTagCollectionResource", + "qualified_name": "keen::ds::LocaTagCollectionResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1779581158, + "hash2": 493052310, + "struct_fields": [ + { + "name": "keenglishDataHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "languages", + "type_name": "keen::DsArray", + "type_hash": 3455538355, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LocaArgumentType", + "type_name_2": "LocaArgumentType", + "qualified_name": "keen::ds::LocaArgumentType", + "referenced_type_name": "keen::LocaArgumentType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 139657913, + "hash2": 3135067420, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagArgument", + "type_name_2": "LocaTagArgument", + "qualified_name": "keen::ds::LocaTagArgument", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 95775937, + "hash2": 1688822796, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::LocaArgumentType", + "type_hash": 139657913, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LocaTagArgument[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LocaTagArgument", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1108801248, + "hash2": 83942680, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagResource", + "type_name_2": "LocaTagResource", + "qualified_name": "keen::ds::LocaTagResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1223441118, + "hash2": 264892725, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 0 + }, + { + "name": "text", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "arguments", + "type_name": "keen::DsArray", + "type_hash": 1108801248, + "data_offset": 48 + }, + { + "name": "genericArguments", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "LocaTagResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::LocaTagResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3670935529, + "hash2": 982242931, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LocaTagCollectionResourceData", + "type_name_2": "LocaTagCollectionResourceData", + "qualified_name": "keen::ds::LocaTagCollectionResourceData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 30259142, + "hash2": 2905663487, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 3670935529, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BSpline", + "type_name_2": "BSpline", + "qualified_name": "keen::ds::BSpline", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 440846310, + "hash2": 716427601, + "struct_fields": [ + { + "name": "controlPoints", + "type_name": "keen::DsArray", + "type_hash": 1781839769, + "data_offset": 0 + }, + { + "name": "closed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MemorySystemInformationBlock", + "type_name_2": "MemorySystemInformationBlock", + "qualified_name": "keen::ds::MemorySystemInformationBlock", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2316678974, + "hash2": 186000622, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::StaticArray", + "type_hash": 783834273, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "type", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "MemorySystemInformationBlock[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::MemorySystemInformationBlock", + "class_size": 1280, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 1392569133, + "hash2": 2101393573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MemorySystemInformation", + "type_name_2": "MemorySystemInformation", + "qualified_name": "keen::ds::MemorySystemInformation", + "referenced_type_name": null, + "class_size": 1312, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 596881833, + "hash2": 169274724, + "struct_fields": [ + { + "name": "totalSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "allocatedSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "freeSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + }, + { + "name": "memoryBlocks", + "type_name": "keen::StaticArray", + "type_hash": 1392569133, + "data_offset": 24 + }, + { + "name": "memoryBlockCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Midi", + "type_name_2": "Midi", + "qualified_name": "keen::ds::Midi", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1917516150, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiInstrumentSampleType", + "type_name_2": "MidiInstrumentSampleType", + "qualified_name": "keen::ds::MidiInstrumentSampleType", + "referenced_type_name": "keen::MidiInstrumentSampleType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2006100509, + "hash2": 2429698515, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SamplerInstrument", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2164131861, + "hash2": 1832388777, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSampleCollection", + "type_name_2": "InstrumentSampleCollection", + "qualified_name": "keen::ds::InstrumentSampleCollection", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 152704132, + "hash2": 851183956, + "struct_fields": [ + { + "name": "samplesLute", + "type_name": "keen::ObjectReference", + "type_hash": 2164131861, + "data_offset": 0 + }, + { + "name": "samplesLuteChord", + "type_name": "keen::ObjectReference", + "type_hash": 2164131861, + "data_offset": 16 + }, + { + "name": "samplesFlute", + "type_name": "keen::ObjectReference", + "type_hash": 2164131861, + "data_offset": 32 + }, + { + "name": "samplesHarp", + "type_name": "keen::ObjectReference", + "type_hash": 2164131861, + "data_offset": 48 + }, + { + "name": "samplesDounDoun", + "type_name": "keen::ObjectReference", + "type_hash": 2164131861, + "data_offset": 64 + }, + { + "name": "samplesTambourin", + "type_name": "keen::ObjectReference", + "type_hash": 2164131861, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSample", + "type_name_2": "InstrumentSample", + "qualified_name": "keen::ds::InstrumentSample", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3629521192, + "hash2": 552335768, + "struct_fields": [ + { + "name": "isPitched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "baseNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "fineTune", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrument", + "type_name_2": "SamplerInstrument", + "qualified_name": "keen::ds::SamplerInstrument", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1682231624, + "hash2": 849227500, + "struct_fields": [ + { + "name": "volume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "releaseTime", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "isMonophone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "instrument", + "type_name": "keen::ds::MidiInstrumentSampleType", + "type_hash": 2006100509, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::InstrumentSample", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 641655319, + "hash2": 1967257896, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrumentLayer", + "type_name_2": "SamplerInstrumentLayer", + "qualified_name": "keen::ds::SamplerInstrumentLayer", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4006606269, + "hash2": 3466291856, + "struct_fields": [ + { + "name": "sample", + "type_name": "keen::ObjectReference", + "type_hash": 641655319, + "data_offset": 0 + }, + { + "name": "minNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "maxNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + }, + { + "name": "minVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 18 + }, + { + "name": "maxVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 19 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "sint16[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::sint16", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2506946200, + "hash2": 162076003, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InstrumentSampleData", + "type_name_2": "InstrumentSampleData", + "qualified_name": "keen::ds::InstrumentSampleData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 668174352, + "hash2": 1862562434, + "struct_fields": [ + { + "name": "isPitched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "tuning", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "samples", + "type_name": "keen::DsArray", + "type_hash": 2506946200, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrumentResourceSample", + "type_name_2": "SamplerInstrumentResourceSample", + "qualified_name": "keen::ds::SamplerInstrumentResourceSample", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3046589110, + "hash2": 4158634026, + "struct_fields": [ + { + "name": "isPitched", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "tuning", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "maxNote", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "minVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 10 + }, + { + "name": "maxVelocity", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 11 + }, + { + "name": "sampleOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "sampleLength", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SamplerInstrumentResourceSample[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SamplerInstrumentResourceSample", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1856927141, + "hash2": 3043294192, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SamplerInstrumentResource", + "type_name_2": "SamplerInstrumentResource", + "qualified_name": "keen::ds::SamplerInstrumentResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 312007340, + "hash2": 3243233849, + "struct_fields": [ + { + "name": "volume", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "releaseTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "isMonophone", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "samples", + "type_name": "keen::DsArray", + "type_hash": 1856927141, + "data_offset": 16 + }, + { + "name": "sampleData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 56 + }, + { + "name": "instrument", + "type_name": "keen::ds::MidiInstrumentSampleType", + "type_hash": 2006100509, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiEvent", + "type_name_2": "MidiEvent", + "qualified_name": "keen::ds::MidiEvent", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1153752514, + "hash2": 4115346885, + "struct_fields": [ + { + "name": "timestamp", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "eventType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "subType", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 5 + }, + { + "name": "param1", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 6 + }, + { + "name": "param2", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiTrackRole", + "type_name_2": "MidiTrackRole", + "qualified_name": "keen::ds::MidiTrackRole", + "referenced_type_name": "keen::MidiTrackRole", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1480346169, + "hash2": 2942787558, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "MidiEvent[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::MidiEvent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4179669557, + "hash2": 3026730965, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiTrack", + "type_name_2": "MidiTrack", + "qualified_name": "keen::ds::MidiTrack", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3698895301, + "hash2": 2502001144, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "instrumentName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + }, + { + "name": "instrument", + "type_name": "keen::ds::MidiInstrumentSampleType", + "type_hash": 2006100509, + "data_offset": 80 + }, + { + "name": "role", + "type_name": "keen::ds::MidiTrackRole", + "type_hash": 1480346169, + "data_offset": 81 + }, + { + "name": "events", + "type_name": "keen::DsArray", + "type_hash": 4179669557, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MidiTimeSignature", + "type_name_2": "MidiTimeSignature", + "qualified_name": "keen::ds::MidiTimeSignature", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2260542963, + "hash2": 262207653, + "struct_fields": [ + { + "name": "numerator", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "denominator", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "amountOf32NotesInQN", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "metronomeTicksPQN", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 3 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "MidiTrack[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::MidiTrack", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 736823948, + "hash2": 22685735, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiResource", + "type_name_2": "MidiResource", + "qualified_name": "keen::ds::MidiResource", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1284860622, + "hash2": 3080822630, + "struct_fields": [ + { + "name": "timeSignature", + "type_name": "keen::ds::MidiTimeSignature", + "type_hash": 2260542963, + "data_offset": 0 + }, + { + "name": "pulsesPQN", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "isSMPTE", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "tracks", + "type_name": "keen::DsArray", + "type_hash": 736823948, + "data_offset": 8 + }, + { + "name": "songDurationMS", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MidiResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 10344253, + "hash2": 2447385952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MidiResourceReference", + "type_name_2": "MidiResourceReference", + "qualified_name": "keen::ds::MidiResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1614412475, + "hash2": 2767048522, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NotifierContainer", + "type_name_2": "NotifierContainer", + "qualified_name": "keen::ds::NotifierContainer", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2835080624, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CharacterUtterance", + "type_name_2": "CharacterUtterance", + "qualified_name": "keen::ds::CharacterUtterance", + "referenced_type_name": "keen::CharacterUtterance", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1354594197, + "hash2": 3664339861, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePack", + "type_name_2": "VoicePack", + "qualified_name": "keen::ds::VoicePack", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2255257166, + "hash2": 1436098609, + "struct_fields": [ + { + "name": "attackShort", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 0 + }, + { + "name": "attackLong", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "attackFinisher", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 32 + }, + { + "name": "attackChainFinisherLong", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 48 + }, + { + "name": "attackRollFinisher", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "die", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "hit", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 96 + }, + { + "name": "jump", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 112 + }, + { + "name": "exhausted", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 128 + }, + { + "name": "staminaDrain", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + }, + { + "name": "customization", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "SoundContainerReference[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::SoundContainerReference", + "class_size": 176, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 1874175964, + "hash2": 697699662, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackResource", + "type_name_2": "VoicePackResource", + "qualified_name": "keen::ds::VoicePackResource", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1132523094, + "hash2": 2953858378, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::StaticArray", + "type_hash": 1874175964, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoicePackResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2634543707, + "hash2": 1034961480, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackResourceReference", + "type_name_2": "VoicePackResourceReference", + "qualified_name": "keen::ds::VoicePackResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2358073827, + "hash2": 2506312084, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackSubDirectory", + "type_name_2": "VoicePackSubDirectory", + "qualified_name": "keen::ds::VoicePackSubDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3290979271, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackDirectory", + "type_name_2": "VoicePackDirectory", + "qualified_name": "keen::ds::VoicePackDirectory", + "referenced_type_name": "keen::ds::VoicePackSubDirectory", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1546351893, + "hash2": 2821595519, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoicePackResourceReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoicePackResourceReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2888531572, + "hash2": 2876733944, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoicePackDirectoryResource", + "type_name_2": "VoicePackDirectoryResource", + "qualified_name": "keen::ds::VoicePackDirectoryResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3205822501, + "hash2": 1062260745, + "struct_fields": [ + { + "name": "voicePacks", + "type_name": "keen::DsArray", + "type_hash": 2888531572, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Notifier", + "type_name_2": "Notifier", + "qualified_name": "keen::ds::Notifier", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1832386669, + "hash2": 2450118907, + "struct_fields": [ + { + "name": "defaultVfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + }, + { + "name": "defaultSound", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 16 + }, + { + "name": "playerVoice", + "type_name": "keen::ds::CharacterUtterance", + "type_hash": 1354594197, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierResource", + "type_name_2": "NotifierResource", + "qualified_name": "keen::ds::NotifierResource", + "referenced_type_name": null, + "class_size": 100, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2603780173, + "hash2": 3254009847, + "struct_fields": [ + { + "name": "defaultVfx", + "type_name": "keen::ObjectReference", + "type_hash": 1469622978, + "data_offset": 0 + }, + { + "name": "defaultVfxInitParameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 16 + }, + { + "name": "defaultSound", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 80 + }, + { + "name": "playerVoice", + "type_name": "keen::ds::CharacterUtterance", + "type_hash": 1354594197, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierEventBase", + "type_name_2": "NotifierEventBase", + "qualified_name": "keen::ds::NotifierEventBase", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 144, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 850392778, + "hash2": 61156870, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 96 + }, + { + "name": "notifierOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 100 + }, + { + "name": "attach", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + }, + { + "name": "cancelFromActorSequence", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 141 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FootId", + "type_name_2": "FootId", + "qualified_name": "keen::ds::FootId", + "referenced_type_name": "keen::FootId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3754291098, + "hash2": 3576280598, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FootPassingEvent", + "type_name_2": "FootPassingEvent", + "qualified_name": "keen::ds::FootPassingEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1661119090, + "hash2": 721838660, + "struct_fields": [ + { + "name": "foot", + "type_name": "keen::ds::FootId", + "type_hash": 3754291098, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NotifierEvent", + "type_name_2": "NotifierEvent", + "qualified_name": "keen::ds::NotifierEvent", + "referenced_type_name": "keen::ds::NotifierEventBase", + "class_size": 160, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3669273831, + "hash2": 1513332656, + "struct_fields": [ + { + "name": "notifier", + "type_name": "keen::ds::NotifierReference", + "type_hash": 1060302722, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxNotifierEvent", + "type_name_2": "VfxNotifierEvent", + "qualified_name": "keen::ds::VfxNotifierEvent", + "referenced_type_name": "keen::ds::NotifierEventBase", + "class_size": 224, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 740980465, + "hash2": 4273962850, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 144 + }, + { + "name": "vfxParameters", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SfxNotifierEvent", + "type_name_2": "SfxNotifierEvent", + "qualified_name": "keen::ds::SfxNotifierEvent", + "referenced_type_name": "keen::ds::NotifierEventBase", + "class_size": 168, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2276282420, + "hash2": 4187983737, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 144 + }, + { + "name": "noiseRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EnvironmentEffectNotifierEvent", + "type_name_2": "EnvironmentEffectNotifierEvent", + "qualified_name": "keen::ds::EnvironmentEffectNotifierEvent", + "referenced_type_name": "keen::ds::NotifierEventBase", + "class_size": 176, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3047685909, + "hash2": 1559133610, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 144 + }, + { + "name": "environmentEffectType", + "type_name": "keen::ds::EnvironmentEffectType", + "type_hash": 548314785, + "data_offset": 160 + }, + { + "name": "rayOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoleyEffectNotifierEvent", + "type_name_2": "FoleyEffectNotifierEvent", + "qualified_name": "keen::ds::FoleyEffectNotifierEvent", + "referenced_type_name": "keen::ds::NotifierEventBase", + "class_size": 168, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1838868471, + "hash2": 953622441, + "struct_fields": [ + { + "name": "eventGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 144 + }, + { + "name": "foleyType", + "type_name": "keen::ds::FoleyType", + "type_hash": 1750450690, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothSimulationEventModel", + "type_name_2": "ClothSimulationEventModel", + "qualified_name": "keen::ds::ClothSimulationEventModel", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2141815339, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothSimulationEvent", + "type_name_2": "ClothSimulationEvent", + "qualified_name": "keen::ds::ClothSimulationEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 192, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 156118846, + "hash2": 2239233833, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 96 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "solverFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 132 + }, + { + "name": "motionConstraintsMaxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 136 + }, + { + "name": "motionConstraintsUnlimitedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 140 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 144 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothSimulationResetVelocityEvent", + "type_name_2": "ClothSimulationResetVelocityEvent", + "qualified_name": "keen::ds::ClothSimulationResetVelocityEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4246776446, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ChainSimulationEvent", + "type_name_2": "ChainSimulationEvent", + "qualified_name": "keen::ds::ChainSimulationEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 168, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3842368977, + "hash2": 2921946040, + "struct_fields": [ + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "motionConstraintRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuArchitecure", + "type_name_2": "CpuArchitecure", + "qualified_name": "keen::ds::CpuArchitecure", + "referenced_type_name": "keen::CpuArchitecure", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1125248616, + "hash2": 3381038252, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CpuSystemInformation", + "type_name_2": "CpuSystemInformation", + "qualified_name": "keen::ds::CpuSystemInformation", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3833907204, + "hash2": 3407346002, + "struct_fields": [ + { + "name": "architecture", + "type_name": "keen::ds::CpuArchitecure", + "type_hash": 1125248616, + "data_offset": 0 + }, + { + "name": "bitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "cpuCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "threadCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "vendorId", + "type_name": "keen::StaticArray", + "type_hash": 1438933023, + "data_offset": 16 + }, + { + "name": "brand", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 32 + }, + { + "name": "hasSSE2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 96 + }, + { + "name": "hasSSE42", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 97 + }, + { + "name": "hasAVX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 98 + }, + { + "name": "hasAVX2", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 99 + }, + { + "name": "hasNeon", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DeviceId", + "type_name_2": "DeviceId", + "qualified_name": "keen::ds::DeviceId", + "referenced_type_name": "keen::DeviceId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 658716864, + "hash2": 3038192842, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DeviceSystemInformation", + "type_name_2": "DeviceSystemInformation", + "qualified_name": "keen::ds::DeviceSystemInformation", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1662097738, + "hash2": 175279193, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ds::DeviceId", + "type_hash": 658716864, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 4 + }, + { + "name": "name", + "type_name": "keen::StaticArray", + "type_hash": 2361823656, + "data_offset": 68 + }, + { + "name": "macAddress", + "type_name": "keen::StaticArray", + "type_hash": 1438638833, + "data_offset": 132 + }, + { + "name": "isRooted", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 150 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "OperatingSystemType", + "type_name_2": "OperatingSystemType", + "qualified_name": "keen::ds::OperatingSystemType", + "referenced_type_name": "keen::OperatingSystemType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2298123479, + "hash2": 1119256463, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "OsSystemInformation", + "type_name_2": "OsSystemInformation", + "qualified_name": "keen::ds::OsSystemInformation", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3473825558, + "hash2": 1294207430, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::OperatingSystemType", + "type_hash": 2298123479, + "data_offset": 0 + }, + { + "name": "majorVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "minorVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "build", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "versionString", + "type_name": "keen::StaticArray", + "type_hash": 783834273, + "data_offset": 16 + }, + { + "name": "distribution", + "type_name": "keen::StaticArray", + "type_hash": 783834273, + "data_offset": 48 + }, + { + "name": "bitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AtmosphereShaderData", + "type_name_2": "AtmosphereShaderData", + "qualified_name": "keen::ds::AtmosphereShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1909054486, + "hash2": 1420541911, + "struct_fields": [ + { + "name": "isValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "planetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "yToNormalizedHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "rayleighScattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invRayleighDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "rayleighExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "pad3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "mieScattering", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "mieExtinction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "mieG", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "invMieDistribution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreintegrateAtmosphereTransmittanceShaderData", + "type_name_2": "PreintegrateAtmosphereTransmittanceShaderData", + "qualified_name": "keen::ds::PreintegrateAtmosphereTransmittanceShaderData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2644633667, + "hash2": 1672153104, + "struct_fields": [ + { + "name": "invTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "pixelToHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "planetRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "cutoffRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "mieExtinction", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "invMieDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "rayleighExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "invRayleighDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComputeAtmosphereScatteringLutShaderData", + "type_name_2": "ComputeAtmosphereScatteringLutShaderData", + "qualified_name": "keen::ds::ComputeAtmosphereScatteringLutShaderData", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2309937046, + "hash2": 4249029871, + "struct_fields": [ + { + "name": "invTextureSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "texcoordToHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "pad1", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "yToNormalizedHeight", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "planetRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "cutoffRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "rayleighExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "invRayleighDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + }, + { + "name": "rayleighScattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "pad2", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "mieExtinction", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "invMieDistribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 84 + }, + { + "name": "mieScattering", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "mieG", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComputeAtmosphereAmbientIlluminationLutShaderData", + "type_name_2": "ComputeAtmosphereAmbientIlluminationLutShaderData", + "qualified_name": "keen::ds::ComputeAtmosphereAmbientIlluminationLutShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3780193569, + "hash2": 3736304914, + "struct_fields": [ + { + "name": "invTextureSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Material", + "type_name_2": "Material", + "qualified_name": "keen::ds::Material", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1789934486, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BillboardMaterial", + "type_name_2": "BillboardMaterial", + "qualified_name": "keen::ds::BillboardMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 766382735, + "hash2": 3866811418, + "struct_fields": [ + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "opacityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 16 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 32 + }, + { + "name": "reflectanceMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 48 + }, + { + "name": "metallicMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 64 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 80 + }, + { + "name": "translucencyMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 96 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BillboardRfxTexture", + "type_name_2": "BillboardRfxTexture", + "qualified_name": "keen::ds::BillboardRfxTexture", + "referenced_type_name": "keen::BillboardRfxTexture", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4127046713, + "hash2": 559731761, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StreamedTexture2D_float", + "type_name_2": "StreamedTexture2D_float", + "qualified_name": "keen::ds::StreamedTexture2D_float", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3904231058, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StreamedTexture2D_float4", + "type_name_2": "StreamedTexture2D_float4", + "qualified_name": "keen::ds::StreamedTexture2D_float4", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4232111954, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BillboardRfxRenderMaterial", + "type_name_2": "BillboardRfxRenderMaterial", + "qualified_name": "keen::ds::BillboardRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2227128831, + "hash2": 634262064, + "struct_fields": [ + { + "name": "opacityMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 4 + }, + { + "name": "materialParamsMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 8 + }, + { + "name": "normalMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickVisibilityPassConstants", + "type_name_2": "BrickVisibilityPassConstants", + "qualified_name": "keen::ds::BrickVisibilityPassConstants", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3661037434, + "hash2": 3730991996, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickDebugShadingConstants", + "type_name_2": "BrickDebugShadingConstants", + "qualified_name": "keen::ds::BrickDebugShadingConstants", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2078261192, + "hash2": 3835849685, + "struct_fields": [ + { + "name": "directionalLightDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "directionalLightColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridMaterial", + "type_name_2": "VolumetricFogGridMaterial", + "qualified_name": "keen::ds::VolumetricFogGridMaterial", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2961749196, + "hash2": 2578729368, + "struct_fields": [ + { + "name": "absorption", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "scattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "emission", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridCascadeShaderData", + "type_name_2": "VolumetricFogGridCascadeShaderData", + "qualified_name": "keen::ds::VolumetricFogGridCascadeShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 628654836, + "hash2": 3984818475, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pixelOffset", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 16 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VolumetricFogGridCascadeShaderData[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::VolumetricFogGridCascadeShaderData", + "class_size": 256, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 2288650592, + "hash2": 3377496963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridShaderData", + "type_name_2": "VolumetricFogGridShaderData", + "qualified_name": "keen::ds::VolumetricFogGridShaderData", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2243135612, + "hash2": 2916845765, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "size", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "topLevelMaxVoxel", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 32 + }, + { + "name": "none", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 48 + }, + { + "name": "dangerous", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 96 + }, + { + "name": "deadly", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 144 + }, + { + "name": "decorative", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 192 + }, + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 2288650592, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickFillGBufferConstants", + "type_name_2": "BrickFillGBufferConstants", + "qualified_name": "keen::ds::BrickFillGBufferConstants", + "referenced_type_name": null, + "class_size": 624, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3889796729, + "hash2": 2272293796, + "struct_fields": [ + { + "name": "fogGrid", + "type_name": "keen::ds::VolumetricFogGridShaderData", + "type_hash": 2243135612, + "data_offset": 0 + }, + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 496 + }, + { + "name": "showLayerWeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 500 + }, + { + "name": "debugLayerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 504 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 512 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 520 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 528 + }, + { + "name": "isMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 592 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 596 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 608 + }, + { + "name": "time", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 612 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCullingFrustum", + "type_name_2": "GpuCullingFrustum", + "qualified_name": "keen::ds::GpuCullingFrustum", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2868467341, + "hash2": 2673409417, + "struct_fields": [ + { + "name": "plane0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "plane1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "plane2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "plane3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "plane4", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + }, + { + "name": "plane5", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuOcclusionCullingShaderData", + "type_name_2": "GpuOcclusionCullingShaderData", + "qualified_name": "keen::ds::GpuOcclusionCullingShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 370219733, + "hash2": 3498394219, + "struct_fields": [ + { + "name": "depthPyramidResolution", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "screenToDepthPyramidUvScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "P00", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "P11", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "P03", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "P13", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "P22", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "P23", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "zNear", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "zFar", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "orthoProjection", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickCullingShaderParameters", + "type_name_2": "BrickCullingShaderParameters", + "qualified_name": "keen::ds::BrickCullingShaderParameters", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2361982329, + "hash2": 2405385936, + "struct_fields": [ + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "frustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 16 + }, + { + "name": "worldToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 112 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickDrawCommandData", + "type_name_2": "BrickDrawCommandData", + "qualified_name": "keen::ds::BrickDrawCommandData", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2404818883, + "hash2": 4238389759, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "firstIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "firstInstance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickSdfBakingShaderParameters", + "type_name_2": "BrickSdfBakingShaderParameters", + "qualified_name": "keen::ds::BrickSdfBakingShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2860319440, + "hash2": 1465091499, + "struct_fields": [ + { + "name": "textureOffset", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "resolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickVoxelCopyShaderParameters", + "type_name_2": "BrickVoxelCopyShaderParameters", + "qualified_name": "keen::ds::BrickVoxelCopyShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 97299632, + "hash2": 319433638, + "struct_fields": [ + { + "name": "dwordCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "brickIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "brickData", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickVoxelDilateShaderParameters", + "type_name_2": "BrickVoxelDilateShaderParameters", + "qualified_name": "keen::ds::BrickVoxelDilateShaderParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3977898530, + "hash2": 1903114648, + "struct_fields": [ + { + "name": "dwordCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "innerSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NewBrickCommandData", + "type_name_2": "NewBrickCommandData", + "qualified_name": "keen::ds::NewBrickCommandData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3518836401, + "hash2": 18764409, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BrickUploadShaderParameters", + "type_name_2": "BrickUploadShaderParameters", + "qualified_name": "keen::ds::BrickUploadShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2521264560, + "hash2": 85461186, + "struct_fields": [ + { + "name": "newBrickCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMappingType", + "type_name_2": "BuildingMappingType", + "qualified_name": "keen::ds::BuildingMappingType", + "referenced_type_name": "keen::BuildingMappingType", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 3356306951, + "hash2": 4031501107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DecoObjectRuleSet[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DecoObjectRuleSet", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2759501668, + "hash2": 4147399725, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialParameters", + "type_name_2": "BuildingMaterialParameters", + "qualified_name": "keen::ds::BuildingMaterialParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1184987602, + "hash2": 914848802, + "struct_fields": [ + { + "name": "mapping", + "type_name": "keen::ds::BuildingMappingType", + "type_hash": 3356306951, + "data_offset": 0 + }, + { + "name": "edgeOnlySide", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "decoObjectRules", + "type_name": "keen::DsArray", + "type_hash": 2759501668, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BuildingMaterialParameters[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BuildingMaterialParameters", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3092764319, + "hash2": 4193223683, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialParametersResource", + "type_name_2": "BuildingMaterialParametersResource", + "qualified_name": "keen::ds::BuildingMaterialParametersResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4171620378, + "hash2": 621750445, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::DsArray", + "type_hash": 3092764319, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2813579606, + "hash2": 3824118760, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterials", + "type_name_2": "BuildingMaterials", + "qualified_name": "keen::ds::BuildingMaterials", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1824295139, + "hash2": 2443621562, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::DsArray>", + "type_hash": 2813579606, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTexture", + "type_name_2": "RenderTexture", + "qualified_name": "keen::ds::RenderTexture", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 261229138, + "hash2": 3540148345, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "arraySize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 9 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 10 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialLayerImages", + "type_name_2": "BuildingMaterialLayerImages", + "qualified_name": "keen::ds::BuildingMaterialLayerImages", + "referenced_type_name": null, + "class_size": 576, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3479065829, + "hash2": 2099214643, + "struct_fields": [ + { + "name": "emissiveMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 72 + }, + { + "name": "metallicMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 144 + }, + { + "name": "roughnessMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 216 + }, + { + "name": "reflectanceMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 288 + }, + { + "name": "normalMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 360 + }, + { + "name": "heightMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 432 + }, + { + "name": "aoMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 504 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialImages", + "type_name_2": "BuildingMaterialImages", + "qualified_name": "keen::ds::BuildingMaterialImages", + "referenced_type_name": null, + "class_size": 2880, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4185783740, + "hash2": 2015046751, + "struct_fields": [ + { + "name": "baseSide", + "type_name": "keen::ds::BuildingMaterialLayerImages", + "type_hash": 3479065829, + "data_offset": 0 + }, + { + "name": "baseTop", + "type_name": "keen::ds::BuildingMaterialLayerImages", + "type_hash": 3479065829, + "data_offset": 576 + }, + { + "name": "baseBottom", + "type_name": "keen::ds::BuildingMaterialLayerImages", + "type_hash": 3479065829, + "data_offset": 1152 + }, + { + "name": "edge", + "type_name": "keen::ds::BuildingMaterialLayerImages", + "type_hash": 3479065829, + "data_offset": 1728 + }, + { + "name": "noise", + "type_name": "keen::ds::BuildingMaterialLayerImages", + "type_hash": 3479065829, + "data_offset": 2304 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_name_2": "BuildingMaterialBlendingMaterialLayerTextureShaderData", + "qualified_name": "keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3721929875, + "hash2": 4127508991, + "struct_fields": [ + { + "name": "emissiveMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 0 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "albedoMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 12 + }, + { + "name": "metallicMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 16 + }, + { + "name": "roughnessMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 20 + }, + { + "name": "reflectanceMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 24 + }, + { + "name": "normalMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 28 + }, + { + "name": "heightMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 32 + }, + { + "name": "aoMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 36 + }, + { + "name": "tilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialBlendingMaterialLayerShaderData", + "type_name_2": "BuildingMaterialBlendingMaterialLayerShaderData", + "qualified_name": "keen::ds::BuildingMaterialBlendingMaterialLayerShaderData", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3524778270, + "hash2": 1998038967, + "struct_fields": [ + { + "name": "baseSideTexture", + "type_name": "keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3721929875, + "data_offset": 0 + }, + { + "name": "baseTopTexture", + "type_name": "keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3721929875, + "data_offset": 56 + }, + { + "name": "baseBottomTexture", + "type_name": "keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3721929875, + "data_offset": 112 + }, + { + "name": "edgeTexture", + "type_name": "keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3721929875, + "data_offset": 168 + }, + { + "name": "edgeTopTexture", + "type_name": "keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3721929875, + "data_offset": 224 + }, + { + "name": "noiseTexture", + "type_name": "keen::ds::BuildingMaterialBlendingMaterialLayerTextureShaderData", + "type_hash": 3721929875, + "data_offset": 280 + }, + { + "name": "heightBlendingRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 336 + }, + { + "name": "heightBlendingRangeNoise", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 340 + }, + { + "name": "edgeBlendingCurve", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 344 + }, + { + "name": "edgeOnlySide", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 348 + }, + { + "name": "noiseBlendRange", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 352 + }, + { + "name": "bevelRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 360 + }, + { + "name": "isRoof", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 364 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderParameterBlockPatchPoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderParameterBlockPatchPoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1576907932, + "hash2": 1807984885, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderTexture[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderTexture", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3827228829, + "hash2": 911031395, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderSampler[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderSampler", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1276155804, + "hash2": 4194092791, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderParameterBlock", + "type_name_2": "RenderParameterBlock", + "qualified_name": "keen::ds::RenderParameterBlock", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3914699023, + "hash2": 2830752337, + "struct_fields": [ + { + "name": "typeSignatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "patchPoints", + "type_name": "keen::DsArray", + "type_hash": 1576907932, + "data_offset": 24 + }, + { + "name": "textures", + "type_name": "keen::DsArray", + "type_hash": 3827228829, + "data_offset": 64 + }, + { + "name": "samplers", + "type_name": "keen::DsArray", + "type_hash": 1276155804, + "data_offset": 104 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelImageSizeInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelImageSizeInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1288390005, + "hash2": 1999024980, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialBlendingResource", + "type_name_2": "BuildingMaterialBlendingResource", + "qualified_name": "keen::ds::BuildingMaterialBlendingResource", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2085296595, + "hash2": 78210086, + "struct_fields": [ + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "layerSizeInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "pad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "pad1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "renderingParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 16 + }, + { + "name": "renderingImageSizeInfos", + "type_name": "keen::DsArray", + "type_hash": 1288390005, + "data_offset": 200 + }, + { + "name": "renderingLayerImageSizeInfoStartIndices", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialMapping", + "type_name_2": "BuildingMaterialMapping", + "qualified_name": "keen::ds::BuildingMaterialMapping", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2036416740, + "hash2": 1237011948, + "struct_fields": [ + { + "name": "voxelMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 2732519224, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPalette", + "type_name_2": "BuildingMaterialPalette", + "qualified_name": "keen::ds::BuildingMaterialPalette", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2845592621, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPalettesFolder", + "type_name_2": "BuildingMaterialPalettesFolder", + "qualified_name": "keen::ds::BuildingMaterialPalettesFolder", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3497376578, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BuildingMaterialPalette", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 930730766, + "hash2": 296564046, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPaletteId", + "type_name_2": "BuildingMaterialPaletteId", + "qualified_name": "keen::ds::BuildingMaterialPaletteId", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 441081752, + "hash2": 3095110158, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRuleType", + "type_name_2": "DecoObjectRuleType", + "qualified_name": "keen::ds::DecoObjectRuleType", + "referenced_type_name": "keen::DecoObjectRuleType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1924496107, + "hash2": 3435164143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectPartMode", + "type_name_2": "DecoObjectPartMode", + "qualified_name": "keen::ds::DecoObjectPartMode", + "referenced_type_name": "keen::DecoObjectPartMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 269431447, + "hash2": 3241471983, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectPart", + "type_name_2": "DecoObjectPart", + "qualified_name": "keen::ds::DecoObjectPart", + "referenced_type_name": "keen::DecoObjectPart", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 954430324, + "hash2": 3781435459, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectInstance", + "type_name_2": "DecoObjectInstance", + "qualified_name": "keen::ds::DecoObjectInstance", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1565707506, + "hash2": 3890073059, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "part", + "type_name": "keen::ds::DecoObjectPart", + "type_hash": 954430324, + "data_offset": 16 + }, + { + "name": "fixedOrderKey", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRule", + "type_name_2": "DecoObjectRule", + "qualified_name": "keen::ds::DecoObjectRule", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3563101235, + "hash2": 3042282322, + "struct_fields": [ + { + "name": "rule", + "type_name": "keen::ds::DecoObjectRuleType", + "type_hash": 1924496107, + "data_offset": 0 + }, + { + "name": "partMode", + "type_name": "keen::ds::DecoObjectPartMode", + "type_hash": 269431447, + "data_offset": 1 + }, + { + "name": "onDestructionEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "limitOnePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "symmetrical", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "rotationVariation", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 32 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 33832286, + "hash2": 4266981596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRuleSet", + "type_name_2": "DecoObjectRuleSet", + "qualified_name": "keen::ds::DecoObjectRuleSet", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1312889073, + "hash2": 1062891296, + "struct_fields": [ + { + "name": "rule", + "type_name": "keen::ds::DecoObjectRuleType", + "type_hash": 1924496107, + "data_offset": 0 + }, + { + "name": "partMode", + "type_name": "keen::ds::DecoObjectPartMode", + "type_hash": 269431447, + "data_offset": 1 + }, + { + "name": "onDestructionEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "limitOnePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "symmetrical", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "offset", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "rotationVariation", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 32 + }, + { + "name": "fixedOrder", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "startModels", + "type_name": "keen::DsArray>", + "type_hash": 33832286, + "data_offset": 56 + }, + { + "name": "middleModels", + "type_name": "keen::DsArray>", + "type_hash": 33832286, + "data_offset": 96 + }, + { + "name": "endModels", + "type_name": "keen::DsArray>", + "type_hash": 33832286, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecoObjectRules", + "type_name_2": "DecoObjectRules", + "qualified_name": "keen::ds::DecoObjectRules", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2484467904, + "hash2": 1347534676, + "struct_fields": [ + { + "name": "rules", + "type_name": "keen::DsArray", + "type_hash": 2759501668, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialListEntry", + "type_name_2": "BuildingMaterialListEntry", + "qualified_name": "keen::ds::BuildingMaterialListEntry", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2760501958, + "hash2": 2563633842, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "pbrBuildingMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 4193108473, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BuildingMaterialListEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BuildingMaterialListEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2665431985, + "hash2": 1085094758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialList", + "type_name_2": "BuildingMaterialList", + "qualified_name": "keen::ds::BuildingMaterialList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3967503646, + "hash2": 1156386286, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 2665431985, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FFX_CACAO_Constants", + "type_name_2": "FFX_CACAO_Constants", + "qualified_name": "keen::ds::FFX_CACAO_Constants", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 42, + "primitive_type": "Struct", + "hash1": 1716734649, + "hash2": 3346898323, + "struct_fields": [ + { + "name": "DepthUnpackConsts", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "CameraTanHalfFOV", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "NDCToViewMul", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "NDCToViewAdd", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "DepthBufferUVToViewMul", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "DepthBufferUVToViewAdd", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "EffectRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "EffectShadowStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "EffectShadowPow", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "EffectShadowClamp", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "EffectFadeOutMul", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "EffectFadeOutAdd", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "EffectHorizonAngleThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "EffectSamplingRadiusNearLimitRec", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "DepthPrecisionOffsetMod", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "NegRecEffectRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "LoadCounterAvgDiv", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "AdaptiveSampleCountLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "InvSharpness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "PassIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 100 + }, + { + "name": "BilateralSigmaSquared", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 104 + }, + { + "name": "BilateralSimilarityDistanceSigma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "PatternRotScaleMatrices", + "type_name": "keen::StaticArray", + "type_hash": 1094189225, + "data_offset": 112 + }, + { + "name": "DetailAOStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "Dummy0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "Dummy1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + }, + { + "name": "Dummy2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "SSAOBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 208 + }, + { + "name": "SSAOBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 216 + }, + { + "name": "DepthBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 224 + }, + { + "name": "DepthBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 232 + }, + { + "name": "DepthBufferOffset", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 240 + }, + { + "name": "PerPassFullResUVOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 248 + }, + { + "name": "OutputBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 256 + }, + { + "name": "OutputBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 264 + }, + { + "name": "ImportanceMapDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 272 + }, + { + "name": "ImportanceMapInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 280 + }, + { + "name": "DeinterleavedDepthBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 288 + }, + { + "name": "DeinterleavedDepthBufferInverseDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 296 + }, + { + "name": "DeinterleavedDepthBufferOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 304 + }, + { + "name": "DeinterleavedDepthBufferNormalisedOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 312 + }, + { + "name": "NormalsWorldToViewspaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 320 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkPassType", + "type_name_2": "VoxelChunkPassType", + "qualified_name": "keen::ds::VoxelChunkPassType", + "referenced_type_name": "keen::VoxelChunkPassType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1228893419, + "hash2": 1988957401, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PackedShaderWorldTransform", + "type_name_2": "PackedShaderWorldTransform", + "qualified_name": "keen::ds::PackedShaderWorldTransform", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2990168994, + "hash2": 2216665663, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackedShaderWorldPositionUniform", + "type_name_2": "PackedShaderWorldPositionUniform", + "qualified_name": "keen::ds::PackedShaderWorldPositionUniform", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 955272019, + "hash2": 3481358976, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkShaderData", + "type_name_2": "VoxelChunkShaderData", + "qualified_name": "keen::ds::VoxelChunkShaderData", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3454670899, + "hash2": 1945731781, + "struct_fields": [ + { + "name": "packedTransform", + "type_name": "keen::ds::PackedShaderWorldTransform", + "type_hash": 2990168994, + "data_offset": 0 + }, + { + "name": "worldPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 32 + }, + { + "name": "transform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "triangleIndexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 116 + }, + { + "name": "triangleIndexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 120 + }, + { + "name": "quadIndexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 124 + }, + { + "name": "quadIndexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 132 + }, + { + "name": "bakedTriangleMaterialDataOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 136 + }, + { + "name": "chunkletOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 140 + }, + { + "name": "chunkletCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 144 + }, + { + "name": "chunkletVisibilityOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 148 + }, + { + "name": "highlightColorPaletteIndexTransparency", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 152 + }, + { + "name": "sizeFeedbackIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 156 + }, + { + "name": "pipelineIndices", + "type_name": "keen::StaticArray", + "type_hash": 4022223353, + "data_offset": 160 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 172 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderChunkletCullingSubView", + "type_name_2": "ShaderChunkletCullingSubView", + "qualified_name": "keen::ds::ShaderChunkletCullingSubView", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3551025807, + "hash2": 2762515534, + "struct_fields": [ + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "viewDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "cameraCenteredFrustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 48 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 144 + }, + { + "name": "occlusionData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderChunkletCullingPass", + "type_name_2": "ShaderChunkletCullingPass", + "qualified_name": "keen::ds::ShaderChunkletCullingPass", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 849358069, + "hash2": 3138614019, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "subViewIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "passType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderChunkletCullingSubView[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ShaderChunkletCullingSubView", + "class_size": 2304, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 1112456704, + "hash2": 830371589, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderChunkletCullingPass[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ShaderChunkletCullingPass", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 1841152015, + "hash2": 2336514733, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderChunkletCullingShaderParameters", + "type_name_2": "RenderChunkletCullingShaderParameters", + "qualified_name": "keen::ds::RenderChunkletCullingShaderParameters", + "referenced_type_name": null, + "class_size": 2448, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1851319766, + "hash2": 923775355, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 1112456704, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 1841152015, + "data_offset": 2304 + }, + { + "name": "subViewCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2432 + }, + { + "name": "passCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2436 + }, + { + "name": "jobCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2440 + }, + { + "name": "stageIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2444 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CulledChunklet", + "type_name_2": "CulledChunklet", + "qualified_name": "keen::ds::CulledChunklet", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 63874616, + "hash2": 3975406112, + "struct_fields": [ + { + "name": "data0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "visibility", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletPrefixSumShaderParameters", + "type_name_2": "ChunkletPrefixSumShaderParameters", + "qualified_name": "keen::ds::ChunkletPrefixSumShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2419909509, + "hash2": 4243238015, + "struct_fields": [ + { + "name": "batchCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "stageIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkArgumentsPrepareShaderParameters", + "type_name_2": "VoxelChunkArgumentsPrepareShaderParameters", + "qualified_name": "keen::ds::VoxelChunkArgumentsPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1755299480, + "hash2": 554516385, + "struct_fields": [ + { + "name": "groupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderChunkletDrawPrepareShaderParameters", + "type_name_2": "RenderChunkletDrawPrepareShaderParameters", + "qualified_name": "keen::ds::RenderChunkletDrawPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2847640775, + "hash2": 1374251416, + "struct_fields": [ + { + "name": "batchCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "batchOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletPipelineInfoShaderData", + "type_name_2": "ChunkletPipelineInfoShaderData", + "qualified_name": "keen::ds::ChunkletPipelineInfoShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 486999406, + "hash2": 1051965600, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletDrawCommand", + "type_name_2": "ChunkletDrawCommand", + "qualified_name": "keen::ds::ChunkletDrawCommand", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 551694900, + "hash2": 3148161500, + "struct_fields": [ + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletPushConstants", + "type_name_2": "ChunkletPushConstants", + "qualified_name": "keen::ds::ChunkletPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 752824950, + "hash2": 1449351613, + "struct_fields": [ + { + "name": "drawIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunkSizeFeedbackShaderParameters", + "type_name_2": "VoxelChunkSizeFeedbackShaderParameters", + "qualified_name": "keen::ds::VoxelChunkSizeFeedbackShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3757080309, + "hash2": 801085452, + "struct_fields": [ + { + "name": "viewPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "chunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderChunklet", + "type_name_2": "RenderChunklet", + "qualified_name": "keen::ds::RenderChunklet", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3744313877, + "hash2": 946981863, + "struct_fields": [ + { + "name": "data0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChunkletCullingDebugCounters", + "type_name_2": "ChunkletCullingDebugCounters", + "qualified_name": "keen::ds::ChunkletCullingDebugCounters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3966422023, + "hash2": 799454956, + "struct_fields": [ + { + "name": "culledByOrientation", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "culledByFrustum", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "culledByOcclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "culledByVisibility", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "culledByExclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingCellData", + "type_name_2": "ClusterCullingCellData", + "qualified_name": "keen::ds::ClusterCullingCellData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1547838485, + "hash2": 3489622239, + "struct_fields": [ + { + "name": "lightListCountAndOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "decalListCountAndOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingShaderData", + "type_name_2": "ClusterCullingShaderData", + "qualified_name": "keen::ds::ClusterCullingShaderData", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 744549136, + "hash2": 915420973, + "struct_fields": [ + { + "name": "inverseProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "clusterSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 112 + }, + { + "name": "cellLightListOffsetCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 124 + }, + { + "name": "cellDecalListOffsetCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 132 + }, + { + "name": "tileRatio", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "pointLightCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 152 + }, + { + "name": "maxPointLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 156 + }, + { + "name": "decalCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 160 + }, + { + "name": "maxDecalCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingDebugPushConstants", + "type_name_2": "ClusterCullingDebugPushConstants", + "qualified_name": "keen::ds::ClusterCullingDebugPushConstants", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1465693569, + "hash2": 1032266964, + "struct_fields": [ + { + "name": "debugImageSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2StageId", + "type_name_2": "GpuCulling2StageId", + "qualified_name": "keen::ds::GpuCulling2StageId", + "referenced_type_name": "keen::GpuCulling2StageId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2511828640, + "hash2": 643868312, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PassType", + "type_name_2": "GpuCulling2PassType", + "qualified_name": "keen::ds::GpuCulling2PassType", + "referenced_type_name": "keen::GpuCulling2PassType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 69079688, + "hash2": 3449133079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PassId", + "type_name_2": "GpuCulling2PassId", + "qualified_name": "keen::ds::GpuCulling2PassId", + "referenced_type_name": "keen::GpuCulling2PassId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3578838813, + "hash2": 132797213, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2SubViewConstants", + "type_name_2": "GpuCulling2SubViewConstants", + "qualified_name": "keen::ds::GpuCulling2SubViewConstants", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2542506197, + "hash2": 2562248614, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "minObjectSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 32 + }, + { + "name": "cameraCenteredFrustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 80 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PassConstants", + "type_name_2": "GpuCulling2PassConstants", + "qualified_name": "keen::ds::GpuCulling2PassConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2013854341, + "hash2": 3642845224, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "subViewIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "passType", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2SubViewConstants[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::GpuCulling2SubViewConstants", + "class_size": 2640, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 3477629867, + "hash2": 774241720, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2PassConstants[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::GpuCulling2PassConstants", + "class_size": 192, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 602560464, + "hash2": 2626096690, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2ShaderParameters", + "type_name_2": "GpuCulling2ShaderParameters", + "qualified_name": "keen::ds::GpuCulling2ShaderParameters", + "referenced_type_name": null, + "class_size": 2912, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 109145236, + "hash2": 335614306, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 3477629867, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 602560464, + "data_offset": 2640 + }, + { + "name": "subViewCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2832 + }, + { + "name": "passCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2836 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2840 + }, + { + "name": "isLateStage", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2844 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2848 + }, + { + "name": "instanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2852 + }, + { + "name": "batchCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2856 + }, + { + "name": "pixelSizeCullingBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2860 + }, + { + "name": "meshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2864 + }, + { + "name": "maxCulledInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2868 + }, + { + "name": "scanShaderGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2872 + }, + { + "name": "fixupShaderGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2876 + }, + { + "name": "mainViewCameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 2880 + }, + { + "name": "mainViewPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2896 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2SubViewDebugCounters", + "type_name_2": "GpuCulling2SubViewDebugCounters", + "qualified_name": "keen::ds::GpuCulling2SubViewDebugCounters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1620790366, + "hash2": 2557139229, + "struct_fields": [ + { + "name": "notCulled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "culledByFrustum", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "culledByOcclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "culledBySize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "culledByExclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PassDebugCounters", + "type_name_2": "GpuCulling2PassDebugCounters", + "qualified_name": "keen::ds::GpuCulling2PassDebugCounters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3977210734, + "hash2": 1234019123, + "struct_fields": [ + { + "name": "notCulled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2Counters", + "type_name_2": "GpuCulling2Counters", + "qualified_name": "keen::ds::GpuCulling2Counters", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2961057720, + "hash2": 312948533, + "struct_fields": [ + { + "name": "culledInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "leftoverInstances", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "firstInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2DispatchCommandId", + "type_name_2": "GpuCulling2DispatchCommandId", + "qualified_name": "keen::ds::GpuCulling2DispatchCommandId", + "referenced_type_name": "keen::GpuCulling2DispatchCommandId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1836564285, + "hash2": 1435838482, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2SubViewDebugCounters[11]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::GpuCulling2SubViewDebugCounters", + "class_size": 220, + "fields_count": 11, + "primitive_type": "StaticArray", + "hash1": 3021035444, + "hash2": 320261689, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GpuCulling2PassDebugCounters[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::GpuCulling2PassDebugCounters", + "class_size": 48, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 4191451495, + "hash2": 1765869460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2DebugCounters", + "type_name_2": "GpuCulling2DebugCounters", + "qualified_name": "keen::ds::GpuCulling2DebugCounters", + "referenced_type_name": null, + "class_size": 276, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1478141573, + "hash2": 1289216034, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 3021035444, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 4191451495, + "data_offset": 220 + }, + { + "name": "culledByGroupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 268 + }, + { + "name": "culledByPixelSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 272 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2CulledInstanceData", + "type_name_2": "GpuCulling2CulledInstanceData", + "qualified_name": "keen::ds::GpuCulling2CulledInstanceData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4050431543, + "hash2": 1491376363, + "struct_fields": [ + { + "name": "meshIndexAndBatchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PixelQuery", + "type_name_2": "GpuCulling2PixelQuery", + "qualified_name": "keen::ds::GpuCulling2PixelQuery", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 873363461, + "hash2": 1405740706, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2PixelQueryResult", + "type_name_2": "GpuCulling2PixelQueryResult", + "qualified_name": "keen::ds::GpuCulling2PixelQueryResult", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 658344836, + "hash2": 1299472835, + "struct_fields": [ + { + "name": "stageId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "instanceDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "meshIndexAndBatchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2HighlightType", + "type_name_2": "GpuCulling2HighlightType", + "qualified_name": "keen::ds::GpuCulling2HighlightType", + "referenced_type_name": "keen::GpuCulling2HighlightType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1234552167, + "hash2": 2609836470, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuCulling2RenderData", + "type_name_2": "GpuCulling2RenderData", + "qualified_name": "keen::ds::GpuCulling2RenderData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3299629797, + "hash2": 3212208188, + "struct_fields": [ + { + "name": "pixelQuery", + "type_name": "keen::ds::GpuCulling2PixelQuery", + "type_hash": 873363461, + "data_offset": 0 + }, + { + "name": "pixelQueryResult", + "type_name": "keen::ds::GpuCulling2PixelQueryResult", + "type_hash": 658344836, + "data_offset": 8 + }, + { + "name": "highlightType", + "type_name": "keen::ds::GpuCulling2HighlightType", + "type_hash": 1234552167, + "data_offset": 24 + }, + { + "name": "highlightValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "highlightValue2", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialMeshShaderData", + "type_name_2": "RenderMaterialMeshShaderData", + "qualified_name": "keen::ds::RenderMaterialMeshShaderData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1043337998, + "hash2": 3399107348, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "modelMaterialData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "skinningDataByteOffsetAndClothMeshIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "blendShapeVertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "blendShapeMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDrawCommandData", + "type_name_2": "RenderDrawCommandData", + "qualified_name": "keen::ds::RenderDrawCommandData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 25119582, + "hash2": 704886977, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "materialMeshIndexAndLodIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDrawData", + "type_name_2": "RenderDrawData", + "qualified_name": "keen::ds::RenderDrawData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3802933281, + "hash2": 801522369, + "struct_fields": [ + { + "name": "modelIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "groupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "_pad", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelDrawData", + "type_name_2": "RenderModelDrawData", + "qualified_name": "keen::ds::RenderModelDrawData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2756027474, + "hash2": 202176760, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "modelLodStartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "modelLodCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "hasCardClusterLod", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "sizeFeedbackIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "lodPixelSizes", + "type_name": "keen::StaticArray", + "type_hash": 1332724952, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLodDrawData", + "type_name_2": "RenderModelLodDrawData", + "qualified_name": "keen::ds::RenderModelLodDrawData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1221591917, + "hash2": 428443400, + "struct_fields": [ + { + "name": "materialMeshStartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "materialMeshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "_pad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "_pad1", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialMeshDrawData", + "type_name_2": "RenderMaterialMeshDrawData", + "qualified_name": "keen::ds::RenderMaterialMeshDrawData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3704317889, + "hash2": 2001362156, + "struct_fields": [ + { + "name": "pipelineIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "indexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCullingDrawCounter", + "type_name_2": "GpuCullingDrawCounter", + "qualified_name": "keen::ds::GpuCullingDrawCounter", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3432903037, + "hash2": 245251724, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCullingDebugCounters", + "type_name_2": "GpuCullingDebugCounters", + "qualified_name": "keen::ds::GpuCullingDebugCounters", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2132509669, + "hash2": 195407976, + "struct_fields": [ + { + "name": "notCulled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "culledByVisibility", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "culledBySize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "culledByFrustum", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "culledByOcclusion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "culledByExclusion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CullingShaderData", + "type_name_2": "CullingShaderData", + "qualified_name": "keen::ds::CullingShaderData", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 4041611392, + "hash2": 7752170, + "struct_fields": [ + { + "name": "viewPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "fixedLod", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 12 + }, + { + "name": "viewVisibilityMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "pixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "pixelSizeCullingBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "frustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 32 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "worldToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 144 + }, + { + "name": "projectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 192 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 256 + }, + { + "name": "drawCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 320 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 324 + }, + { + "name": "exclusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 328 + }, + { + "name": "useLastFrameVisibility", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 332 + }, + { + "name": "cpuDrawCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 336 + }, + { + "name": "cullSmallObjects", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 340 + }, + { + "name": "smallObjectRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 344 + }, + { + "name": "forceCardClusterLod", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 348 + }, + { + "name": "useCameraCenteredSpace", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 352 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 368 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UploadRenderInstancesShaderData", + "type_name_2": "UploadRenderInstancesShaderData", + "qualified_name": "keen::ds::UploadRenderInstancesShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2912568663, + "hash2": 575375269, + "struct_fields": [ + { + "name": "uploadInstanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugOcclusionCullingShaderParameters", + "type_name_2": "DebugOcclusionCullingShaderParameters", + "qualified_name": "keen::ds::DebugOcclusionCullingShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1205683856, + "hash2": 2231953567, + "struct_fields": [ + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 0 + }, + { + "name": "viewSpaceSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugOcclusionCullingResultShaderData", + "type_name_2": "DebugOcclusionCullingResultShaderData", + "qualified_name": "keen::ds::DebugOcclusionCullingResultShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1871706009, + "hash2": 1925137144, + "struct_fields": [ + { + "name": "isValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rectMin", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "rectMax", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "uv", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CurvePointTangent", + "type_name_2": "CurvePointTangent", + "qualified_name": "keen::ds::CurvePointTangent", + "referenced_type_name": "keen::CurvePointTangent", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 403540729, + "hash2": 737649421, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CurveTangent", + "type_name_2": "CurveTangent", + "qualified_name": "keen::ds::CurveTangent", + "referenced_type_name": "keen::CurveTangent", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2390727191, + "hash2": 88619152, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CurvePoint", + "type_name_2": "CurvePoint", + "qualified_name": "keen::ds::CurvePoint", + "referenced_type_name": "keen::float2", + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3877598032, + "hash2": 973767151, + "struct_fields": [ + { + "name": "tangent", + "type_name": "keen::ds::CurveTangent", + "type_hash": 2390727191, + "data_offset": 8 + }, + { + "name": "pointTangent", + "type_name": "keen::ds::CurvePointTangent", + "type_hash": 403540729, + "data_offset": 9 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageDiffShaderParameters", + "type_name_2": "ImageDiffShaderParameters", + "qualified_name": "keen::ds::ImageDiffShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3194921406, + "hash2": 550133537, + "struct_fields": [ + { + "name": "threshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugMagnifierShaderParameters", + "type_name_2": "DebugMagnifierShaderParameters", + "qualified_name": "keen::ds::DebugMagnifierShaderParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2749744715, + "hash2": 3372548314, + "struct_fields": [ + { + "name": "imageWidth", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "imageHeight", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "mousePos", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "borderColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "magnificationAmount", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "magnifierScreenRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "magnifierOffsetX", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 40 + }, + { + "name": "magnifierOffsetY", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 44 + }, + { + "name": "brightness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "contrast", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeTextureOp", + "type_name_2": "VisualizeTextureOp", + "qualified_name": "keen::ds::VisualizeTextureOp", + "referenced_type_name": "keen::VisualizeTextureOp", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1632477117, + "hash2": 3103289365, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeTextureChannel", + "type_name_2": "VisualizeTextureChannel", + "qualified_name": "keen::ds::VisualizeTextureChannel", + "referenced_type_name": "keen::VisualizeTextureChannel", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3214143165, + "hash2": 4019713246, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeTextureCommandShaderData", + "type_name_2": "VisualizeTextureCommandShaderData", + "qualified_name": "keen::ds::VisualizeTextureCommandShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1320866070, + "hash2": 3475526140, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::VisualizeTextureOp", + "type_hash": 1632477117, + "data_offset": 0 + }, + { + "name": "channel", + "type_name": "keen::ds::VisualizeTextureChannel", + "type_hash": 3214143165, + "data_offset": 4 + }, + { + "name": "scale", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "power", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VisualizeTextureCommandShaderData[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::VisualizeTextureCommandShaderData", + "class_size": 64, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 121354238, + "hash2": 2197322894, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeTextureShaderParameters", + "type_name_2": "VisualizeTextureShaderParameters", + "qualified_name": "keen::ds::VisualizeTextureShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 894940763, + "hash2": 1829330602, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "commands", + "type_name": "keen::StaticArray", + "type_hash": 121354238, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisualizeOverdrawShaderParameters", + "type_name_2": "VisualizeOverdrawShaderParameters", + "qualified_name": "keen::ds::VisualizeOverdrawShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3276230610, + "hash2": 3455118929, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IblVisualizationData", + "type_name_2": "IblVisualizationData", + "qualified_name": "keen::ds::IblVisualizationData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3400945592, + "hash2": 3286152577, + "struct_fields": [ + { + "name": "ndcToWorldMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "iblIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecalNormalBlendMode", + "type_name_2": "DecalNormalBlendMode", + "qualified_name": "keen::ds::DecalNormalBlendMode", + "referenced_type_name": "keen::DecalNormalBlendMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 916275169, + "hash2": 2176999847, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecalRoughnessBlendMode", + "type_name_2": "DecalRoughnessBlendMode", + "qualified_name": "keen::ds::DecalRoughnessBlendMode", + "referenced_type_name": "keen::DecalRoughnessBlendMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 380835070, + "hash2": 326629063, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Decal", + "type_name_2": "Decal", + "qualified_name": "keen::ds::Decal", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1043485624, + "hash2": 4227808090, + "struct_fields": [ + { + "name": "affectShading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + }, + { + "name": "opacityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 20 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 36 + }, + { + "name": "normalBlendMode", + "type_name": "keen::ds::DecalNormalBlendMode", + "type_hash": 916275169, + "data_offset": 52 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 56 + }, + { + "name": "roughnessBlendMode", + "type_name": "keen::ds::DecalRoughnessBlendMode", + "type_hash": 380835070, + "data_offset": 72 + }, + { + "name": "emissiveMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 76 + }, + { + "name": "emissiveAlphaMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 92 + }, + { + "name": "metallicMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 108 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 124 + }, + { + "name": "affectTerrainVoxelMesh", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 140 + }, + { + "name": "affectBuildingVoxelMesh", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 141 + }, + { + "name": "affectRoofVoxelMesh", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 142 + }, + { + "name": "affectModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 143 + }, + { + "name": "affectSkinnedModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + }, + { + "name": "affectBuildingDecoModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 145 + }, + { + "name": "affectScatterDetailModels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 146 + }, + { + "name": "affectScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 147 + }, + { + "name": "scatterScaleMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 148 + }, + { + "name": "scatterScaleFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DecalLayer", + "type_name_2": "DecalLayer", + "qualified_name": "keen::ds::DecalLayer", + "referenced_type_name": "keen::DecalLayer", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2909538125, + "hash2": 3288121809, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecalLayerMask", + "type_name_2": "DecalLayerMask", + "qualified_name": "keen::ds::DecalLayerMask", + "referenced_type_name": "keen::DecalLayerMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4235164849, + "hash2": 2899962684, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DecalMaterialData", + "type_name_2": "DecalMaterialData", + "qualified_name": "keen::ds::DecalMaterialData", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 85352209, + "hash2": 3626548413, + "struct_fields": [ + { + "name": "albedoMap", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 0 + }, + { + "name": "normalMap", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 4 + }, + { + "name": "roughnessMap", + "type_name": "keen::ds::BindlessTexture2D_float", + "type_hash": 21922031, + "data_offset": 8 + }, + { + "name": "metallicMap", + "type_name": "keen::ds::BindlessTexture2D_float", + "type_hash": 21922031, + "data_offset": 12 + }, + { + "name": "emissiveMap", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 16 + }, + { + "name": "aoMap", + "type_name": "keen::ds::BindlessTexture2D_float", + "type_hash": 21922031, + "data_offset": 20 + }, + { + "name": "scatterScaleMap", + "type_name": "keen::ds::BindlessTexture2D_float", + "type_hash": 21922031, + "data_offset": 24 + }, + { + "name": "decalLayerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "scatterScaleFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDecal", + "type_name_2": "RenderDecal", + "qualified_name": "keen::ds::RenderDecal", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2744889516, + "hash2": 3848095235, + "struct_fields": [ + { + "name": "parameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSurfaceMaterialData", + "type_name_2": "WeatherSurfaceMaterialData", + "qualified_name": "keen::ds::WeatherSurfaceMaterialData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 103227737, + "hash2": 233500839, + "struct_fields": [ + { + "name": "snowUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "snowScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "frostUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "frostScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "frostAlbedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "frostRoughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "frostPuddleAlbedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "frostPorosityScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "snowVertexNormalPower", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "snowVertexNormalCutoff", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassMovementData", + "type_name_2": "GrassMovementData", + "qualified_name": "keen::ds::GrassMovementData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4084593330, + "hash2": 831892505, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 0 + }, + { + "name": "reciprocalSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "validData", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TessellatedMaterialConstants", + "type_name_2": "TessellatedMaterialConstants", + "qualified_name": "keen::ds::TessellatedMaterialConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2051491505, + "hash2": 3676951919, + "struct_fields": [ + { + "name": "levelMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "maxLevel", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShaderDebugMode", + "type_name_2": "RenderShaderDebugMode", + "qualified_name": "keen::ds::RenderShaderDebugMode", + "referenced_type_name": "keen::RenderShaderDebugMode", + "class_size": 4, + "fields_count": 45, + "primitive_type": "Typedef", + "hash1": 4033062614, + "hash2": 2988695950, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderDebugConstants", + "type_name_2": "RenderDebugConstants", + "qualified_name": "keen::ds::RenderDebugConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3588617483, + "hash2": 2320987144, + "struct_fields": [ + { + "name": "debugMode", + "type_name": "keen::ds::RenderShaderDebugMode", + "type_hash": 4033062614, + "data_offset": 0 + }, + { + "name": "debugNeutralAlbedo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "debugTextureIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "debugTextureAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "debugValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHeightmapSamplingShaderData", + "type_name_2": "DynamicHeightmapSamplingShaderData", + "qualified_name": "keen::ds::DynamicHeightmapSamplingShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1034593983, + "hash2": 1719212957, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "inverseSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "origin", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 8 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "distanceFade", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSampleConstants", + "type_name_2": "WeatherSampleConstants", + "qualified_name": "keen::ds::WeatherSampleConstants", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 526028364, + "hash2": 2637080329, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "texcoordMappingScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 4 + }, + { + "name": "texcoordMappingOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "snowBorderMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "cameraPositionY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "heightMap", + "type_name": "keen::ds::DynamicHeightmapSamplingShaderData", + "type_hash": 1034593983, + "data_offset": 48 + }, + { + "name": "heightMapCameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "frostVoxelTexcoordMappingScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "frostVoxelTexcoordMappingOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderLightFactors", + "type_name_2": "RenderLightFactors", + "qualified_name": "keen::ds::RenderLightFactors", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2920217911, + "hash2": 2251353017, + "struct_fields": [ + { + "name": "sun", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "skyGeometrySun", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "pointLights", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "gi", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "emissive", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementData", + "type_name_2": "SnowDisplacementData", + "qualified_name": "keen::ds::SnowDisplacementData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3656728719, + "hash2": 1978804687, + "struct_fields": [ + { + "name": "tileOrigin", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 0 + }, + { + "name": "reciprocalSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "rcpNormalScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "halfWorldSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "heightScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "validData", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderGBufferConstants", + "type_name_2": "RenderGBufferConstants", + "qualified_name": "keen::ds::RenderGBufferConstants", + "referenced_type_name": null, + "class_size": 960, + "fields_count": 32, + "primitive_type": "Struct", + "hash1": 4032045367, + "hash2": 3337323233, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 176 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "prevTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "grassMovement", + "type_name": "keen::ds::GrassMovementData", + "type_hash": 4084593330, + "data_offset": 208 + }, + { + "name": "grassMovementPrevious", + "type_name": "keen::ds::GrassMovementData", + "type_hash": 4084593330, + "data_offset": 240 + }, + { + "name": "terrainTessellation", + "type_name": "keen::ds::TessellatedMaterialConstants", + "type_hash": 2051491505, + "data_offset": 272 + }, + { + "name": "buildingTessellation", + "type_name": "keen::ds::TessellatedMaterialConstants", + "type_hash": 2051491505, + "data_offset": 288 + }, + { + "name": "debugData", + "type_name": "keen::ds::RenderDebugConstants", + "type_hash": 3588617483, + "data_offset": 304 + }, + { + "name": "enableCloth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 336 + }, + { + "name": "enableLavaShader", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 340 + }, + { + "name": "buildingMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 344 + }, + { + "name": "worldMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 348 + }, + { + "name": "weatherSurfaceMaterialData", + "type_name": "keen::ds::WeatherSurfaceMaterialData", + "type_hash": 103227737, + "data_offset": 352 + }, + { + "name": "weather", + "type_name": "keen::ds::WeatherSampleConstants", + "type_hash": 526028364, + "data_offset": 416 + }, + { + "name": "lightFactors", + "type_name": "keen::ds::RenderLightFactors", + "type_hash": 2920217911, + "data_offset": 544 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 576 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 580 + }, + { + "name": "isVoxelMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 588 + }, + { + "name": "highlightAmount", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 592 + }, + { + "name": "highlightIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 596 + }, + { + "name": "highlightColorPaletteArray", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 608 + }, + { + "name": "mipBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 736 + }, + { + "name": "useStochasticMaterialSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 740 + }, + { + "name": "cancelJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 744 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 752 + }, + { + "name": "prevCameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 768 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 784 + }, + { + "name": "prevCameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 848 + }, + { + "name": "snowDisplacement", + "type_name": "keen::ds::SnowDisplacementData", + "type_hash": 3656728719, + "data_offset": 912 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CascadeShadowShaderData", + "type_name_2": "CascadeShadowShaderData", + "qualified_name": "keen::ds::CascadeShadowShaderData", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3457757786, + "hash2": 2088626122, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "fadeParameters0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "fadeParameters1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "CascadeShadowShaderData[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::CascadeShadowShaderData", + "class_size": 1024, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3788248658, + "hash2": 1348900467, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowAtlasShaderData", + "type_name_2": "RenderShadowAtlasShaderData", + "qualified_name": "keen::ds::RenderShadowAtlasShaderData", + "referenced_type_name": null, + "class_size": 1088, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 278385403, + "hash2": 816014083, + "struct_fields": [ + { + "name": "viewMatrixRowZ", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "atlasSize", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "cascadeCount", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "firstCascadeDistanceFadeParameters", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 3788248658, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardDirectionalLightData", + "type_name_2": "ForwardDirectionalLightData", + "qualified_name": "keen::ds::ForwardDirectionalLightData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 141436276, + "hash2": 2600072839, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "pad1", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardIblData", + "type_name_2": "ForwardIblData", + "qualified_name": "keen::ds::ForwardIblData", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2488871057, + "hash2": 652455612, + "struct_fields": [ + { + "name": "azimuthRotationXZ", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "specularMipLevelCount", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "isValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ShadowVolumeTransform", + "type_name_2": "Fog2ShadowVolumeTransform", + "qualified_name": "keen::ds::Fog2ShadowVolumeTransform", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2402570041, + "hash2": 2319274094, + "struct_fields": [ + { + "name": "worldToCascadeMatrices", + "type_name": "keen::StaticArray", + "type_hash": 648169813, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ShadowVolumeSampleParameters", + "type_name_2": "Fog2ShadowVolumeSampleParameters", + "qualified_name": "keen::ds::Fog2ShadowVolumeSampleParameters", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4016314777, + "hash2": 4280497972, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::ds::Fog2ShadowVolumeTransform", + "type_hash": 2402570041, + "data_offset": 0 + }, + { + "name": "cascadeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 192 + }, + { + "name": "invCascadeCount", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "halfPixelWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricShadowRuntimeData", + "type_name_2": "VolumetricShadowRuntimeData", + "qualified_name": "keen::ds::VolumetricShadowRuntimeData", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 456003765, + "hash2": 916703719, + "struct_fields": [ + { + "name": "fog2ShadowVolumeSampleParameters", + "type_name": "keen::ds::Fog2ShadowVolumeSampleParameters", + "type_hash": 4016314777, + "data_offset": 0 + }, + { + "name": "directionalLightDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 208 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "cloudMapTexcoordMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 224 + }, + { + "name": "pad0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 232 + }, + { + "name": "pad1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DeferredLightingConstants", + "type_name_2": "DeferredLightingConstants", + "qualified_name": "keen::ds::DeferredLightingConstants", + "referenced_type_name": null, + "class_size": 1824, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 3104172753, + "hash2": 1391603429, + "struct_fields": [ + { + "name": "lightFactors", + "type_name": "keen::ds::RenderLightFactors", + "type_hash": 2920217911, + "data_offset": 0 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 32 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 176 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 240 + }, + { + "name": "playerWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "clearColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 272 + }, + { + "name": "atlasData", + "type_name": "keen::ds::RenderShadowAtlasShaderData", + "type_hash": 278385403, + "data_offset": 288 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 1376 + }, + { + "name": "atmosphere", + "type_name": "keen::ds::AtmosphereShaderData", + "type_hash": 1909054486, + "data_offset": 1408 + }, + { + "name": "iblData", + "type_name": "keen::ds::ForwardIblData", + "type_hash": 2488871057, + "data_offset": 1472 + }, + { + "name": "fogDisabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1500 + }, + { + "name": "ssaoEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1504 + }, + { + "name": "useAoMin", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1508 + }, + { + "name": "useAoMaps", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1512 + }, + { + "name": "giEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1516 + }, + { + "name": "pointLightsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1520 + }, + { + "name": "useHorizonBasedSpecularOcclusion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1524 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::ds::VolumetricShadowRuntimeData", + "type_hash": 456003765, + "data_offset": 1536 + }, + { + "name": "debugData", + "type_name": "keen::ds::RenderDebugConstants", + "type_hash": 3588617483, + "data_offset": 1776 + }, + { + "name": "accumulateSceneBrightness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1808 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VisibilityMaterialParameters", + "type_name_2": "VisibilityMaterialParameters", + "qualified_name": "keen::ds::VisibilityMaterialParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3024059138, + "hash2": 2206748631, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "drawCommandBufferOffsetEarly", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "drawCommandBufferOffsetEarlyTessellated", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 84 + }, + { + "name": "drawCommandBufferOffsetLate", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + }, + { + "name": "drawCommandBufferOffsetLateTessellated", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DepthOfFieldConstants", + "type_name_2": "DepthOfFieldConstants", + "qualified_name": "keen::ds::DepthOfFieldConstants", + "referenced_type_name": null, + "class_size": 1024, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2316068204, + "hash2": 1555053936, + "struct_fields": [ + { + "name": "focalLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "focalDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "cocScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "kernelScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "sceneImagePixelSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "jitterOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "invProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "samplesHigh", + "type_name": "keen::StaticArray", + "type_hash": 1402398568, + "data_offset": 112 + }, + { + "name": "samplesLow", + "type_name": "keen::StaticArray", + "type_hash": 3239752981, + "data_offset": 880 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DepthPyramidShaderParameters", + "type_name_2": "DepthPyramidShaderParameters", + "qualified_name": "keen::ds::DepthPyramidShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1313913833, + "hash2": 2493058083, + "struct_fields": [ + { + "name": "inverseOutputResolution", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "inputResolution", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterModelAlignmentAxis", + "type_name_2": "DetailScatterModelAlignmentAxis", + "qualified_name": "keen::ds::DetailScatterModelAlignmentAxis", + "referenced_type_name": "keen::DetailScatterModelAlignmentAxis", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1000810855, + "hash2": 1061465384, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterModel", + "type_name_2": "DetailScatterModel", + "qualified_name": "keen::ds::DetailScatterModel", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3700912601, + "hash2": 740074124, + "struct_fields": [ + { + "name": "alignmentAxis", + "type_name": "keen::ds::DetailScatterModelAlignmentAxis", + "type_hash": 1000810855, + "data_offset": 0 + }, + { + "name": "spawnInside", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "spawnOutside", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "alignWithNormalStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "randomRotationXStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "randomRotationYStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "randomRotationZStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "minFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "maxFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "minScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "mapScaleStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "materialWeightScaleStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DetailScatterModel", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 359810124, + "hash2": 651988460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterInstance", + "type_name_2": "DetailScatterInstance", + "qualified_name": "keen::ds::DetailScatterInstance", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1410568983, + "hash2": 398020884, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 359810124, + "data_offset": 0 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "onlyOnWeathered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TextureChannel", + "type_name_2": "TextureChannel", + "qualified_name": "keen::ds::TextureChannel", + "referenced_type_name": "keen::TextureChannel", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1499186233, + "hash2": 2898886368, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterGroup", + "type_name_2": "DetailScatterGroup", + "qualified_name": "keen::ds::DetailScatterGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 710987007, + "hash2": 1908668186, + "struct_fields": [ + { + "name": "mapChannel", + "type_name": "keen::ds::TextureChannel", + "type_hash": 1499186233, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterLayer", + "type_name_2": "DetailScatterLayer", + "qualified_name": "keen::ds::DetailScatterLayer", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3354987785, + "hash2": 1448065803, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "mapTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterLayerShaderData", + "type_name_2": "DetailScatterLayerShaderData", + "qualified_name": "keen::ds::DetailScatterLayerShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4064638740, + "hash2": 3222194390, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 0 + }, + { + "name": "mapTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "pad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "pad1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "edgeNoiseMap", + "type_name": "keen::ds::BindlessTexture2D_float", + "type_hash": 21922031, + "data_offset": 16 + }, + { + "name": "edgeNoiseTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "edgeNoiseMappingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "pad2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "modelOffset", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 32 + }, + { + "name": "modelCount", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterModelProbabilityCutoffShaderData", + "type_name_2": "DetailScatterModelProbabilityCutoffShaderData", + "qualified_name": "keen::ds::DetailScatterModelProbabilityCutoffShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3921263408, + "hash2": 2767793647, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterModelShaderData", + "type_name_2": "DetailScatterModelShaderData", + "qualified_name": "keen::ds::DetailScatterModelShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1160695172, + "hash2": 4070344890, + "struct_fields": [ + { + "name": "minFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxFadeoutDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "minScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "maxScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "alignWithNormalStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "params0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "params1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "lodDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterShaderData", + "type_name_2": "DetailScatterShaderData", + "qualified_name": "keen::ds::DetailScatterShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3809518573, + "hash2": 3037759190, + "struct_fields": [ + { + "name": "scatterMapSampler", + "type_name": "keen::ds::BindlessSampler", + "type_hash": 1608001563, + "data_offset": 0 + }, + { + "name": "pad0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "pad1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "pad2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 212205206, + "hash2": 3641197448, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatterResource", + "type_name_2": "DetailScatterResource", + "qualified_name": "keen::ds::DetailScatterResource", + "referenced_type_name": null, + "class_size": 784, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 871935632, + "hash2": 3568504365, + "struct_fields": [ + { + "name": "shaderDataParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 0 + }, + { + "name": "layersShaderDataParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 184 + }, + { + "name": "modelsShaderDataParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 368 + }, + { + "name": "modelProbabilityCutoffsShaderDataParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 552 + }, + { + "name": "models", + "type_name": "keen::DsArray>", + "type_hash": 212205206, + "data_offset": 736 + }, + { + "name": "largestModelRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 776 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DissolveMaterialParameters", + "type_name_2": "DissolveMaterialParameters", + "qualified_name": "keen::ds::DissolveMaterialParameters", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3672614081, + "hash2": 1935557195, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "noiseTiling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "noiseFadeRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "noiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 12 + }, + { + "name": "enableEdgeGlow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "edgeWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "edgeColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHeightmapFillShaderParameters", + "type_name_2": "DynamicHeightmapFillShaderParameters", + "qualified_name": "keen::ds::DynamicHeightmapFillShaderParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3919581487, + "hash2": 3431556126, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "ditherPos", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "origin", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 24 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "worldTop", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DynamicHeightmapRasterizeTreesShaderParameters", + "type_name_2": "DynamicHeightmapRasterizeTreesShaderParameters", + "qualified_name": "keen::ds::DynamicHeightmapRasterizeTreesShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1651032848, + "hash2": 1628890984, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CollectGpuCullingTreesShaderParameters", + "type_name_2": "CollectGpuCullingTreesShaderParameters", + "qualified_name": "keen::ds::CollectGpuCullingTreesShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1954355375, + "hash2": 1949755582, + "struct_fields": [ + { + "name": "drawCountBufferOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "drawCommandBufferOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FfxShadowDenoiserShaderParameters", + "type_name_2": "FfxShadowDenoiserShaderParameters", + "qualified_name": "keen::ds::FfxShadowDenoiserShaderParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3944351767, + "hash2": 2923282289, + "struct_fields": [ + { + "name": "inverseProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "reprojectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 192 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 240 + }, + { + "name": "packedSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 256 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 264 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 272 + }, + { + "name": "isFirstFrame", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 280 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 284 + }, + { + "name": "depthSigma", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FfxShadowDenoiserPushConstants", + "type_name_2": "FfxShadowDenoiserPushConstants", + "qualified_name": "keen::ds::FfxShadowDenoiserPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3690065839, + "hash2": 498494493, + "struct_fields": [ + { + "name": "stepSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogMaterialParameters", + "type_name_2": "FogMaterialParameters", + "qualified_name": "keen::ds::FogMaterialParameters", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 484702576, + "hash2": 1428979014, + "struct_fields": [ + { + "name": "absorption", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "scattering", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 4 + }, + { + "name": "emission", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 8 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoliageAnimationAdvancedParameters", + "type_name_2": "FoliageAnimationAdvancedParameters", + "qualified_name": "keen::ds::FoliageAnimationAdvancedParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1579765866, + "hash2": 2247300380, + "struct_fields": [ + { + "name": "branchPhaseOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "detailFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "edgeAmplitude", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "branchAmplitude", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoliageAnimationModelParameters", + "type_name_2": "FoliageAnimationModelParameters", + "qualified_name": "keen::ds::FoliageAnimationModelParameters", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1989355545, + "hash2": 2802406059, + "struct_fields": [ + { + "name": "assetHeightFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "globalStiffnessFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "advancedParameters", + "type_name": "keen::ds::FoliageAnimationAdvancedParameters", + "type_hash": 1579765866, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassPushbackModelParameters", + "type_name_2": "GrassPushbackModelParameters", + "qualified_name": "keen::ds::GrassPushbackModelParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1737634313, + "hash2": 67403063, + "struct_fields": [ + { + "name": "bounceTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bounceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "bounceDamping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassPushbackShaderParameters", + "type_name_2": "GrassPushbackShaderParameters", + "qualified_name": "keen::ds::GrassPushbackShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1352867581, + "hash2": 2585647714, + "struct_fields": [ + { + "name": "bounceDamping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "bounceFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "oneOverBounceTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoliageAnimationShaderParameters", + "type_name_2": "FoliageAnimationShaderParameters", + "qualified_name": "keen::ds::FoliageAnimationShaderParameters", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2745668525, + "hash2": 255099584, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "precomputedBendScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "globalStiffnessFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "advancedParameters", + "type_name": "keen::ds::FoliageAnimationAdvancedParameters", + "type_hash": 1579765866, + "data_offset": 12 + }, + { + "name": "pushBack", + "type_name": "keen::ds::GrassPushbackShaderParameters", + "type_hash": 1352867581, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassAnimationModelParameters", + "type_name_2": "GrassAnimationModelParameters", + "qualified_name": "keen::ds::GrassAnimationModelParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1257499780, + "hash2": 2422626774, + "struct_fields": [ + { + "name": "largeDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "smallDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassAnimationShaderParameters", + "type_name_2": "GrassAnimationShaderParameters", + "qualified_name": "keen::ds::GrassAnimationShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2253073054, + "hash2": 2848698280, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "largeDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "smallDisplacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "oneOverModelHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "pushBack", + "type_name": "keen::ds::GrassPushbackShaderParameters", + "type_hash": 1352867581, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForestFogFootprintMaterial", + "type_name_2": "ForestFogFootprintMaterial", + "qualified_name": "keen::ds::ForestFogFootprintMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4105004144, + "hash2": 1505674715, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ForestFogFootprintRenderMaterial", + "type_name_2": "ForestFogFootprintRenderMaterial", + "qualified_name": "keen::ds::ForestFogFootprintRenderMaterial", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3639989864, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderPushConstants2", + "type_name_2": "RenderPushConstants2", + "qualified_name": "keen::ds::RenderPushConstants2", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 155076118, + "hash2": 4191896452, + "struct_fields": [ + { + "name": "drawCommandBufferOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "isLateCullingPass", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "drawIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "isRunningOnSteamDeck", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxDrawPushConstants", + "type_name_2": "VfxDrawPushConstants", + "qualified_name": "keen::ds::VfxDrawPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4180787208, + "hash2": 2154756165, + "struct_fields": [ + { + "name": "baseDrawIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowPassConstants", + "type_name_2": "RenderShadowPassConstants", + "qualified_name": "keen::ds::RenderShadowPassConstants", + "referenced_type_name": null, + "class_size": 336, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 828852999, + "hash2": 2201468093, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "grassMovement", + "type_name": "keen::ds::GrassMovementData", + "type_hash": 4084593330, + "data_offset": 80 + }, + { + "name": "snowDisplacement", + "type_name": "keen::ds::SnowDisplacementData", + "type_hash": 3656728719, + "data_offset": 112 + }, + { + "name": "enableCloth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "terrainTessellation", + "type_name": "keen::ds::TessellatedMaterialConstants", + "type_hash": 2051491505, + "data_offset": 176 + }, + { + "name": "buildingTessellation", + "type_name": "keen::ds::TessellatedMaterialConstants", + "type_hash": 2051491505, + "data_offset": 192 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 212 + }, + { + "name": "useStochasticMaterialSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "isVoxelMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 224 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 240 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 256 + }, + { + "name": "buildingMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 320 + }, + { + "name": "worldMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 324 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDepthConstants", + "type_name_2": "RenderDepthConstants", + "qualified_name": "keen::ds::RenderDepthConstants", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 22, + "primitive_type": "Struct", + "hash1": 1078108705, + "hash2": 1349605078, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "prevTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "grassMovement", + "type_name": "keen::ds::GrassMovementData", + "type_hash": 4084593330, + "data_offset": 96 + }, + { + "name": "grassMovementPrevious", + "type_name": "keen::ds::GrassMovementData", + "type_hash": 4084593330, + "data_offset": 128 + }, + { + "name": "snowDisplacement", + "type_name": "keen::ds::SnowDisplacementData", + "type_hash": 3656728719, + "data_offset": 160 + }, + { + "name": "enableCloth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "terrainTessellation", + "type_name": "keen::ds::TessellatedMaterialConstants", + "type_hash": 2051491505, + "data_offset": 224 + }, + { + "name": "buildingTessellation", + "type_name": "keen::ds::TessellatedMaterialConstants", + "type_hash": 2051491505, + "data_offset": 240 + }, + { + "name": "mipBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 256 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 260 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 264 + }, + { + "name": "useStochasticMaterialSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "isVoxelMaterialDataValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 276 + }, + { + "name": "cancelJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 280 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 288 + }, + { + "name": "prevCameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 304 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 320 + }, + { + "name": "prevCameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 384 + }, + { + "name": "buildingMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 448 + }, + { + "name": "worldMaterialBlendingLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 452 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderForwardConstants", + "type_name_2": "RenderForwardConstants", + "qualified_name": "keen::ds::RenderForwardConstants", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1494403501, + "hash2": 3421574261, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 176 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 240 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 268 + }, + { + "name": "debugData", + "type_name": "keen::ds::RenderDebugConstants", + "type_hash": 3588617483, + "data_offset": 272 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 304 + }, + { + "name": "lightFactors", + "type_name": "keen::ds::RenderLightFactors", + "type_hash": 2920217911, + "data_offset": 336 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldShadowCascadeShaderData", + "type_name_2": "VoxelWorldShadowCascadeShaderData", + "qualified_name": "keen::ds::VoxelWorldShadowCascadeShaderData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2620974814, + "hash2": 2674204803, + "struct_fields": [ + { + "name": "worldToShadowMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VoxelWorldShadowCascadeShaderData[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::VoxelWorldShadowCascadeShaderData", + "class_size": 128, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2774017376, + "hash2": 1126795929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldShadowMapShaderData", + "type_name_2": "VoxelWorldShadowMapShaderData", + "qualified_name": "keen::ds::VoxelWorldShadowMapShaderData", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3808334302, + "hash2": 3267012130, + "struct_fields": [ + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 2774017376, + "data_offset": 0 + }, + { + "name": "shadowMapSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 128 + }, + { + "name": "inverseShadowMapSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 136 + }, + { + "name": "isValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderTransparentConstants", + "type_name_2": "RenderTransparentConstants", + "qualified_name": "keen::ds::RenderTransparentConstants", + "referenced_type_name": null, + "class_size": 1952, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 881707848, + "hash2": 475724939, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 176 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "debugData", + "type_name": "keen::ds::RenderDebugConstants", + "type_hash": 3588617483, + "data_offset": 192 + }, + { + "name": "fogDisabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 224 + }, + { + "name": "shadowsDisabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 228 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 232 + }, + { + "name": "measureOverdraw", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 236 + }, + { + "name": "isFsrEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 240 + }, + { + "name": "atlasData", + "type_name": "keen::ds::RenderShadowAtlasShaderData", + "type_hash": 278385403, + "data_offset": 256 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 1344 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::ds::VolumetricShadowRuntimeData", + "type_hash": 456003765, + "data_offset": 1376 + }, + { + "name": "atmosphere", + "type_name": "keen::ds::AtmosphereShaderData", + "type_hash": 1909054486, + "data_offset": 1616 + }, + { + "name": "lightFactors", + "type_name": "keen::ds::RenderLightFactors", + "type_hash": 2920217911, + "data_offset": 1680 + }, + { + "name": "voxelWorldShadowMap", + "type_name": "keen::ds::VoxelWorldShadowMapShaderData", + "type_hash": 3808334302, + "data_offset": 1712 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 1872 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 1888 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderDebugPassConstants", + "type_name_2": "RenderDebugPassConstants", + "qualified_name": "keen::ds::RenderDebugPassConstants", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2424695060, + "hash2": 998616150, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 64 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::ds::VolumetricShadowRuntimeData", + "type_hash": 456003765, + "data_offset": 96 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 336 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ViewSpacePositionReconstructionData", + "type_name_2": "ViewSpacePositionReconstructionData", + "qualified_name": "keen::ds::ViewSpacePositionReconstructionData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 200673675, + "hash2": 598741519, + "struct_fields": [ + { + "name": "screenToTargetSpaceTransform", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ViewVolumeTransform", + "type_name_2": "Fog2ViewVolumeTransform", + "qualified_name": "keen::ds::Fog2ViewVolumeTransform", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3410076558, + "hash2": 2630561863, + "struct_fields": [ + { + "name": "depthRemap", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "invDepthRemap", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ViewVolumeSampleParameters", + "type_name_2": "Fog2ViewVolumeSampleParameters", + "qualified_name": "keen::ds::Fog2ViewVolumeSampleParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3483509448, + "hash2": 3155277211, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 0 + }, + { + "name": "viewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderForwardTransparentConstants", + "type_name_2": "RenderForwardTransparentConstants", + "qualified_name": "keen::ds::RenderForwardTransparentConstants", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3228234139, + "hash2": 1500665846, + "struct_fields": [ + { + "name": "viewSpacePositionReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 0 + }, + { + "name": "viewVolumeSampleParameters", + "type_name": "keen::ds::Fog2ViewVolumeSampleParameters", + "type_hash": 3483509448, + "data_offset": 64 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 96 + }, + { + "name": "fogFlags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelMaterialDataType", + "type_name_2": "RenderModelMaterialDataType", + "qualified_name": "keen::ds::RenderModelMaterialDataType", + "referenced_type_name": "keen::RenderModelMaterialDataType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3815319969, + "hash2": 3349349107, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fsr3UpscalerConstants", + "type_name_2": "Fsr3UpscalerConstants", + "qualified_name": "keen::ds::Fsr3UpscalerConstants", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 3913210975, + "hash2": 4762807, + "struct_fields": [ + { + "name": "iRenderSize", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + }, + { + "name": "iMaxRenderSize", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 8 + }, + { + "name": "iDisplaySize", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 16 + }, + { + "name": "iInputColorResourceDimensions", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 24 + }, + { + "name": "iLumaMipDimensions", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 32 + }, + { + "name": "iLumaMipLevelToUse", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 40 + }, + { + "name": "iFrameIndex", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 44 + }, + { + "name": "fDeviceToViewDepth", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "fJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 64 + }, + { + "name": "fMotionVectorScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 72 + }, + { + "name": "fDownscaleFactor", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 80 + }, + { + "name": "fMotionVectorJitterCancellation", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 88 + }, + { + "name": "fExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "fPreExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "fPreviousFramePreExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "fTanHalfFOV", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 108 + }, + { + "name": "fJitterSequenceLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 112 + }, + { + "name": "fDeltaTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 116 + }, + { + "name": "fDynamicResChangeFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 120 + }, + { + "name": "fViewSpaceToMetersFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fsr3UpscalerSpdConstants", + "type_name_2": "Fsr3UpscalerSpdConstants", + "qualified_name": "keen::ds::Fsr3UpscalerSpdConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3336012092, + "hash2": 1826394338, + "struct_fields": [ + { + "name": "mips", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "numWorkGroups", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "workGroupOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "renderSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fsr3UpscalerRcasConstants", + "type_name_2": "Fsr3UpscalerRcasConstants", + "qualified_name": "keen::ds::Fsr3UpscalerRcasConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 247878586, + "hash2": 2721044546, + "struct_fields": [ + { + "name": "rcasConfig", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiQuality", + "type_name_2": "GiQuality", + "qualified_name": "keen::ds::GiQuality", + "referenced_type_name": "keen::GiQuality", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1872513592, + "hash2": 1041728364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeSize", + "type_name_2": "GiProbeSize", + "qualified_name": "keen::ds::GiProbeSize", + "referenced_type_name": "keen::GiProbeSize", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2637349438, + "hash2": 544683631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiIrradianceProbeSize", + "type_name_2": "GiIrradianceProbeSize", + "qualified_name": "keen::ds::GiIrradianceProbeSize", + "referenced_type_name": "keen::GiIrradianceProbeSize", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 617452600, + "hash2": 439075613, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiDispatchSize", + "type_name_2": "GiDispatchSize", + "qualified_name": "keen::ds::GiDispatchSize", + "referenced_type_name": "keen::GiDispatchSize", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 235130280, + "hash2": 1614961039, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhVariant", + "type_name_2": "SdfBvhVariant", + "qualified_name": "keen::ds::SdfBvhVariant", + "referenced_type_name": "keen::SdfBvhVariant", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 1829189055, + "hash2": 3469410370, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiQualitySettings", + "type_name_2": "GiQualitySettings", + "qualified_name": "keen::ds::GiQualitySettings", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 30, + "primitive_type": "Struct", + "hash1": 2009484069, + "hash2": 2842845490, + "struct_fields": [ + { + "name": "radianceAndDistancePixelCount", + "type_name": "keen::ds::GiProbeSize", + "type_hash": 2637349438, + "data_offset": 0 + }, + { + "name": "irradiancePixelCount", + "type_name": "keen::ds::GiIrradianceProbeSize", + "type_hash": 617452600, + "data_offset": 4 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "globalRayBudget", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "frustumRaysScaleUpBudgetThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "frustumMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "frustumIncreasedMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "frustumMaxProbeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "frustumRayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "worldCacheRayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "worldCacheMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "worldCacheMaxProbeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "ambientRayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "ambientMinRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "ambientMaxProbeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + }, + { + "name": "ambientFroxelDepthSliceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + }, + { + "name": "frustumLightCacheStartDiameter", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "worldCacheLightCacheStartDiameter", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "maxNeighboursSharingHistory", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 76 + }, + { + "name": "maxNeighboursSharingRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 80 + }, + { + "name": "neighbourCandidateDispatchSize", + "type_name": "keen::ds::GiDispatchSize", + "type_hash": 235130280, + "data_offset": 84 + }, + { + "name": "fillAmbientProbeRayCountScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "fillAmbientProbesIteratively", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 92 + }, + { + "name": "minimumFilledRaysToAmbientProbes", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 96 + }, + { + "name": "prefilterRadianceLevelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "prefilterAngleScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 104 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 108 + }, + { + "name": "worldCacheRayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 112 + }, + { + "name": "sdfBvhVariant", + "type_name": "keen::ds::SdfBvhVariant", + "type_hash": 1829189055, + "data_offset": 116 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiSunLightShaderData", + "type_name_2": "GiSunLightShaderData", + "qualified_name": "keen::ds::GiSunLightShaderData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2125267016, + "hash2": 2808858769, + "struct_fields": [ + { + "name": "direction0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "directLight0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "indirectLight0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "direction1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "indirectLight1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiShadowShaderData", + "type_name_2": "GiShadowShaderData", + "qualified_name": "keen::ds::GiShadowShaderData", + "referenced_type_name": null, + "class_size": 1344, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 386466878, + "hash2": 1021337118, + "struct_fields": [ + { + "name": "shadowAtlas", + "type_name": "keen::ds::RenderShadowAtlasShaderData", + "type_hash": 278385403, + "data_offset": 0 + }, + { + "name": "volumetricShadowRuntimeData", + "type_name": "keen::ds::VolumetricShadowRuntimeData", + "type_hash": 456003765, + "data_offset": 1088 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1328 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbe", + "type_name_2": "GiProbe", + "qualified_name": "keen::ds::GiProbe", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1273355271, + "hash2": 2924810981, + "struct_fields": [ + { + "name": "pushedOutPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "probeDataQuality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "probeRadianceSum", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "rayListStartIndexAndProbeState", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "rayListRayCountAndRequestedRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiMovingAverageEstimatorData", + "type_name_2": "GiMovingAverageEstimatorData", + "qualified_name": "keen::ds::GiMovingAverageEstimatorData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 283156174, + "hash2": 1498616615, + "struct_fields": [ + { + "name": "shortMean", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "vbbr", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "variance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "inconsistency", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiMovingAverageEstimatorDataEncoded", + "type_name_2": "GiMovingAverageEstimatorDataEncoded", + "qualified_name": "keen::ds::GiMovingAverageEstimatorDataEncoded", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2607809496, + "hash2": 2537326575, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeType", + "type_name_2": "GiProbeType", + "qualified_name": "keen::ds::GiProbeType", + "referenced_type_name": "keen::GiProbeType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3268440063, + "hash2": 155257951, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiRayHitType", + "type_name_2": "GiRayHitType", + "qualified_name": "keen::ds::GiRayHitType", + "referenced_type_name": "keen::GiRayHitType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2575687250, + "hash2": 2578483995, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiRayHit", + "type_name_2": "GiRayHit", + "qualified_name": "keen::ds::GiRayHit", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3342336546, + "hash2": 1438497726, + "struct_fields": [ + { + "name": "octahedralNormal", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "rayHitIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "sdfLevelAndHitTypeAndRayIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayHitDecoded", + "type_name_2": "GiRayHitDecoded", + "qualified_name": "keen::ds::GiRayHitDecoded", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 615176480, + "hash2": 1790003270, + "struct_fields": [ + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "rayHitIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "sdfLevel", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "hitType", + "type_name": "keen::ds::GiRayHitType", + "type_hash": 2575687250, + "data_offset": 32 + }, + { + "name": "rayIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayHitCounters", + "type_name_2": "GiRayHitCounters", + "qualified_name": "keen::ds::GiRayHitCounters", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2010477251, + "hash2": 2232351496, + "struct_fields": [ + { + "name": "terrainRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "buildingRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "skyRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayEncoded", + "type_name_2": "GiRayEncoded", + "qualified_name": "keen::ds::GiRayEncoded", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1973626801, + "hash2": 2537326575, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayDecoded", + "type_name_2": "GiRayDecoded", + "qualified_name": "keen::ds::GiRayDecoded", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3267142905, + "hash2": 3104930016, + "struct_fields": [ + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "hitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "radiance", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRayListData", + "type_name_2": "GiRayListData", + "qualified_name": "keen::ds::GiRayListData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 283346521, + "hash2": 3122931902, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "probeIndexAndRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "rayStorageIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPrepareVisualisationParameters", + "type_name_2": "GiPrepareVisualisationParameters", + "qualified_name": "keen::ds::GiPrepareVisualisationParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 355342823, + "hash2": 631631906, + "struct_fields": [ + { + "name": "cameraOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "farPlaneOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "farPlaneX", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "farPlaneY", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialBlendingConstants", + "type_name_2": "VoxelMaterialBlendingConstants", + "qualified_name": "keen::ds::VoxelMaterialBlendingConstants", + "referenced_type_name": null, + "class_size": 512, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3342411578, + "hash2": 750681311, + "struct_fields": [ + { + "name": "fogGrid", + "type_name": "keen::ds::VolumetricFogGridShaderData", + "type_hash": 2243135612, + "data_offset": 0 + }, + { + "name": "hasBakingData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 496 + }, + { + "name": "hasSimpleWorldData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 500 + }, + { + "name": "buildingMaterialCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 504 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 508 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheCascadeShaderData", + "type_name_2": "LightCacheCascadeShaderData", + "qualified_name": "keen::ds::LightCacheCascadeShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3222205644, + "hash2": 667445811, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "scrollDelta", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "LightCacheCascadeShaderData[12]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::LightCacheCascadeShaderData", + "class_size": 384, + "fields_count": 12, + "primitive_type": "StaticArray", + "hash1": 2453149761, + "hash2": 2672061216, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLookupShaderData", + "type_name_2": "LightCacheLookupShaderData", + "qualified_name": "keen::ds::LightCacheLookupShaderData", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3048944842, + "hash2": 2810281343, + "struct_fields": [ + { + "name": "gridOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "cascadeCellStartDiameter", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "cascades", + "type_name": "keen::StaticArray", + "type_hash": 2453149761, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVisualisationParameters", + "type_name_2": "GiVisualisationParameters", + "qualified_name": "keen::ds::GiVisualisationParameters", + "referenced_type_name": null, + "class_size": 3056, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 194697564, + "hash2": 2001105125, + "struct_fields": [ + { + "name": "voxelMaterialBlending", + "type_name": "keen::ds::VoxelMaterialBlendingConstants", + "type_hash": 3342411578, + "data_offset": 0 + }, + { + "name": "atmosphere", + "type_name": "keen::ds::AtmosphereShaderData", + "type_hash": 1909054486, + "data_offset": 512 + }, + { + "name": "shadow", + "type_name": "keen::ds::GiShadowShaderData", + "type_hash": 386466878, + "data_offset": 576 + }, + { + "name": "primaryLightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 1920 + }, + { + "name": "worldCachelightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 2320 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::ds::WeatherSampleConstants", + "type_hash": 526028364, + "data_offset": 2720 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 2848 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 2912 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2920 + }, + { + "name": "cameraOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2928 + }, + { + "name": "lightFactorPointLights", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2940 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2944 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2956 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2960 + }, + { + "name": "farPlaneOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2964 + }, + { + "name": "forceNeutralAlbedo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2976 + }, + { + "name": "farPlaneX", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2980 + }, + { + "name": "useWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2992 + }, + { + "name": "farPlaneY", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2996 + }, + { + "name": "useFrustumProbesAsWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3008 + }, + { + "name": "lightFactorSun", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 3012 + }, + { + "name": "lightFactorEmissive", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3024 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 3028 + }, + { + "name": "lightFactorGi", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3040 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3044 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3048 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCreateProbeDrawCommandPushConstants", + "type_name_2": "GiCreateProbeDrawCommandPushConstants", + "qualified_name": "keen::ds::GiCreateProbeDrawCommandPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3974080835, + "hash2": 3553563477, + "struct_fields": [ + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrefilterLevels", + "type_name_2": "GiProbePrefilterLevels", + "qualified_name": "keen::ds::GiProbePrefilterLevels", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 697442121, + "hash2": 2387265748, + "struct_fields": [ + { + "name": "probeSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "GiProbePrefilterLevels[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::GiProbePrefilterLevels", + "class_size": 128, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3532340331, + "hash2": 3513173974, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeVisualisationParameters", + "type_name_2": "GiProbeVisualisationParameters", + "qualified_name": "keen::ds::GiProbeVisualisationParameters", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3353618840, + "hash2": 813062319, + "struct_fields": [ + { + "name": "radianceMapProbeLevels", + "type_name": "keen::StaticArray", + "type_hash": 3532340331, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "sphereBandPower", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 192 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 196 + }, + { + "name": "drawPixelCage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "hoverProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 204 + }, + { + "name": "selectedProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 208 + }, + { + "name": "pushOutByDistance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 212 + }, + { + "name": "drawIrradiance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 216 + }, + { + "name": "visibleRadianceSpecularMip", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 220 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 224 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 228 + }, + { + "name": "debugWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 232 + }, + { + "name": "probeSizeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 236 + }, + { + "name": "drawMovingAverageEstimatorShortMean", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 240 + }, + { + "name": "drawMovingAverageEstimatorVbbr", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 244 + }, + { + "name": "drawMovingAverageEstimatorVariance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 248 + }, + { + "name": "drawMovingAverageEstimatorInconsistency", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiShootShadowRaysParameters", + "type_name_2": "GiShootShadowRaysParameters", + "qualified_name": "keen::ds::GiShootShadowRaysParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1619170571, + "hash2": 883747324, + "struct_fields": [ + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "drawSunShadowRayProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeUpdateParameters", + "type_name_2": "GiProbeUpdateParameters", + "qualified_name": "keen::ds::GiProbeUpdateParameters", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2319125638, + "hash2": 2056581533, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "minMaxRayCount", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 400 + }, + { + "name": "maxDeleteListCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 412 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 416 + }, + { + "name": "drawPushOut", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 420 + }, + { + "name": "framesTillProbeInactive", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 424 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 428 + }, + { + "name": "probeRecycleAgeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 432 + }, + { + "name": "invFramesTillProbeInactive", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 436 + }, + { + "name": "invFramesTillProbeQualityReached", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 440 + }, + { + "name": "useDirectionToOffsetProbes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 444 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheFreeEntriesConstants", + "type_name_2": "LightCacheFreeEntriesConstants", + "qualified_name": "keen::ds::LightCacheFreeEntriesConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1333532378, + "hash2": 519382374, + "struct_fields": [ + { + "name": "maxDeleteListCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeShootRaysParameters", + "type_name_2": "GiProbeShootRaysParameters", + "qualified_name": "keen::ds::GiProbeShootRaysParameters", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 291869759, + "hash2": 654664957, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 400 + }, + { + "name": "debugScreenSizeInv", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 464 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 472 + }, + { + "name": "rotateRays", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 476 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 480 + }, + { + "name": "writeOutDirection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 484 + }, + { + "name": "traceBvhSdfInstances", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 488 + }, + { + "name": "useSortedBins", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 492 + }, + { + "name": "showRayBins", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 496 + }, + { + "name": "debugSelectedProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 500 + }, + { + "name": "debugMouseScreenPosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 504 + }, + { + "name": "rayBinDirectionIndexRange", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 512 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeSortHitsParameters", + "type_name_2": "GiProbeSortHitsParameters", + "qualified_name": "keen::ds::GiProbeSortHitsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1902536253, + "hash2": 762570081, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeShadeHitsParameters", + "type_name_2": "GiProbeShadeHitsParameters", + "qualified_name": "keen::ds::GiProbeShadeHitsParameters", + "referenced_type_name": null, + "class_size": 3088, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 3457259566, + "hash2": 4024950180, + "struct_fields": [ + { + "name": "voxelMaterialBlending", + "type_name": "keen::ds::VoxelMaterialBlendingConstants", + "type_hash": 3342411578, + "data_offset": 0 + }, + { + "name": "primaryLightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 512 + }, + { + "name": "worldCachelightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 912 + }, + { + "name": "atmosphere", + "type_name": "keen::ds::AtmosphereShaderData", + "type_hash": 1909054486, + "data_offset": 1312 + }, + { + "name": "shadow", + "type_name": "keen::ds::GiShadowShaderData", + "type_hash": 386466878, + "data_offset": 1376 + }, + { + "name": "sun", + "type_name": "keen::ds::GiSunLightShaderData", + "type_hash": 2125267016, + "data_offset": 2720 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::ds::WeatherSampleConstants", + "type_hash": 526028364, + "data_offset": 2800 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2928 + }, + { + "name": "lightFactorPointLights", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2940 + }, + { + "name": "sunColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2944 + }, + { + "name": "maxHitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2956 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2960 + }, + { + "name": "lightFactorEmissive", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2972 + }, + { + "name": "debugRaysRange", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 2976 + }, + { + "name": "lightFactorGi", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2984 + }, + { + "name": "enablePointLights", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2988 + }, + { + "name": "enablePointLightShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2992 + }, + { + "name": "pointLightInfluenceScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2996 + }, + { + "name": "traceBvhSdfInstances", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3000 + }, + { + "name": "forceNeutralAlbedo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3004 + }, + { + "name": "isFogEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3008 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3012 + }, + { + "name": "useWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3016 + }, + { + "name": "useFrustumProbesAsWorldCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3020 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3024 + }, + { + "name": "primaryCacheExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3028 + }, + { + "name": "worldCacheExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 3032 + }, + { + "name": "drawRaysInRange", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3036 + }, + { + "name": "drawRaysProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3040 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3044 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3048 + }, + { + "name": "applyWetness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3052 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 3056 + }, + { + "name": "applySnow", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3068 + }, + { + "name": "applyCloudMap", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3072 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiRasterizeIrradianceParameters", + "type_name_2": "GiRasterizeIrradianceParameters", + "qualified_name": "keen::ds::GiRasterizeIrradianceParameters", + "referenced_type_name": null, + "class_size": 912, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 1324334602, + "hash2": 2135704399, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "radianceMapProbeLevels", + "type_name": "keen::StaticArray", + "type_hash": 3532340331, + "data_offset": 400 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 528 + }, + { + "name": "previousInvViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 592 + }, + { + "name": "clipSpaceToCameraCenteredMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 656 + }, + { + "name": "previousCameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 720 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 784 + }, + { + "name": "radianceMipsCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 796 + }, + { + "name": "previousCameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 800 + }, + { + "name": "useStochasticSampling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 812 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 816 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 824 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 832 + }, + { + "name": "previousExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 840 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 844 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 848 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 856 + }, + { + "name": "useStochasticReflectedRadiance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 860 + }, + { + "name": "useStochasticReflectedIrradiance", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 864 + }, + { + "name": "stochasticFrameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 868 + }, + { + "name": "useHistory", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 872 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 876 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 880 + }, + { + "name": "colorCodeReprojection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 884 + }, + { + "name": "mousePos", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 888 + }, + { + "name": "drawPixelCage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 896 + }, + { + "name": "groundTruthSpecular", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 900 + }, + { + "name": "writeToSceneBrightness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 904 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVisualizeIrradianceParameters", + "type_name_2": "GiVisualizeIrradianceParameters", + "qualified_name": "keen::ds::GiVisualizeIrradianceParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2097999245, + "hash2": 2739564824, + "struct_fields": [ + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "giLightFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendRadianceParameters", + "type_name_2": "GiProbeBlendRadianceParameters", + "qualified_name": "keen::ds::GiProbeBlendRadianceParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 186229211, + "hash2": 44250263, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "previousExposureInverse", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "maxRayRadiance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "warmupProbeQualityBorderline", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "varianceGuidedRayCountThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendWorldCacheRadianceParameters", + "type_name_2": "GiProbeBlendWorldCacheRadianceParameters", + "qualified_name": "keen::ds::GiProbeBlendWorldCacheRadianceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3908410757, + "hash2": 2400849024, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxRayRadiance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "previousExposureInverse", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiBlendNeighbourRadianceProbesParameters", + "type_name_2": "GiBlendNeighbourRadianceProbesParameters", + "qualified_name": "keen::ds::GiBlendNeighbourRadianceProbesParameters", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 3492469335, + "hash2": 2341082214, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 400 + }, + { + "name": "exposureCorrectionFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 404 + }, + { + "name": "blendIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 408 + }, + { + "name": "blendRaysIterations", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 412 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 416 + }, + { + "name": "drawNeighbourBlendProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 420 + }, + { + "name": "showBlendPixels", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 424 + }, + { + "name": "onlyShowDebugInfo", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 428 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 432 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 436 + }, + { + "name": "allowOccludedPixelsAfterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 440 + }, + { + "name": "occludedPixelsDepthBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 444 + }, + { + "name": "debugNeighbourPixelProjection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 448 + }, + { + "name": "debugPixelProjectionParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 452 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiBlendNeighbourRadianceProbesRootConstantData", + "type_name_2": "GiBlendNeighbourRadianceProbesRootConstantData", + "qualified_name": "keen::ds::GiBlendNeighbourRadianceProbesRootConstantData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3421894223, + "hash2": 2589596097, + "struct_fields": [ + { + "name": "randomSeed", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "doNotShareProbesBelowQuality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "blendIterations", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeShadeHitsPipelineRootConstantData", + "type_name_2": "GiProbeShadeHitsPipelineRootConstantData", + "qualified_name": "keen::ds::GiProbeShadeHitsPipelineRootConstantData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3270775148, + "hash2": 2530629839, + "struct_fields": [ + { + "name": "rayHitType", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "probeType", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrepareShadeIndirectDispatchesParameters", + "type_name_2": "GiProbePrepareShadeIndirectDispatchesParameters", + "qualified_name": "keen::ds::GiProbePrepareShadeIndirectDispatchesParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 34344943, + "hash2": 1087977749, + "struct_fields": [ + { + "name": "dispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "shadowDispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "prepareShadowRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrefilterRadianceParameters", + "type_name_2": "GiProbePrefilterRadianceParameters", + "qualified_name": "keen::ds::GiProbePrefilterRadianceParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2750636775, + "hash2": 2845628628, + "struct_fields": [ + { + "name": "lowResolutionSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "invProbeSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "invSourceProbeSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "sampleScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "linearEnergyScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 36 + }, + { + "name": "cosAngleScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendIrradianceParameters", + "type_name_2": "GiProbeBlendIrradianceParameters", + "qualified_name": "keen::ds::GiProbeBlendIrradianceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 772036960, + "hash2": 2163762324, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "updateFromPreviousExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "highlightNewProbes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeBlendDistanceParameters", + "type_name_2": "GiProbeBlendDistanceParameters", + "qualified_name": "keen::ds::GiProbeBlendDistanceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3450581481, + "hash2": 91593974, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "debugProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbeDebugData", + "type_name_2": "GiProbeDebugData", + "qualified_name": "keen::ds::GiProbeDebugData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3950592246, + "hash2": 209980164, + "struct_fields": [ + { + "name": "isCoveringPixel", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiDebugProbeInfo", + "type_name_2": "GiDebugProbeInfo", + "qualified_name": "keen::ds::GiDebugProbeInfo", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1620905288, + "hash2": 2713573427, + "struct_fields": [ + { + "name": "pushedOutPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "probeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "cellCoordinate", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "requestedRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "rayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "probeQuality", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "isNew", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShSpectralCoeffs", + "type_name_2": "ShSpectralCoeffs", + "qualified_name": "keen::ds::ShSpectralCoeffs", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1825612990, + "hash2": 4119586172, + "struct_fields": [ + { + "name": "r", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "g", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "b", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateRayListPrepareIndirectParameters", + "type_name_2": "GiPopulateRayListPrepareIndirectParameters", + "qualified_name": "keen::ds::GiPopulateRayListPrepareIndirectParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 941023792, + "hash2": 1094482154, + "struct_fields": [ + { + "name": "dispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateRayListParameters", + "type_name_2": "GiPopulateRayListParameters", + "qualified_name": "keen::ds::GiPopulateRayListParameters", + "referenced_type_name": null, + "class_size": 464, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 312251927, + "hash2": 4224507462, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 408 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + }, + { + "name": "rotateRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 416 + }, + { + "name": "randomDirectionScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 420 + }, + { + "name": "useUniformSamplingAfterFrames", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 424 + }, + { + "name": "validRadianceMaps", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 428 + }, + { + "name": "minLuminanceSumForRayGuiding", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 432 + }, + { + "name": "sortRaysIntoBins", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 436 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 440 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 444 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 448 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateWorldCacheRayListParameters", + "type_name_2": "GiPopulateWorldCacheRayListParameters", + "qualified_name": "keen::ds::GiPopulateWorldCacheRayListParameters", + "referenced_type_name": null, + "class_size": 448, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3686783937, + "hash2": 3434391205, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 408 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + }, + { + "name": "rotateRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 416 + }, + { + "name": "randomDirectionScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 420 + }, + { + "name": "sortRaysIntoBins", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 424 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 428 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 432 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 436 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCullRequestedRaysWithRayBudgetParameters", + "type_name_2": "GiCullRequestedRaysWithRayBudgetParameters", + "qualified_name": "keen::ds::GiCullRequestedRaysWithRayBudgetParameters", + "referenced_type_name": null, + "class_size": 432, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 193717273, + "hash2": 4095121606, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "maxRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "frustumRaysScaleUpBudgetThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 408 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 416 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 420 + }, + { + "name": "sortRaysIntoBins", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 424 + }, + { + "name": "rayBinCascadeStartOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 428 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPrepareRayBinsParameters", + "type_name_2": "GiPrepareRayBinsParameters", + "qualified_name": "keen::ds::GiPrepareRayBinsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3959459600, + "hash2": 1428800336, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCalculateBinDirectionOffsetParameters", + "type_name_2": "GiCalculateBinDirectionOffsetParameters", + "qualified_name": "keen::ds::GiCalculateBinDirectionOffsetParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2115925056, + "hash2": 2911581938, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiSortRaysIntoBinsParameters", + "type_name_2": "GiSortRaysIntoBinsParameters", + "qualified_name": "keen::ds::GiSortRaysIntoBinsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4212103570, + "hash2": 3526320518, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "debugSorting", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCullRequestedAmbientRaysWithRayBudgetParameters", + "type_name_2": "GiCullRequestedAmbientRaysWithRayBudgetParameters", + "qualified_name": "keen::ds::GiCullRequestedAmbientRaysWithRayBudgetParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 871528527, + "hash2": 4184148497, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiWorldCacheBlendSphericalHarmonicsIrradianceParameters", + "type_name_2": "GiWorldCacheBlendSphericalHarmonicsIrradianceParameters", + "qualified_name": "keen::ds::GiWorldCacheBlendSphericalHarmonicsIrradianceParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4155093987, + "hash2": 809608939, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCleanupCacheParameters", + "type_name_2": "GiCleanupCacheParameters", + "qualified_name": "keen::ds::GiCleanupCacheParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 351303465, + "hash2": 1115707907, + "struct_fields": [ + { + "name": "maxProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiFillAmbientProbesParameters", + "type_name_2": "GiFillAmbientProbesParameters", + "qualified_name": "keen::ds::GiFillAmbientProbesParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 2088764797, + "hash2": 2286699124, + "struct_fields": [ + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 128 + }, + { + "name": "referencePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 256 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 268 + }, + { + "name": "maxHitCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "maxRayCountScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 276 + }, + { + "name": "minFillRayCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 280 + }, + { + "name": "useReverseRayReprojection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 284 + }, + { + "name": "debugSelectedProbeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 288 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 292 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 296 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 300 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientConvergeParameters", + "type_name_2": "GiAmbientConvergeParameters", + "qualified_name": "keen::ds::GiAmbientConvergeParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 4190995376, + "hash2": 2756050690, + "struct_fields": [ + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 128 + }, + { + "name": "shouldUseHistory", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 256 + }, + { + "name": "hysteresis", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 260 + }, + { + "name": "minRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 264 + }, + { + "name": "maxRaysPerProbe", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 268 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 276 + }, + { + "name": "previousExposureCorrection", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 280 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 284 + }, + { + "name": "debugProbeHighlightEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 288 + }, + { + "name": "debugSelectedProbeId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 292 + }, + { + "name": "debugEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 296 + }, + { + "name": "debugStarvingProbes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 300 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCalculateAmbientProbesVisibilityParameters", + "type_name_2": "GiCalculateAmbientProbesVisibilityParameters", + "qualified_name": "keen::ds::GiCalculateAmbientProbesVisibilityParameters", + "referenced_type_name": null, + "class_size": 576, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 4059031968, + "hash2": 3991031554, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "frustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 64 + }, + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 160 + }, + { + "name": "lastCascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 288 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 416 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 544 + }, + { + "name": "shouldUpdateCameraVisibility", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 556 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 560 + }, + { + "name": "debugShowVisibilityRays", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 568 + }, + { + "name": "debugActiveCascade", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 572 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientProbeVisualisationParameters", + "type_name_2": "GiAmbientProbeVisualisationParameters", + "qualified_name": "keen::ds::GiAmbientProbeVisualisationParameters", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 162509494, + "hash2": 4183686639, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 64 + }, + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 192 + }, + { + "name": "sphereBandPower", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 320 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 324 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 328 + }, + { + "name": "debugSelectedProbeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 332 + }, + { + "name": "showVisibilityMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 336 + }, + { + "name": "renderConvergedTexture", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 340 + }, + { + "name": "useGridCoordinatesWithoutOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 344 + }, + { + "name": "showWarmupProbes", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 348 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientDebugProbeInfo", + "type_name_2": "GiAmbientDebugProbeInfo", + "qualified_name": "keen::ds::GiAmbientDebugProbeInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 8931594, + "hash2": 3177444751, + "struct_fields": [ + { + "name": "cellCoordinate", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "probeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "rayIntersectedProbeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiPopulateAmbientRayListParameters", + "type_name_2": "GiPopulateAmbientRayListParameters", + "qualified_name": "keen::ds::GiPopulateAmbientRayListParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1382784941, + "hash2": 2801633219, + "struct_fields": [ + { + "name": "maxRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rotateRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "randomDirectionScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "rayBatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientRayListData", + "type_name_2": "GiAmbientRayListData", + "qualified_name": "keen::ds::GiAmbientRayListData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3922359551, + "hash2": 389925200, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "rayListStartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "direction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "probeRayCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientProbesLookupData", + "type_name_2": "GiAmbientProbesLookupData", + "qualified_name": "keen::ds::GiAmbientProbesLookupData", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1701938736, + "hash2": 991155889, + "struct_fields": [ + { + "name": "cascadeOriginAndSpacing", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 0 + }, + { + "name": "cascadeGridSpaceOffset", + "type_name": "keen::StaticArray", + "type_hash": 4277195647, + "data_offset": 128 + }, + { + "name": "gridSpaceReferencePosition", + "type_name": "keen::StaticArray", + "type_hash": 1058515416, + "data_offset": 256 + }, + { + "name": "referencePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientFroxelVolumeParameters", + "type_name_2": "GiAmbientFroxelVolumeParameters", + "qualified_name": "keen::ds::GiAmbientFroxelVolumeParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 211181597, + "hash2": 1609936976, + "struct_fields": [ + { + "name": "depthRemap", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "tileSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "froxelVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "near", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "invFroxelVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "far", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiFillAmbientFroxelVolumeParameters", + "type_name_2": "GiFillAmbientFroxelVolumeParameters", + "qualified_name": "keen::ds::GiFillAmbientFroxelVolumeParameters", + "referenced_type_name": null, + "class_size": 784, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 2800772354, + "hash2": 456811317, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "previousViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "previousInvViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 192 + }, + { + "name": "ambientProbeLookup", + "type_name": "keen::ds::GiAmbientProbesLookupData", + "type_hash": 1701938736, + "data_offset": 256 + }, + { + "name": "froxelData", + "type_name": "keen::ds::GiAmbientFroxelVolumeParameters", + "type_hash": 211181597, + "data_offset": 656 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 720 + }, + { + "name": "exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 732 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 736 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 744 + }, + { + "name": "previousCameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 752 + }, + { + "name": "historyValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 764 + }, + { + "name": "previousToCurrentExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 768 + }, + { + "name": "debugShowFroxels", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 772 + }, + { + "name": "debugDrawFroxelZIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 776 + }, + { + "name": "debugColorCodeReprojection", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 780 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiProbePrepareFillRaysIndirectDispatchParameters", + "type_name_2": "GiProbePrepareFillRaysIndirectDispatchParameters", + "qualified_name": "keen::ds::GiProbePrepareFillRaysIndirectDispatchParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2340030602, + "hash2": 3736800599, + "struct_fields": [ + { + "name": "dispatchSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "minimumAllowedRays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rayCountScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiFillAmbientProbesWithAmbientRaysRootConstantData", + "type_name_2": "GiFillAmbientProbesWithAmbientRaysRootConstantData", + "qualified_name": "keen::ds::GiFillAmbientProbesWithAmbientRaysRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2251244326, + "hash2": 3805752945, + "struct_fields": [ + { + "name": "activeCascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiCalculateAmbientProbesVisibilityRootConstantData", + "type_name_2": "GiCalculateAmbientProbesVisibilityRootConstantData", + "qualified_name": "keen::ds::GiCalculateAmbientProbesVisibilityRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2048484192, + "hash2": 3805752945, + "struct_fields": [ + { + "name": "activeCascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiAmbientConvergeRootConstantData", + "type_name_2": "GiAmbientConvergeRootConstantData", + "qualified_name": "keen::ds::GiAmbientConvergeRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 954910608, + "hash2": 3805752945, + "struct_fields": [ + { + "name": "activeCascadeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiDebugStep", + "type_name_2": "GiDebugStep", + "qualified_name": "keen::ds::GiDebugStep", + "referenced_type_name": "keen::GiDebugStep", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 626218984, + "hash2": 3410059109, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiDebugProbeType", + "type_name_2": "GiDebugProbeType", + "qualified_name": "keen::ds::GiDebugProbeType", + "referenced_type_name": "keen::GiDebugProbeType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1104454492, + "hash2": 3676859303, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GizmoMaterial", + "type_name_2": "GizmoMaterial", + "qualified_name": "keen::ds::GizmoMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4010886062, + "hash2": 1505674715, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GizmoRfxRenderMaterial", + "type_name_2": "GizmoRfxRenderMaterial", + "qualified_name": "keen::ds::GizmoRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3127577068, + "hash2": 1722531857, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCounterFillCommand", + "type_name_2": "GpuCounterFillCommand", + "qualified_name": "keen::ds::GpuCounterFillCommand", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3718923917, + "hash2": 2361222262, + "struct_fields": [ + { + "name": "byteOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FillBufferParameters", + "type_name_2": "FillBufferParameters", + "qualified_name": "keen::ds::FillBufferParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3466817908, + "hash2": 535296542, + "struct_fields": [ + { + "name": "commandCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheImageStreamingState", + "type_name_2": "GpuDataCacheImageStreamingState", + "qualified_name": "keen::ds::GpuDataCacheImageStreamingState", + "referenced_type_name": "keen::GpuDataCacheImageStreamingState", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2749895589, + "hash2": 2325684332, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheImageStreamingMemoryBlockInfo", + "type_name_2": "GpuDataCacheImageStreamingMemoryBlockInfo", + "qualified_name": "keen::ds::GpuDataCacheImageStreamingMemoryBlockInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 240382640, + "hash2": 2572432582, + "struct_fields": [ + { + "name": "sizeInBytes", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheMemoryRangeInfo", + "type_name_2": "GpuDataCacheMemoryRangeInfo", + "qualified_name": "keen::ds::GpuDataCacheMemoryRangeInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2802368425, + "hash2": 4049298342, + "struct_fields": [ + { + "name": "blockIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuImageStreamingDataLoadingState", + "type_name_2": "GpuImageStreamingDataLoadingState", + "qualified_name": "keen::ds::GpuImageStreamingDataLoadingState", + "referenced_type_name": "keen::GpuImageStreamingDataLoadingState", + "class_size": 1, + "fields_count": 10, + "primitive_type": "Typedef", + "hash1": 1190760029, + "hash2": 2475062449, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheImageStreamingImageInfo", + "type_name_2": "GpuDataCacheImageStreamingImageInfo", + "qualified_name": "keen::ds::GpuDataCacheImageStreamingImageInfo", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 3594051165, + "hash2": 376443626, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 48 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 49 + }, + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 52 + }, + { + "name": "originalSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 68 + }, + { + "name": "mipTailStartLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 80 + }, + { + "name": "requiredLevel", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "currentLevel", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 88 + }, + { + "name": "sampledLevelsMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "state", + "type_name": "keen::ds::GpuImageStreamingDataLoadingState", + "type_hash": 1190760029, + "data_offset": 96 + }, + { + "name": "memoryRange", + "type_name": "keen::ds::GpuDataCacheMemoryRangeInfo", + "type_hash": 2802368425, + "data_offset": 104 + }, + { + "name": "loadingMemoryRange", + "type_name": "keen::ds::GpuDataCacheMemoryRangeInfo", + "type_hash": 2802368425, + "data_offset": 128 + }, + { + "name": "estimatedRequiredMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 152 + }, + { + "name": "actualRequiredMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ImageStreamingAlgorithm", + "type_name_2": "ImageStreamingAlgorithm", + "qualified_name": "keen::ds::ImageStreamingAlgorithm", + "referenced_type_name": "keen::ImageStreamingAlgorithm", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 975476345, + "hash2": 2198166554, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GpuDataCacheImageStreamingMemoryBlockInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GpuDataCacheImageStreamingMemoryBlockInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2577712687, + "hash2": 3262886723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GpuDataCacheImageStreamingImageInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GpuDataCacheImageStreamingImageInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 348444904, + "hash2": 2347527081, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheImageStreamingStateMessage", + "type_name_2": "GpuDataCacheImageStreamingStateMessage", + "qualified_name": "keen::ds::GpuDataCacheImageStreamingStateMessage", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1509830564, + "hash2": 1482349553, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ds::GpuDataCacheImageStreamingState", + "type_hash": 2749895589, + "data_offset": 0 + }, + { + "name": "isSamplerFeedbackResetEnabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "currentUploadBudget", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "uploadBudget", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + }, + { + "name": "algorithm", + "type_name": "keen::ds::ImageStreamingAlgorithm", + "type_hash": 975476345, + "data_offset": 24 + }, + { + "name": "memoryBlocks", + "type_name": "keen::DsArray", + "type_hash": 2577712687, + "data_offset": 32 + }, + { + "name": "totalMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 72 + }, + { + "name": "allocatedMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 80 + }, + { + "name": "loadingMemorySize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 88 + }, + { + "name": "images", + "type_name": "keen::DsArray", + "type_hash": 348444904, + "data_offset": 96 + }, + { + "name": "estimatedWorkingSetSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 136 + }, + { + "name": "actualWorkingSetSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheSetSamplerFeedbackResetMessage", + "type_name_2": "GpuDataCacheSetSamplerFeedbackResetMessage", + "qualified_name": "keen::ds::GpuDataCacheSetSamplerFeedbackResetMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3197748446, + "hash2": 3993343569, + "struct_fields": [ + { + "name": "enableReset", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheSetImageStreamingAlgorithmMessage", + "type_name_2": "GpuDataCacheSetImageStreamingAlgorithmMessage", + "qualified_name": "keen::ds::GpuDataCacheSetImageStreamingAlgorithmMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2569079510, + "hash2": 2703595515, + "struct_fields": [ + { + "name": "algorithm", + "type_name": "keen::ds::ImageStreamingAlgorithm", + "type_hash": 975476345, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDataCacheFlushImageStreamingMemoryMessage", + "type_name_2": "GpuDataCacheFlushImageStreamingMemoryMessage", + "qualified_name": "keen::ds::GpuDataCacheFlushImageStreamingMemoryMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3738474262, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuDebugRendererVertex", + "type_name_2": "GpuDebugRendererVertex", + "qualified_name": "keen::ds::GpuDebugRendererVertex", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 629299087, + "hash2": 3258325592, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDebugRendererContextCounter", + "type_name_2": "GpuDebugRendererContextCounter", + "qualified_name": "keen::ds::GpuDebugRendererContextCounter", + "referenced_type_name": "keen::GpuDebugRendererContextCounter", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 788550120, + "hash2": 150827053, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GpuDebugRendererContextState", + "type_name_2": "GpuDebugRendererContextState", + "qualified_name": "keen::ds::GpuDebugRendererContextState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3569665737, + "hash2": 1178608214, + "struct_fields": [ + { + "name": "lineCounterOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxLineCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDebugRendererDrawParameters", + "type_name_2": "GpuDebugRendererDrawParameters", + "qualified_name": "keen::ds::GpuDebugRendererDrawParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 364211987, + "hash2": 2689906614, + "struct_fields": [ + { + "name": "mvp", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuModel", + "type_name_2": "GpuModel", + "qualified_name": "keen::ds::GpuModel", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3381925364, + "hash2": 1527010183, + "struct_fields": [ + { + "name": "nodeModelIndex0", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "nodeModelIndex1", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "nodeModelIndex2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "nodeModelIndex3", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "nodeModelIndex4", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "nodeModelIndex5", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassMovementUpdateParameters", + "type_name_2": "GrassMovementUpdateParameters", + "qualified_name": "keen::ds::GrassMovementUpdateParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 564338691, + "hash2": 2656958080, + "struct_fields": [ + { + "name": "textureSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "lastTextureId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "bodyCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "size", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "oneOverSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "currentOrigin", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 32 + }, + { + "name": "historyStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "lastOrigin", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 64 + }, + { + "name": "deltaTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "oneOverTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GrassMovementBody", + "type_name_2": "GrassMovementBody", + "qualified_name": "keen::ds::GrassMovementBody", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1225963590, + "hash2": 978661522, + "struct_fields": [ + { + "name": "packedPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "outerRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "innerRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GridMaterial", + "type_name_2": "GridMaterial", + "qualified_name": "keen::ds::GridMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1718466298, + "hash2": 3678912779, + "struct_fields": [ + { + "name": "lineSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "axisSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "color0", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 8 + }, + { + "name": "color1", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GridRfxRenderMaterial", + "type_name_2": "GridRfxRenderMaterial", + "qualified_name": "keen::ds::GridRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 544750072, + "hash2": 2179633786, + "struct_fields": [ + { + "name": "axisSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "lineSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "color0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 8 + }, + { + "name": "color1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxGridMaterial", + "type_name_2": "VfxGridMaterial", + "qualified_name": "keen::ds::VfxGridMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3172158084, + "hash2": 3346988802, + "struct_fields": [ + { + "name": "cellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxGridRfxRenderMaterial", + "type_name_2": "VfxGridRfxRenderMaterial", + "qualified_name": "keen::ds::VfxGridRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1419746066, + "hash2": 3156328561, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "invCellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IblSourceType", + "type_name_2": "IblSourceType", + "qualified_name": "keen::ds::IblSourceType", + "referenced_type_name": "keen::IblSourceType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1607745849, + "hash2": 3013249687, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Ibl", + "type_name_2": "Ibl", + "qualified_name": "keen::ds::Ibl", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 936588852, + "hash2": 4047204548, + "struct_fields": [ + { + "name": "sourceType", + "type_name": "keen::ds::IblSourceType", + "type_hash": 1607745849, + "data_offset": 0 + }, + { + "name": "diffuseOutputSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "diffuseSampleCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "specularSampleCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "IblResource", + "type_name_2": "IblResource", + "qualified_name": "keen::ds::IblResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2427857480, + "hash2": 3996560409, + "struct_fields": [ + { + "name": "diffuseSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "diffuseData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "specularSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "specularLevelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 22 + }, + { + "name": "specularData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpecularIblLutResource", + "type_name_2": "SpecularIblLutResource", + "qualified_name": "keen::ds::SpecularIblLutResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2468157432, + "hash2": 3814926757, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CreateDispatchArgsShaderData", + "type_name_2": "CreateDispatchArgsShaderData", + "qualified_name": "keen::ds::CreateDispatchArgsShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2851859285, + "hash2": 2030578785, + "struct_fields": [ + { + "name": "targetThreadGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "targetBufferOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "threadCountOffsetX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "threadCountPerSourceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheFrustumTestShaderParameters", + "type_name_2": "LightCacheFrustumTestShaderParameters", + "qualified_name": "keen::ds::LightCacheFrustumTestShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 201771336, + "hash2": 3459694855, + "struct_fields": [ + { + "name": "cellCenter", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "cellSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheFrustumTestShaderResult", + "type_name_2": "LightCacheFrustumTestShaderResult", + "qualified_name": "keen::ds::LightCacheFrustumTestShaderResult", + "referenced_type_name": null, + "class_size": 148, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2521152765, + "hash2": 2307615910, + "struct_fields": [ + { + "name": "planes", + "type_name": "keen::StaticArray", + "type_hash": 3239752981, + "data_offset": 0 + }, + { + "name": "hits", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheCounters", + "type_name_2": "LightCacheCounters", + "qualified_name": "keen::ds::LightCacheCounters", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2935058604, + "hash2": 444423417, + "struct_fields": [ + { + "name": "allocationCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxAllocationCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "freeListIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "visibleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "deleteCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheAllocateGiProbeParameters", + "type_name_2": "LightCacheAllocateGiProbeParameters", + "qualified_name": "keen::ds::LightCacheAllocateGiProbeParameters", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 575061148, + "hash2": 1565494009, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 64 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 464 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 472 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 480 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 492 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 496 + }, + { + "name": "allocateDownsample", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 504 + }, + { + "name": "cascadeCellCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 508 + }, + { + "name": "mousePosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 512 + }, + { + "name": "showCascadeTransitions", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCachePrepareAllocateParameters", + "type_name_2": "LightCachePrepareAllocateParameters", + "qualified_name": "keen::ds::LightCachePrepareAllocateParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 15671751, + "hash2": 531060549, + "struct_fields": [ + { + "name": "maxEntryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCachePrepareEntriesParameters", + "type_name_2": "LightCachePrepareEntriesParameters", + "qualified_name": "keen::ds::LightCachePrepareEntriesParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2092309516, + "hash2": 1266970513, + "struct_fields": [ + { + "name": "entryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheRecycleEntriesParameters", + "type_name_2": "LightCacheRecycleEntriesParameters", + "qualified_name": "keen::ds::LightCacheRecycleEntriesParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3039062522, + "hash2": 277738265, + "struct_fields": [ + { + "name": "maxEntryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entryRecycleAgeScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheAllocateEntriesParameters", + "type_name_2": "LightCacheAllocateEntriesParameters", + "qualified_name": "keen::ds::LightCacheAllocateEntriesParameters", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2516470862, + "hash2": 2831998749, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 64 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 464 + }, + { + "name": "invScreenSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 472 + }, + { + "name": "allocateDownsample", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 480 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 484 + }, + { + "name": "cascadeCellCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 488 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheAllocateEntriesAtPositionsParameters", + "type_name_2": "LightCacheAllocateEntriesAtPositionsParameters", + "qualified_name": "keen::ds::LightCacheAllocateEntriesAtPositionsParameters", + "referenced_type_name": null, + "class_size": 832, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4142792853, + "hash2": 4294233407, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "primaryLightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 400 + }, + { + "name": "maxRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 800 + }, + { + "name": "useDirectionBuffer", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 804 + }, + { + "name": "usePrimaryCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 808 + }, + { + "name": "maxEntryCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 812 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 816 + }, + { + "name": "minCascade", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 828 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheScrollCascadesParameters", + "type_name_2": "LightCacheScrollCascadesParameters", + "qualified_name": "keen::ds::LightCacheScrollCascadesParameters", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1491191875, + "hash2": 4279630781, + "struct_fields": [ + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheDebugParameters", + "type_name_2": "LightCacheDebugParameters", + "qualified_name": "keen::ds::LightCacheDebugParameters", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3327498872, + "hash2": 2160992408, + "struct_fields": [ + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 0 + }, + { + "name": "screenSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 80 + }, + { + "name": "totalCellCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 480 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 484 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingIndirectCounter", + "type_name_2": "LightCacheLightCullingIndirectCounter", + "qualified_name": "keen::ds::LightCacheLightCullingIndirectCounter", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 129566941, + "hash2": 2008664474, + "struct_fields": [ + { + "name": "activeLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "lightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "lightCacheLightListOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "lightCacheEntryCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingUniformBuffer", + "type_name_2": "LightCacheLightCullingUniformBuffer", + "qualified_name": "keen::ds::LightCacheLightCullingUniformBuffer", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2830691677, + "hash2": 4260815130, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "lightCountOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "maxLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + }, + { + "name": "maxLightCacheEntries", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 408 + }, + { + "name": "lightCacheEntries", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 412 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingResultUniformBuffer", + "type_name_2": "LightCacheLightCullingResultUniformBuffer", + "qualified_name": "keen::ds::LightCacheLightCullingResultUniformBuffer", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2391849770, + "hash2": 1613610853, + "struct_fields": [ + { + "name": "lightCacheLookup", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 0 + }, + { + "name": "lightCacheDataEntryCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LightCacheLightCullingDebugParameters", + "type_name_2": "LightCacheLightCullingDebugParameters", + "qualified_name": "keen::ds::LightCacheLightCullingDebugParameters", + "referenced_type_name": null, + "class_size": 480, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 838876872, + "hash2": 2526359975, + "struct_fields": [ + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "invTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 72 + }, + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsQuality", + "type_name_2": "ManyLightsShadowsQuality", + "qualified_name": "keen::ds::ManyLightsShadowsQuality", + "referenced_type_name": "keen::ManyLightsShadowsQuality", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4179244715, + "hash2": 2307858232, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsQualitySettings", + "type_name_2": "ManyLightsShadowsQualitySettings", + "qualified_name": "keen::ds::ManyLightsShadowsQualitySettings", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2271660790, + "hash2": 2334427535, + "struct_fields": [ + { + "name": "atlasSizeX", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "atlasSizeY", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "shadowAtlasTextureSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "shadowMapBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "shadowMapNormalBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "gaussianScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "exponentialShadowConstantX", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "exponentialShadowConstantY", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "sdfBvhVariant", + "type_name": "keen::ds::SdfBvhVariant", + "type_hash": 1829189055, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsIndirectCounter", + "type_name_2": "ManyLightsShadowsIndirectCounter", + "qualified_name": "keen::ds::ManyLightsShadowsIndirectCounter", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2256513284, + "hash2": 2922802496, + "struct_fields": [ + { + "name": "activeLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "lightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsIndirectArgument", + "type_name_2": "ManyLightsShadowsIndirectArgument", + "qualified_name": "keen::ds::ManyLightsShadowsIndirectArgument", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2600050383, + "hash2": 1833531990, + "struct_fields": [ + { + "name": "updateShadowAtlas", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "updateLightCache", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + }, + { + "name": "activeLight32", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 24 + }, + { + "name": "atlasBorders", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsPackedSdfShaderData", + "type_name_2": "ManyLightsPackedSdfShaderData", + "qualified_name": "keen::ds::ManyLightsPackedSdfShaderData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1294633113, + "hash2": 3637071116, + "struct_fields": [ + { + "name": "sphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "modelPartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "instancePartIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsAtlasParameters", + "type_name_2": "ManyLightsShadowsAtlasParameters", + "qualified_name": "keen::ds::ManyLightsShadowsAtlasParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 237825073, + "hash2": 444606113, + "struct_fields": [ + { + "name": "atlasSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "atlasMaxEntries", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "atlasHashMapSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "atlasElementSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "atlasElementTexelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "atlasElementBorder", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "atlasExponentialShadowConstant", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "atlasExponentialShadowChebyshevConstants", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "atlasNormalBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "atlasShadowMapBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsUniformBuffer", + "type_name_2": "ManyLightsShadowsUniformBuffer", + "qualified_name": "keen::ds::ManyLightsShadowsUniformBuffer", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 2170677124, + "hash2": 425194601, + "struct_fields": [ + { + "name": "invViewProj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "bufferDimensions", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "invBufferDimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 120 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + }, + { + "name": "lightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 132 + }, + { + "name": "maxLightCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 136 + }, + { + "name": "gaussianBlurScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 140 + }, + { + "name": "enableOcclusionCulling", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 144 + }, + { + "name": "occlusionCulling", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 160 + }, + { + "name": "atlasParameters", + "type_name": "keen::ds::ManyLightsShadowsAtlasParameters", + "type_hash": 237825073, + "data_offset": 224 + }, + { + "name": "mousePosition", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 288 + }, + { + "name": "outputUseNDotL", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 296 + }, + { + "name": "outputDrawCellBoxes", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 300 + }, + { + "name": "outputShowLightPosition", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 304 + }, + { + "name": "showLighWithRealSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 308 + }, + { + "name": "sizeOfDebugSphere", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 312 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsShadowsResultUniformBuffer", + "type_name_2": "ManyLightsShadowsResultUniformBuffer", + "qualified_name": "keen::ds::ManyLightsShadowsResultUniformBuffer", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 214585303, + "hash2": 1291384743, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "atlasParameters", + "type_name": "keen::ds::ManyLightsShadowsAtlasParameters", + "type_hash": 237825073, + "data_offset": 16 + }, + { + "name": "showLightInfluence", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 80 + }, + { + "name": "useAtlasSampler", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 84 + }, + { + "name": "useAtlasBias", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ManyLightsGatherSdfShaderParameters", + "type_name_2": "ManyLightsGatherSdfShaderParameters", + "qualified_name": "keen::ds::ManyLightsGatherSdfShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2662685264, + "hash2": 2184176934, + "struct_fields": [ + { + "name": "sdfInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GaussianRootConstantData", + "type_name_2": "GaussianRootConstantData", + "qualified_name": "keen::ds::GaussianRootConstantData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1239680684, + "hash2": 2550149943, + "struct_fields": [ + { + "name": "blurVector", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Material", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1566001613, + "hash2": 1312659359, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MaterialReference", + "type_name_2": "MaterialReference", + "qualified_name": "keen::ds::MaterialReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2842651939, + "hash2": 346000348, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelType", + "type_name_2": "ModelType", + "qualified_name": "keen::ds::ModelType", + "referenced_type_name": "keen::ModelType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3896308036, + "hash2": 170176867, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelTangentSpaceType", + "type_name_2": "ModelTangentSpaceType", + "qualified_name": "keen::ds::ModelTangentSpaceType", + "referenced_type_name": "keen::ModelTangentSpaceType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1302421509, + "hash2": 2202325492, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelMaterialMapEntry", + "type_name_2": "ModelMaterialMapEntry", + "qualified_name": "keen::ds::ModelMaterialMapEntry", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4211363935, + "hash2": 3016373557, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "material", + "type_name": "keen::ds::MaterialReference", + "type_hash": 2842651939, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BlendShapeId", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3862406605, + "hash2": 278567051, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendShapeIdReference", + "type_name_2": "ModelBlendShapeIdReference", + "qualified_name": "keen::ds::ModelBlendShapeIdReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3141233546, + "hash2": 2427488378, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendShapeIdDirectory", + "type_name_2": "ModelBlendShapeIdDirectory", + "qualified_name": "keen::ds::ModelBlendShapeIdDirectory", + "referenced_type_name": "keen::ds::Folder", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3909928440, + "hash2": 1500671239, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendShapeMapEntry", + "type_name_2": "ModelBlendShapeMapEntry", + "qualified_name": "keen::ds::ModelBlendShapeMapEntry", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1914355046, + "hash2": 1694104603, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::ds::ModelBlendShapeIdReference", + "type_hash": 3141233546, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelConverterBlendShapeNames", + "type_name_2": "ModelConverterBlendShapeNames", + "qualified_name": "keen::ds::ModelConverterBlendShapeNames", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2206321948, + "hash2": 3692074117, + "struct_fields": [ + { + "name": "names", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 0 + }, + { + "name": "selection", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 40 + }, + { + "name": "ids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelLodGenerationParameters", + "type_name_2": "ModelLodGenerationParameters", + "qualified_name": "keen::ds::ModelLodGenerationParameters", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4201323581, + "hash2": 542026384, + "struct_fields": [ + { + "name": "maxLod", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "triangleReductionPerStep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "maxErrorPerStep", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelDisplacementOverrides", + "type_name_2": "ModelDisplacementOverrides", + "qualified_name": "keen::ds::ModelDisplacementOverrides", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3907059020, + "hash2": 1210846159, + "struct_fields": [ + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderSphere", + "type_name_2": "ModelClothColliderSphere", + "qualified_name": "keen::ds::ModelClothColliderSphere", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1072178273, + "hash2": 740503843, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderSphereInstance", + "type_name_2": "ModelClothColliderSphereInstance", + "qualified_name": "keen::ds::ModelClothColliderSphereInstance", + "referenced_type_name": "keen::ds::ModelClothColliderSphere", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3123052830, + "hash2": 2714709295, + "struct_fields": [ + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderCapsule", + "type_name_2": "ModelClothColliderCapsule", + "qualified_name": "keen::ds::ModelClothColliderCapsule", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2633938171, + "hash2": 4166096513, + "struct_fields": [ + { + "name": "sphere0", + "type_name": "keen::ds::ModelClothColliderSphere", + "type_hash": 1072178273, + "data_offset": 0 + }, + { + "name": "sphere1", + "type_name": "keen::ds::ModelClothColliderSphere", + "type_hash": 1072178273, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderCapsuleInstance", + "type_name_2": "ModelClothColliderCapsuleInstance", + "qualified_name": "keen::ds::ModelClothColliderCapsuleInstance", + "referenced_type_name": "keen::ds::ModelClothColliderCapsule", + "class_size": 36, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1918672072, + "hash2": 1408807163, + "struct_fields": [ + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClothCollider", + "type_name_2": "ClothCollider", + "qualified_name": "keen::ds::ClothCollider", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2269704273, + "hash2": 2256285785, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2934938658, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothSleeveCapsuleCollider", + "type_name_2": "ModelClothSleeveCapsuleCollider", + "qualified_name": "keen::ds::ModelClothSleeveCapsuleCollider", + "referenced_type_name": "keen::ds::ModelClothColliderCapsule", + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1360686667, + "hash2": 3785896522, + "struct_fields": [ + { + "name": "upperBoneName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 32 + }, + { + "name": "lowerBoneName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 72 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelChain", + "type_name_2": "ModelChain", + "qualified_name": "keen::ds::ModelChain", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 389318005, + "hash2": 185577698, + "struct_fields": [ + { + "name": "rootBoneName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "propagateRotation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "stiffnessFrequencey", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "motionConstraintRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "phasesStiffnessMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelChainBundle", + "type_name_2": "ModelChainBundle", + "qualified_name": "keen::ds::ModelChainBundle", + "referenced_type_name": "keen::ds::ModelChain", + "class_size": 104, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2745303605, + "hash2": 1226632000, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelModelChainBoneConstraintAxis", + "type_name_2": "ModelModelChainBoneConstraintAxis", + "qualified_name": "keen::ds::ModelModelChainBoneConstraintAxis", + "referenced_type_name": "keen::ModelModelChainBoneConstraintAxis", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 476564854, + "hash2": 2204902549, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ModelChainBoneConstraint", + "type_name_2": "ModelChainBoneConstraint", + "qualified_name": "keen::ds::ModelChainBoneConstraint", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1062424916, + "hash2": 3912703724, + "struct_fields": [ + { + "name": "boneName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "axis", + "type_name": "keen::ds::ModelModelChainBoneConstraintAxis", + "type_hash": 476564854, + "data_offset": 40 + }, + { + "name": "minAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "maxAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderBoneAttachment", + "type_name_2": "ModelClothColliderBoneAttachment", + "qualified_name": "keen::ds::ModelClothColliderBoneAttachment", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3740823903, + "hash2": 1215842349, + "struct_fields": [ + { + "name": "boneName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelMaterial", + "type_name_2": "ModelMaterial", + "qualified_name": "keen::ds::ModelMaterial", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2002394277, + "hash2": 3016373557, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "material", + "type_name": "keen::ds::MaterialReference", + "type_hash": 2842651939, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelBlendshape", + "type_name_2": "ModelBlendshape", + "qualified_name": "keen::ds::ModelBlendshape", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2130437192, + "hash2": 1694104603, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "id", + "type_name": "keen::ds::ModelBlendShapeIdReference", + "type_hash": 3141233546, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelClothColliderContainer", + "type_name_2": "ModelClothColliderContainer", + "qualified_name": "keen::ds::ModelClothColliderContainer", + "referenced_type_name": "keen::ds::Folder", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 467949075, + "hash2": 1500671239, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Model", + "type_name_2": "Model", + "qualified_name": "keen::ds::Model", + "referenced_type_name": "keen::ds::ModelBase", + "class_size": 184, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 2964579372, + "hash2": 2902284366, + "struct_fields": [ + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 2934938658, + "data_offset": 0 + }, + { + "name": "export_node", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 16 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "k3dScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "create_backfaces", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "support_raytracing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 65 + }, + { + "name": "raytrace_node_name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 72 + }, + { + "name": "rotateY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 112 + }, + { + "name": "lodValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "generatedLods", + "type_name": "keen::ds::ModelLodGenerationParameters", + "type_hash": 4201323581, + "data_offset": 120 + }, + { + "name": "ignoreClothCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "enableCardClusterLod", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 133 + }, + { + "name": "cardClusterVersion", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 136 + }, + { + "name": "enableGrassAnimation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 144 + }, + { + "name": "grassAnimation", + "type_name": "keen::ds::GrassAnimationModelParameters", + "type_hash": 1257499780, + "data_offset": 148 + }, + { + "name": "enableGrassPushback", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 156 + }, + { + "name": "grassPushback", + "type_name": "keen::ds::GrassPushbackModelParameters", + "type_hash": 1737634313, + "data_offset": 160 + }, + { + "name": "enableSdf", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CardClusterInfo", + "type_name_2": "CardClusterInfo", + "qualified_name": "keen::ds::CardClusterInfo", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1981324497, + "hash2": 971303469, + "struct_fields": [ + { + "name": "isValid", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 8 + }, + { + "name": "materialParamsMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 80 + }, + { + "name": "normalMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 152 + }, + { + "name": "opacityMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 224 + }, + { + "name": "texCoord0Delta", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 296 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 300 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 304 + }, + { + "name": "vertexBufferHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 308 + }, + { + "name": "indexBufferHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 324 + }, + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 352 + }, + { + "name": "boundingSphere", + "type_name": "keen::Sphere", + "type_hash": 934771011, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorGradient", + "type_name_2": "ColorGradient", + "qualified_name": "keen::ds::ColorGradient", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3331366010, + "hash2": 2406779250, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkMesh", + "type_name_2": "ShaderModelChunkMesh", + "qualified_name": "keen::ds::ShaderModelChunkMesh", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2136274705, + "hash2": 4099866363, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkPipelineIndex", + "type_name_2": "ShaderModelChunkPipelineIndex", + "qualified_name": "keen::ds::ShaderModelChunkPipelineIndex", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2076413918, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkPipelineIndex[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ShaderModelChunkPipelineIndex", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 942220009, + "hash2": 1842099781, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkModelMesh", + "type_name_2": "ShaderModelChunkModelMesh", + "qualified_name": "keen::ds::ShaderModelChunkModelMesh", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3907045168, + "hash2": 2513569540, + "struct_fields": [ + { + "name": "meshIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "pipelineIndices", + "type_name": "keen::StaticArray", + "type_hash": 942220009, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkModelMesh[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ShaderModelChunkModelMesh", + "class_size": 32, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 3941586578, + "hash2": 2105853023, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkModel", + "type_name_2": "ShaderModelChunkModel", + "qualified_name": "keen::ds::ShaderModelChunkModel", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1410584281, + "hash2": 2001676031, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "meshes", + "type_name": "keen::StaticArray", + "type_hash": 3941586578, + "data_offset": 16 + }, + { + "name": "meshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "modelSizeFeedbackIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkSubView", + "type_name_2": "ShaderModelChunkSubView", + "qualified_name": "keen::ds::ShaderModelChunkSubView", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2064770879, + "hash2": 1890543689, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "exclusionCircle", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "minObjectSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 32 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "cameraCenteredFrustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 96 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkPassConstants", + "type_name_2": "ShaderModelChunkPassConstants", + "qualified_name": "keen::ds::ShaderModelChunkPassConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2722988130, + "hash2": 2041163710, + "struct_fields": [ + { + "name": "subViewIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "passType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkSubView[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ShaderModelChunkSubView", + "class_size": 2304, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 1493340588, + "hash2": 2419393229, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ShaderModelChunkPassConstants[10]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ShaderModelChunkPassConstants", + "class_size": 160, + "fields_count": 10, + "primitive_type": "StaticArray", + "hash1": 3743171509, + "hash2": 1145123566, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkInstanceCullingShaderParameters", + "type_name_2": "ShaderModelChunkInstanceCullingShaderParameters", + "qualified_name": "keen::ds::ShaderModelChunkInstanceCullingShaderParameters", + "referenced_type_name": null, + "class_size": 2512, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2871118196, + "hash2": 613100274, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 1493340588, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 3743171509, + "data_offset": 2304 + }, + { + "name": "subViewCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2464 + }, + { + "name": "passCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2468 + }, + { + "name": "maxDrawCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2472 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2476 + }, + { + "name": "distanceCullingThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2480 + }, + { + "name": "distanceCullingJitterFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2484 + }, + { + "name": "modelSizeFeedbackPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2488 + }, + { + "name": "smallObjectCulling", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2492 + }, + { + "name": "writeForestFogFootprints", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 2496 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ModelChunkType", + "type_name_2": "ModelChunkType", + "qualified_name": "keen::ds::ModelChunkType", + "referenced_type_name": "keen::ModelChunkType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1266218841, + "hash2": 344996620, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunk", + "type_name_2": "ShaderModelChunk", + "qualified_name": "keen::ds::ShaderModelChunk", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2771321932, + "hash2": 2157416940, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "worldOrigin", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 16 + }, + { + "name": "extents", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "transform", + "type_name": "keen::ds::PackedShaderWorldTransform", + "type_hash": 2990168994, + "data_offset": 64 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + }, + { + "name": "type", + "type_name": "keen::ds::ModelChunkType", + "type_hash": 1266218841, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkInstance", + "type_name_2": "ShaderModelChunkInstance", + "qualified_name": "keen::ds::ShaderModelChunkInstance", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3632910871, + "hash2": 2887158582, + "struct_fields": [ + { + "name": "packedPosition", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "packedOrientation", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "packedScaleModelIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkCandidate", + "type_name_2": "ShaderModelChunkCandidate", + "qualified_name": "keen::ds::ShaderModelChunkCandidate", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4211966121, + "hash2": 2769926509, + "struct_fields": [ + { + "name": "chunkIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "visibilityMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkCullingShaderParameters", + "type_name_2": "ShaderModelChunkCullingShaderParameters", + "qualified_name": "keen::ds::ShaderModelChunkCullingShaderParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2139331501, + "hash2": 952506222, + "struct_fields": [ + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 64 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 80 + }, + { + "name": "candidateCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkInstanceCullingPushConstants", + "type_name_2": "ShaderModelChunkInstanceCullingPushConstants", + "qualified_name": "keen::ds::ShaderModelChunkInstanceCullingPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 857844626, + "hash2": 1577482229, + "struct_fields": [ + { + "name": "chunkCandidateIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkDrawData", + "type_name_2": "ShaderModelChunkDrawData", + "qualified_name": "keen::ds::ShaderModelChunkDrawData", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3771305230, + "hash2": 3523836623, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkDraw", + "type_name_2": "ShaderModelChunkDraw", + "qualified_name": "keen::ds::ShaderModelChunkDraw", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1947606702, + "hash2": 2975395562, + "struct_fields": [ + { + "name": "packedChunkIndexAndMeshCounterIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkRenderInstance", + "type_name_2": "ShaderModelChunkRenderInstance", + "qualified_name": "keen::ds::ShaderModelChunkRenderInstance", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2868896039, + "hash2": 3200752535, + "struct_fields": [ + { + "name": "cameraRelativePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkPushConstant", + "type_name_2": "ShaderModelChunkPushConstant", + "qualified_name": "keen::ds::ShaderModelChunkPushConstant", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2132175068, + "hash2": 437975118, + "struct_fields": [ + { + "name": "baseDrawIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "isRunningOnSteamDeck", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkWriteDrawCommandsPushConstants", + "type_name_2": "ShaderModelChunkWriteDrawCommandsPushConstants", + "qualified_name": "keen::ds::ShaderModelChunkWriteDrawCommandsPushConstants", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4001706244, + "hash2": 892390472, + "struct_fields": [ + { + "name": "batchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkWriteInstanceDataConstants", + "type_name_2": "ShaderModelChunkWriteInstanceDataConstants", + "qualified_name": "keen::ds::ShaderModelChunkWriteInstanceDataConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3039051125, + "hash2": 1114869811, + "struct_fields": [ + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderModelChunkBatchPrepareShaderParameters", + "type_name_2": "ShaderModelChunkBatchPrepareShaderParameters", + "qualified_name": "keen::ds::ShaderModelChunkBatchPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 780318842, + "hash2": 554516385, + "struct_fields": [ + { + "name": "groupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MotionVectorsShaderParameters", + "type_name_2": "MotionVectorsShaderParameters", + "qualified_name": "keen::ds::MotionVectorsShaderParameters", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3547522750, + "hash2": 1000938324, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "cancelJitter", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MotionVectorsDebugShaderParameters", + "type_name_2": "MotionVectorsDebugShaderParameters", + "qualified_name": "keen::ds::MotionVectorsDebugShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2733718635, + "hash2": 4067373474, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FFX_ParallelSortCB", + "type_name_2": "FFX_ParallelSortCB", + "qualified_name": "keen::ds::FFX_ParallelSortCB", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2629943672, + "hash2": 3133790439, + "struct_fields": [ + { + "name": "NumKeys", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "NumBlocksPerThreadGroup", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 4 + }, + { + "name": "NumThreadGroups", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "NumThreadGroupsWithAdditionalBlocks", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "NumReduceThreadgroupPerBin", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "NumScanValues", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "_pad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "_pad1", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "KEEN_VFX_ParallelSortData", + "type_name_2": "KEEN_VFX_ParallelSortData", + "qualified_name": "keen::ds::KEEN_VFX_ParallelSortData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1644268395, + "hash2": 2802858783, + "struct_fields": [ + { + "name": "highSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "lowSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "_pad", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FFX_SetupIndirectCB", + "type_name_2": "FFX_SetupIndirectCB", + "qualified_name": "keen::ds::FFX_SetupIndirectCB", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3057067596, + "hash2": 546788008, + "struct_fields": [ + { + "name": "NumKeysCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "MaxNumKeys", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "MaxThreadGroups", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FFX_RootConstantData", + "type_name_2": "FFX_RootConstantData", + "qualified_name": "keen::ds::FFX_RootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2890470882, + "hash2": 1057531081, + "struct_fields": [ + { + "name": "CShiftBit", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialScalarValue", + "type_name_2": "PbrMaterialScalarValue", + "qualified_name": "keen::ds::PbrMaterialScalarValue", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3745064989, + "hash2": 2392076681, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialColorValue", + "type_name_2": "PbrMaterialColorValue", + "qualified_name": "keen::ds::PbrMaterialColorValue", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2220544340, + "hash2": 3438252326, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + }, + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialParameters", + "type_name_2": "PbrMaterialParameters", + "qualified_name": "keen::ds::PbrMaterialParameters", + "referenced_type_name": null, + "class_size": 232, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 3141773996, + "hash2": 2850425443, + "struct_fields": [ + { + "name": "emissive", + "type_name": "keen::ds::PbrMaterialColorValue", + "type_hash": 2220544340, + "data_offset": 0 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "albedo", + "type_name": "keen::ds::PbrMaterialColorValue", + "type_hash": 2220544340, + "data_offset": 32 + }, + { + "name": "metallic", + "type_name": "keen::ds::PbrMaterialScalarValue", + "type_hash": 3745064989, + "data_offset": 52 + }, + { + "name": "roughness", + "type_name": "keen::ds::PbrMaterialScalarValue", + "type_hash": 3745064989, + "data_offset": 72 + }, + { + "name": "reflectance", + "type_name": "keen::ds::PbrMaterialScalarValue", + "type_hash": 3745064989, + "data_offset": 92 + }, + { + "name": "normal", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 112 + }, + { + "name": "height", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 128 + }, + { + "name": "ao", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 144 + }, + { + "name": "enableLavaShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 160 + }, + { + "name": "distortionMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 164 + }, + { + "name": "lightningMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 180 + }, + { + "name": "gradientMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 196 + }, + { + "name": "distortionMapScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 212 + }, + { + "name": "distortionMapSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "distortionMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "lightningMapScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "lightningMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 228 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VertexColorChannelRgb", + "type_name_2": "VertexColorChannelRgb", + "qualified_name": "keen::ds::VertexColorChannelRgb", + "referenced_type_name": "keen::VertexColorChannelRgb", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1856367054, + "hash2": 512191609, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialTintLayer", + "type_name_2": "PbrMaterialTintLayer", + "qualified_name": "keen::ds::PbrMaterialTintLayer", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2128856014, + "hash2": 779867265, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "maskMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSamplerAddressMode", + "type_name_2": "RenderSamplerAddressMode", + "qualified_name": "keen::ds::RenderSamplerAddressMode", + "referenced_type_name": "keen::RenderSamplerAddressMode", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 3326579752, + "hash2": 604276364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PbrMaterialTintLayer[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::PbrMaterialTintLayer", + "class_size": 60, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 2511462025, + "hash2": 65759929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialLayer", + "type_name_2": "PbrMaterialLayer", + "qualified_name": "keen::ds::PbrMaterialLayer", + "referenced_type_name": null, + "class_size": 268, + "fields_count": 24, + "primitive_type": "Struct", + "hash1": 1745988925, + "hash2": 3269487723, + "struct_fields": [ + { + "name": "emissiveMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 16 + }, + { + "name": "metallicMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 32 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 48 + }, + { + "name": "reflectanceMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 64 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 80 + }, + { + "name": "heightMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 96 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 112 + }, + { + "name": "opacityMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 128 + }, + { + "name": "albedoTint", + "type_name": "keen::StaticArray", + "type_hash": 2511462025, + "data_offset": 144 + }, + { + "name": "uvSet", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 204 + }, + { + "name": "uvScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 208 + }, + { + "name": "uvScalingYEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 212 + }, + { + "name": "uvScalingY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 216 + }, + { + "name": "addressModeU", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 220 + }, + { + "name": "addressModeV", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 221 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "enableAnisotropy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 228 + }, + { + "name": "anisotropicDirectionMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 232 + }, + { + "name": "anisotropy", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 248 + }, + { + "name": "maskAnisotropy", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 252 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 256 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 260 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 264 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialBlendMode", + "type_name_2": "PbrMaterialBlendMode", + "qualified_name": "keen::ds::PbrMaterialBlendMode", + "referenced_type_name": "keen::PbrMaterialBlendMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 649958204, + "hash2": 3838351672, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialBlendVertexValue", + "type_name_2": "PbrMaterialBlendVertexValue", + "qualified_name": "keen::ds::PbrMaterialBlendVertexValue", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1525815722, + "hash2": 2874412109, + "struct_fields": [ + { + "name": "blendLayer1Channel", + "type_name": "keen::ds::VertexColorChannel", + "type_hash": 968157863, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialBlendMap", + "type_name_2": "PbrMaterialBlendMap", + "qualified_name": "keen::ds::PbrMaterialBlendMap", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3968013091, + "hash2": 59607900, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "addressModeU", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 16 + }, + { + "name": "addressModeV", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 17 + }, + { + "name": "uvSet", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 18 + }, + { + "name": "uvScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "uvScalingYEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "uvScalingY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialOverlayNormalMap", + "type_name_2": "PbrMaterialOverlayNormalMap", + "qualified_name": "keen::ds::PbrMaterialOverlayNormalMap", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1121052683, + "hash2": 1751520689, + "struct_fields": [ + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 16 + }, + { + "name": "addressModeU", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 32 + }, + { + "name": "addressModeV", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 33 + }, + { + "name": "uvSet", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 34 + }, + { + "name": "uvScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "uvScalingYEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "uvScalingY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "useVertexColorChannelWeight", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "vertexColorChannel", + "type_name": "keen::ds::VertexColorChannel", + "type_hash": 968157863, + "data_offset": 49 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTranslucency", + "type_name_2": "PbrTranslucency", + "qualified_name": "keen::ds::PbrTranslucency", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3837060552, + "hash2": 4069132925, + "struct_fields": [ + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "thicknessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 20 + }, + { + "name": "viewDependency", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "wrapShadingStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PbrMaterialLayer[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PbrMaterialLayer", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4212103714, + "hash2": 3228414929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterial", + "type_name_2": "PbrMaterial", + "qualified_name": "keen::ds::PbrMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 248, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 2892514248, + "hash2": 3049997987, + "struct_fields": [ + { + "name": "blendLayers", + "type_name": "keen::DsArray", + "type_hash": 4212103714, + "data_offset": 0 + }, + { + "name": "blendMode", + "type_name": "keen::ds::PbrMaterialBlendMode", + "type_hash": 649958204, + "data_offset": 40 + }, + { + "name": "blendVertexVertexValue", + "type_name": "keen::ds::PbrMaterialBlendVertexValue", + "type_hash": 1525815722, + "data_offset": 41 + }, + { + "name": "blendMap", + "type_name": "keen::ds::PbrMaterialBlendMap", + "type_hash": 3968013091, + "data_offset": 44 + }, + { + "name": "overlayNormalLayer", + "type_name": "keen::ds::PbrMaterialOverlayNormalMap", + "type_hash": 1121052683, + "data_offset": 76 + }, + { + "name": "multiplyEmissiveByVertexColor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "multiplyEmissiveVertexColorChannel", + "type_name": "keen::ds::VertexColorChannelRgb", + "type_hash": 1856367054, + "data_offset": 129 + }, + { + "name": "multiplyAlbedoByVertexColor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 130 + }, + { + "name": "multiplyAlbedoVertexColorChannel", + "type_name": "keen::ds::VertexColorChannelRgb", + "type_hash": 1856367054, + "data_offset": 131 + }, + { + "name": "multiplyAoByVertexColorChannel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "multiplyAoVertexColorChannel", + "type_name": "keen::ds::VertexColorChannel", + "type_hash": 968157863, + "data_offset": 133 + }, + { + "name": "multiplyAlphaByVertexAlpha", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 134 + }, + { + "name": "translucency", + "type_name": "keen::ds::PbrTranslucency", + "type_hash": 3837060552, + "data_offset": 136 + }, + { + "name": "enableGiWrapShading", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 168 + }, + { + "name": "adjustGiNormals", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 169 + }, + { + "name": "enableGiSpecular", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 170 + }, + { + "name": "enableBackfaceCulling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 171 + }, + { + "name": "useFlippedBackfaceNormals", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 172 + }, + { + "name": "enableAlphaBlending", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 173 + }, + { + "name": "enableAlphaTest", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 174 + }, + { + "name": "enableShadowAlphaTest", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 175 + }, + { + "name": "enableHashedAlphaTest", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 176 + }, + { + "name": "disableFrostShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 177 + }, + { + "name": "disableSnowShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 178 + }, + { + "name": "disableWetnessShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 179 + }, + { + "name": "enableFrostShaderGlitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 180 + }, + { + "name": "enableGradientMapSupport", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 181 + }, + { + "name": "enableTessellation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 182 + }, + { + "name": "tessellationStartDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 184 + }, + { + "name": "tessellationSubdivisions", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "enableShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 200 + }, + { + "name": "enableContactShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 201 + }, + { + "name": "dissolve", + "type_name": "keen::ds::DissolveMaterialParameters", + "type_hash": 3672614081, + "data_offset": 204 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialEmissiveMapShaderData", + "type_name_2": "PbrMaterialEmissiveMapShaderData", + "qualified_name": "keen::ds::PbrMaterialEmissiveMapShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 868359394, + "hash2": 2076702463, + "struct_fields": [ + { + "name": "intensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "exposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "StreamedTexture2D_float[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::StreamedTexture2D_float", + "class_size": 12, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 3819376457, + "hash2": 924530970, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialTintShaderData", + "type_name_2": "PbrMaterialTintShaderData", + "qualified_name": "keen::ds::PbrMaterialTintShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2882050952, + "hash2": 3927551881, + "struct_fields": [ + { + "name": "enableLayerBitMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maskMaps", + "type_name": "keen::StaticArray", + "type_hash": 3819376457, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrMaterialDisplacementSettings", + "type_name_2": "PbrMaterialDisplacementSettings", + "qualified_name": "keen::ds::PbrMaterialDisplacementSettings", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 5165302, + "hash2": 4005432109, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialLayer", + "type_name_2": "PbrTerrainMaterialLayer", + "qualified_name": "keen::ds::PbrTerrainMaterialLayer", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1893786212, + "hash2": 2207531504, + "struct_fields": [ + { + "name": "albedoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "roughnessMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 16 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 32 + }, + { + "name": "heightMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 48 + }, + { + "name": "aoMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 64 + }, + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialBlendingSmoothness", + "type_name_2": "PbrTerrainMaterialBlendingSmoothness", + "qualified_name": "keen::ds::PbrTerrainMaterialBlendingSmoothness", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3462638763, + "hash2": 2545773952, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "smoothness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialCenterBlendingSmoothness", + "type_name_2": "PbrTerrainMaterialCenterBlendingSmoothness", + "qualified_name": "keen::ds::PbrTerrainMaterialCenterBlendingSmoothness", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1140376294, + "hash2": 2876104025, + "struct_fields": [ + { + "name": "smoothness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialDetailNormalBlendMode", + "type_name_2": "PbrTerrainMaterialDetailNormalBlendMode", + "qualified_name": "keen::ds::PbrTerrainMaterialDetailNormalBlendMode", + "referenced_type_name": "keen::PbrTerrainMaterialDetailNormalBlendMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3729352151, + "hash2": 964933973, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrTerrainMaterialDisplacementLayer", + "type_name_2": "PbrTerrainMaterialDisplacementLayer", + "qualified_name": "keen::ds::PbrTerrainMaterialDisplacementLayer", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1426256333, + "hash2": 1139230600, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "origin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingNoiseBlendRange", + "type_name_2": "PbrBuildingNoiseBlendRange", + "qualified_name": "keen::ds::PbrBuildingNoiseBlendRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2208643529, + "hash2": 1257767020, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingMaterialDisplacementLayer", + "type_name_2": "PbrBuildingMaterialDisplacementLayer", + "qualified_name": "keen::ds::PbrBuildingMaterialDisplacementLayer", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1875209204, + "hash2": 4005432109, + "struct_fields": [ + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingMaterial", + "type_name_2": "PbrBuildingMaterial", + "qualified_name": "keen::ds::PbrBuildingMaterial", + "referenced_type_name": null, + "class_size": 1412, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 901413912, + "hash2": 2550586047, + "struct_fields": [ + { + "name": "baseMaterialSide", + "type_name": "keen::ds::PbrMaterialLayer", + "type_hash": 1745988925, + "data_offset": 0 + }, + { + "name": "baseMaterialSideDisplacement", + "type_name": "keen::ds::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1875209204, + "data_offset": 268 + }, + { + "name": "baseMaterialTop", + "type_name": "keen::ds::PbrMaterialLayer", + "type_hash": 1745988925, + "data_offset": 276 + }, + { + "name": "baseMaterialTopDisplacement", + "type_name": "keen::ds::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1875209204, + "data_offset": 544 + }, + { + "name": "baseMaterialBottom", + "type_name": "keen::ds::PbrMaterialLayer", + "type_hash": 1745988925, + "data_offset": 552 + }, + { + "name": "baseMaterialBottomDisplacement", + "type_name": "keen::ds::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1875209204, + "data_offset": 820 + }, + { + "name": "edgeMaterial", + "type_name": "keen::ds::PbrMaterialLayer", + "type_hash": 1745988925, + "data_offset": 828 + }, + { + "name": "edgeMaterialDisplacement", + "type_name": "keen::ds::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1875209204, + "data_offset": 1096 + }, + { + "name": "edgeMaterialTopDisplacement", + "type_name": "keen::ds::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1875209204, + "data_offset": 1104 + }, + { + "name": "noiseMaterial", + "type_name": "keen::ds::PbrMaterialLayer", + "type_hash": 1745988925, + "data_offset": 1112 + }, + { + "name": "noiseMaterialDisplacement", + "type_name": "keen::ds::PbrBuildingMaterialDisplacementLayer", + "type_hash": 1875209204, + "data_offset": 1380 + }, + { + "name": "edgeBlendingCurve", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1388 + }, + { + "name": "noiseBlendRange", + "type_name": "keen::ds::PbrBuildingNoiseBlendRange", + "type_hash": 2208643529, + "data_offset": 1392 + }, + { + "name": "edgeOnlySide", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1400 + }, + { + "name": "bevelRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 1404 + }, + { + "name": "mapping", + "type_name": "keen::ds::BuildingMappingType", + "type_hash": 3356306951, + "data_offset": 1408 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerTop", + "type_name_2": "PbrBuildingDetailScatterLayerTop", + "qualified_name": "keen::ds::PbrBuildingDetailScatterLayerTop", + "referenced_type_name": "keen::ds::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1965277686, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerSide", + "type_name_2": "PbrBuildingDetailScatterLayerSide", + "qualified_name": "keen::ds::PbrBuildingDetailScatterLayerSide", + "referenced_type_name": "keen::ds::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2713689676, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerBottom", + "type_name_2": "PbrBuildingDetailScatterLayerBottom", + "qualified_name": "keen::ds::PbrBuildingDetailScatterLayerBottom", + "referenced_type_name": "keen::ds::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1625798152, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrBuildingDetailScatterLayerNoise", + "type_name_2": "PbrBuildingDetailScatterLayerNoise", + "qualified_name": "keen::ds::PbrBuildingDetailScatterLayerNoise", + "referenced_type_name": "keen::ds::DetailScatterLayer", + "class_size": 20, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1559424131, + "hash2": 1571851223, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrRfxRenderMaterialFlag", + "type_name_2": "PbrRfxRenderMaterialFlag", + "qualified_name": "keen::ds::PbrRfxRenderMaterialFlag", + "referenced_type_name": "keen::PbrRfxRenderMaterialFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 480939896, + "hash2": 1774100379, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrRfxRenderMaterialFlagMask", + "type_name_2": "PbrRfxRenderMaterialFlagMask", + "qualified_name": "keen::ds::PbrRfxRenderMaterialFlagMask", + "referenced_type_name": "keen::PbrRfxRenderMaterialFlagMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1213598000, + "hash2": 2012266584, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RfxSampler", + "type_name_2": "RfxSampler", + "qualified_name": "keen::ds::RfxSampler", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1533922667, + "hash2": 4041799859, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "StreamedTexture2D_float4[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::StreamedTexture2D_float4", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 1740401296, + "hash2": 2941702918, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "StreamedTexture2D_float[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::StreamedTexture2D_float", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 1638138892, + "hash2": 4078473079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "RfxSampler[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::RfxSampler", + "class_size": 8, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2479185875, + "hash2": 400738747, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PbrMaterialTintShaderData[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::PbrMaterialTintShaderData", + "class_size": 32, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 68077218, + "hash2": 1251333045, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "PbrMaterialEmissiveMapShaderData[2]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::PbrMaterialEmissiveMapShaderData", + "class_size": 16, + "fields_count": 2, + "primitive_type": "StaticArray", + "hash1": 2199286516, + "hash2": 3309515016, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PbrRfxRenderMaterial", + "type_name_2": "PbrRfxRenderMaterial", + "qualified_name": "keen::ds::PbrRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 244, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 4083525366, + "hash2": 991107181, + "struct_fields": [ + { + "name": "layerParameters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "blendMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 4 + }, + { + "name": "blendMapTexcoordScaling", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "albedoMap", + "type_name": "keen::StaticArray", + "type_hash": 1740401296, + "data_offset": 16 + }, + { + "name": "normalMap", + "type_name": "keen::StaticArray", + "type_hash": 1740401296, + "data_offset": 24 + }, + { + "name": "emissiveMap", + "type_name": "keen::StaticArray", + "type_hash": 1740401296, + "data_offset": 32 + }, + { + "name": "materialParamsMap", + "type_name": "keen::StaticArray", + "type_hash": 1740401296, + "data_offset": 40 + }, + { + "name": "heightMap", + "type_name": "keen::StaticArray", + "type_hash": 1638138892, + "data_offset": 48 + }, + { + "name": "layerSampler", + "type_name": "keen::StaticArray", + "type_hash": 2479185875, + "data_offset": 56 + }, + { + "name": "texCoordScaling", + "type_name": "keen::StaticArray", + "type_hash": 1641552836, + "data_offset": 64 + }, + { + "name": "anisotropyDirectionMap", + "type_name": "keen::StaticArray", + "type_hash": 1740401296, + "data_offset": 80 + }, + { + "name": "anisotropyStrength", + "type_name": "keen::StaticArray", + "type_hash": 1333710690, + "data_offset": 88 + }, + { + "name": "constantReflectance", + "type_name": "keen::StaticArray", + "type_hash": 1333710690, + "data_offset": 96 + }, + { + "name": "albedoTintShaderData", + "type_name": "keen::StaticArray", + "type_hash": 68077218, + "data_offset": 104 + }, + { + "name": "heightBlendingRange", + "type_name": "keen::StaticArray", + "type_hash": 1333710690, + "data_offset": 136 + }, + { + "name": "multiplyEmissiveVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "multiplyAlbedoVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 148 + }, + { + "name": "multiplyAoVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + }, + { + "name": "blendMapSampler", + "type_name": "keen::ds::RfxSampler", + "type_hash": 1533922667, + "data_offset": 156 + }, + { + "name": "translucencyStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 160 + }, + { + "name": "translucencyMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 164 + }, + { + "name": "emissiveMapShaderData", + "type_name": "keen::StaticArray", + "type_hash": 2199286516, + "data_offset": 168 + }, + { + "name": "overlayNormalMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 184 + }, + { + "name": "overlayAoMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 188 + }, + { + "name": "overlayNormalMapSampler", + "type_name": "keen::ds::RfxSampler", + "type_hash": 1533922667, + "data_offset": 192 + }, + { + "name": "overlayNormalMapVertexColorChannelSwizzle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 196 + }, + { + "name": "overlayNormalMapTexCoordScaling", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 200 + }, + { + "name": "dissolveEdgeGlowColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 208 + }, + { + "name": "dissolveEdgeGlowWidthInv", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "dissolveEdgeGlowParam", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 224 + }, + { + "name": "dissolveNoiseMap", + "type_name": "keen::ds::BindlessTexture3D_float", + "type_hash": 3605563570, + "data_offset": 228 + }, + { + "name": "dissolveNoiseTiling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 232 + }, + { + "name": "dissolveNoiseFadeRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 240 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "NightAdaptation", + "type_name_2": "post_processing.NightAdaptation", + "qualified_name": "keen::ds::post_processing::NightAdaptation", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3155114252, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteBalance", + "type_name_2": "post_processing.WhiteBalance", + "qualified_name": "keen::ds::post_processing::WhiteBalance", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3351314390, + "hash2": 865582363, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "temperature", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "tint", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ChannelMixer", + "type_name_2": "post_processing.ChannelMixer", + "qualified_name": "keen::ds::post_processing::ChannelMixer", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 75387145, + "hash2": 3433578308, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "r", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + }, + { + "name": "g", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 20 + }, + { + "name": "b", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeightedColor", + "type_name_2": "post_processing.WeightedColor", + "qualified_name": "keen::ds::post_processing::WeightedColor", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2435333811, + "hash2": 1142735604, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TonalColors", + "type_name_2": "post_processing.TonalColors", + "qualified_name": "keen::ds::post_processing::TonalColors", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 710849295, + "hash2": 900675206, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "shadows", + "type_name": "keen::ds::post_processing::WeightedColor", + "type_hash": 2435333811, + "data_offset": 4 + }, + { + "name": "midtones", + "type_name": "keen::ds::post_processing::WeightedColor", + "type_hash": 2435333811, + "data_offset": 24 + }, + { + "name": "highlights", + "type_name": "keen::ds::post_processing::WeightedColor", + "type_hash": 2435333811, + "data_offset": 44 + }, + { + "name": "shadowStart", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 64 + }, + { + "name": "midStart", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + }, + { + "name": "midEnd", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 72 + }, + { + "name": "highlightEnd", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorChannelWeights", + "type_name_2": "post_processing.ColorChannelWeights", + "qualified_name": "keen::ds::post_processing::ColorChannelWeights", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1989244496, + "hash2": 3649230166, + "struct_fields": [ + { + "name": "red", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "green", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "blue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SlopeOffsetColor", + "type_name_2": "post_processing.SlopeOffsetColor", + "qualified_name": "keen::ds::post_processing::SlopeOffsetColor", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2250040142, + "hash2": 1492077054, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "slope", + "type_name": "keen::ds::post_processing::ColorChannelWeights", + "type_hash": 1989244496, + "data_offset": 4 + }, + { + "name": "offset", + "type_name": "keen::ds::post_processing::ColorChannelWeights", + "type_hash": 1989244496, + "data_offset": 16 + }, + { + "name": "power", + "type_name": "keen::ds::post_processing::ColorChannelWeights", + "type_hash": 1989244496, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Contrast", + "type_name_2": "post_processing.Contrast", + "qualified_name": "keen::ds::post_processing::Contrast", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2119964191, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Vibrance", + "type_name_2": "post_processing.Vibrance", + "qualified_name": "keen::ds::post_processing::Vibrance", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 140709483, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Saturation", + "type_name_2": "post_processing.Saturation", + "qualified_name": "keen::ds::post_processing::Saturation", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1045637629, + "hash2": 1467391449, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Curves", + "type_name_2": "post_processing.Curves", + "qualified_name": "keen::ds::post_processing::Curves", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 778596713, + "hash2": 1846705202, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "shadowGamma", + "type_name": "keen::ds::post_processing::ColorChannelWeights", + "type_hash": 1989244496, + "data_offset": 4 + }, + { + "name": "midpoint", + "type_name": "keen::ds::post_processing::ColorChannelWeights", + "type_hash": 1989244496, + "data_offset": 16 + }, + { + "name": "highlightScale", + "type_name": "keen::ds::post_processing::ColorChannelWeights", + "type_hash": 1989244496, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorFilter", + "type_name_2": "post_processing.ColorFilter", + "qualified_name": "keen::ds::post_processing::ColorFilter", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1857265782, + "hash2": 863628346, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ColorGrading", + "type_name_2": "post_processing.ColorGrading", + "qualified_name": "keen::ds::post_processing::ColorGrading", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 3347460268, + "hash2": 2551274583, + "struct_fields": [ + { + "name": "nightAdaptation", + "type_name": "keen::ds::post_processing::NightAdaptation", + "type_hash": 3155114252, + "data_offset": 0 + }, + { + "name": "whiteBalance", + "type_name": "keen::ds::post_processing::WhiteBalance", + "type_hash": 3351314390, + "data_offset": 8 + }, + { + "name": "channelMixer", + "type_name": "keen::ds::post_processing::ChannelMixer", + "type_hash": 75387145, + "data_offset": 20 + }, + { + "name": "tonalColors", + "type_name": "keen::ds::post_processing::TonalColors", + "type_hash": 710849295, + "data_offset": 72 + }, + { + "name": "slopeOffsetColor", + "type_name": "keen::ds::post_processing::SlopeOffsetColor", + "type_hash": 2250040142, + "data_offset": 152 + }, + { + "name": "contrast", + "type_name": "keen::ds::post_processing::Contrast", + "type_hash": 2119964191, + "data_offset": 192 + }, + { + "name": "vibrance", + "type_name": "keen::ds::post_processing::Vibrance", + "type_hash": 140709483, + "data_offset": 200 + }, + { + "name": "saturation", + "type_name": "keen::ds::post_processing::Saturation", + "type_hash": 1045637629, + "data_offset": 208 + }, + { + "name": "curves", + "type_name": "keen::ds::post_processing::Curves", + "type_hash": 778596713, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingParameters", + "type_name_2": "PostProcessingParameters", + "qualified_name": "keen::ds::PostProcessingParameters", + "referenced_type_name": null, + "class_size": 276, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2289366162, + "hash2": 4108371843, + "struct_fields": [ + { + "name": "colorFilter", + "type_name": "keen::ds::post_processing::ColorFilter", + "type_hash": 1857265782, + "data_offset": 0 + }, + { + "name": "colorGrading", + "type_name": "keen::ds::post_processing::ColorGrading", + "type_hash": 3347460268, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TonemappingConstants", + "type_name_2": "TonemappingConstants", + "qualified_name": "keen::ds::TonemappingConstants", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 367156664, + "hash2": 1515625131, + "struct_fields": [ + { + "name": "curve", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "crosstalkPreSaturation", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "hdrMax", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "crosstalk", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "crosstalkPostSaturation", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingCompositeFlag", + "type_name_2": "PostProcessingCompositeFlag", + "qualified_name": "keen::ds::PostProcessingCompositeFlag", + "referenced_type_name": "keen::PostProcessingCompositeFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1217249683, + "hash2": 713700321, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingCompositeFlags", + "type_name_2": "PostProcessingCompositeFlags", + "qualified_name": "keen::ds::PostProcessingCompositeFlags", + "referenced_type_name": "keen::PostProcessingCompositeFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 388510624, + "hash2": 3910559198, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingCompositeConstants", + "type_name_2": "PostProcessingCompositeConstants", + "qualified_name": "keen::ds::PostProcessingCompositeConstants", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1827427526, + "hash2": 4169911743, + "struct_fields": [ + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "colorFilter", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "bloomStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "temporalNoise", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "lutOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "lutScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "vignetteColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + }, + { + "name": "flashColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 80 + }, + { + "name": "toneMapping", + "type_name": "keen::ds::TonemappingConstants", + "type_hash": 367156664, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingHistogramConstants", + "type_name_2": "PostProcessingHistogramConstants", + "qualified_name": "keen::ds::PostProcessingHistogramConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 259994925, + "hash2": 3519184589, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "inverseExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "useSceneBrightness", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PostProcessingHistogramResult", + "type_name_2": "PostProcessingHistogramResult", + "qualified_name": "keen::ds::PostProcessingHistogramResult", + "referenced_type_name": null, + "class_size": 1024, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2840319697, + "hash2": 3473794760, + "struct_fields": [ + { + "name": "pixelCount", + "type_name": "keen::StaticArray", + "type_hash": 1080334938, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneHistogramShaderParameters", + "type_name_2": "SceneHistogramShaderParameters", + "qualified_name": "keen::ds::SceneHistogramShaderParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4044670160, + "hash2": 897916377, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BloomConstants", + "type_name_2": "BloomConstants", + "qualified_name": "keen::ds::BloomConstants", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3510279719, + "hash2": 2686230225, + "struct_fields": [ + { + "name": "halfPixelSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "applyBilateralGrid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "bilateralGridDetail", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "thresholdLow", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "thresholdHigh", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "fogContribution", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "compression", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClearBilateralGridConstants", + "type_name_2": "ClearBilateralGridConstants", + "qualified_name": "keen::ds::ClearBilateralGridConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3584966969, + "hash2": 407613826, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FillBilateralGridConstants", + "type_name_2": "FillBilateralGridConstants", + "qualified_name": "keen::ds::FillBilateralGridConstants", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3942059607, + "hash2": 373119869, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "oneOverSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "inverseExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CopyResultBilateralGridConstants", + "type_name_2": "CopyResultBilateralGridConstants", + "qualified_name": "keen::ds::CopyResultBilateralGridConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1501327250, + "hash2": 407613826, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlurBilateralGridConstants", + "type_name_2": "BlurBilateralGridConstants", + "qualified_name": "keen::ds::BlurBilateralGridConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1185146643, + "hash2": 1816692165, + "struct_fields": [ + { + "name": "gridSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oneOverGridSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyBilateralGridConstants", + "type_name_2": "ApplyBilateralGridConstants", + "qualified_name": "keen::ds::ApplyBilateralGridConstants", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2800877300, + "hash2": 3819249918, + "struct_fields": [ + { + "name": "oneOverGridSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "inverseExposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "midPointLogLuminance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "highlightContrastFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "shadowContrastFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "detailFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefixSumPrepareConstants", + "type_name_2": "PrefixSumPrepareConstants", + "qualified_name": "keen::ds::PrefixSumPrepareConstants", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1760588722, + "hash2": 2867369277, + "struct_fields": [ + { + "name": "maxElementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "counterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SmallPrefixSumShaderParameters", + "type_name_2": "SmallPrefixSumShaderParameters", + "qualified_name": "keen::ds::SmallPrefixSumShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3232010260, + "hash2": 1563141909, + "struct_fields": [ + { + "name": "elementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShaderVertexAttribute", + "type_name_2": "RenderShaderVertexAttribute", + "qualified_name": "keen::ds::RenderShaderVertexAttribute", + "referenced_type_name": null, + "class_size": 2, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 757680108, + "hash2": 3588023354, + "struct_fields": [ + { + "name": "location", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "format", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderVertexFormat", + "type_name_2": "RenderVertexFormat", + "qualified_name": "keen::ds::RenderVertexFormat", + "referenced_type_name": "keen::RenderVertexFormat", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1422336098, + "hash2": 1586395552, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TextureAlphaMode", + "type_name_2": "TextureAlphaMode", + "qualified_name": "keen::ds::TextureAlphaMode", + "referenced_type_name": "keen::TextureAlphaMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2519646685, + "hash2": 3351663417, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TextureContentType", + "type_name_2": "TextureContentType", + "qualified_name": "keen::ds::TextureContentType", + "referenced_type_name": "keen::TextureContentType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4032216151, + "hash2": 1928039817, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TextureConverterFlag", + "type_name_2": "TextureConverterFlag", + "qualified_name": "keen::ds::TextureConverterFlag", + "referenced_type_name": "keen::TextureConverterFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3261686752, + "hash2": 2187123986, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TextureConverterFlags", + "type_name_2": "TextureConverterFlags", + "qualified_name": "keen::ds::TextureConverterFlags", + "referenced_type_name": "keen::TextureConverterFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2665988201, + "hash2": 1671747952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderTextureChannelData", + "type_name_2": "RenderTextureChannelData", + "qualified_name": "keen::ds::RenderTextureChannelData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1924089525, + "hash2": 170105700, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "sourceChannel", + "type_name": "keen::ds::TextureChannel", + "type_hash": 1499186233, + "data_offset": 16 + }, + { + "name": "roughnessNormalMapImage", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 20 + }, + { + "name": "clampRoughnessNormalU", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "clampRoughnessNormalV", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "targetChannel", + "type_name": "keen::ds::TextureChannel", + "type_hash": 1499186233, + "data_offset": 38 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureSamplingInfo", + "type_name_2": "RenderMaterialTextureSamplingInfo", + "qualified_name": "keen::ds::RenderMaterialTextureSamplingInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3508343876, + "hash2": 3323061039, + "struct_fields": [ + { + "name": "vertexAttributeId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "scaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderTextureChannelData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderTextureChannelData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2834619962, + "hash2": 2622914468, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureElement", + "type_name_2": "RenderMaterialTextureElement", + "qualified_name": "keen::ds::RenderMaterialTextureElement", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4281460383, + "hash2": 2413607486, + "struct_fields": [ + { + "name": "textureChannels", + "type_name": "keen::DsArray", + "type_hash": 2834619962, + "data_offset": 0 + }, + { + "name": "samplingInfo", + "type_name": "keen::ds::RenderMaterialTextureSamplingInfo", + "type_hash": 3508343876, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMaterialTextureElement[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMaterialTextureElement", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 320414508, + "hash2": 2720577311, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureData", + "type_name_2": "RenderMaterialTextureData", + "qualified_name": "keen::ds::RenderMaterialTextureData", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 973626765, + "hash2": 3937562036, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "textureType", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 4 + }, + { + "name": "pixelFormat", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 5 + }, + { + "name": "alphaMode", + "type_name": "keen::ds::TextureAlphaMode", + "type_hash": 2519646685, + "data_offset": 6 + }, + { + "name": "textureElements", + "type_name": "keen::DsArray", + "type_hash": 320414508, + "data_offset": 8 + }, + { + "name": "contentType", + "type_name": "keen::ds::TextureContentType", + "type_hash": 4032216151, + "data_offset": 48 + }, + { + "name": "convertFlags", + "type_name": "keen::ds::TextureConverterFlags", + "type_hash": 2665988201, + "data_offset": 52 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSamplerFilterMode", + "type_name_2": "RenderSamplerFilterMode", + "qualified_name": "keen::ds::RenderSamplerFilterMode", + "referenced_type_name": "keen::RenderSamplerFilterMode", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 1579469292, + "hash2": 3620113230, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderComparisonFunction", + "type_name_2": "RenderComparisonFunction", + "qualified_name": "keen::ds::RenderComparisonFunction", + "referenced_type_name": "keen::RenderComparisonFunction", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Typedef", + "hash1": 3026950198, + "hash2": 4213541594, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialSamplerData", + "type_name_2": "RenderMaterialSamplerData", + "qualified_name": "keen::ds::RenderMaterialSamplerData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4084300486, + "hash2": 2739927551, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "addressModeU", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 4 + }, + { + "name": "addressModeV", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 5 + }, + { + "name": "addressModeW", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 6 + }, + { + "name": "minFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 7 + }, + { + "name": "magFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 8 + }, + { + "name": "mipFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 9 + }, + { + "name": "comparisonFunction", + "type_name": "keen::ds::RenderComparisonFunction", + "type_hash": 3026950198, + "data_offset": 10 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderEffectId", + "type_name_2": "RenderEffectId", + "qualified_name": "keen::ds::RenderEffectId", + "referenced_type_name": "keen::RenderEffectId", + "class_size": 1, + "fields_count": 13, + "primitive_type": "Typedef", + "hash1": 1304939227, + "hash2": 2097279993, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialFlagMask", + "type_name_2": "RenderMaterialFlagMask", + "qualified_name": "keen::ds::RenderMaterialFlagMask", + "referenced_type_name": "keen::RenderMaterialFlagMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 707900884, + "hash2": 847325247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMaterialTextureData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMaterialTextureData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3449978980, + "hash2": 2341655300, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMaterialSamplerData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMaterialSamplerData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1506955005, + "hash2": 1439111390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialConverterData", + "type_name_2": "RenderMaterialConverterData", + "qualified_name": "keen::ds::RenderMaterialConverterData", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2002443266, + "hash2": 3210016655, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "description", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 16 + }, + { + "name": "effectId", + "type_name": "keen::ds::RenderEffectId", + "type_hash": 1304939227, + "data_offset": 56 + }, + { + "name": "flags", + "type_name": "keen::ds::RenderMaterialFlagMask", + "type_hash": 707900884, + "data_offset": 57 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 64 + }, + { + "name": "dataTypeSignature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 104 + }, + { + "name": "textures", + "type_name": "keen::DsArray", + "type_hash": 3449978980, + "data_offset": 112 + }, + { + "name": "samplers", + "type_name": "keen::DsArray", + "type_hash": 1506955005, + "data_offset": 152 + }, + { + "name": "vertexFormat", + "type_name": "keen::ds::RenderVertexFormat", + "type_hash": 1422336098, + "data_offset": 192 + }, + { + "name": "instanceDataTypeNameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 196 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorObjectType", + "type_name_2": "RenderMemoryAllocatorObjectType", + "qualified_name": "keen::ds::RenderMemoryAllocatorObjectType", + "referenced_type_name": "keen::RenderMemoryAllocatorObjectType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2363991454, + "hash2": 2430139226, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorObjectState", + "type_name_2": "RenderMemoryAllocatorObjectState", + "qualified_name": "keen::ds::RenderMemoryAllocatorObjectState", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1006607075, + "hash2": 4091513187, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::RenderMemoryAllocatorObjectType", + "type_hash": 2363991454, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "allocationRegionHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "allocationMemoryType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "allocationBlockHandle", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 56 + }, + { + "name": "allocationOffset", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 64 + }, + { + "name": "allocationSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMemoryAllocatorObjectState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMemoryAllocatorObjectState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 285307128, + "hash2": 2845544734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorAllocationState", + "type_name_2": "RenderMemoryAllocatorAllocationState", + "qualified_name": "keen::ds::RenderMemoryAllocatorAllocationState", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3308153156, + "hash2": 1112775278, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "objects", + "type_name": "keen::DsArray", + "type_hash": 285307128, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorBlockState", + "type_name_2": "RenderMemoryAllocatorBlockState", + "qualified_name": "keen::ds::RenderMemoryAllocatorBlockState", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3862009963, + "hash2": 454818765, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "sizeInBytes", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 8 + }, + { + "name": "refCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMemoryAllocatorBlockState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMemoryAllocatorBlockState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1565351902, + "hash2": 2835989230, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorRegionMemoryTypeState", + "type_name_2": "RenderMemoryAllocatorRegionMemoryTypeState", + "qualified_name": "keen::ds::RenderMemoryAllocatorRegionMemoryTypeState", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1102350087, + "hash2": 1007636918, + "struct_fields": [ + { + "name": "memoryType", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "graphicsDeviceMemoryTypeIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4 + }, + { + "name": "isMapped", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "blocks", + "type_name": "keen::DsArray", + "type_hash": 1565351902, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMemoryAllocatorRegionMemoryTypeState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMemoryAllocatorRegionMemoryTypeState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3414035384, + "hash2": 4118705553, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorRegionState", + "type_name_2": "RenderMemoryAllocatorRegionState", + "qualified_name": "keen::ds::RenderMemoryAllocatorRegionState", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3342753626, + "hash2": 507461260, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "priority", + "type_name": "keen::GraphicsDeviceMemoryPriority", + "type_hash": 2961279078, + "data_offset": 48 + }, + { + "name": "chunkSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 56 + }, + { + "name": "memoryTypes", + "type_name": "keen::DsArray", + "type_hash": 3414035384, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMemoryAllocatorAllocationState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMemoryAllocatorAllocationState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1372634109, + "hash2": 1325267166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMemoryAllocatorRegionState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMemoryAllocatorRegionState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1926020507, + "hash2": 133502546, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMemoryAllocatorState", + "type_name_2": "RenderMemoryAllocatorState", + "qualified_name": "keen::ds::RenderMemoryAllocatorState", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2819881586, + "hash2": 1011420778, + "struct_fields": [ + { + "name": "allocations", + "type_name": "keen::DsArray", + "type_hash": 1372634109, + "data_offset": 0 + }, + { + "name": "regions", + "type_name": "keen::DsArray", + "type_hash": 1926020507, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WorldMaterialBlending2Resource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1986912608, + "hash2": 451901793, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BuildingMaterialBlendingResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2638023394, + "hash2": 2377691087, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GiVoxelBuildingMaterialResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3264607085, + "hash2": 3676758805, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DetailScatterResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1909052785, + "hash2": 3538001507, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::AnalyticFogResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 597307665, + "hash2": 483046545, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VolumetricFog2Resource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3933589376, + "hash2": 3913184140, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 803244639, + "hash2": 1439572916, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderResources", + "type_name_2": "RenderResources", + "qualified_name": "keen::ds::RenderResources", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2795462100, + "hash2": 887943951, + "struct_fields": [ + { + "name": "renderSystem", + "type_name": "keen::ObjectReference", + "type_hash": 2159092373, + "data_offset": 0 + }, + { + "name": "worldMaterialBlending2", + "type_name": "keen::ObjectReference", + "type_hash": 1986912608, + "data_offset": 16 + }, + { + "name": "buildingMaterialBlending", + "type_name": "keen::ObjectReference", + "type_hash": 2638023394, + "data_offset": 32 + }, + { + "name": "giVoxelBuildingMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 3264607085, + "data_offset": 48 + }, + { + "name": "worldDetailScatter", + "type_name": "keen::ObjectReference", + "type_hash": 1909052785, + "data_offset": 64 + }, + { + "name": "buildingDetailScatter", + "type_name": "keen::ObjectReference", + "type_hash": 1909052785, + "data_offset": 80 + }, + { + "name": "analyticFog", + "type_name": "keen::ObjectReference", + "type_hash": 597307665, + "data_offset": 96 + }, + { + "name": "volumetricFog2", + "type_name": "keen::ObjectReference", + "type_hash": 3933589376, + "data_offset": 112 + }, + { + "name": "volumetricFogGridParameters", + "type_name": "keen::ObjectReference", + "type_hash": 2514016430, + "data_offset": 128 + }, + { + "name": "gpcResources", + "type_name": "keen::DsArray>", + "type_hash": 803244639, + "data_offset": 144 + }, + { + "name": "colorPaletteCollection", + "type_name": "keen::ObjectReference", + "type_hash": 1125136640, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderModel", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 503489377, + "hash2": 315948306, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureModel", + "type_name_2": "RenderSceneCaptureModel", + "qualified_name": "keen::ds::RenderSceneCaptureModel", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1799961906, + "hash2": 3772882771, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "modelResource", + "type_name": "keen::ObjectReference", + "type_hash": 503489377, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderLightType", + "type_name_2": "RenderLightType", + "qualified_name": "keen::ds::RenderLightType", + "referenced_type_name": "keen::RenderLightType", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Typedef", + "hash1": 1606191973, + "hash2": 587423396, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderLight", + "type_name_2": "RenderLight", + "qualified_name": "keen::ds::RenderLight", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2240428877, + "hash2": 1250244454, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::RenderLightType", + "type_hash": 1606191973, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + }, + { + "name": "castShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureLight", + "type_name_2": "RenderSceneCaptureLight", + "qualified_name": "keen::ds::RenderSceneCaptureLight", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 136146663, + "hash2": 3210857126, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "light", + "type_name": "keen::ds::RenderLight", + "type_hash": 2240428877, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureVfxInstance", + "type_name_2": "RenderSceneCaptureVfxInstance", + "qualified_name": "keen::ds::RenderSceneCaptureVfxInstance", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1772519300, + "hash2": 2775587425, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "vfxResource", + "type_name": "keen::ObjectReference", + "type_hash": 1469622978, + "data_offset": 56 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 72 + }, + { + "name": "param0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 88 + }, + { + "name": "param1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 104 + }, + { + "name": "param2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 120 + }, + { + "name": "param3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 136 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 152 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 160 + }, + { + "name": "killWhenCulled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 161 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCaptureChunk", + "type_name_2": "RenderSceneCaptureChunk", + "qualified_name": "keen::ds::RenderSceneCaptureChunk", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1944340890, + "hash2": 4261998147, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "voxelData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderSceneCaptureModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderSceneCaptureModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1534211461, + "hash2": 769101151, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderSceneCaptureLight[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderSceneCaptureLight", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4240664778, + "hash2": 2807039040, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderSceneCaptureVfxInstance[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderSceneCaptureVfxInstance", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1963790335, + "hash2": 449679072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSceneCapture", + "type_name_2": "RenderSceneCapture", + "qualified_name": "keen::ds::RenderSceneCapture", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2001247645, + "hash2": 679613944, + "struct_fields": [ + { + "name": "captureViewTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 1534211461, + "data_offset": 56 + }, + { + "name": "lights", + "type_name": "keen::DsArray", + "type_hash": 4240664778, + "data_offset": 96 + }, + { + "name": "vfxInstances", + "type_name": "keen::DsArray", + "type_hash": 1963790335, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderAntiAliasingSettingsValidMask", + "type_name_2": "RenderAntiAliasingSettingsValidMask", + "qualified_name": "keen::ds::RenderAntiAliasingSettingsValidMask", + "referenced_type_name": "keen::RenderAntiAliasingSettingsValidMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1220358436, + "hash2": 2305040306, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderTextureQualitySettingsValidMask", + "type_name_2": "RenderTextureQualitySettingsValidMask", + "qualified_name": "keen::ds::RenderTextureQualitySettingsValidMask", + "referenced_type_name": "keen::RenderTextureQualitySettingsValidMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2772168420, + "hash2": 1719996812, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsFeatures", + "type_name_2": "RenderSettingsFeatures", + "qualified_name": "keen::ds::RenderSettingsFeatures", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1372139225, + "hash2": 626297340, + "struct_fields": [ + { + "name": "antialiasingValidMask", + "type_name": "keen::ds::RenderAntiAliasingSettingsValidMask", + "type_hash": 1220358436, + "data_offset": 0 + }, + { + "name": "textureQualityValidMask", + "type_name": "keen::ds::RenderTextureQualitySettingsValidMask", + "type_hash": 2772168420, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsPreset", + "type_name_2": "RenderSettingsPreset", + "qualified_name": "keen::ds::RenderSettingsPreset", + "referenced_type_name": "keen::RenderSettingsPreset", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 1216170941, + "hash2": 884442493, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderAntiAliasingSetting", + "type_name_2": "RenderAntiAliasingSetting", + "qualified_name": "keen::ds::RenderAntiAliasingSetting", + "referenced_type_name": "keen::RenderAntiAliasingSetting", + "class_size": 4, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 2751370709, + "hash2": 3029849890, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderFsr2PresetSetting", + "type_name_2": "RenderFsr2PresetSetting", + "qualified_name": "keen::ds::RenderFsr2PresetSetting", + "referenced_type_name": "keen::RenderFsr2PresetSetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1066876981, + "hash2": 2278602608, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderFsr3PresetSetting", + "type_name_2": "RenderFsr3PresetSetting", + "qualified_name": "keen::ds::RenderFsr3PresetSetting", + "referenced_type_name": "keen::RenderFsr3PresetSetting", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 471464928, + "hash2": 920790170, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderDlssPresetSetting", + "type_name_2": "RenderDlssPresetSetting", + "qualified_name": "keen::ds::RenderDlssPresetSetting", + "referenced_type_name": "keen::RenderDlssPresetSetting", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 1479042702, + "hash2": 493985364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderTextureQualitySetting", + "type_name_2": "RenderTextureQualitySetting", + "qualified_name": "keen::ds::RenderTextureQualitySetting", + "referenced_type_name": "keen::RenderTextureQualitySetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2685189781, + "hash2": 716830159, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowQualitySetting", + "type_name_2": "RenderShadowQualitySetting", + "qualified_name": "keen::ds::RenderShadowQualitySetting", + "referenced_type_name": "keen::RenderShadowQualitySetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 295518052, + "hash2": 716830159, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderContactShadowsSetting", + "type_name_2": "RenderContactShadowsSetting", + "qualified_name": "keen::ds::RenderContactShadowsSetting", + "referenced_type_name": "keen::RenderContactShadowsSetting", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 2498862514, + "hash2": 1962725190, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderGiSetting", + "type_name_2": "RenderGiSetting", + "qualified_name": "keen::ds::RenderGiSetting", + "referenced_type_name": "keen::RenderGiSetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1735386229, + "hash2": 3208930610, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderReflectionsSetting", + "type_name_2": "RenderReflectionsSetting", + "qualified_name": "keen::ds::RenderReflectionsSetting", + "referenced_type_name": "keen::RenderReflectionsSetting", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 4107721877, + "hash2": 3412980551, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderFogQualitySetting", + "type_name_2": "RenderFogQualitySetting", + "qualified_name": "keen::ds::RenderFogQualitySetting", + "referenced_type_name": "keen::RenderFogQualitySetting", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 3394614690, + "hash2": 494568831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderFogVolumetricShadowQualitySetting", + "type_name_2": "RenderFogVolumetricShadowQualitySetting", + "qualified_name": "keen::ds::RenderFogVolumetricShadowQualitySetting", + "referenced_type_name": "keen::RenderFogVolumetricShadowQualitySetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 4101137898, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSsaoSetting", + "type_name_2": "RenderSsaoSetting", + "qualified_name": "keen::ds::RenderSsaoSetting", + "referenced_type_name": "keen::RenderSsaoSetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2558891051, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderDistantObjectsSetting", + "type_name_2": "RenderDistantObjectsSetting", + "qualified_name": "keen::ds::RenderDistantObjectsSetting", + "referenced_type_name": "keen::RenderDistantObjectsSetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1729300732, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderDecoObjectsSetting", + "type_name_2": "RenderDecoObjectsSetting", + "qualified_name": "keen::ds::RenderDecoObjectsSetting", + "referenced_type_name": "keen::RenderDecoObjectsSetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1933129754, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderDetailScatteringSetting", + "type_name_2": "RenderDetailScatteringSetting", + "qualified_name": "keen::ds::RenderDetailScatteringSetting", + "referenced_type_name": "keen::RenderDetailScatteringSetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 3567760340, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderVoxelMeshQualitySetting", + "type_name_2": "RenderVoxelMeshQualitySetting", + "qualified_name": "keen::ds::RenderVoxelMeshQualitySetting", + "referenced_type_name": "keen::RenderVoxelMeshQualitySetting", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 3931655695, + "hash2": 494568831, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderTessellationSetting", + "type_name_2": "RenderTessellationSetting", + "qualified_name": "keen::ds::RenderTessellationSetting", + "referenced_type_name": "keen::RenderTessellationSetting", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1023056358, + "hash2": 2880031981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderPointLightShadowsSetting", + "type_name_2": "RenderPointLightShadowsSetting", + "qualified_name": "keen::ds::RenderPointLightShadowsSetting", + "referenced_type_name": "keen::RenderPointLightShadowsSetting", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 3209372018, + "hash2": 172854894, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettings", + "type_name_2": "RenderSettings", + "qualified_name": "keen::ds::RenderSettings", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 1567492142, + "hash2": 2695672362, + "struct_fields": [ + { + "name": "preset", + "type_name": "keen::ds::RenderSettingsPreset", + "type_hash": 1216170941, + "data_offset": 0 + }, + { + "name": "antiAliasing", + "type_name": "keen::ds::RenderAntiAliasingSetting", + "type_hash": 2751370709, + "data_offset": 4 + }, + { + "name": "fsr2", + "type_name": "keen::ds::RenderFsr2PresetSetting", + "type_hash": 1066876981, + "data_offset": 8 + }, + { + "name": "fsr3", + "type_name": "keen::ds::RenderFsr3PresetSetting", + "type_hash": 471464928, + "data_offset": 12 + }, + { + "name": "dlss", + "type_name": "keen::ds::RenderDlssPresetSetting", + "type_hash": 1479042702, + "data_offset": 16 + }, + { + "name": "textures", + "type_name": "keen::ds::RenderTextureQualitySetting", + "type_hash": 2685189781, + "data_offset": 20 + }, + { + "name": "shadows", + "type_name": "keen::ds::RenderShadowQualitySetting", + "type_hash": 295518052, + "data_offset": 24 + }, + { + "name": "contactShadows", + "type_name": "keen::ds::RenderContactShadowsSetting", + "type_hash": 2498862514, + "data_offset": 28 + }, + { + "name": "dynamicGi", + "type_name": "keen::ds::RenderGiSetting", + "type_hash": 1735386229, + "data_offset": 32 + }, + { + "name": "reflections", + "type_name": "keen::ds::RenderReflectionsSetting", + "type_hash": 4107721877, + "data_offset": 36 + }, + { + "name": "fog", + "type_name": "keen::ds::RenderFogQualitySetting", + "type_hash": 3394614690, + "data_offset": 40 + }, + { + "name": "volumetricShadow", + "type_name": "keen::ds::RenderFogVolumetricShadowQualitySetting", + "type_hash": 4101137898, + "data_offset": 44 + }, + { + "name": "ssao", + "type_name": "keen::ds::RenderSsaoSetting", + "type_hash": 2558891051, + "data_offset": 48 + }, + { + "name": "distantObjects", + "type_name": "keen::ds::RenderDistantObjectsSetting", + "type_hash": 1729300732, + "data_offset": 52 + }, + { + "name": "decoObjects", + "type_name": "keen::ds::RenderDecoObjectsSetting", + "type_hash": 1933129754, + "data_offset": 56 + }, + { + "name": "detailScattering", + "type_name": "keen::ds::RenderDetailScatteringSetting", + "type_hash": 3567760340, + "data_offset": 60 + }, + { + "name": "voxelMeshQuality", + "type_name": "keen::ds::RenderVoxelMeshQualitySetting", + "type_hash": 3931655695, + "data_offset": 64 + }, + { + "name": "tessellation", + "type_name": "keen::ds::RenderTessellationSetting", + "type_hash": 1023056358, + "data_offset": 68 + }, + { + "name": "pointLightShadows", + "type_name": "keen::ds::RenderPointLightShadowsSetting", + "type_hash": 3209372018, + "data_offset": 72 + }, + { + "name": "sharpness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresets", + "type_name_2": "RenderSettingsGpuPresets", + "qualified_name": "keen::ds::RenderSettingsGpuPresets", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1909058608, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuTargetResolution", + "type_name_2": "RenderSettingsGpuTargetResolution", + "qualified_name": "keen::ds::RenderSettingsGpuTargetResolution", + "referenced_type_name": "keen::RenderSettingsGpuTargetResolution", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3803667375, + "hash2": 2086485038, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuTargetFps", + "type_name_2": "RenderSettingsGpuTargetFps", + "qualified_name": "keen::ds::RenderSettingsGpuTargetFps", + "referenced_type_name": "keen::RenderSettingsGpuTargetFps", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3004316488, + "hash2": 1354859166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuMapping", + "type_name_2": "RenderSettingsGpuMapping", + "qualified_name": "keen::ds::RenderSettingsGpuMapping", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1756300922, + "hash2": 3633896557, + "struct_fields": [ + { + "name": "targetResolution", + "type_name": "keen::ds::RenderSettingsGpuTargetResolution", + "type_hash": 3803667375, + "data_offset": 0 + }, + { + "name": "targetFps", + "type_name": "keen::ds::RenderSettingsGpuTargetFps", + "type_hash": 3004316488, + "data_offset": 4 + }, + { + "name": "settings", + "type_name": "keen::ds::RenderSettings", + "type_hash": 1567492142, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuMatch", + "type_name_2": "RenderSettingsGpuMatch", + "qualified_name": "keen::ds::RenderSettingsGpuMatch", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 440009733, + "hash2": 3784919977, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderSettingsGpuPresetsResourceGpu[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderSettingsGpuPresetsResourceGpu", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1894755993, + "hash2": 4192755840, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderSettingsGpuPresetResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderSettingsGpuPresetResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2107295802, + "hash2": 777032918, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresetsResource", + "type_name_2": "RenderSettingsGpuPresetsResource", + "qualified_name": "keen::ds::RenderSettingsGpuPresetsResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 826543780, + "hash2": 2325518962, + "struct_fields": [ + { + "name": "gpus", + "type_name": "keen::DsArray", + "type_hash": 1894755993, + "data_offset": 0 + }, + { + "name": "presets", + "type_name": "keen::DsArray", + "type_hash": 2107295802, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresetsResourceGpu", + "type_name_2": "RenderSettingsGpuPresetsResourceGpu", + "qualified_name": "keen::ds::RenderSettingsGpuPresetsResourceGpu", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2983515866, + "hash2": 3577492890, + "struct_fields": [ + { + "name": "nameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "presetIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSettingsGpuPresetResource", + "type_name_2": "RenderSettingsGpuPresetResource", + "qualified_name": "keen::ds::RenderSettingsGpuPresetResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 146308239, + "hash2": 3702237975, + "struct_fields": [ + { + "name": "settings", + "type_name": "keen::ds::RenderSettings", + "type_hash": 1567492142, + "data_offset": 0 + }, + { + "name": "targetPixelCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "targetFps", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardPointLightData", + "type_name_2": "ForwardPointLightData", + "qualified_name": "keen::ds::ForwardPointLightData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 623701366, + "hash2": 1148459679, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "sqrRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "falloffWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "uniqueId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "enableShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "pad2", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ForwardDecalData", + "type_name_2": "ForwardDecalData", + "qualified_name": "keen::ds::ForwardDecalData", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4264830017, + "hash2": 3352474621, + "struct_fields": [ + { + "name": "decalTransform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "worldBoundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 64 + }, + { + "name": "emissiveTintAndAlpha", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 80 + }, + { + "name": "materialDataIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "normalFade", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 100 + }, + { + "name": "layerMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 104 + }, + { + "name": "enableTransparencyCompositionMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ClusterCullingInfo", + "type_name_2": "ClusterCullingInfo", + "qualified_name": "keen::ds::ClusterCullingInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2251600325, + "hash2": 2204194426, + "struct_fields": [ + { + "name": "clusterSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "enableOverdraw", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "inverseViewportSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "zNear", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "zFar", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherMaskResource", + "type_name_2": "RenderWeatherMaskResource", + "qualified_name": "keen::ds::RenderWeatherMaskResource", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3190131417, + "hash2": 2254448011, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherResource", + "type_name_2": "RenderWeatherResource", + "qualified_name": "keen::ds::RenderWeatherResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3207609525, + "hash2": 164549487, + "struct_fields": [ + { + "name": "snowBorderRangeMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "snowBorderMask", + "type_name": "keen::ds::RenderWeatherMaskResource", + "type_hash": 3190131417, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherPhenomenonResource", + "type_name_2": "RenderWeatherPhenomenonResource", + "qualified_name": "keen::ds::RenderWeatherPhenomenonResource", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2468232036, + "hash2": 1416880354, + "struct_fields": [ + { + "name": "cloudMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherRasterCouldsParameters", + "type_name_2": "RenderWeatherRasterCouldsParameters", + "qualified_name": "keen::ds::RenderWeatherRasterCouldsParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3904012370, + "hash2": 974192649, + "struct_fields": [ + { + "name": "invRenderTargetSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherRasterCloudsInstanceData", + "type_name_2": "RenderWeatherRasterCloudsInstanceData", + "qualified_name": "keen::ds::RenderWeatherRasterCloudsInstanceData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1023071113, + "hash2": 2523263262, + "struct_fields": [ + { + "name": "transformM", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "transformT", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "data", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "cloudMap", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 28 + }, + { + "name": "restrictMask", + "type_name": "keen::ds::BindlessTexture2D_float", + "type_hash": 21922031, + "data_offset": 32 + }, + { + "name": "excludeMask", + "type_name": "keen::ds::BindlessTexture2D_float", + "type_hash": 21922031, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherWeatherMapSubtractParameters", + "type_name_2": "RenderWeatherWeatherMapSubtractParameters", + "qualified_name": "keen::ds::RenderWeatherWeatherMapSubtractParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1617362271, + "hash2": 127768913, + "struct_fields": [ + { + "name": "wetnessValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "puddleValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherWeatherMapAddParameters", + "type_name_2": "RenderWeatherWeatherMapAddParameters", + "qualified_name": "keen::ds::RenderWeatherWeatherMapAddParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1267134710, + "hash2": 922890605, + "struct_fields": [ + { + "name": "rainWetnessValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rainPuddleValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDynamicWetnessSampleUpload", + "type_name_2": "RenderWeatherDynamicWetnessSampleUpload", + "qualified_name": "keen::ds::RenderWeatherDynamicWetnessSampleUpload", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2693360830, + "hash2": 388311823, + "struct_fields": [ + { + "name": "pointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "boneIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 8 + }, + { + "name": "localPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDynamicWetnessSample", + "type_name_2": "RenderWeatherDynamicWetnessSample", + "qualified_name": "keen::ds::RenderWeatherDynamicWetnessSample", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3833439371, + "hash2": 3617887697, + "struct_fields": [ + { + "name": "instanceIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "boneIndex", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + }, + { + "name": "localPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDynamicWetnessUpdateConstants", + "type_name_2": "RenderWeatherDynamicWetnessUpdateConstants", + "qualified_name": "keen::ds::RenderWeatherDynamicWetnessUpdateConstants", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1998595077, + "hash2": 2248333559, + "struct_fields": [ + { + "name": "uploadCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "dryWetnessValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "addRainWetnessValue", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 16 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::ds::WeatherSampleConstants", + "type_hash": 526028364, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherFilterDynamicHeightmapConstants", + "type_name_2": "RenderWeatherFilterDynamicHeightmapConstants", + "qualified_name": "keen::ds::RenderWeatherFilterDynamicHeightmapConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 415174760, + "hash2": 727807192, + "struct_fields": [ + { + "name": "rcpTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherInstanceFlags", + "type_name_2": "RenderWeatherInstanceFlags", + "qualified_name": "keen::ds::RenderWeatherInstanceFlags", + "referenced_type_name": "keen::RenderWeatherInstanceFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3965963597, + "hash2": 1150728721, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherInstanceParameters", + "type_name_2": "RenderWeatherInstanceParameters", + "qualified_name": "keen::ds::RenderWeatherInstanceParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3108926082, + "hash2": 2205128588, + "struct_fields": [ + { + "name": "positionXZ", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 8 + }, + { + "name": "scaleXZ", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "rainThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "flags", + "type_name": "keen::ds::RenderWeatherInstanceFlags", + "type_hash": 3965963597, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugInstanceState", + "type_name_2": "RenderWeatherDebugInstanceState", + "qualified_name": "keen::ds::RenderWeatherDebugInstanceState", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2222729492, + "hash2": 811333522, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::ds::RenderWeatherInstanceParameters", + "type_hash": 3108926082, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderWeatherDebugInstanceState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderWeatherDebugInstanceState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3282063863, + "hash2": 3997783996, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugState", + "type_name_2": "RenderWeatherDebugState", + "qualified_name": "keen::ds::RenderWeatherDebugState", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2656316989, + "hash2": 2274743532, + "struct_fields": [ + { + "name": "debugDrawInstances", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 3282063863, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugUpdateDebugDrawInstances", + "type_name_2": "RenderWeatherDebugUpdateDebugDrawInstances", + "qualified_name": "keen::ds::RenderWeatherDebugUpdateDebugDrawInstances", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 571584998, + "hash2": 2176184746, + "struct_fields": [ + { + "name": "debugDrawInstances", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderWeatherPhenomenonResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4212580077, + "hash2": 3932096683, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugAddInstance", + "type_name_2": "RenderWeatherDebugAddInstance", + "qualified_name": "keen::ds::RenderWeatherDebugAddInstance", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 27536184, + "hash2": 691972025, + "struct_fields": [ + { + "name": "phenomenon", + "type_name": "keen::ObjectReference", + "type_hash": 4212580077, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::ds::RenderWeatherInstanceParameters", + "type_hash": 3108926082, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugRemoveInstance", + "type_name_2": "RenderWeatherDebugRemoveInstance", + "qualified_name": "keen::ds::RenderWeatherDebugRemoveInstance", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 844213755, + "hash2": 449428500, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugSetInstanceParameters", + "type_name_2": "RenderWeatherDebugSetInstanceParameters", + "qualified_name": "keen::ds::RenderWeatherDebugSetInstanceParameters", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2544766939, + "hash2": 811333522, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::ds::RenderWeatherInstanceParameters", + "type_hash": 3108926082, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherInstanceFlag", + "type_name_2": "RenderWeatherInstanceFlag", + "qualified_name": "keen::ds::RenderWeatherInstanceFlag", + "referenced_type_name": "keen::RenderWeatherInstanceFlag", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2934030828, + "hash2": 2707643731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderWeatherDebugMode", + "type_name_2": "RenderWeatherDebugMode", + "qualified_name": "keen::ds::RenderWeatherDebugMode", + "referenced_type_name": "keen::RenderWeatherDebugMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1725551947, + "hash2": 4271135939, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fsr3QualityPreset", + "type_name_2": "Fsr3QualityPreset", + "qualified_name": "keen::ds::Fsr3QualityPreset", + "referenced_type_name": "keen::Fsr3QualityPreset", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 886311187, + "hash2": 2911107960, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderUpscaleTechnique", + "type_name_2": "RenderUpscaleTechnique", + "qualified_name": "keen::ds::RenderUpscaleTechnique", + "referenced_type_name": "keen::RenderUpscaleTechnique", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 196021482, + "hash2": 330530809, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderFeatureFlag", + "type_name_2": "RenderFeatureFlag", + "qualified_name": "keen::ds::RenderFeatureFlag", + "referenced_type_name": "keen::RenderFeatureFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3737566265, + "hash2": 4140818898, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderFeatureFlags", + "type_name_2": "RenderFeatureFlags", + "qualified_name": "keen::ds::RenderFeatureFlags", + "referenced_type_name": "keen::RenderFeatureFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4242172030, + "hash2": 2889630867, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlendShapeId", + "type_name_2": "BlendShapeId", + "qualified_name": "keen::ds::BlendShapeId", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3252648942, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BeaufortWindForce", + "type_name_2": "BeaufortWindForce", + "qualified_name": "keen::ds::BeaufortWindForce", + "referenced_type_name": "keen::BeaufortWindForce", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 240302230, + "hash2": 1607882777, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderDataPrimitiveTypes", + "type_name_2": "ShaderDataPrimitiveTypes", + "qualified_name": "keen::ds::ShaderDataPrimitiveTypes", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3337415684, + "hash2": 1243079934, + "struct_fields": [ + { + "name": "f0", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "f1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "f2", + "type_name": "keen::sint64", + "type_hash": 3434124194, + "data_offset": 8 + }, + { + "name": "f3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "f4", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "f5", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 44 + }, + { + "name": "f6", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 52 + }, + { + "name": "f7", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderColorGradingMap", + "type_name_2": "RenderColorGradingMap", + "qualified_name": "keen::ds::RenderColorGradingMap", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4133388264, + "hash2": 2406779250, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderColorGradingMapResource", + "type_name_2": "RenderColorGradingMapResource", + "qualified_name": "keen::ds::RenderColorGradingMapResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2254271244, + "hash2": 455167378, + "struct_fields": [ + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderColorGradingMapReference", + "type_name_2": "RenderColorGradingMapReference", + "qualified_name": "keen::ds::RenderColorGradingMapReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1946430533, + "hash2": 454224928, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderViewDebugDrawMode", + "type_name_2": "RenderViewDebugDrawMode", + "qualified_name": "keen::ds::RenderViewDebugDrawMode", + "referenced_type_name": "keen::RenderViewDebugDrawMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4222481192, + "hash2": 4157154431, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderDescriptorSetId", + "type_name_2": "RenderDescriptorSetId", + "qualified_name": "keen::ds::RenderDescriptorSetId", + "referenced_type_name": "keen::RenderDescriptorSetId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2893015007, + "hash2": 1883829547, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSubpassIndex", + "type_name_2": "RenderSubpassIndex", + "qualified_name": "keen::ds::RenderSubpassIndex", + "referenced_type_name": "keen::RenderSubpassIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2276883870, + "hash2": 1797893278, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderPipelineStage", + "type_name_2": "RenderPipelineStage", + "qualified_name": "keen::ds::RenderPipelineStage", + "referenced_type_name": "keen::RenderPipelineStage", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1019212357, + "hash2": 413420118, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderCompileSourceLanguage", + "type_name_2": "ShaderCompileSourceLanguage", + "qualified_name": "keen::ds::ShaderCompileSourceLanguage", + "referenced_type_name": "keen::ShaderCompileSourceLanguage", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2904295284, + "hash2": 2847363906, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderPrimitiveType", + "type_name_2": "RenderPrimitiveType", + "qualified_name": "keen::ds::RenderPrimitiveType", + "referenced_type_name": "keen::RenderPrimitiveType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 780061912, + "hash2": 45555124, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSampler", + "type_name_2": "RenderSampler", + "qualified_name": "keen::ds::RenderSampler", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1267296913, + "hash2": 2181587106, + "struct_fields": [ + { + "name": "addressModeU", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 0 + }, + { + "name": "addressModeV", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 1 + }, + { + "name": "addressModeW", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 2 + }, + { + "name": "minFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 3 + }, + { + "name": "magFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 4 + }, + { + "name": "mipFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 5 + }, + { + "name": "comparisonFunction", + "type_name": "keen::ds::RenderComparisonFunction", + "type_hash": 3026950198, + "data_offset": 6 + }, + { + "name": "anisotropyEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderParameterBlockPatchPointType", + "type_name_2": "RenderParameterBlockPatchPointType", + "qualified_name": "keen::ds::RenderParameterBlockPatchPointType", + "referenced_type_name": "keen::RenderParameterBlockPatchPointType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 263493315, + "hash2": 1619040728, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderParameterBlockPatchPoint", + "type_name_2": "RenderParameterBlockPatchPoint", + "qualified_name": "keen::ds::RenderParameterBlockPatchPoint", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3141979131, + "hash2": 3300793927, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::RenderParameterBlockPatchPointType", + "type_hash": 263493315, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "parameterIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderVertexAttribute", + "type_name_2": "RenderVertexAttribute", + "qualified_name": "keen::ds::RenderVertexAttribute", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1393515199, + "hash2": 1389033775, + "struct_fields": [ + { + "name": "location", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "format", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "stream", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ComputeGroupCountAlgorithm", + "type_name_2": "ComputeGroupCountAlgorithm", + "qualified_name": "keen::ds::ComputeGroupCountAlgorithm", + "referenced_type_name": "keen::ComputeGroupCountAlgorithm", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1529672951, + "hash2": 3750681440, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelImageSizeInfo", + "type_name_2": "RenderModelImageSizeInfo", + "qualified_name": "keen::ds::RenderModelImageSizeInfo", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 506240712, + "hash2": 294965705, + "struct_fields": [ + { + "name": "texelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialFlag", + "type_name_2": "RenderMaterialFlag", + "qualified_name": "keen::ds::RenderMaterialFlag", + "referenced_type_name": "keen::RenderMaterialFlag", + "class_size": 1, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 3163165444, + "hash2": 2970031141, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialImage", + "type_name_2": "RenderMaterialImage", + "qualified_name": "keen::ds::RenderMaterialImage", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1022741519, + "hash2": 2722487306, + "struct_fields": [ + { + "name": "dataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 8 + }, + { + "name": "arraySize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 10 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 13 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 14 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + }, + { + "name": "enableStreaming", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialSampler", + "type_name_2": "RenderMaterialSampler", + "qualified_name": "keen::ds::RenderMaterialSampler", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2259669990, + "hash2": 2343852387, + "struct_fields": [ + { + "name": "dataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "addressModeU", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 4 + }, + { + "name": "addressModeV", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 5 + }, + { + "name": "addressModeW", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 6 + }, + { + "name": "minFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 7 + }, + { + "name": "magFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 8 + }, + { + "name": "mipFilter", + "type_name": "keen::ds::RenderSamplerFilterMode", + "type_hash": 1579469292, + "data_offset": 9 + }, + { + "name": "comparisonFunction", + "type_name": "keen::ds::RenderComparisonFunction", + "type_hash": 3026950198, + "data_offset": 10 + }, + { + "name": "anisotropyEnable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RfxSamplerId", + "type_name_2": "RfxSamplerId", + "qualified_name": "keen::ds::RfxSamplerId", + "referenced_type_name": "keen::RfxSamplerId", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3591366598, + "hash2": 550444198, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMaterialImage[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMaterialImage", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2469478178, + "hash2": 332830011, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMaterialSampler[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMaterialSampler", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1858479597, + "hash2": 3483488294, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialResource", + "type_name_2": "RenderMaterialResource", + "qualified_name": "keen::ds::RenderMaterialResource", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1383650738, + "hash2": 2726770470, + "struct_fields": [ + { + "name": "effectId", + "type_name": "keen::ds::RenderEffectId", + "type_hash": 1304939227, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ds::RenderMaterialFlagMask", + "type_hash": 707900884, + "data_offset": 1 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 8 + }, + { + "name": "dataTypeSignature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 48 + }, + { + "name": "images", + "type_name": "keen::DsArray", + "type_hash": 2469478178, + "data_offset": 56 + }, + { + "name": "samplers", + "type_name": "keen::DsArray", + "type_hash": 1858479597, + "data_offset": 96 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderMaterialResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2639625805, + "hash2": 1118561981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialResourceReference", + "type_name_2": "RenderMaterialResourceReference", + "qualified_name": "keen::ds::RenderMaterialResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 426375975, + "hash2": 2666697460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialTextureInfo", + "type_name_2": "RenderMaterialTextureInfo", + "qualified_name": "keen::ds::RenderMaterialTextureInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1566611549, + "hash2": 1169741928, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "samplingInfo", + "type_name": "keen::ds::RenderMaterialTextureSamplingInfo", + "type_hash": 3508343876, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMaterialTextureInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMaterialTextureInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 478000108, + "hash2": 3536124230, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialInfo", + "type_name_2": "RenderMaterialInfo", + "qualified_name": "keen::ds::RenderMaterialInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4103734754, + "hash2": 2221423420, + "struct_fields": [ + { + "name": "effectId", + "type_name": "keen::ds::RenderEffectId", + "type_hash": 1304939227, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::ds::RenderMaterialFlagMask", + "type_hash": 707900884, + "data_offset": 1 + }, + { + "name": "dataTypeSignature", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "hasStreamedTextures", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "textures", + "type_name": "keen::DsArray", + "type_hash": 478000108, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderBlendResourceData", + "type_name_2": "RenderBlendResourceData", + "qualified_name": "keen::ds::RenderBlendResourceData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3590310218, + "hash2": 917903629, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ObjectReference", + "type_hash": 3862406605, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMaterialMesh", + "type_name_2": "RenderMaterialMesh", + "qualified_name": "keen::ds::RenderMaterialMesh", + "referenced_type_name": null, + "class_size": 272, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 91505251, + "hash2": 181099374, + "struct_fields": [ + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 0 + }, + { + "name": "boundingSphere", + "type_name": "keen::Sphere", + "type_hash": 934771011, + "data_offset": 32 + }, + { + "name": "renderEffectId", + "type_name": "keen::ds::RenderEffectId", + "type_hash": 1304939227, + "data_offset": 48 + }, + { + "name": "clothMeshIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 49 + }, + { + "name": "material", + "type_name": "keen::ds::RenderMaterialResourceReference", + "type_hash": 426375975, + "data_offset": 52 + }, + { + "name": "materialFlags", + "type_name": "keen::ds::RenderMaterialFlagMask", + "type_hash": 707900884, + "data_offset": 68 + }, + { + "name": "materialImageSizeInfos", + "type_name": "keen::DsArray", + "type_hash": 1288390005, + "data_offset": 72 + }, + { + "name": "materialModelData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 112 + }, + { + "name": "materialModelDataTypeSignatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 128 + }, + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 132 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 144 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 164 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 180 + }, + { + "name": "skinningData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 196 + }, + { + "name": "blendShapeVertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 212 + }, + { + "name": "blendShapeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 228 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 232 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLod", + "type_name_2": "RenderModelLod", + "qualified_name": "keen::ds::RenderModelLod", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 276860463, + "hash2": 3012750504, + "struct_fields": [ + { + "name": "firstMeshIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "meshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "pixelSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderRayTraceVertexFormat", + "type_name_2": "RenderRayTraceVertexFormat", + "qualified_name": "keen::ds::RenderRayTraceVertexFormat", + "referenced_type_name": "keen::RenderRayTraceVertexFormat", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3846889895, + "hash2": 92644643, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderRayTraceMeshPart", + "type_name_2": "RenderRayTraceMeshPart", + "qualified_name": "keen::ds::RenderRayTraceMeshPart", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2907840994, + "hash2": 3498473176, + "struct_fields": [ + { + "name": "jointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderRayTraceMeshPart[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderRayTraceMeshPart", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3486353495, + "hash2": 3479798472, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderRayTraceMesh", + "type_name_2": "RenderRayTraceMesh", + "qualified_name": "keen::ds::RenderRayTraceMesh", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 361865775, + "hash2": 3225109009, + "struct_fields": [ + { + "name": "vertexFormat", + "type_name": "keen::ds::RenderRayTraceVertexFormat", + "type_hash": 3846889895, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 28 + }, + { + "name": "parts", + "type_name": "keen::DsArray", + "type_hash": 3486353495, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelClothSleeve", + "type_name_2": "RenderModelClothSleeve", + "qualified_name": "keen::ds::RenderModelClothSleeve", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2490457908, + "hash2": 1208732073, + "struct_fields": [ + { + "name": "center0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "center1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "radius1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "upperJointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "lowerJointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "planes", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 44 + }, + { + "name": "particleIndicies", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelSdfMaterial", + "type_name_2": "RenderModelSdfMaterial", + "qualified_name": "keen::ds::RenderModelSdfMaterial", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 314558266, + "hash2": 595233015, + "struct_fields": [ + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "dummy", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelSdfPart", + "type_name_2": "RenderModelSdfPart", + "qualified_name": "keen::ds::RenderModelSdfPart", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 199609054, + "hash2": 1988425333, + "struct_fields": [ + { + "name": "resolution", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "jointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "mipLevelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "origin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "totalSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "pixels", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 44 + }, + { + "name": "material", + "type_name": "keen::ds::RenderModelSdfMaterial", + "type_hash": 314558266, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelSdfPart[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelSdfPart", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3753112771, + "hash2": 3350594166, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelSdfData", + "type_name_2": "RenderModelSdfData", + "qualified_name": "keen::ds::RenderModelSdfData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 33893707, + "hash2": 3382916623, + "struct_fields": [ + { + "name": "parts", + "type_name": "keen::DsArray", + "type_hash": 3753112771, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderGradientMapResource", + "type_name_2": "RenderGradientMapResource", + "qualified_name": "keen::ds::RenderGradientMapResource", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3742390907, + "hash2": 1744187720, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 3 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 4 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderClothColliderSphere[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderClothColliderSphere", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3658853303, + "hash2": 508922457, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderClothColliderCapsule[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderClothColliderCapsule", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3648428829, + "hash2": 2098179671, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelColliderInstanceData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelColliderInstanceData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1151526870, + "hash2": 4207069539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelClothColliderData", + "type_name_2": "RenderModelClothColliderData", + "qualified_name": "keen::ds::RenderModelClothColliderData", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 665079376, + "hash2": 510805160, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "ignoreClothCollider", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "spheres", + "type_name": "keen::DsArray", + "type_hash": 3658853303, + "data_offset": 8 + }, + { + "name": "capsules", + "type_name": "keen::DsArray", + "type_hash": 3648428829, + "data_offset": 48 + }, + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 1151526870, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "uint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::uint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 695524899, + "hash2": 1069966509, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SkinnedTreeModelSpringData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SkinnedTreeModelSpringData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 387377028, + "hash2": 2243924612, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelData", + "type_name_2": "SkinnedTreeModelData", + "qualified_name": "keen::ds::SkinnedTreeModelData", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 318348422, + "hash2": 849776245, + "struct_fields": [ + { + "name": "jointMatrix", + "type_name": "keen::DsArray", + "type_hash": 1003769895, + "data_offset": 0 + }, + { + "name": "jointParent", + "type_name": "keen::DsArray", + "type_hash": 695524899, + "data_offset": 40 + }, + { + "name": "jointSpringData", + "type_name": "keen::DsArray", + "type_hash": 387377028, + "data_offset": 80 + }, + { + "name": "leafJoints", + "type_name": "keen::DsArray", + "type_hash": 695524899, + "data_offset": 120 + }, + { + "name": "inverseTransformTree", + "type_name": "keen::DsArray", + "type_hash": 1003769895, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderMaterialMesh[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderMaterialMesh", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3742575928, + "hash2": 2902828936, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelLod[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelLod", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2259118464, + "hash2": 3386495476, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsOptional", + "type_name_2": "Optional", + "qualified_name": "keen::DsOptional", + "referenced_type_name": "keen::ds::RenderModelClothData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "DsOptional", + "hash1": 1376408170, + "hash2": 1678930698, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsOptional", + "type_name_2": "Optional", + "qualified_name": "keen::DsOptional", + "referenced_type_name": "keen::ds::RenderModelChainData", + "class_size": 16, + "fields_count": 0, + "primitive_type": "DsOptional", + "hash1": 2232134065, + "hash2": 342667646, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelClothSleeve[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelClothSleeve", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1510227873, + "hash2": 1571634534, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderBlendResourceData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderBlendResourceData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2569781625, + "hash2": 3213512214, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModel", + "type_name_2": "RenderModel", + "qualified_name": "keen::ds::RenderModel", + "referenced_type_name": null, + "class_size": 816, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 946561408, + "hash2": 2955812853, + "struct_fields": [ + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "meshes", + "type_name": "keen::DsArray", + "type_hash": 3742575928, + "data_offset": 40 + }, + { + "name": "lods", + "type_name": "keen::DsArray", + "type_hash": 2259118464, + "data_offset": 80 + }, + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 128 + }, + { + "name": "rayTraceMesh", + "type_name": "keen::ds::RenderRayTraceMesh", + "type_hash": 361865775, + "data_offset": 160 + }, + { + "name": "hierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 256938998, + "data_offset": 248 + }, + { + "name": "hierarchyJointCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 264 + }, + { + "name": "skinningMap", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 272 + }, + { + "name": "cloth", + "type_name": "keen::DsOptional", + "type_hash": 1376408170, + "data_offset": 312 + }, + { + "name": "chain", + "type_name": "keen::DsOptional", + "type_hash": 2232134065, + "data_offset": 328 + }, + { + "name": "collider", + "type_name": "keen::ds::RenderModelClothColliderData", + "type_hash": 665079376, + "data_offset": 344 + }, + { + "name": "sleeves", + "type_name": "keen::DsArray", + "type_hash": 1510227873, + "data_offset": 472 + }, + { + "name": "blendShapes", + "type_name": "keen::DsArray", + "type_hash": 2569781625, + "data_offset": 512 + }, + { + "name": "jointCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 552 + }, + { + "name": "instanceDataTypeNameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 556 + }, + { + "name": "hasCardClusterLod", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 560 + }, + { + "name": "sdf", + "type_name": "keen::ds::RenderModelSdfData", + "type_hash": 33893707, + "data_offset": 568 + }, + { + "name": "skinnedTree", + "type_name": "keen::ds::SkinnedTreeModelData", + "type_hash": 318348422, + "data_offset": 608 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothVertexSkinningData", + "type_name_2": "RenderClothVertexSkinningData", + "qualified_name": "keen::ds::RenderClothVertexSkinningData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 14244896, + "hash2": 207703230, + "struct_fields": [ + { + "name": "jointIndices", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 0 + }, + { + "name": "jointWeights", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothFabricResource", + "type_name_2": "RenderClothFabricResource", + "qualified_name": "keen::ds::RenderClothFabricResource", + "referenced_type_name": null, + "class_size": 328, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1462619344, + "hash2": 1005014713, + "struct_fields": [ + { + "name": "numParticles", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "phaseIndices", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 8 + }, + { + "name": "sets", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 48 + }, + { + "name": "restValues", + "type_name": "keen::DsArray", + "type_hash": 3107202223, + "data_offset": 88 + }, + { + "name": "stiffnessValues", + "type_name": "keen::DsArray", + "type_hash": 3107202223, + "data_offset": 128 + }, + { + "name": "indices", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 168 + }, + { + "name": "anchors", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 208 + }, + { + "name": "tetherLengths", + "type_name": "keen::DsArray", + "type_hash": 3107202223, + "data_offset": 248 + }, + { + "name": "triangles", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "uint3[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::uint3", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3725898110, + "hash2": 3996062626, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderClothVertexSkinningData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderClothVertexSkinningData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2871168459, + "hash2": 421987470, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothMeshResource", + "type_name_2": "RenderClothMeshResource", + "qualified_name": "keen::ds::RenderClothMeshResource", + "referenced_type_name": null, + "class_size": 808, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 2720041744, + "hash2": 2614646223, + "struct_fields": [ + { + "name": "fabric", + "type_name": "keen::ds::RenderClothFabricResource", + "type_hash": 1462619344, + "data_offset": 0 + }, + { + "name": "simulationPositions", + "type_name": "keen::DsArray", + "type_hash": 2619150946, + "data_offset": 328 + }, + { + "name": "simulationInvMasses", + "type_name": "keen::DsArray", + "type_hash": 2647501488, + "data_offset": 368 + }, + { + "name": "simulationStiffnesses", + "type_name": "keen::DsArray", + "type_hash": 2647501488, + "data_offset": 408 + }, + { + "name": "simulationVertexWeights", + "type_name": "keen::DsArray", + "type_hash": 2647501488, + "data_offset": 448 + }, + { + "name": "simulationTriangles", + "type_name": "keen::DsArray", + "type_hash": 3725898110, + "data_offset": 488 + }, + { + "name": "simulationBlendshapeDeltas", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 528 + }, + { + "name": "simulationSkinningData", + "type_name": "keen::DsArray", + "type_hash": 2871168459, + "data_offset": 568 + }, + { + "name": "skinnedVertexIndices", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 608 + }, + { + "name": "renderPositions", + "type_name": "keen::DsArray", + "type_hash": 2619150946, + "data_offset": 648 + }, + { + "name": "renderUvs", + "type_name": "keen::DsArray", + "type_hash": 2652853279, + "data_offset": 688 + }, + { + "name": "renderTriangles", + "type_name": "keen::DsArray", + "type_hash": 3725898110, + "data_offset": 728 + }, + { + "name": "renderSimulationVertexIndices", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 768 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothMesh", + "type_name_2": "RenderClothMesh", + "qualified_name": "keen::ds::RenderClothMesh", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 1569747404, + "hash2": 1871007372, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "windStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "tetherStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "motionConstraintsStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "solverFrequency", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "motionConstraintsUnlimitedRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "motionConstraintsMaxRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderSkinningData", + "type_name_2": "RenderClothColliderSkinningData", + "qualified_name": "keen::ds::RenderClothColliderSkinningData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3400931206, + "hash2": 207703230, + "struct_fields": [ + { + "name": "jointIndices", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 0 + }, + { + "name": "jointWeights", + "type_name": "keen::StaticArray", + "type_hash": 189109066, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderSphere", + "type_name_2": "RenderClothColliderSphere", + "qualified_name": "keen::ds::RenderClothColliderSphere", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3644872656, + "hash2": 3036104060, + "struct_fields": [ + { + "name": "center", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "skinningData", + "type_name": "keen::ds::RenderClothColliderSkinningData", + "type_hash": 3400931206, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderCapsule", + "type_name_2": "RenderClothColliderCapsule", + "qualified_name": "keen::ds::RenderClothColliderCapsule", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2179627572, + "hash2": 195489065, + "struct_fields": [ + { + "name": "center0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "center1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "radius1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "skinningData", + "type_name": "keen::ds::RenderClothColliderSkinningData", + "type_hash": 3400931206, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelColliderData", + "type_name_2": "RenderModelColliderData", + "qualified_name": "keen::ds::RenderModelColliderData", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 116612668, + "hash2": 745054098, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "spheres", + "type_name": "keen::DsArray", + "type_hash": 3658853303, + "data_offset": 8 + }, + { + "name": "capsules", + "type_name": "keen::DsArray", + "type_hash": 3648428829, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelColliderInstanceData", + "type_name_2": "RenderModelColliderInstanceData", + "qualified_name": "keen::ds::RenderModelColliderInstanceData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1649965527, + "hash2": 3255256850, + "struct_fields": [ + { + "name": "sphereIndices", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 0 + }, + { + "name": "capsuleIndices", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderClothMesh[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderClothMesh", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 395905555, + "hash2": 4184885913, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelClothData", + "type_name_2": "RenderModelClothData", + "qualified_name": "keen::ds::RenderModelClothData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 964303236, + "hash2": 181017650, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "meshes", + "type_name": "keen::DsArray", + "type_hash": 395905555, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderClothColliderResource", + "type_name_2": "RenderClothColliderResource", + "qualified_name": "keen::ds::RenderClothColliderResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1448331373, + "hash2": 3021269314, + "struct_fields": [ + { + "name": "hasSkinning", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "maxJointIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "spheres", + "type_name": "keen::DsArray", + "type_hash": 3658853303, + "data_offset": 8 + }, + { + "name": "capsules", + "type_name": "keen::DsArray", + "type_hash": 3648428829, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChainConfig", + "type_name_2": "RenderModelChainConfig", + "qualified_name": "keen::ds::RenderModelChainConfig", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 279873723, + "hash2": 3799563499, + "struct_fields": [ + { + "name": "propagateRotation", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "gravity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "mass", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "dragCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "liftCoefficient", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "stiffnessFrequencey", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "damping", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "motionConstraintRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "linearInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "angularInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "centrifugalInertia", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "phasesStiffness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "phasesStiffnessMultiplier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "phasesCompressionLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "phasesStretchLimit", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "collisionFriction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChain", + "type_name_2": "RenderModelChain", + "qualified_name": "keen::ds::RenderModelChain", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3647678633, + "hash2": 3393390303, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "jointBeginIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + }, + { + "name": "jointEndIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 18 + }, + { + "name": "constraintBeginIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 20 + }, + { + "name": "constraintEndIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 22 + }, + { + "name": "configIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 24 + }, + { + "name": "colliderIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 25 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelChain[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelChain", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 555816570, + "hash2": 4256744782, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelChainConfig[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelChainConfig", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2492852144, + "hash2": 1819040887, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelColliderData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelColliderData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3815350035, + "hash2": 377379128, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChainData", + "type_name_2": "RenderModelChainData", + "qualified_name": "keen::ds::RenderModelChainData", + "referenced_type_name": null, + "class_size": 480, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3630919513, + "hash2": 4255896225, + "struct_fields": [ + { + "name": "chains", + "type_name": "keen::DsArray", + "type_hash": 555816570, + "data_offset": 0 + }, + { + "name": "configs", + "type_name": "keen::DsArray", + "type_hash": 2492852144, + "data_offset": 40 + }, + { + "name": "chainColliders", + "type_name": "keen::DsArray", + "type_hash": 3815350035, + "data_offset": 80 + }, + { + "name": "anchorHierarchyJoints", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 120 + }, + { + "name": "anchorDefaultPose", + "type_name": "keen::DsArray", + "type_hash": 1003769895, + "data_offset": 160 + }, + { + "name": "anchorRestPosition", + "type_name": "keen::DsArray", + "type_hash": 2619150946, + "data_offset": 200 + }, + { + "name": "joints", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 240 + }, + { + "name": "modelMatrices", + "type_name": "keen::DsArray", + "type_hash": 1003769895, + "data_offset": 280 + }, + { + "name": "skinToJointMatrix", + "type_name": "keen::DsArray", + "type_hash": 1003769895, + "data_offset": 320 + }, + { + "name": "restPosition", + "type_name": "keen::DsArray", + "type_hash": 2619150946, + "data_offset": 360 + }, + { + "name": "constraintJoints", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 400 + }, + { + "name": "constraints", + "type_name": "keen::DsArray", + "type_hash": 2619150946, + "data_offset": 440 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelMaterialMeshData", + "type_name_2": "RenderModelMaterialMeshData", + "qualified_name": "keen::ds::RenderModelMaterialMeshData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3698638776, + "hash2": 3572492767, + "struct_fields": [ + { + "name": "aabb", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 0 + }, + { + "name": "renderEffectId", + "type_name": "keen::ds::RenderEffectId", + "type_hash": 1304939227, + "data_offset": 32 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 44 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelMaterialMeshData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelMaterialMeshData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2780189751, + "hash2": 1994116787, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLodMeshData", + "type_name_2": "RenderModelLodMeshData", + "qualified_name": "keen::ds::RenderModelLodMeshData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3337446258, + "hash2": 682236397, + "struct_fields": [ + { + "name": "meshes", + "type_name": "keen::DsArray", + "type_hash": 2780189751, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelLodMeshData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelLodMeshData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 579887907, + "hash2": 1676591400, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelMeshData", + "type_name_2": "RenderModelMeshData", + "qualified_name": "keen::ds::RenderModelMeshData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 885348053, + "hash2": 482462087, + "struct_fields": [ + { + "name": "lods", + "type_name": "keen::DsArray", + "type_hash": 579887907, + "data_offset": 0 + }, + { + "name": "instanceDataTypeNameHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelLodInfo", + "type_name_2": "RenderModelLodInfo", + "qualified_name": "keen::ds::RenderModelLodInfo", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4159553531, + "hash2": 1986886790, + "struct_fields": [ + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelLodInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelLodInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3711417248, + "hash2": 2537410265, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelInfo", + "type_name_2": "RenderModelInfo", + "qualified_name": "keen::ds::RenderModelInfo", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 796164412, + "hash2": 3561507797, + "struct_fields": [ + { + "name": "lods", + "type_name": "keen::DsArray", + "type_hash": 3711417248, + "data_offset": 0 + }, + { + "name": "modelHierarchy", + "type_name": "keen::ObjectReference", + "type_hash": 256938998, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnalyticFogShapeType", + "type_name_2": "AnalyticFogShapeType", + "qualified_name": "keen::ds::AnalyticFogShapeType", + "referenced_type_name": "keen::AnalyticFogShapeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1628826121, + "hash2": 4117162735, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "AnalyticFogShape", + "type_name_2": "AnalyticFogShape", + "qualified_name": "keen::ds::AnalyticFogShape", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4048290529, + "hash2": 914519468, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::AnalyticFogShapeType", + "type_hash": 1628826121, + "data_offset": 0 + }, + { + "name": "halfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "falloff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderFogInjection", + "type_name_2": "RenderFogInjection", + "qualified_name": "keen::ds::RenderFogInjection", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 393137714, + "hash2": 1736496044, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::AnalyticFogShape", + "type_hash": 4048290529, + "data_offset": 0 + }, + { + "name": "absorption", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "scattering", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 24 + }, + { + "name": "emission", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 28 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderFogDissolve", + "type_name_2": "RenderFogDissolve", + "qualified_name": "keen::ds::RenderFogDissolve", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1949287418, + "hash2": 2344324341, + "struct_fields": [ + { + "name": "shape", + "type_name": "keen::ds::AnalyticFogShape", + "type_hash": 4048290529, + "data_offset": 0 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelDrawData2", + "type_name_2": "RenderModelDrawData2", + "qualified_name": "keen::ds::RenderModelDrawData2", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4188128032, + "hash2": 1111395448, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "sizeFeedbackIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "firstMesh", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "lodCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "lodMeshOffsets", + "type_name": "keen::StaticArray", + "type_hash": 1839411670, + "data_offset": 32 + }, + { + "name": "lodMeshCounts", + "type_name": "keen::StaticArray", + "type_hash": 1839411670, + "data_offset": 64 + }, + { + "name": "lodPixelSizes", + "type_name": "keen::StaticArray", + "type_hash": 1332724952, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderMeshDrawData2", + "type_name_2": "RenderMeshDrawData2", + "qualified_name": "keen::ds::RenderMeshDrawData2", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 1333797438, + "hash2": 3549777710, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "pipelineBits", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "indexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "vertexOffset", + "type_name": "keen::int", + "type_hash": 1974855975, + "data_offset": 40 + }, + { + "name": "modelMaterialData", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "skinningDataByteOffsetAndClothMeshIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "blendShapeVertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "blendShapeMask", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderInstanceData", + "type_name_2": "RenderInstanceData", + "qualified_name": "keen::ds::RenderInstanceData", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 979662984, + "hash2": 3073429116, + "struct_fields": [ + { + "name": "packedTransform", + "type_name": "keen::ds::PackedShaderWorldTransform", + "type_hash": 2990168994, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 32 + }, + { + "name": "tintColor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "tintGradientMap", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 84 + }, + { + "name": "highlightColorPaletteIndexTransparency", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + }, + { + "name": "flagsAndEmissiveFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "dissolveParameters", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "alphaClip", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "activeBlendShapeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "blendShapeWeights", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "clothMeshDataOffsets", + "type_name": "keen::StaticArray", + "type_hash": 3987535282, + "data_offset": 128 + }, + { + "name": "albedoTintColorIndices", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "skinMatrixOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 148 + }, + { + "name": "decalLayerMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + }, + { + "name": "dynamicWetnessOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "modelIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "groupMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 164 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringInstanceData", + "type_name_2": "DetailScatteringInstanceData", + "qualified_name": "keen::ds::DetailScatteringInstanceData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1311740127, + "hash2": 2697121477, + "struct_fields": [ + { + "name": "packedWorldPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "scaleAndFadeout", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HighlightColorPaletteSettings", + "type_name_2": "HighlightColorPaletteSettings", + "qualified_name": "keen::ds::HighlightColorPaletteSettings", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 215189138, + "hash2": 823765259, + "struct_fields": [ + { + "name": "highlightAmount", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "highlightIntensity", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "invalidHighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 8 + }, + { + "name": "validHighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + }, + { + "name": "mutedHighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 16 + }, + { + "name": "group1HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 20 + }, + { + "name": "group2HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 24 + }, + { + "name": "group3HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 28 + }, + { + "name": "group4HighlightColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSurfaceMaterialSettings", + "type_name_2": "WeatherSurfaceMaterialSettings", + "qualified_name": "keen::ds::WeatherSurfaceMaterialSettings", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1513129300, + "hash2": 3646515409, + "struct_fields": [ + { + "name": "snowUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "snowScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "snowVertexNormalPower", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "snowVertexNormalCutoff", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "frostUVScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "frostScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "frostRoughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "frostPorosityScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "frostAlbedo", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + }, + { + "name": "frostPuddleAlbedo", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ZoneVisualizationSettings", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4014939587, + "hash2": 395354449, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderSystemResource", + "type_name_2": "RenderSystemResource", + "qualified_name": "keen::ds::RenderSystemResource", + "referenced_type_name": null, + "class_size": 592, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3290162530, + "hash2": 2249264679, + "struct_fields": [ + { + "name": "specularIblLut", + "type_name": "keen::ds::SpecularIblLutResource", + "type_hash": 2468157432, + "data_offset": 0 + }, + { + "name": "blueNoiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 20 + }, + { + "name": "blueNoiseRenderImage", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 40 + }, + { + "name": "globalSlopeDefinition", + "type_name": "keen::ObjectReference", + "type_hash": 3777686060, + "data_offset": 112 + }, + { + "name": "highlightColorPalette", + "type_name": "keen::ds::HighlightColorPaletteSettings", + "type_hash": 215189138, + "data_offset": 128 + }, + { + "name": "weatherSurfaceMaterialSettings", + "type_name": "keen::ds::WeatherSurfaceMaterialSettings", + "type_hash": 1513129300, + "data_offset": 164 + }, + { + "name": "verifyDecoObjectMeshCountLimit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 204 + }, + { + "name": "verifyDetailScatteringMeshCountLimit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 205 + }, + { + "name": "atmosphere", + "type_name": "keen::ObjectReference", + "type_hash": 1771067426, + "data_offset": 208 + }, + { + "name": "zoneVisualizationSettings", + "type_name": "keen::ObjectReference", + "type_hash": 4014939587, + "data_offset": 224 + }, + { + "name": "frostBlendMask", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 240 + }, + { + "name": "snowRoughness", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 256 + }, + { + "name": "snowAlbedo", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 272 + }, + { + "name": "snowNormal", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 288 + }, + { + "name": "frostBlendMaskRenderImage", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 304 + }, + { + "name": "snowRoughnessRenderImage", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 376 + }, + { + "name": "snowAlbedoRenderImage", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 448 + }, + { + "name": "snowNormalRenderImage", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 520 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkInstance", + "type_name_2": "RenderModelChunkInstance", + "qualified_name": "keen::ds::RenderModelChunkInstance", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2028072154, + "hash2": 4012601224, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 16 + }, + { + "name": "modelIndex", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 32 + }, + { + "name": "canBeCulled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 34 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RenderModelChunkInstance[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RenderModelChunkInstance", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4035262935, + "hash2": 2622233361, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkModelData", + "type_name_2": "RenderModelChunkModelData", + "qualified_name": "keen::ds::RenderModelChunkModelData", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3054520674, + "hash2": 4111040935, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "extents", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 4035262935, + "data_offset": 40 + }, + { + "name": "entityIndexMap", + "type_name": "keen::DsArray", + "type_hash": 3036009870, + "data_offset": 80 + }, + { + "name": "modelGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkModelResource", + "type_name_2": "RenderModelChunkModelResource", + "qualified_name": "keen::ds::RenderModelChunkModelResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1451637210, + "hash2": 1703011167, + "struct_fields": [ + { + "name": "modelData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "modelDataTypeSignatureHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderModelChunkGridResource", + "type_name_2": "RenderModelChunkGridResource", + "qualified_name": "keen::ds::RenderModelChunkGridResource", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1314238185, + "hash2": 2631742769, + "struct_fields": [ + { + "name": "chunkCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GBufferTemporalFilterConstants", + "type_name_2": "GBufferTemporalFilterConstants", + "qualified_name": "keen::ds::GBufferTemporalFilterConstants", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3523213379, + "hash2": 2506646299, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "temporalWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "prevViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentMergeStartConstants", + "type_name_2": "TransparentMergeStartConstants", + "qualified_name": "keen::ds::TransparentMergeStartConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2124122772, + "hash2": 1393957048, + "struct_fields": [ + { + "name": "instanceCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentMergePrepareConstants", + "type_name_2": "TransparentMergePrepareConstants", + "qualified_name": "keen::ds::TransparentMergePrepareConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1834107709, + "hash2": 3400881324, + "struct_fields": [ + { + "name": "maxTriangleCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelChunklet", + "type_name_2": "VoxelChunklet", + "qualified_name": "keen::ds::VoxelChunklet", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3440912459, + "hash2": 636999804, + "struct_fields": [ + { + "name": "sphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "normal", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVoxelMaterial", + "type_name_2": "GiVoxelMaterial", + "qualified_name": "keen::ds::GiVoxelMaterial", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 921497068, + "hash2": 3962637693, + "struct_fields": [ + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "roughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 24 + }, + { + "name": "metallic", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "reflectance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GiVoxelBuildingMaterial", + "type_name_2": "GiVoxelBuildingMaterial", + "qualified_name": "keen::ds::GiVoxelBuildingMaterial", + "referenced_type_name": null, + "class_size": 108, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1203894580, + "hash2": 3426833412, + "struct_fields": [ + { + "name": "top", + "type_name": "keen::ds::GiVoxelMaterial", + "type_hash": 921497068, + "data_offset": 0 + }, + { + "name": "side", + "type_name": "keen::ds::GiVoxelMaterial", + "type_hash": 921497068, + "data_offset": 36 + }, + { + "name": "bottom", + "type_name": "keen::ds::GiVoxelMaterial", + "type_hash": 921497068, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "GiVoxelBuildingMaterial[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::GiVoxelBuildingMaterial", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3151049087, + "hash2": 1109046881, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GiVoxelBuildingMaterialResource", + "type_name_2": "GiVoxelBuildingMaterialResource", + "qualified_name": "keen::ds::GiVoxelBuildingMaterialResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 467291464, + "hash2": 1674138043, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::DsArray", + "type_hash": 3151049087, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BakeWorldTriangleMaterialDataVertexShaderParameters", + "type_name_2": "BakeWorldTriangleMaterialDataVertexShaderParameters", + "qualified_name": "keen::ds::BakeWorldTriangleMaterialDataVertexShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2136782300, + "hash2": 1345629547, + "struct_fields": [ + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "perVertexBakingDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BakeWorldTriangleMaterialDataTriangleShaderParameters", + "type_name_2": "BakeWorldTriangleMaterialDataTriangleShaderParameters", + "qualified_name": "keen::ds::BakeWorldTriangleMaterialDataTriangleShaderParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4227886106, + "hash2": 2605252469, + "struct_fields": [ + { + "name": "triangleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "perVertexBakingDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "bakedTriangleMaterialDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "feedbackDataOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "debug", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PatchMeshVerticesParameters", + "type_name_2": "PatchMeshVerticesParameters", + "qualified_name": "keen::ds::PatchMeshVerticesParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2783209385, + "hash2": 2703282837, + "struct_fields": [ + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "vertexStride", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderBlendShapeSlot", + "type_name_2": "RenderBlendShapeSlot", + "qualified_name": "keen::ds::RenderBlendShapeSlot", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 405152515, + "hash2": 67966915, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::ObjectReference", + "type_hash": 3862406605, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringPass", + "type_name_2": "DetailScatteringPass", + "qualified_name": "keen::ds::DetailScatteringPass", + "referenced_type_name": "keen::DetailScatteringPass", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 605993029, + "hash2": 1346458558, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringError", + "type_name_2": "DetailScatteringError", + "qualified_name": "keen::ds::DetailScatteringError", + "referenced_type_name": "keen::DetailScatteringError", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2709103962, + "hash2": 987663916, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringDebugMode", + "type_name_2": "DetailScatteringDebugMode", + "qualified_name": "keen::ds::DetailScatteringDebugMode", + "referenced_type_name": "keen::DetailScatteringDebugMode", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2844821060, + "hash2": 162557599, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterModelData", + "type_name_2": "ScatterModelData", + "qualified_name": "keen::ds::ScatterModelData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 152087672, + "hash2": 1762783481, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ds::GpuModel", + "type_hash": 3381925364, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatteredObjectData", + "type_name_2": "ScatteredObjectData", + "qualified_name": "keen::ds::ScatteredObjectData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 800728537, + "hash2": 3901357076, + "struct_fields": [ + { + "name": "modelIndexAndLodIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "fadeout", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterTriangleCullingShaderParameters", + "type_name_2": "ScatterTriangleCullingShaderParameters", + "qualified_name": "keen::ds::ScatterTriangleCullingShaderParameters", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 281664604, + "hash2": 473376094, + "struct_fields": [ + { + "name": "cameraWorldPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 0 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "triangleBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + }, + { + "name": "frustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 80 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 176 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 240 + }, + { + "name": "chunkletBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 244 + }, + { + "name": "boundingSphereBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 248 + }, + { + "name": "maxScatterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 252 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterTriangleCullingPushConstants", + "type_name_2": "ScatterTriangleCullingPushConstants", + "qualified_name": "keen::ds::ScatterTriangleCullingPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2652504234, + "hash2": 2910099366, + "struct_fields": [ + { + "name": "chunkIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterChunkletCullingShaderParameters", + "type_name_2": "ScatterChunkletCullingShaderParameters", + "qualified_name": "keen::ds::ScatterChunkletCullingShaderParameters", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3699512198, + "hash2": 286321879, + "struct_fields": [ + { + "name": "cameraWorldPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 0 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "chunkletBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + }, + { + "name": "frustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 80 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 176 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 240 + }, + { + "name": "boundingSphereBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 244 + }, + { + "name": "maxScatterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 248 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterChunkletCullingPushConstants", + "type_name_2": "ScatterChunkletCullingPushConstants", + "qualified_name": "keen::ds::ScatterChunkletCullingPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3657883080, + "hash2": 1554251739, + "struct_fields": [ + { + "name": "jobCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterObjectPrepareShaderParameters", + "type_name_2": "ScatterObjectPrepareShaderParameters", + "qualified_name": "keen::ds::ScatterObjectPrepareShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1962501910, + "hash2": 3827240826, + "struct_fields": [ + { + "name": "targetGroupSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringShaderData", + "type_name_2": "DetailScatteringShaderData", + "qualified_name": "keen::ds::DetailScatteringShaderData", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 29, + "primitive_type": "Struct", + "hash1": 3976273549, + "hash2": 1903671417, + "struct_fields": [ + { + "name": "cameraWorldPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 0 + }, + { + "name": "scatteredObjectCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "scatteredObjectCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "scatteredCandidateCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 32 + }, + { + "name": "cameraCenteredViewProjection", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 80 + }, + { + "name": "frustumPlane0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 144 + }, + { + "name": "frustumPlane1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 160 + }, + { + "name": "frustumPlane2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 176 + }, + { + "name": "frustumPlane3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 192 + }, + { + "name": "frustumPlane4", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 208 + }, + { + "name": "terrainTessellation", + "type_name": "keen::ds::TessellatedMaterialConstants", + "type_hash": 2051491505, + "data_offset": 224 + }, + { + "name": "dynamicHeightmap", + "type_name": "keen::ds::DynamicHeightmapSamplingShaderData", + "type_hash": 1034593983, + "data_offset": 240 + }, + { + "name": "dynamicHeightmapValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 272 + }, + { + "name": "debugMode", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 276 + }, + { + "name": "debugValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 280 + }, + { + "name": "densityProbability", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 284 + }, + { + "name": "modelSizeFeedbackPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 288 + }, + { + "name": "distanceCullingThreshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 292 + }, + { + "name": "sizeCullingPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 296 + }, + { + "name": "permutationBucketCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 300 + }, + { + "name": "maxScatterDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 304 + }, + { + "name": "invMaxDistanceFadeLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 308 + }, + { + "name": "displacementFadeoutStart", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 312 + }, + { + "name": "displacementFadeoutEnd", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 316 + }, + { + "name": "displacementStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 320 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 336 + }, + { + "name": "occlusionCullingEnabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 400 + }, + { + "name": "triangleBinSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 404 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DetailScatteringChunkShaderData", + "type_name_2": "DetailScatteringChunkShaderData", + "qualified_name": "keen::ds::DetailScatteringChunkShaderData", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4084364972, + "hash2": 1016214763, + "struct_fields": [ + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "bakedTriangleMaterialDataOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "triangleCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "chunkletOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "chunkletCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterInstanceOffsetShaderData", + "type_name_2": "ScatterInstanceOffsetShaderData", + "qualified_name": "keen::ds::ScatterInstanceOffsetShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3708561598, + "hash2": 4012472272, + "struct_fields": [ + { + "name": "scatterModelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "debugMode", + "type_name": "keen::ds::DetailScatteringDebugMode", + "type_hash": 2844821060, + "data_offset": 8 + }, + { + "name": "debugValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "permutationBucketCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterInstancesShaderData", + "type_name_2": "ScatterInstancesShaderData", + "qualified_name": "keen::ds::ScatterInstancesShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4109844260, + "hash2": 3205689914, + "struct_fields": [ + { + "name": "scatteredObjectCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "debugMode", + "type_name": "keen::ds::DetailScatteringDebugMode", + "type_hash": 2844821060, + "data_offset": 4 + }, + { + "name": "debugValue", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "permutationBucketCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BiomeMap", + "type_name_2": "BiomeMap", + "qualified_name": "keen::ds::BiomeMap", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1681172373, + "hash2": 1462713688, + "struct_fields": [ + { + "name": "baseBiome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BiomeMapLayer", + "type_name_2": "BiomeMapLayer", + "qualified_name": "keen::ds::BiomeMapLayer", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 602393158, + "hash2": 1231586679, + "struct_fields": [ + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BiomeMapInfo", + "type_name_2": "BiomeMapInfo", + "qualified_name": "keen::ds::BiomeMapInfo", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3453046709, + "hash2": 2466262516, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::StaticArray", + "type_hash": 3271388114, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfCascadeData", + "type_name_2": "SdfCascadeData", + "qualified_name": "keen::ds::SdfCascadeData", + "referenced_type_name": null, + "class_size": 76, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3328016356, + "hash2": 2434733081, + "struct_fields": [ + { + "name": "ndcToSdfMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfShaderData", + "type_name_2": "SdfShaderData", + "qualified_name": "keen::ds::SdfShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2338636371, + "hash2": 3993777353, + "struct_fields": [ + { + "name": "sdfCascadeCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sdfInstanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "sdfBaseDescriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "sdfInvGridSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfDebugShaderParameters", + "type_name_2": "SdfDebugShaderParameters", + "qualified_name": "keen::ds::SdfDebugShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2031590572, + "hash2": 3250730594, + "struct_fields": [ + { + "name": "sdf", + "type_name": "keen::ds::SdfShaderData", + "type_hash": 2338636371, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfCaptureDebugShaderParameters", + "type_name_2": "SdfCaptureDebugShaderParameters", + "qualified_name": "keen::ds::SdfCaptureDebugShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2291971154, + "hash2": 4228546360, + "struct_fields": [ + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfVoxelRegion", + "type_name_2": "SdfVoxelRegion", + "qualified_name": "keen::ds::SdfVoxelRegion", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3055814694, + "hash2": 3298737731, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "bufferOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfUpdateShaderParameters", + "type_name_2": "SdfUpdateShaderParameters", + "qualified_name": "keen::ds::SdfUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 47593318, + "hash2": 1658258238, + "struct_fields": [ + { + "name": "newVoxelRegion0", + "type_name": "keen::ds::SdfVoxelRegion", + "type_hash": 3055814694, + "data_offset": 0 + }, + { + "name": "newVoxelRegion1", + "type_name": "keen::ds::SdfVoxelRegion", + "type_hash": 3055814694, + "data_offset": 32 + }, + { + "name": "newVoxelRegion2", + "type_name": "keen::ds::SdfVoxelRegion", + "type_hash": 3055814694, + "data_offset": 64 + }, + { + "name": "dirtyVoxelRegion", + "type_name": "keen::ds::SdfVoxelRegion", + "type_hash": 3055814694, + "data_offset": 96 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 128 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBakingShaderParameters", + "type_name_2": "SdfBakingShaderParameters", + "qualified_name": "keen::ds::SdfBakingShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2615422933, + "hash2": 3989368914, + "struct_fields": [ + { + "name": "voxelOrigin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "volumeSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "voxelSizeInMeters", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "targetOffset", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfFloodShaderParameters", + "type_name_2": "SdfFloodShaderParameters", + "qualified_name": "keen::ds::SdfFloodShaderParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4072526967, + "hash2": 3825740789, + "struct_fields": [ + { + "name": "stepSize", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfCascadeUpdateShaderParameters", + "type_name_2": "SdfCascadeUpdateShaderParameters", + "qualified_name": "keen::ds::SdfCascadeUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1218530308, + "hash2": 742730152, + "struct_fields": [ + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldChunkVoxelMaterialCopyShaderParameters", + "type_name_2": "WorldChunkVoxelMaterialCopyShaderParameters", + "qualified_name": "keen::ds::WorldChunkVoxelMaterialCopyShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 638844839, + "hash2": 1256955913, + "struct_fields": [ + { + "name": "dwordCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "innerSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "chunkIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "chunkData", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfModelShaderData", + "type_name_2": "SdfModelShaderData", + "qualified_name": "keen::ds::SdfModelShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1336032778, + "hash2": 268424934, + "struct_fields": [ + { + "name": "partCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "partOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfModelPartShaderData", + "type_name_2": "SdfModelPartShaderData", + "qualified_name": "keen::ds::SdfModelPartShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2701080067, + "hash2": 1147701503, + "struct_fields": [ + { + "name": "descriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfInstanceShaderData", + "type_name_2": "SdfInstanceShaderData", + "qualified_name": "keen::ds::SdfInstanceShaderData", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2442465080, + "hash2": 3823056095, + "struct_fields": [ + { + "name": "modelIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "partCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "partOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfInstancePartShaderData", + "type_name_2": "SdfInstancePartShaderData", + "qualified_name": "keen::ds::SdfInstancePartShaderData", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 809065933, + "hash2": 1437316670, + "struct_fields": [ + { + "name": "inverseTransform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "aabbMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "aabbMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfImageMaterialShaderData", + "type_name_2": "SdfImageMaterialShaderData", + "qualified_name": "keen::ds::SdfImageMaterialShaderData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 118899423, + "hash2": 2184324444, + "struct_fields": [ + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfSystemUpdateShaderParameters", + "type_name_2": "SdfSystemUpdateShaderParameters", + "qualified_name": "keen::ds::SdfSystemUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3666336091, + "hash2": 2376933682, + "struct_fields": [ + { + "name": "newModelCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "newModelPartCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "newMaterialCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfSceneUpdateShaderParameters", + "type_name_2": "SdfSceneUpdateShaderParameters", + "qualified_name": "keen::ds::SdfSceneUpdateShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1587775958, + "hash2": 3562612541, + "struct_fields": [ + { + "name": "newInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "newInstancePartCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfSystemShaderData", + "type_name_2": "SdfSystemShaderData", + "qualified_name": "keen::ds::SdfSystemShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 55449542, + "hash2": 421730111, + "struct_fields": [ + { + "name": "activeInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "activeInstancePartCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfAoTraceShaderParameters", + "type_name_2": "SdfAoTraceShaderParameters", + "qualified_name": "keen::ds::SdfAoTraceShaderParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3357479002, + "hash2": 3590171652, + "struct_fields": [ + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 0 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "radius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfAoFilterShaderParameters", + "type_name_2": "SdfAoFilterShaderParameters", + "qualified_name": "keen::ds::SdfAoFilterShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 372169185, + "hash2": 3835439753, + "struct_fields": [ + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "isHistoryValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhBuildMethod", + "type_name_2": "SdfBvhBuildMethod", + "qualified_name": "keen::ds::SdfBvhBuildMethod", + "referenced_type_name": "keen::SdfBvhBuildMethod", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2336072203, + "hash2": 2850047145, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhCommonInstanceData", + "type_name_2": "SdfBvhCommonInstanceData", + "qualified_name": "keen::ds::SdfBvhCommonInstanceData", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1244764900, + "hash2": 3129303734, + "struct_fields": [ + { + "name": "worldToUvwMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "uvwToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 48 + }, + { + "name": "aabbMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "descriptorIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 108 + }, + { + "name": "aabbMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhNodeShaderData", + "type_name_2": "SdfBvhNodeShaderData", + "qualified_name": "keen::ds::SdfBvhNodeShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2229218699, + "hash2": 2877224338, + "struct_fields": [ + { + "name": "aabbMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "aabbMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "count", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugVisualizeIntersectionShaderParameters", + "type_name_2": "SdfBvhDebugVisualizeIntersectionShaderParameters", + "qualified_name": "keen::ds::SdfBvhDebugVisualizeIntersectionShaderParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1586380181, + "hash2": 702726197, + "struct_fields": [ + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "cameraOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "farPlaneOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "farPlaneX", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + }, + { + "name": "farPlaneY", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "inverseTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugTraversalShaderParameters", + "type_name_2": "SdfBvhDebugTraversalShaderParameters", + "qualified_name": "keen::ds::SdfBvhDebugTraversalShaderParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 644553572, + "hash2": 2210040725, + "struct_fields": [ + { + "name": "rayOrigin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "rayDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "rayLength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugStepType", + "type_name_2": "SdfBvhDebugStepType", + "qualified_name": "keen::ds::SdfBvhDebugStepType", + "referenced_type_name": "keen::SdfBvhDebugStepType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3159346091, + "hash2": 3818221415, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugStepLeafShaderData", + "type_name_2": "SdfBvhDebugStepLeafShaderData", + "qualified_name": "keen::ds::SdfBvhDebugStepLeafShaderData", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 929745794, + "hash2": 1427777607, + "struct_fields": [ + { + "name": "instance", + "type_name": "keen::ds::SdfBvhCommonInstanceData", + "type_hash": 1244764900, + "data_offset": 0 + }, + { + "name": "boxHitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 124 + }, + { + "name": "sdfHitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 128 + }, + { + "name": "hitDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugStepInnerShaderData", + "type_name_2": "SdfBvhDebugStepInnerShaderData", + "qualified_name": "keen::ds::SdfBvhDebugStepInnerShaderData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2125415576, + "hash2": 3342381725, + "struct_fields": [ + { + "name": "aabbMin0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "aabbMax0", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "aabbMin1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + }, + { + "name": "aabbMax1", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "hitDistance0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "hitDistance1", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SdfBvhDebugStepShaderData", + "type_name_2": "SdfBvhDebugStepShaderData", + "qualified_name": "keen::ds::SdfBvhDebugStepShaderData", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2421267774, + "hash2": 3543620486, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::SdfBvhDebugStepType", + "type_hash": 3159346091, + "data_offset": 0 + }, + { + "name": "leaf", + "type_name": "keen::ds::SdfBvhDebugStepLeafShaderData", + "type_hash": 929745794, + "data_offset": 4 + }, + { + "name": "inner", + "type_name": "keen::ds::SdfBvhDebugStepInnerShaderData", + "type_hash": 2125415576, + "data_offset": 140 + }, + { + "name": "closestHit", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 196 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderSdfShadowShaderParameters", + "type_name_2": "RenderSdfShadowShaderParameters", + "qualified_name": "keen::ds::RenderSdfShadowShaderParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 848313391, + "hash2": 802332540, + "struct_fields": [ + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 0 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "sunConeAngle", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 80 + }, + { + "name": "frameId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 88 + }, + { + "name": "rayBias", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "isSdfCacheValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RasterShadowQuality", + "type_name_2": "RasterShadowQuality", + "qualified_name": "keen::ds::RasterShadowQuality", + "referenced_type_name": "keen::RasterShadowQuality", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4223326323, + "hash2": 716830159, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowAtlasMaskShaderParameters", + "type_name_2": "RenderShadowAtlasMaskShaderParameters", + "qualified_name": "keen::ds::RenderShadowAtlasMaskShaderParameters", + "referenced_type_name": null, + "class_size": 1184, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3537959987, + "hash2": 1844178895, + "struct_fields": [ + { + "name": "cameraCenteredSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 0 + }, + { + "name": "shadowAtlas", + "type_name": "keen::ds::RenderShadowAtlasShaderData", + "type_hash": 278385403, + "data_offset": 64 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 1152 + }, + { + "name": "texelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 1160 + }, + { + "name": "toLightDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 1168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowAtlasDebugShaderParameters", + "type_name_2": "RenderShadowAtlasDebugShaderParameters", + "qualified_name": "keen::ds::RenderShadowAtlasDebugShaderParameters", + "referenced_type_name": null, + "class_size": 1168, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3191065108, + "hash2": 3531861440, + "struct_fields": [ + { + "name": "cameraCenteredSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 0 + }, + { + "name": "shadowAtlas", + "type_name": "keen::ds::RenderShadowAtlasShaderData", + "type_hash": 278385403, + "data_offset": 64 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 1152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldShadowDebugShaderParameters", + "type_name_2": "VoxelWorldShadowDebugShaderParameters", + "qualified_name": "keen::ds::VoxelWorldShadowDebugShaderParameters", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3264619867, + "hash2": 320068954, + "struct_fields": [ + { + "name": "voxelWorldShadowMap", + "type_name": "keen::ds::VoxelWorldShadowMapShaderData", + "type_hash": 3808334302, + "data_offset": 0 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 160 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrimeShadowMapConstants", + "type_name_2": "PrimeShadowMapConstants", + "qualified_name": "keen::ds::PrimeShadowMapConstants", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1633570329, + "hash2": 1349488396, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "depthPyramidMip", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + }, + { + "name": "depthPyramidAspectRatio", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "tileCountX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + }, + { + "name": "tileCountY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 156 + }, + { + "name": "useCameraCenteredPosition", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "cameraPosition", + "type_name": "keen::ds::PackedShaderWorldPositionUniform", + "type_hash": 955272019, + "data_offset": 176 + }, + { + "name": "cameraCenteredToClipSpaceMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 192 + }, + { + "name": "clipSpaceToCameraCenteredMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowMaskQuality", + "type_name_2": "RenderShadowMaskQuality", + "qualified_name": "keen::ds::RenderShadowMaskQuality", + "referenced_type_name": "keen::RenderShadowMaskQuality", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2748987404, + "hash2": 1135664062, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowMaskFillShaderParameters", + "type_name_2": "RenderShadowMaskFillShaderParameters", + "qualified_name": "keen::ds::RenderShadowMaskFillShaderParameters", + "referenced_type_name": null, + "class_size": 624, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 369453759, + "hash2": 2208485025, + "struct_fields": [ + { + "name": "sdf", + "type_name": "keen::ds::SdfShaderData", + "type_hash": 2338636371, + "data_offset": 0 + }, + { + "name": "lightCache", + "type_name": "keen::ds::LightCacheLookupShaderData", + "type_hash": 3048944842, + "data_offset": 16 + }, + { + "name": "inverseViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 416 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 480 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 496 + }, + { + "name": "tileRatio", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 560 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 568 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 572 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 576 + }, + { + "name": "sunConeAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 588 + }, + { + "name": "rayBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 592 + }, + { + "name": "visibleGroupMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 596 + }, + { + "name": "writeDebugOutput", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 600 + }, + { + "name": "enablePixelSdfCache", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 604 + }, + { + "name": "enableDebugTarget", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 608 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowMaskFilterShaderParameters", + "type_name_2": "RenderShadowMaskFilterShaderParameters", + "qualified_name": "keen::ds::RenderShadowMaskFilterShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 221995960, + "hash2": 721358903, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "historyWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderShadowMaskUpsampleShaderParameters", + "type_name_2": "RenderShadowMaskUpsampleShaderParameters", + "qualified_name": "keen::ds::RenderShadowMaskUpsampleShaderParameters", + "referenced_type_name": null, + "class_size": 1184, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2660252541, + "hash2": 2126838579, + "struct_fields": [ + { + "name": "shadowAtlas", + "type_name": "keen::ds::RenderShadowAtlasShaderData", + "type_hash": 278385403, + "data_offset": 0 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 1088 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 1096 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 1104 + }, + { + "name": "pixelSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderContactShadowShaderParameters", + "type_name_2": "RenderContactShadowShaderParameters", + "qualified_name": "keen::ds::RenderContactShadowShaderParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1868611752, + "hash2": 732332331, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "unjitteredProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 128 + }, + { + "name": "worldSpaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 176 + }, + { + "name": "rcpNearPlaneDistance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 240 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 244 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 256 + }, + { + "name": "frameId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 264 + }, + { + "name": "discardContents", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 268 + }, + { + "name": "stepCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 272 + }, + { + "name": "rayLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 276 + }, + { + "name": "depthThickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 280 + }, + { + "name": "hardness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 284 + }, + { + "name": "combineWithDenoisedShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 288 + }, + { + "name": "enableJitter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 292 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RenderContactShadow2ShaderParameters", + "type_name_2": "RenderContactShadow2ShaderParameters", + "qualified_name": "keen::ds::RenderContactShadow2ShaderParameters", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1621568400, + "hash2": 3544623102, + "struct_fields": [ + { + "name": "lightCoordinate", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "invDepthTextureSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "waveOffset", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 24 + }, + { + "name": "subSurfaceShadowStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UnpackShadowMaskShaderParameters", + "type_name_2": "UnpackShadowMaskShaderParameters", + "qualified_name": "keen::ds::UnpackShadowMaskShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2109885328, + "hash2": 897916377, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PackShadowMaskShaderParameters", + "type_name_2": "PackShadowMaskShaderParameters", + "qualified_name": "keen::ds::PackShadowMaskShaderParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 198649787, + "hash2": 897916377, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SharpnessParameters", + "type_name_2": "SharpnessParameters", + "qualified_name": "keen::ds::SharpnessParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 26, + "primitive_type": "Struct", + "hash1": 1136792986, + "hash2": 1768268651, + "struct_fields": [ + { + "name": "kDetectRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "kDetectThres", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "kMinContrastRatio", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "kRatioNorm", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "kContrastBoost", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "kEps", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "kSharpStartY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "kSharpScaleY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "kSharpStrengthMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "kSharpStrengthScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "kSharpLimitMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "kSharpLimitScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "kScaleX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "kScaleY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "kDstNormX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "kDstNormY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "kSrcNormX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "kSrcNormY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "kInputViewportOriginX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + }, + { + "name": "kInputViewportOriginY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 76 + }, + { + "name": "kInputViewportWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 80 + }, + { + "name": "kInputViewportHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 84 + }, + { + "name": "kOutputViewportOriginX", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + }, + { + "name": "kOutputViewportOriginY", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "kOutputViewportWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 96 + }, + { + "name": "kOutputViewportHeight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 100 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleMaterial", + "type_name_2": "SimpleMaterial", + "qualified_name": "keen::ds::SimpleMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 52, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1759939280, + "hash2": 1537858418, + "struct_fields": [ + { + "name": "enableTextureStreaming", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "receiveShadows", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "colorMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + }, + { + "name": "normalMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 20 + }, + { + "name": "tintColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleRfxRenderMaterial", + "type_name_2": "SimpleRfxRenderMaterial", + "qualified_name": "keen::ds::SimpleRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4018758638, + "hash2": 2568341409, + "struct_fields": [ + { + "name": "colorMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 0 + }, + { + "name": "receiveShadows", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "tintColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleVoxelPbrMaterial", + "type_name_2": "SimpleVoxelPbrMaterial", + "qualified_name": "keen::ds::SimpleVoxelPbrMaterial", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3893587456, + "hash2": 1385744075, + "struct_fields": [ + { + "name": "albedo", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "roughness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "emissive", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "metallic", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "reflectance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleWorldMaterialShaderLayerWeights", + "type_name_2": "SimpleWorldMaterialShaderLayerWeights", + "qualified_name": "keen::ds::SimpleWorldMaterialShaderLayerWeights", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 329962573, + "hash2": 1699045861, + "struct_fields": [ + { + "name": "sideWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "bottomWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "topWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "flatnessWeight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "map0Weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "map1Weight", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "flatness", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "sideParameters", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleWorldMaterialBlendMap", + "type_name_2": "SimpleWorldMaterialBlendMap", + "qualified_name": "keen::ds::SimpleWorldMaterialBlendMap", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1873151965, + "hash2": 3188779708, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 0 + }, + { + "name": "tilingFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleVoxelLayerInfo", + "type_name_2": "SimpleVoxelLayerInfo", + "qualified_name": "keen::ds::SimpleVoxelLayerInfo", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2791052372, + "hash2": 598501721, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleWorldMaterialResource", + "type_name_2": "SimpleWorldMaterialResource", + "qualified_name": "keen::ds::SimpleWorldMaterialResource", + "referenced_type_name": null, + "class_size": 736, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1509186514, + "hash2": 3044209545, + "struct_fields": [ + { + "name": "layerInfosParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 0 + }, + { + "name": "layerWeightsParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 184 + }, + { + "name": "layerPbrMaterialsParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 368 + }, + { + "name": "blendMapsParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 552 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SimpleBuildingMaterialResource", + "type_name_2": "SimpleBuildingMaterialResource", + "qualified_name": "keen::ds::SimpleBuildingMaterialResource", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 462515700, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeInstanceData", + "type_name_2": "SkinnedTreeInstanceData", + "qualified_name": "keen::ds::SkinnedTreeInstanceData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 236132942, + "hash2": 9277062, + "struct_fields": [ + { + "name": "skinMatrixOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelSpringParameters", + "type_name_2": "SkinnedTreeModelSpringParameters", + "qualified_name": "keen::ds::SkinnedTreeModelSpringParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2836038443, + "hash2": 3806290264, + "struct_fields": [ + { + "name": "mass", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "constant", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "damping", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "drag", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelParameters", + "type_name_2": "SkinnedTreeModelParameters", + "qualified_name": "keen::ds::SkinnedTreeModelParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3361074070, + "hash2": 1721058538, + "struct_fields": [ + { + "name": "trunk", + "type_name": "keen::ds::SkinnedTreeModelSpringParameters", + "type_hash": 2836038443, + "data_offset": 0 + }, + { + "name": "branch", + "type_name": "keen::ds::SkinnedTreeModelSpringParameters", + "type_hash": 2836038443, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkinnedTreeModelSpringData", + "type_name_2": "SkinnedTreeModelSpringData", + "qualified_name": "keen::ds::SkinnedTreeModelSpringData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1409198299, + "hash2": 3806290264, + "struct_fields": [ + { + "name": "mass", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "constant", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "damping", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "drag", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuSkinVector3", + "type_name_2": "CpuSkinVector3", + "qualified_name": "keen::ds::CpuSkinVector3", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 252034630, + "hash2": 2319093115, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::ds::vf32_data", + "type_hash": 1323680055, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::ds::vf32_data", + "type_hash": 1323680055, + "data_offset": 16 + }, + { + "name": "z", + "type_name": "keen::ds::vf32_data", + "type_hash": 1323680055, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuSkinMatrix33", + "type_name_2": "CpuSkinMatrix33", + "qualified_name": "keen::ds::CpuSkinMatrix33", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1468275597, + "hash2": 2319093115, + "struct_fields": [ + { + "name": "x", + "type_name": "keen::ds::vf32_data", + "type_hash": 1323680055, + "data_offset": 0 + }, + { + "name": "y", + "type_name": "keen::ds::vf32_data", + "type_hash": 1323680055, + "data_offset": 16 + }, + { + "name": "z", + "type_name": "keen::ds::vf32_data", + "type_hash": 1323680055, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CpuSkinMatrix43", + "type_name_2": "CpuSkinMatrix43", + "qualified_name": "keen::ds::CpuSkinMatrix43", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1333907550, + "hash2": 4286963587, + "struct_fields": [ + { + "name": "rot", + "type_name": "keen::ds::CpuSkinMatrix33", + "type_hash": 1468275597, + "data_offset": 0 + }, + { + "name": "pos", + "type_name": "keen::ds::vf32_data", + "type_hash": 1323680055, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkyTextureMaterial", + "type_name_2": "SkyTextureMaterial", + "qualified_name": "keen::ds::SkyTextureMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2503691534, + "hash2": 3015111128, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "textureAddressMode", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SkyTextureRfxRenderMaterial", + "type_name_2": "SkyTextureRfxRenderMaterial", + "qualified_name": "keen::ds::SkyTextureRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2465578956, + "hash2": 497185059, + "struct_fields": [ + { + "name": "texture", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 0 + }, + { + "name": "sampler", + "type_name": "keen::ds::BindlessSampler", + "type_hash": 1608001563, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementUpdateParameters", + "type_name_2": "SnowDisplacementUpdateParameters", + "qualified_name": "keen::ds::SnowDisplacementUpdateParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 3123667334, + "hash2": 1073383135, + "struct_fields": [ + { + "name": "worldPixelSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "worldTextureSize", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "worldTileTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "worldPositionTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "oldWorldTileTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "oldWorldPositionTopLeft", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 32 + }, + { + "name": "worldHeightScale", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "rcpHeightScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "fadeOutHeightFill", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "heightMin", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "heightMax", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "oldHeightMin", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + }, + { + "name": "bodyCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SnowDisplacementBody", + "type_name_2": "SnowDisplacementBody", + "qualified_name": "keen::ds::SnowDisplacementBody", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4270784831, + "hash2": 1237218975, + "struct_fields": [ + { + "name": "packedPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "rcpMinSoftness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "rcpMaxSoftness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + }, + { + "name": "heightNoiseScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SsaoQuality", + "type_name_2": "SsaoQuality", + "qualified_name": "keen::ds::SsaoQuality", + "referenced_type_name": "keen::SsaoQuality", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2719407466, + "hash2": 567243800, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SsaoData", + "type_name_2": "SsaoData", + "qualified_name": "keen::ds::SsaoData", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 483329865, + "hash2": 3867170807, + "struct_fields": [ + { + "name": "viewspaceReconstructionData", + "type_name": "keen::ds::ViewSpacePositionReconstructionData", + "type_hash": 200673675, + "data_offset": 0 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 64 + }, + { + "name": "_padding0", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 72 + }, + { + "name": "ssaoIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "ssaoBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "ssaoScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "ssaoSampleRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StochasticScreenSpaceReflectionsConstantData", + "type_name_2": "StochasticScreenSpaceReflectionsConstantData", + "qualified_name": "keen::ds::StochasticScreenSpaceReflectionsConstantData", + "referenced_type_name": null, + "class_size": 496, + "fields_count": 34, + "primitive_type": "Struct", + "hash1": 1399910038, + "hash2": 1843471814, + "struct_fields": [ + { + "name": "g_inv_view_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "g_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 64 + }, + { + "name": "g_inv_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 128 + }, + { + "name": "g_view", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 192 + }, + { + "name": "g_inv_view", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 240 + }, + { + "name": "g_prev_view_proj", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 288 + }, + { + "name": "g_camera_world_position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 352 + }, + { + "name": "g_buffer_dimensions", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 368 + }, + { + "name": "g_inv_buffer_dimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 376 + }, + { + "name": "g_render_dimensions", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 384 + }, + { + "name": "g_inv_render_dimensions", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 392 + }, + { + "name": "g_temporal_stability_factor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 400 + }, + { + "name": "g_depth_buffer_thickness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 404 + }, + { + "name": "g_depth_buffer_thickness_far", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 408 + }, + { + "name": "g_roughness_threshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 412 + }, + { + "name": "g_temporal_variance_threshold", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 416 + }, + { + "name": "g_sdf_ray_max_distance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 420 + }, + { + "name": "g_sdf_ray_start_offset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 424 + }, + { + "name": "g_sdf_hit_offset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 428 + }, + { + "name": "g_frame_index", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 432 + }, + { + "name": "g_max_traversal_intersections", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 436 + }, + { + "name": "g_min_traversal_occupancy", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 440 + }, + { + "name": "g_most_detailed_mip", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 444 + }, + { + "name": "g_samples_per_quad", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 448 + }, + { + "name": "g_temporal_variance_guided_tracing_enabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 452 + }, + { + "name": "g_num_mips", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 456 + }, + { + "name": "g_resolution_downscale", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 460 + }, + { + "name": "g_reflect_background", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 464 + }, + { + "name": "g_debug_reflection_rays", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 468 + }, + { + "name": "g_edge_bleeding_max_distance", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 472 + }, + { + "name": "g_edge_bleeding_offset", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 476 + }, + { + "name": "g_gi_enabled", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 480 + }, + { + "name": "g_exposure", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 484 + }, + { + "name": "g_ground_truth_specular", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 488 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StochasticScreenSpaceReflectionsUpscaleData", + "type_name_2": "StochasticScreenSpaceReflectionsUpscaleData", + "qualified_name": "keen::ds::StochasticScreenSpaceReflectionsUpscaleData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3086139203, + "hash2": 2067847428, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DebugRootConstantData", + "type_name_2": "DebugRootConstantData", + "qualified_name": "keen::ds::DebugRootConstantData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3693221722, + "hash2": 1445851346, + "struct_fields": [ + { + "name": "debug_mode", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ApplyReflectionsConstants", + "type_name_2": "ApplyReflectionsConstants", + "qualified_name": "keen::ds::ApplyReflectionsConstants", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 879904430, + "hash2": 546015496, + "struct_fields": [ + { + "name": "clipSpaceToCameraCenteredMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 72 + }, + { + "name": "specularMax", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 80 + }, + { + "name": "enableHorizonBasedOcclusion", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 84 + }, + { + "name": "giLightFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 88 + }, + { + "name": "flags", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 92 + }, + { + "name": "specularReflectionsFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "groundTruthSpecular", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "writeToSceneBrightness", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerShaderParameters", + "type_name_2": "SurfacePickerShaderParameters", + "qualified_name": "keen::ds::SurfacePickerShaderParameters", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 4227782125, + "hash2": 2415004536, + "struct_fields": [ + { + "name": "fogGrid", + "type_name": "keen::ds::VolumetricFogGridShaderData", + "type_hash": 2243135612, + "data_offset": 0 + }, + { + "name": "focusPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 496 + }, + { + "name": "chunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 508 + }, + { + "name": "seed", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 512 + }, + { + "name": "pickingRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 516 + }, + { + "name": "debugDrawPicks", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 520 + }, + { + "name": "enableDisplacement", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 524 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerShaderData", + "type_name_2": "SurfacePickerShaderData", + "qualified_name": "keen::ds::SurfacePickerShaderData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2891231097, + "hash2": 3921619574, + "struct_fields": [ + { + "name": "binSize", + "type_name": "keen::StaticArray", + "type_hash": 1840397408, + "data_offset": 0 + }, + { + "name": "binOffset", + "type_name": "keen::StaticArray", + "type_hash": 1840397408, + "data_offset": 24 + }, + { + "name": "binPickIndex", + "type_name": "keen::StaticArray", + "type_hash": 1840397408, + "data_offset": 48 + }, + { + "name": "culledChunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 72 + }, + { + "name": "pointCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerPointShaderData", + "type_name_2": "SurfacePickerPointShaderData", + "qualified_name": "keen::ds::SurfacePickerPointShaderData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3089942959, + "hash2": 2731988086, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SurfacePickerBakedDisplacementShaderData", + "type_name_2": "SurfacePickerBakedDisplacementShaderData", + "qualified_name": "keen::ds::SurfacePickerBakedDisplacementShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1360335633, + "hash2": 2260864343, + "struct_fields": [ + { + "name": "displacement", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "displacementTop", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "displacementBottom", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "displacementSide", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingCursorMaterial", + "type_name_2": "TerraformingCursorMaterial", + "qualified_name": "keen::ds::TerraformingCursorMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2324361824, + "hash2": 670590056, + "struct_fields": [ + { + "name": "noiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "noiseUvScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "ringThickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "ringColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 32 + }, + { + "name": "fillColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerraformingCursorRfxRenderMaterial", + "type_name_2": "TerraformingCursorRfxRenderMaterial", + "qualified_name": "keen::ds::TerraformingCursorRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 709609374, + "hash2": 2693316110, + "struct_fields": [ + { + "name": "noiseUvScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "noiseMap", + "type_name": "keen::ds::BindlessTexture3D_float", + "type_hash": 3605563570, + "data_offset": 12 + }, + { + "name": "ringColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "ringThickness", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "fillColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TextureInfo", + "type_name_2": "TextureInfo", + "qualified_name": "keen::ds::TextureInfo", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2359221422, + "hash2": 2834389945, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "arraySize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 6 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 9 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 10 + }, + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TextureSizeInfo", + "type_name_2": "TextureSizeInfo", + "qualified_name": "keen::ds::TextureSizeInfo", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3183636859, + "hash2": 1661279841, + "struct_fields": [ + { + "name": "info", + "type_name": "keen::ds::TextureInfo", + "type_hash": 2359221422, + "data_offset": 0 + }, + { + "name": "sources", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentMaterial", + "type_name_2": "TransparentMaterial", + "qualified_name": "keen::ds::TransparentMaterial", + "referenced_type_name": "keen::ds::Material", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2773472498, + "hash2": 1505674715, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransparentInstanceFlag", + "type_name_2": "TransparentInstanceFlag", + "qualified_name": "keen::ds::TransparentInstanceFlag", + "referenced_type_name": "keen::TransparentInstanceFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 475995194, + "hash2": 1376702452, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TransparentInstanceData", + "type_name_2": "TransparentInstanceData", + "qualified_name": "keen::ds::TransparentInstanceData", + "referenced_type_name": null, + "class_size": 164, + "fields_count": 28, + "primitive_type": "Struct", + "hash1": 3407094816, + "hash2": 1967671498, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 12 + }, + { + "name": "instanceOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "image", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 20 + }, + { + "name": "imageSampler", + "type_name": "keen::ds::BindlessSampler", + "type_hash": 1608001563, + "data_offset": 24 + }, + { + "name": "uvDistortionMapSampler", + "type_name": "keen::ds::BindlessSampler", + "type_hash": 1608001563, + "data_offset": 28 + }, + { + "name": "edgeFadeOutFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + }, + { + "name": "depthFadeDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "rotation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 52 + }, + { + "name": "scale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 68 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "alpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "uvOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 96 + }, + { + "name": "uvScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 104 + }, + { + "name": "uvDistortionOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 112 + }, + { + "name": "uvDistortionScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 120 + }, + { + "name": "uvDistortionStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "uvDistortionMap", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 132 + }, + { + "name": "alphaClipValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 136 + }, + { + "name": "alphaClipHalfRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 140 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 144 + }, + { + "name": "motionVectorImage", + "type_name": "keen::ds::BindlessTexture2D_float4", + "type_hash": 3918846145, + "data_offset": 148 + }, + { + "name": "motionVectorScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 152 + }, + { + "name": "flipbookTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + }, + { + "name": "encodedFlipbookSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TransparentRfxRenderMaterial", + "type_name_2": "TransparentRfxRenderMaterial", + "qualified_name": "keen::ds::TransparentRfxRenderMaterial", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 780173600, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BoolMask", + "type_name_2": "BoolMask", + "qualified_name": "keen::ds::BoolMask", + "referenced_type_name": "keen::BoolMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 734146335, + "hash2": 1413765044, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxSamplerParameters", + "type_name_2": "VfxSamplerParameters", + "qualified_name": "keen::ds::VfxSamplerParameters", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4129489775, + "hash2": 2908078067, + "struct_fields": [ + { + "name": "addressU", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 0 + }, + { + "name": "addressV", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 1 + }, + { + "name": "addressW", + "type_name": "keen::ds::RenderSamplerAddressMode", + "type_hash": 3326579752, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ShaderVariableComponentType", + "type_name_2": "ShaderVariableComponentType", + "qualified_name": "keen::ds::ShaderVariableComponentType", + "referenced_type_name": "keen::ShaderVariableComponentType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2635072821, + "hash2": 2642333783, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ShaderVariable", + "type_name_2": "ShaderVariable", + "qualified_name": "keen::ds::ShaderVariable", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 652687982, + "hash2": 2956869512, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "componentType", + "type_name": "keen::ds::ShaderVariableComponentType", + "type_hash": 2635072821, + "data_offset": 40 + }, + { + "name": "componentCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 41 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBufferMemberComponentType", + "type_name_2": "VfxBufferMemberComponentType", + "qualified_name": "keen::ds::VfxBufferMemberComponentType", + "referenced_type_name": "keen::VfxBufferMemberComponentType", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1859556116, + "hash2": 2834974351, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxBufferMember", + "type_name_2": "VfxBufferMember", + "qualified_name": "keen::ds::VfxBufferMember", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4095603297, + "hash2": 1445760639, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "componentCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "componentType", + "type_name": "keen::ds::VfxBufferMemberComponentType", + "type_hash": 1859556116, + "data_offset": 44 + }, + { + "name": "offsetInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxBufferMember[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxBufferMember", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2834439192, + "hash2": 778881389, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleStateBufferInfo", + "type_name_2": "VfxParticleStateBufferInfo", + "qualified_name": "keen::ds::VfxParticleStateBufferInfo", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3586923194, + "hash2": 1353914784, + "struct_fields": [ + { + "name": "members", + "type_name": "keen::DsArray", + "type_hash": 2834439192, + "data_offset": 0 + }, + { + "name": "sizeInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterType", + "type_name_2": "VfxParameterType", + "qualified_name": "keen::ds::VfxParameterType", + "referenced_type_name": "keen::VfxParameterType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2838073520, + "hash2": 3098144724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxMeshPatchPointData", + "type_name_2": "VfxMeshPatchPointData", + "qualified_name": "keen::ds::VfxMeshPatchPointData", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3150963548, + "hash2": 2268573614, + "struct_fields": [ + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "vertexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 8 + }, + { + "name": "indexData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 24 + }, + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelPatchPointData", + "type_name_2": "VfxModelPatchPointData", + "qualified_name": "keen::ds::VfxModelPatchPointData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2071403454, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Decal", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2126566089, + "hash2": 2119489579, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxDecalPatchPointData", + "type_name_2": "VfxDecalPatchPointData", + "qualified_name": "keen::ds::VfxDecalPatchPointData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 429985906, + "hash2": 3397553792, + "struct_fields": [ + { + "name": "decal", + "type_name": "keen::ObjectReference", + "type_hash": 2126566089, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxImagePatchPointData", + "type_name_2": "VfxImagePatchPointData", + "qualified_name": "keen::ds::VfxImagePatchPointData", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1261231758, + "hash2": 3082221184, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "depth", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 4 + }, + { + "name": "sampler", + "type_name": "keen::ds::VfxSamplerParameters", + "type_hash": 4129489775, + "data_offset": 6 + }, + { + "name": "levelCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 9 + }, + { + "name": "type", + "type_name": "keen::TextureType", + "type_hash": 698929185, + "data_offset": 10 + }, + { + "name": "format", + "type_name": "keen::PixelFormat", + "type_hash": 3407385265, + "data_offset": 11 + }, + { + "name": "content", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 12 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEmitterPatchPointData", + "type_name_2": "VfxEmitterPatchPointData", + "qualified_name": "keen::ds::VfxEmitterPatchPointData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2642950693, + "hash2": 2075509868, + "struct_fields": [ + { + "name": "childIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCurvePatchPointData", + "type_name_2": "VfxCurvePatchPointData", + "qualified_name": "keen::ds::VfxCurvePatchPointData", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3953177956, + "hash2": 3460271874, + "struct_fields": [ + { + "name": "samples", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "startTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "totalTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "sampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleParameterPatchPointType", + "type_name_2": "VfxParticleParameterPatchPointType", + "qualified_name": "keen::ds::VfxParticleParameterPatchPointType", + "referenced_type_name": "keen::VfxParticleParameterPatchPointType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2783910082, + "hash2": 58554855, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleParameterPatchPoint", + "type_name_2": "VfxParticleParameterPatchPoint", + "qualified_name": "keen::ds::VfxParticleParameterPatchPoint", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2185184562, + "hash2": 3605222882, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::VfxParticleParameterPatchPointType", + "type_hash": 2783910082, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "dataIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxParticleParameterPatchPoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxParticleParameterPatchPoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3573667931, + "hash2": 4235111466, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxImagePatchPointData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxImagePatchPointData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3786330503, + "hash2": 1031415456, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxMeshPatchPointData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxMeshPatchPointData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2808345579, + "hash2": 1705596651, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxModelPatchPointData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxModelPatchPointData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 435810447, + "hash2": 561275734, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxEmitterPatchPointData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxEmitterPatchPointData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2779745994, + "hash2": 2879266748, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxCurvePatchPointData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxCurvePatchPointData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3751949545, + "hash2": 287182929, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxDecalPatchPointData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxDecalPatchPointData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3370275743, + "hash2": 1722769631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleUniformData", + "type_name_2": "VfxParticleUniformData", + "qualified_name": "keen::ds::VfxParticleUniformData", + "referenced_type_name": null, + "class_size": 296, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 765773649, + "hash2": 1591648268, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "patchPoints", + "type_name": "keen::DsArray", + "type_hash": 3573667931, + "data_offset": 16 + }, + { + "name": "imageData", + "type_name": "keen::DsArray", + "type_hash": 3786330503, + "data_offset": 56 + }, + { + "name": "meshData", + "type_name": "keen::DsArray", + "type_hash": 2808345579, + "data_offset": 96 + }, + { + "name": "modelData", + "type_name": "keen::DsArray", + "type_hash": 435810447, + "data_offset": 136 + }, + { + "name": "emitterData", + "type_name": "keen::DsArray", + "type_hash": 2779745994, + "data_offset": 176 + }, + { + "name": "curveData", + "type_name": "keen::DsArray", + "type_hash": 3751949545, + "data_offset": 216 + }, + { + "name": "decalData", + "type_name": "keen::DsArray", + "type_hash": 3370275743, + "data_offset": 256 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleFeature", + "type_name_2": "VfxParticleFeature", + "qualified_name": "keen::ds::VfxParticleFeature", + "referenced_type_name": "keen::VfxParticleFeature", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1727700923, + "hash2": 3740139109, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleFeatureMask", + "type_name_2": "VfxParticleFeatureMask", + "qualified_name": "keen::ds::VfxParticleFeatureMask", + "referenced_type_name": "keen::VfxParticleFeatureMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 572714479, + "hash2": 2349443481, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleResource", + "type_name_2": "VfxParticleResource", + "qualified_name": "keen::ds::VfxParticleResource", + "referenced_type_name": null, + "class_size": 384, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3322730163, + "hash2": 1167060162, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "parent", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "stateSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "code", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 52 + }, + { + "name": "strippedCode", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 68 + }, + { + "name": "uniformData", + "type_name": "keen::ds::VfxParticleUniformData", + "type_hash": 765773649, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterDescription", + "type_name_2": "VfxUserEffectParameterDescription", + "qualified_name": "keen::ds::VfxUserEffectParameterDescription", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 16800312, + "hash2": 1582455745, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "nameHash", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "offset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "sizeInBytes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "inheritanceKey", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxUserEffectParameterDescription[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxUserEffectParameterDescription", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4019094715, + "hash2": 298638390, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxParticleResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxParticleResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4033771170, + "hash2": 1708323248, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxParticleStateBufferInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxParticleStateBufferInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2005493999, + "hash2": 3830953183, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxResource", + "type_name_2": "VfxResource", + "qualified_name": "keen::ds::VfxResource", + "referenced_type_name": null, + "class_size": 248, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 198644077, + "hash2": 3600821635, + "struct_fields": [ + { + "name": "parameterHash", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::DsArray", + "type_hash": 4019094715, + "data_offset": 8 + }, + { + "name": "defaultData", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 48 + }, + { + "name": "particles", + "type_name": "keen::DsArray", + "type_hash": 4033771170, + "data_offset": 112 + }, + { + "name": "stateInfos", + "type_name": "keen::DsArray", + "type_hash": 2005493999, + "data_offset": 152 + }, + { + "name": "cullingDistanceMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "cullingDistanceMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "killTimeInSeconds", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VfxParticleDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2590329075, + "hash2": 2290780344, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxNode", + "type_name_2": "VfxNode", + "qualified_name": "keen::ds::VfxNode", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1800289461, + "hash2": 1272198416, + "struct_fields": [ + { + "name": "enabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "particle", + "type_name": "keen::ObjectReference", + "type_hash": 2590329075, + "data_offset": 4 + }, + { + "name": "maxCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxDefinition", + "type_name_2": "VfxDefinition", + "qualified_name": "keen::ds::VfxDefinition", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2067599400, + "hash2": 1216528701, + "struct_fields": [ + { + "name": "cullingDistanceMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "cullingDistanceMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "killTimeInSeconds", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleDefinition", + "type_name_2": "VfxParticleDefinition", + "qualified_name": "keen::ds::VfxParticleDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2574821466, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleValueKind", + "type_name_2": "VfxParticleValueKind", + "qualified_name": "keen::ds::VfxParticleValueKind", + "referenced_type_name": "keen::VfxParticleValueKind", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 442470462, + "hash2": 1788056504, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinitionBase", + "type_name_2": "VfxParameterDefinitionBase", + "qualified_name": "keen::ds::VfxParameterDefinitionBase", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3287336644, + "hash2": 3986267505, + "struct_fields": [ + { + "name": "kind", + "type_name": "keen::ds::VfxParticleValueKind", + "type_hash": 442470462, + "data_offset": 0 + }, + { + "name": "expression", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float", + "type_name_2": "VfxParameterDefinition_Float", + "qualified_name": "keen::ds::VfxParameterDefinition_Float", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1280980368, + "hash2": 3116394667, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float2", + "type_name_2": "VfxParameterDefinition_Float2", + "qualified_name": "keen::ds::VfxParameterDefinition_Float2", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3556929030, + "hash2": 2580412310, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float3", + "type_name_2": "VfxParameterDefinition_Float3", + "qualified_name": "keen::ds::VfxParameterDefinition_Float3", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3573706649, + "hash2": 3869197683, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Float4", + "type_name_2": "VfxParameterDefinition_Float4", + "qualified_name": "keen::ds::VfxParameterDefinition_Float4", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3590484268, + "hash2": 447732796, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int", + "type_name_2": "VfxParameterDefinition_Int", + "qualified_name": "keen::ds::VfxParameterDefinition_Int", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1830557611, + "hash2": 3744654445, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int2", + "type_name_2": "VfxParameterDefinition_Int2", + "qualified_name": "keen::ds::VfxParameterDefinition_Int2", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1547249115, + "hash2": 3029890537, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int3", + "type_name_2": "VfxParameterDefinition_Int3", + "qualified_name": "keen::ds::VfxParameterDefinition_Int3", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1530471496, + "hash2": 3560907631, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Int4", + "type_name_2": "VfxParameterDefinition_Int4", + "qualified_name": "keen::ds::VfxParameterDefinition_Int4", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1647914829, + "hash2": 2422490892, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt", + "type_name_2": "VfxParameterDefinition_UInt", + "qualified_name": "keen::ds::VfxParameterDefinition_UInt", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2111800830, + "hash2": 3593320885, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt2", + "type_name_2": "VfxParameterDefinition_UInt2", + "qualified_name": "keen::ds::VfxParameterDefinition_UInt2", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4074741796, + "hash2": 4098615438, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt3", + "type_name_2": "VfxParameterDefinition_UInt3", + "qualified_name": "keen::ds::VfxParameterDefinition_UInt3", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4091519415, + "hash2": 3840656964, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_UInt4", + "type_name_2": "VfxParameterDefinition_UInt4", + "qualified_name": "keen::ds::VfxParameterDefinition_UInt4", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4041186558, + "hash2": 1994262460, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool", + "type_name_2": "VfxParameterDefinition_Bool", + "qualified_name": "keen::ds::VfxParameterDefinition_Bool", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3158438494, + "hash2": 343518270, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool2", + "type_name_2": "VfxParameterDefinition_Bool2", + "qualified_name": "keen::ds::VfxParameterDefinition_Bool2", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3352338436, + "hash2": 3603864998, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool3", + "type_name_2": "VfxParameterDefinition_Bool3", + "qualified_name": "keen::ds::VfxParameterDefinition_Bool3", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3369116055, + "hash2": 18175111, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Bool4", + "type_name_2": "VfxParameterDefinition_Bool4", + "qualified_name": "keen::ds::VfxParameterDefinition_Bool4", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3318783198, + "hash2": 328899562, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Color", + "type_name_2": "VfxParameterDefinition_Color", + "qualified_name": "keen::ds::VfxParameterDefinition_Color", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3067092869, + "hash2": 18332030, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Quaternion", + "type_name_2": "VfxParameterDefinition_Quaternion", + "qualified_name": "keen::ds::VfxParameterDefinition_Quaternion", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 992335770, + "hash2": 447732796, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Mesh", + "type_name_2": "VfxParameterDefinition_Mesh", + "qualified_name": "keen::ds::VfxParameterDefinition_Mesh", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3933455995, + "hash2": 3510785326, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Model", + "type_name_2": "VfxParameterDefinition_Model", + "qualified_name": "keen::ds::VfxParameterDefinition_Model", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1686894831, + "hash2": 3510785326, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Decal", + "type_name_2": "VfxParameterDefinition_Decal", + "qualified_name": "keen::ds::VfxParameterDefinition_Decal", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2418339967, + "hash2": 2021699096, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 2126566089, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Emitter", + "type_name_2": "VfxParameterDefinition_Emitter", + "qualified_name": "keen::ds::VfxParameterDefinition_Emitter", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2711748608, + "hash2": 728655815, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterDefinition_Image", + "type_name_2": "VfxParameterDefinition_Image", + "qualified_name": "keen::ds::VfxParameterDefinition_Image", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3262550295, + "hash2": 3002997702, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 48 + }, + { + "name": "sampler", + "type_name": "keen::ds::VfxSamplerParameters", + "type_hash": 4129489775, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinitionBase", + "type_name_2": "VfxStateDefinitionBase", + "qualified_name": "keen::ds::VfxStateDefinitionBase", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3982367626, + "hash2": 3986267505, + "struct_fields": [ + { + "name": "kind", + "type_name": "keen::ds::VfxParticleValueKind", + "type_hash": 442470462, + "data_offset": 0 + }, + { + "name": "expression", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float", + "type_name_2": "VfxStateDefinition_Float", + "qualified_name": "keen::ds::VfxStateDefinition_Float", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 122461618, + "hash2": 1565984400, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float2", + "type_name_2": "VfxStateDefinition_Float2", + "qualified_name": "keen::ds::VfxStateDefinition_Float2", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4254855296, + "hash2": 3188887837, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float3", + "type_name_2": "VfxStateDefinition_Float3", + "qualified_name": "keen::ds::VfxStateDefinition_Float3", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4271632915, + "hash2": 314087184, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Float4", + "type_name_2": "VfxStateDefinition_Float4", + "qualified_name": "keen::ds::VfxStateDefinition_Float4", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 60553714, + "hash2": 2368707459, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int", + "type_name_2": "VfxStateDefinition_Int", + "qualified_name": "keen::ds::VfxStateDefinition_Int", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3457911721, + "hash2": 3807957030, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int2", + "type_name_2": "VfxStateDefinition_Int2", + "qualified_name": "keen::ds::VfxStateDefinition_Int2", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 274515201, + "hash2": 2205311810, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int3", + "type_name_2": "VfxStateDefinition_Int3", + "qualified_name": "keen::ds::VfxStateDefinition_Int3", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 257737582, + "hash2": 3318879360, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Int4", + "type_name_2": "VfxStateDefinition_Int4", + "qualified_name": "keen::ds::VfxStateDefinition_Int4", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 308070439, + "hash2": 59573815, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt", + "type_name_2": "VfxStateDefinition_UInt", + "qualified_name": "keen::ds::VfxStateDefinition_UInt", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1977927048, + "hash2": 1853475774, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt2", + "type_name_2": "VfxStateDefinition_UInt2", + "qualified_name": "keen::ds::VfxStateDefinition_UInt2", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1361265614, + "hash2": 1617781529, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt3", + "type_name_2": "VfxStateDefinition_UInt3", + "qualified_name": "keen::ds::VfxStateDefinition_UInt3", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1378043233, + "hash2": 2507219815, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_UInt4", + "type_name_2": "VfxStateDefinition_UInt4", + "qualified_name": "keen::ds::VfxStateDefinition_UInt4", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1394820852, + "hash2": 398729563, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool", + "type_name_2": "VfxStateDefinition_Bool", + "qualified_name": "keen::ds::VfxStateDefinition_Bool", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2800892568, + "hash2": 4235523441, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool2", + "type_name_2": "VfxStateDefinition_Bool2", + "qualified_name": "keen::ds::VfxStateDefinition_Bool2", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2035440030, + "hash2": 1716968397, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool3", + "type_name_2": "VfxStateDefinition_Bool3", + "qualified_name": "keen::ds::VfxStateDefinition_Bool3", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2052217649, + "hash2": 3416259548, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Bool4", + "type_name_2": "VfxStateDefinition_Bool4", + "qualified_name": "keen::ds::VfxStateDefinition_Bool4", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2068995268, + "hash2": 2828829357, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Color", + "type_name_2": "VfxStateDefinition_Color", + "qualified_name": "keen::ds::VfxStateDefinition_Color", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 56, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2935992607, + "hash2": 1333393989, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateDefinition_Quaternion", + "type_name_2": "VfxStateDefinition_Quaternion", + "qualified_name": "keen::ds::VfxStateDefinition_Quaternion", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3326837328, + "hash2": 2368707459, + "struct_fields": [ + { + "name": "defaultValue", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionBase", + "type_name_2": "VfxExpressionBase", + "qualified_name": "keen::ds::VfxExpressionBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1320738718, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float1", + "type_name_2": "VfxExpressionValue_Float1", + "qualified_name": "keen::ds::VfxExpressionValue_Float1", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2424872148, + "hash2": 1167715175, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float2", + "type_name_2": "VfxExpressionValue_Float2", + "qualified_name": "keen::ds::VfxExpressionValue_Float2", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2475205005, + "hash2": 3490202986, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float3", + "type_name_2": "VfxExpressionValue_Float3", + "qualified_name": "keen::ds::VfxExpressionValue_Float3", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2458427386, + "hash2": 863831911, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Float4", + "type_name_2": "VfxExpressionValue_Float4", + "qualified_name": "keen::ds::VfxExpressionValue_Float4", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2374539291, + "hash2": 3325215184, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int1", + "type_name_2": "VfxExpressionValue_Int1", + "qualified_name": "keen::ds::VfxExpressionValue_Int1", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 386159989, + "hash2": 2403694257, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int2", + "type_name_2": "VfxExpressionValue_Int2", + "qualified_name": "keen::ds::VfxExpressionValue_Int2", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 335827132, + "hash2": 4107706109, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int3", + "type_name_2": "VfxExpressionValue_Int3", + "qualified_name": "keen::ds::VfxExpressionValue_Int3", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 352604751, + "hash2": 3953169371, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Int4", + "type_name_2": "VfxExpressionValue_Int4", + "qualified_name": "keen::ds::VfxExpressionValue_Int4", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 302271894, + "hash2": 915912160, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt1", + "type_name_2": "VfxExpressionValue_UInt1", + "qualified_name": "keen::ds::VfxExpressionValue_UInt1", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2084807640, + "hash2": 1113083057, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt2", + "type_name_2": "VfxExpressionValue_UInt2", + "qualified_name": "keen::ds::VfxExpressionValue_UInt2", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2135140497, + "hash2": 3967647346, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt3", + "type_name_2": "VfxExpressionValue_UInt3", + "qualified_name": "keen::ds::VfxExpressionValue_UInt3", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2118362878, + "hash2": 90698576, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_UInt4", + "type_name_2": "VfxExpressionValue_UInt4", + "qualified_name": "keen::ds::VfxExpressionValue_UInt4", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2168695735, + "hash2": 1786408752, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool", + "type_name_2": "VfxExpressionValue_Bool", + "qualified_name": "keen::ds::VfxExpressionValue_Bool", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2544712005, + "hash2": 2227010274, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool2", + "type_name_2": "VfxExpressionValue_Bool2", + "qualified_name": "keen::ds::VfxExpressionValue_Bool2", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1018263125, + "hash2": 2785586770, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool3", + "type_name_2": "VfxExpressionValue_Bool3", + "qualified_name": "keen::ds::VfxExpressionValue_Bool3", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 3, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1001485506, + "hash2": 3916157739, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Bool4", + "type_name_2": "VfxExpressionValue_Bool4", + "qualified_name": "keen::ds::VfxExpressionValue_Bool4", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 917597411, + "hash2": 2527713694, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Color", + "type_name_2": "VfxExpressionValue_Color", + "qualified_name": "keen::ds::VfxExpressionValue_Color", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3334328560, + "hash2": 3887891842, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Quaternion", + "type_name_2": "VfxExpressionValue_Quaternion", + "qualified_name": "keen::ds::VfxExpressionValue_Quaternion", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3358816293, + "hash2": 3325215184, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VfxNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1229987850, + "hash2": 221933127, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Particle", + "type_name_2": "VfxExpressionValue_Particle", + "qualified_name": "keen::ds::VfxExpressionValue_Particle", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 624234391, + "hash2": 304594939, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 1229987850, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Mesh", + "type_name_2": "VfxExpressionValue_Mesh", + "qualified_name": "keen::ds::VfxExpressionValue_Mesh", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3598924148, + "hash2": 205742826, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Model", + "type_name_2": "VfxExpressionValue_Model", + "qualified_name": "keen::ds::VfxExpressionValue_Model", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1144281170, + "hash2": 205742826, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Decal", + "type_name_2": "VfxExpressionValue_Decal", + "qualified_name": "keen::ds::VfxExpressionValue_Decal", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2399055494, + "hash2": 595826588, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 2126566089, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionValue_Image", + "type_name_2": "VfxExpressionValue_Image", + "qualified_name": "keen::ds::VfxExpressionValue_Image", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2851148610, + "hash2": 2016260050, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxExpressionType", + "type_name_2": "VfxExpressionType", + "qualified_name": "keen::ds::VfxExpressionType", + "referenced_type_name": "keen::VfxExpressionType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2903365739, + "hash2": 2005659478, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3977078015, + "hash2": 1775833400, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::VfxExpressionBase", + "class_size": 48, + "fields_count": 24, + "primitive_type": "DsVariant", + "hash1": 1572070829, + "hash2": 3458590379, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterExpression", + "type_name_2": "VfxParameterExpression", + "qualified_name": "keen::ds::VfxParameterExpression", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3688559994, + "hash2": 2960134698, + "struct_fields": [ + { + "name": "parameter", + "type_name": "keen::ObjectReference", + "type_hash": 3977078015, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::VfxExpressionType", + "type_hash": 2903365739, + "data_offset": 16 + }, + { + "name": "expression", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 24 + }, + { + "name": "value", + "type_name": "keen::DsVariant", + "type_hash": 1572070829, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3041390789, + "hash2": 483823015, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxStateExpression", + "type_name_2": "VfxStateExpression", + "qualified_name": "keen::ds::VfxStateExpression", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2474319692, + "hash2": 2617826409, + "struct_fields": [ + { + "name": "state", + "type_name": "keen::ObjectReference", + "type_hash": 3041390789, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::VfxExpressionType", + "type_hash": 2903365739, + "data_offset": 16 + }, + { + "name": "expression", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 24 + }, + { + "name": "value", + "type_name": "keen::DsVariant", + "type_hash": 1572070829, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBase", + "type_name_2": "VfxEffectParameterBase", + "qualified_name": "keen::ds::VfxEffectParameterBase", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3596354638, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat", + "type_name_2": "VfxEffectParameterFloat", + "qualified_name": "keen::ds::VfxEffectParameterFloat", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1439372295, + "hash2": 1668861800, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat2", + "type_name_2": "VfxEffectParameterFloat2", + "qualified_name": "keen::ds::VfxEffectParameterFloat2", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1135660911, + "hash2": 2428578789, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat3", + "type_name_2": "VfxEffectParameterFloat3", + "qualified_name": "keen::ds::VfxEffectParameterFloat3", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1118883292, + "hash2": 3287616456, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterFloat4", + "type_name_2": "VfxEffectParameterFloat4", + "qualified_name": "keen::ds::VfxEffectParameterFloat4", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1102105673, + "hash2": 2051351403, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool", + "type_name_2": "VfxEffectParameterBool", + "qualified_name": "keen::ds::VfxEffectParameterBool", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3990343255, + "hash2": 3671481465, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool2", + "type_name_2": "VfxEffectParameterBool2", + "qualified_name": "keen::ds::VfxEffectParameterBool2", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3485067519, + "hash2": 2727866277, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool3", + "type_name_2": "VfxEffectParameterBool3", + "qualified_name": "keen::ds::VfxEffectParameterBool3", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 3, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3468289900, + "hash2": 1097327700, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool3", + "type_hash": 47587707, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterBool4", + "type_name_2": "VfxEffectParameterBool4", + "qualified_name": "keen::ds::VfxEffectParameterBool4", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3451512281, + "hash2": 734645349, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool4", + "type_hash": 131475802, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt", + "type_name_2": "VfxEffectParameterInt", + "qualified_name": "keen::ds::VfxEffectParameterInt", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3435190092, + "hash2": 3565962190, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt2", + "type_name_2": "VfxEffectParameterInt2", + "qualified_name": "keen::ds::VfxEffectParameterInt2", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3516087130, + "hash2": 3442129642, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt3", + "type_name_2": "VfxEffectParameterInt3", + "qualified_name": "keen::ds::VfxEffectParameterInt3", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3532864749, + "hash2": 2180860504, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInt4", + "type_name_2": "VfxEffectParameterInt4", + "qualified_name": "keen::ds::VfxEffectParameterInt4", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3415421416, + "hash2": 75738559, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::int4", + "type_hash": 1616767209, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint", + "type_name_2": "VfxEffectParameterUint", + "qualified_name": "keen::ds::VfxEffectParameterUint", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 310097499, + "hash2": 4170232902, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint2", + "type_name_2": "VfxEffectParameterUint2", + "qualified_name": "keen::ds::VfxEffectParameterUint2", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2176853835, + "hash2": 1895095329, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint3", + "type_name_2": "VfxEffectParameterUint3", + "qualified_name": "keen::ds::VfxEffectParameterUint3", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 12, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2160076216, + "hash2": 4158069503, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterUint4", + "type_name_2": "VfxEffectParameterUint4", + "qualified_name": "keen::ds::VfxEffectParameterUint4", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2277519549, + "hash2": 2430303155, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::uint4", + "type_hash": 3734486186, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterQuaternion", + "type_name_2": "VfxEffectParameterQuaternion", + "qualified_name": "keen::ds::VfxEffectParameterQuaternion", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3747740115, + "hash2": 2051351403, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterColor", + "type_name_2": "VfxEffectParameterColor", + "qualified_name": "keen::ds::VfxEffectParameterColor", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2989699010, + "hash2": 4272706685, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterGroup", + "type_name_2": "VfxEffectParameterGroup", + "qualified_name": "keen::ds::VfxEffectParameterGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2727817210, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxGlobalEffectParameterDirectory", + "type_name_2": "VfxGlobalEffectParameterDirectory", + "qualified_name": "keen::ds::VfxGlobalEffectParameterDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 818363585, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxGlobalEffectParameterInfo", + "type_name_2": "VfxGlobalEffectParameterInfo", + "qualified_name": "keen::ds::VfxGlobalEffectParameterInfo", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3912327482, + "hash2": 1823829794, + "struct_fields": [ + { + "name": "inheritanceKey", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "descriptionHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + }, + { + "name": "typeNameHash", + "type_name": "keen::DsTypeId", + "type_hash": 967718650, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxGlobalEffectParameterInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxGlobalEffectParameterInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4004077107, + "hash2": 3292696660, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxGlobalEffectParameterRegistry", + "type_name_2": "VfxGlobalEffectParameterRegistry", + "qualified_name": "keen::ds::VfxGlobalEffectParameterRegistry", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1867531097, + "hash2": 1662356503, + "struct_fields": [ + { + "name": "parameters", + "type_name": "keen::DsArray", + "type_hash": 4004077107, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::VfxEffectParameterBase", + "class_size": 48, + "fields_count": 19, + "primitive_type": "DsVariant", + "hash1": 3224605155, + "hash2": 1518721997, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxEffectParameterInfo", + "type_name_2": "VfxEffectParameterInfo", + "qualified_name": "keen::ds::VfxEffectParameterInfo", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1992281015, + "hash2": 184037469, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::ds::VfxUserEffectParameterDescription", + "type_hash": 16800312, + "data_offset": 0 + }, + { + "name": "value", + "type_name": "keen::DsVariant", + "type_hash": 3224605155, + "data_offset": 72 + }, + { + "name": "registerOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxEffectParameterInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxEffectParameterInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 692091416, + "hash2": 4222907625, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterInfos", + "type_name_2": "VfxUserEffectParameterInfos", + "qualified_name": "keen::ds::VfxUserEffectParameterInfos", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 544858431, + "hash2": 1172360681, + "struct_fields": [ + { + "name": "parameters", + "type_name": "keen::DsArray", + "type_hash": 692091416, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxProfileEntry", + "type_name_2": "VfxProfileEntry", + "qualified_name": "keen::ds::VfxProfileEntry", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3964565550, + "hash2": 3234255017, + "struct_fields": [ + { + "name": "effectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "emitterGpuTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "particleGpuTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "instanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "chunkCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "dispatchCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "memoryUsage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxProfileEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxProfileEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3774258301, + "hash2": 3012653873, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxProfileMessage", + "type_name_2": "VfxProfileMessage", + "qualified_name": "keen::ds::VfxProfileMessage", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2910010709, + "hash2": 2221061354, + "struct_fields": [ + { + "name": "frameId", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "totalGpuTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "totalInstanceCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "totalMemoryUsage", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "totalDispatchCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "viewId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "tickCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 3774258301, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::VfxStateDefinitionBase", + "class_size": 48, + "fields_count": 19, + "primitive_type": "DsVariant", + "hash1": 3660514863, + "hash2": 1120954830, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParticleStateInfo", + "type_name_2": "vfx_converter.ParticleStateInfo", + "qualified_name": "keen::ds::vfx_converter::ParticleStateInfo", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1964320481, + "hash2": 2434228644, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::DsVariant", + "type_hash": 3660514863, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 48 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 88 + }, + { + "name": "sortKey", + "type_name": "keen::float64", + "type_hash": 1843348718, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::VfxParameterDefinitionBase", + "class_size": 48, + "fields_count": 24, + "primitive_type": "DsVariant", + "hash1": 1724974029, + "hash2": 2661084439, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "vfx_converter.ParticleParameterInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::vfx_converter::ParticleParameterInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3938462568, + "hash2": 1702514203, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParticleParameterInfo", + "type_name_2": "vfx_converter.ParticleParameterInfo", + "qualified_name": "keen::ds::vfx_converter::ParticleParameterInfo", + "referenced_type_name": null, + "class_size": 152, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1281629903, + "hash2": 3913860120, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::DsVariant", + "type_hash": 1724974029, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 48 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 88 + }, + { + "name": "sortKey", + "type_name": "keen::float64", + "type_hash": 1843348718, + "data_offset": 104 + }, + { + "name": "spawnParameters", + "type_name": "keen::DsArray", + "type_hash": 3938462568, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "vfx_converter.ParticleStateInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::vfx_converter::ParticleStateInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2581920558, + "hash2": 2846365641, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ParticleDefinitionInfo", + "type_name_2": "vfx_converter.ParticleDefinitionInfo", + "qualified_name": "keen::ds::vfx_converter::ParticleDefinitionInfo", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 342186429, + "hash2": 3737605753, + "struct_fields": [ + { + "name": "states", + "type_name": "keen::DsArray", + "type_hash": 2581920558, + "data_offset": 0 + }, + { + "name": "parameters", + "type_name": "keen::DsArray", + "type_hash": 3938462568, + "data_offset": 40 + }, + { + "name": "isEmitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxConverterConfiguration", + "type_name_2": "VfxConverterConfiguration", + "qualified_name": "keen::ds::VfxConverterConfiguration", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2025641399, + "hash2": 1898185584, + "struct_fields": [ + { + "name": "singleEffect", + "type_name": "keen::ds::VfxReference", + "type_hash": 1450134050, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxNodeInfo", + "type_name_2": "VfxNodeInfo", + "qualified_name": "keen::ds::VfxNodeInfo", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2919426197, + "hash2": 2235118732, + "struct_fields": [ + { + "name": "parentNodeId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "parentNodeDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "childNodeIds", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 32 + }, + { + "name": "isEnabled", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBufferEntry", + "type_name_2": "VfxBufferEntry", + "qualified_name": "keen::ds::VfxBufferEntry", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2748759869, + "hash2": 3749026873, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 16 + }, + { + "name": "typeNameHash", + "type_name": "keen::DsTypeId", + "type_hash": 967718650, + "data_offset": 56 + }, + { + "name": "registerOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + }, + { + "name": "sizeInRegisters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "hasCurveExpression", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 68 + }, + { + "name": "hlslTypeName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 72 + }, + { + "name": "componentTypeName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 112 + }, + { + "name": "componentCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxBufferEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxBufferEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2135093218, + "hash2": 3137679043, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxBufferInfo", + "type_name_2": "VfxBufferInfo", + "qualified_name": "keen::ds::VfxBufferInfo", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2311873847, + "hash2": 1954795792, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::DsArray", + "type_hash": 2135093218, + "data_offset": 0 + }, + { + "name": "sizeInRegisters", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleDefinitionCurveExpression", + "type_name_2": "VfxParticleDefinitionCurveExpression", + "qualified_name": "keen::ds::VfxParticleDefinitionCurveExpression", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4152971539, + "hash2": 2734545775, + "struct_fields": [ + { + "name": "curveId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "referencedParameterId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VfxParticleDefinitionCurveExpression[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VfxParticleDefinitionCurveExpression", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 293428464, + "hash2": 2064723595, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxParticleDefinitionCurveExpressions", + "type_name_2": "VfxParticleDefinitionCurveExpressions", + "qualified_name": "keen::ds::VfxParticleDefinitionCurveExpressions", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 220928544, + "hash2": 2187175164, + "struct_fields": [ + { + "name": "curves", + "type_name": "keen::DsArray", + "type_hash": 293428464, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxParameterTypeIndices", + "type_name_2": "VfxParameterTypeIndices", + "qualified_name": "keen::ds::VfxParameterTypeIndices", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2721528541, + "hash2": 3323249038, + "struct_fields": [ + { + "name": "types", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBaseEffectParameters", + "type_name_2": "VfxBaseEffectParameters", + "qualified_name": "keen::ds::VfxBaseEffectParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 2732925765, + "hash2": 1149775038, + "struct_fields": [ + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "startTime", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "scale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "isActive", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + }, + { + "name": "cullingDistanceMin", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "cullingDistanceMax", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + }, + { + "name": "isHidden", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "age", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCombinedEffectParameters", + "type_name_2": "VfxCombinedEffectParameters", + "qualified_name": "keen::ds::VfxCombinedEffectParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4287757559, + "hash2": 996251305, + "struct_fields": [ + { + "name": "base", + "type_name": "keen::ds::VfxBaseEffectParameters", + "type_hash": 2732925765, + "data_offset": 0 + }, + { + "name": "user", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxMeshInfo", + "type_name_2": "VfxMeshInfo", + "qualified_name": "keen::ds::VfxMeshInfo", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1025657112, + "hash2": 1960903376, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "packedPipelineIndices", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelInfo", + "type_name_2": "VfxModelInfo", + "qualified_name": "keen::ds::VfxModelInfo", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 820984730, + "hash2": 1757547235, + "struct_fields": [ + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "modelSizeFeedbackIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "firstMeshOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "meshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelInstanceTransform", + "type_name_2": "VfxModelInstanceTransform", + "qualified_name": "keen::ds::VfxModelInstanceTransform", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2265783859, + "hash2": 3814433841, + "struct_fields": [ + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "packedPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelInstance", + "type_name_2": "VfxModelInstance", + "qualified_name": "keen::ds::VfxModelInstance", + "referenced_type_name": null, + "class_size": 108, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 535585245, + "hash2": 1975921543, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::ds::VfxModelInstanceTransform", + "type_hash": 2265783859, + "data_offset": 0 + }, + { + "name": "previousTransform", + "type_name": "keen::ds::VfxModelInstanceTransform", + "type_hash": 2265783859, + "data_offset": 32 + }, + { + "name": "color", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "alpha", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "dissolveOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "dissolveRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 92 + }, + { + "name": "dissolveEdgeBrightness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + }, + { + "name": "alphaClip", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 100 + }, + { + "name": "emissiveFactor", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxTerraformingCursorInstance", + "type_name_2": "VfxTerraformingCursorInstance", + "qualified_name": "keen::ds::VfxTerraformingCursorInstance", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2834245536, + "hash2": 2686127524, + "struct_fields": [ + { + "name": "boxSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "sphereRadius", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "isBox", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "uvOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "ringAlpha", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 44 + }, + { + "name": "ringAlphaClip", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + }, + { + "name": "ringAlphaClipHalfRange", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 52 + }, + { + "name": "fillAlpha", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 56 + }, + { + "name": "fillHardness", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullingInstance", + "type_name_2": "VfxCullingInstance", + "qualified_name": "keen::ds::VfxCullingInstance", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1414296208, + "hash2": 1171709159, + "struct_fields": [ + { + "name": "orientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + }, + { + "name": "modelIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "instanceDataIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "instanceDataTypeId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "isDissolveActive", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxModelDrawData", + "type_name_2": "VfxModelDrawData", + "qualified_name": "keen::ds::VfxModelDrawData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2434555316, + "hash2": 503838578, + "struct_fields": [ + { + "name": "positionScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "materialIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "positionOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "pad0", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxIntermediateDraw", + "type_name_2": "VfxIntermediateDraw", + "qualified_name": "keen::ds::VfxIntermediateDraw", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3380369230, + "hash2": 2227622644, + "struct_fields": [ + { + "name": "meshCounterIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullingSubView", + "type_name_2": "VfxCullingSubView", + "qualified_name": "keen::ds::VfxCullingSubView", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1319151474, + "hash2": 2894314298, + "struct_fields": [ + { + "name": "cameraCenteredFrustum", + "type_name": "keen::ds::GpuCullingFrustum", + "type_hash": 2868467341, + "data_offset": 0 + }, + { + "name": "minObjectSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullingPassConstants", + "type_name_2": "VfxCullingPassConstants", + "qualified_name": "keen::ds::VfxCullingPassConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2009668167, + "hash2": 1122630383, + "struct_fields": [ + { + "name": "subViewIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "normalPipelineShift", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "dissolvePipelineShift", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "firstBatchIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VfxCullingSubView[9]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::VfxCullingSubView", + "class_size": 1008, + "fields_count": 9, + "primitive_type": "StaticArray", + "hash1": 2687359827, + "hash2": 2426957481, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "VfxCullingPassConstants[10]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::VfxCullingPassConstants", + "class_size": 160, + "fields_count": 10, + "primitive_type": "StaticArray", + "hash1": 2855257716, + "hash2": 1302026549, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxCullInstancesConstants", + "type_name_2": "VfxCullInstancesConstants", + "qualified_name": "keen::ds::VfxCullInstancesConstants", + "referenced_type_name": null, + "class_size": 1328, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 593350068, + "hash2": 2963810234, + "struct_fields": [ + { + "name": "subViews", + "type_name": "keen::StaticArray", + "type_hash": 2687359827, + "data_offset": 0 + }, + { + "name": "passes", + "type_name": "keen::StaticArray", + "type_hash": 2855257716, + "data_offset": 1008 + }, + { + "name": "subViewCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1168 + }, + { + "name": "passCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1172 + }, + { + "name": "maxDrawCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1176 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1180 + }, + { + "name": "useOcclusionCulling", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 1184 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 1188 + }, + { + "name": "cameraCenteredToViewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 1200 + }, + { + "name": "occlusionCullingData", + "type_name": "keen::ds::GpuOcclusionCullingShaderData", + "type_hash": 370219733, + "data_offset": 1248 + }, + { + "name": "modelSizeFeedbackPixelSize", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 1312 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxWriteCulledDrawCommandsPushConstants", + "type_name_2": "VfxWriteCulledDrawCommandsPushConstants", + "qualified_name": "keen::ds::VfxWriteCulledDrawCommandsPushConstants", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2869348042, + "hash2": 3654778192, + "struct_fields": [ + { + "name": "firstBatchIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "maxMeshCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "pipelineCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PreloadVfxList", + "type_name_2": "PreloadVfxList", + "qualified_name": "keen::ds::PreloadVfxList", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4013206448, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PreloadVfxListResource", + "type_name_2": "PreloadVfxListResource", + "qualified_name": "keen::ds::PreloadVfxListResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 144129572, + "hash2": 1878292883, + "struct_fields": [ + { + "name": "vfxIds", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialVfxDataResource", + "type_name_2": "VoxelMaterialVfxDataResource", + "qualified_name": "keen::ds::VoxelMaterialVfxDataResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1316194136, + "hash2": 3792486764, + "struct_fields": [ + { + "name": "materialType", + "type_name": "keen::DsArray", + "type_hash": 695524899, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuImage2D", + "type_name_2": "GpuImage2D", + "qualified_name": "keen::ds::GpuImage2D", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2646646234, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuImage3D", + "type_name_2": "GpuImage3D", + "qualified_name": "keen::ds::GpuImage3D", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1002586667, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSampler", + "type_name_2": "GpuSampler", + "qualified_name": "keen::ds::GpuSampler", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3928229109, + "hash2": 2748100540, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCombinedImage2D", + "type_name_2": "GpuCombinedImage2D", + "qualified_name": "keen::ds::GpuCombinedImage2D", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1285796207, + "hash2": 1749344749, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ds::GpuImage2D", + "type_hash": 2646646234, + "data_offset": 0 + }, + { + "name": "sampler", + "type_name": "keen::ds::GpuSampler", + "type_hash": 3928229109, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCombinedImage3D", + "type_name_2": "GpuCombinedImage3D", + "qualified_name": "keen::ds::GpuCombinedImage3D", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 513878638, + "hash2": 1749344749, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ds::GpuImage3D", + "type_hash": 1002586667, + "data_offset": 0 + }, + { + "name": "sampler", + "type_name": "keen::ds::GpuSampler", + "type_hash": 3928229109, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuMesh", + "type_name_2": "GpuMesh", + "qualified_name": "keen::ds::GpuMesh", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2017363306, + "hash2": 1056489918, + "struct_fields": [ + { + "name": "vertexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "indexOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "indexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "vertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "boundingSphere", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuMeshVertex", + "type_name_2": "GpuMeshVertex", + "qualified_name": "keen::ds::GpuMeshVertex", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2120061272, + "hash2": 3277968298, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "uv", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "normal", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 20 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuDecal", + "type_name_2": "GpuDecal", + "qualified_name": "keen::ds::GpuDecal", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 391652416, + "hash2": 1614477319, + "struct_fields": [ + { + "name": "materialDataIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuCurve", + "type_name_2": "GpuCurve", + "qualified_name": "keen::ds::GpuCurve", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2476834358, + "hash2": 1267300887, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sampleCountMinusOne", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "startTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "inverseTotalTime", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 12 + }, + { + "name": "inverseSampleDelta", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxBaseParticleState", + "type_name_2": "VfxBaseParticleState", + "qualified_name": "keen::ds::VfxBaseParticleState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2766668463, + "hash2": 851200531, + "struct_fields": [ + { + "name": "myParentEmitterIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "rngState", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "tickCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxEmitterState", + "type_name_2": "VfxEmitterState", + "qualified_name": "keen::ds::VfxEmitterState", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1261437398, + "hash2": 2923194273, + "struct_fields": [ + { + "name": "particleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "spawnCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "maxParticleCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "maxSpawnCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "particleChunkIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "particleTypeIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxChunkState", + "type_name_2": "VfxChunkState", + "qualified_name": "keen::ds::VfxChunkState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3598648799, + "hash2": 1716094370, + "struct_fields": [ + { + "name": "freeParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "currentActiveParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "nextActiveParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxUpdateBuffer", + "type_name_2": "VfxUpdateBuffer", + "qualified_name": "keen::ds::VfxUpdateBuffer", + "referenced_type_name": null, + "class_size": 1232, + "fields_count": 44, + "primitive_type": "Struct", + "hash1": 1394557942, + "hash2": 3795190071, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "fixedTimeStep", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "realTimeStep", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "currentTickId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "transparentInstanceBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "transparentInstanceCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "injectInstanceBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "injectInstanceCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "pointLightBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "pointLightCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "decalBufferCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "decalCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "grassMovementBodyCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "grassMovementBodyListCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "timeOfDay", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 76 + }, + { + "name": "cameraWorldPosition", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 80 + }, + { + "name": "cameraOrientation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "frustumPlanes", + "type_name": "keen::StaticArray", + "type_hash": 1094189225, + "data_offset": 112 + }, + { + "name": "sunDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 192 + }, + { + "name": "sunDirectLightFadeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "moonDirection", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 208 + }, + { + "name": "moonDirectLightFadeFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 220 + }, + { + "name": "skipInjectSort", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 224 + }, + { + "name": "worldChunkCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 228 + }, + { + "name": "useParallelRadixSort", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 232 + }, + { + "name": "dynamicHeightmap", + "type_name": "keen::ds::DynamicHeightmapSamplingShaderData", + "type_hash": 1034593983, + "data_offset": 240 + }, + { + "name": "isDynamicHeightmapValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 272 + }, + { + "name": "sdfCascadeCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 276 + }, + { + "name": "firstSdfImageIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 280 + }, + { + "name": "sdfInvGridSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 284 + }, + { + "name": "isSdfBvhValid", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 288 + }, + { + "name": "fogGrid", + "type_name": "keen::ds::VolumetricFogGridShaderData", + "type_hash": 2243135612, + "data_offset": 304 + }, + { + "name": "playerCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 800 + }, + { + "name": "playerPositions", + "type_name": "keen::StaticArray", + "type_hash": 2394267985, + "data_offset": 816 + }, + { + "name": "maxCullingInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1072 + }, + { + "name": "maxModelInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1076 + }, + { + "name": "maxTerraformingCursorInstanceCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1080 + }, + { + "name": "hideSpiders", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1084 + }, + { + "name": "snowDisplacementBodyCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1088 + }, + { + "name": "snowDisplacementBodyListCapacity", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 1092 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::ds::WeatherSampleConstants", + "type_hash": 526028364, + "data_offset": 1104 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxPushConstants", + "type_name_2": "VfxPushConstants", + "qualified_name": "keen::ds::VfxPushConstants", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3369790162, + "hash2": 598501721, + "struct_fields": [ + { + "name": "data", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxPrepareBuffer", + "type_name_2": "VfxPrepareBuffer", + "qualified_name": "keen::ds::VfxPrepareBuffer", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2769129422, + "hash2": 3098058296, + "struct_fields": [ + { + "name": "emitterCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxWorldChunk", + "type_name_2": "VfxWorldChunk", + "qualified_name": "keen::ds::VfxWorldChunk", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 254549688, + "hash2": 1216338882, + "struct_fields": [ + { + "name": "vertexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "vertexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "indexOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "indexCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "type", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "translationAndScale", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSortData", + "type_name_2": "GpuSortData", + "qualified_name": "keen::ds::GpuSortData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1059841447, + "hash2": 407993874, + "struct_fields": [ + { + "name": "highSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "lowSortKey", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + }, + { + "name": "instanceIndex", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSortShaderData", + "type_name_2": "GpuSortShaderData", + "qualified_name": "keen::ds::GpuSortShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3654525706, + "hash2": 3237547742, + "struct_fields": [ + { + "name": "elementCount", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuSortWritebackShaderData", + "type_name_2": "GpuSortWritebackShaderData", + "qualified_name": "keen::ds::GpuSortWritebackShaderData", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 67937660, + "hash2": 533530118, + "struct_fields": [ + { + "name": "elementCounterOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VfxChunkUpdateBuffer2", + "type_name_2": "VfxChunkUpdateBuffer2", + "qualified_name": "keen::ds::VfxChunkUpdateBuffer2", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 579352753, + "hash2": 150153558, + "struct_fields": [ + { + "name": "particleTypeParametersOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 0 + }, + { + "name": "activeParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 4 + }, + { + "name": "nextActiveParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 8 + }, + { + "name": "freeParticleCounterByteOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 12 + }, + { + "name": "particleStatesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 16 + }, + { + "name": "oldActiveParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 20 + }, + { + "name": "newActiveParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 24 + }, + { + "name": "freeParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 28 + }, + { + "name": "parentStatesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 32 + }, + { + "name": "oldActiveParentParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 36 + }, + { + "name": "childParticleStatesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 40 + }, + { + "name": "childParticleFreeListOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 44 + }, + { + "name": "childActiveParticleIndicesOffset", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 48 + }, + { + "name": "chunkId", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 52 + }, + { + "name": "explicitPad0", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 56 + }, + { + "name": "explicitPad1", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 60 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ViewReprojectionData", + "type_name_2": "ViewReprojectionData", + "qualified_name": "keen::ds::ViewReprojectionData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4211429138, + "hash2": 1761583070, + "struct_fields": [ + { + "name": "ndcToPreviousNdcMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2DownsampleDepthParameters", + "type_name_2": "Fog2DownsampleDepthParameters", + "qualified_name": "keen::ds::Fog2DownsampleDepthParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 612746288, + "hash2": 1268869337, + "struct_fields": [ + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2MinMaxDepthParameters", + "type_name_2": "Fog2MinMaxDepthParameters", + "qualified_name": "keen::ds::Fog2MinMaxDepthParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1072948072, + "hash2": 1668296327, + "struct_fields": [ + { + "name": "sourceSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invSourceSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "tileSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2SampleSkyParameters", + "type_name_2": "Fog2SampleSkyParameters", + "qualified_name": "keen::ds::Fog2SampleSkyParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3375606124, + "hash2": 3362617853, + "struct_fields": [ + { + "name": "cloudLayerY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "planetRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CloudsErosionParameters", + "type_name_2": "Fog2CloudsErosionParameters", + "qualified_name": "keen::ds::Fog2CloudsErosionParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2571553904, + "hash2": 536250805, + "struct_fields": [ + { + "name": "scrollSpeed", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "tilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "heightTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "noiseTextureIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CloudsParameters", + "type_name_2": "Fog2CloudsParameters", + "qualified_name": "keen::ds::Fog2CloudsParameters", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 921922515, + "hash2": 1241884379, + "struct_fields": [ + { + "name": "yRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "invYRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "texcoordMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "cloudTypes", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "erosionPass0", + "type_name": "keen::ds::Fog2CloudsErosionParameters", + "type_hash": 2571553904, + "data_offset": 32 + }, + { + "name": "erosionPass1", + "type_name": "keen::ds::Fog2CloudsErosionParameters", + "type_hash": 2571553904, + "data_offset": 64 + }, + { + "name": "erosionPass2", + "type_name": "keen::ds::Fog2CloudsErosionParameters", + "type_hash": 2571553904, + "data_offset": 96 + }, + { + "name": "emission", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "inScatteringDivExtinction", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 144 + }, + { + "name": "extinctionLn2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderSkyParameters", + "type_name_2": "Fog2RenderSkyParameters", + "qualified_name": "keen::ds::Fog2RenderSkyParameters", + "referenced_type_name": null, + "class_size": 544, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 4186184186, + "hash2": 2439924982, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "ditherPatternOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + }, + { + "name": "rayMarchSampleCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + }, + { + "name": "lightFactorSun", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 164 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 176 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 180 + }, + { + "name": "cloudsLight", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 192 + }, + { + "name": "skyLight0", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 224 + }, + { + "name": "skyLight1", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 256 + }, + { + "name": "atmosphere", + "type_name": "keen::ds::AtmosphereShaderData", + "type_hash": 1909054486, + "data_offset": 288 + }, + { + "name": "clouds", + "type_name": "keen::ds::Fog2CloudsParameters", + "type_hash": 921922515, + "data_offset": 352 + }, + { + "name": "sky", + "type_name": "keen::ds::Fog2SampleSkyParameters", + "type_hash": 3375606124, + "data_offset": 512 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 528 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2BlurSkyParameters", + "type_name_2": "Fog2BlurSkyParameters", + "qualified_name": "keen::ds::Fog2BlurSkyParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 898989877, + "hash2": 1891436117, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfSkyParameters", + "type_name_2": "Fog2TfSkyParameters", + "qualified_name": "keen::ds::Fog2TfSkyParameters", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3615486540, + "hash2": 1640622421, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 96 + }, + { + "name": "sky", + "type_name": "keen::ds::Fog2SampleSkyParameters", + "type_hash": 3375606124, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudsSampleConstants", + "type_name_2": "CloudsSampleConstants", + "qualified_name": "keen::ds::CloudsSampleConstants", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1953172024, + "hash2": 1525261311, + "struct_fields": [ + { + "name": "texcoordMappingScale", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "texcoordMappingOffset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2SampleParameters", + "type_name_2": "Fog2SampleParameters", + "qualified_name": "keen::ds::Fog2SampleParameters", + "referenced_type_name": null, + "class_size": 3424, + "fields_count": 48, + "primitive_type": "Struct", + "hash1": 3946616699, + "hash2": 1126173658, + "struct_fields": [ + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 0 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "directionalLightData0", + "type_name": "keen::ds::ForwardDirectionalLightData", + "type_hash": 141436276, + "data_offset": 80 + }, + { + "name": "enableWeather", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 112 + }, + { + "name": "weatherSampleConstants", + "type_name": "keen::ds::WeatherSampleConstants", + "type_hash": 526028364, + "data_offset": 128 + }, + { + "name": "cloudsSampleConstants", + "type_name": "keen::ds::CloudsSampleConstants", + "type_hash": 1953172024, + "data_offset": 256 + }, + { + "name": "atmosphere", + "type_name": "keen::ds::AtmosphereShaderData", + "type_hash": 1909054486, + "data_offset": 272 + }, + { + "name": "volumetricShadow", + "type_name": "keen::ds::VolumetricShadowRuntimeData", + "type_hash": 456003765, + "data_offset": 336 + }, + { + "name": "shadowAtlas", + "type_name": "keen::ds::RenderShadowAtlasShaderData", + "type_hash": 278385403, + "data_offset": 576 + }, + { + "name": "fogGrid", + "type_name": "keen::ds::VolumetricFogGridShaderData", + "type_hash": 2243135612, + "data_offset": 1664 + }, + { + "name": "fogGridSdf", + "type_name": "keen::ds::SdfShaderData", + "type_hash": 2338636371, + "data_offset": 2160 + }, + { + "name": "grassMovement", + "type_name": "keen::ds::GrassMovementData", + "type_hash": 4084593330, + "data_offset": 2176 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2208 + }, + { + "name": "lightFactorEmissive", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2212 + }, + { + "name": "lightFactorSun", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2224 + }, + { + "name": "lightFactorSky", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 2240 + }, + { + "name": "lightFactorPointLights", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2252 + }, + { + "name": "giFroxelParameters", + "type_name": "keen::ds::GiAmbientFroxelVolumeParameters", + "type_hash": 211181597, + "data_offset": 2256 + }, + { + "name": "lightFactorGi", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2320 + }, + { + "name": "surfaceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2324 + }, + { + "name": "surfaceWidthFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2332 + }, + { + "name": "surfaceNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2336 + }, + { + "name": "surfaceNoiseScaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2340 + }, + { + "name": "surfaceNoiseDescriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2344 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2352 + }, + { + "name": "worldSdf", + "type_name": "keen::ds::SdfShaderData", + "type_hash": 2338636371, + "data_offset": 2400 + }, + { + "name": "worldHeightPositionMapping", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 2416 + }, + { + "name": "groundFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2420 + }, + { + "name": "groundGradientFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2432 + }, + { + "name": "groundHeightFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2440 + }, + { + "name": "groundNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2444 + }, + { + "name": "groundNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2448 + }, + { + "name": "groundNoiseDescriptorIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 2452 + }, + { + "name": "groundMaterialAbove", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2464 + }, + { + "name": "groundMaterialBelow", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2512 + }, + { + "name": "heightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2560 + }, + { + "name": "forestExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2564 + }, + { + "name": "heightFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2568 + }, + { + "name": "forestFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 2576 + }, + { + "name": "heightMaterial", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2592 + }, + { + "name": "forestMaterial", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2640 + }, + { + "name": "rainMaterial", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2688 + }, + { + "name": "snowMaterial", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2736 + }, + { + "name": "blizzardMaterial", + "type_name": "keen::ds::VolumetricFogGridMaterial", + "type_hash": 2961749196, + "data_offset": 2784 + }, + { + "name": "time", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 2832 + }, + { + "name": "voxelWorldShadowMap", + "type_name": "keen::ds::VoxelWorldShadowMapShaderData", + "type_hash": 3808334302, + "data_offset": 2848 + }, + { + "name": "isGiEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 3008 + }, + { + "name": "ambientProbesLookupData", + "type_name": "keen::ds::GiAmbientProbesLookupData", + "type_hash": 1701938736, + "data_offset": 3024 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderParameters", + "type_name_2": "Fog2RenderParameters", + "qualified_name": "keen::ds::Fog2RenderParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 665721973, + "hash2": 2289499231, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "sky", + "type_name": "keen::ds::Fog2SampleSkyParameters", + "type_hash": 3375606124, + "data_offset": 80 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderBlurResultParameters", + "type_name_2": "Fog2RenderBlurResultParameters", + "qualified_name": "keen::ds::Fog2RenderBlurResultParameters", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2889504593, + "hash2": 1139156457, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TemporalBlendResultParameters", + "type_name_2": "Fog2TemporalBlendResultParameters", + "qualified_name": "keen::ds::Fog2TemporalBlendResultParameters", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 195140743, + "hash2": 2008503685, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "oldDepthDifferenceWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2InitializeShadowVolumeParameters", + "type_name_2": "Fog2InitializeShadowVolumeParameters", + "qualified_name": "keen::ds::Fog2InitializeShadowVolumeParameters", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1852226805, + "hash2": 545173382, + "struct_fields": [ + { + "name": "shadowVolumeResolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "invShadowVolumeResolution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "injectInstanceCounterByteOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "shadowCascadeToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateShadowVolumeCascadeParameters", + "type_name_2": "Fog2IntegrateShadowVolumeCascadeParameters", + "qualified_name": "keen::ds::Fog2IntegrateShadowVolumeCascadeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3700703288, + "hash2": 4176433855, + "struct_fields": [ + { + "name": "shadowVolumeResolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "invShadowVolumeResolution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "shadowCascadeToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "worldToNextShadowCascadeMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 64 + }, + { + "name": "dk", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateLastShadowVolumeCascadeParameters", + "type_name_2": "Fog2IntegrateLastShadowVolumeCascadeParameters", + "qualified_name": "keen::ds::Fog2IntegrateLastShadowVolumeCascadeParameters", + "referenced_type_name": null, + "class_size": 320, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3187978536, + "hash2": 2415214755, + "struct_fields": [ + { + "name": "shadowVolumeResolution", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "invShadowVolumeResolution", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "cascadeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "shadowCascadeToWorldMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 16 + }, + { + "name": "dk", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "volumetricShadow", + "type_name": "keen::ds::VolumetricShadowRuntimeData", + "type_hash": 456003765, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2WriteShadowViewVolumeParameters", + "type_name_2": "Fog2WriteShadowViewVolumeParameters", + "qualified_name": "keen::ds::Fog2WriteShadowViewVolumeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2801867039, + "hash2": 1380479474, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfShadowViewVolumeParameters", + "type_name_2": "Fog2TfShadowViewVolumeParameters", + "qualified_name": "keen::ds::Fog2TfShadowViewVolumeParameters", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2073164, + "hash2": 1050933338, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "oldViewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2WriteScatteredLightVolumeParameters", + "type_name_2": "Fog2WriteScatteredLightVolumeParameters", + "qualified_name": "keen::ds::Fog2WriteScatteredLightVolumeParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 104718395, + "hash2": 1502247738, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + }, + { + "name": "isShadowViewVolumeValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfScatteredLightVolumeParameters", + "type_name_2": "Fog2TfScatteredLightVolumeParameters", + "qualified_name": "keen::ds::Fog2TfScatteredLightVolumeParameters", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2805171184, + "hash2": 1588533277, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "oldViewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2InitializeParticipatingMediaVolumeParameters", + "type_name_2": "Fog2InitializeParticipatingMediaVolumeParameters", + "qualified_name": "keen::ds::Fog2InitializeParticipatingMediaVolumeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3139528420, + "hash2": 2226076651, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "injectInstanceCounterByteOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2WriteViewVolumeSourceTermParameters", + "type_name_2": "Fog2WriteViewVolumeSourceTermParameters", + "qualified_name": "keen::ds::Fog2WriteViewVolumeSourceTermParameters", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2713060832, + "hash2": 3657674492, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "exposureCorrection", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 116 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 120 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 128 + }, + { + "name": "manyLightsShadowsEnabled", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 132 + }, + { + "name": "isShadowViewVolumeValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 136 + }, + { + "name": "isScatteredLightVolumeValid", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TfViewVolumeParameters", + "type_name_2": "Fog2TfViewVolumeParameters", + "qualified_name": "keen::ds::Fog2TfViewVolumeParameters", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3050352764, + "hash2": 1588533277, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "oldWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "oldToNewExposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "oldViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 112 + }, + { + "name": "oldViewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateViewVolumeParameters", + "type_name_2": "Fog2IntegrateViewVolumeParameters", + "qualified_name": "keen::ds::Fog2IntegrateViewVolumeParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2156417399, + "hash2": 2258188406, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2IntegrateViewVolume2Parameters", + "type_name_2": "Fog2IntegrateViewVolume2Parameters", + "qualified_name": "keen::ds::Fog2IntegrateViewVolume2Parameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2204519199, + "hash2": 1102362908, + "struct_fields": [ + { + "name": "viewVolumeSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "windTime", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "invViewVolumeSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 32 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderFogGridIntersectionsParameters", + "type_name_2": "Fog2RenderFogGridIntersectionsParameters", + "qualified_name": "keen::ds::Fog2RenderFogGridIntersectionsParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2983599739, + "hash2": 1800780601, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "sky", + "type_name": "keen::ds::Fog2SampleSkyParameters", + "type_hash": 3375606124, + "data_offset": 80 + }, + { + "name": "fogGridMin", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "fogGridMax", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "maxStepCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderWeatherMapIntersectionsParameters", + "type_name_2": "Fog2RenderWeatherMapIntersectionsParameters", + "qualified_name": "keen::ds::Fog2RenderWeatherMapIntersectionsParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 429002883, + "hash2": 2774553628, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "sky", + "type_name": "keen::ds::Fog2SampleSkyParameters", + "type_hash": 3375606124, + "data_offset": 80 + }, + { + "name": "weatherMapMin", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 96 + }, + { + "name": "weatherMapMax", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 104 + }, + { + "name": "weatherMapVoxelSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 112 + }, + { + "name": "maxStepCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "enableWeather", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderRaymarchParameters", + "type_name_2": "Fog2RenderRaymarchParameters", + "qualified_name": "keen::ds::Fog2RenderRaymarchParameters", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 2802998194, + "hash2": 340416642, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 80 + }, + { + "name": "sky", + "type_name": "keen::ds::Fog2SampleSkyParameters", + "type_hash": 3375606124, + "data_offset": 96 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 112 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 120 + }, + { + "name": "exposure", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeViewVolumeDebugParameters", + "type_name_2": "Fog2CompositeViewVolumeDebugParameters", + "qualified_name": "keen::ds::Fog2CompositeViewVolumeDebugParameters", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3909249642, + "hash2": 1205109692, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 80 + }, + { + "name": "viewVolumeTransform", + "type_name": "keen::ds::Fog2ViewVolumeTransform", + "type_hash": 3410076558, + "data_offset": 144 + }, + { + "name": "viewVolumeViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 160 + }, + { + "name": "viewVolumeInvViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 224 + }, + { + "name": "dk", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 288 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2RenderUpscaleResultParameters", + "type_name_2": "Fog2RenderUpscaleResultParameters", + "qualified_name": "keen::ds::Fog2RenderUpscaleResultParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2714692511, + "hash2": 309443095, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "linearDepthParameters", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2TestParameters", + "type_name_2": "Fog2TestParameters", + "qualified_name": "keen::ds::Fog2TestParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 678200197, + "hash2": 388805256, + "struct_fields": [ + { + "name": "outputSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invOutputSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "invViewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeFlag", + "type_name_2": "Fog2CompositeFlag", + "qualified_name": "keen::ds::Fog2CompositeFlag", + "referenced_type_name": "keen::Fog2CompositeFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2077651690, + "hash2": 2957553176, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeFlags", + "type_name_2": "Fog2CompositeFlags", + "qualified_name": "keen::ds::Fog2CompositeFlags", + "referenced_type_name": "keen::Fog2CompositeFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2341889755, + "hash2": 3192661405, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Fog2CompositeParameters", + "type_name_2": "Fog2CompositeParameters", + "qualified_name": "keen::ds::Fog2CompositeParameters", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 68079212, + "hash2": 3577933862, + "struct_fields": [ + { + "name": "targetSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "invTargetSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "sampleParameters", + "type_name": "keen::ds::Fog2ViewVolumeSampleParameters", + "type_hash": 3483509448, + "data_offset": 32 + }, + { + "name": "blueNoiseOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 64 + }, + { + "name": "blueNoiseSizeMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2DebugBlitParameters", + "type_name_2": "Fog2DebugBlitParameters", + "qualified_name": "keen::ds::Fog2DebugBlitParameters", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3071224511, + "hash2": 3036896114, + "struct_fields": [ + { + "name": "blitOffset", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "blitSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFog2ResourceData", + "type_name_2": "VolumetricFog2ResourceData", + "qualified_name": "keen::ds::VolumetricFog2ResourceData", + "referenced_type_name": null, + "class_size": 360, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 3474081077, + "hash2": 3724820699, + "struct_fields": [ + { + "name": "initializationMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 4015466577, + "data_offset": 0 + }, + { + "name": "atmosphere", + "type_name": "keen::ObjectReference", + "type_hash": 1771067426, + "data_offset": 16 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 32 + }, + { + "name": "surfaceWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "surfaceNoise", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 64 + }, + { + "name": "surfaceNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "surfaceNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "surfaceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 88 + }, + { + "name": "groundHeightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "groundMaterialAbove", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 100 + }, + { + "name": "groundMaterialBelow", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 128 + }, + { + "name": "groundFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 156 + }, + { + "name": "groundGradientFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 164 + }, + { + "name": "groundNoise", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 172 + }, + { + "name": "groundNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 188 + }, + { + "name": "groundNoiseFlowSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 192 + }, + { + "name": "heightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 196 + }, + { + "name": "heightMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 200 + }, + { + "name": "heightFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 228 + }, + { + "name": "forestExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 236 + }, + { + "name": "forestMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 240 + }, + { + "name": "forestFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 268 + }, + { + "name": "rainMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 276 + }, + { + "name": "snowMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 304 + }, + { + "name": "blizzardMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 332 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFog2Resource", + "type_name_2": "VolumetricFog2Resource", + "qualified_name": "keen::ds::VolumetricFog2Resource", + "referenced_type_name": null, + "class_size": 912, + "fields_count": 29, + "primitive_type": "Struct", + "hash1": 3968332629, + "hash2": 1795294680, + "struct_fields": [ + { + "name": "sampleSkyParameters", + "type_name": "keen::ds::Fog2SampleSkyParameters", + "type_hash": 3375606124, + "data_offset": 0 + }, + { + "name": "cloudParameters", + "type_name": "keen::ds::Fog2CloudsParameters", + "type_hash": 921922515, + "data_offset": 16 + }, + { + "name": "cloudTypes", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 176 + }, + { + "name": "cloudErosionPass0", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 248 + }, + { + "name": "cloudErosionPass1", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 320 + }, + { + "name": "cloudErosionPass2", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 392 + }, + { + "name": "surfaceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 464 + }, + { + "name": "surfaceWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 472 + }, + { + "name": "surfaceNoise", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 480 + }, + { + "name": "surfaceNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 552 + }, + { + "name": "surfaceNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 556 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 560 + }, + { + "name": "groundHeightFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 588 + }, + { + "name": "groundMaterialAbove", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 592 + }, + { + "name": "groundMaterialBelow", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 620 + }, + { + "name": "groundFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 648 + }, + { + "name": "groundGradientFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 656 + }, + { + "name": "groundNoise", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 664 + }, + { + "name": "groundNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 736 + }, + { + "name": "groundNoiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 740 + }, + { + "name": "heightExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 744 + }, + { + "name": "heightMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 748 + }, + { + "name": "heightFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 776 + }, + { + "name": "forestExponent", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 784 + }, + { + "name": "forestMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 788 + }, + { + "name": "forestFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 816 + }, + { + "name": "rainMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 824 + }, + { + "name": "snowMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 852 + }, + { + "name": "blizzardMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 880 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Fog2ShadowVolumeTransformMatrices", + "type_name_2": "Fog2ShadowVolumeTransformMatrices", + "qualified_name": "keen::ds::Fog2ShadowVolumeTransformMatrices", + "referenced_type_name": "keen::Fog2ShadowVolumeTransformMatrices", + "class_size": 256, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2010518381, + "hash2": 1664714252, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridRenderParameters", + "type_name_2": "VolumetricFogGridRenderParameters", + "qualified_name": "keen::ds::VolumetricFogGridRenderParameters", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 996079069, + "hash2": 3755056099, + "struct_fields": [ + { + "name": "noneMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 0 + }, + { + "name": "dangerousMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 28 + }, + { + "name": "deadlyMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 56 + }, + { + "name": "decorativeMaterial", + "type_name": "keen::ds::FogMaterialParameters", + "type_hash": 484702576, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogGridUpdateShaderData", + "type_name_2": "VolumetricFogGridUpdateShaderData", + "qualified_name": "keen::ds::VolumetricFogGridUpdateShaderData", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1833928465, + "hash2": 3836815579, + "struct_fields": [ + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 16 + }, + { + "name": "bufferOffset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GroundFogParameters", + "type_name_2": "GroundFogParameters", + "qualified_name": "keen::ds::GroundFogParameters", + "referenced_type_name": "keen::ds::FogMaterialParameters", + "class_size": 68, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3283196756, + "hash2": 1426037418, + "struct_fields": [ + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "angleFadeoutPosition", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "angleFadeoutRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "sdfGradientEpsilon", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "flowSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "noise", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 48 + }, + { + "name": "noiseTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudErosionPass", + "type_name_2": "CloudErosionPass", + "qualified_name": "keen::ds::CloudErosionPass", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2748175384, + "hash2": 4230475479, + "struct_fields": [ + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "heightTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "scrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "strength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "noise", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudParameters", + "type_name_2": "CloudParameters", + "qualified_name": "keen::ds::CloudParameters", + "referenced_type_name": "keen::ds::FogMaterialParameters", + "class_size": 184, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3688259680, + "hash2": 1584137549, + "struct_fields": [ + { + "name": "yMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "yMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "cloudMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 36 + }, + { + "name": "cloudTypes", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 52 + }, + { + "name": "erosionPass0", + "type_name": "keen::ds::CloudErosionPass", + "type_hash": 2748175384, + "data_offset": 68 + }, + { + "name": "erosionPass1", + "type_name": "keen::ds::CloudErosionPass", + "type_hash": 2748175384, + "data_offset": 100 + }, + { + "name": "erosionPass2", + "type_name": "keen::ds::CloudErosionPass", + "type_hash": 2748175384, + "data_offset": 132 + }, + { + "name": "shadowStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 164 + }, + { + "name": "shadowStrengthSlope", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 168 + }, + { + "name": "shadowStrengthOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 172 + }, + { + "name": "fadeoutStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 176 + }, + { + "name": "fadeoutRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 180 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogInitializationMaterial", + "type_name_2": "VolumetricFogInitializationMaterial", + "qualified_name": "keen::ds::VolumetricFogInitializationMaterial", + "referenced_type_name": null, + "class_size": 252, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4222465604, + "hash2": 1914232082, + "struct_fields": [ + { + "name": "ground", + "type_name": "keen::ds::GroundFogParameters", + "type_hash": 3283196756, + "data_offset": 0 + }, + { + "name": "clouds", + "type_name": "keen::ds::CloudParameters", + "type_hash": 3688259680, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CloudLayerShadowParameterBlockData", + "type_name_2": "CloudLayerShadowParameterBlockData", + "qualified_name": "keen::ds::CloudLayerShadowParameterBlockData", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2806243577, + "hash2": 1179627517, + "struct_fields": [ + { + "name": "yMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "yMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "invYRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "shadowStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "shadowSampleMap", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnalyticFogShadowParameterBlock", + "type_name_2": "AnalyticFogShadowParameterBlock", + "qualified_name": "keen::ds::AnalyticFogShadowParameterBlock", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1150934792, + "hash2": 2999829893, + "struct_fields": [ + { + "name": "clouds", + "type_name": "keen::ds::CloudLayerShadowParameterBlockData", + "type_hash": 2806243577, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "AnalyticFogResource", + "type_name_2": "AnalyticFogResource", + "qualified_name": "keen::ds::AnalyticFogResource", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2013239088, + "hash2": 4135090684, + "struct_fields": [ + { + "name": "analyticFogShadowParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 0 + }, + { + "name": "cloudMap", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogInjectionShape", + "type_name_2": "VolumetricFogInjectionShape", + "qualified_name": "keen::ds::VolumetricFogInjectionShape", + "referenced_type_name": "keen::VolumetricFogInjectionShape", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3266550959, + "hash2": 3498447587, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VolumetricFogInjectInstanceData", + "type_name_2": "VolumetricFogInjectInstanceData", + "qualified_name": "keen::ds::VolumetricFogInjectInstanceData", + "referenced_type_name": null, + "class_size": 116, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 3145349415, + "hash2": 3451940500, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "shape", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "rotation", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 32 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "densityTexture", + "type_name": "keen::ds::BindlessTexture3D_float", + "type_hash": 3605563570, + "data_offset": 48 + }, + { + "name": "densityTextureSampler", + "type_name": "keen::ds::BindlessSampler", + "type_hash": 1608001563, + "data_offset": 52 + }, + { + "name": "falloff", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "uvOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 60 + }, + { + "name": "uvScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 72 + }, + { + "name": "emission", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 84 + }, + { + "name": "extinction", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "scattering", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 100 + }, + { + "name": "g", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSampleFlag", + "type_name_2": "WeatherSampleFlag", + "qualified_name": "keen::ds::WeatherSampleFlag", + "referenced_type_name": "keen::WeatherSampleFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3116004445, + "hash2": 973900836, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialList", + "type_name_2": "VoxelMaterialList", + "qualified_name": "keen::ds::VoxelMaterialList", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2829149576, + "hash2": 4294092812, + "struct_fields": [ + { + "name": "defaultTerrainMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 2732519224, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialReference", + "type_name_2": "VoxelMaterialReference", + "qualified_name": "keen::ds::VoxelMaterialReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4004260285, + "hash2": 1944722722, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::PbrMaterialParameters", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2405852685, + "hash2": 3925381489, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialLayer", + "type_name_2": "TerrainMaterialLayer", + "qualified_name": "keen::ds::TerrainMaterialLayer", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 586813418, + "hash2": 2658634983, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 2405852685, + "data_offset": 0 + }, + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "enableSeparateTilingSizeY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "tilingSizeY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "parallaxDepth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "parallaxMinLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "parallaxMaxLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "parallaxFadeoutStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "parallaxFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "parallaxMinAngle", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "parallaxAngleFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "displacement", + "type_name": "keen::ds::PbrTerrainMaterialDisplacementLayer", + "type_hash": 1426256333, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialOverlayBlendLayer", + "type_name_2": "TerrainMaterialOverlayBlendLayer", + "qualified_name": "keen::ds::TerrainMaterialOverlayBlendLayer", + "referenced_type_name": "keen::ds::TerrainMaterialLayer", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1000766051, + "hash2": 3317508830, + "struct_fields": [ + { + "name": "fadeInDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "fadeInRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialDetailBlendLayer", + "type_name_2": "TerrainMaterialDetailBlendLayer", + "qualified_name": "keen::ds::TerrainMaterialDetailBlendLayer", + "referenced_type_name": "keen::ds::TerrainMaterialOverlayBlendLayer", + "class_size": 84, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 723749844, + "hash2": 3119997919, + "struct_fields": [ + { + "name": "maxOpacity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "maxOpacityNormal", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "mode", + "type_name": "keen::ds::PbrTerrainMaterialDetailNormalBlendMode", + "type_hash": 3729352151, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainMaterialColorVariation", + "type_name_2": "TerrainMaterialColorVariation", + "qualified_name": "keen::ds::TerrainMaterialColorVariation", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 200891745, + "hash2": 2730489200, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "tilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "enableMidPoint", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "start", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 24 + }, + { + "name": "mid", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 28 + }, + { + "name": "end", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + }, + { + "name": "midPosition", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MappingDirection", + "type_name_2": "WorldMaterialBlending2MappingDirection", + "qualified_name": "keen::ds::WorldMaterialBlending2MappingDirection", + "referenced_type_name": "keen::WorldMaterialBlending2MappingDirection", + "class_size": 4, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1227442442, + "hash2": 3680987288, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2Layer", + "type_name_2": "WorldMaterial2Layer", + "qualified_name": "keen::ds::WorldMaterial2Layer", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 2072411347, + "hash2": 3246602172, + "struct_fields": [ + { + "name": "mappingDirection", + "type_name": "keen::ds::WorldMaterialBlending2MappingDirection", + "type_hash": 1227442442, + "data_offset": 0 + }, + { + "name": "heightBias", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "edgeNoiseMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 8 + }, + { + "name": "edgeNoiseMapTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "edgeNoiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "frontRightBlendingSmoothness", + "type_name": "keen::ds::PbrTerrainMaterialCenterBlendingSmoothness", + "type_hash": 1140376294, + "data_offset": 32 + }, + { + "name": "enableSnowDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "disableFrostShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + }, + { + "name": "disableSnowShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "disableWetnessShader", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "enableFrostShaderGlitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2Area", + "type_name_2": "WorldMaterial2Area", + "qualified_name": "keen::ds::WorldMaterial2Area", + "referenced_type_name": "keen::WorldMaterial2Area", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 505759675, + "hash2": 1204231578, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2Side", + "type_name_2": "WorldMaterial2Side", + "qualified_name": "keen::ds::WorldMaterial2Side", + "referenced_type_name": "keen::WorldMaterial2Side", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 663240909, + "hash2": 813353156, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2BlendingValue", + "type_name_2": "WorldMaterial2BlendingValue", + "qualified_name": "keen::ds::WorldMaterial2BlendingValue", + "referenced_type_name": "keen::WorldMaterial2BlendingValue", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1022326832, + "hash2": 3880293064, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2BlendingValueMapping", + "type_name_2": "WorldMaterial2BlendingValueMapping", + "qualified_name": "keen::ds::WorldMaterial2BlendingValueMapping", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 188395486, + "hash2": 423104532, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2Node", + "type_name_2": "WorldMaterial2Node", + "qualified_name": "keen::ds::WorldMaterial2Node", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 287794794, + "hash2": 90819206, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2AreaNode", + "type_name_2": "WorldMaterial2AreaNode", + "qualified_name": "keen::ds::WorldMaterial2AreaNode", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1029162091, + "hash2": 3259061584, + "struct_fields": [ + { + "name": "area", + "type_name": "keen::ds::WorldMaterial2Area", + "type_hash": 505759675, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2VoxelMaterialNode", + "type_name_2": "WorldMaterial2VoxelMaterialNode", + "qualified_name": "keen::ds::WorldMaterial2VoxelMaterialNode", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4110306243, + "hash2": 2561931835, + "struct_fields": [ + { + "name": "voxelMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 2732519224, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2SideSelectorNode", + "type_name_2": "WorldMaterial2SideSelectorNode", + "qualified_name": "keen::ds::WorldMaterial2SideSelectorNode", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1740641312, + "hash2": 3692448395, + "struct_fields": [ + { + "name": "topMapping", + "type_name": "keen::ds::WorldMaterial2BlendingValueMapping", + "type_hash": 188395486, + "data_offset": 4 + }, + { + "name": "bottomMapping", + "type_name": "keen::ds::WorldMaterial2BlendingValueMapping", + "type_hash": 188395486, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2SideNode", + "type_name_2": "WorldMaterial2SideNode", + "qualified_name": "keen::ds::WorldMaterial2SideNode", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 2, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1252935733, + "hash2": 1691381587, + "struct_fields": [ + { + "name": "side", + "type_name": "keen::ds::WorldMaterial2Side", + "type_hash": 663240909, + "data_offset": 1 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2BlendingValueNode", + "type_name_2": "WorldMaterial2BlendingValueNode", + "qualified_name": "keen::ds::WorldMaterial2BlendingValueNode", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 16, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 48634332, + "hash2": 1252651746, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::ds::WorldMaterial2BlendingValue", + "type_hash": 1022326832, + "data_offset": 1 + }, + { + "name": "mapping", + "type_name": "keen::ds::WorldMaterial2BlendingValueMapping", + "type_hash": 188395486, + "data_offset": 4 + }, + { + "name": "invert", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2MapNode", + "type_name_2": "WorldMaterial2MapNode", + "qualified_name": "keen::ds::WorldMaterial2MapNode", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2158276164, + "hash2": 1501886202, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + }, + { + "name": "mapTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WorldMaterial2Layer", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2424256104, + "hash2": 2432202655, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2LayerNode", + "type_name_2": "WorldMaterial2LayerNode", + "qualified_name": "keen::ds::WorldMaterial2LayerNode", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1477183171, + "hash2": 2027936582, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 2424256104, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterial2", + "type_name_2": "WorldMaterial2", + "qualified_name": "keen::ds::WorldMaterial2", + "referenced_type_name": "keen::ds::WorldMaterial2Node", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 372642526, + "hash2": 3458691723, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2BlendingMode", + "type_name_2": "WorldMaterialBlending2BlendingMode", + "qualified_name": "keen::ds::WorldMaterialBlending2BlendingMode", + "referenced_type_name": "keen::WorldMaterialBlending2BlendingMode", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 151399779, + "hash2": 3960614907, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2BakingBlendValueOperationType", + "type_name_2": "WorldMaterialBlending2BakingBlendValueOperationType", + "qualified_name": "keen::ds::WorldMaterialBlending2BakingBlendValueOperationType", + "referenced_type_name": "keen::WorldMaterialBlending2BakingBlendValueOperationType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1534586664, + "hash2": 2626800700, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2BakingInputValue", + "type_name_2": "WorldMaterialBlending2BakingInputValue", + "qualified_name": "keen::ds::WorldMaterialBlending2BakingInputValue", + "referenced_type_name": "keen::WorldMaterialBlending2BakingInputValue", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4155193302, + "hash2": 4288837349, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2BakingBlendValueOperation", + "type_name_2": "WorldMaterialBlending2BakingBlendValueOperation", + "qualified_name": "keen::ds::WorldMaterialBlending2BakingBlendValueOperation", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 618246368, + "hash2": 2246961142, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "param0", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "param1", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "param2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "param3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "WorldMaterialBlending2BakingBlendValueOperation[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::WorldMaterialBlending2BakingBlendValueOperation", + "class_size": 160, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 3199565392, + "hash2": 2195071399, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2BakingLayerShaderData", + "type_name_2": "WorldMaterialBlending2BakingLayerShaderData", + "qualified_name": "keen::ds::WorldMaterialBlending2BakingLayerShaderData", + "referenced_type_name": null, + "class_size": 164, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 585118917, + "hash2": 936560203, + "struct_fields": [ + { + "name": "ops", + "type_name": "keen::StaticArray", + "type_hash": 3199565392, + "data_offset": 0 + }, + { + "name": "opCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialBlendLayerShaderData", + "type_name_2": "WorldMaterialBlending2MaterialBlendLayerShaderData", + "qualified_name": "keen::ds::WorldMaterialBlending2MaterialBlendLayerShaderData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 750288357, + "hash2": 164049241, + "struct_fields": [ + { + "name": "weightFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerFlag", + "type_name_2": "WorldMaterialBlending2MaterialLayerFlag", + "qualified_name": "keen::ds::WorldMaterialBlending2MaterialLayerFlag", + "referenced_type_name": "keen::WorldMaterialBlending2MaterialLayerFlag", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3314714871, + "hash2": 361404233, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "WorldMaterialBlending2MaterialBlendLayerShaderData[4]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::WorldMaterialBlending2MaterialBlendLayerShaderData", + "class_size": 32, + "fields_count": 4, + "primitive_type": "StaticArray", + "hash1": 1850070491, + "hash2": 389123238, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerRenderingShaderData", + "type_name_2": "WorldMaterialBlending2MaterialLayerRenderingShaderData", + "qualified_name": "keen::ds::WorldMaterialBlending2MaterialLayerRenderingShaderData", + "referenced_type_name": null, + "class_size": 156, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 424291902, + "hash2": 465156649, + "struct_fields": [ + { + "name": "mappingDirection", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "baseLayerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "blendLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "detailBlendingMode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "heightBlendingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "edgeNoise", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 20 + }, + { + "name": "edgeNoiseTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "edgeNoiseMappingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "frontRightBlendSmoothness", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 32 + }, + { + "name": "detailWeightFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "detailOpacityMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 56 + }, + { + "name": "blendLayerParameters", + "type_name": "keen::StaticArray", + "type_hash": 1850070491, + "data_offset": 64 + }, + { + "name": "colorVariationStart", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "colorVariationMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 108 + }, + { + "name": "colorVariationMid", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "colorVariationTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "colorVariationEnd", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 140 + }, + { + "name": "colorVariationParams", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerTextureShaderData", + "type_name_2": "WorldMaterialBlending2MaterialLayerTextureShaderData", + "qualified_name": "keen::ds::WorldMaterialBlending2MaterialLayerTextureShaderData", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 3779578149, + "hash2": 3878443000, + "struct_fields": [ + { + "name": "tilingFactor", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "emissiveMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 8 + }, + { + "name": "emissiveMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "emissiveExposureCorrectionFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "albedoMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 20 + }, + { + "name": "roughnessMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 24 + }, + { + "name": "normalMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 28 + }, + { + "name": "heightMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 32 + }, + { + "name": "aoMap", + "type_name": "keen::ds::StreamedTexture2D_float", + "type_hash": 3904231058, + "data_offset": 36 + }, + { + "name": "displacementScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "displacementOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "parallaxFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "parallaxMinLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + }, + { + "name": "parallaxMaxLayerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 56 + }, + { + "name": "parallaxFadeoutStart", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 60 + }, + { + "name": "parallaxInverseFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "parallaxMinAngleSin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "parallaxInverseAngleFadeoutLength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "emissiveGiFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "distortionMapScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "distortionMapSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "distortionMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "lightningMapScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "lightningMapIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "distortionMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 100 + }, + { + "name": "lightningMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 104 + }, + { + "name": "gradientMap", + "type_name": "keen::ds::StreamedTexture2D_float4", + "type_hash": 4232111954, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2MaterialLayerRange", + "type_name_2": "WorldMaterialBlending2MaterialLayerRange", + "qualified_name": "keen::ds::WorldMaterialBlending2MaterialLayerRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3936084850, + "hash2": 752657093, + "struct_fields": [ + { + "name": "firstLayer", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2Resource", + "type_name_2": "WorldMaterialBlending2Resource", + "qualified_name": "keen::ds::WorldMaterialBlending2Resource", + "referenced_type_name": null, + "class_size": 944, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 893573429, + "hash2": 3423953284, + "struct_fields": [ + { + "name": "layerCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "bakingParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 8 + }, + { + "name": "renderingLayerParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 192 + }, + { + "name": "renderingTextureParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 376 + }, + { + "name": "voxelToLayerParameterBlock", + "type_name": "keen::ds::RenderParameterBlock", + "type_hash": 3914699023, + "data_offset": 560 + }, + { + "name": "renderingLayerImageSizeInfos", + "type_name": "keen::DsArray", + "type_hash": 1288390005, + "data_offset": 744 + }, + { + "name": "renderingLayerImageSizeInfoStartIndices", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 784 + }, + { + "name": "renderingTextureImageSizeInfos", + "type_name": "keen::DsArray", + "type_hash": 1288390005, + "data_offset": 824 + }, + { + "name": "renderingTextureImageSizeInfoStartIndices", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 864 + }, + { + "name": "renderingLayerUsesSnowDisplacement", + "type_name": "keen::DsArray", + "type_hash": 1920420223, + "data_offset": 904 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldMaterialBlending2DebugResource", + "type_name_2": "WorldMaterialBlending2DebugResource", + "qualified_name": "keen::ds::WorldMaterialBlending2DebugResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1881284732, + "hash2": 2523460928, + "struct_fields": [ + { + "name": "layerGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + }, + { + "name": "layerNames", + "type_name": "keen::DsArray", + "type_hash": 491901079, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfBoundingSphere", + "type_name_2": "ZoneVisualizationSdfBoundingSphere", + "qualified_name": "keen::ds::ZoneVisualizationSdfBoundingSphere", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1541430195, + "hash2": 2039727243, + "struct_fields": [ + { + "name": "worldSpacePosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "sqrRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfElementType", + "type_name_2": "ZoneVisualizationSdfElementType", + "qualified_name": "keen::ds::ZoneVisualizationSdfElementType", + "referenced_type_name": "keen::ZoneVisualizationSdfElementType", + "class_size": 4, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 970745362, + "hash2": 2069191656, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfElement", + "type_name_2": "ZoneVisualizationSdfElement", + "qualified_name": "keen::ds::ZoneVisualizationSdfElement", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1026892514, + "hash2": 3351062945, + "struct_fields": [ + { + "name": "halfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::ZoneVisualizationSdfElementType", + "type_hash": 970745362, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfShaderData", + "type_name_2": "ZoneVisualizationSdfShaderData", + "qualified_name": "keen::ds::ZoneVisualizationSdfShaderData", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3312467851, + "hash2": 2986174411, + "struct_fields": [ + { + "name": "elementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "smoothingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ZoneVisualizationSdfBoundingSphere[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ZoneVisualizationSdfBoundingSphere", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 725017232, + "hash2": 290680511, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ZoneVisualizationSdfElement[32]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ZoneVisualizationSdfElement", + "class_size": 512, + "fields_count": 32, + "primitive_type": "StaticArray", + "hash1": 2762863049, + "hash2": 1164558234, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfShaderStorageData", + "type_name_2": "ZoneVisualizationSdfShaderStorageData", + "qualified_name": "keen::ds::ZoneVisualizationSdfShaderStorageData", + "referenced_type_name": null, + "class_size": 1024, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1077450680, + "hash2": 3261617262, + "struct_fields": [ + { + "name": "boundingSpheres", + "type_name": "keen::StaticArray", + "type_hash": 725017232, + "data_offset": 0 + }, + { + "name": "elements", + "type_name": "keen::StaticArray", + "type_hash": 2762863049, + "data_offset": 512 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSdfRenderingShaderData", + "type_name_2": "ZoneVisualizationSdfRenderingShaderData", + "qualified_name": "keen::ds::ZoneVisualizationSdfRenderingShaderData", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 1816732515, + "hash2": 1734732128, + "struct_fields": [ + { + "name": "borderInverseSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "borderCurveMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "noiseBorderTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "noisePositionTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "noiseOffset", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "buildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "noBuildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 32 + }, + { + "name": "noBuildZoneBuildZoneDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 40 + }, + { + "name": "noBuildZonePreviewDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 48 + }, + { + "name": "buildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "noBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 80 + }, + { + "name": "drawBuildZoneBorder", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 92 + }, + { + "name": "previewBuildZoneBoundingSphere", + "type_name": "keen::ds::ZoneVisualizationSdfBoundingSphere", + "type_hash": 1541430195, + "data_offset": 96 + }, + { + "name": "previewBuildZone", + "type_name": "keen::ds::ZoneVisualizationSdfElement", + "type_hash": 1026892514, + "data_offset": 112 + }, + { + "name": "previewBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationRasterizationShaderData", + "type_name_2": "ZoneVisualizationRasterizationShaderData", + "qualified_name": "keen::ds::ZoneVisualizationRasterizationShaderData", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2781959687, + "hash2": 872961583, + "struct_fields": [ + { + "name": "viewMatrix", + "type_name": "keen::GraphicsMatrix43", + "type_hash": 3292251535, + "data_offset": 0 + }, + { + "name": "viewProjectionMatrix", + "type_name": "keen::GraphicsMatrix44", + "type_hash": 3241918678, + "data_offset": 48 + }, + { + "name": "cameraPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 112 + }, + { + "name": "color", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 128 + }, + { + "name": "distanceFarFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 144 + }, + { + "name": "distanceNearFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationRasterizationPushConstants", + "type_name_2": "ZoneVisualizationRasterizationPushConstants", + "qualified_name": "keen::ds::ZoneVisualizationRasterizationPushConstants", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 527252431, + "hash2": 4044363367, + "struct_fields": [ + { + "name": "boxCenter", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "boxHalfSize", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationSettings", + "type_name_2": "ZoneVisualizationSettings", + "qualified_name": "keen::ds::ZoneVisualizationSettings", + "referenced_type_name": null, + "class_size": 172, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 3244519706, + "hash2": 1401510807, + "struct_fields": [ + { + "name": "smoothingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "buildZoneBorderColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 4 + }, + { + "name": "noBuildZoneBorderColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 20 + }, + { + "name": "previewBuildZoneBorderColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 36 + }, + { + "name": "borderSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "borderCurveMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "noiseTexture", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 60 + }, + { + "name": "noiseBorderTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "noisePositionTilingSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + }, + { + "name": "noiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + }, + { + "name": "buildZoneDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 88 + }, + { + "name": "noBuildZoneDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 96 + }, + { + "name": "noBuildZoneBuildZoneDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 104 + }, + { + "name": "noBuildZonePreviewDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 112 + }, + { + "name": "playableAreaColor", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 120 + }, + { + "name": "playableAreaAlpha", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 136 + }, + { + "name": "playableAreaDistanceFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 140 + }, + { + "name": "playableAreaNearFadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 148 + }, + { + "name": "playableAreaModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 156 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ZoneVisualizationResource", + "type_name_2": "ZoneVisualizationResource", + "qualified_name": "keen::ds::ZoneVisualizationResource", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 20, + "primitive_type": "Struct", + "hash1": 2961592979, + "hash2": 3397255787, + "struct_fields": [ + { + "name": "smoothingRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "borderInverseSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "borderCurveMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "noiseTexture", + "type_name": "keen::ds::RenderTexture", + "type_hash": 261229138, + "data_offset": 16 + }, + { + "name": "noiseBorderTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 88 + }, + { + "name": "noisePositionTilingFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + }, + { + "name": "noiseScrollSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + }, + { + "name": "buildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 100 + }, + { + "name": "noBuildZoneCameraDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 108 + }, + { + "name": "noBuildZoneBuildZoneDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 116 + }, + { + "name": "noBuildZonePreviewDistanceFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 124 + }, + { + "name": "buildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 132 + }, + { + "name": "noBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 144 + }, + { + "name": "previewBuildZoneBorderColor", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 156 + }, + { + "name": "playableAreaColor", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 168 + }, + { + "name": "playableAreaCameraDistanceFarFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 184 + }, + { + "name": "playableAreaCameraDistanceNearFadeFunction", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 192 + }, + { + "name": "playableAreaMeshVertexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 200 + }, + { + "name": "playableAreaMeshIndexCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 204 + }, + { + "name": "playableAreaMeshData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutMeshPointBrushScatteringSettings", + "type_name_2": "BlockOutMeshPointBrushScatteringSettings", + "qualified_name": "keen::ds::BlockOutMeshPointBrushScatteringSettings", + "referenced_type_name": null, + "class_size": 5, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 115988428, + "hash2": 1431548749, + "struct_fields": [ + { + "name": "disablePoint", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "disableLowerEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "disableUpperEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "disableWallTriangle0", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "disableWallTriangle1", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutMeshPoint", + "type_name_2": "BlockOutMeshPoint", + "qualified_name": "keen::ds::BlockOutMeshPoint", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4138702469, + "hash2": 935101127, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "brushScattering", + "type_name": "keen::ds::BlockOutMeshPointBrushScatteringSettings", + "type_hash": 115988428, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistributionRule", + "type_name_2": "DistributionRule", + "qualified_name": "keen::ds::DistributionRule", + "referenced_type_name": "keen::DistributionRule", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2641990303, + "hash2": 2640444095, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionNodeType", + "type_name_2": "DistributionNodeType", + "qualified_name": "keen::ds::DistributionNodeType", + "referenced_type_name": "keen::DistributionNodeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1118832265, + "hash2": 981836023, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntitySpawnData", + "type_name_2": "SceneEntitySpawnData", + "qualified_name": "keen::ds::SceneEntitySpawnData", + "referenced_type_name": null, + "class_size": 228, + "fields_count": 19, + "primitive_type": "Struct", + "hash1": 795599593, + "hash2": 1843958444, + "struct_fields": [ + { + "name": "velocity", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "tintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 12 + }, + { + "name": "triggerRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "triggerRange2", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "triggerRange3", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "triggerOffset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 28 + }, + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 68 + }, + { + "name": "levelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 72 + }, + { + "name": "enemySettings", + "type_name": "keen::ds::ecs::EnemySettings", + "type_hash": 2624997497, + "data_offset": 76 + }, + { + "name": "randomSpawnerSettings", + "type_name": "keen::ds::ecs::RandomSpawnerEntitySettings", + "type_hash": 2340220583, + "data_offset": 140 + }, + { + "name": "enemyTestFlags", + "type_name": "keen::ds::ecs::EnemyTestFlags", + "type_hash": 557893283, + "data_offset": 144 + }, + { + "name": "ambience", + "type_name": "keen::ds::AmbientEnvironment", + "type_hash": 1909756702, + "data_offset": 148 + }, + { + "name": "enemyMarkerTag", + "type_name": "keen::ObjectReference", + "type_hash": 2743421163, + "data_offset": 152 + }, + { + "name": "teleporterId", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 168 + }, + { + "name": "teleportTargetId", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 184 + }, + { + "name": "jumpDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 200 + }, + { + "name": "jumpHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 204 + }, + { + "name": "jumpLaunchOffset", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 208 + }, + { + "name": "mask", + "type_name": "keen::ds::ecs::EntitySpawnValueMask", + "type_hash": 3360711491, + "data_offset": 224 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::CompositeScatterImage", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1246543870, + "hash2": 1818771341, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionNode", + "type_name_2": "DistributionNode", + "qualified_name": "keen::ds::DistributionNode", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 21, + "primitive_type": "Struct", + "hash1": 1837455201, + "hash2": 3039682420, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::DistributionNodeType", + "type_hash": 1118832265, + "data_offset": 0 + }, + { + "name": "voxelBrush", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 4 + }, + { + "name": "voxelBrushScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "voxelBrushScaleVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 28 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 44 + }, + { + "name": "spawnTemplate", + "type_name": "keen::ObjectReference", + "type_hash": 678219975, + "data_offset": 48 + }, + { + "name": "spawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 64 + }, + { + "name": "alignRotationToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 292 + }, + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 296 + }, + { + "name": "compositeMap", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 312 + }, + { + "name": "rule", + "type_name": "keen::ds::DistributionRule", + "type_hash": 2641990303, + "data_offset": 328 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 332 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 336 + }, + { + "name": "maxHeightDifference", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 340 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 344 + }, + { + "name": "minContentDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 348 + }, + { + "name": "maxRoadDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 352 + }, + { + "name": "onlyAtCrossings", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 356 + }, + { + "name": "snapToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 357 + }, + { + "name": "rotationRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 360 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxTagInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxTagInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 29096206, + "hash2": 2135336573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionNodeGroupEntry", + "type_name_2": "DistributionNodeGroupEntry", + "qualified_name": "keen::ds::DistributionNodeGroupEntry", + "referenced_type_name": null, + "class_size": 368, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 1780740924, + "hash2": 2300575422, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::DistributionNodeType", + "type_hash": 1118832265, + "data_offset": 0 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "voxelBrush", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 20 + }, + { + "name": "voxelBrushScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "voxelBrushScaleVariation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 44 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 60 + }, + { + "name": "spawnTemplate", + "type_name": "keen::ObjectReference", + "type_hash": 678219975, + "data_offset": 64 + }, + { + "name": "spawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 80 + }, + { + "name": "whiteboxTags", + "type_name": "keen::DsArray", + "type_hash": 29096206, + "data_offset": 312 + }, + { + "name": "probabilityWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 352 + }, + { + "name": "alignRotationToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 356 + }, + { + "name": "rotationRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 360 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "RoadCrossingNode", + "type_name_2": "RoadCrossingNode", + "qualified_name": "keen::ds::RoadCrossingNode", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3028356477, + "hash2": 182653417, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "keepPlainCrossing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DistributionNodeGroupEntry[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DistributionNodeGroupEntry", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2948813173, + "hash2": 1995050952, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ConvertedDistributionNode", + "type_name_2": "ConvertedDistributionNode", + "qualified_name": "keen::ds::ConvertedDistributionNode", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 3308311213, + "hash2": 2407639109, + "struct_fields": [ + { + "name": "map", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 0 + }, + { + "name": "rule", + "type_name": "keen::ds::DistributionRule", + "type_hash": 2641990303, + "data_offset": 16 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "maxHeightDifference", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "minContentDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "maxRoadDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "onlyAtCrossings", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "snapToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "groupEntries", + "type_name": "keen::DsArray", + "type_hash": 2948813173, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ConvertedDistributionNode[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ConvertedDistributionNode", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 476266864, + "hash2": 2703736288, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "RoadCrossingNode[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::RoadCrossingNode", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4245095630, + "hash2": 2753333197, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DistributionNodes", + "type_name_2": "DistributionNodes", + "qualified_name": "keen::ds::DistributionNodes", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2062029142, + "hash2": 3999246477, + "struct_fields": [ + { + "name": "nodes", + "type_name": "keen::DsArray", + "type_hash": 476266864, + "data_offset": 0 + }, + { + "name": "roadCrossings", + "type_name": "keen::DsArray", + "type_hash": 4245095630, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Reference[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::ObjectReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2792022010, + "hash2": 1394127069, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetImageInfos", + "type_name_2": "ScatterSetImageInfos", + "qualified_name": "keen::ds::ScatterSetImageInfos", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3244819871, + "hash2": 2514427147, + "struct_fields": [ + { + "name": "images", + "type_name": "keen::DsArray>", + "type_hash": 2792022010, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterResolution", + "type_name_2": "ScatterResolution", + "qualified_name": "keen::ds::ScatterResolution", + "referenced_type_name": "keen::ScatterResolution", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3957392185, + "hash2": 1192907433, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNodeMap", + "type_name_2": "ScatterNodeMap", + "qualified_name": "keen::ds::ScatterNodeMap", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3889886547, + "hash2": 2136632711, + "struct_fields": [ + { + "name": "image", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "wrap", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNodeFlag", + "type_name_2": "ScatterNodeFlag", + "qualified_name": "keen::ds::ScatterNodeFlag", + "referenced_type_name": "keen::ScatterNodeFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2726856845, + "hash2": 162077458, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNodeFlags", + "type_name_2": "ScatterNodeFlags", + "qualified_name": "keen::ds::ScatterNodeFlags", + "referenced_type_name": "keen::ScatterNodeFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3673139162, + "hash2": 1964802372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterLocation", + "type_name_2": "ScatterLocation", + "qualified_name": "keen::ds::ScatterLocation", + "referenced_type_name": "keen::ScatterLocation", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1344423300, + "hash2": 1239629854, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetVoxelMap", + "type_name_2": "ScatterSetVoxelMap", + "qualified_name": "keen::ds::ScatterSetVoxelMap", + "referenced_type_name": "keen::ScatterSetVoxelMap", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 64458443, + "hash2": 2077434724, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetRule", + "type_name_2": "ScatterSetRule", + "qualified_name": "keen::ds::ScatterSetRule", + "referenced_type_name": "keen::ScatterSetRule", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1539197255, + "hash2": 3916992371, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetFootprintMap", + "type_name_2": "ScatterSetFootprintMap", + "qualified_name": "keen::ds::ScatterSetFootprintMap", + "referenced_type_name": "keen::ScatterSetFootprintMap", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3063693886, + "hash2": 2548813905, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetImageMap", + "type_name_2": "ScatterSetImageMap", + "qualified_name": "keen::ds::ScatterSetImageMap", + "referenced_type_name": "keen::ScatterSetImageMap", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2134004544, + "hash2": 530507395, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterScaleRange", + "type_name_2": "ScatterScaleRange", + "qualified_name": "keen::ds::ScatterScaleRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 367897696, + "hash2": 3748655000, + "struct_fields": [ + { + "name": "minValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "maxValue", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterYawRange", + "type_name_2": "ScatterYawRange", + "qualified_name": "keen::ds::ScatterYawRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 425837755, + "hash2": 4117673488, + "struct_fields": [ + { + "name": "minValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "maxValue", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterPitchRange", + "type_name_2": "ScatterPitchRange", + "qualified_name": "keen::ds::ScatterPitchRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3709740100, + "hash2": 3384023376, + "struct_fields": [ + { + "name": "minValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxValue", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNodeImageType", + "type_name_2": "ScatterNodeImageType", + "qualified_name": "keen::ds::ScatterNodeImageType", + "referenced_type_name": "keen::ScatterNodeImageType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3266150512, + "hash2": 3387595560, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterNode", + "type_name_2": "ScatterNode", + "qualified_name": "keen::ds::ScatterNode", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 16, + "primitive_type": "Struct", + "hash1": 2699061763, + "hash2": 700706274, + "struct_fields": [ + { + "name": "imageType", + "type_name": "keen::ds::ScatterNodeImageType", + "type_hash": 3266150512, + "data_offset": 0 + }, + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 4 + }, + { + "name": "compositeScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 20 + }, + { + "name": "map", + "type_name": "keen::ds::ScatterNodeMap", + "type_hash": 3889886547, + "data_offset": 36 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 72 + }, + { + "name": "entity", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 88 + }, + { + "name": "resolution", + "type_name": "keen::ds::ScatterResolution", + "type_hash": 3957392185, + "data_offset": 104 + }, + { + "name": "rule", + "type_name": "keen::ds::ScatterSetRule", + "type_hash": 1539197255, + "data_offset": 105 + }, + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 106 + }, + { + "name": "location", + "type_name": "keen::ds::ScatterLocation", + "type_hash": 1344423300, + "data_offset": 107 + }, + { + "name": "footprint", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 108 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 112 + }, + { + "name": "scale", + "type_name": "keen::ds::ScatterScaleRange", + "type_hash": 367897696, + "data_offset": 116 + }, + { + "name": "yaw", + "type_name": "keen::ds::ScatterYawRange", + "type_hash": 425837755, + "data_offset": 124 + }, + { + "name": "pitch", + "type_name": "keen::ds::ScatterPitchRange", + "type_hash": 3709740100, + "data_offset": 132 + }, + { + "name": "flags", + "type_name": "keen::ds::ScatterNodeFlags", + "type_hash": 3673139162, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetMaps", + "type_name_2": "ScatterSetMaps", + "qualified_name": "keen::ds::ScatterSetMaps", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2927106330, + "hash2": 483652819, + "struct_fields": [ + { + "name": "imageType", + "type_name": "keen::ds::ScatterNodeImageType", + "type_hash": 3266150512, + "data_offset": 0 + }, + { + "name": "forest", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 4 + }, + { + "name": "forestScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 20 + }, + { + "name": "forestCompositeScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSet3", + "type_name_2": "ScatterSet3", + "qualified_name": "keen::ds::ScatterSet3", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 608878086, + "hash2": 60662329, + "struct_fields": [ + { + "name": "maps", + "type_name": "keen::ds::ScatterSetMaps", + "type_hash": 2927106330, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetObject", + "type_name_2": "ScatterSetObject", + "qualified_name": "keen::ds::ScatterSetObject", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 1452925390, + "hash2": 1597168378, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "entity", + "type_name": "keen::ds::ecs::TemplateResourceReference", + "type_hash": 2516828895, + "data_offset": 16 + }, + { + "name": "rule", + "type_name": "keen::ds::ScatterSetRule", + "type_hash": 1539197255, + "data_offset": 32 + }, + { + "name": "mapIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 36 + }, + { + "name": "footprint", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "scale", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 48 + }, + { + "name": "yaw", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 56 + }, + { + "name": "pitch", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 64 + }, + { + "name": "flags", + "type_name": "keen::ds::ScatterNodeFlags", + "type_hash": 3673139162, + "data_offset": 72 + }, + { + "name": "biome", + "type_name": "keen::ds::Biome", + "type_hash": 3017524025, + "data_offset": 73 + }, + { + "name": "location", + "type_name": "keen::ds::ScatterLocation", + "type_hash": 1344423300, + "data_offset": 74 + }, + { + "name": "resolution", + "type_name": "keen::ds::ScatterResolution", + "type_hash": 3957392185, + "data_offset": 75 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetMapInfo", + "type_name_2": "ScatterSetMapInfo", + "qualified_name": "keen::ds::ScatterSetMapInfo", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1582941, + "hash2": 1455743033, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "hash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 8 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 24 + }, + { + "name": "bauPath", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetImageData", + "type_name_2": "ScatterSetImageData", + "qualified_name": "keen::ds::ScatterSetImageData", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3895265926, + "hash2": 75439466, + "struct_fields": [ + { + "name": "imageSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 8 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "wrap", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "hash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 28 + }, + { + "name": "name", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 48 + }, + { + "name": "bauPath", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 88 + }, + { + "name": "scatterImage", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetLocationObjects", + "type_name_2": "ScatterSetLocationObjects", + "qualified_name": "keen::ds::ScatterSetLocationObjects", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 365168438, + "hash2": 262017875, + "struct_fields": [ + { + "name": "objects", + "type_name": "keen::DsArray", + "type_hash": 1518945252, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ScatterSetLocationObjects[3]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ScatterSetLocationObjects", + "class_size": 120, + "fields_count": 3, + "primitive_type": "StaticArray", + "hash1": 4120712597, + "hash2": 2526911424, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSetResolutionObjects", + "type_name_2": "ScatterSetResolutionObjects", + "qualified_name": "keen::ds::ScatterSetResolutionObjects", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 358095809, + "hash2": 2859980, + "struct_fields": [ + { + "name": "locations", + "type_name": "keen::StaticArray", + "type_hash": 4120712597, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ScatterSetImageData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ScatterSetImageData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3421916785, + "hash2": 1584478924, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "ScatterSetResolutionObjects[5]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::ScatterSetResolutionObjects", + "class_size": 600, + "fields_count": 5, + "primitive_type": "StaticArray", + "hash1": 2746952986, + "hash2": 1944615991, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ScatterSetObject[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ScatterSetObject", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3398876755, + "hash2": 1150517122, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSet3Resource", + "type_name_2": "ScatterSet3Resource", + "qualified_name": "keen::ds::ScatterSet3Resource", + "referenced_type_name": null, + "class_size": 680, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3228808670, + "hash2": 455933636, + "struct_fields": [ + { + "name": "maps", + "type_name": "keen::DsArray", + "type_hash": 3421916785, + "data_offset": 0 + }, + { + "name": "resolutions", + "type_name": "keen::StaticArray", + "type_hash": 2746952986, + "data_offset": 40 + }, + { + "name": "objects", + "type_name": "keen::DsArray", + "type_hash": 3398876755, + "data_offset": 640 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ScatterSet3Resource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2564093527, + "hash2": 3981297605, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterSet3ResourceReference", + "type_name_2": "ScatterSet3ResourceReference", + "qualified_name": "keen::ds::ScatterSet3ResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2567610219, + "hash2": 2517655568, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CompositeOperation", + "type_name_2": "composite_scatter_image.CompositeOperation", + "qualified_name": "keen::ds::composite_scatter_image::CompositeOperation", + "referenced_type_name": "keen::composite_scatter_image::CompositeOperation", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2649015809, + "hash2": 1330698050, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputType", + "type_name_2": "composite_scatter_image.InputType", + "qualified_name": "keen::ds::composite_scatter_image::InputType", + "referenced_type_name": "keen::composite_scatter_image::InputType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3524284215, + "hash2": 3314305573, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "InputOperation", + "type_name_2": "composite_scatter_image.InputOperation", + "qualified_name": "keen::ds::composite_scatter_image::InputOperation", + "referenced_type_name": "keen::composite_scatter_image::InputOperation", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2848637740, + "hash2": 2164031111, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Input", + "type_name_2": "composite_scatter_image.Input", + "qualified_name": "keen::ds::composite_scatter_image::Input", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 3779011439, + "hash2": 2143862359, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::composite_scatter_image::InputType", + "type_hash": 3524284215, + "data_offset": 0 + }, + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 4 + }, + { + "name": "compositeScatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 20 + }, + { + "name": "value", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "inputOperation", + "type_name": "keen::ds::composite_scatter_image::InputOperation", + "type_hash": 2848637740, + "data_offset": 40 + }, + { + "name": "inputToMaskMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "inputToMaskMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "operation", + "type_name": "keen::ds::composite_scatter_image::CompositeOperation", + "type_hash": 2649015809, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "composite_scatter_image.Input[6]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::composite_scatter_image::Input", + "class_size": 336, + "fields_count": 6, + "primitive_type": "StaticArray", + "hash1": 2729957071, + "hash2": 1779110980, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CompositeScatterImage", + "type_name_2": "CompositeScatterImage", + "qualified_name": "keen::ds::CompositeScatterImage", + "referenced_type_name": "keen::ds::AbstractScatterImage", + "class_size": 356, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1395657629, + "hash2": 1227507394, + "struct_fields": [ + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "inputs", + "type_name": "keen::StaticArray", + "type_hash": 2729957071, + "data_offset": 4 + }, + { + "name": "remapSourceFrom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 340 + }, + { + "name": "remapSourceTo", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 344 + }, + { + "name": "outputLevelsFrom", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 348 + }, + { + "name": "outputLevelsTo", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 352 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TestCompositeScatterImage", + "type_name_2": "TestCompositeScatterImage", + "qualified_name": "keen::ds::TestCompositeScatterImage", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3949638777, + "hash2": 864427338, + "struct_fields": [ + { + "name": "testObjectReference", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerConfiguration", + "type_name_2": "DungeonTriggerConfiguration", + "qualified_name": "keen::ds::DungeonTriggerConfiguration", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2629789497, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerSetup", + "type_name_2": "DungeonTriggerSetup", + "qualified_name": "keen::ds::DungeonTriggerSetup", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4217590198, + "hash2": 635671538, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerSlot", + "type_name_2": "DungeonTriggerSlot", + "qualified_name": "keen::ds::DungeonTriggerSlot", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 451107313, + "hash2": 2904399144, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "triggerSlotHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerInput", + "type_name_2": "DungeonTriggerInput", + "qualified_name": "keen::ds::DungeonTriggerInput", + "referenced_type_name": "keen::ds::DungeonTriggerSlot", + "class_size": 48, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2462027515, + "hash2": 2614309175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerOutput", + "type_name_2": "DungeonTriggerOutput", + "qualified_name": "keen::ds::DungeonTriggerOutput", + "referenced_type_name": "keen::ds::DungeonTriggerSlot", + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2910840196, + "hash2": 559215482, + "struct_fields": [ + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 50 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonTriggerInput[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonTriggerInput", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2653337058, + "hash2": 3492217539, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonTriggerOutput[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonTriggerOutput", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1822040373, + "hash2": 989695945, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerInfo", + "type_name_2": "DungeonTriggerInfo", + "qualified_name": "keen::ds::DungeonTriggerInfo", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3120699781, + "hash2": 4064497452, + "struct_fields": [ + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 0 + }, + { + "name": "inputs", + "type_name": "keen::DsArray", + "type_hash": 2653337058, + "data_offset": 8 + }, + { + "name": "outputs", + "type_name": "keen::DsArray", + "type_hash": 1822040373, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTriggerInfo", + "type_name_2": "EntityTriggerInfo", + "qualified_name": "keen::ds::EntityTriggerInfo", + "referenced_type_name": "keen::ds::DungeonTriggerInfo", + "class_size": 88, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4031058056, + "hash2": 686575263, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraph", + "type_name_2": "DungeonTriggerGraph", + "qualified_name": "keen::ds::DungeonTriggerGraph", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1381967303, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNode", + "type_name_2": "DungeonTriggerGraphNode", + "qualified_name": "keen::ds::DungeonTriggerGraphNode", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 411430759, + "hash2": 2306360620, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::Vector2", + "type_hash": 1718921069, + "data_offset": 0 + }, + { + "name": "roomInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneDungeonRoomWhitebox", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1748819459, + "hash2": 105150775, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DungeonRoomScene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 916279835, + "hash2": 2307917372, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneDungeonRoomInstance", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 116968528, + "hash2": 622637033, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeEndPoint", + "type_name_2": "DungeonTriggerGraphNodeEndPoint", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeEndPoint", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNode", + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1954953514, + "hash2": 495450734, + "struct_fields": [ + { + "name": "trigger", + "type_name": "keen::ObjectReference", + "type_hash": 1748819459, + "data_offset": 24 + }, + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 916279835, + "data_offset": 40 + }, + { + "name": "room", + "type_name": "keen::ObjectReference", + "type_hash": 116968528, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonLogicOperator", + "type_name_2": "DungeonLogicOperator", + "qualified_name": "keen::ds::DungeonLogicOperator", + "referenced_type_name": "keen::DungeonLogicOperator", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3769998879, + "hash2": 2504785314, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerSettingsNode", + "type_name_2": "DungeonTriggerSettingsNode", + "qualified_name": "keen::ds::DungeonTriggerSettingsNode", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNode", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3674394580, + "hash2": 3911803673, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeDungeonLogic", + "type_name_2": "DungeonTriggerGraphNodeDungeonLogic", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeDungeonLogic", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNode", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1623452247, + "hash2": 3911803673, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeBool", + "type_name_2": "DungeonTriggerGraphNodeBool", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeBool", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1000596467, + "hash2": 3933022388, + "struct_fields": [ + { + "name": "value", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeAnd", + "type_name_2": "DungeonTriggerGraphNodeAnd", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeAnd", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1029799856, + "hash2": 4247842562, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::DungeonLogicOperator", + "type_hash": 3769998879, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeOr", + "type_name_2": "DungeonTriggerGraphNodeOr", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeOr", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1127709246, + "hash2": 4247842562, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::DungeonLogicOperator", + "type_hash": 3769998879, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeNot", + "type_name_2": "DungeonTriggerGraphNodeNot", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeNot", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 28, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2234041928, + "hash2": 4247842562, + "struct_fields": [ + { + "name": "op", + "type_name": "keen::ds::DungeonLogicOperator", + "type_hash": 3769998879, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DelayFlags", + "type_name_2": "DelayFlags", + "qualified_name": "keen::ds::DelayFlags", + "referenced_type_name": "keen::DelayFlags", + "class_size": 1, + "fields_count": 2, + "primitive_type": "Typedef", + "hash1": 3189603817, + "hash2": 597733147, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeDelay", + "type_name_2": "DungeonTriggerGraphNodeDelay", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeDelay", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeDungeonLogic", + "class_size": 40, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2359996726, + "hash2": 3493879281, + "struct_fields": [ + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "filter", + "type_name": "keen::ds::DelayMask", + "type_hash": 1453344126, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeSender", + "type_name_2": "DungeonTriggerGraphNodeSender", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeSender", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeEndPoint", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2547650506, + "hash2": 4069930290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeReceiver", + "type_name_2": "DungeonTriggerGraphNodeReceiver", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeReceiver", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeEndPoint", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2620880586, + "hash2": 4069930290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphNodeWhitebox", + "type_name_2": "DungeonTriggerGraphNodeWhitebox", + "qualified_name": "keen::ds::DungeonTriggerGraphNodeWhitebox", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNodeEndPoint", + "class_size": 72, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2311587529, + "hash2": 4069930290, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DungeonTriggerGraphNode", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3287010768, + "hash2": 3544154788, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerGraphLink", + "type_name_2": "DungeonTriggerGraphLink", + "qualified_name": "keen::ds::DungeonTriggerGraphLink", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1026934427, + "hash2": 1077548898, + "struct_fields": [ + { + "name": "startNode", + "type_name": "keen::ObjectReference", + "type_hash": 3287010768, + "data_offset": 0 + }, + { + "name": "endNode", + "type_name": "keen::ObjectReference", + "type_hash": 3287010768, + "data_offset": 16 + }, + { + "name": "startSlot", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 32 + }, + { + "name": "endSlot", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 36 + }, + { + "name": "startIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 40 + }, + { + "name": "endIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 41 + }, + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabTriggerInfo", + "type_name_2": "PrefabTriggerInfo", + "qualified_name": "keen::ds::PrefabTriggerInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1247931595, + "hash2": 1153584136, + "struct_fields": [ + { + "name": "triggerEntityGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "triggerSlotHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContainmentSet", + "type_name_2": "PrefabContainmentSet", + "qualified_name": "keen::ds::PrefabContainmentSet", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 842900265, + "hash2": 2393522187, + "struct_fields": [ + { + "name": "triggerTypes", + "type_name": "keen::DsArray", + "type_hash": 3892628011, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabTriggerSlotType", + "type_name_2": "PrefabTriggerSlotType", + "qualified_name": "keen::ds::PrefabTriggerSlotType", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2175579403, + "hash2": 4025791036, + "struct_fields": [ + { + "name": "slotTypeId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "isInput", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "uiColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 8 + }, + { + "name": "identifier", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 16 + }, + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 58 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabTriggerInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabTriggerInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1938417890, + "hash2": 1034406713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabTriggerSlotType[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabTriggerSlotType", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2028073338, + "hash2": 2855406969, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabContainmentSet[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabContainmentSet", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1288788878, + "hash2": 60913345, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContainment", + "type_name_2": "PrefabContainment", + "qualified_name": "keen::ds::PrefabContainment", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4197492987, + "hash2": 2490496444, + "struct_fields": [ + { + "name": "prefabId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "triggerGuids", + "type_name": "keen::DsArray", + "type_hash": 1938417890, + "data_offset": 16 + }, + { + "name": "slotDefinitions", + "type_name": "keen::DsArray", + "type_hash": 2028073338, + "data_offset": 56 + }, + { + "name": "containmentVariations", + "type_name": "keen::DsArray", + "type_hash": 1288788878, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxContainment", + "type_name_2": "WhiteboxContainment", + "qualified_name": "keen::ds::WhiteboxContainment", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3471626051, + "hash2": 3882608795, + "struct_fields": [ + { + "name": "slotDefinitions", + "type_name": "keen::DsArray", + "type_hash": 2028073338, + "data_offset": 0 + }, + { + "name": "containmentVariations", + "type_name": "keen::DsArray", + "type_hash": 1288788878, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerFlags", + "type_name_2": "WhiteboxTriggerFlags", + "qualified_name": "keen::ds::WhiteboxTriggerFlags", + "referenced_type_name": "keen::WhiteboxTriggerFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1608230734, + "hash2": 3284871976, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerMask", + "type_name_2": "WhiteboxTriggerMask", + "qualified_name": "keen::ds::WhiteboxTriggerMask", + "referenced_type_name": "keen::WhiteboxTriggerMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 53278611, + "hash2": 2421912748, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerSetup", + "type_name_2": "WhiteboxTriggerSetup", + "qualified_name": "keen::ds::WhiteboxTriggerSetup", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1304580584, + "hash2": 1547413870, + "struct_fields": [ + { + "name": "triggerFormula", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + }, + { + "name": "triggerDelay", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 40 + }, + { + "name": "triggerDelayMask", + "type_name": "keen::ds::DelayMask", + "type_hash": 1453344126, + "data_offset": 48 + }, + { + "name": "triggerIds", + "type_name": "keen::StaticArray", + "type_hash": 1482374345, + "data_offset": 52 + }, + { + "name": "triggerSlot", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 116 + }, + { + "name": "triggerMask", + "type_name": "keen::ds::WhiteboxTriggerMask", + "type_hash": 53278611, + "data_offset": 120 + }, + { + "name": "triggerIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 121 + }, + { + "name": "sendActivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 122 + }, + { + "name": "sendDeactivateEvent", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 123 + }, + { + "name": "sendResultSignal", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + }, + { + "name": "initialState", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 125 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerInfo", + "type_name_2": "WhiteboxTriggerInfo", + "qualified_name": "keen::ds::WhiteboxTriggerInfo", + "referenced_type_name": "keen::ds::WhiteboxTriggerSetup", + "class_size": 144, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2176253459, + "hash2": 2180185989, + "struct_fields": [ + { + "name": "triggerObjectInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTrigger", + "type_name_2": "DungeonTrigger", + "qualified_name": "keen::ds::DungeonTrigger", + "referenced_type_name": null, + "class_size": 224, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2635499621, + "hash2": 505478729, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 40 + }, + { + "name": "roomSceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 96 + }, + { + "name": "roomInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 112 + }, + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 128 + }, + { + "name": "containmentVariations", + "type_name": "keen::DsArray", + "type_hash": 1288788878, + "data_offset": 144 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 192 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonTrigger[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonTrigger", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4161646990, + "hash2": 3873249285, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RoomTriggerList", + "type_name_2": "RoomTriggerList", + "qualified_name": "keen::ds::RoomTriggerList", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1103079884, + "hash2": 1024072747, + "struct_fields": [ + { + "name": "dungeonTriggerGraphId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "slotDefinitions", + "type_name": "keen::DsArray", + "type_hash": 2028073338, + "data_offset": 16 + }, + { + "name": "trigger", + "type_name": "keen::DsArray", + "type_hash": 4161646990, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxTriggerSetup[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxTriggerSetup", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 135546461, + "hash2": 3860292177, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerWhitebox", + "type_name_2": "DungeonTriggerWhitebox", + "qualified_name": "keen::ds::DungeonTriggerWhitebox", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2691656499, + "hash2": 1379391170, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "setups", + "type_name": "keen::DsArray", + "type_hash": 135546461, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonTriggerWhitebox[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonTriggerWhitebox", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1384827776, + "hash2": 3271617730, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggerRoom", + "type_name_2": "DungeonTriggerRoom", + "qualified_name": "keen::ds::DungeonTriggerRoom", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3796583674, + "hash2": 2327964100, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "whiteboxes", + "type_name": "keen::DsArray", + "type_hash": 1384827776, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonTriggerRoom[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonTriggerRoom", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1186758483, + "hash2": 2045393242, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonTriggers", + "type_name_2": "DungeonTriggers", + "qualified_name": "keen::ds::DungeonTriggers", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1618492066, + "hash2": 3321304546, + "struct_fields": [ + { + "name": "rooms", + "type_name": "keen::DsArray", + "type_hash": 1186758483, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityAnimationPath", + "type_name_2": "EntityAnimationPath", + "qualified_name": "keen::ds::EntityAnimationPath", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3843647389, + "hash2": 144584353, + "struct_fields": [ + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 0 + }, + { + "name": "length", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityAnimationPathPoint", + "type_name_2": "EntityAnimationPathPoint", + "qualified_name": "keen::ds::EntityAnimationPathPoint", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1865347945, + "hash2": 4246661610, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "orientation", + "type_name": "keen::Quaternion", + "type_hash": 4246145582, + "data_offset": 12 + }, + { + "name": "enableConstantRotationX", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "constantRotationX", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 32 + }, + { + "name": "enableConstantRotationY", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "constantRotationY", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 40 + }, + { + "name": "enableConstantRotationZ", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "constantRotationZ", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneTemplate", + "type_name_2": "SceneTemplate", + "qualified_name": "keen::ds::SceneTemplate", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1078955699, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWaterTemplate", + "type_name_2": "SceneWaterTemplate", + "qualified_name": "keen::ds::SceneWaterTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 17895186, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WorldDistributionTypeFlag", + "type_name_2": "WorldDistributionTypeFlag", + "qualified_name": "keen::ds::WorldDistributionTypeFlag", + "referenced_type_name": "keen::WorldDistributionTypeFlag", + "class_size": 1, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 945273525, + "hash2": 2269318360, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VfxUserEffectParameterDataBlockIncludeDummy0", + "type_name_2": "VfxUserEffectParameterDataBlockIncludeDummy0", + "qualified_name": "keen::ds::VfxUserEffectParameterDataBlockIncludeDummy0", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4175860605, + "hash2": 888001253, + "struct_fields": [ + { + "name": "dummy", + "type_name": "keen::ds::VfxUserEffectParameterDataBlock", + "type_hash": 1522578755, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneModel", + "type_name_2": "SceneModel", + "qualified_name": "keen::ds::SceneModel", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 104, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2281600834, + "hash2": 4207947790, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 64 + }, + { + "name": "clothCollider", + "type_name": "keen::ObjectReference", + "type_hash": 4263838746, + "data_offset": 80 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnDefinition", + "type_name_2": "EntitySpawnDefinition", + "qualified_name": "keen::ds::EntitySpawnDefinition", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 498883514, + "hash2": 1175365258, + "struct_fields": [ + { + "name": "templateReference", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 0 + }, + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 16 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreviewSubEntity", + "type_name_2": "TemplatePreviewSubEntity", + "qualified_name": "keen::ds::TemplatePreviewSubEntity", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 652148620, + "hash2": 4007225324, + "struct_fields": [ + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray>", + "type_hash": 33832286, + "data_offset": 16 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 56 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreviewVfx", + "type_name_2": "TemplatePreviewVfx", + "qualified_name": "keen::ds::TemplatePreviewVfx", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1027051773, + "hash2": 1574500311, + "struct_fields": [ + { + "name": "vfx", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 0 + }, + { + "name": "offset", + "type_name": "keen::ds::ecs::Offset", + "type_hash": 826240779, + "data_offset": 16 + }, + { + "name": "slot", + "type_name": "keen::ds::AttachmentSlot", + "type_hash": 976550702, + "data_offset": 56 + }, + { + "name": "initParameters", + "type_name": "keen::DsOptional", + "type_hash": 1131162835, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreviewPart", + "type_name_2": "TemplatePreviewPart", + "qualified_name": "keen::ds::TemplatePreviewPart", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 694963666, + "hash2": 1656245756, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "paletteColors", + "type_name": "keen::ds::ColorCombination", + "type_hash": 406724265, + "data_offset": 16 + }, + { + "name": "gradient", + "type_name": "keen::ObjectReference", + "type_hash": 11905800, + "data_offset": 64 + }, + { + "name": "blendShapes", + "type_name": "keen::DsArray", + "type_hash": 1170336748, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "TemplatePreviewPart[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::TemplatePreviewPart", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2301781353, + "hash2": 2418711571, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "TemplatePreviewSubEntity[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::TemplatePreviewSubEntity", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1067042085, + "hash2": 1898735813, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplatePreview", + "type_name_2": "TemplatePreview", + "qualified_name": "keen::ds::TemplatePreview", + "referenced_type_name": null, + "class_size": 288, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2781236159, + "hash2": 445337753, + "struct_fields": [ + { + "name": "parts", + "type_name": "keen::DsArray", + "type_hash": 2301781353, + "data_offset": 0 + }, + { + "name": "spawnedEntity", + "type_name": "keen::ObjectReference", + "type_hash": 678219975, + "data_offset": 40 + }, + { + "name": "vfx", + "type_name": "keen::ds::TemplatePreviewVfx", + "type_hash": 1027051773, + "data_offset": 56 + }, + { + "name": "subEntities", + "type_name": "keen::DsArray", + "type_hash": 1067042085, + "data_offset": 136 + }, + { + "name": "subEntityAttachmentMask", + "type_name": "keen::ds::AttachmentSlotMask", + "type_hash": 1814507678, + "data_offset": 176 + }, + { + "name": "animationGraph", + "type_name": "keen::ObjectReference", + "type_hash": 2358948672, + "data_offset": 180 + }, + { + "name": "slotJointIndexMapping", + "type_name": "keen::StaticArray", + "type_hash": 4141771936, + "data_offset": 196 + }, + { + "name": "hierarchyId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 224 + }, + { + "name": "allColliders", + "type_name": "keen::ds::ecs::ColliderDataArray", + "type_hash": 4258904265, + "data_offset": 240 + }, + { + "name": "scale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 280 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateInfo", + "type_name_2": "TemplateInfo", + "qualified_name": "keen::ds::TemplateInfo", + "referenced_type_name": null, + "class_size": 304, + "fields_count": 25, + "primitive_type": "Struct", + "hash1": 3935007005, + "hash2": 1714295625, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "isPlayerSpawn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "isMapMarker", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 41 + }, + { + "name": "isFakePlayerSpawner", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 42 + }, + { + "name": "isContainer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 43 + }, + { + "name": "isActor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 44 + }, + { + "name": "isAutomatedPlayer", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 45 + }, + { + "name": "isSkinned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 46 + }, + { + "name": "doNotSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 47 + }, + { + "name": "questEntity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 48 + }, + { + "name": "isNpc", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 49 + }, + { + "name": "isCraftingAssistant", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 50 + }, + { + "name": "nameLocaId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 52 + }, + { + "name": "npcRenderingOptions", + "type_name": "keen::ds::UiNpcRenderingOptions", + "type_hash": 4011500566, + "data_offset": 56 + }, + { + "name": "workshopId", + "type_name": "keen::ds::WorkshopId", + "type_hash": 1406855915, + "data_offset": 108 + }, + { + "name": "workshopLabel", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 112 + }, + { + "name": "characterPresetReference", + "type_name": "keen::ds::CharacterPresetReference", + "type_hash": 1126720570, + "data_offset": 116 + }, + { + "name": "placementItem", + "type_name": "keen::ds::ItemReference", + "type_hash": 1082407109, + "data_offset": 132 + }, + { + "name": "knowledgeRequirement", + "type_name": "keen::ds::GameKnowledgeRequirement", + "type_hash": 3603873110, + "data_offset": 148 + }, + { + "name": "containerSlotCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 252 + }, + { + "name": "floorMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 2732519224, + "data_offset": 256 + }, + { + "name": "floorMaterialRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 272 + }, + { + "name": "floorMaterialShape", + "type_name": "keen::ds::FloorMaterialShape", + "type_hash": 3156412663, + "data_offset": 276 + }, + { + "name": "floorMaterialNoiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 280 + }, + { + "name": "fallbackModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 284 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "TemplateInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::TemplateInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1331239098, + "hash2": 1499564453, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "AxisAlignedBox[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::AxisAlignedBox", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 490765435, + "hash2": 3942984669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TemplateInfoCollection", + "type_name_2": "TemplateInfoCollection", + "qualified_name": "keen::ds::TemplateInfoCollection", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3084470569, + "hash2": 2844600379, + "struct_fields": [ + { + "name": "templateGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + }, + { + "name": "templateInfos", + "type_name": "keen::DsArray", + "type_hash": 1331239098, + "data_offset": 40 + }, + { + "name": "templateBBoxes", + "type_name": "keen::DsArray", + "type_hash": 490765435, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemplateSubentityIds", + "type_name_2": "TemplateSubentityIds", + "qualified_name": "keen::ds::TemplateSubentityIds", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3996728804, + "hash2": 3962292978, + "struct_fields": [ + { + "name": "subentityTemplateGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::EntitySpawnDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1708611315, + "hash2": 612434603, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntitySpawn", + "type_name_2": "SceneEntitySpawn", + "qualified_name": "keen::ds::SceneEntitySpawn", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 344, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2178085657, + "hash2": 3700931189, + "struct_fields": [ + { + "name": "entitySpawnDefinition", + "type_name": "keen::ObjectReference", + "type_hash": 1708611315, + "data_offset": 64 + }, + { + "name": "templateReference", + "type_name": "keen::ObjectReference", + "type_hash": 678219975, + "data_offset": 80 + }, + { + "name": "templatePreviewContentHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 96 + }, + { + "name": "spawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 112 + }, + { + "name": "storeSceneId", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 340 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 341 + }, + { + "name": "enableFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 342 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SubEntityKnowledgeQuery[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SubEntityKnowledgeQuery", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 77253635, + "hash2": 1834264261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "EntitySpawnInfo", + "type_name_2": "EntitySpawnInfo", + "qualified_name": "keen::ds::EntitySpawnInfo", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 795748451, + "hash2": 1788951104, + "struct_fields": [ + { + "name": "unlockKnowledge", + "type_name": "keen::ds::KnowledgeId", + "type_hash": 3248251560, + "data_offset": 0 + }, + { + "name": "subEntityKnowledgeQueries", + "type_name": "keen::DsArray", + "type_hash": 77253635, + "data_offset": 8 + }, + { + "name": "triggerKnowledgeIds", + "type_name": "keen::DsArray", + "type_hash": 3159512007, + "data_offset": 48 + }, + { + "name": "uiWorldEventId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 88 + }, + { + "name": "knowledgeQuery", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 92 + }, + { + "name": "lootContainerId", + "type_name": "keen::ds::LootContainerId", + "type_hash": 2290570849, + "data_offset": 108 + }, + { + "name": "fogRemovalId", + "type_name": "keen::ds::FogRemovalId", + "type_hash": 935929886, + "data_offset": 112 + }, + { + "name": "entityAnimation", + "type_name": "keen::ds::JointAnimationReference", + "type_hash": 1988012710, + "data_offset": 116 + }, + { + "name": "entityAnimationSlotMask", + "type_name": "keen::ds::AttachmentSlotMask", + "type_hash": 1814507678, + "data_offset": 132 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelObject", + "type_name_2": "SceneVoxelObject", + "qualified_name": "keen::ds::SceneVoxelObject", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3367088732, + "hash2": 727787710, + "struct_fields": [ + { + "name": "voxelModel", + "type_name": "keen::ObjectReference", + "type_hash": 504881936, + "data_offset": 64 + }, + { + "name": "isWeathered", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelBlitFunction", + "type_name_2": "VoxelBlitFunction", + "qualified_name": "keen::ds::VoxelBlitFunction", + "referenced_type_name": "keen::VoxelBlitFunction", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 287338, + "hash2": 610440331, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::FogRemovalSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1236037337, + "hash2": 1585635551, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelBrush", + "type_name_2": "SceneVoxelBrush", + "qualified_name": "keen::ds::SceneVoxelBrush", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 128, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3377394909, + "hash2": 1337581295, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 64 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 80 + }, + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 84 + }, + { + "name": "disableDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 100 + }, + { + "name": "resolveBiomePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 101 + }, + { + "name": "paintMaterialOnly", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 102 + }, + { + "name": "blitFunction", + "type_name": "keen::ds::VoxelBlitFunction", + "type_hash": 287338, + "data_offset": 103 + }, + { + "name": "allowNonManifold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "removableFogId", + "type_name": "keen::ObjectReference", + "type_hash": 1236037337, + "data_offset": 108 + }, + { + "name": "addDestructionEdge", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneBlockOutBrushPoint", + "type_name_2": "SceneBlockOutBrushPoint", + "qualified_name": "keen::ds::SceneBlockOutBrushPoint", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 161473008, + "hash2": 2703728390, + "struct_fields": [ + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "offset", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 68 + }, + { + "name": "brushScattering", + "type_name": "keen::ds::BlockOutMeshPointBrushScatteringSettings", + "type_hash": 115988428, + "data_offset": 76 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1962160800, + "hash2": 2530899998, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneBlockOutBrush", + "type_name_2": "SceneBlockOutBrush", + "qualified_name": "keen::ds::SceneBlockOutBrush", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 128, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 470567134, + "hash2": 3976454541, + "struct_fields": [ + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 64 + }, + { + "name": "color", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 80 + }, + { + "name": "enableTopDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 84 + }, + { + "name": "enableTopBrushScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 85 + }, + { + "name": "negativeVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 86 + }, + { + "name": "ignoreDisplacementBlockers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 87 + }, + { + "name": "resolveBiomePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "scattering", + "type_name": "keen::ObjectReference", + "type_hash": 1962160800, + "data_offset": 92 + }, + { + "name": "removableFogId", + "type_name": "keen::ObjectReference", + "type_hash": 1236037337, + "data_offset": 108 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringDefinition", + "type_name_2": "BlockOutBrushScatteringDefinition", + "qualified_name": "keen::ds::BlockOutBrushScatteringDefinition", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2107840887, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringPointModel", + "type_name_2": "BlockOutBrushScatteringPointModel", + "qualified_name": "keen::ds::BlockOutBrushScatteringPointModel", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3398079421, + "hash2": 3210909976, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "angleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "heightRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 24 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "nonUniformScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "shearFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringPointModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringPointModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 880931080, + "hash2": 137450861, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringPoint", + "type_name_2": "BlockOutBrushScatteringPoint", + "qualified_name": "keen::ds::BlockOutBrushScatteringPoint", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3418277904, + "hash2": 2260971418, + "struct_fields": [ + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 880931080, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringLowerEdgeModel", + "type_name_2": "BlockOutBrushScatteringLowerEdgeModel", + "qualified_name": "keen::ds::BlockOutBrushScatteringLowerEdgeModel", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1449008139, + "hash2": 32688497, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "angleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "heightRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 28 + }, + { + "name": "randomScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "scaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "nonUniformScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "shearFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringLowerEdgeModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringLowerEdgeModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3641162346, + "hash2": 4262526190, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringLowEdge", + "type_name_2": "BlockOutBrushScatteringLowEdge", + "qualified_name": "keen::ds::BlockOutBrushScatteringLowEdge", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1228389417, + "hash2": 1939240317, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 3641162346, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringUpperEdgeModel", + "type_name_2": "BlockOutBrushScatteringUpperEdgeModel", + "qualified_name": "keen::ds::BlockOutBrushScatteringUpperEdgeModel", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1672596008, + "hash2": 32688497, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "angleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "heightRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 28 + }, + { + "name": "randomScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "scaleFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "nonUniformScaling", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "shearFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringUpperEdgeModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringUpperEdgeModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3480702899, + "hash2": 2582240926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringUpperEdge", + "type_name_2": "BlockOutBrushScatteringUpperEdge", + "qualified_name": "keen::ds::BlockOutBrushScatteringUpperEdge", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2100954123, + "hash2": 489811881, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 3480702899, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringWallModel", + "type_name_2": "BlockOutBrushScatteringWallModel", + "qualified_name": "keen::ds::BlockOutBrushScatteringWallModel", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 713808379, + "hash2": 2498020510, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "normalAngleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "maxOverhangY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringWallModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringWallModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2930858844, + "hash2": 981684864, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringWall", + "type_name_2": "BlockOutBrushScatteringWall", + "qualified_name": "keen::ds::BlockOutBrushScatteringWall", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1013990254, + "hash2": 1247985448, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 2930858844, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringTopModel", + "type_name_2": "BlockOutBrushScatteringTopModel", + "qualified_name": "keen::ds::BlockOutBrushScatteringTopModel", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3493546622, + "hash2": 3445246920, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "normalAngleRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 16 + }, + { + "name": "randomYRotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "randomScale", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringTopModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringTopModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1698608725, + "hash2": 4213097495, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringTop", + "type_name_2": "BlockOutBrushScatteringTop", + "qualified_name": "keen::ds::BlockOutBrushScatteringTop", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2578631081, + "hash2": 1952551585, + "struct_fields": [ + { + "name": "modelsPerMeter", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 1698608725, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringPoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringPoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 720766237, + "hash2": 3122493072, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringLowEdge[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringLowEdge", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3061135058, + "hash2": 3671335801, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringUpperEdge[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringUpperEdge", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2972298388, + "hash2": 2261783454, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringWall[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringWall", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1759229137, + "hash2": 4134367963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutBrushScatteringTop[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutBrushScatteringTop", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 626297158, + "hash2": 2385731628, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringDefinitionConverterData", + "type_name_2": "BlockOutBrushScatteringDefinitionConverterData", + "qualified_name": "keen::ds::BlockOutBrushScatteringDefinitionConverterData", + "referenced_type_name": null, + "class_size": 216, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2484210997, + "hash2": 4163174057, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "points", + "type_name": "keen::DsArray", + "type_hash": 720766237, + "data_offset": 16 + }, + { + "name": "lowerEdges", + "type_name": "keen::DsArray", + "type_hash": 3061135058, + "data_offset": 56 + }, + { + "name": "upperEdges", + "type_name": "keen::DsArray", + "type_hash": 2972298388, + "data_offset": 96 + }, + { + "name": "walls", + "type_name": "keen::DsArray", + "type_hash": 1759229137, + "data_offset": 136 + }, + { + "name": "tops", + "type_name": "keen::DsArray", + "type_hash": 626297158, + "data_offset": 176 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BlockOutBrushScatteringDefinitionConverterDependencies", + "type_name_2": "BlockOutBrushScatteringDefinitionConverterDependencies", + "qualified_name": "keen::ds::BlockOutBrushScatteringDefinitionConverterDependencies", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1002029072, + "hash2": 4176343868, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneVoxelBrush[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneVoxelBrush", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1319646772, + "hash2": 3305456017, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelMultiBrush", + "type_name_2": "SceneVoxelMultiBrush", + "qualified_name": "keen::ds::SceneVoxelMultiBrush", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4057233464, + "hash2": 25365898, + "struct_fields": [ + { + "name": "brushes", + "type_name": "keen::DsArray", + "type_hash": 1319646772, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestructionBubbleMode", + "type_name_2": "DestructionBubbleMode", + "qualified_name": "keen::ds::DestructionBubbleMode", + "referenced_type_name": "keen::DestructionBubbleMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2656445912, + "hash2": 3854044979, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDestructionBubble", + "type_name_2": "SceneDestructionBubble", + "qualified_name": "keen::ds::SceneDestructionBubble", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 88, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1108917289, + "hash2": 3645000546, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 64 + }, + { + "name": "mode", + "type_name": "keen::ds::DestructionBubbleMode", + "type_hash": 2656445912, + "data_offset": 80 + }, + { + "name": "dontDestroyEntities", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 81 + }, + { + "name": "density", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneSurfaceMaterialBubbleMode", + "type_name_2": "SceneSurfaceMaterialBubbleMode", + "qualified_name": "keen::ds::SceneSurfaceMaterialBubbleMode", + "referenced_type_name": "keen::SceneSurfaceMaterialBubbleMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2368805456, + "hash2": 3813099114, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneSurfaceMaterialBubble", + "type_name_2": "SceneSurfaceMaterialBubble", + "qualified_name": "keen::ds::SceneSurfaceMaterialBubble", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 112, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1432957975, + "hash2": 2579843910, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 64 + }, + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 80 + }, + { + "name": "depth", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 96 + }, + { + "name": "height", + "type_name": "keen::uint", + "type_hash": 1033134810, + "data_offset": 100 + }, + { + "name": "shelteredByTerrain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 104 + }, + { + "name": "mode", + "type_name": "keen::ds::SceneSurfaceMaterialBubbleMode", + "type_hash": 2368805456, + "data_offset": 105 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCurvePoint", + "type_name_2": "SceneCurvePoint", + "qualified_name": "keen::ds::SceneCurvePoint", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3724732546, + "hash2": 2485018798, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCurve", + "type_name_2": "SceneCurve", + "qualified_name": "keen::ds::SceneCurve", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2343766412, + "hash2": 2485018798, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadPoint", + "type_name_2": "SceneRoadPoint", + "qualified_name": "keen::ds::SceneRoadPoint", + "referenced_type_name": "keen::ds::SceneCurvePoint", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 277006939, + "hash2": 2996679495, + "struct_fields": [ + { + "name": "widthScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelRoadShapeDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3522565812, + "hash2": 1941632171, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RoadDefinition", + "type_name_2": "RoadDefinition", + "qualified_name": "keen::ds::RoadDefinition", + "referenced_type_name": null, + "class_size": 84, + "fields_count": 12, + "primitive_type": "Struct", + "hash1": 154022408, + "hash2": 3117841072, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "snapStepSize", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "snapAllowedError", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "snapMaxSlopeChange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "roadShape", + "type_name": "keen::ObjectReference", + "type_hash": 3522565812, + "data_offset": 20 + }, + { + "name": "surfaceMaterial", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 36 + }, + { + "name": "groundMaterial", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 52 + }, + { + "name": "distributionNoise", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "edgeNoiseWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "edgeNoiseScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 76 + }, + { + "name": "edgeNoisePersistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RoadDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2809108947, + "hash2": 2761533271, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoad", + "type_name_2": "SceneRoad", + "qualified_name": "keen::ds::SceneRoad", + "referenced_type_name": "keen::ds::SceneCurve", + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 32071187, + "hash2": 3820541848, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ObjectReference", + "type_hash": 2809108947, + "data_offset": 64 + }, + { + "name": "snapToOtherRoads", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CaveVoxelMode", + "type_name_2": "CaveVoxelMode", + "qualified_name": "keen::ds::CaveVoxelMode", + "referenced_type_name": "keen::CaveVoxelMode", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4072529225, + "hash2": 464220489, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonCaveCurvePoint", + "type_name_2": "SceneDungeonCaveCurvePoint", + "qualified_name": "keen::ds::SceneDungeonCaveCurvePoint", + "referenced_type_name": "keen::ds::SceneCurvePoint", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2693777307, + "hash2": 1804937751, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonCaveCurve", + "type_name_2": "SceneDungeonCaveCurve", + "qualified_name": "keen::ds::SceneDungeonCaveCurve", + "referenced_type_name": "keen::ds::SceneCurve", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4103909459, + "hash2": 1725589464, + "struct_fields": [ + { + "name": "mode", + "type_name": "keen::ds::CaveVoxelMode", + "type_hash": 4072529225, + "data_offset": 64 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneTunnelPoint", + "type_name_2": "SceneTunnelPoint", + "qualified_name": "keen::ds::SceneTunnelPoint", + "referenced_type_name": "keen::ds::SceneCurvePoint", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3795190919, + "hash2": 1804937751, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneTunnel", + "type_name_2": "SceneTunnel", + "qualified_name": "keen::ds::SceneTunnel", + "referenced_type_name": "keen::ds::SceneCurve", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3447875631, + "hash2": 2615931734, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterBlocker", + "type_name_2": "SceneScatterBlocker", + "qualified_name": "keen::ds::SceneScatterBlocker", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3546274777, + "hash2": 3750515816, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "fadeInDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DisplacementBlockerMode", + "type_name_2": "DisplacementBlockerMode", + "qualified_name": "keen::ds::DisplacementBlockerMode", + "referenced_type_name": "keen::DisplacementBlockerMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1456180949, + "hash2": 612615986, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDisplacementBlocker", + "type_name_2": "SceneDisplacementBlocker", + "qualified_name": "keen::ds::SceneDisplacementBlocker", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1191413400, + "hash2": 1466726445, + "struct_fields": [ + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "fadeInDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "innerDisplacementFactor", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "mode", + "type_name": "keen::ds::DisplacementBlockerMode", + "type_hash": 1456180949, + "data_offset": 76 + }, + { + "name": "affectFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 77 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVfx", + "type_name_2": "SceneVfx", + "qualified_name": "keen::ds::SceneVfx", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 192, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 3358515367, + "hash2": 3913090611, + "struct_fields": [ + { + "name": "effect", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 64 + }, + { + "name": "color", + "type_name": "keen::HdrColorRgb", + "type_hash": 834010998, + "data_offset": 80 + }, + { + "name": "param0", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 96 + }, + { + "name": "param1", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 112 + }, + { + "name": "param2", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 128 + }, + { + "name": "param3", + "type_name": "keen::float4", + "type_hash": 428208392, + "data_offset": 144 + }, + { + "name": "duration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 160 + }, + { + "name": "targetPosition", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 164 + }, + { + "name": "startTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 176 + }, + { + "name": "isActive", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 184 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneSound", + "type_name_2": "SceneSound", + "qualified_name": "keen::ds::SceneSound", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2696012684, + "hash2": 2053096584, + "struct_fields": [ + { + "name": "soundContainer", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 64 + }, + { + "name": "activeRange", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneInstance", + "type_name_2": "SceneInstance", + "qualified_name": "keen::ds::SceneInstance", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3333472170, + "hash2": 1446939744, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 64 + }, + { + "name": "connectToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 80 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 84 + }, + { + "name": "whiteboxSeed", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneGroup", + "type_name_2": "SceneGroup", + "qualified_name": "keen::ds::SceneGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 293939156, + "hash2": 1788530279, + "struct_fields": [ + { + "name": "isLocked", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadAttachmentPoint", + "type_name_2": "SceneRoadAttachmentPoint", + "qualified_name": "keen::ds::SceneRoadAttachmentPoint", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2470927824, + "hash2": 2726672772, + "struct_fields": [ + { + "name": "roadDefinition", + "type_name": "keen::ObjectReference", + "type_hash": 2809108947, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::ScatterImage", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2500412863, + "hash2": 863756323, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterImage", + "type_name_2": "SceneScatterImage", + "qualified_name": "keen::ds::SceneScatterImage", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3194474814, + "hash2": 1745663274, + "struct_fields": [ + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 2500412863, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterOrigin", + "type_name_2": "SceneScatterOrigin", + "qualified_name": "keen::ds::SceneScatterOrigin", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 72, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2155169099, + "hash2": 1945021158, + "struct_fields": [ + { + "name": "distributionRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneAreaFlagMask", + "type_name_2": "SceneAreaFlagMask", + "qualified_name": "keen::ds::SceneAreaFlagMask", + "referenced_type_name": "keen::SceneAreaFlagMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3801261862, + "hash2": 4073296753, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayableArea", + "type_name_2": "ScenePlayableArea", + "qualified_name": "keen::ds::ScenePlayableArea", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 96, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2611138666, + "hash2": 757711995, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 64 + }, + { + "name": "flags", + "type_name": "keen::ds::SceneAreaFlagMask", + "type_hash": 3801261862, + "data_offset": 76 + }, + { + "name": "mapMarkerId", + "type_name": "keen::ds::LocaTagReference", + "type_hash": 1866656307, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineEvent", + "type_name_2": "SceneCinematicTimelineEvent", + "qualified_name": "keen::ds::SceneCinematicTimelineEvent", + "referenced_type_name": "keen::ds::SequenceEvent", + "class_size": 96, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3989664727, + "hash2": 944455037, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicCameraSmoothing", + "type_name_2": "SceneCinematicCameraSmoothing", + "qualified_name": "keen::ds::SceneCinematicCameraSmoothing", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2655820969, + "hash2": 4058374364, + "struct_fields": [ + { + "name": "enableSmoothing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "lerpSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneModel", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4225478249, + "hash2": 4177367570, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineAnimationEvent", + "type_name_2": "SceneCinematicTimeLineAnimationEvent", + "qualified_name": "keen::ds::SceneCinematicTimeLineAnimationEvent", + "referenced_type_name": "keen::ds::SceneCinematicTimelineEvent", + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3526653599, + "hash2": 4243915033, + "struct_fields": [ + { + "name": "animation", + "type_name": "keen::ds::AnimationReference", + "type_hash": 572025620, + "data_offset": 96 + }, + { + "name": "modelObject", + "type_name": "keen::ObjectReference", + "type_hash": 4225478249, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineModelAnimationEvent", + "type_name_2": "SceneCinematicTimeLineModelAnimationEvent", + "qualified_name": "keen::ds::SceneCinematicTimeLineModelAnimationEvent", + "referenced_type_name": "keen::ds::SceneCinematicTimeLineAnimationEvent", + "class_size": 128, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3173893032, + "hash2": 2501233355, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineCameraAnimationEvent", + "type_name_2": "SceneCinematicTimeLineCameraAnimationEvent", + "qualified_name": "keen::ds::SceneCinematicTimeLineCameraAnimationEvent", + "referenced_type_name": "keen::ds::SceneCinematicTimeLineAnimationEvent", + "class_size": 136, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4215126572, + "hash2": 2821626987, + "struct_fields": [ + { + "name": "fovY", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeLineCameraEvent", + "type_name_2": "SceneCinematicTimeLineCameraEvent", + "qualified_name": "keen::ds::SceneCinematicTimeLineCameraEvent", + "referenced_type_name": "keen::ds::SceneCinematicTimelineEvent", + "class_size": 400, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1070709570, + "hash2": 1273378487, + "struct_fields": [ + { + "name": "key", + "type_name": "keen::ds::SceneCamera", + "type_hash": 553712966, + "data_offset": 96 + }, + { + "name": "nextKey", + "type_name": "keen::ds::SceneCamera", + "type_hash": 553712966, + "data_offset": 232 + }, + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 368 + }, + { + "name": "smoothing", + "type_name": "keen::ds::SceneCinematicCameraSmoothing", + "type_hash": 2655820969, + "data_offset": 384 + }, + { + "name": "lerpSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 392 + }, + { + "name": "nextLerpSpeed", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 396 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneVoxelObject", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 200293247, + "hash2": 1414589295, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineEventMaterializeVoxelObject", + "type_name_2": "SceneCinematicTimelineEventMaterializeVoxelObject", + "qualified_name": "keen::ds::SceneCinematicTimelineEventMaterializeVoxelObject", + "referenced_type_name": "keen::ds::SceneCinematicTimelineEvent", + "class_size": 200, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2303616211, + "hash2": 2405681189, + "struct_fields": [ + { + "name": "voxelObject", + "type_name": "keen::ObjectReference", + "type_hash": 200293247, + "data_offset": 96 + }, + { + "name": "voxelData", + "type_name": "keen::ds::SceneVoxelObject", + "type_hash": 3367088732, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SequenceTrack", + "type_name_2": "SequenceTrack", + "qualified_name": "keen::ds::SequenceTrack", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 890743621, + "hash2": 4237681606, + "struct_fields": [ + { + "name": "loopStart", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "loopEnd", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "loop", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineTrack", + "type_name_2": "SceneCinematicTimelineTrack", + "qualified_name": "keen::ds::SceneCinematicTimelineTrack", + "referenced_type_name": "keen::ds::SequenceTrack", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 12454484, + "hash2": 2811218349, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimelineCameraTrack", + "type_name_2": "SceneCinematicTimelineCameraTrack", + "qualified_name": "keen::ds::SceneCinematicTimelineCameraTrack", + "referenced_type_name": "keen::ds::SceneCinematicTimelineTrack", + "class_size": 24, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3627905701, + "hash2": 2699064014, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicTimeline", + "type_name_2": "SceneCinematicTimeline", + "qualified_name": "keen::ds::SceneCinematicTimeline", + "referenced_type_name": "keen::ds::Sequence", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 335323837, + "hash2": 2126466098, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneCinematicTimeline", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1510561336, + "hash2": 2910296818, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematic", + "type_name_2": "SceneCinematic", + "qualified_name": "keen::ds::SceneCinematic", + "referenced_type_name": "keen::ds::SceneGroup", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 448494886, + "hash2": 2860442602, + "struct_fields": [ + { + "name": "timeline", + "type_name": "keen::ObjectReference", + "type_hash": 1510561336, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CinematicDynamicModelObject", + "type_name_2": "CinematicDynamicModelObject", + "qualified_name": "keen::ds::CinematicDynamicModelObject", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1764419445, + "hash2": 888983758, + "struct_fields": [ + { + "name": "objectGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "sceneModel", + "type_name": "keen::ds::SceneModel", + "type_hash": 2281600834, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CinematicDynamicModelObject[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CinematicDynamicModelObject", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3009178336, + "hash2": 812841082, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CinematicSequenceResource", + "type_name_2": "CinematicSequenceResource", + "qualified_name": "keen::ds::CinematicSequenceResource", + "referenced_type_name": "keen::ds::SequenceResource", + "class_size": 136, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3499820797, + "hash2": 3100282241, + "struct_fields": [ + { + "name": "dynamicModelObjects", + "type_name": "keen::DsArray", + "type_hash": 3009178336, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCinematicList", + "type_name_2": "SceneCinematicList", + "qualified_name": "keen::ds::SceneCinematicList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1579964690, + "hash2": 1167881887, + "struct_fields": [ + { + "name": "cinematics", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneModelTemplate", + "type_name_2": "SceneModelTemplate", + "qualified_name": "keen::ds::SceneModelTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3034403652, + "hash2": 1293794575, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelObjectTemplate", + "type_name_2": "SceneVoxelObjectTemplate", + "qualified_name": "keen::ds::SceneVoxelObjectTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2236362918, + "hash2": 2400659345, + "struct_fields": [ + { + "name": "defaultVoxelModel", + "type_name": "keen::ObjectReference", + "type_hash": 504881936, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelBrushTemplate", + "type_name_2": "SceneVoxelBrushTemplate", + "qualified_name": "keen::ds::SceneVoxelBrushTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 146930211, + "hash2": 1293794575, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDestructionBubbleTemplate", + "type_name_2": "SceneDestructionBubbleTemplate", + "qualified_name": "keen::ds::SceneDestructionBubbleTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1163225679, + "hash2": 1293794575, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneSurfaceMaterialBubbleTemplate", + "type_name_2": "SceneSurfaceMaterialBubbleTemplate", + "qualified_name": "keen::ds::SceneSurfaceMaterialBubbleTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3305678677, + "hash2": 205728834, + "struct_fields": [ + { + "name": "defaultModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "defaultMaterial", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelMultiBrushTemplate", + "type_name_2": "SceneVoxelMultiBrushTemplate", + "qualified_name": "keen::ds::SceneVoxelMultiBrushTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1637945250, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntitySpawnTemplate", + "type_name_2": "SceneEntitySpawnTemplate", + "qualified_name": "keen::ds::SceneEntitySpawnTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3708415199, + "hash2": 3581279217, + "struct_fields": [ + { + "name": "defaultEntityTemplate", + "type_name": "keen::ObjectReference", + "type_hash": 678219975, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVfxTemplate", + "type_name_2": "SceneVfxTemplate", + "qualified_name": "keen::ds::SceneVfxTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1352869765, + "hash2": 3678577618, + "struct_fields": [ + { + "name": "defaultEffect", + "type_name": "keen::ObjectReference", + "type_hash": 3179453209, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WhiteboxDefinition", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 837655255, + "hash2": 1364984695, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxTemplate", + "type_name_2": "SceneWhiteboxTemplate", + "qualified_name": "keen::ds::SceneWhiteboxTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2375566313, + "hash2": 862022090, + "struct_fields": [ + { + "name": "defaultWhitebox", + "type_name": "keen::ObjectReference", + "type_hash": 837655255, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadTemplate", + "type_name_2": "SceneRoadTemplate", + "qualified_name": "keen::ds::SceneRoadTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1859840737, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterBlockerTemplate", + "type_name_2": "SceneScatterBlockerTemplate", + "qualified_name": "keen::ds::SceneScatterBlockerTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 958009759, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDisplacementBlockerTemplate", + "type_name_2": "SceneDisplacementBlockerTemplate", + "qualified_name": "keen::ds::SceneDisplacementBlockerTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1924013122, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneSoundTemplate", + "type_name_2": "SceneSoundTemplate", + "qualified_name": "keen::ds::SceneSoundTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2368949558, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneCameraTemplate", + "type_name_2": "SceneCameraTemplate", + "qualified_name": "keen::ds::SceneCameraTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2504710648, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneInstanceTemplate", + "type_name_2": "SceneInstanceTemplate", + "qualified_name": "keen::ds::SceneInstanceTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2640819148, + "hash2": 1853595404, + "struct_fields": [ + { + "name": "defaultScene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DungeonScene", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 883053468, + "hash2": 2396316389, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonInstanceTemplate", + "type_name_2": "DungeonInstanceTemplate", + "qualified_name": "keen::ds::DungeonInstanceTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 873814770, + "hash2": 1252660179, + "struct_fields": [ + { + "name": "defaultDungeon", + "type_name": "keen::ObjectReference", + "type_hash": 883053468, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomInstanceTemplate", + "type_name_2": "DungeonRoomInstanceTemplate", + "qualified_name": "keen::ds::DungeonRoomInstanceTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2321488581, + "hash2": 236659160, + "struct_fields": [ + { + "name": "defaultDungeonRoom", + "type_name": "keen::ObjectReference", + "type_hash": 916279835, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadAttachmentPointTemplate", + "type_name_2": "SceneRoadAttachmentPointTemplate", + "qualified_name": "keen::ds::SceneRoadAttachmentPointTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 4107769754, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterOriginTemplate", + "type_name_2": "SceneScatterOriginTemplate", + "qualified_name": "keen::ds::SceneScatterOriginTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3018857849, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayableAreaTemplate", + "type_name_2": "ScenePlayableAreaTemplate", + "qualified_name": "keen::ds::ScenePlayableAreaTemplate", + "referenced_type_name": "keen::ds::SceneTemplate", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2550054540, + "hash2": 597475316, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterEntity", + "type_name_2": "SceneScatterEntity", + "qualified_name": "keen::ds::SceneScatterEntity", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2062701678, + "hash2": 3636319736, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "index", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterChunkDataEntity", + "type_name_2": "SceneScatterChunkDataEntity", + "qualified_name": "keen::ds::SceneScatterChunkDataEntity", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2169988461, + "hash2": 4216488550, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneScatterChunkDataEntity[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneScatterChunkDataEntity", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1845832316, + "hash2": 502657075, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterChunkData", + "type_name_2": "SceneScatterChunkData", + "qualified_name": "keen::ds::SceneScatterChunkData", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1315168110, + "hash2": 1043541677, + "struct_fields": [ + { + "name": "templateEntities", + "type_name": "keen::DsArray", + "type_hash": 1845832316, + "data_offset": 0 + }, + { + "name": "modelEntities", + "type_name": "keen::DsArray", + "type_hash": 1845832316, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTemplateModel", + "type_name_2": "SpawnTemplateModel", + "qualified_name": "keen::ds::SpawnTemplateModel", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1739331769, + "hash2": 2122479763, + "struct_fields": [ + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "modelsGuid", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SpawnTemplateModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SpawnTemplateModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 65910734, + "hash2": 325319731, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTemplateModels", + "type_name_2": "SpawnTemplateModels", + "qualified_name": "keen::ds::SpawnTemplateModels", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4260038142, + "hash2": 1462089729, + "struct_fields": [ + { + "name": "templateModels", + "type_name": "keen::DsArray", + "type_hash": 65910734, + "data_offset": 0 + }, + { + "name": "templateCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpawnTemplateGuids", + "type_name_2": "SpawnTemplateGuids", + "qualified_name": "keen::ds::SpawnTemplateGuids", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2787073398, + "hash2": 4019520166, + "struct_fields": [ + { + "name": "templateGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + }, + { + "name": "templateCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneScatterEntity[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneScatterEntity", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3550330887, + "hash2": 2592233307, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ContentHash[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ContentHash", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1493231122, + "hash2": 1648061632, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterResource", + "type_name_2": "SceneScatterResource", + "qualified_name": "keen::ds::SceneScatterResource", + "referenced_type_name": null, + "class_size": 408, + "fields_count": 13, + "primitive_type": "Struct", + "hash1": 24101673, + "hash2": 208102196, + "struct_fields": [ + { + "name": "scatterSet", + "type_name": "keen::ds::ScatterSet3ResourceReference", + "type_hash": 2567610219, + "data_offset": 0 + }, + { + "name": "scatterStart", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 16 + }, + { + "name": "scatterSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "templates", + "type_name": "keen::DsArray", + "type_hash": 3550330887, + "data_offset": 32 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 3550330887, + "data_offset": 72 + }, + { + "name": "templateGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 112 + }, + { + "name": "modelGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 152 + }, + { + "name": "templateNames", + "type_name": "keen::DsArray", + "type_hash": 1101403067, + "data_offset": 192 + }, + { + "name": "modelNames", + "type_name": "keen::DsArray", + "type_hash": 1101403067, + "data_offset": 232 + }, + { + "name": "spawnTemplateModels", + "type_name": "keen::ds::SpawnTemplateModels", + "type_hash": 4260038142, + "data_offset": 272 + }, + { + "name": "debugMapSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 320 + }, + { + "name": "debugMapNames", + "type_name": "keen::DsArray", + "type_hash": 1101403067, + "data_offset": 328 + }, + { + "name": "debugMaps", + "type_name": "keen::DsArray", + "type_hash": 1493231122, + "data_offset": 368 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneScatterResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1087212984, + "hash2": 1667831718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterResourceReference", + "type_name_2": "SceneScatterResourceReference", + "qualified_name": "keen::ds::SceneScatterResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4065882406, + "hash2": 3534614804, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterChunkResource", + "type_name_2": "SceneScatterChunkResource", + "qualified_name": "keen::ds::SceneScatterChunkResource", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1788311766, + "hash2": 3519764367, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::DsArray", + "type_hash": 3550330887, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 3550330887, + "data_offset": 40 + }, + { + "name": "templateGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 80 + }, + { + "name": "modelGuids", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 120 + }, + { + "name": "templateNames", + "type_name": "keen::DsArray", + "type_hash": 1101403067, + "data_offset": 160 + }, + { + "name": "modelNames", + "type_name": "keen::DsArray", + "type_hash": 1101403067, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneAreaFlag", + "type_name_2": "SceneAreaFlag", + "qualified_name": "keen::ds::SceneAreaFlag", + "referenced_type_name": "keen::SceneAreaFlag", + "class_size": 1, + "fields_count": 1, + "primitive_type": "Typedef", + "hash1": 1000932502, + "hash2": 501134112, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScenePlayableAreaBox", + "type_name_2": "ScenePlayableAreaBox", + "qualified_name": "keen::ds::ScenePlayableAreaBox", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3577657271, + "hash2": 948664894, + "struct_fields": [ + { + "name": "areaMin", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "areaMax", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 24 + }, + { + "name": "flags", + "type_name": "keen::ds::SceneAreaFlagMask", + "type_hash": 3801261862, + "data_offset": 48 + }, + { + "name": "mapMarkerId", + "type_name": "keen::ds::LocaTagId", + "type_hash": 81225915, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneProceduralLayer", + "type_name_2": "SceneProceduralLayer", + "qualified_name": "keen::ds::SceneProceduralLayer", + "referenced_type_name": null, + "class_size": 60, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 4110600391, + "hash2": 3934253474, + "struct_fields": [ + { + "name": "contentPass", + "type_name": "keen::ds::ContentPass", + "type_hash": 3497365873, + "data_offset": 0 + }, + { + "name": "scatterSet", + "type_name": "keen::ObjectReference", + "type_hash": 39040283, + "data_offset": 4 + }, + { + "name": "distributionTypeMask", + "type_name": "keen::ds::WorldDistributionTypeFlags", + "type_hash": 2015036850, + "data_offset": 20 + }, + { + "name": "content", + "type_name": "keen::ds::SourceDataReference", + "type_hash": 3317775247, + "data_offset": 24 + }, + { + "name": "contentTags", + "type_name": "keen::ds::SourceDataReference", + "type_hash": 3317775247, + "data_offset": 40 + }, + { + "name": "connectManualSubscenesToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneObjectType", + "type_name_2": "SceneObjectType", + "qualified_name": "keen::ds::SceneObjectType", + "referenced_type_name": "keen::SceneObjectType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 4021602162, + "hash2": 3223531841, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneObjectTypeMask", + "type_name_2": "SceneObjectTypeMask", + "qualified_name": "keen::ds::SceneObjectTypeMask", + "referenced_type_name": "keen::SceneObjectTypeMask", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 810241082, + "hash2": 2001125295, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneTreeNode", + "type_name_2": "SceneTreeNode", + "qualified_name": "keen::ds::SceneTreeNode", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2259280133, + "hash2": 338732310, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::SceneObjectType", + "type_hash": 4021602162, + "data_offset": 0 + }, + { + "name": "typeIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "childStart", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "childCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDistributionDebugData", + "type_name_2": "SceneDistributionDebugData", + "qualified_name": "keen::ds::SceneDistributionDebugData", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 49319162, + "hash2": 1491105418, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "minDistance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDistributionTag", + "type_name_2": "SceneDistributionTag", + "qualified_name": "keen::ds::SceneDistributionTag", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2571197089, + "hash2": 3766251868, + "struct_fields": [ + { + "name": "tagInfo", + "type_name": "keen::ds::WhiteboxTagInfo", + "type_hash": 39099843, + "data_offset": 0 + }, + { + "name": "sceneIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DistributionLootInfo", + "type_name_2": "DistributionLootInfo", + "qualified_name": "keen::ds::DistributionLootInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2210117135, + "hash2": 1407230750, + "struct_fields": [ + { + "name": "scatterSetId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "objectIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneModel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneModel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 817578683, + "hash2": 824797293, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneLightResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneLightResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1574840920, + "hash2": 397534376, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneCamera[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneCamera", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3758608229, + "hash2": 3556631127, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneEntitySpawnResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneEntitySpawnResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3594206178, + "hash2": 2902160879, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneVoxelObject[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneVoxelObject", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2320422949, + "hash2": 3392485165, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneDestructionBubble[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneDestructionBubble", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2120556466, + "hash2": 2078382247, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneSurfaceMaterialBubble[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneSurfaceMaterialBubble", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 883683292, + "hash2": 2367159432, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneVfx[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneVfx", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 127337724, + "hash2": 28414083, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneSound[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneSound", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3161360717, + "hash2": 640210256, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentRoad[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentRoad", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4108746605, + "hash2": 648985279, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentCaveCurve[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentCaveCurve", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3248975597, + "hash2": 4064925941, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentTunnel[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentTunnel", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3741970305, + "hash2": 2189381162, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentBlockOut[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentBlockOut", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1935019002, + "hash2": 1990448506, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneScatterBlocker[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneScatterBlocker", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 529016276, + "hash2": 1269879823, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneDisplacementBlocker[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneDisplacementBlocker", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3558300405, + "hash2": 4009164771, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentInstance[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentInstance", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1413654586, + "hash2": 1778675481, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneDistributionTag[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneDistributionTag", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2538998922, + "hash2": 3079841981, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DistributionLootInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DistributionLootInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3294941316, + "hash2": 3402082403, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneDistributionDebugData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneDistributionDebugData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1613069363, + "hash2": 596594749, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContent", + "type_name_2": "SceneContent", + "qualified_name": "keen::ds::SceneContent", + "referenced_type_name": null, + "class_size": 1048, + "fields_count": 27, + "primitive_type": "Struct", + "hash1": 1571216362, + "hash2": 1840719175, + "struct_fields": [ + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 817578683, + "data_offset": 0 + }, + { + "name": "pointLights", + "type_name": "keen::DsArray", + "type_hash": 1574840920, + "data_offset": 40 + }, + { + "name": "cameras", + "type_name": "keen::DsArray", + "type_hash": 3758608229, + "data_offset": 80 + }, + { + "name": "spawns", + "type_name": "keen::DsArray", + "type_hash": 3594206178, + "data_offset": 120 + }, + { + "name": "voxelObjects", + "type_name": "keen::DsArray", + "type_hash": 2320422949, + "data_offset": 160 + }, + { + "name": "voxelBrushes", + "type_name": "keen::DsArray", + "type_hash": 1319646772, + "data_offset": 200 + }, + { + "name": "destructionBubbles", + "type_name": "keen::DsArray", + "type_hash": 2120556466, + "data_offset": 240 + }, + { + "name": "surfaceMaterialBubbles", + "type_name": "keen::DsArray", + "type_hash": 883683292, + "data_offset": 280 + }, + { + "name": "vfxs", + "type_name": "keen::DsArray", + "type_hash": 127337724, + "data_offset": 320 + }, + { + "name": "sounds", + "type_name": "keen::DsArray", + "type_hash": 3161360717, + "data_offset": 360 + }, + { + "name": "roads", + "type_name": "keen::DsArray", + "type_hash": 4108746605, + "data_offset": 400 + }, + { + "name": "pendingRoads", + "type_name": "keen::DsArray", + "type_hash": 4108746605, + "data_offset": 440 + }, + { + "name": "caves", + "type_name": "keen::DsArray", + "type_hash": 3248975597, + "data_offset": 480 + }, + { + "name": "tunnels", + "type_name": "keen::DsArray", + "type_hash": 3741970305, + "data_offset": 520 + }, + { + "name": "blockOuts", + "type_name": "keen::DsArray", + "type_hash": 1935019002, + "data_offset": 560 + }, + { + "name": "scatterBlockers", + "type_name": "keen::DsArray", + "type_hash": 529016276, + "data_offset": 600 + }, + { + "name": "displacementBlockers", + "type_name": "keen::DsArray", + "type_hash": 3558300405, + "data_offset": 640 + }, + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 1413654586, + "data_offset": 680 + }, + { + "name": "resolvedInstances", + "type_name": "keen::DsArray", + "type_hash": 1413654586, + "data_offset": 720 + }, + { + "name": "dungeonRoomInstances", + "type_name": "keen::DsArray", + "type_hash": 1413654586, + "data_offset": 760 + }, + { + "name": "playableAreas", + "type_name": "keen::DsArray", + "type_hash": 1645149612, + "data_offset": 800 + }, + { + "name": "proceduralLayers", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 840 + }, + { + "name": "distributionTags", + "type_name": "keen::DsArray", + "type_hash": 2538998922, + "data_offset": 880 + }, + { + "name": "spawnLootInfos", + "type_name": "keen::DsArray", + "type_hash": 3294941316, + "data_offset": 920 + }, + { + "name": "sceneLootInfos", + "type_name": "keen::DsArray", + "type_hash": 3294941316, + "data_offset": 960 + }, + { + "name": "distributionDebugData", + "type_name": "keen::DsArray", + "type_hash": 1613069363, + "data_offset": 1000 + }, + { + "name": "isDebugDataDirty", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1040 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContent[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2200415175, + "hash2": 841614155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentPasses", + "type_name_2": "SceneContentPasses", + "qualified_name": "keen::ds::SceneContentPasses", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1455325675, + "hash2": 577760596, + "struct_fields": [ + { + "name": "passes", + "type_name": "keen::DsArray", + "type_hash": 2200415175, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDestructionBubbles", + "type_name_2": "SceneDestructionBubbles", + "qualified_name": "keen::ds::SceneDestructionBubbles", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1727037870, + "hash2": 1765940843, + "struct_fields": [ + { + "name": "bubbles", + "type_name": "keen::DsArray", + "type_hash": 2120556466, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRuntimeContent", + "type_name_2": "SceneRuntimeContent", + "qualified_name": "keen::ds::SceneRuntimeContent", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 719714772, + "hash2": 3192258003, + "struct_fields": [ + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 817578683, + "data_offset": 0 + }, + { + "name": "pointLights", + "type_name": "keen::DsArray", + "type_hash": 1574840920, + "data_offset": 40 + }, + { + "name": "cameras", + "type_name": "keen::DsArray", + "type_hash": 3758608229, + "data_offset": 80 + }, + { + "name": "spawns", + "type_name": "keen::DsArray", + "type_hash": 3594206178, + "data_offset": 120 + }, + { + "name": "vfxs", + "type_name": "keen::DsArray", + "type_hash": 127337724, + "data_offset": 160 + }, + { + "name": "sounds", + "type_name": "keen::DsArray", + "type_hash": 3161360717, + "data_offset": 200 + }, + { + "name": "scatterBlockers", + "type_name": "keen::DsArray", + "type_hash": 529016276, + "data_offset": 240 + }, + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 1413654586, + "data_offset": 280 + }, + { + "name": "playableAreas", + "type_name": "keen::DsArray", + "type_hash": 1645149612, + "data_offset": 320 + }, + { + "name": "proceduralLayers", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 360 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneVoxelContentPass[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneVoxelContentPass", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3692015936, + "hash2": 1635665079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelContent", + "type_name_2": "SceneVoxelContent", + "qualified_name": "keen::ds::SceneVoxelContent", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3111672840, + "hash2": 2684313285, + "struct_fields": [ + { + "name": "passes", + "type_name": "keen::DsArray", + "type_hash": 3692015936, + "data_offset": 0 + }, + { + "name": "destructionBubbles", + "type_name": "keen::DsArray", + "type_hash": 2120556466, + "data_offset": 40 + }, + { + "name": "surfaceMaterialBubbles", + "type_name": "keen::DsArray", + "type_hash": 883683292, + "data_offset": 80 + }, + { + "name": "nonConnectingRoads", + "type_name": "keen::DsArray", + "type_hash": 4108746605, + "data_offset": 120 + }, + { + "name": "displacementBlockers", + "type_name": "keen::DsArray", + "type_hash": 3558300405, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneCombinedContent", + "type_name_2": "SceneCombinedContent", + "qualified_name": "keen::ds::SceneCombinedContent", + "referenced_type_name": null, + "class_size": 600, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1016415883, + "hash2": 4166305692, + "struct_fields": [ + { + "name": "runtime", + "type_name": "keen::ds::SceneRuntimeContent", + "type_hash": 719714772, + "data_offset": 0 + }, + { + "name": "voxel", + "type_name": "keen::ds::SceneVoxelContent", + "type_hash": 3111672840, + "data_offset": 400 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContentPassIndex", + "type_name_2": "ContentPassIndex", + "qualified_name": "keen::ds::ContentPassIndex", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2736519623, + "hash2": 4143738727, + "struct_fields": [ + { + "name": "indexPath", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "depth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneVoxelContentPass", + "type_name_2": "SceneVoxelContentPass", + "qualified_name": "keen::ds::SceneVoxelContentPass", + "referenced_type_name": null, + "class_size": 376, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 2232611777, + "hash2": 2956156850, + "struct_fields": [ + { + "name": "passIndex", + "type_name": "keen::ds::ContentPassIndex", + "type_hash": 2736519623, + "data_offset": 0 + }, + { + "name": "blockOuts", + "type_name": "keen::DsArray", + "type_hash": 1935019002, + "data_offset": 16 + }, + { + "name": "voxelObjects", + "type_name": "keen::DsArray", + "type_hash": 2320422949, + "data_offset": 56 + }, + { + "name": "voxelBrushes", + "type_name": "keen::DsArray", + "type_hash": 1319646772, + "data_offset": 96 + }, + { + "name": "caves", + "type_name": "keen::DsArray", + "type_hash": 3248975597, + "data_offset": 136 + }, + { + "name": "tunnels", + "type_name": "keen::DsArray", + "type_hash": 3741970305, + "data_offset": 176 + }, + { + "name": "roads", + "type_name": "keen::DsArray", + "type_hash": 4108746605, + "data_offset": 216 + }, + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 1413654586, + "data_offset": 256 + }, + { + "name": "dungeonRoomInstances", + "type_name": "keen::DsArray", + "type_hash": 1413654586, + "data_offset": 296 + }, + { + "name": "proceduralLayers", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 336 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentRoads", + "type_name_2": "SceneContentRoads", + "qualified_name": "keen::ds::SceneContentRoads", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3606382641, + "hash2": 3890803392, + "struct_fields": [ + { + "name": "roads", + "type_name": "keen::DsArray", + "type_hash": 4108746605, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneRoadAttachment", + "type_name_2": "SceneRoadAttachment", + "qualified_name": "keen::ds::SceneRoadAttachment", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 892397694, + "hash2": 251616725, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "definitionGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "definition", + "type_name": "keen::ds::RoadDefinition", + "type_hash": 154022408, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneRoadAttachment[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneRoadAttachment", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2766998913, + "hash2": 24843822, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneAttachments", + "type_name_2": "SceneAttachments", + "qualified_name": "keen::ds::SceneAttachments", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2157668329, + "hash2": 1383123178, + "struct_fields": [ + { + "name": "roadAttachments", + "type_name": "keen::DsArray", + "type_hash": 2766998913, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLightResource", + "type_name_2": "SceneLightResource", + "qualified_name": "keen::ds::SceneLightResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3254548099, + "hash2": 3210857126, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "light", + "type_name": "keen::ds::RenderLight", + "type_hash": 2240428877, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentRoadPoint", + "type_name_2": "SceneContentRoadPoint", + "qualified_name": "keen::ds::SceneContentRoadPoint", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2379948654, + "hash2": 2239966446, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentRoadPoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentRoadPoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 205273049, + "hash2": 248992330, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentRoad", + "type_name_2": "SceneContentRoad", + "qualified_name": "keen::ds::SceneContentRoad", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1600453080, + "hash2": 1284159236, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "points", + "type_name": "keen::DsArray", + "type_hash": 205273049, + "data_offset": 16 + }, + { + "name": "contentPass", + "type_name": "keen::ds::ContentPass", + "type_hash": 3497365873, + "data_offset": 56 + }, + { + "name": "snapToOtherRoads", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 57 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BlockOutMeshPoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BlockOutMeshPoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2318666464, + "hash2": 2078248596, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentBlockOut", + "type_name_2": "SceneContentBlockOut", + "qualified_name": "keen::ds::SceneContentBlockOut", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 1844022721, + "hash2": 822329289, + "struct_fields": [ + { + "name": "objectGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "points", + "type_name": "keen::DsArray", + "type_hash": 2318666464, + "data_offset": 72 + }, + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 112 + }, + { + "name": "enableTopDisplacement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 128 + }, + { + "name": "enableTopBrushScattering", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 129 + }, + { + "name": "negativeVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 130 + }, + { + "name": "ignoreDisplacementBlockers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 131 + }, + { + "name": "resolveBiomePerVoxel", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 132 + }, + { + "name": "scattering", + "type_name": "keen::ObjectReference", + "type_hash": 1962160800, + "data_offset": 136 + }, + { + "name": "removableFogId", + "type_name": "keen::ObjectReference", + "type_hash": 1236037337, + "data_offset": 152 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentCaveCurvePoint", + "type_name_2": "SceneContentCaveCurvePoint", + "qualified_name": "keen::ds::SceneContentCaveCurvePoint", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3841244248, + "hash2": 3935749866, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentCaveCurvePoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentCaveCurvePoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3256821337, + "hash2": 4067610175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentCaveCurve", + "type_name_2": "SceneContentCaveCurve", + "qualified_name": "keen::ds::SceneContentCaveCurve", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3687429894, + "hash2": 2021831760, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 56 + }, + { + "name": "mode", + "type_name": "keen::ds::CaveVoxelMode", + "type_hash": 4072529225, + "data_offset": 60 + }, + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 64 + }, + { + "name": "points", + "type_name": "keen::DsArray", + "type_hash": 3256821337, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentTunnelPoint", + "type_name_2": "SceneContentTunnelPoint", + "qualified_name": "keen::ds::SceneContentTunnelPoint", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1576145370, + "hash2": 3935749866, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneContentTunnelPoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneContentTunnelPoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1585200445, + "hash2": 2122702221, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentTunnel", + "type_name_2": "SceneContentTunnel", + "qualified_name": "keen::ds::SceneContentTunnel", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 4184545892, + "hash2": 2122499927, + "struct_fields": [ + { + "name": "width", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "height", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "material", + "type_name": "keen::ds::VoxelMaterialReference", + "type_hash": 4004260285, + "data_offset": 8 + }, + { + "name": "points", + "type_name": "keen::DsArray", + "type_hash": 1585200445, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::ecs::SpawnComponent", + "class_size": 48, + "fields_count": 19, + "primitive_type": "DsVariant", + "hash1": 3946804421, + "hash2": 471544569, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3124111666, + "hash2": 3655491970, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntitySpawnResource", + "type_name_2": "SceneEntitySpawnResource", + "qualified_name": "keen::ds::SceneEntitySpawnResource", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1588431369, + "hash2": 2114850434, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "templateReference", + "type_name": "keen::ds::ecs::TemplateReference", + "type_hash": 1306919895, + "data_offset": 56 + }, + { + "name": "spawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 72 + }, + { + "name": "components", + "type_name": "keen::DsArray>", + "type_hash": 3124111666, + "data_offset": 304 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 344 + }, + { + "name": "enableFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 345 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneContentInstance", + "type_name_2": "SceneContentInstance", + "qualified_name": "keen::ds::SceneContentInstance", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2796201397, + "hash2": 2507597891, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "instanceGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 56 + }, + { + "name": "sceneGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 72 + }, + { + "name": "connectToRoad", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 88 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneNoBuildZone", + "type_name_2": "SceneNoBuildZone", + "qualified_name": "keen::ds::SceneNoBuildZone", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3729175716, + "hash2": 1206282998, + "struct_fields": [ + { + "name": "worldBoxMin", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "worldBoxMax", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 24 + }, + { + "name": "ambience", + "type_name": "keen::ds::AmbientEnvironment", + "type_hash": 1909756702, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneQuestEntity", + "type_name_2": "SceneQuestEntity", + "qualified_name": "keen::ds::SceneQuestEntity", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1756727274, + "hash2": 3883072357, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "templateGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsOptional", + "type_name_2": "Optional", + "qualified_name": "keen::DsOptional", + "referenced_type_name": "keen::ds::render::AtmosphereParameters", + "class_size": 16, + "fields_count": 0, + "primitive_type": "DsOptional", + "hash1": 4294496007, + "hash2": 2204846925, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneTreeNode[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneTreeNode", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3433086916, + "hash2": 3355686616, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneNoBuildZone[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneNoBuildZone", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3832269697, + "hash2": 3686506907, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneQuestEntity[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneQuestEntity", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 937418579, + "hash2": 3322168113, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneResource", + "type_name_2": "SceneResource", + "qualified_name": "keen::ds::SceneResource", + "referenced_type_name": null, + "class_size": 440, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 2829497389, + "hash2": 3496759098, + "struct_fields": [ + { + "name": "ibl", + "type_name": "keen::ObjectReference", + "type_hash": 1235643177, + "data_offset": 0 + }, + { + "name": "iblIntensity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "atmosphereParameters", + "type_name": "keen::DsOptional", + "type_hash": 4294496007, + "data_offset": 24 + }, + { + "name": "nodes", + "type_name": "keen::DsArray", + "type_hash": 3433086916, + "data_offset": 40 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 817578683, + "data_offset": 80 + }, + { + "name": "lights", + "type_name": "keen::DsArray", + "type_hash": 1574840920, + "data_offset": 120 + }, + { + "name": "cameras", + "type_name": "keen::DsArray", + "type_hash": 3758608229, + "data_offset": 160 + }, + { + "name": "vfxs", + "type_name": "keen::DsArray", + "type_hash": 127337724, + "data_offset": 200 + }, + { + "name": "sounds", + "type_name": "keen::DsArray", + "type_hash": 3161360717, + "data_offset": 240 + }, + { + "name": "noBuildZones", + "type_name": "keen::DsArray", + "type_hash": 3832269697, + "data_offset": 280 + }, + { + "name": "questEntities", + "type_name": "keen::DsArray", + "type_hash": 937418579, + "data_offset": 320 + }, + { + "name": "entityChunkCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 360 + }, + { + "name": "moveVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 368 + }, + { + "name": "scatterResource", + "type_name": "keen::ds::SceneScatterResourceReference", + "type_hash": 4065882406, + "data_offset": 372 + }, + { + "name": "resetPlayersOutOfBounds", + "type_name": "keen::ds::SceneResetPlayersOutOfBounds", + "type_hash": 101278858, + "data_offset": 392 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ecs.TemplateReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ecs::TemplateReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2900789944, + "hash2": 3925886335, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneEntityChunkSpawn[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneEntityChunkSpawn", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2281595785, + "hash2": 2421871767, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneEntityExtraData[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneEntityExtraData", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1505040129, + "hash2": 82080307, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkResource", + "type_name_2": "SceneEntityChunkResource", + "qualified_name": "keen::ds::SceneEntityChunkResource", + "referenced_type_name": null, + "class_size": 200, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 578568771, + "hash2": 2356487510, + "struct_fields": [ + { + "name": "templates", + "type_name": "keen::DsArray", + "type_hash": 2900789944, + "data_offset": 0 + }, + { + "name": "templatesDoNotSave", + "type_name": "keen::DsArray", + "type_hash": 1920420223, + "data_offset": 40 + }, + { + "name": "models", + "type_name": "keen::DsArray>", + "type_hash": 33832286, + "data_offset": 80 + }, + { + "name": "entities", + "type_name": "keen::DsArray", + "type_hash": 2281595785, + "data_offset": 120 + }, + { + "name": "entityExtraData", + "type_name": "keen::DsArray", + "type_hash": 1505040129, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityExtraData", + "type_name_2": "SceneEntityExtraData", + "qualified_name": "keen::ds::SceneEntityExtraData", + "referenced_type_name": null, + "class_size": 280, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1967121752, + "hash2": 1461996161, + "struct_fields": [ + { + "name": "spawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 0 + }, + { + "name": "components", + "type_name": "keen::DsArray>", + "type_hash": 3124111666, + "data_offset": 232 + }, + { + "name": "enableFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 272 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkSpawn", + "type_name_2": "SceneEntityChunkSpawn", + "qualified_name": "keen::ds::SceneEntityChunkSpawn", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1137704242, + "hash2": 4216488550, + "struct_fields": [ + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsOptional", + "type_name_2": "Optional", + "qualified_name": "keen::DsOptional", + "referenced_type_name": "keen::AxisAlignedBox", + "class_size": 16, + "fields_count": 0, + "primitive_type": "DsOptional", + "hash1": 590095124, + "hash2": 1021340535, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkTemplateInfo", + "type_name_2": "SceneEntityChunkTemplateInfo", + "qualified_name": "keen::ds::SceneEntityChunkTemplateInfo", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 1691943669, + "hash2": 1045046480, + "struct_fields": [ + { + "name": "templateId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "boundingBox", + "type_name": "keen::DsOptional", + "type_hash": 590095124, + "data_offset": 16 + }, + { + "name": "fallbackModel", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 32 + }, + { + "name": "floorMaterial", + "type_name": "keen::ObjectReference", + "type_hash": 2732519224, + "data_offset": 48 + }, + { + "name": "floorMaterialRadius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 64 + }, + { + "name": "floorMaterialNoiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 68 + }, + { + "name": "floorMaterialShape", + "type_name": "keen::ds::FloorMaterialShape", + "type_hash": 3156412663, + "data_offset": 72 + }, + { + "name": "doNotSave", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 73 + }, + { + "name": "isSkinned", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 74 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneEntityChunkTemplateInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneEntityChunkTemplateInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 603392070, + "hash2": 3090627617, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneEntityChunkTemplateInfos", + "type_name_2": "SceneEntityChunkTemplateInfos", + "qualified_name": "keen::ds::SceneEntityChunkTemplateInfos", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1201600754, + "hash2": 3177314230, + "struct_fields": [ + { + "name": "infos", + "type_name": "keen::DsArray", + "type_hash": 603392070, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneScatterBlockerChunk", + "type_name_2": "SceneScatterBlockerChunk", + "qualified_name": "keen::ds::SceneScatterBlockerChunk", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3874990574, + "hash2": 3844610101, + "struct_fields": [ + { + "name": "scatterBlockers", + "type_name": "keen::DsArray", + "type_hash": 529016276, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneFloorMaterialInstance", + "type_name_2": "SceneFloorMaterialInstance", + "qualified_name": "keen::ds::SceneFloorMaterialInstance", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 2914901723, + "hash2": 993378747, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 24 + }, + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 2732519224, + "data_offset": 28 + }, + { + "name": "shape", + "type_name": "keen::ds::FloorMaterialShape", + "type_hash": 3156412663, + "data_offset": 44 + }, + { + "name": "noiseStrength", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneFloorMaterialInstance[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneFloorMaterialInstance", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 554517804, + "hash2": 1898192429, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneFloorMaterialChunk", + "type_name_2": "SceneFloorMaterialChunk", + "qualified_name": "keen::ds::SceneFloorMaterialChunk", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3252704189, + "hash2": 1707839584, + "struct_fields": [ + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 554517804, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneResourceReference", + "type_name_2": "SceneResourceReference", + "qualified_name": "keen::ds::SceneResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1297849666, + "hash2": 2635060362, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneInfo", + "type_name_2": "SceneInfo", + "qualified_name": "keen::ds::SceneInfo", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3574869917, + "hash2": 1531769668, + "struct_fields": [ + { + "name": "pivot", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "distributionTypeFlags", + "type_name": "keen::ds::WorldDistributionTypeFlags", + "type_hash": 2015036850, + "data_offset": 16 + }, + { + "name": "hasBuildingVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneBoundingBox", + "type_name_2": "SceneBoundingBox", + "qualified_name": "keen::ds::SceneBoundingBox", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3563751650, + "hash2": 4084133744, + "struct_fields": [ + { + "name": "min", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "max", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 12 + }, + { + "name": "pivot", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageAlias", + "type_name_2": "ScatterImageAlias", + "qualified_name": "keen::ds::ScatterImageAlias", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1860995620, + "hash2": 412718975, + "struct_fields": [ + { + "name": "target", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "replacement", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "ScatterImageAlias[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::ScatterImageAlias", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1662815259, + "hash2": 2331632376, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ScatterImageAliases", + "type_name_2": "ScatterImageAliases", + "qualified_name": "keen::ds::ScatterImageAliases", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3228130912, + "hash2": 4124725107, + "struct_fields": [ + { + "name": "aliases", + "type_name": "keen::DsArray", + "type_hash": 1662815259, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ScenePreview", + "type_name_2": "ScenePreview", + "qualified_name": "keen::ds::ScenePreview", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 537500479, + "hash2": 2786685270, + "struct_fields": [ + { + "name": "modelIds", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + }, + { + "name": "transforms", + "type_name": "keen::DsArray", + "type_hash": 2125145079, + "data_offset": 40 + }, + { + "name": "objectTypes", + "type_name": "keen::ds::SceneObjectTypeMask", + "type_hash": 810241082, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneConverterConfig", + "type_name_2": "SceneConverterConfig", + "qualified_name": "keen::ds::SceneConverterConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 668719045, + "hash2": 4026089959, + "struct_fields": [ + { + "name": "validateNonTestScenes", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BenchmarkPointDebugContent", + "type_name_2": "BenchmarkPointDebugContent", + "qualified_name": "keen::ds::BenchmarkPointDebugContent", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2375325264, + "hash2": 681855063, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 16 + }, + { + "name": "hash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BenchmarkPointDebugContent[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BenchmarkPointDebugContent", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1928419617, + "hash2": 1876577099, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneResolvedDebugContent", + "type_name_2": "SceneResolvedDebugContent", + "qualified_name": "keen::ds::SceneResolvedDebugContent", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2857636053, + "hash2": 394109695, + "struct_fields": [ + { + "name": "benchmarkPoints", + "type_name": "keen::DsArray", + "type_hash": 1928419617, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDebugContent", + "type_name_2": "SceneDebugContent", + "qualified_name": "keen::ds::SceneDebugContent", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4122233237, + "hash2": 394109695, + "struct_fields": [ + { + "name": "benchmarkPoints", + "type_name": "keen::DsArray", + "type_hash": 1928419617, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SceneLevelDistributionSet", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3510329294, + "hash2": 3507410531, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistribution", + "type_name_2": "SceneLevelDistribution", + "qualified_name": "keen::ds::SceneLevelDistribution", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4274309851, + "hash2": 1946926279, + "struct_fields": [ + { + "name": "levelDistributionSet", + "type_name": "keen::ObjectReference", + "type_hash": 3510329294, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistributionSet", + "type_name_2": "SceneLevelDistributionSet", + "qualified_name": "keen::ds::SceneLevelDistributionSet", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 242129353, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelMap", + "type_name_2": "SceneLevelMap", + "qualified_name": "keen::ds::SceneLevelMap", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3581482305, + "hash2": 1900310593, + "struct_fields": [ + { + "name": "scatterImage", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelMapConvertInfo", + "type_name_2": "SceneLevelMapConvertInfo", + "qualified_name": "keen::ds::SceneLevelMapConvertInfo", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 4208622440, + "hash2": 1885729911, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "imageId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "imageMetaData", + "type_name": "keen::ds::ScatterImageMetaData", + "type_hash": 3490997213, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneLevelMapConvertInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneLevelMapConvertInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2485783385, + "hash2": 3926806631, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistributionConvertParams", + "type_name_2": "SceneLevelDistributionConvertParams", + "qualified_name": "keen::ds::SceneLevelDistributionConvertParams", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1496934908, + "hash2": 229588163, + "struct_fields": [ + { + "name": "sceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "levelDistributionSetObjectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "levelInfos", + "type_name": "keen::DsArray", + "type_hash": 2485783385, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneLevelDistributionSetInfo", + "type_name_2": "SceneLevelDistributionSetInfo", + "qualified_name": "keen::ds::SceneLevelDistributionSetInfo", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3381934865, + "hash2": 3990010564, + "struct_fields": [ + { + "name": "mapSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 0 + }, + { + "name": "upscaleFactor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WorldTransformFlag", + "type_name_2": "WorldTransformFlag", + "qualified_name": "keen::ds::WorldTransformFlag", + "referenced_type_name": "keen::WorldTransformFlag", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 1226621261, + "hash2": 2359308164, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WhiteboxCollisionSetup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1308245459, + "hash2": 1235007031, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DungeonConnectionsConfig", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3744865169, + "hash2": 3152216819, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabLibrary", + "type_name_2": "PrefabLibrary", + "qualified_name": "keen::ds::PrefabLibrary", + "referenced_type_name": "keen::ds::Group", + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1465686244, + "hash2": 3750629941, + "struct_fields": [ + { + "name": "collisions", + "type_name": "keen::ObjectReference", + "type_hash": 1308245459, + "data_offset": 0 + }, + { + "name": "connections", + "type_name": "keen::ObjectReference", + "type_hash": 3744865169, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabLibrarySettings", + "type_name_2": "PrefabLibrarySettings", + "qualified_name": "keen::ds::PrefabLibrarySettings", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2978031753, + "hash2": 4243351682, + "struct_fields": [ + { + "name": "collisions", + "type_name": "keen::ObjectReference", + "type_hash": 1308245459, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonConnectionSetup[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonConnectionSetup", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 544765305, + "hash2": 74375546, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionInfo", + "type_name_2": "DungeonConnectionInfo", + "qualified_name": "keen::ds::DungeonConnectionInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 675461423, + "hash2": 2169804598, + "struct_fields": [ + { + "name": "connectionPoints", + "type_name": "keen::DsArray", + "type_hash": 544765305, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabDirectory", + "type_name_2": "PrefabDirectory", + "qualified_name": "keen::ds::PrefabDirectory", + "referenced_type_name": "keen::ds::Group", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3688354772, + "hash2": 4244116669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Prefab", + "type_name_2": "Prefab", + "qualified_name": "keen::ds::Prefab", + "referenced_type_name": "keen::ds::SceneInstance", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1915460313, + "hash2": 1659292618, + "struct_fields": [ + { + "name": "replacementWeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabEntitySpawn", + "type_name_2": "PrefabEntitySpawn", + "qualified_name": "keen::ds::PrefabEntitySpawn", + "referenced_type_name": "keen::ds::SceneEntitySpawnResource", + "class_size": 376, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3675374829, + "hash2": 2638131563, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 352 + }, + { + "name": "contentPass", + "type_name": "keen::ds::ContentPass", + "type_hash": 3497365873, + "data_offset": 368 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TileContextFlags", + "type_name_2": "TileContextFlags", + "qualified_name": "keen::ds::TileContextFlags", + "referenced_type_name": "keen::TileContextFlags", + "class_size": 1, + "fields_count": 8, + "primitive_type": "Typedef", + "hash1": 3844002301, + "hash2": 4117277261, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabObjectContextInfo", + "type_name_2": "PrefabObjectContextInfo", + "qualified_name": "keen::ds::PrefabObjectContextInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 585848089, + "hash2": 4003937762, + "struct_fields": [ + { + "name": "objectType", + "type_name": "keen::ds::SceneObjectType", + "type_hash": 4021602162, + "data_offset": 0 + }, + { + "name": "passIndex", + "type_name": "keen::ds::ContentPassIndex", + "type_hash": 2736519623, + "data_offset": 8 + }, + { + "name": "type", + "type_name": "keen::ds::TileContextFlags", + "type_hash": 3844002301, + "data_offset": 24 + }, + { + "name": "index", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "forbidden", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTriggerScope", + "type_name_2": "WhiteboxTriggerScope", + "qualified_name": "keen::ds::WhiteboxTriggerScope", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3185871061, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabLootEntity", + "type_name_2": "PrefabLootEntity", + "qualified_name": "keen::ds::PrefabLootEntity", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1625153012, + "hash2": 2318741318, + "struct_fields": [ + { + "name": "spawnIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "entityLootInfo", + "type_name": "keen::ds::LootContainerInfo", + "type_hash": 2042652752, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabEntitySpawn[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabEntitySpawn", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2413809448, + "hash2": 2029073989, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabLootEntity[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabLootEntity", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4119052733, + "hash2": 127630193, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabObjectContextInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabObjectContextInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2381903336, + "hash2": 928783713, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabContentPass[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabContentPass", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2391750314, + "hash2": 2420079828, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContent", + "type_name_2": "PrefabContent", + "qualified_name": "keen::ds::PrefabContent", + "referenced_type_name": null, + "class_size": 360, + "fields_count": 9, + "primitive_type": "Struct", + "hash1": 373545694, + "hash2": 1696609441, + "struct_fields": [ + { + "name": "spawns", + "type_name": "keen::DsArray", + "type_hash": 2413809448, + "data_offset": 0 + }, + { + "name": "models", + "type_name": "keen::DsArray", + "type_hash": 817578683, + "data_offset": 40 + }, + { + "name": "destructionBubbles", + "type_name": "keen::DsArray", + "type_hash": 2120556466, + "data_offset": 80 + }, + { + "name": "pointLights", + "type_name": "keen::DsArray", + "type_hash": 1574840920, + "data_offset": 120 + }, + { + "name": "lootInfos", + "type_name": "keen::DsArray", + "type_hash": 4119052733, + "data_offset": 160 + }, + { + "name": "contextInfos", + "type_name": "keen::DsArray", + "type_hash": 2381903336, + "data_offset": 200 + }, + { + "name": "roads", + "type_name": "keen::DsArray", + "type_hash": 4108746605, + "data_offset": 240 + }, + { + "name": "displacementBlockers", + "type_name": "keen::DsArray", + "type_hash": 3558300405, + "data_offset": 280 + }, + { + "name": "passes", + "type_name": "keen::DsArray", + "type_hash": 2391750314, + "data_offset": 320 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabContentPass", + "type_name_2": "PrefabContentPass", + "qualified_name": "keen::ds::PrefabContentPass", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2802424655, + "hash2": 776000605, + "struct_fields": [ + { + "name": "passIndex", + "type_name": "keen::ds::ContentPassIndex", + "type_hash": 2736519623, + "data_offset": 0 + }, + { + "name": "voxelObjects", + "type_name": "keen::DsArray", + "type_hash": 2320422949, + "data_offset": 16 + }, + { + "name": "voxelBrushes", + "type_name": "keen::DsArray", + "type_hash": 1319646772, + "data_offset": 56 + }, + { + "name": "tunnels", + "type_name": "keen::DsArray", + "type_hash": 3741970305, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Prefab", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2522718812, + "hash2": 582409129, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabEntityInfo", + "type_name_2": "PrefabEntityInfo", + "qualified_name": "keen::ds::PrefabEntityInfo", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1852458862, + "hash2": 2177337917, + "struct_fields": [ + { + "name": "description", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 0 + }, + { + "name": "prefab", + "type_name": "keen::ObjectReference", + "type_hash": 2522718812, + "data_offset": 40 + }, + { + "name": "templateReference", + "type_name": "keen::ObjectReference", + "type_hash": 678219975, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneDungeonRoomWhitebox[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneDungeonRoomWhitebox", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 366402505, + "hash2": 2033817694, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PrefabVoxelWorldSceneContent", + "type_name_2": "PrefabVoxelWorldSceneContent", + "qualified_name": "keen::ds::PrefabVoxelWorldSceneContent", + "referenced_type_name": null, + "class_size": 240, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 812506560, + "hash2": 1679448988, + "struct_fields": [ + { + "name": "whiteboxes", + "type_name": "keen::DsArray", + "type_hash": 366402505, + "data_offset": 0 + }, + { + "name": "voxelObjects", + "type_name": "keen::DsArray", + "type_hash": 2320422949, + "data_offset": 40 + }, + { + "name": "voxelBrushes", + "type_name": "keen::DsArray", + "type_hash": 1319646772, + "data_offset": 80 + }, + { + "name": "destructionBubbles", + "type_name": "keen::DsArray", + "type_hash": 2120556466, + "data_offset": 120 + }, + { + "name": "roads", + "type_name": "keen::DsArray", + "type_hash": 4108746605, + "data_offset": 160 + }, + { + "name": "tunnels", + "type_name": "keen::DsArray", + "type_hash": 3741970305, + "data_offset": 200 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabWhiteboxResolveInfo", + "type_name_2": "PrefabWhiteboxResolveInfo", + "qualified_name": "keen::ds::PrefabWhiteboxResolveInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2449978393, + "hash2": 2126686963, + "struct_fields": [ + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "contentPass", + "type_name": "keen::ds::ContentPass", + "type_hash": 3497365873, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabEntityInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabEntityInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1722296107, + "hash2": 3725863093, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxEntityList", + "type_name_2": "WhiteboxEntityList", + "qualified_name": "keen::ds::WhiteboxEntityList", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4274206146, + "hash2": 3711966328, + "struct_fields": [ + { + "name": "singleEntityPrefabs", + "type_name": "keen::DsArray", + "type_hash": 1722296107, + "data_offset": 0 + }, + { + "name": "customPrefabs", + "type_name": "keen::DsArray", + "type_hash": 1722296107, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "PrefabInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::PrefabInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 9515342, + "hash2": 3119109204, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxOptions", + "type_name_2": "WhiteboxOptions", + "qualified_name": "keen::ds::WhiteboxOptions", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3981980105, + "hash2": 1961013873, + "struct_fields": [ + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "reducePrefabProbability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "prefabs", + "type_name": "keen::DsArray", + "type_hash": 9515342, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "PrefabInfo", + "type_name_2": "PrefabInfo", + "qualified_name": "keen::ds::PrefabInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2688195233, + "hash2": 285057118, + "struct_fields": [ + { + "name": "prefab", + "type_name": "keen::ObjectReference", + "type_hash": 2522718812, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 29096206, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTileType", + "type_name_2": "WhiteboxTileType", + "qualified_name": "keen::ds::WhiteboxTileType", + "referenced_type_name": "keen::WhiteboxTileType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1496947861, + "hash2": 739084085, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxDefinitionModelVisibility", + "type_name_2": "WhiteboxDefinitionModelVisibility", + "qualified_name": "keen::ds::WhiteboxDefinitionModelVisibility", + "referenced_type_name": null, + "class_size": 3, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 653891305, + "hash2": 1703054222, + "struct_fields": [ + { + "name": "voxelMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "editMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "brushMode", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxDefinition", + "type_name_2": "WhiteboxDefinition", + "qualified_name": "keen::ds::WhiteboxDefinition", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3127957204, + "hash2": 3014614795, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + }, + { + "name": "modelVisibility", + "type_name": "keen::ds::WhiteboxDefinitionModelVisibility", + "type_hash": 653891305, + "data_offset": 16 + }, + { + "name": "reducePrefabProbability", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "type", + "type_name": "keen::ds::WhiteboxTileType", + "type_hash": 1496947861, + "data_offset": 20 + }, + { + "name": "gridSize", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 24 + }, + { + "name": "tintColor", + "type_name": "keen::Color", + "type_hash": 1777952713, + "data_offset": 32 + }, + { + "name": "modelScale", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 36 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TileContextFlagMask", + "type_name_2": "TileContextFlagMask", + "qualified_name": "keen::ds::TileContextFlagMask", + "referenced_type_name": "keen::TileContextFlagMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2874155020, + "hash2": 3343177383, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTileContext", + "type_name_2": "WhiteboxTileContext", + "qualified_name": "keen::ds::WhiteboxTileContext", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1815849588, + "hash2": 1469681889, + "struct_fields": [ + { + "name": "context", + "type_name": "keen::ds::TileContextFlagMask", + "type_hash": 2874155020, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonRoomWhitebox", + "type_name_2": "SceneDungeonRoomWhitebox", + "qualified_name": "keen::ds::SceneDungeonRoomWhitebox", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 368, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1960461528, + "hash2": 1532120816, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 64 + }, + { + "name": "definition", + "type_name": "keen::ObjectReference", + "type_hash": 837655255, + "data_offset": 104 + }, + { + "name": "replacementProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 120 + }, + { + "name": "randomRotationOffsetX", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 124 + }, + { + "name": "randomRotationOffsetY", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 128 + }, + { + "name": "randomRotationOffsetZ", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 132 + }, + { + "name": "snapToGround", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 136 + }, + { + "name": "spawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomDirectory", + "type_name_2": "DungeonRoomDirectory", + "qualified_name": "keen::ds::DungeonRoomDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1765528135, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomScene", + "type_name_2": "DungeonRoomScene", + "qualified_name": "keen::ds::DungeonRoomScene", + "referenced_type_name": "keen::ds::Scene", + "class_size": 224, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1830071252, + "hash2": 55544127, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomRayDedubg", + "type_name_2": "DungeonRoomRayDedubg", + "qualified_name": "keen::ds::DungeonRoomRayDedubg", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2221041923, + "hash2": 319767385, + "struct_fields": [ + { + "name": "start", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 0 + }, + { + "name": "end", + "type_name": "keen::Vector3", + "type_hash": 1702143450, + "data_offset": 16 + }, + { + "name": "hit", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonRoomRayDedubg[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonRoomRayDedubg", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2403312552, + "hash2": 2563287364, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomCollisionsDebugInfo", + "type_name_2": "DungeonRoomCollisionsDebugInfo", + "qualified_name": "keen::ds::DungeonRoomCollisionsDebugInfo", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 188804292, + "hash2": 501301844, + "struct_fields": [ + { + "name": "rayChecks", + "type_name": "keen::DsArray", + "type_hash": 2403312552, + "data_offset": 0 + }, + { + "name": "checkBoundingBoxes", + "type_name": "keen::DsArray", + "type_hash": 490765435, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomShapes", + "type_name_2": "DungeonRoomShapes", + "qualified_name": "keen::ds::DungeonRoomShapes", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3413372070, + "hash2": 954145599, + "struct_fields": [ + { + "name": "boundingBoxes", + "type_name": "keen::DsArray", + "type_hash": 490765435, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomSceneLayerGroup", + "type_name_2": "DungeonRoomSceneLayerGroup", + "qualified_name": "keen::ds::DungeonRoomSceneLayerGroup", + "referenced_type_name": "keen::ds::SceneGroup", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 281704632, + "hash2": 3110762398, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "RoomConnectionPointType", + "type_name_2": "RoomConnectionPointType", + "qualified_name": "keen::ds::RoomConnectionPointType", + "referenced_type_name": "keen::RoomConnectionPointType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2391626310, + "hash2": 1757163519, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomConnectionPoint", + "type_name_2": "DungeonRoomConnectionPoint", + "qualified_name": "keen::ds::DungeonRoomConnectionPoint", + "referenced_type_name": null, + "class_size": 208, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 787276706, + "hash2": 429125095, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "roomInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "roomSceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 32 + }, + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 48 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 64 + }, + { + "name": "type", + "type_name": "keen::ds::RoomConnectionPointType", + "type_hash": 2391626310, + "data_offset": 120 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 128 + }, + { + "name": "identifier", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 160 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonRoomConnectionPoint[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonRoomConnectionPoint", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3818418135, + "hash2": 4121200518, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomConnectionPoints", + "type_name_2": "DungeonRoomConnectionPoints", + "qualified_name": "keen::ds::DungeonRoomConnectionPoints", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2951389699, + "hash2": 2970643778, + "struct_fields": [ + { + "name": "connections", + "type_name": "keen::DsArray", + "type_hash": 3818418135, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionPointInfo", + "type_name_2": "DungeonConnectionPointInfo", + "qualified_name": "keen::ds::DungeonConnectionPointInfo", + "referenced_type_name": null, + "class_size": 416, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2413623239, + "hash2": 2149534079, + "struct_fields": [ + { + "name": "pointA", + "type_name": "keen::ds::DungeonRoomConnectionPoint", + "type_hash": 787276706, + "data_offset": 0 + }, + { + "name": "pointB", + "type_name": "keen::ds::DungeonRoomConnectionPoint", + "type_hash": 787276706, + "data_offset": 208 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonConnectionPointInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonConnectionPointInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1549008456, + "hash2": 1361064445, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionPoints", + "type_name_2": "DungeonConnectionPoints", + "qualified_name": "keen::ds::DungeonConnectionPoints", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 822031968, + "hash2": 672724149, + "struct_fields": [ + { + "name": "connections", + "type_name": "keen::DsArray", + "type_hash": 1549008456, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonWhiteboxReplacement", + "type_name_2": "DungeonWhiteboxReplacement", + "qualified_name": "keen::ds::DungeonWhiteboxReplacement", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3984229919, + "hash2": 4109839116, + "struct_fields": [ + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "newWhiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonWhiteboxReplacement[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonWhiteboxReplacement", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 187913808, + "hash2": 2009946073, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonWhiteboxReplacements", + "type_name_2": "DungeonWhiteboxReplacements", + "qualified_name": "keen::ds::DungeonWhiteboxReplacements", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1138859012, + "hash2": 2614750471, + "struct_fields": [ + { + "name": "replacements", + "type_name": "keen::DsArray", + "type_hash": 187913808, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonEntranceInfo", + "type_name_2": "DungeonEntranceInfo", + "qualified_name": "keen::ds::DungeonEntranceInfo", + "referenced_type_name": null, + "class_size": 144, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 687205961, + "hash2": 3366175826, + "struct_fields": [ + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "identifier", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 16 + }, + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 56 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 112 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "DungeonEntranceInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::DungeonEntranceInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2464729928, + "hash2": 2606041103, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomEntranceList", + "type_name_2": "DungeonRoomEntranceList", + "qualified_name": "keen::ds::DungeonRoomEntranceList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3441691294, + "hash2": 3192209640, + "struct_fields": [ + { + "name": "entrances", + "type_name": "keen::DsArray", + "type_hash": 2464729928, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonRoomEntranceConvertInfo", + "type_name_2": "DungeonRoomEntranceConvertInfo", + "qualified_name": "keen::ds::DungeonRoomEntranceConvertInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2660247433, + "hash2": 1342186764, + "struct_fields": [ + { + "name": "markedEntrances", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionSetup", + "type_name_2": "WhiteboxCollisionSetup", + "qualified_name": "keen::ds::WhiteboxCollisionSetup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 112746284, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionGroup", + "type_name_2": "WhiteboxCollisionGroup", + "qualified_name": "keen::ds::WhiteboxCollisionGroup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 908978578, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionItem", + "type_name_2": "WhiteboxCollisionItem", + "qualified_name": "keen::ds::WhiteboxCollisionItem", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1122198332, + "hash2": 1365349548, + "struct_fields": [ + { + "name": "definition", + "type_name": "keen::ObjectReference", + "type_hash": 837655255, + "data_offset": 0 + }, + { + "name": "weight", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 16 + }, + { + "name": "range", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxCollisionItem[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxCollisionItem", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3143977987, + "hash2": 3102646266, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionGroupInfo", + "type_name_2": "WhiteboxCollisionGroupInfo", + "qualified_name": "keen::ds::WhiteboxCollisionGroupInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4212301994, + "hash2": 3820558492, + "struct_fields": [ + { + "name": "items", + "type_name": "keen::DsArray", + "type_hash": 3143977987, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxCollisionGroupInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxCollisionGroupInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1041663627, + "hash2": 2795166758, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxCollisionInfo", + "type_name_2": "WhiteboxCollisionInfo", + "qualified_name": "keen::ds::WhiteboxCollisionInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2192107551, + "hash2": 948377716, + "struct_fields": [ + { + "name": "groups", + "type_name": "keen::DsArray", + "type_hash": 1041663627, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxContextSetup", + "type_name_2": "WhiteboxContextSetup", + "qualified_name": "keen::ds::WhiteboxContextSetup", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3778659109, + "hash2": 485420372, + "struct_fields": [ + { + "name": "groundTag", + "type_name": "keen::ObjectReference", + "type_hash": 709955372, + "data_offset": 0 + }, + { + "name": "ceilingTag", + "type_name": "keen::ObjectReference", + "type_hash": 709955372, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionsConfig", + "type_name_2": "DungeonConnectionsConfig", + "qualified_name": "keen::ds::DungeonConnectionsConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2720297990, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionSetup", + "type_name_2": "DungeonConnectionSetup", + "qualified_name": "keen::ds::DungeonConnectionSetup", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1683836956, + "hash2": 1938821965, + "struct_fields": [ + { + "name": "connectionWhitebox", + "type_name": "keen::ObjectReference", + "type_hash": 837655255, + "data_offset": 0 + }, + { + "name": "replacementOtherConnection", + "type_name": "keen::ObjectReference", + "type_hash": 837655255, + "data_offset": 16 + }, + { + "name": "replacementRoadPoint", + "type_name": "keen::ObjectReference", + "type_hash": 837655255, + "data_offset": 32 + }, + { + "name": "replacementWithoutConnection", + "type_name": "keen::ObjectReference", + "type_hash": 837655255, + "data_offset": 48 + }, + { + "name": "connectionAABB", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxNodeType", + "type_name_2": "WhiteboxNodeType", + "qualified_name": "keen::ds::WhiteboxNodeType", + "referenced_type_name": "keen::WhiteboxNodeType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 632494705, + "hash2": 981607818, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxTriggerInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxTriggerInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3760191826, + "hash2": 2832089386, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxConvertInfo", + "type_name_2": "WhiteboxConvertInfo", + "qualified_name": "keen::ds::WhiteboxConvertInfo", + "referenced_type_name": null, + "class_size": 528, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 4007874616, + "hash2": 2932221167, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "parentId", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 4 + }, + { + "name": "type", + "type_name": "keen::ds::WhiteboxNodeType", + "type_hash": 632494705, + "data_offset": 8 + }, + { + "name": "replacementObjectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 12 + }, + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 28 + }, + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 44 + }, + { + "name": "passIndex", + "type_name": "keen::ds::ContentPassIndex", + "type_hash": 2736519623, + "data_offset": 64 + }, + { + "name": "roomTileContext", + "type_name": "keen::ds::WhiteboxTileContext", + "type_hash": 1815849588, + "data_offset": 80 + }, + { + "name": "requiredRoomTileContext", + "type_name": "keen::ds::WhiteboxTileContext", + "type_hash": 1815849588, + "data_offset": 81 + }, + { + "name": "forbiddenRoomTileContext", + "type_name": "keen::ds::WhiteboxTileContext", + "type_hash": 1815849588, + "data_offset": 82 + }, + { + "name": "requiredTriggers", + "type_name": "keen::DsArray", + "type_hash": 135546461, + "data_offset": 88 + }, + { + "name": "triggerInfos", + "type_name": "keen::DsArray", + "type_hash": 3760191826, + "data_offset": 128 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 168 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 29096206, + "data_offset": 224 + }, + { + "name": "randomRotationOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 264 + }, + { + "name": "replacementProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 276 + }, + { + "name": "entitySpawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 280 + }, + { + "name": "triggerGraphId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 508 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxConvertInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxConvertInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1577822279, + "hash2": 1751807732, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementPass", + "type_name_2": "WhiteboxReplacementPass", + "qualified_name": "keen::ds::WhiteboxReplacementPass", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2523160182, + "hash2": 1880038679, + "struct_fields": [ + { + "name": "replacements", + "type_name": "keen::DsArray", + "type_hash": 1577822279, + "data_offset": 0 + }, + { + "name": "failedReplacements", + "type_name": "keen::DsArray", + "type_hash": 1577822279, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxReplacementInfoPass[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxReplacementInfoPass", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2251763501, + "hash2": 3172312699, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementInfoPasses", + "type_name_2": "WhiteboxReplacementInfoPasses", + "qualified_name": "keen::ds::WhiteboxReplacementInfoPasses", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2089985226, + "hash2": 1401053939, + "struct_fields": [ + { + "name": "passes", + "type_name": "keen::DsArray", + "type_hash": 2251763501, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WhiteboxReplacementInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WhiteboxReplacementInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1071110850, + "hash2": 3198881138, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementInfoPass", + "type_name_2": "WhiteboxReplacementInfoPass", + "qualified_name": "keen::ds::WhiteboxReplacementInfoPass", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3151229578, + "hash2": 3442709359, + "struct_fields": [ + { + "name": "passIndex", + "type_name": "keen::ds::ContentPassIndex", + "type_hash": 2736519623, + "data_offset": 0 + }, + { + "name": "replacements", + "type_name": "keen::DsArray", + "type_hash": 1071110850, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxReplacementInfo", + "type_name_2": "WhiteboxReplacementInfo", + "qualified_name": "keen::ds::WhiteboxReplacementInfo", + "referenced_type_name": null, + "class_size": 352, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1898699175, + "hash2": 390219621, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "sceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 24 + }, + { + "name": "triggers", + "type_name": "keen::DsArray", + "type_hash": 3760191826, + "data_offset": 80 + }, + { + "name": "roomTileContext", + "type_name": "keen::ds::WhiteboxTileContext", + "type_hash": 1815849588, + "data_offset": 120 + }, + { + "name": "entitySpawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxContentInfo", + "type_name_2": "SceneWhiteboxContentInfo", + "qualified_name": "keen::ds::SceneWhiteboxContentInfo", + "referenced_type_name": null, + "class_size": 400, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3351601504, + "hash2": 2580346825, + "struct_fields": [ + { + "name": "whiteboxInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "whiteboxDefinitionId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "passIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 32 + }, + { + "name": "worldTransform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 40 + }, + { + "name": "randomRotationOffset", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 96 + }, + { + "name": "replacementProbability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 108 + }, + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 29096206, + "data_offset": 112 + }, + { + "name": "requiredRoomTileContext", + "type_name": "keen::ds::WhiteboxTileContext", + "type_hash": 1815849588, + "data_offset": 152 + }, + { + "name": "forbiddenRoomTileContext", + "type_name": "keen::ds::WhiteboxTileContext", + "type_hash": 1815849588, + "data_offset": 153 + }, + { + "name": "entitySpawnData", + "type_name": "keen::ds::SceneEntitySpawnData", + "type_hash": 795599593, + "data_offset": 156 + }, + { + "name": "triggerGraphId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 384 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneWhiteboxContentInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneWhiteboxContentInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3966971977, + "hash2": 3281661208, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxInfo", + "type_name_2": "SceneWhiteboxInfo", + "qualified_name": "keen::ds::SceneWhiteboxInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2908043967, + "hash2": 3492721503, + "struct_fields": [ + { + "name": "whiteboxes", + "type_name": "keen::DsArray", + "type_hash": 3966971977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxErrorInfo", + "type_name_2": "SceneWhiteboxErrorInfo", + "qualified_name": "keen::ds::SceneWhiteboxErrorInfo", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2938742455, + "hash2": 1570548688, + "struct_fields": [ + { + "name": "failedReplacementCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WhiteboxTagList", + "type_name_2": "WhiteboxTagList", + "qualified_name": "keen::ds::WhiteboxTagList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3034110255, + "hash2": 907916684, + "struct_fields": [ + { + "name": "tags", + "type_name": "keen::DsArray", + "type_hash": 29096206, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonRoomInstance", + "type_name_2": "SceneDungeonRoomInstance", + "qualified_name": "keen::ds::SceneDungeonRoomInstance", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 128, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2997078197, + "hash2": 96644836, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 64 + }, + { + "name": "room", + "type_name": "keen::ObjectReference", + "type_hash": 916279835, + "data_offset": 104 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 120 + }, + { + "name": "whiteboxSeed", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 124 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::DungeonRoomSceneLayerGroup", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2128222863, + "hash2": 423711518, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonRoomLayerGroupInstance", + "type_name_2": "SceneDungeonRoomLayerGroupInstance", + "qualified_name": "keen::ds::SceneDungeonRoomLayerGroupInstance", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 80, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1136432761, + "hash2": 2291177607, + "struct_fields": [ + { + "name": "layerGroup", + "type_name": "keen::ObjectReference", + "type_hash": 2128222863, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonEntranceDefinition", + "type_name_2": "DungeonEntranceDefinition", + "qualified_name": "keen::ds::DungeonEntranceDefinition", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2472512788, + "hash2": 4225187578, + "struct_fields": [ + { + "name": "whitebox", + "type_name": "keen::ObjectReference", + "type_hash": 1748819459, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonConnectionPriority", + "type_name_2": "DungeonConnectionPriority", + "qualified_name": "keen::ds::DungeonConnectionPriority", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 767848883, + "hash2": 3116354927, + "struct_fields": [ + { + "name": "room", + "type_name": "keen::ObjectReference", + "type_hash": 116968528, + "data_offset": 0 + }, + { + "name": "whitebox", + "type_name": "keen::ObjectReference", + "type_hash": 1748819459, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DungeonDirectory", + "type_name_2": "DungeonDirectory", + "qualified_name": "keen::ds::DungeonDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3247832602, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DungeonScene", + "type_name_2": "DungeonScene", + "qualified_name": "keen::ds::DungeonScene", + "referenced_type_name": "keen::ds::Scene", + "class_size": 208, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3498392409, + "hash2": 2143270963, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneDungeonInstance", + "type_name_2": "SceneDungeonInstance", + "qualified_name": "keen::ds::SceneDungeonInstance", + "referenced_type_name": "keen::ds::SceneObject", + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 703747874, + "hash2": 899530053, + "struct_fields": [ + { + "name": "dungeon", + "type_name": "keen::ObjectReference", + "type_hash": 883053468, + "data_offset": 64 + }, + { + "name": "spawnLevelOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 80 + }, + { + "name": "whiteboxSeed", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 84 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxPathParameters", + "type_name_2": "SceneWhiteboxPathParameters", + "qualified_name": "keen::ds::SceneWhiteboxPathParameters", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 630037184, + "hash2": 4101032000, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::WorldTransform", + "type_hash": 43420914, + "data_offset": 0 + }, + { + "name": "rootSceneId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 56 + }, + { + "name": "sceneInstanceId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 72 + }, + { + "name": "seed", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 88 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SceneWhiteboxPathParameters[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SceneWhiteboxPathParameters", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1161359099, + "hash2": 3783179817, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SceneWhiteboxPathList", + "type_name_2": "SceneWhiteboxPathList", + "qualified_name": "keen::ds::SceneWhiteboxPathList", + "referenced_type_name": null, + "class_size": 176, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1430325844, + "hash2": 1542541410, + "struct_fields": [ + { + "name": "rootScene", + "type_name": "keen::ds::SceneWhiteboxPathParameters", + "type_hash": 630037184, + "data_offset": 0 + }, + { + "name": "subscenes", + "type_name": "keen::DsArray", + "type_hash": 1161359099, + "data_offset": 96 + }, + { + "name": "scatterScenes", + "type_name": "keen::DsArray", + "type_hash": 1161359099, + "data_offset": 136 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ContentLabelInfo", + "type_name_2": "ContentLabelInfo", + "qualified_name": "keen::ds::ContentLabelInfo", + "referenced_type_name": null, + "class_size": 184, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2313510422, + "hash2": 3273524383, + "struct_fields": [ + { + "name": "whiteboxLabels", + "type_name": "keen::DsArray", + "type_hash": 29096206, + "data_offset": 0 + }, + { + "name": "lootSettings", + "type_name": "keen::ds::ObjectLootSettings", + "type_hash": 3863595379, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "EntityTag", + "type_name_2": "ecs.EntityTag", + "qualified_name": "keen::ds::ecs::EntityTag", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2970005857, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ForbiddenEntityTags", + "type_name_2": "ForbiddenEntityTags", + "qualified_name": "keen::ds::ForbiddenEntityTags", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1190036386, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Sequence", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 3622548289, + "hash2": 3922729849, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SequenceReference", + "type_name_2": "SequenceReference", + "qualified_name": "keen::ds::SequenceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 636239043, + "hash2": 3720005445, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugAction", + "type_name_2": "SessionDebugAction", + "qualified_name": "keen::ds::SessionDebugAction", + "referenced_type_name": "keen::SessionDebugAction", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2439590774, + "hash2": 3752359083, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugActionMessage", + "type_name_2": "SessionDebugActionMessage", + "qualified_name": "keen::ds::SessionDebugActionMessage", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2185373781, + "hash2": 2023800139, + "struct_fields": [ + { + "name": "action", + "type_name": "keen::ds::SessionDebugAction", + "type_hash": 2439590774, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugChannelInfo", + "type_name_2": "SessionDebugChannelInfo", + "qualified_name": "keen::ds::SessionDebugChannelInfo", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3831409091, + "hash2": 3784919977, + "struct_fields": [ + { + "name": "name", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SessionDebugChannelInfo[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SessionDebugChannelInfo", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2620175206, + "hash2": 4101206064, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugChannelsMessage", + "type_name_2": "SessionDebugChannelsMessage", + "qualified_name": "keen::ds::SessionDebugChannelsMessage", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3871894875, + "hash2": 2221050340, + "struct_fields": [ + { + "name": "channels", + "type_name": "keen::DsArray", + "type_hash": 2620175206, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketChannel", + "type_name_2": "SessionDebugPacketChannel", + "qualified_name": "keen::ds::SessionDebugPacketChannel", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2655478287, + "hash2": 1016295323, + "struct_fields": [ + { + "name": "messageSize", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 0 + }, + { + "name": "messageCount", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 2 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketsChannel", + "type_name_2": "SessionDebugPacketsChannel", + "qualified_name": "keen::ds::SessionDebugPacketsChannel", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 425473212, + "hash2": 2457392787, + "struct_fields": [ + { + "name": "totalMessageSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 0 + }, + { + "name": "totalMessageCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "messageSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "messageCount", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketChannels", + "type_name_2": "SessionDebugPacketChannels", + "qualified_name": "keen::ds::SessionDebugPacketChannels", + "referenced_type_name": "keen::SessionDebugPacketChannels", + "class_size": 128, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2791311668, + "hash2": 2405662659, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketsChannels", + "type_name_2": "SessionDebugPacketsChannels", + "qualified_name": "keen::ds::SessionDebugPacketsChannels", + "referenced_type_name": "keen::SessionDebugPacketsChannels", + "class_size": 768, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3139903965, + "hash2": 2571808141, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacket", + "type_name_2": "SessionDebugPacket", + "qualified_name": "keen::ds::SessionDebugPacket", + "referenced_type_name": null, + "class_size": 160, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3104277260, + "hash2": 2770100300, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "oldestMessageTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "machineId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "packetId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "packetSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "machineIndex", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 28 + }, + { + "name": "channels", + "type_name": "keen::ds::SessionDebugPacketChannels", + "type_hash": 2791311668, + "data_offset": 30 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketMessage", + "type_name_2": "SessionDebugPacketMessage", + "qualified_name": "keen::ds::SessionDebugPacketMessage", + "referenced_type_name": null, + "class_size": 800, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 339575595, + "hash2": 819965805, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "machineId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "packetsChannels", + "type_name": "keen::ds::SessionDebugPacketsChannels", + "type_hash": 3139903965, + "data_offset": 16 + }, + { + "name": "totalPacketsSize", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 784 + }, + { + "name": "packetsSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 792 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SessionDebugPacket[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SessionDebugPacket", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 389307121, + "hash2": 4294779832, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketSendMessage", + "type_name_2": "SessionDebugPacketSendMessage", + "qualified_name": "keen::ds::SessionDebugPacketSendMessage", + "referenced_type_name": "keen::ds::SessionDebugPacketMessage", + "class_size": 840, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2443985689, + "hash2": 1728820495, + "struct_fields": [ + { + "name": "packets", + "type_name": "keen::DsArray", + "type_hash": 389307121, + "data_offset": 800 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugPacketRecvMessage", + "type_name_2": "SessionDebugPacketRecvMessage", + "qualified_name": "keen::ds::SessionDebugPacketRecvMessage", + "referenced_type_name": "keen::ds::SessionDebugPacketMessage", + "class_size": 840, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1952295123, + "hash2": 1728820495, + "struct_fields": [ + { + "name": "packets", + "type_name": "keen::DsArray", + "type_hash": 389307121, + "data_offset": 800 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugMachineStats", + "type_name_2": "SessionDebugMachineStats", + "qualified_name": "keen::ds::SessionDebugMachineStats", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 400307640, + "hash2": 415689885, + "struct_fields": [ + { + "name": "machineIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "lostPackets", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "roundTripTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "bandwidthLimitInBps", + "type_name": "keen::uint64", + "type_hash": 4074328080, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SessionDebugMachineStats[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SessionDebugMachineStats", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2941009469, + "hash2": 1307259953, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionDebugStatsMessage", + "type_name_2": "SessionDebugStatsMessage", + "qualified_name": "keen::ds::SessionDebugStatsMessage", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2815548798, + "hash2": 2856180809, + "struct_fields": [ + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "machineStats", + "type_name": "keen::DsArray", + "type_hash": 2941009469, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GameParameters", + "type_name_2": "GameParameters", + "qualified_name": "keen::ds::GameParameters", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3709867161, + "hash2": 1183123561, + "struct_fields": [ + { + "name": "flameLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "gameSettingsPreset", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContentType", + "type_name_2": "SoundContentType", + "qualified_name": "keen::ds::SoundContentType", + "referenced_type_name": "keen::SoundContentType", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2208793167, + "hash2": 2708737334, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Sound", + "type_name_2": "Sound", + "qualified_name": "keen::ds::Sound", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2749368918, + "hash2": 1513785251, + "struct_fields": [ + { + "name": "contentType", + "type_name": "keen::ds::SoundContentType", + "type_hash": 2208793167, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::Sound", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2180934571, + "hash2": 2357989301, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundReference", + "type_name_2": "SoundReference", + "qualified_name": "keen::ds::SoundReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1003810275, + "hash2": 397452906, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainer", + "type_name_2": "SoundContainer", + "qualified_name": "keen::ds::SoundContainer", + "referenced_type_name": "keen::ds::SoundContainerShared", + "class_size": 64, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 297146229, + "hash2": 3279981320, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerEntryShared", + "type_name_2": "SoundContainerEntryShared", + "qualified_name": "keen::ds::SoundContainerEntryShared", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2451627354, + "hash2": 4061420768, + "struct_fields": [ + { + "name": "chance", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerEntry", + "type_name_2": "SoundContainerEntry", + "qualified_name": "keen::ds::SoundContainerEntry", + "referenced_type_name": "keen::ds::SoundContainerEntryShared", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2650990627, + "hash2": 352523155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerSoundEntry", + "type_name_2": "SoundContainerSoundEntry", + "qualified_name": "keen::ds::SoundContainerSoundEntry", + "referenced_type_name": "keen::ds::SoundContainerEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3456594248, + "hash2": 814045522, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::ds::SoundReference", + "type_hash": 1003810275, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerContainerEntry", + "type_name_2": "SoundContainerContainerEntry", + "qualified_name": "keen::ds::SoundContainerContainerEntry", + "referenced_type_name": "keen::ds::SoundContainerEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4172206604, + "hash2": 713435123, + "struct_fields": [ + { + "name": "container", + "type_name": "keen::ds::SoundContainerReference", + "type_hash": 1822037770, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsVariant", + "type_name_2": "Variant", + "qualified_name": "keen::DsVariant", + "referenced_type_name": "keen::ds::SoundContainerResourceEntry", + "class_size": 48, + "fields_count": 3, + "primitive_type": "DsVariant", + "hash1": 565037250, + "hash2": 3869116083, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray>", + "type_name_2": "Variant[]", + "qualified_name": "keen::DsArray>", + "referenced_type_name": "keen::DsVariant", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1707236399, + "hash2": 3768851972, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResource", + "type_name_2": "SoundContainerResource", + "qualified_name": "keen::ds::SoundContainerResource", + "referenced_type_name": "keen::ds::SoundContainerShared", + "class_size": 104, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 492961605, + "hash2": 3004949688, + "struct_fields": [ + { + "name": "entries", + "type_name": "keen::DsArray>", + "type_hash": 1707236399, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceEntry", + "type_name_2": "SoundContainerResourceEntry", + "qualified_name": "keen::ds::SoundContainerResourceEntry", + "referenced_type_name": "keen::ds::SoundContainerEntryShared", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2116268467, + "hash2": 352523155, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SoundResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2389105575, + "hash2": 1014023611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundResourceReference", + "type_name_2": "SoundResourceReference", + "qualified_name": "keen::ds::SoundResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 517257243, + "hash2": 2858726641, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceSoundEntry", + "type_name_2": "SoundContainerResourceSoundEntry", + "qualified_name": "keen::ds::SoundContainerResourceSoundEntry", + "referenced_type_name": "keen::ds::SoundContainerResourceEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3886341944, + "hash2": 2789281766, + "struct_fields": [ + { + "name": "sound", + "type_name": "keen::ds::SoundResourceReference", + "type_hash": 517257243, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundContainerResourceContainerEntry", + "type_name_2": "SoundContainerResourceContainerEntry", + "qualified_name": "keen::ds::SoundContainerResourceContainerEntry", + "referenced_type_name": "keen::ds::SoundContainerResourceEntry", + "class_size": 20, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 854451708, + "hash2": 685867781, + "struct_fields": [ + { + "name": "container", + "type_name": "keen::ds::SoundContainerResourceReference", + "type_hash": 4173615034, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SoundReference[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SoundReference", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2573658608, + "hash2": 1175320238, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundMusicPlaylist", + "type_name_2": "SoundMusicPlaylist", + "qualified_name": "keen::ds::SoundMusicPlaylist", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2603649619, + "hash2": 997805132, + "struct_fields": [ + { + "name": "tracks", + "type_name": "keen::DsArray", + "type_hash": 2573658608, + "data_offset": 0 + }, + { + "name": "shuffle", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 40 + }, + { + "name": "fadeDuration", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::SoundMusicPlaylist", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 102159814, + "hash2": 3239731615, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundMusicPlaylistReference", + "type_name_2": "SoundMusicPlaylistReference", + "qualified_name": "keen::ds::SoundMusicPlaylistReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3971438872, + "hash2": 1238083464, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundChannelConfiguration", + "type_name_2": "SoundChannelConfiguration", + "qualified_name": "keen::ds::SoundChannelConfiguration", + "referenced_type_name": "keen::SoundChannelConfiguration", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3242065357, + "hash2": 1994003611, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundDataFormat", + "type_name_2": "SoundDataFormat", + "qualified_name": "keen::ds::SoundDataFormat", + "referenced_type_name": "keen::SoundDataFormat", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2487139077, + "hash2": 1780725970, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SoundResource", + "type_name_2": "SoundResource", + "qualified_name": "keen::ds::SoundResource", + "referenced_type_name": null, + "class_size": 112, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 4053690094, + "hash2": 3097126671, + "struct_fields": [ + { + "name": "channelConfiguration", + "type_name": "keen::ds::SoundChannelConfiguration", + "type_hash": 3242065357, + "data_offset": 0 + }, + { + "name": "format", + "type_name": "keen::ds::SoundDataFormat", + "type_hash": 2487139077, + "data_offset": 1 + }, + { + "name": "framesPerSecond", + "type_name": "keen::uint16", + "type_hash": 1993756229, + "data_offset": 2 + }, + { + "name": "frameCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 16 + }, + { + "name": "dataHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 56 + }, + { + "name": "debugName", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GpuInformation", + "type_name_2": "GpuInformation", + "qualified_name": "keen::ds::GpuInformation", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1394258603, + "hash2": 1354411321, + "struct_fields": [ + { + "name": "identifier", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SessionStarted", + "type_name_2": "SessionStarted", + "qualified_name": "keen::ds::SessionStarted", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 802250170, + "hash2": 1203013672, + "struct_fields": [ + { + "name": "userId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "sessionCount", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "gpu", + "type_name": "keen::ds::GpuInformation", + "type_hash": 1394258603, + "data_offset": 8 + }, + { + "name": "gameVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "engineVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CraftingAction", + "type_name_2": "CraftingAction", + "qualified_name": "keen::ds::CraftingAction", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4104451239, + "hash2": 2897297771, + "struct_fields": [ + { + "name": "station", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "count", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FoodBuffData", + "type_name_2": "FoodBuffData", + "qualified_name": "keen::ds::FoodBuffData", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2577445498, + "hash2": 1981628197, + "struct_fields": [ + { + "name": "maxUsedSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "activatedFoodBuffs", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "CraftingAction[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::CraftingAction", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2514776904, + "hash2": 3515178125, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SessionEnded", + "type_name_2": "SessionEnded", + "qualified_name": "keen::ds::SessionEnded", + "referenced_type_name": null, + "class_size": 296, + "fields_count": 14, + "primitive_type": "Struct", + "hash1": 177812223, + "hash2": 1767963752, + "struct_fields": [ + { + "name": "userId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "maxPlayer", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + }, + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "host", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "saveGameSize", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "gpu", + "type_name": "keen::ds::GpuInformation", + "type_hash": 1394258603, + "data_offset": 24 + }, + { + "name": "gameVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 64 + }, + { + "name": "engineVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 68 + }, + { + "name": "unlockedKnowledge", + "type_name": "keen::DsArray", + "type_hash": 3892628011, + "data_offset": 72 + }, + { + "name": "crafting", + "type_name": "keen::DsArray", + "type_hash": 2514776904, + "data_offset": 112 + }, + { + "name": "foodBuffData", + "type_name": "keen::ds::FoodBuffData", + "type_hash": 2577445498, + "data_offset": 152 + }, + { + "name": "didUsePersonelCrafting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 160 + }, + { + "name": "preset", + "type_name": "keen::ds::ecs::GameSettingsPreset", + "type_hash": 2718665048, + "data_offset": 161 + }, + { + "name": "settings", + "type_name": "keen::ds::ecs::GameSettings", + "type_hash": 4190741839, + "data_offset": 168 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DedicatedSessionStarted", + "type_name_2": "DedicatedSessionStarted", + "qualified_name": "keen::ds::DedicatedSessionStarted", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3455976213, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DedicatedSessionEnded", + "type_name_2": "DedicatedSessionEnded", + "qualified_name": "keen::ds::DedicatedSessionEnded", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3879959172, + "hash2": 2399155725, + "struct_fields": [ + { + "name": "playTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DeathCause", + "type_name_2": "DeathCause", + "qualified_name": "keen::ds::DeathCause", + "referenced_type_name": "keen::DeathCause", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3714943346, + "hash2": 2770865079, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "PlayerDeath", + "type_name_2": "PlayerDeath", + "qualified_name": "keen::ds::PlayerDeath", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 196565788, + "hash2": 553349328, + "struct_fields": [ + { + "name": "cause", + "type_name": "keen::ds::DeathCause", + "type_hash": 3714943346, + "data_offset": 0 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 4 + }, + { + "name": "causeGuid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "wasDeadlyFog", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "LevelUp", + "type_name_2": "tracking.LevelUp", + "qualified_name": "keen::ds::tracking::LevelUp", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 112298169, + "hash2": 2385937319, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MinSpecError", + "type_name_2": "tracking.MinSpecError", + "qualified_name": "keen::ds::tracking::MinSpecError", + "referenced_type_name": "keen::tracking::MinSpecError", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 35037313, + "hash2": 737691565, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "MinSpecErrorMask", + "type_name_2": "tracking.MinSpecErrorMask", + "qualified_name": "keen::ds::tracking::MinSpecErrorMask", + "referenced_type_name": "keen::tracking::MinSpecErrorMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 228554813, + "hash2": 2166969638, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CrashInfo", + "type_name_2": "tracking.CrashInfo", + "qualified_name": "keen::ds::tracking::CrashInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1510900425, + "hash2": 1174756801, + "struct_fields": [ + { + "name": "userId", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 8 + }, + { + "name": "gameVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "engineVersion", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 20 + }, + { + "name": "minspecError", + "type_name": "keen::ds::tracking::MinSpecErrorMask", + "type_hash": 228554813, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontResource", + "type_name_2": "TtfFontResource", + "qualified_name": "keen::ds::TtfFontResource", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4243606426, + "hash2": 1316658656, + "struct_fields": [ + { + "name": "fontFileHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontInfo", + "type_name_2": "TtfFontInfo", + "qualified_name": "keen::ds::TtfFontInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2376609898, + "hash2": 1401523292, + "struct_fields": [ + { + "name": "objectId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "fontFileHash", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TtfFont", + "type_name_2": "TtfFont", + "qualified_name": "keen::ds::TtfFont", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 851965266, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::TtfFont", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1678417559, + "hash2": 3375411796, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontReference", + "type_name_2": "TtfFontReference", + "qualified_name": "keen::ds::TtfFontReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3005664391, + "hash2": 1075730520, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::TtfFontResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 380416595, + "hash2": 1680474028, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "TtfFontResourceReference", + "type_name_2": "TtfFontResourceReference", + "qualified_name": "keen::ds::TtfFontResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2400406223, + "hash2": 1495160564, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiHorizontalAlignment", + "type_name_2": "UiHorizontalAlignment", + "qualified_name": "keen::ds::UiHorizontalAlignment", + "referenced_type_name": "keen::UiHorizontalAlignment", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 3809341938, + "hash2": 795106658, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiVerticalAlignment", + "type_name_2": "UiVerticalAlignment", + "qualified_name": "keen::ds::UiVerticalAlignment", + "referenced_type_name": "keen::UiVerticalAlignment", + "class_size": 1, + "fields_count": 4, + "primitive_type": "Typedef", + "hash1": 2832469748, + "hash2": 3129590433, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiTestStyles", + "type_name_2": "UiTestStyles", + "qualified_name": "keen::ds::UiTestStyles", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3146529087, + "hash2": 1658794137, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::ds::UiCharacterStyle", + "type_hash": 324211797, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiTestParagraphStyles", + "type_name_2": "UiTestParagraphStyles", + "qualified_name": "keen::ds::UiTestParagraphStyles", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 246625787, + "hash2": 3137853680, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::ds::UiParagraphStyle", + "type_hash": 721038986, + "data_offset": 0 + }, + { + "name": "test2", + "type_name": "keen::ds::UiParagraphStyle", + "type_hash": 721038986, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontReference", + "type_name_2": "UiFontReference", + "qualified_name": "keen::ds::UiFontReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 833483853, + "hash2": 196348671, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiBundleTest", + "type_name_2": "UiBundleTest", + "qualified_name": "keen::ds::UiBundleTest", + "referenced_type_name": "keen::ds::UiBundle", + "class_size": 432, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3940230853, + "hash2": 3164985897, + "struct_fields": [ + { + "name": "test", + "type_name": "keen::ds::UiTexture", + "type_hash": 1666396020, + "data_offset": 120 + }, + { + "name": "namedStyles", + "type_name": "keen::ds::UiTestStyles", + "type_hash": 3146529087, + "data_offset": 168 + }, + { + "name": "namedParagraphStyles", + "type_name": "keen::ds::UiTestParagraphStyles", + "type_hash": 246625787, + "data_offset": 288 + }, + { + "name": "font", + "type_name": "keen::ds::UiFontReference", + "type_hash": 833483853, + "data_offset": 416 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontRange", + "type_name_2": "UiFontRange", + "qualified_name": "keen::ds::UiFontRange", + "referenced_type_name": null, + "class_size": 8, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 560021957, + "hash2": 1811513182, + "struct_fields": [ + { + "name": "firstRune", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "lastRune", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiGlyphSet", + "type_name_2": "UiGlyphSet", + "qualified_name": "keen::ds::UiGlyphSet", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3892217155, + "hash2": 1097335876, + "struct_fields": [ + { + "name": "font", + "type_name": "keen::ds::TtfFontReference", + "type_hash": 3005664391, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "useForMetrics", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "bold", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "italic", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFont", + "type_name_2": "UiFont", + "qualified_name": "keen::ds::UiFont", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2910311952, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontLanguage", + "type_name_2": "UiFontLanguage", + "qualified_name": "keen::ds::UiFontLanguage", + "referenced_type_name": null, + "class_size": 35, + "fields_count": 35, + "primitive_type": "Struct", + "hash1": 2741564346, + "hash2": 4184393540, + "struct_fields": [ + { + "name": "En_Us", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "En_Gb", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 1 + }, + { + "name": "De_De", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 2 + }, + { + "name": "Nl_Nl", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 3 + }, + { + "name": "Fr_Fr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "It_It", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "Es_Es", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "Es_Mx", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "Ru_Ru", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + }, + { + "name": "Pl_Pl", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 9 + }, + { + "name": "Ja_Jp", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 10 + }, + { + "name": "Id_Id", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + }, + { + "name": "Ko_Kr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "Ms_My", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "Pt_Pt", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "Pt_Br", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "Th_Th", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + }, + { + "name": "Tr_Tr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 17 + }, + { + "name": "Vi_Vn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 18 + }, + { + "name": "Zh_Cn", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 19 + }, + { + "name": "Zh_Tw", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + }, + { + "name": "Fr_Ca", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 21 + }, + { + "name": "Es_419", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 22 + }, + { + "name": "Bg_Bg", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 23 + }, + { + "name": "Cs_Cz", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "Da_Dk", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "Fi_Fi", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "El_Gr", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 27 + }, + { + "name": "Hu_Hu", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "No_No", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 29 + }, + { + "name": "Nb_No", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 30 + }, + { + "name": "Ro_Ro", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 31 + }, + { + "name": "Sv_Se", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "Uk_Ua", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "Default", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 34 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontLanguageMask", + "type_name_2": "UiFontLanguageMask", + "qualified_name": "keen::ds::UiFontLanguageMask", + "referenced_type_name": "keen::UiFontLanguageMask", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2605234466, + "hash2": 1930898820, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontVariantFlag", + "type_name_2": "UiFontVariantFlag", + "qualified_name": "keen::ds::UiFontVariantFlag", + "referenced_type_name": "keen::UiFontVariantFlag", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2693526715, + "hash2": 2078525279, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontVariantMask", + "type_name_2": "UiFontVariantMask", + "qualified_name": "keen::ds::UiFontVariantMask", + "referenced_type_name": "keen::UiFontVariantMask", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 305541181, + "hash2": 1035302926, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiFontRange[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiFontRange", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3212415768, + "hash2": 2715074905, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiGlyphSetResource", + "type_name_2": "UiGlyphSetResource", + "qualified_name": "keen::ds::UiGlyphSetResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2000600239, + "hash2": 2624921157, + "struct_fields": [ + { + "name": "fontIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "ranges", + "type_name": "keen::DsArray", + "type_hash": 3212415768, + "data_offset": 8 + }, + { + "name": "fontVariantMask", + "type_name": "keen::ds::UiFontVariantMask", + "type_hash": 305541181, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiGlyphSetResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiGlyphSetResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2799997564, + "hash2": 1705220977, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontLanguageGroupResource", + "type_name_2": "UiFontLanguageGroupResource", + "qualified_name": "keen::ds::UiFontLanguageGroupResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 223947437, + "hash2": 4136514925, + "struct_fields": [ + { + "name": "groupLanguages", + "type_name": "keen::ds::UiFontLanguageMask", + "type_hash": 2605234466, + "data_offset": 0 + }, + { + "name": "glyphSets", + "type_name": "keen::DsArray", + "type_hash": 2799997564, + "data_offset": 8 + }, + { + "name": "metricsIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 48 + }, + { + "name": "isDefaultLanguageGroup", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 52 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "TtfFontResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::TtfFontResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3070588685, + "hash2": 486497229, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiFontLanguageGroupResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiFontLanguageGroupResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1538674976, + "hash2": 1321785143, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFontResource", + "type_name_2": "UiFontResource", + "qualified_name": "keen::ds::UiFontResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4144618436, + "hash2": 3347946441, + "struct_fields": [ + { + "name": "fonts", + "type_name": "keen::DsArray", + "type_hash": 3070588685, + "data_offset": 0 + }, + { + "name": "languageGroups", + "type_name": "keen::DsArray", + "type_hash": 1538674976, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontPreviewLanguageGroupOutput", + "type_name_2": "UiFontPreviewLanguageGroupOutput", + "qualified_name": "keen::ds::UiFontPreviewLanguageGroupOutput", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2292404632, + "hash2": 4141285749, + "struct_fields": [ + { + "name": "fonts", + "type_name": "keen::DsArray", + "type_hash": 3070588685, + "data_offset": 0 + }, + { + "name": "glyphSets", + "type_name": "keen::DsArray", + "type_hash": 2799997564, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFontResourceReference", + "type_name_2": "UiFontResourceReference", + "qualified_name": "keen::ds::UiFontResourceReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3509880473, + "hash2": 297400197, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiObjectId", + "type_name_2": "UiObjectId", + "qualified_name": "keen::ds::UiObjectId", + "referenced_type_name": "keen::UiObjectId", + "class_size": 8, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2234529431, + "hash2": 1906603606, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeFrameState", + "type_name_2": "UiPassTreeFrameState", + "qualified_name": "keen::ds::UiPassTreeFrameState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3991437678, + "hash2": 2999073198, + "struct_fields": [ + { + "name": "stateId", + "type_name": "keen::ds::UiObjectId", + "type_hash": 2234529431, + "data_offset": 0 + }, + { + "name": "size", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameFlags", + "type_name_2": "UiFrameFlags", + "qualified_name": "keen::ds::UiFrameFlags", + "referenced_type_name": "keen::UiFrameFlags", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3986525697, + "hash2": 354720551, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameSizes", + "type_name_2": "UiFrameSizes", + "qualified_name": "keen::ds::UiFrameSizes", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4071439772, + "hash2": 2629185365, + "struct_fields": [ + { + "name": "offset", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 0 + }, + { + "name": "minSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 8 + }, + { + "name": "prefSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 16 + }, + { + "name": "maxSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 24 + }, + { + "name": "stretch", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameLayoutType", + "type_name_2": "UiFrameLayoutType", + "qualified_name": "keen::ds::UiFrameLayoutType", + "referenced_type_name": "keen::UiFrameLayoutType", + "class_size": 4, + "fields_count": 5, + "primitive_type": "Typedef", + "hash1": 3259832104, + "hash2": 2047290405, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameLayout", + "type_name_2": "UiFrameLayout", + "qualified_name": "keen::ds::UiFrameLayout", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 2938919136, + "hash2": 2862726513, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::UiFrameLayoutType", + "type_hash": 3259832104, + "data_offset": 0 + }, + { + "name": "horizontalScroll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "verticalScroll", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "flow", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 6 + }, + { + "name": "splitter", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 7 + }, + { + "name": "spacing", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 8 + }, + { + "name": "framesPerGridRow", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameBorder", + "type_name_2": "UiFrameBorder", + "qualified_name": "keen::ds::UiFrameBorder", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3797200996, + "hash2": 327803181, + "struct_fields": [ + { + "name": "margin", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 0 + }, + { + "name": "padding", + "type_name": "keen::UiBorder", + "type_hash": 2002546014, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameScrollState", + "type_name_2": "UiFrameScrollState", + "qualified_name": "keen::ds::UiFrameScrollState", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 470297912, + "hash2": 298026313, + "struct_fields": [ + { + "name": "scrollOffset", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 0 + }, + { + "name": "scrollAreaSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameLayoutState", + "type_name_2": "UiFrameLayoutState", + "qualified_name": "keen::ds::UiFrameLayoutState", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 4253061845, + "hash2": 1769218790, + "struct_fields": [ + { + "name": "minSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 0 + }, + { + "name": "prefSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 8 + }, + { + "name": "maxSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 16 + }, + { + "name": "stretch", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 24 + }, + { + "name": "flowChild", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiPassTreeFrame[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiPassTreeFrame", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 383169896, + "hash2": 976698281, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiPassTreeFrameState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiPassTreeFrameState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1278972255, + "hash2": 1940323710, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeFrame", + "type_name_2": "UiPassTreeFrame", + "qualified_name": "keen::ds::UiPassTreeFrame", + "referenced_type_name": null, + "class_size": 344, + "fields_count": 18, + "primitive_type": "Struct", + "hash1": 3830921197, + "hash2": 4212981871, + "struct_fields": [ + { + "name": "frameId", + "type_name": "keen::ds::UiObjectId", + "type_hash": 2234529431, + "data_offset": 0 + }, + { + "name": "localFrameId", + "type_name": "keen::ds::UiObjectId", + "type_hash": 2234529431, + "data_offset": 8 + }, + { + "name": "highestChildUiFrameId", + "type_name": "keen::ds::UiObjectId", + "type_hash": 2234529431, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::ds::UiFrameFlags", + "type_hash": 3986525697, + "data_offset": 24 + }, + { + "name": "inputMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + }, + { + "name": "sizes", + "type_name": "keen::ds::UiFrameSizes", + "type_hash": 4071439772, + "data_offset": 32 + }, + { + "name": "layout", + "type_name": "keen::ds::UiFrameLayout", + "type_hash": 2938919136, + "data_offset": 72 + }, + { + "name": "border", + "type_name": "keen::ds::UiFrameBorder", + "type_hash": 3797200996, + "data_offset": 92 + }, + { + "name": "alignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 124 + }, + { + "name": "childAlignment", + "type_name": "keen::UiAlignment", + "type_hash": 4180054773, + "data_offset": 126 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 128 + }, + { + "name": "children", + "type_name": "keen::DsArray", + "type_hash": 383169896, + "data_offset": 168 + }, + { + "name": "states", + "type_name": "keen::DsArray", + "type_hash": 1278972255, + "data_offset": 208 + }, + { + "name": "scrollState", + "type_name": "keen::ds::UiFrameScrollState", + "type_hash": 470297912, + "data_offset": 248 + }, + { + "name": "layoutState", + "type_name": "keen::ds::UiFrameLayoutState", + "type_hash": 4253061845, + "data_offset": 264 + }, + { + "name": "oldRect", + "type_name": "keen::UiRectangle", + "type_hash": 1317388101, + "data_offset": 300 + }, + { + "name": "rect", + "type_name": "keen::UiRectangle", + "type_hash": 1317388101, + "data_offset": 316 + }, + { + "name": "offset", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 332 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsOptional", + "type_name_2": "Optional", + "qualified_name": "keen::DsOptional", + "referenced_type_name": "keen::ds::UiPassTreeFrame", + "class_size": 16, + "fields_count": 0, + "primitive_type": "DsOptional", + "hash1": 939660773, + "hash2": 3256904809, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeFrameOpt", + "type_name_2": "UiPassTreeFrameOpt", + "qualified_name": "keen::ds::UiPassTreeFrameOpt", + "referenced_type_name": "keen::DsOptional", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2920615298, + "hash2": 1016552024, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeWindow", + "type_name_2": "UiPassTreeWindow", + "qualified_name": "keen::ds::UiPassTreeWindow", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 209091868, + "hash2": 4059649794, + "struct_fields": [ + { + "name": "windowId", + "type_name": "keen::ds::UiObjectId", + "type_hash": 2234529431, + "data_offset": 0 + }, + { + "name": "zOrder", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 8 + }, + { + "name": "inputMask", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 12 + }, + { + "name": "flags", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "offset", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 20 + }, + { + "name": "scale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "rootFrame", + "type_name": "keen::ds::UiPassTreeFrameOpt", + "type_hash": 2920615298, + "data_offset": 32 + }, + { + "name": "debugName", + "type_name": "keen::DsString", + "type_hash": 937307642, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiPassTreeWindow[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiPassTreeWindow", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 63135353, + "hash2": 1985401818, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTreeScreen", + "type_name_2": "UiPassTreeScreen", + "qualified_name": "keen::ds::UiPassTreeScreen", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1581134628, + "hash2": 3653057263, + "struct_fields": [ + { + "name": "screenId", + "type_name": "keen::ds::UiObjectId", + "type_hash": 2234529431, + "data_offset": 0 + }, + { + "name": "rect", + "type_name": "keen::UiRectangle", + "type_hash": 1317388101, + "data_offset": 8 + }, + { + "name": "windows", + "type_name": "keen::DsArray", + "type_hash": 63135353, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "UiPassTreeScreen[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::UiPassTreeScreen", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 767742493, + "hash2": 3533109780, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiPassTree", + "type_name_2": "UiPassTree", + "qualified_name": "keen::ds::UiPassTree", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3517048864, + "hash2": 2978112518, + "struct_fields": [ + { + "name": "systemUpdateCounter", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "screens", + "type_name": "keen::DsArray", + "type_hash": 767742493, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameFlag", + "type_name_2": "UiFrameFlag", + "qualified_name": "keen::ds::UiFrameFlag", + "referenced_type_name": "keen::UiFrameFlag", + "class_size": 1, + "fields_count": 6, + "primitive_type": "Typedef", + "hash1": 1975074536, + "hash2": 3185902036, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiSplitterSizes", + "type_name_2": "UiSplitterSizes", + "qualified_name": "keen::ds::UiSplitterSizes", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 224311324, + "hash2": 1107116583, + "struct_fields": [ + { + "name": "minSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 0 + }, + { + "name": "prefSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 8 + }, + { + "name": "maxSize", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 16 + }, + { + "name": "stretch", + "type_name": "keen::ds::UiSize", + "type_hash": 2848627932, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameSplitterData", + "type_name_2": "UiFrameSplitterData", + "qualified_name": "keen::ds::UiFrameSplitterData", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1354534697, + "hash2": 2165303874, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 0 + }, + { + "name": "positionClamped", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 8 + }, + { + "name": "dragSplitterPosition", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 16 + }, + { + "name": "dragMousePosition", + "type_name": "keen::ds::UiPosition", + "type_hash": 1563543946, + "data_offset": 24 + }, + { + "name": "sizes", + "type_name": "keen::ds::UiSplitterSizes", + "type_hash": 224311324, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "StaticArray", + "type_name_2": "UiFrameSplitterData[8]", + "qualified_name": "keen::StaticArray", + "referenced_type_name": "keen::ds::UiFrameSplitterData", + "class_size": 512, + "fields_count": 8, + "primitive_type": "StaticArray", + "hash1": 966829331, + "hash2": 1901933906, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "UiFrameSplitterState", + "type_name_2": "UiFrameSplitterState", + "qualified_name": "keen::ds::UiFrameSplitterState", + "referenced_type_name": null, + "class_size": 512, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 318550138, + "hash2": 3150929801, + "struct_fields": [ + { + "name": "splitter", + "type_name": "keen::StaticArray", + "type_hash": 966829331, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelTemperatureResource", + "type_name_2": "VoxelTemperatureResource", + "qualified_name": "keen::ds::VoxelTemperatureResource", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 240098821, + "hash2": 4181114305, + "struct_fields": [ + { + "name": "worldOrigin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 0 + }, + { + "name": "worldSize", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 12 + }, + { + "name": "sizeInVoxels", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 24 + }, + { + "name": "voxelData", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelTemperatureResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 112028472, + "hash2": 131288714, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelTemperatureReference", + "type_name_2": "VoxelTemperatureReference", + "qualified_name": "keen::ds::VoxelTemperatureReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3749663178, + "hash2": 2161948039, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldResourceType", + "type_name_2": "VoxelWorldResourceType", + "qualified_name": "keen::ds::VoxelWorldResourceType", + "referenced_type_name": "keen::VoxelWorldResourceType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3895950311, + "hash2": 3847032618, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldResource", + "type_name_2": "VoxelWorldResource", + "qualified_name": "keen::ds::VoxelWorldResource", + "referenced_type_name": null, + "class_size": 4144, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 3522447039, + "hash2": 1345142239, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::VoxelWorldResourceType", + "type_hash": 3895950311, + "data_offset": 0 + }, + { + "name": "tileCount", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 12 + }, + { + "name": "lowLODData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 24 + }, + { + "name": "lowLODMaxLevel", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 40 + }, + { + "name": "materialGuids", + "type_name": "keen::StaticArray", + "type_hash": 1322905614, + "data_offset": 44 + }, + { + "name": "defaultTerrainMaterial", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 4140 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldChunkResource", + "type_name_2": "VoxelWorldChunkResource", + "qualified_name": "keen::ds::VoxelWorldChunkResource", + "referenced_type_name": null, + "class_size": 56, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2815561684, + "hash2": 1441753421, + "struct_fields": [ + { + "name": "highLODData", + "type_name": "keen::ContentHash", + "type_hash": 2543063895, + "data_offset": 0 + }, + { + "name": "waterTileNotEmptyMask", + "type_name": "keen::DsArray", + "type_hash": 366634009, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::VoxelWorldResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1734099710, + "hash2": 3068414586, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldReference", + "type_name_2": "VoxelWorldReference", + "qualified_name": "keen::ds::VoxelWorldReference", + "referenced_type_name": "keen::ObjectReference", + "class_size": 16, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1565281112, + "hash2": 550385499, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "SolidVoxelMaterialWithId", + "type_name_2": "SolidVoxelMaterialWithId", + "qualified_name": "keen::ds::SolidVoxelMaterialWithId", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2949939426, + "hash2": 3568088501, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "stoneMaterialId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 16 + }, + { + "name": "canReceiveFloorMaterial", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BiomeVoxelMaterialMapping", + "type_name_2": "BiomeVoxelMaterialMapping", + "qualified_name": "keen::ds::BiomeVoxelMaterialMapping", + "referenced_type_name": null, + "class_size": 128, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2520833468, + "hash2": 143835619, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "biomes", + "type_name": "keen::StaticArray", + "type_hash": 2375245070, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "SolidVoxelMaterialWithId[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::SolidVoxelMaterialWithId", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3494538003, + "hash2": 662776917, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BiomeVoxelMaterialMapping[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BiomeVoxelMaterialMapping", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 4190643503, + "hash2": 399988788, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialResolvedList", + "type_name_2": "VoxelMaterialResolvedList", + "qualified_name": "keen::ds::VoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 120, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2297443008, + "hash2": 1837562622, + "struct_fields": [ + { + "name": "solidMaterials", + "type_name": "keen::DsArray", + "type_hash": 3494538003, + "data_offset": 0 + }, + { + "name": "buildingMaterials", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 40 + }, + { + "name": "biomeMaterials", + "type_name": "keen::DsArray", + "type_hash": 4190643503, + "data_offset": 80 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialSettings", + "type_name_2": "VoxelMaterialSettings", + "qualified_name": "keen::ds::VoxelMaterialSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2488976621, + "hash2": 980195244, + "struct_fields": [ + { + "name": "defaultTerrainMaterial", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelDisplacementMaterial", + "type_name_2": "VoxelDisplacementMaterial", + "qualified_name": "keen::ds::VoxelDisplacementMaterial", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2698728299, + "hash2": 3769453349, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "side", + "type_name": "keen::ds::VoxelWorldDisplacement", + "type_hash": 2454984800, + "data_offset": 16 + }, + { + "name": "top", + "type_name": "keen::ds::VoxelWorldDisplacement", + "type_hash": 2454984800, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelDisplacementMaterial[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelDisplacementMaterial", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3808285990, + "hash2": 1722156478, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelMaterialDisplacement", + "type_name_2": "VoxelMaterialDisplacement", + "qualified_name": "keen::ds::VoxelMaterialDisplacement", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2679530627, + "hash2": 3243118439, + "struct_fields": [ + { + "name": "materials", + "type_name": "keen::DsArray", + "type_hash": 3808285990, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMaterialResolvedType", + "type_name_2": "FogVoxelMaterialResolvedType", + "qualified_name": "keen::ds::FogVoxelMaterialResolvedType", + "referenced_type_name": "keen::FogVoxelMaterialResolvedType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 360172322, + "hash2": 785209775, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMaterialResolved", + "type_name_2": "FogVoxelMaterialResolved", + "qualified_name": "keen::ds::FogVoxelMaterialResolved", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 567040594, + "hash2": 3299137271, + "struct_fields": [ + { + "name": "id", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "type", + "type_name": "keen::ds::FogVoxelMaterialResolvedType", + "type_hash": 360172322, + "data_offset": 16 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 17 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FogVoxelMaterialResolved[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FogVoxelMaterialResolved", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3340135851, + "hash2": 1086765510, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMaterialResolvedList", + "type_name_2": "FogVoxelMaterialResolvedList", + "qualified_name": "keen::ds::FogVoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4243100590, + "hash2": 3824080137, + "struct_fields": [ + { + "name": "fogMaterials", + "type_name": "keen::DsArray", + "type_hash": 3340135851, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WaterVoxelMaterialResolvedList", + "type_name_2": "WaterVoxelMaterialResolvedList", + "qualified_name": "keen::ds::WaterVoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1159826051, + "hash2": 3527132412, + "struct_fields": [ + { + "name": "waterMaterial", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TemperatureVoxelMaterialResolvedList", + "type_name_2": "TemperatureVoxelMaterialResolvedList", + "qualified_name": "keen::ds::TemperatureVoxelMaterialResolvedList", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 123243300, + "hash2": 675418621, + "struct_fields": [ + { + "name": "temperatureMaterials", + "type_name": "keen::DsArray", + "type_hash": 1002382108, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialMappingResource", + "type_name_2": "BuildingMaterialMappingResource", + "qualified_name": "keen::ds::BuildingMaterialMappingResource", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 313320376, + "hash2": 3650412585, + "struct_fields": [ + { + "name": "localId", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + }, + { + "name": "materialId", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "BuildingMaterialMappingResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::BuildingMaterialMappingResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 967809495, + "hash2": 3016197175, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "BuildingMaterialPaletteResource", + "type_name_2": "BuildingMaterialPaletteResource", + "qualified_name": "keen::ds::BuildingMaterialPaletteResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2396992013, + "hash2": 3927003018, + "struct_fields": [ + { + "name": "mappings", + "type_name": "keen::DsArray", + "type_hash": 967809495, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ReservedMaterialId", + "type_name_2": "ReservedMaterialId", + "qualified_name": "keen::ds::ReservedMaterialId", + "referenced_type_name": "keen::ReservedMaterialId", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1035178995, + "hash2": 2999951910, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalSetup", + "type_name_2": "FogRemovalSetup", + "qualified_name": "keen::ds::FogRemovalSetup", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1657028404, + "hash2": 2622498075, + "struct_fields": [ + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalDirectory", + "type_name_2": "FogRemovalDirectory", + "qualified_name": "keen::ds::FogRemovalDirectory", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 3846286290, + "hash2": 4199377268, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogRemovalLink", + "type_name_2": "FogRemovalLink", + "qualified_name": "keen::ds::FogRemovalLink", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1052329431, + "hash2": 2206727938, + "struct_fields": [ + { + "name": "fogId", + "type_name": "keen::ObjectReference", + "type_hash": 1236037337, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMappingType", + "type_name_2": "FogVoxelMappingType", + "qualified_name": "keen::ds::FogVoxelMappingType", + "referenced_type_name": "keen::FogVoxelMappingType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3860005799, + "hash2": 785209775, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMapping", + "type_name_2": "FogVoxelMapping", + "qualified_name": "keen::ds::FogVoxelMapping", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 3080364927, + "hash2": 84646689, + "struct_fields": [ + { + "name": "type", + "type_name": "keen::ds::FogVoxelMappingType", + "type_hash": 3860005799, + "data_offset": 0 + }, + { + "name": "level", + "type_name": "keen::uint8", + "type_hash": 3533154758, + "data_offset": 1 + }, + { + "name": "removalId", + "type_name": "keen::ds::FogRemovalId", + "type_hash": 935929886, + "data_offset": 4 + }, + { + "name": "boundingBox", + "type_name": "keen::AxisAlignedBox", + "type_hash": 1117989454, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "FogVoxelMapping[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::FogVoxelMapping", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1649806742, + "hash2": 1142973874, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "FogVoxelMappingResource", + "type_name_2": "FogVoxelMappingResource", + "qualified_name": "keen::ds::FogVoxelMappingResource", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 849463707, + "hash2": 1503091365, + "struct_fields": [ + { + "name": "mapping", + "type_name": "keen::DsArray", + "type_hash": 1649806742, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelResource", + "type_name_2": "VoxelModelResource", + "qualified_name": "keen::ds::VoxelModelResource", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1307083474, + "hash2": 2592438267, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 16 + }, + { + "name": "isTerrain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelModelInfo", + "type_name_2": "VoxelModelInfo", + "qualified_name": "keen::ds::VoxelModelInfo", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 3837818114, + "hash2": 872366566, + "struct_fields": [ + { + "name": "size", + "type_name": "keen::uint3", + "type_hash": 3650598091, + "data_offset": 0 + }, + { + "name": "materialMap", + "type_name": "keen::DsArray", + "type_hash": 967809495, + "data_offset": 16 + }, + { + "name": "isTerrain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelObjectPreviewMode", + "type_name_2": "VoxelObjectPreviewMode", + "qualified_name": "keen::ds::VoxelObjectPreviewMode", + "referenced_type_name": "keen::VoxelObjectPreviewMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1487944381, + "hash2": 3195422324, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelObjectDefinition", + "type_name_2": "VoxelObjectDefinition", + "qualified_name": "keen::ds::VoxelObjectDefinition", + "referenced_type_name": null, + "class_size": 36, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 2798354347, + "hash2": 353215039, + "struct_fields": [ + { + "name": "materialPalette", + "type_name": "keen::ObjectReference", + "type_hash": 930730766, + "data_offset": 0 + }, + { + "name": "material", + "type_name": "keen::ObjectReference", + "type_hash": 1566001613, + "data_offset": 16 + }, + { + "name": "invertEmptyConservative", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "previewMode", + "type_name": "keen::ds::VoxelObjectPreviewMode", + "type_hash": 1487944381, + "data_offset": 33 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "TerrainVoxelObjectDefinition", + "type_name_2": "TerrainVoxelObjectDefinition", + "qualified_name": "keen::ds::TerrainVoxelObjectDefinition", + "referenced_type_name": null, + "class_size": 16, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3223712734, + "hash2": 1990869738, + "struct_fields": [ + { + "name": "model", + "type_name": "keen::ObjectReference", + "type_hash": 2206438977, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldObject", + "type_name_2": "VoxelWorldObject", + "qualified_name": "keen::ds::VoxelWorldObject", + "referenced_type_name": null, + "class_size": 52, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1178146216, + "hash2": 3977298781, + "struct_fields": [ + { + "name": "heightmap", + "type_name": "keen::ds::ImageReference", + "type_hash": 3047280905, + "data_offset": 0 + }, + { + "name": "compositeHeightmap", + "type_name": "keen::ObjectReference", + "type_hash": 1218034581, + "data_offset": 16 + }, + { + "name": "heightScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "useCompositeScatterImage", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "displaceHeightmap", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "origin", + "type_name": "keen::int3", + "type_hash": 1633544828, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldInfo", + "type_name_2": "VoxelWorldInfo", + "qualified_name": "keen::ds::VoxelWorldInfo", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1294209031, + "hash2": 1441382391, + "struct_fields": [ + { + "name": "minTile", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 0 + }, + { + "name": "maxTile", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 8 + }, + { + "name": "yOffset", + "type_name": "keen::sint32", + "type_hash": 1487479105, + "data_offset": 16 + }, + { + "name": "heightMapSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 20 + }, + { + "name": "heightMapHeight", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldTerraAction", + "type_name_2": "VoxelWorldTerraAction", + "qualified_name": "keen::ds::VoxelWorldTerraAction", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 219508045, + "hash2": 1955614864, + "struct_fields": [ + { + "name": "position", + "type_name": "keen::float3", + "type_hash": 545651725, + "data_offset": 0 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "mode", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "VoxelWorldTerraAction[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::VoxelWorldTerraAction", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1037787868, + "hash2": 1116950093, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldTerraActions", + "type_name_2": "VoxelWorldTerraActions", + "qualified_name": "keen::ds::VoxelWorldTerraActions", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3602577562, + "hash2": 4043869238, + "struct_fields": [ + { + "name": "actions", + "type_name": "keen::DsArray", + "type_hash": 1037787868, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelRoadShapeDefinition", + "type_name_2": "VoxelRoadShapeDefinition", + "qualified_name": "keen::ds::VoxelRoadShapeDefinition", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3417514733, + "hash2": 2575173140, + "struct_fields": [ + { + "name": "roadWidth", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldAutomatedTest", + "type_name_2": "VoxelWorldAutomatedTest", + "qualified_name": "keen::ds::VoxelWorldAutomatedTest", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 1345169167, + "hash2": 1902534977, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 0 + }, + { + "name": "referenceVoxelData", + "type_name": "keen::ObjectReference", + "type_hash": 575017743, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DestructionVoxelBlockType", + "type_name_2": "DestructionVoxelBlockType", + "qualified_name": "keen::ds::DestructionVoxelBlockType", + "referenced_type_name": "keen::DestructionVoxelBlockType", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2702517296, + "hash2": 953651090, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "VoxelWorldConverterConfig", + "type_name_2": "VoxelWorldConverterConfig", + "qualified_name": "keen::ds::VoxelWorldConverterConfig", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 2676750155, + "hash2": 2993474783, + "struct_fields": [ + { + "name": "buildWaterVoxels", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenon", + "type_name_2": "WeatherPhenomenon", + "qualified_name": "keen::ds::WeatherPhenomenon", + "referenced_type_name": null, + "class_size": 20, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2925632276, + "hash2": 839464708, + "struct_fields": [ + { + "name": "cloudMap", + "type_name": "keen::ObjectReference", + "type_hash": 1074810881, + "data_offset": 0 + }, + { + "name": "tiling", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 16 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSnowBorderConfiguration", + "type_name_2": "WeatherSnowBorderConfiguration", + "qualified_name": "keen::ds::WeatherSnowBorderConfiguration", + "referenced_type_name": null, + "class_size": 28, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 80181638, + "hash2": 3334162775, + "struct_fields": [ + { + "name": "fadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 0 + }, + { + "name": "mask", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 8 + }, + { + "name": "maskResolutionDivisor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemConfiguration", + "type_name_2": "WeatherSystemConfiguration", + "qualified_name": "keen::ds::WeatherSystemConfiguration", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 2761738058, + "hash2": 467545831, + "struct_fields": [ + { + "name": "scene", + "type_name": "keen::ObjectReference", + "type_hash": 4110039674, + "data_offset": 0 + }, + { + "name": "snowBorder", + "type_name": "keen::ds::WeatherSnowBorderConfiguration", + "type_hash": 80181638, + "data_offset": 16 + }, + { + "name": "layerMaskResolutionDivisor", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 44 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherHeightMap", + "type_name_2": "WeatherHeightMap", + "qualified_name": "keen::ds::WeatherHeightMap", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4101136600, + "hash2": 1102154647, + "struct_fields": [ + { + "name": "fadeRange", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 0 + }, + { + "name": "mask", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonProbability", + "type_name_2": "WeatherPhenomenonProbability", + "qualified_name": "keen::ds::WeatherPhenomenonProbability", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4260497835, + "hash2": 3523823674, + "struct_fields": [ + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "duration", + "type_name": "keen::TimeRange", + "type_hash": 2803725876, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerConfiguration", + "type_name_2": "WeatherLayerConfiguration", + "qualified_name": "keen::ds::WeatherLayerConfiguration", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 1281282544, + "hash2": 1578211421, + "struct_fields": [ + { + "name": "useMaskResolutionDivisor", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "restrictMask", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 4 + }, + { + "name": "excludeMask", + "type_name": "keen::ObjectReference", + "type_hash": 1246543870, + "data_offset": 20 + }, + { + "name": "maskClouds", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 36 + }, + { + "name": "maskRain", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 37 + }, + { + "name": "nothingProbability", + "type_name": "keen::ds::WeatherPhenomenonProbability", + "type_hash": 4260497835, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonEffect", + "type_name_2": "WeatherPhenomenonEffect", + "qualified_name": "keen::ds::WeatherPhenomenonEffect", + "referenced_type_name": "keen::WeatherPhenomenonEffect", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3235972125, + "hash2": 427304199, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::WeatherPhenomenon", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 4217154157, + "hash2": 3048893766, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonConfiguration", + "type_name_2": "WeatherPhenomenonConfiguration", + "qualified_name": "keen::ds::WeatherPhenomenonConfiguration", + "referenced_type_name": null, + "class_size": 96, + "fields_count": 10, + "primitive_type": "Struct", + "hash1": 1166307422, + "hash2": 1662965044, + "struct_fields": [ + { + "name": "probability", + "type_name": "keen::ds::WeatherPhenomenonProbability", + "type_hash": 4260497835, + "data_offset": 0 + }, + { + "name": "phenomenon", + "type_name": "keen::ObjectReference", + "type_hash": 4217154157, + "data_offset": 24 + }, + { + "name": "scale", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 40 + }, + { + "name": "rotation", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 48 + }, + { + "name": "moveSpeed", + "type_name": "keen::FloatRange", + "type_hash": 839205009, + "data_offset": 56 + }, + { + "name": "alignRotationToMoveSpeed", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 64 + }, + { + "name": "spawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 72 + }, + { + "name": "despawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 80 + }, + { + "name": "effect", + "type_name": "keen::ds::WeatherPhenomenonEffect", + "type_hash": 3235972125, + "data_offset": 88 + }, + { + "name": "rainThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 92 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemMaskResource", + "type_name_2": "WeatherSystemMaskResource", + "qualified_name": "keen::ds::WeatherSystemMaskResource", + "referenced_type_name": null, + "class_size": 72, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 748592020, + "hash2": 2491951409, + "struct_fields": [ + { + "name": "bboxMin", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 0 + }, + { + "name": "bboxMax", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 8 + }, + { + "name": "worldToRelative", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 16 + }, + { + "name": "size", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 24 + }, + { + "name": "data", + "type_name": "keen::DsArray", + "type_hash": 1611182641, + "data_offset": 32 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeatherSystemLayerResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeatherSystemLayerResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 2878756426, + "hash2": 1723474176, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeatherSystemLayerMaskResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeatherSystemLayerMaskResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 3163056474, + "hash2": 3561542959, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeatherSystemPhenomenonResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeatherSystemPhenomenonResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 331754220, + "hash2": 1119196647, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeatherSystemMaskResource[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeatherSystemMaskResource", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1534933031, + "hash2": 714542099, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemResource", + "type_name_2": "WeatherSystemResource", + "qualified_name": "keen::ds::WeatherSystemResource", + "referenced_type_name": null, + "class_size": 256, + "fields_count": 8, + "primitive_type": "Struct", + "hash1": 1439794412, + "hash2": 284633941, + "struct_fields": [ + { + "name": "dataHash", + "type_name": "keen::HashKey32", + "type_hash": 3462721580, + "data_offset": 0 + }, + { + "name": "worldSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 4 + }, + { + "name": "snowBorderRangeMapping", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 12 + }, + { + "name": "snowBorderMask", + "type_name": "keen::ds::WeatherSystemMaskResource", + "type_hash": 748592020, + "data_offset": 24 + }, + { + "name": "layers", + "type_name": "keen::DsArray", + "type_hash": 2878756426, + "data_offset": 96 + }, + { + "name": "layerMasks", + "type_name": "keen::DsArray", + "type_hash": 3163056474, + "data_offset": 136 + }, + { + "name": "phenomenons", + "type_name": "keen::DsArray", + "type_hash": 331754220, + "data_offset": 176 + }, + { + "name": "rainMasks", + "type_name": "keen::DsArray", + "type_hash": 1534933031, + "data_offset": 216 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerMaskIndex", + "type_name_2": "WeatherLayerMaskIndex", + "qualified_name": "keen::ds::WeatherLayerMaskIndex", + "referenced_type_name": "keen::WeatherLayerMaskIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 1392022094, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemPhenomenonResourceFlags", + "type_name_2": "WeatherSystemPhenomenonResourceFlags", + "qualified_name": "keen::ds::WeatherSystemPhenomenonResourceFlags", + "referenced_type_name": "keen::WeatherSystemPhenomenonResourceFlags", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 271325068, + "hash2": 4145190579, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherRainMaskIndex", + "type_name_2": "WeatherRainMaskIndex", + "qualified_name": "keen::ds::WeatherRainMaskIndex", + "referenced_type_name": "keen::WeatherRainMaskIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 2146585553, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemPhenomenonResource", + "type_name_2": "WeatherSystemPhenomenonResource", + "qualified_name": "keen::ds::WeatherSystemPhenomenonResource", + "referenced_type_name": null, + "class_size": 104, + "fields_count": 15, + "primitive_type": "Struct", + "hash1": 865009029, + "hash2": 1369902295, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "probability", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "flags", + "type_name": "keen::ds::WeatherSystemPhenomenonResourceFlags", + "type_hash": 271325068, + "data_offset": 20 + }, + { + "name": "durationMin", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 24 + }, + { + "name": "durationMax", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 32 + }, + { + "name": "radiusMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "radiusMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 44 + }, + { + "name": "moveSpeedMin", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 48 + }, + { + "name": "moveSpeedMax", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 52 + }, + { + "name": "spawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + }, + { + "name": "despawnFadeTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + }, + { + "name": "rainThreshold", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 72 + }, + { + "name": "rainMaskIndex", + "type_name": "keen::ds::WeatherRainMaskIndex", + "type_hash": 2146585553, + "data_offset": 76 + }, + { + "name": "renderer", + "type_name": "keen::ObjectReference", + "type_hash": 4212580077, + "data_offset": 80 + }, + { + "name": "effect", + "type_name": "keen::ds::WeatherPhenomenonEffect", + "type_hash": 3235972125, + "data_offset": 96 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeatherPhenomenonIndex[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeatherPhenomenonIndex", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 148000309, + "hash2": 488390333, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemLayerResource", + "type_name_2": "WeatherSystemLayerResource", + "qualified_name": "keen::ds::WeatherSystemLayerResource", + "referenced_type_name": null, + "class_size": 168, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3620482973, + "hash2": 421774324, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "restrictMaskIndex", + "type_name": "keen::ds::WeatherLayerMaskIndex", + "type_hash": 1392022094, + "data_offset": 16 + }, + { + "name": "excludeMaskIndex", + "type_name": "keen::ds::WeatherLayerMaskIndex", + "type_hash": 1392022094, + "data_offset": 17 + }, + { + "name": "phenomenonIndices", + "type_name": "keen::DsArray", + "type_hash": 148000309, + "data_offset": 24 + }, + { + "name": "nothingPhenomenon", + "type_name": "keen::ds::WeatherSystemPhenomenonResource", + "type_hash": 865009029, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::RenderWeatherMaskResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 2994843570, + "hash2": 521459042, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemLayerMaskResource", + "type_name_2": "WeatherSystemLayerMaskResource", + "qualified_name": "keen::ds::WeatherSystemLayerMaskResource", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 543775393, + "hash2": 613796154, + "struct_fields": [ + { + "name": "mask", + "type_name": "keen::ds::WeatherSystemMaskResource", + "type_hash": 748592020, + "data_offset": 0 + }, + { + "name": "renderer", + "type_name": "keen::ObjectReference", + "type_hash": 2994843570, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemPhenomenonResourceFlag", + "type_name_2": "WeatherSystemPhenomenonResourceFlag", + "qualified_name": "keen::ds::WeatherSystemPhenomenonResourceFlag", + "referenced_type_name": "keen::WeatherSystemPhenomenonResourceFlag", + "class_size": 4, + "fields_count": 3, + "primitive_type": "Typedef", + "hash1": 3594744247, + "hash2": 2058231365, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeatherSystemDebugLayerState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeatherSystemDebugLayerState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1581404770, + "hash2": 1416584614, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "WeatherSystemDebugInstanceState[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::WeatherSystemDebugInstanceState", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1191729992, + "hash2": 2473386686, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugState", + "type_name_2": "WeatherSystemDebugState", + "qualified_name": "keen::ds::WeatherSystemDebugState", + "referenced_type_name": null, + "class_size": 88, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 996959504, + "hash2": 1448167888, + "struct_fields": [ + { + "name": "currentTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "layers", + "type_name": "keen::DsArray", + "type_hash": 1581404770, + "data_offset": 8 + }, + { + "name": "instances", + "type_name": "keen::DsArray", + "type_hash": 1191729992, + "data_offset": 48 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugLayerState", + "type_name_2": "WeatherSystemDebugLayerState", + "qualified_name": "keen::ds::WeatherSystemDebugLayerState", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 4, + "primitive_type": "Struct", + "hash1": 1463768293, + "hash2": 2302845002, + "struct_fields": [ + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 0 + }, + { + "name": "nextPhenomenonTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 16 + }, + { + "name": "currentInstanceHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 24 + }, + { + "name": "previousInstanceHandle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 28 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugInstanceState", + "type_name_2": "WeatherSystemDebugInstanceState", + "qualified_name": "keen::ds::WeatherSystemDebugInstanceState", + "referenced_type_name": null, + "class_size": 44, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 399836289, + "hash2": 1016011565, + "struct_fields": [ + { + "name": "handle", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "guid", + "type_name": "keen::Guid", + "type_hash": 2155730591, + "data_offset": 4 + }, + { + "name": "position", + "type_name": "keen::float2", + "type_hash": 528874106, + "data_offset": 20 + }, + { + "name": "rotation", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 32 + }, + { + "name": "moveSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "fade", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSystemDebugSkipToNextPhenomenonMessage", + "type_name_2": "WeatherSystemDebugSkipToNextPhenomenonMessage", + "qualified_name": "keen::ds::WeatherSystemDebugSkipToNextPhenomenonMessage", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1118844812, + "hash2": 630468873, + "struct_fields": [ + { + "name": "layerIndex", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherPhenomenonIndex", + "type_name_2": "WeatherPhenomenonIndex", + "qualified_name": "keen::ds::WeatherPhenomenonIndex", + "referenced_type_name": "keen::WeatherPhenomenonIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 3220291312, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSavedLayerInstance", + "type_name_2": "weather.save_v0.WeatherSavedLayerInstance", + "qualified_name": "keen::ds::weather::save_v0::WeatherSavedLayerInstance", + "referenced_type_name": null, + "class_size": 64, + "fields_count": 7, + "primitive_type": "Struct", + "hash1": 1945442290, + "hash2": 1643408102, + "struct_fields": [ + { + "name": "phenomenonIndex", + "type_name": "keen::ds::WeatherPhenomenonIndex", + "type_hash": 3220291312, + "data_offset": 0 + }, + { + "name": "spawnPosition", + "type_name": "keen::WorldPosition", + "type_hash": 4187772213, + "data_offset": 8 + }, + { + "name": "rotation", + "type_name": "keen::Angle", + "type_hash": 1824496765, + "data_offset": 32 + }, + { + "name": "radius", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 36 + }, + { + "name": "moveSpeed", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 40 + }, + { + "name": "spawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 48 + }, + { + "name": "despawnTime", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 56 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSavedLayer", + "type_name_2": "weather.save_v0.WeatherSavedLayer", + "qualified_name": "keen::ds::weather::save_v0::WeatherSavedLayer", + "referenced_type_name": null, + "class_size": 136, + "fields_count": 3, + "primitive_type": "Struct", + "hash1": 1892438789, + "hash2": 1595795256, + "struct_fields": [ + { + "name": "nextPhenomenon", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 0 + }, + { + "name": "currentInstance", + "type_name": "keen::ds::weather::save_v0::WeatherSavedLayerInstance", + "type_hash": 1945442290, + "data_offset": 8 + }, + { + "name": "previousInstance", + "type_name": "keen::ds::weather::save_v0::WeatherSavedLayerInstance", + "type_hash": 1945442290, + "data_offset": 72 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WeatherLayerIndex", + "type_name_2": "WeatherLayerIndex", + "qualified_name": "keen::ds::WeatherLayerIndex", + "referenced_type_name": "keen::WeatherLayerIndex", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 384957734, + "hash2": 2496077718, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "WeatherSpawnParameters", + "type_name_2": "WeatherSpawnParameters", + "qualified_name": "keen::ds::WeatherSpawnParameters", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3333881640, + "hash2": 1755263658, + "struct_fields": [ + { + "name": "eventProbabilityModifier", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SettingsHeader", + "type_name_2": "g38_options.SettingsHeader", + "qualified_name": "keen::ds::g38_options::SettingsHeader", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1969966514, + "hash2": 4009960136, + "struct_fields": [ + { + "name": "version", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "WindowMode", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.WindowMode", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode", + "referenced_type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 628894311, + "hash2": 1634480779, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "NvidiaReflexModeSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.NvidiaReflexModeSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings", + "referenced_type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings", + "class_size": 4, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 60656015, + "hash2": 1954070086, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.GraphicsSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings", + "referenced_type_name": null, + "class_size": 124, + "fields_count": 11, + "primitive_type": "Struct", + "hash1": 3067677656, + "hash2": 1578792503, + "struct_fields": [ + { + "name": "windowMode", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::WindowMode", + "type_hash": 628894311, + "data_offset": 0 + }, + { + "name": "windowPosition", + "type_name": "keen::int2", + "type_hash": 1650322447, + "data_offset": 4 + }, + { + "name": "windowSize", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 12 + }, + { + "name": "forceBackbufferResolution", + "type_name": "keen::uint2", + "type_hash": 3633820472, + "data_offset": 20 + }, + { + "name": "renderScale", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 28 + }, + { + "name": "automaticRenderScale", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 32 + }, + { + "name": "vsync", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 33 + }, + { + "name": "nvidiaReflex", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::NvidiaReflexModeSettings", + "type_hash": 60656015, + "data_offset": 36 + }, + { + "name": "render", + "type_name": "keen::ds::RenderSettings", + "type_hash": 1567492142, + "data_offset": 40 + }, + { + "name": "useDefaultRenderSettings", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 120 + }, + { + "name": "sleepInBackground", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 121 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.SoundSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings", + "referenced_type_name": null, + "class_size": 1, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3352752842, + "hash2": 938629099, + "struct_fields": [ + { + "name": "muteInBackground", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.machine.Settings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::Settings", + "referenced_type_name": "keen::ds::g38_options::SettingsHeader", + "class_size": 132, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 439405093, + "hash2": 3149393990, + "struct_fields": [ + { + "name": "graphics", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::GraphicsSettings", + "type_hash": 3067677656, + "data_offset": 4 + }, + { + "name": "sound", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::SoundSettings", + "type_hash": 3352752842, + "data_offset": 128 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GraphicsSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.GraphicsSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings", + "referenced_type_name": null, + "class_size": 4, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 285228920, + "hash2": 3790296221, + "struct_fields": [ + { + "name": "fov", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SoundSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.SoundSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings", + "referenced_type_name": null, + "class_size": 24, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 3470261866, + "hash2": 149047189, + "struct_fields": [ + { + "name": "masterVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "musicVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "uiVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 8 + }, + { + "name": "gameVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 12 + }, + { + "name": "voiceVolume", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 16 + }, + { + "name": "dynamicReverb", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 20 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "MouseSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.MouseSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3412079278, + "hash2": 309965868, + "struct_fields": [ + { + "name": "defaultSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rangedCombatSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "invertCameraAxes", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 8 + }, + { + "name": "attackDirection", + "type_name": "keen::ds::AttackDirectionInput", + "type_hash": 1389958292, + "data_offset": 10 + }, + { + "name": "enableSmoothing", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "GamepadSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.GamepadSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 3770802886, + "hash2": 2185197215, + "struct_fields": [ + { + "name": "defaultSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 0 + }, + { + "name": "rangedCombatSensitivity", + "type_name": "keen::float32", + "type_hash": 1911297837, + "data_offset": 4 + }, + { + "name": "invertCameraAxes", + "type_name": "keen::bool2", + "type_hash": 30810088, + "data_offset": 8 + }, + { + "name": "attackDirection", + "type_name": "keen::ds::AttackDirectionInput", + "type_hash": 1389958292, + "data_offset": 10 + }, + { + "name": "controllerButtonStyle", + "type_name": "keen::ds::ControllerButtonStyle", + "type_hash": 3331607868, + "data_offset": 11 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "InputSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.InputSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1195247857, + "hash2": 2013475311, + "struct_fields": [ + { + "name": "selectedKeyboardMousePresetId", + "type_name": "keen::ds::input_mapping::PresetId", + "type_hash": 126049622, + "data_offset": 0 + }, + { + "name": "selectedGamepadPresetId", + "type_name": "keen::ds::input_mapping::PresetId", + "type_hash": 126049622, + "data_offset": 1 + }, + { + "name": "customInputBindings", + "type_name": "keen::ds::input_mapping::serialize::InputBindings", + "type_hash": 287788532, + "data_offset": 8 + }, + { + "name": "mouse", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::MouseSettings", + "type_hash": 3412079278, + "data_offset": 56 + }, + { + "name": "gamepad", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GamepadSettings", + "type_hash": 3770802886, + "data_offset": 68 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "SpiderSetting", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.SpiderSetting", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting", + "referenced_type_name": "keen::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting", + "class_size": 1, + "fields_count": 0, + "primitive_type": "Typedef", + "hash1": 278607759, + "hash2": 1605161669, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "GameplaySettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.GameplaySettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings", + "referenced_type_name": null, + "class_size": 32, + "fields_count": 17, + "primitive_type": "Struct", + "hash1": 4247819481, + "hash2": 3409590631, + "struct_fields": [ + { + "name": "cameraZoomFactor", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 0 + }, + { + "name": "enableIdleCameraTransition", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 4 + }, + { + "name": "reduceDynamicCameraMovement", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 5 + }, + { + "name": "screenShakeStrength", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 8 + }, + { + "name": "displayDamageNumbers", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 12 + }, + { + "name": "displayDamagePropertyTexts", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 13 + }, + { + "name": "keepTargetLockWhenSprinting", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 14 + }, + { + "name": "breakTargetLockOnKill", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 15 + }, + { + "name": "hudAspectRatioWidth", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 16 + }, + { + "name": "textScale", + "type_name": "keen::float", + "type_hash": 2432634860, + "data_offset": 20 + }, + { + "name": "useAdditionalSymbolsForItemRarity", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 24 + }, + { + "name": "hideHUD", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 25 + }, + { + "name": "hideHelmet", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 26 + }, + { + "name": "hideGloves", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 27 + }, + { + "name": "showCharacterName", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 28 + }, + { + "name": "itemDeletionProtectionLevel", + "type_name": "keen::ds::ItemRarity", + "type_hash": 1041437011, + "data_offset": 29 + }, + { + "name": "hideSpiders", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SpiderSetting", + "type_hash": 278607759, + "data_offset": 30 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HostUserGroup", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.HostUserGroup", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "referenced_type_name": null, + "class_size": 48, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 3145630132, + "hash2": 3447046423, + "struct_fields": [ + { + "name": "enable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 0 + }, + { + "name": "password", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "HostSettings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.HostSettings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings", + "referenced_type_name": null, + "class_size": 192, + "fields_count": 5, + "primitive_type": "Struct", + "hash1": 1014062159, + "hash2": 4246021933, + "struct_fields": [ + { + "name": "maxSlots", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 0 + }, + { + "name": "password", + "type_name": "keen::ds::string", + "type_hash": 3751226874, + "data_offset": 8 + }, + { + "name": "guests", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "type_hash": 3145630132, + "data_offset": 48 + }, + { + "name": "friends", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "type_hash": 3145630132, + "data_offset": 96 + }, + { + "name": "admins", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostUserGroup", + "type_hash": 3145630132, + "data_offset": 144 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v5_dedicated_song_selection_binding.user.Settings", + "qualified_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings", + "referenced_type_name": "keen::ds::g38_options::SettingsHeader", + "class_size": 344, + "fields_count": 6, + "primitive_type": "Struct", + "hash1": 2083168389, + "hash2": 2057029166, + "struct_fields": [ + { + "name": "graphics", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GraphicsSettings", + "type_hash": 285228920, + "data_offset": 4 + }, + { + "name": "sound", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::SoundSettings", + "type_hash": 3470261866, + "data_offset": 8 + }, + { + "name": "input", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::InputSettings", + "type_hash": 1195247857, + "data_offset": 32 + }, + { + "name": "gameplay", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::GameplaySettings", + "type_hash": 4247819481, + "data_offset": 112 + }, + { + "name": "hostSettings", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::HostSettings", + "type_hash": 1014062159, + "data_offset": 144 + }, + { + "name": "playedSessions", + "type_name": "keen::uint32", + "type_hash": 2194793467, + "data_offset": 336 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v4_dedicated_glider_binding.machine.Settings", + "qualified_name": "keen::ds::g38_options::pc::v4_dedicated_glider_binding::machine::Settings", + "referenced_type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::Settings", + "class_size": 132, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 2932871913, + "hash2": 1245571460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v4_dedicated_glider_binding.user.Settings", + "qualified_name": "keen::ds::g38_options::pc::v4_dedicated_glider_binding::user::Settings", + "referenced_type_name": null, + "class_size": 344, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 1260432441, + "hash2": 1109081699, + "struct_fields": [ + { + "name": "legacySettings", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings", + "type_hash": 2083168389, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v3_early_access_release.machine.Settings", + "qualified_name": "keen::ds::g38_options::pc::v3_early_access_release::machine::Settings", + "referenced_type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::machine::Settings", + "class_size": 132, + "fields_count": 0, + "primitive_type": "Struct", + "hash1": 1828412515, + "hash2": 1245571460, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "Settings", + "type_name_2": "g38_options.pc.v3_early_access_release.user.Settings", + "qualified_name": "keen::ds::g38_options::pc::v3_early_access_release::user::Settings", + "referenced_type_name": null, + "class_size": 344, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 3339111455, + "hash2": 1109081699, + "struct_fields": [ + { + "name": "legacySettings", + "type_name": "keen::ds::g38_options::pc::v5_dedicated_song_selection_binding::user::Settings", + "type_hash": 2083168389, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "G38SupportedFeatures", + "type_name_2": "G38SupportedFeatures", + "qualified_name": "keen::ds::G38SupportedFeatures", + "referenced_type_name": null, + "class_size": 12, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 2654489192, + "hash2": 2330763689, + "struct_fields": [ + { + "name": "renderFeatures", + "type_name": "keen::ds::RenderSettingsFeatures", + "type_hash": 1372139225, + "data_offset": 0 + }, + { + "name": "isNvReflexAvailable", + "type_name": "keen::bool", + "type_hash": 1988030794, + "data_offset": 8 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "CameraPathKeyframe", + "type_name_2": "debug.CameraPathKeyframe", + "qualified_name": "keen::ds::debug::CameraPathKeyframe", + "referenced_type_name": null, + "class_size": 80, + "fields_count": 2, + "primitive_type": "Struct", + "hash1": 4048275698, + "hash2": 911770236, + "struct_fields": [ + { + "name": "transform", + "type_name": "keen::Matrix43", + "type_hash": 1257492306, + "data_offset": 0 + }, + { + "name": "time", + "type_name": "keen::Time", + "type_hash": 3289532223, + "data_offset": 64 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "DsArray", + "type_name_2": "debug.CameraPathKeyframe[]", + "qualified_name": "keen::DsArray", + "referenced_type_name": "keen::ds::debug::CameraPathKeyframe", + "class_size": 40, + "fields_count": 0, + "primitive_type": "DsArray", + "hash1": 1574617405, + "hash2": 1033388116, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "CameraRecording", + "type_name_2": "debug.CameraRecording", + "qualified_name": "keen::ds::debug::CameraRecording", + "referenced_type_name": null, + "class_size": 40, + "fields_count": 1, + "primitive_type": "Struct", + "hash1": 4187725400, + "hash2": 935366085, + "struct_fields": [ + { + "name": "cameraPath", + "type_name": "keen::DsArray", + "type_hash": 1574617405, + "data_offset": 0 + } + ], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::MidiSongResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 894034390, + "hash2": 324625025, + "struct_fields": [], + "enum_fields": [] + }, + { + "type_name_1": "ObjectReference", + "type_name_2": "Reference", + "qualified_name": "keen::ObjectReference", + "referenced_type_name": "keen::ds::GpcResource", + "class_size": 16, + "fields_count": 0, + "primitive_type": "ObjectReference", + "hash1": 1367184458, + "hash2": 4146168910, + "struct_fields": [], + "enum_fields": [] + } +] \ No newline at end of file diff --git a/shroudtopia.sln b/shroudtopia.sln index 23f92e3..9985718 100644 --- a/shroudtopia.sln +++ b/shroudtopia.sln @@ -39,6 +39,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "funchook-static", "third-pa EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "include", "include", "{167AD0B7-C6A5-4924-965D-0B1ECF4F379A}" ProjectSection(SolutionItems) = preProject + include\game_structures.h = include\game_structures.h include\memory_utils.h = include\memory_utils.h include\shroudtopia.h = include\shroudtopia.h EndProjectSection